/* ==========================================================================
   LUMÉ Beauty Room — hoja de estilos compartida
   Tipografía y colores inspirados en el PDF de la lista de precios:
   fondo crema texturizado, tinta negra, encabezados grotesque bold,
   cuerpo geométrico limpio y acentos tipo firma.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Jost:ital,wght@0,300;0,400;0,500;0,600;1,400&family=Dancing+Script:wght@600;700&display=swap');

:root{
  --bg:        #efece4;   /* crema del PDF */
  --bg-soft:   #e8e4d9;
  --card:      #f6f4ee;
  --card-2:    #efece3;
  --ink:       #141311;   /* negro tinta */
  --ink-2:     #3b3a35;
  --muted:     #6f6d64;
  --line:      #d9d4c7;
  --line-2:    #cbc5b6;
  --accent:    #141311;   /* acción principal = negro (paleta del PDF) */
  --accent-ink:#f6f4ee;
  --ok:        #2e7d54;
  --warn:      #b4842a;
  --danger:    #b23b3b;
  --wa:        #25d366;
  --shadow:    0 18px 50px rgba(20,19,17,.18);
  --shadow-sm: 0 6px 20px rgba(20,19,17,.10);
  --radius:    16px;
  --radius-sm: 10px;
  --maxw:      1180px;
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  font-family:'Jost', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  color:var(--ink);
  background-color:var(--bg);
  /* textura granulada tipo papel del PDF */
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{ color:inherit; }
img{ max-width:100%; display:block; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ margin:0; }

/* Tipografía de titulares tipo PDF */
.display{ font-family:'Archivo Black', 'Jost', sans-serif; letter-spacing:.5px; line-height:1; }
.script{ font-family:'Dancing Script', cursive; font-weight:700; }

