:root{color-scheme:dark;--bg:#081015;--sidebar:#0b141a;--panel:#111d25;--panel2:#13222a;--line:#25353e;--line2:#1b2b34;--text:#eef4f2;--muted:#8ca09f;--dim:#60777b;--mint:#79e2ba;--mint2:#b8f6d6;--amber:#e9be73;--red:#ff9d96;--blue:#89bce7;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);min-width:320px}
button,input,textarea{font:inherit}
button{cursor:pointer}
button:disabled{opacity:.55;cursor:not-allowed}
a{color:inherit;text-decoration:none}
[hidden]{display:none!important}
::selection{background:#79e2ba55;color:#fff}
:focus-visible{outline:2px solid var(--mint);outline-offset:3px}
.accent{color:var(--mint)}
.eyebrow,.side-label,.tiny-label,.metric-label,.section-count,.panel-mark,.top-breadcrumb,.footer,.status-badge,.ticker-mark,.card-corner{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.13em;font-size:10px;font-weight:700}
.eyebrow{color:var(--mint);margin-bottom:8px}
.muted{color:var(--muted);font-size:12px}
.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}
.sidebar{background:var(--sidebar);border-right:1px solid var(--line2);padding:30px 19px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:11px;padding:0 10px;font-size:24px;font-weight:750;letter-spacing:-.07em}
.brand-icon{display:grid;place-items:center;width:53px;height:53px;border-radius:15px;background:var(--mint);color:#0a1917;font-size:32px;line-height:1;font-weight:850;letter-spacing:-.1em;box-shadow:0 12px 44px #4ceab92b}
.brand-icon span{color:#22634b}
.brand-icon.small{width:30px;height:30px;border-radius:9px;font-size:21px;box-shadow:none}
.side-label{color:var(--dim);margin:54px 12px 16px}
.side-nav{display:grid;gap:5px}
.side-nav a{display:flex;align-items:center;gap:13px;padding:12px 13px;border:1px solid transparent;border-radius:8px;color:#9badae;font-size:13px;font-weight:580;transition:.15s ease}
.side-nav a:hover,.side-nav a.active{background:#173128;border-color:#284f3f;color:var(--mint2)}
.nav-glyph{font-family:ui-monospace,monospace;display:inline-grid;place-items:center;width:19px;font-size:18px;font-weight:400;color:var(--dim)}
.side-nav a.active .nav-glyph{color:var(--mint)}
.side-bottom{margin-top:auto;border-top:1px solid var(--line);padding:23px 11px 0}
.tiny-label{color:var(--dim)}
.side-asof{font-size:13px;margin-top:10px;font-weight:600}
.coverage-mini{margin-top:7px;font-size:11px;color:var(--muted)}
.main{min-width:0}
.topbar{height:72px;border-bottom:1px solid var(--line2);display:flex;justify-content:space-between;align-items:center;padding:0 38px;background:#0a1319;position:sticky;top:0;z-index:20}
.top-title{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.08em}
.top-breadcrumb{color:var(--dim)}
.slash{color:#50646b}
.top-title strong{font-family:ui-monospace,monospace;font-size:11px;color:#c9d7d4}
.top-actions{display:flex;align-items:center;gap:10px}
.quote-chip{height:34px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:7px;padding:0 11px;background:#102027;font-family:ui-monospace,monospace;font-size:11px;color:var(--muted)}
.quote-chip strong{color:var(--text);font-size:12px}
.quote-dot{width:5px;height:5px;background:var(--mint);border-radius:50%;box-shadow:0 0 12px var(--mint)}
.button,.icon-button{border:1px solid var(--line);border-radius:7px;background:#16242c;color:var(--text);height:35px;padding:0 14px;font-size:12px;font-weight:700;transition:.15s ease}
.button:hover,.icon-button:hover{border-color:#4a7063;background:#1d302f}
.button.primary{background:var(--mint);border-color:var(--mint);color:#0b1915}
.button.primary:hover{background:#a2efcb;border-color:#a2efcb}
.button.ghost{background:#13212a}
.icon-button{width:35px;padding:0;font-size:21px;line-height:1}
.logout{font-size:17px}
.content{max-width:1550px;padding:41px 38px 0;margin:auto}
.page-section{scroll-margin-top:95px;margin-bottom:58px}
.section-intro{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}
.section-intro h1{font-size:38px;letter-spacing:-.055em;line-height:1;margin:0 0 10px;font-weight:730}
.section-intro p{margin:0;color:var(--muted);font-size:14px}
.status-area{display:flex;flex-direction:column;align-items:flex-end;gap:8px;padding-bottom:4px}
.status-badge{display:inline-block;padding:8px 10px;border-radius:5px}
.status-badge.partial{background:#3b3122;color:var(--amber);border:1px solid #715634}
.status-badge.complete{background:#183a2b;color:var(--mint);border:1px solid #377a5b}
.updated-at{font-size:11px;color:var(--dim)}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:15px}
.metric-card{min-height:152px;border:1px solid var(--line);border-radius:11px;background:linear-gradient(145deg,#14232b,#101b22 75%);padding:22px 20px;position:relative;overflow:hidden}
.metric-card.featured{background:linear-gradient(145deg,#19392e,#152924 55%,#11221f);border-color:#37684d}
.metric-card.featured:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-90px;top:-110px;background:#5fe5ad20;filter:blur(22px)}
.metric-label{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.metric-value,.big-number,.retirement-value,.medium-value,.quote-price{font-variant-numeric:tabular-nums;letter-spacing:-.055em}
.metric-value{font-size:30px;line-height:1.2;font-weight:720;margin-top:28px;white-space:nowrap}
.metric-sub{font-size:11px;color:var(--muted);margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-corner{position:absolute;right:18px;bottom:16px;color:#40615b}
.info-dot{display:inline-grid;place-items:center;border:1px solid #5b716d;border-radius:50%;height:13px;width:13px;font-size:9px;letter-spacing:0;color:#a4b9b2;margin-left:3px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.overview-grid{grid-template-columns:.87fr 1.13fr}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:23px;min-width:0}
.panel-header{display:flex;align-items:start;justify-content:space-between;gap:15px;margin-bottom:20px}
.panel h2,.panel h3{margin:0;letter-spacing:-.035em;font-weight:680}
.panel h2{font-size:20px}
.panel h3{font-size:18px}
.panel-mark{color:var(--dim)}
.pay-structure{display:grid;gap:0}
.pay-structure>div,.stat-list>div,.detail-rows>div,.value-pair{display:flex;justify-content:space-between;align-items:baseline;gap:15px;border-bottom:1px solid var(--line2);padding:11px 0}
.pay-structure>div:first-child,.stat-list>div:first-child,.detail-rows>div:first-child{padding-top:0}
.pay-structure>div:last-child,.stat-list>div:last-child,.detail-rows>div:last-child{border-bottom:0}
.pay-structure span,.stat-list span,.detail-rows span,.value-pair span{font-size:12px;color:var(--muted)}
.pay-structure strong,.stat-list strong,.detail-rows strong,.value-pair strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums}
.footnote{color:var(--dim);font-size:11px;line-height:1.55;margin:16px 0 0}
.scenario-panel{background:linear-gradient(145deg,#162821,#121e22)}
.scenario-result{display:flex;align-items:end;justify-content:space-between;gap:16px;border-bottom:1px solid #315044;padding:2px 0 17px}
.scenario-result span{font-size:12px;color:#a5b8ab;max-width:165px;line-height:1.4}
.scenario-result strong{font-size:28px;color:var(--mint);font-variant-numeric:tabular-nums;letter-spacing:-.05em}
.scenario-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:17px}
.scenario-grid label{color:var(--muted);font-size:10px;line-height:1.4}
.scenario-grid label span{color:var(--mint)}
.scenario-grid input{display:block;width:100%;margin-top:8px;padding:8px 9px;background:#0d1b1a;border:1px solid #355044;border-radius:6px;color:var(--text);font-family:ui-monospace,monospace;font-size:13px;outline:none}
.scenario-grid input:focus{border-color:var(--mint)}
.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px;gap:15px}
.section-heading h2{font-size:29px;margin:0;line-height:1.1;letter-spacing:-.045em}
.section-count{color:var(--dim);padding-bottom:4px}
.ytd-panel,.table-panel{margin-bottom:15px}
.stat-list{display:grid}
.stat-list>div{padding:10px 0}
.stack-bar{width:100%;height:14px;border-radius:99px;overflow:hidden;display:flex;background:#23323b;margin:25px 0 21px}
.stack-bar span{height:100%;min-width:0}
.bar-legend{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px}
.bar-legend div{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted)}
.bar-legend div:before{content:"";width:7px;height:7px;min-width:7px;border-radius:2px;background:var(--swatch);margin-top:3px}
.bar-legend strong{margin-left:auto;color:var(--text);font-variant-numeric:tabular-nums}
.table-panel{padding-bottom:9px}
.table-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:12px}
th{text-align:left;color:var(--dim);font:700 10px ui-monospace,monospace;letter-spacing:.11em;padding:11px 10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:15px 10px;border-bottom:1px solid var(--line2);font-variant-numeric:tabular-nums;color:#c9d5d2;white-space:nowrap}
tr:last-child td{border-bottom:0}
th:first-child,td:first-child{padding-left:0}
th:last-child,td:last-child{padding-right:0}
.num{text-align:right}
td.num{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.row-strong{color:var(--text)!important;font-weight:700}
.row-tag{display:inline-block;padding:4px 7px;border:1px solid #3d555c;border-radius:4px;font-size:10px;color:#a5bbb9}
.empty-row{text-align:center!important;color:var(--dim);padding:30px!important;font-family:inherit!important}
.detail-grid{margin-top:15px}
.detail-rows>div{padding:9px 0}
.equity-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:15px;margin-bottom:15px}
.quote-panel{background:linear-gradient(145deg,#1a2a32,#121c24)}
.ticker-mark{border:1px solid #36515b;border-radius:4px;color:var(--blue);padding:7px 9px}
.quote-price{font-size:47px;font-weight:740;margin:32px 0 2px}
.quote-time{font-size:11px;color:var(--muted)}
.quote-line{height:1px;background:linear-gradient(90deg,var(--mint),transparent);margin:25px 0 0}
.quote-foot{font-size:11px;line-height:1.5;color:var(--dim);margin-top:14px}
.equity-summary{display:flex;flex-direction:column}
.big-number{font-size:39px;font-weight:720;margin:auto 0 20px}
.value-pair{padding:15px 0;border-top:1px solid var(--line2);border-bottom:0}
.equity-summary .footnote{margin-top:6px}
.retirement-grid{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:15px}
.retirement-grid>.panel{min-height:180px;display:flex;flex-direction:column}
.retirement-hero{background:linear-gradient(145deg,#19382f,#122720);border-color:#386b52}
.retirement-value{font-size:40px;font-weight:730;margin:auto 0 0}
.medium-value{font-size:28px;font-weight:700;margin:auto 0 0}
.retirement-grid .footnote{margin-top:8px}
.coverage-rows,.source-rows{display:grid}
.coverage-rows>div,.source-rows>div{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line2);padding:11px 0;font-size:12px}
.coverage-rows>div:last-child,.source-rows>div:last-child{border-bottom:0}
.coverage-rows .status-ok{color:var(--mint)}
.coverage-rows .status-missing{color:var(--amber)}
.source-rows small{color:var(--dim);display:block;margin-top:4px}
.source-rows>div>span:last-child{font-family:ui-monospace,monospace;font-size:11px;color:var(--muted);white-space:nowrap}
.footer{border-top:1px solid var(--line2);padding:24px 0;display:flex;justify-content:space-between;gap:18px;color:var(--dim);line-height:1.6;letter-spacing:.06em}
.footer span:last-child{font-family:inherit;letter-spacing:0;text-align:right;font-weight:400}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 62% 42%,#174136 0,#102a28 17%,#081015 48%)}
.login-panel{width:min(430px,100%);padding:37px;border:1px solid #355448;border-radius:17px;background:#101e22;box-shadow:0 30px 130px #020909aa}
.login-panel .brand-icon{margin-bottom:31px}
.login-panel h1{font-size:45px;letter-spacing:-.07em;margin:0 0 8px}
.login-panel p{font-size:13px;color:var(--muted);line-height:1.6;margin:0 0 31px}
.login-panel form{display:grid;gap:11px}
.login-panel label{font-size:11px;color:#aabbb7;font-weight:700}
.login-panel input{height:43px;background:#0a1519;border:1px solid #344850;color:var(--text);border-radius:7px;padding:0 13px;outline:none}
.login-panel input:focus{border-color:var(--mint)}
.button.full{height:43px;width:100%;display:flex;align-items:center;justify-content:space-between;margin-top:5px;font-size:13px;padding:0 15px}
.login-footer{border-top:1px solid var(--line);margin-top:29px;padding-top:20px;color:var(--dim);font:11px ui-monospace,monospace}
.login-footer span{padding:0 5px}
.error{color:var(--red);font-size:12px;min-height:16px;margin-top:10px}
.import-dialog{width:min(690px,calc(100vw - 32px));max-height:calc(100vh - 50px);overflow:auto;border:1px solid #3a5c53;border-radius:12px;background:#132127;color:var(--text);padding:26px;box-shadow:0 25px 90px #0009}
.import-dialog::backdrop{background:#020707bf;backdrop-filter:blur(5px)}
.dialog-head{display:flex;align-items:start;justify-content:space-between}
.dialog-head h2{margin:0;font-size:25px;letter-spacing:-.04em}
.dialog-head .icon-button{border:0;background:transparent;color:var(--muted);font-size:28px}
.import-dialog>p{font-size:12px;color:var(--muted);line-height:1.6;margin:15px 0 24px}
.upload-label,.textarea-label{display:block;font-size:11px;color:#b4c7c2;font-weight:700;margin:18px 0 8px}
.import-dialog input[type=file]{display:block;width:100%;background:#0b181c;border:1px dashed #45645c;border-radius:7px;padding:14px;color:var(--muted);font-size:11px}
.import-dialog textarea{display:block;width:100%;height:220px;resize:vertical;background:#081418;border:1px solid #354d4b;border-radius:7px;padding:13px;color:var(--text);font:12px/1.5 ui-monospace,monospace;outline:none}
.import-dialog textarea:focus{border-color:var(--mint)}
.dialog-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:7px}
@media(max-width:1250px){.metric-grid{grid-template-columns:repeat(2,1fr)}.retirement-grid{grid-template-columns:repeat(2,1fr)}.equity-grid{grid-template-columns:repeat(2,1fr)}.equity-grid>.panel:first-child{grid-column:span 2}.overview-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.shell{display:block}.sidebar{position:static;width:auto;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:16px 20px}.sidebar .brand{padding:0}.side-label,.side-bottom{display:none}.side-nav{display:flex;overflow:auto;margin-top:16px;gap:4px}.side-nav a{white-space:nowrap;padding:8px 10px;font-size:11px}.nav-glyph{display:none}.topbar{height:60px;padding:0 20px;top:0}.content{padding:28px 20px 0}.overview-grid{grid-template-columns:1fr}.scenario-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:650px){.top-breadcrumb,.slash,.top-title strong{display:none}.topbar{justify-content:flex-end}.top-actions{gap:6px}.quote-chip{display:none}.top-actions .button{padding:0 9px}.section-intro{align-items:start;flex-direction:column}.section-intro h1{font-size:31px}.status-area{align-items:flex-start}.metric-grid,.two-col,.equity-grid,.retirement-grid{grid-template-columns:1fr}.equity-grid>.panel:first-child{grid-column:auto}.metric-card{min-height:135px}.metric-value{font-size:29px;margin-top:20px}.scenario-grid{grid-template-columns:repeat(2,1fr)}.panel{padding:19px}.section-heading h2{font-size:26px}.footer{flex-direction:column}.footer span:last-child{text-align:left}}
