/* estilo-admin.css — compartido por historial.html, gestion.html y ficha.html */
/* ═══════════════════════════════════════
   VARIABLES & RESET
═══════════════════════════════════════ */
:root{
  --bg:        #16110c;
  --surface:   #1e1711;
  --surface2:  #271e16;
  --surface3:  #30251b;
  --border:    #3a2d21;
  --border2:   #47382a;
  --accent:    #c29a64;
  --accent2:   #9e7848;
  --gold:      #e0a07e;
  --danger:    #ff5d78;
  --warn:      #e0b84a;
  --ok:        #22c55e;
  --text:      #f2e9dc;
  --muted:     #8a7a66;
  --muted2:    #b5a38b;
  --radius:    12px;
  --panel-r:   16px;
  --mono:      'JetBrains Mono',monospace;
  --grid-line: rgba(176,133,80,.045);
}
:root[data-theme="light"]{
  --bg:        #f5eee4;
  --surface:   #ffffff;
  --surface2:  #faf5ee;
  --surface3:  #f2e8da;
  --border:    #eadfcf;
  --border2:   #dccab2;
  --accent:    #8a6a43;
  --accent2:   #a6824f;
  --gold:      #b0623f;
  --danger:    #c0392b;
  --warn:      #b7791f;
  --ok:        #16a34a;
  --text:      #3d2f22;
  --muted:     #a8977f;
  --muted2:    #7a6852;
  --grid-line: rgba(166,130,79,.06);
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html,body{height:100%}
body{font-family:'Outfit',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;transition:background .3s,color .3s}
body::before{
  content:'';position:fixed;inset:0;
  background-image:
    linear-gradient(var(--grid-line) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);
  background-size:40px 40px;
  pointer-events:none;z-index:0;
}

/* ═══════════════════════════════════════
   LOGIN
═══════════════════════════════════════ */
#login-screen{position:relative;z-index:2;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:34px 30px;width:100%;max-width:360px;box-shadow:0 24px 60px rgba(0,0,0,.35);animation:fadeUp .4s ease both}
.login-brand{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:22px}
.login-brand .logo-icon{width:52px;height:52px;background:linear-gradient(135deg,var(--accent),var(--accent2));border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.6rem}
.login-brand h1{font-size:1.4rem;font-weight:700;letter-spacing:-.02em}
.login-brand h1 span{color:var(--accent)}
.login-brand p{font-size:.78rem;color:var(--muted2)}
.login-form label{font-size:.75rem;color:var(--muted2);font-weight:500;display:block;margin-bottom:5px;margin-top:12px}
.login-form input{width:100%;background:var(--surface2);border:1px solid var(--border2);color:var(--text);padding:11px 14px;border-radius:10px;font-size:.9rem;font-family:'Outfit',sans-serif;outline:none;transition:border-color .2s}
.login-form input:focus{border-color:var(--accent)}
.btn-login{width:100%;margin-top:20px;background:linear-gradient(135deg,var(--accent),var(--accent2));border:none;color:#fff;padding:12px;border-radius:11px;font-weight:700;font-family:'Outfit',sans-serif;font-size:.9rem;cursor:pointer;transition:opacity .2s,transform .15s}
.btn-login:hover{opacity:.9;transform:translateY(-1px)}
.btn-login:disabled{opacity:.5;cursor:not-allowed;transform:none}
.login-err{margin-top:14px;font-size:.78rem;color:var(--danger);background:rgba(255,77,109,.1);border:1px solid rgba(255,77,109,.3);border-radius:9px;padding:9px 12px;text-align:center;display:none}
.login-err.show{display:block}
.login-theme{position:absolute;top:20px;right:24px}

/* ═══════════════════════════════════════
   TOPBAR
═══════════════════════════════════════ */
#app{position:relative;z-index:1}
.topbar{
  position:sticky;top:0;z-index:100;
  background:color-mix(in srgb,var(--bg) 85%,transparent);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
  padding:0 24px;height:58px;
  display:flex;align-items:center;gap:14px;
}
.topbar-logo{display:flex;align-items:center;gap:10px}
.logo-icon{width:34px;height:34px;background:linear-gradient(135deg,var(--accent),var(--accent2));border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}
.topbar-logo h1{font-size:1.05rem;font-weight:700;letter-spacing:-.02em}
.topbar-logo h1 span{color:var(--accent)}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.btn-refresh{background:var(--surface2);border:1px solid var(--border);color:var(--muted2);padding:6px 12px;border-radius:8px;font-size:.76rem;font-family:'Outfit',sans-serif;cursor:pointer;display:flex;align-items:center;gap:6px;transition:.2s;white-space:nowrap}
.btn-refresh:hover{color:var(--accent);border-color:var(--accent);background:rgba(176,133,80,.06)}
.btn-logout:hover{color:var(--danger);border-color:var(--danger);background:rgba(255,77,109,.06)}
.clock{font-family:var(--mono);font-size:.76rem;color:var(--muted2);background:var(--surface2);border:1px solid var(--border);padding:5px 9px;border-radius:8px}
.user-chip{font-size:.76rem;color:var(--accent);background:rgba(176,133,80,.1);border:1px solid rgba(176,133,80,.3);padding:5px 10px;border-radius:20px;font-weight:600}
.topnav{display:flex;gap:6px;margin-left:14px}
.topnav a{text-decoration:none}
.btn-refresh.active{color:var(--accent);border-color:var(--accent);background:rgba(176,133,80,.1)}
@media(max-width:1100px){.clock{display:none}.topbar{overflow-x:auto}}
a.vc-code.vc-link{text-decoration:none;background:rgba(176,98,63,.1);border-color:rgba(176,98,63,.35);color:var(--gold)}
a.vc-code.vc-link:hover{background:rgba(176,98,63,.2)}

/* ═══════════════════════════════════════
   TABS
═══════════════════════════════════════ */
.tabs-bar{position:sticky;top:58px;z-index:99;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);padding:0 24px;display:flex;gap:4px;overflow-x:auto}
.tab-btn{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted2);padding:13px 16px;font-size:.84rem;font-weight:600;font-family:'Outfit',sans-serif;cursor:pointer;display:flex;align-items:center;gap:7px;transition:.2s;white-space:nowrap}
.tab-btn:hover{color:var(--text)}
.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}
.tab-btn .tab-count{font-size:.68rem;font-family:var(--mono);background:var(--surface3);border:1px solid var(--border2);padding:1px 7px;border-radius:20px}
.tab-btn.active .tab-count{background:rgba(176,133,80,.15);border-color:rgba(176,133,80,.3);color:var(--accent)}

