.shell{background:var(--ground);min-height:100vh}.topbar{align-items:center;gap:var(--space-4);padding:0 var(--space-8);border-bottom:1px solid var(--line);height:52px;display:flex}.topbar--skeleton{height:52px}.topbar-left{align-items:center;gap:var(--space-6);display:flex}.topbar-nav{align-items:center;gap:4px;display:flex}.topbar-search{width:36px;height:36px;color:var(--ink-dim);cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;transition:color .15s,background .15s;display:inline-flex}.topbar-search:hover{color:var(--ink);background:var(--surface)}.topbar-nav-link{font-size:var(--text-md);color:var(--ink-faint);padding:16px;text-decoration:none;transition:color .15s;position:relative}.topbar-nav-link:hover,.topbar-nav-link.active{color:var(--ink)}.topbar-nav-link.active:after{content:"";background:var(--brand);height:2px;position:absolute;bottom:0;left:16px;right:16px}.topbar-right{font-size:var(--text-sm);color:var(--ink-faint);align-items:center;gap:12px;margin-left:auto;display:flex}@media (width<=1120px){.topbar{height:auto;padding:var(--space-2) var(--space-4);row-gap:var(--space-1);flex-wrap:wrap}.topbar--skeleton{height:101px}.topbar-left{gap:var(--space-4)}.topbar-nav{flex:0 0 100%;order:3;height:44px;overflow-x:auto}.topbar-nav-link{padding:var(--space-3) var(--space-3);line-height:1.25}.topbar-nav-link.active:after{right:var(--space-3);left:var(--space-3)}}.user-menu{position:relative}.user-trigger{align-items:center;gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--ink);font-size:var(--text-md);background:0 0;padding:4px 10px 4px 4px;transition:background .15s,border-color .15s;display:inline-flex}.user-trigger:hover{background:var(--surface-raised);border-color:#ffffff24}.avatar{border-radius:var(--radius-sm);width:26px;height:26px;color:var(--ink-soft);font-family:var(--mono);letter-spacing:.04em;background:#ffffff0f;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:500;display:flex}.user-trigger-name{font-family:var(--sans);font-size:var(--text-md);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.user-trigger-chevron{color:var(--ink-faint);flex:none;transition:transform .2s}.user-trigger-chevron--open{transform:rotate(180deg)}.user-dropdown{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-md);z-index:20;min-width:230px;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.user-dropdown .who{border-bottom:1px solid var(--line);word-break:break-all;font-size:var(--text-sm);color:var(--ink-dim);margin-bottom:6px;padding:8px 10px 10px}.user-dropdown a,.user-dropdown button{text-align:left;border-radius:var(--radius-sm);width:100%;color:var(--ink);font-size:var(--text-md);background:0 0;border:0;padding:8px 10px;text-decoration:none;display:block}.user-dropdown a:hover,.user-dropdown button:hover{background:#ffffff0f}@media (prefers-reduced-motion:reduce){.user-trigger-chevron{transition:none}}.reconciling-status{border:1px solid var(--line);color:var(--ink);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex;position:relative;overflow:hidden}.reconciling-status-spinner{border:1.5px solid var(--line);border-top-color:var(--brand);border-radius:50%;width:10px;height:10px;animation:.8s linear infinite reconciling-status-spin}@keyframes reconciling-status-spin{to{transform:rotate(360deg)}}.reconciling-status-action{font-family:var(--mono);cursor:pointer;background:0 0;font-size:12px}.reconciling-status-action:hover{border-color:var(--ink-faint)}.reconciling-status-drain{background:var(--ink-dim);transform-origin:0;height:2px;position:absolute;bottom:0;left:0;right:0}@media (prefers-reduced-motion:reduce){.reconciling-status-spinner{animation:none}.reconciling-status-drain{display:none}}.palette-backdrop{z-index:1000;background:#0a090c8c;justify-content:center;align-items:flex-start;padding-top:12vh;animation:.15s ease-out palette-backdrop-in;display:flex;position:fixed;inset:0}.palette{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:620px;max-width:calc(100vw - 32px);animation:.15s ease-out palette-in;overflow:hidden;box-shadow:0 24px 80px #00000080}.palette-searchbar{align-items:center;gap:var(--space-3);padding:var(--space-4) 18px;border-bottom:1px solid var(--line);display:flex}.palette-search-icon{color:var(--ink-faint);flex:none}.palette-input{min-width:0;min-height:24px;color:var(--ink);font-family:inherit;font-size:var(--text-md);background:0 0;border:0;flex:1}.palette-input::placeholder{color:var(--ink-faint)}.palette-kbd{font-family:var(--mono);font-size:var(--text-micro);color:var(--ink-faint-raised);border:1px solid var(--line);border-radius:6px;padding:1px 7px}.palette-group{padding:10px 0}.palette-group+.palette-group{border-top:1px solid var(--line)}.palette-group-label{font-size:var(--text-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding:4px 18px 8px}.palette-item{align-items:center;gap:var(--space-3);cursor:pointer;text-align:left;background:0 0;border:0;width:100%;padding:9px 18px;display:flex}.palette-item:hover,.palette-item--selected{background:var(--line-faint)}.palette-glyph{border-radius:var(--radius-sm);border:1px solid var(--line);width:28px;height:28px;color:var(--ink-soft);font-family:var(--mono);letter-spacing:.06em;background:#ffffff0d;flex:none;justify-content:center;align-items:center;font-size:10px;font-weight:500;display:inline-flex}.palette-item-main{align-items:baseline;gap:var(--space-2);white-space:nowrap;flex:1;min-width:0;display:flex;overflow:hidden}.palette-ticker{font-family:var(--mono);font-size:var(--text-sm);color:var(--ink);flex:none;font-weight:600}.palette-name{text-overflow:ellipsis;font-size:var(--text-sm);color:var(--ink-dim);overflow:hidden}.palette-class-tag{font-size:var(--text-micro);border:1px solid var(--line);border-radius:var(--radius-pill);white-space:nowrap;flex:none;padding:1px 9px}.palette-status{font-size:var(--text-micro);color:var(--ink-faint-raised);white-space:nowrap;flex:none}.palette-empty{padding:var(--space-6) 18px;font-size:var(--text-sm);color:var(--ink-dim)}.palette-hint{border-top:1px solid var(--line);font-size:var(--text-micro);color:var(--ink-faint);gap:18px;padding:10px 18px;display:flex}@keyframes palette-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes palette-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.palette-backdrop,.palette{animation:none}}.assessment-badge{border-radius:var(--radius-pill);white-space:nowrap;padding:4px 14px;font-size:13px;font-weight:600}.assessment-badge--eligible{color:var(--gain);background:var(--gain-tint);border:1px solid #2ecc8a4d}.assessment-badge--not-eligible{color:var(--loss-raised);background:var(--loss-tint);border:1px solid #e85d5d4d}.assessment-badge--not-assessed{color:var(--ink-dim);border:1px solid var(--line);background:#ffffff0d}.asset-mark{border-radius:var(--radius-sm);color:var(--ink-soft);font-family:var(--mono);letter-spacing:.06em;background:#ffffff0d;border:1px solid #ffffff14;flex:none;justify-content:center;align-items:center;font-size:9px;font-weight:500;display:inline-flex}.portfolio-select{position:relative}.portfolio-select__trigger{align-items:center;gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-alt);color:var(--ink);font-family:var(--mono);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;padding:6px 14px;transition:color .15s,border-color .15s;display:inline-flex}.portfolio-select__trigger:hover{color:var(--ink);border-color:#ffffff2e}.portfolio-select__menu{z-index:30;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-sm);min-width:240px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px #0000003d}.portfolio-select__item{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;color:var(--ink-dim);font-family:var(--mono);font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:8px 10px;display:flex}.portfolio-select__item:hover{background:var(--surface);color:var(--ink)}.portfolio-select__item--active{color:var(--brand)}.portfolio-select__item--disabled,.portfolio-select__item--disabled:hover{color:var(--ink-faint);cursor:default;background:0 0}.portfolio-select__hint{font-family:var(--sans);font-size:var(--text-micro);color:var(--ink-soft)}.portfolio-select__dot{background:var(--brand);border-radius:50%;flex:none;width:6px;height:6px}.skeleton{vertical-align:middle;border-radius:var(--radius-sm);background:var(--surface-raised);display:inline-block;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff0d,#0000);animation:1.6s ease-in-out infinite skeleton-shimmer;position:absolute;inset:0;transform:translate(-100%)}.skeleton--circle{border-radius:var(--radius-pill)}.skeleton-row{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--line-faint)}@keyframes skeleton-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.skeleton:after{animation:none}}.wordmark{--logo-size:18px;width:calc(var(--logo-size) * var(--wordmark-width));height:calc(var(--logo-size) * var(--wordmark-line-box));align-items:center;display:inline-flex;position:relative}.wordmark-image{height:calc(var(--logo-size) * var(--wordmark-height));width:auto;display:block}.wordmark-image-reveal{top:calc(50% - var(--logo-size) * var(--wordmark-height) / 2 - var(--logo-size) * var(--wordmark-pad-top));height:calc(var(--logo-size) * var(--wordmark-reveal-height));position:absolute;left:0}.empty{text-align:center;padding-top:var(--space-6)}.badge{font-family:var(--mono);font-size:var(--text-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--brand);border-radius:var(--radius-pill);background:#fd752614;border:1px solid #fd752666;padding:5px 14px;font-weight:600;display:inline-block}.empty h1{margin-top:var(--space-5);font-size:var(--text-2xl);letter-spacing:-.03em;font-weight:700;line-height:1.1}.empty-sub{margin:var(--space-4) auto 0;max-width:620px;font-size:var(--text-md);color:var(--ink-dim)}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#1a181f;--header:#1a181f;--surface:#232029;--surface-alt:#1e1c24;--surface-raised:#2c2834;--surface-2:#2c2834;--line:#ffffff14;--line-faint:#ffffff0a;--backdrop:#0d0d0fc7;--ink:#f4f2f6;--ink-value:#d0ccd6;--ink-dim:#b6b2bd;--ink-soft:#9a9aa8;--ink-faint:#8a8693;--ink-faint-raised:#94909d;--brand:#fd7526;--brand-hover:#ff8a45;--brand-ink:#1a181f;--brand-tint:#fd75261f;--brand-tint-soft:#fd75260a;--brand-tint-strong:#fd752629;--brand-line:#fd752633;--ready:#2ecc8a;--pending:#f0a93c;--failed:#e85d5d;--pending-tint:#f0a93c0d;--gain:#2ecc8a;--loss:#e85d5d;--loss-raised:#f07575;--gain-tint:#2ecc8a1a;--loss-tint:#e85d5d1a;--inflow:#2ecc8a;--outflow:#e85d5d;--class-stock:#fd7526;--class-funds:#4aa3e8;--class-etf:#2bb8a3;--class-fixed-income:#f0a93c;--class-foreign:#a78bfa;--mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--sans:"DM Sans", system-ui, sans-serif;--text-micro:12px;--text-sm:14px;--text-md:16px;--text-lg:20px;--text-xl:24px;--text-2xl:40px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-16:64px}*{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100%}body{background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:var(--text-md);-webkit-font-smoothing:antialiased;line-height:1.5}button{cursor:pointer;font-family:inherit}a{color:inherit}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}:focus:not(:focus-visible){outline:none}.micro{font-family:var(--sans);font-size:var(--text-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}.mono-label{font-family:var(--sans);font-size:var(--text-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);font-weight:400}.micro-label{font-family:var(--sans);font-size:var(--text-micro);color:var(--ink-faint)}.ticker{font-family:var(--mono);font-size:var(--text-sm);letter-spacing:.02em;color:var(--ink);font-weight:500}.asset-name{font-family:var(--sans);font-size:var(--text-sm);color:var(--ink-dim)}.num{text-align:right}.tnum{font-variant-numeric:tabular-nums}.mono-num{font-family:var(--mono);font-variant-numeric:tabular-nums}.page-main{min-width:0;padding:var(--space-8);flex:1}.page-title{align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-1);display:flex}.page-title h1{font-family:var(--sans);font-size:var(--text-lg);letter-spacing:-.01em;color:var(--ink);font-weight:500}.period{font-family:var(--mono);font-size:var(--text-micro);color:var(--ink-faint)}.page-subtitle{font-size:var(--text-md);color:var(--ink-dim);max-width:520px}.portfolio-note{margin-bottom:var(--space-4);font-size:var(--text-sm);color:var(--ink-faint)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md)}.panel-head{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--line-faint);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.count-chip{font-family:var(--sans);font-size:var(--text-sm);border-radius:var(--radius-pill);background:var(--line-faint);color:var(--ink-soft);padding:2px 6px}.status-chip{font-family:var(--sans);font-size:var(--text-sm);border-radius:var(--radius-pill);color:var(--ink-soft);white-space:nowrap;background:#ffffff0d;padding:2px 6px}.status-chip--ok{background:var(--gain-tint);color:var(--gain)}.note-status{font-family:var(--sans);font-size:var(--text-sm);border-radius:var(--radius-pill);background:var(--line-faint);color:var(--ink-soft);white-space:nowrap;padding:2px 8px}.note-status--pending{color:var(--ink-dim);background:#ffffff0d}.note-status--attention{background:var(--brand-tint);color:var(--brand)}.note-status--error{background:var(--loss-tint);color:var(--loss-raised)}[role=table]{overflow-x:auto}.grid-head,.grid-row{align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-5);border-bottom:1px solid var(--line-faint);display:grid}.grid-head{font-family:var(--sans);font-size:var(--text-micro);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint)}.grid-row{min-height:44px}.grid-row:hover{background:var(--surface-raised)}.grid-row:hover .cell--faint{color:var(--ink-faint-raised)}.grid-row:hover .cell--loss,.grid-row:hover .cell--outflow{color:var(--loss-raised)}.alloc-grid{grid-template-columns:120px 100px 100px 1fr}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-md);padding:10px var(--space-5);border:1px solid #0000;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.btn--primary{background:var(--brand);color:var(--brand-ink)}.btn--primary:hover{background:var(--brand-hover)}.btn--quiet{color:var(--ink-dim);background:0 0;font-weight:500}.btn--quiet:hover{color:var(--ink)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-orange{font-size:var(--text-md);padding:8px var(--space-4);border-radius:var(--radius-pill);background:var(--brand-tint);color:var(--brand);border:1px solid var(--brand-line);cursor:pointer;font-weight:600;transition:background .15s}.btn-orange:hover{background:var(--brand-tint-strong)}.btn-orange:disabled{opacity:.4;cursor:default}.btn-ghost{font-size:var(--text-md);padding:6px var(--space-3);border-radius:var(--radius-pill);color:var(--ink-dim);cursor:pointer;background:0 0;border:1px solid #ffffff1a}.btn-link{font-size:var(--text-md);color:var(--ink-dim);cursor:pointer;background:0 0;border:0;padding:0}.btn-link:hover{color:var(--ink)}.chevron{flex:none;width:12px;height:12px;transition:transform .2s}.chevron--open{transform:rotate(180deg)}.crumbs{margin-bottom:var(--space-6);font-family:var(--mono);font-size:var(--text-micro);align-items:center;gap:6px;display:flex}.crumbs a,.crumbs button{font-family:var(--mono);font-size:var(--text-micro);color:var(--ink-faint);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}.crumbs a:hover,.crumbs button:hover{color:var(--ink)}.crumbs .here{color:var(--ink-dim)}.month-nav{justify-content:space-between;align-items:center;display:flex}.month-nav__link{font-family:var(--mono);font-size:var(--text-micro);color:var(--ink-dim);border:1px solid var(--line);border-radius:var(--radius-pill);background:0 0;align-items:center;gap:6px;padding:6px 14px;text-decoration:none;transition:color .15s,border-color .15s;display:inline-flex}.month-nav__link:hover{color:var(--ink);border-color:#ffffff2e}.month-nav__link--disabled,.month-nav__link--disabled:hover{color:var(--ink-faint);opacity:.5;cursor:default;border-color:#0000}.meta-grid{gap:var(--space-6);padding:var(--space-4) var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.6fr) minmax(0,1fr);display:grid}.meta-label{font-family:var(--mono);font-size:var(--text-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:var(--space-1)}.meta-value{font-family:var(--mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--ink)}.meta-value--sans{font-family:var(--sans);font-size:var(--text-sm);color:var(--ink-dim);line-height:1.4}.field-error{font-family:var(--mono);font-size:var(--text-micro);color:var(--loss-raised);margin-top:var(--space-2);line-height:1.5}.reveal{animation:.2s ease-out reveal}@keyframes reveal{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.reveal{animation:none}.chevron{transition:none}}.loading{text-align:center;color:var(--ink-dim);padding:80px 0}.error-card{margin-top:var(--space-6);padding:var(--space-4) var(--space-5);background:var(--loss-tint);border-radius:var(--radius-md);color:var(--loss-raised);font-size:var(--text-sm);border:1px solid #e85d5d59}.stat{padding:0 var(--space-8);text-align:left;border-left:1px solid var(--line)}.stat:first-child{border-left:0;padding-left:0}.stat b{font-family:var(--mono);font-size:var(--text-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin-bottom:6px;font-weight:500;display:block}.stat span{font-family:var(--mono);font-size:var(--text-sm);color:var(--ink-dim)}.cell-label{font-family:var(--sans);font-size:var(--text-sm);color:var(--ink)}.cell{font-family:var(--mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--ink)}.cell--value{color:var(--ink-value)}.cell--dim{color:var(--ink-dim)}.cell--faint{color:var(--ink-faint)}.cell--soft{color:var(--ink-soft)}.cell--gain{color:var(--gain)}.cell--loss{color:var(--loss)}.cell--inflow{color:var(--inflow)}.cell--outflow{color:var(--outflow)}.cell--sm{font-size:var(--text-sm)}.cell--strong{font-weight:500}.section{margin-bottom:var(--space-8)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page-head{margin-bottom:var(--space-8)}.page-head .page-title{margin-bottom:var(--space-1)}.page-head .page-subtitle{margin-top:var(--space-1);margin-bottom:0}.metric-grid{display:grid}.metric-grid--cols-4{grid-template-columns:repeat(4,1fr)}.metric-grid--cols-3{grid-template-columns:repeat(3,1fr)}@media (width<=720px){.metric-grid--cols-3,.metric-grid--cols-4{grid-template-columns:1fr}.metric+.metric{border-left:0;border-top:1px solid var(--line-faint)}}.metric{padding:var(--space-4) var(--space-5)}.metric+.metric{border-left:1px solid var(--line-faint)}.metric-value{font-family:var(--mono);font-size:var(--text-lg);font-variant-numeric:tabular-nums;color:var(--ink);font-weight:300}.metric-value--value{color:var(--ink-value)}.metric-value--gain{color:var(--gain)}.metric-value--loss{color:var(--loss)}.metric-value--lg{font-size:var(--text-2xl)}.empty-state{padding:var(--space-16) var(--space-5);text-align:center}.empty-state-title{font-family:var(--sans);font-size:var(--text-md);color:var(--ink-dim);font-weight:500}.empty-state-body{font-family:var(--sans);font-size:var(--text-md);color:var(--ink-dim);margin-top:var(--space-1)}.empty-state-action{margin-top:var(--space-4)}
