:root{color-scheme:light;--paper: #f3f5f6;--surface: #ffffff;--sunk: #e9edef;--ink: #14202a;--muted: #5b6972;--line: #d8dfe3;--accent: #0e6e7e;--accent-soft: #d5e9ec;--ok: #2e8656;--warn: #b9770f;--bad: #bf3f36;--c-secM: #7dbbc4;--c-secS: #0e6e7e;--c-totM: #aba0d8;--c-totS: #5e4fa0;--c-country: #c98a1b;--c-risk: #8c979e;--s0: #0e7c86;--s1: #7a4e9e;--s2: #b7791f;--s3: #3d6fb6;--s4: #b84a6b;--s5: #5e7f2e;--s6: #8b5e3c;--s7: #56626b;--f-display: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--f-body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--f-mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;--r: 10px;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--paper: #0e1418;--surface: #151d22;--sunk: #1c262c;--ink: #e4ebee;--muted: #93a2ab;--line: #27333a;--accent: #4fb3c1;--accent-soft: #16363c;--ok: #4fbf84;--warn: #e0a43c;--bad: #ee6c62;--c-secM: #3e7f89;--c-secS: #5cc2cf;--c-totM: #6d62a6;--c-totS: #a597ea;--c-country: #e0a43c;--c-risk: #76838b;--s0: #4fb9c3;--s1: #b38bdb;--s2: #e1a850;--s3: #7ea7ea;--s4: #e481a0;--s5: #9dc165;--s6: #c9956b;--s7: #9aa7af}}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font:15px/1.55 var(--f-body);padding-inline:20px;padding-block:0 64px}h1,h2,h3{font-family:var(--f-display);font-weight:700;text-wrap:balance;margin:0;letter-spacing:-.01em}h2{font-size:1.45rem}h3{font-size:1.05rem;font-weight:500}p{margin:0}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#root{min-height:100vh}@media (max-width: 480px){body{padding-inline:16px}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);margin-inline:-20px;padding:10px 20px}.top .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}.wrap{max-width:1140px;margin:0 auto}.brand{display:flex;align-items:center;gap:10px;margin-right:auto}.brand b{font:700 1.05rem var(--f-display)}.brand span{color:var(--muted);font-size:.8rem}.auth-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.signed-in-as{color:var(--muted);font-size:.85rem}.page-main{padding-top:24px;display:grid;gap:16px}.eyebrow{font:500 .72rem/1 var(--f-body);text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}.hint{color:var(--muted);font-size:.88rem;max-width:62ch}.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.seg{display:inline-flex;background:var(--sunk);border-radius:999px;padding:3px;gap:2px;flex-wrap:wrap}.seg button{border:0;background:transparent;padding:6px 14px;border-radius:999px;cursor:pointer;font-size:.86rem;color:var(--muted)}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000001f}.switch{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;color:var(--muted);cursor:pointer}.switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:34px;height:20px;border-radius:999px;background:var(--line);position:relative;cursor:pointer;margin:0;transition:background .2s}.switch input:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:var(--surface);transition:transform .2s}.switch input:checked{background:var(--accent)}.switch input:checked:after{transform:translate(14px)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:grid;gap:14px;min-width:0}.primary,.secondary,.btn{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:7px 14px;cursor:pointer;font-size:.86rem}.primary{background:var(--accent);border-color:var(--accent);color:var(--surface);font-weight:500}.secondary:hover,.btn:hover{border-color:var(--muted)}.primary:hover{filter:brightness(1.08)}.primary:disabled{opacity:.6;cursor:wait}.btn.icon{padding:3px 8px;color:var(--muted)}.btn-row{display:flex;flex-wrap:wrap;gap:8px}.error-banner,.notice-banner{border-radius:8px;padding:10px 14px;margin:0;font-size:.9rem}.error-banner{background:color-mix(in srgb,var(--bad) 12%,transparent);color:var(--bad);border:1px solid color-mix(in srgb,var(--bad) 35%,transparent)}.notice-banner{background:color-mix(in srgb,var(--warn) 12%,transparent);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent)}.empty-state{color:var(--muted);font-size:.9rem}.filters .grid,.pd-filters .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.filters label,.pd-filters label,.pd-form label,.inline-field{display:grid;gap:6px;font-size:.8rem;font-weight:600;color:var(--muted)}.filters input,.filters select,.pd-filters input,.pd-filters select,.pd-form input,.inline-field select{border:1px solid var(--line);border-radius:6px;background:var(--paper);padding:7px 9px;font-size:.9rem;font-weight:400;color:var(--ink)}.filters select[multiple]{min-height:10rem}.actions-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.metrics-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.metrics-row article{padding:12px 14px;border-radius:8px;background:var(--sunk)}.metrics-row h3{font:500 .72rem/1 var(--f-body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.metrics-row p{margin-top:8px;font:500 1.4rem var(--f-mono);font-variant-numeric:tabular-nums}.table-wrap,.tbl-wrap{overflow-x:auto}.tbl-wrap{border:1px solid var(--line);border-radius:8px}table{border-collapse:collapse;font-size:.8rem;width:max-content;min-width:100%}th,td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}thead th{background:var(--sunk);font-weight:600;color:var(--muted);font-size:.72rem}.data-table thead tr:first-child th{text-transform:uppercase;letter-spacing:.06em;font-size:.66rem}td input[type=number],td input[type=text]{width:104px;padding:4px 6px;border:1px solid var(--line);border-radius:5px;background:var(--paper);font-family:var(--f-mono);font-size:.78rem}td input[type=text]{width:170px;font-family:var(--f-body)}td input.pct{width:70px}.pd-details-container{display:grid;gap:16px}.pd-details-header{display:flex;justify-content:space-between;align-items:center}.close-btn{background:none;border:none;font-size:1.6rem;cursor:pointer;color:var(--muted);line-height:1}.close-btn:hover{color:var(--ink)}.pd-section h3{font-weight:700}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.info-item{display:grid;gap:4px;padding:10px 12px;background:var(--sunk);border-radius:8px}.info-item .label{font:500 .68rem/1.2 var(--f-body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.info-item .value{font-size:.9rem;word-break:break-word}.pd-subsection{padding-top:14px;border-top:1px solid var(--line);display:grid;gap:10px}.pd-subsection h4{margin:0;font:600 .72rem var(--f-body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.demand-group{border:1px solid var(--line);border-radius:8px}.demand-group+.demand-group{margin-top:8px}.demand-group-header{width:100%;border:none;background:transparent;text-align:left;padding:10px 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;cursor:pointer}.demand-group-title{font-weight:600}.demand-group-meta{color:var(--muted);font-size:.85rem;font-family:var(--f-mono)}.demand-group-toggle{margin-left:auto;color:var(--accent);font-size:.82rem;font-weight:600}.demand-group-table-wrap{border-top:1px solid var(--line);padding:10px 14px 14px}.demand-month-toggle{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 10px;cursor:pointer;font-size:.78rem}.demand-month-details-row td{background:var(--sunk)}.opt{display:grid;gap:12px}.source-bar{gap:12px}.source-row{display:flex;flex-wrap:wrap;align-items:end;gap:12px 20px}.source-row .switch{margin-left:auto;align-self:center}.pd-form{display:flex;flex-wrap:wrap;align-items:end;gap:10px}.pd-form .season-input{width:110px}.filter-row{display:grid;grid-template-columns:140px 1fr;gap:10px;align-items:start}.filter-label,.tbl-title{margin:0;font:600 .72rem/2.2 var(--f-body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.pick .hint{font-size:.75rem}@media (max-width: 640px){.filter-row{grid-template-columns:1fr}}.empty-panel{margin-top:24px}.opt-section{padding-block:44px 8px;display:grid;gap:18px}.sec-head{display:grid;gap:6px}.row-wrap{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row-between{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.stack-6{display:grid;gap:6px}.stack-14{display:grid;gap:14px}.verdict{grid-template-columns:1.05fr 1fr;gap:28px;padding-top:36px;align-items:start}.v-main{display:grid;gap:18px;align-content:start}.v-name{display:flex;align-items:center;gap:16px}.v-name h1{font-size:clamp(2rem,4.6vw,3.2rem);line-height:1.02}.lede{font-size:1.06rem;max-width:52ch}.regime{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font:600 .72rem/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase}.regime.under{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}.regime.over{background:color-mix(in srgb,var(--bad) 16%,transparent);color:var(--bad)}.qty{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:grid;gap:10px}.qty-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.qty label{font-weight:600;font-size:.9rem}.qty input[type=range]{flex:1;min-width:160px;accent-color:var(--accent)}.qty input[type=number]{width:120px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--paper);font-family:var(--f-mono)}.rank-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 18px 12px;display:grid;gap:12px}.rank-row{display:grid;grid-template-columns:22px 34px minmax(0,1fr) auto;gap:10px;align-items:center;padding-block:8px;border-top:1px solid var(--line);cursor:pointer}.rank-row:first-of-type{border-top:0}.rank-row .rk{font:600 .85rem var(--f-mono);color:var(--muted)}.rank-row .nm{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lane{grid-column:3 / 5;height:14px;position:relative}.lane .trk{position:absolute;left:0;right:0;top:6px;height:2px;background:var(--line);border-radius:2px}.lane .zero{position:absolute;top:0;bottom:0;width:1px;background:var(--muted);opacity:.5}.lane .dot{position:absolute;top:1px;width:12px;height:12px;border-radius:50%;transform:translate(-50%);border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line)}.lane .x{position:absolute;right:0;top:-3px;font-size:.75rem;color:var(--bad)}.lane-axis{display:grid;padding-left:76px;font-size:.72rem;color:var(--muted)}.lane-axis-mid{transform:translate(-50%);white-space:nowrap}.lane-axis-end{text-align:right}.mono-tile{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font:700 .8rem var(--f-display);color:#fff;position:relative;overflow:hidden;flex:none}.mono-tile.lg{width:64px;height:64px;border-radius:14px;font-size:1.35rem}.mono-tile svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:.28}.mono-tile span{position:relative}.chip{display:inline-flex;align-items:center;gap:5px;font:600 .7rem/1 var(--f-body);letter-spacing:.05em;text-transform:uppercase;padding:5px 8px;border-radius:999px;white-space:nowrap}.chip.recommended{background:var(--accent);color:var(--surface)}.chip.tie{background:var(--accent-soft);color:var(--accent)}.chip.alternative{background:var(--sunk);color:var(--muted)}.chip.ineligible{background:color-mix(in srgb,var(--bad) 15%,transparent);color:var(--bad)}.chip.needinfo{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}.num{display:none}.show-nums .num{display:inline}.num.block{display:none}.show-nums .num.block{display:block}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card{min-width:0;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-content:start}.card>*{min-width:0}.card.win{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.card-h{display:flex;align-items:center;gap:10px}.card-h h3{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meter-lbl{display:flex;justify-content:space-between;gap:8px;font-size:.8rem;color:var(--muted)}.meter-lbl b{color:var(--ink);font-weight:600}.meter{height:12px;background:var(--sunk);border-radius:6px;position:relative}.meter .fill{position:absolute;top:0;bottom:0;left:0;border-radius:6px 0 0 6px;background:var(--muted);opacity:.55}.meter .inc{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,var(--accent) 0 3px,transparent 3px 6px);border:1px solid var(--accent)}.meter .inc.over{background:repeating-linear-gradient(135deg,var(--bad) 0 3px,transparent 3px 6px);border-color:var(--bad)}.meter .ceil{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ink)}.meter .crit{position:absolute;top:-4px;bottom:-4px;width:0;border-left:2px dashed var(--warn)}.ubars{display:grid;gap:7px}.ubar>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ubar{display:grid;grid-template-columns:96px minmax(0,1fr) 44px;gap:8px;align-items:center;font-size:.8rem;color:var(--muted)}.ubar .t{height:8px;background:var(--sunk);border-radius:4px;position:relative}.ubar .p{position:absolute;left:0;top:0;bottom:0;border-radius:4px 0 0 4px}.ubar .i{position:absolute;top:0;bottom:0;opacity:.45}.ubar .plan{position:absolute;top:-4px;bottom:-4px;width:1px;background:var(--ink);opacity:.7}.ubar .v{text-align:right;font-family:var(--f-mono);font-size:.75rem;color:var(--ink)}.ubar .v .word{font-family:var(--f-body);color:var(--muted)}.show-nums .ubar .v .word{display:none}.note{font-size:.8rem;color:var(--muted);display:flex;gap:6px;align-items:flex-start}.note i{font-style:normal;color:var(--warn)}.card-legend,.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.8rem;color:var(--muted)}.card-legend span,.legend span{display:inline-flex;align-items:center;gap:6px}.sw{width:14px;height:8px;border-radius:2px;display:inline-block}.sw-booked{background:var(--muted);opacity:.55}.sw-order{background:repeating-linear-gradient(135deg,var(--accent) 0 3px,transparent 3px 6px);border:1px solid var(--accent)}.sw-ceil{background:var(--ink);width:2px;height:12px}.sw-crit{border-left:2px dashed var(--warn);width:2px;height:12px;border-radius:0}.two{display:grid;grid-template-columns:1.6fr 1fr;gap:16px}.chart{width:100%;overflow-x:auto}.chart svg{display:block;width:100%;height:auto;min-width:520px;touch-action:none}svg text{font-family:var(--f-body);fill:var(--muted);font-size:11px}svg .ink{fill:var(--ink)}svg .grid{stroke:var(--line);stroke-width:1}svg .axis{stroke:var(--muted);stroke-width:1}.wbar{display:grid;gap:6px}.wbar .lbl{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted)}.wbar .lbl b{color:var(--ink)}.wbar .bar{display:flex;height:26px;border-radius:6px;overflow:hidden;background:var(--sunk)}.wbar .bar div{display:flex;align-items:center;justify-content:center;font:500 .7rem var(--f-mono);color:#fff;min-width:0;overflow:hidden;white-space:nowrap}.wbar.dim{opacity:.4}.controls-inline{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center}.controls-inline label{display:flex;align-items:center;gap:8px;font-size:.86rem}.controls-inline input[type=range]{width:140px;accent-color:var(--accent)}.controls-inline output{font-family:var(--f-mono);font-size:.8rem;min-width:2.5em}.pickers{display:flex;flex-wrap:wrap;gap:6px}.pick{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px 5px 6px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-size:.85rem}.source-row .pick{padding-left:12px}.pick .d{width:12px;height:12px;border-radius:50%}.pick[aria-pressed=true]{border-color:var(--ink);background:var(--sunk)}.steps{list-style:none;margin:0;padding:0;display:grid;counter-reset:st}.steps li{display:grid;grid-template-columns:34px 1fr;gap:14px;padding-block:14px;border-top:1px solid var(--line)}.steps li:first-child{border-top:0}.steps li:before{counter-increment:st;content:counter(st);width:26px;height:26px;border-radius:50%;background:var(--sunk);display:grid;place-items:center;font:600 .8rem var(--f-mono);color:var(--muted)}.steps .body{display:grid;gap:6px;min-width:0}.steps .body p{font-size:.9rem;color:var(--muted);max-width:70ch}.formula{font-family:var(--f-mono);font-size:.8rem;background:var(--sunk);border-radius:6px;padding:8px 10px;overflow-x:auto;white-space:pre;line-height:1.7}.formula .r{color:var(--accent);font-weight:500}.formula .b{color:var(--bad)}.formula .g{color:var(--ok)}details.panel>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px}details.panel>summary::-webkit-details-marker{display:none}details.panel>summary:after{content:"+";font:500 1.3rem var(--f-mono);color:var(--muted)}details.panel[open]>summary:after{content:"–"}.ctl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}.ctl-grp{display:grid;gap:8px;align-content:start}.ctl-grp h4{margin:0;font:600 .72rem var(--f-body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.ctl{display:grid;grid-template-columns:1fr 90px;gap:8px;align-items:center;font-size:.85rem}.ctl input{padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:var(--paper);font-family:var(--f-mono);font-size:.8rem;width:100%}.check{display:flex;gap:10px;flex-wrap:wrap;font-size:.85rem}.pill{padding:3px 9px;border-radius:999px;font:600 .72rem var(--f-mono)}.pill.ok{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}.pill.rev{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}.opt-footer{margin-top:40px;color:var(--muted);font-size:.8rem;border-top:1px solid var(--line);padding-top:16px}@media (max-width: 860px){.verdict,.two,.cards{grid-template-columns:1fr}}@media (max-width: 480px){.top{margin-inline:-16px;padding-inline:16px}.ubar{grid-template-columns:84px minmax(0,1fr) 40px}.brand span{display:none}}
