/* Nimbus Build Session — page styles. Tokens come from site.css; only bw-* classes
   and --bw-* vars are declared here. Hi-vis (--vis) is used for one status dot only. */
:root{--bw-stage:1100px;--bw-gap:clamp(20px,4vw,40px);--bw-pad:clamp(20px,5vw,48px)}
.bw-body{background:var(--bg);color:var(--text)}
.bw-page{max-width:var(--bw-stage);margin-inline:auto;padding:clamp(112px,14vh,150px) var(--bw-pad) 130px}
.bw-session-tag{font-size:var(--fs-micro);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}

.bw-progress{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:clamp(24px,4vw,44px)}
.bw-chip{background:var(--bg);border:1px solid var(--line);color:var(--muted);padding:8px 14px;font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;clip-path:var(--tag-cut);transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}
.bw-chip:hover{color:var(--text);border-color:var(--accent)}
.bw-chip[aria-current=step]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}

.bw-stage{min-height:52vh;scroll-margin-top:118px}
.bw-screen h2{margin:14px 0 0}
.bw-note{font-size:var(--fs-small);margin-top:14px}
.bw-sub{font-size:var(--fs-small);margin-top:20px}

.bw-fields{display:grid;gap:16px;margin-top:clamp(20px,4vw,36px)}
.bw-field{display:flex;flex-direction:column;gap:8px}
.bw-field>span{font-size:var(--fs-micro);font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.bw-field input,.bw-field textarea,.bw-field select{background:var(--surface);border:1px solid var(--line);color:var(--text);padding:14px 16px;border-radius:var(--r-soft);width:100%;resize:none}
.bw-field input:focus,.bw-field textarea:focus,.bw-field select:focus{border-color:var(--accent)}
.bw-subs{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.bw-sub-row{display:flex;gap:10px;align-items:center;max-width:560px}
.bw-sub-row select,.bw-sub-row input{background:var(--surface);border:1px solid var(--line);color:var(--text);padding:12px 14px;border-radius:var(--r-soft);font-family:var(--font);font-size:var(--fs-small)}
.bw-sub-row select{flex:2;min-width:0}
.bw-sub-name{flex:1.4;min-width:0}
.bw-sub-amt{flex:1;min-width:0}
.bw-sub-amt::placeholder,.bw-sub-name::placeholder{color:var(--muted)}
.bw-sub-rm{background:none;border:1px solid var(--line);color:var(--muted);width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;font-size:1rem;clip-path:var(--btn-cut)}
.bw-sub-rm:hover{color:var(--accent);border-color:var(--accent)}
.bw-subs-add{background:none;border:1px solid var(--line);color:var(--accent);padding:10px 18px;font-family:var(--font);font-size:var(--fs-small);font-weight:500;clip-path:var(--btn-cut);margin-top:12px;cursor:pointer}
.bw-subs-add:hover{border-color:var(--accent)}
.bw-split{display:flex;gap:26px;flex-wrap:wrap;margin-top:14px;font-size:var(--fs-small)}
.bw-fineprint{font-size:var(--fs-micro);color:var(--muted);line-height:1.7;border-top:1px dashed var(--line);padding-top:10px;margin-top:16px;max-width:46rem}
.bw-plan{cursor:pointer;text-align:left}
.bw-plan[aria-pressed=true]{border-color:var(--accent);background:var(--surface-2)}
.bw-plan[aria-pressed=true] h3{color:var(--accent)}
.bw-plan:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.bw-plan-fineprint{display:block;font-size:var(--fs-micro);color:var(--muted);line-height:1.7;border-top:1px solid var(--line);margin-top:16px;padding-top:12px}
.bw-plain-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.bw-plain-tab{background:var(--surface);border:1px solid var(--line);color:var(--muted);padding:10px 16px;font-family:var(--font);font-size:var(--fs-small);font-weight:500;clip-path:var(--tag-cut);cursor:pointer}
.bw-plain-tab:hover{color:var(--accent);border-color:var(--accent)}
.bw-plain-tab.is-active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}
.bw-plain-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-soft);padding:clamp(26px,4vw,44px);margin-top:22px;min-height:280px}
.bw-plain-card h3{font-size:clamp(1.5rem,3.4vw,2.1rem);margin:0 0 20px;color:var(--text);letter-spacing:-.02em}
.bw-plain-card p{font-size:clamp(1.05rem,2.1vw,1.3rem);line-height:1.9;color:var(--muted);margin:0 0 18px;max-width:44rem}
.bw-plain-card p strong{color:var(--text);font-weight:600}
.bw-plain-nav{display:flex;gap:14px;margin-top:26px}
.bw-plain-nav .btn:disabled{opacity:.4;cursor:default}
.bw-plain-block{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-soft);padding:22px 24px}
.bw-plain-block h3{font-size:var(--fs-h3);margin:0 0 10px;color:var(--accent)}
.bw-plain-block p{margin:0 0 12px;color:var(--muted);line-height:1.85;font-size:var(--fs-small)}
.bw-plain-block p:last-child{margin-bottom:0}
.bw-screen h2:focus{outline:none}
.bw-close-fields{margin-top:22px}

