
:root {
  --navy:#0C1F35; --navy2:#1A3552; --teal:#0D8F7A; --teal2:#0A7564;
  --teal-l:#E8F7F4; --teal-m:#C2EAE3;
  --gold:#C8983A; --gold-l:#FDF6EA;
  --slate:#4A596B; --slate-l:#8999AB;
  --border:#E0E6ED; --bg:#F1F4F8; --white:#FFF;
  --green:#1E8C4E; --green-l:#EBF7F1;
  --red:#C0392B;
  --r:14px; --rs:9px; --rx:6px;
  --sh:0 2px 12px rgba(12,31,53,.08);
  --shm:0 6px 28px rgba(12,31,53,.13);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Sora',sans-serif;background:var(--bg);color:var(--navy);min-height:100vh;font-size:15px}

/* ── TOP BAR ── */
.topbar{background:var(--navy);height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;position:sticky;top:0;z-index:300}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:600;font-size:.98rem}
.brand-ico{width:32px;height:32px;border-radius:9px;background:var(--teal);display:flex;align-items:center;justify-content:center;font-family:'Lora',serif;font-size:.9rem;color:#fff;font-weight:600}
.nav-sec{color:rgba(255,255,255,.4);font-size:.72rem;display:flex;align-items:center;gap:5px}
.prog-rail{height:3px;background:var(--navy2)}
.prog-fill{height:3px;background:var(--teal);transition:width .45s cubic-bezier(.4,0,.2,1)}

/* ── LAYOUT ── */
.wrap{max-width:1100px;margin:0 auto;padding:1.5rem 1rem 3rem;display:grid;grid-template-columns:1fr 320px;gap:1.25rem;align-items:start}

/* ── STEP TABS ── */
.tabs{display:flex;gap:5px;background:#fff;border-radius:var(--r);padding:5px;box-shadow:var(--sh);margin-bottom:.9rem;overflow-x:auto}
.tab{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 10px;border-radius:var(--rs);border:none;background:transparent;cursor:pointer;font-family:'Sora',sans-serif;font-size:.74rem;font-weight:500;color:var(--slate-l);transition:all .18s;white-space:nowrap;min-width:80px}
.tab:hover:not([disabled]){background:var(--bg);color:var(--slate)}
.tab.active{background:var(--teal-l);color:var(--teal);font-weight:600}
.tab.done{color:var(--teal)}
.tab[disabled]{opacity:.38;cursor:not-allowed}
.tnum{width:21px;height:21px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;border:1.5px solid var(--border);color:var(--slate-l);flex-shrink:0;transition:all .18s}
.tab.active .tnum,.tab.done .tnum{background:var(--teal);border-color:var(--teal);color:#fff}

/* ── ACCORDION ── */
.acc{background:#fff;border-radius:var(--r);box-shadow:var(--sh);margin-bottom:.9rem;overflow:hidden;transition:box-shadow .2s}
.acc.active{box-shadow:var(--shm)}
.acc-hdr{display:flex;align-items:center;gap:11px;padding:1rem 1.3rem;cursor:default;user-select:none}
.acc.collapsed .acc-hdr{cursor:pointer}
.acc.collapsed .acc-hdr:hover{background:var(--bg)}
.sec-num{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;flex-shrink:0;border:2px solid var(--border);color:var(--slate-l);background:var(--bg);transition:all .2s}
.acc.active .sec-num{background:var(--teal);border-color:var(--teal);color:#fff}
.acc.done .sec-num{background:var(--teal);border-color:var(--teal);color:#fff}
.sec-title{font-weight:600;font-size:.88rem;color:var(--navy)}
.sec-sub{font-size:.72rem;color:var(--slate-l);margin-top:1px}
.acc-collapse-sum{display:none;padding:7px 1.3rem 7px 3.5rem;background:var(--teal-l);border-top:1px solid var(--teal-m);font-size:.76rem;color:var(--slate);gap:8px;flex-wrap:wrap;align-items:center}
.acc.collapsed.done .acc-collapse-sum{display:flex}
.sum-chip{display:inline-flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--teal-m);border-radius:20px;padding:3px 10px;font-size:.72rem;color:var(--navy);font-weight:500}
.edit-pill{margin-left:auto;font-size:.72rem;color:var(--teal);font-weight:600;display:flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;padding:3px 9px;border-radius:5px;flex-shrink:0;transition:background .15s}
.edit-pill:hover{background:var(--teal-m)}
.acc-body{padding:0 1.3rem 1.3rem;display:none}
.acc.active .acc-body{display:block}

/* ── SERVICE SEARCH ── */
.svc-search{position:relative;margin-bottom:.9rem}
.svc-search .bi-search{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--slate-l);font-size:.83rem}
.svc-search input{width:100%;padding:8px 12px 8px 31px;border:1.5px solid var(--border);border-radius:var(--rs);font-family:'Sora',sans-serif;font-size:.84rem;background:var(--bg);color:var(--navy);transition:all .2s}
.svc-search input:focus{outline:none;border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px rgba(13,143,122,.1)}

/* ── SERVICE CARDS ── */
.cat-lbl{font-size:.63rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--slate-l);margin:.9rem 0 .45rem;display:flex;align-items:center;gap:7px}
.cat-lbl::after{content:'';flex:1;height:1px;background:var(--border)}
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:7px}
.svc-card{border:2px solid var(--border);border-radius:var(--rs);padding:10px 12px;cursor:pointer;transition:all .17s;background:#fff;position:relative;user-select:none}
.svc-card:hover{border-color:var(--teal);background:var(--teal-l);transform:translateY(-1px);box-shadow:0 3px 10px rgba(13,143,122,.12)}
.svc-card.sel{border-color:var(--teal);background:var(--teal-l)}
.svc-card.sel::after{content:'\F26E';font-family:'Bootstrap Icons';position:absolute;top:8px;right:9px;color:var(--teal);font-size:.95rem}
.svc-card.suggested{border-color:var(--gold);background:var(--gold-l)}
.svc-card.suggested::before{content:'✦ Suggested';position:absolute;top:-1px;left:10px;font-size:.58rem;font-weight:700;color:var(--gold);letter-spacing:.06em;text-transform:uppercase;background:var(--gold-l);padding:0 4px}
.svc-name{font-weight:600;font-size:.82rem;color:var(--navy);padding-right:18px;line-height:1.35}
.svc-foot{display:flex;align-items:center;justify-content:space-between;margin-top:6px}
.svc-dur{font-size:.68rem;color:var(--slate-l);display:flex;align-items:center;gap:3px}
.badge-free{font-size:.67rem;font-weight:700;background:var(--green-l);color:var(--green);padding:2px 7px;border-radius:9px}
.badge-paid{font-size:.67rem;font-weight:700;background:var(--gold-l);color:var(--gold);padding:2px 7px;border-radius:9px}
.badge-pool{font-size:.62rem;font-weight:700;background:#EAF4FF;color:#1A6FBB;padding:2px 7px;border-radius:9px;display:inline-flex;align-items:center;gap:3px}

/* ── SUGGESTIONS PANEL ── */
.suggest-panel{display:none;background:linear-gradient(135deg,#FFFDF5,#FDF6EA);border:1.5px solid #EDD89A;border-radius:var(--rs);padding:1rem 1.1rem;margin-top:1rem;animation:fadeIn .25s ease}
.suggest-panel.show{display:block}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.suggest-hdr{display:flex;align-items:center;gap:8px;margin-bottom:.65rem}
.suggest-hdr .ico{width:26px;height:26px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;color:#fff;font-size:.75rem;flex-shrink:0}
.suggest-hdr strong{font-size:.8rem;color:var(--navy);font-weight:600}
.suggest-hdr span{font-size:.72rem;color:var(--slate-l)}
.suggest-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px}
.sug-card{border:1.5px solid #EDD89A;border-radius:var(--rs);padding:9px 10px;cursor:pointer;background:#fff;transition:all .17s;position:relative}
.sug-card:hover{border-color:var(--gold);background:var(--gold-l);transform:translateY(-1px)}
.sug-card.already-sel{opacity:.5;cursor:default;pointer-events:none}
.sug-card.already-sel::after{content:'Added ✓';position:absolute;top:6px;right:6px;font-size:.62rem;color:var(--teal);font-weight:700}
.sug-name{font-size:.78rem;font-weight:600;color:var(--navy);line-height:1.3;padding-right:14px}
.sug-foot{display:flex;align-items:center;justify-content:space-between;margin-top:5px}
.sug-dur{font-size:.65rem;color:var(--slate-l)}
.sug-add{font-size:.68rem;font-weight:700;color:var(--gold);display:flex;align-items:center;gap:3px}
.sug-add .bi{font-size:.7rem}

/* ── PATIENT FORM ── */
.frow{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:11px}
.frow.full{grid-template-columns:1fr}
.fg{display:flex;flex-direction:column;gap:5px}
.fg label{font-size:.73rem;font-weight:600;color:var(--slate);letter-spacing:.02em}
.fg input,.fg textarea{padding:8px 12px;border:1.5px solid var(--border);border-radius:var(--rs);font-family:'Sora',sans-serif;font-size:.86rem;color:var(--navy);background:var(--bg);transition:all .2s;width:100%}
.fg textarea{resize:vertical;min-height:68px;line-height:1.5}
.fg input:focus,.fg textarea:focus{outline:none;border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px rgba(13,143,122,.1)}
.fg input.inv{border-color:var(--red);background:#FFF5F5}
.ferr{font-size:.7rem;color:var(--red);display:none}
.ferr.on{display:block}
.ph-wrap{display:flex;gap:7px}
.ph-flag{display:flex;align-items:center;gap:5px;padding:8px 11px;border:1.5px solid var(--border);border-radius:var(--rs);font-size:.8rem;background:#fff;color:var(--slate);white-space:nowrap;flex-shrink:0}

/* ── PROVIDER ── */
.prov-grid{display:flex;flex-direction:column;gap:6px}
.any-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border:2px dashed var(--border);border-radius:var(--rs);cursor:pointer;font-size:.8rem;color:var(--slate-l);font-weight:500;transition:all .17s;background:#fff;margin-bottom:6px}
.any-row:hover,.any-row.sel{border-color:var(--teal);color:var(--teal);background:var(--teal-l)}
.prov-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border:2px solid var(--border);border-radius:var(--rs);cursor:pointer;transition:all .17s;background:#fff}
.prov-row:hover,.prov-row.sel{border-color:var(--teal);background:var(--teal-l)}
.pav{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.76rem;font-weight:700;color:#fff;flex-shrink:0}
.pinf{flex:1}
.pname{font-size:.81rem;font-weight:600;color:var(--navy)}
.prole{font-size:.68rem;color:var(--slate-l)}
.pchk{color:var(--teal);font-size:.95rem;opacity:0;transition:opacity .15s;flex-shrink:0}
.prov-row.sel .pchk,.any-row.sel .pchk{opacity:1}

/* ── COMMON POOL / WAITING ROOM ── */
.pool-notice{background:linear-gradient(135deg,#EAF4FF,#F0F8FF);border:1.5px solid #A8CFF0;border-radius:var(--rs);padding:1rem 1.2rem;margin-bottom:.9rem;display:flex;gap:11px;align-items:flex-start;animation:fadeIn .25s ease}
.pool-notice .pool-ico{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#1A6FBB,#2E8FE0);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1rem;flex-shrink:0;margin-top:1px;box-shadow:0 3px 10px rgba(26,111,187,.25)}
.pool-notice .pool-body{flex:1}
.pool-notice .pool-title{font-size:.84rem;font-weight:700;color:#0D2F54;margin-bottom:3px;display:flex;align-items:center;gap:6px}
.pool-notice .pool-sub{font-size:.76rem;color:#3A6A9A;line-height:1.5}
.pool-notice .pool-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.pool-chip{display:inline-flex;align-items:center;gap:4px;background:rgba(46,143,224,.12);border:1px solid rgba(46,143,224,.3);color:#1A6FBB;font-size:.69rem;font-weight:600;padding:3px 9px;border-radius:12px}
.mixed-notice{background:var(--teal-l);border:1.5px solid var(--teal-m);border-radius:var(--rs);padding:.75rem 1rem;margin-bottom:.85rem;font-size:.76rem;color:var(--teal);display:flex;gap:8px;align-items:flex-start;line-height:1.5}
.mixed-notice .bi{flex-shrink:0;margin-top:2px;font-size:.83rem}
.provider-section{transition:opacity .2s}
.provider-section.dimmed{opacity:.45;pointer-events:none}

/* ── CALENDAR + SLOTS ── */
.dt-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.sub-ttl{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--slate-l);margin-bottom:.55rem}
.mini-cal{background:var(--bg);border-radius:var(--rs);padding:11px}
.cal-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.cal-mo{font-size:.82rem;font-weight:600;color:var(--navy)}
.cal-btn{width:25px;height:25px;border-radius:50%;border:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.72rem;color:var(--slate);transition:all .14s}
.cal-btn:hover{background:var(--teal);color:#fff;border-color:var(--teal)}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cdn{text-align:center;font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--slate-l);padding:3px 0}
.cd{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.73rem;border-radius:50%;cursor:pointer;color:var(--navy);transition:all .12s}
.cd:hover:not(.dis):not(.emp){background:var(--teal-m)}
.cd.today{font-weight:700;color:var(--teal)}
.cd.sel{background:var(--teal);color:#fff;font-weight:700}
.cd.dis{color:var(--border);cursor:not-allowed}
.cd.emp{pointer-events:none}

.t-area{margin-top:.7rem}
.t-period{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--slate-l);margin:7px 0 4px}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.slot{text-align:center;padding:6px 2px;border:1.5px solid var(--border);border-radius:var(--rx);font-size:.71rem;font-weight:500;color:var(--navy);background:#fff;cursor:pointer;transition:all .12s}
.slot:hover{border-color:var(--teal);color:var(--teal);background:var(--teal-l)}
.slot.sel{background:var(--teal);border-color:var(--teal);color:#fff}
.slot.bk{background:var(--bg);color:var(--border);cursor:not-allowed;border-color:var(--bg)}
.no-date{text-align:center;padding:1.25rem;color:var(--slate-l);font-size:.8rem}
.no-date .bi{font-size:1.5rem;display:block;margin-bottom:5px;color:var(--border)}

/* ── ACTIONS (inline — hidden, replaced by sticky bar) ── */
.actions{display:none}
.btn-back{display:flex;align-items:center;gap:6px;padding:8px 18px;border:1.5px solid var(--border);border-radius:var(--rs);font-family:'Sora',sans-serif;font-size:.83rem;font-weight:500;color:var(--slate);background:#fff;cursor:pointer;transition:all .17s}
.btn-back:hover{border-color:var(--slate);color:var(--navy)}
.btn-next{display:flex;align-items:center;gap:7px;padding:10px 26px;border:none;border-radius:var(--rs);font-family:'Sora',sans-serif;font-size:.85rem;font-weight:600;color:#fff;background:var(--teal);cursor:pointer;transition:all .2s}
.btn-next:hover{background:var(--teal2);box-shadow:0 4px 14px rgba(13,143,122,.3);transform:translateY(-1px)}
.btn-next:active{transform:none;box-shadow:none}
.btn-book{display:flex;align-items:center;gap:7px;padding:10px 26px;border:none;border-radius:var(--rs);font-family:'Sora',sans-serif;font-size:.86rem;font-weight:700;color:#fff;background:var(--navy);cursor:pointer;transition:all .2s}
.btn-book:hover{background:var(--teal);box-shadow:0 4px 18px rgba(12,31,53,.3);transform:translateY(-1px)}

/* ── STICKY BOTTOM ACTION BAR ── */
.sticky-bar{
  position:fixed;bottom:0;left:0;right:0;z-index:200;
  background:rgba(255,255,255,0.96);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-top:1px solid var(--border);
  box-shadow:0 -4px 24px rgba(12,31,53,.10);
  padding:.75rem 1.5rem;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  transition:transform .25s cubic-bezier(.4,0,.2,1);
}
.sticky-bar.hidden{transform:translateY(110%)}
.sticky-bar-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.sticky-bar-step{font-size:.7rem;color:var(--slate-l);font-weight:600;white-space:nowrap}
.sticky-bar-hint{font-size:.73rem;color:var(--slate);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sticky-bar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
/* add bottom padding so content isn't hidden behind bar */
body{padding-bottom:72px}
.svc-count-bar{font-size:.78rem;color:var(--slate-l);display:flex;align-items:center;gap:7px;display:none}
.count-badge{display:inline-flex;align-items:center;gap:4px;background:var(--teal-l);color:var(--teal);font-weight:600;padding:3px 9px;border-radius:10px;font-size:.72rem}

/* ── SIDEBAR ── */
.sidebar{position:sticky;top:70px}
.sum-box{background:var(--navy);border-radius:var(--r);padding:1.2rem;color:#fff;box-shadow:var(--shm)}
.sum-box h3{font-family:'Lora',serif;font-size:.98rem;font-weight:600;margin-bottom:.9rem}
.s-sec{margin-bottom:.9rem;padding-bottom:.9rem;border-bottom:1px solid rgba(255,255,255,.08)}
.s-sec:last-child{border:none;margin:0;padding:0}
.s-lbl{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.35);margin-bottom:5px}
.s-item{display:flex;align-items:flex-start;justify-content:space-between;gap:7px;padding:3px 0}
.s-name{font-size:.79rem;color:rgba(255,255,255,.82)}
.s-price{font-size:.75rem;font-weight:700;white-space:nowrap}
.s-price.free{color:#5ECBA1}
.s-price.paid{color:var(--gold)}
.s-empty{font-size:.76rem;color:rgba(255,255,255,.2);font-style:italic}
.s-row{font-size:.78rem;color:rgba(255,255,255,.7);display:flex;align-items:flex-start;gap:6px;line-height:1.5;margin-top:3px}
.s-row .bi{color:var(--teal);font-size:.73rem;flex-shrink:0;margin-top:2px}
.total-row{display:flex;justify-content:space-between;align-items:center;padding-top:8px;margin-top:2px}
.total-lbl{font-size:.72rem;color:rgba(255,255,255,.45);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.total-val{font-size:1.1rem;font-weight:700;color:#fff}
.total-val.free{color:#5ECBA1}

.loc-box{background:#fff;border-radius:var(--r);padding:.9rem 1.1rem;box-shadow:var(--sh);margin-top:.9rem}
.loc-name{font-weight:600;font-size:.85rem;color:var(--navy);margin-bottom:3px}
.loc-row{font-size:.75rem;color:var(--slate-l);display:flex;align-items:flex-start;gap:5px;line-height:1.4;margin-top:3px}
.loc-row .bi{color:var(--teal);margin-top:2px;flex-shrink:0;font-size:.72rem}

/* ── CONFIRM ── */
.cf-banner{background:var(--teal-l);border:1px solid var(--teal-m);border-radius:var(--rs);padding:9px 13px;display:flex;gap:9px;align-items:center;font-size:.8rem;color:var(--teal);font-weight:500;margin-bottom:1rem}
.cf-block{background:var(--bg);border-radius:var(--rs);padding:1rem 1.1rem;margin-bottom:.8rem}
.cf-block:last-child{margin:0}
.cf-blk-ttl{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--slate-l);margin-bottom:.6rem}
.cf-row{display:flex;justify-content:space-between;align-items:flex-start;padding:6px 0;border-bottom:1px solid var(--border);font-size:.83rem}
.cf-row:last-child{border:none}
.cf-key{color:var(--slate-l);font-size:.77rem}
.cf-val{font-weight:500;color:var(--navy);text-align:right;max-width:60%}

/* ── COUNTRY CODE SELECTOR ── */
.cc-trigger{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1.5px solid var(--border);border-radius:var(--rs);font-size:.82rem;background:#fff;color:var(--slate);white-space:nowrap;flex-shrink:0;cursor:pointer;user-select:none;transition:all .15s;position:relative}
.cc-trigger:hover{border-color:var(--teal);background:var(--teal-l)}
.cc-trigger.open{border-color:var(--teal);background:var(--teal-l);box-shadow:0 0 0 3px rgba(13,143,122,.1)}
.cc-flag{font-size:1rem;line-height:1}
.cc-code{font-size:.79rem;font-weight:600;color:var(--navy)}
.cc-chevron{font-size:.6rem;color:var(--slate-l);transition:transform .18s}
.cc-trigger.open .cc-chevron{transform:rotate(180deg)}
.cc-portal{position:fixed;z-index:9000;background:#fff;border-radius:var(--r);box-shadow:0 8px 32px rgba(12,31,53,.18);border:1px solid var(--border);width:280px;max-height:320px;display:flex;flex-direction:column;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;transform:translateY(-6px)}
.cc-portal.open{opacity:1;pointer-events:all;transform:translateY(0)}
.cc-search-wrap{padding:8px 10px;border-bottom:1px solid var(--border);flex-shrink:0}
.cc-search-inp{width:100%;padding:6px 10px 6px 28px;border:1.5px solid var(--border);border-radius:var(--rx);font-family:'Sora',sans-serif;font-size:.8rem;color:var(--navy);background:var(--bg);outline:none;transition:all .15s}
.cc-search-inp:focus{border-color:var(--teal);background:#fff}
.cc-search-icon{position:absolute;left:19px;top:50%;transform:translateY(-50%);color:var(--slate-l);font-size:.75rem;pointer-events:none}
.cc-list{overflow-y:auto;flex:1}
.cc-item{display:flex;align-items:center;gap:9px;padding:8px 12px;cursor:pointer;font-size:.82rem;color:var(--navy);transition:background .1s}
.cc-item:hover{background:var(--teal-l)}
.cc-item.active{background:var(--teal-l);color:var(--teal)}
.cc-item .ci-flag{font-size:.95rem;width:22px;text-align:center;flex-shrink:0}
.cc-item .ci-name{flex:1;font-size:.79rem;color:var(--slate)}
.cc-item .ci-code{font-size:.76rem;font-weight:600;color:var(--navy);flex-shrink:0}
.cc-item.no-result{color:var(--slate-l);cursor:default;font-size:.78rem;text-align:center;justify-content:center;padding:14px}

/* ── VERIFIED BADGE ── */
.verified-badge{display:none;align-items:center;gap:4px;background:var(--green-l);color:var(--green);border:1px solid #a8dfc0;border-radius:20px;padding:2px 9px;font-size:.68rem;font-weight:700;white-space:nowrap;flex-shrink:0}
.verified-badge.show{display:inline-flex}
.verified-badge .bi{font-size:.72rem}
.contact-field-row{display:flex;align-items:center;gap:7px}
.contact-field-row .ph-wrap{flex:1}
.contact-field-row input[type=email]{flex:1}

/* ── OTP MODAL ── */
.otp-overlay{position:fixed;inset:0;z-index:9999;background:rgba(12,31,53,.55);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}
.otp-overlay.show{opacity:1;pointer-events:all}
.otp-box{background:#fff;border-radius:var(--r);padding:1.8rem 1.5rem 1.5rem;max-width:380px;width:calc(100% - 2rem);box-shadow:0 20px 60px rgba(12,31,53,.22);transform:translateY(18px);transition:transform .25s}
.otp-overlay.show .otp-box{transform:none}
.otp-ico{width:52px;height:52px;border-radius:50%;background:var(--teal-l);display:flex;align-items:center;justify-content:center;color:var(--teal);font-size:1.4rem;margin:0 auto .9rem}
.otp-title{text-align:center;font-family:'Lora',serif;font-size:1.1rem;color:var(--navy);font-weight:600;margin-bottom:.3rem}
.otp-sub{text-align:center;font-size:.78rem;color:var(--slate-l);margin-bottom:1.2rem;line-height:1.5}
.otp-sub strong{color:var(--navy)}
.otp-inputs{display:flex;gap:8px;justify-content:center;margin-bottom:1rem}
.otp-digit{width:44px;height:52px;text-align:center;font-size:1.3rem;font-weight:700;border:2px solid var(--border);border-radius:var(--rs);font-family:'Sora',sans-serif;color:var(--navy);background:var(--bg);outline:none;transition:all .15s}
.otp-digit:focus{border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px rgba(13,143,122,.12)}
.otp-digit.filled{border-color:var(--teal-m)}
.otp-digit.err{border-color:var(--red);background:#FFF5F5}
.otp-err{font-size:.74rem;color:var(--red);text-align:center;min-height:18px;margin-bottom:.5rem}
.otp-resend{text-align:center;font-size:.75rem;color:var(--slate-l);margin-bottom:1rem}
.otp-resend button{background:none;border:none;color:var(--teal);font-family:'Sora',sans-serif;font-size:.75rem;font-weight:600;cursor:pointer;padding:0}
.otp-resend button:disabled{color:var(--slate-l);cursor:default}
.otp-resend .countdown{font-weight:600;color:var(--slate)}
.otp-verify-btn{width:100%;padding:10px;border:none;border-radius:var(--rs);background:var(--teal);color:#fff;font-family:'Sora',sans-serif;font-size:.9rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;transition:all .2s}
.otp-verify-btn:hover{background:var(--teal2)}
.otp-verify-btn:disabled{opacity:.5;cursor:not-allowed}
.otp-cancel{display:block;text-align:center;font-size:.73rem;color:var(--slate-l);margin-top:.8rem;cursor:pointer;background:none;border:none;font-family:'Sora',sans-serif;width:100%}
.otp-cancel:hover{color:var(--slate)}

/* ── CONSENT SECTION ── */
.consent-section{background:var(--gold-l);border:1.5px solid #EDD89A;border-radius:var(--rs);padding:1rem 1.1rem;margin-bottom:1rem}
.consent-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--slate);margin-bottom:.75rem;display:flex;align-items:center;gap:7px}
.consent-title .bi{color:var(--gold);font-size:.85rem}
.consent-check-row{display:flex;align-items:flex-start;gap:9px;margin-bottom:.6rem}
.consent-check-row:last-of-type{margin-bottom:0}
.consent-cb{width:18px;height:18px;border:2px solid var(--border);border-radius:4px;flex-shrink:0;appearance:none;-webkit-appearance:none;cursor:pointer;margin-top:1px;position:relative;background:#fff;transition:all .15s}
.consent-cb:checked{background:var(--teal);border-color:var(--teal)}
.consent-cb:checked::after{content:'';position:absolute;left:4px;top:1px;width:6px;height:10px;border:2px solid #fff;border-top:none;border-left:none;transform:rotate(45deg)}
.consent-cb.inv{border-color:var(--red)}
.consent-lbl{font-size:.79rem;color:var(--navy);line-height:1.45;cursor:pointer;flex:1}
.consent-lbl a{color:var(--teal);text-decoration:none;font-weight:500}
.consent-lbl a:hover{text-decoration:underline}
.consent-lbl .powered{font-size:.72rem;color:var(--slate-l);display:block;margin-top:2px}
.sms-bullets{margin-top:.65rem;padding-left:.2rem;display:flex;flex-direction:column;gap:5px}
.sms-bullet{display:flex;align-items:flex-start;gap:8px;font-size:.73rem;color:var(--slate)}
.sms-bullet .dot{width:7px;height:7px;border-radius:50%;background:var(--slate-l);flex-shrink:0;margin-top:4px}
.consent-note{font-size:.72rem;color:var(--slate-l);margin-top:.75rem;padding-top:.6rem;border-top:1px solid #EDD89A;line-height:1.5}

/* ── PAYMENT PAGE ── */
#paymentPage{display:none}
.pay-wrap{max-width:720px;margin:0 auto;padding:1.25rem 1rem 6rem}
.pay-header{margin-bottom:1.1rem;display:flex;align-items:center;gap:10px}
.pay-back-btn{display:flex;align-items:center;gap:5px;background:#fff;border:1.5px solid var(--border);border-radius:var(--rs);padding:7px 12px;font-family:'Sora',sans-serif;font-size:.76rem;font-weight:600;color:var(--slate);cursor:pointer;transition:all .17s;flex-shrink:0}
.pay-back-btn:hover{border-color:var(--slate);color:var(--navy);background:var(--bg)}
.pay-header-text{flex:1;min-width:0}
.pay-header-text h2{font-family:'Lora',serif;font-size:1.2rem;color:var(--navy);margin-bottom:.15rem;line-height:1.2}
.pay-header-text p{font-size:.76rem;color:var(--slate-l)}

/* Amount summary card */
.pay-amount-card{background:linear-gradient(135deg,var(--navy),var(--navy2));border-radius:var(--r);padding:1.1rem 1.3rem;margin-bottom:1rem;box-shadow:var(--shm);position:relative;overflow:hidden}
.pay-amount-card::before{content:'';position:absolute;top:-40px;right:-40px;width:140px;height:140px;border-radius:50%;background:rgba(13,143,122,.18)}
.pay-amount-card::after{content:'';position:absolute;bottom:-30px;right:60px;width:90px;height:90px;border-radius:50%;background:rgba(13,143,122,.08)}
.pay-amount-top{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;z-index:1;margin-bottom:.7rem}
.pay-amount-label{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.5)}
.pay-amount-val{font-size:1.85rem;font-weight:700;color:#fff;line-height:1;font-family:'Sora',sans-serif;letter-spacing:-.01em}
.pay-amount-svcs-toggle{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.85);font-size:.7rem;font-weight:600;padding:5px 10px;border-radius:18px;cursor:pointer;display:flex;align-items:center;gap:5px;transition:all .15s;position:relative;z-index:1}
.pay-amount-svcs-toggle:hover{background:rgba(255,255,255,.14)}
.pay-amount-svcs-toggle .bi{font-size:.7rem;transition:transform .2s}
.pay-amount-svcs-toggle.open .bi{transform:rotate(180deg)}
.pay-svc-list{max-height:0;overflow:hidden;transition:max-height .25s ease;position:relative;z-index:1}
.pay-svc-list.show{max-height:300px;margin-top:.4rem}
.pay-svc-row{display:flex;justify-content:space-between;padding:5px 0;font-size:.78rem;border-top:1px solid rgba(255,255,255,.08)}
.pay-svc-row .name{color:rgba(255,255,255,.75)}
.pay-svc-row .price{color:#fff;font-weight:600;white-space:nowrap}
.pay-svc-row .price.free{color:#5ECBA1}
.pay-lock{display:flex;align-items:center;gap:5px;font-size:.66rem;color:rgba(255,255,255,.5);margin-top:.7rem;position:relative;z-index:1}
.pay-lock .bi{color:var(--teal);font-size:.78rem}

/* Card box */
.pay-card-box{background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:1.25rem 1.3rem;margin-bottom:.9rem}
.pay-card-box h4{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--slate-l);margin-bottom:.9rem;display:flex;align-items:center;gap:8px}
.pay-card-box h4 .bi{font-size:.9rem;color:var(--teal)}

/* Payment method selector */
.pay-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:1rem}
.pay-method{padding:11px 8px;border:2px solid var(--border);border-radius:var(--rs);background:#fff;cursor:pointer;text-align:center;font-size:.74rem;font-weight:600;color:var(--slate);transition:all .17s;display:flex;align-items:center;justify-content:center;gap:6px;font-family:'Sora',sans-serif}
.pay-method:hover{border-color:var(--teal);color:var(--teal);background:var(--teal-l)}
.pay-method.active{border-color:var(--teal);background:var(--teal-l);color:var(--teal)}
.pay-method .bi{font-size:1rem}

/* Card visual preview */
.card-visual{background:linear-gradient(135deg,#1A3552,#0C1F35 60%,#091628);border-radius:13px;padding:1.1rem 1.2rem;margin-bottom:1.1rem;position:relative;overflow:hidden;min-height:160px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 8px 24px rgba(12,31,53,.18)}
.card-visual::before{content:'';position:absolute;top:-50px;right:-30px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(13,143,122,.32),transparent 70%)}
.card-visual::after{content:'';position:absolute;bottom:-40px;left:-20px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(200,152,58,.14),transparent 70%)}
.card-top-row{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:1}
.card-chip{width:36px;height:27px;border-radius:5px;background:linear-gradient(135deg,#E8C060,var(--gold) 70%,#a87822);position:relative;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
.card-chip::before{content:'';position:absolute;inset:4px;border:1px solid rgba(0,0,0,.18);border-radius:3px}
.card-brand{font-size:1.5rem;color:rgba(255,255,255,.85);font-family:'Lora',serif;font-style:italic;font-weight:700;letter-spacing:.02em}
.card-num-display{font-size:1.18rem;font-weight:600;color:rgba(255,255,255,.95);letter-spacing:.16em;font-family:'Courier New',monospace;position:relative;z-index:1;margin:.55rem 0;text-shadow:0 1px 2px rgba(0,0,0,.2)}
.card-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;position:relative;z-index:1}
.card-field-lbl{font-size:.54rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.45);margin-bottom:3px}
.card-field-val{font-size:.78rem;font-weight:600;color:rgba(255,255,255,.92);letter-spacing:.04em;font-family:'Courier New',monospace;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-holder-block{flex:1;min-width:0}

/* Card input fields */
.card-input-group{margin-bottom:.85rem}
.card-input-group:last-child{margin-bottom:0}
.card-input-label{font-size:.72rem;font-weight:600;color:var(--slate);letter-spacing:.02em;display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}
.card-input-label .hint{font-size:.66rem;color:var(--slate-l);font-weight:500}
.card-input-group input{width:100%;padding:11px 13px;border:1.5px solid var(--border);border-radius:var(--rs);font-family:'Sora',sans-serif;font-size:.88rem;color:var(--navy);background:var(--bg);transition:all .2s;font-feature-settings:"tnum"}
.card-input-group input:focus{outline:none;border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px rgba(13,143,122,.1)}
.card-input-group input.inv{border-color:var(--red);background:#FFF5F5}
.card-input-group input.valid{border-color:var(--green);padding-right:36px}
.card-input-group .ferr{font-size:.68rem;color:var(--red);margin-top:4px;display:none;align-items:center;gap:4px}
.card-input-group .ferr.on{display:flex}
.card-input-group .ferr .bi{font-size:.78rem}
.card-row{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.input-wrap{position:relative}
.input-wrap .check-ico{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--green);font-size:.95rem;display:none}
.input-wrap.valid .check-ico{display:block}
.card-icons{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:flex;gap:5px;align-items:center;pointer-events:none}
.brand-pill{display:flex;align-items:center;justify-content:center;height:22px;padding:0 8px;border-radius:4px;background:#fff;border:1px solid var(--border);font-size:.6rem;font-weight:800;letter-spacing:.05em;color:var(--slate-l);transition:all .2s;font-family:'Sora',sans-serif}
.brand-pill.active{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:0 1px 4px rgba(12,31,53,.2)}

/* Save card option */
.pay-save-card{display:flex;align-items:center;gap:9px;padding:10px 13px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--rs);margin-top:.85rem;cursor:pointer;transition:all .17s;user-select:none}
.pay-save-card:hover{border-color:var(--teal-m);background:var(--teal-l)}
.pay-save-card.checked{border-color:var(--teal);background:var(--teal-l)}
.pay-save-checkbox{width:18px;height:18px;border:1.5px solid var(--border);border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#fff;transition:all .15s}
.pay-save-card.checked .pay-save-checkbox{background:var(--teal);border-color:var(--teal);color:#fff}
.pay-save-checkbox .bi{font-size:.75rem;opacity:0;transition:opacity .15s}
.pay-save-card.checked .pay-save-checkbox .bi{opacity:1}
.pay-save-text{flex:1;font-size:.78rem;color:var(--navy);font-weight:500}
.pay-save-text small{display:block;font-size:.68rem;color:var(--slate-l);font-weight:400;margin-top:1px}

/* Alt pay (Apple/Google) */
.alt-pay{text-align:center;padding:1.4rem 1rem .4rem}
.alt-pay-ico{width:64px;height:64px;border-radius:16px;background:var(--navy);display:flex;align-items:center;justify-content:center;margin:0 auto .75rem;color:#fff;font-size:1.7rem;box-shadow:var(--sh)}
.alt-pay-ico.google{background:#fff;border:1px solid var(--border);color:#4285F4}
.alt-pay-title{font-size:.95rem;font-weight:600;color:var(--navy);margin-bottom:.3rem}
.alt-pay-desc{font-size:.76rem;color:var(--slate-l);margin-bottom:1rem;max-width:340px;margin-left:auto;margin-right:auto;line-height:1.5}

/* Security row */
.pay-security{display:flex;align-items:center;gap:9px;background:var(--teal-l);border:1px solid var(--teal-m);border-radius:var(--rs);padding:10px 13px;font-size:.74rem;color:var(--slate);line-height:1.4}
.pay-security .bi{color:var(--teal);font-size:1rem;flex-shrink:0}
.pay-security strong{color:var(--navy);font-weight:600}

/* Pay action button (sticky on mobile) */
.pay-action-row{display:flex;gap:10px;margin-top:1rem}
.btn-pay{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:13px 20px;border:none;border-radius:var(--rs);font-family:'Sora',sans-serif;font-size:.92rem;font-weight:700;color:#fff;background:var(--teal);cursor:pointer;transition:all .2s;letter-spacing:.01em;box-shadow:0 4px 14px rgba(13,143,122,.25)}
.btn-pay:hover:not(:disabled){background:var(--teal2);box-shadow:0 6px 20px rgba(13,143,122,.35);transform:translateY(-1px)}
.btn-pay:active{transform:none}
.btn-pay:disabled{background:var(--slate-l);box-shadow:none;cursor:not-allowed;opacity:.7}
.btn-pay .bi{font-size:1rem}

/* Processing overlay */
.pay-processing{display:none;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center;background:#fff;border-radius:var(--r);box-shadow:var(--sh)}
.pay-processing.show{display:flex}
.pay-spinner{width:54px;height:54px;border:3px solid var(--teal-m);border-top-color:var(--teal);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 1.1rem}
@keyframes spin{to{transform:rotate(360deg)}}
.pay-processing h3{font-family:'Lora',serif;font-size:1.15rem;color:var(--navy);margin-bottom:.4rem}
.pay-processing p{font-size:.8rem;color:var(--slate-l)}
.pay-processing-steps{margin-top:1.2rem;display:flex;flex-direction:column;gap:6px;align-items:flex-start;text-align:left;font-size:.76rem;color:var(--slate)}
.pay-step-line{display:flex;align-items:center;gap:8px;opacity:.4;transition:opacity .3s}
.pay-step-line.active{opacity:1;color:var(--navy);font-weight:500}
.pay-step-line.done{opacity:1;color:var(--green)}
.pay-step-line .bi{font-size:.85rem;width:14px}
.pay-step-line.done .bi{color:var(--green)}
.pay-step-line.active .bi{color:var(--teal);animation:pulse 1s ease-in-out infinite}
@keyframes pulse{50%{opacity:.5}}

/* Mobile-specific tweaks */
@media(max-width:520px){
  .pay-wrap{padding:1rem .75rem 6rem}
  .pay-header h2,.pay-header-text h2{font-size:1.05rem}
  .pay-header-text p{font-size:.72rem}
  .pay-back-btn{padding:6px 9px;font-size:.72rem}
  .pay-amount-card{padding:1rem 1.1rem}
  .pay-amount-val{font-size:1.55rem}
  .pay-amount-svcs-toggle{font-size:.66rem;padding:4px 9px}
  .pay-card-box{padding:1.1rem 1rem}
  .card-visual{padding:1rem 1.05rem;min-height:150px}
  .card-num-display{font-size:1rem;letter-spacing:.12em}
  .card-field-val{font-size:.72rem}
  .pay-methods{gap:5px}
  .pay-method{padding:10px 4px;font-size:.7rem;flex-direction:column;gap:4px}
  .pay-method .bi{font-size:1.1rem}
  .card-row{gap:8px}
  .btn-pay{font-size:.86rem;padding:12px 14px}
  .pay-security{font-size:.7rem;padding:9px 11px}
}
@media(max-width:380px){
  .card-num-display{font-size:.9rem;letter-spacing:.1em}
  .pay-amount-val{font-size:1.4rem}
}

/* ── SUCCESS ── */
#successPage{display:none}
.succ-wrap{text-align:center;padding:2.5rem 1.5rem}
.succ-ico{width:70px;height:70px;border-radius:50%;background:var(--teal-l);display:flex;align-items:center;justify-content:center;margin:0 auto 1.1rem;color:var(--teal);font-size:1.75rem}
.succ-wrap h2{font-family:'Lora',serif;font-size:1.45rem;margin-bottom:.4rem}
.succ-wrap p{color:var(--slate-l);font-size:.85rem;margin-bottom:1.4rem}
.succ-paid-pill{display:inline-flex;align-items:center;gap:5px;background:var(--green-l);color:var(--green);font-size:.7rem;font-weight:700;padding:4px 11px;border-radius:14px;margin-bottom:1rem;letter-spacing:.04em}
.succ-paid-pill .bi{font-size:.8rem}
.succ-card{background:var(--bg);border-radius:var(--rs);padding:1rem 1.2rem;max-width:400px;margin:0 auto 1.4rem;text-align:left}
.sd-row{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--border);font-size:.8rem;gap:10px}
.sd-row:last-child{border:none}
.sd-k{color:var(--slate-l);flex-shrink:0}
.sd-v{font-weight:600;color:var(--navy);text-align:right}
.sd-v.paid{color:var(--green)}

/* ── TOAST ── */
.toast-el{position:fixed;top:72px;left:50%;transform:translateX(-50%);background:var(--red);color:#fff;padding:9px 20px;border-radius:8px;font-size:.82rem;font-weight:500;z-index:999;box-shadow:0 4px 20px rgba(0,0,0,.2);animation:fadeIn .2s ease;pointer-events:none}

/* ── RESPONSIVE ── */
@media(max-width:840px){.wrap{grid-template-columns:1fr}.sidebar{position:static}.dt-grid{grid-template-columns:1fr}.frow{grid-template-columns:1fr}}
@media(max-width:520px){.svc-grid{grid-template-columns:1fr}.tab{font-size:.68rem;padding:7px 7px}}

/* ── Dynamic brand logo ── */
.brand-logo {
  height: 36px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  display: block;
}

/* Light/dark logo switching */
.brand-logo.dark-logo  { display: none; }

@media (prefers-color-scheme: dark) {
  .brand-logo.light-logo { display: none; }
  .brand-logo.dark-logo  { display: block; }
}

/* If your app has a manual dark-mode toggle on <body> or <html> */
[data-theme="dark"] .brand-logo.light-logo { display: none; }
[data-theme="dark"] .brand-logo.dark-logo  { display: block; }
[data-theme="light"] .brand-logo.light-logo { display: block; }
[data-theme="light"] .brand-logo.dark-logo  { display: none; }

.brand-name {
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: -.01em;
}
@media (max-width: 600px) {
.tabs {
  flex-wrap: wrap;
}
.tabs button {
  min-width: 160px;
}
}

/* ── Physician cards ── */
.prov-row {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 10px 13px;
  border: 1.5px solid var(--border);
  border-radius: var(--rs);
  cursor: pointer;
  transition: border-color .18s, background .18s, box-shadow .18s;
  background: var(--bg);
  margin-bottom: 7px;
  position: relative;
}
.prov-row:hover {
  border-color: var(--teal-m);
  background: var(--teal-l);
  box-shadow: 0 2px 8px rgba(13,143,122,.08);
}
.prov-row.sel {
  border-color: var(--teal);
  background: var(--teal-l);
  box-shadow: 0 0 0 2.5px rgba(13,143,122,.18);
}
.prov-ava {
  width: 42px; height: 42px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--teal) 0%, #0a6b5c 100%);
  color: #fff;
  font-weight: 700;
  font-size: .85rem;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  letter-spacing: .02em;
}
.prov-photo {
  width: 42px; height: 42px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 2px solid var(--border);
}
.prov-row.sel .prov-photo { border-color: var(--teal); }
.prov-info { flex: 1; min-width: 0; }
.pname {
  font-size: .84rem;
  font-weight: 600;
  color: var(--navy);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.prole {
  font-size: .72rem;
  color: var(--slate-l);
  margin-top: 1px;
}
.pchk {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--teal);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: .72rem;
  flex-shrink: 0;
  transition: opacity .15s;
}
.prov-grid { display: flex; flex-direction: column; gap: 0; }

/* Partial capacity slot — bookable but limited */
.slot.partial {
  background: var(--teal-l);
  border-color: var(--teal-m);
  color: var(--teal);
  position: relative;
}
.slot-partial-dot {
  display: inline-block;
  width: 5px;
  height: 5px;
  background: var(--teal);
  border-radius: 50%;
  margin-left: 3px;
  vertical-align: middle;
  margin-top: -2px;
}

/* ── Force uppercase display on all patient text inputs ── */
#fName,
#lName,
#email,
#notes,
#cardName {
  text-transform: uppercase;
}

#fName::placeholder,
#lName::placeholder,
#email::placeholder,
#notes::placeholder,
#cardName::placeholder {
  text-transform: none; /* keep placeholder readable */
}

@keyframes loaderSpin  { to { transform: rotate(360deg); } }
@keyframes loaderPulse { 0%,100%{transform:scale(.8);opacity:.7} 50%{transform:scale(1.1);opacity:1} }
@keyframes loaderDot   { 0%,100%{transform:translateY(0);opacity:.4} 50%{transform:translateY(-6px);opacity:1} }

.cat-lbl-parent {
  color: var(--slate-l);
  font-weight: 500;
  font-size: .72rem;
}
.cat-lbl-sep {
  color: var(--slate-l);
  font-size: .72rem;
  margin: 0 2px;
}
.cat-lbl-child {
  font-weight: 600;
  font-size: .78rem;
  color: var(--slate);
}


/* ── Category filter pills ───────────────────────────── */
.svc-cat-filter{
  display:flex; gap:8px; overflow-x:auto;
  padding:2px 2px 12px; margin-bottom:4px;
  scrollbar-width:none; -webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity;
  width: 100%;
  flex-wrap: wrap;
}
.svc-cat-filter::-webkit-scrollbar{ display:none; }

.cat-pill{
  flex:0 0 auto; display:inline-flex; align-items:center; gap:6px;
  white-space:nowrap; cursor:pointer;
  border:1.5px solid var(--border,#e2e8f0); background:#fff;
  color:var(--slate,#64748b);
  font-family:'Sora',sans-serif; font-size:.78rem; font-weight:500;
  padding:7px 14px; border-radius:999px;
  transition:all .16s ease; scroll-snap-align:start;
}
.cat-pill:hover{ border-color:var(--teal-m,#7fd1c3); color:var(--teal,#0D8F7A); }
.cat-pill.active{
  background:var(--teal,#0D8F7A); border-color:var(--teal,#0D8F7A); color:#fff;
  box-shadow:0 3px 10px rgba(13,143,122,.25);
}
.cat-pill-count{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:20px; height:18px; padding:0 6px; line-height:1;
  border-radius:999px; font-size:.66rem; font-weight:700;
  background:var(--teal-l,#e6f7f3); color:var(--teal,#0D8F7A);
}
.cat-pill.active .cat-pill-count{ background:rgba(255,255,255,.22); color:#fff; }

/* ── Empty search state ──────────────────────────────── */
.svc-no-results{
  text-align:center; padding:32px 16px;
  color:var(--slate-l,#94a3b8); font-size:.84rem;
}
.svc-no-results i{ font-size:1.6rem; display:block; margin-bottom:8px; opacity:.6; }

.svc-card .svc-desc{
  white-space: pre-line;          /* allow wrapping onto new lines */
  display: -webkit-box;
  -webkit-line-clamp: 2;        /* cap at 2 lines; delete this + the two box props below to show ALL lines */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.35;
  margin-top: 3px;
  font-size: .72rem;
  color: var(--slate-l);
}
/* Slightly darken the description on the selected card for contrast */
.svc-card.sel .svc-desc{ color:var(--slate, #64748b); }

.tip-mode-btn{background:var(--bg2,#f8fafc);border:none;padding:0 12px;font-size:.84rem;font-weight:600;color:var(--slate,#64748b);cursor:pointer;font-family:'Sora',sans-serif;min-width:34px;transition:all .15s}
.tip-mode-btn.active{background:var(--teal,#0D8F7A);color:#fff}