/* =====================================================================
   Brief wizard — the conversational part of the system.
   ===================================================================== */

.wizard{padding-block:var(--sp-5) calc(120px + var(--safe-b))}

/* ------------------------------------------------------- progress */
.progress{position:sticky;top:64px;z-index:50;background:var(--page);padding-block:var(--sp-3);margin-bottom:var(--sp-4)}
.progress-top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);margin-bottom:9px}
.progress-step{font-size:.85rem;color:var(--muted);font-weight:600}
.progress-title{font-size:.95rem;font-weight:700;color:var(--brand-ink)}
.progress-track{height:6px;border-radius:var(--r-pill);background:var(--brand-ink-soft);overflow:hidden}
.progress-fill{height:100%;border-radius:var(--r-pill);background:var(--brand-primary);width:0;transition:width .45s var(--ease)}
.progress-dots{display:flex;gap:5px;margin-top:9px;flex-wrap:wrap}
.progress-dots i{width:100%;flex:1 1 0;min-width:6px;height:4px;border-radius:2px;background:var(--brand-ink-soft);transition:background .3s var(--ease)}
.progress-dots i.done{background:var(--brand-primary)}
.progress-dots i.now{background:var(--brand-ink)}

/* ---------------------------------------------------------- steps */
.step{display:none}
.step.active{display:block;animation:stepIn .32s var(--ease)}
@keyframes stepIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

.step-head{margin-bottom:var(--sp-5)}
.step-eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;font-weight:700;color:var(--brand-primary);background:var(--brand-primary-soft);padding:5px 13px;border-radius:var(--r-pill);margin-bottom:11px}
.step-title{font-size:clamp(1.35rem,4vw,1.9rem);margin-bottom:8px;line-height:1.32}
.step-sub{color:var(--muted);font-size:1rem;margin:0;max-width:62ch;line-height:1.7}

/* ------------------------------------------------- entity chooser */
.entity-grid{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.entity-card{
  position:relative;border:2px solid var(--line);border-radius:var(--r-lg);
  background:#fff;padding:var(--sp-6) var(--sp-4);cursor:pointer;text-align:center;
  transition:all .28s var(--ease);overflow:hidden;min-height:236px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);
}
.entity-card::before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .28s var(--ease);
  background:linear-gradient(160deg,var(--ec-ink) 0%,var(--ec-ink2) 100%)}
