/* Selection tokens — the project's designated blue (from the Claude-design token sheet).
   Blue = selection/interactive state; the site's orange/red accent stays reserved for actions. */
:root{--sel:#2447B0; --sel-ink:#FFFFFF}

/* Range/checkbox/radio controls page-wide: selection color */
input[type="range"]{accent-color:var(--sel)}
input[type="radio"],input[type="checkbox"]{accent-color:var(--sel)}

/* SovereigntyBox configurator — page-specific styles for configure.html.
   Site design system only: 2px hairlines, square corners, IBM Plex Mono
   labels/values, Archivo headings, existing tokens (dark + light themes).
   Status tones: ok=--sev-policy · warn=--accent · danger=--sev-high · info=--sev-econ.
   Every status also carries a text label — never color alone. */

/* ============ HERO ============ */
.cx-hero{min-height:0;padding:clamp(120px,16vh,170px) 0 clamp(28px,4vh,48px);
  display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);column-gap:clamp(28px,4vw,72px);align-items:end}
.cx-hero .eyebrow{grid-column:1 / -1;margin-bottom:14px}
.cx-hero h1{margin-bottom:0}
.cx-hero .lead{margin-bottom:0;max-width:56ch}

/* ============ LAYOUT ============ */
.cx-section{padding-top:clamp(16px,3vh,36px)}
.cx-layout{display:grid;grid-template-columns:200px minmax(0,1fr) 300px;gap:clamp(24px,2.4vw,44px);align-items:start}
.cx-workspace{min-width:0}
/* neutralize the site-wide section padding so all three columns share one top edge */
.cx-stage{padding:0}
.cx-stage-head{margin-bottom:26px}
.cx-stage-head h2{font-size:clamp(30px,3.4vw,46px);margin:14px 0 12px}
.cx-stage-intro{font-size:16px;line-height:1.6;color:var(--fg-dim);max-width:62ch}
.cx-sub{display:block;margin:30px 0 14px}
/* stage foot: the way forward — an action, so it stays accent, not selection blue */
.cx-next{margin-top:38px;border-top:3px solid var(--hair-soft);padding-top:24px;display:flex;justify-content:flex-end}
.cx-next .btn{display:inline-flex;align-items:center;gap:14px}
.cx-next .cx-arr{width:30px;height:30px;flex:none}
.cx-note{font-size:15px;line-height:1.6;color:var(--fg-dim);max-width:62ch;margin-bottom:20px}

/* ============ STAGE RAIL ============ */
.cx-rail{position:sticky;top:96px;border:3px solid var(--hair);background:color-mix(in srgb, var(--bg) 60%, transparent)}
.cx-rail-head{padding:16px 16px 14px}
.cx-rail-eyebrow{display:block;font:500 10px 'IBM Plex Mono',monospace;letter-spacing:.2em;color:var(--fg-faint);text-transform:uppercase}
.cx-rail-sub{display:block;font:400 10.5px 'IBM Plex Mono',monospace;color:var(--fg-dim);margin-top:6px;letter-spacing:.06em}
.cx-rail-stages{display:flex;flex-direction:column;border-top:3px solid var(--hair)}
.cx-stage-btn{position:relative;display:flex;gap:12px;align-items:flex-start;width:100%;background:none;border:none;
  border-top:3px solid var(--hair-soft);padding:14px 16px;cursor:pointer;text-align:left;color:var(--fg);
  transition:background-color .15s}
.cx-stage-btn:first-child{border-top:none}
.cx-stage-btn:hover{background:var(--bg-raise)}
.cx-ico{width:15px;height:15px;flex:none}
.cx-stage-btn > .cx-ico{margin-top:1px;color:var(--fg-faint)}
.cx-stage-btn.on > .cx-ico{color:var(--sel)}
/* active stage: partial accent fill — stronger than the bar alone, quieter than the reversed rows */
.cx-stage-btn.on{background:color-mix(in srgb, var(--sel) 17%, transparent);
  box-shadow:inset 0 -3px 0 var(--sel)}