.main{position:relative;z-index:1;padding:22px 24px 40px;max-width:1100px;margin:0 auto}
.tab-pane{display:none;animation:fadeUp .3s ease both}
.tab-pane.active{display:block}

/* ═══════════════════════════════════════
   PANEL BASE
═══════════════════════════════════════ */
.panel{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--panel-r);
  display:flex;flex-direction:column;
  overflow:hidden;
}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

.panel-header{
  padding:16px 20px 14px;
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:10px;
  background:var(--surface2);flex-shrink:0;
}
.panel-icon{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0}
.pi-warn{background:rgba(255,183,3,.12);border:1px solid rgba(255,183,3,.25)}
.pi-ok  {background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.25)}
.pi-pay {background:rgba(176,98,63,.12);border:1px solid rgba(176,98,63,.25)}
.pi-doc {background:rgba(176,133,80,.12);border:1px solid rgba(176,133,80,.25)}
.panel-title{font-size:.95rem;font-weight:700;letter-spacing:-.01em}
.panel-badge{margin-left:auto;font-size:.7rem;font-weight:700;padding:3px 9px;border-radius:20px;font-family:var(--mono)}
.badge-warn{background:rgba(255,183,3,.15);color:var(--warn);border:1px solid rgba(255,183,3,.3)}
.badge-ok  {background:rgba(34,197,94,.15);color:var(--ok);border:1px solid rgba(34,197,94,.3)}
.badge-info{background:rgba(176,98,63,.15);color:var(--gold);border:1px solid rgba(176,98,63,.3)}
.badge-acc {background:rgba(176,133,80,.15);color:var(--accent);border:1px solid rgba(176,133,80,.3)}

.panel-body{padding:16px 18px}
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}

