:root,[data-theme=light]{--text-xs:.72rem;--text-sm:.82rem;--text-base:.92rem;--text-lg:1.05rem;--text-xl:1.4rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--color-bg:#f4f2ec;--color-surface:#ffffff;--color-surface-2:#eeece4;--color-surface-3:#e7e4da;--color-border:#e2dfd5;--color-divider:#ebe8df;--color-text:#1c2a3a;--color-text-muted:#5f6b7a;--color-text-faint:#98a1ad;--color-primary:#2b5488;--color-primary-hover:#20406a;--color-primary-highlight:rgba(43,84,136,.1);--color-success:#2f7d57;--color-warning:#b0791f;--color-error:#b1495c;--color-blue:#4a76ab;--color-gold:#c19a3e;--shadow-sm:none;--shadow-md:none;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--radius-full:9999px;--font-body:"Satoshi",Inter,system-ui,sans-serif;--rail:84px}[data-theme=dark]{--color-bg:#0c1622;--color-surface:#132234;--color-surface-2:#1a2c40;--color-surface-3:#213650;--color-border:#26384f;--color-divider:#1e3047;--color-text:#eaf0f6;--color-text-muted:#a9b6c6;--color-text-faint:#7385990;--color-text-faint:#738399;--color-primary:#6f9bd1;--color-primary-hover:#8fb4e0;--color-primary-highlight:rgba(111,155,209,.14);--color-success:#6fbf94;--color-warning:#cf9a4c;--color-error:#d5798c;--color-blue:#7ba3d4;--color-gold:#cdaa57;--shadow-sm:none;--shadow-md:none}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font-body);font-size:var(--text-base);line-height:1.5;background:var(--color-bg);color:var(--color-text);font-weight:400;-webkit-font-smoothing:antialiased}button{font:inherit;border:none;background:none;cursor:pointer;color:inherit}strong,b,h1,h2,h3,h4,th,.value,.kpi .value,.metric .value{font-weight:500}.app{display:grid;grid-template-columns:var(--rail) 1fr;grid-template-rows:72px 1fr;height:100dvh}.side{grid-row:1/-1;border-right:1px solid var(--color-border);padding:var(--space-4) .5rem;overflow:auto;--color-surface:#101c2b;--color-surface-2:#182a3f;--color-border:#22364d;--color-text:#eaf0f6;--color-text-muted:#93a2b5;--color-text-faint:#6f8097;--color-primary:#8fb4e0;--color-primary-highlight:rgba(143,180,224,.15);background:var(--color-surface);color:var(--color-text);border-right-color:var(--color-border)}.top{grid-column:2;display:flex;justify-content:space-between;align-items:center;padding:0 var(--space-8);border-bottom:1px solid var(--color-border);background:var(--color-bg)}.main{grid-column:2;overflow:auto;padding:var(--space-6)}.subtle{color:var(--color-text-muted)}.faint{color:var(--color-text-faint)}.rail-brand{display:grid;place-items:center;margin-bottom:var(--space-6)}.rail-brand .brand-mark{width:40px;height:40px;border-radius:9px;display:grid;place-items:center;background:var(--color-surface-2);border:1px solid var(--color-border);color:var(--color-primary)}.rail-brand .brand-by{font-size:9px;color:var(--color-text-faint);margin-top:.3rem;text-align:center}.rail-nav{display:flex;flex-direction:column;gap:.15rem}.rail-item{display:flex;flex-direction:column;align-items:center;gap:.28rem;padding:.6rem .2rem;border-radius:var(--radius-md);color:var(--color-text-muted);transition:background .15s,color .15s;position:relative}.rail-item .ico{color:var(--color-text-muted);display:grid;place-items:center}.rail-item span.lbl{font-size:9.5px;line-height:1.1;text-align:center;letter-spacing:.01em}.rail-item:hover{background:var(--color-surface-2);color:var(--color-text)}.rail-item:hover .ico{color:var(--color-text)}.rail-item.active{background:var(--color-primary-highlight);color:var(--color-primary)}.rail-item.active .ico{color:var(--color-primary)}.rail-dot{position:absolute;top:.5rem;right:1.1rem;width:7px;height:7px;border-radius:50%;background:var(--color-warning)}.top h1{font-size:var(--text-xl);line-height:1.15;font-weight:500;letter-spacing:-.01em}.top>div:first-child{padding:.5rem 0}.top-actions{display:flex;gap:.6rem;align-items:center}.pill,.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .85rem;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:400;border:1px solid transparent}.pill{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-muted)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-surface-2)}.filetree{display:flex;align-items:center;gap:.3rem;font-size:var(--text-sm);color:var(--color-text-muted)}.filetree .crumb{padding:.1rem .25rem;border-radius:var(--radius-sm)}.filetree .crumb.leaf{color:var(--color-text)}.filetree .crumb.link{cursor:pointer}.filetree .crumb.link:hover{color:var(--color-primary)}.filetree .sep{color:var(--color-text-faint)}.pfs-badge{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--text-sm);padding:.5rem .75rem;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text)}.pfs-badge:hover{background:var(--color-surface-2)}.view{display:none}.view.active{display:block}.grid{display:grid;gap:var(--space-4)}.hero{grid-template-columns:1.15fr .85fr;margin-bottom:var(--space-4)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:none}.card-pad{padding:var(--space-5)}.eyebrow{font-size:var(--text-xs);letter-spacing:.01em;color:var(--color-text-muted);margin-bottom:.6rem}.hero h2{font-size:clamp(1.5rem,1.2rem+1vw,2rem);line-height:1.12;font-weight:500;max-width:none;margin-bottom:.8rem}.hero p{max-width:64ch;color:var(--color-text-muted);margin-bottom:1rem}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}.metric{padding:.9rem 1rem;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.metric .value{font-size:var(--text-lg);font-weight:500;font-variant-numeric:tabular-nums}.kpis{grid-template-columns:repeat(5,1fr);margin-bottom:var(--space-4)}.kpi{padding:1rem}.kpi .value{font-size:var(--text-xl);line-height:1;font-weight:500;font-variant-numeric:tabular-nums}.delta{padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500}.up{background:#2f7d571a;color:var(--color-success)}.down{background:#b1495c1a;color:var(--color-error)}.warn{background:#b0791f1f;color:var(--color-warning)}.row{display:grid;gap:var(--space-4);margin-bottom:var(--space-4)}.two{grid-template-columns:1.1fr .9fr}.three{grid-template-columns:1fr 1fr 1fr}.section-head{display:flex;justify-content:space-between;align-items:end;gap:var(--space-4);margin-bottom:1rem}.section-head h3{font-size:var(--text-lg);font-weight:500}.chart{height:320px}.list{display:grid;gap:.6rem}.item{padding:.9rem 1rem;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.item.active{background:var(--color-surface-2);border-color:var(--color-border)}table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}th,td{text-align:left;padding:.7rem .35rem;border-bottom:1px solid var(--color-divider);font-variant-numeric:tabular-nums}th{font-size:var(--text-xs);letter-spacing:.01em;color:var(--color-text-faint);font-weight:500}.phone{display:grid;gap:.7rem}.bubble{padding:.8rem .95rem;border-radius:12px;font-size:var(--text-sm);max-width:92%}.bubble.in{background:var(--color-surface-2)}.bubble.out{background:var(--color-primary);color:#fff;justify-self:end}.footer-note{margin-top:1rem;font-size:var(--text-xs);color:var(--color-text-faint)}.clickable{cursor:pointer;transition:border-color .15s}.clickable:hover{border-color:var(--color-primary)}.input,.select{font:inherit;font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.55rem .75rem;outline:none;width:100%}.input:focus,.select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-highlight)}.input::placeholder{color:var(--color-text-faint)}.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:.6rem;margin-bottom:1rem}.th-sort{cursor:pointer;-webkit-user-select:none;user-select:none}.th-sort:hover{color:var(--color-text)}.pager{display:flex;justify-content:space-between;align-items:center;margin-top:.9rem;font-size:var(--text-sm);color:var(--color-text-muted)}.pager .btn{padding:.4rem .8rem}.control{margin-bottom:1rem}.control label{display:flex;justify-content:space-between;font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:.35rem}.control label strong{color:var(--color-text);font-variant-numeric:tabular-nums}.control input[type=range]{width:100%;accent-color:var(--color-primary)}.mini-btn{padding:.4rem .7rem;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:400;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.mini-btn:hover{background:var(--color-surface-2)}.mini-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.mini-btn.primary:hover{background:var(--color-primary-hover)}.cell-input{font:inherit;font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.3rem .45rem;width:100%;outline:none}.cell-input:focus{border-color:var(--color-primary)}.progress{height:7px;border-radius:var(--radius-full);background:var(--color-surface-2);overflow:hidden}.progress span{display:block;height:100%;background:var(--color-primary);border-radius:var(--radius-full);transition:width .3s}.tabs{display:flex;gap:.4rem;margin-bottom:1rem;flex-wrap:wrap}.tab{padding:.45rem .85rem;border-radius:var(--radius-md);font-size:var(--text-sm);border:1px solid var(--color-border);color:var(--color-text-muted);background:var(--color-surface)}.tab.active{background:var(--color-primary-highlight);border-color:var(--color-primary);color:var(--color-primary)}.output-pre{white-space:pre-wrap;font-size:var(--text-sm);line-height:1.6;color:var(--color-text);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1rem;max-height:440px;overflow:auto}.banner{display:flex;gap:.7rem;align-items:center;padding:.8rem 1rem;border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:1rem;border:1px solid}.banner.blocked{background:#b1495c12;border-color:#b1495c4d;color:var(--color-error)}.banner.ready{background:#2f7d5712;border-color:#2f7d574d;color:var(--color-success)}.banner strong{font-weight:500}.amount-pos{color:var(--color-success)}.amount-neg{color:var(--color-error)}.truncate{max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill.due{border-color:var(--color-warning);color:var(--color-warning)}.signal-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.signal{display:flex;flex-direction:column;gap:.5rem;padding:1.1rem;border-left:3px solid var(--color-border)}.signal.sev-warn{border-left-color:var(--color-warning)}.signal.sev-down{border-left-color:var(--color-error)}.signal.sev-up{border-left-color:var(--color-success)}.signal-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.6rem}.signal-metric{font-size:var(--text-xl);font-weight:500;font-variant-numeric:tabular-nums;line-height:1}.signal-metric-label{font-size:var(--text-xs);color:var(--color-text-faint)}.signal-why{background:var(--color-surface-2);border-radius:var(--radius-md);padding:.6rem .75rem;font-size:var(--text-sm);color:var(--color-text-muted)}.ribbon{display:grid;grid-template-columns:repeat(5,1fr);gap:.7rem;margin-bottom:var(--space-4)}.ribbon .metric{padding:.8rem}.tax-ribbon{display:grid;grid-template-columns:repeat(5,1fr);gap:.7rem;margin-bottom:var(--space-4)}.scenario-toggle{display:flex;align-items:center;gap:.6rem;padding:.65rem .8rem;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);margin-bottom:.5rem}.scenario-toggle input{width:1rem;height:1rem;accent-color:var(--color-primary);flex:none}.scenario-toggle .sc-body{flex:1;min-width:0}.scenario-toggle .sc-name{font-weight:500;font-size:var(--text-sm)}.scenario-toggle .sc-desc{font-size:var(--text-xs);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropzone{border:1px dashed var(--color-border);border-radius:var(--radius-lg);padding:1.6rem;text-align:center;background:var(--color-surface-2);transition:border-color .15s;cursor:pointer}.dropzone:hover,.dropzone.drag{border-color:var(--color-primary)}.dropzone strong{font-weight:500}.baseline-flag{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--text-xs);color:var(--color-success)}.assum-bar{display:grid;grid-template-columns:repeat(5,1fr);gap:1.1rem;align-items:end}.assum label{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:.3rem}.assum label strong{color:var(--color-text)}.assum input[type=range]{width:100%;accent-color:var(--color-primary)}.assum .hint{font-size:var(--text-xs);color:var(--color-text-faint);margin-top:.15rem}.exc-list{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.exc-row{display:flex;align-items:center;gap:.6rem;padding:.5rem .7rem;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);font-size:var(--text-sm)}.exc-row.excluded{opacity:.55}.exc-row input{accent-color:var(--color-primary);width:1rem;height:1rem;flex:none}.exc-row .g{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strategy-toggle{display:flex;gap:.7rem;align-items:flex-start;cursor:pointer}.strategy-toggle input{margin-top:.25rem;accent-color:var(--color-primary);width:1rem;height:1rem}.impact-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:.7rem;margin:1rem 0}.impact-tiles .metric .value{font-size:var(--text-lg)}.pnl{font-variant-numeric:tabular-nums}.pnl th,.pnl td{text-align:right;white-space:nowrap;padding:.5rem}.pnl th:first-child,.pnl td:first-child{text-align:left}.pnl .total-row td{font-weight:500;border-top:1px solid var(--color-border)}.pnl .fy{background:var(--color-surface-2);font-weight:500}.pnl .actual{color:var(--color-text-muted)}.year-input{width:4rem;text-align:right}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.form-grid .full{grid-column:1/-1}.form-grid label{display:block;font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:.25rem}.kpi-expand{margin-bottom:var(--space-4);border:1px solid var(--color-border)}.dq-box{display:flex;align-items:center;gap:1rem;cursor:pointer}.dq-ring{width:50px;height:50px;border-radius:50%;flex:none;display:grid;place-items:center;font-weight:500;font-size:var(--text-sm);color:#fff}.dq-stat .n{font-size:var(--text-lg);font-weight:500;font-variant-numeric:tabular-nums}.dq-stat .l{font-size:var(--text-xs);color:var(--color-text-faint)}.masthead{border-bottom:1px solid var(--color-border);padding-bottom:.6rem;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:baseline}.masthead .title{font-size:clamp(1.4rem,1.1rem+1vw,2rem);font-weight:500;letter-spacing:-.01em}.masthead .edition{font-size:var(--text-xs);color:var(--color-text-faint);letter-spacing:.02em}.narrative p{margin-bottom:.7rem;line-height:1.6}.narrative p:last-child{margin-bottom:0}.byline{font-size:var(--text-xs);color:var(--color-text-faint);font-style:italic;margin-top:.4rem}.dot{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;margin-right:.5rem;flex:none}.dot.ok{background:var(--color-success)}.dot.warn{background:var(--color-warning)}.dot.bad{background:var(--color-error)}@media (max-width:1180px){.app{grid-template-columns:1fr;grid-template-rows:auto auto 1fr}.side{grid-row:auto;border-right:none;border-bottom:1px solid var(--color-border);display:flex;flex-wrap:wrap;padding:.5rem}.rail-nav{flex-direction:row;flex-wrap:wrap}.top,.main{grid-column:1}.hero,.kpis,.two,.three,.metrics,.ribbon,.tax-ribbon,.impact-tiles,.signal-grid,.assum-bar,.exc-list{grid-template-columns:1fr 1fr}}.metric .value{font-size:1.2rem}.ribbon .metric .value,.tax-ribbon .metric .value,.impact-tiles .metric .value{font-size:1.35rem}.ribbon .metric .faint,.tax-ribbon .metric .faint{font-size:.74rem}.dq-box .dq-ring{font-size:.9rem}.frontpage .masthead{margin-bottom:.6rem;padding-bottom:.5rem}.frontpage .ribbon,.frontpage .hero{margin-bottom:.7rem}.frontpage .card-pad{padding:var(--space-4)}.frontpage .hero h2{font-size:clamp(1.3rem,1.05rem+.8vw,1.7rem);margin-bottom:.55rem}.frontpage .narrative p{margin-bottom:.5rem;font-size:var(--text-sm);line-height:1.5}.frontpage .row{margin-bottom:0}.rail-foot{margin-top:.6rem;padding-top:.6rem;border-top:1px dashed var(--color-border)}.rail-item.finos{color:var(--color-text-faint)}.rail-item.finos:hover{color:var(--color-primary);background:var(--color-surface-2)}.rail-item.finos .arrow{font-size:14px;line-height:1}.app{grid-template-rows:52px 1fr}.top{padding:0 var(--space-8)}.top>div:first-child{padding:0}.main{padding-top:var(--space-4)}.side{--color-text-muted:#c2cede}.rail-item{color:#c2cede}.rail-item .ico{color:#aebccf}.rail-item span.lbl{color:#cdd8e6}.rail-item.active,.rail-item.active .ico,.rail-item.active span.lbl{color:#bcd4f0}.frontpage .masthead{align-items:baseline;margin-bottom:.7rem;padding-bottom:.55rem}.frontpage .masthead .title{font-size:clamp(2rem,1.4rem+2vw,3.1rem);line-height:1;font-weight:500}.frontpage .masthead .edition{font-size:var(--text-sm)}.fin-ribbon{display:grid;grid-template-columns:repeat(5,1fr);gap:.7rem;margin-bottom:.8rem}.kpi-fin{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:1.05rem 1.15rem;min-height:82px}.kpi-fin .lab{font-size:.82rem;color:var(--color-text-muted)}.kpi-fin .sub{font-size:.72rem;color:var(--color-text-faint);margin-top:.2rem}.kpi-fin .big{font-size:1.85rem;font-weight:500;font-variant-numeric:tabular-nums;line-height:1;white-space:nowrap}.kpi-fin .big.pos{color:var(--color-success)}.kpi-fin .big.warn{color:var(--color-warning)}.kpi-fin .big.neu{color:var(--color-text)}.kpi-fin .dq-ring{width:46px;height:46px}.frontpage .row.three{grid-template-columns:1.25fr 1fr 1fr;margin-bottom:.8rem}.frontpage .hero h2{font-size:clamp(1.2rem,1rem+.7vw,1.5rem);margin-bottom:.5rem}.frontpage .narrative p{margin-bottom:.5rem}@media (max-width:1180px){.fin-ribbon{grid-template-columns:1fr 1fr}.frontpage .row.three{grid-template-columns:1fr}}
