/* Components. Reads tokens.css only. Phone first (360 px), desktop from 900 px. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:72px;background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.5 var(--f-sans);overflow-x:hidden}
@media (min-width:900px){body{font-size:14px}}
img,svg{max-width:100%;height:auto}
[hidden]{display:none!important}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
h1,h2,h3{margin:0;text-wrap:balance}
p,ul,ol,dl,dd{margin:0}
.tnum{font-variant-numeric:tabular-nums}
.mut{color:var(--ink-2)}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.wrap.narrow{max-width:1056px}
@media (min-width:900px){.wrap{padding-inline:var(--gutter-lg)}}
.cap{font:500 11px/1.3 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--ink);color:var(--paper);padding:8px 12px}
.skip:focus{left:8px;top:8px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}

/* preview banner (non-production builds only) */
.prevbar{background:var(--paper-2);border-bottom:1px solid var(--rule)}
.prevbar .wrap{display:flex;flex-wrap:wrap;gap:2px 6px;padding-block:5px;font:500 11px/1.4 var(--f-mono);letter-spacing:.03em;color:var(--ink-2)}
.prevbar b{color:var(--red);font-weight:600}

/* header */
.hdr{position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:1px solid var(--rule)}
.hdr-in{display:flex;align-items:center;gap:8px;height:var(--hdr)}
.wm{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--ink);flex:none}
.wm-num{font:600 13px/1 var(--f-mono);border:1.5px solid var(--ink);padding:4px 5px 3px}
.wm-txt{font:600 15px/1 var(--f-sans);letter-spacing:.01em}
.nav{display:none;gap:2px}
.nav a{padding:8px 10px;font-size:14px;text-decoration:none;color:var(--ink-2);border-radius:var(--radius)}
.nav a:hover,.nav a[aria-current=page]{color:var(--ink);background:var(--paper-2)}
.hdr-sp{flex:1}
.menu-btn{min-height:var(--tap);padding:6px 8px;border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--paper);font-size:14px;cursor:pointer}
.menu{border-top:1px solid var(--rule);background:var(--paper)}
.menu a{display:block;padding:12px 16px;border-bottom:1px solid var(--rule);text-decoration:none;font-size:15px}
@media (min-width:900px){.nav{display:flex}.menu-btn,.menu{display:none!important}.hdr-in{gap:16px}.wm{gap:8px}.wm-txt{font-size:16px}}
@media (max-width:380px){.btn-hdr{padding-inline:10px;font-size:13px}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px 16px;border-radius:var(--radius);border:1px solid var(--ink);background:var(--paper);color:var(--ink);font:500 14px/1.2 var(--f-sans);text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--paper-2)}
.btn-red{background:var(--red);border-color:var(--red);color:var(--on-red)}
.btn-red:hover{background:var(--red-dark);border-color:var(--red-dark)}
.btn-sm{min-height:32px;padding:4px 10px;font-size:13px}
.btn-wide{width:100%}
.btn .soft{font-weight:400;opacity:.85}
@media (max-width:899px){.btn{min-height:var(--tap)}.btn-sm{min-height:36px}}
.linkish{background:none;border:0;padding:0;text-decoration:underline;text-underline-offset:2px;cursor:pointer;font:inherit;color:inherit}

/* hero */
.hero{display:grid;gap:20px;padding-block:20px 28px;grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "card" "promise" "sample"}
.hero .hero-head{grid-area:head;min-width:0}
.hero .hero-card{grid-area:card;min-width:0}
.hero .hero-sample{grid-area:sample;min-width:0}
.hero .hero-promise{grid-area:promise;min-width:0}
.hero h1{font:600 26px/1.13 var(--f-sans);letter-spacing:-.01em}
.lede{margin-top:8px;color:var(--ink-2);max-width:62ch}
.hero-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
@media (max-width:899px){
  .lede-more{display:none}
  /* phone: price, then the button and the email route, then the picks */
  [data-hero].tb{display:flex;flex-direction:column}
  [data-hero] .tb-head{order:1}[data-hero] .tb-price{order:2}
  [data-hero] .tb-foot{order:3;border-bottom:1px solid var(--ink)}
  [data-hero] .tb-row{order:4}[data-hero] .tb-note{order:5}
  .pb-wide{display:none}
}
@media (min-width:900px){
  .hero{grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-rows:auto auto 1fr;grid-template-areas:"head card" "promise card" "sample card";column-gap:48px;row-gap:24px;padding-block:36px 40px;align-items:start}
  .hero h1{font-size:40px;line-height:1.08}
  .lede{font-size:16px;margin-top:12px}
  .hero-btns{margin-top:16px}
}
.promise{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.promise li{display:flex;gap:8px;align-items:baseline;padding:8px 10px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);font-size:13px;line-height:1.35}
.promise li::before{content:"";flex:none;width:6px;height:6px;background:var(--red);transform:translateY(-1px)}

