@font-face{font-family:Newsreader;src:url(/fonts/newsreader-latin.woff2) format("woff2");font-style:normal;font-weight:400 600;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/ibm-plex-sans-latin.woff2) format("woff2");font-style:normal;font-weight:400 700;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-regular-latin.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-medium-latin.woff2) format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-semibold-latin.woff2) format("woff2");font-style:normal;font-weight:600;font-display:swap}:root{color-scheme:light;font-family:IBM Plex Sans,ui-sans-serif,system-ui,-apple-system,sans-serif;font-synthesis:none;--font-display: "Newsreader", ui-serif, Georgia, serif;--font-sans: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;--paper: #f7f5f0;--paper-raised: #ffffff;--paper-sunken: #f0ede5;--ink-900: #201e1a;--ink-700: #48453c;--ink-500: #6f6a5f;--ink-300: #a29c8c;--border: #e4dfd3;--border-strong: #d2cbba;--control-border: #8d8779;--surface-950: #12151a;--surface-900: #191d23;--surface-800: #232830;--surface-700: #2c323c;--surface-border: #323947;--surface-text: #e7e9ec;--surface-text-muted: #8f97a3;--accent-100: #e7ecfe;--accent-300: #aebef9;--accent-600: #2b4fe0;--accent-700: #1f3bae;--accent-900: #16276e;--clay-100: #f5e4d6;--clay-300: #e3b48c;--clay-600: #ba5f2e;--clay-700: #8f4520;--gain-100: #ddf3e7;--gain-500: #1fae6e;--gain-600: #157f45;--loss-100: #fbe3e1;--loss-500: #e14a40;--loss-600: #c23b33;--warn-100: #fbeacb;--warn-600: #8a5709;--focus-ring: #2b4fe0;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .9375rem;--text-md: 1.0625rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 1.875rem;--text-3xl: 2.375rem;--leading-tight: 1.15;--leading-snug: 1.35;--leading-normal: 1.55;--leading-relaxed: 1.7;--tracking-tight: -.02em;--tracking-wide: .04em;--tracking-wider: .08em;--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-12: 48px;--space-16: 64px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 20px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgb(32 30 26 / .06);--shadow-md: 0 4px 12px rgb(32 30 26 / .08), 0 1px 2px rgb(32 30 26 / .05);--shadow-lg: 0 12px 32px rgb(32 30 26 / .12), 0 2px 6px rgb(32 30 26 / .06);--shadow-surface: 0 8px 24px rgb(0 0 0 / .35);--ease-standard: cubic-bezier(.2, .7, .3, 1);--duration-fast: .12s;--duration-base: .18s;--duration-slow: .28s}*,*:before,*:after{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--paper)}body{margin:0;min-width:320px;min-height:100vh;background:var(--paper);color:var(--ink-900);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}button,input,select,textarea,a{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent-300);outline-offset:2px}::selection{background:var(--accent-100);color:var(--accent-900)}h1,h2,h3,p{margin-top:0}h1,h2,h3{margin-bottom:0;color:var(--ink-900);font-family:var(--font-display);font-weight:500;letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}h1{font-size:clamp(2rem,4vw,var(--text-3xl))}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}a{color:var(--accent-600);text-decoration:none;text-underline-offset:.18em}a:hover{color:var(--accent-700);text-decoration:underline}strong{font-weight:600}#root{min-height:100vh}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh;background:radial-gradient(circle at 8% 2%,rgb(231 236 254 / .38),transparent 24rem),var(--paper)}.skip-link{position:fixed;top:var(--space-3);left:var(--space-3);z-index:200;padding:8px 12px;border-radius:var(--radius-md);background:var(--ink-900);color:#fff;font-weight:600;transform:translateY(-160%);transition:transform var(--duration-fast) var(--ease-standard)}.skip-link:focus{color:#fff;transform:translateY(0)}.portfolio-workspace{display:grid;width:min(100%,1440px);min-height:calc(100vh - 65px);margin:0 auto;grid-template-columns:248px minmax(0,1fr);align-items:stretch}.portfolio-workspace__content{min-width:0}.portfolio-workspace__content:focus{outline:none}.portfolio-workspace__content .page-container{width:100%;max-width:1164px}.portfolio-sidebar{position:sticky;top:65px;display:flex;height:calc(100vh - 65px);padding:var(--space-6) var(--space-4);border-right:1px solid var(--border);flex-direction:column;gap:var(--space-5);background:#f7f5f0b8;overflow-y:auto}.portfolio-selector{display:flex;min-width:0;flex-direction:column;gap:6px}.portfolio-selector__label{color:var(--ink-500);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wider);line-height:1;text-transform:uppercase}.portfolio-selector select{width:100%;min-height:42px;padding:8px 34px 8px 11px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--paper-raised);color:var(--ink-900);cursor:pointer;font-weight:600;outline:none;text-overflow:ellipsis}.portfolio-selector select:hover{border-color:var(--ink-300)}.portfolio-selector select:focus{border-color:var(--accent-600);box-shadow:0 0 0 3px var(--accent-100)}.portfolio-navigation{display:flex;flex-direction:column;gap:var(--space-1)}.portfolio-navigation__link{display:flex;min-width:0;min-height:42px;padding:9px 11px;border:1px solid transparent;border-radius:var(--radius-md);align-items:center;gap:var(--space-3);color:var(--ink-700);font-size:var(--text-sm);font-weight:500;transition:color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard)}.portfolio-navigation__link:hover{background:var(--paper-sunken);color:var(--ink-900);text-decoration:none}.portfolio-navigation__link--active{border-color:#2b4fe029;background:var(--accent-100);color:var(--accent-700);font-weight:600}.portfolio-navigation__icon{display:grid;width:19px;height:19px;flex:0 0 auto;place-items:center}.portfolio-navigation__icon svg,.tool-search svg,.news-placeholder__mark svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.portfolio-sidebar__footer{display:flex;padding-top:var(--space-4);border-top:1px solid var(--border);margin-top:auto;flex-direction:column;align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm)}.portfolio-sidebar__footer a{color:var(--ink-500);font-weight:500}.portfolio-mobile-context{display:none}.page-container{display:flex;width:min(100%,1164px);margin:0 auto;padding:var(--space-8);flex-direction:column;gap:var(--space-6)}.page-container--narrow{width:min(100%,964px)}.topbar{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--border);background:#ffffffeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.topbar__inner{display:flex;width:min(100%,1280px);min-height:64px;margin:0 auto;padding:0 var(--space-8);align-items:center;justify-content:space-between;gap:var(--space-4)}.topbar__identity,.topbar__actions,.breadcrumbs{display:flex;align-items:center}.topbar__identity{min-width:0;gap:var(--space-4)}.topbar__brand{flex:0 0 auto;color:var(--ink-900);font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;letter-spacing:var(--tracking-tight)}.topbar__brand:hover{color:var(--ink-900);text-decoration:none}.topbar__trail{min-width:0;padding-left:var(--space-4);border-left:1px solid var(--border);color:var(--ink-500);font-size:var(--text-sm)}.topbar__actions{flex:0 0 auto;gap:var(--space-2)}.breadcrumbs{min-width:0;gap:var(--space-2);white-space:nowrap}.breadcrumbs span:last-child{overflow:hidden;color:var(--ink-700);text-overflow:ellipsis}.button{display:inline-flex;min-height:38px;border:1px solid transparent;border-radius:var(--radius-md);align-items:center;justify-content:center;gap:var(--space-2);color:var(--ink-900);cursor:pointer;font-weight:600;line-height:1.2;transition:filter var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.button:hover:not(:disabled){filter:brightness(.95);text-decoration:none}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{cursor:not-allowed;opacity:.5}.button--primary{border-color:var(--accent-600);background:var(--accent-600);color:#fff}.button--secondary{border-color:var(--border-strong);background:var(--paper-raised);color:var(--ink-900)}.button--secondary:hover:not(:disabled){border-color:var(--ink-300);background:var(--paper-sunken)}.button--ghost{background:transparent;color:var(--ink-700)}.button--ghost:hover:not(:disabled){background:var(--paper-sunken)}.button--danger{border-color:var(--loss-600);background:var(--loss-600);color:#fff}.button--danger-text{color:var(--loss-600)}.button--sm{min-height:32px;padding:6px 12px;font-size:var(--text-sm)}.button--md{padding:9px 16px;font-size:var(--text-base)}.button--lg{min-height:46px;padding:12px 20px;font-size:var(--text-md)}.button--full-width{width:100%}.field{display:flex;min-width:0;flex-direction:column;gap:6px;color:var(--ink-700);font-size:var(--text-sm)}.field__label,.file-picker__label{color:var(--ink-700);font-weight:500}.field__hint{color:var(--ink-500);font-size:var(--text-xs);line-height:var(--leading-snug)}.field input,.field select{width:100%;min-height:42px;padding:9px 12px;border:1px solid var(--control-border);border-radius:var(--radius-md);background:var(--paper-raised);color:var(--ink-900);font-size:var(--text-base);outline:none;transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.field input:hover,.field select:hover{border-color:var(--ink-700)}.field input:focus,.field select:focus{border-color:var(--accent-600);box-shadow:0 0 0 3px var(--accent-100)}.field input::placeholder{color:var(--ink-300);opacity:1}.field input:disabled,.field select:disabled{background:var(--paper-sunken);cursor:not-allowed}.choice{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--ink-700);cursor:pointer;font-size:var(--text-sm)}.choice input{width:17px;height:17px;margin:0;accent-color:var(--accent-600)}.alert{display:flex;padding:11px 14px;border:1px solid transparent;border-radius:var(--radius-md);align-items:center;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm);line-height:var(--leading-snug)}.alert--error{border-color:#c23b333d;background:var(--loss-100);color:#8f2923}.alert--info{border-color:#2b4fe033;background:var(--accent-100);color:var(--accent-900)}.alert--success{border-color:#157f4538;background:var(--gain-100);color:#0f6938}.badge{display:inline-flex;min-height:24px;padding:3px 9px;border-radius:var(--radius-pill);align-items:center;justify-content:center;color:var(--ink-700);font-size:.6875rem;font-weight:700;letter-spacing:var(--tracking-wide);line-height:1.1;text-transform:uppercase;white-space:nowrap}.badge--neutral{background:var(--paper-sunken)}.badge--accent{background:var(--accent-100);color:var(--accent-700)}.badge--gain{background:var(--gain-100);color:#0e6938}.badge--loss{background:var(--loss-100);color:#922c26}.badge--warn{background:var(--warn-100);color:var(--warn-600)}.eyebrow{margin-bottom:var(--space-2);color:var(--ink-500);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wider);line-height:1;text-transform:uppercase}.page-header,.dashboard-header,.section-heading,.section-actions,.portfolio-create,.file-upload-row,.dialog-form-actions{display:flex}.page-header,.dashboard-header,.section-heading{align-items:flex-end;justify-content:space-between;gap:var(--space-6)}.page-header{margin-bottom:var(--space-2)}.page-header__lede{max-width:430px;margin-bottom:2px;color:var(--ink-500);line-height:var(--leading-relaxed)}.dashboard-header{padding-top:var(--space-2)}.page-subtitle{max-width:700px;margin:var(--space-2) 0 0;color:var(--ink-500);line-height:var(--leading-relaxed)}.page-actions{padding-bottom:2px}.section-link{flex:0 0 auto;color:var(--accent-700);font-size:var(--text-sm);font-weight:600}.currency-code{display:inline-flex;width:fit-content;min-height:26px;padding:4px 9px;border:1px solid var(--border);border-radius:var(--radius-pill);align-items:center;background:var(--paper-raised);color:var(--ink-700);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;white-space:nowrap}.portfolio-create{padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:flex-end;gap:var(--space-3);background:var(--paper-raised);box-shadow:var(--shadow-sm)}.portfolio-create__field{width:min(100%,420px)}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.metric-card{display:flex;min-width:0;min-height:138px;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;justify-content:center;gap:7px;background:var(--paper-raised);box-shadow:var(--shadow-sm)}.metric-card__label{color:var(--ink-500);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wide);line-height:var(--leading-snug);text-transform:uppercase}.metric-card__value{overflow:hidden;color:var(--ink-900);font-family:var(--font-mono);font-size:clamp(1.35rem,2.3vw,var(--text-2xl));font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.035em;line-height:var(--leading-snug);text-overflow:ellipsis;white-space:nowrap}.metric-card__value--gain,.metric-card__value--gain .pnl-value{color:var(--gain-600)}.metric-card__value--loss,.metric-card__value--loss .pnl-value{color:var(--loss-600)}.metric-card__sub{color:var(--ink-500);font-size:var(--text-xs)}.pnl-value{color:var(--ink-700);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500;white-space:nowrap}.pnl-value--gain{color:var(--gain-600)}.pnl-value--loss{color:var(--loss-600)}.portfolio-insights-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.75fr);align-items:stretch;gap:var(--space-4)}.performance-card{display:flex;min-width:0;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;background:var(--paper-raised);box-shadow:var(--shadow-sm)}.performance-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.performance-card__header h2,.performance-card__header p{margin-bottom:0}.performance-mode{display:inline-flex;padding:3px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--paper-sunken)}.performance-mode__button{display:grid;width:35px;height:29px;padding:0;border:0;border-radius:var(--radius-pill);place-items:center;background:transparent;color:var(--ink-500);cursor:pointer;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600}.performance-mode__button.is-active{background:var(--paper-raised);color:var(--ink-900);box-shadow:var(--shadow-sm)}.performance-card__value{display:grid;padding-top:var(--space-5);gap:2px}.performance-card__value>span{color:var(--ink-500);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase}.performance-card__value>strong{overflow:hidden;font-family:var(--font-mono);font-size:clamp(1.65rem,2.6vw,2.15rem);font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:var(--leading-snug);text-overflow:ellipsis;white-space:nowrap}.performance-card__returns{display:flex;gap:var(--space-3);font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:600}.performance-tone--gain{color:var(--gain-600)}.performance-tone--loss{color:var(--loss-600)}.performance-tone--neutral{color:var(--ink-500)}.performance-periods{display:flex;padding-top:var(--space-5);gap:var(--space-1);overflow-x:auto}.performance-periods__button{min-width:44px;min-height:34px;padding:6px 11px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--ink-300);cursor:pointer;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600}.performance-periods__button:hover{background:var(--paper-sunken);color:var(--ink-700)}.performance-periods__button.is-active{background:var(--ink-900);color:var(--paper-raised)}.performance-chart-shell{position:relative;display:grid;min-height:260px;margin-top:var(--space-2);place-items:stretch}.performance-chart-state{display:grid;min-height:260px;padding:var(--space-6);place-items:center;align-content:center;gap:var(--space-2);color:var(--ink-500);text-align:center}.performance-chart-state strong{color:var(--ink-700)}.performance-chart-loading{position:absolute;top:var(--space-3);right:var(--space-3);display:grid;width:30px;height:30px;border:1px solid var(--border);border-radius:50%;place-items:center;background:#ffffffe6;box-shadow:var(--shadow-sm)}.performance-chart-loading .spinner{width:14px;height:14px}.performance-tooltip{min-width:185px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:#fffffff7;box-shadow:var(--shadow-md)}.performance-tooltip__date{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);color:var(--ink-500);font-size:var(--text-xs)}.performance-tooltip__date span{padding:2px 6px;border-radius:var(--radius-pill);background:var(--warn-100);color:var(--warn-600);font-size:.65rem;font-weight:600}.performance-tooltip>strong{display:block;margin-top:3px;font-family:var(--font-mono);font-size:var(--text-md);font-variant-numeric:tabular-nums}.performance-tooltip dl{display:grid;padding-top:9px;margin:9px 0 0;border-top:1px solid var(--border);gap:5px}.performance-tooltip dl div{display:flex;justify-content:space-between;gap:var(--space-4)}.performance-tooltip dt,.performance-tooltip dd{margin:0;font-size:var(--text-xs)}.performance-tooltip dt{color:var(--ink-500)}.performance-tooltip dd{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600}.performance-tooltip--assets{min-width:min(310px,78vw);max-height:320px;overflow-y:auto}.performance-tooltip--assets dl{padding-top:0;margin-top:7px;border-top:0;gap:7px}.performance-tooltip--assets dt{display:flex;min-width:0;align-items:center;gap:7px}.performance-tooltip--assets dt i,.asset-performance-legend__item>i{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.performance-tooltip--assets dt span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-performance-legend{display:flex;padding:0 10px var(--space-4);flex-wrap:wrap;gap:7px 15px}.asset-performance-legend__item{display:inline-flex;min-width:0;align-items:center;gap:6px;color:var(--ink-700);font-size:var(--text-xs)}.asset-performance-legend__item>span{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-performance-legend__item small{color:var(--ink-300);font-family:var(--font-mono);font-size:.65rem}.performance-card__footer{display:flex;min-height:33px;padding-top:var(--space-3);border-top:1px solid var(--border);align-items:center;justify-content:space-between;gap:var(--space-3);color:var(--ink-500);font-size:var(--text-xs)}.performance-card__footer strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.performance-estimate-note{max-width:310px;text-align:right}.performance-retry{padding:0;border:0;background:transparent;color:var(--accent-700);cursor:pointer;font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px}.allocation-card{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--paper-raised);box-shadow:var(--shadow-sm)}.portfolio-insights-grid .allocation-card{min-width:0}.portfolio-insights-grid .allocation-chart{grid-template-columns:1fr;gap:var(--space-2)}.portfolio-insights-grid .allocation-chart__graphic{width:100%;max-width:290px;margin:0 auto}.portfolio-insights-grid .allocation-legend{max-height:176px}.allocation-card>.section-heading{padding:var(--space-5) var(--space-5) 0}.tabs{display:flex;margin:0 var(--space-5);border-bottom:1px solid var(--border);gap:var(--space-1);overflow-x:auto;scrollbar-width:thin}.tabs__tab{position:relative;padding:11px 14px;border:0;background:transparent;color:var(--ink-500);cursor:pointer;font-size:var(--text-sm);font-weight:500;white-space:nowrap}.tabs__tab:after{position:absolute;right:12px;bottom:-1px;left:12px;height:2px;background:transparent;content:""}.tabs__tab:hover{color:var(--ink-900)}.tabs__tab--active{color:var(--ink-900);font-weight:600}.tabs__tab--active:after{background:var(--accent-600)}.allocation-card__panel{padding:var(--space-4) var(--space-5) var(--space-5)}.allocation-chart{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(260px,1.2fr);align-items:center;gap:var(--space-8)}.allocation-chart__graphic{min-width:0}.allocation-legend{display:grid;max-height:220px;padding:0;margin:0;gap:var(--space-1);list-style:none;overflow-y:auto}.allocation-legend li{display:grid;min-height:32px;padding:5px 7px;border-radius:var(--radius-sm);grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:var(--space-2);color:var(--ink-700);font-size:var(--text-sm)}.allocation-legend li:hover{background:var(--paper-sunken)}.allocation-legend__dot{width:9px;height:9px;border-radius:50%}.allocation-legend__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.allocation-legend__value{color:var(--ink-500);font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.allocation-empty{display:grid;min-height:180px;place-items:center;color:var(--ink-500);text-align:center}.data-section{display:flex;flex-direction:column;gap:var(--space-3)}.section-heading{min-height:44px}.section-heading--compact{min-height:auto}.section-heading__meta,.table-caption{color:var(--ink-500);font-size:var(--text-sm)}.section-actions,.dialog-form-actions{align-items:center;justify-content:flex-end;gap:var(--space-2)}.table-shell{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--paper-raised);box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:collapse;color:var(--ink-900);font-size:var(--text-sm)}th,td{padding:11px 14px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{background:var(--paper-sunken);color:var(--ink-500);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wide);line-height:var(--leading-snug);text-transform:uppercase;white-space:nowrap}tbody tr{transition:background var(--duration-fast) var(--ease-standard)}tbody tr:hover{background:#fbfaf7}tbody tr:last-child td{border-bottom:0}td.num,th.num,.date-cell{font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}td.num,th.num,.table-action{text-align:right}.table-action{width:1%;white-space:nowrap}.table-link{color:var(--accent-700);font-weight:600}.empty-cell{height:80px;color:var(--ink-500);text-align:center}.instrument-cell{display:grid;min-width:220px;gap:1px}.instrument-cell strong{font-family:var(--font-mono);font-size:var(--text-sm)}.instrument-cell span{color:var(--ink-500);font-size:var(--text-xs)}.table-caption{margin:0;text-align:right}.login-screen,.loading-screen{display:grid;min-height:100vh;padding:var(--space-6);place-items:center}.login-card{display:flex;width:min(100%,380px);padding:var(--space-8);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:var(--space-4);background:var(--paper-raised);box-shadow:var(--shadow-md)}.login-card__header{margin-bottom:var(--space-1)}.login-card__header p{margin:3px 0 0;color:var(--ink-500);font-size:var(--text-sm)}.wordmark,.loading-screen__brand{color:var(--ink-900);font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}.auth-mode{display:flex;padding:0;border:0;margin:0;gap:var(--space-5)}.loading-screen{align-content:center;justify-items:center;gap:var(--space-3);color:var(--ink-500)}.spinner{width:26px;height:26px;border:2px solid var(--accent-100);border-top-color:var(--accent-600);border-radius:50%;animation:spin .8s linear infinite}.spinner--small{width:15px;height:15px}@keyframes spin{to{transform:rotate(360deg)}}.state-panel{display:flex;min-height:420px;padding:var(--space-10);align-items:center;justify-content:center;flex-direction:column;gap:var(--space-4);color:var(--ink-500);text-align:center}.state-panel h1{max-width:640px}.state-panel p{max-width:540px;margin-bottom:0}.state-panel--page{min-height:360px}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;padding:var(--space-6);align-items:center;justify-content:center;background:#12110e85;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow-y:auto;animation:fade-in var(--duration-base) var(--ease-standard)}.dialog{display:flex;width:min(100%,560px);max-height:calc(100vh - 48px);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;background:var(--paper-raised);box-shadow:var(--shadow-lg);animation:dialog-in var(--duration-base) var(--ease-standard)}.dialog--sm{width:min(100%,420px)}.dialog--lg{width:min(100%,780px)}.dialog--xl{width:min(100%,1100px)}.dialog__header{display:flex;padding:var(--space-6) var(--space-6) var(--space-4);align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.dialog__title{color:var(--ink-900);font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}.dialog__description{max-width:700px;margin-top:var(--space-2);color:var(--ink-500);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.dialog__close{display:grid;width:34px;height:34px;padding:0;border:0;border-radius:var(--radius-md);flex:0 0 auto;place-items:center;background:transparent;color:var(--ink-500);cursor:pointer;font-size:1.45rem;line-height:1}.dialog__close:hover{background:var(--paper-sunken);color:var(--ink-900)}.dialog__close:disabled{cursor:not-allowed;opacity:.35}.dialog__body{padding:0 var(--space-6) var(--space-6);color:var(--ink-700);overflow-y:auto}.dialog__body>p:last-child{margin-bottom:0}.dialog__footer{display:flex;padding:var(--space-4) var(--space-6) var(--space-6);border-top:1px solid var(--border);align-items:center;justify-content:flex-end;gap:var(--space-2)}@keyframes fade-in{0%{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px) scale(.99)}}.transaction-form,.csv-import{display:flex;flex-direction:column;gap:var(--space-4)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.field--wide{grid-column:1 / -1}.form-status{display:flex;margin:0;align-items:center;gap:var(--space-2);color:var(--ink-500);font-size:var(--text-sm)}.search-results{display:grid;max-height:260px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--paper-raised);box-shadow:var(--shadow-md);overflow-y:auto}.search-result{display:grid;width:100%;min-height:62px;padding:10px 12px;border:0;border-bottom:1px solid var(--border);grid-template-columns:minmax(180px,1.2fr) minmax(150px,.8fr) auto;align-items:center;gap:var(--space-3);background:transparent;color:var(--ink-900);cursor:pointer;text-align:left}.search-result:last-child{border-bottom:0}.search-result:hover{background:var(--paper-sunken)}.search-result__identity{display:grid;min-width:0}.search-result__identity strong{font-family:var(--font-mono)}.search-result__identity span,.search-result__meta{overflow:hidden;color:var(--ink-500);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap}.supporting-copy{margin-bottom:0;color:var(--ink-500);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.supporting-copy--compact{line-height:var(--leading-normal)}.subtle{color:var(--ink-500);font-size:var(--text-xs)}.file-upload-row{padding:var(--space-4);border:1px dashed var(--ink-300);border-radius:var(--radius-lg);align-items:flex-end;gap:var(--space-3);background:#fbfaf7}.file-picker{display:flex;min-width:0;flex:1;flex-direction:column;gap:6px}.file-picker__control{display:flex;min-height:42px;padding:6px;border:1px solid var(--control-border);border-radius:var(--radius-md);align-items:center;gap:var(--space-3);background:var(--paper-raised);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.file-picker:hover .file-picker__control{border-color:var(--ink-700)}.file-picker:focus-within .file-picker__control{border-color:var(--accent-600);box-shadow:0 0 0 3px var(--accent-100)}.file-picker--disabled{opacity:.62}.file-picker--disabled .file-picker__control{cursor:not-allowed}.file-picker__button{padding:5px 9px;border-radius:var(--radius-sm);flex:0 0 auto;background:var(--paper-sunken);color:var(--ink-900);font-size:var(--text-sm);font-weight:600}.file-picker__value{min-width:0;overflow:hidden;color:var(--ink-500);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap}.import-summary{display:flex;flex-wrap:wrap;gap:var(--space-2)}.import-details{max-height:360px;overflow:auto}.import-details table{min-width:980px}.feature-page-header{min-height:112px}.heading-badge-row{display:flex;margin-bottom:var(--space-2);align-items:center;gap:var(--space-3)}.heading-badge-row .eyebrow{margin-bottom:0}.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.feature-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.feature-card{display:flex;min-height:218px;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;justify-content:space-between;gap:var(--space-5);background:var(--paper-raised);box-shadow:var(--shadow-sm)}.feature-card h2,.feature-card h3{margin-bottom:var(--space-2)}.feature-card p{margin-bottom:0;color:var(--ink-500);line-height:var(--leading-relaxed)}.feature-card__index{color:var(--accent-600);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wider)}.feature-card .feature-card__detail{padding-top:var(--space-4);border-top:1px solid var(--border);color:var(--ink-700);font-size:var(--text-sm);line-height:var(--leading-normal)}.feature-card--compact{min-height:170px;justify-content:flex-start}.principles-card,.tool-search-card,.recent-tools-card,.news-placeholder{padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--paper-raised);box-shadow:var(--shadow-sm)}.principles-card{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);align-items:start;gap:var(--space-8)}.principles-card ul{display:grid;padding:0;margin:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);list-style:none}.principles-card li{display:flex;min-width:0;flex-direction:column;gap:var(--space-2)}.principles-card li strong{color:var(--ink-900)}.principles-card li span{color:var(--ink-500);font-size:var(--text-sm);line-height:var(--leading-normal)}.tool-search-card{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(320px,1.2fr);align-items:end;gap:var(--space-8)}.tool-search{position:relative;display:flex;align-items:center}.tool-search svg{position:absolute;left:13px;width:18px;height:18px;color:var(--ink-500);pointer-events:none}.tool-search input{width:100%;min-height:46px;padding:10px 14px 10px 42px;border:1px solid var(--control-border);border-radius:var(--radius-md);background:var(--paper-raised);color:var(--ink-900);outline:none}.tool-search input:focus{border-color:var(--accent-600);box-shadow:0 0 0 3px var(--accent-100)}.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.tool-card{display:flex;min-height:212px;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;justify-content:space-between;gap:var(--space-5);background:var(--paper-raised);box-shadow:var(--shadow-sm)}.tool-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.tool-card__header>span:last-child{color:var(--ink-500);font-size:var(--text-xs)}.tool-card h3{margin-bottom:var(--space-2)}.tool-card p,.recent-tools-card>p,.news-placeholder p{margin-bottom:0;color:var(--ink-500);line-height:var(--leading-relaxed)}.tool-card__context{display:flex;align-items:center;gap:var(--space-2);color:var(--ink-500);font-size:var(--text-xs)}.tool-card__dot{width:7px;height:7px;border-radius:50%;background:var(--accent-600)}.empty-feature-state{display:grid;min-height:190px;padding:var(--space-6);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);place-items:center;align-content:center;gap:var(--space-2);color:var(--ink-500);text-align:center}.empty-feature-state p{margin-bottom:0}.recent-tools-card{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);align-items:center;gap:var(--space-8)}.news-placeholder{display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;gap:var(--space-6)}.news-placeholder__mark{display:grid;width:74px;height:74px;border-radius:var(--radius-lg);place-items:center;background:var(--accent-100);color:var(--accent-700)}.news-placeholder__mark svg{width:34px;height:34px}@media (max-width: 1340px) and (min-width: 901px){.portfolio-workspace .metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1200px){.portfolio-insights-grid{grid-template-columns:1fr}.portfolio-insights-grid .allocation-chart{grid-template-columns:minmax(220px,.8fr) minmax(240px,1.2fr);gap:var(--space-6)}.portfolio-insights-grid .allocation-legend{max-height:220px}}@media (max-width: 1023px){.portfolio-workspace{grid-template-columns:220px minmax(0,1fr)}.page-container{padding:var(--space-6)}.topbar__inner{padding:0 var(--space-6)}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.allocation-chart{gap:var(--space-4)}.feature-grid--three{grid-template-columns:1fr}.principles-card,.tool-search-card{grid-template-columns:1fr;gap:var(--space-5)}.principles-card ul{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 900px){.portfolio-workspace{display:block}.portfolio-sidebar{display:none}.portfolio-mobile-context{position:sticky;top:65px;z-index:20;display:block;border-bottom:1px solid var(--border);background:#f7f5f0f5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.portfolio-mobile-context .portfolio-selector{padding:var(--space-3) var(--space-6) var(--space-2)}.portfolio-mobile-context .portfolio-selector__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.portfolio-mobile-context .portfolio-selector select{min-height:38px}.portfolio-mobile-context .portfolio-navigation{display:flex;padding:0 var(--space-6);flex-direction:row;gap:var(--space-1);overflow-x:auto;scrollbar-width:thin}.portfolio-mobile-context .portfolio-navigation__link{position:relative;min-width:max-content;min-height:44px;padding:9px 11px 11px;border:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0}.portfolio-mobile-context .portfolio-navigation__link--active{background:transparent}.portfolio-mobile-context .portfolio-navigation__link--active:after{position:absolute;right:10px;bottom:0;left:10px;height:2px;background:var(--accent-600);content:""}}@media (max-width: 700px){.portfolio-mobile-context{top:58px}.portfolio-mobile-context .portfolio-selector,.portfolio-mobile-context .portfolio-navigation{padding-right:var(--space-4);padding-left:var(--space-4)}.page-container{padding:var(--space-5) var(--space-4) var(--space-8);gap:var(--space-5)}.topbar__inner{min-height:58px;padding:0 var(--space-4)}.topbar__identity{gap:var(--space-2)}.topbar__trail{max-width:52vw;padding-left:var(--space-2)}.topbar__actions .button{padding-right:8px;padding-left:8px}.page-header,.dashboard-header,.section-heading--actions,.file-upload-row{align-items:stretch;flex-direction:column;gap:var(--space-3)}.page-header__lede{max-width:none}.portfolio-create{align-items:stretch;flex-direction:column}.portfolio-create__field{width:100%}.metrics-grid{grid-template-columns:1fr}.metric-card{min-height:118px}.performance-card{padding:var(--space-4)}.performance-card__footer{align-items:flex-start;flex-direction:column}.performance-estimate-note{max-width:none;text-align:left}.allocation-card>.section-heading{padding:var(--space-4) var(--space-4) 0}.tabs{margin:0 var(--space-4)}.allocation-card__panel{padding:var(--space-4)}.allocation-chart,.portfolio-insights-grid .allocation-chart{grid-template-columns:1fr;gap:var(--space-2)}.allocation-chart__graphic{max-width:360px;width:100%;margin:0 auto}.allocation-legend{max-height:190px}.section-actions{width:100%}.section-actions .button{flex:1}.login-screen{padding:var(--space-4)}.login-card{padding:var(--space-6)}.dialog-backdrop{padding:var(--space-3);align-items:flex-end}.dialog{max-height:calc(100vh - 24px);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-sm) var(--radius-sm)}.dialog__header{padding:var(--space-5) var(--space-4) var(--space-3)}.dialog__body{padding:0 var(--space-4) var(--space-5)}.dialog__footer{padding:var(--space-4);flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.field--wide{grid-column:auto}.search-result{grid-template-columns:minmax(0,1fr) auto}.search-result__meta{display:none}.dialog-form-actions{flex-wrap:wrap}.dialog-form-actions .button{flex:1 1 160px}.feature-grid,.tool-grid,.principles-card,.recent-tools-card,.news-placeholder,.principles-card ul{grid-template-columns:1fr}.feature-card,.tool-card{min-height:auto}.news-placeholder__mark{width:60px;height:60px}}@media (max-width: 430px){.topbar__trail{display:none}.auth-mode{justify-content:space-between;gap:var(--space-2)}.section-actions{flex-direction:column;align-items:stretch}.dialog__footer .button{flex:1 1 140px}.quick-transaction-button__label{display:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