.container{ max-width:var(--maxw); margin:0 auto; padding:0 20px; }

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  border:1.5px solid var(--ink); background:var(--accent); color:var(--accent-ink);
  padding:.85rem 1.4rem; border-radius:999px; font-weight:500; font-size:1rem;
  letter-spacing:.4px; text-decoration:none; transition:.18s ease; white-space:nowrap;
}
.btn:hover{ transform:translateY(-1px); box-shadow:var(--shadow-sm); }
.btn:active{ transform:translateY(0); }
.btn.ghost{ background:transparent; color:var(--ink); }
.btn.ghost:hover{ background:var(--ink); color:var(--accent-ink); }
.btn.soft{ background:var(--card); color:var(--ink); border-color:var(--line-2); }
.btn.soft:hover{ background:var(--bg-soft); }
.btn.sm{ padding:.5rem .9rem; font-size:.9rem; }
.btn.block{ width:100%; }
.btn.danger{ background:transparent; color:var(--danger); border-color:var(--danger); }
.btn.danger:hover{ background:var(--danger); color:#fff; }
.btn:disabled{ opacity:.45; cursor:not-allowed; transform:none; box-shadow:none; }

/* ---------- Iconos redondos (WA / IG) ---------- */
.icon-btn{
  width:52px; height:52px; border-radius:50%; display:inline-flex;
  align-items:center; justify-content:center; border:1.5px solid var(--ink);
  background:var(--ink); color:#fff; transition:.2s ease;
}
.icon-btn svg{ width:24px; height:24px; }
.icon-btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.icon-btn.wa:hover{ background:var(--wa); border-color:var(--wa); }
.icon-btn.ig:hover{
  background:radial-gradient(circle at 30% 110%,#fdc76b 0%,#f97d3c 25%,#e63d6f 50%,#c22890 75%,#8a3ab9 100%);
  border-color:transparent;
}

/* =====================================================================
   INDEX
   ===================================================================== */
.hero{
  min-height:100vh; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center; position:relative;
  padding:40px 20px;
}
.topbar{
  position:absolute; top:22px; right:24px; display:flex; gap:12px; align-items:center;
}
.hero-logo{ width:min(560px,82vw); margin:0 auto 6px; }
.hero-tag{
  text-transform:uppercase; letter-spacing:6px; font-size:.8rem; color:var(--muted);
  margin-bottom:38px;
}
.hero-cta{ margin-top:6px; }
.hero .btn.xl{ padding:1.15rem 3.4rem; font-size:1.15rem; letter-spacing:2px; text-transform:uppercase; }
.hero-foot{
  position:absolute; bottom:20px; left:0; right:0; text-align:center;
  font-size:.78rem; letter-spacing:3px; text-transform:uppercase; color:var(--muted);
}
.hero-foot a{ text-decoration:none; border-bottom:1px solid var(--line-2); padding-bottom:1px; }

/* =====================================================================
   AGENDAR
   ===================================================================== */
.page-head{
  border-bottom:1px solid var(--line); background:rgba(246,244,238,.6);
  position:sticky; top:0; z-index:20; backdrop-filter:blur(6px);
}
.page-head .row{ display:flex; align-items:center; justify-content:space-between; padding:14px 0; gap:16px; }
.page-head img{ height:40px; width:auto; }
.page-head .links{ display:flex; gap:10px; align-items:center; }

.section-title{ margin:44px 0 4px; }
.section-title .display{ font-size:clamp(1.6rem,4.5vw,2.4rem); }
.section-sub{ color:var(--muted); margin:0 0 18px; font-size:.95rem; }

.cat-block{ margin-bottom:30px; }
.cat-head{ display:flex; align-items:baseline; gap:12px; margin:34px 0 14px; }
.cat-head h2{ font-family:'Archivo Black',sans-serif; font-size:clamp(1.25rem,3.6vw,1.7rem); }
.cat-head .line{ flex:1; height:2px; background:var(--ink); opacity:.85; }

.grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; }

.service{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:18px 18px 16px; display:flex; flex-direction:column; gap:8px; transition:.18s;
  position:relative;
}
.service.selected{ border-color:var(--ink); box-shadow:var(--shadow-sm); }
.service .s-top{ display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.service h3{ font-size:1.08rem; font-weight:600; letter-spacing:.2px; }
.service .price{ font-weight:600; white-space:nowrap; font-size:1.02rem; }
.service .desc{ color:var(--muted); font-size:.9rem; min-height:34px; }
.service .s-actions{ display:flex; align-items:center; justify-content:space-between; margin-top:6px; }

.stepper{ display:inline-flex; align-items:center; gap:0; border:1.5px solid var(--ink);
  border-radius:999px; overflow:hidden; }
.stepper button{
  width:38px; height:38px; border:0; background:transparent; font-size:1.25rem; line-height:1;
  color:var(--ink); display:flex; align-items:center; justify-content:center;
}
.stepper button:hover{ background:var(--ink); color:var(--accent-ink); }
.stepper .qty{ min-width:34px; text-align:center; font-weight:600; }
.badge-added{ font-size:.8rem; color:var(--ok); font-weight:500; opacity:0; transition:.2s; }
.service.selected .badge-added{ opacity:1; }

/* ---------- Carrito flotante ---------- */
.cart-fab{
  position:fixed; right:20px; bottom:20px; z-index:60;
  background:var(--ink); color:var(--accent-ink); border:none; border-radius:999px;
  padding:.9rem 1.3rem; display:flex; align-items:center; gap:.6rem; box-shadow:var(--shadow);
  transform:translateY(140%); transition:transform .3s cubic-bezier(.2,.8,.2,1); font-size:1rem;
}
.cart-fab.show{ transform:translateY(0); }
.cart-fab .count{
  background:var(--accent-ink); color:var(--ink); border-radius:999px; min-width:24px; height:24px;
  display:inline-flex; align-items:center; justify-content:center; font-weight:700; font-size:.85rem; padding:0 6px;
}
.cart-fab .amt{ font-weight:600; }

.drawer-mask{
  position:fixed; inset:0; background:rgba(20,19,17,.45); z-index:70; opacity:0;
  pointer-events:none; transition:.25s;
}
.drawer-mask.open{ opacity:1; pointer-events:auto; }
.drawer{
  position:fixed; top:0; right:0; height:100%; width:min(440px,100%); background:var(--bg);
  z-index:80; box-shadow:var(--shadow); transform:translateX(100%); transition:transform .3s cubic-bezier(.2,.8,.2,1);
  display:flex; flex-direction:column;
}
.drawer.open{ transform:translateX(0); }
.drawer-head{ display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:1px solid var(--line); }
.drawer-head h3{ font-family:'Archivo Black',sans-serif; font-size:1.2rem; }
.drawer-body{ padding:16px 20px; overflow:auto; flex:1; }
.drawer-foot{ padding:16px 20px; border-top:1px solid var(--line); background:var(--card); }

.cart-line{ display:flex; align-items:center; gap:10px; padding:12px 0; border-bottom:1px dashed var(--line); }
.cart-line .cl-main{ flex:1; }
.cart-line .cl-name{ font-weight:600; font-size:.98rem; }
.cart-line .cl-price{ color:var(--muted); font-size:.85rem; }
.cart-line .stepper{ transform:scale(.85); }
.cart-empty{ color:var(--muted); text-align:center; padding:30px 0; }

.field{ margin:14px 0; }
.field label{ display:block; font-size:.85rem; font-weight:500; margin-bottom:6px; letter-spacing:.3px; }
.field label .req{ color:var(--danger); }
.input, .textarea, select.input{
  width:100%; border:1.5px solid var(--line-2); background:var(--card); color:var(--ink);
  border-radius:var(--radius-sm); padding:.7rem .8rem; font-size:1rem; font-family:inherit; transition:.15s;
}
.input:focus, .textarea:focus, select.input:focus{ outline:none; border-color:var(--ink); }
.textarea{ min-height:74px; resize:vertical; }
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.total-row{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:12px; }
.total-row .t-label{ letter-spacing:2px; text-transform:uppercase; font-size:.8rem; color:var(--muted); }
.total-row .t-amt{ font-family:'Archivo Black',sans-serif; font-size:1.6rem; }
.err-msg{ color:var(--danger); font-size:.85rem; margin-top:4px; display:none; }
.field.invalid .input, .field.invalid .textarea{ border-color:var(--danger); }
.field.invalid .err-msg{ display:block; }

/* =====================================================================
   ADMIN
   ===================================================================== */
.admin-shell{ min-height:100vh; }
.admin-top{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:14px 22px; border-bottom:1px solid var(--line); background:var(--card);
  position:sticky; top:0; z-index:30;
}
.admin-top img{ height:34px; }
.tabs{ display:flex; gap:6px; flex-wrap:wrap; }
.tab{
  border:1.5px solid transparent; background:transparent; color:var(--ink-2);
  padding:.55rem 1rem; border-radius:999px; font-weight:500; font-size:.95rem; letter-spacing:.3px;
}
.tab:hover{ background:var(--bg-soft); }
.tab.active{ background:var(--ink); color:var(--accent-ink); }

.admin-main{ max-width:var(--maxw); margin:0 auto; padding:24px 22px 80px; }
.panel{ display:none; }
.panel.active{ display:block; animation:fade .25s ease; }
@keyframes fade{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;} }

.panel-head{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:18px; flex-wrap:wrap; }
.panel-head h2{ font-family:'Archivo Black',sans-serif; font-size:1.5rem; }
.toolbar{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }

.stat-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin-bottom:22px; }
.stat{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; }
.stat .k{ font-size:.78rem; text-transform:uppercase; letter-spacing:1.5px; color:var(--muted); }
.stat .v{ font-family:'Archivo Black',sans-serif; font-size:1.7rem; margin-top:6px; }
.stat .v.sm{ font-size:1.25rem; }

