/* Sauna setup wizard (/setup). Uses the tokens in platform.css; see DESIGN.md. */
.wz-app{background:var(--paper)}
.wz-top{border-bottom:1px solid var(--line);background:var(--paper)}
.wz-top-inner{max-width:1120px;margin:0 auto;padding:.75rem 16px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.wz-signin{color:var(--rust);font-weight:600;min-height:44px;display:inline-flex;align-items:center}
.wz-main{max-width:1120px;margin:0 auto;padding:1rem 16px 3rem}
.wz-progress{list-style:none;margin:0 0 1.25rem;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.wz-progress li{display:flex}
.wz-progress li>span,.wz-progress a{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:.35rem .85rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:.875rem;font-weight:560;text-decoration:none}
.wz-progress a{color:var(--rust)}
.wz-progress .is-current>span{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.wz-progress .is-done a{background:var(--rust-wash);border-color:var(--rust-line);color:var(--rust-ink)}
.wz-grid{display:grid;gap:1.5rem;align-items:start}
.wz-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem}
.wz-card h1{font-size:1.75rem;letter-spacing:-.04em}
.wz-form{margin-top:1.25rem}
.wz-form>label,.wz-form>p{max-width:40rem}
.wz-form>input{margin-bottom:1.125rem}
.wz-form>input:has(+.wz-hint),.wz-form>input:has(+.field-error){margin-bottom:.375rem}
.wz-hint,.wz-fine{font-size:.875rem;color:var(--ink-2);margin:0 0 1.125rem}
.wz-fine{margin:.75rem 0 0}
.wz-form button[type=submit]:not(.secondary){margin-top:.5rem}
.field-error{display:block;color:var(--red);font-size:.875rem;margin:0 0 1rem}
.wz-find{margin:0 0 1.25rem}
.wz-match-area:empty{display:none}
.wz-matches{list-style:none;margin:0 0 .75rem;padding:0;display:grid;gap:.5rem}
.wz-match{border:1px solid var(--rust-line);background:var(--rust-wash);border-radius:var(--radius-sm);padding:.75rem;display:grid;gap:.5rem}
.wz-match .wz-hint{margin:0}
.wz-new{font-size:.9375rem;color:var(--ink-2);margin:0 0 1rem}
.wz-pills{border:0;margin:0 0 1.125rem;padding:0;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.wz-pills legend{font-size:.9375rem;font-weight:560;margin-bottom:.5rem;padding:0;width:100%}
.wz-pill{position:relative;display:inline-flex;margin:0}
.wz-pill input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;padding:0;margin:0}
.wz-pill span{display:inline-flex;align-items:center;min-height:44px;min-width:44px;justify-content:center;padding:.4rem 1rem;border:1px solid var(--line-control);border-radius:999px;background:var(--surface);font-weight:560;cursor:pointer}
.wz-pill input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.wz-pill input:focus-visible+span{outline:2px solid var(--rust);outline-offset:2px}
.wz-custom{display:none;margin:0;min-width:7rem}
.wz-pills:has(input[value=custom]:checked) .wz-custom{display:grid}
.wz-toggle-block{border:1px solid var(--line);border-radius:var(--radius-sm);padding:.75rem;margin:0 0 1rem}
.wz-switch,.wz-check{display:flex;align-items:center;gap:.75rem;margin:0;font-weight:560;cursor:pointer;min-height:44px}
.wz-switch input,.wz-check input{width:24px;height:24px;min-height:24px;flex:none;padding:0;margin:0}
.wz-check{align-items:flex-start;margin:0 0 1rem;font-weight:500}
.wz-when-on{margin-top:.75rem}
.wz-toggle-block:not(:has(input[role=switch]:checked)) .wz-when-on{display:none}
.wz-money{display:flex;align-items:center;gap:.5rem;max-width:12rem;margin-bottom:.5rem}
.wz-money span{font-weight:700;color:var(--ink-2)}
.wz-explainer{background:var(--sunk);border-radius:var(--radius-sm);padding:.75rem;margin:0 0 1.25rem;color:var(--ink)}
.wz-columns{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;max-width:24rem}
.wz-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.5rem}
.wz-back{color:var(--rust);font-weight:600;min-height:44px;display:inline-flex;align-items:center}
.wz-fees{border:0;margin:0 0 1rem;padding:0;display:grid;gap:.75rem;background:none}
.wz-fee-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-auto-flow:row;gap:.4rem;margin:0;padding:1rem 1rem 1rem 3rem;border:1px solid var(--line-control);border-radius:var(--radius);background:var(--surface);cursor:pointer;font-weight:400}
.wz-fees .wz-fee-card{display:grid;margin:0;padding-block:1rem}
.wz-fee-card>input{position:absolute;left:1rem;top:1.1rem;width:22px;height:22px;min-height:22px;padding:0;margin:0}
.wz-fee-card:has(input:checked){border-color:var(--rust);background:var(--rust-wash)}
.wz-fee-title{font-size:1.0625rem;font-weight:700}
.wz-fee-text{color:var(--ink-2)}
.wz-fee-math{display:grid;gap:.15rem;font-size:.9375rem}
.wz-fee-math small{color:var(--ink-2)}
.wz-badge{justify-self:start;font-size:.8125rem;font-weight:600;padding:.1rem .6rem;border-radius:999px;background:var(--ink);color:var(--paper)}
.wz-badge.is-founding{background:var(--sage-wash);color:var(--sage-ink)}
.wz-phone-wrap{display:grid;justify-items:center;gap:.5rem}
.wz-phone{width:min(300px,100%);border-radius:36px;background:var(--ink);padding:12px}
.wz-phone-screen{border-radius:26px;background:var(--paper);padding:1.25rem 1rem;min-height:340px;display:grid;align-content:start;gap:.5rem}
.wz-phone-name{font-weight:800;font-size:1.25rem;letter-spacing:-.03em;overflow-wrap:anywhere}
.wz-phone-place{color:var(--ink-2);font-size:.875rem;margin:0}
.wz-phone-day{font-weight:600;margin-top:.75rem}
.wz-phone-tile{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:.6rem .75rem}
.wz-phone-option{font-size:.875rem;border:1px solid var(--rust-line);background:var(--rust-wash);color:var(--rust-ink);border-radius:var(--radius-sm);padding:.5rem .65rem;margin:0}
.wz-phone-option[hidden]{display:none}
.wz-phone-note{font-size:.8125rem;color:var(--ink-2)}
/* Step 4: their booking page with a banner above and the save card beside it. */
.wz-banner{background:var(--ink);color:var(--paper)}
.wz-banner-inner{max-width:1120px;margin:0 auto;padding:.75rem 16px}
.wz-banner .wz-progress{margin-bottom:.5rem}
.wz-banner .wz-progress li>span,.wz-banner .wz-progress a{background:transparent;color:var(--paper);border-color:rgb(251 244 234 / .4)}
.wz-banner .wz-progress .is-current>span{background:var(--paper);color:var(--ink)}
.wz-banner .wz-progress a:focus-visible{outline-color:var(--paper)}
.wz-banner strong{color:var(--paper)}
.wz-preview-frame{display:grid;gap:1rem}
.wz-preview-page{position:relative;min-width:0}
.wz-dock{position:sticky;bottom:0;z-index:5;display:flex;justify-content:center;padding:.75rem 16px;background:var(--paper);border-top:1px solid var(--line)}
.wz-dock a{width:100%;max-width:28rem}
.wz-save{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;margin:0 16px 2rem}
.wz-save h2{margin-bottom:.75rem}
.wz-save form>label:not(.wz-check){margin-bottom:.375rem}
.wz-save input:not([type=checkbox]){margin-bottom:1rem}
@media (min-width:900px){
  .wz-grid{grid-template-columns:minmax(0,1fr) 320px}
  .wz-phone-wrap{position:sticky;top:1rem}
  .wz-card{padding:2rem}
  .wz-preview-frame{grid-template-columns:minmax(0,1fr) 360px;align-items:start;max-width:1280px;margin:0 auto}
  .wz-save{position:sticky;top:1rem;margin:1rem 16px 2rem 0}
  .wz-dock{display:none}
}
@media (max-width:899px){
  .wz-phone-screen{min-height:0}
}
.wz-pills .wz-pill{padding:0;min-height:0;align-items:center}
.wz-find[hidden]{display:none}