.cx-stage-btn.on::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:5px;background:var(--sel)}
.cx-sb-num{font:500 11px 'IBM Plex Mono',monospace;letter-spacing:.08em;color:var(--fg-faint);padding-top:3px;flex:none}
.cx-stage-btn.on .cx-sb-num{color:var(--sel)}
.cx-sb-main{min-width:0}
.cx-sb-label{display:block;font:600 14px/1.25 'Archivo',sans-serif;color:var(--fg-dim)}
.cx-stage-btn.on .cx-sb-label{color:var(--sel)}
.cx-sb-desc{display:block;font:400 9.5px 'IBM Plex Mono',monospace;color:var(--fg-faint);margin-top:3px;letter-spacing:.04em}
.cx-rail-foot{border-top:3px solid var(--hair);padding:12px}
.cx-help{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:9px;background:none;border:3px solid var(--hair);color:var(--fg-dim);
  font:500 10.5px 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;
  padding:12px 14px;cursor:pointer;transition:color .2s,border-color .2s}
.cx-help:hover{color:var(--accent);border-color:var(--accent)}

/* ============ TABS / PILLS / SHARED BITS ============ */
.cx-tablist{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:22px}
.cx-tab{flex:none;background:none;border:3px solid var(--hair);color:var(--fg-dim);
  font:500 11px 'IBM Plex Mono',monospace;letter-spacing:.12em;text-transform:uppercase;
  padding:10px 16px;cursor:pointer;transition:color .15s,border-color .15s}
.cx-tab:hover{color:var(--fg);border-color:var(--fg-dim)}
.cx-tab.on{border-color:var(--sel);color:var(--sel)}
.cx-pill{display:inline-block;border:3px solid currentColor;padding:3px 9px;
  font:500 9.5px 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.cx-pill-ok{color:var(--sev-policy)}
.cx-pill-warn{color:var(--accent)}
.cx-pill-danger{color:var(--sev-high)}
.cx-pill-info{color:var(--sev-econ)}
.cx-price{font:600 15px 'IBM Plex Mono',monospace;color:var(--fg)}
.cfg-label{font:500 10.5px 'IBM Plex Mono',monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-faint);display:block;margin-bottom:12px}
.cx-field-block{margin-bottom:22px}
.cx-disclaimer{margin-top:28px;font:400 10.5px/1.7 'IBM Plex Mono',monospace;letter-spacing:.06em;
  color:var(--fg-faint);border-top:3px solid var(--hair-soft);padding-top:14px;font-style:italic}

/* ============ OPTION ROWS / CARDS ============ */
.cx-rows{display:flex;flex-direction:column;gap:10px}
.cx-row{display:flex;gap:14px;align-items:flex-start;border:3px solid var(--hair);padding:16px;cursor:pointer;
  transition:border-color .15s,background-color .15s}
.cx-row:hover{border-color:var(--fg-dim)}
.cx-row.on{border-color:var(--sel);background:color-mix(in srgb, var(--sel) 5%, transparent)}
.cx-row input[type="radio"],.cx-row input[type="checkbox"],
.cx-card input[type="radio"]{accent-color:var(--sel);width:18px;height:18px;margin:2px 0 0;flex:none}
.cx-row-main{flex:1;min-width:0}
.cx-row-title{display:block;font:600 16px/1.3 'Archivo',sans-serif;color:var(--fg)}
.cx-row-desc{display:block;font-size:14px;line-height:1.5;color:var(--fg-dim);margin-top:4px}
.cx-row-mono{display:block;font:400 11px/1.6 'IBM Plex Mono',monospace;color:var(--fg-faint);margin-top:6px;letter-spacing:.04em}
.cx-row-side{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:7px;text-align:right}
.cx-row-side .cx-row-mono{margin-top:0}
.cx-gov{display:block;margin-top:8px;font:400 11px/1.6 'IBM Plex Mono',monospace;color:var(--sev-econ);letter-spacing:.04em}
.cx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.cx-card{display:flex;flex-direction:column;gap:8px;border:3px solid var(--hair);padding:16px;cursor:pointer;
  transition:border-color .15s,background-color .15s}
.cx-card:hover{border-color:var(--fg-dim)}
.cx-card.on{border-color:var(--sel);background:color-mix(in srgb, var(--sel) 5%, transparent)}
.cx-count-n{font:700 18px 'IBM Plex Mono',monospace;color:var(--fg)}
.cx-card-static{display:flex;flex-direction:column;gap:10px;border:3px solid var(--hair);padding:16px}
.cx-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.cx-card-name{font:600 16px/1.3 'Archivo',sans-serif;color:var(--fg)}
.cx-use{padding:10px 14px;font-size:10px;text-align:center;width:100%}