.bw-verticals{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.bw-vchip{background:var(--bg);border:1px solid var(--line);color:var(--text);padding:12px 18px;font-size:var(--fs-small);clip-path:var(--tag-cut);min-height:46px;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}
.bw-vchip:hover{border-color:var(--accent)}
.bw-vchip[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}

.bw-waste-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:clamp(20px,4vw,36px)}
.bw-figure{font-size:clamp(3rem,12vw,6.5rem);font-weight:700;letter-spacing:-.05em;line-height:1;margin:clamp(28px,5vw,52px) 0 18px;font-variant-numeric:tabular-nums}

.bw-map{display:grid;grid-template-columns:1fr 1fr;gap:var(--bw-gap);margin-top:clamp(24px,4vw,44px)}
.bw-map-col{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-soft);padding:22px}
.bw-map-built{border-left:3px solid var(--accent)}
.bw-map-head{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.13em;margin-bottom:18px}
.bw-chain{display:flex;flex-direction:column}
.bw-node{display:flex;align-items:center;gap:14px;padding:10px 0}
.bw-node-ic{width:34px;height:34px;flex-shrink:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--r-soft);color:var(--accent)}
.bw-node-ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.bw-node-label{font-size:var(--fs-small)}
.bw-stamp .bw-node-label{font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:var(--fs-micro);color:var(--muted);border:1px dashed var(--line);padding:3px 8px}
.bw-dash{height:16px;margin-left:17px;border-left:1px dashed var(--line)}
.bw-node-final .bw-node-ic{border-color:var(--vis)}
.bw-dot{width:9px;height:9px;border-radius:50%;background:var(--vis);margin-left:auto;animation:bw-pulse 2.2s ease-out infinite}
@keyframes bw-pulse{0%{box-shadow:0 0 0 0 rgba(216,227,74,.55)}70%,100%{box-shadow:0 0 0 12px rgba(216,227,74,0)}}
.bw-map-line{font-style:italic;margin-top:22px}

.bw-kit-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:20px}
.bw-kit{background:var(--surface);border:1px solid var(--accent);color:var(--accent);font-weight:700;padding:12px 20px;clip-path:var(--tag-cut);transition:background var(--t-fast) var(--ease)}
.bw-kit:hover{background:var(--accent-soft)}
.bw-group{margin-top:clamp(24px,4vw,38px)}
.bw-modgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:16px}
.bw-mod{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:6px 12px;align-items:start;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-soft);cursor:pointer;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}
.bw-mod:hover{border-color:var(--accent)}
.bw-mod:has(.bw-mod-in:checked){border-color:var(--accent);background:var(--accent-soft)}
.bw-mod:has(.bw-mod-in:focus-visible){outline:2px solid var(--accent);outline-offset:3px}
.bw-mod-in{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.bw-mod-check{width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--line);border-radius:4px;color:transparent;font-weight:700;font-size:.8rem}
.bw-mod:has(.bw-mod-in:checked) .bw-mod-check{border-color:var(--accent);color:var(--accent);background:var(--bg)}
.bw-mod-name{font-weight:700;font-size:var(--fs-small);line-height:1.3}
.bw-mod-price{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:700;font-size:var(--fs-small);white-space:nowrap}
.bw-mod-outcome{grid-column:2/-1;color:var(--muted);font-size:var(--fs-micro);line-height:1.5}

.bw-comp-list{margin-top:14px;border-top:1px solid var(--line)}
.bw-comp{display:flex;align-items:center;gap:14px;padding:15px 2px;border-bottom:1px solid var(--line);cursor:pointer}
.bw-comp input{accent-color:var(--accent);width:20px;height:20px;flex-shrink:0}
.bw-comp-q{flex:1;font-size:var(--fs-small)}
.bw-comp-price{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:700;font-size:var(--fs-small);white-space:nowrap}