/* ═══════════════════════════════════════
   VISIT CARDS
═══════════════════════════════════════ */
.visit-card{
  background:var(--surface2);
  border:1px solid var(--border2);
  border-radius:10px;
  padding:12px 14px;
  display:flex;align-items:flex-start;gap:12px;
  transition:border-color .2s,background .2s;
  position:relative;overflow:hidden;
}
.visit-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px}
.visit-card.pendiente::before{background:var(--warn)}
.visit-card.cancelado::before{background:var(--danger)}
.visit-card.confirmado::before{background:var(--ok)}
.visit-card:hover{background:var(--surface3);border-color:var(--border)}
.vc-avatar{width:36px;height:36px;border-radius:50%;background:var(--surface3);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.vc-info{flex:1;min-width:0}
.vc-name{font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vc-doc{font-size:.75rem;color:var(--muted2);margin-top:1px}
.vc-ci{font-size:.72rem;color:var(--muted2);margin-top:2px}
.vc-ci b{font-family:var(--mono);color:var(--gold)}
.vc-meta{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}
.vc-code{font-family:var(--mono);font-size:.7rem;background:rgba(176,133,80,.08);border:1px solid rgba(176,133,80,.2);color:var(--accent);padding:2px 7px;border-radius:5px}
.vc-date{font-size:.72rem;color:var(--muted2);display:flex;align-items:center;gap:3px}
.status-tag{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.05em}
.st-pendiente{background:rgba(255,183,3,.12);color:var(--warn)}
.st-cancelado{background:rgba(255,77,109,.12);color:var(--danger)}
.st-confirmado{background:rgba(34,197,94,.12);color:var(--ok)}
.st-pagado{background:rgba(176,98,63,.12);color:var(--gold)}
.empty-state{text-align:center;padding:32px 16px;color:var(--muted);font-size:.82rem}
.empty-state .emo{font-size:2rem;display:block;margin-bottom:8px}
.loading{display:flex;justify-content:center;padding:32px;gap:6px}
.loading span{width:8px;height:8px;background:var(--muted);border-radius:50%;animation:blink .9s infinite}
.loading span:nth-child(2){animation-delay:.15s}
.loading span:nth-child(3){animation-delay:.3s}
@keyframes blink{0%,80%,100%{opacity:.2}40%{opacity:1}}

/* ═══════════════════════════════════════
   PAGO
═══════════════════════════════════════ */
.pay-wrap{max-width:520px}
.pay-select-row{display:flex;gap:10px;align-items:flex-end;margin-bottom:16px;flex-wrap:wrap}
.pay-select-row label{font-size:.75rem;color:var(--muted2);font-weight:500;display:block;margin-bottom:4px}
.pay-select-row select{background:var(--surface2);border:1px solid var(--border2);color:var(--text);padding:9px 12px;border-radius:9px;font-size:.82rem;font-family:'Outfit',sans-serif;outline:none;transition:border-color .2s;width:100%}
.pay-select-row select:focus{border-color:var(--accent)}
.pay-select-row select option{background:var(--surface)}
.pay-preview{background:var(--surface2);border:1px solid var(--border2);border-radius:10px;padding:14px 16px;margin-bottom:14px;display:none}
.pay-preview.show{display:block}
.pp-row{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;padding:5px 0;border-bottom:1px solid var(--border)}
.pp-row:last-child{border:none;padding-top:8px;font-weight:700;font-size:.9rem}
.pp-label{color:var(--muted2)}
.pp-val{font-family:var(--mono);color:var(--text)}
.pp-total{color:var(--accent);font-family:var(--mono);font-size:1.05rem}
.pay-form{display:flex;flex-direction:column;gap:10px}
.pay-form label{font-size:.75rem;color:var(--muted2);font-weight:500;display:block;margin-bottom:3px}
.pay-form input,.pay-form select{background:var(--surface2);border:1px solid var(--border2);color:var(--text);padding:9px 12px;border-radius:9px;font-size:.82rem;font-family:'Outfit',sans-serif;outline:none;transition:border-color .2s;width:100%}
.pay-form input:focus,.pay-form select:focus{border-color:var(--accent)}
.pay-form select option{background:var(--surface)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.btn-pay{background:linear-gradient(135deg,var(--accent),var(--accent2));border:none;color:#fff;padding:11px;border-radius:10px;font-weight:700;font-family:'Outfit',sans-serif;font-size:.85rem;cursor:pointer;transition:opacity .2s,transform .15s;margin-top:4px}
.btn-pay:hover{opacity:.88;transform:translateY(-1px)}
.btn-pay:disabled{opacity:.4;cursor:not-allowed;transform:none}
.pay-success{background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.25);border-radius:10px;padding:14px;text-align:center;display:none}
.pay-success.show{display:block}
.pay-success .ck{font-size:2rem;display:block;margin-bottom:6px}
.pay-success p{font-size:.8rem;color:var(--ok)}
.pay-success strong{font-family:var(--mono);color:var(--accent)}

/* ═══════════════════════════════════════
   TURNOS
═══════════════════════════════════════ */
.filter-row{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;align-items:center}
.filter-row select{background:var(--surface2);border:1px solid var(--border2);color:var(--text);padding:8px 10px;border-radius:8px;font-size:.78rem;font-family:'Outfit',sans-serif;outline:none;flex:1;min-width:160px}
.filter-row select:focus{border-color:var(--accent)}
.filter-row select option{background:var(--surface)}
.turno-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.doc-turno-group{background:var(--surface2);border:1px solid var(--border2);border-radius:10px;overflow:hidden}
.doc-turno-header{padding:10px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border)}
.doc-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;font-size:.8rem;color:#fff;font-weight:700;flex-shrink:0}
.doc-name{font-size:.82rem;font-weight:600}
.doc-esp{font-size:.72rem;color:var(--muted2)}
.avail-badge{margin-left:auto;font-size:.68rem;font-weight:700;padding:2px 7px;border-radius:20px;font-family:var(--mono)}
.ab-ok{background:rgba(34,197,94,.12);color:var(--ok);border:1px solid rgba(34,197,94,.2)}
.ab-off{background:rgba(255,77,109,.12);color:var(--danger);border:1px solid rgba(255,77,109,.2)}
.turnos-slots{padding:10px 14px;display:flex;flex-wrap:wrap;gap:6px}
.slot{padding:5px 10px;border-radius:7px;font-size:.72rem;font-family:var(--mono);font-weight:500;border:1px solid;display:flex;align-items:center;gap:5px;transition:.15s}
.slot-ok{background:rgba(34,197,94,.08);border-color:rgba(34,197,94,.3);color:var(--ok)}
.slot-full{background:rgba(255,77,109,.08);border-color:rgba(255,77,109,.2);color:var(--danger);text-decoration:line-through;opacity:.6}
.slot-ok:hover{background:rgba(34,197,94,.15)}

/* ═══════════════════════════════════════
   TOAST
═══════════════════════════════════════ */
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--surface3);border:1px solid var(--border2);color:var(--text);padding:10px 20px;border-radius:10px;font-size:.82rem;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;z-index:9999;box-shadow:0 8px 30px rgba(0,0,0,.5)}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#toast.t-ok{border-color:rgba(34,197,94,.4);color:var(--ok)}
#toast.t-err{border-color:rgba(255,77,109,.4);color:var(--danger)}