/* ============ SLIDERS / STEPPER ============ */
.cx-slider{margin-bottom:18px}
.cx-slider-head{display:flex;justify-content:space-between;gap:14px;margin-bottom:8px;
  font:500 10.5px 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint)}
.cx-slider-head .v{color:var(--fg);letter-spacing:.04em;text-transform:none}
.cx-stepper{display:flex;align-items:stretch;border:3px solid var(--hair);width:fit-content;margin-top:6px}
.cx-stepper button{width:44px;min-height:44px;background:none;border:none;color:var(--fg);
  font:500 18px 'IBM Plex Mono',monospace;cursor:pointer;transition:background-color .15s,color .15s}
.cx-stepper button:hover{background:var(--bg-raise);color:var(--sel)}
.cx-stepper input{width:80px;text-align:center;background:none;border:none;border-left:3px solid var(--hair);
  border-right:3px solid var(--hair);color:var(--fg);font:500 15px 'IBM Plex Mono',monospace;padding:10px 0;
  border-radius:0;-webkit-appearance:none;appearance:none}
.cx-budget-status{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.cx-budget-status .cx-row-mono{margin-top:0}

/* ============ RECOMMENDATION PANEL ============ */
.cx-recs{border-top:3px solid var(--hair);margin-top:34px;padding-top:24px}
.cx-recs .eyebrow{margin-bottom:12px}
.cx-recs-explain{font-size:16px;line-height:1.6;color:var(--fg-dim);margin-bottom:18px;max-width:70ch}

/* ============ VRAM BAR / METRIC TILES ============ */
.cx-vram{margin:24px 0}
.cx-vram-track{height:12px;border:3px solid var(--hair);background:var(--bg-raise);position:relative}
.cx-vram-fill{position:absolute;top:0;left:0;bottom:0;transition:width .2s ease}
html.rm .cx-vram-fill{transition:none}
.cx-vram-fill.ok{background:var(--sev-policy)}
.cx-vram-fill.warn{background:var(--accent)}
.cx-vram-fill.danger{background:var(--sev-high)}
.cx-vram-labels{display:flex;justify-content:space-between;gap:14px;font:400 10.5px 'IBM Plex Mono',monospace;
  color:var(--fg-faint);margin-top:8px;letter-spacing:.04em}
.cx-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.cx-tile{border:3px solid var(--hair);padding:14px 16px}
.cx-tile .k{display:block;font:500 9.5px 'IBM Plex Mono',monospace;letter-spacing:.16em;text-transform:uppercase;
  color:var(--fg-faint);margin-bottom:8px}
.cx-tile .v{font:600 16px 'IBM Plex Mono',monospace;color:var(--fg)}

/* ============ WARNING BLOCKS ============ */
.cx-warnblock{border:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 6%, transparent);
  padding:16px 18px;margin-top:18px}
.cx-warnblock.danger{border-color:var(--sev-high);background:color-mix(in srgb, var(--sev-high) 6%, transparent)}
.cx-warnblock h4{font:600 15px 'Archivo',sans-serif;margin-bottom:10px}
.cx-warnblock ul{list-style:none}
.cx-warnblock li{font:400 12px/1.6 'IBM Plex Mono',monospace;color:var(--fg-dim);padding:6px 0;border-top:3px solid var(--hair-soft)}
.cx-warnblock li:first-child{border-top:none}

