/*
  BR Nails Admin · rediseño limpio basado en Escape Velocity
  Estructura funcional original + lenguaje visual del template.
*/
:root{
  --gold-deep:var(--admin-pink);
  --danger:var(--admin-danger);
  --ink:var(--admin-ink);
  --line:var(--admin-line);
  --muted:var(--admin-muted);
  --admin-pink:#e977a8;
  --admin-pink-soft:#f5a8c8;
  --admin-pink-pale:#fde8f0;
  --admin-ink:#2f333b;
  --admin-ink-2:#3d4249;
  --admin-bg:#fff6f9;
  --admin-panel:#ffffff;
  --admin-line:#dddddd;
  --admin-text:#606167;
  --admin-muted:#919499;
  --admin-danger:#c5526c;
  --admin-ok:#679264;
  --admin-warn:#b78b38;
}

html,body{ min-height:100%; }
body.admin{
  margin:0;
  background:var(--admin-bg);
  color:var(--admin-text);
  font-family:'Source Sans Pro', Arial, Helvetica, sans-serif;
  font-size:13.5pt;
  line-height:1.65em;
  letter-spacing:.015em;
}
body.admin a{ text-decoration:none; }
body.admin p, body.admin ul, body.admin ol, body.admin dl, body.admin table, body.admin blockquote, body.admin form{ margin-bottom:0; }
body.admin h1, body.admin h2, body.admin h3, body.admin h4{ font-family:'Source Sans Pro', Arial, Helvetica, sans-serif; color:#484d55; font-weight:700; }

/* Layout */
.admin-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:18.5em 1fr;
}
.sidebar{
  position:sticky;
  top:0;
  height:100vh;
  display:flex;
  flex-direction:column;
  background:var(--admin-ink) url('../template/assets/css/images/overlay.png');
  color:rgba(255,255,255,.78);
  border-right:solid 1px rgba(0,0,0,.16);
  box-shadow:inset -1px 0 0 rgba(255,255,255,.04);
  z-index:20;
}
.side-logo{
  min-height:7.5em;
  padding:1.3em 1.25em;
  display:flex;
  align-items:center;
  gap:1em;
  border-bottom:solid 1px rgba(255,255,255,.08);
}
.side-logo img{
  width:4.1em;
  height:3.4em;
  object-fit:contain;
  filter:drop-shadow(0 .6em 1.2em rgba(0,0,0,.28));
  flex:none;
}
.sl-name{
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:900;
  font-size:.92em;
  line-height:1.25em;
}
.sl-sub{
  color:rgba(255,255,255,.46);
  text-transform:uppercase;
  letter-spacing:.26em;
  font-size:.62em;
  margin-top:.25em;
}
.side-nav{
  padding:1.1em .9em;
  overflow:auto;
  flex:1;
}
.grp{
  margin:1.5em .95em .55em;
  color:rgba(255,255,255,.38);
  font-size:.64em;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.26em;
}
.grp:first-child{ margin-top:.3em; }
.side-nav a,
.side-foot a{
  display:flex;
  align-items:center;
  gap:.85em;
  min-height:3.2em;
  padding:0 1em;
  border-radius:.35em;
  color:rgba(255,255,255,.72);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:700;
  font-size:.72em;
  transition:background .2s ease-in-out, color .2s ease-in-out, box-shadow .2s ease-in-out;
}
.side-nav a svg,
.side-foot a svg{ width:1.25em; height:1.25em; flex:none; opacity:.82; }
.side-nav a:hover,
.side-foot a:hover{
  color:#fff;
  background:rgba(255,255,255,.08);
}
.side-nav a.active{
  color:#fff;
  background:var(--admin-pink) url('../template/assets/css/images/overlay.png');
  box-shadow:inset 0 0 1px 1px rgba(255,255,255,.20);
}
.side-foot{
  padding:.9em;
  border-top:solid 1px rgba(255,255,255,.08);
}

