:root{--bg:#f5f3ef;--card:#fff;--ink:#1e1d1b;--muted:#6f6b66;--line:#e7e2da;--accent:#f45b3f;--accent-2:#2246ff;--ok:#e2f3df;--bad:#ffe5e5;--shadow:0 8px 24px rgba(0,0,0,.08);--shadow-soft:0 1px 2px rgba(30,29,27,.04);--date-width:250px;--port-field-width:190px}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Space Grotesk,sans-serif;color:var(--ink);background:linear-gradient(180deg,#faf9f6 0,var(--bg) 100%)}.siteShell{min-height:100vh;display:flex;flex-direction:column}.siteContent{flex:1 0 auto;display:flex;flex-direction:column}.siteFooter{border-top:1px solid var(--line);background:hsla(0,0%,100%,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.siteFooterInner{max-width:1240px;margin:0 auto;padding:14px 24px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.siteFooterCopy{color:var(--muted);font-size:12px;line-height:1.4}.siteFooterNav{display:inline-flex;align-items:center;gap:14px;flex-wrap:wrap}.siteFooterLink{color:#453f37;text-decoration:none;font-size:12px;font-weight:600;transition:color .12s ease}.siteFooterLink:hover{color:var(--ink)}.page{max-width:1240px;margin:28px auto 56px;padding:0 24px}h1{margin:0 0 6px;font-size:28px;letter-spacing:-.5px}.hint{color:var(--muted);margin:0}.row{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.card{border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--card);box-shadow:var(--shadow)}.hero{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-bottom:16px}.heroIntro{display:grid;grid-gap:6px;gap:6px}.heroTitleRow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.heroTitleRow h1{margin:0}.betaBadge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:0 8px;border:1px solid #d9d1c4;border-radius:8px;background:#f6f1e8;color:#5f564b;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.hero--library{margin-bottom:24px}.heroBrand{display:flex;gap:24px}.heroBrand,.heroNav{align-items:center;flex-wrap:wrap}.heroNav{display:inline-flex;gap:14px}.heroNavLink{border:none;background:transparent;color:var(--muted);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;padding:4px 6px;border-radius:999px;transition:color .12s ease,background .12s ease}.heroNavLink:hover{color:var(--ink);background:rgba(0,0,0,.04)}.heroNavLink.is-active{color:var(--ink);background:rgba(34,70,255,.12)}.heroNavLink.is-muted{color:var(--muted);opacity:.6;cursor:default}.heroNavLink.is-muted:hover{color:var(--muted);background:transparent}.authBox{display:inline-flex;align-items:center;gap:10px;position:relative}.authPending{width:168px;border:1px solid var(--line);background:#f3efe8}.authBtn,.authPending{height:34px;border-radius:10px}.authBtn{padding:0 12px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:12px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;line-height:1}.authBtn.primary{background:var(--accent-2);border-color:var(--accent-2);color:#fff;box-shadow:0 6px 14px rgba(34,70,255,.2)}.authBtn.ghost{background:#fff;color:var(--ink)}.authEmail{font-size:12px;color:var(--muted);max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.authHidden{display:none!important}.profileMenu{position:relative}.profileTrigger{height:34px;padding:0 10px 0 8px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;font-weight:600;font-family:inherit;line-height:1;min-width:0;transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.profileTrigger:hover{border-color:#cdc5ba;background:#fdfbf8;box-shadow:0 2px 8px rgba(30,29,27,.08)}.profileTrigger:focus-visible{outline:2px solid rgba(34,70,255,.4);outline-offset:2px}.profileAvatar{width:20px;height:20px;border-radius:6px;background:#ece7dd;color:#332f29;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;text-transform:uppercase;flex:0 0 auto}.profileName{max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#453f37;font-size:12px;font-weight:600;line-height:1}.profileChevron{display:inline-flex;align-items:center;justify-content:center;color:var(--muted);flex:0 0 auto;transition:transform .12s ease}.profileChevron svg{width:12px;height:12px;fill:currentColor}.profileTrigger[aria-expanded=true] .profileChevron{transform:rotate(180deg)}.profileDropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:190px;background:#fff;border:1px solid #d8d1c7;border-radius:10px;box-shadow:0 10px 20px rgba(30,29,27,.12);padding:6px;display:flex;flex-direction:column;gap:2px;z-index:1700}.profileMenuItem{width:100%;border:none;background:transparent;color:#2a2722;border-radius:8px;padding:8px 10px;text-align:left;cursor:pointer;font-size:12px;font-weight:600;font-family:inherit;line-height:1.2;transition:background-color .12s ease,color .12s ease}.profileMenuItem:hover{background:#f2ece4;color:var(--ink)}.profileMenuItem.danger{color:#8f2e22}.profileMenuItem.danger:hover{background:#f7ecea;color:#7e2319}.profileMenuDivider{height:1px;background:var(--line);margin:4px 2px}.libraryPage{display:grid;grid-gap:14px;gap:14px}.libraryHeaderActions{display:inline-flex;align-items:center;gap:8px}.libraryToolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px}.librarySearchWrap{flex:1 1;min-width:0}.librarySearchInput{width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 11px;font-family:inherit;font-size:13px;color:var(--ink)}.librarySearchInput:focus{outline:none;border-color:#c5beb2;box-shadow:0 0 0 2px rgba(30,29,27,.05)}.libraryCount{color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap}.libraryGrid{display:grid;grid-gap:12px;gap:12px}.libraryCardItem{border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px;display:grid;grid-gap:8px;gap:8px}.libraryCardHead{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.libraryCardTitle{margin:0;font-size:18px;font-weight:700;letter-spacing:-.02em}.libraryCardDate{font-size:12px;color:var(--muted);font-weight:600}.libraryCardMeta{color:#38342f;font-size:13px;font-weight:600;line-height:1.35}.libraryCardMeta.muted{color:var(--muted);font-weight:500}.libraryActionRows{margin-top:6px;display:grid;grid-gap:8px;gap:8px}.libraryActionRow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.libraryActionBtn{border:1px solid #cec6bb;background:#fff;color:var(--ink);border-radius:9px;padding:6px 10px;cursor:pointer;font-size:12px;font-weight:600;font-family:inherit;line-height:1.2;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.libraryActionBtn:hover{background:#f7f4ee;border-color:#c1b8ac}.libraryActionBtn:disabled{opacity:.55;cursor:not-allowed}.libraryActionBtn.is-primary{border-color:#bdb2a3;background:#f3eee5;color:#1e1d1b}.libraryActionBtn.is-primary:hover{border-color:#ac9f8f;background:#ece5d9}.libraryActionBtn.is-danger{border-color:#d3b2ac;color:#8f2f24;background:#fff}.libraryActionBtn.is-danger:hover{border-color:#c3968f;background:#f9efed}.libraryRenameRow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%}.libraryRenameInput{min-width:200px;flex:1 1;border:1px solid var(--line);border-radius:9px;padding:7px 10px;font-family:inherit;font-size:13px;color:var(--ink);background:#fff}.libraryRenameInput:focus{outline:none;border-color:#c5beb2;box-shadow:0 0 0 2px rgba(30,29,27,.05)}.libraryEmpty{border:1px dashed #d4ccbf;color:var(--muted);text-align:center;font-weight:500;padding:18px 16px;border-radius:12px}.portfolioHome{display:grid;grid-gap:24px;gap:24px}.portfolioHero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);grid-gap:18px;gap:18px;align-items:stretch}.portfolioHeroText{display:flex;flex-direction:column;gap:10px}.portfolioEyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted);font-weight:700}.portfolioTitle{margin:4px 0 0;font-size:32px;letter-spacing:-.8px}.portfolioSub{margin:0;color:var(--muted);font-size:15px;max-width:560px}.portfolioHeroActions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}.portfolioHeroPanel{border:1px solid var(--line);border-radius:16px;background:#fff;padding:16px;box-shadow:var(--shadow);display:grid;grid-gap:12px;gap:12px}.portfolioStatGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:12px;gap:12px}.portfolioStat{background:#f8f6f2;border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;grid-gap:4px;gap:4px}.portfolioStatLabel{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.portfolioStatValue{font-size:20px;font-weight:700;color:var(--ink)}.portfolioStatHint{font-size:11px;color:var(--muted)}.portfolioHeroNote{border-top:1px solid var(--line);padding-top:10px;font-size:12px;color:var(--muted)}.portfolioHeroNoteLabel{display:inline-flex;font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--accent-2);margin-bottom:6px}.portfolioHeroNote p{margin:6px 0 0}.portfolioSection{display:grid;grid-gap:12px;gap:12px}.portfolioSectionHead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.portfolioSectionTitle{margin:0;font-size:20px}.portfolioSectionSub{margin:4px 0 0;font-size:12px;color:var(--muted)}.portfolioSectionActions{display:flex;align-items:center;gap:8px}.portfolioSync{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;font-size:11px;font-weight:600;color:var(--muted);background:#fff;text-decoration:none}.portfolioGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-gap:16px;gap:16px}@keyframes portfolioRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.portfolioCard{border:1px solid var(--line);border-radius:16px;background:#fff;padding:16px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow);font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;animation:portfolioRise .5s ease both;animation-delay:var(--card-delay,0ms)}.portfolioCard:hover{transform:translateY(-2px);border-color:rgba(34,70,255,.45);box-shadow:0 14px 30px rgba(0,0,0,.12)}.portfolioCard:focus-visible{outline:2px solid rgba(34,70,255,.35);outline-offset:2px}.portfolioCard--ghost{background:#f8f6f2;color:var(--muted);cursor:default;box-shadow:none}.portfolioCard--ghost:hover{transform:none;border-color:var(--line);box-shadow:none}.portfolioCard.buildCard{border-style:dashed;background:#f7f5f2;text-align:center;gap:8px}.buildIcon,.portfolioCard.buildCard{align-items:center;justify-content:center}.buildIcon{width:44px;height:44px;border-radius:14px;border:1px solid var(--line);display:inline-flex;font-size:24px;color:var(--accent-2);background:#fff}.buildTitle{font-size:16px;font-weight:700;color:var(--ink)}.buildHint{font-size:12px;color:var(--muted)}.portfolioCardHeader{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.portfolioCardTitle{font-size:14px;font-weight:700;color:var(--ink)}.portfolioCardMeta{font-size:11px;color:var(--muted)}.portfolioHoldings{display:grid;grid-gap:6px;gap:6px}.portfolioHolding{display:flex;justify-content:space-between;align-items:center;font-size:13px}.portfolioHoldingName{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:8px}.portfolioHoldingWeight{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.portfolioHolding.muted{font-size:12px;color:var(--muted)}.portfolioBadgeRow{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.portfolioBadge{padding:4px 8px;border-radius:999px;font-size:11px;border:1px solid var(--line);background:#f8f6f2;color:var(--ink);font-weight:600}.portfolioBadge.is-muted{color:var(--muted);background:#f4f2ee}.controls-grid{display:grid;grid-template-columns:1.2fr 2fr;grid-gap:16px;gap:16px;align-items:end}.control-block label{display:inline-flex;gap:8px;align-items:center}.control-block b{display:block;margin-bottom:6px}.range-row{display:flex;align-items:center;gap:12px;padding-left:8px}.range-label{color:var(--muted);font-size:13px;font-weight:600;min-width:140px;width:140px;flex:0 0 140px}table{border-collapse:separate;border-spacing:0 7px;width:100%}td,th{padding:6px 8px;vertical-align:middle}th{text-align:left;color:var(--muted);font-weight:600;font-size:13px}thead tr{background:transparent}thead th{vertical-align:top}.tableWrap{overflow-x:auto;-webkit-overflow-scrolling:touch}input[type=month]{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-family:inherit}input[type=month]:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 3px rgba(34,70,255,.15)}.dateLabel{position:relative;display:inline-flex;flex-direction:column;gap:6px;font-weight:600;text-transform:none;letter-spacing:.01em}.dateLabel,.dateLabel>span{font-size:12px;color:var(--muted)}.dateLabel>span{position:absolute;top:-8px;left:12px;padding:0 6px;background:#fff}.dateInput{padding:8px 38px 8px 12px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%232b3a4a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='18' rx='2' ry='2'/><line x1='16' y1='2' x2='16' y2='6'/><line x1='8' y1='2' x2='8' y2='6'/><line x1='3' y1='10' x2='21' y2='10'/></svg>");background-repeat:no-repeat;background-position:right 12px center;background-size:16px 16px}.dateInput,.startValueInput{min-width:var(--date-width);height:40px;border-radius:10px;background-color:#fff;border:1px solid var(--line);font-size:13px;color:var(--ink);box-shadow:var(--shadow-soft);-webkit-appearance:none;-moz-appearance:none;appearance:none}.startValueInput{padding:8px 12px}.currencyInput{position:relative;display:inline-flex;align-items:center;min-width:var(--date-width)}.currencyInput .startValueInput{width:100%;padding-right:34px}.currencySymbol{position:absolute;right:12px;color:var(--muted);font-size:14px;font-weight:600;pointer-events:none}.dateInput:focus,.startValueInput:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 3px rgba(34,70,255,.18)}.assetInput{width:220px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#f4f2ee;font-size:13px}.assetDropdown{position:absolute;z-index:50;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);max-height:280px;overflow:auto;min-width:260px}.assetGroup{padding:4px 0}.assetGroupTitle{width:100%;padding:6px 10px;display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#f8f6f2;border:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;text-align:left}.assetGroupMeta{display:inline-flex;align-items:center;gap:8px;min-width:0}.assetGroupTitle:hover{background:#f2efe9}.assetGroupChevron{font-size:12px;color:var(--muted)}.assetGroupStatus{display:inline-flex;align-items:center;justify-content:center;min-height:20px;padding:0 7px;border-radius:7px;border:1px solid #d9d1c4;background:#f4efe7;color:#6b6257;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:none;white-space:nowrap}.assetViewMore{width:100%;border:none;background:#fff;color:var(--accent-2);font-weight:600;font-size:12px;padding:8px 10px;text-align:left;cursor:pointer}.assetViewMore:hover{background:#f5f5f5}.assetOption{padding:8px 10px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px}.assetInfo{display:flex;flex-direction:column;gap:2px}.assetStart{font-size:11px;font-weight:600;color:#1e1d1b;background:#e7f0ff;border:1px solid #cbd9ff;padding:4px 8px;border-radius:999px;white-space:nowrap}.assetOption:hover{background:#f5f5f5}.assetTicker{font-size:12px;color:var(--muted);display:block}.assetName{font-weight:600}.w{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;text-align:left;background:#fff;font-size:13px}.w::placeholder{color:var(--muted)}.pctField{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:6px;gap:6px;width:var(--port-field-width);max-width:var(--port-field-width)}.pctSuffix{display:inline-flex;align-items:center;justify-content:center;min-width:32px;padding:6px 8px;border-radius:8px;color:var(--muted);font-weight:600}.pctSuffix,.rebSel{border:1px solid var(--line);background:#f4f2ee;font-size:13px}.rebSel{width:120px;max-width:120px;height:24px;padding:2px 24px 2px 8px;border-radius:10px;font-weight:500;color:var(--ink);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231e1d1b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 8px center;background-size:10px 10px;margin-left:0}.port-head{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.portTitle{display:inline-flex;align-items:center;gap:0;font-weight:600}.portTitleText{line-height:1;margin-right:2px}.portDot{width:8px;height:8px;border-radius:999px;display:inline-block;box-shadow:0 0 0 3px rgba(0,0,0,.04);margin-right:8px}.portDot.p1{background:#2d6bff}.portDot.p2{background:#f45b3f}.portDot.p3{background:#1f9d55}.portTitleRow{width:100%;display:flex;align-items:center;justify-content:flex-start;gap:6px}.portActions{gap:8px}.portActions,.portDeleteBtn{display:inline-flex;align-items:center}.portDeleteBtn{width:16px;height:16px;border:0;border-radius:4px;background:transparent;color:#000;justify-content:center;cursor:pointer;transition:color .12s ease;flex:0 0 auto;padding:0}.portDeleteBtn:hover{color:#d52a1f}.portDeleteBtn:focus-visible{outline:2px solid rgba(34,70,255,.35);outline-offset:2px}.portDeleteBtn svg{width:14px;height:14px;fill:currentColor}.portActionBtn{border:1px solid #cbc2b7;background:#fff;color:var(--ink);font-size:12px;font-weight:600;padding:5px 12px;border-radius:999px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.portActionBtn:hover{border-color:rgba(34,70,255,.4);box-shadow:0 6px 12px rgba(0,0,0,.08)}.portActionBtn.ghost{border-color:var(--line);color:var(--muted)}.portSaveRow td{padding-top:6px;padding-bottom:0}.portSaveCell{text-align:left}.portSaveInner{width:calc(var(--port-field-width) - 38px);display:flex;justify-content:center}.portSaveBtn{display:inline-flex;align-items:center;justify-content:center;min-width:124px;max-width:calc(var(--port-field-width) - 20px);padding:4px 10px;border-radius:8px;font-size:12px;font-weight:600;line-height:1.2}.portSaveBtn:hover{border-color:#c5beb3;box-shadow:none}.saveNotice{margin-top:10px;padding:10px 12px;border-radius:10px;background:#e7f0ff;border:1px solid #c9ddff;color:#1b3b8b;font-weight:600}.builderShell{display:grid;grid-gap:22px;gap:22px}.builderTopCard{min-height:208px;padding:24px 24px 28px;display:flex;align-items:flex-start;border-radius:12px;box-shadow:0 1px 2px rgba(30,29,27,.04)}.builderTopFields{width:min(560px,100%);display:grid;grid-gap:24px;gap:24px}.builderFieldGroup{display:grid;grid-gap:12px;gap:12px}.builderFieldGroup--compact{width:min(250px,100%)}.builderGroupTitle{font-size:15px;font-weight:700;color:var(--ink);line-height:1.2}.builderDateRow{display:flex;gap:12px;flex-wrap:wrap}.builderStartValueField{width:100%}.comparisonShell{display:grid;grid-gap:24px;gap:24px}.portfolioDeck{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:16px;gap:16px;align-items:stretch}.portfolioBuilderCell{--builder-allocation-width:102px;min-width:0;min-height:398px;border-radius:12px;border:1px solid #e6e1d8;background:#fff;padding:18px 18px 20px;display:flex;flex-direction:column;gap:16px;box-shadow:0 1px 2px rgba(30,29,27,.04)}.portfolioBuilderCell--active.portfolioBuilderCell--p2,.portfolioBuilderCell--active.portfolioBuilderCell--p3,.portfolioBuilderCell--p1{background:#fff}.portfolioBuilderCell--empty.portfolioBuilderCell--p1,.portfolioBuilderCell--empty.portfolioBuilderCell--p2,.portfolioBuilderCell--empty.portfolioBuilderCell--p3{background:#f6f5f2}.portfolioBuilderHead{display:flex;flex-direction:column;gap:12px}.portfolioBuilderHead--empty{min-height:0}.portfolioBuilderHead .port-head{width:100%;gap:10px}.portfolioBuilderHead .portTitleRow{justify-content:space-between;align-items:center}.portfolioBuilderHead .portTitle{flex:1 1 auto;min-width:0;width:auto;gap:0;font-size:14px;font-weight:700}.portfolioBuilderHeadActions{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}.portfolioSaveIconBtn{width:20px;height:20px;border:0;border-radius:6px;padding:0;background:transparent;color:#9b978d;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:color .12s ease,background-color .12s ease}.portfolioSaveIconBtn:hover{color:#5f5a52;background:rgba(30,29,27,.04)}.portfolioSaveIconBtn:focus-visible{outline:2px solid rgba(34,70,255,.3);outline-offset:2px}.portfolioSaveIconBtn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.portfolioBuilderHead .portDeleteBtn{width:20px;height:20px;border-radius:6px;color:#9b978d}.portfolioBuilderHead .portDeleteBtn:hover{color:#d05245;background:rgba(208,82,69,.08)}.portfolioBuilderHead .rebField{width:100%;gap:4px}.portfolioBuilderHead .settingsButton{width:auto;max-width:100%;display:inline-flex;align-items:center;justify-content:flex-start;gap:4px;min-height:0;border:0;border-radius:0;background:transparent;box-shadow:none;padding:0 14px 0 22px;color:var(--muted);font-size:13px;line-height:1.35;font-weight:600;white-space:nowrap;position:relative}.portfolioBuilderHead .settingsButton:hover{box-shadow:none}.portfolioBuilderHead .settingsButton:hover,.portfolioBuilderHead .settingsButton[aria-expanded=true]{background:transparent;border-color:transparent}.portfolioBuilderHead .settingsButton:before{content:"";position:absolute;left:0;top:50%;width:14px;height:14px;transform:translateY(-50%);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236f6b66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='3'/><path d='M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9c0 .66.38 1.26 1 1.51.3.13.63.19.96.19H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z'/></svg>");background-repeat:no-repeat;background-size:14px 14px}.portfolioBuilderHead .settingsButton:after{content:"";position:absolute;right:0;top:50%;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid;transform:translateY(-35%);transition:transform .12s ease}.portfolioBuilderHead .settingsButton[aria-expanded=true]:after{transform:translateY(-65%) rotate(180deg)}.portfolioBuilderHead .settingsValue{color:inherit;font-weight:600}.portfolioBuilderHead .settingsValue.is-off{color:inherit}.portfolioBuilderRows{display:grid;grid-gap:8px;gap:8px}.portfolioBuilderRowItem{display:grid;grid-template-columns:minmax(0,1fr) var(--builder-allocation-width);grid-gap:8px;gap:8px;align-items:center}.portfolioBuilderRowItem .assetInput{width:100%}.portfolioBuilderRowItem .pctField{width:100%;max-width:none}.portfolioBuilderActions{display:grid;grid-gap:8px;gap:8px;margin-top:auto}.builderActionBtn{width:100%;min-height:40px;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,color .12s ease}.builderActionBtn--primary{border:1px solid #90b0fb;background:#fff;color:var(--accent-2)}.builderActionBtn--primary:hover{border-color:#6f98fc;background:#f8fbff}.builderActionBtn--secondary{border:1px solid #ebe4d9;background:#f2efea;color:#5c5853}.builderActionBtn--secondary:hover{border-color:#ddd4c7;background:#ede9e2}.portfolioBuilderTotal{padding-top:8px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid rgba(30,29,27,.08)}.portfolioBuilderTotal .totalField{width:var(--builder-allocation-width);max-width:var(--builder-allocation-width)}.portfolioBuilderTotalLabel{font-size:14px;font-weight:700;color:var(--ink)}.portfolioBuilderEmptyActions{display:grid;grid-gap:16px;gap:16px;margin:84px 0 auto;padding:0}.portfolioGhostAction{width:100%;min-height:42px;border-radius:8px;border:1px solid hsla(0,0%,100%,.86);background:hsla(0,0%,100%,.88);color:#4b4a46;font-size:13px;font-weight:700;cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.portfolioGhostAction:hover{background:#fff;border-color:#fff}.builderRunBar{display:flex;justify-content:center}.builderRunBar .btn-run{min-width:170px;border-radius:10px;box-shadow:0 8px 18px rgba(34,70,255,.2)}.portfolioModalBackdrop{position:fixed;inset:0;background:rgba(30,29,27,.45);display:flex;align-items:center;justify-content:center;padding:24px;z-index:2000}.portfolioModal{width:min(920px,100%);max-height:85vh;background:var(--card);border-radius:18px;border:1px solid var(--line);box-shadow:0 20px 60px rgba(0,0,0,.2);padding:18px;display:flex;flex-direction:column;gap:14px;overflow:hidden}.portfolioModalHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.portfolioModalTitle{font-size:18px;font-weight:700}.portfolioModalSub{color:var(--muted);font-size:13px;margin-top:4px}.portfolioModalClose{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:6px 10px;font-weight:600;cursor:pointer}.portfolioModalSearch input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--line);font-size:14px;font-family:inherit}.portfolioModalGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px;gap:12px;overflow:auto;padding-bottom:4px;flex:1 1;min-height:0}.portfolioModalCard{border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:6px;text-align:left;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.portfolioModalCard:hover{transform:translateY(-2px);box-shadow:0 10px 18px rgba(0,0,0,.08)}.portfolioModalCardTitle{font-weight:700}.portfolioModalMeta{color:var(--muted);font-size:12px}.portfolioModalEmpty{border:1px dashed var(--line);border-radius:14px;padding:18px;color:var(--muted);text-align:center}.confirmBackdrop{position:fixed;inset:0;background:rgba(30,29,27,.36);display:flex;align-items:center;justify-content:center;padding:16px;z-index:2100}.confirmModal{width:min(320px,100%);background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 24px rgba(0,0,0,.16);padding:14px;display:flex;flex-direction:column;gap:12px}.confirmMessage{font-size:14px;font-weight:600;color:var(--ink);line-height:1.35}.confirmActions{display:flex;justify-content:flex-end;gap:8px}.confirmBtn{border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:12px;font-weight:600;padding:5px 10px;cursor:pointer}.confirmBtn.ghost:hover{background:#f6f3ee;border-color:#c7bdb0}.confirmBtn.danger{border-color:#c98981;color:#7f2219;background:#fff}.confirmBtn.danger:hover{border-color:#ba6f66;background:#f9efed}.savePortfolioModal{width:min(380px,100%)}.savePortfolioFieldLabel{font-size:12px;font-weight:600;color:var(--muted);margin-top:-2px}.savePortfolioInput{width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font-size:13px;font-family:inherit;padding:8px 10px}.savePortfolioInput:focus{outline:none;border-color:#c5beb2;box-shadow:0 0 0 2px rgba(30,29,27,.08)}.savePortfolioConfirmBtn{border-color:#201d1a;background:#201d1a;color:#fff}.savePortfolioConfirmBtn:hover{border-color:#2a2621;background:#2a2621}.backtestExportModal{width:min(520px,100%)}.backtestExportFields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.backtestExportField{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted);font-weight:600}.backtestExportField input{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;color:var(--ink);background:#fff;font-family:inherit}.backtestExportHint{margin-top:-2px;font-size:12px;color:var(--muted)}.backtestExportSeries{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:8px;gap:8px}.backtestExportSeriesItem{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:9px;padding:8px 9px;background:#fff}.backtestExportSeriesToggle{display:grid;grid-template-columns:16px 12px 1fr;align-items:center;grid-gap:8px;gap:8px;font-size:13px;color:var(--ink);font-weight:600;cursor:pointer}.backtestExportSeriesToggle input{margin:0;width:14px;height:14px;accent-color:var(--accent-2)}.backtestExportSeriesEdit{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted);font-weight:600}.backtestExportSeriesEdit input{border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:13px;line-height:1.3;padding:7px 9px;font-family:inherit}.backtestExportSeriesEdit input:focus{outline:none;border-color:#c5beb2;box-shadow:0 0 0 2px rgba(30,29,27,.08)}.backtestExportSeriesEdit input:disabled{background:#f5f3ef;color:#92897d;cursor:not-allowed}.backtestExportSwatch{width:10px;height:10px;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.12)}.backtestExportSeriesColorRow{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.backtestExportSeriesColorInput{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted);font-weight:600}.backtestExportSeriesColorInput input{width:38px;height:30px;border:1px solid var(--line);border-radius:8px;padding:2px;background:#fff;cursor:pointer}.backtestExportSeriesColorInput input:disabled{cursor:not-allowed;opacity:.55}.backtestExportColorPresets{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.backtestExportColorPreset{width:18px;height:18px;border-radius:7px;border:1px solid rgba(31,29,25,.16);padding:0;cursor:pointer;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.28);transition:border-color .12s ease,box-shadow .12s ease,opacity .12s ease}.backtestExportColorPreset:hover{border-color:rgba(31,29,25,.34)}.backtestExportColorPreset.isActive{border-color:#1f1d19;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.44),0 0 0 1px rgba(31,29,25,.24)}.backtestExportColorPreset:disabled{cursor:not-allowed;opacity:.45}.totalsRow td{padding-top:10px;font-weight:600}.totalBox{display:inline-flex;align-items:center;justify-content:flex-start;min-height:38px;padding:8px 10px;border-radius:8px;border:1px solid var(--line);width:100%;min-width:0;font-size:13px;line-height:1.2}.totalField{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:6px;gap:6px;width:var(--port-field-width);max-width:var(--port-field-width)}.totalSuffix{display:inline-flex;align-items:center;justify-content:center;min-width:32px;padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:#f4f2ee}.totalLabel,.totalSuffix{color:var(--muted);font-weight:600}.totalLabel{display:none;font-size:10px;margin-bottom:4px}.totalOk{background:var(--ok);border-color:#bfe7bf}.totalBad{background:var(--bad);border-color:#ffb9b9}.totalZero{background:#f4f2ee;border-color:var(--line)}.btn{padding:10px 14px;border:1px solid var(--ink);background:#fff;border-radius:10px;cursor:pointer;font-weight:600}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary{background:var(--accent-2);border-color:var(--accent-2);color:#fff;box-shadow:0 8px 18px rgba(34,70,255,.25)}.btn-ghost{border-color:var(--line);color:var(--ink);background:#fff}.actions-bar{margin-top:14px;display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap}.btn-run{padding:12px 28px;font-size:15px}.btn-export{padding:12px 22px;font-size:14px}.optimizerPanel{margin-top:12px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px}.optimizerInputs{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.optimizerField{display:flex;flex-direction:column;gap:4px;min-width:120px}.optimizerField span{font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.optimizerField input{border:1px solid var(--line);border-radius:8px;padding:7px 8px;font-size:13px;color:var(--ink);background:#fff;width:100%;box-sizing:border-box}.optimizerField input[type=range]{border:none;border-radius:0;padding:0;background:transparent;width:100%;min-width:0}.optimizerField select{border:1px solid var(--line);border-radius:8px;padding:7px 8px;font-size:13px;color:var(--ink);background:#fff;width:100%;box-sizing:border-box}.optimizerMsg{margin-top:8px;font-size:13px;color:var(--muted)}.optimizerResults{margin-top:10px;display:grid;grid-gap:8px;gap:8px}.optimizerCard{border:1px solid var(--line);border-radius:10px;background:#f9f8f6;padding:8px;display:grid;grid-gap:6px;gap:6px}.optimizerCardHead{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;color:var(--ink)}.optimizerCardBody{font-size:13px;color:var(--muted)}.optimizerActions{display:flex;flex-wrap:wrap;gap:6px}.optimizerPage{display:grid;grid-gap:14px;gap:14px}.optimizerPromptCard{display:grid;grid-gap:10px;gap:10px}.optimizerPromptLabel{font-size:12px;color:var(--muted);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.optimizerPromptInput{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;font-size:14px;color:var(--ink);background:#fff;resize:vertical;min-height:110px;font-family:inherit;line-height:1.45}.optimizerPromptInput:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 2px rgba(34,70,255,.12)}.optimizerActionRow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.optimizerNotes{display:flex;flex-wrap:wrap;gap:6px}.optimizerNote{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;border:1px solid var(--line);background:#f8f6f2;color:var(--muted);font-size:12px;line-height:1.2}.optimizerConfigCard{display:grid;grid-gap:12px;gap:12px}.optimizerModeRow{display:grid;grid-gap:8px;gap:8px}.optimizerModeTabs{display:flex;flex-wrap:wrap;gap:8px}.optimizerModeTabs .btn{min-width:110px}.optimizerConfigGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:10px;gap:10px}.optimizerAdvancedField{grid-column:1/-1}.optimizerAdvancedHint{display:block;margin-top:4px;font-size:12px;line-height:1.35;color:var(--muted);text-transform:none;letter-spacing:0;font-weight:500}.optimizerAdvancedTarget{margin-top:8px;display:grid;grid-gap:4px;gap:4px;max-width:240px}.optimizerPreferenceField{grid-column:1/-1}.optimizerPreferenceRow{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:10px;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff}.optimizerPreferenceEdge{white-space:nowrap}.optimizerPreferenceEdge,.optimizerPreferenceValue{font-size:12px;color:var(--muted);font-weight:600}.optimizerCategoryBlock{border-top:1px solid var(--line);padding-top:10px;display:grid;grid-gap:8px;gap:8px}.optimizerCategoryGrid{display:flex;flex-wrap:wrap;gap:8px}.optimizerCategoryItem{gap:6px;border:1px solid var(--line);border-radius:999px;padding:5px 10px;background:#fff}.optimizerCategoryFilterToggle,.optimizerCategoryItem{display:inline-flex;align-items:center;font-size:12px;color:var(--ink)}.optimizerCategoryFilterToggle{gap:8px}.optimizerCategoryConstraints{display:grid;grid-gap:8px;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.optimizerCategoryConstraintHint{margin:0;font-size:12px;color:var(--muted);line-height:1.35}.optimizerCategoryConstraintGrid{display:grid;grid-gap:8px;gap:8px}.optimizerCategoryConstraintRow{display:grid;grid-template-columns:minmax(120px,1fr) minmax(90px,120px) minmax(90px,120px);grid-gap:8px;gap:8px;align-items:end}.optimizerCategoryConstraintRow strong{font-size:13px;color:var(--ink);font-weight:700}.optimizerCategoryConstraintRow label{display:grid;grid-gap:4px;gap:4px}.optimizerCategoryConstraintRow label span{font-size:11px;color:var(--muted);font-weight:600}@media (max-width:640px){.optimizerCategoryConstraintRow{grid-template-columns:1fr}}.optimizerStatus{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;color:var(--muted);font-size:13px}.optimizerResultGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:10px;gap:10px}.optimizerResultCard{display:grid;grid-gap:8px;gap:8px}.optimizerResultHead{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px}.optimizerResultMeta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--muted)}.optimizerResultWeights{font-size:13px;color:var(--ink);line-height:1.4}#error{white-space:pre-wrap}#error,#range_warning{color:#b00020;margin-top:10px}#range_warning{border:1px solid #ff4d4d;background:#fff3f3;padding:10px 12px;border-radius:10px;font-weight:600}.chartWrap{margin-top:18px;padding:18px}.chartFrame{height:360px}.chartWrap canvas{width:100%;height:100%}.chartControls{margin-top:10px;color:var(--muted);font-size:14px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}.chartControls label{display:inline-flex;align-items:center;gap:6px}.chartFilters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}#contributionFiltersWrap{flex:0 0 100%;order:10;margin-top:2px}.chartFilters.is-hidden{display:none}#contributionFilters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.chartFilterTitle{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.chartFilterLabel{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;border:1px solid var(--line);background:#f8f6f2;font-size:12px;color:var(--ink)}.chartFilterLabel input{margin:0}.chartSwatch{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.12)}.chartDownloadRow{margin-left:auto;order:2;display:inline-flex;align-items:center;justify-content:flex-end}.chartDownloadActions{display:inline-flex;align-items:center;gap:5px;padding:2px;border:1px solid var(--line);border-radius:10px;background:#f7f4ef}.chartDownloadBtn{border:1px solid transparent;background:transparent;color:#6f6b66;font-size:11px;font-weight:600;padding:5px 8px;border-radius:6px;cursor:pointer;font-family:inherit;transition:color .14s ease,border-color .14s ease,background-color .14s ease}.chartDownloadBtn:hover:not(:disabled){color:var(--ink);border-color:var(--line);background:#fff}.chartDownloadBtn:disabled{opacity:.5;cursor:not-allowed}.metricsWrap{margin-top:16px;min-height:220px;overflow:visible}.metricsGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:12px;gap:12px}.metricsGrid.single{grid-template-columns:1fr}.metricsCard{border:1px solid var(--line);border-radius:14px;padding:16px 18px 8px;background:#fff}.flatpickr-calendar{border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);font-family:Space Grotesk,sans-serif}.flatpickr-weekdays{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.flatpickr-day.selected,.flatpickr-day.selected:hover{background:var(--accent-2);border-color:var(--accent-2)}.metricsTitle{font-weight:700;color:var(--accent-2);font-size:18px;margin-bottom:8px}.metricsTitleRow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.metricsTitleRow .metricsTitle{margin-bottom:0}.metricsFilter{width:28px;height:28px;padding:0;border-radius:8px;border:1px solid transparent;display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.metricsFilter,.metricsFilter:hover{background:transparent;color:#6f6b66}.metricsFilter:hover{border-color:transparent}.metricsFilter svg{width:16px;height:16px}.metricsCard{position:relative;overflow:visible}.metricsPanel{position:fixed;right:auto;top:auto;width:260px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:12px;display:none;z-index:5;overflow:auto}.metricsPanel.open{display:block}.metricsPanelTitle{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px}.metricsPanelList{display:grid;grid-gap:8px;gap:8px}.metricsPanelActions{margin-top:10px;display:flex;justify-content:space-between;align-items:center}.metricsPanelApply{height:28px;padding:0 10px;border-radius:10px;border:1px solid var(--accent-2);background:var(--accent-2);color:#fff}.metricsPanelApply,.metricsPanelReset{font-size:12px;font-weight:600;cursor:pointer}.metricsPanelReset{border:none;background:transparent;color:var(--accent-2);padding:0}.metricsPanelItem{display:grid;grid-template-columns:16px 1fr;grid-gap:8px;gap:8px;align-items:center;font-size:13px;color:var(--ink)}.metricsPanelItem input{width:14px;height:14px;accent-color:var(--accent-2)}.metricsTable{border-top:1px solid var(--line)}.metricsHead{font-weight:600;color:var(--muted)}.metricsHead,.metricsRow{display:grid;grid-template-columns:1.4fr repeat(var(--metrics-cols,1),minmax(140px,1fr));padding:10px 4px}.metricsRow{border-top:1px solid var(--line);color:var(--ink)}.metricsRowMuted{color:var(--muted);opacity:.65}.metricsHead span:not(:first-child),.metricsRow span:not(:first-child){text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metricLabel{gap:8px}.metricHint,.metricLabel{display:inline-flex;align-items:center}.metricHint{justify-content:center;width:16px;height:16px;border-radius:999px;border:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:700;line-height:1;cursor:pointer;background:#fff}.metricTooltip{position:absolute;z-index:1000;max-width:320px;padding:10px 12px;border-radius:10px;background:#1f2937;color:#f9fafb;font-size:12px;line-height:1.4;box-shadow:0 10px 30px rgba(0,0,0,.25);pointer-events:none;border:1px solid hsla(0,0%,100%,.08)}.metricsPortfolio{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}.metricsSwatch{width:10px;height:10px;border-radius:3px;border:1px solid rgba(0,0,0,.08);flex:0 0 auto}.metricsTable.multi{overflow-x:auto}.legalPage{flex:1 0 auto;padding:32px 24px 56px}.legalCard{max-width:860px;margin:0 auto;padding:28px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow);display:grid;grid-gap:22px;gap:22px}.legalIntro{display:grid;grid-gap:8px;gap:8px}.legalKicker{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.legalTitle{margin:0;font-size:32px;letter-spacing:-.04em}.legalMeta{color:var(--muted);font-size:13px;line-height:1.5}.legalSection{display:grid;grid-gap:8px;gap:8px}.legalSection h2{margin:0;font-size:18px;letter-spacing:-.02em}.legalSection li,.legalSection p{margin:0;color:#38342f;font-size:14px;line-height:1.65}.legalList{margin:0;padding-left:18px;display:grid;grid-gap:8px;gap:8px}.allocField{display:flex;flex-direction:column;gap:4px}.allocLabel,.assetLabel{display:none;font-size:12px;color:var(--muted);font-weight:600}.assetLabel{margin-bottom:6px}.rebField{display:flex;flex-direction:column;gap:4px;align-items:flex-start;position:relative}.rebLabel{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.02em}.settingsLabel{display:inline-flex;align-items:center;gap:6px;padding:5px 12px 5px 30px;border-radius:10px;color:var(--ink);font-weight:600;letter-spacing:.01em;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.75);position:relative}.settingsButton,.settingsLabel{border:1px solid var(--line);background:#f7f5f2}.settingsButton{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.contributionButton,.rebalanceButton{display:inline-block;width:var(--port-field-width);max-width:var(--port-field-width);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.contributionButton .metricHint{margin-left:6px}.settingsButton:hover{background:#f1eee9}.settingsButton:focus-visible{outline:2px solid rgba(34,70,255,.35);outline-offset:2px}.settingsLabel:before{content:"";position:absolute;left:10px;width:14px;height:14px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236f6b66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='3'/><path d='M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9c0 .66.38 1.26 1 1.51.3.13.63.19.96.19H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z'/></svg>");background-repeat:no-repeat;background-size:14px 14px}.settingsValue{color:var(--accent-2);font-weight:700}.settingsValue.is-off{color:var(--muted)}html{scrollbar-gutter:stable}.settingsOverlay{position:fixed;inset:0;background:rgba(30,29,27,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .12s ease;z-index:40}.settingsOverlay.is-open{opacity:1;pointer-events:auto}.rebSelectHidden{display:none}.settingsPanel{position:absolute;top:calc(100% + 6px);left:0;min-width:220px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:8px;z-index:30;display:none}.settingsPanel.is-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:640px;max-width:96vw;max-height:80vh;overflow:auto;z-index:50}.settingsPanel[aria-hidden=false]{display:block}.rebPanel{min-width:250px;padding:12px 14px 12px 12px;max-height:340px;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.rebPanelBody{display:grid;grid-gap:12px;gap:12px}.rebNoneOption{border:1px solid var(--line);border-radius:8px;background:#f7f5f2;color:var(--muted);padding:6px 8px;font-size:12px;font-weight:600;text-align:left;cursor:pointer}.rebNoneOption:hover{background:#f1eee9}.rebNoneOption.is-active{color:var(--ink);border-color:var(--accent-2);box-shadow:0 0 0 1px rgba(34,70,255,.08)}.rebSection{display:grid;grid-gap:6px;gap:6px}.rebSectionTitle{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--muted)}.rebSectionTitle:before{content:none}.rebSectionTitle.rebIconTime:before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232246ff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='18' rx='2' ry='2'/><line x1='16' y1='2' x2='16' y2='6'/><line x1='8' y1='2' x2='8' y2='6'/><line x1='3' y1='10' x2='21' y2='10'/></svg>")}.rebSectionTitle.rebIconDrift:before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='4' y='10' width='3' height='8' rx='1' fill='%230ba36a'/><rect x='10' y='6' width='3' height='12' rx='1' fill='%230ba36a'/><rect x='16' y='3' width='3' height='15' rx='1' fill='%230ba36a'/></svg>")}.rebSectionTitle.rebIconBtc:before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' fill='%23f7b955'/><text x='12' y='12' text-anchor='middle' dominant-baseline='middle' font-size='11' font-family='Arial' font-weight='700' fill='%231e1d1b'>B</text></svg>")}.rebList{margin:0;padding-left:0;list-style:none;display:grid;grid-gap:4px;gap:4px}.rebItem{margin:0}.rebOption{width:100%;border:1px solid transparent;background:#fff;padding:6px 8px;border-radius:8px;font-size:12px;font-weight:600;color:var(--ink);text-align:left;cursor:pointer}.rebOption:hover{background:#f4f2ee}.rebItem.is-active .rebOption{border-color:var(--accent-2);background:rgba(34,70,255,.08);color:#1a2bc7}.rebOption:focus-visible{outline:2px solid rgba(34,70,255,.35);outline-offset:2px;border-radius:6px}.rebOptionInline{display:flex;align-items:center;gap:6px;flex-wrap:wrap;white-space:normal;cursor:pointer}.rebInlineField{display:inline-flex;align-items:center;gap:4px}.rebInlineInput{width:48px;padding:2px 6px}.rebInlineInput,.rebInlineSelect{height:22px;border-radius:6px;border:1px solid var(--line);font-size:12px;color:var(--ink)}.rebInlineSelect{padding:2px 20px 2px 6px;background:#fff;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%231e1d1b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 6px center;background-size:10px 10px}.rebInlineInput:focus,.rebInlineSelect:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 2px rgba(34,70,255,.12)}.rebInlineSuffix{color:var(--muted);font-weight:600;font-size:12px}.panelOptionRow{display:flex;align-items:center;gap:8px}.panelOptionLabel{flex:1 1 auto}.splitAllocField{display:none;align-items:center;gap:4px;margin-left:auto}.settingsPanel.split-enabled .splitAllocField{display:inline-flex}.splitAllocInput{width:52px}.rebItem.is-active .rebInlineInput{border-color:var(--accent-2)}.panelGroupLabel{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin:6px 6px 4px}.panelGroupLabelToggle{display:flex;align-items:center;justify-content:space-between;gap:8px;text-transform:none;letter-spacing:.02em}.panelGroupTitle{text-transform:uppercase;letter-spacing:.06em}.panelToggle{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:600;color:var(--muted);text-transform:none;letter-spacing:.02em;cursor:pointer}.panelToggleInput{width:14px;height:14px;accent-color:var(--accent-2)}.panelAmountField{position:relative;margin:4px 6px 10px}.panelAmountRow{display:flex;align-items:center;gap:12px;margin:4px 6px 10px;flex-wrap:wrap}.panelAmountRow .panelAmountField{margin:0;flex:1 1 180px;min-width:180px}.splitBudgetToggle{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--muted);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.splitBudgetToggle input{width:14px;height:14px;accent-color:var(--accent-2)}.panelAmountInput{width:100%;height:30px;padding:6px 26px 6px 10px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:12px;color:var(--ink)}.panelAmountInput:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 2px rgba(34,70,255,.12)}.panelAmountSuffix{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--muted);font-weight:600;font-size:12px;pointer-events:none}.panelOption{width:100%;text-align:left;padding:6px 8px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--ink);font-size:12px;font-weight:600;cursor:pointer}.panelOption:hover{background:#f4f2ee}.panelOption.is-active{border-color:var(--accent-2);background:rgba(34,70,255,.08);color:#1a2bc7}@media (max-width:900px){.hero,.heroBrand{flex-direction:column;align-items:flex-start}.portfolioHero{grid-template-columns:1fr}.libraryToolbar{flex-direction:column;align-items:stretch}.libraryCount{align-self:flex-end}.builderTopCard{min-height:0}.builderDateRow{display:grid}.builderDateRow,.portfolioDeck{grid-template-columns:1fr}.portfolioBuilderCell{min-height:0}}@media (max-width:720px){.page{margin:18px auto 36px;padding:0 16px}.siteFooterInner{padding:14px 16px 18px}.legalPage{padding:24px 16px 36px}.legalCard{padding:20px}.legalTitle{font-size:26px}h1{font-size:24px}.portfolioTitle{font-size:26px}.portfolioHeroActions{flex-direction:column;align-items:stretch}.portfolioHeroActions .btn{width:100%}.builderTopCard{padding:18px}.builderFieldGroup--compact,.builderTopFields{width:100%}.builderDateRow{gap:10px}.currencyInput,.dateInput,.startValueInput{width:100%}.benchmarkInput{min-width:0;width:100%}.libraryCardHead{align-items:flex-start}.libraryActionRow{width:100%}.libraryActionBtn{flex:1 1 auto;text-align:center}.libraryRenameRow{width:100%}.libraryRenameInput{width:100%;min-width:0}.backtestExportFields,.backtestExportSeries{grid-template-columns:1fr}.chartDownloadRow{margin-left:0;width:100%;justify-content:stretch}.chartDownloadActions{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.chartDownloadBtn{width:100%;text-align:center}.optimizerField{min-width:0;width:100%}.optimizerActionRow .btn{width:100%}.chartFrame{height:260px}.portfolioBuilderCell{padding:16px}.portfolioBuilderEmptyActions{margin-top:36px}.portfolioBuilderRowItem{grid-template-columns:1fr}.assetInput,.rebSel,.w{width:100%}.allocLabel,.assetLabel,.rebLabel{display:block}.settingsPanel{position:static;width:100%;min-width:0;box-shadow:none;margin-top:6px}.settingsPanel.is-modal{position:fixed;width:92vw;max-width:92vw;max-height:80vh;box-shadow:var(--shadow);margin-top:0}.totalField{align-self:stretch;width:100%}.portfolioBuilderTotal .totalField{width:100%;max-width:none}.pctField{width:100%}.assetRow{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.assetRow:first-child{margin-top:0;padding-top:0;border-top:0}}.authShell{min-height:0;flex:1 0 auto;display:flex;align-items:center;justify-content:center;padding:24px}.authShell h1{margin:0 0 6px;font-size:20px}.authShell .card{width:420px;max-width:100%;padding:18px}.authShell .sub{margin:0 0 12px;color:var(--muted);font-size:12px}.authShell .form{display:grid;grid-gap:10px;gap:10px}.authShell .input{height:38px;border-radius:10px;border:1px solid var(--line);padding:8px 10px;font-size:13px}.authShell .helpText{color:var(--muted);font-size:12px;line-height:1.4;margin-top:-2px}.authShell .actions{display:flex;flex-direction:column;gap:10px;align-items:stretch;justify-content:flex-start;margin-top:6px}.authShell .btn{height:34px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:12px;font-weight:600;cursor:pointer}.authShell .btn.primary{background:var(--accent-2);border-color:var(--accent-2);color:#fff;box-shadow:0 6px 14px rgba(34,70,255,.2)}.authShell .google-btn{width:100%;height:44px;display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#fff;border:1px solid #d1d5db;border-radius:10px;padding:0 14px;font-size:14px;font-weight:600;color:#111827;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .02s ease}.authShell .google-btn:hover{background:#f9fafb;border-color:#cbd5e1}.authShell .google-btn:active{transform:translateY(1px)}.authShell .google-btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.35)}.authShell .google-btn__icon{display:inline-flex;align-items:center;justify-content:center}.authShell .google-btn__text{line-height:1}.authShell .dividerRow{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:12px;gap:12px;color:var(--muted);font-size:12px;margin:14px 0}.authShell .dividerLine{height:1px;background:var(--line)}.authShell .error{color:#b00020;font-size:12px;min-height:16px}.authShell .success{color:#0f7a3a;font-size:12px;min-height:16px}.authShell .link{color:var(--accent-2);text-decoration:none;font-weight:600;font-size:12px}.authShell .link-forgot{display:inline-block;margin-top:0;align-self:flex-end;color:var(--accent-2);font-weight:600;text-align:right}.forgotRow{display:flex;justify-content:flex-end;margin-top:0;transform:translateY(-24px)}.newAccount{font-size:12px;text-align:center;color:var(--ink)}.newAccount a{color:var(--accent-2);text-decoration:none;font-weight:600}