/* Agenda de citas · estilos base (mobile-first). Los colores de marca llegan como variables desde tema_css(). */
:root{--pr:#0f766e;--prt:#fff;--pr-soft:#e3f1ef;--bg:#f5f6f8;--tx:#1d2733;--card:#fff;--bd:#e1e6ec;--mu:#66727f;--dg:#b42318;--wa:#15803d;--am:#b45309;--r:14px;
--font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--sh:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);--nav-h:64px}
*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:80px}
body{margin:0;background:var(--bg);color:var(--tx);font:15px/1.55 var(--font);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--pr);text-underline-offset:3px}img{max-width:100%}
main{max-width:1180px;margin:0 auto;padding:20px 16px 48px;display:grid;grid-template-columns:minmax(0,1fr);gap:18px;min-width:0}
h1,h2,h3{line-height:1.25;margin:0}h1{font-size:1.45rem;letter-spacing:-.015em}h2{font-size:1.08rem;margin-bottom:12px}h3{font-size:.95rem}
.mu{color:var(--mu);margin:4px 0}.center{text-align:center}.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mu)}
.ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.skip{position:absolute;left:-9999px;top:8px;z-index:99;background:var(--card);padding:8px 14px;border-radius:8px}.skip:focus{left:8px}
[hidden]{display:none!important}

