:root{color:#ecf4ee;background:#07110e;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#07110e80,#07110edb),linear-gradient(90deg,#07110ec2,#07110e47 46%,#07110ebd),url(https://izsbecyqrzozrtzqeoou.supabase.co/storage/v1/object/sign/images/dynamic-data-visualization-3d.jpg?token=eyJraWQiOiJzdG9yYWdlLXVybC1zaWduaW5nLWtleV84NThhMmJlMi01NGI4LTRmNzktYTU2ZC1lZDQ2MDhkZTVmOTQiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJpbWFnZXMvZHluYW1pYy1kYXRhLXZpc3VhbGl6YXRpb24tM2QuanBnIiwiaWF0IjoxNzc2NTg5MjAzLCJleHAiOjIwOTE5NDkyMDN9.hsIYWaiJCWhzXYJ7ijzW4MEfcoUQPisaBchsx_rhRfU),#07110e;background-attachment:fixed;background-position:center,center,center top;background-repeat:no-repeat;background-size:auto,auto,cover;overflow-x:hidden}body:before,body:after{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none;content:""}body:before{background:linear-gradient(rgba(139,205,169,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(139,205,169,.08) 1px,transparent 1px);background-size:58px 58px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.75),transparent 82%);mask-image:linear-gradient(180deg,rgba(0,0,0,.75),transparent 82%)}body:after{z-index:-1;background:radial-gradient(circle at 18% 22%,rgba(58,142,103,.22),transparent 28%),radial-gradient(circle at 84% 18%,rgba(196,155,69,.16),transparent 26%),linear-gradient(90deg,#07110eb8,#07110e2e 42%,#07110ead)}a{color:inherit}.inline-link{color:#8be0ad;font-weight:800}.app-shell{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:24px;width:100%;min-height:100vh;padding:24px}.app-sidebar{position:sticky;top:24px;align-self:start;display:grid;gap:18px;min-height:calc(100vh - 48px);padding:22px;border:1px solid rgba(173,202,184,.22);border-radius:14px;background:linear-gradient(180deg,#0a1c16eb,#081612d6),linear-gradient(135deg,rgba(90,189,132,.12),transparent 40%);box-shadow:0 24px 70px #0000004d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.sidebar-brand{display:grid;gap:10px;padding-bottom:6px;border-bottom:1px solid rgba(154,178,160,.16)}.sidebar-brand h1{font-size:clamp(1.55rem,2.2vw,2.05rem)}.sidebar-intro{margin-bottom:0;color:#5f7084;line-height:1.55}.sidebar-actions{display:grid;gap:10px}.sidebar-actions>*{width:100%}.app-content{min-width:0;padding:0 6px 0 0}.hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;min-height:150px;padding:18px 0 24px;border-bottom:1px solid rgba(154,178,160,.22)}.hero-main{display:grid;gap:10px;padding-top:10px}.hero-actions{position:relative;z-index:1;display:flex;align-items:flex-start;justify-items:end;gap:8px;justify-content:flex-end;min-width:min(100%,520px);padding-top:0}.user-menu{display:flex;max-width:min(100%,420px);min-height:42px;align-items:center;gap:10px;padding:6px;border:1px solid rgba(173,202,184,.22);border-radius:8px;background:#0a1c16b8;box-shadow:0 18px 50px #0000003d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.currency-switcher{display:inline-flex;min-height:42px;align-items:stretch;overflow:hidden;border:1px solid rgba(173,202,184,.22);border-radius:8px;background:#0a1c16b8;box-shadow:0 18px 50px #0000003d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.currency-rate{display:inline-flex;min-width:max-content;align-items:center;border-right:1px solid rgba(173,202,184,.16);padding:0 12px;color:#d6b86b;font-size:.76rem;font-weight:900;white-space:nowrap}.currency-switcher button{min-width:52px;border:0;border-right:1px solid rgba(173,202,184,.16);padding:0 12px;background:transparent;color:#9ab2a0;font:inherit;font-size:.78rem;font-weight:900;cursor:pointer}.currency-switcher button:last-child{border-right:0}.currency-switcher button[aria-pressed=true]{background:#8be0ad29;color:#ecf4ee}.user-menu div{min-width:0}.user-menu span{display:block;color:#9ab2a0;font-size:.68rem;font-weight:800;text-transform:uppercase}.user-menu strong{display:block;max-width:230px;overflow:hidden;color:#e8f5ed;font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}.sign-out-button{display:inline-flex;min-height:30px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid rgba(173,202,184,.28);border-radius:8px;padding:5px 9px;background:transparent;color:#c9e6d6;font:inherit;font-size:.82rem;font-weight:800;cursor:pointer}.sign-out-button:disabled{cursor:not-allowed;opacity:.6}.eyebrow{margin:0 0 8px;color:#d6b86b;font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.brand-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}.brand-line .eyebrow{margin-bottom:0}.build-meta{margin:0;color:#9ab2a0;font-size:.78rem;font-weight:700}h1,h2,h3,p{margin-top:0}h1{max-width:780px;margin-bottom:0;font-size:clamp(2rem,4.4vw,3.65rem);line-height:1}h2{margin-bottom:0;font-size:clamp(2rem,4vw,3.25rem);line-height:1}h3{margin-bottom:14px;font-size:1.05rem}.status{display:inline-flex;min-height:34px;align-items:center;justify-content:center;padding:6px 10px;border:1px solid rgba(173,202,184,.22);border-radius:8px;background:#0a1c16b8;color:#c9e6d6;font-size:.86rem;white-space:nowrap}.notice{max-width:720px;margin:28px 0;color:#d5e1d8;font-size:1.1rem}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:0}.metric-card{min-height:88px;padding:14px;border:1px solid rgba(173,202,184,.2);border-radius:8px;background:linear-gradient(180deg,#0c1f19e6,#081612db),linear-gradient(135deg,rgba(57,153,105,.18),transparent 42%);box-shadow:0 18px 50px #00000047;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.metric-card span{display:block;margin-bottom:10px;color:#9ab2a0;font-size:.78rem}.metric-card strong{display:block;color:#e8f5ed;font-size:1.35rem;line-height:1.1;overflow-wrap:anywhere}.overview-section{gap:24px}.overview-hero-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.overview-primary-metric{min-height:88px;padding:14px;border:1px solid rgba(90,189,132,.3);border-radius:8px;background:linear-gradient(180deg,#103426e6,#081612db),linear-gradient(135deg,rgba(90,189,132,.18),transparent 42%);box-shadow:0 18px 50px #00000047;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.overview-primary-metric span,.overview-mini-metrics span{display:block;margin-bottom:10px;color:#9ab2a0;font-size:.82rem;font-weight:800;text-transform:uppercase}.overview-primary-metric strong{display:block;color:#ecf4ee;font-size:clamp(1.25rem,1.8vw,1.55rem);line-height:1.08;overflow-wrap:anywhere}.overview-summary{display:grid;grid-template-columns:minmax(260px,1fr) minmax(280px,.9fr);gap:14px}.overview-copy,.overview-mini-metrics{padding:18px;border:1px solid rgba(173,202,184,.2);border-radius:8px;background:#091814c2;box-shadow:0 18px 50px #00000038;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.overview-copy p{margin-bottom:0;color:#5f7084;line-height:1.6}.overview-copy p+p{margin-top:12px}.overview-mini-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.overview-mini-metrics strong{display:block;color:#e8f5ed;font-size:1.2rem;line-height:1.15;overflow-wrap:anywhere}.chart-panel{padding:18px;border:1px solid rgba(90,189,132,.26);border-radius:8px;background:#09181494;box-shadow:0 18px 50px #00000047;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.chart-heading{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:10px}.chart-heading h3{margin-bottom:0}.chart-heading span{color:#8be0ad;font-size:1rem;font-weight:900}.chart-panel svg{display:block;width:100%;height:260px}.chart-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.digrin-chart svg{height:340px}.heatmap-chart svg{height:620px;min-height:520px}.heatmap-chart{width:100%;padding:10px;background:#030c0ab8}.chart-grid-line{stroke:#adcab824;stroke-width:1}.chart-axis-label{fill:#9ab2a0;font-size:12px;font-weight:700}.chart-axis-title{fill:#b9d9c6;font-size:12px;font-weight:800}.chart-area{fill:#5abd8429}.chart-line{fill:none;stroke:#8be0ad;stroke-linecap:round;stroke-linejoin:round;stroke-width:4}.chart-point{fill:#d6b86b;stroke:#07110e;stroke-width:2}.digrin-bar{opacity:.88}.digrin-bar-0,.digrin-bar-fill-0{fill:#5abd84;background:#5abd84}.digrin-bar-1,.digrin-bar-fill-1{fill:#d6b86b;background:#d6b86b}.digrin-bar-2,.digrin-bar-fill-2{fill:#74a7d8;background:#74a7d8}.digrin-bar-3,.digrin-bar-fill-3{fill:#d97870;background:#d97870}.chart-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:10px}.chart-legend span{display:inline-flex;align-items:center;gap:6px;color:#5f7084;font-size:.82rem;font-weight:800}.digrin-legend-swatch{width:10px;height:10px;border-radius:2px}.heatmap-sector-frame{fill:#030c0a2e;stroke:#030c0ae6;stroke-width:2}.heatmap-sector-label{fill:#dcebe2;font-size:13px;font-weight:800}.heatmap-tile{stroke:#07110ee6;stroke-width:2}.heatmap-ticker{fill:#fff;font-size:16px;font-weight:500;paint-order:stroke;stroke:#07110e9e;stroke-width:3px}.heatmap-value,.heatmap-change{fill:#eef8f1;font-size:12px;font-weight:400;paint-order:stroke;stroke:#07110e8f;stroke-width:3px}.heatmap-neutral{fill:#65756b}.heatmap-red-3{fill:#8f2424}.heatmap-red-2{fill:#bd4440}.heatmap-red-1{fill:#d97870}.heatmap-green-1{fill:#5abd84}.heatmap-green-2{fill:#3f925f}.heatmap-green-3{fill:#246b3b}.pie-list{display:grid;gap:8px}.pie-list-row{display:grid;grid-template-columns:minmax(54px,82px) minmax(120px,1fr) minmax(80px,auto);align-items:center;gap:10px}.pie-list-row span{color:#dcebe2;font-weight:900}.pie-list-row strong{color:#5f7084;font-size:.86rem;text-align:right}.pie-list-bar{height:12px;overflow:hidden;border:1px solid rgba(173,202,184,.16);border-radius:999px;background:#030c0a66}.pie-list-bar i{display:block;height:100%;min-width:2px}.digrin-pie-chart{min-height:380px}.digrin-pie-slice{stroke:#07110ee6;stroke-width:2}.digrin-pie-slice-0{fill:#5abd84;background:#5abd84}.digrin-pie-slice-1{fill:#d6b86b;background:#d6b86b}.digrin-pie-slice-2{fill:#74a7d8;background:#74a7d8}.digrin-pie-slice-3{fill:#d97870;background:#d97870}.digrin-pie-slice-4{fill:#9d83d8;background:#9d83d8}.digrin-pie-slice-5{fill:#61c7b1;background:#61c7b1}.digrin-pie-slice-6{fill:#d89155;background:#d89155}.digrin-pie-slice-7{fill:#9fc56b;background:#9fc56b}.digrin-pie-hole{fill:#07110eeb;stroke:#adcab82e;stroke-width:1}.digrin-pie-percent{fill:#06110d;font-size:12px;font-weight:900;pointer-events:none}.digrin-pie-total-label{fill:#9ab2a0;font-size:12px;font-weight:800;text-transform:uppercase}.digrin-pie-total{fill:#ecf4ee;font-size:14px;font-weight:900}.digrin-pie-legend{display:grid;gap:7px;padding:4px;color:#dcebe2;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.digrin-pie-legend-row{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:13px}.digrin-pie-legend-row i{width:10px;height:10px;border-radius:2px}.digrin-pie-legend-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.digrin-pie-legend-row strong{color:#5f7084;font-size:12px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.admin-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border:1px solid rgba(173,202,184,.2);border-radius:8px;background:#091814db;box-shadow:0 18px 50px #00000047;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.admin-actions p{margin-bottom:0;color:#5f7084;line-height:1.5}.snapshot-admin-panel{display:grid;gap:16px;padding:18px;border:1px solid rgba(173,202,184,.2);border-radius:8px;background:#091814db;box-shadow:0 18px 50px #00000047;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.snapshot-admin-panel p{margin-bottom:0;color:#5f7084;line-height:1.5}.admin-table-wrap{overflow-x:auto}.admin-table{min-width:760px}.admin-table code{color:#d6b86b;font:inherit;font-weight:900}.admin-inline-input{width:min(100%,420px);min-height:38px;border:1px solid rgba(173,202,184,.24);border-radius:8px;padding:7px 9px;background:#030c0ab8;color:#ecf4ee;font:inherit}.admin-checkbox{display:inline-flex;align-items:center;gap:8px;color:#5f7084;font-weight:800;white-space:nowrap}.admin-checkbox input{width:18px;height:18px;accent-color:#5abd84}.admin-table-actions{display:flex;flex-wrap:wrap;gap:8px}.danger-button{border-color:#ff8f8480;color:#ffb0a7}.danger-button:hover{border-color:#ff8f84cc;color:#ffd7d2}.admin-subnav{display:flex;flex-wrap:wrap;gap:8px}.admin-subnav button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;border:1px solid rgba(173,202,184,.22);border-radius:8px;padding:8px 12px;background:#102d23b8;color:#dcebe2;font:inherit;font-size:.92rem;font-weight:800;cursor:pointer}.admin-subnav button[aria-current=page]{border-color:#5abd84ad;background:#5abd842e;color:#ecf4ee}.admin-muted{margin-top:8px;color:#9ab2a0;font-size:.88rem;overflow-wrap:anywhere}.snapshot-picker{display:grid;min-width:min(100%,360px);gap:10px}.snapshot-picker label{display:grid;gap:8px;color:#5f7084;font-size:.92rem;font-weight:800}.snapshot-picker select{width:100%;min-height:42px;border:1px solid rgba(173,202,184,.26);border-radius:8px;padding:8px 10px;background:#030c0ab8;color:#ecf4ee;font:inherit}.portfolio-form{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.4fr) auto;align-items:end;gap:12px}.portfolio-form label{display:grid;gap:8px;color:#5f7084;font-size:.92rem;font-weight:800}.portfolio-form input{width:100%;min-height:42px;border:1px solid rgba(173,202,184,.26);border-radius:8px;padding:8px 10px;background:#030c0ab8;color:#ecf4ee;font:inherit}.admin-message{margin-bottom:0;color:#8be0ad;font-weight:800}.admin-run-result{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end;gap:12px;padding:18px;border:1px solid rgba(90,189,132,.26);border-radius:8px;background:#0f3124b8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.admin-run-result span{display:block;margin-bottom:6px;color:#9ab2a0;font-size:.74rem;font-weight:800;text-transform:uppercase}.admin-run-result strong{display:block;overflow-wrap:anywhere;color:#e8f5ed;font-size:.96rem}.crawler-log-list{display:grid;gap:8px;margin:0;padding:14px;border:1px solid rgba(116,167,216,.24);border-radius:8px;background:#07131cb8}.crawler-log-list p{margin:0;color:#dbe8f0;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.84rem;overflow-wrap:anywhere}.crawler-progress{display:grid;gap:14px;padding:18px;border:1px solid rgba(214,184,107,.28);border-radius:8px;background:#2f260d94}.crawler-progress-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.crawler-progress-heading p{margin-bottom:0;color:#d7cda8}.crawler-progress-heading>strong{color:#ffe08a;font-size:1.15rem;white-space:nowrap}.crawler-progress-steps{display:grid;gap:8px;margin:0;padding:0;list-style:none}.crawler-progress-steps li{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:10px;color:#aebfb4}.crawler-progress-steps li span{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border:1px solid rgba(173,202,184,.22);border-radius:999px;background:#030c0a94;font-size:.82rem;font-weight:900}.crawler-progress-steps li.is-active{color:#fff2bb}.crawler-progress-steps li.is-active span{border-color:#ffe08aad;background:#d6b86b2e}.crawler-progress-steps li.is-complete{color:#9ee1b5}.crawler-progress-steps li.is-complete span{border-color:#5abd849e;background:#5abd842e}.crawler-progress-portfolios{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#d7cda8}.crawler-progress-portfolios strong{color:#fff2bb}.crawler-result-list{display:grid;gap:10px}.crawler-result-list article{display:grid;gap:8px;padding:14px;border:1px solid rgba(90,189,132,.22);border-radius:8px;background:#0f312485}.crawler-result-list article>div:first-child,.crawler-result-list dl{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between}.crawler-result-list span,.crawler-result-list dt{color:#9ab2a0;font-size:.82rem;font-weight:800;text-transform:uppercase}.crawler-result-list p,.crawler-result-list dl{margin:0}.crawler-result-list p,.crawler-result-list dd{color:#dcebe2;overflow-wrap:anywhere}.crawler-result-list dd{margin:2px 0 0;font-weight:900}.tabs{position:relative;z-index:2;display:grid;gap:8px;width:100%}.sidebar-group{display:grid;gap:8px}.sidebar-group-toggle{display:inline-flex;min-height:44px;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(173,202,184,.22);border-radius:12px;padding:10px 14px;background:#102d23e0;color:#ecf4ee;font:inherit;font-size:.92rem;font-weight:900;cursor:pointer}.sidebar-group-toggle.is-active{border-color:#5abd8494;background:#5abd8424}.sidebar-group-toggle-icon{color:#8be0ad;font-size:1.1rem;line-height:1}.sidebar-group-links{display:grid;gap:6px;padding-left:12px}.tabs a{display:inline-flex;min-height:42px;align-items:center;justify-content:flex-start;padding:10px 14px;border:1px solid rgba(173,202,184,.22);border-radius:12px;background:#102d23b8;color:#dcebe2;font-size:.9rem;font-weight:800;font-family:inherit;line-height:1.1;text-decoration:none;text-align:left}.tabs a[aria-current=page]{border-color:#5abd84ad;background:#5abd842e;color:#ecf4ee}.sidebar-group-links a{min-height:38px;padding-left:18px;border-radius:10px;background:#07110e3d;font-size:.84rem}.sections{display:grid;gap:52px}.section{display:grid;gap:22px;padding-top:28px}.section-heading{display:grid;gap:4px}.screener-snapshot-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:space-between}.screener-snapshot-row .admin-muted{margin-left:auto;margin-top:0;text-align:right}.section-badge{display:inline-flex;align-items:center;white-space:nowrap}.text-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.text-grid p{margin-bottom:0;color:#5f7084;line-height:1.6}.table-wrap{overflow-x:auto;padding:18px;border:1px solid rgba(173,202,184,.2);border-radius:8px;background:#0918149e;box-shadow:0 18px 50px #00000047;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.table-wrap-featured{border-color:#5abd8447}.asset-filter-controls{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-bottom:-8px}.asset-filter-controls label{display:inline-flex;min-height:38px;align-items:center;gap:8px;border:1px solid rgba(173,202,184,.22);border-radius:8px;padding:7px 11px;background:#030c0a61;color:#c9e6d6;font-size:.88rem;font-weight:800}.asset-filter-controls input{width:15px;height:15px;accent-color:#5abd84}.stock-link{display:inline-flex;align-items:center;gap:6px;border:0;padding:0;background:transparent;color:#8be0ad;font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.stock-link:hover{color:#d6b86b}.portfolio-dashboard-section{gap:18px}.dashboard-heading{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:14px}.dashboard-heading h2{font-size:clamp(2rem,3.2vw,2.8rem)}.dashboard-heading-meta{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.dashboard-heading-meta span{display:inline-flex;min-height:34px;align-items:center;border:1px solid rgba(173,202,184,.22);border-radius:8px;padding:7px 10px;background:#0a1c16b8;color:#c9e6d6;font-size:.84rem;font-weight:800}.dashboard-muted{margin:0;color:#9ab2a0}.loading-overlay-host{position:relative;min-height:360px}.loading-overlay{position:absolute;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:auto minmax(0,560px);align-items:center;align-content:start;justify-content:center;gap:16px;min-height:100%;border:1px solid rgba(90,189,132,.3);border-radius:8px;padding:clamp(36px,7vh,72px) 20px 20px;background:linear-gradient(135deg,rgba(90,189,132,.18),transparent 46%),#040e0ceb;box-shadow:0 24px 80px #0000006b;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:wait;pointer-events:all;-webkit-user-select:none;user-select:none}.loading-overlay strong{display:block;color:#ecf4ee;font-size:clamp(1.15rem,2vw,1.55rem);line-height:1.1}.loading-overlay p{max-width:620px;margin:8px 0 0;color:#5f7084;line-height:1.5}.loading-overlay ul{grid-column:1 / -1;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:2px 0 0;padding:0;list-style:none}.loading-overlay li{border:1px solid rgba(173,202,184,.18);border-radius:8px;padding:7px 10px;background:#030c0a5c;color:#9ab2a0;font-size:.78rem;font-weight:900;text-transform:uppercase}.loading-orbit{position:relative;width:72px;height:72px;border:1px solid rgba(173,202,184,.24);border-radius:50%;background:radial-gradient(circle at center,rgba(214,184,107,.24),rgba(90,189,132,.08) 45%,transparent 56%)}.loading-orbit:before{position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px dashed rgba(173,202,184,.28);border-radius:inherit;content:"";animation:loading-spin 8s linear infinite}.loading-orbit span{position:absolute;width:10px;height:10px;border-radius:50%;background:#8be0ad;box-shadow:0 0 22px #8be0ade6;animation:loading-pulse 1.6s ease-in-out infinite}.loading-orbit span:nth-child(1){top:5px;left:31px}.loading-orbit span:nth-child(2){right:7px;bottom:16px;animation-delay:.22s}.loading-orbit span:nth-child(3){bottom:16px;left:7px;background:#d6b86b;box-shadow:0 0 22px #d6b86be6;animation-delay:.44s}@keyframes loading-spin{to{transform:rotate(360deg)}}@keyframes loading-pulse{0%,to{transform:scale(.78);opacity:.55}50%{transform:scale(1.18);opacity:1}}.cockpit-grid{display:grid;grid-template-columns:minmax(260px,1.4fr) repeat(4,minmax(140px,1fr));gap:12px}.cockpit-score-card{display:grid;min-height:166px;align-content:space-between;gap:10px;padding:18px;border:1px solid rgba(90,189,132,.32);border-radius:8px;background:linear-gradient(180deg,#0f2b21eb,#081612e6),linear-gradient(135deg,rgba(214,184,107,.18),transparent 48%);box-shadow:0 18px 50px #0000004d}.cockpit-score-card>span,.dashboard-metric-tile span{color:#9ab2a0;font-size:.78rem;font-weight:800;text-transform:uppercase}.cockpit-score-card strong{color:#ecf4ee;font-size:4.2rem;font-weight:900;line-height:.9}.cockpit-score-card p{margin:0;color:#5f7084;line-height:1.45}.score-bar{height:8px;overflow:hidden;border-radius:999px;background:#adcab829}.score-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d6b86b,#5abd84)}.dashboard-metric-tile{display:grid;align-content:space-between}.dashboard-metric-tile strong{color:#ecf4ee;font-size:clamp(1.15rem,2vw,1.55rem);line-height:1.05}.dashboard-panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.dashboard-panel{min-height:250px;padding:16px;border:1px solid rgba(173,202,184,.2);border-radius:8px;background:#0918149e;box-shadow:0 18px 50px #0000003d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dashboard-panel h3{margin-bottom:14px;color:#ecf4ee}.dashboard-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.dashboard-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:54px;padding:10px;border:1px solid rgba(173,202,184,.13);border-radius:8px;background:#030c0a47}.dashboard-list.compact li{min-height:44px}.dashboard-list strong,.dashboard-list span{display:block}.dashboard-list strong{color:#ecf4ee}.dashboard-list span{margin-top:3px;color:#9ab2a0;font-size:.82rem}.dashboard-list b{color:#dcebe2;font-size:.92rem;text-align:right;white-space:nowrap}.allocation-stack{display:flex;height:20px;overflow:hidden;border:1px solid rgba(173,202,184,.18);border-radius:999px;margin-bottom:14px;background:#030c0a57}.allocation-segment{min-width:2px}.allocation-segment-stocks{background:#5abd84}.allocation-segment-etfs{background:#d6b86b}.recommendation-bars{display:grid;gap:12px}.recommendation-row{display:grid;grid-template-columns:90px minmax(0,1fr) 58px;align-items:center;gap:10px}.recommendation-row span{color:#c9e6d6;font-size:.86rem;font-weight:800}.recommendation-row div{height:10px;overflow:hidden;border-radius:999px;background:#adcab824}.recommendation-row i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5abd84,#d6b86b)}.recommendation-row b{color:#dcebe2;font-size:.86rem;text-align:right}.fair-value-heatmap-section{gap:18px}.fv-heatmap-summary{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.fv-heatmap-summary article{min-height:92px;padding:14px;border:1px solid rgba(173,202,184,.2);border-radius:8px;background:#0918149e;box-shadow:0 18px 50px #0000003d}.fv-heatmap-summary span{display:block;margin-bottom:10px;color:#9ab2a0;font-size:.78rem;font-weight:800;text-transform:uppercase}.fv-heatmap-summary strong{color:#ecf4ee;font-size:clamp(1.4rem,2.6vw,2rem);line-height:1}.fv-heatmap-legend{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.fv-heatmap-swatch{display:inline-flex;min-height:30px;align-items:center;border:1px solid rgba(173,202,184,.2);border-radius:8px;padding:5px 9px;color:#06110d;font-size:.78rem;font-weight:900}.fv-heatmap-chart{overflow:hidden}.fv-heatmap-click-target{cursor:pointer;outline:none}.fv-heatmap-click-target:hover .fv-heatmap-tile,.fv-heatmap-click-target:focus-visible .fv-heatmap-tile{filter:brightness(1.1);stroke:#eef8f1d9}.fv-sector-grid{display:grid;gap:14px}.fv-sector-panel{padding:14px;border:1px solid rgba(173,202,184,.2);border-radius:8px;background:#0918149e;box-shadow:0 18px 50px #00000038}.fv-sector-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.fv-sector-heading h3{margin-bottom:0}.fv-sector-heading span{color:#9ab2a0;font-size:.9rem;font-weight:800}.fv-tile-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(96px,auto);gap:8px}.fv-tile{display:grid;min-width:0;min-height:96px;align-content:space-between;gap:6px;border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:10px;color:#06110d;font:inherit;text-align:left;cursor:pointer}.fv-tile:hover{filter:brightness(1.08)}.fv-tile span,.fv-tile strong,.fv-tile em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fv-tile span{font-size:.9rem;font-weight:900}.fv-tile strong{font-size:clamp(1.2rem,2.2vw,1.7rem);font-weight:900;line-height:1}.fv-tile em{font-size:.78rem;font-style:normal;font-weight:800;opacity:.82}.fv-heatmap-strong-buy,.fv-tile-strong-buy{background:#64d992;fill:#64d992}.fv-heatmap-buy,.fv-tile-buy{background:#9ddf8b;fill:#9ddf8b}.fv-heatmap-hold,.fv-tile-hold{background:#d6b86b;fill:#d6b86b}.fv-heatmap-reduce,.fv-tile-reduce{background:#e99a6f;fill:#e99a6f}.fv-heatmap-avoid,.fv-tile-avoid{background:#e96f66;fill:#e96f66}.portfolio-score-section{gap:18px}.portfolio-score-hero{display:grid;grid-template-columns:minmax(0,1fr) 180px;align-items:center;gap:24px;min-height:240px;padding:22px;border:1px solid rgba(90,189,132,.32);border-radius:8px;background:linear-gradient(180deg,#0f2b21f0,#081612e6),linear-gradient(135deg,rgba(214,184,107,.2),transparent 50%);box-shadow:0 18px 50px #0000004d}.portfolio-score-hero span{display:block;margin-bottom:10px;color:#9ab2a0;font-size:.78rem;font-weight:900;text-transform:uppercase}.portfolio-score-hero strong{display:block;color:#ecf4ee;font-size:clamp(5rem,10vw,8rem);font-weight:900;line-height:.9}.portfolio-score-hero p{max-width:680px;margin:14px 0 0;color:#5f7084;font-size:1rem;line-height:1.55}.portfolio-score-ring{display:grid;width:170px;height:170px;place-items:center;border-radius:50%;background:radial-gradient(circle at center,rgba(10,28,22,.96) 0 56%,transparent 57%),conic-gradient(#5abd84 calc(var(--score) * 1%),#adcab829 0)}.portfolio-score-ring span{margin:0;color:#ecf4ee;font-size:3.6rem;line-height:1}.score-pillar-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.score-pillar-card{display:grid;min-height:190px;align-content:space-between;gap:10px;padding:14px;border:1px solid rgba(173,202,184,.2);border-radius:8px;background:#0918149e;box-shadow:0 18px 50px #00000038}.score-pillar-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.score-pillar-heading span{color:#9ab2a0;font-size:.78rem;font-weight:900;text-transform:uppercase}.score-pillar-heading strong{color:#ecf4ee;font-size:2rem;line-height:1}.score-pillar-bar{height:8px;overflow:hidden;border-radius:999px;background:#adcab829}.score-pillar-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d6b86b,#5abd84)}.score-pillar-card p{margin:0;color:#5f7084;font-size:.9rem;line-height:1.45}.score-pillar-card b{color:#d6b86b;font-size:.86rem}.snapshot-changes-section,.allocation-concentration-section,.watchlist-section,.insight-section{gap:18px}.insight-summary-grid{display:grid;grid-template-columns:minmax(270px,1.25fr) repeat(3,minmax(140px,1fr));gap:12px}.insight-primary-card{display:grid;min-height:146px;align-content:space-between;gap:10px;padding:18px;border:1px solid rgba(90,189,132,.3);border-radius:8px;background:linear-gradient(180deg,#0f2720f0,#081612e6),linear-gradient(135deg,rgba(101,169,215,.18),transparent 46%);box-shadow:0 18px 50px #0000004d}.insight-primary-card>span{color:#9ab2a0;font-size:.78rem;font-weight:900;text-transform:uppercase}.insight-primary-card strong{color:#ecf4ee;font-size:clamp(2.2rem,4.2vw,3.8rem);font-weight:900;line-height:.98}.insight-primary-card p{margin:0;color:#5f7084;line-height:1.45}.watchlist-summary-grid{display:grid;grid-template-columns:minmax(270px,1.25fr) repeat(4,minmax(140px,1fr));gap:12px}.watchlist-primary-card{display:grid;min-height:146px;align-content:space-between;gap:10px;padding:18px;border:1px solid rgba(101,169,215,.34);border-radius:8px;background:linear-gradient(180deg,#0d1f26f0,#081612e6),linear-gradient(135deg,rgba(214,184,107,.18),transparent 46%);box-shadow:0 18px 50px #0000004d}.watchlist-primary-card>span{color:#a8c9de;font-size:.78rem;font-weight:900;text-transform:uppercase}.watchlist-primary-card strong{color:#ecf4ee;font-size:clamp(2.4rem,4.8vw,4.2rem);font-weight:900;line-height:.95}.watchlist-primary-card p{margin:0;color:#5f7084;line-height:1.45}.watchlist-panel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.allocation-summary-grid{display:grid;grid-template-columns:minmax(270px,1.25fr) repeat(4,minmax(140px,1fr));gap:12px}.allocation-score-card{display:grid;min-height:146px;align-content:space-between;gap:10px;padding:18px;border:1px solid rgba(214,184,107,.34);border-radius:8px;background:linear-gradient(180deg,#212314f0,#081612e6),linear-gradient(135deg,rgba(90,189,132,.18),transparent 46%);box-shadow:0 18px 50px #0000004d}.allocation-score-card>span{color:#d6c996;font-size:.78rem;font-weight:900;text-transform:uppercase}.allocation-score-card strong{color:#ecf4ee;font-size:clamp(2.4rem,4.8vw,4.2rem);font-weight:900;line-height:.95}.allocation-score-card p{margin:0;color:#d7dcc3;line-height:1.45}.allocation-main-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:14px}.allocation-wide-panel{grid-row:span 2}.allocation-exposure-stack{display:flex;height:22px;overflow:hidden;border:1px solid rgba(173,202,184,.18);border-radius:999px;margin-bottom:14px;background:#030c0a57}.allocation-exposure-segment{min-width:2px}.allocation-exposure-0,.allocation-dot-0{background:#5abd84}.allocation-exposure-1,.allocation-dot-1{background:#d6b86b}.allocation-exposure-2,.allocation-dot-2{background:#65a9d7}.allocation-exposure-3,.allocation-dot-3{background:#c98572}.allocation-exposure-4,.allocation-dot-4{background:#9fcb76}.allocation-exposure-5,.allocation-dot-5{background:#b797d6}.allocation-group-list{display:grid;gap:10px}.allocation-group-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:56px;padding:10px;border:1px solid rgba(173,202,184,.13);border-radius:8px;background:#030c0a47}.allocation-dot{width:10px;height:34px;border-radius:999px}.allocation-group-list strong,.allocation-group-list span{display:block}.allocation-group-list strong{color:#ecf4ee}.allocation-group-list span{margin-top:3px;color:#9ab2a0;font-size:.82rem}.allocation-group-list b{color:#dcebe2;font-size:.92rem;text-align:right}.changes-summary-grid{display:grid;grid-template-columns:minmax(260px,1.35fr) repeat(4,minmax(140px,1fr));gap:12px}.changes-primary-card{display:grid;min-height:146px;align-content:space-between;gap:10px;padding:18px;border:1px solid rgba(90,189,132,.32);border-radius:8px;background:linear-gradient(180deg,#0f2b21eb,#081612e6),linear-gradient(135deg,rgba(214,184,107,.18),transparent 48%);box-shadow:0 18px 50px #0000004d}.changes-primary-card>span{color:#9ab2a0;font-size:.78rem;font-weight:900;text-transform:uppercase}.changes-primary-card strong{color:#ecf4ee;font-size:clamp(2.4rem,4.8vw,4.2rem);font-weight:900;line-height:.95}.changes-primary-card p{margin:0;color:#5f7084;line-height:1.45}.changes-event-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.changes-event-grid article{min-height:88px;padding:14px;border:1px solid rgba(173,202,184,.2);border-radius:8px;background:#0918149e;box-shadow:0 18px 50px #0003}.changes-event-grid span{display:block;margin-bottom:10px;color:#9ab2a0;font-size:.78rem;font-weight:900;text-transform:uppercase}.changes-event-grid strong{color:#ecf4ee;font-size:2rem;line-height:1}.stock-price-change-badge{display:inline-flex;min-width:48px;min-height:18px;align-items:center;justify-content:center;border:1px solid rgba(173,202,184,.22);border-radius:5px;padding:1px 5px;background:#030c0a47;font-size:.66rem;font-weight:900;line-height:1;text-decoration:none}.stock-price-change-badge-up{border-color:#8be0ad70;background:#5abd8424;color:#8be0ad}.stock-price-change-badge-down{border-color:#ff8f846b;background:#ff8f841f;color:#ff8f84}.stock-price-change-badge-flat{border-color:#d6b86b61;background:#d6b86b1f;color:#d6b86b}.screener-badge{display:inline-flex;min-width:76px;min-height:24px;align-items:center;justify-content:center;border:1px solid rgba(173,202,184,.18);border-radius:6px;padding:3px 7px;background:#030c0a52;color:#dcebe2;font-size:.78rem;font-weight:900;line-height:1.1;text-align:center}.screener-badge-positive{border-color:#8be0ad70;background:#5abd8424;color:#8be0ad}.screener-badge-watchlist{border-color:#d6b86b70;background:#d6b86b1f;color:#d6b86b}.screener-badge-negative{border-color:#ff8f8461;background:#d978701f;color:#ff8f84}.screener-badge-neutral{color:#8fac9c}.screener-error{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.screener-error .auth-error{margin-bottom:0}.stock-route-section{padding-top:28px}.back-link{width:fit-content;border:1px solid rgba(173,202,184,.24);border-radius:8px;padding:9px 12px;background:#030c0a5c;color:#c9e6d6;cursor:pointer;font:inherit;font-weight:800;text-decoration:none}.back-link:hover{border-color:#d6b86b85;color:#d6b86b}.stock-detail-panel{display:grid;gap:16px;padding:18px;border:1px solid rgba(173,202,184,.2);border-radius:8px;background:#091814b8;box-shadow:0 18px 50px #00000042;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.stock-detail-heading,.stock-detail-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.stock-title-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0}.stock-title-row h2{margin:0;font-size:1.7rem;line-height:1.1}.stock-company-name{color:#d7e7dc;font-size:1.08rem;font-weight:700;line-height:1.25}.stock-current-price{color:#d6b86b;font-size:1rem;font-weight:800;line-height:1.2}.stock-quote-links{display:flex;flex-basis:100%;flex-wrap:wrap;gap:6px}.stock-quote-links span{display:inline-flex;min-height:26px;align-items:center;gap:5px;border:1px solid rgba(173,202,184,.18);border-radius:999px;padding:4px 9px;background:#030c0a42;color:#dcebe2;font-size:.78rem;font-weight:700}.stock-quote-links strong{color:#9fb8aa;font-size:.68rem;text-transform:uppercase}.stock-quote-links-missing{flex-basis:100%;margin:0;color:#9fb8aa;font-size:.82rem;line-height:1.35}.stock-overview-stats{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin:0;color:#b9d9c6;font-size:.86rem}.stock-overview-stats div{display:flex;align-items:baseline;gap:4px}.stock-overview-stats dt,.stock-overview-stats dd{margin:0}.stock-overview-stats dt{color:#8fac9c;font-weight:700}.stock-overview-stats dd{color:#edf7ef;font-weight:800}.stock-overview-stats dd.cell-negative{color:#ff8f84}.stock-overview-stats dd.cell-positive{color:#8be0ad}.stock-detail-meta{color:#b9d9c6;font-size:.9rem}.fair-value-panel{display:grid;gap:14px;padding:14px;border:1px solid rgba(116,167,216,.34);border-radius:8px;background:linear-gradient(135deg,rgba(116,167,216,.14),transparent 48%),#030c0a61}.fair-value-panel-muted{border-color:#adcab82e;background:#030c0a47}.fair-value-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.fair-value-heading h3{margin:0;color:#ecf4ee}.fair-value-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.fair-value-recommendation{display:inline-flex;min-height:26px;align-items:center;justify-content:center;border:1px solid rgba(173,202,184,.18);border-radius:999px;padding:4px 9px;font-size:.78rem;font-weight:800}.fair-value-recommendation-strong-buy,.fair-value-recommendation-buy{border-color:#8be0ad66;color:#8be0ad}.fair-value-recommendation-hold,.fair-value-recommendation-reduce{border-color:#d6b86b66;color:#d6b86b}.fair-value-recommendation-avoid{border-color:#ff8f845c;color:#ffb0a7}.fair-value-summary{margin:0;color:#5f7084;line-height:1.55}.fair-value-badge{display:inline-flex;min-height:28px;align-items:center;justify-content:center;border:1px solid rgba(173,202,184,.2);border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:800;white-space:nowrap}.fair-value-badge-high{border-color:#8be0ad70;color:#8be0ad}.fair-value-badge-medium{border-color:#d6b86b70;color:#d6b86b}.fair-value-badge-low{border-color:#ff8f8461;color:#ffb0a7}.fair-value-warnings{display:flex;flex-wrap:wrap;gap:8px}.fair-value-warning{display:inline-flex;min-height:26px;align-items:center;border:1px solid rgba(236,191,117,.34);border-radius:999px;padding:4px 9px;background:#553a143d;color:#f0cc8b;font-size:.76rem;font-weight:800}.fair-value-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.fair-value-grid article,.fair-value-details div{display:grid;gap:4px;padding:10px 12px;border:1px solid rgba(173,202,184,.14);border-radius:8px;background:#030c0a47}.fair-value-grid span,.fair-value-details dt{color:#9fb8aa;font-size:.72rem;text-transform:uppercase}.fair-value-grid strong,.fair-value-details dd{margin:0;color:#ecf4ee;font-size:1rem;font-weight:700}.fair-value-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0}.fair-value-checks{display:flex;flex-wrap:wrap;gap:8px}.fair-value-check{display:inline-flex;min-height:28px;align-items:center;border:1px solid rgba(173,202,184,.16);border-radius:6px;padding:5px 8px;background:#030c0a47;color:#dcebe2;font-size:.82rem;font-weight:700}.fair-value-check-pass{border-color:#8be0ad57;color:#8be0ad}.fair-value-check-fail{border-color:#ff8f8457;color:#ffb0a7}.fair-value-check-neutral{border-color:#d6b86b57;color:#d6b86b}.fair-value-check-unknown{color:#9fb8aa}.stock-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.stock-metric-sections{display:grid;gap:12px}.stock-metric-section{border:1px solid rgba(173,202,184,.16);border-radius:8px;background:#06120e4d}.stock-metric-section summary{display:flex;min-height:46px;cursor:pointer;list-style:none;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;color:#ecf4ee;font-weight:700}.stock-metric-section summary::-webkit-details-marker{display:none}.stock-metric-section summary:before{width:18px;color:#8be0ad;content:">";font-size:.9rem;transition:transform .16s ease}.stock-metric-section[open] summary:before{transform:rotate(90deg)}.stock-metric-section summary span{flex:1}.stock-metric-section summary strong{display:inline-flex;min-width:32px;min-height:24px;align-items:center;justify-content:center;border:1px solid rgba(139,224,173,.24);border-radius:999px;background:#8be0ad14;color:#b9d9c6;font-size:.78rem}.stock-metric-section .stock-metrics-grid,.stock-metric-section .notice{margin:0;padding:0 12px 12px}.stock-metric{display:grid;gap:4px;padding:10px 12px;border:1px solid rgba(173,202,184,.14);border-radius:8px;background:#030c0a57}.stock-metric span{color:#9fb8aa;font-size:.72rem;text-transform:uppercase}.stock-metric strong{color:#ecf4ee;font-size:1rem;font-weight:600}.stock-metric-negative strong{color:#ff8f84}.stock-metric-positive strong{color:#8be0ad}.stock-history-chart svg,.stock-price-history-chart svg{height:300px}.fundamental-chart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.fundamental-bar-chart svg{height:220px}.fundamental-bar{fill:#74a7d8d1}.fundamental-x-label{font-size:11px}.portfolio-delta-chart svg{height:300px}.portfolio-delta-zero-line{stroke:#ecf4ee6b;stroke-width:1.5}.portfolio-delta-bar-positive{fill:#8be0adbd}.portfolio-delta-bar-negative{fill:#ff8f84c7}.stock-history-shares-line,.stock-history-value-line{fill:none;stroke-width:2.5}.stock-history-shares-line{stroke:#8be0ad}.stock-history-value-line{stroke:#d6b86b}.stock-history-value-line-stocks{stroke:#8be0ad}.stock-history-value-line-etfs{stroke:#74a7d8}.stock-price-history-line-adjusted{fill:none;stroke-width:2.5}.stock-price-history-line-adjusted{stroke:#74a7d8}.stock-price-history-point{fill:#74a7d8;stroke:#030c0adb;stroke-width:2}.stock-price-transaction-marker circle{stroke:#030c0aeb;stroke-width:2}.stock-price-transaction-marker text{fill:#06110d;font-size:9px;font-weight:900;pointer-events:none}.stock-price-transaction-marker-buy circle{fill:#8be0ad}.stock-price-transaction-marker-sell circle{fill:#ff8f84}.stock-history-shares-point{fill:#8be0ad;stroke:#030c0adb;stroke-width:2}.stock-history-stock-bar{fill:#8be0add1}.stock-history-etf-bar{fill:#74a7d8db}.stock-history-value-point{fill:#d6b86b;stroke:#030c0adb;stroke-width:2}.stock-history-value-point-stocks{fill:#8be0ad}.stock-history-value-point-etfs{fill:#74a7d8}.stock-history-value-axis{fill:#d6b86b}.stock-history-value-axis-stocks{fill:#8be0ad}.stock-history-value-axis-etfs{fill:#74a7d8}.stock-history-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;color:#b9d9c6;font-size:.82rem;font-weight:800}.stock-history-legend span{display:inline-flex;align-items:center;gap:6px}.stock-history-legend span:before{width:18px;height:3px;border-radius:999px;content:""}.stock-history-legend-shares:before{background:#8be0ad}.stock-history-legend-stocks:before{background:#8be0ad}.stock-history-legend-etfs:before{background:#74a7d8}.stock-history-legend-value:before{background:#d6b86b}.stock-history-legend-value-stocks:before{background:#8be0ad}.stock-history-legend-value-etfs:before{background:#74a7d8}.stock-price-history-legend-adjusted:before{background:#74a7d8}.stock-price-history-legend-buy:before{height:10px;background:#8be0ad}.stock-price-history-legend-sell:before{height:10px;background:#ff8f84}.auth-shell{display:grid;min-height:100vh;place-items:center;padding:24px}.auth-panel{width:min(100%,520px);padding:28px;border:1px solid rgba(173,202,184,.2);border-radius:8px;background:linear-gradient(180deg,#0c1f19eb,#081612e0),linear-gradient(135deg,rgba(57,153,105,.18),transparent 48%);box-shadow:0 28px 80px #00000057;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.auth-panel h1{margin-bottom:18px;font-size:clamp(2.4rem,8vw,4rem)}.auth-panel p{color:#5f7084;line-height:1.55}.auth-form{display:grid;gap:14px;margin-top:18px}.auth-form label{display:grid;gap:8px;color:#5f7084;font-size:.92rem;font-weight:700}.auth-form input{width:100%;min-height:44px;border:1px solid rgba(173,202,184,.26);border-radius:8px;padding:8px 10px;background:#030c0a9e;color:#ecf4ee;font:inherit}.auth-provider-actions{display:grid;gap:10px;margin-top:20px}.auth-provider-actions .primary-button,.auth-provider-actions .ghost-button{width:100%}.primary-button,.ghost-button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;border-radius:8px;padding:9px 14px;font:inherit;font-weight:800;cursor:pointer}.primary-button{border:1px solid #5abd84;background:#5abd84;color:#06110d}.ghost-button{border:1px solid rgba(173,202,184,.28);background:transparent;color:#c9e6d6}.primary-button:disabled{cursor:not-allowed;opacity:.6}.icon-button{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border:1px solid rgba(173,202,184,.24);border-radius:8px;background:#030c0a57;color:#c9e6d6;font:inherit;font-weight:900;line-height:1;cursor:pointer}.icon-button:hover{border-color:#d6b86b85;color:#d6b86b}.crawler-button{gap:8px;min-width:154px}.button-spinner{width:15px;height:15px;border:2px solid rgba(6,17,13,.26);border-top-color:#06110d;border-radius:50%;animation:spin .8s linear infinite}.admin-loading{margin-top:-6px;color:#b9d9c6;font-size:.9rem}@keyframes spin{to{transform:rotate(360deg)}}.auth-error{color:#ff9a8d}.mfa-qr{width:min(240px,100%);height:auto;border:1px solid rgba(173,202,184,.24);border-radius:8px;background:#fff}table{width:100%;min-width:620px;border-collapse:collapse;background:#040e0b2e}th,td{padding:12px 10px;border-bottom:1px solid rgba(173,202,184,.13);text-align:left;vertical-align:top}th{color:#d6b86b;font-size:.78rem;text-transform:uppercase}.sort-button{display:inline-flex;width:100%;min-height:30px;align-items:center;justify-content:space-between;gap:8px;border:0;padding:0;background:transparent;color:inherit;font:inherit;font-weight:800;text-align:left;text-transform:inherit;cursor:pointer}.sort-indicator{flex:0 0 auto;color:#8be0ad;font-size:.72rem}.table-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px;color:#b9d9c6;font-size:.9rem;font-weight:800}.table-pagination span{min-width:102px;text-align:center}td{color:#dcebe2}.cell-negative{color:#ff8f84}.cell-positive{color:#8be0ad}tbody tr:nth-child(2n){background:#ffffff06}.summary-row{background:#d6b86b17}.summary-row td{border-bottom-color:#d6b86b3d;color:#d6b86b;font-weight:900}@media(max-width:720px){.app-shell{grid-template-columns:1fr;gap:16px;padding:16px}.app-sidebar{position:static;min-height:auto;padding:18px}.sidebar-brand h1{font-size:clamp(1.45rem,6vw,1.9rem)}.tabs{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.sidebar-group-links{padding-left:10px}.currency-switcher{width:100%}.currency-rate{flex:1 1 auto;min-width:0;justify-content:center;font-size:.72rem}.currency-switcher button{flex:1 1 0}.status{white-space:normal}.overview-summary,.overview-mini-metrics{grid-template-columns:1fr}.overview-hero-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cockpit-grid,.allocation-main-grid,.allocation-summary-grid,.changes-event-grid,.changes-summary-grid,.dashboard-panel-grid,.fv-heatmap-summary,.insight-summary-grid,.score-pillar-grid,.watchlist-panel-grid,.watchlist-summary-grid,.portfolio-score-hero{grid-template-columns:1fr}.portfolio-score-ring{width:136px;height:136px}.portfolio-score-ring span{font-size:3rem}.cockpit-score-card{min-height:150px}.dashboard-heading-meta{justify-content:flex-start}.loading-overlay{grid-template-columns:1fr;justify-items:center;text-align:center}.loading-orbit{width:58px;height:58px}.loading-orbit span:nth-child(1){left:24px}.dashboard-list li,.recommendation-row{grid-template-columns:1fr}.dashboard-list b,.recommendation-row b{text-align:left}.fv-heatmap-legend{justify-content:flex-start}.fv-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fv-tile{grid-column:span 1!important}.heatmap-chart{padding:8px}.heatmap-chart svg{height:460px;min-height:460px}.admin-actions{align-items:stretch;flex-direction:column}.portfolio-form{grid-template-columns:1fr}.stock-detail-heading{align-items:flex-start;flex-direction:column}.fundamental-chart-grid{grid-template-columns:1fr}}@media(min-width:721px)and (max-width:1060px){.app-shell{grid-template-columns:minmax(260px,300px) minmax(0,1fr);gap:18px;padding:18px}.app-sidebar{top:18px;min-height:calc(100vh - 36px);padding:18px}.overview-hero-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cockpit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cockpit-score-card{grid-column:1 / -1}.changes-summary-grid,.allocation-summary-grid,.watchlist-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.insight-summary-grid{grid-template-columns:minmax(0,1fr)}.insight-primary-card{grid-column:1 / -1}.watchlist-panel-grid{grid-template-columns:minmax(0,1fr)}.watchlist-primary-card{grid-column:1 / -1}.allocation-main-grid{grid-template-columns:minmax(0,1fr)}.allocation-score-card{grid-column:1 / -1}.allocation-wide-panel{grid-row:auto}.changes-event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.changes-primary-card{grid-column:1 / -1}.fv-heatmap-summary,.score-pillar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fv-tile-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.fundamental-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}:root{--app-bg: #f6f7f9;--app-surface: #ffffff;--app-surface-muted: #f4f6f8;--app-border: #dde3ea;--app-border-strong: #cbd5df;--app-text: #17202a;--app-muted: #657282;--app-muted-2: #8994a3;--app-primary: #7a94b8;--app-primary-soft: #e8eef6;--app-success: #5f8f7a;--app-success-soft: #e5f0eb;--app-warning: #b29263;--app-warning-soft: #f5ecdc;--app-danger: #c6857d;--app-danger-soft: #f5e5e2;--app-info: #7c9fa8;--app-info-soft: #e5eef0;--app-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 10px 28px rgba(15, 23, 42, .06);color:var(--app-text);background:var(--app-bg)}body{background:var(--app-bg);color:var(--app-text)}body:before,body:after{display:none}.app-shell{display:grid;grid-template-columns:240px minmax(0,1fr);gap:0;min-height:100vh;padding:0;background:var(--app-bg)}.app-sidebar{position:sticky;top:0;display:flex;align-self:start;flex-direction:column;gap:0;width:240px;min-height:100vh;max-height:100vh;padding:0;margin:0;border-right:1px solid rgba(255,255,255,.04);border-radius:0;background:#122033;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;overflow-y:auto}.app-main{display:flex;min-width:0;flex-direction:column}.app-topbar{position:sticky;z-index:10;top:0;display:flex;width:100%;min-height:64px;align-items:center;gap:16px;padding:12px 28px;border-bottom:1px solid var(--app-border);background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.global-search{position:relative;display:flex;flex:1 1 360px;min-width:0;align-items:center}.global-search span{position:absolute;left:12px;color:var(--app-muted-2);font-size:1.1rem;line-height:1;pointer-events:none}.global-search input{width:100%;min-height:38px;border:1px solid var(--app-border);border-radius:8px;padding:8px 12px 8px 36px;background:var(--app-surface-muted);color:var(--app-text);font:inherit;font-size:.92rem;outline:none}.global-search input:focus{border-color:#2563eb6b;background:#fff;box-shadow:0 0 0 3px #2563eb1f}.topbar-actions{display:flex;flex:0 0 auto;margin-left:auto;min-width:0;align-items:center;justify-content:flex-end;gap:10px}.app-content{min-width:0;padding:28px}.sidebar-brand{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:12px;min-height:74px;padding:20px 18px 12px;border-bottom:0}.brand-mark{display:grid;width:32px;height:32px;place-items:center;border-radius:10px;background:linear-gradient(180deg,#88a0c0,#6f89ad);color:#fff;font-size:.92rem;font-weight:800}.sidebar-brand-copy{display:grid;gap:1px}.sidebar-brand h1{margin:0;color:#f8fafc;font-size:.98rem;font-weight:700;line-height:1.15}.sidebar-subtitle{margin:0;color:#aab8ca;font-size:.83rem;font-weight:500}.build-meta{margin:3px 0 0;color:#7d8ca1;font-size:.67rem;font-weight:500}.tabs{display:flex;flex:1 1 auto;flex-direction:column;align-items:stretch;min-height:0;gap:0;padding:8px 12px 20px}.sidebar-nav-groups{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;gap:18px;overflow:visible;padding:4px 0 0}.sidebar-group{display:flex;flex-direction:column;gap:8px}.sidebar-group-label{margin:0;padding:0 10px;color:#6d7c91;font-size:.69rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.sidebar-group-links{display:flex;flex-direction:column;gap:4px;padding-left:0}.sidebar-nav-link{display:flex;min-height:36px;align-items:center;gap:12px;padding:8px 12px;border-radius:10px;background:transparent;color:#d7e1ee;font-size:.92rem;font-weight:500;letter-spacing:0;text-transform:none;text-decoration:none;transition:background-color .14s ease,color .14s ease}.sidebar-nav-link:hover{background:#ffffff0a;color:#f8fafc}.sidebar-nav-link[aria-current=page]{background:#7e94b247;color:#fff}.nav-icon{position:relative;width:14px;height:14px;flex:0 0 14px;border:1.5px solid #93a5bb;border-radius:3px;opacity:.9}.nav-icon:before{position:absolute;top:2px;left:2px;width:2px;height:2px;border-radius:50%;background:currentColor;color:#93a5bb;box-shadow:6px 0 0 currentColor,0 6px 0 currentColor,6px 6px 0 currentColor;content:""}.sidebar-nav-link[aria-current=page] .nav-icon{border-color:#d8e3f1}h1,h2,h3,p{color:inherit}h2,.dashboard-heading h2{color:var(--app-text);font-size:clamp(1.65rem,2.4vw,2.35rem);font-weight:700;line-height:1.12}h3{color:var(--app-text);font-size:1rem;font-weight:700}.section{gap:20px;padding-top:0}.overview-section,.portfolio-dashboard-section,.portfolio-score-section,.snapshot-changes-section,.allocation-concentration-section,.watchlist-section,.insight-section,.fair-value-heatmap-section,.stock-route-section{gap:20px}.dashboard-heading{align-items:flex-end;padding:0 0 2px}.dashboard-muted,.notice,.text-grid p,.overview-copy p,.cockpit-score-card p,.watchlist-primary-card p,.allocation-score-card p,.changes-primary-card p,.portfolio-score-hero p,.score-pillar-card p{color:var(--app-muted)}.status,.dashboard-heading-meta span,.section-badge,.fair-value-badge,.fair-value-recommendation,.stock-quote-links span,.admin-muted{border:1px solid var(--app-border);border-radius:7px;background:var(--app-surface-muted);color:var(--app-muted);box-shadow:none}.currency-switcher,.user-menu{min-height:38px;border:1px solid var(--app-border);border-radius:8px;background:#fff;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.currency-rate{border-right:1px solid var(--app-border);color:var(--app-muted);font-size:.76rem;font-weight:700}.currency-switcher button{min-width:48px;border-right:1px solid var(--app-border);color:var(--app-muted);font-size:.78rem;font-weight:700}.currency-switcher button[aria-pressed=true]{background:var(--app-primary);color:#fff}.user-menu{display:flex;align-items:center;gap:8px;padding:4px 4px 4px 10px}.user-menu div{display:flex;min-width:0;align-items:center;gap:6px}.user-menu span{flex:0 0 auto;color:var(--app-muted-2);font-size:.66rem;font-weight:600;text-transform:none}.user-menu strong{display:block;max-width:150px;overflow:hidden;color:var(--app-text);font-size:.82rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.sign-out-button,.ghost-button,.primary-button{min-height:34px;border-radius:7px;padding:7px 11px;font-size:.84rem;font-weight:700}.sign-out-button,.ghost-button{border-color:var(--app-border);background:#fff;color:var(--app-muted)}.sign-out-button:hover,.ghost-button:hover{background:var(--app-surface-muted);color:var(--app-text)}.primary-button{border-color:var(--app-primary);background:var(--app-primary);color:#fff}.back-link{width:fit-content;border:1px solid var(--app-border);border-radius:8px;padding:9px 12px;background:#fff;color:var(--app-primary);cursor:pointer;font:inherit;font-weight:700;text-decoration:none;box-shadow:var(--app-shadow);transition:background-color .14s ease,border-color .14s ease,color .14s ease}.back-link:hover{border-color:#7a94b873;background:var(--app-primary-soft);color:#627f9e}.overview-hero-grid{grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px}.metric-card,.overview-primary-metric,.overview-copy,.overview-mini-metrics,.chart-panel,.table-wrap,.admin-actions,.snapshot-admin-panel,.admin-run-result,.crawler-progress,.dashboard-panel,.stock-detail-panel,.fair-value-panel,.fv-heatmap-summary article,.allocation-group-list article,.fair-value-grid article,.crawler-result-list article,.cockpit-score-card,.dashboard-metric-tile,.insight-primary-card,.watchlist-primary-card,.allocation-score-card,.changes-primary-card,.changes-event-grid article,.score-pillar-card,.portfolio-score-hero{border:1px solid var(--app-border);border-radius:12px;background:var(--app-surface);box-shadow:var(--app-shadow);-webkit-backdrop-filter:none;backdrop-filter:none}.metric-card,.overview-primary-metric{min-height:118px;padding:18px}.dashboard-panel h3{color:var(--app-text)}.insight-primary-card>span{color:var(--app-muted)}.insight-primary-card strong{color:#6c87a8}.insight-primary-card p{color:var(--app-muted)}.crawler-result-list article>div:first-child,.allocation-group-list article,.fair-value-grid article{color:var(--app-text)}.dashboard-list li{border:1px solid var(--app-border);background:#fbfcfd}.dashboard-list strong{color:var(--app-text)}.dashboard-list span{color:var(--app-muted)}.dashboard-list b{color:#516173}.score-pillar-heading strong{color:#6c87a8;font-weight:800}.stock-detail-meta span{color:#5f7084;font-weight:600}.stock-company-name{color:#6f8195;font-weight:600}.fair-value-title-row h3{color:var(--app-text)}.fair-value-title-row .fair-value-recommendation{border-color:#7a94b83d;background:#eef3f8;color:#647f9f}.stock-overview-stats dt{color:#6f8092;font-weight:700}.stock-overview-stats dd{color:#43576d;font-weight:800}.fair-value-details{color:var(--app-muted)}.fair-value-details div{border:1px solid var(--app-border);background:#fbfcfd}.fair-value-grid article{border:1px solid var(--app-border);background:var(--app-surface-muted)}.fair-value-grid span{color:#6f8092;font-weight:700}.fair-value-grid strong{color:#43576d;font-weight:800}.fair-value-details dt{color:#6f8092;font-weight:700}.fair-value-details dd{color:#43576d;font-weight:800}.stock-metric-section{border:1px solid var(--app-border);background:#fbfcfd}.stock-metric-section summary{color:var(--app-text)}.stock-metric-section summary:before{color:#7a94b8}.stock-metric-section summary strong{border-color:#7a94b83d;background:#eef3f8;color:#647f9f}.stock-metric{border:1px solid var(--app-border);background:var(--app-surface-muted)}.stock-metric span{color:#6f8092}.stock-metric strong{color:#43576d}.stock-metric-positive strong{color:#6c8f80}.stock-metric-negative strong{color:#b07a72}.allocation-wide-panel h3{color:var(--app-text)}.allocation-exposure-stack{border:1px solid var(--app-border);background:#eef2f6}.allocation-segment-stocks{background:#8fb0a2}.allocation-segment-etfs{background:#d1ba93}.allocation-group-list strong{color:var(--app-text)}.allocation-group-list span{color:var(--app-muted)}.allocation-group-list b{color:#516173}.fv-heatmap-chart{border:1px solid var(--app-border);background:#f8fafc}.fv-heatmap-chart .heatmap-sector-frame{fill:#eef3f7;stroke:#d9e2eb}.fv-heatmap-chart .heatmap-sector-label{fill:#5f7084}.changes-event-grid span{color:var(--app-muted)}.changes-event-grid strong{color:#43576d}.metric-card span,.overview-primary-metric span,.overview-mini-metrics span,.cockpit-score-card>span,.dashboard-metric-tile span,.watchlist-primary-card>span,.allocation-score-card>span,.changes-primary-card>span,.portfolio-score-hero span,.score-pillar-heading span{color:var(--app-muted);font-size:.72rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.metric-card strong,.overview-primary-metric strong,.overview-mini-metrics strong,.cockpit-score-card strong,.dashboard-metric-tile strong,.watchlist-primary-card strong,.allocation-score-card strong,.changes-primary-card strong,.portfolio-score-hero strong{color:var(--app-text)}.overview-primary-metric{border-color:#2563eb38}.overview-primary-metric strong{font-size:clamp(1.6rem,2.5vw,2.15rem)}.overview-summary{grid-template-columns:minmax(260px,1fr) minmax(280px,.78fr)}.chart-panel{padding:20px}.chart-heading span,.stock-current-price,.inline-link,.stock-link,.sort-indicator{color:var(--app-primary)}.chart-grid-line{stroke:#e5eaf0}.chart-axis-label,.chart-axis-title{fill:var(--app-muted)}.chart-area{fill:#2563eb1a}.chart-line{stroke:var(--app-primary)}.chart-point{fill:var(--app-info);stroke:#fff}.digrin-bar-0,.digrin-bar-fill-0{fill:var(--app-primary);background:var(--app-primary)}.digrin-bar-1,.digrin-bar-fill-1{fill:var(--app-info);background:var(--app-info)}.digrin-bar-2,.digrin-bar-fill-2{fill:var(--app-warning);background:var(--app-warning)}.digrin-bar-3,.digrin-bar-fill-3{fill:var(--app-danger);background:var(--app-danger)}.heatmap-chart{padding:14px;background:#f3f6f9}.heatmap-heading h3{color:#f8fafc}.heatmap-heading span{color:#cbd5e1}.table-wrap{padding:0}.table-wrap h3{margin:0;padding:18px 18px 0}table{min-width:720px;background:transparent}th,td{border-bottom:1px solid var(--app-border);padding:12px 14px}th{background:#f8fafc;color:var(--app-muted);font-size:.72rem;font-weight:700}td{color:var(--app-text)}tbody tr:nth-child(2n){background:#fbfcfd}tbody tr:hover{background:#f1f5f9}.summary-row{background:var(--app-primary-soft)}.summary-row td{border-bottom-color:#bfdbfe;color:#627f9e}.cell-positive,.stock-metric-positive strong,.fair-value-recommendation-strong-buy,.fair-value-recommendation-buy,.fair-value-badge-high,.fair-value-check-pass{color:var(--app-success)}.cell-negative,.stock-metric-negative strong,.fair-value-recommendation-avoid,.fair-value-check-fail{color:var(--app-danger)}.asset-filter-controls label{border-color:var(--app-border);border-radius:8px;background:#fff;color:var(--app-muted);box-shadow:var(--app-shadow)}.asset-filter-controls input,.admin-checkbox input{accent-color:var(--app-primary)}.stock-link{text-decoration:none}.stock-link:hover{color:#627f9e}.loading-overlay{border-color:var(--app-border);background:#fffffff0;box-shadow:var(--app-shadow)}.loading-overlay strong{color:var(--app-text)}.loading-overlay p{color:var(--app-muted)}.loading-overlay li{border-color:var(--app-border);background:var(--app-surface-muted);color:var(--app-muted)}.loading-orbit{border-color:var(--app-border);background:radial-gradient(circle at center,rgba(122,148,184,.16),rgba(124,159,168,.08) 45%,transparent 56%)}.loading-orbit span{background:var(--app-primary);box-shadow:0 0 18px #7a94b847}.loading-orbit span:nth-child(3){background:var(--app-info);box-shadow:0 0 18px #7c9fa842}.score-bar,.score-pillar-bar,.allocation-stack,.allocation-exposure-stack,.pie-list-bar{background:#e5eaf0}.score-bar span,.score-pillar-bar span{background:linear-gradient(90deg,var(--app-primary),var(--app-info))}.portfolio-score-ring{background:radial-gradient(circle at center,#fff 59%,transparent 60%),conic-gradient(var(--app-primary) calc(var(--score) * 1%),#e5eaf0 0)}.portfolio-score-ring span{color:var(--app-text)}.admin-inline-input,.snapshot-picker select,.portfolio-form input,.auth-form input{border-color:var(--app-border);background:#fff;color:var(--app-text)}.auth-shell{background:var(--app-bg)}.auth-panel{border-color:var(--app-border);background:var(--app-surface);box-shadow:var(--app-shadow)}.auth-panel h1{color:var(--app-text)}.auth-panel p,.auth-form label{color:var(--app-muted)}.admin-subnav button{border-color:var(--app-border);background:#fff;color:var(--app-muted)}.admin-subnav button[aria-current=page]{border-color:#7a94b866;background:var(--app-primary-soft);color:#627f9e}.admin-run-result{border-color:#7a94b838;background:#f8fafc}.admin-run-result span{color:var(--app-muted)}.admin-run-result strong{color:var(--app-text)}.crawler-log-list{border-color:#7a94b833;background:#f8fafc}.crawler-log-list p{color:#516173}.crawler-progress{border-color:#b292633d;background:#fcf8f2}.crawler-progress-heading p{color:#7f705f}.crawler-progress-heading>strong{color:#9d8562}.crawler-progress-steps li{color:var(--app-muted)}.crawler-progress-steps li span{background:#eceff3;color:var(--app-muted)}.crawler-progress-steps li.is-active{color:#627f9e}.crawler-progress-steps li.is-active span{background:var(--app-primary-soft);color:#627f9e}.crawler-progress-steps li.is-complete{color:#6c8f80}.crawler-progress-steps li.is-complete span{background:var(--app-success-soft);color:#6c8f80}.crawler-progress-portfolios strong,.recommendation-row span,.recommendation-row b{color:var(--app-text)}.recommendation-row div{background:#e6ebf0}.recommendation-row i{background:linear-gradient(90deg,#8fb0a2,#b9a686)}.fv-heatmap-summary article,.fv-sector-panel{border-color:var(--app-border);background:var(--app-surface);box-shadow:var(--app-shadow)}.fv-heatmap-summary span,.fv-sector-heading span{color:var(--app-muted)}.fv-heatmap-summary strong{color:var(--app-text)}.fair-value-panel-muted{color:var(--app-muted)}.fair-value-check{border-color:var(--app-border);background:#fff;color:var(--app-muted)}.fair-value-check-pass{border-color:#5f8f7a47;background:var(--app-success-soft)}.fair-value-check-fail{border-color:#c6857d47;background:var(--app-danger-soft)}.fair-value-check-neutral{border-color:#b292633d;background:var(--app-warning-soft);color:#8d7650}.fair-value-check-unknown{background:var(--app-surface-muted)}.chart-area{fill:#7a94b81f}.heatmap-chart{background:#1a2634}.heatmap-sector-frame{fill:#0b121c3d;stroke:#111926e6}.heatmap-sector-label{fill:#dde7f2}.heatmap-tile{stroke:#121c29eb}.heatmap-ticker{fill:#f8fbff;stroke:#15202f80}.heatmap-value,.heatmap-change{fill:#edf3f9;stroke:#15202f75}.heatmap-neutral{fill:#73869b}.heatmap-red-3{fill:#ac6f69}.heatmap-red-2{fill:#c78d86}.heatmap-red-1{fill:#dbaca6}.heatmap-green-1{fill:#a8c5bc}.heatmap-green-2{fill:#88a99d}.heatmap-green-3{fill:#6d8f84}.digrin-pie-slice{stroke:#fff;stroke-width:1.5}.digrin-pie-slice-0{fill:#94adc7;background:#94adc7}.digrin-pie-slice-1{fill:#b9a686;background:#b9a686}.digrin-pie-slice-2{fill:#8aa7b3;background:#8aa7b3}.digrin-pie-slice-3{fill:#c6958c;background:#c6958c}.digrin-pie-slice-4{fill:#b2a2c4;background:#b2a2c4}.digrin-pie-slice-5{fill:#96beb7;background:#96beb7}.digrin-pie-slice-6{fill:#c5aa8c;background:#c5aa8c}.digrin-pie-slice-7{fill:#a8bf97;background:#a8bf97}.digrin-pie-hole{fill:#f8fafc;stroke:#e3e8ef}.digrin-pie-percent{fill:#243445}.digrin-pie-total-label{fill:var(--app-muted)}.digrin-pie-total{fill:var(--app-text)}.digrin-pie-legend{color:var(--app-text)}.digrin-pie-legend-row strong{color:var(--app-muted)}.fv-heatmap-swatch{border-color:#cdd6e1d9;color:#2b3b4c}.fv-heatmap-click-target:hover .fv-heatmap-tile,.fv-heatmap-click-target:focus-visible .fv-heatmap-tile{filter:brightness(1.04);stroke:#ffffffc7}.fv-heatmap-strong-buy,.fv-tile-strong-buy{background:#8fb0a2;fill:#8fb0a2}.fv-heatmap-buy,.fv-tile-buy{background:#b8ccb2;fill:#b8ccb2}.fv-heatmap-hold,.fv-tile-hold{background:#d7c29c;fill:#d7c29c}.fv-heatmap-reduce,.fv-tile-reduce{background:#d8ae92;fill:#d8ae92}.fv-heatmap-avoid,.fv-tile-avoid{background:#d4a09a;fill:#d4a09a}.fundamental-bar{fill:#7c9fa8d1}.portfolio-delta-zero-line{stroke:#bec8d5cc}.portfolio-delta-bar-positive{fill:#8fb0a2d1}.portfolio-delta-bar-negative{fill:#d4a09ad1}.stock-history-shares-line{stroke:#8fb0a2}.stock-history-value-line{stroke:#b9a686}.stock-history-value-line-stocks{stroke:#8fb0a2}.stock-history-value-line-etfs,.stock-price-history-line-adjusted{stroke:#8aa7b3}.stock-price-history-point{fill:#8aa7b3;stroke:#fff}.stock-price-transaction-marker circle{stroke:#fff}.stock-price-transaction-marker text{fill:#314356}.stock-price-transaction-marker-buy circle{fill:#a8c5bc}.stock-price-transaction-marker-sell circle{fill:#d6a49d}.stock-history-shares-point{fill:#a8c5bc;stroke:#fff}.stock-history-stock-bar{fill:#a8c5bce0}.stock-history-etf-bar{fill:#8aa7b3e0}.stock-history-value-point{fill:#b9a686;stroke:#fff}.stock-history-value-point-stocks{fill:#a8c5bc}.stock-history-value-point-etfs{fill:#8aa7b3}.stock-history-value-axis{fill:#a08762}.stock-history-value-axis-stocks{fill:#7d9e91}.stock-history-value-axis-etfs{fill:#6f8d99}.stock-history-legend{color:var(--app-muted)}.stock-history-legend span:before{opacity:.95}.stock-history-legend-shares:before,.stock-history-legend-stocks:before{background:#a8c5bc}.stock-history-legend-etfs:before,.stock-price-history-legend-adjusted:before,.stock-history-legend-value-etfs:before{background:#8aa7b3}.stock-history-legend-value:before{background:#b9a686}.stock-price-history-legend-buy:before{background:#a8c5bc}.stock-price-history-legend-sell:before{background:#d6a49d}@media(max-width:920px){.app-shell{grid-template-columns:1fr}.app-sidebar{position:static;min-height:auto;max-height:none;width:auto;margin:0;border-right:0;border-bottom:1px solid rgba(255,255,255,.06)}.tabs{padding:10px}.sidebar-nav-groups{overflow:visible}.app-topbar{position:static;flex-wrap:wrap;padding:12px 16px}.global-search{flex-basis:100%;max-width:none;order:2}.topbar-actions{width:100%;flex-wrap:wrap;justify-content:flex-start}.app-content{padding:18px 16px}.overview-hero-grid,.overview-summary{grid-template-columns:1fr}}@media(min-width:921px)and (max-width:1180px){.app-shell{grid-template-columns:240px minmax(0,1fr)}.overview-hero-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