.main{
  min-width:0;
  background:
    radial-gradient(48em 22em at 15% 0%, rgba(233,119,168,.12), transparent 62%),
    var(--admin-bg);
}
.topbar{
  height:5.6em;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5em;
  padding:0 2.5em;
  background:rgba(255,255,255,.82);
  border-bottom:solid 1px var(--admin-line);
  backdrop-filter:blur(10px);
  position:sticky;
  top:0;
  z-index:10;
}
.topbar h1{
  margin:0;
  font-size:1.35em;
  text-transform:uppercase;
  letter-spacing:.16em;
}
.menu-btn{
  display:none;
  width:3em;
  height:3em;
  border:0;
  border-radius:.35em;
  background:var(--admin-ink);
  padding:.75em;
}
.menu-btn span{
  display:block;
  height:2px;
  background:#fff;
  margin:.32em 0;
}
.tb-right{ display:flex; align-items:center; gap:.8em; }
.who{ text-align:right; line-height:1.2em; }
.who .n{ font-weight:700; color:#484d55; }
.who .r{ font-size:.72em; text-transform:uppercase; letter-spacing:.18em; color:var(--admin-muted); }
.avatar{
  width:2.6em;
  height:2.6em;
  border-radius:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-weight:900;
  background:var(--admin-pink) url('../template/assets/css/images/overlay.png');
}
.content{
  padding:2.25em 2.5em 4em;
  max-width:96em;
}

/* Componentes */
.panel,
.stat-card,
.login-card{
  background:var(--admin-panel);
  border:solid 1px var(--admin-line);
  border-radius:.35em;
  box-shadow:0 1.25em 3em rgba(47,51,59,.08);
}
.panel{ margin-bottom:1.6em; overflow:hidden; }
.panel-head{
  min-height:4.35em;
  padding:0 1.5em;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1em;
  border-bottom:solid 1px var(--admin-line);
  background:#fff;
}
.panel-head h2{
  margin:0;
  font-size:1.05em;
  text-transform:uppercase;
  letter-spacing:.14em;
}
.panel-head .ph-sub{
  color:var(--admin-muted);
  font-size:.84em;
}
.panel-body{ padding:1.5em; }
.panel-body.flush{ padding:0; }

.stat-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:1.25em;
  margin-bottom:1.6em;
}
.stat-card{
  padding:1.4em 1.35em;
  min-height:9.4em;
  position:relative;
  overflow:hidden;
}
.stat-card:after{
  content:'';
  position:absolute;
  right:-2.5em;
  bottom:-2.7em;
  width:7.5em;
  height:7.5em;
  border-radius:100%;
  background:var(--admin-pink-pale);
}
.stat-card.dark{
  background:var(--admin-ink) url('../template/assets/css/images/overlay.png');
  color:rgba(255,255,255,.72);
}
.stat-card.dark .lbl,
.stat-card.dark .sub{ color:rgba(255,255,255,.55); }
.stat-card.dark .val{ color:#fff; }
.stat-card .lbl{
  text-transform:uppercase;
  letter-spacing:.20em;
  font-size:.68em;
  font-weight:700;
  color:var(--admin-muted);
  position:relative;
  z-index:1;
}
.stat-card .val{
  margin:.32em 0 .12em;
  font-size:2.15em;
  line-height:1.1em;
  color:#484d55;
  font-weight:900;
  position:relative;
  z-index:1;
}
.stat-card .sub{
  color:var(--admin-muted);
  font-size:.88em;
  position:relative;
  z-index:1;
}

.dash-cols{ display:grid; grid-template-columns:1.4fr 1fr; gap:1.6em; align-items:start; }
.quick-actions{ display:flex; flex-wrap:wrap; gap:.8em; }
.qa{
  display:inline-flex;
  align-items:center;
  gap:.55em;
  color:#606167;
  border:solid 1px var(--admin-line);
  border-radius:.35em;
  padding:.7em 1em;
  background:#fff;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:700;
  font-size:.75em;
}
.qa:before{ content:'+'; color:var(--admin-pink); font-size:1.2em; }
.qa:hover{ color:#484d55; border-color:var(--admin-pink); background:#fff6f9; }

/* Formularios */
.field{ margin-bottom:1em; }
.field label,
.form-grid label,
.login-card label{
  display:block;
  color:#606167;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:700;
  font-size:.72em;
  margin:0 0 .55em 0;
}
.input,
.select,
.textarea,
.input-sm,
.select-sm,
body.admin input[type="text"],
body.admin input[type="email"],
body.admin input[type="password"],
body.admin input[type="number"],
body.admin input[type="date"],
body.admin input[type="time"],
body.admin input[type="tel"],
body.admin input[type="file"],
body.admin select,
body.admin textarea{
  width:100%;
  background:#fff;
  color:#606167;
  border:0;
  border-radius:.35em;
  box-shadow:inset 0 0 2px 0 #a0a1a7;
  padding:.76em .9em;
  font-family:'Source Sans Pro', Arial, Helvetica, sans-serif;
  font-size:.95em;
  line-height:1.35em;
  min-height:3em;
}
body.admin textarea,
.textarea{ min-height:8em; resize:vertical; }
.input:focus,
.select:focus,
.textarea:focus,
body.admin input:focus,
body.admin select:focus,
body.admin textarea:focus{
  outline:none;
  box-shadow:inset 0 0 2px 0 var(--admin-pink), 0 0 0 3px rgba(233,119,168,.14);
}
.input-sm,.select-sm{ min-height:2.4em !important; padding:.48em .65em !important; font-size:.86em !important; }
.hint{ color:var(--admin-muted); font-size:.84em; margin:.4em 0 0 0; }
.form-grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1em 1.25em; }
.form-grid .full{ grid-column:1 / -1; }
.form-actions{
  display:flex;
  justify-content:flex-end;
  gap:.8em;
  margin-top:1.25em;
  padding-top:1.25em;
  border-top:solid 1px var(--admin-line);
}

/* Botones */
.btn,
body.admin button.btn,
body.admin a.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5em;
  min-width:0;
  height:3.55em;
  line-height:3.55em;
  padding:0 1.45em;
  border:0;
  border-radius:.35em;
  background:#444;
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-weight:700;
  font-size:.76em;
  text-decoration:none;
  transition:all .25s ease-in-out;
}
.btn:hover{ background-color:var(--admin-pink-soft); color:#fff; }
.btn-gold,
.btn-primary{ background:var(--admin-pink) url('../template/assets/css/images/overlay.png') !important; color:#fff !important; }
.btn-gold:hover,
.btn-primary:hover{ background-color:var(--admin-pink-soft) !important; }
.btn-ghost{ background:none !important; color:#606167 !important; box-shadow:inset 0 0 2px 0 #a0a1a7; }
.btn-ghost:hover{ box-shadow:inset 0 0 2px 0 #606167; background:#fff !important; color:#484d55 !important; }
.btn-wa{ background:#25D366 !important; }
.btn-sm{ height:2.75em; line-height:2.75em; padding:0 1em; font-size:.68em; }
.btn-block{ width:100%; }

/* Toolbar, filtros y pills */
.toolbar{ display:flex; align-items:center; justify-content:space-between; gap:1em; flex-wrap:wrap; margin-bottom:1.25em; }
.filters{ display:flex; gap:.55em; flex-wrap:wrap; }
.chip{
  display:inline-flex;
  align-items:center;
  min-height:2.55em;
  padding:0 .95em;
  border:solid 1px var(--admin-line);
  border-radius:.35em;
  color:#606167;
  background:#fff;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:.68em;
  font-weight:700;
}
.chip:hover{ border-color:var(--admin-pink); color:#484d55; }
.chip.on{ background:var(--admin-ink); color:#fff; border-color:var(--admin-ink); }

/* Tablas */
.table-wrap{ overflow:auto; }
table.table{
  width:100%;
  border-collapse:collapse;
  font-size:.92em;
}
.table th{
  text-align:left;
  color:#484d55;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.68em;
  font-weight:900;
  padding:1em 1.15em;
  background:#fafafa;
  border-bottom:solid 1px var(--admin-line);
  white-space:nowrap;
}
.table td{
  padding:.92em 1.15em;
  border-bottom:solid 1px var(--admin-line);
  vertical-align:middle;
}
.table tbody tr:hover{ background:#fff6f9; }
.table .num{ text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.table .actions{ display:flex; gap:.45em; justify-content:flex-end; }
.ico-btn{
  width:2.55em;
  height:2.55em;
  border-radius:.35em;
  border:solid 1px var(--admin-line);
  background:#fff;
  color:#606167;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.ico-btn:hover{ border-color:var(--admin-pink); color:var(--admin-pink); }
.ico-btn.danger:hover{ border-color:var(--admin-danger); color:var(--admin-danger); }
.ico-btn svg{ width:1.1em; height:1.1em; }

/* Badges */
.badge{
  display:inline-flex;
  align-items:center;
  gap:.45em;
  border-radius:.35em;
  padding:.28em .65em;
  font-size:.72em;
  font-weight:700;
  letter-spacing:.10em;
  text-transform:uppercase;
  border:solid 1px transparent;
  white-space:nowrap;
}
.badge:before{ content:''; width:.45em; height:.45em; border-radius:100%; background:currentColor; }
.badge-pendiente{ color:#8b6d18; background:#fff8df; border-color:#eadba5; }
.badge-confirmado{ color:#366f8b; background:#edf7fc; border-color:#cfe5ef; }
.badge-realizado{ color:#527a55; background:#f0f8ef; border-color:#cfe3cd; }
.badge-cancelado{ color:#9a4d61; background:#fff1f6; border-color:#efc7d6; }
.badge-off{ color:#777a80; background:#f6f6f6; border-color:#ddd; }

/* Listas y vacíos */
.empty{ text-align:center; color:var(--admin-muted); padding:3.5em 1.5em; }
.empty h3{ margin:0 0 .3em 0; font-size:1.15em; text-transform:uppercase; letter-spacing:.12em; }
.saldo-pill{ font-weight:900; color:#484d55; }
.saldo-pill.neg{ color:var(--admin-danger); }
.detail-list{ list-style:none; margin:0; padding:0; }
.detail-list li{ display:flex; justify-content:space-between; gap:1em; padding:.75em 0; border-bottom:solid 1px var(--admin-line); }
.detail-list li:last-child{ border-bottom:0; }
.detail-list .k{ color:var(--admin-muted); }

/* Calendario */
.cal-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:1em; flex-wrap:wrap; margin-bottom:1.25em; }
.cal-nav{ display:flex; align-items:center; gap:.65em; }
.cal-nav .mlabel{ min-width:13em; text-align:center; font-size:1.1em; color:#484d55; text-transform:capitalize; font-weight:700; }
.view-switch{ display:flex; border:solid 1px var(--admin-line); border-radius:.35em; overflow:hidden; background:#fff; }
.view-switch a{ padding:.55em .95em; color:#606167; text-transform:uppercase; letter-spacing:.13em; font-size:.68em; font-weight:700; }
.view-switch a.on{ background:var(--admin-ink); color:#fff; }
.cal{ background:#fff; border:solid 1px var(--admin-line); border-radius:.35em; overflow:hidden; box-shadow:0 1.25em 3em rgba(47,51,59,.08); }
.cal-grid{ display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); }
.cal-dow{ padding:.8em .65em; text-align:center; color:#606167; text-transform:uppercase; letter-spacing:.14em; font-weight:700; font-size:.68em; background:#fafafa; border-bottom:solid 1px var(--admin-line); }
.cal-cell{ min-height:8.4em; padding:.65em; border-right:solid 1px var(--admin-line); border-bottom:solid 1px var(--admin-line); background:#fff; }
.cal-cell:nth-child(7n){ border-right:0; }
.cal-cell.out{ background:#fbfbfb; opacity:.7; }
.cal-cell .dnum{ display:inline-flex; align-items:center; justify-content:center; width:2em; height:2em; color:#606167; font-weight:700; }
.cal-cell.today .dnum{ border-radius:100%; background:var(--admin-pink); color:#fff; }
.cal-ev{ display:block; margin-top:.4em; padding:.35em .5em; border-radius:.25em; background:#f7f7f7; border-left:solid .22em var(--admin-pink); color:#606167; font-size:.74em; line-height:1.3em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-ev .t{ color:#919499; }
.cal-ev.e-pendiente{ border-color:var(--admin-warn); background:#fff8df; }
.cal-ev.e-confirmado{ border-color:#3a7d9e; background:#edf7fc; }
.cal-ev.e-realizado{ border-color:var(--admin-ok); background:#f0f8ef; }
.cal-ev.e-cancelado{ border-color:var(--admin-danger); background:#fff1f6; text-decoration:line-through; opacity:.7; }
.cal-more{ display:block; color:var(--admin-pink); font-size:.74em; margin-top:.35em; }
.agenda{ display:flex; flex-direction:column; background:#fff; border:solid 1px var(--admin-line); border-radius:.35em; overflow:hidden; }
.agenda-row{ display:grid; grid-template-columns:7em 1fr; border-bottom:solid 1px var(--admin-line); }
.agenda-row:last-child{ border-bottom:0; }
.agenda-time{ padding:1em; color:#919499; border-right:solid 1px var(--admin-line); font-weight:700; }
.agenda-items{ padding:.8em; display:flex; flex-direction:column; gap:.6em; }
.agenda-card{ background:#fff; border:solid 1px var(--admin-line); border-left:solid .3em var(--admin-pink); border-radius:.35em; padding:.75em 1em; }
.agenda-card .ac-top{ display:flex; justify-content:space-between; gap:1em; }
.agenda-card .ac-name{ color:#484d55; font-weight:700; }
.agenda-card .ac-meta{ color:#919499; font-size:.84em; }
.week-grid{ display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); background:#fff; border:solid 1px var(--admin-line); border-radius:.35em; overflow:hidden; }
.week-col{ border-right:solid 1px var(--admin-line); min-height:22em; }
.week-col:last-child{ border-right:0; }
.week-col .wc-head{ text-align:center; padding:.75em; border-bottom:solid 1px var(--admin-line); background:#fafafa; }
.week-col .wd{ text-transform:uppercase; letter-spacing:.13em; font-size:.68em; color:#919499; font-weight:700; }
.week-col .dd{ color:#484d55; font-weight:900; }
.week-col .today .dd{ color:var(--admin-pink); }
.week-col .wc-body{ padding:.65em; display:flex; flex-direction:column; gap:.5em; }

/* Thumbs / switch */
.thumbs{ display:flex; gap:.65em; flex-wrap:wrap; margin-top:.65em; }
.thumbs .t{ position:relative; width:5em; height:5em; border-radius:.35em; overflow:hidden; border:solid 1px var(--admin-line); background:#f6f6f6; }
.thumbs .t img{ width:100%; height:100%; object-fit:cover; }
.thumbs .t a{ position:absolute; right:.2em; top:.2em; width:1.55em; height:1.55em; border-radius:100%; background:rgba(47,51,59,.82); color:#fff; display:flex; align-items:center; justify-content:center; text-decoration:none; }
.switch{ position:relative; display:inline-block; width:3.1em; height:1.55em; }
.switch input{ opacity:0; width:0; height:0; }
.switch span{ position:absolute; cursor:pointer; inset:0; background:#c6c6c6; border-radius:9em; transition:.2s; }
.switch span:before{ content:''; position:absolute; width:1.15em; height:1.15em; left:.2em; top:.2em; background:#fff; border-radius:100%; transition:.2s; box-shadow:0 .1em .3em rgba(0,0,0,.25); }
.switch input:checked + span{ background:var(--admin-pink); }
.switch input:checked + span:before{ transform:translateX(1.55em); }
input[type="checkbox"]{ width:1.1em; height:1.1em; accent-color:var(--admin-pink); }
input[type="color"].input{ padding:.2em; min-height:3em; }

/* Flash */
.flash{ border:solid 1px var(--admin-line); border-radius:.35em; padding:.9em 1em; margin-bottom:1.2em; background:#fff; }
.flash-error{ border-color:#efc7d6; background:#fff1f6; color:#8c3c5a; }
.flash-ok{ border-color:#cfe3cd; background:#f0f8ef; color:#527a55; }
.flash-info{ border-color:#cfe5ef; background:#edf7fc; color:#366f8b; }

/* Login */
.login-wrap{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:2em;
  background:
    linear-gradient(rgba(47,51,59,.54), rgba(47,51,59,.64)),
    url('../img/editorial/hero-manicure.jpg') center/cover no-repeat;
}
.login-card{
  width:min(28em, 94vw);
  padding:2.25em;
  text-align:center;
}
.login-card img{
  width:8em;
  max-height:6.1em;
  object-fit:contain;
  margin:0 auto 1em;
}
.lc-name{
  color:#484d55;
  font-size:1.4em;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.18em;
}
.lc-sub{
  color:#919499;
  text-transform:uppercase;
  letter-spacing:.25em;
  font-size:.7em;
  font-weight:700;
  margin:.45em 0 1.8em;
}
.brush{ display:none; }
.login-card form{ text-align:left; }
.cred-note{
  margin-top:1.3em;
  border:solid 1px var(--admin-line);
  background:#fafafa;
  color:#777a80;
  border-radius:.35em;
  padding:.85em 1em;
  font-size:.78em;
  line-height:1.5em;
}
.cred-note code{ background:#fff; border:solid 1px #ddd; border-radius:.25em; padding:.05em .35em; }

.oculto{ display:none !important; }

@media screen and (max-width: 1280px){
  .stat-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media screen and (max-width: 980px){
  .admin-shell{ grid-template-columns:1fr; }
  .sidebar{ position:fixed; left:0; top:0; bottom:0; width:18.5em; transform:translateX(-105%); transition:transform .25s ease-in-out; }
  body.admin.menu-open .sidebar{ transform:translateX(0); }
  .backdrop{ display:none; position:fixed; inset:0; background:rgba(0,0,0,.38); z-index:15; }
  body.admin.menu-open .backdrop{ display:block; }
  .menu-btn{ display:block; }
  .topbar{ padding:0 1.25em; }
  .content{ padding:1.5em 1.25em 3em; }
  .dash-cols{ grid-template-columns:1fr; }
  .week-grid{ grid-template-columns:1fr; }
  .week-col{ border-right:0; border-bottom:solid 1px var(--admin-line); }
}
@media screen and (max-width: 640px){
  body.admin{ font-size:12.5pt; }
  .stat-grid{ grid-template-columns:1fr; }
  .form-grid{ grid-template-columns:1fr; }
  .form-grid .full{ grid-column:auto; }
  .topbar h1{ font-size:1em; letter-spacing:.11em; }
  .who{ display:none; }
  .panel-head{ align-items:flex-start; flex-direction:column; padding:1em; }
  .panel-body{ padding:1em; }
  .form-actions{ flex-direction:column; }
  .form-actions .btn{ width:100%; }
  .cal-grid{ grid-template-columns:1fr; }
  .cal-dow{ display:none; }
  .cal-cell{ min-height:auto; border-right:0; }
}
@media screen and (max-width: 980px){
  .sidebar.open{ transform:translateX(0); }
  .backdrop.show{ display:block; }
}
.menu-btn{ min-width:0 !important; line-height:normal !important; }
.ico-btn{ min-width:0 !important; padding:0 !important; line-height:normal !important; }
.thumbs .t button{
  position:absolute;
  right:.2em;
  top:.2em;
  width:1.55em !important;
  height:1.55em !important;
  line-height:1.55em !important;
  min-width:0 !important;
  padding:0 !important;
  border:0;
  border-radius:100%;
  background:rgba(47,51,59,.82);
  color:#fff;
  font-size:.8em;
  letter-spacing:0;
}

/* Ajustes finales solicitados */
.side-logo.side-logo-center{
  justify-content:center;
  min-height:8.2em;
  padding:1.1em;
  text-align:center;
}
.side-logo.side-logo-center img{
  width:8.4em;
  height:5.6em;
  max-width:92%;
  object-fit:contain;
}
.stat-card-wide{ grid-column:span 2; }
.stat-card-money .val{
  white-space:nowrap;
  font-size:1.92em;
  letter-spacing:-.035em;
  font-variant-numeric:tabular-nums;
}
.web-preview{
  overflow:hidden;
  border:solid 1px var(--admin-line);
  border-radius:.35em;
  background:#fff;
  margin-bottom:1.3em;
}
.web-preview-hero{
  min-height:11em;
  display:grid;
  place-items:center;
  text-align:center;
  background-size:cover;
  background-position:center;
  position:relative;
}
.web-preview-hero:before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(rgba(47,51,59,.42), rgba(47,51,59,.52));
}
.web-preview-hero > div{ position:relative; z-index:1; }
.web-preview-hero img{
  width:7.5em;
  height:4.9em;
  object-fit:contain;
  filter:drop-shadow(0 .7em 1.3em rgba(0,0,0,.3));
}
.web-preview-hero h3{
  margin:.35em 0 0;
  color:#fff;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-size:.95em;
}
.web-preview-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.55em;
  padding:.7em;
}
.web-preview-strip img{
  width:100%;
  height:5.2em;
  object-fit:cover;
  border-radius:.25em;
}
.webphoto-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1em;
}
.webphoto-card{
  border:solid 1px var(--admin-line);
  border-radius:.35em;
  overflow:hidden;
  background:#fff;
}
.webphoto-card .img{
  height:10em;
  background:#f6f6f6;
}
.webphoto-card .img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.webphoto-card .cap{
  padding:1em;
}
.webphoto-card h3{
  font-size:.82em;
  margin:0 0 .25em;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.webphoto-card p{
  color:var(--admin-muted);
  font-size:.82em;
  line-height:1.45em;
  margin:0 0 .9em;
}
.inline-check{
  display:flex !important;
  align-items:center;
  gap:.55em;
  text-transform:none !important;
  letter-spacing:0 !important;
  font-size:.86em !important;
  color:#606167 !important;
  margin-top:.55em !important;
}
@media screen and (max-width:1280px){
  .stat-card-wide{ grid-column:span 2; }
}
@media screen and (max-width:980px){
  .webphoto-grid{ grid-template-columns:1fr; }
  .web-preview-strip{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stat-card-wide{ grid-column:span 1; }
}
@media screen and (max-width:640px){
  .stat-card-money .val{ font-size:1.65em; }
}
.thumbs > img{
  width:5em;
  height:5em;
  object-fit:cover;
  border-radius:.35em;
  border:solid 1px var(--admin-line);
  background:#f6f6f6;
}


/* v8 · Tablas estables y edición de textos/horarios */
.table td.actions{
  white-space:nowrap;
  min-width:6.8em;
  width:6.8em;
  text-align:right;
}
.table td.actions form{
  display:inline-flex !important;
  margin:0 0 0 .25em;
  vertical-align:middle;
}
.table td.actions .ico-btn{
  vertical-align:middle;
}
.table td .badge{
  white-space:nowrap;
}

.webtext-preview{
  border:solid 1px var(--admin-line);
  border-radius:.35em;
  background:#fff;
  overflow:hidden;
  margin-bottom:1.3em;
}
.webtext-preview-head{
  padding:1.1em 1.3em;
  background:linear-gradient(135deg, rgba(233,119,168,.10), rgba(47,51,59,.04));
  border-bottom:solid 1px var(--admin-line);
}
.webtext-preview-head h3{
  margin:0 0 .35em 0;
  font-size:.9em;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.webtext-preview-head p{
  margin:0;
  color:var(--admin-muted);
  line-height:1.5em;
}
.webtext-preview-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
}
.webtext-preview-card{
  padding:1em 1.15em;
  border-right:solid 1px var(--admin-line);
  border-bottom:solid 1px var(--admin-line);
  min-height:8.4em;
}
.webtext-preview-card:nth-child(3n){
  border-right:0;
}
.webtext-preview-card .k{
  display:block;
  color:var(--gold-deep);
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:.76em;
  margin-bottom:.55em;
}
.webtext-preview-card .v{
  color:#5f636a;
  font-size:.9em;
  line-height:1.55em;
}
.webtext-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1em;
}
.webtext-group{
  border:solid 1px var(--admin-line);
  border-radius:.35em;
  background:#fff;
  padding:1em;
}
.webtext-group h3{
  margin:0 0 .9em 0;
  color:var(--gold-deep);
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:.78em;
}
.webtext-group .field{
  margin-bottom:.85em;
}
.webtext-group .field:last-child{
  margin-bottom:0;
}

.schedule-day{
  border:solid 1px var(--admin-line);
  border-radius:.35em;
  background:#fff;
  margin-bottom:1em;
  overflow:hidden;
}
.schedule-day-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1em;
  padding:1em 1.1em;
  background:#fafafa;
  border-bottom:solid 1px var(--admin-line);
}
.schedule-day-head h3{
  margin:0;
  font-size:.88em;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.schedule-rows{
  padding:1em;
}
.schedule-row{
  display:grid;
  grid-template-columns:minmax(6em,.65fr) minmax(7em,1fr) minmax(7em,1fr) minmax(7em,1fr) auto;
  gap:.75em;
  align-items:end;
  padding:.85em;
  border:solid 1px var(--admin-line);
  border-radius:.35em;
  margin-bottom:.75em;
  background:#fff;
}
.schedule-row:last-child{
  margin-bottom:0;
}
.schedule-row label{
  display:block;
  font-size:.72em;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.11em;
  color:#7b7f86;
  margin-bottom:.35em;
}
.schedule-check{
  display:flex !important;
  align-items:center;
  gap:.5em;
  min-height:2.75em;
  margin:0 !important;
  color:#4f5359 !important;
  font-size:.85em !important;
  text-transform:none !important;
  letter-spacing:0 !important;
}
.schedule-remove{
  min-width:2.75em !important;
  width:2.75em;
  height:2.75em;
  padding:0 !important;
}
@media screen and (max-width:980px){
  .webtext-preview-grid{ grid-template-columns:1fr; }
  .webtext-preview-card{ border-right:0; }
  .webtext-grid{ grid-template-columns:1fr; }
  .schedule-row{ grid-template-columns:1fr 1fr; }
  .schedule-remove{ width:100%; }
}
@media screen and (max-width:640px){
  .schedule-row{ grid-template-columns:1fr; }
}

/* v9 · Correcciones de tablas y horarios */
body.admin *,
body.admin *:before,
body.admin *:after{
  box-sizing:border-box;
}

.table-catalog col.col-thumb{ width:6.4em; }
.table-catalog col.col-money{ width:10.5em; }
.table-catalog col.col-duration{ width:9.5em; }
.table-catalog col.col-mode{ width:15em; }
.table-catalog col.col-state{ width:9.5em; }
.table-catalog col.col-actions{ width:9em; }
.table-catalog td:first-child,
.table-catalog th:first-child{
  text-align:center;
}
.table td.actions,
.table-catalog td.actions{
  display:table-cell !important;
  white-space:nowrap;
  min-width:8.5em;
  width:8.5em;
  text-align:right;
  vertical-align:middle;
}
.table td.actions > a.ico-btn,
.table td.actions > form,
.table-catalog td.actions > a.ico-btn,
.table-catalog td.actions > form{
  display:inline-flex !important;
  vertical-align:middle;
  margin:0 0 0 .4em !important;
}
.table td.actions form .ico-btn,
.table-catalog td.actions form .ico-btn{
  margin:0 !important;
}
.table-catalog td strong{
  line-height:1.35em;
}
@media screen and (max-width:980px){
  .table-catalog col.col-mode{ width:12em; }
  .table-catalog col.col-actions{ width:8em; }
}

.horarios-layout{
  grid-template-columns:minmax(0, 1.35fr) minmax(20em, .9fr);
}
.horarios-layout > *,
.horarios-layout .panel,
.schedule-day,
.schedule-rows,
.schedule-row > div{
  min-width:0;
}
.schedule-row{
  grid-template-columns:minmax(7em,.75fr) repeat(3,minmax(0,1fr)) 2.75em;
  gap:.7em;
  align-items:end;
}
.schedule-row .input,
.schedule-row .select,
.schedule-row input,
.schedule-row select{
  width:100%;
  min-width:0;
}
.schedule-check{
  align-self:end;
  padding:.2em 0 .45em;
}
.schedule-day-head .btn{
  flex:none;
  white-space:nowrap;
}
@media screen and (max-width:1280px){
  .horarios-layout{ grid-template-columns:1fr; }
}
@media screen and (max-width:780px){
  .schedule-day-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .schedule-day-head .btn{
    width:100%;
  }
  .schedule-row{
    grid-template-columns:1fr 1fr;
  }
  .schedule-check,
  .schedule-remove{
    grid-column:1 / -1;
  }
  .schedule-remove{
    width:100%;
  }
}
@media screen and (max-width:560px){
  .schedule-row{ grid-template-columns:1fr; }
}


/* v10 · Login más limpio y profesional */
.login-wrap{
  background:
    radial-gradient(circle at 18% 16%, rgba(233,119,168,.26), transparent 28em),
    linear-gradient(135deg, rgba(47,51,59,.68), rgba(47,51,59,.50)),
    url('../img/editorial/hero-manicure.jpg') center/cover no-repeat;
}
.login-card{
  width:min(30em, 94vw);
  padding:2.7em 2.45em 2.45em;
  border-color:rgba(255,255,255,.55);
  box-shadow:0 2em 5em rgba(0,0,0,.24);
}
.login-card img{
  width:9.2em;
  max-height:7.2em;
  margin-bottom:1.1em;
}
.login-card .input{
  min-height:3.25em;
  background:#fff;
}
.login-card .btn-block{
  min-height:3.5em;
  margin-top:.45em;
}
.lc-name{
  font-size:1.25em;
  letter-spacing:.2em;
}
.lc-sub{
  margin-bottom:2.1em;
}
.cred-note{ display:none !important; }

/* v11 · Sidebar admin más compacto: ajuste mínimo para ganar ancho útil en el contenido */
@media screen and (min-width:981px){
  .admin-shell{
    grid-template-columns:16.75em minmax(0, 1fr);
  }
  .side-logo.side-logo-center{
    min-height:7.25em;
    padding:1em .85em .9em;
  }
  .side-logo.side-logo-center img{
    width:7.55em;
    height:5.05em;
    max-width:92%;
  }
  .side-nav{
    padding:.95em .72em;
  }
  .grp{
    margin:1.25em .82em .48em;
    font-size:.61em;
    letter-spacing:.24em;
  }
  .grp:first-child{ margin-top:.2em; }
  .side-nav a,
  .side-foot a{
    min-height:3em;
    gap:.72em;
    padding:0 .82em;
    font-size:.68em;
    letter-spacing:.105em;
  }
  .side-nav a svg,
  .side-foot a svg{
    width:1.18em;
    height:1.18em;
  }
  .side-foot{
    padding:.72em;
  }
  .content{
    max-width:100em;
  }
}
@media screen and (max-width:980px){
  .sidebar{
    width:17em;
  }
}

/* v12 · Administración premium/minimalista: refinamiento global */
:root{
  --admin-bg:#fff7fa;
  --admin-panel:#ffffff;
  --admin-line:#eadde4;
  --admin-line-strong:#d9cbd3;
  --admin-ink:#2d3037;
  --admin-ink-2:#3f444d;
  --admin-text:#555964;
  --admin-muted:#9a9299;
  --admin-pink:#e86fa5;
  --admin-pink-soft:#f39ac0;
  --admin-pink-pale:#fde7f0;
  --admin-shadow:0 1.15em 2.8em rgba(67,49,60,.075);
  --admin-shadow-soft:0 .85em 2em rgba(67,49,60,.055);
}
body.admin{
  background:
    radial-gradient(44em 22em at 12% -2%, rgba(232,111,165,.16), transparent 62%),
    linear-gradient(180deg, #fffafd 0%, #fff4f8 100%);
  color:var(--admin-text);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.admin h1,
body.admin h2,
body.admin h3,
body.admin h4{
  color:var(--admin-ink-2);
}

/* Layout más editorial */
.main{
  background:
    radial-gradient(50em 24em at 10% 0%, rgba(232,111,165,.12), transparent 64%),
    linear-gradient(180deg, rgba(255,255,255,.42), rgba(255,247,250,.98));
}
.content{
  max-width:none;
  padding:2.15em 2.35em 4em;
}
.topbar{
  height:5.25em;
  background:rgba(255,255,255,.86);
  border-bottom:1px solid rgba(217,203,211,.75);
  box-shadow:0 .6em 1.8em rgba(67,49,60,.035);
}
.topbar h1{
  font-size:1.18em;
  letter-spacing:.24em;
  color:#4a4e57;
}
.avatar{
  width:2.75em;
  height:2.75em;
  background:linear-gradient(135deg, var(--admin-pink), #d95a94) !important;
  box-shadow:0 .75em 1.45em rgba(232,111,165,.24);
}
.who .n{ color:#4a4e57; }
.who .r{ color:#a29aa1; }

/* Menú lateral: más fino, menos SaaS */
.sidebar{
  background:
    radial-gradient(20em 12em at 50% -2%, rgba(232,111,165,.22), transparent 70%),
    linear-gradient(180deg, #2f333b 0%, #282b31 48%, #22252a 100%);
  border-right:1px solid rgba(255,255,255,.06);
  box-shadow:inset -1px 0 0 rgba(255,255,255,.035), .8em 0 2.2em rgba(31,26,30,.08);
}
.side-logo.side-logo-center{
  min-height:7.6em;
  padding:1.05em .85em 1em;
  border-bottom:1px solid rgba(255,255,255,.075);
}
.side-logo.side-logo-center img{
  width:7.2em;
  height:5em;
  filter:drop-shadow(0 .85em 1.35em rgba(0,0,0,.32));
}
.side-nav{
  padding:1em .72em .7em;
}
.grp{
  margin:1.35em .95em .58em;
  color:rgba(255,255,255,.34);
  font-size:.58em;
  letter-spacing:.28em;
}
.side-nav a,
.side-foot a{
  position:relative;
  min-height:2.86em;
  gap:.7em;
  padding:0 .76em;
  border-radius:.9em;
  color:rgba(255,255,255,.68);
  letter-spacing:.105em;
  font-size:.665em;
  overflow:hidden;
}
.side-nav a svg,
.side-foot a svg{
  width:1.12em;
  height:1.12em;
  opacity:.86;
}
.side-nav a:hover,
.side-foot a:hover{
  color:#fff;
  background:rgba(255,255,255,.07);
  transform:translateX(1px);
}
.side-nav a.active{
  color:#fff;
  background:linear-gradient(135deg, rgba(232,111,165,.96), rgba(212,81,139,.95));
  box-shadow:0 .72em 1.4em rgba(232,111,165,.20), inset 0 0 0 1px rgba(255,255,255,.18);
}
.side-nav a.active:before{
  content:'';
  position:absolute;
  left:.42em;
  top:50%;
  width:.24em;
  height:1.25em;
  border-radius:2em;
  background:#fff;
  transform:translateY(-50%);
  opacity:.95;
}
.side-nav a.active svg,
.side-nav a.active span{
  transform:translateX(.16em);
}
.side-foot{
  padding:.72em;
  border-top:1px solid rgba(255,255,255,.075);
}

/* Paneles, cards y barras */
.panel,
.stat-card,
.login-card,
.cal,
.agenda,
.week-grid{
  border:1px solid rgba(217,203,211,.9);
  border-radius:1.05em;
  box-shadow:var(--admin-shadow);
}
.panel{
  overflow:hidden;
  margin-bottom:1.35em;
}
.panel-head{
  min-height:4.55em;
  padding:0 1.45em;
  background:linear-gradient(180deg, #fff 0%, #fffafd 100%);
  border-bottom:1px solid rgba(217,203,211,.82);
}
.panel-head h2{
  font-size:.94em;
  letter-spacing:.22em;
  color:#40454f;
}
.panel-head .ph-sub,
.ph-sub{
  color:#928c94;
  line-height:1.55em;
}
.panel-body{ padding:1.45em; }
.stat-grid{ gap:1em; }
.stat-card{
  border-radius:1.05em;
  box-shadow:var(--admin-shadow-soft);
  min-height:8.6em;
}
.stat-card:after{
  opacity:.75;
  filter:blur(.1px);
}
.stat-card.dark{
  background:linear-gradient(135deg, #30333b 0%, #24272d 100%) !important;
  box-shadow:0 1.2em 2.4em rgba(35,35,40,.12);
}
.stat-card .lbl{ letter-spacing:.22em; color:#9b949b; }
.stat-card .val{ color:#40454f; }

/* Inputs más elegantes y legibles */
.field label,
.form-grid label,
.login-card label,
.schedule-row label{
  color:#6b6770;
  letter-spacing:.18em;
}
.input,
.select,
.textarea,
.input-sm,
.select-sm,
body.admin input[type="text"],
body.admin input[type="email"],
body.admin input[type="password"],
body.admin input[type="number"],
body.admin input[type="date"],
body.admin input[type="time"],
body.admin input[type="tel"],
body.admin input[type="file"],
body.admin select,
body.admin textarea{
  border:1px solid #ded4db;
  box-shadow:none;
  border-radius:.78em;
  min-height:3.2em;
  padding:.82em 1em;
  background:#fff;
  color:#4f535d;
}
.input:focus,
.select:focus,
.textarea:focus,
body.admin input:focus,
body.admin select:focus,
body.admin textarea:focus{
  border-color:rgba(232,111,165,.68);
  box-shadow:0 0 0 4px rgba(232,111,165,.12);
}
.form-grid{ gap:1.05em 1.2em; }
.form-actions{
  border-top:1px solid rgba(217,203,211,.82);
}

/* Botones y pills */
.btn,
body.admin button.btn,
body.admin a.btn{
  border-radius:.78em;
  letter-spacing:.2em;
  box-shadow:none;
}
.btn-gold,
.btn-primary{
  background:linear-gradient(135deg, var(--admin-pink), #d95a94) !important;
  box-shadow:0 .8em 1.45em rgba(232,111,165,.22);
}
.btn-gold:hover,
.btn-primary:hover{
  transform:translateY(-1px);
  box-shadow:0 1em 1.8em rgba(232,111,165,.26);
}
.btn-ghost{
  background:#fff !important;
  color:#555964 !important;
  border:1px solid #ded4db !important;
  box-shadow:none !important;
}
.btn-ghost:hover{
  border-color:var(--admin-pink) !important;
  color:#40454f !important;
  background:#fff7fa !important;
}
.chip{
  border-radius:999px;
  border-color:#ded4db;
  background:#fff;
}
.chip.on{
  background:#2d3037;
  border-color:#2d3037;
}

/* Tablas con acabado más profesional */
.table-wrap{
  overflow:auto;
  border-radius:1.05em;
}
table.table{
  font-size:.91em;
  background:#fff;
}
.table th{
  background:#fffafd;
  color:#454a54;
  letter-spacing:.2em;
  padding:1.15em 1.1em;
  border-bottom:1px solid rgba(217,203,211,.9);
}
.table td{
  padding:1.02em 1.1em;
  border-bottom:1px solid rgba(217,203,211,.72);
}
.table tbody tr{
  transition:background .18s ease, box-shadow .18s ease;
}
.table tbody tr:hover{
  background:#fff8fb;
}
.table td.actions,
.table-catalog td.actions{
  width:8.8em;
  min-width:8.8em;
  padding-right:1.2em;
}
.ico-btn{
  width:2.55em;
  height:2.55em;
  border-radius:.78em;
  border:1px solid #ded4db;
  background:#fff;
}
.ico-btn:hover{
  background:#fff7fa;
  border-color:var(--admin-pink);
}
.badge{
  border-radius:999px;
  padding:.34em .75em;
}
.thumbs .t,
.thumbs > img{
  border-radius:.85em;
}

/* Calendario y listas */
.cal,
.agenda,
.week-grid{
  overflow:hidden;
}
.cal-dow,
.week-col .wc-head{
  background:#fffafd;
}
.cal-cell,
.week-col,
.agenda-row{
  border-color:rgba(217,203,211,.76);
}
.cal-ev,
.agenda-card{
  border-radius:.72em;
}
.list-item{
  border-radius:.85em;
}

/* Horarios de atención: franja clara, grande y legible */
.horarios-layout{
  grid-template-columns:minmax(0, 1fr);
  gap:1.25em;
}
.horarios-layout > div:last-child{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1.25em;
}
.schedule-day{
  border:1px solid rgba(217,203,211,.9);
  border-radius:1.05em;
  background:#fff;
  box-shadow:var(--admin-shadow-soft);
  overflow:hidden;
  margin-bottom:1.05em;
}
.schedule-day-head{
  padding:1.05em 1.2em;
  background:linear-gradient(135deg, #fff 0%, #fff6fa 100%);
  border-bottom:1px solid rgba(217,203,211,.82);
}
.schedule-day-head h3{
  font-size:.88em;
  letter-spacing:.24em;
  color:#3f444d;
}
.schedule-rows{
  padding:1.05em;
  background:#fff;
}
.schedule-row{
  display:grid;
  grid-template-columns:minmax(8.2em,.75fr) repeat(3, minmax(10.6em, 1fr)) 3.15em;
  gap:.9em;
  align-items:end;
  padding:1em;
  border:1px solid #eadde4;
  border-radius:1em;
  background:linear-gradient(180deg, #fff 0%, #fffbfd 100%);
  box-shadow:0 .7em 1.4em rgba(67,49,60,.035);
}
.schedule-row label{
  font-size:.68em;
  margin-bottom:.48em;
  color:#7a737b;
}
.schedule-row .input,
.schedule-row .select,
.schedule-row input,
.schedule-row select{
  min-height:3.35em;
  font-size:1em;
  border-radius:.82em;
  padding-left:1em;
  padding-right:.7em;
  font-variant-numeric:tabular-nums;
}
.schedule-check{
  align-self:center;
  min-height:3.35em;
  padding:.65em .9em !important;
  border:1px solid #eadde4;
  border-radius:.9em;
  background:#fff;
  justify-content:center;
  font-weight:800 !important;
  color:#40454f !important;
}
.schedule-check input{
  width:1.15em;
  height:1.15em;
}
.schedule-remove{
  width:3.15em !important;
  min-width:3.15em !important;
  height:3.15em !important;
  border-radius:.82em;
  font-size:1.05em !important;
}
@media screen and (max-width:1320px){
  .schedule-row{
    grid-template-columns:minmax(8em,.8fr) repeat(3, minmax(9.2em, 1fr)) 3.1em;
  }
}
@media screen and (max-width:1120px){
  .schedule-row{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .schedule-check,
  .schedule-remove{
    grid-column:auto;
    width:100% !important;
  }
  .horarios-layout > div:last-child{
    grid-template-columns:1fr;
  }
}
@media screen and (max-width:640px){
  .schedule-row{ grid-template-columns:1fr; }
  .schedule-check,
  .schedule-remove{ grid-column:1 / -1; }
}

/* Ajuste responsive general */
@media screen and (max-width:980px){
  .sidebar{
    width:17em;
  }
  .content{
    padding:1.35em 1em 3em;
  }
  .topbar{
    height:4.9em;
  }
}
@media screen and (max-width:640px){
  .panel-head{
    gap:.35em;
    padding:1.05em 1.1em;
  }
  .panel-body{ padding:1.05em; }
  .toolbar{
    align-items:stretch;
  }
  .toolbar > .btn,
  .toolbar > a.btn,
  .toolbar > button.btn{
    width:100%;
  }
  .filters{
    width:100%;
  }
  .filters .input,
  .filters .btn,
  .filters .chip{
    width:100%;
    justify-content:center;
  }
}

/* v13 · Horarios de atención rediseñado: más limpio, compacto y profesional */
.horarios-layout{
  grid-template-columns:minmax(0, 1fr);
  gap:1.35em;
}
.horarios-layout > div:last-child{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1.2em;
}
.horarios-layout > .panel .panel-body{
  padding:1.15em 1.2em 1.25em;
}
.schedule-day{
  margin-bottom:1em;
  border:1px solid rgba(223,210,217,.95);
  border-radius:1em;
  background:#fff;
  box-shadow:0 .8em 1.8em rgba(54,39,48,.035);
  overflow:hidden;
}
.schedule-day:last-child{
  margin-bottom:0;
}
.schedule-day-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1em;
  padding:1.05em 1.15em;
  background:linear-gradient(180deg, #fff 0%, #fff8fb 100%);
  border-bottom:1px solid rgba(223,210,217,.82);
}
.schedule-day-head h3{
  margin:0;
  font-size:.9em;
  letter-spacing:.26em;
  color:#3f434b;
}
.schedule-day-head .btn{
  min-height:3em;
  padding:0 1.2em;
  border-radius:.85em;
}
.schedule-rows{
  padding:1em 1.1em 1.15em;
  background:#fff;
}
.schedule-row{
  display:grid;
  grid-template-columns:minmax(8.4em,.72fr) minmax(9.5em,1fr) minmax(9.5em,1fr) minmax(8.25em,.9fr) 3em;
  gap:.85em;
  align-items:end;
  padding:.9em;
  border:1px solid #eadfe4;
  border-radius:.95em;
  background:#fff;
  box-shadow:none;
}
.schedule-row + .schedule-row{
  margin-top:.8em;
}
.schedule-row > div{
  min-width:0;
}
.schedule-row > div label,
.schedule-row > label{
  display:block;
  margin:0 0 .38em 0;
  font-size:.68em;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#857d86;
}
.schedule-row .input,
.schedule-row .select,
.schedule-row input,
.schedule-row select{
  width:100%;
  min-width:0;
  min-height:3.15em;
  height:3.15em;
  padding:.2em .95em;
  border-radius:.82em;
  border:1px solid #ddd1d8;
  background:#fff;
  color:#40454f;
  font-size:1.02em;
  font-variant-numeric:tabular-nums;
  box-shadow:none;
}
.schedule-row input[type="time"]{
  padding-right:.85em;
}
.schedule-check{
  display:inline-flex !important;
  align-items:center;
  justify-content:flex-start;
  gap:.55em;
  width:auto;
  min-width:7.25em;
  min-height:3.15em;
  height:3.15em;
  margin:0 !important;
  padding:0 1em !important;
  border:1px solid #e9d6df;
  border-radius:.82em;
  background:#fff7fb;
  color:#4a4f58 !important;
  font-size:.95em !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  align-self:end;
}
.schedule-check input{
  width:1.05em;
  height:1.05em;
  accent-color:var(--admin-pink);
}
.schedule-remove{
  min-width:3em !important;
  width:3em;
  height:3.15em !important;
  padding:0 !important;
  border-radius:.82em;
  align-self:end;
  font-size:1.05em !important;
}
@media screen and (max-width:1260px){
  .horarios-layout > div:last-child{
    grid-template-columns:1fr;
  }
  .schedule-row{
    grid-template-columns:minmax(7.8em,.72fr) repeat(3, minmax(0,1fr)) 3em;
  }
}
@media screen and (max-width:980px){
  .schedule-day-head{
    flex-direction:column;
    align-items:stretch;
  }
  .schedule-day-head .btn{
    width:100%;
  }
  .schedule-row{
    grid-template-columns:1fr 1fr;
  }
  .schedule-check{
    width:100%;
    justify-content:center;
  }
  .schedule-check,
  .schedule-remove{
    grid-column:1 / -1;
  }
  .schedule-remove{
    width:100%;
  }
}
@media screen and (max-width:640px){
  .horarios-layout > .panel .panel-body,
  .schedule-rows{
    padding:.9em;
  }
  .schedule-row{
    grid-template-columns:1fr;
    gap:.75em;
    padding:.8em;
  }
}

/* v14 · Horarios rehecho desde cero */
.horarios-layout{
  grid-template-columns:minmax(0,1fr);
  gap:1.4em;
}
.horarios-layout > div:last-child{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:1.2em;
}
.horarios-layout .panel:first-child .panel-body{
  padding:1.25em 1.3em 1.35em;
}
.schedule-day{
  margin-bottom:1em;
  border:1px solid #e6dce2;
  border-radius:1.1em;
  background:#fff;
  box-shadow:0 .65em 1.5em rgba(59,44,52,.04);
  overflow:hidden;
}
.schedule-day:last-child{ margin-bottom:0; }
.schedule-day-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1em;
  padding:1.05em 1.25em;
  background:#fff9fc;
  border-bottom:1px solid #efe3e8;
}
.schedule-day-head h3{
  margin:0;
  font-size:.9em;
  letter-spacing:.24em;
  color:#3f434b;
}
.schedule-day-head .btn{
  min-height:2.9em;
  padding:0 1.15em;
  border-radius:.85em;
}
.schedule-rows{
  padding:1em 1.15em 1.15em;
  background:#fff;
}
.schedule-row{
  padding:1em;
  border:1px solid #efe3e8;
  border-radius:1em;
  background:#fff;
}
.schedule-row + .schedule-row{ margin-top:.85em; }
.schedule-row-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1em;
  margin-bottom:.9em;
}
.schedule-switch{
  display:inline-flex;
  align-items:center;
  gap:.75em;
  min-height:2.75em;
  margin:0;
  cursor:pointer;
}
.schedule-switch input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.schedule-switch-ui{
  position:relative;
  width:3.4em;
  height:1.95em;
  border-radius:999px;
  background:#e8dde3;
  box-shadow:inset 0 0 0 1px #dacbd3;
  transition:.22s ease;
  flex:none;
}
.schedule-switch-ui:after{
  content:"";
  position:absolute;
  top:.15em;
  left:.16em;
  width:1.64em;
  height:1.64em;
  border-radius:50%;
  background:#fff;
  box-shadow:0 .12em .4em rgba(0,0,0,.12);
  transition:.22s ease;
}
.schedule-switch input:checked + .schedule-switch-ui{
  background:rgba(233,119,168,.28);
  box-shadow:inset 0 0 0 1px rgba(233,119,168,.55);
}
.schedule-switch input:checked + .schedule-switch-ui:after{
  left:1.6em;
  background:var(--admin-pink);
}
.schedule-switch-text{
  font-size:.95em;
  font-weight:800;
  color:#40454e;
}
.schedule-remove{
  min-width:auto !important;
  width:auto;
  height:2.75em !important;
  padding:0 1em !important;
  border-radius:.82em;
  font-size:.88em !important;
}
.schedule-fields{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:.9em;
}
.schedule-field{ min-width:0; }
.schedule-field label{
  display:block;
  margin:0 0 .42em 0;
  font-size:.68em;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#8a8088;
}
.schedule-field .input,
.schedule-field .select,
.schedule-field input,
.schedule-field select{
  width:100%;
  min-width:0;
  height:3.15em;
  min-height:3.15em;
  padding:.15em .95em;
  border-radius:.85em;
  border:1px solid #ddd0d7;
  background:#fff;
  color:#3f454e;
  font-size:1.02em;
  font-variant-numeric:tabular-nums;
}
.schedule-field input[type="time"]{
  padding-right:.8em;
}
@media screen and (max-width:1200px){
  .horarios-layout > div:last-child{ grid-template-columns:1fr; }
}
@media screen and (max-width:900px){
  .schedule-day-head{
    flex-direction:column;
    align-items:stretch;
  }
  .schedule-day-head .btn{ width:100%; }
  .schedule-fields{ grid-template-columns:1fr 1fr; }
  .schedule-field-intervalo{ grid-column:1 / -1; }
}
@media screen and (max-width:640px){
  .horarios-layout .panel:first-child .panel-body,
  .schedule-rows{ padding:.9em; }
  .schedule-row{ padding:.85em; }
  .schedule-row-top{ flex-direction:column; align-items:stretch; }
  .schedule-remove{ width:100%; }
  .schedule-fields{ grid-template-columns:1fr; gap:.75em; }
}

/* v15 · Horarios completamente rehecho con layout limpio */
.horarios-layout{
  grid-template-columns:minmax(0,1fr);
  gap:1.4em;
}
.horarios-layout > div:last-child{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:1.2em;
}
.horarios-layout .panel:first-child .panel-body{
  padding:1.2em 1.25em 1.3em;
}
.hours-day-card{
  margin-bottom:1.05em;
  border:1px solid #e6dde2;
  border-radius:1.1em;
  background:#fff;
  box-shadow:0 .75em 1.8em rgba(58,43,52,.04);
  overflow:hidden;
}
.hours-day-card:last-of-type{ margin-bottom:0; }
.hours-day-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.1em;
  padding:1.05em 1.2em;
  background:#fff9fc;
  border-bottom:1px solid #efe5e9;
}
.hours-day-title h3{
  margin:0 0 .2em;
  font-size:.92em;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:#3f434b;
}
.hours-day-title p{
  margin:0;
  font-size:.88em;
  color:#8d828a;
}
.hours-add-btn{
  min-height:2.95em;
  padding:0 1.2em;
  border-radius:.85em;
  white-space:nowrap;
}
.hours-slot-list{
  padding:1em 1.15em 1.15em;
}
.hours-slot{
  padding:1em;
  border:1px solid #eee2e7;
  border-radius:1em;
  background:#fff;
}
.hours-slot + .hours-slot{ margin-top:.85em; }
.hours-slot-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1em;
  margin-bottom:.95em;
}
.hours-check{
  display:inline-flex;
  align-items:center;
  gap:.65em;
  margin:0;
  font-size:.96em;
  font-weight:700;
  color:#434850;
}
.hours-check input{
  width:1.05em;
  height:1.05em;
  accent-color:var(--admin-pink);
  margin:0;
}
.hours-remove-btn{
  min-height:2.75em !important;
  height:2.75em !important;
  padding:0 .95em !important;
  border-radius:.8em;
  font-size:.85em !important;
  min-width:auto !important;
  width:auto;
}
.hours-slot-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:.9em;
}
.hours-field{ min-width:0; }
.hours-field label{
  display:block;
  margin:0 0 .42em;
  font-size:.68em;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#8a8088;
}
.hours-field .input,
.hours-field .select,
.hours-field input,
.hours-field select{
  width:100%;
  min-width:0;
  min-height:3.15em;
  height:3.15em;
  padding:.15em .95em;
  border-radius:.85em;
  border:1px solid #ddd0d7;
  background:#fff;
  color:#40454e;
  font-size:1.02em;
  font-variant-numeric:tabular-nums;
}
.hours-field input[type="time"]{ padding-right:.8em; }
/* neutralizar estilos viejos en esta vista */
.hours-slot.schedule-row{
  display:block;
  grid-template-columns:none;
  gap:0;
  align-items:initial;
}
@media screen and (max-width:1200px){
  .horarios-layout > div:last-child{ grid-template-columns:1fr; }
}
@media screen and (max-width:900px){
  .hours-day-header,
  .hours-slot-top{
    flex-direction:column;
    align-items:stretch;
  }
  .hours-add-btn,
  .hours-remove-btn{ width:100%; }
  .hours-slot-grid{ grid-template-columns:1fr 1fr; }
  .hours-field-interval{ grid-column:1 / -1; }
}
@media screen and (max-width:640px){
  .horarios-layout .panel:first-child .panel-body,
  .hours-slot-list{ padding:.9em; }
  .hours-slot{ padding:.85em; }
  .hours-slot-grid{ grid-template-columns:1fr; gap:.75em; }
}

/* v16 · Horarios eficiente, compacto y limpio */
.horarios-layout{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(20em, .34fr);
  gap:1.25em;
  align-items:start;
}
.horarios-layout > div:last-child{
  display:block;
}
.horarios-layout > div:last-child .panel{
  margin-bottom:1.1em;
}
.horarios-layout .panel:first-child .panel-body{
  padding:0;
}
.horarios-layout .panel:first-child form{
  padding:0;
}
.hours-day-row{
  display:grid;
  grid-template-columns:10.5em minmax(0,1fr) 7.5em;
  gap:1em;
  align-items:flex-start;
  padding:1em 1.15em;
  border-bottom:1px solid #eadfe5;
  background:#fff;
}
.hours-day-row:nth-child(even){
  background:#fffbfd;
}
.hours-day-row:last-of-type{
  border-bottom:0;
}
.hours-day-name{
  padding-top:.2em;
}
.hours-day-name strong{
  display:block;
  margin-bottom:.28em;
  font-size:.9em;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#333943;
}
.hours-day-name span{
  display:inline-flex;
  align-items:center;
  min-height:1.9em;
  padding:0 .72em;
  border-radius:999px;
  background:#fff2f8;
  color:#9a5d77;
  font-size:.76em;
  font-weight:800;
}
.hours-slots{
  display:grid;
  gap:.6em;
  min-width:0;
}
.hours-inline-row{
  display:grid;
  grid-template-columns:6.7em minmax(8.5em,1fr) minmax(8.5em,1fr) minmax(7.5em,.75fr) 2.45em;
  gap:.55em;
  align-items:center;
  min-width:0;
}
.hours-active{
  display:flex !important;
  align-items:center;
  gap:.45em;
  height:2.75em;
  margin:0 !important;
  padding:0 .72em !important;
  border:1px solid #e6d5de;
  border-radius:.72em;
  background:#fff;
  color:#4c525b !important;
  font-size:.86em !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  white-space:nowrap;
}
.hours-active input{
  all:revert;
  width:1em !important;
  height:1em !important;
  margin:0 !important;
  accent-color:var(--admin-pink);
}
.hours-active span{
  letter-spacing:0 !important;
  text-transform:none !important;
}
.hours-input-pair{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:.5em;
  min-width:0;
  height:2.75em;
  padding:0 .55em;
  border:1px solid #e1d4db;
  border-radius:.72em;
  background:#fff;
}
.hours-input-pair span{
  font-size:.68em;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#8a8089;
  white-space:nowrap;
}
.hours-input-pair input,
.hours-input-pair select{
  all:unset;
  box-sizing:border-box;
  width:100%;
  min-width:0;
  height:100%;
  color:#303741;
  font-size:1em;
  font-weight:600;
  font-variant-numeric:tabular-nums;
}
.hours-input-pair input[type="time"]::-webkit-calendar-picker-indicator{
  opacity:.78;
  cursor:pointer;
}
.hours-input-small{
  grid-template-columns:auto minmax(0,1fr);
}
.hours-delete{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.45em;
  height:2.75em;
  padding:0;
  border:1px solid #e1d4db;
  border-radius:.72em;
  background:#fff;
  color:#6b626a;
  font-size:1.1em;
  line-height:1;
  cursor:pointer;
}
.hours-delete:hover{
  border-color:#e977a8;
  color:#e977a8;
  background:#fff7fb;
}
.hours-add{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:2.75em;
  padding:0 .9em;
  border:1px solid #e1d4db;
  border-radius:.72em;
  background:#fff;
  color:#3e454f;
  font-size:.72em;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
  cursor:pointer;
  white-space:nowrap;
}
.hours-add:hover{
  border-color:#e977a8;
  color:#e977a8;
  background:#fff7fb;
}
.horarios-layout .form-actions{
  padding:1.1em 1.15em;
  border-top:1px solid #eadfe5;
  background:#fff9fc;
}
@media screen and (max-width:1320px){
  .horarios-layout{
    grid-template-columns:1fr;
  }
  .horarios-layout > div:last-child{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:1.1em;
  }
}
@media screen and (max-width:980px){
  .hours-day-row{
    grid-template-columns:1fr;
    gap:.75em;
  }
  .hours-add{
    width:auto;
    justify-self:start;
    min-width:10em;
  }
  .horarios-layout > div:last-child{
    grid-template-columns:1fr;
  }
}
@media screen and (max-width:720px){
  .hours-inline-row{
    grid-template-columns:1fr 1fr 2.45em;
  }
  .hours-active,
  .hours-input-small{
    grid-column:1 / -1;
  }
}
@media screen and (max-width:520px){
  .hours-inline-row{
    grid-template-columns:1fr;
  }
  .hours-delete{
    width:100%;
  }
}

/* v18 · Horarios rediseñado de cero, simple y eficiente */
.horarios-layout{
  grid-template-columns:minmax(0,1.42fr) minmax(20em,.72fr);
  gap:1.2em;
  align-items:start;
}
.horarios-layout > div,
.horarios-layout .panel{ min-width:0; }
.horarios-layout .panel:first-child .panel-head{
  padding:1.1em 1.25em;
}
.horarios-layout .panel:first-child .panel-body{
  padding:0;
}
.horarios-layout .panel:first-child .ph-sub{
  display:block;
  margin-top:.2em;
}
.sched-dayline{
  padding:1.05em 1.25em;
  border-top:1px solid rgba(223,209,217,.82);
}
.sched-dayline:first-of-type{ border-top:0; }
.sched-dayheader{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1em;
  margin-bottom:.85em;
}
.sched-dayheader h3{
  margin:0;
  font-size:.9em;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:#3f434b;
}
.sched-add-btn{
  min-height:2.6em;
  padding:0 .95em;
  border-radius:.75em;
  min-width:auto;
}
.sched-slots{
  display:flex;
  flex-direction:column;
  gap:.55em;
}
.sched-slot.schedule-row{
  display:grid;
  grid-template-columns:minmax(8.6em,.72fr) minmax(0,1fr) minmax(0,1fr) minmax(8.8em,.75fr) 2.6em;
  gap:.6em;
  align-items:center;
  padding:0;
  border:0;
  border-radius:0;
  margin:0;
  background:transparent;
  box-shadow:none;
}
.sched-open{
  display:inline-flex;
  align-items:center;
  gap:.55em;
  margin:0;
  min-height:2.75em;
  padding:0 .9em;
  border:1px solid #ddd0d7;
  border-radius:.8em;
  background:#fff;
  color:#41454e;
  font-weight:700;
  white-space:nowrap;
}
.sched-open input{
  width:1em;
  height:1em;
  accent-color:var(--admin-pink);
  margin:0;
}
.sched-open span{
  line-height:1;
}
.sched-field{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  min-height:2.75em;
  border:1px solid #ddd0d7;
  border-radius:.8em;
  background:#fff;
  overflow:hidden;
}
.sched-mini{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:stretch;
  padding:0 .8em;
  border-right:1px solid #eee2e8;
  font-size:.68em;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:#8b8188;
  white-space:nowrap;
}
.sched-field .input,
.sched-field .select,
.sched-field input,
.sched-field select{
  width:100%;
  min-width:0;
  height:2.75em;
  min-height:2.75em;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  padding:.1em .85em;
  font-size:1em;
  color:#40454e;
  font-variant-numeric:tabular-nums;
}
.sched-field input[type="time"]{ padding-right:.6em; }
.sched-remove-btn{
  width:2.6em;
  min-width:2.6em !important;
  height:2.6em !important;
  min-height:2.6em !important;
  padding:0 !important;
  border-radius:.8em;
  font-size:1.25em !important;
  line-height:1;
}
@media screen and (max-width:1280px){
  .horarios-layout{
    grid-template-columns:1fr;
  }
}
@media screen and (max-width:980px){
  .sched-dayline{
    padding:1em 1.05em;
  }
  .sched-dayheader{
    flex-direction:column;
    align-items:stretch;
  }
  .sched-add-btn{ width:100%; }
  .sched-slot.schedule-row{
    grid-template-columns:1fr 1fr;
  }
  .sched-open{ grid-column:1 / -1; }
  .sched-field-interval{ grid-column:1 / -1; }
}
@media screen and (max-width:640px){
  .sched-slot.schedule-row{
    grid-template-columns:1fr;
  }
  .sched-remove-btn{ width:100%; }
}

/* v19 · Horarios rehecho con layout limpio real */
.horarios-layout{
  grid-template-columns:minmax(0,1.38fr) minmax(19.5em,.72fr);
  gap:1.35em;
  align-items:start;
}
.horarios-layout > div,
.horarios-layout .panel{ min-width:0; }
.horarios-layout .panel:first-child .panel-head{
  padding:1.05em 1.25em 1em;
}
.horarios-layout .panel:first-child .panel-body{
  padding:.15em 0 .35em;
}
.horarios-layout .panel:first-child .ph-sub{
  display:block;
  margin-top:.22em;
}
.hours2-day{
  padding:1.05em 1.25em 1.15em;
  border-top:1px solid rgba(223,209,217,.78);
}
.hours2-day:first-of-type{
  border-top:0;
}
.hours2-daybar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1em;
  margin-bottom:.9em;
}
.hours2-daybar h3{
  margin:0;
  font-size:.92em;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:#39404a;
}
.hours2-add{
  min-height:2.55em;
  padding:0 .95em;
  border-radius:.72em;
  min-width:auto;
}
.hours2-slot-list{
  display:flex;
  flex-direction:column;
  gap:.62em;
}
.hours2-slot.schedule-row{
  display:grid;
  grid-template-columns:9.25em minmax(0,1fr) minmax(0,1fr) 9.2em 2.65em;
  gap:.72em;
  align-items:end;
  padding:0;
  margin:0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}
.hours2-open{
  display:flex;
  align-items:center;
  gap:.6em;
  height:3.05em;
  padding:0 .9em;
  margin:0;
  border:1px solid #ddcfd8;
  border-radius:.82em;
  background:#fff;
  color:#434850;
  font-weight:700;
  white-space:nowrap;
}
.hours2-open input{
  width:1.02em;
  height:1.02em;
  accent-color:var(--admin-pink);
  margin:0;
  flex:none;
}
.hours2-open span{ line-height:1; }
.hours2-field{
  min-width:0;
}
.hours2-field label{
  display:block;
  margin:0 0 .34em;
  font-size:.67em;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#8a8088;
}
.hours2-field .input,
.hours2-field .select,
.hours2-field input,
.hours2-field select{
  width:100%;
  min-width:0;
  height:3.05em;
  min-height:3.05em;
  padding:.2em .9em;
  border:1px solid #ddcfd8;
  border-radius:.82em;
  background:#fff;
  box-shadow:none;
  color:#3f454e;
  font-size:1em;
  font-variant-numeric:tabular-nums;
}
.hours2-field-small .select,
.hours2-field-small select{
  padding-right:2em;
}
.hours2-remove{
  width:2.65em;
  min-width:2.65em !important;
  height:3.05em !important;
  min-height:3.05em !important;
  align-self:end;
  padding:0 !important;
  border-radius:.82em;
  font-size:1.25em !important;
  line-height:1;
}
@media screen and (max-width:1320px){
  .horarios-layout{
    grid-template-columns:minmax(0,1fr);
  }
}
@media screen and (max-width:980px){
  .hours2-day{
    padding:1em 1.05em 1.1em;
  }
  .hours2-daybar{
    flex-direction:column;
    align-items:stretch;
  }
  .hours2-add{
    width:100%;
  }
  .hours2-slot.schedule-row{
    grid-template-columns:1fr 1fr;
  }
  .hours2-open{ grid-column:1 / -1; }
  .hours2-field-small{ grid-column:1 / -1; }
}
@media screen and (max-width:640px){
  .hours2-slot.schedule-row{
    grid-template-columns:1fr;
  }
  .hours2-remove{
    width:100%;
  }
}

/* v20 · Corrección del checkbox de horarios: sin caja gigante heredada de inputs */
.hours2-open{
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  height:auto !important;
  min-height:2.75em !important;
  display:flex !important;
  align-items:center !important;
  gap:.55em !important;
  color:#3f454e !important;
}
.hours2-open input[type="checkbox"]{
  -webkit-appearance:checkbox !important;
  appearance:auto !important;
  width:1.05em !important;
  min-width:1.05em !important;
  height:1.05em !important;
  min-height:1.05em !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:initial !important;
  box-shadow:none !important;
  accent-color:var(--admin-pink);
}
.hours2-open span{
  font-size:.95em !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  font-weight:700 !important;
}

/* v21 · Horarios pulido fino: compacto, ordenado, sin cajas innecesarias */
.horarios-layout{
  grid-template-columns:minmax(0,1.55fr) minmax(21.5em,.78fr);
  gap:1.5em;
  align-items:start;
}
.horarios-layout > div,
.horarios-layout .panel{ min-width:0; }
.horarios-layout .panel:first-child .panel-head{
  padding:1.1em 1.35em 1em;
}
.horarios-layout .panel:first-child .panel-body{
  padding:.15em 0 .4em;
}
.horarios-layout .panel:first-child .ph-sub{
  display:block;
  margin-top:.18em;
}
.hours2-day{
  padding:1.1em 1.35em 1.2em;
  border-top:1px solid rgba(223,209,217,.8);
}
.hours2-day:first-of-type{ border-top:0; }
.hours2-daybar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1em;
  margin-bottom:.8em;
}
.hours2-daybar h3{
  margin:0;
  font-size:.94em;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#39404a;
}
.hours2-add{
  min-height:2.55em;
  padding:0 1em;
  border-radius:.75em;
  min-width:auto;
}
.hours2-slot-list{
  display:flex;
  flex-direction:column;
  gap:.78em;
}
.hours2-slot.schedule-row{
  display:grid;
  grid-template-columns:8.8em minmax(0,1fr) minmax(0,1fr) 10em 2.9em;
  gap:.85em;
  align-items:end;
  padding:.1em 0;
  margin:0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}
.hours2-open{
  display:inline-flex;
  align-items:center;
  gap:.55em;
  height:2.85em;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  color:#424851;
  font-weight:700;
  white-space:nowrap;
}
.hours2-open input[type="checkbox"]{
  width:1.05em !important;
  height:1.05em !important;
  min-width:1.05em;
  min-height:1.05em;
  margin:0;
  accent-color:var(--admin-pink);
  border-radius:.2em;
  box-shadow:none !important;
  border:0 !important;
  padding:0 !important;
  background:transparent !important;
}
.hours2-open span{
  line-height:1;
  font-size:.98em;
}
.hours2-field{
  min-width:0;
}
.hours2-field label{
  display:block;
  margin:0 0 .38em;
  font-size:.66em;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#8b8088;
}
.hours2-field .input,
.hours2-field .select,
.hours2-field input,
.hours2-field select{
  width:100%;
  min-width:0;
  height:2.85em;
  min-height:2.85em;
  padding:.15em .9em;
  border:1px solid #ddd0d8;
  border-radius:.8em;
  background:#fff;
  box-shadow:none;
  color:#3f454e;
  font-size:1em;
  font-variant-numeric:tabular-nums;
}
.hours2-field input[type="time"]{
  padding-right:.75em;
}
.hours2-remove{
  width:2.85em;
  min-width:2.85em !important;
  height:2.85em !important;
  min-height:2.85em !important;
  align-self:end;
  padding:0 !important;
  border-radius:.8em;
  font-size:1.18em !important;
  line-height:1;
}
.horarios-layout .form-actions{
  margin-top:1.15em;
  padding:0 1.35em 1.2em;
}
@media screen and (max-width:1320px){
  .horarios-layout{
    grid-template-columns:1fr;
  }
}
@media screen and (max-width:980px){
  .hours2-day{
    padding:1em 1.05em 1.1em;
  }
  .hours2-daybar{
    flex-direction:column;
    align-items:stretch;
  }
  .hours2-add{ width:100%; }
  .hours2-slot.schedule-row{
    grid-template-columns:1fr 1fr;
    gap:.8em;
  }
  .hours2-open{ grid-column:1 / -1; }
  .hours2-field-small{ grid-column:1 / -1; }
}
@media screen and (max-width:640px){
  .hours2-slot.schedule-row{
    grid-template-columns:1fr;
  }
  .hours2-remove{ width:100%; }
}

/* v22 · Horarios más minimalistas y bloqueos con márgenes corregidos */
.horarios-layout{
  grid-template-columns:minmax(0,1.52fr) minmax(22em,.78fr);
  gap:1.35em;
  align-items:start;
}
.horarios-layout > div,
.horarios-layout .panel{ min-width:0; }
.horarios-layout .panel:first-child .panel-head{
  padding:.95em 1.25em .9em;
}
.horarios-layout .panel:first-child .panel-body{
  padding:0 0 .35em;
}
.horarios-layout .panel:first-child .ph-sub{
  display:block;
  margin-top:.18em;
  font-size:.92em;
}
.hours2-day{
  padding:.86em 1.25em .95em;
  border-top:1px solid rgba(223,209,217,.75);
}
.hours2-day:first-of-type{ border-top:0; }
.hours2-daybar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1em;
  margin-bottom:.65em;
}
.hours2-daybar h3{
  margin:0;
  font-size:.86em;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#39404a;
}
.hours2-add{
  min-height:2.32em;
  padding:0 .82em;
  border-radius:.68em;
  min-width:auto;
  font-size:.76em;
}
.hours2-slot-list{
  display:flex;
  flex-direction:column;
  gap:.48em;
}
.hours2-slot.schedule-row{
  display:grid;
  grid-template-columns:7.7em minmax(8em,1fr) minmax(8em,1fr) 8.7em 2.35em;
  gap:.58em;
  align-items:end;
  padding:0;
  margin:0;
  background:transparent;
  border:0;
  box-shadow:none;
}
.hours2-open{
  display:inline-flex;
  align-items:center;
  gap:.46em;
  height:2.55em;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  color:#424850;
  font-size:.9em;
  font-weight:700;
  white-space:nowrap;
}
.hours2-open input[type="checkbox"]{
  width:.95em !important;
  height:.95em !important;
  min-width:.95em;
  min-height:.95em;
  margin:0;
  accent-color:var(--admin-pink);
  border:0 !important;
  box-shadow:none !important;
  background:transparent !important;
  padding:0 !important;
}
.hours2-field{ min-width:0; }
.hours2-field label{
  display:block;
  margin:0 0 .25em;
  font-size:.6em;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:#8b8088;
}
.hours2-field .input,
.hours2-field .select,
.hours2-field input,
.hours2-field select{
  width:100%;
  min-width:0;
  height:2.55em;
  min-height:2.55em;
  padding:.1em .72em;
  border:1px solid #ddd0d8;
  border-radius:.68em;
  background:#fff;
  box-shadow:none;
  color:#3f454e;
  font-size:.96em;
  font-variant-numeric:tabular-nums;
}
.hours2-remove{
  width:2.35em;
  min-width:2.35em !important;
  height:2.55em !important;
  min-height:2.55em !important;
  align-self:end;
  padding:0 !important;
  border-radius:.68em;
  font-size:1.05em !important;
  line-height:1;
}
.horarios-layout .form-actions{
  margin-top:.95em;
  padding:0 1.25em 1.05em;
}
.horarios-layout > div:last-child .panel-head{
  padding:1.05em 1.3em;
}
.horarios-layout > div:last-child .panel-body{
  padding:1.15em 1.3em 1.3em !important;
}
.horarios-layout > div:last-child .field{
  margin:0 0 1em;
}
.horarios-layout > div:last-child .field label{
  margin-bottom:.48em;
}
.horarios-layout > div:last-child .input,
.horarios-layout > div:last-child input,
.horarios-layout > div:last-child textarea,
.horarios-layout > div:last-child select{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.horarios-layout > div:last-child .form-actions{
  padding:0;
  margin:.85em 0 0;
  justify-content:flex-end;
}
@media screen and (max-width:1320px){
  .horarios-layout{ grid-template-columns:1fr; }
}
@media screen and (max-width:980px){
  .hours2-day{ padding:.85em 1em .95em; }
  .hours2-daybar{ flex-direction:column; align-items:stretch; }
  .hours2-add{ width:100%; }
  .hours2-slot.schedule-row{ grid-template-columns:1fr 1fr; gap:.65em; }
  .hours2-open{ grid-column:1 / -1; }
  .hours2-field-small{ grid-column:1 / -1; }
}
@media screen and (max-width:640px){
  .hours2-slot.schedule-row{ grid-template-columns:1fr; }
  .hours2-remove{ width:100%; }
}

/* v23 · Horarios más minimalista y compacto */
.horarios-layout{
  grid-template-columns:minmax(0,1.48fr) minmax(20.5em,.74fr);
  gap:1.25em;
  align-items:start;
}
.horarios-layout > div,
.horarios-layout .panel{min-width:0;}
.horarios-layout .panel:first-child .panel-head{
  padding:1em 1.2em .95em;
}
.horarios-layout .panel:first-child .panel-body{
  padding:.05em 0 .3em;
}
.horarios-layout .panel:first-child .ph-sub{
  display:block;
  margin-top:.14em;
}
.hours2-day{
  padding:.95em 1.2em 1em;
  border-top:1px solid rgba(224,211,219,.78);
}
.hours2-day:first-of-type{border-top:0;}
.hours2-daybar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8em;
  margin-bottom:.65em;
}
.hours2-daybar h3{
  margin:0;
  font-size:.88em;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:#39404a;
}
.hours2-add{
  min-height:2.35em;
  padding:0 .85em;
  border-radius:.72em;
  min-width:auto;
  font-size:.82em;
}
.hours2-slot-list{
  display:flex;
  flex-direction:column;
  gap:.62em;
}
.hours2-slot.schedule-row{
  display:grid;
  grid-template-columns:7.2em minmax(0,1fr) minmax(0,1fr) 9.1em 2.45em;
  gap:.65em;
  align-items:end;
  padding:0;
  margin:0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}
.hours2-state,
.hours2-field{min-width:0;}
.hours2-state > label:first-child,
.hours2-field label{
  display:block;
  margin:0 0 .3em;
  font-size:.63em;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:#8c8188;
}
.hours2-open{
  display:inline-flex;
  align-items:center;
  gap:.48em;
  height:2.55em;
  margin:0;
  padding:0 .15em 0 0;
  border:0;
  background:transparent;
  color:#434850;
  font-weight:700;
  white-space:nowrap;
}
.hours2-open input[type="checkbox"]{
  width:1em !important;
  height:1em !important;
  min-width:1em;
  min-height:1em;
  margin:0;
  accent-color:var(--admin-pink);
  box-shadow:none !important;
  border:0 !important;
  padding:0 !important;
  background:transparent !important;
}
.hours2-open span{
  line-height:1;
  font-size:.93em;
}
.hours2-field .input,
.hours2-field .select,
.hours2-field input,
.hours2-field select{
  width:100%;
  min-width:0;
  height:2.55em;
  min-height:2.55em;
  padding:.1em .8em;
  border:1px solid #ddd1d8;
  border-radius:.75em;
  background:#fff;
  box-shadow:none;
  color:#3f454e;
  font-size:.95em;
  font-variant-numeric:tabular-nums;
}
.hours2-remove{
  width:2.45em;
  min-width:2.45em !important;
  height:2.55em !important;
  min-height:2.55em !important;
  align-self:end;
  padding:0 !important;
  border-radius:.75em;
  font-size:1.05em !important;
  line-height:1;
}
.horarios-layout .form-actions{
  margin-top:.95em;
  padding:0 1.2em 1.05em;
}
.horarios-layout > div:last-child .panel-head{
  padding:1em 1.15em;
}
.horarios-layout > div:last-child .panel-body{
  padding:1.05em 1.15em 1.15em;
}
.horarios-layout > div:last-child .field{margin-bottom:.85em;}
.horarios-layout > div:last-child .field label{
  margin-bottom:.35em;
}
.horarios-layout > div:last-child .input,
.horarios-layout > div:last-child input,
.horarios-layout > div:last-child textarea,
.horarios-layout > div:last-child select{
  height:2.65em;
  min-height:2.65em;
}
.horarios-layout > div:last-child .form-actions{
  margin-top:.25em;
  padding-top:.2em;
}
@media screen and (max-width:1320px){
  .horarios-layout{grid-template-columns:1fr;}
}
@media screen and (max-width:980px){
  .hours2-day{padding:.85em 1em .95em;}
  .hours2-daybar{flex-direction:column;align-items:stretch;}
  .hours2-add{width:100%;}
  .hours2-slot.schedule-row{grid-template-columns:1fr 1fr;gap:.6em;}
  .hours2-state{grid-column:1 / -1;}
  .hours2-field-small{grid-column:1 / -1;}
}
@media screen and (max-width:640px){
  .hours2-slot.schedule-row{grid-template-columns:1fr;}
  .hours2-remove{width:100%;}
}

/* v24 · Cargos extra y cobro dividido */
.br-total-box{
  display:grid;
  gap:.55em;
  padding:.95em;
  border:1px solid rgba(223,209,217,.86);
  border-radius:1em;
  background:#fffafd;
  margin-bottom:1em;
}
.br-total-box div,
.br-charge-summary div{
  display:flex;
  justify-content:space-between;
  gap:1em;
  align-items:center;
}
.br-total-box span,
.br-charge-summary span{
  color:var(--muted);
}
.br-total-box strong,
.br-charge-summary strong{
  color:var(--ink);
  white-space:nowrap;
}
.br-total-box .due{
  padding-top:.55em;
  border-top:1px solid rgba(223,209,217,.86);
}
.br-total-box .due strong{
  color:var(--admin-pink);
  font-size:1.05em;
}
.br-extra-box,
.br-payment-lines{
  margin:0 0 1em;
}
.br-box-label{
  display:block;
  margin:0 0 .55em;
  font-size:.72em;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#7f7880;
}
.br-extra-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 8.5em;
  gap:.7em;
  align-items:center;
  padding:.55em 0;
  border-bottom:1px solid rgba(223,209,217,.58);
}
.br-extra-row label,
.br-check-line{
  display:flex;
  align-items:center;
  gap:.55em;
  margin:0;
  color:var(--ink);
  font-weight:700;
}
.br-extra-row input[type="checkbox"],
.br-check-line input{
  width:1em;
  height:1em;
  accent-color:var(--admin-pink);
}
.br-extra-row .input,
.br-payment-line .input,
.br-payment-line .select{
  min-height:2.75em;
  height:2.75em;
}
.br-payment-line{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:.7em;
  margin-bottom:.6em;
}
.compact-grid{
  gap:.7em;
}
.br-check-line{
  margin:.4em 0 1em;
}
.br-charge-summary{
  margin:1em 0 0;
  padding:.85em .95em;
  border:1px solid rgba(223,209,217,.78);
  border-radius:1em;
  background:#fff;
}
.br-charge-summary h3{
  margin:0 0 .55em;
  font-size:.78em;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#3f444d;
}
.br-charge-summary div + div{
  margin-top:.38em;
}
@media screen and (max-width:640px){
  .br-extra-row,
  .br-payment-line{
    grid-template-columns:1fr;
  }
}

/* v25 · Selector de cargos extra corregido */
.br-extra-selector{
  margin-top:.25em;
}
.br-extra-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:.65em;
}
.br-extra-row{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 9.5em;
  gap:.75em;
  align-items:center;
  padding:.72em .78em !important;
  border:1px solid rgba(223,209,217,.9) !important;
  border-radius:.9em;
  background:#fff;
  transition:border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.br-extra-row.is-selected,
.br-extra-row:has(input[type="checkbox"]:checked){
  border-color:rgba(225,88,145,.55) !important;
  background:#fff7fb;
  box-shadow:0 .5em 1.3em rgba(225,88,145,.07);
}
.br-extra-choice{
  display:flex !important;
  align-items:center;
  gap:.72em;
  margin:0 !important;
  min-width:0;
  cursor:pointer;
  user-select:none;
  color:var(--ink);
  font-weight:800;
}
.br-extra-choice input[type="checkbox"]{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.br-extra-mark{
  width:1.35em;
  height:1.35em;
  border:1px solid #d8c9d1;
  border-radius:.42em;
  background:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:none;
  transition:all .18s ease;
}
.br-extra-mark:before{
  content:'✓';
  color:#fff;
  font-size:.86em;
  font-weight:900;
  transform:scale(.6);
  opacity:0;
  transition:all .18s ease;
}
.br-extra-choice input[type="checkbox"]:checked + .br-extra-mark{
  background:var(--admin-pink);
  border-color:var(--admin-pink);
}
.br-extra-choice input[type="checkbox"]:checked + .br-extra-mark:before{
  opacity:1;
  transform:scale(1);
}
.br-extra-name{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.br-extra-amount{
  display:grid;
  grid-template-columns:1fr;
  gap:.25em;
}
.br-extra-amount > span{
  font-size:.62em;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#8b8088;
}
.br-extra-amount .input{
  width:100%;
  height:2.55em !important;
  min-height:2.55em !important;
  padding:.12em .75em;
  border-radius:.72em;
}
.br-extra-hint{
  margin:.55em 0 0;
}
.br-live-total{
  font-weight:800;
  color:var(--admin-pink) !important;
}
@media screen and (max-width:640px){
  .br-extra-row{
    grid-template-columns:1fr;
  }
}


/* v27 · Cobro: checkboxes reales, resumen claro y menos negrita */
.br-cobro-panel .panel-body{
  padding:1.05em 1.15em 1.15em;
}
.br-cobro-resumen{
  gap:.42em;
  padding:.8em .9em;
  border-radius:.85em;
  background:#fff;
}
.br-cobro-resumen div{
  padding:.14em 0;
}
.br-cobro-resumen span{
  color:#756f76;
  font-weight:500;
}
.br-cobro-resumen strong{
  color:#3f454e;
  font-weight:650;
}
.br-cobro-resumen .due{
  margin-top:.28em;
  padding-top:.62em;
}
.br-cobro-resumen .due strong{
  color:var(--admin-pink);
  font-size:1em;
  font-weight:700;
}
.br-check-line{
  display:grid !important;
  grid-template-columns:1.05em minmax(0,1fr);
  align-items:start;
  gap:.62em;
  margin:.35em 0 .55em !important;
  padding:.15em 0;
  color:#3f454e;
  font-weight:500 !important;
  line-height:1.45;
  cursor:pointer;
}
.br-check-line input[type="checkbox"]{
  appearance:auto !important;
  -webkit-appearance:checkbox !important;
  position:static !important;
  opacity:1 !important;
  pointer-events:auto !important;
  display:block !important;
  width:1.05em !important;
  height:1.05em !important;
  min-width:1.05em !important;
  min-height:1.05em !important;
  max-width:1.05em !important;
  max-height:1.05em !important;
  margin:.16em 0 0 !important;
  padding:0 !important;
  border:1px solid #cfc3ca !important;
  border-radius:.18em !important;
  background:#fff !important;
  box-shadow:none !important;
  accent-color:var(--admin-pink);
}
.br-check-line span{
  display:block;
  font-weight:500 !important;
}
.br-extra-row label,
.br-extra-choice{
  font-weight:650 !important;
}
.br-live-total{
  font-weight:600 !important;
}
.br-payment-lines .hint,
.br-extra-hint{
  font-weight:400 !important;
}

/* v29 · Ficha clínica, fidelidad y cumpleaños */
.health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75em;margin-bottom:1em;}
.health-pill{border:1px solid var(--admin-line);border-radius:.9em;background:#fff;padding:.85em .95em;display:flex;align-items:center;justify-content:space-between;gap:.8em;}
.health-pill span{font-size:.72em;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);font-weight:800;}
.health-pill strong{color:var(--ink);font-size:.95em;}
.health-pill.warn{background:#fff7fa;border-color:#f0c7d8;}
.clinical-note{border:1px solid #eadde4;background:#fffafd;border-radius:.9em;padding:1em;color:#4b515b;line-height:1.65em;}
.loyalty-card{border:1px solid #eadde4;background:linear-gradient(135deg,#fff,#fff7fb);border-radius:1em;padding:1em;}
.loyalty-title{display:flex;align-items:flex-start;justify-content:space-between;gap:1em;margin-bottom:.9em;}
.loyalty-title strong{color:#3f4550;}
.loyalty-title span{font-size:.9em;color:#8d8189;text-align:right;}
.loyalty-hearts{display:flex;flex-wrap:wrap;gap:.36em;margin:.4em 0 .8em;}
.loyalty-hearts .heart{width:1.8em;height:1.8em;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#f3e8ee;color:#c5aeb9;font-size:1em;line-height:1;}
.loyalty-hearts .heart.on{background:var(--admin-pink);color:#fff;box-shadow:0 .35em .9em rgba(233,119,168,.2);}
.loyalty-hearts.small{margin:.1em 0 .35em;gap:.22em;}
.loyalty-hearts.small .heart{width:1.35em;height:1.35em;font-size:.78em;}
.loyalty-mini{display:inline-flex;align-items:center;justify-content:center;border:1px solid #eadde4;background:#fff7fb;color:#8c3c5a;border-radius:999px;padding:.25em .7em;font-size:.82em;font-weight:800;white-space:nowrap;}
.birthday-panel{border-color:#f0d2df;}
.birthday-list{display:flex;gap:.75em;flex-wrap:wrap;}
.birthday-item{display:flex;align-items:center;justify-content:space-between;gap:1em;min-width:16em;flex:1;border:1px solid #eadde4;background:#fff;border-radius:.9em;padding:.85em 1em;text-decoration:none;color:#3f4550;}
.birthday-item span{color:#8d8189;font-size:.9em;}
.inline-form{display:flex;align-items:center;gap:.5em;flex-wrap:wrap;margin:0;}
.loyalty-table td{vertical-align:middle;}
.loyalty-discount-box{background:#fff7fb;border-color:#f0c7d8;}
.form-grid.one-col{grid-template-columns:1fr;}
@media screen and (max-width:980px){.health-grid{grid-template-columns:1fr}.loyalty-title{display:block}.loyalty-title span{text-align:left;display:block;margin-top:.3em}.birthday-item{min-width:100%;}}

/* v32 · Reservas: búsqueda histórica y autocomplete de clientas */
.reservas-toolbar{
  align-items:center;
  gap:1em;
}
.reservas-search-panel{
  margin-bottom:1em;
}
.reservas-search-form{
  display:grid;
  grid-template-columns:minmax(14em,1.5fr) minmax(10em,.8fr) minmax(10em,.8fr) minmax(10em,.8fr) auto auto auto;
  gap:.75em;
  align-items:end;
}
.reservas-search-form .field{
  margin:0;
}
.reservas-historicas{
  margin:0;
  height:2.9em;
  align-items:center;
  white-space:nowrap;
}
.reservas-search-form .btn{
  min-height:2.9em;
}
@media screen and (max-width:1180px){
  .reservas-search-form{
    grid-template-columns:1fr 1fr;
  }
  .reservas-historicas,
  .reservas-search-form .btn{
    width:100%;
  }
}
@media screen and (max-width:640px){
  .reservas-search-form{
    grid-template-columns:1fr;
  }
}

