:root{--ink:#1a1a1a;--accent:#ff3f33;--flour:#d1c08f;--page:#f4f2ee;--card:#ffffff;--card-border:#e5e2db;--table-head:#faf9f6;--divider:#f0ede7;--divider-faint:#f6f4f0;--text-secondary:#717171;--text-body2:#4a4540;--label:#6f6a62;--label-faint:#b3ada3;--ok-text:#1f8a5b;--ok-bg:#e6f4ec;--warn-text:#7a6420;--warn-bg:#fdf6e9;--err-text:#a81f14;--err-bg:#ffe9e7;--override-text:#1d4ed8;--override-bg:#e6edff;--ovr-badge-text:#5a3a8a;--ovr-badge-bg:#ece4f5;--info-text:#3a5a8a;--info-bg:#e7edf5;--cost-bar:#f3c9c4;--reward-bar:#bfe6d0}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;overflow:hidden}body{background:var(--page);color:var(--ink);font-family:Montserrat,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#d8d4cc;border-radius:6px}::-webkit-scrollbar-track{background:transparent}.num{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:8px;top:-60px;z-index:100;background:var(--accent);color:#fff;padding:8px 14px;border-radius:7px;font-weight:600;text-decoration:none;transition:top .12s}.skip-link:focus-visible{top:8px}#main-content:focus-visible{outline:none}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-shell{width:100%;overflow:hidden}.app-shell,.sidebar{display:flex;height:100vh}.sidebar{width:248px;flex:0 0 248px;background:var(--ink);color:#e8e8e8;flex-direction:column}.sidebar-head{padding:22px 20px 18px;border-bottom:1px solid #2c2c2c}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:26px;height:26px;background:var(--accent);border-radius:5px;flex:0 0 26px}.brand-name{font-weight:700;font-size:14px;letter-spacing:.2px;line-height:1.1}.brand-kicker{margin-top:12px;font-size:11px;color:#8a8a8a;letter-spacing:.4px;text-transform:uppercase}.brand-sub{font-size:13px;color:#cfcbc2;font-weight:500;margin-top:2px}.sidebar-nav{padding:10px 12px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.nav-group{margin-top:8px}.nav-group-title{padding:6px 12px 5px;font-size:10px;font-weight:600;color:#6a6a6a;text-transform:uppercase;letter-spacing:.7px}.nav-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:0;cursor:pointer;padding:10px 12px;border-radius:7px;font-family:inherit;font-size:13px;font-weight:500;background:transparent;color:#9a958c;text-decoration:none;margin-bottom:2px}.nav-item .nav-bar{width:3px;height:16px;border-radius:2px;background:transparent;flex:0 0 3px}.nav-item .nav-label{flex:1 1}.nav-item .nav-count{font-size:11px;font-weight:600;min-width:20px;text-align:center;padding:1px 7px;border-radius:9px;background:#2c2c2c;color:#9a958c}.nav-item:hover{background:rgba(255,255,255,.04)}.nav-item[aria-current=page]{background:rgba(255,255,255,.07);color:#ffffff}.nav-item[aria-current=page] .nav-bar{background:var(--accent)}.nav-item[aria-current=page] .nav-count{background:var(--accent);color:#fff}.nav-item.disabled{opacity:.45;pointer-events:none;cursor:default}.sidebar-foot{margin-top:auto;padding:16px;border-top:1px solid #2c2c2c;display:flex;flex-direction:column;gap:12px}.mode-toggle{display:flex;align-items:center;justify-content:space-between;border:1px solid #333;background:#222;border-radius:8px;padding:9px 11px;font-family:inherit}.mode-toggle .mode-label{font-size:11px;color:var(--label);text-transform:uppercase;letter-spacing:.4px}.mode-toggle .mode-value{font-size:12px;font-weight:600;color:var(--flour)}.user-chip{gap:9px}.avatar,.user-chip{display:flex;align-items:center}.avatar{width:28px;height:28px;border-radius:50%;background:var(--flour);color:var(--ink);justify-content:center;font-weight:700;font-size:11px;flex:0 0 28px}.user-name{font-size:12px;font-weight:600;color:#e8e8e8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.signout,.user-role{font-size:11px;color:#8a8a8a}.signout{background:none;border:0;font-family:inherit;text-decoration:underline;cursor:pointer;padding:0;text-align:left}.signout:hover{color:#cfcbc2}.main{flex:1 1;display:flex;flex-direction:column;height:100vh;overflow:hidden;min-width:0;min-height:0}.topbar{flex:0 0 auto;background:var(--card);border-bottom:1px solid var(--card-border);padding:14px 28px;display:flex;align-items:center;gap:20px}.kicker{font-size:11px;color:var(--label);letter-spacing:.4px;text-transform:uppercase;margin-bottom:2px}.title{font-size:18px;font-weight:700;letter-spacing:-.2px;margin:0}.content{flex:1 1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:24px 28px 60px}.tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.tab{font-size:12px;font-weight:600;padding:8px 15px;border-radius:7px;cursor:pointer;font-family:inherit;border:1px solid var(--card-border);background:var(--card);color:var(--text-secondary);text-decoration:none}.tab[aria-current=page]{background:var(--ink);color:#fff;border-color:var(--ink)}.tab.disabled{opacity:.55;pointer-events:none}.card{background:var(--card);border:1px solid var(--card-border);border-radius:10px;overflow:hidden;margin-bottom:14px}.card-pad{padding:16px 18px}.card-head{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--divider);background:var(--table-head)}.card-title{font-weight:600;font-size:13px;flex:1 1}.card-title.lg{font-size:14px;font-weight:700}.card-desc{padding:11px 16px 4px;font-size:12px;color:var(--text-secondary);line-height:1.5}.group-tag{font-size:9px;font-weight:600;padding:2px 7px;border-radius:5px;background:var(--divider);color:#8a8478;text-transform:uppercase;letter-spacing:.3px}.page-intro{margin-bottom:14px}.page-intro h2{font-size:16px;font-weight:700;margin:0}.page-intro p{font-size:12px;color:var(--text-secondary);margin:2px 0 0}.field{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);align-items:center;grid-gap:6px 14px;gap:6px 14px;padding:10px 16px;border-top:1px solid var(--divider-faint)}.field:first-child{border-top:none}.flabel{font-size:12px;font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:flex;align-items:center;gap:8px}.fhelp{grid-column:1/2;font-size:11px;color:var(--label);margin-top:1px}.fcontrol{grid-column:2/3;grid-row:1/3;display:flex;align-items:center;gap:10px;justify-content:flex-end}.form-input,.form-select{font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:600;padding:6px 11px;min-height:30px;border:1px solid var(--card-border);border-radius:7px;background:var(--card);color:var(--ink)}.form-input.num{width:104px;text-align:right}.form-select{font-weight:600}.form-input.invalid,.form-select.invalid{border-color:var(--err-text);background:#fff7f6}.field-affix{font-family:ui-monospace,monospace;font-size:12px;color:var(--label)}.chip{display:inline-block;border-radius:5px;padding:1px 7px;font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.chip.override{color:var(--override-text);background:var(--override-bg)}.chip.default{color:var(--text-secondary);background:var(--table-head);border:1px solid var(--card-border)}.chip.locked{color:var(--label);background:var(--divider)}.chip.unset{color:var(--warn-text)}.chip.unset,.field.dirty{background:var(--warn-bg)}.field.dirty{box-shadow:inset 3px 0 0 var(--warn-text)}.chip.unsaved{color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--warn-text)}.toggle{display:inline-flex;align-items:center;gap:9px;min-height:24px;cursor:pointer;background:none;border:0;padding:0;font-family:inherit}.toggle-track{width:34px;height:19px;border-radius:11px;background:#d3cfc6;position:relative;flex:0 0 34px;transition:background .12s}.toggle-track.on{background:var(--ok-text)}.toggle-knob{position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;transition:left .12s}.toggle-track.on .toggle-knob{left:17px}.tstate{font-weight:700;font-size:11px}.tstate.on{color:var(--ok-text)}.tstate.off{color:var(--label)}.cap-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px;max-width:520px}.cap-grid label{display:flex;flex-direction:column;gap:2px;font-size:10px;color:var(--label);text-transform:uppercase;text-align:center}.cap-grid input{font:inherit;font-family:ui-monospace,monospace;font-weight:600;text-align:center;padding:6px 2px;min-height:30px;border:1px solid var(--card-border);border-radius:7px;background:var(--card)}.scroll-x{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data caption,table.data th{text-align:left}table.data th{background:var(--table-head);text-transform:uppercase;font-size:10px;letter-spacing:.4px;color:var(--label);font-weight:600;padding:8px 14px;border-bottom:1px solid var(--card-border);white-space:nowrap}table.data td{padding:10px 14px;border-bottom:1px solid var(--divider)}table.data td.num,table.data th.num{text-align:right}table.data tr:last-child td{border-bottom:none}.change-old{color:var(--text-secondary)}.change-arrow{color:var(--label-faint)}.change-new{font-weight:600}.change-delta{list-style:none;margin:0;padding:0;text-align:left}.change-delta li{white-space:nowrap}.change-field{color:var(--label);font-weight:600;margin-right:6px}.pill{display:inline-block;border-radius:5px;padding:1px 7px;font-size:10.5px;font-weight:700}.pill.yes{color:var(--ok-text);background:var(--ok-bg)}.pill.no{color:#7a847f;background:#eef0ef}.pill.hub{color:var(--accent);background:#fbe3df}.pill.data{color:#d12a1d;background:var(--err-bg)}.badge{display:inline-block;border-radius:5px;padding:1px 6px;font-size:10.5px;font-weight:600}.badge.err{color:var(--err-text);background:var(--err-bg)}.badge.warn{color:var(--warn-text);background:var(--warn-bg)}.badge.ok{color:var(--ok-text);background:var(--ok-bg)}.badge.info{color:var(--info-text);background:var(--info-bg)}.badge.override{color:var(--ovr-badge-text);background:var(--ovr-badge-bg)}.badge.hold{color:#fff;background:var(--ink)}.pill.allocated{color:var(--ok-text);background:var(--ok-bg)}.pill.re_sourced{color:var(--info-text);background:var(--info-bg)}.pill.cs_exception{color:var(--err-text);background:var(--err-bg)}.chip.advisory{color:var(--text-secondary);background:var(--table-head);border:1px solid var(--border)}.card.advisory{border-left:3px solid var(--label-faint);background:var(--info-bg)}.pill.held{color:#fff;background:var(--ink)}.pill.feasible{color:var(--ok-text);background:var(--ok-bg)}.pill.short{color:var(--err-text);background:var(--err-bg)}.pill.stock-agnostic{color:var(--info-text);background:var(--info-bg)}.pill.green{color:var(--ok-text);background:var(--ok-bg)}.pill.amber{color:var(--warn-text);background:var(--warn-bg)}.pill.red{color:var(--err-text);background:var(--err-bg)}.pill.success{color:var(--ok-text);background:var(--ok-bg)}.pill.failure{color:var(--err-text);background:var(--err-bg)}.pill.degraded{color:var(--warn-text);background:var(--warn-bg)}.ledger{padding:4px 0 2px}.ledger-row{display:grid;grid-template-columns:170px 1fr 96px;align-items:center;grid-gap:12px;gap:12px;padding:5px 16px;border-top:1px solid var(--divider-faint)}.ledger-row:first-child{border-top:none}.ledger-label{font-size:12px;font-weight:500}.ledger-label.inert{color:var(--label)}.ledger-track{position:relative;height:14px}.ledger-track:before{content:"";position:absolute;left:50%;top:-1px;bottom:-1px;width:1px;background:var(--card-border)}.ledger-fill{position:absolute;top:2px;bottom:2px;border-radius:2px}.ledger-fill.cost{left:50%;background:var(--cost-bar)}.ledger-fill.reward{right:50%;background:var(--reward-bar)}.ledger-amount{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;font-size:12.5px;font-weight:600}.ledger-amount.cost{color:var(--err-text)}.ledger-amount.reward{color:var(--ok-text)}.ledger-amount.zero{color:var(--label)}.ledger-total{display:grid;grid-template-columns:170px 1fr 96px;align-items:center;grid-gap:12px;gap:12px;padding:10px 16px;border-top:2px solid var(--ink);margin-top:2px}.ledger-total .ledger-label{font-weight:700;font-size:13px}.ledger-total .ledger-amount{font-weight:700;font-size:14px;color:var(--ink)}.ledger-note{font-size:11px;color:var(--label);text-align:center}.kpi-strip{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.kpi{flex:1 1 170px;min-width:170px;background:var(--card);border:1px solid var(--card-border);border-radius:10px;padding:14px 16px}.kpi-num{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:28px;font-weight:700;line-height:1.1}.kpi-label{font-size:11px;color:var(--text-secondary);margin-top:4px}.capbar{display:inline-flex;align-items:center;gap:8px}.capbar-track{width:84px;height:8px;border-radius:4px;background:var(--divider);overflow:hidden;flex:0 0 84px}.capbar-fill{height:100%;border-radius:4px}.capbar-fill.green{background:var(--ok-text)}.capbar-fill.amber{background:#d99a1c}.capbar-fill.red{background:var(--err-text)}.capbar-pct{font-family:ui-monospace,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.filterbar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin-bottom:14px}.filter-field{display:flex;flex-direction:column;gap:3px}.filter-field label{font-size:10px;font-weight:600;color:var(--label);text-transform:uppercase;letter-spacing:.4px}.list-footer{font-size:11px;color:var(--text-secondary);margin-top:10px}.row-inactive td{opacity:.55}.loc-list{display:flex;flex-direction:column}.loc-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;border-top:1px solid var(--divider-faint);cursor:pointer;padding:11px 16px;font-family:inherit;background:var(--card);text-decoration:none;color:inherit}.loc-row:first-of-type{border-top:none}.loc-row[aria-current=true]{background:#fbf1ef}.loc-row.inactive{opacity:.55}.loc-name{font-weight:600;font-size:13px;display:flex;align-items:center;gap:7px;color:var(--ink)}.loc-meta{font-size:11px;color:var(--label);margin-top:1px}.banner{border-radius:9px;padding:11px 16px;font-size:12px;margin-bottom:14px;line-height:1.5}.banner.info{color:var(--text-body2);background:var(--table-head);border:1px solid var(--card-border)}.banner.warn{color:var(--warn-text);background:var(--warn-bg);border:1px solid #ecdcb5}.banner.ok{color:var(--ok-text);background:var(--ok-bg)}.empty{color:var(--text-secondary);padding:24px;text-align:center}.stepper{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--card);border:1px solid var(--card-border);border-radius:10px;padding:12px 16px;margin-bottom:16px}.stepper .step-kicker{font-size:10px;font-weight:600;color:var(--label);text-transform:uppercase;letter-spacing:.4px;margin-right:2px}.stepper .step{font-size:12px;font-weight:600;color:var(--ink);background:var(--table-head);border:1px solid var(--card-border);border-radius:6px;padding:4px 10px}.stepper .step.endpoint{color:#fff;background:var(--accent);border-color:var(--accent)}.stepper .sep{color:#c9c3b8;font-size:13px}.savebar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 16px;border-top:1px solid var(--divider);background:var(--table-head)}.savebar label{font-size:11px;color:var(--label)}.savebar .reason{flex:1 1 220px;min-width:180px;font-weight:500}button.btn{font:inherit;font-size:12px;font-weight:600;padding:8px 15px;min-height:32px;border-radius:7px;border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer}button.btn.secondary{background:var(--card);color:var(--ink);border-color:var(--card-border)}button.btn.sm{padding:4px 11px;min-height:26px;font-size:11px}button.btn:disabled{opacity:.5;cursor:not-allowed}button.link{font:inherit;font-size:11px;font-weight:600;color:var(--text-secondary);background:var(--card);border:1px solid var(--card-border);border-radius:6px;padding:4px 10px;min-height:24px;cursor:pointer}button.link:hover{color:var(--ink)}.status-ok{color:var(--ok-text);font-weight:600}.status-err{color:var(--err-text);font-weight:600}.band-err{font-size:12px;padding-top:0;padding-bottom:6px;text-align:left;white-space:normal}.dialog-backdrop{position:fixed;inset:0;background:rgba(26,26,26,.4);display:flex;align-items:center;justify-content:center;z-index:50}.dialog{background:var(--card);border:1px solid var(--card-border);border-radius:10px;padding:18px 20px;max-width:440px;width:calc(100% - 40px)}.dialog h3{margin:0 0 8px;font-size:14px}.dialog .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}