/* ============ SOVEREIGNTY ============ */
.cx-sov-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
/* radio sits at the title's left, not stacked above it */
.cx-sov-grid .cx-card{position:relative;padding-left:46px}
.cx-sov-grid .cx-card input[type="radio"]{position:absolute;left:16px;top:19px;margin:0}
.cx-bullets{list-style:none;margin-top:10px}
.cx-bullets li{font:400 11px/1.6 'IBM Plex Mono',monospace;color:var(--fg-dim);padding:6px 0;border-top:3px solid var(--hair-soft)}
.cx-bullets li:first-child{border-top:none}
.cx-overflow{border:3px solid var(--hair);padding:16px;margin-top:22px}
.cx-overflow.disabled{opacity:.75}
.cx-overflow-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:10px}
.cx-overflow-head .cx-row-title{margin:0}
.cx-check{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.5;color:var(--fg-dim);cursor:pointer}
.cx-check input{accent-color:var(--sel);width:18px;height:18px;margin:1px 0 0;flex:none}
.cx-origin{border:3px solid var(--hair);overflow-x:auto}
.cx-orow{display:grid;grid-template-columns:1.1fr 1.3fr 1.5fr .7fr 1.3fr;gap:14px;align-items:center;
  padding:12px 16px;border-top:3px solid var(--hair-soft);font:400 11.5px/1.5 'IBM Plex Mono',monospace;
  color:var(--fg-dim);min-width:680px}
.cx-orow.head{border-top:none;color:var(--fg-faint);text-transform:uppercase;font-size:9.5px;letter-spacing:.14em}
.cx-cons{list-style:none;border-top:3px solid var(--hair)}
.cx-cons li{font:400 12px/1.6 'IBM Plex Mono',monospace;color:var(--fg-dim);padding:9px 0;border-bottom:3px solid var(--hair-soft)}
.cx-chips-row{display:flex;flex-wrap:wrap;gap:10px}
.cx-chip{display:inline-flex;align-items:center;gap:9px;border:3px solid var(--hair);padding:9px 14px;
  font:500 11px 'IBM Plex Mono',monospace;color:var(--fg);letter-spacing:.04em}
.cx-chip .cx-ico{color:var(--sev-policy)}

/* ============ COST ============ */
.cx-banner{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;
  border:3px solid var(--fg);background:var(--bg-raise);padding:18px 20px;margin-bottom:28px}
.cx-banner-k{display:block;font:500 10px 'IBM Plex Mono',monospace;letter-spacing:.18em;color:var(--fg-faint);
  text-transform:uppercase;margin-bottom:8px}
.cx-banner-t{display:block;font:600 17px/1.3 'Archivo',sans-serif;color:var(--fg)}
.cx-sliders-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 26px}
.cx-disclosure{margin-top:6px}
.cx-disclosure > button{display:flex;align-items:center;gap:10px;background:none;border:3px solid var(--hair);
  color:var(--fg-dim);font:500 11px 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;
  padding:10px 16px;cursor:pointer;transition:color .15s,border-color .15s}
.cx-disclosure > button:hover{color:var(--fg);border-color:var(--fg-dim)}
.cx-disclosure .chev{display:inline-block;transition:transform .2s ease}
html.rm .cx-disclosure .chev{transition:none}
.cx-disclosure > button[aria-expanded="true"] .chev{transform:rotate(90deg)}
.cx-disclosure-panel{border:3px solid var(--hair);border-top:none;padding:20px 18px 6px}
.cx-queries{font:500 12px 'IBM Plex Mono',monospace;letter-spacing:.06em;color:var(--fg);margin:22px 0 4px}
/* cost comparison as an informational table, not UI cards */
.cx-costtable{border-bottom:3px solid var(--hair-soft)}
.cx-costrow{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;
  border-top:3px solid var(--hair-soft);padding:13px 4px}
.cx-costrow-head{border-top:3px solid var(--hair);padding:8px 4px;
  font:500 9.5px 'IBM Plex Mono',monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-faint)}
.cx-costrow-head .cx-costrow-r{flex-direction:row;gap:26px}
.cx-costrow.app{border-top-color:var(--sel);border-bottom:3px solid var(--sel);
  background:color-mix(in srgb, var(--sel) 7%, transparent);padding-left:12px;padding-right:12px}
.cx-costrow-l{min-width:0}
.cx-caveat{display:block;font:400 10.5px/1.5 'IBM Plex Mono',monospace;color:var(--fg-faint);margin-top:6px;letter-spacing:.03em}
.cx-costrow-r{flex:none;text-align:right;display:flex;flex-direction:column;gap:6px}
.cx-annual{font:600 18px 'IBM Plex Mono',monospace;color:var(--fg)}
.cx-per{font:400 10px 'IBM Plex Mono',monospace;color:var(--fg-faint);letter-spacing:.1em}
.cx-costrow-r .cx-row-mono{margin-top:0;text-align:right}
.cx-scale{border:3px solid var(--hair)}
.cx-scale-row{display:grid;grid-template-columns:36px 1fr;gap:4px 14px;padding:12px 16px;border-top:3px solid var(--hair-soft);
  font:400 11.5px/1.5 'IBM Plex Mono',monospace}