*::-webkit-scrollbar{width:5px;height:5px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}

/* ── Marca (logo) ── */
.logo-icon{background:#fff url("logo-texto.jpg") center/contain no-repeat!important;width:104px!important;height:40px!important;border-radius:8px!important;border:1px solid var(--border2)}
.login-brand .logo-icon{background:#fff url("logo.jpg") center/cover!important;width:110px!important;height:110px!important;border-radius:50%!important;border:3px solid var(--accent)}
.login-card{border-top:3px solid var(--gold)}
.topbar{border-bottom:2px solid var(--gold)!important}

/* ═══════════════════════════════════════
   COMPONENTES COMPARTIDOS (gestión / ficha)
═══════════════════════════════════════ */
.topnav{display:flex;gap:6px;margin-left:14px}
.topnav a{text-decoration:none}
.btn-refresh.active{color:var(--accent);border-color:var(--accent);background:rgba(176,133,80,.1)}
a.btn-refresh{text-decoration:none}
@media(max-width:1100px){.clock{display:none}.topbar{overflow-x:auto}}
.main.wide{max-width:1260px}

.layout-2{display:grid;grid-template-columns:minmax(300px,390px) 1fr;gap:16px;align-items:start}
@media(max-width:920px){.layout-2{grid-template-columns:1fr}}
.stack{display:flex;flex-direction:column;gap:16px}

.form-grid{display:flex;flex-direction:column;gap:11px}
.field label{font-size:.75rem;color:var(--muted2);font-weight:500;display:block;margin-bottom:4px}
.field input,.field select,.field textarea{background:var(--surface2);border:1px solid var(--border2);color:var(--text);padding:9px 12px;border-radius:9px;font-size:.82rem;font-family:'Outfit',sans-serif;outline:none;transition:border-color .2s;width:100%}
.field textarea{resize:vertical;min-height:66px;line-height:1.45}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}
.field select option{background:var(--surface)}
.field input:disabled,.field select:disabled,.field textarea:disabled{opacity:.72;cursor:default}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:560px){.row2,.row3{grid-template-columns:1fr}}
.req{color:var(--danger)}
.hint{font-size:.72rem;color:var(--muted2);line-height:1.4}
.mono{font-family:var(--mono)}
.section-title{font-size:.72rem;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.09em;margin-top:6px;padding-bottom:4px;border-bottom:1px dashed var(--border2)}