.entity-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-3);border-color:var(--ec-primary)}
.entity-card.selected{border-color:var(--ec-primary)}
.entity-card.selected::before{opacity:1}
.entity-card > *{position:relative;z-index:1;transition:color .28s var(--ease)}
.entity-card .logo{height:44px;width:auto;object-fit:contain}
.entity-card .logo-dark{display:none}
.entity-card.selected .logo-light{display:none}
.entity-card.selected .logo-dark{display:block}
.entity-card .ename{font-weight:700;font-size:1.08rem;color:var(--brand-ink)}
.entity-card .edesc{font-size:.88rem;color:var(--muted);max-width:26ch;line-height:1.6}
.entity-card.selected .ename,.entity-card.selected .edesc{color:#fff}
.entity-card.selected .edesc{opacity:.85}
.entity-card .tick{position:absolute;inset-block-start:12px;inset-inline-end:12px;width:26px;height:26px;border-radius:50%;
  background:var(--ec-primary);color:#fff;display:none;place-items:center;font-size:.85rem;z-index:2}
.entity-card.selected .tick{display:grid}
.entity-card .saden-note{font-size:.76rem;color:var(--muted-2)}
.entity-card.selected .saden-note{color:rgba(255,255,255,.7)}
.entity-card .logo.tall{height:66px}

/* ------------------------------------------------ service picker */
.svc-search{position:relative;margin-bottom:var(--sp-4)}
.svc-search .input{padding-inline-start:44px}
.svc-search .ico{position:absolute;inset-inline-start:15px;top:50%;transform:translateY(-50%);color:var(--muted-2);pointer-events:none;font-size:1.05rem}

.svc-group{margin-bottom:var(--sp-5)}
.svc-group-title{display:flex;align-items:center;gap:10px;font-size:.83rem;font-weight:800;color:var(--muted);
  text-transform:none;letter-spacing:.02em;margin-bottom:11px}
.svc-group-title::after{content:"";flex:1;height:1px;background:var(--line)}

.svc-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(228px,1fr))}
.svc{
  position:relative;border:1.5px solid var(--line-2);border-radius:var(--r);
  background:#fff;padding:15px 16px;cursor:pointer;transition:all var(--dur) var(--ease);
  display:flex;flex-direction:column;gap:5px;min-height:96px;
}
.svc:hover{border-color:var(--brand-primary);box-shadow:var(--shadow-2);transform:translateY(-2px)}
.svc input{position:absolute;opacity:0;width:1px;height:1px}
.svc .nm{font-weight:700;font-size:.96rem;color:var(--brand-ink);padding-inline-end:26px;line-height:1.4}
.svc .ds{font-size:.82rem;color:var(--muted);line-height:1.55}
.svc .tick{position:absolute;inset-block-start:12px;inset-inline-end:12px;width:22px;height:22px;border-radius:50%;
  border:2px solid var(--line-2);display:grid;place-items:center;color:#fff;font-size:.7rem;transition:all var(--dur) var(--ease)}
.svc:has(input:checked){border-color:var(--brand-primary);background:var(--brand-primary-soft)}
.svc:has(input:checked) .tick{background:var(--brand-primary);border-color:var(--brand-primary)}
.svc input:focus-visible ~ .tick{outline:3px solid var(--brand-primary);outline-offset:2px}
.svc-count{position:sticky;bottom:0;padding:10px 0}

/* --------------------------------------------- service question blocks */
.svc-block{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:var(--sp-4);background:#fff}
.svc-block-head{background:var(--brand-tint-cool);padding:13px 17px;display:flex;align-items:center;gap:10px}
.svc-block-head .n{width:26px;height:26px;border-radius:50%;background:var(--brand-primary);color:#fff;
  display:grid;place-items:center;font-size:.8rem;font-weight:800;flex:0 0 auto}
.svc-block-head h3{margin:0;font-size:1rem;color:var(--brand-ink)}
.svc-block-body{padding:var(--sp-5) var(--sp-4)}

/* -------------------------------------------------------- account */
.acct-toggle{display:flex;gap:6px;background:var(--brand-ink-soft);padding:5px;border-radius:var(--r-pill);margin-bottom:var(--sp-4)}
.acct-toggle button{flex:1;border:none;background:none;padding:11px;border-radius:var(--r-pill);font:inherit;
  font-weight:700;font-size:.9rem;color:var(--muted);cursor:pointer;transition:all var(--dur) var(--ease);min-height:44px}
.acct-toggle button.on{background:#fff;color:var(--brand-ink);box-shadow:var(--shadow-1)}

/* ------------------------------------------------------ nav bar */
.wizard-nav{
  position:fixed;inset-inline:0;inset-block-end:0;z-index:70;
  background:rgba(255,255,255,.96);backdrop-filter:blur(10px);
  border-top:1px solid var(--line);padding:12px 0 calc(12px + var(--safe-b));
}
.wizard-nav .bar{display:flex;align-items:center;gap:var(--sp-3)}
.wizard-nav .save-state{font-size:.8rem;color:var(--muted);display:flex;align-items:center;gap:6px}
.wizard-nav .save-state .dot{background:var(--ok)}
@media (max-width:520px){
  .wizard-nav .bar{flex-wrap:wrap}
  .wizard-nav .btn{flex:1 1 auto}
  .wizard-nav .save-state{order:-1;width:100%;justify-content:center;margin-bottom:2px}
}

/* -------------------------------------------------------- success */
.success{text-align:center;padding:var(--sp-7) var(--sp-4)}
.success .mark{width:88px;height:88px;border-radius:50%;background:var(--ok-soft);color:var(--ok);
  display:grid;place-items:center;font-size:2.6rem;margin:0 auto var(--sp-4);animation:pop .5s var(--ease)}
@keyframes pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
.ref-box{display:inline-flex;flex-direction:column;gap:5px;align-items:center;background:var(--brand-tint-cool);
  border:1.5px dashed var(--brand-ink);border-radius:var(--r);padding:16px 30px;margin:var(--sp-4) 0}
.ref-box .lbl{font-size:.8rem;color:var(--muted);font-weight:600}
.ref-box .val{font-family:var(--font-en);font-weight:800;font-size:1.28rem;color:var(--brand-ink);
  letter-spacing:.05em;direction:ltr;unicode-bidi:isolate}