.card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:18px; margin-bottom:16px; }
.card h3{ font-size:1.1rem; margin-bottom:12px; }

table.tbl{ width:100%; border-collapse:collapse; font-size:.92rem; }
table.tbl th, table.tbl td{ text-align:left; padding:11px 10px; border-bottom:1px solid var(--line); vertical-align:middle; }
table.tbl th{ font-size:.74rem; text-transform:uppercase; letter-spacing:1px; color:var(--muted); font-weight:600; }
table.tbl tr:last-child td{ border-bottom:0; }
.tbl-wrap{ overflow:auto; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); }
.tbl-wrap table{ min-width:600px; }

.pill{ display:inline-flex; align-items:center; gap:6px; padding:.2rem .6rem; border-radius:999px; font-size:.78rem; font-weight:600; letter-spacing:.3px; }
.pill.wait{ background:#f3ecd6; color:#8a6d1e; }
.pill.done{ background:#d9efe1; color:#1f6b45; }
.pill.paid{ background:#141311; color:#f6f4ee; }
.pill.cancel{ background:#f0dede; color:#a13636; }
.pill.efectivo{ background:#dcefe0; color:#256b42; }
.pill.transferencia{ background:#dde6f3; color:#2a4d86; }
.pill.tarjeta{ background:#ece0f2; color:#6b3a97; }

.muted{ color:var(--muted); }
.right{ text-align:right; }
.center{ text-align:center; }
.empty-state{ text-align:center; color:var(--muted); padding:44px 10px; }
.empty-state .big{ font-size:2rem; margin-bottom:6px; }

.row-actions{ display:flex; gap:6px; justify-content:flex-end; flex-wrap:wrap; }

/* método de pago selector */
.pay-methods{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:6px 0 4px; }
.pay-opt{ border:1.5px solid var(--line-2); border-radius:var(--radius-sm); padding:.7rem; text-align:center;
  font-weight:500; background:var(--card); transition:.15s; font-size:.92rem; }
.pay-opt:hover{ border-color:var(--ink); }
.pay-opt.active{ background:var(--ink); color:var(--accent-ink); border-color:var(--ink); }

/* modal genérico */
.modal-mask{ position:fixed; inset:0; background:rgba(20,19,17,.5); z-index:100; display:none;
  align-items:center; justify-content:center; padding:20px; }
.modal-mask.open{ display:flex; animation:fade .2s ease; }
.modal{ background:var(--bg); border-radius:var(--radius); width:min(520px,100%); max-height:90vh; overflow:auto;
  box-shadow:var(--shadow); }
.modal .m-head{ display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:1px solid var(--line); }
.modal .m-head h3{ font-family:'Archivo Black',sans-serif; font-size:1.15rem; }
.modal .m-body{ padding:18px 20px; }
.modal .m-foot{ padding:16px 20px; border-top:1px solid var(--line); display:flex; gap:10px; justify-content:flex-end; }
.x-btn{ background:transparent; border:0; font-size:1.5rem; line-height:1; color:var(--muted); }
.x-btn:hover{ color:var(--ink); }

/* login gate */
.gate{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px; }
.gate .box{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:34px 30px;
  width:min(380px,100%); text-align:center; box-shadow:var(--shadow-sm); }
.gate img{ height:44px; margin:0 auto 18px; }

/* bar chart simple para reportes */
.bars{ display:flex; align-items:flex-end; gap:10px; height:180px; padding-top:10px; }
.bar{ flex:1; display:flex; flex-direction:column; align-items:center; gap:6px; height:100%; justify-content:flex-end; }
.bar .col{ width:100%; max-width:46px; background:var(--ink); border-radius:6px 6px 0 0; min-height:3px; transition:.3s; }
.bar .bl{ font-size:.72rem; color:var(--muted); text-align:center; }
.bar .bv{ font-size:.78rem; font-weight:600; }

.toast{
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(140%);
  background:var(--ink); color:var(--accent-ink); padding:.85rem 1.4rem; border-radius:999px;
  box-shadow:var(--shadow); z-index:200; transition:transform .3s; font-size:.95rem; max-width:90vw; text-align:center;
}
.toast.show{ transform:translateX(-50%) translateY(0); }

.split{ display:grid; grid-template-columns:1.4fr 1fr; gap:18px; align-items:start; }
@media(max-width:820px){ .split{ grid-template-columns:1fr; } .two-col{ grid-template-columns:1fr; } .pay-methods{ grid-template-columns:1fr 1fr 1fr; } }
@media(max-width:560px){
  .admin-top{ flex-direction:column; align-items:stretch; }
  .tabs{ justify-content:center; }
  .hero .btn.xl{ padding:1rem 2.4rem; }
}

/* ===================== CALENDARIO SEMANAL (Agenda) ===================== */
.cal-toolbar{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.cal-nav{ display:inline-flex; align-items:center; gap:6px; }
.cal-title{ font-weight:600; min-width:210px; text-align:center; text-transform:capitalize; }
.view-toggle{ display:inline-flex; border:1.5px solid var(--line-2); border-radius:999px; overflow:hidden; }
.view-toggle button{ border:0; background:transparent; padding:.5rem .95rem; font-weight:500; font-size:.9rem; color:var(--ink-2); }
.view-toggle button.active{ background:var(--ink); color:var(--accent-ink); }
.cal-spacer{ flex:1; }

.cal-wrap{ overflow:auto; border:1px solid var(--line); border-radius:var(--radius); background:var(--card); max-height:70vh; }
table.cal{ border-collapse:collapse; width:100%; min-width:820px; }
table.cal th, table.cal td{ border:1px solid var(--line); }
table.cal thead th{ padding:8px 6px; text-align:center; font-size:.8rem; background:var(--card-2); position:sticky; top:0; z-index:2; }
table.cal thead th .dn{ display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); }
table.cal thead th .dd{ display:block; font-size:1.1rem; font-weight:700; }
table.cal thead th.today{ background:var(--ink); color:var(--accent-ink); }
table.cal thead th.today .dn{ color:#cfc9ba; }
table.cal td.hour{ width:58px; text-align:right; padding:4px 8px; font-size:.74rem; color:var(--muted); white-space:nowrap; background:var(--card-2); position:sticky; left:0; z-index:1; }
table.cal td.slot{ height:50px; padding:3px; cursor:pointer; transition:background .1s; }
table.cal td.slot:hover{ background:#ece5d6; }
table.cal td.slot.today{ background:rgba(20,19,17,.035); }
.cita-chip{ display:block; border-radius:8px; padding:4px 6px; margin-bottom:3px; font-size:.72rem; line-height:1.25; cursor:pointer; border:1px solid transparent; overflow:hidden; }
.cita-chip .t{ font-weight:700; }
.cita-chip .n{ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cita-chip.pendiente{ background:#f3ecd6; color:#141311; border-color:#e4d6ab; }
.cita-chip.cobrada{ background:#141311; color:#f6f4ee; }
.cita-chip.cancelada{ background:#ededed; color:#9a9a9a; text-decoration:line-through; }

.cita-detail-row{ display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-bottom:1px dashed var(--line); font-size:.95rem; }
.cita-detail-row .lbl{ color:var(--muted); }

/* ===================== TARJETA WALLET (agendar) ===================== */
.pass-mask{ position:fixed; inset:0; background:rgba(20,19,17,.6); z-index:120; display:none; align-items:center; justify-content:center; padding:20px; overflow:auto; }
.pass-mask.open{ display:flex; }
.pass-box{ width:min(380px,100%); text-align:center; }
.pass-box .pass-img{ width:100%; border-radius:20px; box-shadow:var(--shadow); display:block; }
.pass-actions{ display:flex; gap:10px; margin-top:16px; justify-content:center; flex-wrap:wrap; }
.pass-mask .muted{ color:#cfc9ba; }

/* duración de servicio + horarios disponibles */
.svc-dur{ font-size:.82rem; color:var(--muted); margin-top:-2px; }
.slots{ display:flex; flex-wrap:wrap; gap:7px; max-height:190px; overflow:auto; padding:2px; }
.slot-btn{ border:1.5px solid var(--line-2); background:var(--card); color:var(--ink); border-radius:9px; padding:.5rem .7rem; font-size:.92rem; font-family:inherit; cursor:pointer; transition:.12s; }
.slot-btn:hover{ border-color:var(--ink); }
.slot-btn.active{ background:var(--ink); color:var(--accent-ink); border-color:var(--ink); }

/* barra de personal del día (agenda) */
.staff-bar{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.staff-chip{ display:flex; align-items:center; gap:10px; background:var(--card); border:1px solid var(--line); border-radius:999px; padding:6px 16px 6px 6px; }
.staff-chip img, .staff-chip .avatar{ width:40px; height:40px; border-radius:50%; object-fit:cover; background:var(--ink); color:var(--accent-ink); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:1rem; }
.staff-chip .sn{ font-weight:600; font-size:.95rem; }
.staff-chip .sr{ font-size:.75rem; color:var(--muted); }

/* leyenda de colores por categoría */
.cat-legend{ display:flex; gap:14px; flex-wrap:wrap; margin:2px 0 14px; font-size:.82rem; color:var(--muted); }
.cat-legend span{ display:inline-flex; align-items:center; gap:6px; }
.cat-legend i{ width:14px; height:14px; border-radius:4px; display:inline-block; }

/* calendario con bloques por duración */
.wk-head{ display:grid; grid-template-columns:56px repeat(7,1fr); position:sticky; top:0; z-index:3; background:var(--card-2); }
.wk-head .wk-corner{ border:1px solid var(--line); }
.wk-head .wk-dh{ border:1px solid var(--line); text-align:center; padding:7px 4px; }
.wk-head .wk-dh .dn{ display:block; font-size:.7rem; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); }
.wk-head .wk-dh .dd{ display:block; font-size:1.05rem; font-weight:700; }
.wk-head .wk-dh.today{ background:var(--ink); color:var(--accent-ink); }
.wk-head .wk-dh.today .dn{ color:#cfc9ba; }
.wk-body{ display:grid; grid-template-columns:56px repeat(7,1fr); }
.wk-gutter{ position:relative; }
.wk-gutter .hl{ position:absolute; right:6px; font-size:.72rem; color:var(--muted); transform:translateY(-6px); }
.wk-col{ position:relative; border-left:1px solid var(--line); }
.wk-col .hcell{ border-bottom:1px solid var(--line); box-sizing:border-box; cursor:pointer; }
.wk-col .hcell:hover{ background:#ece5d6; }
.wk-col.today{ background:rgba(20,19,17,.03); }
.cita-block{ position:absolute; left:3px; right:3px; border-radius:8px; padding:4px 6px; font-size:.72rem; line-height:1.2; overflow:hidden; cursor:pointer; border-left:4px solid; box-sizing:border-box; }
.cita-block .t{ font-weight:700; }
.cita-block .n{ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cita-block.cancelada{ opacity:.5; text-decoration:line-through; }

/* buscador de clientas (autocompletado) */
.ac-wrap{ position:relative; }
.ac-list{ position:absolute; left:0; right:0; top:100%; z-index:20; background:var(--card); border:1px solid var(--line-2); border-radius:0 0 10px 10px; max-height:210px; overflow:auto; box-shadow:var(--shadow-sm); }
.ac-item{ padding:9px 12px; cursor:pointer; border-bottom:1px solid var(--line); }
.ac-item:hover, .ac-item.hi{ background:var(--bg-soft); }
.ac-item .acn{ font-weight:600; }
.ac-item .acm{ font-size:.8rem; color:var(--muted); }