:root{
  --bg:#f4f6f9; --card:#fff; --ink:#1f2933; --muted:#6b7680; --line:#dbe1e8;
  --brand:#1565c0; --brand-dark:#0d47a1; --ok:#2e7d32; --err:#c62828; --focus:#90caf9;
  --radius:10px; --maxw:760px;
}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--ink)}
a{color:var(--brand)}
.header{background:var(--card);border-bottom:1px solid var(--line);padding:14px 20px;display:flex;
  align-items:center;gap:14px}
.header .logo{width:40px;height:40px;border-radius:8px;background:var(--brand);color:#fff;display:grid;
  place-items:center;font-weight:700}
.header .practice{font-weight:600}
.header .tenant{color:var(--muted);font-size:13px}
.wrap{max-width:var(--maxw);margin:24px auto;padding:0 16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;
  box-shadow:0 1px 3px rgba(16,24,40,.04)}
h1{font-size:22px;margin:0 0 4px}
.sub{color:var(--muted);margin:0 0 20px}
/* stepper */
.steps{display:flex;gap:6px;margin:0 0 22px;flex-wrap:wrap}
.steps li{list-style:none;flex:1 1 auto;min-width:90px;text-align:center;font-size:12px;color:var(--muted);
  padding:8px 4px;border-bottom:3px solid var(--line)}
.steps li.active{color:var(--brand);border-color:var(--brand);font-weight:600}
.steps li.done{color:var(--ok);border-color:var(--ok)}
/* fields */
.step{display:none}
.step.active{display:block}
.field{margin:0 0 16px}
.field label{display:block;font-size:14px;font-weight:600;margin:0 0 5px}
.field .req{color:var(--err)}
.field .opt{color:var(--muted);font-weight:400}
input,select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:15px;
  background:#fff;color:var(--ink)}
input:focus,select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus)}
.row{display:flex;gap:12px;flex-wrap:wrap}
.row>.field{flex:1 1 160px}
.dob{display:flex;gap:8px}
.hint{font-size:12px;color:var(--muted);margin-top:4px}
.err-msg{color:var(--err);font-size:12.5px;margin-top:5px;display:none}
.field.invalid input,.field.invalid select{border-color:var(--err)}
.field.invalid .err-msg{display:block}
.gated{border:1px dashed var(--line);border-radius:8px;padding:14px;background:#fbfcfe}
.badge{display:inline-block;font-size:11px;font-weight:700;color:#8a5a00;background:#fff3dc;
  border:1px solid #ffe0a3;border-radius:999px;padding:2px 9px;margin-left:8px}
/* patient cards */
.patient{border:1px solid var(--line);border-radius:8px;padding:16px;margin:0 0 14px;position:relative}
.patient h3{margin:0 0 12px;font-size:15px}
.patient .remove{position:absolute;top:12px;right:12px;background:none;border:none;color:var(--err);
  font-size:13px;cursor:pointer;width:auto}
.linkbtn{background:none;border:1px dashed var(--brand);color:var(--brand);width:auto;padding:8px 14px;
  border-radius:8px;cursor:pointer;font-size:14px}
/* nav */
.nav{display:flex;justify-content:space-between;margin-top:22px;gap:12px}
button.btn{width:auto;padding:11px 22px;border-radius:8px;border:1px solid var(--brand);background:var(--brand);
  color:#fff;font-size:15px;font-weight:600;cursor:pointer}
button.btn:hover{background:var(--brand-dark)}
button.btn.ghost{background:#fff;color:var(--brand)}
button.btn:disabled{opacity:.5;cursor:not-allowed}
.recaptcha-ph{border:1px dashed var(--line);border-radius:8px;padding:14px;color:var(--muted);font-size:13px;
  background:#fbfcfe}
.legal{font-size:12px;color:var(--muted);margin:18px 0 0;line-height:1.5}
.done-icon{width:56px;height:56px;border-radius:50%;background:var(--ok);color:#fff;display:grid;
  place-items:center;font-size:28px;margin:0 auto 14px}
.center{text-align:center}
.footer{max-width:var(--maxw);margin:16px auto;padding:0 16px;color:var(--muted);font-size:12px;text-align:center}
@media (prefers-color-scheme:dark){
  :root{--bg:#0f1620;--card:#161f2b;--ink:#e6ebf1;--muted:#9aa7b4;--line:#2a3746;--focus:#1e3a5f}
  input,select{background:#0f1620;color:var(--ink)}
  .gated,.recaptcha-ph{background:#131c27}
}
