.kh-consult-root{
  --kh-navy:#0B2F5E; --kh-navy-ink:#092140; --kh-blue:#145DA0; --kh-blue-soft:#E7F0FA;
  --kh-green:#5F9A34; --kh-green-dark:#4C7D29; --kh-green-soft:#EEF6E4;
  --kh-yellow:#F4B400; --kh-yellow-ink:#7A5600; --kh-bg:#F3F7FC; --kh-surface:#FFFFFF;
  --kh-ink:#1B2430; --kh-muted:#5B6B7F; --kh-border:#DCE6F0; --kh-danger:#C0392B; --kh-danger-soft:#FBEAE7;
  --kh-radius:14px; --kh-shadow:0 1px 2px rgba(11,47,94,.06), 0 8px 24px -12px rgba(11,47,94,.18);
  font-family: 'Source Sans 3', ui-sans-serif, system-ui, sans-serif; color:var(--kh-ink);
  background:var(--kh-bg); padding:24px; border-radius:16px; max-width:1000px; margin:0 auto;
}
.kh-consult-root *{box-sizing:border-box;}
.kh-consult-root h1,.kh-consult-root h2,.kh-consult-root h3{font-family:'Manrope',ui-sans-serif,system-ui,sans-serif; margin:0; color:var(--kh-navy-ink);}
.kh-steps{display:flex; gap:0; margin-bottom:22px; background:var(--kh-surface); border:1px solid var(--kh-border); border-radius:999px; padding:5px; box-shadow:var(--kh-shadow); overflow-x:auto;}
.kh-step{flex:1; text-align:center; padding:8px 10px; font-size:12.5px; font-weight:700; color:var(--kh-muted); border-radius:999px; white-space:nowrap;}
.kh-step .num{display:inline-block; width:18px;height:18px;border-radius:50%;background:var(--kh-border); color:#fff; font-size:10.5px; line-height:18px; margin-right:6px;}
.kh-step.active{background:var(--kh-blue-soft); color:var(--kh-navy-ink);}
.kh-step.active .num{background:var(--kh-blue);}
.kh-step.done .num{background:var(--kh-green);}
.kh-card{background:var(--kh-surface); border:1px solid var(--kh-border); border-radius:var(--kh-radius); padding:18px; box-shadow:var(--kh-shadow); margin-bottom:16px;}
.kh-doctor-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:14px;}
.kh-doctor-card{background:var(--kh-surface); border:1px solid var(--kh-border); border-radius:var(--kh-radius); padding:16px; box-shadow:var(--kh-shadow);}
.kh-avatar{width:42px;height:42px;border-radius:10px;background:linear-gradient(150deg,var(--kh-navy),var(--kh-blue)); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-family:'Manrope';}
.kh-doctor-card .kh-row{display:flex; gap:10px; align-items:center; margin-bottom:8px;}
.kh-doctor-card .kh-name{font-weight:800; font-size:14.5px;}
.kh-doctor-card .kh-dept{color:var(--kh-muted); font-size:12.5px;}
.kh-meta{font-size:11.5px; color:var(--kh-muted); margin:2px 0;}
.kh-btn{border:none; border-radius:999px; padding:9px 16px; font-weight:700; font-size:13.5px; cursor:pointer;}
.kh-btn-primary{background:var(--kh-blue); color:#fff;}
.kh-btn-green{background:var(--kh-green); color:#fff;}
.kh-btn-outline{background:transparent; border:1.5px solid var(--kh-blue); color:var(--kh-blue);}
.kh-btn:disabled{opacity:.55; cursor:not-allowed;}
.kh-btn.full{width:100%;}
.kh-field{margin-bottom:12px;}
.kh-field label{display:block; font-size:12px; font-weight:700; color:var(--kh-navy-ink); margin-bottom:5px;}
.kh-field input,.kh-field select{width:100%; padding:9px 11px; border:1px solid var(--kh-border); border-radius:9px; font-size:14px; font-family:inherit;}
.kh-error{color:var(--kh-danger); background:var(--kh-danger-soft); border-radius:8px; padding:8px 10px; font-size:12.5px; margin-top:8px;}
.kh-note{background:var(--kh-blue-soft); border-radius:8px; padding:10px 12px; font-size:12.5px; color:var(--kh-navy-ink); margin-top:10px;}
.kh-success{background:var(--kh-green-soft); border:1px solid #cfe3b8; border-radius:8px; padding:12px 14px; font-size:13.5px; color:var(--kh-green-dark);}
.kh-slot-grid{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px;}
.kh-slot-btn{border:1px solid var(--kh-border); background:var(--kh-blue-soft); border-radius:9px; padding:8px 12px; font-weight:700; font-size:13px; cursor:pointer; color:var(--kh-navy-ink);}
.kh-slot-btn.selected{background:var(--kh-blue); color:#fff;}
.kh-summary-row{display:flex; justify-content:space-between; font-size:13.5px; padding:7px 0; border-bottom:1px solid var(--kh-border);}
.kh-summary-row .k{color:var(--kh-muted);}
.kh-summary-row .v{font-weight:700;}
.kh-loading{color:var(--kh-muted); font-size:13px; padding:12px 0;}
.kh-back-link{font-size:13px; color:var(--kh-blue); cursor:pointer; font-weight:700; display:inline-block; margin-bottom:12px;}
.kh-patients-table{width:100%; border-collapse:collapse; font-size:13px; margin:10px 0;}
.kh-patients-table th{text-align:left; color:var(--kh-muted); font-size:11.5px; text-transform:uppercase; padding:6px 4px; border-bottom:1px solid var(--kh-border);}
.kh-patients-table td{padding:8px 4px; border-bottom:1px solid var(--kh-border);}
.kh-otp-row{display:flex; gap:8px;}
.kh-otp-row input{flex:1;}
.kh-resend{background:none; border:none; color:var(--kh-blue); font-weight:700; cursor:pointer; font-size:12.5px; padding:0;}
.kh-resend:disabled{color:var(--kh-muted); cursor:default;}

/* ---- v3: photos, slot groups, payment ---- */
.kh-photo{width:42px;height:42px;border-radius:10px;object-fit:cover;}
.kh-sub{margin:14px 0 4px; font-size:12px; font-weight:700; color:var(--kh-navy-ink);}
.kh-slot-group{margin-top:8px;}
.kh-slot-hour{font-size:11.5px; font-weight:700; color:var(--kh-muted); text-transform:uppercase; letter-spacing:.04em; margin-top:8px;}
.kh-slot-group .kh-slot-grid{margin-top:6px;}
.kh-turnstile{margin:6px 0 12px; min-height:65px;}
.kh-pay-options{display:flex; flex-direction:column; gap:8px; margin-top:12px;}
.kh-pay-opt{display:flex; gap:10px; align-items:flex-start; border:1.5px solid var(--kh-border); border-radius:10px; padding:10px 12px; cursor:pointer; background:var(--kh-surface);}
.kh-pay-opt input{margin-top:3px;}
.kh-pay-opt span{display:flex; flex-direction:column; font-size:13.5px;}
.kh-pay-opt small{color:var(--kh-muted); font-size:11.5px; margin-top:2px;}
.kh-pay{text-align:center;}
.kh-pay-amount{font-family:'Manrope',ui-sans-serif,system-ui,sans-serif; font-weight:800; font-size:22px; color:var(--kh-navy-ink); margin-bottom:8px;}
.kh-qr{display:block; margin:0 auto; max-width:100%; height:auto; border:1px solid var(--kh-border); border-radius:12px; padding:8px; background:#fff;}
.kh-upi-link{display:block; text-align:center; text-decoration:none; color:#fff;}
.kh-pay-timer{margin:12px 0 4px; font-size:13px; font-weight:700; color:var(--kh-navy-ink);}
.kh-pay .kh-note{text-align:left;}
@media (max-width:520px){ .kh-consult-root{padding:14px;} .kh-qr{width:200px; height:200px;} }