.cx-scale-row:first-child{border-top:none}
.cx-scale-n{color:var(--accent);font-weight:600;grid-row:span 2}
.cx-scale-l{color:var(--fg)}
.cx-scale-d{color:var(--fg-faint);grid-column:2}

/* ============ COMPARE ============ */
.cx-compare-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.cx-builds{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.cx-build{display:flex;flex-direction:column;gap:10px;border:3px solid var(--hair);padding:16px}
.cx-build.on{border-color:var(--sel)}
.cx-build-sel{display:flex;align-items:center;gap:10px;cursor:pointer;
  font:500 10px 'IBM Plex Mono',monospace;letter-spacing:.14em;color:var(--fg-faint)}
.cx-build-sel input{accent-color:var(--sel);width:16px;height:16px;margin:0}
.cx-name-input{width:100%;background:none;border:none;border-bottom:3px solid var(--hair);color:var(--fg);
  font:600 16px/1.3 'Archivo',sans-serif;padding:4px 0;border-radius:0}
.cx-name-input:focus{outline:none;border-bottom-color:var(--sel)}
.cx-build-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.cx-mini{background:none;border:3px solid var(--hair);color:var(--fg-dim);cursor:pointer;
  font:500 9.5px 'IBM Plex Mono',monospace;letter-spacing:.12em;text-transform:uppercase;
  padding:8px 12px;transition:color .15s,border-color .15s}
.cx-mini:hover{color:var(--fg);border-color:var(--fg)}
.cx-mini.danger{color:var(--sev-high)}
.cx-mini.danger:hover{border-color:var(--sev-high)}
.cx-empty{border:2px dashed var(--hair);padding:28px;text-align:center;
  font:400 11.5px 'IBM Plex Mono',monospace;color:var(--fg-faint);letter-spacing:.06em;margin-top:22px}
.cx-tablewrap{overflow-x:auto;border:3px solid var(--hair);margin-top:22px}
.cx-table{border-collapse:collapse;width:100%;min-width:520px;font:400 12px/1.5 'IBM Plex Mono',monospace}
.cx-table th,.cx-table td{padding:10px 12px;text-align:left;border-top:3px solid var(--hair-soft);
  border-left:3px solid var(--hair-soft);vertical-align:top}
.cx-table th:first-child,.cx-table td:first-child{border-left:none}
.cx-table thead th{border-top:none;color:var(--fg);font-weight:600;letter-spacing:.04em}
.cx-table tbody th{color:var(--fg-faint);text-transform:uppercase;font-size:10px;letter-spacing:.12em;font-weight:500;white-space:nowrap}
.cx-table td.diff{color:var(--fg)}
.cx-table td.same{color:var(--fg-faint)}
.cx-scen-btns{display:flex;gap:8px;flex-wrap:wrap}
.cx-preview{border:3px solid var(--sel);padding:18px;margin-top:14px}
.cx-preview-head{font:600 16px 'Archivo',sans-serif;margin-bottom:14px}
.cx-preview-head span{font:400 12px 'IBM Plex Mono',monospace;color:var(--fg-dim)}
.cx-preview .btn{margin-top:16px}

/* ============ KEY-VALUE ROWS ============ */
.cx-kvs{border-top:3px solid var(--hair)}
.cx-kv{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:3px solid var(--hair-soft);
  font:400 12px/1.5 'IBM Plex Mono',monospace}
.cx-kv .k{color:var(--fg-faint);text-transform:uppercase;font-size:10px;letter-spacing:.12em;flex:none}
.cx-kv .v{color:var(--fg);text-align:right}

/* ============ REPORT ============ */
.cx-report-controls{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:24px}
.cx-report-controls .cx-field{flex:1;min-width:220px}
.cx-text-input{width:100%;font:400 14px/1.5 'IBM Plex Mono',monospace;color:var(--fg);
  background:var(--bg-raise);border:3px solid var(--hair);padding:12px 14px;border-radius:0;
  -webkit-appearance:none;appearance:none}
.cx-text-input:focus{outline:3px solid var(--sel);outline-offset:2px;border-color:var(--fg)}
.cx-report{background:var(--band-bg);color:var(--band-fg);border:3px solid var(--band-hair);
  padding:clamp(22px,3vw,40px);font:400 12.5px/1.6 'IBM Plex Mono',monospace}
.cx-report .r-head{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;
  padding-bottom:18px;border-bottom:3px solid var(--band-hair)}
.r-word{font:400 22px 'Archivo',sans-serif;letter-spacing:-.01em;color:var(--band-fg)}
.r-word b{font-weight:700;text-decoration:underline solid var(--accent) 3px;text-underline-offset:5px}
.r-tag{display:block;font:500 9px 'IBM Plex Mono',monospace;letter-spacing:.2em;color:var(--band-dim);margin-top:8px}
.r-meta{display:flex;flex-direction:column;gap:5px;text-align:right;font:400 11px/1.5 'IBM Plex Mono',monospace;
  letter-spacing:.08em;color:var(--band-dim)}
.r-sec{margin-top:22px;border-top:3px solid var(--band-hair);padding-top:14px}
.r-sec h3{font:500 10.5px 'IBM Plex Mono',monospace;letter-spacing:.18em;text-transform:uppercase;
  color:var(--band-dim);margin-bottom:12px}
.r-org{font:600 18px 'Archivo',sans-serif;color:var(--band-fg)}
.r-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;border:3px solid var(--band-hair)}
.r-cell{padding:12px 14px;border-left:3px solid var(--band-hair-soft)}
.r-cell:first-child{border-left:none}
.r-kv{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-top:3px solid var(--band-hair-soft)}
.r-kv:first-of-type{border-top:none}
.r-kv .rk,.r-cell .rk{color:var(--band-dim);text-transform:uppercase;font-size:9.5px;letter-spacing:.12em;display:block}
.r-kv .rv,.r-cell .rv{color:var(--band-fg);text-align:right}
.r-cell .rv{display:block;text-align:left;margin-top:5px}
.r-list{list-style:none;margin-top:6px}
.r-list li{color:var(--band-dim);padding:6px 0;border-top:3px solid var(--band-hair-soft)}
.r-list li:first-child{border-top:none}
.r-sigs{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:34px}
.r-rule{display:block;border-bottom:3px solid var(--band-fg);height:34px}
.r-sig-k{display:block;font:500 9px 'IBM Plex Mono',monospace;letter-spacing:.16em;color:var(--band-dim);margin-top:8px}
.r-foot{margin-top:26px;border-top:3px solid var(--band-hair);padding-top:12px;
  font:400 9px/1.7 'IBM Plex Mono',monospace;letter-spacing:.12em;color:var(--band-dim)}