.days{display:flex;flex-wrap:wrap;gap:6px}
.day-chip input{display:none}
.day-chip span{display:inline-block;padding:6px 11px;border-radius:20px;font-size:.76rem;font-weight:600;border:1px solid var(--border2);background:var(--surface2);color:var(--muted2);cursor:pointer;transition:.15s;user-select:none}
.day-chip input:checked + span{background:rgba(176,133,80,.15);border-color:var(--accent);color:var(--accent)}

.switch{display:flex;align-items:center;gap:10px;font-size:.8rem;cursor:pointer;user-select:none}
.switch input{display:none}
.switch .track{width:38px;height:21px;border-radius:20px;background:var(--surface3);border:1px solid var(--border2);position:relative;transition:.2s;flex-shrink:0}
.switch .track::after{content:'';position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:var(--muted2);transition:.2s}
.switch input:checked + .track{background:rgba(34,197,94,.25);border-color:var(--ok)}
.switch input:checked + .track::after{left:19px;background:var(--ok)}

.btn{border:1px solid transparent;padding:9px 14px;border-radius:10px;font-weight:600;font-family:'Outfit',sans-serif;font-size:.82rem;cursor:pointer;transition:opacity .2s,transform .15s,border-color .2s;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}
.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff}
.btn-primary:hover{opacity:.9;transform:translateY(-1px)}
.btn-gold{background:linear-gradient(135deg,var(--gold),#8f4f33);color:#ffffff}
.btn-gold:hover{opacity:.9;transform:translateY(-1px)}
.btn-ghost{background:var(--surface2);border-color:var(--border2);color:var(--muted2)}
.btn-ghost:hover{color:var(--accent);border-color:var(--accent)}
.btn-danger{background:rgba(255,77,109,.1);border-color:rgba(255,77,109,.35);color:var(--danger)}
.btn-danger:hover{background:rgba(255,77,109,.18)}
.btn-sm{padding:6px 10px;font-size:.74rem;border-radius:8px}
.btn-row{display:flex;gap:8px;flex-wrap:wrap}

.icon-btn{background:var(--surface3);border:1px solid var(--border2);color:var(--muted2);min-width:30px;height:30px;padding:0 7px;border-radius:8px;cursor:pointer;font-size:.8rem;display:inline-flex;align-items:center;justify-content:center;transition:.15s}
.icon-btn:hover{color:var(--accent);border-color:var(--accent)}
.icon-btn.danger:hover{color:var(--danger);border-color:var(--danger)}
.mini-actions{display:flex;gap:6px;margin-left:auto;flex-shrink:0}

.chip{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;padding:3px 10px;border-radius:20px;background:var(--surface3);border:1px solid var(--border2);color:var(--text)}
.chip button{background:none;border:none;color:var(--muted2);cursor:pointer;font-size:.78rem;line-height:1;padding:0}
.chip button:hover{color:var(--danger)}
.chip-ok{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.3);color:var(--ok)}
.chip-warn{background:rgba(255,183,3,.12);border-color:rgba(255,183,3,.3);color:var(--warn)}
.chip-err{background:rgba(255,77,109,.12);border-color:rgba(255,77,109,.35);color:var(--danger)}
.chip-gold{background:rgba(176,98,63,.12);border-color:rgba(176,98,63,.35);color:var(--gold)}
.tags{display:flex;flex-wrap:wrap;gap:6px;padding:7px 8px;background:var(--surface2);border:1px solid var(--border2);border-radius:9px;min-height:40px;align-items:center}
.tags:focus-within{border-color:var(--accent)}
.tags input{flex:1;min-width:150px;background:transparent;border:none;outline:none;color:var(--text);font-family:'Outfit',sans-serif;font-size:.82rem;padding:3px}
.tags .empty{font-size:.76rem;color:var(--muted)}

.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:.8rem}
.tbl th{text-align:left;color:var(--muted2);font-weight:600;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}
.tbl td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:middle}
.tbl tr:hover td{background:var(--surface2)}
.tbl .grp td{background:var(--surface2);font-weight:700;color:var(--gold);font-size:.74rem;letter-spacing:.04em}
.tbl input[type=number]{width:64px;background:var(--surface2);border:1px solid var(--border2);color:var(--text);padding:5px 7px;border-radius:7px;font-family:var(--mono);font-size:.78rem;outline:none}
.tbl input[type=number]:focus{border-color:var(--accent)}

