:root{--teal: #1a9c8a;--teal-dark: #157f71;--teal-light: #d8efeb;--teal-band: #e3f2ef;--navy: #1f3b4d;--navy-dark: #152a37;--ink: #222;--muted: #6b7280;--line: #e5e7eb;--line-dark: #cfd8dc;--bg: #f4f6f7;--card: #ffffff;--green: #2e9e3c;--red: #d13b3b;--amber: #e0a100;--blue: #2f6db5;--blue-dark: #1f4e86;--font: "Roboto", system-ui, -apple-system, Segoe UI, sans-serif;--font-head: "Barlow Condensed", "Roboto", sans-serif;--shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 1px 6px rgba(0, 0, 0, .04)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:var(--bg);font-size:13.5px;line-height:1.4}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}h1,h2,h3,h4{margin:0;font-weight:500}.topnav{background:#fff;border-bottom:1px solid var(--line);height:48px;display:flex;align-items:center;padding:0 16px;gap:20px;position:sticky;top:0;z-index:40}.topnav .brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:18px;color:var(--teal);letter-spacing:-.2px}.topnav .brand .logo{width:26px;height:26px;border-radius:6px;background:var(--teal);display:inline-flex;align-items:center;justify-content:center}.topnav .search{position:relative}.topnav .search input{width:180px;padding:6px 10px;border:1px solid var(--line-dark);border-radius:4px;font-size:13px}.topnav nav{display:flex;gap:18px}.topnav nav a{color:var(--navy);font-weight:500;font-size:14px;padding:14px 0;border-bottom:2px solid transparent}.topnav nav a.active{border-bottom-color:var(--teal);color:var(--teal)}.topnav nav a:hover{text-decoration:none;color:var(--teal)}.topnav .spacer{flex:1}.topnav .right{display:flex;align-items:center;gap:16px;font-size:14px;color:var(--navy)}.avatar{width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}.page{padding:18px 24px 60px;max-width:1600px;margin:0 auto}.page.wide{max-width:none}.with-sidebar{display:grid;grid-template-columns:220px 1fr;gap:0;min-height:calc(100vh - 48px)}.sidebar{background:#fff;border-right:1px solid var(--line);padding:14px 12px}.sidebar .btn-primary{width:100%;margin-bottom:14px}.sidebar .group{margin-bottom:8px}.sidebar .group-title{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--navy);padding:8px 6px;font-size:13.5px}.sidebar .group a{display:block;padding:7px 10px 7px 30px;color:#374151;border-left:3px solid transparent;font-size:13.5px}.sidebar .group a.active{color:var(--teal);border-left-color:var(--teal);background:#f6fbfa}.sidebar .group a:hover{text-decoration:none;background:#f6fbfa}.beta{font-size:10px;background:#fff3cd;color:#8a6d00;border-radius:3px;padding:1px 5px;margin-left:6px}.crumbs{font-size:13px;color:var(--muted);margin-bottom:10px}.crumbs a{color:var(--teal)}.page-title{font-size:22px;font-weight:500;color:var(--ink);margin-bottom:14px}.card{background:var(--card);border-radius:6px;box-shadow:var(--shadow);padding:18px 20px;margin-bottom:18px}.row{display:flex;gap:12px;align-items:center}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.muted{color:var(--muted)}.small{font-size:12px}.right-align{text-align:right}.hint{font-size:12px;color:var(--muted);margin-top:4px}.warn{background:#fff8e1;border-left:4px solid var(--amber);padding:8px 12px;border-radius:4px;font-size:13px;margin-bottom:12px}.note{background:#eef7f5;border-left:4px solid var(--teal);padding:8px 12px;border-radius:4px;font-size:13px;margin-bottom:12px}.error{background:#fdecea;border-left:4px solid var(--red);padding:8px 12px;border-radius:4px;font-size:13px;margin-bottom:12px}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:4px;border:1px solid var(--line-dark);background:#fff;color:var(--navy);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}.btn:hover{background:#f5f7f8}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--teal);border-color:var(--teal);color:#fff}.btn-primary:hover{background:var(--teal-dark)}.btn-navy{background:var(--navy);border-color:var(--navy);color:#fff}.btn-navy:hover{background:var(--navy-dark)}.btn-danger{background:var(--red);border-color:var(--red);color:#fff}.btn-link{border:none;background:none;color:var(--teal);padding:4px 6px;cursor:pointer;font-size:13px}.btn-link:hover{text-decoration:underline}.btn-sm{padding:4px 8px;font-size:12px}.btn-icon{border:none;background:none;cursor:pointer;padding:2px 4px;color:var(--muted);font-size:14px;line-height:1}.btn-icon:hover{color:var(--teal)}table.data{width:100%;border-collapse:collapse;font-size:13.5px}table.data th{text-align:left;font-weight:500;color:#374151;padding:10px 12px;border-bottom:1px solid var(--line);background:#fafbfb}table.data td{padding:10px 12px;border-bottom:1px solid var(--line)}table.data tr:hover td{background:#fafcfb}table.data .num{text-align:right;font-variant-numeric:tabular-nums}table.data.band thead tr{background:var(--teal)}table.data.band th{background:transparent;color:#fff}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field label{font-size:12.5px;color:#374151;font-weight:500}.field input,.field select,.field textarea{padding:7px 9px;border:1px solid var(--line-dark);border-radius:4px;font-size:13.5px;background:#fff}.field input:focus,.field select:focus{outline:2px solid rgba(26,156,138,.3);border-color:var(--teal)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e2873;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto}.modal{background:#fff;border-radius:6px;width:100%;max-width:760px;box-shadow:0 10px 40px #00000040}.modal.wide{max-width:1000px}.modal-head{padding:14px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modal-head h3{font-size:15px;letter-spacing:.4px;text-transform:uppercase;color:#374151;font-weight:500}.modal-body{padding:18px 20px;max-height:70vh;overflow:auto}.modal-foot{padding:12px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.ws-table{width:100%;border-collapse:collapse}.ws-table th{text-align:center;background:var(--blue);color:#fff;font-weight:500;padding:6px;font-size:13px}.ws-table td{padding:5px 6px;border-bottom:1px solid var(--line)}.ws-table td:first-child{color:#374151}.ws-table input[type=number]{width:100%;text-align:right;padding:5px 8px;border:1px solid var(--line-dark);border-radius:3px}.ws-callout{background:var(--teal);color:#fff;padding:8px 12px;border-radius:3px;margin:10px 0;font-size:13px}.ws-summary{text-align:right;margin-top:10px;line-height:1.8}.ws-summary b{background:#dbeafe;padding:1px 4px}.sa-header{display:flex;align-items:baseline;gap:14px;margin-bottom:4px}.sa-header h1{font-size:22px;font-weight:500}.sa-header .sub{font-size:14px;color:#374151}.sa-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.sa-colnav{display:flex;gap:14px;justify-content:center;font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--navy);margin:6px 0}.sa-colnav button{background:none;border:none;cursor:pointer;font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--navy)}.sa-colnav button:disabled{color:#b0b7bd;cursor:default}.sa-wrap{display:flex;align-items:flex-start;gap:0}.sa-grid{display:grid;background:#fff;border:1px solid var(--line);border-radius:4px;overflow:visible}.sa-cell{padding:6px 10px;border-bottom:1px solid #eef0f1;display:flex;align-items:center;min-height:32px;font-size:13px}.sa-label{color:#374151;padding-left:14px;border-right:1px solid var(--line);background:#fff;position:sticky;left:0;z-index:2}.sa-label .help{color:var(--muted);font-size:11px;margin-left:6px;border:1px solid var(--muted);border-radius:50%;width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;cursor:help}.sa-value{justify-content:flex-end;gap:6px;font-variant-numeric:tabular-nums;position:relative}.sa-value.editable{cursor:pointer}.sa-value.editable:hover{background:#f3fbf9}.sa-value .pencil{color:var(--teal);font-size:11px;opacity:.85}.sa-value .cur{color:#6b7280;margin-right:auto}.sa-value .sub{position:absolute;right:10px;bottom:-2px;font-size:10px;color:var(--muted);font-style:italic}.sa-value.has-sub{padding-bottom:14px}.sa-value input.inline{width:110px;text-align:right;padding:3px 6px;border:1px solid var(--teal);border-radius:3px;font-size:13px}.sa-value select.inline{padding:3px 6px;border:1px solid var(--line-dark);border-radius:3px;font-size:12.5px;max-width:170px}.sa-section{grid-column:1 / -1;background:var(--teal-band);color:#1f3b4d;font-family:var(--font-head);font-size:14px;letter-spacing:.8px;text-transform:uppercase;padding:7px 14px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;border-bottom:1px solid #d3e8e3;position:sticky;left:0}.sa-section .chev{font-size:12px;color:#4b5563}.sa-subheader{grid-column:1 / -1;font-weight:700;font-size:12px;letter-spacing:.3px;padding:8px 14px 2px;color:#1f2937;text-transform:uppercase}.sa-total .sa-cell{font-weight:700;background:#fbfcfc}.sa-subtotal .sa-cell{font-weight:500}.sa-colhead{background:var(--teal-light);padding:8px 10px;min-height:86px;border-bottom:1px solid #c9e4de;position:relative;display:flex;flex-direction:column;gap:2px}.sa-colhead .n{font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:#374151}.sa-colhead .name{font-weight:700;font-size:13px;color:#111;line-height:1.2}.sa-colhead .name input{font-weight:700;font-size:13px;border:1px solid var(--teal);border-radius:3px;padding:2px 4px;width:100%}.sa-colhead .icons{display:flex;gap:8px;margin-top:4px}.sa-colhead .icons button{background:none;border:none;cursor:pointer;color:var(--teal);font-size:13px;padding:0}.sa-colhead .edited{font-size:10px;color:#4b5563;margin-top:2px}.sa-colhead .menu-btn{position:absolute;right:8px;top:6px;background:none;border:none;cursor:pointer;font-size:16px;color:#374151;letter-spacing:1px}.sa-colhead .warnflag{color:var(--amber);font-size:12px;margin-left:4px}.sa-colhead.locked{background:#e8edee}.sa-colhead.change{background:#f1f4f5;align-items:center;justify-content:center}.sa-colhead.change .n{color:#374151}.sa-colhead.change .arrow{font-size:11px;color:#374151;text-align:center}.sa-addcol{background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;font-weight:700;letter-spacing:.4px;cursor:pointer;padding:10px;text-transform:uppercase;border-bottom:1px solid var(--navy)}.sa-addcol:hover{background:var(--navy-dark)}.sa-left-head{background:var(--teal);color:#fff;padding:10px 12px;display:flex;flex-direction:column;gap:6px;position:sticky;left:0;z-index:3}.sa-left-head .expand{background:none;border:none;color:#fff;font-weight:700;font-size:12px;letter-spacing:.4px;cursor:pointer;text-align:left;padding:0}.sa-left-head select{font-size:12px;padding:3px 6px;border-radius:3px;border:none}.sa-left-head .top{background:none;border:1px solid rgba(255,255,255,.5);color:#fff;font-size:10px;border-radius:3px;padding:2px 6px;cursor:pointer}.sa-change{justify-content:flex-end;font-variant-numeric:tabular-nums;background:#fafbfb}.sa-change .pos{color:var(--green);font-weight:500}.sa-change .neg{color:var(--red);font-weight:500}.sa-change .ico{display:inline-flex;width:13px;height:13px;border-radius:50%;align-items:center;justify-content:center;font-size:10px;margin-right:6px;color:#fff}.sa-change .ico.pos{background:var(--green)}.sa-change .ico.neg{background:var(--red)}.delta-hit{position:absolute;right:-9px;top:50%;width:18px;height:18px;z-index:5;cursor:pointer}.delta-hit span{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:11px solid var(--green);opacity:0;transition:opacity .15s}.delta-hit:hover span,.sa-colhead:hover .delta-hit span{opacity:1}.col-menu{position:absolute;top:28px;right:6px;background:#fff;border:1px solid var(--line-dark);border-radius:4px;box-shadow:0 6px 20px #00000026;z-index:30;min-width:180px;padding:4px 0}.col-menu button{display:block;width:100%;text-align:left;background:none;border:none;padding:7px 12px;cursor:pointer;font-size:13px;color:var(--ink)}.col-menu button:hover{background:#f3f4f6}.col-menu button.danger{color:var(--red)}.bank{width:200px;margin-right:10px;background:#fff;border:1px solid var(--line);border-radius:4px;font-size:12.5px}.bank .bank-head{background:var(--navy);color:#fff;padding:8px 10px;font-weight:700;font-size:12px;letter-spacing:.4px}.bank .bank-head small{display:block;font-weight:400;font-size:10px;opacity:.85}.bank button.item{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--line);padding:8px 10px;cursor:pointer;color:var(--ink)}.bank button.item:hover{background:#f3fbf9}.bank-tab{writing-mode:vertical-rl;transform:rotate(180deg);background:var(--navy);color:#fff;padding:10px 5px;border-radius:0 4px 4px 0;cursor:pointer;font-size:11px;letter-spacing:.6px;align-self:flex-start;margin-top:60px}.recipes-tab{position:fixed;right:0;top:260px;writing-mode:vertical-rl;background:var(--teal);color:#fff;padding:12px 6px;border-radius:4px 0 0 4px;font-size:12px;letter-spacing:.6px;cursor:pointer;z-index:20}.report{max-width:1120px;margin:0 auto}.report h1.title{text-align:center;font-size:24px;margin:18px 0 2px;font-weight:500}.report .byline{text-align:center;color:var(--muted);font-size:13px;margin-bottom:20px}.report h2{font-family:var(--font-head);font-size:22px;letter-spacing:.2px;color:#1f2937;margin:26px 0 8px;font-weight:600}.report h2 .tag{font-size:11px;font-family:var(--font);letter-spacing:0;color:var(--teal);margin-left:8px;vertical-align:middle;font-weight:500}.keyfig{display:grid;grid-template-columns:repeat(3,1fr);gap:0 24px;background:#fff;padding:14px 18px;border-radius:4px}.keyfig .kf{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #f0f2f3;font-size:13.5px}.keyfig .kf span:last-child{font-weight:500}.keyfig .col{border-right:1px solid var(--line);padding-right:18px}.keyfig .col:last-child{border-right:none}.report-section{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.report-section.single{grid-template-columns:1fr}.report table.rt{width:100%;border-collapse:collapse;font-size:13.5px}.report table.rt th{text-align:left;font-weight:500;color:#374151;padding:8px 10px;border-bottom:1px solid var(--line)}.report table.rt td{padding:7px 10px;border-bottom:1px solid #f0f2f3}.report table.rt td.num,.report table.rt th.num{text-align:right;font-variant-numeric:tabular-nums}.report table.rt tr.current td{background:#e8f3f1;outline:1px solid var(--teal)}.report table.rt tr.total td{font-weight:700;border-top:1px solid var(--line-dark)}.chart-card{background:#f3f6f7;border-radius:4px;padding:14px}.chart-card .ct{text-align:center;font-size:13px;color:#374151;margin-bottom:6px}.chart-card .caption{text-align:center;font-size:12px;color:var(--muted);margin-top:6px}.obs{background:#fff;border-radius:4px}.obs .ob{display:flex;gap:12px;padding:10px 14px;border-bottom:1px solid #f0f2f3;font-size:13.5px;line-height:1.5}.obs .ob .ic{width:14px;height:14px;background:var(--teal);border-radius:2px;margin-top:4px;flex:none}.status-Above{color:var(--muted)}.status-Under{color:var(--green)}.status-PhaseOut{color:var(--amber)}.magi-def{margin-bottom:12px}.magi-def .hd{display:flex;justify-content:space-between;font-weight:500;padding:6px 10px}.magi-def .it{display:grid;grid-template-columns:2fr 1.2fr .8fr;padding:4px 10px 4px 22px;font-size:13px;border-bottom:1px solid #f3f4f6}.explainer .line{display:grid;grid-template-columns:40px 1fr 160px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:4px;padding:10px 14px;margin-bottom:8px;cursor:pointer}.explainer .line .num{width:26px;height:26px;border-radius:4px;background:#eef2f3;display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:#374151}.explainer .line .lab{font-size:16px}.explainer .line .val{text-align:right;font-variant-numeric:tabular-nums}.explainer .detail{padding:6px 14px 14px 54px;color:#374151;font-size:13px}.rc-vars{display:flex;gap:20px;align-items:flex-end;background:#f3f6f7;padding:12px 16px;border-radius:4px;margin:14px 0}.rc-vars .field{margin:0}.rc-legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:11.5px;margin-top:10px}.rc-legend span i{display:inline-block;width:22px;height:4px;margin-right:6px;vertical-align:middle}.chip{display:inline-block;padding:2px 8px;border-radius:3px;font-size:12px;background:#e8f3f1;color:#1f3b4d}.impact{color:var(--green);font-weight:700}.impact.neg{color:var(--red)}.home-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}.hero{background:linear-gradient(135deg,var(--teal),#4fb3a3);color:#fff;border-radius:6px;padding:26px 28px;margin-bottom:18px}.hero h2{font-size:24px;font-weight:500;margin-bottom:6px}.hero p{opacity:.92;max-width:640px}.login{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login .box{background:#fff;padding:36px 40px;border-radius:8px;box-shadow:var(--shadow);text-align:center;max-width:420px}.login .box h1{font-size:22px;margin:14px 0 6px}@media print{.topnav,.sidebar,.sa-toolbar,.sa-colnav,.recipes-tab,.bank,.bank-tab,.no-print{display:none!important}body{background:#fff}.page{padding:0}}.sa-legend{display:flex;gap:10px;font-size:10.5px;opacity:.9;flex-wrap:wrap}.sa-legend .fx{font-style:italic}.sa-legend .ovr-dot{display:inline-block;vertical-align:middle;margin-right:3px}.sa-label .form-ref{margin-left:auto;padding-left:8px;font-size:10.5px;color:#9ca3af;white-space:nowrap}.sa-value .fx{color:#7c8a96;font-style:italic;font-family:Georgia,serif;font-size:12px}.sa-value.calc:hover .fx{color:var(--teal)}.ovr-dot{width:7px;height:7px;border-radius:50%;background:#d97706;display:inline-block}.sa-value.overridden{background:#fff7ed}.sa-value.overridden:hover{background:#ffedd5}.sa-value.overridden>span:not(.sub):not(.cur):not(.fx){color:#b45309;font-weight:600}.sa-value.overridden .sub{color:#b45309}.calc-meta{display:flex;gap:10px;align-items:center;font-size:12.5px;color:var(--muted);margin-bottom:12px;flex-wrap:wrap}.calc-meta .calc-form,.calc-meta .calc-kind{border:1px solid var(--line-dark);border-radius:10px;padding:1px 8px;font-size:11px;color:#374151}.calc-meta .calc-kind{background:var(--teal-light);border-color:#c9e4de}.calc-source{background:#fffbeb;border:1px solid #fde68a;border-radius:4px;padding:10px 12px;margin-bottom:12px}.calc-source label,.calc-override label{display:block;font-size:12px;font-weight:600;color:#374151;margin-bottom:6px}.calc-source input,.calc-override input{width:150px;text-align:right;padding:6px 8px;border:1px solid var(--line-dark);border-radius:3px;font-size:13px;font-variant-numeric:tabular-nums}table.calc-steps{width:100%;border-collapse:collapse;font-size:13px}table.calc-steps td{padding:5px 6px;border-bottom:1px solid #f0f2f3;vertical-align:top}table.calc-steps td.op{width:18px;color:var(--muted);text-align:center}table.calc-steps td.amt{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;width:130px}table.calc-steps tr.total td{font-weight:700;border-top:1px solid var(--line-dark);background:#fbfcfc}table.calc-steps tr.text td.lbl{color:var(--muted);font-style:italic}.calc-result{display:flex;gap:24px;margin:14px 0 10px;font-size:14px}.calc-result>div{display:flex;flex-direction:column;gap:2px}.calc-result .ovr{color:#b45309}.calc-override{border-top:1px solid var(--line);padding-top:12px}.calc-locked{background:#f1f4f5;border:1px solid var(--line-dark);border-radius:4px;padding:8px 12px;margin-bottom:12px;font-size:12.5px;color:#374151}.modal-foot{flex-wrap:wrap}.ws-table th .muted{color:#fffc;font-weight:400}