.cx-versions-list{list-style:none;border-top:3px solid var(--hair)}
.cx-versions-list li{font:400 11px/1.6 'IBM Plex Mono',monospace;color:var(--fg-dim);
  padding:8px 0;border-bottom:3px solid var(--hair-soft);letter-spacing:.04em}

/* ============ SUMMARY COLUMN ============ */
.cx-summarycol{position:sticky;top:96px;border:3px solid var(--fg);padding:18px;
  background:color-mix(in srgb, var(--bg) 60%, transparent)}
.cx-sum-title{font:500 10px 'IBM Plex Mono',monospace;letter-spacing:.2em;color:var(--fg-faint);
  text-transform:uppercase;margin-bottom:14px}
.cx-sum-chassis{font:600 18px/1.2 'Archivo',sans-serif;margin-top:14px}
.cx-sum-accel{font:400 11px 'IBM Plex Mono',monospace;color:var(--fg-dim);margin-top:4px;letter-spacing:.04em}
.cx-sum-grid{display:grid;grid-template-columns:1fr 1fr;border:3px solid var(--hair);margin-top:14px}
.cx-sum-metric{padding:10px 12px;border-top:3px solid var(--hair-soft)}
.cx-sum-metric:nth-child(-n+2){border-top:none}
.cx-sum-metric:nth-child(even){border-left:3px solid var(--hair-soft)}
.cx-sum-metric .k{display:block;font:500 9px 'IBM Plex Mono',monospace;letter-spacing:.14em;
  text-transform:uppercase;color:var(--fg-faint);margin-bottom:6px}