/* title block (hero card and price panel share it) */
.tb{border:1.5px solid var(--ink);background:var(--paper)}
.tb-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 12px;background:var(--paper-2);border-bottom:1px solid var(--ink)}
.tb-head .cap{color:var(--ink)}
.tag-sample{font:500 10px/1 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--red);border:1px solid var(--red);padding:3px 5px;border-radius:var(--radius-sm);white-space:nowrap;flex:none}
.tb-price{padding:12px}
.p-num{font:600 30px/1.1 var(--f-sans);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.p-num.is-text{font-size:21px;line-height:1.2}
.p-num .fixed{font:500 11px/1 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--ink);padding:3px 5px;border-radius:var(--radius-sm);vertical-align:middle;margin-left:8px}
.p-sub{margin-top:4px;color:var(--ink-2);font-size:13px}
.p-moved{display:flex;gap:8px;align-items:baseline;margin-top:8px;font:400 12.5px/1.4 var(--f-mono);color:var(--ink)}
.p-moved .d{color:var(--red);font-weight:600;white-space:nowrap}
.p-moved .t{min-width:0}
.tb-row{display:grid;grid-template-columns:78px minmax(0,1fr);border-top:1px solid var(--rule)}
.tb-k{padding:10px;font:500 11px/1.3 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);background:var(--paper-2);border-right:1px solid var(--rule)}
.tb-v{padding:8px 10px;min-width:0}
.tb-foot{padding:12px;border-top:1px solid var(--ink);display:grid;gap:10px}
.mailline{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:13px;color:var(--ink-2)}
.mailaddr{font:500 13px/1.3 var(--f-mono);color:var(--ink);user-select:all;overflow-wrap:anywhere}
.tb-note{padding:8px 12px 10px;border-top:1px solid var(--rule);font-size:12px;color:var(--ink-2)}
.seg,.seg4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
@media (min-width:900px){.seg,.seg4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.sel{width:100%;min-height:40px;padding:6px 10px;border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--paper);font-size:14px}
@media (max-width:899px){.sel{min-height:var(--tap);font-size:16px}}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips.cards{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}
@media (min-width:900px){.chips.cards.c2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.chip{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:6px 12px;border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--paper);color:var(--ink);font:400 14px/1.25 var(--f-sans);cursor:pointer;text-align:center}
.chip:hover{border-color:var(--ink)}
.chip.is-on{background:var(--paper-2);border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);font-weight:500}
.chip.is-on::after{content:"";position:absolute;right:0;bottom:0;border-style:solid;border-width:0 0 9px 9px;border-color:transparent transparent var(--ink) transparent}
.chip.is-assumed{border-style:dashed;border-color:var(--ink)}
.chip:disabled{color:var(--ink-3);background:var(--paper-2);border-color:var(--rule);cursor:not-allowed;text-decoration:line-through}
.mk-plus{font:600 11px/1 var(--f-mono);color:var(--ink-3);text-decoration:none}
.mk-ask{font:500 10px/1 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--red);border:1px solid var(--red);border-radius:var(--radius-sm);padding:2px 4px;text-decoration:none}
.chip .auto{font:400 11px/1 var(--f-mono);color:var(--ink-2)}
.chip-card{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;width:100%;padding:8px 12px;text-align:left}
.chip-card .cc-t{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.chip-card .cc-d{font-size:12px;font-weight:400;color:var(--ink-2)}
.seg .chip,.seg4 .chip{width:100%;padding-inline:6px}
@media (min-width:900px){.seg .chip,.seg4 .chip{font-size:13px;padding-inline:4px}}
@media (max-width:899px){.chip{min-height:var(--tap);font-size:15px}.chips:not(.cards) .chip{flex:1 1 auto}.chip-card .cc-d{font-size:13px}}

/* sample finding register */
.sx{border-top:1.5px solid var(--ink)}
.sx-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 16px;padding-block:10px 8px}
.sx-head h2{font:600 16px/1.3 var(--f-sans)}
.sx-head span{font-size:12px;color:var(--ink-2)}
.reg-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.dt{width:100%;border-collapse:collapse;font-size:13px;line-height:1.4}
.dt th{text-align:left;font:500 10.5px/1.3 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);background:var(--paper-2);padding:7px 8px;border-bottom:1px solid var(--rule-strong);white-space:nowrap}
.dt td{padding:9px 8px;border-bottom:1px solid var(--rule);vertical-align:top}
.dt .c-id{font:500 12px/1.4 var(--f-mono);color:var(--ink-2);white-space:nowrap}
.dt .c-loc{font:400 12px/1.4 var(--f-mono)}
.dt .c-loc span{display:block;color:var(--ink-2)}
.dt .c-ev{font-size:12.5px;color:var(--ink-2)}
.dt .c-lim{font-size:12px;color:var(--ink-2)}
.sev{display:inline-block;font:600 10px/1 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;padding:4px 5px;border-radius:var(--radius-sm);border:1px solid var(--ink);white-space:nowrap}
.sev-critical{background:var(--red);border-color:var(--red);color:var(--on-red)}
.sev-major{background:var(--ink);color:var(--paper)}
.sev-minor,.sev-info{color:var(--ink)}
.sev-info{border-style:dashed}
.sx-foot{display:flex;flex-wrap:wrap;gap:4px 16px;padding-block:10px;font-size:13px;color:var(--ink-2)}
.sx-pending{padding:14px;border:1px dashed var(--rule-strong);background:var(--paper-2);font-size:13px;color:var(--ink-2)}
@media (max-width:699px){
  .dt thead{display:none}
  .dt,.dt tbody,.dt tr,.dt td{display:block}
  .dt tr{padding-block:10px;border-bottom:1px solid var(--rule)}
  .dt td{border:0;padding:2px 0}
  .dt td.c-id,.dt td.c-sev{display:inline-block;vertical-align:middle;margin-right:8px}
  .dt td[data-k]::before{content:attr(data-k) ": ";font-weight:600;color:var(--ink)}
}

