/* ============================================================
   Regina Salud — hoja de estilos compartida
   ============================================================ */

:root{
  --brand:#0f766e;
  --brand-h:#0b5f59;
  --brand-ink:#0b5f59;
  --brand-50:#eef8f6;
  --brand-100:#d5efea;
  --brand-200:#a9ded5;
  --ink:#0d1f1e;
  --text:#3c4b4a;
  --muted:#6b7c7a;
  --bg:#f7fbfa;
  --card:#fff;
  --line:#e0eae8;
  --line-2:#eef4f3;
  --danger:#b42318;
  --danger-50:#fef3f2;
  --r:13px;
  --sh:0 1px 2px rgba(13,31,30,.05), 0 8px 20px rgba(13,31,30,.05);
}

*{box-sizing:border-box}
html{scroll-padding-top:74px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font:15.5px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul,ol{margin:0;padding:0;list-style:none}
p{margin:0}
button{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;color:var(--ink);font-weight:650;line-height:1.22;letter-spacing:-.015em}
h1{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.2rem)}
h2{font-size:clamp(1.15rem,1.05rem + .5vw,1.4rem)}
h3{font-size:1rem}
h4{font-size:.9rem}
.wrap{width:min(1120px,100% - 32px);margin-inline:auto}
.oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:7px}

.skip{position:absolute;left:-999px;top:6px;z-index:90;padding:10px 14px;background:var(--ink);color:#fff;border-radius:9px;font-size:14px}
.skip:focus{left:8px}

.kicker{
  display:inline-flex;align-items:center;gap:6px;
  font-size:11px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;
  color:var(--brand-ink);background:var(--brand-50);
  border:1px solid var(--brand-100);border-radius:999px;padding:5px 10px;
}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}