.cx-sum-metric .v{font:600 13px 'IBM Plex Mono',monospace;color:var(--fg)}
.cx-sum-open{width:100%;margin-top:14px;padding:12px 14px;font-size:10.5px;text-align:center}

/* ============ BLUEPRINT CHASSIS ============ */
.cx-bp{border:3px solid var(--hair);padding:10px;background:var(--bg)}
.cx-bp-cap{display:flex;justify-content:space-between;gap:10px;font:500 9px 'IBM Plex Mono',monospace;
  letter-spacing:.14em;color:var(--fg-faint);margin-bottom:8px;text-transform:uppercase}
.cx-bp-body{border:3px solid var(--fg);padding:8px;display:flex;gap:4px;background:var(--bg-raise)}
.cx-bp-bay{flex:1;height:34px;border:1.5px solid var(--fg-dim);
  background:repeating-linear-gradient(45deg, var(--hair-soft), var(--hair-soft) 2px, transparent 2px, transparent 6px)}
.cx-bp.big .cx-bp-bay{height:70px}
.cx-bp-vents{display:flex;gap:3px;margin-top:8px}
.cx-bp-vents span{flex:1;height:3px;background:var(--hair)}

/* ============ DRAWERS ============ */
.cx-scrim{position:fixed;inset:0;z-index:92;background:color-mix(in srgb, var(--bg) 62%, transparent)}
.cx-drawer{position:fixed;top:0;right:0;bottom:0;z-index:95;width:min(440px,94vw);
  background:var(--bg-raise);border-left:3px solid var(--fg);
  transform:translateX(102%);transition:transform .3s cubic-bezier(.2,.6,.2,1);
  display:flex;flex-direction:column;padding:22px clamp(18px,3vw,28px) 26px;overflow-y:auto}
.cx-drawer.open{transform:none}
html.rm .cx-drawer{transition:none}
.cx-drawer-head{display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding-bottom:16px;border-bottom:3px solid var(--hair);
  font:500 11px 'IBM Plex Mono',monospace;letter-spacing:.2em;color:var(--fg-faint);text-transform:uppercase}
  padding:10px 0 0;text-transform:uppercase}