.bar{height:6px;border-radius:6px;background:var(--surface3);overflow:hidden;min-width:70px}
.bar i{display:block;height:100%;background:var(--ok);border-radius:6px}
.bar i.full{background:var(--danger)}
.bar i.mid{background:var(--warn)}

.preview-box{background:var(--surface2);border:1px dashed var(--border2);border-radius:10px;padding:10px 12px;font-size:.78rem;color:var(--muted2);line-height:1.5}
.preview-box b{color:var(--accent);font-family:var(--mono)}
.list-scroll{max-height:640px;overflow-y:auto;padding-right:2px}
.field .tags input,.field .tags input:focus{background:transparent;border:none;padding:3px;width:auto;border-radius:0}

/* ═══════════════════════════════════════
   NUEVO · CENTRO DE ESTÉTICA
═══════════════════════════════════════ */
.st-atendido{background:rgba(168,151,127,.16);color:var(--muted2)}
.st-activo{background:rgba(34,197,94,.12);color:var(--ok)}
.st-finalizado{background:rgba(176,98,63,.14);color:var(--gold)}
.st-suspendido{background:rgba(255,183,3,.12);color:var(--warn)}
.visit-card.atendido::before{background:var(--muted)}
.visit-card.atendido{opacity:.8}
.vc-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}

/* Profesionales / tratamientos (gestion.html) */
.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
.doc-turno-group.off{opacity:.62}
.doc-meta{padding:9px 14px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.74rem;color:var(--muted2)}
.doc-meta .chip{font-size:.7rem}
.doc-turno-header .mini-actions{margin-left:8px}
.check-chips{display:flex;flex-wrap:wrap;gap:6px}
.check-chips input{display:none}
.check-chips span{display:inline-block;padding:6px 11px;border-radius:20px;font-size:.76rem;font-weight:600;border:1px solid var(--border2);background:var(--surface2);color:var(--muted2);cursor:pointer;transition:.15s;user-select:none}
.check-chips input:checked + span{background:rgba(176,98,63,.14);border-color:var(--gold);color:var(--gold)}

/* Caja (historial.html) */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.kpi{background:var(--surface2);border:1px solid var(--border2);border-radius:12px;padding:12px 14px}
.kpi span{display:block;font-size:.66rem;color:var(--muted2);text-transform:uppercase;letter-spacing:.07em}
.kpi b{display:block;font-family:var(--mono);font-size:1.1rem;margin-top:4px;color:var(--text)}
.kpi.total b{color:var(--accent);font-size:1.3rem}
.filter-row input[type=date]{background:var(--surface2);border:1px solid var(--border2);color:var(--text);padding:7px 10px;border-radius:8px;font-size:.78rem;font-family:'Outfit',sans-serif;outline:none}
.tbl tfoot td{font-weight:700;border-top:2px solid var(--border2);background:var(--surface2)}
.num{font-family:var(--mono);text-align:right;white-space:nowrap}