.bw-totalbar{position:sticky;bottom:96px;z-index:40;display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;justify-content:space-between;margin-top:28px;padding:16px 20px;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid rgba(74,168,222,.28);border-radius:var(--r-soft);box-shadow:var(--lift),var(--inset)}
.bw-total-label{font-size:var(--fs-small);color:var(--muted)}
.bw-total-label b{color:var(--text);font-size:var(--fs-h3);font-variant-numeric:tabular-nums}
.bw-mobile-chip{display:inline-flex;align-items:center;gap:10px;font-size:var(--fs-small);cursor:pointer}
.bw-mobile-chip input{accent-color:var(--accent);width:18px;height:18px}

.bw-price-grid{display:grid;grid-template-columns:1.25fr .85fr;gap:var(--bw-gap);margin-top:clamp(20px,4vw,40px);align-items:start}
.bw-price-tools{display:flex;flex-wrap:wrap;gap:16px 26px;align-items:end;margin-bottom:18px}
.bw-field-inline{max-width:260px}
.bw-rush{display:inline-flex;align-items:center;gap:10px;font-size:var(--fs-small);cursor:pointer;padding-bottom:14px}
.bw-rush input{accent-color:var(--accent);width:18px;height:18px}
.bw-table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}
.bw-table td{padding:11px 0;border-bottom:1px solid var(--line)}
.bw-table .bw-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.bw-total-row td{border-bottom:none;border-top:2px solid var(--accent);font-weight:700;padding-top:14px}
.bw-total-row .bw-num{color:var(--accent)}
.bw-compare{background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--line);border-radius:var(--r-soft);padding:24px;box-shadow:var(--lift),var(--inset)}
.bw-cmp-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.bw-cmp-k{color:var(--muted);font-size:var(--fs-small)}
.bw-cmp-row b{font-variant-numeric:tabular-nums}
.bw-cmp-build b{color:var(--accent);font-size:var(--fs-h3)}
.bw-cmp-cap{margin-top:14px;font-style:italic;font-size:var(--fs-small)}

.bw-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:clamp(20px,4vw,40px) 0}
.bw-plan{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-soft);padding:22px;font-family:var(--font);color:var(--text);font-size:var(--fs-body)}
.bw-plan-feature{border-color:var(--accent);box-shadow:var(--inset),0 0 0 1px rgba(74,168,222,.3)}
.bw-plan h3{font-size:var(--fs-h3)}
.bw-plan-price{color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums}
.bw-plan-tag{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.1em;color:var(--accent)}
.bw-plan ul{margin:0;padding-left:18px;color:var(--muted);font-size:var(--fs-small);display:grid;gap:6px}
.bw-honesty{border-left:3px solid var(--line);padding:6px 0 6px 20px;line-height:1.8;margin-top:24px}
.bw-saas{margin-top:20px}

.bw-recap{display:grid;margin:clamp(18px,3vw,30px) 0}
.bw-recap-row{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:var(--fs-small)}
.bw-recap-row span{color:var(--muted);flex-shrink:0}
.bw-recap-row b{font-weight:500;text-align:right}
.bw-close-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:24px}
.bw-copy{background:var(--surface);border:1px solid var(--line);color:var(--text);padding:16px 26px;font-weight:700;clip-path:var(--btn-cut)}
.bw-copy:hover{border-color:var(--accent)}
.bw-success{margin-top:22px;padding:18px 20px;border:1px solid var(--accent);border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:var(--r-soft)}
.bw-mailto{margin-top:14px;font-size:var(--fs-small)}

.bw-touchbar{position:fixed;inset:auto 0 0;z-index:70;display:flex;gap:12px;padding:12px var(--bw-pad) calc(12px + env(safe-area-inset-bottom));background:rgba(13,23,18,.94);backdrop-filter:blur(16px);border-top:1px solid var(--line)}
.bw-touch{flex:1;min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--surface);border:1px solid var(--line);color:var(--text);font-weight:700;font-size:var(--fs-small);clip-path:var(--btn-cut)}
.bw-touch-next{background:linear-gradient(180deg,var(--accent),var(--accent-deep));color:var(--bg);border-color:transparent}
.bw-touch:disabled{opacity:.4}
.bw-touch:focus-visible{outline-offset:-3px}
.bw-hint{text-align:center;color:var(--muted);font-size:var(--fs-micro);letter-spacing:.06em;margin:28px 0 0}
.bw-nojs{max-width:640px}
.bw-nojs ol{color:var(--muted);line-height:1.8}

@media(max-width:900px){
  .bw-map{grid-template-columns:1fr}
  .bw-price-grid{grid-template-columns:1fr}
  .bw-plans{grid-template-columns:1fr}
  .bw-waste-inputs{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .bw-waste-inputs{grid-template-columns:1fr}
  .bw-modgrid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .bw-dot{animation:none}
}