.cx-drawer-body{padding-top:18px}
.cx-drawer-body .cx-bp{margin-bottom:18px}
.cx-drawer-body .cx-kvs{margin-top:18px}
.cx-drawer-foot{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.cx-drawer-foot .btn{text-align:center;padding:13px 16px;font-size:10.5px}

/* ============ RESPONSIVE ============ */
@media (max-width:1120px){
  .cx-layout{grid-template-columns:1fr}
  .cx-rail{position:static;display:flex;align-items:stretch;min-width:0}
  .cx-rail-head{display:none}
  .cx-rail-stages{flex-direction:row;overflow-x:auto;border-top:none;flex:1;min-width:0}
  .cx-stage-btn{flex:none;width:auto;min-width:148px;border-top:none;border-left:3px solid var(--hair-soft)}
  .cx-stage-btn:first-child{border-left:none}
  .cx-stage-btn.on::before{top:auto;left:12px;right:12px;bottom:0;width:auto;height:3px}
  .cx-rail-foot{border-top:none;border-left:3px solid var(--hair);display:flex;align-items:center}
  .cx-help{width:auto;white-space:nowrap}
  .cx-summarycol{position:static}
}
@media (max-width:640px){
  .cx-hero{grid-template-columns:1fr}
  .cx-hero h1{margin-bottom:18px}
  .cx-next .btn{width:100%;text-align:center}
  .cx-stage-btn{min-width:0}
  .cx-sb-desc{display:none}
  .cx-grid{grid-template-columns:1fr}
  .cx-row{flex-wrap:wrap}
  .cx-row-side{flex-direction:row;align-items:center;width:100%;justify-content:flex-start;gap:12px;text-align:left}
  .cx-costrow-r{text-align:left}
  .cx-costrow-r .cx-row-mono{text-align:left}
  .r-sigs{grid-template-columns:1fr}
  .cx-report-controls{align-items:stretch;flex-direction:column}
  .cx-report-controls .btn{text-align:center}
  /* iOS: inputs under 16px trigger focus zoom */
  .cx-text-input,.cx-name-input,.cx-stepper input{font-size:16px}
}

/* ============ PRINT ============ */
@page{size:letter;margin:12mm}
@media print{
  body{padding-bottom:0 !important;overflow:visible !important}
  .skip,.nav,.menu-btn,.menu-scrim,.menu-panel,#field,.vignette,#concierge,#gateway,footer,
  .cx-hero,.cx-rail,.cx-summarycol,.cx-report-controls,.cx-versions,.cx-scrim,.cx-drawer{display:none !important}
  .page{filter:none !important}
  .cx-stage{display:none !important}
  #stage-report{display:block !important}
  .cx-layout{display:block}
  .cx-section{padding:0}
  .main-col{padding:0}
  .cx-report{
    --band-bg:#FFFFFF;--band-fg:#111111;--band-dim:#444444;
    --band-hair:rgba(0,0,0,.45);--band-hair-soft:rgba(0,0,0,.2);
    --accent:#AE3505;
    border:3px solid #999;padding:0}
}

/* ============ LINE WEIGHT — this page runs 50% heavier (user's call, 2026-08-01) ============ */
.btn{border-width:3px}
.seg,.seg button{border-width:3px}
.seg button{border-left-width:3px}
.chip{border-width:3px}
input[type="radio"]{width:21px;height:21px}
input[type="checkbox"]{width:19px;height:19px}
@media (max-width:640px){
  .seg button{border-top-width:3px}
}

/* ============ SELECTED STATES — reversed for visibility (user's call, 2026-08-01) ============ */
.cx-tab.on{background:var(--sel);border-color:var(--sel);color:var(--sel-ink)}
.cx-row.on,.cx-card.on,.cx-build.on{background:var(--sel);border-color:var(--sel);color:var(--sel-ink)}
.cx-row.on .cx-row-title,.cx-card.on .cx-row-title,.cx-card.on .cx-count-n,
.cx-row.on .cx-price,.cx-card.on .cx-price,.cx-build.on .cx-price{color:var(--sel-ink)}
.cx-row.on .cx-row-mono,.cx-row.on .cx-row-desc,.cx-card.on .cx-row-mono,.cx-card.on .cx-row-desc,
.cx-row.on .cx-gov,.cx-build.on .cx-row-mono,.cx-build.on .cx-card-static{color:color-mix(in srgb, var(--sel-ink) 78%, transparent)}
.cx-row.on .cx-pill,.cx-card.on .cx-pill{border-color:var(--sel-ink);color:var(--sel-ink)}
.cx-row.on input[type="radio"],.cx-card.on input[type="radio"],.cx-build.on input[type="checkbox"]{accent-color:var(--sel-ink)}
.cx-build.on .cx-name-input{color:var(--sel-ink);border-bottom-color:color-mix(in srgb, var(--sel-ink) 55%, transparent)}
.cx-build.on .cx-name-input:focus{border-bottom-color:var(--sel-ink)}
.cx-build.on .btn-ghost{border-color:color-mix(in srgb, var(--sel-ink) 65%, transparent);color:var(--sel-ink)}
.cx-card.on .cx-bullets li{color:color-mix(in srgb, var(--sel-ink) 85%, transparent);
  border-top-color:color-mix(in srgb, var(--sel-ink) 35%, transparent)}
.cx-build.on .cx-build-sel span{color:color-mix(in srgb, var(--sel-ink) 78%, transparent)}
.cx-build.on .cx-mini{border-color:color-mix(in srgb, var(--sel-ink) 65%, transparent);color:var(--sel-ink)}
.cx-build.on .cx-mini:hover{border-color:var(--sel-ink);color:var(--sel-ink)}
.cx-build.on .cx-mini.danger{color:var(--sel-ink);border-color:var(--sel-ink)}
.cx-build.on .cx-mini.danger:hover{background:var(--sev-high);border-color:var(--sev-high);color:#FFFFFF}
.cx-build.on .btn-ghost:hover{border-color:var(--sel-ink);color:var(--sel-ink)}