/* Ficha cliente (ficha.html) */
.search{width:100%;background:var(--surface2);border:1px solid var(--border2);color:var(--text);padding:10px 13px;border-radius:10px;font-size:.84rem;font-family:'Outfit',sans-serif;outline:none;margin-bottom:12px}
.search:focus{border-color:var(--accent)}
.pac-item{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--border2);background:var(--surface2);border-radius:10px;cursor:pointer;transition:.15s;margin-bottom:8px}
.pac-item:hover{border-color:var(--accent)}
.pac-item.sel{border-color:var(--accent);background:rgba(176,133,80,.09);box-shadow:inset 3px 0 0 var(--accent)}
.pac-item.virtual{border-style:dashed}
.pac-item .vc-avatar{width:34px;height:34px;font-size:.85rem;font-weight:700;color:var(--accent)}
.pac-item .ttl{font-size:.84rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pac-item .sub{font-size:.7rem;color:var(--muted2);margin-top:1px}
.pac-item .sub b{font-family:var(--mono);color:var(--gold);font-weight:500}
.pac-item .right{margin-left:auto;text-align:right;font-size:.66rem;color:var(--muted2);flex-shrink:0}

.pac-head{display:flex;gap:16px;align-items:center;padding:18px 20px;flex-wrap:wrap}
.pac-avatar{width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-weight:700;font-size:1.25rem;display:flex;align-items:center;justify-content:center;border:2px solid var(--gold);flex-shrink:0}
.pac-name{font-size:1.2rem;font-weight:700;letter-spacing:-.01em}
.pac-sub{font-size:.78rem;color:var(--muted2);margin-top:2px}
.pac-sub b{font-family:var(--mono);color:var(--gold);font-weight:500}
.pac-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.pac-side{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.stat{background:var(--surface2);border:1px solid var(--border2);border-radius:10px;padding:7px 12px;text-align:center;min-width:78px}
.stat b{display:block;font-family:var(--mono);font-size:1.05rem;color:var(--accent)}
.stat span{font-size:.62rem;color:var(--muted2);text-transform:uppercase;letter-spacing:.06em}

.subtabs{display:flex;gap:2px;border-bottom:1px solid var(--border);padding:0 12px;background:var(--surface2);overflow-x:auto}
.sub-pane{display:none;padding:16px 18px;animation:fadeUp .25s ease both}
.sub-pane.active{display:block}

.plan-card{background:var(--surface2);border:1px solid var(--border2);border-radius:12px;margin-bottom:12px;overflow:hidden;position:relative}
.plan-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ok)}
.plan-card.finalizado::before{background:var(--gold)}
.plan-card.suspendido::before{background:var(--warn)}
.plan-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 14px 10px 16px}
.plan-title{font-size:.98rem;font-weight:700}
.plan-sub{font-size:.72rem;color:var(--muted2);margin-top:2px}
.plan-prog{padding:0 14px 12px 16px}
.prog-line{display:flex;justify-content:space-between;font-size:.74rem;color:var(--muted2);margin-bottom:6px}
.prog-line b{font-family:var(--mono);color:var(--accent);font-size:.9rem}
.bar.big{height:9px}
.dots{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-family:var(--mono);font-weight:700;border:1px solid var(--border2);color:var(--muted);background:var(--surface)}
.dot.done{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;border-color:transparent}
.dot.next{border:2px dashed var(--gold);color:var(--gold)}
.plan-foot{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 14px 12px 16px;border-top:1px solid var(--border)}
.plan-ses{border-top:1px solid var(--border);padding:6px 10px 10px}
.plan-ses[hidden]{display:none!important}

.editor{border:1px solid var(--accent);border-radius:12px;background:var(--surface);margin-bottom:16px;overflow:hidden}
.editor.gold{border-color:var(--gold)}
.editor-head{display:flex;align-items:center;gap:10px;padding:12px 16px;background:rgba(176,133,80,.08);border-bottom:1px solid var(--border);flex-wrap:wrap}
.editor.gold .editor-head{background:rgba(176,98,63,.08)}
.editor-body{padding:16px;display:flex;flex-direction:column;gap:12px}
.form-2col{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:760px){.form-2col{grid-template-columns:1fr}}
.big-num{font-family:var(--mono);font-size:1.6rem;font-weight:700;color:var(--gold);line-height:1}
.pay-opts{display:flex;gap:6px;flex-wrap:wrap}
.pay-opts input{display:none}
.pay-opts span{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;font-size:.8rem;font-weight:600;border:1px solid var(--border2);background:var(--surface2);color:var(--muted2);cursor:pointer;transition:.15s;user-select:none}
.pay-opts input:checked + span{background:rgba(176,133,80,.15);border-color:var(--accent);color:var(--accent)}
.tbl th.num,.tbl td.num{text-align:right}

/* ── Marca Sienna ── */
.topbar-logo h1,.login-brand h1{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;letter-spacing:.08em;font-size:1.35rem}
.login-brand h1{font-size:1.8rem}
.topbar-logo h1 span,.login-brand h1 span{color:var(--muted2);font-size:.75em;letter-spacing:.04em}
.panel-title,.pac-name,.plan-title{letter-spacing:.005em}
.bar.big i{background:linear-gradient(90deg,var(--accent2),var(--accent))}
.plan-card::before{background:var(--accent)}