/* proof strip */
.proof-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1.5px solid var(--ink);border-bottom:1px solid var(--rule)}
.proof-grid>div{padding:12px 12px 14px;border-bottom:1px solid var(--rule)}
.proof-grid>div:nth-child(odd){border-right:1px solid var(--rule)}
.proof-grid>div:nth-last-child(-n+2){border-bottom:0}
@media (min-width:900px){.proof-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.proof-grid>div{border-bottom:0;border-right:1px solid var(--rule)}.proof-grid>div:last-child{border-right:0}}
.proof dt{font:500 10.5px/1.35 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.proof dd{margin-top:6px;font-size:14px;color:var(--ink-2)}
.proof .big{font:600 28px/1 var(--f-sans);color:var(--ink);margin-right:4px;font-variant-numeric:tabular-nums}

/* sections */
.sec{padding-block:36px}
.sec-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 24px;margin-bottom:14px}
.sec-head h2{font:600 22px/1.2 var(--f-sans)}
.sec-head p{color:var(--ink-2);max-width:62ch}

/* start doors (entry by readiness) */
.start-grid{display:grid;grid-template-columns:minmax(0,1fr);border-top:1.5px solid var(--ink);border-left:1px solid var(--rule)}
@media (min-width:700px){.start-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.start{display:grid;gap:8px;align-content:start;padding:14px 16px 16px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.start h3{font:600 17px/1.25 var(--f-sans)}
.start p{font-size:14px;color:var(--ink-2)}
.start .btn{justify-self:start}

/* service doors */
.doors-grid{display:grid;grid-template-columns:minmax(0,1fr);border-top:1.5px solid var(--ink);border-left:1px solid var(--rule)}
@media (min-width:700px){.doors-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.doors-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.door{display:flex;flex-direction:column;padding:14px 16px 16px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.door-hook{font:500 12px/1.4 var(--f-mono);color:var(--ink-2);margin-bottom:6px}
.door h3{font:600 18px/1.2 var(--f-sans);margin-bottom:6px}
.door h3 a{text-decoration:none}
.door h3 a:hover{text-decoration:underline}
.door-line{font-size:14px;margin-bottom:10px}
.door-list{list-style:none;padding:0;margin-bottom:14px;font-size:13px;color:var(--ink-2)}
.door-list li{display:flex;gap:8px;padding-block:2px}
.door-list li::before{content:"\2013";color:var(--ink-3)}
.spec{border-top:1px solid var(--rule);margin-bottom:14px}
.spec>div{display:grid;grid-template-columns:minmax(0,104px) minmax(0,1fr);gap:8px;padding-block:6px;border-bottom:1px solid var(--rule);font-size:13px}
.spec dt{color:var(--ink-2)}
.spec dd{font-variant-numeric:tabular-nums}
.spec dd.b{font-weight:600}
.door .btn{margin-top:auto}
.doors-note{margin-top:10px;font-size:13px;color:var(--ink-2)}

/* promise split + firm quote */
.fq-box{border:1.5px solid var(--ink)}
.fq-title{padding:18px 20px;background:var(--paper-2);border-bottom:1px solid var(--ink)}
.fq-title h2{font:600 22px/1.2 var(--f-sans)}
.fq-title p{margin-top:6px;color:var(--ink-2);max-width:70ch}
.fq-cols{display:grid;grid-template-columns:minmax(0,1fr)}
.fq-col{padding:16px 20px;border-top:1px solid var(--rule);display:grid;gap:10px;align-content:start}
.fq-col:first-child{border-top:0}
@media (min-width:900px){.fq-cols{grid-template-columns:repeat(3,minmax(0,1fr))}.fq-col{border-top:0;border-left:1px solid var(--rule)}.fq-col:first-child{border-left:0}}
.fq-col h3{font:500 11px/1.3 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.kv{display:grid;gap:0}
.kv>div{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;padding-block:7px;border-bottom:1px solid var(--rule);font-size:14px}
.kv>div:last-child{border-bottom:0}
.kv dt{font-weight:600;font-size:13px}
.kv dd{color:var(--ink-2)}
.fq-list{list-style:none;padding:0;font-size:14px}
.fq-list li{padding-block:5px;border-bottom:1px solid var(--rule)}
.fq-list li:last-child{border-bottom:0}
.ko{font-size:14px;color:var(--ink-2);word-break:keep-all}
.small{font-size:13px;color:var(--ink-2)}

/* FAQ */
.faq{border-top:1.5px solid var(--ink)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{display:flex;gap:10px;align-items:baseline;padding:12px 0;cursor:pointer;font-weight:500;list-style:none;min-height:var(--tap)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";font:600 13px/1 var(--f-mono);width:12px;flex:none}
.faq details[open] summary::before{content:"\2212"}
.faq details p{padding:0 0 14px 22px;color:var(--ink-2);max-width:70ch}

/* footer */
.ftr{border-top:1px solid var(--rule);background:var(--paper-2);margin-top:24px}
.ftr .wrap{display:flex;flex-wrap:wrap;gap:6px 22px;padding-block:18px;font-size:13px;color:var(--ink-2)}
.ftr a{text-decoration:none}
.ftr a:hover{text-decoration:underline}
.ftr .legal{flex-basis:100%}

/* service page */
.svc-hero{display:grid;gap:18px;padding-block:20px 24px;grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){.svc-hero{grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:48px;padding-block:36px 32px;align-items:start}}
.svc-hero h1{font:600 28px/1.12 var(--f-sans);margin-top:6px}
@media (min-width:900px){.svc-hero h1{font-size:38px}}
.cols2{display:grid;gap:0;grid-template-columns:minmax(0,1fr);border-top:1.5px solid var(--ink);border-left:1px solid var(--rule)}
@media (min-width:900px){.cols2{grid-template-columns:repeat(3,minmax(0,1fr))}}
.cols2>div{padding:14px 16px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.cols2 h3{font:500 11px/1.3 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px}
.ticks{list-style:none;padding:0;display:grid;gap:4px;font-size:14px}
.ticks li::before{content:"\2713";font-family:var(--f-mono);margin-right:8px;color:var(--ink-2)}
.ticks.no li::before{content:"\2715"}
.steps-ol{list-style:none;padding:0;counter-reset:s;display:grid;grid-template-columns:minmax(0,1fr);border-top:1.5px solid var(--ink)}
@media (min-width:900px){.steps-ol{grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);grid-template-columns:none}}
.steps-ol li{counter-increment:s;padding:12px 14px;border-bottom:1px solid var(--rule);font-size:14px}
@media (min-width:900px){.steps-ol li{border-bottom:0;border-right:1px solid var(--rule)}.steps-ol li:last-child{border-right:0}}
.steps-ol li::before{content:counter(s);display:inline-block;font:600 12px/1 var(--f-mono);border:1.5px solid var(--ink);padding:4px 6px;margin-right:8px}
.steps-ol li.gate::before{background:var(--ink);color:var(--paper)}
.steps-ol small{display:block;color:var(--ink-2);font-size:12px;margin-top:4px}

/* prose (guides, legal) */
.prose{max-width:72ch;padding-block:24px 40px}
.prose h1{font:600 28px/1.15 var(--f-sans);margin-bottom:8px}
.prose h2{font:600 19px/1.3 var(--f-sans);margin:28px 0 8px}
.prose p,.prose ul,.prose ol{margin:0 0 12px}
.prose li{margin-bottom:6px}
.prose .meta{color:var(--ink-2);font-size:13px;margin-bottom:16px}
.note-box{border:1px dashed var(--rule-strong);background:var(--paper-2);padding:12px 14px;font-size:13px;color:var(--ink-2);margin-block:12px}

/* configurator */
.cfg-top{padding-block:14px 6px}
.cfg-h1{font:600 26px/1.15 var(--f-sans);margin-top:8px}
.cfg-promise{margin-top:6px;color:var(--ink-2);font-size:13px}
.prog{display:grid;grid-template-columns:repeat(var(--n,7),minmax(0,1fr));gap:4px;margin-top:14px}
.pg{display:flex;flex-direction:column;gap:6px;align-items:flex-start;background:none;border:0;padding:0;cursor:pointer;text-align:left;min-width:0}
.pg-bar{display:block;width:100%;height:4px;background:var(--paper-3)}
.pg.is-set .pg-bar{background:var(--ink)}
.pg-l{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.pg-l b{font:600 12px var(--f-mono);margin-right:4px;color:var(--ink)}
.prog-txt{margin-top:8px;font:500 12px/1.3 var(--f-mono);color:var(--ink-2)}
@media (max-width:899px){.pg{padding-block:8px}.pg-l{display:none}.pg.is-cur .pg-bar{background:var(--red)}}
@media (min-width:900px){.prog-txt{display:none}}
.cfg-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;padding-block:12px 180px}
@media (min-width:900px){.cfg-grid{grid-template-columns:minmax(0,var(--picks-w)) var(--panel-w);justify-content:space-between;gap:32px;padding-block:12px 64px;align-items:start}}
.cfg-form{display:flex;flex-direction:column;gap:14px;min-width:0;min-height:120vh}
.step{border:1px solid var(--rule-strong);background:var(--paper)}
.step.flash{outline:2px solid var(--red);outline-offset:2px}
.st-head{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--paper-2);border-bottom:1px solid var(--rule)}
.st-n{font:600 12px/1 var(--f-mono);border:1.5px solid var(--ink);padding:4px 6px;flex:none}
.st-head h2{font:600 15px/1.2 var(--f-sans)}
.st-state{margin-left:auto;font:500 10.5px/1.2 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);text-align:right}
.step.is-set .st-state{color:var(--ink)}
.st-body{padding:0 12px}
.row{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;padding-block:12px;border-top:1px solid var(--rule)}
.st-body>.row:first-child,.adv>.row:first-of-type{border-top:0}
.row-k{font-size:13px;font-weight:500;color:var(--ink-2);padding-top:8px}
.row-k small{display:block;font-weight:400;font-size:12px;color:var(--ink-3)}
.row-v{min-width:0}
.row-note{margin-top:6px;font-size:12px;color:var(--ink-2)}
.row-note.err{color:var(--red)}
.adv{border-top:1px solid var(--rule)}
.adv>summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding-block:11px;cursor:pointer;font-size:13px;font-weight:500;list-style:none}
.adv>summary::-webkit-details-marker{display:none}
.adv>summary::before{content:"+";font:600 13px/1 var(--f-mono);width:12px}
.adv[open]>summary::before{content:"\2212"}
.adv-sum{font:400 12px var(--f-mono);color:var(--ink-2)}
.tgroup+.tgroup{margin-top:12px}
.tgroup-k{font:500 10.5px/1.3 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px}
.readout{font:400 13px/1.45 var(--f-mono);padding:8px 10px;background:var(--paper-2);border:1px solid var(--rule);margin-top:8px}
.fix{margin-top:10px}
.fix label{font-size:13px;font-weight:500;display:block;margin-bottom:6px}
.fix-in{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.inp{min-height:40px;padding:6px 10px;border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--paper);font-size:15px;font-variant-numeric:tabular-nums;min-width:0}
.inp.n{width:120px}
.inp.w{width:100%}
.unit{font:400 12px var(--f-mono);color:var(--ink-2)}
@media (max-width:899px){.inp{min-height:var(--tap);font-size:16px}}
.incl-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;padding-top:8px}
.incl-list li::before{content:"\2713";font-family:var(--f-mono);margin-right:6px;color:var(--ink-2)}
.gates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--rule);margin-top:6px}
.gates div{padding:6px 8px;border-left:1px solid var(--rule);font-size:12px;line-height:1.3}
.gates div:first-child{border-left:0}
.gates b{display:block;font:600 11px var(--f-mono)}
.st-nav{display:none}
@media (max-width:899px){
  .cfg-form>.step{display:none}
  .cfg-form>.step.is-cur{display:block}
  .st-nav{display:flex;gap:8px;padding:12px;border-top:1px solid var(--rule)}
  .st-nav .btn{flex:1}
  .row{grid-template-columns:minmax(0,1fr);gap:8px}
  .row-k{padding-top:0}
  .gates{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gates div:nth-child(3){border-left:0}
  .gates div:nth-child(n+3){border-top:1px solid var(--rule)}
}
.err-msg{color:var(--red);font-size:12px;margin-top:4px}

/* send step + intake */
.send-box{display:grid;gap:12px;padding-block:12px}
.need-list{list-style:none;padding:0;display:grid;gap:4px;font-size:14px}
.need-list li::before{content:"\25A1";font-family:var(--f-mono);margin-right:8px;color:var(--ink-2)}
.intake{border:1px solid var(--rule-strong)}
.intake-h{display:flex;flex-wrap:wrap;gap:4px 14px;padding:8px 12px;background:var(--paper-2);border-bottom:1px solid var(--rule);font:500 12px/1.4 var(--f-mono)}
.intake ul{list-style:none;padding:0}
.intake li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:8px 12px;border-bottom:1px solid var(--rule);font-size:13px}
.intake li:last-child{border-bottom:0}
.intake .fn{font:500 13px/1.4 var(--f-mono);overflow-wrap:anywhere}
.intake .fnote{grid-column:1/-1;color:var(--ink-2);font-size:12px}
.st-tag{font:600 10px/1 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;padding:4px 6px;border-radius:var(--radius-sm);border:1px solid currentColor;white-space:nowrap;align-self:start}
.st-recognized{color:var(--ok)}
.st-needs-review{color:var(--warn)}
.st-ignored{color:var(--ink-3)}
.tally-wrap{border:1px solid var(--rule);padding:8px}

/* price panel */
.panel{border:1.5px solid var(--ink);background:var(--paper);min-width:0}
.sheet-handle{display:none}
.p-main{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"num" "sub" "moved" "act";gap:6px;padding:12px}
.p-num-w{grid-area:num;min-width:0}
.p-main .p-sub{grid-area:sub;margin-top:0}
.p-main .p-moved{grid-area:moved;margin-top:2px}
.p-act{grid-area:act;display:grid;gap:6px;margin-top:6px}
.p-act .linkish{font-size:13px;justify-self:start}
.panel-more{border-top:1px solid var(--rule)}
.pm-sec{padding:10px 12px;border-top:1px solid var(--rule);display:grid;gap:8px}
.pm-sec:first-child{border-top:0}
.ladder{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--rule)}
.ladder li{padding:5px 3px;text-align:center;font:500 10px/1.25 var(--f-mono);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3);border-left:1px solid var(--rule)}
.ladder li:first-child{border-left:0}
.ladder li.past{color:var(--ink)}
.ladder li.now{background:var(--ink);color:var(--paper)}
.ladder-alt{font-size:12px;color:var(--ink-2)}
.ladder-alt.now{color:var(--red);font-weight:600}
.facts>div{display:grid;grid-template-columns:86px minmax(0,1fr);gap:8px;padding-block:5px;border-bottom:1px solid var(--rule);font-size:13px}
.facts>div:last-child{border-bottom:0}
.facts dt{color:var(--ink-2)}
.facts dd{min-width:0}
.facts small{display:block;color:var(--ink-2);font-size:12px}
.cmp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--rule)}
.cmp>div{padding:7px 9px;font-size:12px;color:var(--ink-2)}
.cmp>div+div{border-left:1px solid var(--rule)}
.cmp>div.on{background:var(--paper-2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.cmp b{display:block;font:600 15px/1.3 var(--f-sans);color:var(--ink);font-variant-numeric:tabular-nums}
.pm-list{list-style:none;padding:0;font-size:13px;display:grid;gap:3px}
.pm-list li::before{content:"\2713";font-family:var(--f-mono);margin-right:6px;color:var(--ink-2)}
.pm-list.no li::before{content:"\2715"}
.pm-ol{padding-left:20px;font-size:12.5px;display:grid;gap:2px;font-variant-numeric:tabular-nums}
.picks{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:5px;min-width:0;max-width:100%}
.pick{display:inline-flex;align-items:center;max-width:100%;min-width:0;border:1px solid var(--rule-strong);border-radius:var(--radius);font-size:12px;background:var(--paper)}
.pick span{flex:1 1 auto;padding:4px 2px 4px 8px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pick button{border:0;background:none;padding:4px 8px;cursor:pointer;font:500 13px/1 var(--f-mono);color:var(--ink-2);min-height:32px}
.pick button:hover{color:var(--red)}
.share-row{display:flex;gap:6px}
.share-row .inp{flex:1;font:400 12px var(--f-mono);min-height:32px}
.pm-trust{font-size:12px;color:var(--ink-2)}
.chg{width:100%;border-collapse:collapse;font-size:12.5px}
.chg td,.chg th{padding:4px 6px;border-bottom:1px solid var(--rule);text-align:left}
.chg th{font:500 10px/1.2 var(--f-mono);text-transform:uppercase;color:var(--ink-2)}
@media (min-width:900px){.panel{position:sticky;top:calc(var(--hdr) + 14px);max-height:calc(100vh - var(--hdr) - 28px);overflow:auto}}
@media (max-width:899px){
  /* Bottom sheet. Collapsed: state + price + one button. Everything else when expanded. */
  .panel{position:fixed;left:0;right:0;bottom:0;z-index:40;border-width:1.5px 0 0;max-height:82vh;overflow:auto;padding-bottom:env(safe-area-inset-bottom,0px)}
  .sheet-handle{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:28px;padding:6px 12px 2px;border:0;background:var(--paper);cursor:pointer;font:500 11px/1 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
  .grip{width:36px;height:4px;background:var(--rule-strong);border-radius:2px}
  .panel .tb-head{padding:5px 12px}
  .p-main{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"num act";align-items:center;column-gap:10px;row-gap:4px;padding:8px 12px 10px}
  .panel:not(.open) .p-sub,.panel:not(.open) .p-moved,.panel:not(.open) .panel-more,.panel:not(.open) .p-act .alt{display:none}
  .panel.open .p-main{grid-template-columns:minmax(0,1fr);grid-template-areas:"num" "sub" "moved" "act"}
  .p-act{margin-top:0}
  .p-num{font-size:24px}
  .p-num.is-text{font-size:18px}
}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:60;max-width:calc(100% - 32px);padding:10px 14px;background:var(--ink);color:var(--paper);font-size:13px;border-radius:var(--radius)}
@media (max-width:899px){.has-sheet .toast{bottom:120px}}
@media print{.hdr,.ftr,.panel,.prevbar{display:none}}
/* reserve space for parts the configurator script fills in (layout shift) */
.prog{min-height:20px}
@media (min-width:900px){.prog{min-height:34px}}
@media (max-width:899px){.prog-txt{min-height:32px}}
.p-act{min-height:44px}
.p-sub{min-height:1.2em}
