:root{--canvas:#0f1513;--surface:#18211e;--raised:#1e2925;--line:#35433e;--text:#f4f2eb;--muted:#b5beb9;--gold:#d3b45c;--mint:#62d7b0;--nav:268px;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--text);font:14px/1.65 Inter,"Noto Sans TC",system-ui,sans-serif}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:6px;padding:8px 13px;background:var(--raised);color:var(--text)}button:hover{border-color:var(--gold)}button:disabled{opacity:.45;cursor:default}a{color:var(--mint);text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}[hidden]{display:none!important}header{height:64px;background:#0b100f;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;display:flex;align-items:center;padding:0 24px;gap:18px}.brand{display:flex;align-items:center;gap:12px}.brand strong{font-size:17px;letter-spacing:.04em}.mark{font-size:35px;color:var(--gold);line-height:1}.brand-sub{color:var(--muted);border-left:1px solid var(--line);padding-left:12px}.private{margin-left:auto;font-size:12px;color:var(--mint)}#nav-toggle{padding:4px 10px;background:transparent}aside{width:var(--nav);position:fixed;top:64px;bottom:0;background:#121a17;border-right:1px solid var(--line);padding:30px 18px;display:flex;flex-direction:column}aside h2{font-size:18px;margin:0}aside .muted{font-size:12px}.eyebrow{font-size:10px;letter-spacing:.16em;color:var(--gold);font-weight:700;margin:0 0 7px}nav{margin-top:30px;display:grid;gap:8px}.nav{display:flex;align-items:center;gap:14px;text-align:left;background:transparent;border-color:transparent;padding:12px}.nav span{font-size:20px;color:var(--muted)}.nav b{margin-left:auto;font-size:10px;color:var(--muted);font-weight:400}.nav.active{background:#26332e;border:1px solid #50615a;border-left:3px solid var(--gold)}.nav.active span{color:var(--gold)}.side-note{margin-top:auto;border-top:1px solid var(--line);padding:24px 10px 0;color:var(--muted)}small,.small{font-size:12px;color:var(--muted)}main{margin-left:var(--nav);padding:30px clamp(18px,2.4vw,42px);max-width:1900px}.heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}h1{font-size:28px;line-height:1.3;margin:0 0 8px;font-weight:600}h2{font-size:17px;line-height:1.4;margin:0 0 10px;font-weight:600}p{margin:10px 0}.muted{color:var(--muted)}.tag{display:inline-block;font-size:11px;color:var(--muted);border:1px solid var(--line);padding:3px 9px;border-radius:4px;white-space:nowrap}#status{border:1px solid var(--line);border-left:3px solid var(--mint);padding:9px 13px;margin-bottom:20px;background:#18211e;font-size:12px;color:var(--muted)}#status.dirty{border-left-color:var(--gold);color:var(--gold)}#status.error{border-left-color:#ff7567;color:#ff7567}.workspace{display:grid;grid-template-columns:310px minmax(0,1fr);gap:20px;align-items:start}.panel{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:22px;margin-bottom:20px;min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-head h2{margin-bottom:0}.field{margin-bottom:16px}.field label{display:flex;justify-content:space-between;font-size:12px;margin-bottom:6px;gap:10px}.field label span{color:var(--muted)}input{width:100%;min-width:0;padding:8px 11px;background:#0f1814;color:var(--text);border:1px solid var(--line);border-radius:5px;font-variant-numeric:tabular-nums}.field small{display:block;margin-top:7px;font-size:11px}.field small a{display:block}.presets{display:flex;gap:6px;margin-top:8px}.presets button{flex:1;font-size:11px;padding:6px}.presets .selected{color:var(--gold);border-color:var(--gold);background:#302e20}.seed-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.primary{background:var(--gold);color:#131b16;border-color:var(--gold);width:100%;font-weight:700;margin-top:7px}.wide{width:100%;margin-top:9px}.text-button{border:0;background:transparent;color:var(--mint);font-size:12px;padding:0}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric{background:var(--raised);padding:14px 16px;border:1px solid var(--line);border-radius:6px}.metric .label{font-size:12px;color:var(--muted)}.metric strong{font-size:30px;line-height:1.5;font-weight:500;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.metric strong span{font-size:12px;margin-left:5px;color:var(--muted)}.metric small{display:block;font-size:11px}.gold{color:var(--gold)}.mint{color:var(--mint)}.chart{margin-top:20px;width:100%}.chart svg{width:100%;display:block;height:auto;overflow:visible}.chart text{fill:var(--muted);font-size:12px}.chart-legend{display:flex;gap:22px;font-size:11px;flex-wrap:wrap}.future p{font-size:13px;color:var(--muted)}.future-row{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.future-row>span:last-child{flex-shrink:0;color:var(--muted)}.future-row>span.mint{color:var(--mint)}.snapshot{font-size:12px;color:var(--muted);overflow-wrap:anywhere;background:#111a16;padding:12px;border-radius:5px}#data-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.range-note{border-left:2px solid var(--gold);padding-left:13px;font-size:13px;margin-top:18px}details{border-top:1px solid var(--line);padding:13px 0;font-size:13px;color:var(--muted)}summary{color:var(--text);cursor:pointer}details p,details ul{max-width:950px}#research{scroll-margin-top:84px}#research h2{margin-bottom:18px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}th{text-align:left;background:var(--raised);font-weight:500;color:var(--muted)}td,th{padding:10px 14px;border-bottom:1px solid var(--line)}tbody tr:hover{background:var(--raised)}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-top:14px;font-size:12px}.pagination button{font-size:12px}footer{color:var(--muted);font-size:11px;display:flex;justify-content:space-between;padding:4px 0 18px}.collapsed aside{display:none}.collapsed main{margin-left:0}.skip{position:fixed;top:-80px;z-index:20;background:var(--surface);padding:10px}.skip:focus{top:5px}@media(min-width:1600px){.workspace{grid-template-columns:360px minmax(0,1fr)}#preview-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1100px){:root{--nav:220px}.workspace{grid-template-columns:270px minmax(0,1fr)}.panel{padding:16px}#data-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:850px){aside{display:none;width:268px;z-index:4;box-shadow:20px 0 60px #0008}.mobile-open aside{display:flex}main{margin-left:0;padding:22px 16px}.brand-sub{display:none}.workspace{grid-template-columns:280px minmax(0,1fr)}}@media(max-width:620px){header{padding:0 14px;gap:10px}.brand strong{font-size:15px}.private{font-size:10px}.mark{font-size:28px}.workspace{grid-template-columns:1fr}h1{font-size:25px}.heading>.tag{display:none}.panel{padding:17px}.metric strong{font-size:28px}.chart-legend{gap:14px}.future-row{flex-wrap:wrap;gap:3px}.future-row>span:last-child{font-size:11px}footer{display:block}footer span{display:block}.pagination{justify-content:space-between;gap:8px}}
.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-page .login-card{margin:0;width:min(440px,100%);padding:32px;border-top:3px solid var(--gold)}.login-card .mark{display:block;margin-bottom:24px}.login-card form{margin-top:28px}.login-message{padding:10px;border-left:3px solid #ff7567;color:#ffb2a9;background:#30221f}.login-note{margin-top:24px}.logout-form{margin:0}.logout-form button{padding:5px 10px;font-size:12px}@media(max-width:620px){header .private{display:none}.logout-form{margin-left:auto}.login-page .login-card{padding:24px}}
.section-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:20px;overflow-x:auto}.section-tabs button{white-space:nowrap;background:transparent;border-color:transparent;color:var(--muted);font-size:13px}.section-tabs button[aria-selected=true]{background:#26332e;border-color:var(--line);color:var(--gold)}.workbench-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.25fr);gap:20px;align-items:start}.scope-note{font-size:12px;color:var(--muted);margin:12px 0 20px}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}select{width:100%;max-width:100%;min-width:0;font:inherit;color:var(--text);background:#0f1814;border:1px solid var(--line);border-radius:5px;padding:9px}select:focus-visible{outline:3px solid var(--gold)}.run-actions{border-top:1px solid var(--line);padding-top:14px;margin-top:24px}.pending-list p{border-top:1px solid var(--line);padding:16px 0;margin:0}.pending-list strong{display:block;font-size:13px;font-weight:500}.pending-list span{display:block;font-size:12px;color:var(--muted);margin-top:6px}.result-preview .metric strong{font-size:25px}.table-toolbar{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:14px}.export-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}.export-actions button{font-size:12px}.record-link{border:0;background:none;padding:0;color:var(--mint);font-size:inherit;text-decoration:underline;text-underline-offset:4px}.record-detail{border-top:2px solid var(--mint);padding-top:20px;margin-top:24px}.record-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.record-fields p{background:var(--raised);padding:10px;margin:0;overflow-wrap:anywhere}.record-fields small{display:block}.event-line{border-left:2px solid var(--gold);padding:6px 15px;margin:12px 0}#data-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}#preview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.table-browser table td{max-width:550px}.table-browser #latent-warning{margin:0 0 18px;padding:10px 13px;background:#302e20}.table-browser .table-wrap{margin-top:12px}@media(max-width:1100px){.workbench-grid{grid-template-columns:1fr}.result-preview{margin-top:0}.table-toolbar{grid-template-columns:1fr 1fr}.table-toolbar .field:last-child{grid-column:1/-1}}@media(max-width:620px){.table-toolbar{grid-template-columns:1fr}.table-toolbar .field{margin-bottom:0}.table-toolbar .field:last-child{grid-column:auto}.record-fields{grid-template-columns:1fr}#data-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.section-tabs{margin-inline:-4px}.section-tabs button{padding:8px;font-size:12px}.field-pair{gap:10px}}

/* v3: progressive finance controls and restrained summary. */
.sub-controls{padding:16px 0}.sub-controls>summary{font-weight:600;margin-bottom:12px}.sub-controls[open]>summary{color:var(--mint)}.sub-controls:not([open])>summary{margin-bottom:0}.model-boundary{border-left:2px solid var(--gold);padding:8px 12px;font-size:12px;color:var(--muted);background:#24251c}.finance-overview{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}.money-grid{display:grid;grid-template-columns:1fr;gap:10px}.money-card{padding:12px 15px;background:var(--raised);border-radius:6px;border:1px solid var(--line)}.money-card strong{display:block;font-size:25px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--gold)}.money-card span{display:block;font-size:11px;color:var(--muted)}.reserve-status{border:1px solid var(--line);padding:12px;border-radius:6px}.reserve-status.shortfall{border-color:#d89075}.reserve-status p{font-size:13px}#preview-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}#preview-metrics .metric{padding:10px}#data-finance .money-grid{grid-template-columns:repeat(3,minmax(0,1fr))}input[type=date]{font:inherit;max-width:100%;color-scheme:dark}.control-group details small{line-height:1.65}.finance-overview .scope-note{margin-bottom:12px}@media(max-width:620px){#data-finance .money-grid{grid-template-columns:1fr}.money-card strong{font-size:24px}#preview-metrics .metric strong{font-size:23px}.finance-overview .panel-head{align-items:flex-start}.sub-controls .field-pair{grid-template-columns:1fr}.field label{line-height:1.6}}
.category-link{display:block;margin:10px 0;text-align:left}.distribution-links{padding:12px 0;border-bottom:1px solid var(--line);margin-bottom:20px}
.balance-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.balance-row{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.balance-row.total{border-top:2px solid var(--line);font-weight:700;color:var(--gold);margin-top:12px}.balance-row small{display:block}.balance-unknown{display:flex;justify-content:space-between;padding:9px 0;color:var(--muted)}#balance-error{color:#ff7567}#macro-view .table-toolbar{align-items:end}#micro-view .table-toolbar{align-items:end}.period-partial{color:var(--gold)}@media(max-width:620px){.balance-grid{grid-template-columns:1fr;gap:12px}.balance-row{font-size:13px}.balance-unknown{display:block}#balance-day,#balance-date{min-width:0}}
#period-panel{scroll-margin-top:80px}#period-metrics .metric{min-width:0}#period-metrics strong{display:block;overflow-wrap:anywhere}#open-period{max-width:100%;white-space:normal}@media(max-width:620px){#period-metrics{grid-template-columns:1fr}#period-metrics strong{font-size:25px}}
.trend-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.trend-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--canvas);margin:12px 0 20px}.trend-scroll svg{display:block;max-width:none}.trend-scroll text{fill:var(--muted);font-size:11px}.trend-grid{stroke:var(--line);stroke-width:1}.trend-hit{fill:transparent;stroke:transparent;stroke-width:1}.trend-hit.partial{stroke:var(--gold);stroke-dasharray:3 3}.trend-hit.selected{fill:#62d7b018;stroke:var(--mint);stroke-width:2}.trend-scroll g{cursor:pointer}.trend-scroll g:hover .trend-hit,.trend-scroll g:focus .trend-hit{fill:#62d7b028;stroke:var(--mint);stroke-width:2}.trend-scroll g:focus{outline:none}#micro-detail{scroll-margin-top:80px}#raw-context{overflow-wrap:anywhere}#raw-context p{margin-top:0}#macro-view>.section-tabs{margin-bottom:20px}#period-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:620px){#period-metrics{grid-template-columns:1fr}.trend-heading{display:block}}

#macro-returns .metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}#returns-error{color:#ff7567}#returns-caption{overflow-wrap:anywhere}@media(max-width:620px){#macro-returns .metrics{grid-template-columns:1fr}}
