:root{--bg:#f3f5f7;--ink:#172a39;--muted:#637785;--line:#dce4e8;--nav:#122c3a;--green:#087c68;--orange:#a35716;--blue:#335dd7}
*{box-sizing:border-box}body{margin:0;font:14px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #63cabb;outline-offset:2px}button{border:1px solid var(--line);background:white;border-radius:8px;padding:9px 14px;color:var(--ink)}button:hover{border-color:#8ca7b4}.primary{background:var(--green);color:white;border-color:var(--green)}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}aside{background:var(--nav);color:#e4eff4;padding:30px 22px;display:flex;flex-direction:column;gap:30px}.brand{font-size:22px;font-weight:750;letter-spacing:-1px}.brand span{color:#69d4bc}.eyebrow{font-size:11px;font-weight:750;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted)}aside .eyebrow{color:#86a3b2}.nav button{display:block;width:100%;text-align:left;margin:7px 0;background:transparent;color:#b7ccd7;border-color:transparent}.nav button.active{background:#254957;color:#fff}.aside-note{font-size:12px;color:#a7bfca;margin-top:auto}.main{padding:28px 38px;min-width:0;max-width:1800px;width:100%;margin:auto}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.actions{display:flex;gap:8px;flex-wrap:wrap}h1{font-size:30px;letter-spacing:-1px;line-height:1.2;margin:8px 0 12px}h2{font-size:19px;margin:0 0 5px}h3{font-size:15px;margin:0}.muted{color:var(--muted)}.intro{display:flex;justify-content:space-between;align-items:start;gap:24px;margin-bottom:24px}.pill{border-radius:20px;background:#e5eee9;color:var(--green);padding:6px 12px;font-size:12px;white-space:nowrap}.warning{background:#fff4df;border:1px solid #edd8ab;border-radius:10px;padding:13px 17px;margin:16px 0;font-size:13px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:22px 0}.card,.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:22px}.card.base{border-top:3px solid var(--nav)}.card.alt{border-top:3px solid #65b5a5}.card .amount{font-size:30px;letter-spacing:-1px;font-weight:700;margin:18px 0 2px}.card .sub{font-size:12px;color:var(--muted)}.card .delta{margin-top:18px;border-top:1px solid var(--line);padding-top:13px;display:flex;justify-content:space-between;gap:8px}.positive{color:var(--green)}.negative{color:#b64235}.panel{margin-bottom:20px}.panel-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.split{display:grid;grid-template-columns:1.1fr 1fr;gap:20px}.bar-row{display:grid;grid-template-columns:90px 1fr 100px;gap:12px;align-items:center;margin:18px 0}.bar-track{height:15px;background:#edf2f4;border-radius:4px;overflow:hidden}.bar{height:100%;background:#416a7f;border-radius:4px}.bar-row:nth-child(2) .bar{background:#5cae9b}.bar-row:nth-child(3) .bar{background:#b6c9d4}.number{text-align:right;font-variant-numeric:tabular-nums}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{font-size:11px;letter-spacing:.35px;color:var(--muted);text-align:right;background:#f6f8fa;padding:12px 9px;white-space:nowrap}td{padding:13px 9px;border-bottom:1px solid #edf1f3;vertical-align:top;text-align:right}th:first-child,td:first-child{text-align:left}.route-name{min-width:210px;font-weight:650}.route-name small{display:block;font-weight:400;color:var(--muted);max-width:300px;margin-top:4px}.tag{display:inline-block;padding:2px 6px;border-radius:4px;background:#edf3f6;font-size:10px;margin-bottom:4px}input,select{border:1px solid #cbd8df;border-radius:6px;padding:7px 9px;background:#fff;color:var(--ink);max-width:100%}input[type=number]{width:88px;text-align:right;background:#fffbef}input:invalid{border-color:#d45646}td select{width:120px}.control-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.control-grid label,.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}.control-grid input,.field input{width:100%}.tabs{display:flex;gap:5px}.tabs .active{background:var(--nav);color:white}.help{font-size:12px;color:var(--muted);margin:12px 0}.metric-line{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.big-result{font-size:28px;font-weight:750}.status{font-size:12px;color:var(--muted)}.toast{position:fixed;bottom:22px;right:24px;background:var(--nav);color:white;padding:14px 20px;border-radius:8px;box-shadow:0 8px 25px #122c3a30;max-width:500px;z-index:9}.hidden{display:none!important}.login{min-height:100vh;display:grid;place-items:center;background:var(--nav);padding:24px}.login-box{width:420px;max-width:100%;background:white;padding:36px;border-radius:16px}.login-box label{display:block;margin:20px 0 6px}.login-box input{width:100%}.login-box button{width:100%;margin-top:24px}.login-box .brand{color:var(--nav)}details{margin:10px 0}summary{cursor:pointer;font-weight:600}.delete{color:#a94138;padding:6px 9px}.small{font-size:12px}.chart-caption{margin-top:22px;font-size:12px;color:var(--muted)}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.save-dot{width:7px;height:7px;display:inline-block;background:#4f8e73;border-radius:50%;margin-right:5px}
@media(max-width:1100px){.shell{grid-template-columns:180px 1fr}.main{padding:24px}.split{grid-template-columns:1fr}.control-grid{grid-template-columns:repeat(2,1fr)}.amount{font-size:24px!important}}
@media(max-width:760px){.shell{display:block}aside{padding:15px 20px;gap:10px}.nav{display:flex;overflow:auto}.nav button{white-space:nowrap}.aside-note{display:none}.main{padding:18px}.cards{grid-template-columns:1fr}.topbar,.intro{display:block}.actions{margin-top:12px}.card .amount{margin-top:8px}.control-grid{grid-template-columns:1fr 1fr}h1{font-size:25px}.panel{padding:16px}.panel-head{align-items:start;flex-direction:column}.bar-row{grid-template-columns:70px 1fr 90px}}
@media print{aside,.actions,.tabs,button,.warning{display:none!important}.shell{display:block}.main{padding:0}.panel,.card{break-inside:avoid}.table-wrap{overflow:visible}.cards{grid-template-columns:repeat(3,1fr)}}
dialog{border:1px solid var(--line);border-radius:14px;max-width:430px;width:90%;padding:28px;color:var(--ink)}dialog::backdrop{background:#122c3a99}dialog label{display:block;margin:16px 0}dialog input{display:block;width:100%;margin-top:6px}
.scenario-strip{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:10px 16px;background:#e6edef;border-radius:8px;margin-bottom:24px;font-size:12px}.scenario-strip small{color:var(--muted)}.control-grid{margin-top:18px}.nav button{font-size:12px}.table-wrap input[type=checkbox]{width:18px;height:18px}
.report-dialog{width:96vw;max-width:1300px;height:94vh;padding:14px}.report-dialog iframe{display:block;width:100%;height:calc(100% - 50px);border:1px solid var(--line);margin-top:10px}
@media(max-width:760px){.aside-note{display:flex;gap:8px;align-items:center;font-size:0;margin-top:4px}.aside-note br{display:none}.aside-note button{font-size:12px}.topbar .actions{gap:5px}.topbar button{font-size:12px;padding:7px 10px}}