/* ---------- botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:0 18px;border-radius:11px;border:1px solid transparent;
  font-weight:600;font-size:14.5px;cursor:pointer;white-space:nowrap;
  transition:background .15s,border-color .15s,color .15s;
}
.btn svg{width:16px;height:16px;flex:none}
.btn--pri{background:var(--brand);color:#fff}
.btn--pri:hover{background:var(--brand-h)}
.btn--line{background:#fff;border-color:#cfdedb;color:var(--ink)}
.btn--line:hover{border-color:#a6c3bf;background:#fbfefd}
.btn--suave{background:var(--brand-50);color:var(--brand-ink);border-color:var(--brand-100)}
.btn--suave:hover{background:var(--brand-100)}
.btn--danger{background:var(--danger);color:#fff}
.btn--danger:hover{background:#96180f}
.btn[disabled]{opacity:.45;cursor:not-allowed}

.punto{width:7px;height:7px;border-radius:50%;background:#12a594;display:inline-block;box-shadow:0 0 0 3px rgba(18,165,148,.16)}

/* ---------- barra superior ---------- */
.nav{
  position:sticky;top:0;z-index:40;
  background:rgba(255,255,255,.94);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav__in{display:flex;align-items:center;gap:12px;min-height:58px}
.nav__logo{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:700;color:var(--ink);letter-spacing:-.02em;margin-right:auto}
.nav__mark{width:30px;height:30px;flex:none}
.nav__nombre small{display:block;font-size:10.5px;font-weight:500;color:var(--muted);letter-spacing:.02em;line-height:1.25}
.nav__links{display:flex;gap:20px;font-size:14px;font-weight:500}
.nav__links a{padding:8px 0;border-bottom:2px solid transparent}
.nav__links a:hover{color:var(--brand-ink);border-bottom-color:var(--brand-200)}
.nav__cta{min-height:40px;padding:0 15px;font-size:14px}
.menu{display:none;position:relative}
.menu summary{
  list-style:none;display:flex;align-items:center;justify-content:center;
  width:42px;height:42px;border:1px solid var(--line);border-radius:10px;
  background:#fff;cursor:pointer;color:var(--ink);
}
.menu summary::-webkit-details-marker{display:none}
.menu summary:hover{border-color:#a6c3bf}
.menu__list{
  position:absolute;right:0;top:calc(100% + 8px);min-width:224px;display:grid;gap:1px;
  padding:7px;background:#fff;border:1px solid var(--line);border-radius:12px;
  box-shadow:0 16px 34px rgba(13,31,30,.15);
}
.menu__list a{display:flex;align-items:center;min-height:42px;padding:0 12px;border-radius:9px;font-size:14.5px;font-weight:500}
.menu__list a:hover{background:var(--brand-50);color:var(--brand-ink)}

/* ---------- hero ---------- */
.hero{
  background:linear-gradient(180deg,#eef9f7 0%,#f7fbfa 88%);
  border-bottom:1px solid var(--line-2);
}
.hero__in{display:grid;grid-template-columns:1.04fr .96fr;gap:30px;align-items:center;padding:32px 0 34px}
.hero__txt h1{margin-top:12px;text-wrap:balance;max-width:19ch}
.hero__sub{margin-top:10px;font-size:15.5px;max-width:46ch}
.hero__acciones{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.hero__datos{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:16px;font-size:13px;color:var(--muted)}
.hero__datos li{display:flex;align-items:center;gap:6px}
.hero__datos svg{color:var(--brand);flex:none}

.proximos{padding:14px 16px 12px}
.proximos__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}
.proximos__head h2{font-size:.98rem;line-height:1.3}
.proximos__tag{
  display:inline-flex;align-items:center;gap:6px;flex:none;
  font-size:10.5px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;
  color:var(--brand-ink);background:var(--brand-50);border:1px solid var(--brand-100);
  border-radius:999px;padding:4px 8px;
}
.proximos__lista{margin-top:4px}
.prox{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line-2)}
.prox:first-child{border-top:0}
.prox__media{width:38px;height:38px;border-radius:10px;overflow:hidden;background:var(--brand-50);display:grid;place-items:center;color:var(--brand);border:1px solid var(--brand-100)}
.prox__media img{width:38px;height:38px;object-fit:cover}
.prox__media svg{width:20px;height:20px}
.prox__nombre{display:block;font-size:14px;font-weight:650;color:var(--ink);line-height:1.3}
.prox__pro{display:block;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prox__der{display:flex;flex-direction:column;align-items:flex-end;gap:1px;text-align:right}
.prox__cuando{font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap}
.prox__link{font-size:12.5px;font-weight:650;color:var(--brand-ink);display:inline-flex;align-items:center;gap:3px;min-height:24px}
.prox__link:hover{text-decoration:underline}
.proximos__pie{margin-top:6px;padding-top:8px;border-top:1px solid var(--line-2);font-size:11.5px;color:var(--muted)}

/* ---------- secciones ---------- */
.seccion{padding:32px 0}
.seccion--alt{background:#fff;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.seccion__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px 26px;flex-wrap:wrap;margin-bottom:16px}
.seccion__head h2{margin-top:9px}
.seccion__nota{font-size:13.5px;color:var(--muted);max-width:48ch}

.esp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:14px}
.esp-card{
  display:flex;flex-direction:column;gap:7px;
  background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px;
  transition:border-color .15s,box-shadow .15s,transform .15s;
}
.esp-card:hover{border-color:var(--brand-200);box-shadow:0 1px 2px rgba(13,31,30,.05),0 10px 22px rgba(15,118,110,.07)}
.esp-card__top{display:flex;align-items:center;gap:11px}
.esp-card__media{width:52px;height:52px;flex:none;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:var(--brand-50);border:1px solid var(--brand-100);color:var(--brand)}
.esp-card__media img{width:52px;height:52px;object-fit:cover}
.esp-card__media svg{width:26px;height:26px}
.esp-card__top h3{font-size:.98rem}
.esp-card__dur{font-size:12px;color:var(--muted)}
.esp-card__desc{font-size:13px;color:var(--text);min-height:2.6em}
.esp-card__pros{font-size:12.5px;color:var(--ink);font-weight:500}
.esp-card__dias{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--muted)}
.esp-card__dias svg{width:14px;height:14px;flex:none;color:var(--brand)}
.esp-card__link{
  display:inline-flex;align-items:center;gap:4px;margin-top:auto;padding-top:9px;
  font-size:13.5px;font-weight:650;color:var(--brand-ink);
}
.esp-card__link svg{width:14px;height:14px;transition:transform .15s}
.esp-card__link:hover svg{transform:translateX(3px)}
.esp-card__link:hover{text-decoration:underline}

.pasos3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;counter-reset:paso}
.pasos3 li{position:relative;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:15px 16px 16px}
.pasos3__n{
  display:grid;place-items:center;width:28px;height:28px;border-radius:50%;
  background:var(--brand);color:#fff;font-size:13px;font-weight:700;margin-bottom:10px;
}
.pasos3 h3{font-size:.95rem;margin-bottom:4px}
.pasos3 p{font-size:13px;color:var(--muted)}

.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{
  display:inline-flex;align-items:center;gap:7px;
  background:#fff;border:1px solid var(--line);border-radius:999px;
  padding:7px 13px;font-size:13.5px;font-weight:550;color:var(--ink);
}
.chip svg{width:14px;height:14px;color:var(--brand);flex:none}
.chip--nota{background:var(--brand-50);border-color:var(--brand-100);color:var(--brand-ink);font-weight:600}

/* ---------- contacto ---------- */
.contacto{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:24px;align-items:start}
.contacto h2{margin-top:9px}
.datos{margin-top:14px;display:grid;gap:0}
.datos li{display:grid;grid-template-columns:104px minmax(0,1fr);gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.datos li:first-child{border-top:0;padding-top:0}
.datos__k{font-size:12.5px;font-weight:650;color:var(--ink);text-transform:uppercase;letter-spacing:.04em}
.datos__v{font-size:14px}
.contacto__nota{margin-top:14px;font-size:13px;color:var(--muted);max-width:46ch}

.consulta{padding:16px;display:grid;gap:11px}
.consulta h3{font-size:1rem}
.consulta__sub{font-size:12.5px;color:var(--muted);margin-top:-4px}
.consulta .btn{margin-top:3px;justify-self:start}

/* ---------- campos ---------- */
.campo{display:grid;gap:5px;min-width:0}
.campo label{font-size:13px;font-weight:600;color:var(--ink)}
.campo input,.campo select,.campo textarea{
  width:100%;min-height:44px;padding:10px 12px;
  border:1px solid #cfdedb;border-radius:10px;background:#fff;
  font:inherit;font-size:15px;color:var(--ink);
}
.campo textarea{min-height:92px;resize:vertical}
.campo select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%236b7c7a' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:34px}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(15,118,110,.15)}
.campo input[aria-invalid="true"],.campo select[aria-invalid="true"],.campo textarea[aria-invalid="true"]{border-color:#cf6b63;background:var(--danger-50)}
.campo__err{display:none;font-size:12.5px;color:var(--danger);line-height:1.35}
.campo__err.visible{display:block}
.campo--check{justify-items:start}
.check{display:inline-flex;align-items:center;gap:9px;font-size:13.5px;font-weight:500;cursor:pointer;min-height:42px}
.check input{width:19px;height:19px;min-height:0;margin:0;accent-color:var(--brand);flex:none}
.opcional{font-weight:500;color:var(--muted);font-size:11.5px}

/* ---------- pie ---------- */
.pie{background:#fff;border-top:1px solid var(--line);padding:20px 0;margin-top:6px}
.pie__in{display:flex;align-items:center;justify-content:space-between;gap:14px 22px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.pie__marca{display:flex;align-items:center;gap:9px;color:var(--ink);font-weight:600;font-size:13.5px;line-height:1.35}
.pie__marca small{color:var(--muted);font-weight:500;font-size:12px}
.pie__links{display:flex;gap:16px;flex-wrap:wrap}
.pie__links a:hover{color:var(--brand-ink);text-decoration:underline}
.pie__legal{font-size:12px;white-space:nowrap}
.pie__legal a{color:var(--brand-ink);font-weight:600}
.pie__legal a:hover{text-decoration:underline}

/* ---------- modal ---------- */
.modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px;background:rgba(9,25,24,.45)}
.modal[hidden]{display:none}
.modal__box{width:min(470px,100%);max-height:calc(100vh - 32px);overflow:auto;background:#fff;border-radius:14px;border:1px solid var(--line);box-shadow:0 26px 60px rgba(9,25,24,.3)}
.modal__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 14px 8px 16px}
.modal__head h2{font-size:1.02rem}
.modal__close{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:10px;cursor:pointer;color:var(--muted);flex:none}
.modal__close:hover{border-color:#a6c3bf;color:var(--ink)}
.modal__body{padding:0 16px 4px;font-size:14px}
.modal__msg{white-space:pre-line;background:var(--brand-50);border:1px solid var(--brand-100);border-radius:10px;padding:12px;font-size:13.5px;color:var(--ink);line-height:1.5}
.modal__nota{margin-top:10px;font-size:12.5px;color:var(--muted)}
.modal__acciones{display:flex;gap:9px;justify-content:flex-end;padding:12px 16px 16px}
.modal__acciones .btn{min-width:104px}

/* ---------- responsive landing ---------- */
@media (max-width:940px){
  .hero__in{grid-template-columns:1fr;gap:20px;padding:24px 0 26px}
  .hero__txt h1{max-width:26ch}
  .contacto{grid-template-columns:1fr}
  .nav__links{display:none}
  .menu{display:block}
  .nav__cta{margin-left:0}
}
@media (max-width:760px){
  .pasos3{grid-template-columns:1fr}
  .seccion{padding:26px 0}
  .esp-grid{grid-template-columns:1fr}
  .seccion__head{align-items:flex-start}
}
@media (max-width:480px){
  .nav__nombre small{display:none}
  .nav__cta{min-height:42px}
  .mis__acciones .btn{min-height:42px}
  .nav__cta{padding:0 13px}
  .nav__in{gap:9px}
  .hero__acciones .btn{flex:1 1 0}
  .esp-card__desc{min-height:0}
  .datos li{grid-template-columns:88px minmax(0,1fr)}
  .modal__acciones{flex-direction:column-reverse}
  .modal__acciones .btn{width:100%}
}

/* ============================================================
   Turnero
   ============================================================ */

.vista-head{padding:22px 0 12px}
.vista-head h1{margin-top:9px;max-width:24ch}
.vista-sub{font-size:14px;color:var(--muted);margin-top:7px;max-width:60ch}

.tabs{display:inline-flex;gap:4px;padding:4px;margin-bottom:18px;background:#fff;border:1px solid var(--line);border-radius:12px}
.tabs button{
  display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 14px;
  border:0;border-radius:9px;background:transparent;cursor:pointer;
  font-size:14px;font-weight:600;color:var(--muted);transition:background .15s,color .15s;
}
.tabs button:hover{color:var(--ink);background:var(--brand-50)}
.tabs button[aria-selected="true"]{background:var(--brand);color:#fff}
.tabs button[aria-selected="true"]:hover{background:var(--brand)}
.tabs__n[hidden]{display:none}
.tabs__n{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--brand-100);color:var(--brand-ink);font-size:11.5px;font-weight:700}
.tabs button[aria-selected="true"] .tabs__n{background:rgba(255,255,255,.24);color:#fff}

.pasos{display:flex;gap:8px;margin-bottom:4px}
.pasos li{display:flex;align-items:center;gap:7px;flex:1;min-width:0;font-size:12.5px;color:var(--muted)}
.pasos__n{display:grid;place-items:center;width:25px;height:25px;flex:none;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:12px;font-weight:700;color:var(--muted)}
.pasos li[data-estado="hecho"] .pasos__n{background:var(--brand-100);border-color:var(--brand-200);color:var(--brand-ink)}
.pasos li[data-estado="actual"]{color:var(--brand-ink);font-weight:600}
.pasos li[data-estado="actual"] .pasos__n{background:var(--brand);border-color:var(--brand);color:#fff}
.pasos__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pasos__actual{display:none;font-size:12.5px;color:var(--brand-ink);font-weight:600;margin:2px 0 12px}

.wizard-grid{display:grid;grid-template-columns:minmax(0,1fr) 296px;gap:18px;align-items:start;margin-top:14px}
.wizard{padding:18px 18px 14px}
.panel[hidden]{display:none}
.panel__head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.panel__head h2{font-size:1.1rem}
.panel__hint{font-size:12.5px;color:var(--muted)}
.panel__hint:empty{display:none}

/* opciones (especialidad / profesional) */
.ops{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.ops--uno{grid-template-columns:1fr}
.op{
  display:flex;align-items:center;gap:11px;min-height:64px;padding:10px 11px;
  text-align:left;background:#fff;border:1px solid var(--line);border-radius:12px;cursor:pointer;
  transition:border-color .15s,background .15s,box-shadow .15s;
}
.op:hover{border-color:var(--brand-200);background:#fcfefd}
.op[aria-pressed="true"]{border-color:var(--brand);background:var(--brand-50);box-shadow:inset 0 0 0 1px var(--brand)}
.op__media{width:44px;height:44px;flex:none;border-radius:10px;overflow:hidden;background:#fff;border:1px solid var(--brand-100);display:grid;place-items:center;color:var(--brand)}
.op__media img{width:44px;height:44px;object-fit:cover}
.op__media svg{width:23px;height:23px}
.op__txt{min-width:0;display:grid;gap:1px}
.op__nombre{display:block;font-size:14px;font-weight:650;color:var(--ink);line-height:1.3}
.op__meta{display:block;font-size:12px;color:var(--muted);line-height:1.35}
.op__check{margin-left:auto;width:18px;height:18px;flex:none;color:var(--brand);opacity:0;transition:opacity .15s}
.op[aria-pressed="true"] .op__check{opacity:1}
.pro__ini{
  display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;
  background:var(--brand-50);border:1px solid var(--brand-100);color:var(--brand-ink);
  font-size:13.5px;font-weight:700;letter-spacing:.02em;
}

/* calendario de días */
.cal__rango{font-size:12.5px;color:var(--muted);margin-bottom:8px}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.cal__dia{
  display:grid;place-items:center;gap:0;min-height:58px;padding:5px 2px 6px;
  background:#fff;border:1px solid var(--line);border-radius:10px;cursor:pointer;
  transition:border-color .15s,background .15s,color .15s;
}
.cal__dia:hover:not([disabled]){border-color:var(--brand-200);background:#fbfefd}
.cal__dow{font-size:10px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.cal__num{font-size:14.5px;font-weight:700;color:var(--ink);line-height:1.15}
.cal__est{font-size:9.5px;line-height:1.15;color:var(--brand-ink);text-align:center;letter-spacing:-.01em}
.cal__dia[aria-pressed="true"]{background:var(--brand);border-color:var(--brand)}
.cal__dia[aria-pressed="true"] .cal__num,
.cal__dia[aria-pressed="true"] .cal__dow{color:#fff}
.cal__dia[aria-pressed="true"] .cal__est{color:#cfeeea}
.cal__dia[aria-pressed="true"]:hover{background:var(--brand)}
.cal__dia[disabled]{cursor:not-allowed;background:#f4f8f7;border-color:#e9f1ef}
.cal__dia[disabled] .cal__num,
.cal__dia[disabled] .cal__dow,
.cal__dia[disabled] .cal__est{color:#b6c6c3}
.cal__dia[data-estado="llenado"] .cal__est{color:#a3671f}

.leyenda{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:8px;font-size:11.5px;color:var(--muted)}
.leyenda>span{display:inline-flex;align-items:center;gap:5px}
.leyenda__punto{width:9px;height:9px;border-radius:3px;display:inline-block}
.leyenda__punto--libre{background:var(--brand-100);border:1px solid var(--brand-200)}
.leyenda__punto--gris{background:#eef3f2;border:1px solid #dbe6e4}

.slots-head{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-2)}
.slots-head h3{font-size:.95rem}
.slots__hint{font-size:12.5px;color:var(--muted);margin-top:2px}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:7px;margin-top:9px}
.slot{
  min-height:42px;padding:0 6px;border:1px solid #cfdedb;border-radius:9px;background:#fff;
  font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;
  transition:border-color .15s,background .15s,color .15s;
  font-variant-numeric:tabular-nums;
}
.slot:hover{border-color:var(--brand);background:var(--brand-50)}
.slot[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#fff}
.slot:disabled{cursor:not-allowed;background:#f5f9f8;border-color:#e9f1ef;color:#b9c8c5;text-decoration:line-through}
.slot--tuyo:disabled{color:#9c6a1c;background:#fdf6ea;border-color:#f2e3c6;text-decoration:none}
.slots__vacio{margin-top:12px;font-size:13px;color:var(--muted);background:var(--bg);border:1px dashed var(--line);border-radius:10px;padding:12px}

/* navegación del asistente */
.wizard__nav{display:flex;gap:9px;justify-content:space-between;margin-top:16px;padding-top:14px;border-top:1px solid var(--line-2)}
.wizard__nav .btn{min-width:112px}
.wizard__nav #btn-volver{margin-right:auto}
.wizard__nav[hidden]{display:none}
.wizard__nav .btn[hidden]{display:none}

/* resumen lateral */
.resumen{padding:15px 16px;position:sticky;top:74px}
.resumen h2{font-size:.95rem;margin-bottom:10px}
.resumen__fila{display:grid;gap:1px;padding:8px 0;border-top:1px solid var(--line-2)}
.resumen__fila:first-of-type{border-top:0}
.resumen__k{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:650}
.resumen__v{font-size:13.5px;color:var(--ink);font-weight:550}
.resumen__v--vacio{color:#a9b8b6;font-weight:500}
.resumen__pie{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-2);font-size:12px;color:var(--muted)}
.resumen__dur{display:inline-flex;align-items:center;gap:5px;margin-top:8px;font-size:12px;font-weight:600;color:var(--brand-ink);background:var(--brand-50);border:1px solid var(--brand-100);border-radius:999px;padding:4px 9px}

/* formulario de datos */
.campos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.campo--full{grid-column:1 / -1}
#campo-afiliado.oculto-campo{display:none}

/* confirmación */
.ok{display:grid;gap:13px}
.ok__head{display:flex;align-items:flex-start;gap:11px}
.ok__icon{width:38px;height:38px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--brand-50);border:1px solid var(--brand-200);color:var(--brand)}
.ok__head h2{font-size:1.1rem}
.ok__head p{font-size:12.5px;color:var(--muted);margin-top:2px}
.ok__codigo{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--brand-50);border:1px solid var(--brand-100);border-radius:12px;padding:12px 14px}
.ok__codigo span{font-size:11.5px;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--brand-ink)}
.ok__codigo strong{font-size:1.35rem;letter-spacing:.09em;color:var(--brand-ink);font-variant-numeric:tabular-nums}
.ok__datos{display:grid;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.ok__datos div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;padding:9px 12px;border-top:1px solid var(--line-2);font-size:13.5px}
.ok__datos div:first-child{border-top:0}
.ok__datos dt{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding-top:1px}
.ok__datos dd{margin:0;color:var(--ink);font-weight:550}
.ok__rec{display:flex;gap:8px;font-size:12.5px;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.ok__rec svg{width:16px;height:16px;flex:none;color:var(--brand);margin-top:1px}
.ok__acciones{display:flex;flex-wrap:wrap;gap:9px}
.ok__acciones .btn{flex:1 1 auto}

/* mis turnos */
.panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.panel-head h2{font-size:1.1rem}
.mis{display:grid;gap:10px}
.mis__card{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:13px;align-items:center;padding:13px 14px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh)}
.mis__fecha{display:grid;place-items:center;gap:0;background:var(--brand-50);border:1px solid var(--brand-100);border-radius:10px;padding:6px 4px}
.mis__dia{font-size:1.2rem;font-weight:700;color:var(--brand-ink);line-height:1.1}
.mis__mes{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--brand-ink);font-weight:650}
.mis__dur{font-size:10px;color:var(--muted);margin-top:1px}
.mis__info{min-width:0;display:grid;gap:2px}
.mis__titulo{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14.5px;font-weight:650;color:var(--ink)}
.mis__cod{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--brand-ink);background:var(--brand-50);border:1px solid var(--brand-100);border-radius:6px;padding:2px 6px}
.mis__meta{font-size:12.5px;color:var(--muted)}
.mis__pac{font-size:12.5px;color:var(--text)}
.mis__acciones{display:flex;gap:8px}
.mis__acciones .btn{min-height:40px;font-size:13.5px;padding:0 14px}
.vacio{background:#fff;border:1px dashed #cfdedb;border-radius:12px;padding:26px 18px;text-align:center;display:grid;gap:8px;justify-items:center}
.vacio__icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--brand-50);border:1px solid var(--brand-100);color:var(--brand)}
.vacio h3{font-size:.98rem}
.vacio p{font-size:13px;color:var(--muted);max-width:36ch}
.vacio .btn{margin-top:4px}

/* agenda del día */
.agenda{padding:16px}
.agenda__controles{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:11px;max-width:560px}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0}
.stat{background:var(--bg);border:1px solid var(--line);border-radius:11px;padding:10px 12px;display:grid;gap:1px}
.stat__n{font-size:1.32rem;font-weight:700;color:var(--brand-ink);line-height:1.15;font-variant-numeric:tabular-nums}
.stat__l{font-size:11.5px;color:var(--muted)}
.agenda__lista{display:grid;gap:1px;border:1px solid var(--line);border-radius:11px;overflow:hidden}
.agenda__fila{display:grid;grid-template-columns:58px 108px minmax(0,1fr);gap:10px;align-items:center;padding:8px 11px;background:#fff;border-top:1px solid var(--line-2);font-size:13px}
.agenda__fila:first-child{border-top:0}
.agenda__hora{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;font-size:13.5px}
.agenda__estado{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:650;border-radius:999px;padding:3px 8px;justify-self:start;white-space:nowrap}
.agenda__estado--libre{background:#e8f6f2;color:#0a6157;border:1px solid #c8e9e1}
.agenda__estado--ocupado{background:#f2f5f4;color:#5f6f6d;border:1px solid #e2eae8}
.agenda__estado--tuyo{background:var(--brand);color:#fff;border:1px solid var(--brand)}
.agenda__estado--pasado{background:#fbf7ee;color:#8a6b2c;border:1px solid #efe0c4}
.agenda__pac{font-size:12.5px;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.agenda__pac strong{color:var(--ink);font-weight:600}
.agenda__vacio{padding:16px;font-size:13px;color:var(--muted);text-align:center}

/* responsive turnero */
@media (max-width:980px){
  .wizard-grid{grid-template-columns:1fr}
  .resumen{position:static;order:-1}
  .resumen--vacio,.resumen--confirmado{display:none}
  .resumen__fila{display:none}
  .resumen__fila--clave{display:grid}
  .resumen h2{margin-bottom:6px}
  .resumen__pie{display:none}
}
@media (max-width:760px){
  .tabs{display:grid;grid-template-columns:repeat(3,1fr);width:100%}
  .tabs button{justify-content:center;padding:0 6px;font-size:12px;min-height:42px;white-space:nowrap}
  .pasos{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}
  .pasos li{justify-content:center;gap:0}
  .pasos__label{display:none}
  .pasos__actual{display:block}
  .ops{grid-template-columns:1fr}
  .wizard{padding:15px 14px 12px}
  .cal{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .cal__dia{min-height:60px}
  .cal__est{font-size:10px}
  .slots{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}
  .campos{grid-template-columns:1fr}
  .mis__card{grid-template-columns:54px minmax(0,1fr);row-gap:9px}
  .mis__acciones{grid-column:1 / -1}
  .mis__acciones .btn{flex:1}
  .agenda__controles{grid-template-columns:1fr;max-width:none}
  .stats{gap:7px}
  .stat__n{font-size:1.15rem}
  .agenda__fila{grid-template-columns:50px 96px minmax(0,1fr);gap:7px;padding:8px 9px;font-size:12.5px}
  .ok__datos div{grid-template-columns:96px minmax(0,1fr);gap:8px;padding:9px 11px}
  .ok__datos dt{font-size:10px;letter-spacing:.02em}
  .agenda__pac{white-space:normal}
  .ok__acciones .btn{flex:1 1 100%}
  .wizard__nav .btn{min-width:0;flex:1}
}

.agenda__fecha{font-size:13.5px;color:var(--ink);font-weight:600;margin-top:14px}
.panel-head--fin{justify-content:flex-end}
.sin-scroll{overflow:hidden}

/* ============================================================
   WhatsApp (landing y turnero)
   ============================================================ */

.btn--wa{background:#25d366;color:#06301b;border-color:#1fb457}
.btn--wa:hover{background:#20c45d}
.btn--copiar{margin-top:10px;width:100%}

.wa-flotante{
  position:fixed;right:18px;bottom:18px;z-index:60;
  width:56px;height:56px;border-radius:50%;border:0;
  display:grid;place-items:center;cursor:pointer;
  background:#25d366;color:#fff;
  box-shadow:0 10px 22px rgba(9,25,24,.24),0 2px 6px rgba(9,25,24,.14);
  transition:transform .15s,box-shadow .15s,opacity .2s;
}
.wa-flotante svg{width:30px;height:30px}
.wa-flotante:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(9,25,24,.28)}
.wa-flotante--oculto{opacity:0;pointer-events:none;transform:translateY(8px)}
@media (max-width:480px){.wa-flotante{right:12px;bottom:12px;width:54px;height:54px}}

.wa-bloque{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:18px;align-items:center;
  margin-top:14px;padding:16px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);
}
.wa-bloque__txt h3{font-size:.98rem;display:flex;align-items:center;gap:7px}
.wa-bloque__txt{align-self:start}
.wa-lista{display:grid;gap:7px;margin-top:10px}
.wa-lista li{position:relative;padding-left:22px;font-size:13.5px}
.wa-lista li::before{
  content:"";position:absolute;left:0;top:7px;width:9px;height:9px;border-radius:50%;
  background:#25d366;box-shadow:0 0 0 3px rgba(37,211,102,.16);
}
.wa-bloque__pie{margin-top:11px;font-size:12px;color:var(--muted)}

.wa-demo{display:grid;gap:7px;background:#efeae2;border:1px solid #e2dcd2;border-radius:12px;padding:11px 12px 12px}
.wa-demo__head{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:650;color:#4a5c5a;letter-spacing:.02em}
.wa-demo__head svg{color:#25a55b}
.globo{
  max-width:94%;padding:8px 11px;border-radius:12px;font-size:12.8px;line-height:1.45;
  color:#111b21;box-shadow:0 1px 1px rgba(9,25,24,.09);white-space:pre-line;
}
.globo--in{background:#fff;justify-self:start;border-bottom-left-radius:4px}
.globo--out{background:#d9fdd3;justify-self:end;border-bottom-right-radius:4px}
.chat{display:grid;gap:8px;background:#efeae2;border:1px solid #e2dcd2;border-radius:12px;padding:12px}
.chat__nota{font-size:11.5px;color:var(--muted);margin-top:9px}
.chat__nota--aviso{color:#8a5a12;background:#fdf6e9;border:1px solid #f2e3c6;border-radius:9px;padding:8px 10px;margin-top:10px}

.consulta__acciones{display:flex;flex-wrap:wrap;gap:9px;margin-top:3px}
.consulta__acciones .btn{flex:1 1 auto}

/* chip de estado (mis turnos) */
.chip-estado{
  display:inline-flex;align-items:center;gap:5px;white-space:nowrap;
  font-size:11px;font-weight:700;letter-spacing:.02em;
  border-radius:999px;padding:3px 9px;border:1px solid transparent;
}
.chip-estado--pendiente{background:#fdf6e9;color:#8a5a12;border-color:#f2e3c6}
.chip-estado--confirmado{background:#e8f6f2;color:#0a6157;border-color:#c8e9e1}
.chip-estado--presente{background:#e9f1fe;color:#1d4ea8;border-color:#cfdffb}
.chip-estado--atendido{background:#f1f3f2;color:#4d5c5a;border-color:#e2e9e7}
.chip-estado--ausente{background:#fef3f2;color:#b42318;border-color:#f6d7d4}

@media (max-width:760px){
  .wa-bloque{grid-template-columns:1fr}
  .consulta__acciones .btn{flex:1 1 100%}
}