/* ---------- Barra superior / navegación ---------- */
.bar{background:var(--card);border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:20}
.bar-in{max-width:1180px;margin:0 auto;padding:8px 16px;display:flex;align-items:center;gap:14px;min-height:58px}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto;min-width:0;text-decoration:none;color:var(--tx)}
.brand img{height:38px;width:auto;max-width:120px;object-fit:contain;border-radius:8px}.brand b{font-size:1rem}
.bn{display:flex;flex-direction:column;line-height:1.2;min-width:0}.bn b,.bn small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bn small{color:var(--mu);font-weight:400;font-size:.76rem}
.mono{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--pr);color:var(--prt);font-weight:700;flex:none}
.nav{display:flex;gap:2px}.nav a{display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:9px;color:var(--mu);text-decoration:none;font-weight:500;font-size:.93rem}
.nav a:hover{background:var(--pr-soft);color:var(--tx)}.nav a.on{color:var(--pr);background:var(--pr-soft)}
.usr{display:flex;align-items:center;gap:10px;font-size:.84rem;color:var(--mu)}.usr-mail{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}
.usr-mail small{display:block;font-size:.72rem;color:var(--pr);font-weight:600}.usr-mail small a{font-weight:600}
@media(max-width:820px){
 .usr-mail{display:none}.usr .btn{padding:8px 12px} /* «Salir» con texto: solo el icono no se entendía */
 .nav{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--card);border-top:1px solid var(--bd);justify-content:space-around;padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 16px rgba(16,24,40,.06)}
 .nav a{flex:1;flex-direction:column;gap:2px;font-size:.7rem;padding:6px 4px;text-align:center}.nav .ic{width:22px;height:22px}
 body.con-nav{padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px))}
}
.trial{background:var(--pr-soft);color:var(--tx);text-align:center;padding:8px 16px;font-size:.86rem;border-bottom:1px solid var(--bd)}
.trial{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}.trial>.ic{flex:none;color:var(--pr)}
.trial.aviso{background:#fef3c7;color:#78350f;border-bottom:2px solid #f59e0b}.trial.aviso>.ic{color:#b45309}
.trial.vencido{background:#fee2e2;color:#7f1d1d;border-bottom:2px solid #ef4444}.trial.vencido>.ic{color:#b91c1c}.trial a.lnk{font-weight:700}
.trial.warn{background:#fdf2e9;display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}.trial.warn .ic{color:#b45309;flex:none}
.trial.warn.fuerte{background:#fef3c7;border-bottom:2px solid #f59e0b;color:#78350f;padding:12px 16px;font-size:.92rem}.inl{display:inline;margin:0}.lnk{background:none;border:0;color:var(--pr);text-decoration:underline;cursor:pointer;font:inherit;padding:0}

/* ---------- Tarjetas y estructura ---------- */
.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:20px;box-shadow:var(--sh);min-width:0}
.two{display:grid;gap:18px}@media(min-width:900px){.two{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start}}
.stack{display:grid;gap:18px}

/* ---------- Formularios ---------- */
label{display:block;font-size:.82rem;font-weight:600;color:var(--mu);margin:14px 0 6px}label small{font-weight:400}
input,textarea,select{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--bd);border-radius:10px;background:var(--card);color:var(--tx);font:inherit;font-size:16px}
textarea{min-height:0;resize:vertical}select{cursor:pointer}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--pr);box-shadow:0 0 0 3px var(--pr-soft)}
.btn:focus-visible,a:focus-visible,summary:focus-visible,.slot input:focus-visible+span,.dias button:focus-visible{outline:2px solid var(--pr);outline-offset:2px}
.inv{border-color:var(--dg)!important;box-shadow:0 0 0 3px rgba(180,35,24,.12)!important}
input[type=checkbox]{width:auto;min-height:0;accent-color:var(--pr)}input[type=color]{padding:3px;height:42px;cursor:pointer}input[type=file]{padding:8px;font-size:.9rem}
.chk{display:flex;gap:8px;align-items:center;font-weight:500}
.row{display:grid;grid-template-columns:1fr;gap:0 12px}@media(min-width:520px){.row{grid-template-columns:1fr 1fr}}
.hint{display:flex;gap:8px;align-items:flex-start;font-size:.83rem;color:var(--mu);margin:10px 0 0}.hint .ic{color:var(--pr);margin-top:1px}
.legal{font-size:.78rem;color:var(--mu);text-align:center;margin:12px 0 0}
fieldset{border:0;padding:0;margin:0 0 6px;min-width:0}legend{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.02rem;padding:0;margin:0 0 2px}
legend span{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--pr-soft);color:var(--pr);font-size:.82rem}
fieldset+fieldset{margin-top:22px;padding-top:20px;box-shadow:inset 0 1px 0 var(--bd)}
details>summary{cursor:pointer;color:var(--pr);font-weight:600;font-size:.88rem;margin-top:14px;list-style:none}details>summary::-webkit-details-marker{display:none}
details:not(.menu)>summary::before{content:"+ "}details[open]:not(.menu)>summary::before{content:"− "}
.pw{position:relative}.pw input{padding-right:70px}.pw-v{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--pr);font:inherit;font-size:.82rem;font-weight:600;padding:8px;cursor:pointer}
.trap{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf-turnstile{margin-top:16px}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font:inherit;font-weight:600;border:1px solid transparent;border-radius:10px;padding:9px 16px;min-height:42px;cursor:pointer;text-decoration:none;text-align:center;transition:filter .15s,background .15s,border-color .15s;line-height:1.2}
.btn:disabled{opacity:.55;cursor:not-allowed}
.main{background:var(--pr);color:var(--prt);width:100%;margin-top:18px;padding:12px 18px}.main:hover:not(:disabled){filter:brightness(1.08)}
.sec{background:var(--card);border-color:var(--bd);color:var(--tx)}.sec:hover{background:var(--pr-soft);border-color:var(--pr-soft)}
.wa{background:var(--wa);color:#fff}.wa:hover{filter:brightness(1.1)}
.del{background:transparent;color:var(--dg);border-color:var(--bd)}.del:hover{background:rgba(180,35,24,.07);border-color:rgba(180,35,24,.3)}
.btn.sm{padding:6px 11px;min-height:36px;font-size:.85rem;border-radius:9px}.btn.sm .ic{width:16px;height:16px}.btn.ico{padding:6px;width:36px}
.btn.main.sm{width:auto;margin:0}.btn.ok{border-color:var(--pr);color:var(--pr)}
.cargando{position:relative;color:transparent!important}.cargando::after{content:"";position:absolute;width:18px;height:18px;border:2px solid var(--prt);border-right-color:transparent;border-radius:50%;animation:gira .7s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}

.msg{padding:11px 14px;border-radius:10px;border:1px solid var(--pr);background:var(--pr-soft);color:var(--tx);font-size:.92rem}.msg.err{border-color:rgba(180,35,24,.4);background:#fdecea;color:var(--dg)}
.msg+form,.card .msg{margin-top:12px}

/* ---------- Etiquetas de estado ---------- */
/* Paleta de estados (fija para todas las marcas: el color comunica el estado) */
:root{--s-pen:#f59e0b;--s-pen-bg:#fef3c7;--s-pen-tx:#92400e;--s-con:#10b981;--s-con-bg:#d1fae5;--s-con-tx:#065f46;--s-ate:#3b82f6;--s-ate-bg:#dbeafe;--s-ate-tx:#1e40af;
 --s-can:#ef4444;--s-can-bg:#fee2e2;--s-can-tx:#991b1b;--s-noa:#64748b;--s-noa-bg:#e2e8f0;--s-noa-tx:#334155}
.tag{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:700;border-radius:20px;padding:3px 10px;background:var(--bd);color:var(--mu);white-space:nowrap;letter-spacing:.01em}.tag .ic{width:12px;height:12px}
.tag>i{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.tag.pendiente{background:var(--s-pen-bg);color:var(--s-pen-tx)}.tag.pendiente>i{background:var(--s-pen);box-shadow:0 0 0 3px rgba(245,158,11,.25);animation:late 1.2s ease-in-out infinite alternate}
.tag.confirmada{background:var(--s-con-bg);color:var(--s-con-tx)}.tag.confirmada>i{background:var(--s-con)}.tag.atendida{background:var(--s-ate-bg);color:var(--s-ate-tx)}.tag.atendida>i{background:var(--s-ate)}
.tag.cancelada{background:var(--s-can-bg);color:var(--s-can-tx)}.tag.cancelada>i{background:var(--s-can)}.tag.no_asistio{background:var(--s-noa-bg);color:var(--s-noa-tx)}.tag.no_asistio>i{background:var(--s-noa)}
.tag.web{background:transparent;border:1px solid var(--bd);color:var(--mu);font-weight:600}.tag.cliente-ok{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}

/* ---------- Tablero (Agenda) ---------- */
.dash-h{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.dash-h h1{font-size:1.7rem;margin-top:2px}
.dash-acts{display:flex;gap:8px;flex-wrap:wrap}.dash-acts .main{width:auto;margin:0}
@media(max-width:520px){.dash-acts{width:100%}.dash-acts .btn{flex:1}.dash-acts .sec span{display:none}}
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media(min-width:700px){.kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}}
.kpi{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:14px 16px;color:var(--mu);font-size:.82rem;text-decoration:none;display:flex;flex-direction:column-reverse;gap:2px;box-shadow:var(--sh);transition:border-color .15s,transform .15s}
.kpi b{font-size:1.75rem;color:var(--tx);line-height:1.1}a.kpi:hover{border-color:var(--pr);transform:translateY(-1px)}
.kpi.alerta{border-color:#f59e0b;background:linear-gradient(0deg,#fffbeb,var(--card))}.kpi.alerta b{color:#92400e}
@media(max-width:699px){.kpis{display:flex;overflow-x:auto;scroll-snap-type:x proximity;margin:0 -16px;padding:2px 16px 6px;scrollbar-width:none}.kpis::-webkit-scrollbar{display:none}
 .kpi{flex:0 0 38%;scroll-snap-align:start;padding:11px 13px}.kpi b{font-size:1.4rem}}
.tablero{padding:0}.tablero>:last-child{border-bottom-left-radius:var(--r);border-bottom-right-radius:var(--r)}
.tb-bar{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--bd)}
.seg{display:flex;background:var(--bg);border-radius:10px;padding:3px;gap:2px;overflow-x:auto;max-width:100%;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}
.seg a{padding:7px 14px;border-radius:8px;color:var(--mu);text-decoration:none;font-weight:600;font-size:.88rem;white-space:nowrap}.seg a.on{background:var(--card);color:var(--tx);box-shadow:var(--sh)}
.tb-bar .filtros{display:flex;gap:8px;flex-wrap:wrap;flex:1;justify-content:flex-end;min-width:0}
.tb-bar .filtros select{width:auto;min-height:40px;padding:8px 10px;font-size:.88rem}
.buscar{position:relative;margin:0;flex:1 1 200px;max-width:280px}.buscar .ic{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--mu)}
.buscar input{min-height:40px;padding:8px 10px 8px 36px;font-size:.9rem}
@media(max-width:640px){.tb-bar .filtros{justify-content:stretch}.buscar{max-width:none;flex-basis:100%}.tb-bar .filtros select{flex:1}.seg{width:100%}.seg a{flex:1;text-align:center;padding:7px 8px}}
.nav-fecha{display:flex;align-items:center;gap:6px;padding:12px 16px;border-bottom:1px solid var(--bd);flex-wrap:wrap}
.nav-fecha h2{margin:0 0 0 8px;font-size:1rem;flex:1;min-width:0}.ir-fecha input{min-height:36px;padding:5px 8px;font-size:.88rem;width:auto}
@media(max-width:520px){.nav-fecha h2{flex-basis:100%;order:-1;margin:0 0 6px}.ir-fecha{margin-left:auto}}
.grupo{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mu);padding:16px 16px 6px;background:var(--bg);border-bottom:1px solid var(--bd);position:sticky;top:58px;z-index:2}
/* Tarjeta de cita: franja y fondo suave con el color del estado */
.cita{--sc:var(--bd);--sbg:transparent;display:grid;grid-template-columns:70px minmax(0,1fr);gap:14px;padding:18px 18px 18px 16px;border-bottom:1px solid var(--bd);position:relative;
 background:linear-gradient(90deg,var(--sbg),transparent 38%);transition:background .3s}
.cita::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:0 4px 4px 0;background:var(--sc)}
.cita:last-child{border-bottom:0}.cita.st-pendiente{--sc:var(--s-pen);--sbg:rgba(245,158,11,.07)}.cita.st-confirmada{--sc:var(--s-con);--sbg:rgba(16,185,129,.06)}
.cita.st-atendida{--sc:var(--s-ate);--sbg:rgba(59,130,246,.05)}.cita.st-cancelada{--sc:var(--s-can)}.cita.st-no_asistio{--sc:var(--s-noa)}
.cita.st-cancelada .ci-b,.cita.st-no_asistio .ci-b,.cita.st-cancelada .ci-h,.cita.st-no_asistio .ci-h{opacity:.62}.cita.foco{background:var(--pr-soft);box-shadow:inset 0 0 0 2px var(--pr)}
.ci-h{display:flex;flex-direction:column;padding-top:2px}.ci-h b{font-size:1.25rem;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.ci-h small{color:var(--mu);font-size:.8rem}
.ci-t{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.ci-n{min-width:0;flex:1 1 180px}.ci-t h3{font-size:1.02rem;margin:0}.ci-tags{display:flex;flex-wrap:wrap;gap:6px}
.av{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:14px;font-weight:800;font-size:.86rem;flex:none;letter-spacing:.02em}
.av.c0{background:#ede9fe;color:#6d28d9}.av.c1{background:#dbeafe;color:#1d4ed8}.av.c2{background:#d1fae5;color:#047857}.av.c3{background:#fce7f3;color:#be185d}
.av.c4{background:#ffedd5;color:#c2410c}.av.c5{background:#cffafe;color:#0e7490}.av.c6{background:#fef9c3;color:#a16207}.av.c7{background:#e0e7ff;color:#4338ca}
.ci-s{margin:2px 0 0;color:var(--mu);font-size:.86rem}.ci-c{margin:10px 0 0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.84rem;color:var(--mu)}
.ci-rec{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 0;font-size:.78rem;color:var(--mu)}.ci-rec .ic{width:14px;height:14px;color:var(--s-pen)}
.ci-rec span{background:var(--bg);border:1px solid var(--bd);border-radius:20px;padding:1px 8px;font-weight:600;color:var(--tx)}
.btn.ok-btn{background:var(--s-con);color:#fff}.btn.ok-btn:hover{filter:brightness(1.07)}
/* Vista Día como línea de tiempo */
.lista-citas.linea .cita{grid-template-columns:70px 18px minmax(0,1fr)}.lista-citas.linea .cita::after{content:"";grid-column:2;grid-row:1;justify-self:center;width:12px;height:12px;margin-top:8px;border-radius:50%;background:var(--card);border:3px solid var(--sc);box-shadow:0 0 0 4px var(--card);z-index:1}
.lista-citas.linea{position:relative}.lista-citas.linea::before{content:"";position:absolute;left:108px;top:0;bottom:0;width:2px;background:repeating-linear-gradient(var(--bd) 0 6px,transparent 6px 10px)}
.lista-citas.linea .ci-b{grid-column:3;grid-row:1}
@media(max-width:520px){.lista-citas.linea .cita{grid-template-columns:1fr}.lista-citas.linea .cita::after,.lista-citas.linea::before{display:none}.lista-citas.linea .ci-b{grid-column:1;grid-row:auto}}
.ci-c a{color:var(--mu);text-decoration:none;word-break:break-all}.ci-c a:hover{color:var(--pr)}.ci-m{margin:6px 0 0;font-size:.86rem;color:var(--mu);font-style:italic}
.acts{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap;align-items:center}.acts form{margin:0}
@media(max-width:520px){.cita{grid-template-columns:1fr;gap:6px;padding:14px 14px 14px 16px}.ci-h{flex-direction:row;gap:6px;align-items:baseline}.ci-h small::before{content:"– "}
 .acts .btn{flex:1 1 auto}.acts form{flex:1 1 auto;display:flex}.acts form .btn{width:100%}}
.menu{position:relative}.menu summary{margin:0;list-style:none}.menu summary::-webkit-details-marker{display:none}
.menu-in{position:absolute;right:0;bottom:calc(100% + 6px);background:var(--card);border:1px solid var(--bd);border-radius:12px;box-shadow:0 12px 32px rgba(16,24,40,.16);padding:6px;z-index:10;min-width:200px}
.menu-in button{display:flex;gap:8px;align-items:center;width:100%;background:none;border:0;padding:10px 12px;border-radius:8px;font:inherit;font-size:.9rem;color:var(--dg);cursor:pointer;text-align:left}.menu-in button:hover{background:#fdecea}
.vacio{text-align:center;padding:48px 20px;color:var(--mu)}.vacio>.ic{width:40px;height:40px;opacity:.5}.vacio p{margin:8px 0 16px}
/* Semana */
.semana{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));overflow-x:auto;scroll-snap-type:x mandatory}
.sd{border-right:1px solid var(--bd);min-height:260px;scroll-snap-align:start;display:flex;flex-direction:column}.sd:last-child{border-right:0}
.sd-h{display:flex;align-items:baseline;gap:6px;padding:10px 12px;border-bottom:1px solid var(--bd);text-decoration:none;color:var(--tx);position:sticky;top:0;background:var(--card)}
.sd-h small{text-transform:uppercase;font-size:.72rem;color:var(--mu);font-weight:700}.sd-h b{font-size:1.15rem}
.sd-h i{margin-left:auto;font-style:normal;font-size:.72rem;background:var(--pr-soft);color:var(--pr);border-radius:20px;padding:1px 8px;font-weight:700}
.sd.hoy .sd-h{background:var(--pr-soft)}.sd.hoy .sd-h b{color:var(--pr)}
.sd-l{display:grid;gap:6px;padding:8px;align-content:start}.sd-v{color:var(--mu);font-size:.8rem;text-align:center;padding:16px 0;opacity:.7}
.sc{display:grid;gap:1px;padding:7px 9px;border-radius:9px;background:var(--bg);border-left:3px solid var(--bd);text-decoration:none;color:var(--tx);font-size:.8rem;line-height:1.3}
.sc b{font-variant-numeric:tabular-nums}.sc span{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sc small{color:var(--mu);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc:hover{filter:brightness(.97);transform:translateY(-1px)}.sc{transition:transform .15s}.sc.st-pendiente{border-left-color:var(--s-pen);background:var(--s-pen-bg)}.sc.st-confirmada{border-left-color:var(--s-con);background:var(--s-con-bg)}
.sc.st-atendida{border-left-color:var(--s-ate);background:var(--s-ate-bg)}.sc.st-cancelada,.sc.st-no_asistio{opacity:.6;text-decoration:line-through}
@media(max-width:700px){.semana{grid-template-columns:repeat(7,78%)}}

/* ---------- Diálogo ---------- */
.dlg{border:0;padding:0;border-radius:18px;width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 24px);background:var(--card);color:var(--tx);box-shadow:0 24px 64px rgba(0,0,0,.25)}
.dlg::backdrop{background:rgba(15,23,42,.5);backdrop-filter:blur(2px)}.dlg[open]{display:flex}
.dlg-in{display:flex;flex-direction:column;width:100%;max-height:calc(100dvh - 24px);margin:0}
.dlg-h{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--bd)}.dlg-h h2{margin:0}
.dlg-b{padding:4px 20px 20px;overflow-y:auto;flex:1}.dlg-f{display:flex;gap:10px;justify-content:flex-end;padding:14px 20px;border-top:1px solid var(--bd);background:var(--card)}
.dlg-f .main{width:auto;margin:0}
@media(max-width:520px){.dlg{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;border-radius:0;margin:0}.dlg-in{max-height:100dvh}.dlg-f .btn{flex:1}}

/* ---------- Selección de día y hora ---------- */
.dias{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x proximity;scrollbar-width:thin}
.dias button{flex:0 0 64px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:0;padding:8px 4px;border:1px solid var(--bd);border-radius:12px;background:var(--card);color:var(--tx);font:inherit;cursor:pointer;line-height:1.25}
.dias button small{font-size:.7rem;color:var(--mu);text-transform:capitalize}.dias button b{font-size:1.15rem}
.dias button:hover{border-color:var(--pr)}.dias button.on{background:var(--pr);border-color:var(--pr);color:var(--prt)}.dias button.on small{color:inherit;opacity:.85}
.dias+input[type=date]{margin-top:4px;max-width:220px;min-height:40px;font-size:.9rem}
.slots{display:grid;gap:12px;border-radius:12px;min-height:44px;outline:none}.slots .mu{margin:6px 0}
.sg small{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mu);font-weight:700;margin-bottom:6px}
.sg>div{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px}
.slot{margin:0;position:relative}.slot input{position:absolute;opacity:0;width:1px;height:1px}
.slot span{display:block;text-align:center;padding:10px 4px;border:1px solid var(--bd);border-radius:10px;font-weight:600;color:var(--tx);font-size:.92rem;cursor:pointer;font-variant-numeric:tabular-nums;background:var(--card)}
.slot span:hover{border-color:var(--pr)}.slot input:checked+span{background:var(--pr);border-color:var(--pr);color:var(--prt)}
.slots.inv{box-shadow:0 0 0 2px rgba(180,35,24,.35)}.cargando-txt{animation:late 1s ease-in-out infinite alternate}@keyframes late{from{opacity:.4}}

/* ---------- Páginas públicas (reserva y catálogo) ---------- */
main.pub{max-width:640px;padding-top:20px;gap:16px}main.pub.wide{max-width:1000px;padding-bottom:110px}
.portada{height:170px;border-radius:var(--r);background-size:cover;background-position:center;border:1px solid var(--bd)}
@media(min-width:640px){.portada{height:220px}}
.pubhead{display:flex;align-items:center;gap:12px}.pubhead h1{font-size:1.35rem}.pubhead .mu{margin:2px 0 0}
.pubhead img{width:56px;height:56px;object-fit:contain;border-radius:14px;background:var(--card);border:1px solid var(--bd);padding:4px}.pubhead .mono{width:56px;height:56px;font-size:1.4rem;border-radius:14px}
.pubhead.sobre{margin-top:-46px;padding:0 14px}.pubhead.sobre img,.pubhead.sobre .mono{box-shadow:0 0 0 4px var(--bg)}.pubhead.sobre>div{padding-top:40px}
.pasos{display:flex;list-style:none;margin:0;padding:0;gap:6px;counter-reset:p}
.pasos li{flex:1;display:flex;align-items:center;gap:7px;font-size:.8rem;font-weight:600;color:var(--mu);padding-top:8px;border-top:3px solid var(--bd)}
.pasos li span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--bd);font-size:.74rem;flex:none}
.pasos li.on{color:var(--tx);border-top-color:var(--pr)}.pasos li.on span{background:var(--pr);color:var(--prt)}
@media(max-width:400px){.pasos li{font-size:.72rem;gap:5px}}
.resumen-box{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;background:var(--bg);border-radius:12px;padding:12px 14px;margin:14px 0}
.resumen-box small{display:block;color:var(--mu);font-size:.74rem}.resumen-box b{font-size:.92rem}
.otp{font-size:1.7rem!important;letter-spacing:.5em;text-align:center;font-variant-numeric:tabular-nums;padding:12px!important;font-weight:700}
.otp-acts{display:flex;justify-content:space-between;gap:12px;margin-top:14px;flex-wrap:wrap}.otp-acts form{margin:0}
.okbox{text-align:center;display:grid;justify-items:center;gap:10px;padding:34px 22px}.okbox h2{margin:0}
.okic{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--pr);color:var(--prt)}.okic .ic{width:32px;height:32px;stroke-width:2.5}
.resumen{font-size:1.02rem;margin:0}.okbox .btn{margin-top:6px}
.contacto{display:flex;gap:8px 18px;flex-wrap:wrap;justify-content:center;color:var(--mu);font-size:.9rem;margin-top:4px}.contacto a{color:var(--pr);font-weight:600}

/* ---------- Ingreso / registro ---------- */
body.auth main{max-width:none;padding:0;display:block}
.split{display:grid;min-height:100vh;min-height:100dvh}@media(min-width:900px){.split{grid-template-columns:1.05fr 1fr}}
.hero{background:linear-gradient(155deg,var(--pr),#10231f 140%);color:#fff;padding:32px 24px;display:flex;flex-direction:column;justify-content:space-between;gap:22px}
.hero .mono{background:rgba(255,255,255,.18);color:#fff;margin-bottom:18px}.mono.lg{width:48px;height:48px;font-size:1.3rem}
.hero h1{font-size:1.8rem;margin-bottom:8px}.hero p{max-width:32ch;opacity:.92;font-size:1.02rem;margin:0 0 18px}
.hero ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}.hero li{padding-left:26px;position:relative;opacity:.95}
.hero li::before{content:"";position:absolute;left:0;top:.5em;width:12px;height:7px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}
.hero small{opacity:.7}
@media(max-width:899px){.hero ul,.hero small{display:none}.hero{padding:24px 20px;flex-direction:row}.hero .mono{margin:0 0 10px}.hero h1{font-size:1.4rem}.hero p{margin:0;font-size:.95rem}}
.auth-panel{display:grid;place-items:start center;padding:28px 18px 40px}@media(min-width:900px){.auth-panel{place-items:center}}
.formbox{width:100%;max-width:400px}.formbox h2{font-size:1.45rem;margin-bottom:4px}
.alt{text-align:center;margin-top:18px;color:var(--mu)}

/* ---------- Catálogo y pedidos ---------- */
.card.filtros{display:grid;gap:12px}.chips2{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}
.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--bd);background:var(--card);color:var(--tx);border-radius:20px;padding:6px 13px;font:inherit;font-size:.84rem;cursor:pointer;white-space:nowrap}
.chip i{width:12px;height:12px;border-radius:50%}.chip:hover{border-color:var(--pr)}.chip.on{background:var(--pr);color:var(--prt);border-color:var(--pr)}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}@media(max-width:380px){.cgrid{grid-template-columns:1fr 1fr;gap:10px}}
.pc{background:var(--card);border:1px solid var(--bd);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.pc img,.pc .ph{width:100%;aspect-ratio:1;object-fit:cover;background:var(--pr-soft)}.pb{padding:12px;display:flex;flex-direction:column;gap:6px;flex:1}
.pb h3{margin:0;font-size:.95rem}.pb p{margin:0;font-size:.82rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pp{display:flex;gap:8px;align-items:baseline}.old{color:var(--mu);font-size:.85rem}.pb .btn{margin-top:auto;padding:8px}
.cartbar{position:fixed;left:0;right:0;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:var(--card);border-top:1px solid var(--bd);justify-content:center;z-index:20}
.cartbar .btn{max-width:520px;margin:0}
.cartpanel{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:30;display:flex;align-items:flex-end;justify-content:center}
.cp-in{background:var(--card);width:100%;max-width:520px;max-height:88vh;overflow:auto;border-radius:18px 18px 0 0;padding:20px 20px calc(20px + env(safe-area-inset-bottom,0px))}
.cp-h{display:flex;justify-content:space-between;align-items:center}.cp-h h2{margin:0}
.ci{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--bd)}.ci small{display:block;color:var(--mu)}
.qty{display:flex;align-items:center;gap:10px}.qty button{width:36px;height:36px;border-radius:8px;border:1px solid var(--bd);background:var(--bg);color:var(--tx);font-size:1.1rem;cursor:pointer}
.item{border-top:1px solid var(--bd);padding:14px 0}.item:first-of-type{border-top:0;padding-top:0}.item b{display:block}.item small{color:var(--mu);display:block}
.item .acts .btn{padding:6px 12px;min-height:36px;font-size:.85rem}
.prod .thumb{width:84px;height:84px;object-fit:cover;border-radius:10px;border:1px solid var(--bd)}
.add{display:flex;gap:8px}.add .btn{white-space:nowrap}
.pro{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid var(--bd);border-radius:10px;padding:6px 6px 6px 12px;margin-top:8px}.pro .btn{padding:5px 10px;min-height:34px;font-size:.82rem}
.colors{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}

/* ---------- Tablero: hero en pantalla dividida con capas (profundidad) ---------- */
.hero-d{position:relative;overflow:hidden;isolation:isolate;display:grid;gap:20px;align-items:center;padding:28px 24px;border-radius:22px;color:#fff;
 background:radial-gradient(120% 140% at 0% 0%,var(--pr) 0%,var(--pr-dk) 70%);box-shadow:0 18px 40px -18px var(--pr-dk)}
@media(min-width:860px){.hero-d{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);padding:34px 36px}}
.hero-d .capa{position:absolute;border-radius:50%;z-index:-1;pointer-events:none}
.hero-d .c1{width:340px;height:340px;right:-90px;top:-150px;background:rgba(255,255,255,.10)}.hero-d .c2{width:220px;height:220px;right:180px;bottom:-140px;background:rgba(255,255,255,.07)}
.hero-d .c3{width:120px;height:120px;left:-40px;bottom:-50px;border:18px solid rgba(255,255,255,.06)}
.hero-d .eyebrow{color:rgba(255,255,255,.75)}.hero-d h1{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:800;letter-spacing:-.03em;margin:6px 0 6px;line-height:1.1}
.hero-d p{margin:0;font-size:1.02rem;opacity:.9}.hd-acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.btn.blanco{background:#fff;color:#0f172a;box-shadow:0 6px 16px -6px rgba(0,0,0,.35)}.btn.blanco:hover{transform:translateY(-1px)}.btn.blanco .ic{color:var(--pr)}
.btn.vidrio{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.28);backdrop-filter:blur(6px)}.btn.vidrio:hover{background:rgba(255,255,255,.22)}
.prox{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:18px 20px;border-radius:18px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(10px);color:#fff;text-decoration:none;transition:transform .2s,background .2s}
a.prox:hover{transform:translateY(-2px);background:rgba(255,255,255,.18)}
.prox-l{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;opacity:.8;font-weight:700}.prox-f{justify-self:end;font-size:.78rem;font-weight:700;background:rgba(255,255,255,.2);padding:2px 10px;border-radius:20px}
.prox-h{grid-column:1/-1;font-size:2.6rem;font-weight:800;letter-spacing:-.04em;line-height:1.1;margin-top:4px;font-variant-numeric:tabular-nums}
.prox-n{grid-column:1/-1;font-size:1.08rem;font-weight:700}.prox small{grid-column:1/-1;opacity:.82}.prox .tag{grid-column:1/-1;justify-self:start;margin-top:8px}
.prox.vacia .prox-h{opacity:.6}
@media(max-width:520px){.hero-d{padding:22px 18px;border-radius:18px;margin:0 -4px}.hd-acts .btn{flex:1}.hd-acts .vidrio .txt-lg{display:none}.prox-h{font-size:2.1rem}}
/* Bento de indicadores */
.bento{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:760px){.bento{grid-template-columns:repeat(6,minmax(0,1fr))}.bento .kp:nth-child(1),.bento .kp:nth-child(2){grid-column:span 3}.bento .kp:nth-child(n+3){grid-column:span 2}}
@media(min-width:1100px){.bento{grid-template-columns:repeat(5,minmax(0,1fr))}.bento .kp:nth-child(n){grid-column:auto}}
.kp{--k:#3b82f6;--kb:#dbeafe;position:relative;overflow:hidden;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"i i" "n n" "l l" "s s";gap:0;padding:16px 18px;border-radius:18px;background:var(--card);border:1px solid var(--bd);box-shadow:var(--sh);text-decoration:none;color:var(--tx);transition:transform .18s,box-shadow .18s}
.kp::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:var(--kb);opacity:.55;z-index:0}
.kp>*{position:relative;z-index:1}a.kp:hover{transform:translateY(-2px);box-shadow:0 12px 24px -12px rgba(16,24,40,.25)}
.kp-i{grid-area:i;display:inline-grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--kb);color:var(--k);margin-bottom:12px}.kp-i .ic{width:20px;height:20px}
.kp b{grid-area:n;font-size:2rem;font-weight:800;letter-spacing:-.03em;line-height:1}.kp>span:not(.kp-i):not(.barra){grid-area:l;font-weight:600;font-size:.88rem;margin-top:4px}
.kp small{grid-area:s;color:var(--mu);font-size:.76rem;margin-top:2px}
.k-azul{--k:#2563eb;--kb:#dbeafe}.k-ambar{--k:#d97706;--kb:#fef3c7}.k-violeta{--k:#7c3aed;--kb:#ede9fe}.k-teal{--k:#0d9488;--kb:#ccfbf1}.k-verde{--k:#059669;--kb:#d1fae5}
.kp.alerta{border-color:#fcd34d;background:linear-gradient(160deg,#fffbeb,var(--card) 60%)}.kp.alerta b{color:#b45309}
.barra{grid-area:s;display:block;height:6px;border-radius:6px;background:var(--bg);margin-top:8px;overflow:hidden}.barra i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#34d399,#059669)}
@media(max-width:759px){.bento .kp:last-child{grid-column:1/-1}.kp{padding:14px}.kp b{font-size:1.6rem}.kp-i{width:34px;height:34px;margin-bottom:8px}}
/* Recordatorios por WhatsApp */
.avisos{border-color:#fcd34d;background:linear-gradient(160deg,#fffbeb,var(--card) 50%)}.av-h{display:flex;gap:12px;align-items:flex-start;margin-bottom:6px}.av-h h2{margin:0}
.avisos .kp-i{--k:#d97706;--kb:#fef3c7;margin:0;flex:none}.av-i{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--bd);flex-wrap:wrap}.av-i .gr{flex:1;min-width:150px}.av-i b{display:block}.av-i small{color:var(--mu)}
.av-i form{margin:0}.av-i .av{width:36px;height:36px;border-radius:12px;font-size:.78rem}
/* Chips de estado con conteo */
.chips-est{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid var(--bd);overflow-x:auto;scrollbar-width:none}.chips-est::-webkit-scrollbar{display:none}
.ce{--c:var(--mu);display:inline-flex;align-items:center;gap:7px;padding:6px 8px 6px 12px;border-radius:30px;border:1px solid var(--bd);background:var(--card);color:var(--tx);text-decoration:none;font-size:.84rem;font-weight:600;white-space:nowrap;transition:background .15s,border-color .15s}
.ce>i{width:8px;height:8px;border-radius:50%;background:var(--c)}.ce b{min-width:24px;text-align:center;font-size:.76rem;padding:1px 7px;border-radius:20px;background:var(--bg);color:var(--mu)}
.ce:hover{border-color:var(--c)}.ce.on{background:var(--c);border-color:var(--c);color:#fff}.ce.on>i{background:#fff}.ce.on b{background:rgba(255,255,255,.25);color:#fff}
.ce-activas{--c:var(--pr)}.ce-pendiente{--c:var(--s-pen)}.ce-confirmada{--c:var(--s-con)}.ce-atendida{--c:var(--s-ate)}.ce-no_asistio{--c:var(--s-noa)}.ce-cancelada{--c:var(--s-can)}.ce-todas{--c:#334155}
.vacio-i{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:20px;background:var(--pr-soft);color:var(--pr)}.vacio-i .ic{width:30px;height:30px}
/* Éxito de la reserva: cuenta regresiva */
.volver{display:flex;align-items:center;gap:10px;font-size:.88rem;color:var(--mu)}.volver svg{width:30px;height:30px;transform:rotate(-90deg)}
.volver circle{fill:none;stroke:var(--bd);stroke-width:3}.volver .anillo{stroke:var(--pr);stroke-dasharray:100.5;stroke-dashoffset:0;stroke-linecap:round}
.okbox.corre .anillo{animation:anillo var(--seg,5s) linear forwards}@keyframes anillo{to{stroke-dashoffset:100.5}}
.ok-acts{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;width:100%}.ok-acts .btn{margin:0;flex:1 1 160px;width:auto}
.okic{animation:pop .5s cubic-bezier(.2,1.4,.4,1)}@keyframes pop{from{transform:scale(.4);opacity:0}}
/* Página pública de la cita (confirmar / cancelar) */
.cita-pub h2{font-size:1.4rem;margin:4px 0 12px}.cp-fecha{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.cp-fecha b{font-size:2.4rem;font-weight:800;letter-spacing:-.03em;color:var(--pr)}
.cp-fecha span{font-size:1.05rem;font-weight:600}.cp-acts{display:grid;gap:10px;margin-top:16px}.cp-acts form{margin:0}.cp-acts .btn{width:100%;margin:0}

/* ---------- Encabezado de secciones (Finanzas, Campañas, Pedidos) ---------- */
.pg-h{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.pg-h h1{font-size:1.7rem;font-weight:800;letter-spacing:-.025em;margin:2px 0}
.pg-h .mu{margin:2px 0 0}.pg-acts{display:flex;gap:8px;flex-wrap:wrap}.pg-acts .main{width:auto;margin:0}
@media(max-width:520px){.pg-acts{width:100%}.pg-acts .btn{flex:1}}
/* Tablas */
.tabla{width:100%;border-collapse:collapse;font-size:.9rem}.tabla th,.tabla td{padding:9px 10px;text-align:right;border-bottom:1px solid var(--bd);white-space:nowrap}
.tabla th:first-child,.tabla td:first-child{text-align:left}.tabla thead th{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mu);font-weight:700;background:var(--bg)}
.tabla tfoot th{border-top:2px solid var(--tx);border-bottom:0;font-size:.92rem}.tabla tr.vacia td{color:var(--mu);opacity:.6}.tabla a{font-weight:600;text-decoration:none}
.tabla-scroll{overflow-x:auto;margin:0 -2px}.pos{color:#047857}.neg{color:#b91c1c}
/* Finanzas */
.fin{padding:0}.fin>.tb-bar{gap:12px}.nav-per{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.nav-per h2{margin:0 8px;font-size:1.05rem;min-width:150px;text-align:center}
.resumen-fin{display:grid;gap:18px;padding:18px 16px;border-bottom:1px solid var(--bd)}@media(min-width:860px){.resumen-fin{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);padding:22px 20px}}
.ledger{width:100%;border-collapse:collapse;font-size:.95rem;background:var(--bg);border-radius:14px;overflow:hidden}
.ledger th,.ledger td{padding:11px 16px;border-bottom:1px dashed var(--bd)}.ledger th{text-align:left;font-weight:500;display:flex;align-items:center;gap:9px}.ledger td{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.ledger tr.sub th,.ledger tr.sub td{font-weight:700;border-bottom-style:solid}.ledger tr.tot th,.ledger tr.tot td{font-size:1.15rem;font-weight:800;border-bottom:0;background:var(--card);border-top:2px solid var(--tx)}
.pt{width:10px;height:10px;border-radius:3px;flex:none}.t-servicio{--t:#2563eb;--tb:#dbeafe}.t-producto{--t:#7c3aed;--tb:#ede9fe}.t-otro{--t:#0d9488;--tb:#ccfbf1}.t-gas{--t:#dc2626;--tb:#fee2e2}.pt{background:var(--t)}
.metodos-res h3,.fin-t,.fin-tops h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mu);margin:0 0 10px}.fin-t{padding:18px 16px 4px}
.movs{padding:0 16px 10px}.mov{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--bd)}.mov:last-child{border-bottom:0}.mov .gr{flex:1;min-width:0}.mov .gr b{display:block}.mov .gr small{color:var(--mu)}
.mov>b{font-variant-numeric:tabular-nums;white-space:nowrap}.mov form{margin:0}.mv-i{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--tb);color:var(--t);flex:none}
.fin-tabla td,.fin-tabla th{font-variant-numeric:tabular-nums}.bar-c{width:22%;min-width:90px}.fbar{display:block;height:8px;border-radius:6px;background:linear-gradient(90deg,#34d399,#059669);min-width:2px}.fbar.neg{background:linear-gradient(90deg,#fca5a5,#dc2626)}
.fin-tabla{margin:0 0 4px}.fin .tabla-scroll{padding:0 16px}
.fin-tops{display:grid;gap:18px;padding:18px 16px 20px;border-top:1px solid var(--bd);margin-top:10px}@media(min-width:860px){.fin-tops{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}
.fin-tops td:first-child{white-space:normal}
.sw-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.sw-row b{display:block}.sw-row small{color:var(--mu)}.sw-row>div{flex:1;min-width:220px}.sw-row .main{width:auto;margin:0}
@media(max-width:640px){.fin>.tb-bar{flex-direction:column;align-items:stretch}.nav-per{justify-content:space-between}.nav-per h2{flex:1;min-width:0;margin:0}}
/* Diálogo de cobro */
.dlg.dlg-sm{width:min(480px,calc(100vw - 24px))}.dlg-h .mu{margin:2px 0 0;font-size:.86rem}
.cobro-base{display:flex;justify-content:space-between;align-items:center;background:var(--bg);border-radius:12px;padding:12px 14px;margin-top:12px}.cobro-base b{font-size:1.1rem}
.monto{position:relative}.monto>span{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--mu);font-weight:700}.monto input{padding-left:30px;font-size:1.3rem!important;font-weight:700}
.metodos{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media(min-width:440px){.metodos{grid-template-columns:repeat(4,1fr)}}
.met{margin:0;position:relative}.met input{position:absolute;opacity:0}.met span{display:block;text-align:center;padding:10px 6px;border:1px solid var(--bd);border-radius:10px;font-weight:600;color:var(--tx);cursor:pointer;font-size:.88rem}
.met input:checked+span{background:var(--pr-soft);border-color:var(--pr);color:var(--pr)}.met input:focus-visible+span{outline:2px solid var(--pr);outline-offset:2px}
.ci-pago{display:inline-flex;align-items:center;gap:6px;margin:8px 0 0;font-size:.84rem;color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:20px;padding:2px 10px}.ci-pago .ic{width:15px;height:15px}
.ci-pago.sin{color:var(--mu);background:var(--bg);border-color:var(--bd)}.menu-in button.neutro{color:var(--tx)}.menu-in button.neutro:hover{background:var(--pr-soft)}
.chk.consent{font-weight:500;color:var(--tx);font-size:.86rem;align-items:flex-start;margin-top:16px}.chk.consent input{margin-top:3px}
/* Promociones visibles al cliente */
.promo-banner{display:flex;gap:12px;align-items:center;padding:14px 16px;border-radius:16px;color:#fff;background:linear-gradient(120deg,#db2777,#f59e0b);box-shadow:0 10px 24px -12px rgba(219,39,119,.6)}
.promo-banner b{display:block;font-size:1rem}.promo-banner small{display:block;opacity:.92}.pb-i{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.22);flex:none}
.tag.promo{background:#fce7f3;color:#be185d;align-self:flex-start}
/* Campañas */
.camps{display:grid;gap:14px}@media(min-width:760px){.camps{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}}
.camp{background:var(--card);border:1px solid var(--bd);border-radius:18px;padding:18px;box-shadow:var(--sh);position:relative;overflow:hidden;display:flex;flex-direction:column;gap:6px}
.camp::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,#db2777,#f59e0b)}.camp.st-no_asistio::before,.camp.st-pendiente::before{background:var(--bd)}
.camp.st-no_asistio{opacity:.72}.camp h3{font-size:1.1rem;margin:4px 0 0}.camp .mu{margin:0}
.cp-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.cp-oferta{font-size:1.25rem;font-weight:800;letter-spacing:-.02em;color:#be185d}
.cp-datos{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px;font-size:.84rem;color:var(--mu)}.cp-datos li{display:flex;gap:8px;align-items:center}.cp-datos .ic{width:15px;height:15px}
.camp .acts{margin-top:auto;padding-top:10px}
.tipos{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tp{margin:0;position:relative}.tp input{position:absolute;opacity:0}
.tp span{display:block;padding:10px 12px;border:1px solid var(--bd);border-radius:12px;cursor:pointer;height:100%}.tp b{display:block;color:var(--tx);font-size:.9rem}.tp small{color:var(--mu);font-weight:400;font-size:.76rem}
.tp input:checked+span{border-color:var(--pr);background:var(--pr-soft);box-shadow:0 0 0 1px var(--pr)}.tp input:focus-visible+span{outline:2px solid var(--pr);outline-offset:2px}
.sel-items{display:grid;gap:4px;max-height:220px;overflow:auto;border:1px solid var(--bd);border-radius:12px;padding:10px 12px;margin-top:8px}.sel-items b{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mu);margin-top:6px}
.sel-items .chk{margin:0;font-size:.88rem;color:var(--tx);font-weight:500}
/* Pedidos */
.pedido{padding:16px 0;border-bottom:1px solid var(--bd)}.pedido:first-child{padding-top:0}.pedido:last-child{border-bottom:0}
.pd-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pd-t{margin-left:auto;font-size:1.1rem}.pd-l{list-style:none;margin:8px 0 0;padding:10px 12px;background:var(--bg);border-radius:12px;display:grid;gap:4px;font-size:.88rem}
.pd-l li{display:flex;justify-content:space-between;gap:10px;align-items:center}.cobrar-ped{display:flex;gap:6px}.cobrar-ped select{width:auto;min-height:36px;padding:4px 8px;font-size:.85rem}
/* Mi plan */
.plan-actual{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.plan-actual h2{font-size:1.6rem;margin:4px 0 2px}.plan-actual .mu{margin:0}
.plan-nota{flex-basis:100%;margin:6px 0 0;padding:10px 14px;border-radius:12px;background:#fef3c7;color:#78350f;font-size:.9rem}
.planes{display:grid;gap:16px}@media(min-width:760px){.planes{grid-template-columns:1fr 1fr}}
.plan-c{background:var(--card);border:1px solid var(--bd);border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--sh)}
.plan-c.destacado{border-color:var(--pr);box-shadow:0 18px 36px -20px var(--pr)}.plan-c.actual{outline:2px solid var(--s-con);outline-offset:-2px}
.pc-top{display:flex;justify-content:space-between;align-items:center}.pc-top h3{font-size:1.3rem;margin:0}.pc-precio{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;margin:0}
.plan-c ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;flex:1}.plan-c li{display:flex;gap:8px;align-items:flex-start;font-size:.92rem}.plan-c li .ic{color:var(--s-con);margin-top:2px;width:16px;height:16px}
.plan-c .btn{width:100%;margin:0}
.pasos-pago{margin:0 0 14px;padding-left:20px;display:grid;gap:6px}
.datos-pago{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.datos-pago>div{background:var(--bg);border-radius:14px;padding:14px 16px;display:grid;gap:2px}
.pago-f{display:grid;gap:10px}.pago-f>label{font-weight:700;margin:6px 0 0}.metodos.m2{grid-template-columns:repeat(2,1fr);max-width:420px}
.pago-total{margin:4px 0;font-size:1rem}.pago-total b{font-size:1.25rem}.pago-f>.btn{justify-self:start;margin:0}
.pago-conf{display:grid;gap:8px;border-top:1px solid var(--bd);padding-top:14px;margin-top:6px}.pago-conf .btn{justify-self:start;margin:0}.pago-conf input{max-width:420px}
.datos-pago small{color:var(--mu);font-size:.74rem;text-transform:uppercase;letter-spacing:.06em}.datos-pago b{font-size:1.05rem}.datos-pago span{color:var(--mu);font-size:.88rem}
.usos{display:grid;gap:16px}@media(min-width:760px){.usos{grid-template-columns:repeat(3,1fr)}}.uso-t{display:flex;justify-content:space-between;gap:10px;font-size:.9rem}.uso-t span{color:var(--mu)}
.uso .barra{display:block;height:8px;border-radius:6px;background:var(--bg);margin-top:8px;overflow:hidden}.uso .barra i{display:block;height:100%;border-radius:6px;background:var(--pr)}
.hist-sus{list-style:none;margin:0;padding:0;display:grid;gap:0}.hist-sus li{display:grid;grid-template-columns:110px 1fr;gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--bd);font-size:.9rem}
.hist-sus li small{color:var(--mu)}@media(max-width:520px){.hist-sus li{grid-template-columns:1fr}}
.elegir-e{display:grid;gap:10px;margin-top:14px}.elegir-e form{margin:0}.elegir-e .btn{width:100%;justify-content:flex-start;gap:12px;padding:12px 14px;text-align:left}
.elegir-e img,.elegir-e .mono{width:40px;height:40px;border-radius:10px;object-fit:contain}.elegir-e b{display:block}.elegir-e small{color:var(--mu);font-weight:500}
.fin-suc{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.fin-suc label{margin:0;display:flex;align-items:center;gap:6px}.fin-suc select{width:auto;min-width:220px}.fin-suc small{color:var(--mu)}
/* Ubicación y horarios (tarjeta pública) */
.ubics{display:grid;gap:16px}@media(min-width:760px){main.pub.wide .ubics{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}}
.ubic{padding:0;overflow:hidden;border-radius:20px;border:0;background:#17302b;color:#e7efed;box-shadow:0 18px 40px -22px rgba(0,0,0,.6)}
.ub-mapa{position:relative;height:190px;background:linear-gradient(135deg,#d7e6e2 25%,#e6efe9 25% 50%,#d7e6e2 50% 75%,#e6efe9 75%);background-size:28px 28px;display:grid;place-items:center}
.ub-mapa.cargado{height:240px;display:block}.ub-mapa iframe{width:100%;height:100%;border:0;display:block}
.ub-pin{position:absolute;top:34%;left:50%;transform:translate(-50%,-50%);color:#dc2626}.ub-pin .ic{width:40px;height:40px;fill:#ef4444;stroke:#fff;stroke-width:1.4;filter:drop-shadow(0 4px 6px rgba(0,0,0,.3))}
.ub-mapa [data-ver-mapa]{position:absolute;top:60%;left:50%;transform:translate(-50%,-50%)}
.ub-ir{position:absolute;left:12px;bottom:12px;display:flex;gap:8px}.ub-mapa.cargado .ub-ir{top:10px;bottom:auto}
.btn.vidrio-o{background:#fff;color:#1a73e8;border-color:rgba(0,0,0,.08);box-shadow:0 2px 8px rgba(0,0,0,.15);min-height:32px;padding:5px 12px;font-size:.82rem}
.ub-info{padding:22px 24px;display:grid;gap:16px}.ub-info h3{margin:0;color:#fff;font-size:1.05rem}
.ub-f{display:flex;gap:12px;align-items:flex-start;margin:0;flex-wrap:wrap}.ub-f>.ic{color:#7dd3c0;margin-top:2px}.ub-f b{color:#fff}.ub-f>span:not(.tag){display:grid;gap:2px}.ub-f a{color:#e7efed;text-decoration:none}.ub-f a:hover{color:#fff}
.ub-f .tag{margin-left:auto}.ub-h table{width:100%;border-collapse:collapse;margin:8px 0 0 30px;width:calc(100% - 30px);font-size:.92rem}
.ub-h td{padding:4px 0;color:#b9cbc7}.ub-h td:last-child{text-align:right}.ub-h tr.hoy td{color:#fff;font-weight:700}
.ub-c{list-style:none;margin:10px 0 0 30px;padding:0;display:grid;gap:6px;font-size:.86rem;color:#fecaca}.ub-c li{display:flex;gap:8px;align-items:center}.ub-c .ic{width:15px;height:15px}
@media(max-width:520px){.ub-info{padding:18px}.ub-h table,.ub-c{margin-left:0;width:100%}}
/* Horario visible y días no laborables (Ajustes) */
.hv{display:grid;gap:8px}.hv-r{display:grid;grid-template-columns:100px 1fr minmax(0,1.2fr);gap:10px;align-items:center}.hv-r input{min-height:38px;padding:7px 10px}
@media(max-width:560px){.hv-r{grid-template-columns:1fr 1fr}.hv-r input{grid-column:1/-1}}
/* Usuarios */
.rw-u{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--bd)}.rw-u:last-child{border-bottom:0}
@media(min-width:760px){.rw-u{grid-template-columns:auto minmax(0,1.4fr) minmax(0,1fr) auto}}.rw-u .gr b{display:block}.rw-u small{color:var(--mu)}.rw-u .acts{margin:0;grid-column:1/-1}
@media(min-width:760px){.rw-u .acts{grid-column:auto}}.u-rol{display:grid;gap:2px;justify-items:start}.rw-u.inactivo{opacity:.6}.rw-u .av .ic{width:18px;height:18px}
.roles-g{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.roles-g>div{background:var(--bg);border-radius:12px;padding:12px 14px}.roles-g b{display:block}.roles-g small{color:var(--mu)}
/* Administración */
.adm-res{padding:0;border:0;flex-wrap:wrap}.adm-res .ce{cursor:default}.adm-buscar .buscar{max-width:420px}
.adm{padding:6px 18px}.adm-e{display:grid;gap:8px 16px;padding:14px 0;border-bottom:1px solid var(--bd);align-items:center}.adm-e:last-child{border-bottom:0}
@media(min-width:900px){.adm-e{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,.9fr) auto}}
.adm-n b,.adm-p b{display:block}.adm-n small,.adm-p small,.adm-s small{color:var(--mu)}.adm-p{display:grid;gap:2px;justify-items:start}.adm-e .acts{margin:0}
/* Logo de WhatsApp (relleno, no trazo) */
.ic.ic-wa{fill:currentColor;stroke:none}.btn.wa{background:#25d366;color:#fff}.btn.wa:hover{filter:brightness(.95)}.btn.wa .ic-wa{width:18px;height:18px}
.acts>a.btn.wa:only-child,.acts>a.btn.wa[aria-label]{width:40px;padding:6px;flex:0 0 40px}.acts>a.btn.wa[aria-label] .ic-wa{width:20px;height:20px}
.wa-link{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#25d366;color:#fff!important}.wa-link .ic-wa{width:22px;height:22px}
.btn.wa-btn{background:#25d366;color:#fff}.btn.wa-btn .ic-wa{width:20px;height:20px}
/* Reglas de estados: aviso de horario e historial de cambios */
.ci-regla{display:flex;align-items:center;gap:6px;margin:8px 0 0;font-size:.8rem;color:var(--mu)}.ci-regla .ic{width:14px;height:14px}
.hist{margin-top:8px;font-size:.82rem}.hist summary{margin:0;font-size:.8rem;color:var(--mu)}details.hist>summary::before{content:"▸ "}details.hist[open]>summary::before{content:"▾ "}
.hist ol{margin:6px 0 0;padding:8px 10px 8px 26px;background:var(--bg);border-radius:10px;display:grid;gap:6px;color:var(--tx)}.hist li span{display:block;color:var(--mu)}
.cancelar-c>summary{margin:0;width:100%;list-style:none}details.cancelar-c>summary::before{content:none}.cancelar-c form{display:grid;gap:8px;margin-top:10px}.cancelar-c .btn{width:100%}
/* Navegación con más secciones: en móvil la barra inferior se desliza */
/* «Más» del menú: solo en celular; en pantallas grandes todas las secciones están a la vista */
.nav-mas{display:none}
@media(max-width:820px){.nav a,.nav-mas{flex:1 1 0;min-width:0}.nav a span{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
 .nav .nav-x{display:none}.nav-mas{display:flex;position:relative}
 .nav-mas>summary{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border-radius:9px;color:var(--mu);font-weight:500;font-size:.72rem;cursor:pointer;list-style:none}
 .nav-mas>summary::-webkit-details-marker{display:none}.nav-mas>summary::before{content:none;display:none}.nav-mas>summary.on,.nav-mas[open]>summary{color:var(--pr);background:var(--pr-soft)}
 .nav-mas-m{position:absolute;right:0;bottom:calc(100% + 10px);min-width:190px;background:var(--card);border:1px solid var(--bd);border-radius:14px;box-shadow:0 12px 32px rgba(16,24,40,.18);padding:6px;display:grid;gap:2px}
 .nav-mas-m a{flex-direction:row;gap:10px;font-size:.92rem;padding:11px 12px;text-align:left}.nav-mas-m a span{font-size:.92rem}}
@media(min-width:821px) and (max-width:1100px){.nav a span{display:none}.nav a{padding:9px}}

@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{.bar,.nav,.dash-acts,.tb-bar,.acts,.nav-fecha form,.trial{display:none!important}body{background:#fff}.card{box-shadow:none;border:0}.cita{break-inside:avoid}}
/* Administración · solicitudes de demo */
.lead-est{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.lead-est select{width:auto;min-height:34px;padding:4px 8px;font-size:.85rem}
/* Reserva · verificación por WhatsApp */
.wa-btn{width:100%;background:#25d366;color:#0b3b1e;border-color:#25d366;font-size:1.05rem;min-height:52px;gap:10px}.wa-btn:hover{background:#1ebe5b}.wa-btn .ic{width:22px;height:22px}
.wa-cod{text-align:center;margin:14px 0 6px;display:grid;gap:4px}.wa-cod b{font-size:1.7rem;letter-spacing:.12em;font-variant-numeric:tabular-nums}.wa-cod small{color:var(--mu)}.wa-cod small b{font-size:inherit;letter-spacing:0}
.wa-esp{display:flex;gap:10px;align-items:center;justify-content:center;margin:12px 0;color:var(--mu);font-size:.92rem}
.spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--bd);border-top-color:var(--pr);animation:giro .9s linear infinite}@keyframes giro{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.spin{animation:none}}
/* ---------- Historial de clientes (opcional por empresa) ---------- */
.ci-det{display:flex;gap:10px;align-items:flex-start;margin:8px 0 4px;padding:10px 12px;border-radius:10px;background:var(--pr-soft);font-size:.88rem}
.ci-det.sin{background:var(--bg)}.ci-det .ic{flex:none;width:18px;height:18px;color:var(--pr);margin-top:2px}.ci-det p{margin:2px 0 4px;white-space:normal}
.ci-det-a{display:flex;flex-wrap:wrap;gap:4px 14px}.ci-det-a .lnk{font-size:.84rem}
.ci-c a .ic{width:15px;height:15px;vertical-align:-3px;margin-right:3px}
.cl-contacto a{color:inherit}.cl-contacto .ic{width:16px;height:16px;vertical-align:-3px}
.cl-res{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:0 0 16px}
.cl-res>div{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:12px 14px}.cl-res small{display:block;color:var(--mu);font-size:.78rem}.cl-res b{font-size:1.15rem}
.cl-notas{margin-bottom:16px}.cl-notas textarea{margin-top:6px}.cl-notas .pf{margin-top:8px}
.cl-hist{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.cl-hist>li{display:grid;grid-template-columns:150px 1fr;gap:14px;padding:14px;border:1px solid var(--bd);border-left:3px solid var(--pr);border-radius:12px;background:var(--card)}
.cl-hist>li.sin{border-left-color:var(--bd)}.cl-hf b{display:block;font-size:.9rem}.cl-hf span{color:var(--mu);font-size:1.3rem;font-weight:700}
.cl-hb h3{margin:0;font-size:1rem}.cl-hb .mu{margin:2px 0 6px;font-size:.85rem}.cl-det{margin:0 0 8px;white-space:normal}.cl-hb .acts{display:flex;gap:6px;flex-wrap:wrap}
.cl-tabla td a{color:var(--tx)}
@media(max-width:640px){.cl-hist>li{grid-template-columns:1fr;gap:6px}.cl-hf{display:flex;gap:8px;align-items:baseline}.cl-hf span{font-size:1rem}.pg-h .btn.main{width:100%;margin-top:10px}}
