/* Panel del operador. Marca Rezzerva: verde bosque #224425, salvia #8caf8f, Manrope. */
:root {
  --verde: #224425;
  --salvia: #8caf8f;
  --fondo: #f3f6f3;
  --caja: #ffffff;
  --linea: #dfe6df;
  --tinta: #16241a;
  --gris: #5c6b5f;
  --suave: #e8efe8;
  --rojo: #b3261e;
  --ambar: #8a5a00;
  --radio: 14px;
  /* Marca Rezzerva en todo el panel (no el color del negocio): fondo oscuro del
     sitio y acento por sector, como la portada de rezzerva.com. */
  --oscuro: #1c2d1e;
  --acento: #a8feaf;
  --sobre-acento: #13261a;
}
body[data-sector="citas"] { --acento: #c9b6ff; }
body[data-sector="hoteles"] { --acento: #8fd3ff; }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--fondo); color: var(--tinta); font: 500 15px/1.45 Manrope, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: var(--verde); }
h1 { font-size: 22px; font-weight: 800; letter-spacing: -.01em; margin: 4px 0 14px; }
h1 small { font-size: 12px; font-weight: 700; background: var(--salvia); color: #fff; border-radius: 999px; padding: 2px 8px; vertical-align: middle; }
h2 { font-size: 16px; font-weight: 800; margin: 0 0 10px; }
h2 small, td small, dd small { display: block; font-weight: 500; color: var(--gris); font-size: 12px; }
h3 { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--gris); margin: 16px 0 6px; }

/* ---------- barra superior ---------- */
.top { position: sticky; top: 0; z-index: 20; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; padding: 10px 16px; background: var(--oscuro); color: #fff; }
.marca { display: flex; align-items: center; gap: 8px; color: #fff; text-decoration: none; font-weight: 800; font-size: 16px; margin-right: auto; }
.marca img { border-radius: 7px; }
.nav { order: 3; width: 100%; display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.nav a { color: #dfe9df; text-decoration: none; font-weight: 700; font-size: 14px; padding: 7px 12px; border-radius: 999px; white-space: nowrap; }
.nav a.on { background: #fff; color: var(--verde); }
.salir { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #dfe9df; }
.salir button { border: 1px solid rgba(255,255,255,.4); background: none; color: #fff; border-radius: 999px; padding: 4px 10px; font: 600 12px Manrope, sans-serif; cursor: pointer; }
@media (min-width: 900px) { .nav { order: 0; width: auto; } .marca { margin-right: 10px; } .salir { margin-left: auto; } }

main { max-width: 1200px; margin: 0 auto; padding: 16px; }
.pie { text-align: center; padding: 24px 0 32px; }

/* ---------- piezas ---------- */
.btn { display: inline-block; border: 0; border-radius: 12px; background: var(--verde); color: #fff; font: 700 14px/1 Manrope, sans-serif; padding: 12px 16px; text-decoration: none; cursor: pointer; }
.btn.sec { background: var(--caja); color: var(--verde); border: 1px solid var(--linea); }
.btn.peligro { background: var(--rojo); }
.btn:hover { filter: brightness(1.08); }
.acciones { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.acciones form { margin: 0; }
.caja { background: var(--caja); border: 1px solid var(--linea); border-radius: var(--radio); padding: 16px; margin: 0 0 14px; }
.grid2 { display: grid; gap: 14px; grid-template-columns: 1fr; }
.grid2 > .caja { margin: 0; }
@media (min-width: 860px) { .grid2 { grid-template-columns: 1fr 1fr; margin-bottom: 14px; } }
.vacio { background: var(--caja); border: 1px dashed var(--linea); border-radius: var(--radio); padding: 28px 16px; text-align: center; color: var(--gris); margin-bottom: 14px; }
.nota { color: var(--gris); font-size: 13px; }
small.nota { display: block; font-style: italic; }
.ok { background: #e6f2e7; border: 1px solid #b8d6bb; color: var(--verde); border-radius: 12px; padding: 10px 14px; font-weight: 700; }
.err { background: #fbeaea; border: 1px solid #efc2c0; color: var(--rojo); border-radius: 12px; padding: 10px 14px; font-weight: 700; }
.alerta { background: #fff4d6; color: var(--ambar); border-radius: 10px; padding: 8px 12px; font-weight: 700; font-size: 14px; }
.migas { font-size: 13px; color: var(--gris); margin: 0 0 4px; }
.cab { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; }
.cab h1 { margin: 0; }

.badge { display: inline-block; font-size: 11px; font-weight: 800; padding: 3px 8px; border-radius: 999px; background: var(--suave); color: var(--gris); white-space: nowrap; vertical-align: middle; }
.b-confirmed { background: #e0efe1; color: var(--verde); }
.b-completed { background: var(--verde); color: #fff; }
.b-pending { background: #fff4d6; color: var(--ambar); }
.b-cancelled, .b-expired, .b-refunded { background: #f1f1f1; color: #777; }
.b-no_show { background: #fbeaea; color: var(--rojo); }
.wa { font-size: 12px; font-weight: 800; color: #1f8f4e; text-decoration: none; border: 1px solid #bfe3cc; border-radius: 999px; padding: 1px 7px; white-space: nowrap; }

/* ---------- día ---------- */
.dia { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; }
.dia h1 { margin: 0 4px; text-transform: capitalize; font-size: 20px; }
.dia .btn.sec { padding: 9px 13px; }
.ir { display: flex; gap: 6px; flex-basis: 100%; }
.ir input { font: inherit; border: 1px solid var(--linea); border-radius: 10px; padding: 7px 9px; background: #fff; }

.kpis { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 14px; }
@media (min-width: 700px) { .kpis { grid-template-columns: repeat(4, 1fr); } }
.kpi { background: var(--caja); border: 1px solid var(--linea); border-radius: var(--radio); padding: 12px 14px; }
.kpi b { display: block; font-size: 22px; font-weight: 800; color: var(--verde); letter-spacing: -.01em; }
.kpi span { font-size: 12px; color: var(--gris); font-weight: 600; }

.tabs { display: flex; gap: 6px; margin-bottom: 14px; flex-wrap: wrap; }
.tabs a { text-decoration: none; font-weight: 700; font-size: 13px; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--linea); background: #fff; }
.tabs a.on { background: var(--verde); color: #fff; border-color: var(--verde); }

/* ---------- tablas (en celular cada fila es una tarjeta) ---------- */
.lista { width: 100%; border-collapse: collapse; font-size: 14px; }
.lista th { text-align: left; font-size: 12px; color: var(--gris); font-weight: 700; padding: 8px; border-bottom: 1px solid var(--linea); }
.lista td { padding: 10px 8px; border-bottom: 1px solid var(--linea); vertical-align: top; }
.lista .n { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.lista tr.tenue td { opacity: .55; }
@media (max-width: 700px) {
  .lista thead { display: none; }
  .lista, .lista tbody, .lista tr, .lista td { display: block; width: 100%; }
  .lista tr { background: var(--caja); border: 1px solid var(--linea); border-radius: 12px; padding: 8px 12px; margin-bottom: 8px; }
  .lista td { border: 0; padding: 4px 0; text-align: right; overflow: hidden; }
  .lista td::before { content: attr(data-t); float: left; margin-right: 12px; color: var(--gris); font-size: 12px; font-weight: 700; text-align: left; }
  .lista td small { display: block; }
  .lista td:not([data-t])::before { content: none; }
  .lista td small { text-align: right; }
}

.lineas { width: 100%; border-collapse: collapse; font-size: 14px; margin-top: 10px; }
.lineas td { padding: 6px 0; border-bottom: 1px solid var(--suave); }
.lineas td.n { text-align: right; font-variant-numeric: tabular-nums; }
.lineas tr.tot td { font-weight: 800; border-top: 1px solid var(--linea); }
dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; margin: 0; font-size: 14px; }
dt { color: var(--gris); font-size: 13px; }
dd { margin: 0; }

.salida { background: var(--caja); border: 1px solid var(--linea); border-radius: var(--radio); padding: 14px 16px; margin-bottom: 14px; }
.salida header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 8px; }
.salida h2 { margin: 2px 0 0; }
.hora { font-size: 13px; font-weight: 800; color: #fff; background: var(--verde); padding: 3px 9px; border-radius: 999px; }
.cupo { font-size: 14px; color: var(--gris); white-space: nowrap; }
.cupo b { font-size: 20px; color: var(--tinta); }

.bitacora { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.bitacora li { padding: 7px 0; border-bottom: 1px solid var(--suave); }
.bitacora time { color: var(--gris); font-size: 12px; font-variant-numeric: tabular-nums; margin-right: 6px; }
.bitacora q { display: block; margin-top: 3px; color: var(--tinta); font-style: italic; }

/* ---------- formularios ---------- */
.buscar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.buscar input { flex: 1 1 220px; }
.buscar input, .buscar select, .formu input, .formu select, .formu textarea, .nota-form textarea, .entrar input {
  font: inherit; font-family: Manrope, sans-serif; border: 1px solid var(--linea); border-radius: 12px; padding: 11px 12px; background: #fff; color: var(--tinta); width: 100%; }
.buscar select { width: auto; }
.formu { max-width: 720px; }
.formu .btn { margin-top: 14px; }
.campo { display: block; margin-top: 12px; border: 0; padding: 0; }
.campo > span, .campo > legend { display: block; font-size: 13px; font-weight: 700; margin-bottom: 5px; }
.campo i { font-weight: 500; font-style: normal; color: var(--gris); }
.fila2 { display: grid; gap: 0 12px; grid-template-columns: 1fr; }
@media (min-width: 600px) { .fila2 { grid-template-columns: 1fr 1fr; } }
.chk { display: flex; gap: 8px; align-items: center; padding: 6px 0; font-size: 14px; }
.chk input { width: 18px; height: 18px; accent-color: var(--verde); }
.en-linea { display: grid; gap: 0 10px; grid-template-columns: 1fr; align-items: end; max-width: none; margin-top: 8px; }
@media (min-width: 800px) { .en-linea { grid-template-columns: 1.2fr 1.5fr .8fr auto; } }
.nota-form { display: grid; gap: 8px; margin-top: 12px; }
.nota-form textarea { min-height: 70px; }
.nota-form .btn { justify-self: start; }
.cancelar { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--linea); }
.entrar { max-width: 420px; margin: 40px auto; background: var(--caja); border: 1px solid var(--linea); border-radius: 18px; padding: 24px; }
.entrar .btn { margin-top: 14px; width: 100%; padding: 15px; font-size: 15px; }
.pags { display: flex; gap: 8px; justify-content: center; margin: 14px 0; }

/* ---------- agenda por terapeuta ---------- */
.agenda { background: var(--caja); border: 1px solid var(--linea); border-radius: var(--radio); overflow-x: auto; margin-bottom: 10px; }
.ag-cab, .ag-cuerpo { display: grid; grid-template-columns: 52px repeat(var(--cols), minmax(150px, 1fr)); min-width: calc(52px + var(--cols) * 150px); }
.ag-cab { position: sticky; top: 0; z-index: 3; background: #fff; border-bottom: 1px solid var(--linea); }
.ag-nom { padding: 10px 8px; font-weight: 800; font-size: 14px; display: flex; gap: 7px; align-items: center; border-left: 1px solid var(--linea); }
.ag-nom i { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.ag-cuerpo { position: relative; }
.ag-horas { position: relative; border-right: 1px solid var(--linea); background: #fff; }
.ag-horas span { position: absolute; right: 6px; font-size: 11px; color: var(--gris); transform: translateY(-50%); white-space: nowrap; }
.ag-horas span:first-child { transform: none; }
.ag-col { position: relative; border-left: 1px solid var(--suave); background: repeating-linear-gradient(0deg, #f4f4f2, #f4f4f2 1px, #fafaf8 1px, #fafaf8 48px); }
.ag-turno { position: absolute; left: 0; right: 0; background: repeating-linear-gradient(180deg, #fff 0, #fff 47px, #eef2ee 47px, #eef2ee 48px); }
.ag-hueco { position: absolute; left: 0; right: 0; z-index: 1; }
.ag-hueco:hover { background: rgba(140, 175, 143, .18); }
.ag-bloqueo { position: absolute; left: 3px; right: 3px; z-index: 2; border-radius: 8px; background: repeating-linear-gradient(135deg, #eceeec, #eceeec 6px, #e2e5e2 6px, #e2e5e2 12px); font-size: 11px; font-weight: 700; color: var(--gris); padding: 4px 6px; overflow: hidden; }
.ag-cita { position: absolute; left: 3px; right: 3px; z-index: 2; border-radius: 9px; padding: 4px 7px; text-decoration: none; color: var(--tinta); overflow: hidden; font-size: 12px; line-height: 1.3;
  background: linear-gradient(180deg, color-mix(in srgb, var(--c) 30%, #fff) calc(100% - var(--b)), color-mix(in srgb, var(--c) 10%, #fff) calc(100% - var(--b)));
  border-left: 4px solid var(--c); box-shadow: 0 1px 2px rgba(0,0,0,.06); }
.ag-cita:hover { filter: brightness(.97); z-index: 4; }
.ag-cita b { display: block; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-cita span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-cita em { display: block; font-style: normal; font-size: 11px; color: var(--gris); font-weight: 700; }
.ag-cita.s-pending { border-left-style: dashed; opacity: .7; }
.ag-cita.s-completed { opacity: .75; }
.ag-cita.s-no_show { opacity: .5; text-decoration: line-through; }

/* ---------- impresión: el manifiesto en una hoja ---------- */
@media print {
  .top, .acciones, .ir, .dia .btn, .pie, .nota-form, .buscar, .pags { display: none !important; }
  body { background: #fff; font-size: 12px; }
  main { padding: 0; max-width: none; }
  .salida, .caja, .kpi { border: 1px solid #bbb; break-inside: avoid; }
  .lista thead { display: table-header-group !important; }
  .lista { display: table !important; width: 100%; }
  .lista tbody { display: table-row-group !important; }
  .lista tr { display: table-row !important; border: 0; padding: 0; }
  .lista td { display: table-cell !important; text-align: left; }
  .lista td::before { content: none !important; }
  .wa { display: none; }
}

/* ================================================================
   Entrada al panel: foto a sangre, velo verde y tarjeta de vidrio.
   En la línea del Home de rezzerva.com. Acento #a8feaf.
   ================================================================ */
.acceso {
  --menta: #a8feaf;
  --noche: #0f2414;
  min-height: 100vh; min-height: 100dvh; margin: 0; color: #fff; display: flex; flex-direction: column;
  background:
    radial-gradient(900px 520px at 78% 18%, rgba(168, 254, 175, .13), transparent 62%),
    radial-gradient(700px 500px at 10% 90%, rgba(140, 175, 143, .16), transparent 60%),
    linear-gradient(160deg, #22422a 0%, #17301d 45%, #0f2414 100%);
  background-attachment: fixed;
}
.acceso.con-foto {
  /* Aérea: corte horizontal en escritorio, vertical en celular. */
  background: url(/panel/PanelCliente-Aerea-H-Rezzerva-web.webp) center / cover no-repeat fixed, #0f2414;
}
@media (max-width: 919px), (orientation: portrait) {
  .acceso.con-foto {
    background-image: url(/panel/PanelCliente-Aerea-Rezzerva-web.webp);
    background-attachment: scroll;
  }
}
.ac-velo { position: fixed; inset: 0; pointer-events: none;
  background: linear-gradient(95deg, rgba(10, 26, 14, .80) 0%, rgba(12, 30, 17, .55) 45%, rgba(12, 30, 17, .35) 100%),
              linear-gradient(0deg, rgba(8, 20, 11, .5), transparent 35%); }
@media (max-width: 919px) {
  .ac-velo { background: linear-gradient(180deg, rgba(10, 26, 14, .78) 0%, rgba(12, 30, 17, .5) 55%, rgba(12, 30, 17, .15) 100%); }
}
.acceso:not(.con-foto) .ac-velo { background: none; }
.ac-top, .ac-main, .ac-pie { position: relative; z-index: 1; }

.ac-top { display: flex; justify-content: space-between; align-items: center; padding: 22px clamp(20px, 5vw, 64px); }
.ac-marca { display: flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; font-weight: 800; font-size: 24px; letter-spacing: -.02em; }
.ac-marca img { border-radius: 7px; }
.ac-sitio { color: rgba(255, 255, 255, .78); text-decoration: none; font-size: 13px; font-weight: 600; border: 1px solid rgba(168, 254, 175, .35); border-radius: 999px; padding: 7px 14px; transition: border-color .2s, color .2s; }
.ac-sitio:hover { color: var(--menta); border-color: var(--menta); }

.ac-main { flex: 1; display: grid; align-items: center; gap: 36px; padding: 12px clamp(20px, 5vw, 64px) 40px;
  grid-template-columns: 1fr; max-width: 1180px; width: 100%; margin: 0 auto; box-sizing: border-box; }
@media (min-width: 920px) {
  .ac-main { grid-template-columns: 1.1fr minmax(380px, 440px); gap: 64px; }
}

.ac-kicker { margin: 0 0 14px; color: var(--menta); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.ac-texto h1 { margin: 0 0 18px; font-weight: 300; font-size: clamp(34px, 5.2vw, 60px); line-height: 1.06; letter-spacing: -.025em; color: #fff; }
.ac-texto h1 b { font-weight: 800; }
.ac-sub { margin: 0; max-width: 460px; font-size: clamp(15px, 1.4vw, 18px); line-height: 1.55; color: rgba(255, 255, 255, .78); font-weight: 400; }
@media (max-width: 919px) { .ac-texto { text-align: left; } .ac-sub { display: none; } }

.ac-card {
  background: linear-gradient(155deg, rgba(255, 255, 255, .14), rgba(255, 255, 255, .05));
  -webkit-backdrop-filter: blur(22px) saturate(150%); backdrop-filter: blur(22px) saturate(150%);
  border: 1px solid rgba(168, 254, 175, .38); border-radius: 26px; padding: clamp(24px, 3.2vw, 36px);
  box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .55), inset 0 1px 0 rgba(255, 255, 255, .12);
}
.ac-card h2 { margin: 0 0 8px; font-size: 26px; font-weight: 800; letter-spacing: -.02em; color: #fff; }
.ac-card > p { margin: 0 0 22px; color: rgba(255, 255, 255, .78); font-size: 15px; line-height: 1.55; }
.ac-icono { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; margin-bottom: 18px;
  color: var(--menta); background: rgba(168, 254, 175, .1); border: 1px solid rgba(168, 254, 175, .35); }

.ac-campo { display: block; }
.ac-campo > span { display: block; font-size: 13px; font-weight: 700; color: rgba(255, 255, 255, .85); margin-bottom: 8px; }
.ac-campo input { width: 100%; box-sizing: border-box; font: 500 16px/1.2 Manrope, sans-serif; color: #fff;
  background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .22); border-radius: 14px; padding: 15px 16px;
  transition: border-color .2s, box-shadow .2s, background .2s; }
.ac-campo input::placeholder { color: rgba(255, 255, 255, .42); }
.ac-campo input:focus { outline: none; border-color: var(--menta); background: rgba(255, 255, 255, .1); box-shadow: 0 0 0 4px rgba(168, 254, 175, .18); }
.ac-campo input:-webkit-autofill { -webkit-text-fill-color: #fff; -webkit-box-shadow: 0 0 0 40px #1f3a26 inset; caret-color: #fff; }

.ac-btn { margin-top: 16px; width: 100%; border: 0; border-radius: 999px; padding: 16px 20px; cursor: pointer;
  background: var(--menta); color: var(--noche); font: 800 16px/1 Manrope, sans-serif; letter-spacing: -.01em;
  box-shadow: 0 10px 30px -10px rgba(168, 254, 175, .6); transition: transform .15s, box-shadow .2s, filter .2s; }
.ac-btn:hover { filter: brightness(1.04); box-shadow: 0 14px 36px -10px rgba(168, 254, 175, .75); transform: translateY(-1px); }
.ac-btn:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

.ac-nota { display: flex; align-items: center; gap: 8px; margin: 18px 0 0; font-size: 13px; color: rgba(255, 255, 255, .62); }
.ac-nota svg { color: var(--menta); flex: none; }
.ac-card > p.ac-nota { margin: 18px 0 0; font-size: 13px; color: rgba(255, 255, 255, .62); }
.ac-err { background: rgba(255, 120, 110, .14); border: 1px solid rgba(255, 140, 130, .45); color: #ffd9d5; border-radius: 12px; padding: 10px 14px; font-size: 14px; font-weight: 600; }
.ac-link { position: relative; display: inline-block; margin-top: 18px; color: var(--menta); font-weight: 700; font-size: 14px; line-height: 20px; text-decoration: none; border-bottom: 1px solid rgba(168, 254, 175, .4); }
.ac-link:hover { border-color: var(--menta); }
/* Área tocable de 44 px sin mover el texto: 12 + 21 + 12. */
.ac-link::after { content: ""; position: absolute; left: -8px; right: -8px; top: -12px; bottom: -12px; }
/* Debajo del botón, siempre 24 px (entrar y recuperar contraseña). */
.ac-card > form + .ac-link { margin-top: 24px; }
.ac-card > form + .ac-links { margin-top: 20px; }
/* 18 px arriba de cada etiqueta que sigue a otro campo (no en la grilla de alta). */
.ac-card:not(.ac-ancha) form > .ac-campo + .ac-campo { margin-top: 18px; }

.ac-pie { text-align: center; padding: 18px 20px 26px; font-size: 12px; color: rgba(255, 255, 255, .55); letter-spacing: .02em; }
.ac-pie p { margin: 0; }
.ac-pie-1 { color: rgba(255, 255, 255, .72); font-size: 13px; margin-bottom: 4px !important; }
.ac-pie a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, .25); }
.ac-pie a:hover { color: #fff; }

/* Acento menta también dentro del panel */
.nav a.on { background: var(--acento); color: var(--sobre-acento); }
.btn:focus-visible, .formu input:focus, .formu select:focus, .formu textarea:focus, .buscar input:focus { outline: none; border-color: #224425; box-shadow: 0 0 0 3px rgba(168, 254, 175, .55); }

/* ==========================================================
   Uso diario (024): barra inferior en el celular, filtros de la
   agenda, próximas, clientes, bienvenida y "Más".
   ========================================================== */

/* ---------- barra inferior (como una app) ---------- */
.barra { display: none; }
@media (max-width: 899px) {
  .con-barra .top .nav, .con-barra .top .salir { display: none; }
  .con-barra main { padding-bottom: calc(86px + env(safe-area-inset-bottom)); }
  .con-barra .pie { display: none; }
  .top { padding-top: calc(10px + env(safe-area-inset-top)); }
  .barra { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: flex; justify-content: space-around;
    padding: 6px 6px calc(6px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.94);
    -webkit-backdrop-filter: saturate(1.6) blur(14px); backdrop-filter: saturate(1.6) blur(14px);
    border-top: 1px solid var(--linea); box-shadow: 0 -6px 20px rgba(22,36,26,.06); }
  .barra a { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 6px 2px; border-radius: 12px;
    text-decoration: none; color: var(--gris); font-size: 11px; font-weight: 700; }
  .barra svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .barra a.on { color: var(--verde); }
  .barra a.on svg { stroke-width: 2.2; }
  .barra a.on::after { content: ""; width: 18px; height: 3px; border-radius: 3px; background: var(--acento); box-shadow: 0 0 8px var(--acento); margin-top: -1px; }
}

/* ---------- filtros de la agenda ---------- */
.filtros { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: -2px 0 14px; }
.chips { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; flex: 1 1 auto; min-width: 0; padding: 2px 0; }
.chips::-webkit-scrollbar { display: none; }
.chip { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; text-decoration: none; font-weight: 700; font-size: 13px;
  padding: 7px 12px; border-radius: 999px; border: 1px solid var(--linea); background: #fff; color: var(--tinta); }
.chip i { width: 9px; height: 9px; border-radius: 50%; }
.chip.on { background: var(--verde); border-color: var(--verde); color: #fff; }
.seg { display: inline-flex; background: var(--suave); border-radius: 999px; padding: 3px; flex: none; }
.seg a { text-decoration: none; font-weight: 700; font-size: 13px; padding: 6px 14px; border-radius: 999px; color: var(--gris); }
.seg a.on { background: #fff; color: var(--verde); box-shadow: 0 1px 3px rgba(0,0,0,.08); }
/* Pestañas Día / Semana / Mes sin JavaScript (tours.vistasTours) */
.v-radio { position: absolute; opacity: 0; pointer-events: none; }
.vistas .seg label { cursor: pointer; font-weight: 700; font-size: 13px; padding: 6px 14px; border-radius: 999px; color: var(--gris); user-select: none; }
.v-panel { display: none; }
#v-dia:checked ~ .v-dia, #v-semana:checked ~ .v-semana, #v-mes:checked ~ .v-mes { display: block; }
#v-dia:checked ~ .filtros .v-tab-dia, #v-semana:checked ~ .filtros .v-tab-semana, #v-mes:checked ~ .filtros .v-tab-mes {
  background: #fff; color: var(--verde); box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.v-radio:focus-visible ~ .filtros .seg { outline: 2px solid var(--verde); outline-offset: 2px; }
.ag-nom a { color: var(--tinta); text-decoration: none; text-transform: capitalize; }
.ag-nom a.hoy { color: var(--verde); box-shadow: inset 0 -3px 0 #a8feaf; padding-bottom: 2px; }
.kpis-2 { margin-top: -4px; }

/* ---------- listas por día (próximas, historial) ---------- */
.dia-lista { margin-bottom: 18px; }
.dia-lista h2 { display: flex; align-items: baseline; gap: 10px; text-transform: capitalize; }
.dia-lista h2 small { display: inline; text-transform: none; }
.citas-lista { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; }
.citas-lista a { display: flex; align-items: center; gap: 12px; padding: 11px 14px; background: var(--caja); border: 1px solid var(--linea);
  border-left: 4px solid var(--c, var(--salvia)); border-radius: 12px; text-decoration: none; color: var(--tinta); }
.citas-lista a:hover { border-color: var(--salvia); }
.citas-lista time { flex: none; min-width: 74px; font-weight: 800; font-size: 13px; color: var(--verde); font-variant-numeric: tabular-nums; }
.citas-lista time small { display: block; font-weight: 600; color: var(--gris); font-size: 12px; }
.caja .citas-lista a { background: var(--fondo); }
.quien { flex: 1; min-width: 0; }
.quien b { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.quien small { display: block; color: var(--gris); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.feed { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.feed li { padding: 8px 0; border-bottom: 1px solid var(--suave); display: flex; align-items: center; gap: 8px; justify-content: space-between; }
.feed li:last-child { border-bottom: 0; }
.feed a { text-decoration: none; color: var(--tinta); }
.feed small { display: block; color: var(--gris); font-size: 12px; }
.feed li.esta a { font-weight: 800; color: var(--verde); }
.recien { border-color: #cfe7d1; background: linear-gradient(180deg, #f3fbf3, #fff); }

/* ---------- clientes ---------- */
.avatar { --h: 130; flex: none; width: 40px; height: 40px; border-radius: 50%; display: inline-grid; place-items: center; font-weight: 800; font-size: 14px;
  background: hsl(var(--h) 32% 88%); color: hsl(var(--h) 38% 28%); letter-spacing: .02em; }
.avatar.grande { width: 64px; height: 64px; font-size: 22px; }
.clientes { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.clientes a { display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: var(--caja); border: 1px solid var(--linea); border-radius: 12px; text-decoration: none; color: var(--tinta); }
.clientes a:hover { border-color: var(--salvia); }
.dato { flex: none; text-align: right; min-width: 54px; }
.dato b { display: block; font-size: 14px; }
.dato small { display: block; color: var(--gris); font-size: 11px; }
.dato.ancho { min-width: 110px; }
@media (max-width: 560px) { .dato.ancho { display: none; } }
.ficha { display: flex; align-items: center; gap: 14px; margin: 6px 0 14px; }
.ficha h1 { margin: 0 0 2px; }
.contacto { margin: 0; font-size: 14px; color: var(--gris); }
.contacto a { color: var(--gris); }
.btn.wa { font-size: 14px; padding: 12px 16px; border-radius: 12px; color: #1f8f4e; }

/* ---------- bienvenida ---------- */
.bienvenida { position: relative; overflow: hidden; margin: 0 0 16px; padding: 20px 20px 18px; border-radius: 18px; color: #fff;
  background: radial-gradient(120% 140% at 100% 0%, rgba(168,254,175,.22), transparent 55%), linear-gradient(135deg, #1c2d1e, #224425 60%, #2f5a33);
  border: 1px solid rgba(168,254,175,.45); box-shadow: 0 0 0 4px rgba(168,254,175,.08), 0 10px 30px rgba(22,36,26,.18); }
.bienvenida h2 { font-size: 18px; margin-bottom: 10px; }
.bienvenida ol { margin: 0 0 8px; padding-left: 20px; font-size: 14px; line-height: 1.55; }
.bienvenida li { margin-bottom: 4px; }
.bienvenida .pasos { color: #dfe9df; }
.bienvenida .btn { background: #a8feaf; color: #16241a; margin-top: 6px; }
.pasos { margin: 0; padding-left: 18px; font-size: 14px; line-height: 1.6; }

/* ---------- más ---------- */
.menu-mas { list-style: none; margin: 0 0 14px; padding: 0; background: var(--caja); border: 1px solid var(--linea); border-radius: var(--radio); overflow: hidden; }
.menu-mas a { display: block; padding: 14px 16px; text-decoration: none; color: var(--tinta); border-bottom: 1px solid var(--suave); }
.menu-mas li:last-child a { border-bottom: 0; }
.menu-mas a::after { content: "›"; float: right; color: var(--gris); font-size: 20px; line-height: 1; margin-top: -18px; }
.menu-mas b { display: block; }
.menu-mas small { color: var(--gris); font-size: 12px; }
.salir-mas { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: 13px; color: var(--gris); }

/* ---------- ajustes: equipo ---------- */
.equipo { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.equipo label { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--linea); border-radius: 12px; }
.formu .equipo input[type=color] { width: 36px; height: 30px; padding: 0; border: 0; border-radius: 8px; background: none; cursor: pointer; }
.campo.corto { max-width: 280px; }

@media print { .barra, .bienvenida, .filtros { display: none !important; } }
.citas-lista, .clientes { grid-template-columns: minmax(0, 1fr); }
.citas-lista .badge { flex: none; }
.dia h1.sem { text-transform: none; }
@media (max-width: 480px) { .citas-lista time { min-width: 62px; } .citas-lista a { gap: 10px; padding: 10px 12px; } }

/* ---------- tours: semana y mes ---------- */
.semana-tours { display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr); margin-bottom: 10px; }
@media (min-width: 1000px) { .semana-tours { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; } }
.dia-tours { background: var(--caja); border: 1px solid var(--linea); border-radius: var(--radio); padding: 10px; min-height: 90px; }
.dia-tours.hoy { border-color: var(--verde); box-shadow: inset 0 3px 0 #a8feaf; }
.dia-tours.pasado { opacity: .7; }
.dia-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 6px; text-decoration: none; color: var(--tinta); margin-bottom: 6px; }
.dia-cab b { text-transform: capitalize; font-size: 14px; }
.dia-cab span { font-size: 12px; color: var(--gris); font-weight: 700; white-space: nowrap; }
.salidas-mini { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.salidas-mini a { display: flex; align-items: center; gap: 8px; padding: 7px 8px; border-radius: 10px; background: var(--fondo); text-decoration: none; color: var(--tinta); border-left: 3px solid var(--salvia); }
.salidas-mini li.sobre a { border-left-color: #d1a054; background: #fff8e6; }
.salidas-mini time { font-size: 12px; font-weight: 800; color: var(--verde); min-width: 58px; }
.salidas-mini .quien b { font-size: 13px; }
.cupo-mini { flex: none; text-align: right; font-size: 12px; color: var(--gris); }
.cupo-mini b { font-size: 15px; color: var(--tinta); }
.cupo-mini small { display: block; font-size: 11px; }
@media (min-width: 1000px) {
  .salidas-mini a { flex-wrap: wrap; gap: 2px 6px; }
  .salidas-mini time { min-width: 0; }
  .salidas-mini .quien { flex-basis: 100%; order: 3; }
  .cupo-mini { margin-left: auto; }
  .cupo-mini small { display: inline; margin-left: 4px; }
}
.mes { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; margin-bottom: 10px; }
.mes-cab { text-align: center; font-size: 12px; font-weight: 800; color: var(--gris); text-transform: uppercase; letter-spacing: .05em; padding: 4px 0; }
.mes-dia { --n: 0; position: relative; display: flex; flex-direction: column; gap: 2px; min-height: 86px; padding: 8px; border-radius: 12px; text-decoration: none; color: var(--tinta);
  background: var(--caja); border: 1px solid var(--linea); }
.mes-dia.con { background: color-mix(in srgb, #8caf8f calc(var(--n) * 55%), #fff); }
.mes-dia.fuera { opacity: .35; }
.mes-dia.pasado { filter: grayscale(.4); }
.mes-dia.hoy { border-color: var(--verde); box-shadow: 0 0 0 2px #a8feaf; }
.mes-dia.sobre { box-shadow: inset 0 -3px 0 #d1a054; }
.mes-dia:hover { border-color: var(--verde); }
.mes-dia .num { font-size: 13px; font-weight: 800; color: var(--gris); }
.mes-dia b { font-size: 20px; font-weight: 800; line-height: 1.1; }
.mes-dia b small { font-size: 11px; font-weight: 700; color: var(--gris); }
.puntos { display: flex; gap: 3px; flex-wrap: wrap; margin-top: auto; }
.puntos i { width: 6px; height: 6px; border-radius: 50%; background: var(--verde); }
@media (max-width: 600px) {
  .mes { gap: 3px; }
  .mes-dia { min-height: 58px; padding: 5px; border-radius: 8px; }
  .mes-dia b { font-size: 15px; }
  .mes-dia b small, .puntos { display: none; }
}
.salidas-mini li, .salidas-mini a, .salidas-mini .quien { min-width: 0; }
.salidas-mini a { overflow: hidden; }
@media (min-width: 1000px) { .salidas-mini .quien b { white-space: normal; line-height: 1.25; } }
.mes-dia.fuera.con { opacity: .55; }
/* Mes: el total de personas manda; la fecha va chica y en gris. */
.mes-dia .num { font-size: 11px; font-weight: 700; color: #8a968c; }
.mes-dia b { font-size: 24px; letter-spacing: -.02em; margin-top: 2px; }
@media (max-width: 600px) {
  .mes-dia .num { font-size: 10px; }
  .mes-dia b { font-size: 21px; line-height: 1; margin-top: 4px; }
}

/* ---------- recién pagadas / agendadas: franja aparte, no parte de la lista ---------- */
.nuevas { margin: 0 0 20px; padding: 14px 0 14px 14px; border-radius: 16px; color: #fff;
  background: linear-gradient(135deg, #1c2d1e, #224425); box-shadow: 0 8px 24px rgba(22,36,26,.14); }
.nuevas h2 { display: flex; align-items: center; gap: 8px; margin: 0 14px 10px 0; font-size: 15px; color: #fff; }
.nuevas h2 small { display: inline; margin-left: auto; color: #a8feaf; font-size: 12px; font-weight: 700; }
.nuevas h2 i { width: 8px; height: 8px; border-radius: 50%; background: #a8feaf; box-shadow: 0 0 0 4px rgba(168,254,175,.2); }
.nuevas-fila { display: flex; gap: 10px; overflow-x: auto; padding: 2px 14px 4px 0; scroll-snap-type: x proximity; scrollbar-width: none; }
.nuevas-fila::-webkit-scrollbar { display: none; }
.nueva { flex: 0 0 210px; scroll-snap-align: start; display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 12px;
  text-decoration: none; color: #fff; background: rgba(255,255,255,.08); border: 1px solid rgba(168,254,175,.28); }
.nueva:hover { background: rgba(255,255,255,.14); }
.nueva b { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nueva span { font-size: 12px; color: rgba(255,255,255,.75); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nueva small { margin-top: 4px; font-size: 12px; font-weight: 700; color: #a8feaf; }
.dia-lista h2 a { color: inherit; text-decoration: none; }
.dia-lista h2 a:hover { text-decoration: underline; }

/* ---------- 029: varios negocios, roles, reserva manual, cancelar salida ---------- */
.empresas { position: relative; margin-right: auto; }
.empresas summary { list-style: none; cursor: pointer; }
.empresas summary::-webkit-details-marker { display: none; }
.empresas summary i { font-style: normal; font-size: 12px; opacity: .8; }
.empresas form { position: absolute; top: calc(100% + 8px); left: 0; z-index: 30; min-width: 240px; background: var(--caja, #fff); border: 1px solid var(--linea, transparent); color: var(--tinta); border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,.18); padding: 8px; }
.empresas form p { margin: 4px 8px 6px; font-size: 12px; font-weight: 700; color: var(--gris); text-transform: uppercase; letter-spacing: .04em; }
.empresas button, .empresas .actual { display: block; width: 100%; text-align: left; background: none; border: 0; font: inherit; font-weight: 700; padding: 9px 10px; border-radius: 8px; color: var(--tinta); cursor: pointer; }
.empresas button:hover { background: var(--suave); }
.empresas .actual { background: var(--suave); cursor: default; }
.empresas small { display: block; font-weight: 500; font-size: 12px; color: var(--gris); }
@media (min-width: 900px) { .empresas { margin-right: 10px; } }
.negocios { display: flex; flex-wrap: wrap; gap: 8px; }
.salida-acc { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: -4px 0 10px; font-size: 13px; font-weight: 700; }
.salida-acc a { color: var(--verde); text-decoration: none; }
.salida-acc a.peligro { color: var(--rojo); margin-left: auto; }
.cerradas { background: #fff4f2; border: 1px solid #f3cfc9; border-radius: var(--radio); padding: 10px 14px; margin-bottom: 14px; }
.cerradas h2 { font-size: 13px; margin: 0 0 6px; color: var(--rojo); text-transform: uppercase; letter-spacing: .04em; }
.cerradas ul { list-style: none; margin: 0; padding: 0; }
.cerradas li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 0; }
.cerradas li small { display: block; color: var(--gris); }
small.por-cobrar { color: var(--ambar); font-weight: 700; }
.horas-radio { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.fila-pax { display: flex; flex-wrap: wrap; gap: 10px; }
.fila-pax .campo { flex: 1 1 120px; }
.roles { margin: 10px 0 0; padding-left: 18px; font-size: 13px; color: var(--gris); }
.rol-form { display: flex; gap: 6px; align-items: center; }
.rol-form select { font: inherit; font-size: 13px; padding: 4px 6px; }
@media print { .salida-acc, .cerradas { display: none !important; } }
/* Vista previa del correo en Ajustes (028) */
.vista-correo { display: block; width: 100%; height: 760px; border: 1px solid #dce3da; border-radius: 12px; background: #eef1ec; margin-top: 8px; }
@media (max-width: 640px) { .vista-correo { height: 640px; } }

/* ---------- 030: check-in, WhatsApp, catálogo, créditos ---------- */
.asistencia { display: inline-flex; gap: 4px; }
.asis { font: inherit; font-size: 12px; font-weight: 700; padding: 6px 10px; border-radius: 999px; border: 1px solid var(--linea); background: #fff; color: var(--gris); cursor: pointer; }
.asis.arrived.on { background: #1f7a3a; border-color: #1f7a3a; color: #fff; }
.asis.no_show.on { background: var(--rojo); border-color: var(--rojo); color: #fff; }
tr.a-arrived td:first-child { box-shadow: inset 3px 0 0 #1f7a3a; }
tr.a-no_show { opacity: .6; }
.cupo small { display: block; font-size: 12px; color: var(--gris); font-weight: 700; }
.wa-menu { display: inline-block; position: relative; }
.wa-menu summary { list-style: none; cursor: pointer; display: inline-block; }
.wa-menu summary::-webkit-details-marker { display: none; }
.wa-menu > div { position: absolute; z-index: 15; top: calc(100% + 4px); left: 0; min-width: 190px; background: #fff; border: 1px solid var(--linea); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.12); padding: 6px; }
.wa-menu > div a { display: block; padding: 8px 10px; border-radius: 8px; text-decoration: none; color: var(--tinta); font-size: 14px; font-weight: 600; }
.wa-menu > div a:hover { background: var(--suave); }
.wa-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.wa-lista li { display: flex; gap: 12px; align-items: center; justify-content: space-between; background: var(--caja); border: 1px solid var(--linea); border-radius: var(--radio); padding: 12px 14px; }
.wa-lista q { display: block; margin-top: 6px; font-size: 13px; color: var(--gris); quotes: none; }
.wa-lista small { display: block; color: var(--gris); }
.wa-btn { flex: none; background: #1f7a3a; }
.horarios { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; }
.horarios li { border-bottom: 1px solid var(--linea); padding-bottom: 8px; }
.hora-h { min-width: 84px; font-size: 16px; }
.dias-sem { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.dias-sem label { display: inline-flex; align-items: center; gap: 3px; font-size: 13px; font-weight: 700; background: var(--suave); border-radius: 8px; padding: 5px 8px; }
.campo.corto { max-width: 150px; }
.peligro-txt { color: var(--rojo) !important; }
/* 144: Qué incluye, en la ficha del tour y en su catálogo. */
.incl-lista, .incl-cat { list-style: none; margin: 0 0 12px; padding: 0; }
.incl-fila form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 8px 0; border-bottom: 1px solid var(--linea); margin: 0; }
.incl-txt { flex: 1 1 220px; }
.incl-txt small { display: block; color: var(--gris); }
.incl-acc { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.incl-acc .btn { padding: 6px 10px; }
.incl-signo { display: inline-flex; gap: 12px; align-self: center; }
.bloqueos-lista { list-style: none; margin: 0 0 12px; padding: 0; }
.bloqueos-lista li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--linea); }
.bloqueos-lista small { display: block; color: var(--gris); }
.plantilla-wa { border: 1px solid var(--linea); border-radius: 12px; padding: 10px 12px; margin: 0 0 10px; }
h2.sub { font-size: 15px; margin: 18px 0 8px; color: var(--gris); text-transform: uppercase; letter-spacing: .04em; }
@media print { .asistencia, .wa-menu { display: none !important; } }
.fila-hora { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 12px; max-width: none; margin: 0; }
.fila-hora .campo { margin: 0; flex: 0 1 150px; }
.fila-hora .hora-h { align-self: center; }
.fila-hora input[name=monto], .fila-hora input[name=extra] { width: 100px; }
.fila-hora input[type=date] { width: 160px; }
/* "Olvidé mi contraseña" en bloque, 20 px bajo el botón y 24 px hasta la línea
   de la nota; el área tocable (12 + 21 + 12) cabe en los dos espacios. */
.ac-links { display: block; margin: 20px 0 0; }
.ac-links .ac-link { display: block; width: fit-content; margin-top: 0; }
.ac-card > .ac-links + p.ac-nota { margin-top: 24px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .12); }

/* ==========================================================
   Alta sin intervención (032)
   ========================================================== */
.ac-ancha form { display: grid; gap: 14px; }
@media (min-width: 560px) { .ac-ancha form { grid-template-columns: 1fr 1fr; } .ac-ancha form > .ac-check, .ac-ancha form > .ac-btn { grid-column: 1 / -1; } }
.ac-campo span i { font-style: normal; font-weight: 500; color: rgba(255, 255, 255, .55); }
.ac-campo select { width: 100%; font: 500 16px/1.2 Manrope, sans-serif; color: #fff; background: rgba(255, 255, 255, .07);
  border: 1px solid rgba(255, 255, 255, .22); border-radius: 14px; padding: 14px 16px; }
.ac-campo select option { color: #16241a; }
.ac-check { display: flex; align-items: center; gap: 10px; font-size: 14px; color: rgba(255, 255, 255, .85); }
.ac-check input { width: 18px; height: 18px; accent-color: var(--menta); flex: none; }
.ac-check a { color: var(--menta); }
.ac-oculto { position: absolute !important; left: -10000px; width: 1px; height: 1px; opacity: 0; }
.ac-ancha .ac-btn { margin-top: 4px; }

/* Crear tour: sin JavaScript, cada bloque aparece según la opción marcada. */
.opciones { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 10px 0 4px; }
.nuevo-tour fieldset { border: 1px solid var(--linea); border-radius: 12px; padding: 4px 14px 14px; margin: 12px 0 0; }
.nuevo-tour legend { font-size: 13px; font-weight: 800; padding: 0 6px; }
.nuevo-tour .tramo .campo { flex: 0 1 200px; }
.nuevo-tour > .btn { width: 100%; max-width: 360px; padding: 16px; }
.nuevo-tour section:has(input[name=modelo][value=persona]:checked) .si-grupo,
.nuevo-tour section:has(input[name=modelo][value=grupo]:checked) .si-persona,
.nuevo-tour section:has(input[name=modo][value=fijo]:checked) .si-demanda,
.nuevo-tour section:has(input[name=modo][value=demanda]:checked) .si-fijo { display: none; }
.caja h2 small { font-weight: 600; font-size: 13px; color: var(--gris); }

/* Cobros, instalar, puesta en marcha */
.ok-caja { background: #e6f2e7; border: 1px solid #b8d6bb; color: var(--verde); border-radius: 12px; padding: 10px 14px; }
.acciones { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 12px 0 8px; }
.acciones form { margin: 0; }
ul.pasos { margin: 8px 0 0; padding-left: 20px; }
ul.pasos li { margin: 6px 0; }
.enlace-copiar { font-weight: 800; font-size: 16px; word-break: break-all; background: var(--suave); border-radius: 10px; padding: 12px 14px; }
/* Instalar: enlace con su código QR para imprimir. */
.qr-enlace { display: flex; gap: 14px; align-items: flex-start; margin: 12px 0 0; }
.qr-mini { flex: none; width: 112px; height: 112px; border: 1px solid var(--linea); border-radius: 10px; background: #fff; }
.qr-datos { flex: 1; min-width: 0; }
.qr-datos .enlace-copiar { margin: 0; }
.qr-acciones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.qr-acciones .btn { padding: 10px 12px; font-size: 13px; }
.qr-acciones [data-copiar] { display: none; }
.js .qr-acciones [data-copiar] { display: inline-block; }
.qr-tours { margin: 20px 0 0; }
.qr-tours > summary { cursor: pointer; font-weight: 800; font-size: 15px; }
.qr-tour { margin: 14px 0 0; padding-top: 14px; border-top: 1px solid var(--linea); }
.qr-tour > b { display: block; font-size: 14px; }
.qr-tour .enlace-copiar { font-size: 14px; }
@media (max-width: 560px) { .qr-enlace { flex-direction: column; } }
.codigo { margin: 14px 0 0; }
.codigo b { display: block; font-size: 14px; margin-bottom: 6px; }
.codigo textarea { width: 100%; font: 500 12px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--tinta);
  background: var(--fondo); border: 1px solid var(--linea); border-radius: 10px; padding: 10px 12px; resize: vertical; }
.caja.puesta { border-color: #b8d6bb; background: linear-gradient(180deg, #f4fbf4, #fff); }
.caja.puesta .cab { justify-content: space-between; margin: 0; }
.caja.puesta h2 { margin: 0; }
.caja.puesta .cab form { margin: 0; }
.pasos-puesta { list-style: none; counter-reset: paso; margin: 12px 0 8px; padding: 0; }
.pasos-puesta li { counter-increment: paso; display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 10px 0; border-top: 1px solid var(--linea); }
.pasos-puesta li span::before { content: counter(paso); display: inline-grid; place-items: center; width: 24px; height: 24px; margin-right: 10px;
  border-radius: 50%; background: var(--suave); color: var(--verde); font-weight: 800; font-size: 12px; }
.pasos-puesta li.hecho span { color: var(--gris); text-decoration: line-through; }
.pasos-puesta li.hecho span::before { content: "✓"; background: var(--verde); color: #fff; }
.pasos-puesta li b { font-size: 13px; color: var(--verde); }
.pasos-puesta .btn { padding: 9px 12px; font-size: 13px; }

/* Página de reservas alojada /b/{tenant} */
body.reservas { --acento: #224425; background: #f6f8f6; min-height: 100vh; display: flex; flex-direction: column; }
.rv-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px clamp(16px, 4vw, 40px); background: #fff; border-bottom: 1px solid var(--linea); }
.rv-top > a:first-child { display: flex; align-items: center; gap: 10px; color: var(--tinta); text-decoration: none; font-size: 18px; font-weight: 800; letter-spacing: -.01em; }
.rv-top img { border-radius: 8px; max-width: 140px; object-fit: contain; }
.rv-wa { color: #fff; background: #1f8f4e; border-radius: 999px; padding: 8px 14px; font-size: 13px; font-weight: 700; text-decoration: none; }
.rv-main { flex: 1; width: 100%; max-width: 960px; margin: 0 auto; padding: 28px clamp(16px, 4vw, 40px) 40px; }
.rv-main h1 { margin: 0 0 18px; font-size: clamp(24px, 4vw, 34px); font-weight: 800; letter-spacing: -.02em; }
.rv-tours { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.rv-tours a { display: flex; flex-direction: column; gap: 6px; height: 100%; background: #fff; border: 1px solid var(--linea); border-radius: 16px; padding: 18px;
  color: var(--tinta); text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s; }
.rv-tours a:hover { border-color: var(--acento); box-shadow: 0 10px 28px -16px rgba(0, 0, 0, .35); transform: translateY(-1px); }
.rv-tours b { font-size: 17px; letter-spacing: -.01em; }
.rv-tours span { color: var(--gris); font-size: 14px; }
.rv-tours strong { color: var(--tinta); }
.rv-tours em { margin-top: auto; padding-top: 8px; font-style: normal; font-weight: 800; font-size: 14px; color: var(--acento); }
.rv-aviso { background: #fff4d6; color: var(--ambar); border-radius: 12px; padding: 10px 14px; font-weight: 600; font-size: 14px; margin: 0 0 16px; }
.rv-migas { margin: 0 0 8px; font-size: 13px; }
.rv-migas a { color: var(--gris); }
.rv-widget { background: #fff; border: 1px solid var(--linea); border-radius: 16px; overflow: hidden; }
.rv-vacio { background: #fff; border: 1px dashed var(--linea); border-radius: 16px; padding: 28px; text-align: center; color: var(--gris); }
.rv-pie { text-align: center; padding: 18px 16px 24px; font-size: 12px; }
.rv-pie a { color: var(--gris); text-decoration: none; }
.rv-pie a:hover { color: var(--tinta); }
@media (min-width: 800px) { .en-linea.dos { grid-template-columns: minmax(0, 420px) auto; justify-content: start; } }
.rv-widget { background: none; border: 0; border-radius: 0; }

/* ==========================================================
   Vista de Rezzerva (033)
   ========================================================== */
.modo-soporte { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 16px;
  background: #a8feaf; color: #0f2414; font-size: 14px; }
.modo-soporte form { margin: 0; }
.modo-soporte button { border: 0; border-radius: 999px; background: #0f2414; color: #fff; font: 700 13px/1 Manrope, sans-serif; padding: 8px 14px; cursor: pointer; }
.periodo { margin: 0 0 14px; }
.admin-kpis { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 900px) { .admin-kpis { grid-template-columns: repeat(5, 1fr); } }
.admin-kpis .kpi b { font-size: 20px; }
.admin-kpis .kpi small { display: block; margin-top: 4px; font-size: 12px; color: var(--gris); }
.kpi.destacado { background: #0f2414; border-color: #0f2414; }
.kpi.destacado b { color: #a8feaf; }
.kpi.destacado span, .kpi.destacado small { color: rgba(255, 255, 255, .75); }
.alertas-admin { border-color: #f0d58a; background: #fffaf0; }
.embudo { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }
.embudo li { display: grid; grid-template-columns: minmax(150px, 220px) 1fr 40px; align-items: center; gap: 10px; font-size: 14px; }
.embudo i { display: block; height: 12px; border-radius: 999px; background: var(--suave); position: relative; overflow: hidden; }
.embudo i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--w); background: var(--verde); border-radius: 999px; }
.embudo b { text-align: right; }
.tabla-scroll { overflow-x: auto; }
.negocios-admin td small, .lista td small { display: block; color: var(--gris); font-size: 12px; font-weight: 500; }
.negocios-admin form { margin: 0; }
.negocios-admin .btn { padding: 8px 12px; font-size: 13px; white-space: nowrap; }
.chips-puesta { display: flex; flex-wrap: wrap; gap: 4px; }
.chips-puesta i { font-style: normal; font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 999px; background: #fdecea; color: var(--rojo); }
.chips-puesta i.si { background: #e0efe1; color: var(--verde); }

/* Con JavaScript, la fecha carga sola al elegirla (panel.js) y "Ir" sobra. */
.js .ir .btn { display: none; }

/* ---------- menú lateral en computadora ---------- */
.lateral { display: none; }
@media (min-width: 1000px) {
  .con-lateral { padding-left: 252px; }
  .con-lateral .top { display: none; }
  .con-lateral .barra { display: none; }
  .con-lateral main { padding: 24px 32px; }
  .con-lateral .modo-soporte { margin-left: 0; }
  .lateral { display: flex; flex-direction: column; position: fixed; inset: 0 auto 0 0; width: 252px; z-index: 25;
    background: var(--oscuro); color: #fff; padding: 16px 12px; overflow-y: auto; }
  .lat-marca { padding: 4px 6px 14px; border-bottom: 1px solid rgba(255,255,255,.12); margin-bottom: 8px; }
  .lat-marca .marca { margin: 0; align-items: center; }
  .lat-marca .marca span { display: flex; flex-direction: column; line-height: 1.15; }
  .lat-marca .marca small { font-weight: 700; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--acento); }
  .lat-marca .empresas form { left: 0; }
  .lateral nav { display: flex; flex-direction: column; gap: 2px; flex: 1; }
  .lateral nav p { margin: 14px 10px 4px; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.62); }
  .lateral nav a { display: flex; align-items: center; gap: 11px; padding: 9px 10px; border-radius: 10px; color: #e3ece3;
    text-decoration: none; font-weight: 700; font-size: 14px; }
  .lateral nav a:hover { background: rgba(255,255,255,.08); color: #fff; }
  .lateral nav a.on { background: var(--acento); color: var(--sobre-acento); }
  .lateral svg { width: 19px; height: 19px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
  .lat-yo { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 12px; padding: 12px 8px 4px; border-top: 1px solid rgba(255,255,255,.12); }
  .lat-yo span { flex: 1; min-width: 0; font-size: 13px; }
  .lat-yo b, .lat-yo small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .lat-yo small { color: rgba(255,255,255,.7); font-weight: 500; font-size: 12px; }
  .lat-yo > span { flex: 1 1 100%; }
  .lat-yo button { flex: 1 1 100%; border: 1px solid rgba(255,255,255,.3); background: none; color: #fff; border-radius: 10px; padding: 8px 10px; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; font: 600 13px Manrope, sans-serif; }
  .lat-yo button span { flex: none; font-size: 13px; }
  .lat-yo button:hover { background: rgba(255,255,255,.1); }
  .con-lateral .pie { text-align: left; padding-left: 32px; }
}

/* ---------- logo del negocio y menú colapsado ---------- */
.lat-colapsar { display: none; }
@media (min-width: 1000px) {
  .js .lat-colapsar { display: flex; align-items: center; gap: 11px; margin-top: 6px; padding: 8px 10px; border: 0; border-radius: 10px;
    background: none; color: rgba(255,255,255,.75); font: 700 13px Manrope, sans-serif; cursor: pointer; }
  .lat-colapsar:hover { background: rgba(255,255,255,.08); color: #fff; }
  .lateral, .con-lateral { transition: width .18s ease, padding-left .18s ease; }
  .lat-mini.con-lateral { padding-left: 76px; }
  .lat-mini .lateral { width: 76px; padding: 16px 10px; }
  .lat-mini .lateral nav a span, .lat-mini .lateral nav p, .lat-mini .lat-marca .lat-nombre, .lat-mini .lat-marca .marca i,
  .lat-mini .lat-yo span, .lat-mini .lat-colapsar span { display: none; }
  .lat-mini .lateral nav a, .lat-mini .lat-colapsar { justify-content: center; padding: 10px 0; }
  .lat-mini .lateral nav p { display: block; height: 1px; margin: 10px 8px; background: rgba(255,255,255,.12); font-size: 0; }
  .lat-mini .lat-marca { padding: 4px 0 12px; display: flex; justify-content: center; }
  .lat-mini .lat-yo { justify-content: center; padding: 12px 0 4px; }
  .lat-mini .lat-colapsar svg { transform: scaleX(-1); }
  .lat-mini .empresas form { left: 0; }
}

/* ---------- avatar del negocio ---------- */
.av-negocio { display: inline-flex; align-items: center; justify-content: center; flex: none; overflow: hidden; border-radius: 10px;
  background: rgba(255,255,255,.16); color: #fff; font-weight: 800; letter-spacing: .02em; }
.av-negocio img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (min-width: 1000px) {
  .lat-marca .marca { gap: 11px; }
  .lat-marca .lat-nombre { font-weight: 500; font-size: 15px; }
  .lat-marca .lat-nombre small { font-weight: 500; }
  .lat-marca .av-negocio { border-radius: 12px; }
}

/* ---------- volver y acciones del encabezado ---------- */
.migas { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 10px; }
.migas a:first-child { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; font-weight: 700; font-size: 13px;
  color: var(--verde); background: var(--caja); border: 1px solid var(--linea); border-radius: 999px; padding: 6px 12px 6px 10px; }
.migas a:first-child::before { content: "←"; font-size: 15px; line-height: 1; }
.migas a:first-child:hover { border-color: var(--verde); }
.cab-acciones { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.cab-acciones form { margin: 0; }
.cab-acciones .btn { padding: 9px 14px; font-size: 13px; }
.btn.peligro-sec { color: var(--rojo); border-color: #efc2c0; }
.zona-peligro { border-color: #efc2c0; }
#cancelar:target { scroll-margin-top: 90px; }
#cancelar:target > * { outline: 3px solid #efc2c0; outline-offset: 6px; border-radius: 12px; }

/* ---------- Alta: giro ("¿Qué vendés?") ----------
   El texto de la izquierda y de la tarjeta cambia con la opción marcada, sin
   JavaScript: :has() mira el radio. La clase giro-* del body cubre a los
   navegadores sin :has() cuando el giro ya viene marcado del servidor. */
.g-tours, .g-citas, .g-hotel, .g-traslados { display: none; }
.ac-nota-giro { display: block; }
.giro-tours .g-gen, .giro-citas .g-gen, .giro-hotel .g-gen, .giro-traslados .g-gen { display: none; }
.giro-tours .g-tours, .giro-citas .g-citas, .giro-hotel .g-hotel, .giro-traslados .g-traslados { display: inline; }
.acceso:has(.ac-giro input:checked) .g-gen,
.acceso:has(.ac-giro input:checked) .g-tours,
.acceso:has(.ac-giro input:checked) .g-citas,
.acceso:has(.ac-giro input:checked) .g-hotel,
.acceso:has(.ac-giro input:checked) .g-traslados { display: none; }
.acceso:has(.ac-giro input[value="tours"]:checked) .g-tours,
.acceso:has(.ac-giro input[value="spa"]:checked) .g-citas,
.acceso:has(.ac-giro input[value="hotel"]:checked) .g-hotel,
.acceso:has(.ac-giro input[value="traslados"]:checked) .g-traslados { display: inline; }
/* La oferta (precio y prueba) arriba de la tarjeta: bloque por giro. */
.o-tours, .o-hotel { display: none; }
.giro-tours .o-gen, .giro-citas .o-gen, .giro-hotel .o-gen { display: none; }
.giro-tours .o-tours, .giro-hotel .o-hotel { display: block; }
.acceso:has(.ac-giro input:checked) .o-gen,
.acceso:has(.ac-giro input:checked) .o-tours,
.acceso:has(.ac-giro input:checked) .o-hotel { display: none; }
.acceso:has(.ac-giro input[value="tours"]:checked) .o-tours,
.acceso:has(.ac-giro input[value="hotel"]:checked) .o-hotel { display: block; }
.ac-oferta { margin: -4px 0 22px; padding: 16px 18px; border-radius: 18px;
  background: linear-gradient(135deg, rgba(168, 254, 175, .2), rgba(168, 254, 175, .06));
  border: 1px solid rgba(168, 254, 175, .55); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); }
.of-cabeza { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.of-cabeza b { font-size: 24px; font-weight: 800; letter-spacing: -.02em; color: var(--menta); line-height: 1.1; }
.of-cabeza span { font-size: 13.5px; line-height: 1.4; color: rgba(255, 255, 255, .85); flex: 1 1 200px; }
.of-planes { list-style: none; margin: 14px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.of-planes li { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 12px;
  background: rgba(10, 30, 15, .35); border: 1px solid rgba(255, 255, 255, .14); }
.of-planes small { font-size: 11px; font-weight: 800; letter-spacing: .1em; color: rgba(255, 255, 255, .7); }
.of-planes b { font-size: 22px; font-weight: 800; color: #fff; letter-spacing: -.02em; line-height: 1.1; }
.of-planes span { font-size: 12px; color: rgba(255, 255, 255, .72); }
.ac-card .of-pie { margin: 10px 0 0; font-size: 12.5px; line-height: 1.45; color: rgba(255, 255, 255, .68); }
@media (max-width: 420px) { .of-planes b { font-size: 19px; } .of-planes li { padding: 9px 9px; } }
/* Hoteles (lista de espera): sin moneda ni términos, porque no se crea cuenta. */
.acceso:has(.ac-giro input[value="hotel"]:checked) .no-hotel { display: none; }
.ac-pronto { display: inline-block; margin-left: 4px; padding: 1px 8px; border-radius: 999px; font-style: normal; font-size: 11px; font-weight: 700;
  letter-spacing: .04em; color: #13261a; background: var(--menta); vertical-align: 2px; }

.ac-giro { grid-column: 1 / -1; border: 0; margin: 0 0 4px; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.ac-giro legend { font-size: 13px; font-weight: 700; color: rgba(255, 255, 255, .85); margin-bottom: 8px; padding: 0; }
.ac-giro-op { position: relative; display: flex; flex-direction: column; gap: 4px; cursor: pointer; padding: 14px 14px 13px;
  border-radius: 14px; border: 1px solid rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .07);
  transition: border-color .2s, background .2s, box-shadow .2s; }
.ac-giro-op:hover { border-color: rgba(255, 255, 255, .4); background: rgba(255, 255, 255, .1); }
.ac-giro-op input { position: absolute; opacity: 0; pointer-events: none; }
.ac-giro-op b { font-size: 15px; font-weight: 700; color: #fff; line-height: 1.2; }
.ac-giro-op small { font-size: 12.5px; line-height: 1.35; color: rgba(255, 255, 255, .62); }
.ac-giro-op:has(input:checked) { border-color: var(--menta); background: rgba(168, 254, 175, .12); box-shadow: 0 0 0 3px rgba(168, 254, 175, .18); }
.ac-giro-op:has(input:focus-visible) { box-shadow: 0 0 0 4px rgba(168, 254, 175, .35); }
@media (max-width: 559px) {
  .ac-giro { grid-template-columns: 1fr; gap: 8px; }
  .ac-giro-op { flex-direction: row; align-items: baseline; gap: 10px; padding: 12px 14px; }
}

/* ---------- Alta en escritorio: tarjeta más ancha y más baja ----------
   La de /empezar (ac-ancha) toma más ancho y pasa los campos a tres columnas,
   así el formulario no se estira hacia abajo junto a un texto corto. */
@media (min-width: 1100px) {
  .ac-main:has(.ac-ancha) { grid-template-columns: minmax(0, 1fr) minmax(600px, 680px); gap: 56px; max-width: 1360px; }
  /* Ritmo 4/2 y 2/4 en vez de tres columnas iguales: lo largo (negocio,
     correo, sitio) tiene espacio y lo corto (moneda, nombre, WhatsApp) no. */
  .ac-ancha form { grid-template-columns: repeat(6, 1fr); gap: 12px 14px; }
  .ac-ancha form > .c-ancho { grid-column: span 4; }
  .ac-ancha form > .c-corto { grid-column: span 2; }
  .ac-ancha form > .ac-giro { grid-column: 1 / -1; }
  .ac-ancha .ac-giro-op { padding: 12px 14px 11px; }
  .ac-ancha > p { margin-bottom: 18px; }
}
/* ---------- Citas: servicios y equipo (autoservicio) ---------- */
.checks { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 4px 0 10px; }
.check { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; cursor: pointer; }
.check input { width: 18px; height: 18px; accent-color: var(--verde); margin: 0; }
.check i { font-style: normal; font-size: 13px; opacity: .65; }
.err-txt { color: #b3261e; font-weight: 600; }
.punto { display: inline-block; width: 12px; height: 12px; border-radius: 50%; flex: none; }
.persona-link { display: inline-flex; align-items: center; gap: 10px; }
.vacio-guia p { max-width: 62ch; }
.vacio-guia .btn { margin-top: 6px; }
.rango { display: inline-flex; align-items: center; gap: 8px; flex-wrap: nowrap; white-space: nowrap; }
.lista.duraciones input { width: 100%; max-width: 160px; box-sizing: border-box; padding: 8px 10px;
  border: 1px solid rgba(0, 0, 0, .18); border-radius: 10px; font: inherit; background: #fff; }
.lista.horario .rango input[type="time"] { width: 8.4em; flex: none; box-sizing: border-box; padding: 7px 8px;
  border: 1px solid rgba(0, 0, 0, .18); border-radius: 10px; font: inherit; background: #fff; }
.formu input[type="color"] { width: 64px; height: 44px; padding: 4px; box-sizing: border-box; border-radius: 10px; cursor: pointer; }
.lista.duraciones td, .lista.horario td { vertical-align: middle; }
.formu h3 { margin: 18px 0 4px; font-size: 16px; }

/* ---------- Tu plan: GRATIS, PRO, FULL (038) ---------- */
.planes { display: grid; gap: 14px; grid-template-columns: 1fr; margin: 6px 0 10px; }
@media (min-width: 900px) { .planes { grid-template-columns: repeat(3, 1fr); } }
.planes .plan { margin: 0; display: flex; flex-direction: column; }
.planes .plan h2 { display: flex; align-items: center; gap: 8px; letter-spacing: .04em; }
.plan-lema { margin: 0 0 6px; opacity: .75; }
.plan-precio { margin: 0 0 2px; font-size: 15px; }
.plan-precio b { font-size: 28px; font-weight: 800; letter-spacing: -.02em; }
.plan-comision { margin: 0 0 12px; font-size: 13px; font-weight: 700; color: var(--verde, #2E6B34); }
.plan-condicion { margin: -6px 0 12px; font-size: 12px; color: var(--gris); }
.planes .plan .pasos { flex: 1; }
.planes .plan form { margin-top: 10px; }
.plan-actual { border: 2px solid var(--verde); }

/* Precio dinámico (042) */
.regla-nueva { padding: 0; }
.regla-nueva > summary { cursor: pointer; padding: 16px 18px; list-style: none; display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; }
.regla-nueva > summary::-webkit-details-marker { display: none; }
.regla-nueva > summary::before { content: "+"; font-weight: 800; color: var(--verde); width: 14px; }
.regla-nueva[open] > summary::before { content: "−"; }
.regla-nueva > form { padding: 0 18px 18px; }
.lista.reglas tr.pausada td { opacity: .55; }
.lista.reglas .acciones { white-space: nowrap; text-align: right; }
.lista.reglas .acciones form { display: inline-block; margin-left: 6px; }
b.baja { color: #1D5B25; }
b.sube { color: #8A4B08; }
.fila-ver { display: flex; gap: 8px; align-items: center; margin: 0 0 12px; }
.fila-ver select { max-width: 320px; }
.btn.chico { padding: 6px 12px; font-size: 13px; }

/* Vista de Rezzerva: acciones por negocio y plan de cortesía (053). */
.acc-negocio { display: flex; flex-direction: column; align-items: stretch; gap: 8px; min-width: 150px; }
.acc-negocio .btn { width: 100%; text-align: center; }
.cortesia { display: flex; align-items: center; gap: 6px; }
.cortesia select { appearance: none; -webkit-appearance: none; flex: 1; font: 700 13px Manrope, sans-serif; color: var(--gris);
  background: var(--caja) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23667' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 12px center;
  border: 1px dashed var(--linea); border-radius: 999px; padding: 7px 30px 7px 12px; cursor: pointer; }
.cortesia.on select { color: var(--verde); border-style: solid; border-color: var(--verde); background-color: var(--suave); }
.cortesia-ok { border: 0; background: none; color: var(--verde); font: 700 13px Manrope, sans-serif; cursor: pointer; padding: 4px; }
.js .cortesia-ok { display: none; }

/* Cobros como paso 1 de la puesta en marcha (tours). */
.paso-uno { margin: 0 0 4px; font: 700 12px Manrope, sans-serif; letter-spacing: .08em; text-transform: uppercase; color: var(--verde); }
.pasos-cobro { list-style: none; display: flex; gap: 8px; padding: 0; margin: 4px 0 14px; flex-wrap: wrap; }
.pasos-cobro li { flex: 1 1 180px; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px;
  background: var(--caja); border: 1px solid var(--linea); color: var(--gris); font-size: 14px; }
.pasos-cobro b { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: #eef1ee; color: var(--gris); font-size: 13px; flex: none; }
.pasos-cobro .actual { border-color: var(--verde); color: var(--tinta); font-weight: 700; }
.pasos-cobro .actual b { background: var(--verde); color: #fff; }
.pasos-cobro .hecho b { background: #dcebdc; color: var(--verde); }

/* Tarifas sugeridas con IA (054). */
.ia-caja { border: 1px solid #cfe0cf; background: linear-gradient(180deg, #f4faf3, #fff 120px); }
.ia-sello { display: inline-block; margin: 0 0 6px; padding: 3px 10px; border-radius: 999px; background: var(--verde); color: #fff; font: 700 11px Manrope, sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.ia-lista { list-style: none; padding: 0; margin: 12px 0; display: grid; gap: 10px; }
.ia-lista li { border: 1px solid var(--linea); border-radius: 14px; padding: 14px 16px; background: #fff; }
.ia-cab { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 16px; }
.ia-cab .baja, .ia-cab .sube { font: 700 13px Manrope, sans-serif; padding: 2px 9px; border-radius: 999px; }
.ia-cab .baja { background: #e8f1fb; color: #1f5c99; }
.ia-cab .sube { background: #eaf4ea; color: var(--verde); }
.ia-cuando { margin: 6px 0 4px; font-size: 14px; color: var(--gris); }
.ia-porque { margin: 0 0 10px; }
.ia-hechas, .ia-limites { margin-top: 12px; }
.ia-hechas summary, .ia-limites summary { cursor: pointer; font-weight: 700; color: var(--verde); }
.ia-marca { display: inline-block; margin-left: 4px; padding: 1px 6px; border-radius: 6px; background: var(--verde); color: #fff; font: 700 10px Manrope, sans-serif; vertical-align: middle; }

/* Panel simple (055): botón central de la barra, ayuda por WhatsApp y "Más" por grupos. */
@media (max-width: 899px) {
  .barra a[data-centro] { color: var(--tinta); }
  .barra a[data-centro] svg { width: 28px; height: 28px; padding: 13px; margin-top: -26px; border-radius: 50%; box-sizing: content-box;
    background: var(--acento); color: var(--sobre-acento); stroke: var(--sobre-acento); stroke-width: 2.4; border: 3px solid var(--oscuro);
    box-shadow: 0 6px 16px rgba(19,38,26,.25); }
  .barra a[data-centro].on::after { display: none; }
}
.ayuda-wa { position: fixed; right: 16px; bottom: calc(96px + env(safe-area-inset-bottom)); z-index: 29; display: flex; align-items: center; gap: 8px;
  background: #fff; color: var(--verde); border: 1px solid var(--linea); border-radius: 999px; padding: 11px 15px; min-height: 44px; box-sizing: border-box;
  font: 800 14px Manrope, sans-serif; text-decoration: none; box-shadow: 0 6px 18px rgba(22,36,26,.12); }
.ayuda-wa svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@media (min-width: 900px) { .ayuda-wa { bottom: 20px; } }
@media print { .ayuda-wa { display: none !important; } }
h3 + .menu-mas { margin-top: 0; }
.caja.puesta { border: 2px solid var(--acento); background: #fff; }
.puesta-ojo { margin: 0; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--verde); }
.puesta-barra { display: flex; gap: 6px; margin: 12px 0 14px; }
.puesta-barra i { flex: 1; height: 8px; border-radius: 99px; background: #d7e2d7; }
.puesta-barra i.si { background: var(--verde); }
.caja.puesta h2 { font-size: 20px; line-height: 1.3; margin: 0 0 14px; }
.btn.grande { display: flex; justify-content: center; align-items: center; min-height: 54px; font-size: 17px; border-radius: 14px; }
.caja.puesta .pasos-puesta { margin-top: 14px; }
.enlace { border: 0; background: none; padding: 6px; color: var(--gris); font: 700 13px Manrope, sans-serif; text-decoration: underline; cursor: pointer; }
@media (max-width: 899px) { .con-barra main { padding-bottom: calc(150px + env(safe-area-inset-bottom)); } }
.pasos-puesta li.actual span { font-weight: 800; }
@media (max-width: 899px) {
  .ayuda-wa { width: 52px; height: 52px; padding: 0; justify-content: center; border-radius: 50%; }
  .ayuda-wa span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .ayuda-wa svg { width: 24px; height: 24px; }
}

/* Mi página web (055): fotos y lista de tours */
.fotos { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0; }
.foto-mini { margin: 0; width: 132px; display: flex; flex-direction: column; gap: 6px; position: relative; }
.foto-mini img { width: 132px; height: 92px; object-fit: cover; border-radius: 10px; background: var(--suave); }
.foto-mini figcaption { position: absolute; top: 6px; left: 6px; background: rgba(0,0,0,.6); color: #fff; font-size: 11px; font-weight: 800; padding: 2px 7px; border-radius: 99px; }
.btn.chico { padding: 6px 10px; font-size: 13px; width: 100%; }
.foto-subir { width: 132px; height: 92px; border: 2px dashed var(--linea, #cfd6cc); border-radius: 10px; display: grid; place-items: center; cursor: pointer; font-weight: 800; font-size: 14px; color: var(--verde); text-align: center; padding: 6px; }
.foto-subir input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.foto-subir.subiendo { opacity: .6; pointer-events: none; }
.con-sufijo { display: flex; align-items: center; gap: 6px; }
.con-sufijo input { flex: 1; min-width: 0; }
.con-sufijo b { white-space: nowrap; font-size: 15px; }
.lista-web { list-style: none; margin: 12px 0 6px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.lista-web li { display: flex; justify-content: space-between; gap: 10px; padding: 10px 12px; background: var(--suave); border-radius: 10px; }
.lista-web li a { font-weight: 800; }
.lista-web li small { color: var(--ambar); font-weight: 700; }
.lista-web li.listo small { color: var(--verde); }
.foto-subir.bloqueado { position: relative; color: var(--gris); border-color: var(--linea); background: var(--suave); text-decoration: none; overflow: hidden; cursor: not-allowed; }
.foto-subir.bloqueado span { opacity: .55; }
.foto-subir.bloqueado em { position: absolute; inset: 0; display: grid; place-items: center; padding: 6px; background: var(--oscuro); color: var(--acento); font-style: normal; font-size: 13px; font-weight: 800; opacity: 0; transition: opacity .15s; }
.foto-subir.bloqueado:hover em, .foto-subir.bloqueado:focus-visible em { opacity: 1; }
@media (hover: none) { .foto-subir.bloqueado em { opacity: 1; } }

/* Crear reserva: arriba a la derecha, grande, fondo oscuro y borde verde salvia claro */
.btn.crear { margin-left: auto; display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 26px; font-size: 17px; font-weight: 800; border-radius: 14px;
  background: var(--oscuro); color: #fff; border: 2px solid #b9d6bb; box-shadow: 0 4px 14px rgba(28, 45, 30, .18); }
.btn.crear:hover, .btn.crear:focus-visible { background: var(--verde); border-color: var(--acento); color: #fff; }
.cab .btn.crear { margin-left: 0; }
@media (max-width: 720px) { .filtros .btn.crear { display: none; } }

/* ---------- vista de Rezzerva: menú en verde claro ---------- */
/* Marca de Rezzerva (vista de toda la plataforma): fondo #8caf8f y borde verde oscuro de 1px. */
.av-negocio.av-rezzerva { background: #8caf8f; border: 1px solid #224425; box-sizing: border-box; padding: 0; }
.av-rezzerva img { object-fit: contain; }
.modo-plataforma .top { background: #b9d6bb; color: var(--oscuro); }
.modo-plataforma .top .marca { color: var(--oscuro); }
.modo-plataforma .nav a, .modo-plataforma .salir { color: var(--oscuro); }
.modo-plataforma .nav a.on { background: var(--oscuro); color: #b9d6bb; }
.modo-plataforma .salir button { border-color: rgba(28,45,30,.35); color: var(--oscuro); }
@media (min-width: 1000px) {
  .modo-plataforma .lateral { background: #b9d6bb; color: var(--oscuro); }
  .modo-plataforma .lat-marca, .modo-plataforma .lat-yo { border-color: rgba(28,45,30,.18); }
  .modo-plataforma .lat-marca .marca, .modo-plataforma .lat-marca .marca small { color: var(--oscuro); }
  .modo-plataforma .lat-marca .marca small { opacity: .7; }
  .modo-plataforma .lateral nav p { color: rgba(28,45,30,.6); }
  .modo-plataforma .lateral nav a { color: var(--oscuro); }
  .modo-plataforma .lateral nav a:hover { background: rgba(28,45,30,.08); color: var(--oscuro); }
  .modo-plataforma .lateral nav a.on { background: var(--oscuro); color: #b9d6bb; }
  .modo-plataforma .lat-yo small { color: rgba(28,45,30,.7); }
  .modo-plataforma .lat-yo button { border-color: rgba(28,45,30,.3); color: var(--oscuro); }
  .modo-plataforma .lat-yo button:hover { background: rgba(28,45,30,.08); }
  .modo-plataforma .lat-colapsar { color: rgba(28,45,30,.7); }
  .modo-plataforma .lat-colapsar:hover { background: rgba(28,45,30,.08); color: var(--oscuro); }
  .modo-plataforma.lat-mini .lateral nav p { background: rgba(28,45,30,.18); }
}

/* ---------- profundidad: menos plano, misma marca ---------- */
html { background: var(--fondo); }
body.con-lateral { min-height: 100vh; background:
  radial-gradient(1200px 380px at 70% -120px, rgba(140, 175, 143, .28), transparent 70%) no-repeat,
  linear-gradient(180deg, #eef3ee 0, var(--fondo) 340px) no-repeat, var(--fondo); }
.caja { border-color: rgba(34, 68, 37, .08);
  box-shadow: 0 1px 2px rgba(19, 38, 26, .04), 0 10px 28px -16px rgba(19, 38, 26, .18); }
.caja > h2:first-child, .caja > .cab > h2:first-child { position: relative; padding-left: 14px; }
.caja > h2:first-child::before, .caja > .cab > h2:first-child::before { content: ""; position: absolute; left: 0; top: .2em; bottom: .2em;
  width: 4px; border-radius: 4px; background: linear-gradient(180deg, var(--salvia), var(--verde)); }
main > h1, main > .cab h1 { font-size: 26px; letter-spacing: -.02em; }
table thead th { background: #f4f7f4; }
table thead th:first-child { border-top-left-radius: 10px; }
table thead th:last-child { border-top-right-radius: 10px; }
table tbody tr { transition: background .15s; }
table tbody tr:hover { background: #f7faf7; }
.caja details > summary, main > details > summary { transition: background .15s; border-radius: 10px; }
.caja details > summary:hover, main > details > summary:hover { background: #f4f8f4; }
.buscar input, .buscar select, .formu input, .formu select, .formu textarea, .nota-form textarea { background: #fbfcfb; }
.formu input:hover, .formu select:hover, .formu textarea:hover, .buscar input:hover { border-color: #c7d4c8; }
.btn { box-shadow: 0 1px 0 rgba(255,255,255,.12) inset, 0 6px 14px -8px rgba(19, 38, 26, .45); transition: transform .12s, box-shadow .12s, background .12s; }
.btn:hover { transform: translateY(-1px); box-shadow: 0 1px 0 rgba(255,255,255,.12) inset, 0 10px 18px -10px rgba(19, 38, 26, .55); }
.btn.sec { box-shadow: none; }
@media (prefers-reduced-motion: reduce) { .btn, .btn:hover { transition: none; transform: none; } }
.regla-nueva > summary::before, details.caja > summary::before { display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 26px; height: 26px; border-radius: 50%; background: var(--suave); color: var(--verde); font-size: 15px; line-height: 1; margin-right: 4px; transition: background .15s, color .15s; }
.regla-nueva:hover > summary::before, .regla-nueva[open] > summary::before { background: var(--verde); color: var(--acento); }
.regla-nueva[open] { border-color: rgba(34, 68, 37, .22); }

/* ---------- canales de venta ---------- */
.intro-canales { font-size: 16px; max-width: 760px; margin: 0 0 16px; }
.pasos-canal { list-style: none; counter-reset: paso; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; padding: 0; margin: 0 0 18px; }
.pasos-canal li { counter-increment: paso; position: relative; background: rgba(255,255,255,.7); border: 1px solid rgba(34,68,37,.08); border-radius: var(--radio); padding: 14px 14px 14px 52px; }
.pasos-canal li::before { content: counter(paso); position: absolute; left: 14px; top: 14px; width: 26px; height: 26px; border-radius: 50%;
  background: var(--verde); color: var(--acento); font-weight: 800; font-size: 13px; display: flex; align-items: center; justify-content: center; }
.pasos-canal b { display: block; }
.pasos-canal span { color: var(--gris); font-size: 14px; }
.canales { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px; align-items: start; }
.canales .caja { margin: 0; }
.canal-cab { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.canal-cab h2 { margin: 0; padding-left: 0 !important; }
.canal-cab h2::before { display: none !important; }
.canal-logo { width: 40px; height: 40px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; flex: none;
  background: var(--suave); color: var(--verde); font-weight: 800; font-size: 18px; }
.canal-logo.gyg { background: #ff5533; color: #fff; }
.canal .tecnico { margin-top: 14px; border-top: 1px solid var(--linea); padding-top: 10px; }
.canal .tecnico > summary { cursor: pointer; font-weight: 700; font-size: 14px; color: var(--gris); padding: 6px 0; }
/* Pasos en verde oscuro: guía arriba, acciones (tarjetas blancas) abajo. */
.pasos-canal li { background: var(--oscuro); border-color: var(--oscuro); color: #fff;
  box-shadow: 0 10px 28px -16px rgba(19, 38, 26, .5); }
.pasos-canal li::before { background: var(--acento); color: var(--sobre-acento); }
.pasos-canal span { color: rgba(255, 255, 255, .72); }
.agencias { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 12px; }
.agencia { display: inline-flex; align-items: center; gap: 7px; padding: 4px 10px 4px 4px; border: 1px solid var(--linea);
  border-radius: 999px; font-size: 13px; font-weight: 700; background: #fff; }
.agencia i { width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  color: #fff; font-style: normal; font-size: 12px; font-weight: 800; }
.canales { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); align-items: stretch; }
.canal { display: flex; flex-direction: column; }
.canal > p { flex: 1; }
.canal > .btn { align-self: flex-start; }
.canales-nota { margin: 14px 0; }
details.caja.tecnico { margin-top: 0; }
details.caja.tecnico > summary { cursor: pointer; font-weight: 700; }
/* Pasos en salvia #93ae92 con letra verde oscuro (el blanco no se lee bien sobre este verde). */
.pasos-canal li { background: #93ae92; border-color: #93ae92; color: var(--oscuro); box-shadow: 0 10px 24px -16px rgba(19, 38, 26, .35); }
.pasos-canal li::before { background: var(--oscuro); color: var(--acento); }
.pasos-canal span { color: rgba(28, 45, 30, .82); }
/* Pasos: una sola banda salvia, sin cajas sueltas que se alineen con las tarjetas. */
.banda-pasos { background: #93ae92; color: var(--oscuro); border-radius: 20px; padding: 18px 22px 20px; margin: 0 0 26px; }
.banda-pasos h2 { font-size: 12px; text-transform: uppercase; letter-spacing: .1em; margin: 0 0 12px; color: rgba(28, 45, 30, .75); }
.banda-pasos .pasos-canal { display: flex; flex-wrap: wrap; gap: 0; margin: 0; }
.banda-pasos .pasos-canal li { flex: 1 1 220px; background: none; border: 0; box-shadow: none; border-radius: 0; padding: 4px 22px 4px 46px; }
.banda-pasos .pasos-canal li + li { border-left: 1px solid rgba(28, 45, 30, .2); }
.banda-pasos .pasos-canal li::before { left: 10px; top: 4px; }
.banda-pasos .pasos-canal li + li::before { left: 12px; }
@media (max-width: 760px) { .banda-pasos .pasos-canal li + li { border-left: 0; border-top: 1px solid rgba(28, 45, 30, .2); margin-top: 10px; padding-top: 12px; }
  .banda-pasos .pasos-canal li + li::before { top: 12px; } }
.titulo-agencias { font-size: 18px; margin: 0 0 12px; }
.canales { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
img.canal-logo { object-fit: cover; background: none; padding: 0; border-radius: 12px; }
/* Pasos: círculo y títulos más grandes. */
.banda-pasos .pasos-canal li { padding-left: 58px; }
.banda-pasos .pasos-canal li::before { width: 36px; height: 36px; font-size: 16px; top: 2px; }
.banda-pasos .pasos-canal b { font-size: 17px; margin-bottom: 2px; }
.volver { margin: 0 0 6px; font-size: 14px; }
.volver a { color: var(--gris); text-decoration: none; font-weight: 700; }
.volver a:hover { color: var(--verde); }
.enlace-creditos { margin: -4px 0 12px; text-align: right; font-size: 14px; }
.enlace-creditos a { font-weight: 700; text-decoration: none; border-bottom: 1px dashed currentColor; }
.vacio + table.lista { display: none; }

/* Tu plan: el plan activo en otro color de caja (sage). */
.planes .plan.plan-actual { background: #e6f0e3; border: 2px solid #93ae92; box-shadow: 0 10px 28px rgba(34, 68, 37, .12); }
.planes .plan.plan-actual .badge { background: #224425; color: #fff; }
.planes .plan.plan-actual h2::before { background: #224425; }
.bueno-saber ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.bueno-saber li { position: relative; padding-left: 20px; line-height: 1.5; color: #3d4b40; }
.bueno-saber li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: #93ae92; }
.bueno-saber li b { color: var(--tinta, #16241a); }
@media (min-width: 900px) { .bueno-saber ul { grid-template-columns: 1fr 1fr; column-gap: 28px; } }

/* Soporte por chat (057). */
.chat-caja { display: flex; flex-direction: column; gap: 12px; max-width: 760px; }
.chat { display: flex; flex-direction: column; gap: 10px; max-height: min(60vh, 560px); overflow-y: auto; padding: 4px 2px; }
.chat-vacio { margin: 18px 0; text-align: center; color: var(--gris); }
/* Burbujas tipo Teams: avatar redondo, nombre y hora arriba, lo propio a la derecha. */
.msj-fila { display: flex; align-items: flex-end; gap: 10px; }
.msj-fila.mio { justify-content: flex-end; }
.msj-col { display: flex; flex-direction: column; gap: 3px; max-width: min(78%, 560px); }
.msj-fila.mio .msj-col { align-items: flex-end; }
.msj-meta { font-size: 11.5px; color: var(--gris); padding: 0 4px; }
.msj-meta b { color: var(--tinta, #16241a); font-weight: 700; margin-right: 4px; }
.msj { padding: 10px 14px; border-radius: 18px; background: #f1f4ef; border-bottom-left-radius: 6px; }
.msj-fila.mio .msj { background: #224425; color: #fff; border-bottom-left-radius: 18px; border-bottom-right-radius: 6px; }
.msj p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.45; }
.msj.ia { background: #eaf1f6; }
.av { flex: none; width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font: 800 13px Manrope, sans-serif; overflow: hidden; }
.av-ia { background: #fff; border: 1px solid #dfe7dc; }
.av-ia img { width: 24px; height: 24px; }
.av-equipo { background: #b9d6bb; color: #224425; }
.av-negocio { background: #224425; color: #fff; }
.chat-cabeza .av { width: 42px; height: 42px; font-size: 15px; }
.chat-cabeza .av-ia img { width: 30px; height: 30px; }
.chat-cabeza .quien { flex: 1 1 220px; display: flex; flex-direction: column; }
.chat-cabeza .quien small { font-size: 12.5px; color: var(--gris); display: flex; align-items: center; gap: 6px; }
.punto-en-linea { width: 8px; height: 8px; border-radius: 50%; background: #3fb36a; box-shadow: 0 0 0 2px #fff; }
.msj.puntos { display: inline-flex; gap: 5px; padding: 14px 16px; width: max-content; }
.msj.puntos i { width: 7px; height: 7px; border-radius: 50%; background: #7b8f7d; animation: punto 1.2s infinite ease-in-out; }
.msj.puntos i:nth-child(2) { animation-delay: .15s; } .msj.puntos i:nth-child(3) { animation-delay: .3s; }
.chat-form { display: flex; gap: 10px; align-items: flex-end; }
.chat-form textarea { flex: 1; resize: vertical; min-height: 52px; font: inherit; padding: 10px 12px; border: 1px solid var(--linea, #dfe5dc); border-radius: 12px; }
.chat-form .btn { flex: none; }
.nota.chico { font-size: 12px; margin: 0; }
.ayuda-n, .lat-n { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: #e0533d; color: #fff; font-size: 12px; font-weight: 800; }
.lat-n { margin-left: auto; }
.ayuda-wa .ayuda-n { position: absolute; top: -6px; right: -6px; }
.bandeja { list-style: none; margin: 0; padding: 0; }
.bandeja li + li { border-top: 1px solid var(--linea, #e3e7e1); }
.bandeja a { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 12px 4px; text-decoration: none; color: inherit; }
.bandeja a .prev { grid-column: 1; color: var(--gris); font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bandeja a small { grid-column: 2; grid-row: 1; color: var(--gris); font-size: 12px; }
.bandeja li.sin-leer b { color: #224425; }
.bandeja b .badge, .bandeja b .chip { font-style: normal; margin-left: 6px; }

/* Pie con el logo de Rezzerva a color, siempre abajo aunque el contenido sea corto. */
@media (min-width: 1000px) {
  body.con-lateral { display: flex; flex-direction: column; }
  body.con-lateral > main { flex: 1 0 auto; width: 100%; box-sizing: border-box; }
  body.con-lateral > .pie { flex: none; }
}

/* Chat con asistente (058). */
.chat-cabeza { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 12px 14px; border-radius: 14px; background: #eef4ec; }
.chat-cabeza p { margin: 0; flex: 1 1 320px; font-size: 14px; color: #3d4b40; }
.chat-cabeza form { margin: 0; }
@keyframes punto { 0%, 80%, 100% { opacity: .25; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }

/* Mi página web: vista previa, progreso y tarjetas de tours. */
.web-hero { display: grid; gap: 22px; grid-template-columns: 1fr; padding: 18px; }
@media (min-width: 900px) { .web-hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); align-items: start; } }
.web-vista { position: relative; min-height: 230px; border-radius: 16px; overflow: hidden; color: #fff; display: flex; flex-direction: column; justify-content: flex-end;
  background: radial-gradient(120% 90% at 85% 0%, rgba(255,255,255,.16), transparent 55%), linear-gradient(140deg, var(--ac), #14231a); background-size: cover; background-position: center; box-shadow: 0 14px 34px -18px rgba(19,38,26,.5); }
.web-navegador { position: absolute; top: 0; left: 0; right: 0; display: flex; align-items: center; gap: 6px; padding: 9px 12px; background: rgba(255,255,255,.92); color: #3d4b40; font-size: 12px; }
.web-navegador i { width: 9px; height: 9px; border-radius: 50%; background: #d5dcd3; }
.web-navegador b { margin-left: 8px; font-weight: 700; background: #eef1ec; border-radius: 999px; padding: 3px 12px; }
.web-vista-txt { display: flex; align-items: center; gap: 12px; padding: 20px; }
.web-vista-txt img { width: 48px; height: 48px; border-radius: 12px; background: #fff; object-fit: contain; padding: 4px; }
.web-vista-txt strong { display: block; font-size: 24px; font-weight: 800; line-height: 1.1; }
.web-vista-txt small { display: block; margin-top: 4px; opacity: .9; font-size: 14px; }
.web-ojo { margin: 0; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); }
.web-url { margin: 4px 0 12px; font-size: 22px; font-weight: 800; letter-spacing: -.01em; word-break: break-all; color: var(--verde); }
.web-acciones { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.web-progreso { margin-top: 16px; padding: 14px 16px; border-radius: 14px; background: #f4f8f3; }
.web-progreso-cab { display: flex; justify-content: space-between; align-items: baseline; }
.web-progreso-cab small { color: var(--gris); }
.web-barra { height: 8px; border-radius: 99px; background: #dde6dc; margin: 8px 0 12px; overflow: hidden; }
.web-barra i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, #93ae92, var(--verde)); }
.web-pasos { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.web-pasos li { display: flex; align-items: center; gap: 9px; font-size: 14px; }
.web-pasos li span { flex: none; width: 20px; height: 20px; border-radius: 50%; border: 2px solid #c5d1c3; display: grid; place-items: center; }
.web-pasos li.si span { background: var(--verde); border-color: var(--verde); color: #fff; }
.web-pasos a { color: inherit; text-decoration: none; }
.web-pasos li:not(.si) a { font-weight: 700; }
.web-pasos li.si a { color: var(--gris); }
.web-tours { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); margin-top: 10px; }
.web-tour { display: flex; align-items: center; gap: 12px; padding: 10px; border: 1px solid var(--linea, #e3e7e1); border-radius: 14px; background: #fff; text-decoration: none; color: inherit; transition: border-color .15s, box-shadow .15s, transform .15s; }
.web-tour:hover { border-color: #b9d6bb; box-shadow: 0 8px 20px -12px rgba(19,38,26,.35); transform: translateY(-1px); }
.web-tour-foto { flex: none; width: 64px; height: 64px; border-radius: 10px; background: #eef1ec; display: grid; place-items: center; color: #8ea08d; overflow: hidden; }
.web-tour-foto img { width: 100%; height: 100%; object-fit: cover; }
.web-tour-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.web-tour-txt b { font-size: 15px; line-height: 1.25; }
.web-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.web-chips i { font-style: normal; font-size: 11.5px; font-weight: 700; padding: 3px 8px; border-radius: 999px; }
.web-chips i.si { background: #e3f0e1; color: var(--verde); }
.web-chips i.no { background: #fdf0dc; color: #8a5a12; }
.web-chips i.bloq { background: #eef1ec; color: #7b867c; }
.web-tour-ir { flex: none; font-size: 22px; color: #a8b5a6; }
#portada .foto-mini, #portada .foto-mini img { width: min(100%, 420px); }
#portada .foto-mini img { height: auto; aspect-ratio: 16 / 7; }
#portada .foto-subir { width: min(100%, 420px); height: auto; aspect-ratio: 16 / 7; }
.web-form fieldset { border: 0; margin: 0 0 18px; padding: 0 0 18px; border-bottom: 1px solid var(--linea, #e3e7e1); max-width: 860px; }
.web-form legend { padding: 0; margin-bottom: 10px; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); }
.web-guardar { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.web-guardar .nota { margin: 0; }

/* Precio dinámico (renovado): IA como franja, reglas en mosaico, vista previa por día. */
.ia-caja.ia-bloqueada { display: grid; grid-template-columns: 1fr; gap: 6px 22px; align-items: center; padding: 18px 20px; border: 0; color: #e9f1e7;
  background: radial-gradient(90% 140% at 100% 0%, rgba(168,254,175,.18), transparent 60%), linear-gradient(135deg, #1d3a22, #12241a); }
@media (min-width: 900px) { .ia-caja.ia-bloqueada { grid-template-columns: 1fr auto; } .ia-caja.ia-bloqueada .btn { grid-column: 2; grid-row: 1 / span 3; } }
.ia-caja.ia-bloqueada h2 { color: #fff; margin: 0; padding: 0; font-size: 18px; }
.ia-caja.ia-bloqueada h2::before { display: none; }
.ia-caja.ia-bloqueada p { margin: 0; color: #c8d6c6; font-size: 14px; }
.ia-caja.ia-bloqueada .ia-sello { justify-self: start; }
.ia-caja.ia-bloqueada .btn { background: #a8feaf; color: #12241a; justify-self: start; }
.titulo-reglas { margin: 26px 0 10px; }
.reglas-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); margin-bottom: 18px; }
.reglas-grid .regla-nueva { margin: 0; transition: box-shadow .15s, transform .15s, border-color .15s; }
.reglas-grid .regla-nueva:not([open]):hover { transform: translateY(-1px); border-color: #b9d6bb; }
.reglas-grid .regla-nueva[open] { grid-column: 1 / -1; border-color: #b9d6bb; }
.regla-nueva > summary { align-items: center; flex-wrap: nowrap; gap: 14px; }
.regla-nueva > summary::before { display: none; }
.regla-ico { flex: none; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: #eaf3e8; color: var(--verde); }
.regla-ico svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.regla-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.regla-txt b { font-size: 16px; }
.regla-txt .nota { font-size: 13px; margin: 0; }
.regla-mas { flex: none; width: 28px; height: 28px; border-radius: 50%; background: #f1f4ef; position: relative; }
.regla-mas::before, .regla-mas::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; background: var(--verde); border-radius: 2px; transform: translate(-50%, -50%); }
.regla-mas::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform .15s; }
.regla-nueva[open] .regla-mas::after { transform: translate(-50%, -50%) rotate(0deg); }
.regla-nueva > form { padding: 0 18px 18px; }
.fila-ver select { flex: 0 1 360px; min-height: 40px; border-radius: 10px; border: 1px solid var(--linea, #dfe5dc); padding: 0 10px; font: inherit; background: #fff; }
.fila-ver .btn { flex: none; width: auto; }
.js .fila-ver .btn { display: none; }
.dias-previa { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); }
.dia-previa { border: 1px solid var(--linea, #e3e7e1); border-radius: 14px; padding: 10px; background: #fff; display: flex; flex-direction: column; gap: 6px; }
.dia-previa.finde { background: #f7faf6; }
.dia-cab { display: flex; align-items: baseline; gap: 5px; text-transform: capitalize; }
.dia-cab b { font-size: 20px; font-weight: 800; }
.dia-cab small { font-size: 12px; color: var(--gris); }
.dia-hora { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; font-size: 13px; }
.dia-hora > span { font-weight: 700; }
.dia-hora b, .dia-hora i { font-style: normal; font-size: 12px; font-weight: 800; padding: 2px 8px; border-radius: 999px; }
.dia-hora b.baja { background: #e3f0e1; color: var(--verde); }
.dia-hora b.sube { background: #fdf0dc; color: #8a5a12; }
.dia-hora i { background: #f1f4ef; color: #6b776d; font-weight: 700; }
.dia-hora small { flex-basis: 100%; font-size: 11.5px; color: var(--gris); }
.leyenda-previa { margin-top: 10px; }
.leyenda-previa b.baja { color: var(--verde); } .leyenda-previa b.sube { color: #8a5a12; }
.leyenda-previa i { font-style: normal; font-weight: 700; }

/* Ajustes: invitar a alguien y los roles. */
.invitar { margin-top: 16px; padding: 14px 16px 16px; border-radius: 14px; background: #f4f8f3; }
.invitar h3 { margin: 0 0 4px; font-size: 15px; }
.invitar .en-linea { margin-top: 4px; }
.roles { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.roles li { padding: 10px 12px; border: 1px solid var(--linea, #e3e7e1); border-radius: 12px; background: #fff; line-height: 1.45; }
.roles li b { display: block; color: var(--tinta, #16241a); margin-bottom: 2px; }
.reglas-grid .regla-nueva > summary::before, .reglas-grid .regla-nueva:hover > summary::before, .reglas-grid .regla-nueva[open] > summary::before { display: none; content: none; }

/* 059: nueva reserva con enlace de pago */
.cobro-opciones { border: 0; padding: 0; margin: 6px 0 12px; display: grid; gap: 10px; }
.cobro-opciones legend { font-weight: 800; font-size: 14px; margin-bottom: 8px; color: var(--tinta); }
.cobro-op { display: flex; gap: 12px; align-items: flex-start; border: 1.5px solid var(--linea); border-radius: 14px; padding: 14px; background: #fff; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.cobro-op input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--verde); flex: none; }
.cobro-op span { display: block; }
.cobro-op b { font-size: 15px; color: var(--tinta); }
.cobro-op small { display: block; color: var(--gris); font-size: 13px; margin-top: 3px; line-height: 1.4; }
.cobro-op:has(input:checked) { border-color: var(--verde); box-shadow: 0 0 0 3px rgba(34,68,37,.10); background: #f7fbf7; }
.cobro-op.apagada { opacity: .6; cursor: not-allowed; }
.recomendado { font-style: normal; font-size: 11px; font-weight: 800; background: var(--acento); color: var(--verde); border-radius: 999px; padding: 2px 8px; margin-left: 4px; vertical-align: 2px; }
form:has(input[name="cobro"][value="enlace"]:checked) .solo-aparte { display: none; }
.enlace-pago { border: 1.5px solid #f0d68a; background: #fffaf0; }
.enlace-pago.pagado { border-color: #b8d6bb; background: #f3f9f3; }
.enlace-pago.vencido { border-color: var(--linea); background: var(--suave); }
.enlace-cab { display: flex; gap: 12px; align-items: flex-start; }
.enlace-cab h2 { margin: 0 0 4px; }
.reloj { flex: none; width: 36px; height: 36px; border-radius: 50%; background: #ffe7a8; color: #845c00; display: grid; place-items: center; }
.enlace-url { display: flex; gap: 8px; margin: 12px 0; }
.enlace-url input { flex: 1; min-width: 0; font: 600 13px/1.2 ui-monospace, Menlo, monospace; border: 1px solid var(--linea); border-radius: 10px; padding: 10px 12px; background: #fff; color: var(--tinta); }
.enlace-pago .acciones { display: flex; flex-wrap: wrap; gap: 8px; }
.wa-btn { background: #1f8f4e; }

/* Botón + del celular con burbujas de acciones rápidas */
.centro { display: none; }
@media (max-width: 899px) {
  .barra .centro { display: block; flex: 1; position: static; }
  .centro > summary { list-style: none; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 6px 2px;
    color: var(--tinta); font-size: 11px; font-weight: 700; -webkit-tap-highlight-color: transparent; position: relative; z-index: 2; }
  .centro > summary::-webkit-details-marker { display: none; }
  .centro > summary svg { width: 28px; height: 28px; padding: 13px; margin-top: -26px; border-radius: 50%; box-sizing: content-box;
    background: var(--acento); stroke: var(--sobre-acento); stroke-width: 2.4; border: 3px solid var(--oscuro);
    box-shadow: 0 6px 16px rgba(19,38,26,.25); transition: transform .22s ease, background .22s ease; }
  .centro[open] > summary svg { transform: rotate(45deg); background: #fff; }
  /* Fondo oscuro: es parte del summary, así tocarlo cierra el menú. */
  .centro[open] > summary::before { content: ""; position: fixed; inset: 0; background: rgba(16,30,20,.55);
    -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); z-index: -1; animation: centro-fondo .2s ease; }
  .burbujas { position: fixed; left: 0; right: 0; bottom: calc(92px + env(safe-area-inset-bottom)); z-index: 3;
    display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 0 16px; pointer-events: none; }
  .burbujas a { pointer-events: auto; display: flex; align-items: center; gap: 12px; width: min(320px, 100%);
    background: #fff; border-radius: 999px; padding: 8px 8px 8px 20px; text-decoration: none; color: var(--tinta);
    box-shadow: 0 10px 28px rgba(10,24,14,.28); animation: burbuja .28s cubic-bezier(.2,.9,.3,1.25) both; animation-delay: calc(var(--n) * 45ms); }
  .burbujas a:active { transform: scale(.97); }
  .burbuja-txt { flex: 1; min-width: 0; }
  .burbuja-txt b { display: block; font-size: 15px; font-weight: 800; }
  .burbuja-txt small { display: block; font-size: 12px; color: var(--gris); font-weight: 600; margin-top: 1px; }
  .burbuja-ico { flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--suave); color: var(--verde); }
  .burbujas a:first-child .burbuja-ico { background: var(--acento); color: var(--sobre-acento); }
  .burbuja-ico svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  body:has(.centro[open]) .ayuda-wa { display: none; }
  /* Sin filtro en la barra mientras está abierto: si no, lo fijo se mide contra la barra y no contra la pantalla. */
  .barra:has(.centro[open]) { -webkit-backdrop-filter: none; backdrop-filter: none; background: #fff; }
  .barra .burbujas a { flex: none; flex-direction: row; gap: 12px; padding: 8px 8px 8px 20px; border-radius: 999px; font-size: 15px; color: var(--tinta); text-align: left; }
  .barra .burbujas a::after { display: none; }
  .barra .burbujas svg { width: 22px; height: 22px; stroke-width: 2; }
}
@keyframes burbuja { from { opacity: 0; transform: translateY(18px) scale(.9); } to { opacity: 1; transform: none; } }
@keyframes centro-fondo { from { opacity: 0; } to { opacity: 1; } }

/* ---------- Hoteles (061) ---------- */
.fila3 { display: grid; gap: 0 12px; grid-template-columns: 1fr; }
@media (min-width: 700px) { .fila3 { grid-template-columns: 1fr 1fr 1fr; } }
@media (min-width: 900px) { body[data-sector="hoteles"] .kpis { grid-template-columns: repeat(4, 1fr); } }
.estadia { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--linea); text-decoration: none; color: var(--tinta); }
.estadia:first-of-type { border-top: 0; }
.caja h2 + .estadia { border-top: 0; }
.estadia-nombre b { display: block; }
.estadia-nombre small, .estadia-der small { display: block; color: var(--gris); font-size: 12px; }
.estadia-der { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.estadia:hover b { color: var(--verde); text-decoration: underline; }
.ocup-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.ocup-cab h2 { margin: 0; }
.ocup-tabla { overflow-x: auto; margin: 0 -4px; padding: 0 4px; }
.ocup-tabla table { border-collapse: separate; border-spacing: 3px; width: 100%; min-width: 640px; }
.ocup-tabla th { font-size: 12px; font-weight: 700; color: var(--gris); text-align: center; padding: 2px; }
.ocup-tabla th small { display: block; font-size: 10px; font-weight: 600; opacity: .7; }
.ocup-tabla thead th.hoy { color: var(--verde); }
.ocup-tabla thead th.finde { color: var(--tinta); }
.ocup-tabla tbody th { text-align: left; min-width: 130px; padding-right: 8px; }
.ocup-tabla tbody th a { color: var(--tinta); text-decoration: none; font-size: 13px; }
.ocup-tabla tbody th small { font-size: 11px; opacity: 1; color: var(--gris); }
.ocup-tabla td { text-align: center; font-weight: 800; font-size: 13px; border-radius: 8px; padding: 8px 0; min-width: 34px; }
.ocup-tabla td.libre, .ley.libre { background: #eef6ef; color: #2d6a36; }
.ocup-tabla td.medio, .ley.medio { background: #cfe8d2; color: #1f4f28; }
.ocup-tabla td.alto, .ley.alto { background: #ffe7a8; color: #6b4a00; }
.ocup-tabla td.lleno, .ley.lleno { background: #224425; color: #fff; }
.ocup-tabla td.cerrado { background: repeating-linear-gradient(45deg, #eee, #eee 4px, #f7f7f7 4px, #f7f7f7 8px); color: var(--gris); }
.ocup-tabla td.hoy { box-shadow: inset 0 0 0 2px var(--verde); }
.ley { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: -1px; margin-left: 6px; }
.habs { display: grid; gap: 12px; grid-template-columns: 1fr; margin-bottom: 14px; }
@media (min-width: 800px) { .habs { grid-template-columns: 1fr 1fr; } }
.hab-card { display: block; background: var(--caja); border: 1px solid var(--linea); border-radius: var(--radio); padding: 16px; text-decoration: none; color: var(--tinta); transition: border-color .15s, box-shadow .15s; }
.hab-card:hover { border-color: var(--verde); box-shadow: 0 4px 16px rgba(22,36,26,.08); }
.hab-card.inactiva { opacity: .65; }
.hab-card-cab { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.hab-card-cab b { font-size: 17px; }
.hab-card > small { display: block; color: var(--gris); font-size: 13px; margin: 2px 0 10px; }
.hab-card ul { list-style: none; margin: 0; padding: 0; }
.hab-card li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid var(--linea); }
.hab-card li small { display: block; color: var(--gris); font-size: 12px; }
.hab-card li b { white-space: nowrap; color: var(--verde); }
.lista-cierres { list-style: none; padding: 0; margin: 0 0 12px; }
.lista-cierres li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid var(--linea); font-size: 14px; }
.lista-cierres .btn.chico { width: auto; }
.sec-titulo { margin: 22px 0 10px; font-size: 18px; }
.tarifa-caja.inactiva { opacity: .7; }
.tarifa-caja h3 { text-transform: none; letter-spacing: 0; font-size: 16px; color: var(--tinta); }
.formu.temporada { background: var(--suave); border-radius: 14px; padding: 12px 14px; margin-top: 6px; }
.campo.dias { border: 0; padding: 0; margin: 0 0 12px; }
.campo.dias div { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.campo.dias label { display: inline-flex; align-items: center; gap: 4px; background: #fff; border: 1px solid var(--linea); border-radius: 999px; padding: 5px 10px; font-size: 13px; font-weight: 700; cursor: pointer; }
.campo.dias label:has(input:checked) { background: var(--verde); color: #fff; border-color: var(--verde); }
.campo.dias label { position: relative; }
.campo.dias input, .formu .campo.dias input { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; padding: 0; margin: 0; border: 0; }
textarea.codigo { width: 100%; font: 600 12px/1.5 ui-monospace, Menlo, monospace; border: 1px solid var(--linea); border-radius: 10px; padding: 10px 12px; background: #fbfcfb; resize: vertical; box-sizing: border-box; }
.vacio-hotel { text-align: center; padding: 32px 20px; }
.vacio-hotel p { max-width: 52ch; margin: 0 auto 16px; color: var(--gris); }
.ocup-tabla thead th { background: none !important; } .ocup-tabla tbody tr:hover { background: none; }

/* Cupones de hoteles (063) */
.lista-cupones { list-style: none; padding: 0; margin: 0 0 14px; }
.lista-cupones li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--linea); font-size: 14px; }
.lista-cupones li small { display: block; color: var(--gris); font-size: 12.5px; margin-top: 2px; }
.lista-cupones li.apagado { opacity: .55; }
.lista-cupones .cupon-acc { display: flex; gap: 6px; flex: none; }
.lista-cupones .btn.chico { width: auto; }
.nuevo-cupon summary { cursor: pointer; font-weight: 800; color: var(--verde); padding: 6px 0; }
.nuevo-cupon[open] summary { margin-bottom: 8px; }
@media (max-width: 640px) { .lista-cupones li { flex-direction: column; align-items: flex-start; } }

/* SEO con IA (066) */
.seo-puntaje { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; margin: 6px 0 16px; }
.seo-num { --p: 0; width: 104px; height: 104px; border-radius: 50%; flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center;
  background: radial-gradient(closest-side, #fff 78%, transparent 79%), conic-gradient(var(--verde) calc(var(--p) * 1%), var(--linea) 0); }
.seo-num b { font-size: 30px; font-weight: 800; line-height: 1; color: var(--tinta); }
.seo-num small { font-size: 12px; color: var(--gris); }
.seo-pasos { flex: 1; min-width: 240px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); margin: 0; }
.seo-kw { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 14px; }
.seo-kw span { background: #eef4ee; color: var(--verde); border-radius: 999px; padding: 5px 11px; font-size: 13px; font-weight: 700; }
.seo-lista { list-style: none; padding: 0; margin: 10px 0 16px; display: grid; gap: 12px; }
.seo-lista li { border: 1px solid var(--linea); border-radius: 14px; padding: 14px; background: #fff; }
.seo-lang { font-size: 12px; font-weight: 700; color: var(--gris); background: var(--fondo, #f4f5f2); border-radius: 999px; padding: 3px 9px; }
.seo-antes, .seo-nuevo { margin: 8px 0; white-space: pre-line; font-size: 14.5px; line-height: 1.5; }
.seo-antes { color: var(--gris); text-decoration: line-through; text-decoration-color: rgba(0,0,0,.25); }
.seo-antes.sin-texto { text-decoration: none; font-style: italic; }
.seo-nuevo { background: #f7fbf7; border-left: 3px solid var(--verde); padding: 8px 10px; border-radius: 0 10px 10px 0; color: var(--tinta); }
.seo-antes small, .seo-nuevo small { display: block; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--gris); text-decoration: none; margin-bottom: 3px; }


/* Calendario de hoteles: Hoy · Semana · Mes */
.cal-cab { flex-wrap: wrap; gap: 10px; }
.cal-cab .cab-acciones { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.cal-nav { display: flex; align-items: center; gap: 6px; margin: -2px 0 14px; flex-wrap: wrap; }
.cal-flecha { width: 36px; height: 36px; display: inline-grid; place-items: center; border-radius: 999px; border: 1px solid var(--linea); background: #fff; color: var(--tinta); text-decoration: none; font-size: 20px; line-height: 1; }
.cal-flecha:hover { background: var(--suave); }
.cal-titulo { font-size: 18px; font-weight: 800; margin: 0 8px; }
.kpis-hotel a.kpi { text-decoration: none; color: inherit; }
.aviso-cobro { background: #fff6dd; color: var(--ambar); border-radius: 12px; padding: 10px 14px; font-weight: 700; font-size: 14px; margin: 0 0 14px; }
.grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.grid3 h2 small { display: inline; font-size: 13px; color: var(--gris); font-weight: 700; margin-left: 4px; }
@media (max-width: 980px) { .grid3 { grid-template-columns: 1fr; } }
.mas-link { font-weight: 700; font-size: 13px; text-decoration: none; }
.pron-kpis { display: flex; gap: 28px; flex-wrap: wrap; margin: 4px 0 14px; }
.pron-kpis div { display: grid; }
.pron-kpis b { font-size: 22px; font-weight: 800; letter-spacing: -.01em; }
.pron-kpis span { font-size: 12.5px; color: var(--gris); font-weight: 600; }
.barras14 { display: grid; grid-template-columns: repeat(14, minmax(0, 1fr)); gap: 6px; align-items: end; }
.b14 { display: grid; justify-items: center; gap: 3px; text-decoration: none; color: var(--gris); }
.b14-col { width: 100%; max-width: 34px; height: 90px; background: var(--suave); border-radius: 8px; display: flex; align-items: flex-end; overflow: hidden; }
.b14-col i { display: block; width: 100%; background: var(--salvia); border-radius: 8px 8px 0 0; }
.b14.finde .b14-col i { background: #5f8f63; }
.b14.hoy .b14-col i { background: var(--verde); }
.b14 small { font-size: 10px; font-weight: 700; }
.b14 em { font-style: normal; font-size: 12.5px; font-weight: 800; color: var(--tinta); }
.b14.hoy em { color: var(--verde); }
.b14:hover .b14-col { outline: 2px solid var(--salvia); }

/* Semana: la cinta */
.cinta-caja { padding: 12px 12px 6px; }
.cinta { overflow-x: auto; }
.cinta-fila { display: grid; grid-template-columns: 150px minmax(560px, 1fr); align-items: stretch; }
.cinta-nombre { position: sticky; left: 0; z-index: 3; background: #fff; padding: 6px 10px 6px 4px; font-size: 13px; display: flex; flex-direction: column; justify-content: center; border-right: 1px solid var(--linea); }
.cinta-nombre a { color: var(--tinta); font-weight: 800; text-decoration: none; }
.cinta-nombre small { color: var(--gris); font-size: 11px; font-weight: 600; }
.cinta-num { color: var(--gris); font-weight: 600; font-size: 12px; }
.cinta-pista { display: grid; position: relative; }
.cinta-dias .cinta-dia { text-align: center; padding: 4px 0 8px; color: var(--gris); }
.cinta-dia small { display: block; font-size: 10.5px; font-weight: 700; }
.cinta-dia b { font-size: 15px; color: var(--tinta); }
.cinta-dia.finde b { color: var(--tinta); } .cinta-dia.finde { background: #f8faf8; border-radius: 10px 10px 0 0; }
.cinta-dia.hoy b { background: var(--verde); color: #fff; border-radius: 999px; padding: 2px 8px; }
.cinta-grupo { border-top: 1px solid var(--linea); }
.cinta-tipo { background: #f7f9f7; }
.cinta-tipo .cinta-nombre { background: #f7f9f7; }
.cinta-libre { text-align: center; font-size: 12px; font-weight: 800; padding: 7px 0; margin: 3px 2px; border-radius: 7px; }
.cinta-libre.libre { color: #2d6a36; background: #eef6ef; }
.cinta-libre.alto { color: #6b4a00; background: #ffe7a8; }
.cinta-libre.lleno { color: #fff; background: var(--verde); }
.cinta-libre.cerrado { color: var(--gris); background: repeating-linear-gradient(45deg, #eee, #eee 4px, #f7f7f7 4px, #f7f7f7 8px); }
.cinta-fila:not(.cinta-tipo):not(.cinta-dias) .cinta-pista { min-height: 44px; }
.cinta-celda { grid-row: 1; border-left: 1px solid #edf1ed; display: block; }
.cinta-celda.hoy { background: rgba(140, 175, 143, .12); }
.cinta-celda.pasado { background: repeating-linear-gradient(-45deg, transparent, transparent 6px, #f6f8f6 6px, #f6f8f6 12px); }
a.cinta-celda:hover { background: var(--suave); }
a.cinta-celda:hover::after { content: "+"; display: grid; place-items: center; height: 100%; color: var(--verde); font-weight: 800; }
.cinta-barra { grid-row: 1; z-index: 2; margin: 5px 1px; border-radius: 9px; padding: 4px 9px; min-width: 0; text-decoration: none; display: flex; flex-direction: column; justify-content: center; overflow: hidden; box-shadow: 0 1px 2px rgba(0,0,0,.08); transition: transform .08s ease; }
.cinta-barra:hover { transform: translateY(-1px); box-shadow: 0 3px 8px rgba(0,0,0,.14); }
.cinta-barra b { font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cinta-barra small { font-size: 10.5px; opacity: .85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cinta-barra.corta-ini { border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: 0; }
.cinta-barra.corta-fin { border-top-right-radius: 0; border-bottom-right-radius: 0; margin-right: 0; }
.cinta-barra.pagada, .ley-b.pagada { background: #2f6b3a; color: #fff; }
.cinta-barra.porcobrar, .ley-b.porcobrar { background: #f4c64e; color: #3d2c00; }
.cinta-barra.pendiente, .ley-b.pendiente { background: #fff; color: #6b4a00; outline: 2px dashed #e0a800; outline-offset: -2px; }
.cinta-barra.canal, .ley-b.canal { background: #3c6e9f; color: #fff; }
.cinta-fila.de-mas .cinta-num { color: var(--rojo); }
.ley-b { display: inline-block; width: 18px; height: 10px; border-radius: 4px; vertical-align: middle; }
.cinta-ley { margin: 10px 4px 4px; }

/* Mes */
.mes-caja { padding: 12px; }
.mes-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.mes-cab div { font-size: 12px; font-weight: 700; color: var(--gris); text-align: left; padding: 0 6px 4px; }
.mes-dia { min-height: 112px; border: 1px solid var(--linea); border-radius: 12px; padding: 7px 8px; display: flex; flex-direction: column; gap: 4px; text-decoration: none; color: var(--tinta); background: #fff; min-width: 0; }
.mes-dia:hover { border-color: var(--salvia); box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.mes-dia.fuera { opacity: .45; }
.mes-dia.pasado { background: #fafbfa; }
.mes-dia.hoy { border: 2px solid var(--verde); }
.mes-num { font-weight: 800; font-size: 14px; }
.mes-dia.hoy .mes-num { color: var(--verde); }
.mes-ocup { height: 6px; border-radius: 999px; background: var(--suave); overflow: hidden; }
.mes-ocup i { display: block; height: 100%; background: var(--salvia); }
.mes-ocup.alto i { background: #e0a800; } .mes-ocup.lleno i { background: var(--verde); }
.mes-pct { font-size: 11px; color: var(--gris); font-weight: 600; }
.mes-chip { font-size: 11.5px; font-weight: 700; border-radius: 6px; padding: 2px 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mes-chip.pagada { background: #e3f0e5; color: #1f4f28; }
.mes-chip.porcobrar { background: #fff1c7; color: #5c4300; }
.mes-chip.pendiente { background: #fff; color: #6b4a00; outline: 1px dashed #e0a800; }
.mes-chip.canal { background: #e3edf7; color: #1f4466; }
.mes-mas, .mes-salen { font-size: 11px; color: var(--gris); font-weight: 600; }
@media (max-width: 720px) {
  .mes-grid { gap: 3px; }
  .mes-dia { min-height: 64px; padding: 4px; border-radius: 8px; }
  .mes-pct, .mes-chip, .mes-mas, .mes-salen { display: none; }
  .cinta-fila { grid-template-columns: 96px minmax(520px, 1fr); }
  .barras14 { gap: 3px; }
}

/* iCal y estadía (072) */
.cinta-barra.externo, .ley-b.externo { background: #ff5a5f; color: #fff; }
.mes-chip.externo { background: #ffe5e6; color: #8a1c22; }
.ical-lista { list-style: none; padding: 0; margin: 0 0 12px; display: grid; gap: 12px; }
.ical-lista li { border: 1px solid var(--linea); border-radius: 12px; padding: 12px; display: grid; gap: 8px; }
.ical-lista li small { display: block; color: var(--gris); font-size: 12.5px; margin-top: 2px; }
.ical-lista li form { justify-self: start; }
.copiar-fila { display: flex; gap: 8px; }
.copiar-fila input { flex: 1; min-width: 0; font-size: 12.5px; }
.ayuda-ical { margin-top: 12px; font-size: 14px; }
.ayuda-ical summary { cursor: pointer; font-weight: 700; color: var(--verde); }
.ayuda-ical code { word-break: break-all; font-size: 12px; }
.copiar-fila input { width: auto; flex: 1 1 auto; }
.copiar-fila .btn, #ical form > .btn.chico, .ical-lista .btn.chico { width: auto; flex: none; }

/* Habitaciones y tarifas: tarjetas con foto y herramientas plegables */
.sub-titulo { margin: -8px 0 16px; }
.habs2 { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
@media (min-width: 800px) { .habs.habs2 { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); } }
.hab-card2 { display: flex; flex-direction: column; background: var(--caja); border: 1px solid var(--linea); border-radius: 18px; overflow: hidden; text-decoration: none; color: var(--tinta);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s; }
.hab-card2:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(22,36,26,.10); border-color: #c9dccb; }
.hab-card2.inactiva { opacity: .6; }
.hab-foto { position: relative; aspect-ratio: 16 / 10; background: #dfe9df center / cover no-repeat; display: grid; place-items: center; }
.hab-foto.vacia { background: repeating-linear-gradient(135deg, #eef4ee 0 12px, #e6efe6 12px 24px); }
.hab-foto-txt { font-weight: 800; font-size: 13px; color: var(--verde); background: rgba(255,255,255,.85); padding: 6px 12px; border-radius: 999px; }
.hab-pills { position: absolute; top: 10px; left: 10px; display: flex; gap: 6px; }
.pill { font-size: 11.5px; font-weight: 800; padding: 4px 10px; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--verde); box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.pill.gris { color: var(--gris); }
.hab-info { display: grid; gap: 6px; padding: 14px 16px 16px; }
.hab-info > b { font-size: 17px; letter-spacing: -.01em; }
.hab-datos { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 12.5px; color: var(--gris); font-weight: 600; }
.hab-datos span + span::before { content: "·"; margin-right: 10px; color: #b8c4b9; }
.hab-precio { margin-top: 2px; }
.hab-precio b { font-size: 20px; font-weight: 800; color: var(--verde); }
.hab-precio small { color: var(--gris); font-size: 12.5px; font-weight: 600; }
.hab-planes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
.hab-planes span { font-size: 11.5px; font-weight: 700; background: #f1f5f0; color: #3d5a42; border-radius: 8px; padding: 3px 8px; }
.hab-planes span.off { opacity: .55; text-decoration: line-through; }
.hab-nueva { border: 2px dashed #c9dccb; background: transparent; align-items: center; justify-content: center; text-align: center; padding: 28px 16px; gap: 4px; min-height: 220px; }
.hab-nueva span { font-size: 34px; font-weight: 300; color: var(--verde); line-height: 1; }
.hab-nueva b { font-size: 15px; } .hab-nueva small { color: var(--gris); font-size: 12.5px; }
.hab-nueva:hover { background: #f6faf6; }
.herramientas { margin-bottom: 18px; }
.herr-cuerpo { padding: 0 18px 18px; }
.herr-cuerpo > .nota:first-child { margin-top: 0; }

/* Canales de los hoteles (076): iframe de Channex */
.canales-iframe { width: 100%; height: calc(100vh - 160px); min-height: 560px; border: 1px solid var(--linea, #e5e7eb); border-radius: 14px; background: #fff; }

/* Canales de venta del hotel (076): tarjetas por canal, pasos, KPIs y feed */
.cx-hero { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.cx-hero h1 { margin-bottom: 14px; }
.cx-hero .sub-titulo { max-width: 640px; }
.cx-sync { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 800; padding: 8px 14px; border-radius: 999px; background: #e6f3e7; color: #224425; white-space: nowrap; }
.cx-sync i { width: 8px; height: 8px; border-radius: 50%; background: #2e9a4b; box-shadow: 0 0 0 4px rgba(46,154,75,.18); }
.cx-sync.envio { background: #fff4d6; color: #7a5a00; } .cx-sync.envio i { background: #d9a400; box-shadow: 0 0 0 4px rgba(217,164,0,.2); animation: cx-pulso 1.2s ease-in-out infinite; }
.cx-sync.pausa { background: #fde8e6; color: #8a2a22; } .cx-sync.pausa i { background: #d0493c; box-shadow: 0 0 0 4px rgba(208,73,60,.18); }
@keyframes cx-pulso { 50% { opacity: .35; } }
/* Números del Channel Manager: una sola banda oscura (como "tus comisiones" en la vista de Rezzerva), distinta de las cajas blancas de abajo. */
.cx-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); margin: 4px 0 22px; background: #0f2414; border-radius: 18px; overflow: hidden;
  box-shadow: 0 12px 30px rgba(15,36,20,.18); }
.cx-kpis > div { padding: 18px 20px; display: grid; gap: 2px; border-left: 1px solid rgba(255,255,255,.08); }
.cx-kpis > div:first-child { border-left: 0; }
.cx-kpis small { font-size: 11px; font-weight: 700; color: rgba(255,255,255,.6); text-transform: uppercase; letter-spacing: .06em; }
.cx-kpis b { font-size: 28px; font-weight: 800; color: #a8feaf; letter-spacing: -.02em; }
.cx-kpis span { font-size: 12px; color: rgba(255,255,255,.7); }
@media (max-width: 620px) { .cx-kpis { grid-template-columns: 1fr 1fr; } .cx-kpis > div:nth-child(3) { border-left: 0; } .cx-kpis > div:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.08); } }
.cx-titulo { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 10px; }
.cx-titulo h2 { margin: 0; } .cx-titulo .btn { width: auto; }
.cx-canales { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; margin-bottom: 22px; }
.cx-canal { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; gap: 4px 12px; align-items: center; padding: 16px; background: var(--caja);
  border: 1px solid var(--linea); border-radius: 18px; text-decoration: none; color: var(--tinta); transition: transform .15s ease, box-shadow .15s ease, border-color .15s; }
a.cx-canal:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(22,36,26,.10); border-color: #c9dccb; }
.cx-canal.activo { border-color: #bfdcc3; background: linear-gradient(180deg, #f7fcf7, var(--caja)); }
.cx-canal.apagado { opacity: 1; }
.cx-canal.cx-mas { border-style: dashed; background: transparent; }
.cx-marca { grid-row: span 2; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font-weight: 900; font-size: 20px; color: #fff; background: var(--c); }
.cx-canal-txt { display: grid; gap: 2px; } .cx-canal-txt b { font-size: 15.5px; } .cx-canal-txt small { font-size: 12.5px; color: var(--gris); line-height: 1.35; }
.cx-estado { grid-column: 2; justify-self: start; font-size: 11.5px; font-weight: 800; padding: 3px 10px; border-radius: 999px; background: var(--suave); color: var(--gris); margin-top: 4px; }
.cx-estado.on { background: #e6f3e7; color: #224425; } .cx-estado.pausa { background: #fff4d6; color: #7a5a00; }
.cx-pasos-caja h2 { margin-bottom: 14px; }
.cx-pasos { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 12px; }
@media (min-width: 900px) { .cx-pasos { grid-template-columns: repeat(3, 1fr); } }
.cx-pasos li { display: flex; gap: 12px; padding: 14px; border: 1px solid var(--linea); border-radius: 14px; background: #fbfdfb; }
.cx-pasos li > span { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; background: var(--verde); color: #fff; }
.cx-pasos li.hecho > span { background: #2e9a4b; font-size: 0; } .cx-pasos li.hecho > span::after { content: "✓"; font-size: 15px; }
.cx-pasos b { display: block; margin-bottom: 2px; } .cx-pasos p { margin: 0; font-size: 13.5px; color: var(--gris); }
.cx-pasos-caja .btn[disabled] { opacity: .5; cursor: not-allowed; }
.cx-grid { display: grid; gap: 16px; } @media (min-width: 980px) { .cx-grid { grid-template-columns: 1.6fr 1fr; align-items: start; } }
.cx-feed ul { list-style: none; margin: 0; padding: 0; }
.cx-feed li { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: start; padding: 12px 0; border-top: 1px solid var(--linea); }
.cx-feed li:first-child { border-top: 0; }
.cx-feed li div { display: grid; gap: 2px; } .cx-feed li small { color: var(--gris); font-size: 12.5px; }
.cx-punto { width: 10px; height: 10px; border-radius: 50%; margin-top: 6px; background: #2e9a4b; }
.cx-feed li.cambio .cx-punto { background: #d9a400; } .cx-feed li.cancelada .cx-punto { background: #d0493c; }
.cx-feed-der { display: grid; justify-items: end; gap: 2px; font-size: 13px; font-weight: 700; }
.cx-vacio { padding: 18px; border: 2px dashed #dbe6dc; border-radius: 14px; text-align: center; } .cx-vacio p { margin: 4px 0 0; }
.cx-sync-caja dl { margin: 0 0 14px; display: grid; gap: 8px; }
.cx-sync-caja dl div { display: flex; justify-content: space-between; gap: 12px; font-size: 13.5px; border-bottom: 1px dashed var(--linea); padding-bottom: 6px; }
.cx-sync-caja dt { color: var(--gris); } .cx-sync-caja dd { margin: 0; font-weight: 700; text-align: right; }
.cx-sync-caja .btn { width: auto; }

/* Importar con IA (078): subir, esperar y revisar */
.im-subir { display: grid; gap: 18px; padding: 20px; border-radius: 20px; margin: 0 0 22px; color: #eaf3ea;
  background: radial-gradient(120% 140% at 0% 0%, #2f5a33 0%, var(--oscuro) 60%); box-shadow: 0 12px 30px rgba(22,36,26,.18); }
@media (min-width: 900px) { .im-subir { grid-template-columns: 1fr 1.15fr; align-items: center; padding: 26px 28px; } }
.im-subir h2 { color: #fff; font-size: 19px; margin: 10px 0 6px; letter-spacing: -.01em; }
.im-subir p { margin: 0; color: #c8dbc9; font-size: 14px; }
.im-chispa { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--acento); }
.im-chispa svg, .im-form .btn svg, .im-compacta summary svg { width: 20px; height: 20px; fill: var(--sobre-acento); }
.im-form { display: grid; gap: 10px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 16px; padding: 14px; }
.im-zona { position: relative; display: grid; justify-items: center; gap: 4px; padding: 18px 12px; border: 2px dashed rgba(255,255,255,.35); border-radius: 14px;
  text-align: center; cursor: pointer; transition: background .15s, border-color .15s; }
.im-zona:hover, .im-zona.con-archivos { background: rgba(168,254,175,.08); border-color: var(--acento); }
.im-zona input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.im-zona svg { width: 26px; height: 26px; fill: none; stroke: var(--acento); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.im-zona b { color: #fff; font-size: 15px; } .im-zona small { color: #b7cbb8; font-size: 12.5px; word-break: break-word; }
.im-o { display: flex; align-items: center; gap: 10px; color: #9fb5a1; font-size: 12px; font-weight: 700; text-transform: uppercase; }
.im-o::before, .im-o::after { content: ""; flex: 1; height: 1px; background: rgba(255,255,255,.15); }
.im-url span { color: #c8dbc9; } .im-url input { background: rgba(255,255,255,.95); }
.im-form .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--acento); color: var(--sobre-acento); border-color: var(--acento); }
.im-compacta { display: block; padding: 0; background: var(--caja); color: var(--tinta); box-shadow: none; border: 1px solid var(--linea); }
.im-compacta summary { display: flex; align-items: center; gap: 12px; padding: 12px 16px; cursor: pointer; list-style: none; }
.im-compacta summary::-webkit-details-marker { display: none; }
.im-compacta summary svg { padding: 8px; width: 36px; height: 36px; border-radius: 10px; background: var(--acento); flex: none; }
.im-compacta summary span { display: grid; } .im-compacta summary small { color: var(--gris); font-size: 12.5px; }
.im-compacta[open] { background: var(--oscuro); color: #eaf3ea; } .im-compacta[open] summary small { color: #b7cbb8; }
.im-compacta .im-form { margin: 0 14px 14px; }
.im-leyendo { text-align: center; padding: 36px 20px; }
.im-leyendo h1 { margin-top: 14px; }
.im-puntos { display: inline-flex; gap: 8px; } .im-puntos i { width: 12px; height: 12px; border-radius: 50%; background: var(--verde); animation: im-salto 1.1s ease-in-out infinite; }
.im-puntos i:nth-child(2) { animation-delay: .15s; background: var(--salvia); } .im-puntos i:nth-child(3) { animation-delay: .3s; background: #b9d7bb; }
@keyframes im-salto { 0%, 80%, 100% { transform: translateY(0); opacity: .6; } 40% { transform: translateY(-8px); opacity: 1; } }
.im-dudas { margin: 0 0 12px; padding: 10px 14px 10px 32px; background: #fff7e0; border: 1px solid #f0dfa8; border-radius: 12px; color: #6b4b00; font-size: 13.5px; }
.im-dudas.general { padding-left: 14px; } .im-dudas.general ul { margin: 6px 0 0; padding-left: 18px; }
.im-revision { display: grid; gap: 16px; padding-bottom: 90px; }
.im-item { background: var(--caja); border: 1px solid var(--linea); border-radius: 18px; overflow: hidden; }
.im-item > header { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: linear-gradient(180deg, #f4f9f4, #fff); border-bottom: 1px solid var(--linea); }
.im-item > .im-dudas, .im-item > .err { margin: 12px 16px 0; }
.im-titulo { flex: 1; min-width: 0; font: inherit; font-size: 17px; font-weight: 800; border: 1px solid transparent; border-radius: 10px; padding: 6px 8px; background: transparent; }
.im-titulo:hover, .im-titulo:focus { border-color: var(--linea); background: #fff; }
.im-tipo { width: auto; }
.im-check { position: relative; flex: none; width: 26px; height: 26px; cursor: pointer; }
.im-check input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.im-check span { position: absolute; inset: 0; border-radius: 8px; border: 2px solid #b6c9b8; background: #fff; }
.im-check input:checked + span { background: var(--verde); border-color: var(--verde); }
.im-check input:checked + span::after { content: "✓"; position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font-weight: 900; font-size: 15px; }
.im-check.chico { width: 22px; height: 22px; align-self: end; margin-bottom: 9px; }
.im-cuerpo { padding: 4px 16px 16px; }
.im-numeros { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; align-items: end; }
.im-filas { display: grid; gap: 8px; }
.im-fila { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 8px; align-items: end; padding: 10px; border-radius: 12px; background: #f6f9f6; }
.im-fila.tramo { grid-template-columns: repeat(2, minmax(118px, 220px)); }
.im-fila.temporada:has(.im-check input:not(:checked)) > .campo { opacity: .45; }
.campo.falta input, .campo.falta select { border-color: #e2b93b; background: #fffbea; box-shadow: 0 0 0 3px rgba(226,185,59,.15); }
.campo.precio input { font-weight: 800; }
.im-bloque { margin-top: 6px; }
.im-seg { display: inline-flex; padding: 3px; border-radius: 12px; background: var(--suave); margin-bottom: 10px; }
.im-seg label { position: relative; } .im-seg input { position: absolute; opacity: 0; }
.im-seg span { display: block; padding: 6px 12px; border-radius: 9px; font-size: 13px; font-weight: 700; color: var(--gris); cursor: pointer; }
.im-seg input:checked + span { background: #fff; color: var(--verde); box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.im-bloque:has(input[value=persona]:checked) .si-grupo, .im-bloque:has(input[value=grupo]:checked) .si-persona,
.im-bloque:has(input[value=fijo]:checked) .si-demanda, .im-bloque:has(input[value=demanda]:checked) .si-fijo { display: none; }
.im-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.im-chips label { position: relative; } .im-chips input { position: absolute; opacity: 0; }
.im-chips span { display: block; padding: 5px 11px; border-radius: 999px; border: 1px solid var(--linea); font-size: 12.5px; font-weight: 700; color: var(--gris); cursor: pointer; background: #fff; }
.im-chips input:checked + span { background: #e6f3e7; border-color: #bfdcc3; color: var(--verde); }
.im-mas { margin-top: 14px; border-top: 1px dashed var(--linea); padding-top: 10px; }
.im-mas summary { cursor: pointer; font-weight: 700; color: var(--verde); font-size: 13.5px; }
.im-mas[open] summary { margin-bottom: 10px; }
.im-pie { position: sticky; bottom: 0; display: flex; align-items: center; gap: 10px; justify-content: flex-end; padding: 12px 16px; margin: 0 -4px;
  background: rgba(255,255,255,.92); backdrop-filter: blur(8px); border: 1px solid var(--linea); border-radius: 16px; box-shadow: 0 -6px 20px rgba(22,36,26,.08); z-index: 5; }
.im-pie span { margin-right: auto; font-weight: 700; color: var(--gris); }
.im-pie .btn { width: auto; }

/* Nueva habitación (7 oct): tres pasos cortos */
.np { display: grid; gap: 14px; max-width: 760px; }
.np-paso { background: var(--caja); border: 1px solid var(--linea); border-radius: 18px; padding: 16px 18px; }
.np-cab { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.np-cab > span:last-child { display: grid; } .np-cab small { color: var(--gris); font-size: 12.5px; }
.np-n { flex: none; width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; font-weight: 800; background: #e6f3e7; color: var(--verde); }
body[data-sector="hoteles"] .np-n { background: #e3f3fd; color: #155277; }
.np-numeros { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; align-items: end; }
.np-precio input { font-size: 20px; font-weight: 800; max-width: 220px; }
.np-mas { margin-top: 6px; } .np-mas summary { cursor: pointer; font-weight: 700; color: var(--verde); font-size: 13.5px; }
.np-mas summary i { color: var(--gris); font-weight: 500; } .np-mas[open] summary { margin-bottom: 10px; }
.np-pie { display: flex; gap: 10px; justify-content: flex-end; } .np-pie .btn { width: auto; }
.formu.im-form, .formu.im-revision { max-width: none; }
.im-form .btn, .im-pie .btn { margin-top: 0; }
.im-form .campo { margin-top: 0; }
.im-revision h3 { margin: 16px 0 8px; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--gris); }
.im-item .im-titulo { flex: 1; width: auto; font-size: 17px; font-weight: 800; border-color: transparent; background: transparent; padding: 6px 8px; }
.im-item .im-titulo:hover, .im-item .im-titulo:focus { border-color: var(--linea); background: #fff; }
.im-item .im-tipo { width: auto; padding: 7px 10px; }
.im-fila .campo, .im-numeros .campo { margin-top: 0; }
.im-numeros .chk { align-self: center; }
@media (min-width: 1000px) {
  .im-fila.tarifa { grid-template-columns: minmax(150px, 1.5fr) minmax(150px, 1.4fr) repeat(3, minmax(88px, .8fr)) minmax(96px, .7fr) minmax(120px, 1.1fr); }
  .im-fila.temporada { grid-template-columns: 26px minmax(150px, 1.4fr) minmax(140px, 1.2fr) minmax(150px, 1fr) minmax(150px, 1fr) minmax(100px, .8fr); }
}
.im-fila .campo > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Revisión en acordeón (7 oct): encabezado claro cerrado, verde intermedio abierto */
.im-item { position: relative; }
.im-item > .im-check { position: absolute; top: 14px; left: 16px; z-index: 2; }
.im-acordeon > summary { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 12px 16px 12px 56px; cursor: pointer; list-style: none;
  background: linear-gradient(180deg, #f4f9f4, #fff); border-bottom: 1px solid transparent; transition: background .15s, color .15s; }
.im-acordeon > summary::-webkit-details-marker { display: none; }
.im-acordeon > summary:hover { background: #eef5ee; }
.im-nombre { flex: 1; min-width: 0; font-size: 17px; font-weight: 800; letter-spacing: -.01em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.im-flecha { flex: none; width: 10px; height: 10px; border-right: 2.5px solid currentColor; border-bottom: 2.5px solid currentColor; transform: rotate(45deg) translate(-2px, -2px); transition: transform .2s; opacity: .7; }
.im-acordeon[open] > .im-flecha, .im-acordeon[open] > summary .im-flecha { transform: rotate(-135deg) translate(-2px, -2px); }
.im-acordeon[open] > summary { background: #3f7044; color: #fff; border-bottom-color: #36603a; }
.im-acordeon[open] > summary:hover { background: #467a4b; }
.im-acordeon[open] > summary .pill { background: rgba(255,255,255,.16); color: #fff; box-shadow: none; }
.im-revisar { background: #fff4d6 !important; color: #7a5a00 !important; }
.im-item > .im-check input:checked + span { border-color: #fff; }
.im-item:has(> .im-check input:not(:checked)) { opacity: .55; }
.im-item:has(> .im-check input:not(:checked)) .im-acordeon > summary { background: #f4f6f4; color: var(--gris); }
.im-item:has(> .im-check input:not(:checked)) .im-acordeon > :not(summary) { display: none; }
.im-acordeon > .im-dudas, .im-acordeon > .err { margin: 12px 16px 0; }
.im-nombre-campo { margin: 12px 0 14px; }
.im-nombre-campo .campo { margin-top: 0; }

/* Tours de la cuenta de tours en el panel del hotel */
.ir-tours { display: inline; margin: 0; }
.enlace-btn { background: none; border: 0; padding: 0; font: inherit; color: var(--verde); text-decoration: underline; cursor: pointer; }
.enlace-btn.mas-link { text-decoration: none; font-weight: 700; font-size: 13px; }
.tabs-res { margin-bottom: 12px; }

/* Número de habitación y arrastrar en la cinta (081) */
.cinta-barra[draggable] { cursor: grab; }
.cinta-barra.arrastrando { opacity: .45; }
.cinta-barra.sin-asignar { outline: 1.5px dashed rgba(34, 68, 37, .45); outline-offset: -2px; }
.cinta-celda.soltar-ok { background: rgba(63, 112, 68, .22) !important; }
.cinta-celda.soltar-no { background: rgba(190, 60, 50, .12) !important; }
.hab-asignar { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; max-width: none; }
.hab-asignar .campo { flex: 1 1 220px; margin: 0; }
.cinta-fila.sin-asig .cinta-num { color: var(--gris, #6b7a6d); font-style: italic; }
.cx-marca.cx-logo { padding: 0; object-fit: cover; background: #fff; box-shadow: 0 0 0 1px rgba(0, 0, 0, .06); }

/* Reportes: título de la caja con los botones de exportar, discretos. */
.caja-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.caja-cab h2 { margin: 0; }
.exportar { display: inline-flex; gap: 4px; }
.exportar a { font-size: 12px; font-weight: 600; color: var(--gris); text-decoration: none; padding: 3px 9px; border: 1px solid var(--linea); border-radius: 999px; background: transparent; }
.exportar a:hover { color: var(--verde); border-color: var(--salvia); background: var(--suave); }
.cx-juntar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 10px 12px; margin: 0 0 12px;
  background: var(--suave); border-radius: 12px; } .cx-juntar p { margin: 0; } .cx-juntar .btn { width: auto; }
/* Botón de las funciones con IA: que se note (9 oct). */
.btn.btn-ia { display: inline-flex; align-items: center; gap: 8px; padding: 14px 22px; font-size: 15px; border-radius: 999px;
  background: linear-gradient(135deg, #224425, #3d7a44); color: #fff; box-shadow: 0 6px 18px rgba(34, 68, 37, .25); }
.btn.btn-ia::before { content: "✦"; color: #a8feaf; font-size: 15px; }
.btn.btn-ia:hover { filter: brightness(1.1); box-shadow: 0 8px 22px rgba(34, 68, 37, .32); }
/* Cajas con IA (9 oct, v2): fondo verde oscuro, ícono brillante a la par del título y el sello debajo. */
.ia-caja { position: relative; overflow: hidden; border: 0; color: #e9f1e7;
  background: radial-gradient(110% 130% at 100% 0%, rgba(168, 254, 175, .16) 0%, rgba(168, 254, 175, 0) 55%), linear-gradient(160deg, #1f3a23 0%, #1a2e1d 60%, #15251a 100%);
  box-shadow: 0 14px 34px rgba(20, 40, 24, .28); }
.ia-encabezado { display: flex; align-items: center; gap: 16px; margin: 2px 0 14px; }
.ia-icono { width: 62px; height: 62px; flex: none; color: #15251a; padding: 6px; border-radius: 18px; background: #a8feaf;
  box-shadow: 0 0 0 6px rgba(168, 254, 175, .12), 0 8px 22px rgba(168, 254, 175, .25); }
.ia-titulo { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.ia-caja .ia-titulo h2 { margin: 0; padding: 0; color: #fff; font-size: 20px; }
.ia-caja .ia-titulo h2::before { display: none; }
.ia-titulo .ia-sello { margin: 0; background: rgba(168, 254, 175, .16); color: #a8feaf; border: 1px solid rgba(168, 254, 175, .4); }
.ia-caja p, .ia-caja .nota, .ia-caja .ia-cuando { color: #c8d6c6; }
.ia-caja b { color: #fff; }
.ia-caja .btn.btn-ia { background: #a8feaf; color: #12241a; box-shadow: 0 8px 22px rgba(168, 254, 175, .25); }
.ia-caja .btn.btn-ia::before { color: #224425; }
.ia-caja .btn.sec { background: transparent; color: #e9f1e7; border-color: rgba(233, 241, 231, .35); }
.ia-caja .ia-hechas summary, .ia-caja .ia-limites summary { color: #a8feaf; }
.ia-caja .campo span { color: #c8d6c6; }
/* Tarjetas de propuestas: claras sobre el fondo oscuro, como siempre. */
.ia-caja .ia-lista li, .ia-caja .seo-lista li { color: var(--tinta); }
.ia-caja .ia-lista li p, .ia-caja .ia-lista li .nota, .ia-caja .seo-lista li p { color: var(--gris); }
.ia-caja .ia-lista li b, .ia-caja .seo-lista li b { color: var(--tinta); }
.ia-caja .ia-lista li .btn.sec, .ia-caja .seo-lista li .btn.sec { color: var(--verde); border-color: var(--linea); }
.ia-caja .seo-lista .seo-nuevo { color: var(--tinta); }
/* SEO: puntaje y pasos sobre oscuro. */
.ia-caja .seo-num b { color: #fff; } .ia-caja .seo-num small { color: #c8d6c6; }
.ia-caja .web-pasos li { color: #e9f1e7; }
.ia-caja .web-pasos li span { border-color: rgba(233, 241, 231, .35); }
.ia-caja .web-pasos li.si span { background: #a8feaf; border-color: #a8feaf; color: #12241a; }
.ia-caja .seo-kw span { background: rgba(168, 254, 175, .14); color: #a8feaf; }
.ia-caja.ia-bloqueada .ia-encabezado { justify-self: start; }
@media (max-width: 600px) { .ia-icono { width: 52px; height: 52px; } .ia-caja .ia-titulo h2 { font-size: 18px; } }
.ia-caja .seo-num { background: radial-gradient(closest-side, #1a2e1d 78%, transparent 79%), conic-gradient(#a8feaf calc(var(--p) * 1%), rgba(233, 241, 231, .18) 0); }
/* Loader de la IA (9 oct): cubre la caja mientras la IA trabaja. */
.ia-caja .ia-pensando { position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 24px; text-align: center;
  background: rgba(21, 37, 26, .92); backdrop-filter: blur(3px); animation: ia-entra .3s ease; }
@keyframes ia-entra { from { opacity: 0; } to { opacity: 1; } }
.ia-orbe { position: relative; width: 74px; height: 74px; }
.ia-orbe i { position: absolute; inset: 0; border-radius: 50%; border: 3px solid transparent; border-top-color: #a8feaf; animation: ia-gira 1.4s linear infinite; }
.ia-orbe i:nth-child(2) { inset: 10px; border-top-color: rgba(168, 254, 175, .6); animation-duration: 1.9s; animation-direction: reverse; }
.ia-orbe i:nth-child(3) { inset: 22px; border: 0; background: #a8feaf; box-shadow: 0 0 22px rgba(168, 254, 175, .7); animation: ia-late 1.6s ease-in-out infinite; }
@keyframes ia-gira { to { transform: rotate(360deg); } }
@keyframes ia-late { 0%, 100% { transform: scale(.7); opacity: .7; } 50% { transform: scale(1); opacity: 1; } }
.ia-pensando-txt { margin: 0; min-height: 1.5em; font-size: 17px; font-weight: 700; color: #fff; opacity: 0; transform: translateY(4px); transition: opacity .3s, transform .3s; }
.ia-pensando-txt.on { opacity: 1; transform: none; }
.ia-barra { width: min(320px, 80%); height: 4px; border-radius: 4px; background: rgba(233, 241, 231, .15); overflow: hidden; }
.ia-barra span { display: block; width: 40%; height: 100%; border-radius: 4px; background: #a8feaf; animation: ia-barra 1.6s ease-in-out infinite; }
@keyframes ia-barra { 0% { transform: translateX(-100%); } 100% { transform: translateX(260%); } }
.ia-caja .ia-pensando small { color: #c8d6c6; font-size: 13px; }
@media (prefers-reduced-motion: reduce) { .ia-orbe i, .ia-barra span { animation: none; } }

/* ==========================================================
   Panel liviano (9 oct, Mario): como la Cuenta de Google.
   Un solo fondo verde clarito para el menú y el contenido: lo que
   cambia al navegar son las tarjetas blancas. Menú con pills (activa
   en verde clarito, hover más tenue), íconos en círculos, títulos
   grandes y livianos, links al pie en verde intermedio.
   ========================================================== */
:root {
  --fondo: #eef3ea;
  --pill-on: #d6e9d2;
  --pill-hover: #dfe7dc;
  --pill-tinta: #17361c;
  --tinta-menu: #233127;
  --verde-medio: #4f7d55;
  --ico-fondo: #e2ede0;
  --ico-tinta: #2f5a35;
}
html, body.con-lateral, body.modo-plataforma { background: var(--fondo); }

@media (min-width: 1000px) {
  .con-lateral { padding-left: 288px; }
  .lateral, .modo-plataforma .lateral { width: 288px; padding: 22px 18px; background: var(--fondo); color: var(--tinta-menu); }
  .lat-marca, .modo-plataforma .lat-marca { border-bottom: 0; padding: 4px 10px 16px; }
  .lat-marca .marca, .lat-marca .marca span, .modo-plataforma .lat-marca .marca { color: var(--tinta-menu); }
  .lat-marca .marca small, .modo-plataforma .lat-marca .marca small { color: var(--verde-medio); opacity: 1; letter-spacing: .02em; text-transform: none; font-size: 12px; }
  .lat-marca .av-negocio { background: var(--pill-on); color: var(--pill-tinta); border-radius: 50%; }
  .lateral nav { gap: 4px; }
  .lateral nav p, .modo-plataforma .lateral nav p { margin: 18px 18px 6px; font-size: 11.5px; font-weight: 700; letter-spacing: .06em; color: #7d8f80; }
  .lateral nav a, .modo-plataforma .lateral nav a { align-self: flex-start; max-width: 100%; white-space: nowrap; gap: 14px; padding: 8px 18px 8px 8px;
    border-radius: 999px; color: var(--tinta-menu); font-weight: 500; font-size: 15px; transition: background .15s; }
  .lateral nav a span { overflow: hidden; text-overflow: ellipsis; }
  .lateral nav a svg { width: 34px; height: 34px; padding: 8px; box-sizing: border-box; border-radius: 50%;
    background: var(--ico-fondo); color: var(--ico-tinta); stroke-width: 2; transition: background .15s, color .15s; }
  .lateral nav a:hover, .modo-plataforma .lateral nav a:hover { background: var(--pill-hover); color: var(--tinta-menu); }
  .lateral nav a.on, .modo-plataforma .lateral nav a.on { background: var(--pill-on); color: var(--pill-tinta); font-weight: 700; }
  .lateral nav a.on svg { background: var(--ico-tinta); color: #fff; }
  .lat-yo, .modo-plataforma .lat-yo { border-top: 0; }
  .lat-yo small, .modo-plataforma .lat-yo small { color: #6b7d6e; }
  .lat-yo button, .modo-plataforma .lat-yo button { border-color: #c9d6c7; color: var(--tinta-menu); border-radius: 999px; }
  .lat-yo button:hover, .modo-plataforma .lat-yo button:hover { background: var(--pill-hover); }
  .lat-colapsar, .modo-plataforma .lat-colapsar { color: #6b7d6e; border-radius: 999px; }
  .lat-colapsar:hover, .modo-plataforma .lat-colapsar:hover { background: var(--pill-hover); color: var(--tinta-menu); }
  .lat-mini.con-lateral { padding-left: 84px; }
  .lat-mini .lateral { width: 84px; padding: 22px 12px; }
  .lat-mini .lateral nav a { align-self: center; padding: 4px; }
  .lat-mini .lateral nav p, .modo-plataforma.lat-mini .lateral nav p { background: #d5ddd2; }
  .con-lateral main { padding: 34px 48px; }
}

/* Contenido: títulos grandes y livianos, tarjetas blancas sin sombra. */
main > h1, main > .cab h1 { font-size: 34px; font-weight: 500; letter-spacing: -.02em; color: #1d2a20; }
@media (max-width: 699px) { main > h1, main > .cab h1 { font-size: 28px; } }
.caja { border-radius: 24px; border: 1px solid #e3e9df; box-shadow: none; }
.caja > h2:first-child, .caja > .cab > h2:first-child { padding-left: 0; }
.caja > h2:first-child::before, .caja > .cab > h2:first-child::before { display: none; }
.vacio { border-radius: 24px; }
.btn { border-radius: 999px; box-shadow: none; }
.btn:hover { box-shadow: none; }
.btn.sec { background: #fff; border-color: #cddbc9; }
table thead th { background: #f4f7f1; }

/* Pie: links en verde intermedio. */
.pie { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; padding: 26px 48px 40px; text-align: left; font-size: 14px; }
.pie a { color: var(--verde-medio); text-decoration: none; font-weight: 600; }
.pie a:hover { text-decoration: underline; }
.pie .pie-marca { margin-left: auto; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.pie .pie-marca img { height: 20px; width: auto; display: block; }
.pie .pie-marca small { color: #8a9a8c; font-size: 11px; letter-spacing: .01em; }
@media (max-width: 899px) { .pie .pie-marca { margin-left: 0; width: 100%; align-items: flex-start; margin-top: 6px; } }
@media (max-width: 999px) { .pie { padding: 20px 16px 28px; } }
@media (max-width: 899px) {
  .con-barra .pie { display: flex; padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
  .con-barra main { padding-bottom: 8px; }
  .pie span { margin-left: 0; flex: 1 1 100%; }
}

/* Celular: arriba y la barra de abajo en el mismo verde clarito. */
.top, .modo-plataforma .top { background: var(--fondo); color: var(--tinta-menu); border-bottom: 1px solid #dde6d9; }
.top .marca, .modo-plataforma .top .marca { color: var(--tinta-menu); }
.top .av-negocio { background: var(--pill-on); color: var(--pill-tinta); border-radius: 50%; }
.top .nav a { color: var(--tinta-menu); }
.top .nav a.on { background: var(--pill-on); color: var(--pill-tinta); }
.salir { color: var(--tinta-menu); }
.salir button { border-color: #c9d6c7; color: var(--tinta-menu); }
@media (max-width: 899px) {
  .barra { background: rgba(238, 243, 234, .94); border-top: 1px solid #dde6d9; box-shadow: 0 -6px 20px rgba(22, 36, 26, .05); }
  .barra a { color: #5f6f62; }
  .barra a.on { color: var(--pill-tinta); }
  .barra a.on svg { background: var(--pill-on); border-radius: 999px; padding: 3px 14px; box-sizing: content-box; margin: -3px 0; }
  .barra a.on::after { display: none; }
  .barra a[data-centro] svg, .centro > summary svg { border-color: var(--fondo); background: var(--ico-tinta); stroke: #fff; color: #fff; }
  .barra:has(.centro[open]) { background: var(--fondo); }
}
/* Íconos del menú en círculos de colores suaves, como la Cuenta de Google,
   con tonos de la tierra: menta, cielo, arena, terracota, oliva, salvia. */
@media (min-width: 1000px) {
  .lateral nav a:nth-of-type(6n+1) svg { background: #dcefd8; color: #2f5a35; }
  .lateral nav a:nth-of-type(6n+2) svg { background: #dbe9f1; color: #2d5a73; }
  .lateral nav a:nth-of-type(6n+3) svg { background: #f1e7d2; color: #7a5a1e; }
  .lateral nav a:nth-of-type(6n+4) svg { background: #f3e0d6; color: #8a4a2e; }
  .lateral nav a:nth-of-type(6n+5) svg { background: #e8ebd0; color: #5d6524; }
  .lateral nav a:nth-of-type(6n+6) svg { background: #e1ebdc; color: #4b6b3f; }
  .lateral nav a.on svg { background: var(--ico-tinta); color: #fff; }
}
/* El menú no se veía "con más abajo": un poco más compacto, y si igual no
   cabe, solo la lista se desplaza (la persona y Cerrar sesión quedan fijas
   abajo) con una sombra suave arriba o abajo cuando hay más opciones. */
@media (min-width: 1000px) {
  .lateral, .modo-plataforma .lateral { overflow: hidden; padding-bottom: 14px; }
  .lateral nav { flex: 1 1 auto; min-height: 0; overflow-y: auto; gap: 2px; margin: 0 -6px; padding: 0 6px 8px;
    scrollbar-width: thin; scrollbar-color: #c9d6c7 transparent;
    background:
      linear-gradient(var(--fondo) 30%, rgba(238, 243, 234, 0)) center top,
      linear-gradient(rgba(238, 243, 234, 0), var(--fondo) 70%) center bottom,
      radial-gradient(farthest-side at 50% 0, rgba(23, 54, 28, .16), transparent) center top,
      radial-gradient(farthest-side at 50% 100%, rgba(23, 54, 28, .16), transparent) center bottom;
    background-repeat: no-repeat; background-size: 100% 36px, 100% 36px, 100% 14px, 100% 14px;
    background-attachment: local, local, scroll, scroll; }
  .lateral nav p, .modo-plataforma .lateral nav p { margin: 14px 18px 4px; }
  .lateral nav a, .modo-plataforma .lateral nav a { padding: 6px 18px 6px 6px; }
  .lateral nav a svg { width: 32px; height: 32px; padding: 7px; }
  .lat-marca, .modo-plataforma .lat-marca { padding-bottom: 10px; }
  .lat-yo, .modo-plataforma .lat-yo { margin-top: 0; padding-top: 10px; border-top: 1px solid #dde6d9; }
  .lat-mini .lateral nav a { padding: 3px; }
}
/* Sin fotos: gris clarito, no verde (Mario, 9 oct). */
.hab-foto.vacia { background: repeating-linear-gradient(135deg, #f3f3f1 0 12px, #ecece9 12px 24px); }

/* ==========================================================
   Vista de Rezzerva (modo-plataforma) en verde oscuro, invertida
   (Mario, 9 oct): mismo diseño liviano, otro tono, para que nunca
   se confunda con el panel de un negocio.
   ========================================================== */
body.modo-plataforma {
  --fondo: #17291b; --caja: #1f3524; --linea: #2f4a35; --suave: #2a4330;
  --tinta: #e8f1e6; --gris: #a9bdaa; --verde: #a8feaf; --verde-medio: #8fd496;
  --pill-on: #a8feaf; --pill-hover: rgba(255, 255, 255, .07); --pill-tinta: #13261a; --tinta-menu: #e3ede1;
  --ico-fondo: rgba(255, 255, 255, .08); --ico-tinta: #a8feaf;
  color: var(--tinta);
}
html:has(body.modo-plataforma) { background: #17291b; }
.modo-plataforma a { color: var(--verde); }
.modo-plataforma main > h1, .modo-plataforma main > .cab h1 { color: #f2f7f0; }
.modo-plataforma h1 small { background: #a8feaf; color: #13261a; }
.modo-plataforma .caja, .modo-plataforma .vacio, .modo-plataforma .menu-mas { background: var(--caja); border-color: var(--linea); color: var(--tinta); }
.modo-plataforma .caja h2, .modo-plataforma h3 { color: #f2f7f0; }
.modo-plataforma h3, .modo-plataforma .nota, .modo-plataforma h2 small, .modo-plataforma td small, .modo-plataforma dd small { color: var(--gris); }
.modo-plataforma table thead th { background: #25402b; color: #cfe0cd; }
.modo-plataforma table td, .modo-plataforma table th { border-color: var(--linea); }
.modo-plataforma table tbody tr:hover { background: #24402a; }
.modo-plataforma .btn { background: #a8feaf; color: #13261a; }
.modo-plataforma .btn.sec { background: transparent; color: #e3ede1; border-color: #3d5c44; }
.modo-plataforma .btn.sec:hover { background: rgba(255, 255, 255, .06); }
.modo-plataforma .formu input, .modo-plataforma .formu select, .modo-plataforma .formu textarea, .modo-plataforma .buscar input, .modo-plataforma .buscar select {
  background: #17291b; color: var(--tinta); border-color: #3d5c44; }
.modo-plataforma .pie span { color: #7f957f; }
@media (min-width: 1000px) {
  .modo-plataforma .lateral nav a svg { background: var(--ico-fondo); color: #cfe7cc; }
  .modo-plataforma .lateral nav a.on svg { background: #13261a; color: #a8feaf; }
  .modo-plataforma .lateral nav p { color: #7f957f; }
  .modo-plataforma .lat-marca .marca small { color: #8fd496; }
  .modo-plataforma .lat-yo { border-top-color: #2f4a35; }
  .modo-plataforma .lat-yo small, .modo-plataforma .lat-colapsar { color: #9fb39f; }
  .modo-plataforma .lat-yo button { border-color: #3d5c44; }
  .modo-plataforma .lateral nav { scrollbar-color: #3d5c44 transparent;
    background:
      linear-gradient(#17291b 30%, rgba(23, 41, 27, 0)) center top,
      linear-gradient(rgba(23, 41, 27, 0), #17291b 70%) center bottom,
      radial-gradient(farthest-side at 50% 0, rgba(0, 0, 0, .45), transparent) center top,
      radial-gradient(farthest-side at 50% 100%, rgba(0, 0, 0, .45), transparent) center bottom;
    background-repeat: no-repeat; background-size: 100% 36px, 100% 36px, 100% 14px, 100% 14px;
    background-attachment: local, local, scroll, scroll; }
}
.modo-plataforma .top { border-bottom-color: #2f4a35; }
@media (max-width: 899px) {
  .modo-plataforma .barra { background: rgba(23, 41, 27, .94); border-top-color: #2f4a35; }
  .modo-plataforma .barra a { color: #9fb39f; }
  .modo-plataforma .barra a.on { color: #a8feaf; }
  .modo-plataforma .barra a.on svg { background: rgba(168, 254, 175, .16); }
}
/* Vista de Rezzerva: piezas que daban verde sobre verde. */
.modo-plataforma .b-confirmed, .modo-plataforma .chips-puesta i.si { background: rgba(168, 254, 175, .16); color: #a8feaf; }
.modo-plataforma .b-pending { background: rgba(255, 210, 110, .16); color: #ffd98a; }
.modo-plataforma .b-cancelled, .modo-plataforma .b-expired, .modo-plataforma .b-refunded, .modo-plataforma .badge { background: rgba(255, 255, 255, .08); color: #c4d3c3; }
.modo-plataforma .b-confirmed { background: rgba(168, 254, 175, .16); color: #a8feaf; }
.modo-plataforma .chips-puesta i { background: rgba(255, 120, 110, .16); color: #ffb3aa; }
.modo-plataforma .seg { background: rgba(255, 255, 255, .07); }
.modo-plataforma .seg a { color: #c4d3c3; }
.modo-plataforma .seg a.on { background: #a8feaf; color: #13261a; box-shadow: none; }
.modo-plataforma .migas a:first-child { background: transparent; border-color: #3d5c44; color: #a8feaf; }
.modo-plataforma .chip { background: rgba(255, 255, 255, .07); border-color: #3d5c44; color: #c4d3c3; }
.modo-plataforma .chip.on { background: #a8feaf; border-color: #a8feaf; color: #13261a; }
.modo-plataforma .badge.b-pending { background: rgba(255, 210, 110, .16); color: #ffd98a; }
.modo-plataforma .bandeja li.sin-leer b { color: #a8feaf; }
.modo-plataforma .msj { background: #2a4330; color: #e8f1e6; }
.modo-plataforma .msj.ia { background: #233a3f; }
.modo-plataforma .msj-fila.mio .msj { background: #a8feaf; color: #13261a; }
.modo-plataforma .chat-cabeza { background: #1f3524; border: 1px solid #2f4a35; }
.modo-plataforma .chat-cabeza p { color: #c4d3c3; }
.modo-plataforma .chat-form textarea { background: #17291b; color: #e8f1e6; border-color: #3d5c44; }
.modo-plataforma .av-ia { background: #e8f1e6; border-color: #3d5c44; }
/* El botón flotante de Chat Soporte tapaba "Hecho en Costa Rica": el texto va
   junto a los links y el pie deja libre la esquina del botón. */
.pie span { margin-left: 0; }
.pie span::before { content: "·"; margin-right: 22px; color: #b5c3b4; }
@media (min-width: 900px) { .pie { padding-right: 230px; } }
@media (max-width: 899px) { .pie span::before { display: none; } }
/* Aplicar / Descartar sin recargar: la sugerencia se apaga al instante. */
.ia-lista li { transition: opacity .2s, transform .2s; }
.ia-lista li.saliendo { opacity: .35; transform: scale(.99); pointer-events: none; }
/* Caja oscura de IA: "Guardar límites" en menta y el hover de los desplegables
   en un tono oscuro (antes quedaba menta sobre blanco). */
.ia-caja .formu .btn, .ia-caja .ia-limites .btn { background: #a8feaf; color: #12241a; border: 0; }
.ia-caja .btn.sec { border-color: rgba(233, 241, 231, .55); }
.ia-caja details > summary:hover, .ia-caja details[open] > summary { background: rgba(255, 255, 255, .08); }
.ia-caja .ia-lista li .btn.sec, .ia-caja .seo-lista li .btn.sec { background: #fff; }

/* Carrusel de tarjetas (propuestas de SEO): menos scroll hacia abajo */
.carrusel { position: relative; margin: 10px 0 16px; }
.car-nav { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-bottom: 8px; }
.car-cont { font-size: 13px; font-weight: 700; min-width: 56px; text-align: center; }
.car-btn { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--linea); background: #fff; color: var(--verde); font-size: 20px; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.car-btn:hover:not(:disabled) { background: var(--pill-hover, #dfe7dc); }
.car-btn:disabled { opacity: .35; cursor: default; }
.carrusel .car-pista { position: relative; display: flex; gap: 14px; align-items: flex-start; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0; overscroll-behavior-x: contain; transition: height .25s ease; }
.carrusel .car-pista::-webkit-scrollbar { display: none; }
.carrusel .car-pista > li { flex: 0 0 100%; scroll-snap-align: start; box-sizing: border-box; padding: 14px 16px; border-radius: 16px; }
.carrusel .car-pista > li .seo-antes, .carrusel .car-pista > li .seo-nuevo { margin: 6px 0; font-size: 14px; }
.carrusel .car-pista > li .acciones { margin-top: 10px; }
@media (min-width: 1100px) { .carrusel .car-pista > li { flex-basis: calc(50% - 7px); } }
.car-puntos { display: flex; justify-content: center; gap: 6px; margin-top: 10px; flex-wrap: wrap; }
.car-puntos i { width: 7px; height: 7px; border-radius: 50%; background: var(--linea); transition: width .2s, background .2s; }
.car-puntos i.on { width: 20px; border-radius: 999px; background: var(--verde); }
.seo-antes small { display: inline; margin-right: 4px; }
.seo-lista li.saliendo { opacity: .35; pointer-events: none; }
.ia-caja .car-cont { color: #e9f1e7; }
.ia-caja .car-btn { background: rgba(255,255,255,.08); border-color: rgba(233,241,231,.25); color: #a8feaf; }
.ia-caja .car-btn:hover:not(:disabled) { background: rgba(168,254,175,.16); }
.ia-caja .car-puntos i { background: rgba(233,241,231,.25); }
.ia-caja .car-puntos i.on { background: #a8feaf; }
@media (max-width: 700px) {
  .car-nav { justify-content: space-between; }
  .seo-lista li { padding: 12px; }
}
.seo-det { flex: 1; min-width: 240px; }
.seo-det > summary { cursor: pointer; font-weight: 700; font-size: 14px; list-style: none; padding: 8px 14px; border-radius: 999px; display: inline-flex; gap: 6px; align-items: center; }
.seo-det > summary::-webkit-details-marker { display: none; }
.seo-det > summary::after { content: "▾"; transition: transform .2s; }
.seo-det[open] > summary::after { transform: rotate(180deg); }
.seo-det .seo-pasos { margin-top: 10px; }
.ia-caja .seo-det > summary { background: rgba(255,255,255,.08); color: #e9f1e7; }
.ia-caja .seo-det > summary:hover { background: rgba(168,254,175,.16); }
@media (min-width: 701px) { .seo-det > summary { display: none; } .seo-det .seo-pasos { margin-top: 0; } }
@media (max-width: 700px) { .seo-puntaje { flex-wrap: nowrap; gap: 14px; } .seo-num { width: 76px; height: 76px; } .seo-num b { font-size: 22px; } .seo-det { min-width: 0; } }

/* Mi página web: los datos de la página en un panel a la derecha (pantallas
   anchas); en tablet y celular van justo debajo de la vista previa. */
.web-grid { display: flex; flex-direction: column; }
.web-grid > .web-lado { order: -1; }
@media (min-width: 1200px) {
  .web-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 0 18px; align-items: start; }
  .web-grid > .web-lado { order: 0; position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow-y: auto; scrollbar-width: thin; border-radius: 24px; }
  .web-lado .caja { margin-top: 0; }
  .web-lado .fila2 { grid-template-columns: 1fr; display: grid; gap: 0; }
  .web-lado .con-sufijo b { font-size: 13px; }
  .web-lado .web-guardar { position: sticky; bottom: -1px; background: var(--caja, #fff); padding: 12px 0 2px; margin-top: 8px; }
}
/* Vista previa de la página: llena el alto de la tarjeta (sin hueco abajo). */
@media (min-width: 900px) { .web-hero { align-items: stretch; } .web-hero .web-vista { height: 100%; min-height: 260px; } }
/* Habitaciones: el enlace de reservas arriba y destacado; herramientas en dos grupos de tres */
.enlace-destacado { padding: 22px 24px; margin-bottom: 26px; }
.enlace-destacado .ed-cab { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 14px; }
.enlace-destacado .ed-cab h2 { margin: 2px 0 2px; font-size: 20px; }
.enlace-destacado .ed-cab .nota { margin: 0; }
.enlace-destacado .enlace-url input { font-size: 15px; font-weight: 600; }
.enlace-destacado .alerta { margin: 14px 0 0; }
.ed-codigo { margin-top: 14px; }
.ed-codigo > summary { cursor: pointer; font-size: 14px; font-weight: 600; color: var(--verde-medio, #4f7d55); list-style: none; }
.ed-codigo > summary::-webkit-details-marker { display: none; }
.ed-codigo > summary::after { content: " ▾"; }
.ed-codigo[open] > summary::after { content: " ▴"; }
.ed-codigo .codigo { margin-top: 8px; }
@media (min-width: 900px) { .reglas-grid.herramientas { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .enlace-destacado { padding: 18px; }
  .enlace-destacado .enlace-url { flex-wrap: wrap; }
  .enlace-destacado .enlace-url input { flex-basis: 100%; }
  .enlace-destacado .enlace-url .btn { flex: 1; text-align: center; }
  .habs2 .hab-nueva { min-height: 0; padding: 18px; }
}
/* Listas en el celular: sin etiqueta, el dato va a la izquierda (no flotando a la derecha). */
@media (max-width: 700px) { .lista td:not([data-t]) { text-align: left; } }
/* Reservas en el celular: tarjeta compacta (nombre y total arriba, datos en una línea, ref y estado abajo). */
.lista-res .c-nom a { color: inherit; text-decoration: none; }
@media (max-width: 700px) {
  .lista-res tr { display: flex !important; flex-wrap: wrap; align-items: baseline; row-gap: 4px; padding: 12px 14px; }
  .lista-res td { width: auto !important; padding: 0 !important; }
  .lista-res .c-nom { order: 1; flex: 1 1 calc(100% - 120px); font-weight: 700; font-size: 16px; }
  .lista-res .c-tot { order: 2; flex: 0 0 120px; font-weight: 700; font-size: 16px; text-align: right !important; }
  .lista-res .c-dato { order: 3; color: var(--gris); font-size: 14px; }
  .lista-res .c-dato + .c-dato::before { content: "·"; margin: 0 6px; }
  .lista-res .c-noches::after { content: " " attr(data-noches); }
  .lista-res .c-ref { order: 4; flex: 1 1 auto; font-size: 13px; margin-top: 8px; }
  .lista-res .c-est { order: 5; margin-left: auto; margin-top: 8px; }
  .lista-res tr::after { content: ""; order: 3; flex-basis: 100%; height: 0; }
}
/* Cobros sin conectar: tarjeta de ONVO */
.onvo-conectar { display: grid; gap: 10px; justify-items: start; }
.onvo-conectar .onvo-logo { height: 18px; width: auto; margin-bottom: 6px; opacity: .9; }
.onvo-conectar h2 { margin: 0; font-size: 22px; }
.onvo-conectar > p { margin: 0; max-width: 60ch; }
.onvo-puntos { list-style: none; padding: 0; margin: 4px 0 6px; display: flex; flex-wrap: wrap; gap: 8px; }
.onvo-puntos li { background: var(--fondo, #eef3ea); border-radius: 999px; padding: 6px 12px; font-size: 13.5px; font-weight: 600; }
.onvo-puntos li::before { content: "✓ "; color: var(--verde); }
.onvo-accion { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.onvo-accion .nota { margin: 0; }
body.modo-plataforma .onvo-conectar .onvo-logo { filter: invert(1); }
/* Mi página web: grupos plegables (en el celular cerrados; en la compu abiertos) */
.web-form .web-grupo { margin: 0 0 14px; padding: 0 0 14px; border-bottom: 1px solid var(--linea, #e3e7e1); max-width: 860px; }
.web-form .web-grupo > summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gris); padding: 6px 0; }
.web-form .web-grupo > summary::-webkit-details-marker { display: none; }
.web-form .web-grupo > summary::after { content: "+"; font-size: 20px; font-weight: 400; color: var(--verde); }
.web-form .web-grupo[open] > summary::after { content: "−"; }
.web-form .web-grupo[open] > summary { margin-bottom: 8px; }
/* Catálogo de tours: mismas tarjetas que las habitaciones, foto más baja */
.tours-grid .hab-foto { aspect-ratio: 16 / 8; }
.hab-datos .falta { color: #9a6b00; }
.tours-grid .hab-planes span { background: #eef4ee; }
@media (max-width: 700px) {
  .tours-grid { gap: 10px; }
  .tours-grid .hab-card2:not(.hab-nueva) { flex-direction: row; align-items: stretch; }
  .tours-grid .hab-foto { aspect-ratio: auto; width: 96px; flex: none; min-height: 100%; }
  .tours-grid .hab-foto-txt { font-size: 0; padding: 0; background: none; }
  .tours-grid .hab-foto-txt::before { content: "+ Foto"; font-size: 12px; background: rgba(255,255,255,.85); padding: 4px 8px; border-radius: 999px; }
  .tours-grid .hab-info { padding: 12px 14px; gap: 4px; min-width: 0; }
  .tours-grid .hab-info > b { font-size: 15.5px; }
  .tours-grid .hab-precio b { font-size: 17px; }
}
/* Barra de carga arriba y botón "enviando" (11 oct) */
.rz-barra { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 9999; pointer-events: none; opacity: 0; transition: opacity .2s; }
.rz-barra span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, #4f7d55, #a8feaf); border-radius: 0 3px 3px 0; box-shadow: 0 0 8px rgba(168,254,175,.6); }
.rz-barra.on { opacity: 1; }
.rz-barra.on span { animation: rz-carga 8s cubic-bezier(.1,.7,.2,1) forwards; }
@keyframes rz-carga { 0% { width: 0; } 20% { width: 45%; } 60% { width: 75%; } 100% { width: 92%; } }
.btn.rz-enviando, button.rz-enviando { position: relative; pointer-events: none; opacity: .85; padding-right: 2.6em; }
.btn.rz-enviando::after, button.rz-enviando::after { content: ""; position: absolute; right: .9em; top: 50%; width: 1em; height: 1em; margin-top: -.5em; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: rz-gira .7s linear infinite; }
@keyframes rz-gira { to { transform: rotate(360deg); } }
/* Entre páginas del panel, fundido suave en vez de salto (Chrome y Safari recientes) */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .18s; }
@media (prefers-reduced-motion: reduce) { .rz-barra.on span { animation: none; width: 70%; } ::view-transition-old(root), ::view-transition-new(root) { animation: none; } }
/* Botón de upselling: plan FULL con su precio debajo */
.btn.btn-mejora { display: inline-flex; flex-direction: column; align-items: center; line-height: 1.15; gap: 2px; padding-top: 9px; padding-bottom: 9px; }
.btn.btn-mejora small { font-size: 12px; font-weight: 600; opacity: .75; letter-spacing: .01em; }
.ia-caja .btn.btn-mejora { background: #a8feaf; color: #12241a; justify-self: start; }
/* Ajustes (11 oct): perfil del negocio con logo subible, atajos, equipo en filas */
.aj-perfil { padding: 0; overflow: hidden; }
.aj-perfil-cab { display: flex; gap: 20px; align-items: center; padding: 26px 24px 18px; background: linear-gradient(135deg, #e3eedf 0%, #f4f8f1 70%); }
.aj-perfil > .nota, .aj-perfil > .aj-marca, .aj-perfil > h3, .aj-perfil > p, .aj-perfil > iframe { margin-left: 24px; margin-right: 24px; }
.aj-perfil > .aj-marca { margin-bottom: 22px; }
.aj-perfil > iframe { width: calc(100% - 48px); margin-bottom: 24px; }
.aj-avatar { position: relative; flex: none; width: 104px; height: 104px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 4px #fff, 0 8px 24px rgba(22,36,26,.12); display: grid; place-items: center; overflow: hidden; cursor: pointer; }
.aj-avatar img { width: 100%; height: 100%; object-fit: cover; }
.aj-avatar.vacio { background: var(--ac, #224425); }
.aj-avatar.vacio b { color: #fff; font-size: 36px; font-weight: 800; letter-spacing: -.02em; }
.aj-avatar input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.aj-avatar-cam { position: absolute; inset: auto 0 0 0; height: 34px; display: grid; place-items: center; background: rgba(18,36,26,.55); color: #fff; opacity: 0; transition: opacity .15s; pointer-events: none; }
.aj-avatar-cam svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.aj-avatar:hover .aj-avatar-cam, .aj-avatar.vacio .aj-avatar-cam { opacity: 1; }
.aj-avatar.subiendo { opacity: .6; }
.aj-perfil-txt h2 { margin: 0; font-size: 24px; letter-spacing: -.01em; }
.aj-perfil-txt .nota { margin: 2px 0 10px; }
.aj-perfil-acc { display: flex; gap: 8px; flex-wrap: wrap; }
.aj-perfil-acc label.btn { cursor: pointer; }
.aj-perfil-acc label.subiendo { opacity: .6; pointer-events: none; }
.aj-color { display: flex; align-items: center; gap: 10px; }
.aj-color input[type=color] { width: 52px; height: 40px; padding: 3px; border-radius: 12px; border: 1px solid var(--linea); background: #fff; cursor: pointer; }
.aj-color code { font-size: 13px; color: var(--gris); }
.aj-atajos { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin: 18px 0; }
.aj-atajos a { display: flex; gap: 14px; align-items: center; padding: 16px 18px; background: var(--caja); border: 1px solid var(--linea); border-radius: 18px; color: var(--tinta); text-decoration: none; transition: transform .15s, border-color .15s; }
.aj-atajos a:hover { transform: translateY(-1px); border-color: #b9d6bb; }
.aj-atajos b { display: block; font-size: 15.5px; }
.aj-atajos small { color: var(--gris); font-size: 13px; }
.aj-gente { list-style: none; padding: 0; margin: 6px 0 0; }
.aj-gente li { display: grid; grid-template-columns: 42px minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--linea); }
.aj-gente li:last-child { border-bottom: 0; }
.aj-ini { width: 42px; height: 42px; border-radius: 50%; background: #e3eedf; color: var(--verde); font-weight: 800; display: grid; place-items: center; font-size: 15px; }
.aj-quien b { display: block; font-size: 15px; }
.aj-quien small { color: var(--gris); font-size: 13px; overflow: hidden; text-overflow: ellipsis; display: block; white-space: nowrap; }
.aj-quien .pill, .aj-rol .pill { font-size: 11.5px; font-weight: 700; background: #eef4ee; color: var(--verde); border-radius: 999px; padding: 3px 9px; }
.aj-rol select { font: inherit; font-size: 13.5px; padding: 7px 30px 7px 12px; border-radius: 999px; border: 1px solid var(--linea); background-color: #fff; }
.aj-ultima { color: var(--gris); font-size: 12.5px; }
details.invitar { margin-top: 14px; }
details.invitar > summary, .aj-roles > summary { cursor: pointer; list-style: none; font-weight: 700; color: var(--verde); }
details.invitar > summary::-webkit-details-marker, .aj-roles > summary::-webkit-details-marker { display: none; }
details.invitar[open] > summary { margin-bottom: 10px; }
.aj-roles { margin-top: 12px; }
.aj-roles > summary { font-size: 14px; color: var(--verde-medio, #4f7d55); }
@media (max-width: 760px) {
  .aj-perfil-cab { flex-direction: column; align-items: flex-start; padding: 22px 18px 14px; }
  .aj-perfil > .nota, .aj-perfil > .aj-marca, .aj-perfil > h3, .aj-perfil > p { margin-left: 18px; margin-right: 18px; }
  .aj-gente li { grid-template-columns: 42px minmax(0, 1fr) auto; row-gap: 6px; }
  .aj-gente .aj-rol { grid-column: 2 / 4; }
  .aj-gente .aj-ultima { grid-column: 2 / 3; }
  .aj-gente .aj-acc { grid-column: 3; grid-row: 1; }
}
.aj-perfil-acc .btn { width: auto; display: inline-flex; align-items: center; }
.aj-perfil-acc form { margin: 0; }
.aj-quien .pill { display: inline-block; vertical-align: 2px; margin-left: 4px; }
.aj-vista { margin: 0 24px 22px; }
.aj-vista > summary { cursor: pointer; list-style: none; font-weight: 700; color: var(--verde-medio, #4f7d55); font-size: 14px; }
.aj-vista > summary::-webkit-details-marker { display: none; }
.aj-vista > summary::after { content: " ▾"; }
.aj-vista iframe { width: 100%; margin-top: 10px; }
@media (max-width: 760px) { .aj-vista { margin: 0 18px 18px; } }
@media (max-width: 760px) {
  .aj-perfil-cab { flex-direction: row; align-items: center; gap: 16px; }
  .aj-avatar { width: 76px; height: 76px; }
  .aj-avatar.vacio b { font-size: 26px; }
  .aj-perfil-txt h2 { font-size: 20px; }
}
/* Ajustes: cada grupo con su título a la izquierda y la tarjeta a la derecha */
.aj-fila { display: grid; gap: 10px; margin: 26px 0; }
.aj-fila > .caja, .aj-fila > .aj-atajos { margin: 0; }
.aj-lado h2 { margin: 0 0 4px; font-size: 18px; }
.aj-lado .nota { margin: 0; max-width: 34ch; }
@media (min-width: 1100px) {
  .aj-fila { grid-template-columns: 260px minmax(0, 1fr); gap: 32px; align-items: start; }
  .aj-lado { position: sticky; top: 24px; padding-top: 14px; }
}
.aj-gente li { grid-template-columns: 42px minmax(0, 1.5fr) 190px 180px 130px; }
.aj-rol { justify-self: start; }
.aj-acc { justify-self: end; }
#avisos .formu { max-width: 760px; }
@media (max-width: 760px) { .aj-gente li { grid-template-columns: 42px minmax(0, 1fr) auto; } }
/* OTAs: códigos de tours plegados para que la tarjeta no se alargue */
.canal-codigos { margin: 4px 0 10px; }
.canal-codigos > summary { cursor: pointer; list-style: none; font-weight: 700; font-size: 14px; color: var(--verde); padding: 6px 0; }
.canal-codigos > summary::-webkit-details-marker { display: none; }
.canal-codigos > summary::after { content: " ▾"; }
.canal-codigos .lista { max-height: 320px; overflow-y: auto; }
.canal-codigos code { word-break: break-all; font-size: 12px; }
.canal-cab .chip:not(.on) { background: #f1efe6; color: #7a6a2c; }

/* 091: quién paga la comisión */
#quien-paga .opcion { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--linea); border-radius: 10px; margin: 8px 0; cursor: pointer; }
#quien-paga .opcion small { display: block; color: var(--gris); margin-top: 2px; }
#quien-paga .opcion:has(input:checked) { border-color: var(--verde); background: var(--suave); }
#quien-paga .opcion input { margin-top: 4px; }

/* 092: reporte del mes (hoteles) */
.reporte-mes .rm-cifras { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin: 4px 0 18px; }
@media (min-width: 800px) { .reporte-mes .rm-cifras { grid-template-columns: repeat(4, 1fr); } }
/* El reporte del mes se distingue de las cajas blancas: fondo verde suave y cifras en blanco. */
.caja.reporte-mes { background: #dfeadb; border-color: #c9dbc3; }
.reporte-mes .rm-semanas i { background: rgba(255, 255, 255, .65); }
.rm-cifra { border: 1px solid #cfe0ca; border-radius: 12px; padding: 12px 14px; background: #fff; }
.rm-cifra span { display: block; font-size: 13px; color: var(--gris); }
.rm-cifra b { display: block; font-size: 22px; font-weight: 800; color: var(--verde); }
.rm-cifra small { display: block; font-size: 12px; color: var(--gris); }
.rm-grid { display: grid; gap: 22px; }
@media (min-width: 900px) { .rm-grid { grid-template-columns: 1fr 1fr; } }
.rm-grid h3 { margin: 0 0 10px; font-size: 15px; }
.rm-semanas { list-style: none; margin: 0; padding: 0; }
.rm-semanas li { display: grid; grid-template-columns: 96px 1fr 48px; align-items: center; gap: 10px; padding: 4px 0; font-size: 13px; }
.rm-semanas span { color: var(--gris); white-space: nowrap; }
.rm-semanas b { text-align: right; }
.rm-semanas i { display: block; height: 10px; background: var(--suave); border-radius: 6px; overflow: hidden; }
.rm-semanas em { display: block; height: 100%; background: var(--salvia); border-radius: 6px; }
.rm-semanas i.alta em { background: var(--verde); }
.rm-semanas i.baja em { background: #c98a2b; }
.rm-acciones { margin: 0; padding: 0; list-style: none; counter-reset: rm; }
.rm-acciones li { counter-increment: rm; border-left: 3px solid var(--verde); padding: 2px 0 2px 14px; margin: 0 0 16px; }
.rm-acciones li b::before { content: counter(rm) ". "; }
.rm-acciones p { margin: 4px 0 8px; font-size: 14px; line-height: 1.5; }

/* Lista de reservas (14 oct): botón de crear discreto y buscador en una sola línea */
.cab:has(> .btn.crear) { justify-content: space-between; }
.cab .btn.crear { min-height: 40px; padding: 0 16px; font-size: 14px; font-weight: 700; border-radius: 999px; border-width: 1px; box-shadow: none; }
@media (max-width: 720px) { .cab .btn.crear { display: none; } }
.buscar { flex-wrap: nowrap; align-items: stretch; }
.buscar input[type="search"] { flex: 1 1 auto; min-width: 0; }
.buscar select { flex: 0 0 auto; max-width: 34%; }
.buscar .btn-lupa { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; padding: 0 16px; border-radius: 12px; }
@media (max-width: 720px) {
  .buscar .btn-lupa { width: 46px; padding: 0; justify-content: center; }
  .buscar .btn-lupa span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .buscar input[type="search"]::placeholder { font-size: 14px; }
}

/* Mis tours en el celular (14 oct) */
.cab .cab-btn { display: inline-flex; align-items: center; margin-left: auto; min-height: 38px; padding: 0 16px; font-size: 14px; border-radius: 999px; }
.cab-acciones .btn { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; font-size: 13px; border-radius: 999px; }
@media (max-width: 720px) { .cab-acciones { margin-left: 0; width: 100%; } }

/* Días de la semana: chips que se prenden y apagan */
.dias-sem { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; max-width: 440px; }
.dias-sem label { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 0; padding: 8px 0;
  border: 1px solid var(--linea); background: #fff; color: var(--gris); border-radius: 999px; font-size: 13px; font-weight: 700; cursor: pointer; user-select: none; }
.dias-sem label input, .formu .dias-sem label input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; padding: 0; border: 0; pointer-events: none; }
.dias-sem label:has(input:checked) { background: var(--verde); border-color: var(--verde); color: #fff; }
.dias-sem label:has(input:focus-visible) { outline: 2px solid var(--verde); outline-offset: 2px; }

/* Cada hora: hora arriba, días, y abajo cupo + botones en una línea */
.fila-hora { display: grid; gap: 10px; }
.fila-hora .hora-h { font-size: 17px; }
.hora-pie { display: flex; align-items: flex-end; gap: 8px; flex-wrap: wrap; }
.hora-pie .campo { margin: 0; }
.hora-pie .campo-cupo { flex: 0 0 96px; }
.hora-pie .campo-hora { flex: 0 0 124px; }
.hora-pie .campo-cupo input, .hora-pie .campo-hora input { width: 100%; }
.hora-pie .btn { margin: 0; min-height: 46px; padding: 0 16px; }
.horarios li { padding: 12px 0; }
.nueva-hora { background: var(--fondo); border-radius: 12px; padding: 14px; margin-top: 6px; }

/* Descripción del tour: un idioma a la vez */
.idiomas { position: relative; }
.idiomas .l-radio { position: absolute; left: 0; top: 0; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.idiomas .seg-l { margin: 4px 0 12px; }
.idiomas .seg-l label { cursor: pointer; font-weight: 700; font-size: 13px; padding: 6px 16px; border-radius: 999px; color: var(--gris); }
.idiomas .l-en { display: none; }
.idiomas .l-radio-en:checked ~ .l-en { display: block; }
.idiomas .l-radio-en:checked ~ .l-es { display: none; }
.idiomas .l-radio:not(.l-radio-en):checked ~ .seg-l label:first-child,
.idiomas .l-radio-en:checked ~ .seg-l label:last-child { background: #fff; color: var(--verde); box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.idiomas .l-radio:focus-visible ~ .seg-l { outline: 2px solid var(--verde); outline-offset: 2px; }

/* Sitios donde va el motor */
.sitios li span { font-weight: 700; word-break: break-all; }
.btn.chico { min-height: 34px; padding: 0 12px; font-size: 13px; }
.sitio-nuevo { display: flex; align-items: flex-end; gap: 8px; }
.sitio-nuevo .campo { flex: 1 1 auto; margin: 0; }
.sitio-nuevo .btn { margin: 0; min-height: 46px; }

/* Filtros de Reservas del hotel (14 oct). */
.filtros-form { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 10px; }
.filtros-form .buscar-fila { display: flex; gap: 8px; }
.filtros-form .buscar-fila input { flex: 1 1 auto; }
.atajos { display: flex; flex-wrap: wrap; gap: 6px; }
.atajos .chip { padding: 5px 11px; font-size: 12.5px; font-weight: 600; }
.filtros-caja { border: 1px solid var(--linea); border-radius: 14px; background: var(--caja); padding: 0 14px; }
.filtros-caja summary { cursor: pointer; font-weight: 700; padding: 11px 0; list-style: none; display: flex; align-items: center; gap: 8px; }
.filtros-caja summary::-webkit-details-marker { display: none; }
.filtros-caja summary::before { content: "▸"; font-size: 12px; color: var(--gris); transition: transform .15s; }
.filtros-caja[open] summary::before { transform: rotate(90deg); }
.filtros-caja summary .badge { font-style: normal; }
.filtros-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px 12px; padding: 2px 0 12px; }
.filtros-grid .campo { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.filtros-grid .campo span { font-size: 12px; font-weight: 700; color: var(--gris); }
.filtros-form .filtros-grid select, .filtros-form .filtros-grid input { width: 100%; max-width: none; min-width: 0; flex: none; }
.filtros-acciones { display: flex; gap: 8px; padding-bottom: 14px; }
.filtro-resumen { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 6px; margin: 0 0 10px; font-size: 14px; color: var(--gris); }
.filtro-resumen b { color: var(--tinta); }
.filtro-resumen .bajar { margin-left: auto; font-size: 13px; }
.filtro-resumen .bajar a { margin-left: 6px; }
.filtros-caja { margin: 0; }
.modo-plataforma .filtros-caja { background: #1f3524; }

/* Políticas de cancelación (095). */
.pol-lineas { margin: 0; padding-left: 18px; font-size: 14px; line-height: 1.45; }
.pol-lineas li + li { margin-top: 2px; }
.pol-tabla td { vertical-align: top; }
.pol-medida { border: 1px solid var(--linea); border-radius: 12px; padding: 4px 14px 10px; margin: 10px 0 14px; }
.pol-medida legend { font-size: 13px; font-weight: 700; padding: 0 6px; color: var(--gris); }
.pol-aceptada h2 small { font-size: 13px; font-weight: 600; color: var(--gris); margin-left: 6px; }
.pol-aceptada details { margin-top: 8px; }
.pol-aceptada details summary { cursor: pointer; font-weight: 700; color: var(--verde); }

/* Submenú del lateral y atajos de Ajustes (15 oct). */
.lat-sub { display: flex; flex-direction: column; gap: 1px; margin: 2px 0 8px 46px; border-left: 2px solid var(--pill-on, #d6e9d2); padding-left: 10px; }
.lateral nav .lat-sub a { padding: 5px 10px; font-size: 13.5px; font-weight: 500; color: var(--gris); border-radius: 8px; align-self: stretch; white-space: nowrap; }
.lateral nav .lat-sub a:hover, .lateral nav .lat-sub a.on { background: var(--pill-hover); color: var(--tinta-menu); }
.lateral nav .lat-sub a.on { font-weight: 700; }
.lat-mini .lat-sub { display: none; }
.modo-plataforma .lat-sub a { color: #c4d3c3; }
.aj-indice { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin: 0 0 18px; }
.aj-indice a { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--linea); border-radius: 14px; background: var(--caja); text-decoration: none; color: var(--tinta); }
.aj-indice a:hover { border-color: var(--verde); }
.aj-indice b { display: block; font-size: 14.5px; }
.aj-indice small { display: block; color: var(--gris); font-size: 12.5px; }
:target { scroll-margin-top: 24px; }

/* Una página por sección (15 oct): ?ver= muestra solo la sección elegida. En
   el celular, pestañas arriba; en computadora, el submenú del lateral. */
.sub-tabs { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 0 -2px 14px; padding: 2px; }
.sub-tabs::-webkit-scrollbar { display: none; }
.sub-tabs a { flex: none; padding: 7px 13px; border-radius: 999px; border: 1px solid var(--linea); background: var(--caja, #fff); color: var(--gris); font-size: 13.5px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.sub-tabs a.on { background: var(--pill-on, #d6e9d2); border-color: transparent; color: var(--tinta-menu, var(--tinta)); }
@media (min-width: 1000px) { .con-lateral:not(.lat-mini) .sub-tabs { display: none; } }
main[data-ver] .web-grid, main[data-ver] .web-principal, main[data-ver] .web-lado { display: block; }
main[data-ver] .reglas-grid { grid-template-columns: 1fr; }
main[data-ver] .reglas-grid .regla-nueva { grid-column: auto; }
main[data-ver] .aj-fila { display: block; }
main[data-ver] .aj-fila .aj-lado { margin-bottom: 10px; }
main[data-ver] > .caja, main[data-ver] .web-grid .caja, main[data-ver] .aj-fila, main[data-ver] .reglas-grid { max-width: 860px; }

/* Aviso de guardado (15 oct). */
.rz-toast { position: fixed; left: 50%; top: 18px; z-index: 90; display: flex; align-items: center; gap: 8px; padding: 11px 18px 11px 14px;
  background: #22c55e; color: #fff; border-radius: 999px; font-weight: 800; font-size: 14.5px; box-shadow: 0 10px 30px rgba(34, 197, 94, .35);
  transform: translate(-50%, -16px); opacity: 0; transition: opacity .25s, transform .25s; pointer-events: none; max-width: calc(100vw - 32px); }
.rz-toast.on { opacity: 1; transform: translate(-50%, 0); }
.rz-toast svg { width: 18px; height: 18px; flex: none; fill: none; stroke: #fff; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.rz-guardado { display: inline-flex; align-items: center; margin-left: 12px; padding: 5px 11px; border-radius: 999px; background: #dff1dc; color: #1f4d2c;
  font-size: 13px; font-weight: 700; transition: opacity .6s; vertical-align: middle; }
.rz-guardado.fuera { opacity: 0; }

/* Precio en vivo de la reserva a mano (15 oct). */
.cotiz { margin: 4px 0 14px; transition: opacity .2s; }
.cotiz.cargando { opacity: .55; }
.cotiz-caja { background: #e9f3e6; border: 1px solid #cfe0ca; border-radius: 14px; padding: 12px 16px; }
.cotiz-fila { display: flex; justify-content: space-between; gap: 12px; padding: 3px 0; font-size: 14.5px; }
.cotiz-total { border-top: 1px solid #cfe0ca; margin-top: 4px; padding-top: 8px; font-size: 16px; }
.cotiz-total b { color: var(--verde); font-size: 18px; }
.cotiz-detalle { margin-top: 6px; font-size: 13.5px; }
.cotiz-detalle ul { list-style: none; margin: 6px 0 0; padding: 0; }
.cotiz-detalle li { display: flex; justify-content: space-between; padding: 2px 0; }
.cotiz-caja .nota { margin: 8px 0 0; }
.cotiz-err { margin: 0; padding: 10px 14px; border-radius: 12px; background: #fbefe2; color: #8a4b12; font-size: 14px; font-weight: 600; }

/* Interruptor Activada / Desactivada (16 oct). */
.tg-fila { display: flex; align-items: center; gap: 12px; padding: 8px 0 12px; cursor: pointer; }
.tg { appearance: none; -webkit-appearance: none; flex: none; width: 46px; height: 26px; margin: 0; border-radius: 999px; background: #cfd8d0; position: relative; cursor: pointer; transition: background .2s; border: 0; }
.tg::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .2s; }
.tg:checked { background: var(--verde); }
.tg:checked::after { transform: translateX(20px); }
.tg:focus-visible { outline: 2px solid var(--verde); outline-offset: 2px; }
.tg-txt { display: flex; flex-direction: column; font-size: 14px; }
.tg-txt small { color: var(--gris); font-size: 12.5px; }
.tg-off { color: var(--gris); }
.tg:checked + .tg-txt .tg-off, .tg:not(:checked) + .tg-txt .tg-on { display: none; }
.hab-card-wrap { position: relative; display: flex; }
.hab-card-wrap > .hab-card2 { flex: 1; }
.hab-tg { position: absolute; right: 14px; bottom: 14px; margin: 0; }
.tg-btn { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--linea); background: var(--caja, #fff); border-radius: 999px; padding: 4px 10px 4px 4px; font: 700 12.5px Manrope, sans-serif; color: var(--gris); cursor: pointer; }
.tg-btn i { width: 34px; height: 20px; border-radius: 999px; background: #cfd8d0; position: relative; transition: background .2s; }
.tg-btn i::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.25); transition: transform .2s; }
.tg-btn.on { color: var(--verde); }
.tg-btn.on i { background: var(--verde); }
.tg-btn.on i::after { transform: translateX(14px); }
.hab-card-wrap .hab-card2.inactiva { opacity: .55; }
.hab-card-wrap .hab-info { padding-bottom: 52px; }
.tarifa-cab h3 small { font-weight: 600; color: var(--gris); font-size: 13px; margin-left: 6px; }
.tarifa-caja h4 { margin: 14px 0 8px; font-size: 14.5px; }
.tarifa-ajustes { margin-top: 14px; border-top: 1px solid var(--linea); padding-top: 12px; }
.tarifa-ajustes summary { cursor: pointer; font-weight: 700; font-size: 14px; color: var(--verde); }
.tarifa-ajustes[open] summary { margin-bottom: 10px; }
.pol-base { margin-bottom: 6px; }
.estadia-casa > summary { cursor: pointer; list-style: none; }
.estadia-casa > summary::-webkit-details-marker { display: none; }
.estadia-casa > summary h2 { margin: 0 0 4px; }
.estadia-casa > summary h2 small { font-weight: 600; color: var(--gris); font-size: 13px; }
.estadia-casa > summary h2::after { content: "+"; float: right; color: var(--verde); }
.estadia-casa[open] > summary h2::after { content: "−"; }
.estadia-casa[open] > summary { margin-bottom: 12px; }
.formu input.tg, input.tg { width: 46px; min-width: 46px; height: 26px; padding: 0; border: 0; box-shadow: none; flex: none; }
.formu input.tg:not(:checked) { background: #cfd8d0; }
.formu input.tg:checked { background: var(--verde); }

/* Temporadas completas (098). */
.temporadas { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 10px; }
.temporadas li { border: 1px solid var(--linea); border-radius: 14px; padding: 12px 14px; background: #fbfcfb; }
.temp-cab { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.temp-cab form { margin-left: auto; }
.temp-precios { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 8px 0 4px; }
.temp-precios small { color: var(--gris); font-size: 12px; }
.temp-datos { margin: 0; font-size: 12.5px; }
.temporada h4 { margin: 0 0 10px; }
.occ-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; margin-top: 6px; }
.occ-grid label { display: flex; flex-direction: column; gap: 4px; }
.occ-grid small { font-weight: 700; font-size: 12.5px; }
.temp-cxl .cxl-fila { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 6px 0; font-size: 14px; }
.formu .temp-cxl .cxl-fila input { width: 76px; padding: 8px 10px; }
.temp-base { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--linea); }
.temp-base .campo { flex: 1; min-width: 220px; margin: 0; }
.temp-base .btn { flex: none; width: auto; }
.cotiz-temp { margin: 4px 0; font-size: 13px; color: var(--gris); }
.temp-editar { margin-top: 8px; }
.temp-editar > summary { cursor: pointer; font-weight: 700; font-size: 13.5px; color: var(--verde); }
.temp-editar[open] > summary { margin-bottom: 10px; }
.con-sufijo-txt { display: flex; align-items: center; gap: 8px; }
.formu .con-sufijo-txt input { width: 90px; }

/* Motor en el sitio propio del hotel (16 oct). */
.motor-sitio { border: 2px solid #b9d6bb; }
.ms-paso { display: grid; grid-template-columns: 34px 1fr; gap: 14px; padding: 16px 0 4px; border-top: 1px solid var(--linea); margin-top: 14px; }
.ms-paso h3 { margin: 4px 0 4px; font-size: 16px; text-transform: none; letter-spacing: 0; color: var(--tinta); }
.ms-paso.apagado { opacity: .6; }
.ms-num { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--verde); color: #fff; font-weight: 800; }
.ms-sitios { list-style: none; margin: 8px 0 10px; padding: 0; display: grid; gap: 6px; }
.ms-sitios li { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--suave); border-radius: 10px; padding: 6px 6px 6px 12px; font-weight: 700; }
.ms-codigo { display: flex; gap: 10px; align-items: flex-start; flex-wrap: wrap; margin: 8px 0; }
.ms-codigo textarea { flex: 1; min-width: 260px; }
.ms-mas { margin-top: 10px; }
.ms-mas summary { cursor: pointer; font-weight: 700; color: var(--verde); }
.temp-acc { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.temp-acc form { margin: 0; }
.temp-cab form { margin-left: 0; }
.temp-ed-btn { background: var(--verde); color: #fff; border: 1px solid var(--verde); }
.btn.btn-quitar { background: #fff; color: #9b2c2c; border: 1px solid #e6c3c3; }
.btn.btn-quitar:hover { background: #fbeeee; }
.temp-editar > summary { display: none; }
.temp-editar[open] { margin-top: 12px; }
/* Nombre o número de cada habitación (16 oct). */
.hn-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin: 6px 0 14px; }
.hn-item { display: flex; flex-direction: column; gap: 4px; background: var(--suave); border-radius: 12px; padding: 8px 10px 10px; }
.hn-item small { font-weight: 700; font-size: 12px; color: var(--gris); }
.formu .hn-item input { background: #fff; padding: 9px 11px; }

/* Jerarquía de la ficha de habitación (16 oct, Mario: menos plano). */
.grid2 { align-items: start; }
.foto-mini { position: relative; }
.foto-mini form { position: absolute; top: 6px; right: 6px; margin: 0; }
.foto-quitar { width: 28px; height: 28px; border-radius: 50%; border: 0; background: rgba(20, 30, 22, .72); color: #fff; font: 700 17px/1 Manrope, sans-serif; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 6px rgba(0,0,0,.25); }
.foto-quitar:hover { background: #9b2c2c; }
.sec-titulo { font-size: 22px; font-weight: 800; letter-spacing: -.01em; margin: 30px 0 4px; padding-left: 12px; border-left: 4px solid var(--verde); }
.caja > h2, .ed-cab h2 { font-size: 18px; font-weight: 800; letter-spacing: -.01em; }
.ed-cab { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 6px; }
.ed-cab .regla-ico { flex: none; }
.ed-cab h2 { margin: 2px 0 4px; }
.tarifa-caja { background: linear-gradient(180deg, #f6faf5 0, var(--caja, #fff) 160px); }
.temporadas li { background: #fff; border: 1px solid var(--linea); border-left: 4px solid var(--verde); border-radius: 14px; padding: 14px 16px; box-shadow: 0 2px 10px rgba(22, 36, 26, .04); }
.temp-cab b { font-size: 17px; font-weight: 800; }
.temp-cab > .nota { background: var(--suave); border-radius: 999px; padding: 3px 10px; font-size: 12.5px; font-weight: 600; }
.temp-precios { gap: 8px; margin: 12px 0 8px; }
.temp-precios span { display: inline-flex; flex-direction: column; background: #f3f7f2; border-radius: 10px; padding: 6px 12px; min-width: 86px; }
.temp-precios span small { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.temp-precios span b { font-size: 16px; }
.temp-datos { color: var(--gris); }
.formu.temporada { border: 1px solid #d6e5d3; }
.tf-cab { display: flex; align-items: center; gap: 10px; font-size: 17px; font-weight: 800; margin: 0 0 6px; }
.tf-cab span { width: 26px; height: 26px; border-radius: 50%; background: var(--verde); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 17px; }
.tf-tit { margin: 16px 0 8px; padding-top: 12px; border-top: 1px solid #d6e5d3; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--verde); }
.formu.temporada > .tf-tit:first-of-type { border-top: 0; padding-top: 0; margin-top: 6px; }
.temp-editar .formu.temporada { background: #f6faf5; }

/* Google Hotels (102) en el Channel Manager */
.g-caja h2 .pill { font-size: 12px; vertical-align: middle; margin-left: 6px; }
.g-lista { list-style: none; margin: 14px 0 18px; padding: 0; display: grid; gap: 8px; }
.g-lista li { display: flex; align-items: center; gap: 10px; font-size: 14.5px; }
.g-lista li i { width: 22px; height: 22px; border-radius: 50%; flex: none; display: inline-flex; align-items: center; justify-content: center;
  font-style: normal; font-size: 12px; font-weight: 800; border: 1.5px solid #c9d6c8; color: transparent; }
.g-lista li.si i { background: var(--verde, #1f3a26); border-color: var(--verde, #1f3a26); color: #b8f5b1; }
.g-lista li.no span { color: #5c6b5f; }
.g-lista li a { font-size: 13px; font-weight: 700; }
.g-form { margin: 6px 0 16px; padding: 16px; border-radius: 16px; background: #f3f7f2; }
.g-form .fila2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
@media (max-width: 640px) { .g-form .fila2 { grid-template-columns: 1fr; } }
.g-admin { margin-top: 14px; padding-top: 12px; border-top: 1px dashed #d5dfd4; }
.g-caja .btn[disabled] { opacity: .45; cursor: not-allowed; }

/* Textos con IA y otros idiomas (103) */
.ia-acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: -4px 0 14px; }
.btn-ia { display: inline-flex; align-items: center; gap: 7px; border: 0; cursor: pointer; font: inherit; font-size: 13.5px; font-weight: 700;
  padding: 8px 14px; border-radius: 999px; background: #b8f5b1; color: #142218; }
.btn-ia svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.btn-ia.sec { background: #fff; border: 1px solid #cfdccd; }
.btn-ia:disabled { opacity: .55; cursor: progress; }
.ia-acciones.cargando .btn-ia svg { animation: ia-gira 1.2s linear infinite; }
@keyframes ia-gira { to { transform: rotate(360deg); } }
.ia-estado { font-size: 13px; color: #4b5a4e; }
.ia-estado .enlace { margin-left: 6px; }
details.idiomas { border: 1px solid #dfe7dd; border-radius: 16px; padding: 0; margin: 4px 0 16px; background: #f7faf6; }
details.idiomas > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 16px; }
details.idiomas > summary::-webkit-details-marker { display: none; }
details.idiomas > summary small { color: #5c6b5f; font-weight: 500; margin-left: 6px; }
.idiomas-n { font-size: 12px; font-weight: 700; background: #e0eed9; color: #1f3a26; border-radius: 999px; padding: 3px 10px; white-space: nowrap; }
details.idiomas > .nota { padding: 0 16px; margin: 0 0 10px; }
.idiomas-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; padding: 0 16px 16px; }
@media (max-width: 760px) { .idiomas-grid { grid-template-columns: 1fr; } }
fieldset.idioma { border: 1px solid #e3eae1; border-radius: 12px; background: #fff; padding: 10px 12px 4px; margin: 0; min-width: 0; }
fieldset.idioma legend { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #3f7a49; padding: 0 6px; }

/* Opciones con radio (Quién paga la comisión): el radio no toma el ancho de los campos de texto. */
.formu label.opcion > input[type="radio"], .formu label.opcion > input[type="checkbox"] { width: 20px; min-width: 20px; height: 20px; padding: 0; margin: 2px 0 0; flex: none; box-shadow: none; accent-color: var(--verde); }
.formu label.opcion > span { flex: 1; min-width: 0; }

/* Agencias (104) */
form:not(:has(select[name="source"] option[value="agency"]:checked)) .solo-agencia { display: none; }
form:has(select[name="source"] option[value="agency"]:checked) .cobro-opciones { display: none; }
form:has(select[name="source"] option[value="agency"]:checked) .solo-aparte { display: block; }
form:has(select[name="source"] option[value="agency"]:checked) .no-agencia { display: none; }
.solo-agencia .nota { grid-column: 1 / -1; margin: 0; }
form:not(:has(input[name="a_quien"][value="elegir"]:checked)) .lista-agencias { display: none; }
.lista-agencias { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 4px 16px; margin-top: 8px; }
.formu .monto-abono { width: 110px; text-align: right; }
.caja-pago { border: 1px solid var(--linea, #dfe6df); border-radius: 12px; padding: 14px 16px; margin: 14px 0 0; }
.caja-pago legend { font-weight: 700; padding: 0 6px; }
.exportar { margin: 0 0 10px; font-size: 14px; }
.lista td input[type="checkbox"] { width: 20px; height: 20px; }
.formu.form-cuenta { max-width: none; }
.form-cuenta .caja-pago { max-width: 720px; }
.lista td[data-t="Vence"], .lista td[data-t="Fecha"] { white-space: nowrap; }

/* Lo que el plan no incluye (20 oct): leve transparencia + candado que sigue al cursor */
a.bloq { opacity: .45; cursor: not-allowed; position: relative; }
a.bloq:hover { opacity: .6; }
.bloq-ico { display: inline-flex; margin-left: auto; font-style: normal; }
.bloq-ico svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.menu-mas a.bloq b { display: inline-flex; align-items: center; gap: 6px; }
.bloq-flota { position: fixed; left: 0; top: 0; z-index: 9999; pointer-events: none; display: flex; align-items: flex-start; gap: 8px;
  max-width: 260px; padding: 10px 12px; border-radius: 12px; background: rgba(28, 45, 30, .92); color: #fff;
  font-size: 13px; line-height: 1.4; box-shadow: 0 8px 24px rgba(0,0,0,.18); backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.14); opacity: 0; transition: opacity .12s; }
.bloq-flota.ver { opacity: 1; }
.bloq-flota svg { flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; margin-top: 1px; }
@media (hover: none) { .bloq-flota { display: none; } }
.lat-mini .lateral nav a .bloq-ico { display: none; }

/* Submenú del lateral como acordeón (20 oct) */
.lateral nav a[data-con-sub] { cursor: pointer; }
.lat-flecha { margin-left: auto; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px); transition: transform .2s; opacity: .7; flex: none; }
.lateral nav a[aria-expanded="false"] .lat-flecha { transform: rotate(-45deg); }
.lat-sub { flex-shrink: 0; overflow: hidden; max-height: 600px; transition: max-height .25s ease, opacity .2s ease, margin .2s ease; }
.lat-sub.cerrado { max-height: 0; opacity: 0; margin-top: 0; margin-bottom: 0; }
.lat-mini .lat-flecha { display: none; }

/* "¿Cómo funciona?" de OTAs, más liviano (20 oct, Mario): card de vidrio con borde fino */
.banda-pasos { background: linear-gradient(135deg, rgba(255,255,255,.78), rgba(236,243,234,.6)); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(34, 68, 37, .12); box-shadow: 0 12px 32px -24px rgba(19, 38, 26, .35); color: var(--tinta, #13261a); padding: 20px 24px 22px; }
.banda-pasos h2 { color: var(--gris); }
.banda-pasos .pasos-canal li + li { border-left-color: rgba(34, 68, 37, .1); }
.banda-pasos .pasos-canal li::before { background: transparent; color: var(--oscuro); border: 1.5px solid rgba(34, 68, 37, .35); font-weight: 700; font-size: 15px; }
.banda-pasos .pasos-canal b { font-weight: 700; color: var(--oscuro); }
.banda-pasos .pasos-canal span { color: var(--gris); }
@media (max-width: 760px) { .banda-pasos .pasos-canal li + li { border-top-color: rgba(34, 68, 37, .1); } }

/* OTAs, "¿Cómo funciona?" (20 oct, Mario: más elegante). Card de vidrio con
   borde fino, números en círculo delineado y una línea fina que los une. */
.banda-pasos { background: rgba(255, 255, 255, .62); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border: 1px solid rgba(34, 68, 37, .12); border-radius: 22px; padding: 22px 26px 24px; color: var(--tinta, #13261a);
  box-shadow: 0 1px 0 rgba(255,255,255,.8) inset, 0 18px 40px -30px rgba(19, 38, 26, .35); }
.banda-pasos h2 { font-size: 11px; letter-spacing: .14em; color: var(--gris); margin: 0 0 16px; }
.banda-pasos .pasos-canal { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; position: relative; }
.banda-pasos .pasos-canal::before { content: ""; position: absolute; left: 15px; right: 15px; top: 15px; height: 1px;
  background: linear-gradient(90deg, rgba(34,68,37,.25), rgba(34,68,37,.08)); }
.banda-pasos .pasos-canal li { background: none; border: 0; box-shadow: none; color: inherit; padding: 46px 22px 0 0; position: relative; }
.banda-pasos .pasos-canal li::before { left: 0; top: 0; width: 30px; height: 30px; background: #fff; color: var(--verde);
  border: 1px solid rgba(34, 68, 37, .35); font-size: 13px; font-weight: 700; }
.banda-pasos .pasos-canal li:first-child::before { background: var(--verde); color: #fff; border-color: var(--verde); }
.banda-pasos .pasos-canal b { font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.banda-pasos .pasos-canal span { color: var(--gris); font-size: 13.5px; line-height: 1.5; }
@media (max-width: 760px) {
  .banda-pasos .pasos-canal { grid-template-columns: 1fr; gap: 16px; }
  .banda-pasos .pasos-canal::before { left: 15px; right: auto; top: 15px; bottom: 15px; width: 1px; height: auto; background: rgba(34,68,37,.15); }
  .banda-pasos .pasos-canal li { padding: 4px 0 0 46px; }
}
.banda-pasos .pasos-canal li + li { border-left: 0; border-top: 0; margin-top: 0; }
.banda-pasos .pasos-canal li + li::before { left: 0; top: 0; }
@media (min-width: 761px) { .banda-pasos .pasos-canal li { padding-left: 0; padding-top: 46px; } }
@media (max-width: 760px) { .banda-pasos .pasos-canal li, .banda-pasos .pasos-canal li + li { padding: 4px 0 0 46px; } }

/* 106: negocios de una misma cuenta (hotel + tours) juntos en el selector */
.empresas .emp-aqui { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--verde); margin-right: 6px; vertical-align: 1px; }
.empresas .emp-cuenta { padding: 10px 10px 10px; border-radius: 10px; margin: 2px 0; }
.empresas .emp-aqui-cuenta { background: var(--suave); }
.empresas .emp-cuenta > b { display: block; font-weight: 800; }
.empresas .emp-cuenta > small { margin: 1px 0 8px; }
.empresas .emp-modulos { display: flex; gap: 2px; padding: 3px; border-radius: 999px; background: rgba(34, 68, 37, .07); border: 1px solid rgba(34, 68, 37, .08); }
.empresas .emp-modulos button, .empresas .emp-modulos .actual { display: flex; align-items: center; justify-content: center; gap: 6px; width: auto; flex: 1 1 0;
  padding: 6px 12px; border-radius: 999px; font-size: 13px; font-weight: 700; background: none; color: var(--tinta); transition: background .15s, box-shadow .15s; }
.empresas .emp-modulos button:hover { background: rgba(255, 255, 255, .7); }
.empresas .emp-modulos .actual { background: var(--verde); color: #fff; box-shadow: 0 2px 8px rgba(34, 68, 37, .25); }
.empresas .emp-modulos svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.plan-total { border: 1px solid rgba(34, 68, 37, .2); }
.plan-total .plan-precio { font-size: 22px; margin: 4px 0; }

/* 20. "Atrás" en el celular o con el panel instalado (no hay botón del navegador) */
.rz-atras { display: none; }
@media (max-width: 899px), (display-mode: standalone) {
  .rz-atras.si { display: inline-flex; align-items: center; gap: 2px; flex: none; height: 38px; padding: 0 12px 0 6px; margin-right: 2px;
    border: 1px solid var(--linea, #dfe6df); border-radius: 999px; background: #fff; color: var(--tinta);
    font: 800 14px Manrope, sans-serif; cursor: pointer; box-shadow: 0 2px 8px rgba(22, 36, 26, .06); }
  .rz-atras svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
  .rz-atras:active { transform: scale(.96); }
}

/* 21. Notificaciones push (109) */
.push-estado { font-weight: 700; margin: 6px 0 12px; }
.push-tarjeta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px;
  background: var(--oscuro, #13261A); color: #fff; border: 0; }
.push-tarjeta b { display: block; font-size: 16px; margin-bottom: 2px; }
.push-tarjeta span { display: block; color: rgba(255, 255, 255, .78); font-size: 14px; max-width: 560px; }
.push-tarjeta .acciones { display: flex; gap: 8px; flex-wrap: wrap; }
.push-tarjeta .btn { background: var(--acento, #a8feaf); color: #13261A; }
.push-tarjeta .btn.sec { background: transparent; color: #fff; border: 1px solid rgba(255, 255, 255, .35); }
.push-caja [hidden] { display: none !important; }

/* 110: crear traslado */
.nuevo-traslado:has(input[name=servicio][value=privado]:checked) .si-compartido,
.nuevo-traslado:has(input[name=servicio][value=compartido]:checked) .si-privado { display: none; }
.nuevo-traslado .opciones .chk span b { font-weight: 800; }
.campo .sufijo { font-style: normal; font-size: 12px; color: var(--gris); margin-top: 4px; }

/* Bitácora (111) */
.bit-grid { display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1100px) { .bit-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: start; } .bit-lado { position: sticky; top: 16px; } }
.bit-form h3 { margin: 22px 0 8px; font-size: 15px; }
.bit-form h3 i { font-weight: 500; font-style: normal; color: var(--muted, #5b6d5e); font-size: 13px; }
.bit-bloque { border: 1px solid var(--line, #dfe8df); border-radius: 14px; padding: 10px 14px 4px; margin: 0 0 12px; }
.bit-bloque legend { font-weight: 800; font-size: 13px; padding: 0 6px; }
.bit-vista { width: 100%; height: 720px; border: 1px solid var(--line, #dfe8df); border-radius: 14px; background: #EEF3EE; }
@media (max-width: 640px) { .bit-vista { height: 560px; } }
.bit-estado { font-size: .5em; font-weight: 600; opacity: .7; }

.push-campana { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center;
  background: rgba(168, 254, 175, .14); border: 1px solid rgba(168, 254, 175, .35); color: var(--acento, #a8feaf); }
.push-campana svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  transform-origin: 50% 4px; animation: push-campana 2.4s ease-in-out 0.6s 2; }
.push-tarjeta .push-txt { flex: 1 1 280px; }
@keyframes push-campana { 0%, 60%, 100% { transform: rotate(0); } 10% { transform: rotate(14deg); } 20% { transform: rotate(-12deg); } 30% { transform: rotate(8deg); } 40% { transform: rotate(-5deg); } }
@media (prefers-reduced-motion: reduce) { .push-campana svg { animation: none; } }

/* Bitácora y Contactos (112, Mario: "que no todo sea TAN verde oscuro"):
   tarjetas claras sobre el fondo de la vista de Rezzerva. */
.modo-plataforma .bit-claro { --caja: #f7faf5; --linea: #dfe8dc; --tinta: #16241a; --gris: #5c6b5f; --verde: #224425; color: var(--tinta); }
.modo-plataforma .bit-claro .caja, .modo-plataforma .bit-claro .vacio { background: #f7faf5; border-color: #dfe8dc; color: #16241a; box-shadow: 0 10px 30px rgba(0, 0, 0, .18); }
.modo-plataforma .bit-claro .caja h2, .modo-plataforma .bit-claro .caja h3, .modo-plataforma .bit-claro .caja legend, .modo-plataforma .bit-claro .caja b { color: #13261a; }
.modo-plataforma .bit-claro .caja h3, .modo-plataforma .bit-claro .caja .nota, .modo-plataforma .bit-claro .caja small, .modo-plataforma .bit-claro .caja i { color: #5c6b5f; }
.modo-plataforma .bit-claro .caja a { color: #224425; }
.modo-plataforma .bit-claro .caja .formu input, .modo-plataforma .bit-claro .caja .formu select, .modo-plataforma .bit-claro .caja .formu textarea,
.modo-plataforma .bit-claro .caja .buscar input, .modo-plataforma .bit-claro .caja .buscar select { background: #fff; color: #16241a; border-color: #d3ded0; }
.modo-plataforma .bit-claro .caja .btn { background: #13261a; color: #a8feaf; border-color: #13261a; }
.modo-plataforma .bit-claro .caja .btn.sec { background: #fff; color: #13261a; border-color: #c9d6c7; }
.modo-plataforma .bit-claro .caja .btn.sec:hover { background: #eef3ea; }
.modo-plataforma .bit-claro .caja table thead th { background: #e9f0e6; color: #2f4a35; }
.modo-plataforma .bit-claro .caja table td, .modo-plataforma .bit-claro .caja table th { border-color: #dfe8dc; }
.modo-plataforma .bit-claro .caja table tbody tr:hover { background: #eef4eb; }
.modo-plataforma .bit-claro .bit-bloque { border-color: #dfe8dc; background: #fff; }
.modo-plataforma .bit-claro .kpi { background: #f7faf5; border-color: #dfe8dc; }
.modo-plataforma .bit-claro .kpi b { color: #224425; }
.modo-plataforma .bit-claro .kpi span { color: #5c6b5f; }
.modo-plataforma .bit-claro .caja .kpi { background: #eef4eb; }
.modo-plataforma .bit-claro .rz-guardado { background: #13261a; color: #a8feaf; }
.bit-foto-fila { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.bit-mini { width: 96px; height: 64px; border-radius: 10px; overflow: hidden; background: #e9f0e6; border: 1px solid #d3ded0; display: grid; place-items: center; flex: 0 0 auto; }
.bit-mini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bit-mini i { font-style: normal; font-size: 12px; color: #7d8f80; }
.bit-subir { position: relative; cursor: pointer; }
.bit-subir input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.bit-foto.subiendo .bit-mini { animation: bit-pulso 1s ease-in-out infinite alternate; }
@keyframes bit-pulso { to { opacity: .45; } }
.modo-plataforma h1 small.bit-estado { background: none; color: #a9bdaa; opacity: 1; padding: 0; }
.modo-plataforma .bit-claro .caja input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.modo-plataforma .bit-claro .caja select, .modo-plataforma .bit-claro .caja textarea { background: #fff; color: #16241a; border-color: #d3ded0; }
.modo-plataforma .bit-claro .caja input::placeholder, .modo-plataforma .bit-claro .caja textarea::placeholder { color: #8a9a8c; }
.modo-plataforma .bit-claro > .cab h1 { color: #f2f7f0; }
.modo-plataforma .bit-claro > .migas { color: #a9bdaa; }
.modo-plataforma .bit-claro > .migas a { color: #a8feaf; }
.modo-plataforma .bit-claro > .nota { color: #a9bdaa; }
.modo-plataforma .bit-claro > .nota a { color: #a8feaf; }
.modo-plataforma .bit-claro > .cab .btn { background: #a8feaf; color: #13261a; }
.modo-plataforma .bit-claro > .cab h1 small.bit-estado { color: #a9bdaa; background: none; font-size: 15px; font-weight: 600; }

/* ==========================================================
   Botones parejos (21 oct, Mario: "algunos tipo pill, otros con
   puntas redondeadas, uno centrado y el otro no"). Una sola forma:
   píldora, misma altura y letra. Principal verde bosque; secundario
   blanco con borde. Las acciones de la cabecera van juntas a la derecha.
   ========================================================== */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 42px; padding: 0 20px;
  border-radius: 999px; border: 1px solid transparent; font: 700 14px/1.1 Manrope, sans-serif; box-shadow: none; transform: none; }
.btn:hover { box-shadow: none; transform: none; filter: brightness(1.1); }
.btn.sec { border-color: #cddbc9; }
.btn.chico { min-height: 34px; padding: 0 14px; font-size: 13px; }
.btn.grande { min-height: 52px; font-size: 16px; border-radius: 999px; }
.btn.crear, .cab .btn.crear, .cab .cab-btn, .cab-acciones .btn { min-height: 42px; padding: 0 20px; font-size: 14px; font-weight: 700; border-radius: 999px;
  border: 1px solid transparent; box-shadow: none; margin-left: 0; }
.btn.crear:not(.sec), .cab .cab-btn:not(.sec) { background: var(--verde); color: #fff; }
.btn.crear:hover, .btn.crear:focus-visible { background: var(--verde); border-color: transparent; color: #fff; filter: brightness(1.12); }
.cab-btn.sec { background: #fff; color: var(--verde); border-color: #cddbc9; }
.cab, .cab:has(> .btn.crear) { justify-content: flex-start; }
.cab > h1 { margin-right: auto; }
.cab-acciones { margin-left: 0; }
.buscar .btn-lupa { border-radius: 999px; padding: 0 20px; }
@media (max-width: 720px) { .buscar .btn-lupa { width: 46px; padding: 0; } }
.filtros > .btn.crear { margin-left: auto; }

/* Migas (21 oct): "← sección de arriba" como píldora y el resto como enlaces. */
.migas.con-volver a.migas-volver { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; font-weight: 700; font-size: 13px; cursor: pointer;
  color: var(--verde); background: var(--caja); border: 1px solid var(--linea); border-radius: 999px; padding: 6px 12px 6px 10px; margin-right: 10px; }
.migas.con-volver a.migas-volver::before { content: "←"; font-size: 15px; line-height: 1; }
.migas.con-volver a.migas-volver:hover { border-color: var(--verde); }
.migas.con-volver a:not(.migas-volver) { color: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.modo-plataforma .migas.con-volver a.migas-volver { background: transparent; border-color: #3d5c44; color: #a8feaf; }
.modo-plataforma .migas.con-volver a:not(.migas-volver) { color: #a8feaf; }
@media (max-width: 899px), (display-mode: standalone) {
  .rz-atras.si { color: #16241a; max-width: 46vw; }
  .rz-atras span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  /* Arriba ya está "‹ sección"; las migas quedan como ruta. */
  .migas.con-volver a.migas-volver { display: none; }
}
@media (max-width: 899px), (display-mode: standalone) {
  .migas:not(.con-volver) a:first-child { background: none; border: 0; padding: 0; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
  .migas:not(.con-volver) a:first-child::before { content: none; }
}
/* Botones uno al lado del otro: con aire entre ellos, también si bajan de línea. */
.botones { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
form > .btn:not(:last-child), .acciones > .btn:not(:last-child) { margin-right: 8px; }

/* Traslados del día (115) */
.tr-dia { list-style: none; padding: 0; margin: 0 0 18px; display: grid; gap: 12px; }
.tr-serv { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 8px 18px; background: var(--caja); border: 1px solid var(--linea); border-radius: 18px; padding: 16px 18px; }
.tr-serv.tr-recogido, .tr-serv.tr-no_show { opacity: .7; }
.tr-hora { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.tr-hora b { font-size: 22px; line-height: 1; letter-spacing: -.01em; }
.tr-info p { margin: 2px 0; }
.tr-info .nota { margin: 2px 0; }
.tr-asignar { grid-column: 2; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 4px 0 0; }
.tr-asignar select { flex: 1 1 180px; max-width: 260px; }
.aviso-tr { display: inline-block; margin: 6px 6px 0 0 !important; padding: 4px 10px; border-radius: 999px; background: #fff3d6; color: #7a4f00; font-size: 13px; font-weight: 600; }
.tr-badge-sin { background: #fdecea; color: #a1281f; }
.tr-badge-asignada { background: #e6f2e4; color: #2f5a35; }
.tr-badge-recogido { background: #dff1dc; color: #1f4d2c; }
.tr-badge-no_show { background: #f1e7e6; color: #8a3a33; }
.campo-copia { width: 100%; max-width: 640px; font: inherit; padding: 10px 12px; border: 1px solid var(--linea); border-radius: 12px; background: #fbfcfb; }
.fila-clase input:first-of-type { min-width: 180px; }
@media (max-width: 640px) {
  .tr-serv { grid-template-columns: 1fr; }
  .tr-hora { flex-direction: row; align-items: center; }
  .tr-asignar { grid-column: 1; }
  .tr-asignar select { max-width: none; }
}
/* Flota y asignación: todo en una fila, botones a su medida. */
.tr-asignar, #clases form, #vehiculos form, #choferes form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
#clases form > input, #vehiculos form > input, #choferes form > input, #vehiculos form > select { flex: 1 1 160px; width: auto; min-width: 0; margin: 0; }
#clases form > input.corto, #vehiculos form > input.corto { flex: 0 0 110px; }
.tr-asignar .btn, #clases form .btn, #vehiculos form .btn, #choferes form .btn { flex: 0 0 auto; width: auto; margin: 0; }
#clases form .chk, #vehiculos form .chk, #choferes form .chk { flex: 0 0 auto; white-space: nowrap; margin: 0; }
#clases table.lista td, #vehiculos table.lista td, #choferes table.lista td { padding-left: 0; padding-right: 0; }

/* 116: agencias en todos los módulos */
.pill.mod-hotel { background: #e8eefc; color: #2b4a9b; }
.pill.mod-tour { background: #e6f4ea; color: #1f6b3a; }
.pill.mod-traslado { background: #fff1dc; color: #8a5300; }
td .pill[class*="mod-"] { font-style: normal; font-size: 11px; padding: 1px 7px; margin-right: 4px; }
.cinta-barra.atenuada, .mes-chip.atenuada { opacity: .28; }
.cal-agencia { margin-left: auto; }
.cal-agencia select { min-height: 36px; }
.lista-simple { list-style: none; padding: 0; margin: 8px 0 12px; display: grid; gap: 6px; }

/* Buscar es secundario: el verde lleno queda para la acción principal (Crear reserva). */
.buscar .btn-lupa { background: #fff; color: var(--verde); border: 1px solid #cddbc9; box-shadow: none; }
.buscar .btn-lupa:hover { background: #f2f6f0; }

/* Liquidación: lo que te queda arriba y grande; el detalle debajo, agrupado. */
.liq-neto { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 4px 0 6px; padding: 16px 18px;
  background: #eef5ec; border: 1px solid #d6e5d2; border-radius: 16px; }
.liq-neto span { font-weight: 700; color: var(--verde); }
.liq-neto span small { font-weight: 500; color: var(--gris); margin-left: 4px; }
.liq-neto b { font-size: 28px; font-weight: 800; color: var(--verde); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.lineas tr.grupo td { padding: 16px 0 4px; border-bottom: 0; font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--gris); }
.lineas tr.sub td { font-weight: 700; border-bottom: 0; }
.lineas tr.menos td { color: var(--gris); }
.lineas.liq td small { display: inline; font-size: 12px; color: var(--gris); margin-left: 4px; }
.lineas tr.apagado td { color: var(--gris); }
.liq-mas { margin: 10px 0 0; }
.liq-mas summary { cursor: pointer; font-size: 13px; color: var(--gris); }
.liq-mas .nota { margin-top: 6px; }

/* Flota (Mario, 21 oct): tarjetas con la silueta del vehículo, placa, pasajeros y estado de hoy. */
.fl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; margin-top: 12px; }
.fl-card { position: relative; background: rgba(255,255,255,.72); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border: 1px solid #dbe6d7; border-radius: 18px; padding: 14px 16px 12px; display: flex; flex-direction: column; gap: 8px; }
.fl-card.apagada { opacity: .55; }
.fl-ilus { position: relative; display: flex; align-items: center; justify-content: center; height: 82px; border-radius: 12px;
  background: linear-gradient(180deg, #f1f6ef, #e6efe3); }
.fl-sil { width: 112px; height: 46px; fill: none; stroke: var(--verde); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.fl-sil circle { fill: #fff; }
.fl-placa { position: absolute; right: 8px; bottom: 8px; font: 800 11.5px/1 ui-monospace, Menlo, monospace; letter-spacing: .06em;
  background: #fff; color: #1d2b1f; border: 1.5px solid #1d2b1f; border-radius: 5px; padding: 4px 6px; }
.fl-cab { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.fl-cab h3, .fl-persona h3 { margin: 0; font-size: 16px; font-weight: 800; }
.fl-pax { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: var(--verde); background: #eef5ec; border-radius: 999px; padding: 3px 9px 3px 6px; }
.fl-pax svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2.2; }
.fl-meta { margin: 0; font-size: 13px; color: var(--gris); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.fl-chip { font-style: normal; font-size: 12px; font-weight: 700; color: var(--verde); border: 1px solid #cddbc9; border-radius: 999px; padding: 2px 9px; }
.fl-chip.gris { color: var(--gris); }
.fl-off { color: #9a5b00; font-weight: 700; }
.fl-estado { display: inline-flex; align-items: center; gap: 5px; }
.fl-estado::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #9db69a; }
.fl-estado.libre::before { background: #4caf6a; }
.fl-estado.ocupado::before { background: #e0a226; }
.fl-estado.off::before { background: #c9c9c9; }
.fl-persona { display: flex; align-items: center; gap: 12px; }
.fl-avatar { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; color: var(--verde);
  background: linear-gradient(135deg, #e3eee0, #cfe2ca); border: 1px solid #c5d8c0; }
.fl-wa { align-self: flex-start; }
.fl-editar summary { cursor: pointer; font-size: 13px; font-weight: 700; color: var(--verde); list-style: none; }
.fl-editar summary::-webkit-details-marker { display: none; }
.fl-editar[open] summary { margin-bottom: 8px; }
.fl-editar .formu { display: grid; gap: 8px; }
.fl-nueva { border-style: dashed; background: rgba(255,255,255,.4); justify-content: center; }
.fl-nueva summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 10px; font-weight: 800; color: var(--verde); min-height: 60px; }
.fl-nueva summary::-webkit-details-marker { display: none; }
.fl-nueva[open] { justify-content: flex-start; }
.fl-nueva .formu { display: grid; gap: 8px; }
.fl-mas { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-size: 20px; background: #eef5ec; border: 1px solid #cddbc9; }
@media (max-width: 560px) { .fl-grid { grid-template-columns: 1fr 1fr; gap: 10px; } .fl-ilus { height: 64px; } .fl-sil { width: 88px; } }
@media (max-width: 380px) { .fl-grid { grid-template-columns: 1fr; } }
.fl-card h3 { text-transform: none; letter-spacing: -.005em; color: var(--tinta, #1d2b1f); font-size: 16px; }
#clases h2 small { display: inline; font-style: normal; font-weight: 500; font-size: 13px; margin-left: 6px; }
.fl-grid-personas { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
@media (max-width: 560px) { .fl-grid-personas { grid-template-columns: 1fr; } }

/* Código web guiado (21 oct): 1) tu sitio, 2) quién lo pone; compartir al final. */
.cw-cambio { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 14px; padding: 10px 14px; border-radius: 12px;
  background: #eef5ec; border: 1px solid #d6e5d2; font-size: 14px; }
.cw-cambio form { margin: 0; }
.cw-paso { display: flex; gap: 16px; align-items: flex-start; }
.cw-num { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-weight: 800;
  color: #fff; background: var(--verde); margin-top: 2px; }
.cw-cuerpo { flex: 1; min-width: 0; }
.cw-cuerpo h2 { margin-top: 4px; }
.cw-otro summary { cursor: pointer; font-weight: 700; color: var(--verde); font-size: 14px; margin-top: 6px; }
.cw-caminos { display: grid; gap: 10px; margin-top: 10px; }
.cw-camino { border: 1px solid #dbe6d7; border-radius: 16px; background: rgba(255,255,255,.7); padding: 0 16px; }
.cw-camino[open] { border-color: #b9d1b3; box-shadow: 0 6px 20px rgba(34,68,37,.06); padding-bottom: 14px; }
.cw-camino summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 14px; padding: 14px 0; }
.cw-camino summary::-webkit-details-marker { display: none; }
.cw-camino summary b { display: block; font-size: 15.5px; }
.cw-camino summary small { display: block; color: var(--gris); font-size: 13px; margin-top: 2px; }
.cw-ico { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: #eef5ec; color: var(--verde); }
.cw-ico svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.cw-pasos { margin: 4px 0 12px; padding-left: 20px; display: grid; gap: 4px; font-size: 14px; }
.codigo-web .codigo .btn { margin-top: 6px; }
.cw-compartir > summary { list-style: none; cursor: pointer; }
.cw-compartir > summary::-webkit-details-marker { display: none; }
.cw-compartir > summary h2 { display: inline; }
@media (max-width: 560px) { .cw-paso { gap: 10px; } .cw-num { width: 28px; height: 28px; font-size: 14px; } }

/* Desplegables (21 oct, Mario): como el menú izquierdo. Fila entera tocable,
   flecha fina a la derecha que gira, fondo suave al pasar, sin triángulo. */
main details:not(.caja):not(.cw-camino):not(.fl-card):not(.fl-editar):not(.seo-det):not(.im-acordeon):not(.regla-nueva):not(.wa-menu):not(.empresas):not(.im-compacta):not(.im-subir):not(.centro):not(.ed-codigo) > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px;
  padding: 12px 14px; margin: 6px -14px 0; border-radius: 12px; font-weight: 700; color: var(--tinta, #13261a); transition: background .15s; }
main details:not(.caja):not(.cw-camino):not(.fl-card):not(.fl-editar):not(.seo-det):not(.im-acordeon):not(.regla-nueva):not(.wa-menu):not(.empresas):not(.im-compacta):not(.im-subir):not(.centro):not(.ed-codigo) > summary::-webkit-details-marker { display: none; }
main details:not(.caja):not(.cw-camino):not(.fl-card):not(.fl-editar):not(.seo-det):not(.im-acordeon):not(.regla-nueva):not(.wa-menu):not(.empresas):not(.im-compacta):not(.im-subir):not(.centro):not(.ed-codigo) > summary::after { content: ""; margin-left: auto; flex: none; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px); transition: transform .2s; opacity: .55; }
main details:not(.caja):not(.cw-camino):not(.fl-card):not(.fl-editar):not(.seo-det):not(.im-acordeon):not(.regla-nueva):not(.wa-menu):not(.empresas):not(.im-compacta):not(.im-subir):not(.centro):not(.ed-codigo)[open] > summary::after { transform: rotate(-135deg) translate(-2px, -2px); }
main details:not(.caja):not(.cw-camino):not(.fl-card):not(.fl-editar):not(.seo-det):not(.im-acordeon):not(.regla-nueva):not(.wa-menu):not(.empresas):not(.im-compacta):not(.im-subir):not(.centro):not(.ed-codigo) > summary:hover { background: #f1f6f0; }
main details:not(.caja):not(.cw-camino):not(.fl-card):not(.fl-editar):not(.seo-det):not(.im-acordeon):not(.regla-nueva):not(.wa-menu):not(.empresas):not(.im-compacta):not(.im-subir):not(.centro):not(.ed-codigo)[open] > summary { margin-bottom: 6px; }
main details:not(.caja):not(.cw-camino):not(.fl-card):not(.fl-editar):not(.seo-det):not(.im-acordeon):not(.regla-nueva):not(.wa-menu):not(.empresas):not(.im-compacta):not(.im-subir):not(.centro):not(.ed-codigo) > summary h2, main details:not(.caja):not(.cw-camino):not(.fl-card):not(.fl-editar):not(.seo-det):not(.im-acordeon):not(.regla-nueva):not(.wa-menu):not(.empresas):not(.im-compacta):not(.im-subir):not(.centro):not(.ed-codigo) > summary h3 { margin: 0; display: inline; }
main details:not(.caja):not(.cw-camino):not(.fl-card):not(.fl-editar):not(.seo-det):not(.im-acordeon):not(.regla-nueva):not(.wa-menu):not(.empresas):not(.im-compacta):not(.im-subir):not(.centro):not(.ed-codigo) > summary small, main details:not(.caja):not(.cw-camino):not(.fl-card):not(.fl-editar):not(.seo-det):not(.im-acordeon):not(.regla-nueva):not(.wa-menu):not(.empresas):not(.im-compacta):not(.im-subir):not(.centro):not(.ed-codigo) > summary i { font-weight: 500; color: var(--gris); }
@media (prefers-reduced-motion: no-preference) {
  main details:not(.caja):not(.cw-camino):not(.fl-card):not(.fl-editar):not(.seo-det):not(.im-acordeon):not(.regla-nueva):not(.wa-menu):not(.empresas):not(.im-compacta):not(.im-subir):not(.centro):not(.ed-codigo)[open] > :not(summary) { animation: desplegar .2s ease; }
}
@keyframes desplegar { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.sub-op { font-size: 11px; font-weight: 500; opacity: .75; }
.codigo-web .codigo .btn { justify-self: start; align-self: flex-start; width: auto; }

/* Bitácora (21 oct, Mario): los secundarios no se distinguían de los campos blancos.
   Contorno oscuro y fondo transparente; al pasar, se llenan. */
.modo-plataforma .bit-claro .caja .btn.sec { background: transparent; color: #13261a; border: 1.5px solid #13261a; }
.modo-plataforma .bit-claro .caja .btn.sec:hover { background: #13261a; color: #a8feaf; }

/* OTAs (21 oct, Mario): "¿Cómo funciona?" y las tarjetas de abajo no pueden ser
   las dos blancas. Los pasos van en vidrio con tinte salvia; las agencias en
   tarjetas de vidrio con borde fino. */
.banda-pasos { background: linear-gradient(135deg, rgba(140, 175, 143, .26), rgba(140, 175, 143, .12)); border: 1px solid rgba(34, 68, 37, .16);
  box-shadow: none; -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.banda-pasos h2 { color: #3d5a40; }
.banda-pasos .pasos-canal li::before { background: rgba(255, 255, 255, .7); }
.canales .caja.canal { background: rgba(255, 255, 255, .55); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border: 1px solid rgba(34, 68, 37, .12); box-shadow: 0 10px 30px -24px rgba(19, 38, 26, .4); }
.canales .caja.canal:hover { background: rgba(255, 255, 255, .78); border-color: rgba(34, 68, 37, .22); }
/* Las cajas plegables también con la flecha del menú. */
main details.caja > summary { list-style: none; display: flex; align-items: center; gap: 10px; cursor: pointer; }
main details.caja > summary::-webkit-details-marker { display: none; }
main details.caja > summary::after { content: ""; margin-left: auto; flex: none; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px); transition: transform .2s; opacity: .55; }
main details.caja[open] > summary::after { transform: rotate(-135deg) translate(-2px, -2px); }

/* Desplegables sin recuadro al pasar ni al tocar (21 oct, Mario): solo la flecha
   se marca. Con teclado queda un anillo fino para no perder el foco. */
main details:not(.im-acordeon):not(.im-compacta):not(.seo-det):not(.centro):not(.empresas) > summary:hover,
main details:not(.im-acordeon):not(.im-compacta):not(.seo-det):not(.centro):not(.empresas)[open] > summary { background: transparent !important; }
main details > summary { outline: none; }
main details > summary:focus-visible { outline: 2px solid rgba(34, 68, 37, .35); outline-offset: 4px; border-radius: 10px; }
main details > summary:hover::after { opacity: 1; }
.hab-pills.sin-foto { position: static; padding: 14px 16px 0; }

/* Catálogo en lista (23 oct, Mario: menos brusco, no todo en tarjetas). */
.cat-nota { margin: -6px 0 16px; }
.cat-grupo + .cat-grupo { margin-top: 22px; }
.cat-titulo { display: flex; align-items: center; gap: 8px; margin: 0 0 8px 4px; }
.cat-titulo span { font-size: 11px; letter-spacing: 0; background: rgba(34, 68, 37, .08); color: var(--gris); border-radius: 999px; padding: 1px 8px; }
.cat-lista { list-style: none; margin: 0; padding: 4px; border-radius: var(--radio);
  background: rgba(255, 255, 255, .55); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border: 1px solid rgba(34, 68, 37, .12); box-shadow: 0 10px 30px -26px rgba(19, 38, 26, .4); }
.cat-lista li + li { border-top: 1px solid rgba(34, 68, 37, .07); }
.cat-fila { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border-radius: 10px; color: var(--tinta); text-decoration: none; transition: background .15s; }
.cat-fila:hover { background: rgba(255, 255, 255, .8); }
.cat-fila::after { content: ""; flex: none; width: 7px; height: 7px; border-right: 1.5px solid var(--gris); border-top: 1.5px solid var(--gris); transform: rotate(45deg); opacity: .45; margin-left: 2px; }
.cat-foto { flex: none; width: 44px; height: 44px; border-radius: 10px; background: var(--suave) center / cover no-repeat; }
.cat-foto.vacia { display: grid; place-items: center; border: 1px dashed rgba(34, 68, 37, .25); background: transparent; color: var(--gris); font-size: 18px; font-weight: 500; }
.cat-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.cat-txt b { font-size: 15px; font-weight: 700; letter-spacing: -.005em; }
.cat-txt b .pill { font-style: normal; font-size: 11px; vertical-align: 1px; margin-left: 4px; }
.cat-txt small { font-size: 13px; color: var(--gris); font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cat-txt small .falta { font-style: normal; color: var(--ambar); }
.cat-precio { flex: none; text-align: right; font-size: 15px; font-weight: 700; color: var(--verde); white-space: nowrap; }
.cat-precio small { font-size: 12px; font-weight: 500; color: var(--gris); margin: 0 3px; }
.cat-precio small:first-child { margin-left: 0; }
.cat-fila.apagado .cat-txt, .cat-fila.apagado .cat-precio, .cat-fila.apagado .cat-foto { opacity: .55; }
main .im-subir.im-compacta { margin-top: 22px; }
@media (max-width: 640px) {
  .cat-fila { flex-wrap: wrap; gap: 4px 12px; padding: 12px 10px; }
  .cat-txt { flex-basis: calc(100% - 80px); }
  .cat-txt small { white-space: normal; }
  .cat-fila::after { display: none; }
  .cat-precio { flex-basis: 100%; text-align: left; padding-left: 56px; font-size: 14px; }
  .cat-fila.sin-foto .cat-precio { padding-left: 0; }
}
main #bloquear.caja { margin-top: 28px; background: rgba(255, 255, 255, .55); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border: 1px solid rgba(34, 68, 37, .12); box-shadow: none; }

/* "Rango y filtros" destacado (24 oct, Mario): vidrio salvia, no otra tarjeta blanca. */
main details.filtros-caja { background: rgba(140, 175, 143, .16); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border: 1px solid rgba(34, 68, 37, .16); box-shadow: none; outline: none; border-radius: 14px; padding: 0 16px; }
main details.filtros-caja:focus-within { box-shadow: none; outline: none; }
main details.filtros-caja > summary { margin: 0 -16px; padding: 12px 16px; color: var(--verde); }
main details.filtros-caja > summary::before { content: ""; flex: none; width: 16px; height: 14px; transform: none !important; color: var(--verde); font-size: 0;
  background: linear-gradient(currentColor, currentColor) 0 1px / 16px 2px no-repeat, linear-gradient(currentColor, currentColor) 3px 6px / 10px 2px no-repeat,
              linear-gradient(currentColor, currentColor) 6px 11px / 4px 2px no-repeat; border-radius: 1px; }
main details.filtros-caja > summary, main details.filtros-caja > summary::after { color: var(--verde) !important; }
main details.filtros-caja[open] { background: rgba(140, 175, 143, .22); }
main details.filtros-caja[open] > summary { border-bottom: 1px solid rgba(34, 68, 37, .1); margin-bottom: 12px; }
main details.filtros-caja .filtros-grid input, main details.filtros-caja .filtros-grid select { background: rgba(255, 255, 255, .85); }

/* "Agregar clase/vehículo/chofer" distinto de las tarjetas (24 oct, Mario): vidrio salvia, borde punteado verde y botón + lleno. */
.fl-card.fl-nueva { background: rgba(140, 175, 143, .16); border: 1.5px dashed rgba(47, 90, 53, .38); box-shadow: none; transition: background .15s, border-color .15s; }
.fl-card.fl-nueva:hover, .fl-card.fl-nueva[open] { background: rgba(140, 175, 143, .24); border-color: rgba(47, 90, 53, .55); }
.fl-nueva summary { color: var(--verde); }
.fl-nueva .fl-mas { background: var(--verde); color: var(--acento); border: 0; font-weight: 700; box-shadow: 0 6px 16px -8px rgba(19, 38, 26, .55); }
.fl-nueva[open] .fl-mas { transform: rotate(45deg); transition: transform .15s; }
.fl-nueva .formu input { background: rgba(255, 255, 255, .85); }

/* Ícono por tipo en el catálogo cuando no hay foto (24 oct, Mario). */
.cat-ico { display: grid; place-items: center; background: rgba(140, 175, 143, .2); border: 1px solid rgba(34, 68, 37, .1); color: var(--verde); }
.cat-ico svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.cat-fila:hover .cat-ico { background: rgba(140, 175, 143, .32); }

/* Socios (137). */
.ac-socio { margin: 0 0 14px; padding: 10px 14px; border-radius: 12px; background: rgba(140, 175, 143, .18); border: 1px solid rgba(34, 68, 37, .14); font-size: 14px; }
.socio-url { display: block; font: 600 14px ui-monospace, Menlo, monospace; word-break: break-all; padding: 10px 12px; background: rgba(140, 175, 143, .16); border-radius: 10px; }
.socio-privado { border: 1px solid rgba(34, 68, 37, .25); }
.socio-modo { border: 0; padding: 0; margin: 4px 0 10px; display: flex; flex-wrap: wrap; gap: 6px 18px; }
.socio-modo legend { font-size: 13px; font-weight: 700; margin-bottom: 6px; }
.socio-modo label { display: flex; align-items: center; gap: 6px; font-weight: 600; }
.socio-form:has(input[name=modo][value=unico]:checked) .socio-si-pct, .socio-form:has(input[name=modo][value=porcentaje]:checked) .socio-si-unico { display: none; }
.socio-fila { flex-wrap: wrap; }
.socio-pagar { display: flex; gap: 6px; align-items: center; }
.socio-pagar input { width: 130px; font: inherit; border: 1px solid var(--linea); border-radius: 10px; padding: 5px 8px; }
.socio-recalcular { margin: 0 0 12px; }
.socio-nuevo { margin-top: 12px; padding: 12px 14px; border-radius: 14px; }
.socio-campos { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.socio-campos .campo { flex: 1 1 160px; margin: 0; }
.socio-editando { padding: 12px 14px; }
.socio-editar { font-size: 13px; font-weight: 600; color: var(--verde); }
div.cat-fila::after { display: none; }
.socio-nuevo { background: rgba(140, 175, 143, .16); border: 1.5px dashed rgba(47, 90, 53, .38); }
.socio-nuevo .fl-mas { background: var(--verde); color: var(--acento); border: 0; }
.modo-plataforma .cat-lista { background: rgba(255, 255, 255, .05); border-color: rgba(168, 254, 175, .14); box-shadow: none; }
.modo-plataforma .cat-lista li + li { border-top-color: rgba(168, 254, 175, .1); }
.modo-plataforma .cat-txt b { color: #eaf3ea; }
.modo-plataforma .cat-txt small { color: #a9bcab; }
.modo-plataforma .socio-editar { color: var(--acento); }
.modo-plataforma .socio-nuevo { background: rgba(168, 254, 175, .06); border-color: rgba(168, 254, 175, .3); }
.modo-plataforma .socio-url { background: rgba(168, 254, 175, .08); color: var(--acento); }
.socio-recalcular .btn { width: auto; }
.socio-pagar .btn { width: auto; white-space: nowrap; }

/* Ficha del traslado: jerarquía y color (24 oct, Mario). */
.ruta-banda { display: flex; align-items: center; gap: 14px; margin: 4px 0 18px; padding: 14px 18px; border-radius: 14px;
  background: rgba(140, 175, 143, .16); border: 1px solid rgba(34, 68, 37, .12); }
.rb-punta { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.rb-punta b { font-size: 16px; font-weight: 800; color: var(--tinta); }
.rb-aero { align-self: flex-start; font-style: normal; font-size: 11px; font-weight: 800; letter-spacing: .06em; background: var(--verde); color: var(--acento); border-radius: 6px; padding: 1px 7px; }
.rb-linea { flex: 1; position: relative; height: 2px; min-width: 60px; background: repeating-linear-gradient(90deg, rgba(47, 90, 53, .45) 0 6px, transparent 6px 11px); }
.rb-linea::after { content: ""; position: absolute; right: -2px; top: -4px; width: 8px; height: 8px; border-top: 2px solid #2f5a35; border-right: 2px solid #2f5a35; transform: rotate(45deg); }
.rb-linea small { position: absolute; left: 50%; top: -22px; transform: translateX(-50%); font-size: 12px; font-weight: 700; color: var(--verde); background: #eef4ec; border-radius: 999px; padding: 1px 10px; white-space: nowrap; }
.ruta-sub, .datos-caja legend { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #4f7d55; margin: 16px 0 10px; }
.ruta-sub i, .datos-caja legend i { font-style: normal; text-transform: none; letter-spacing: 0; font-weight: 600; color: var(--gris); margin-left: 6px; }
.ruta-caja .formu > .ruta-sub:first-of-type { margin-top: 0; }
.ruta-clases { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin-bottom: 6px; }
.ruta-clase { display: flex; flex-direction: column; gap: 10px; padding: 14px; border-radius: 14px; cursor: text;
  background: rgba(255, 255, 255, .72); border: 1px solid rgba(34, 68, 37, .14); transition: border-color .15s, background .15s; }
.ruta-clase:focus-within { border-color: rgba(47, 90, 53, .5); background: #fff; }
.ruta-clase.vacia { background: rgba(255, 255, 255, .4); border-style: dashed; }
.rc-ilus { display: grid; place-items: center; height: 58px; border-radius: 10px; background: linear-gradient(180deg, #eef5ec, #e3eee0); }
.rc-ilus .fl-sil { width: 92px; height: auto; fill: none; stroke: #2f5a35; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.ruta-clase.vacia .rc-ilus { opacity: .5; }
.rc-nombre { display: flex; flex-direction: column; }
.rc-nombre b { font-size: 15px; font-weight: 800; }
.rc-nombre small { font-size: 12px; color: var(--gris); }
.rc-precio { display: flex; align-items: center; gap: 6px; border: 1px solid var(--linea); border-radius: 10px; background: #fff; padding: 0 12px; }
.rc-precio i { font-style: normal; font-weight: 800; color: var(--verde); font-size: 16px; }
.rc-precio input { border: 0 !important; outline: none; box-shadow: none !important; background: transparent !important; font: 800 18px Manrope, sans-serif !important; color: var(--verde); padding: 10px 0 !important; width: 100%; min-width: 0; }
.ruta-clase.vacia .rc-precio input { font-weight: 600 !important; font-size: 14px !important; }
.datos-caja .grupo { border: 0; border-top: 1px solid rgba(34, 68, 37, .1); margin: 0; padding: 4px 0 6px; }
.datos-caja .grupo:first-of-type { border-top: 0; padding-top: 0; }
.datos-caja legend { padding: 0; margin: 12px 0 8px; float: left; width: 100%; }
.datos-caja legend + * { clear: both; }
.datos-pie { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; padding: 14px 16px; border-radius: 12px; background: rgba(140, 175, 143, .14); }
.datos-pie .chk { margin: 0; }
.ruta-caja .fila-pax, .datos-caja .fila-pax { align-items: end; }
@media (max-width: 600px) {
  .ruta-banda { padding: 12px 14px; gap: 10px; }
  .rb-punta b { font-size: 14px; }
  .ruta-clases { grid-template-columns: 1fr; gap: 10px; }
  .ruta-clase { display: grid; grid-template-columns: 76px 1fr; align-items: center; gap: 8px 12px; padding: 12px; }
  .rc-ilus { height: 46px; }
  .rc-ilus .fl-sil { width: 62px; }
  .rc-precio { grid-column: 1 / -1; }
}

/* Formulario de socio (24 oct, Mario: "puede quedar mejor"). */
.socio-form { max-width: 760px; }
.socio-sub { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #4f7d55; margin: 18px 0 8px; }
.socio-form > .socio-sub:first-of-type { margin-top: 6px; }
.socio-codigo { margin-top: 10px; }
.socio-codigo small { display: block; font-size: 12px; color: var(--gris); margin-top: 4px; }
.socio-prefijo, .socio-sufijo { display: flex; align-items: center; border: 1px solid var(--linea); border-radius: 12px; background: #fff; overflow: hidden; }
.socio-prefijo i, .socio-sufijo i { font-style: normal; font-size: 14px; font-weight: 600; color: var(--gris); padding: 0 12px; white-space: nowrap; }
.socio-prefijo i { border-right: 1px solid var(--linea); align-self: stretch; display: flex; align-items: center; background: rgba(140, 175, 143, .12); }
.socio-form .socio-prefijo input, .socio-form .socio-sufijo input { border: 0 !important; box-shadow: none !important; border-radius: 0; background: transparent !important; min-width: 0; flex: 1; }
.socio-form .socio-sufijo input { font-weight: 800; }
.socio-campos .socio-pct { flex: 0 1 150px; }
.socio-modo { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 0 12px; }
.socio-op { position: relative; display: flex; flex-direction: column; gap: 2px; padding: 12px 14px 12px 42px; border-radius: 12px; cursor: pointer;
  border: 1px solid var(--linea); background: rgba(255, 255, 255, .6); transition: border-color .15s, background .15s; }
.formu .socio-op > input[type=radio] { position: absolute; left: 14px; top: 14px; width: 18px; height: 18px; margin: 0; padding: 0; box-shadow: none; accent-color: var(--verde); }
.socio-op b { font-size: 15px; }
.socio-op small { font-size: 12.5px; color: var(--gris); line-height: 1.35; }
.socio-op:has(input:checked) { border-color: var(--verde); background: rgba(140, 175, 143, .2); box-shadow: inset 0 0 0 1px var(--verde); }
.socio-pie { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--linea); }
.socio-pie small { color: var(--gris); font-size: 13px; }
.socio-form .socio-pie .btn { width: auto; padding-left: 26px; padding-right: 26px; }
.socio-nuevo .fl-mas { color: #a8feaf !important; background: #224425 !important; }
.modo-plataforma .socio-nuevo .fl-mas { background: #a8feaf !important; color: #13261a !important; }
.modo-plataforma .socio-nuevo summary { color: #e3ede1; }
.modo-plataforma .fl-nueva .formu input { background: #17291b; }
.modo-plataforma .socio-sub { color: #8fd496; }
.modo-plataforma .socio-prefijo, .modo-plataforma .socio-sufijo { background: #17291b; border-color: #3d5c44; }
.modo-plataforma .socio-prefijo i { background: rgba(168, 254, 175, .07); border-color: #3d5c44; color: #9fb4a2; }
.modo-plataforma .socio-sufijo i, .modo-plataforma .socio-codigo small, .modo-plataforma .socio-op small, .modo-plataforma .socio-pie small { color: #9fb4a2; }
.modo-plataforma .socio-op { background: rgba(255, 255, 255, .03); border-color: #3d5c44; }
.modo-plataforma .socio-op:has(input:checked) { border-color: #a8feaf; background: rgba(168, 254, 175, .08); box-shadow: inset 0 0 0 1px #a8feaf; }
.modo-plataforma .formu .socio-op > input[type=radio] { accent-color: #a8feaf; }
.modo-plataforma .socio-pie { border-color: #3d5c44; }
@media (max-width: 600px) { .socio-modo { grid-template-columns: 1fr; } .socio-campos .socio-pct { flex: 1 1 120px; } }
.formu .campo .socio-prefijo, .formu .campo .socio-sufijo { display: flex; flex-direction: row; align-items: center; gap: 0; margin: 0; font-weight: 600; }
.formu .campo .socio-prefijo i, .formu .campo .socio-sufijo i { display: flex; align-items: center; align-self: stretch; }
.socio-op { text-align: left; align-items: flex-start; }
.socio-campos .socio-pct { flex: 0 1 170px; }
.socio-op b, .socio-op small { display: block; width: 100%; text-align: left; }
.socio-form .socio-prefijo input { font-size: 15px; font-weight: 700; }
/* Traslados sin foto: silueta del vehículo (25 oct). */
.cat-ico-veh .fl-sil { width: 38px; height: auto; fill: none; stroke: currentColor; stroke-width: 3.4; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Recepción y limpieza (152) ---------- */
.recepcion h3 { font-size: 15px; margin: 16px 0 6px; }
.hab-hk { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 6px 0 10px; font-size: 14px; }
.huespedes { margin: 0 0 6px; padding-left: 18px; font-size: 14px; }
.huespedes small { opacity: .65; }
.folio tr.anulada td { opacity: .45; text-decoration: line-through; }
.folio td small { display: block; opacity: .65; font-size: 12px; }
.folio td form { margin: 0; text-align: right; }
.folio-forms { margin-top: 12px; }
.folio-forms .formu, .checkout { background: var(--suave); border-radius: 12px; padding: 12px 14px; }
.checkout { margin-top: 14px; }
.badge.hk-limpia, .badge.hk-inspeccionada { background: #e6f2e7; color: var(--verde); }
.badge.hk-sucia { background: #fbeee0; color: #9a5b12; }
.badge.hk-fuera_servicio { background: #eceae6; color: #5f5a52; }
ul.limpieza { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.hk-fila { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap;
  background: var(--caja); border: 1px solid var(--linea); border-left: 5px solid var(--linea); border-radius: 12px; padding: 12px 14px; }
.hk-fila.hk-sucia { border-left-color: #e0a157; }
.hk-fila.hk-limpia, .hk-fila.hk-inspeccionada { border-left-color: #7fb487; }
.hk-dato b { font-size: 18px; }
.hk-sit { display: block; font-size: 13px; opacity: .75; }
.hk-nota { display: block; font-size: 12px; color: #9a5b12; }
.hk-acc { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.hk-acc form { display: flex; gap: 6px; flex-wrap: wrap; margin: 0; }
@media print { .folio-forms, .checkout, .folio td form { display: none; } }
.checkout .check { display: flex; margin: 6px 0 4px; }

/* ---------- Front desk (29 oct) ---------- */
.fd-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; align-items: start; }
.fd-grid .caja { margin: 0; }
ul.fd-lista { list-style: none; margin: 0; padding: 0; }
.fd-fila { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--linea); }
.fd-lista .fd-fila:first-child { border-top: 0; }
.fd-dato { text-decoration: none; color: var(--tinta); min-width: 0; }
.fd-dato small { display: block; color: var(--gris); font-size: 12px; }
.fd-acc { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex: none; }
.fd-acc form { margin: 0; }
#fd-limpieza .kpis { margin-top: 0; }
#fd-hoy h2 small, #fd-folios h2 small { display: inline; margin-left: 6px; font-size: 15px; opacity: .55; font-weight: 600; }

/* ---------- Reportes como dashboard (29 oct) ---------- */
.cab-reportes { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.cab-reportes h1 { margin-bottom: 8px; }
.descargar-todo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.descargar-todo span { font-size: 13px; color: var(--gris); font-weight: 700; }
.descargar-todo .btn { width: auto; display: inline-block; padding: 7px 12px; line-height: 1.2; }
.kpis-dash .kpi { position: relative; }
.kpis-dash .kpi b { font-size: 24px; }
.delta { display: inline-block; margin-top: 4px; font-style: normal; font-size: 12px; font-weight: 700; color: var(--gris); }
.delta.d-bien { color: #2e7d3c; }
.delta.d-mal { color: #b0482c; }
.kpis-dash .delta { display: block; }
.dash { display: grid; grid-template-columns: 1fr; gap: 14px; align-items: start; }
@media (min-width: 1000px) { .dash { grid-template-columns: 1fr 1fr; } .dash-ancho { grid-column: 1 / -1; } }
.dash .caja { margin: 0; }
.dash-panel h2 small { font-size: 13px; font-weight: 600; color: var(--gris); margin-left: 4px; }
svg.graf { display: block; width: 100%; height: auto; margin: 6px 0 4px; overflow: visible; }
/* En el celular el gráfico guarda un ancho mínimo y se corre de lado dentro de su caja. */
.graf-caja { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 699px) { svg.graf { min-width: 560px; } }
.graf .g-eje line { stroke: #e6ebe6; stroke-width: 1; }
.graf .g-eje text { fill: #6b786e; font: 600 11px Manrope, sans-serif; }
.graf .g-m { cursor: default; }
.graf .g-m:hover path, .graf .g-m.g-on path { opacity: .78; }
.graf .g-m:hover rect, .graf .g-m.g-on rect { fill: rgba(63, 125, 75, .06); }
ul.hbar { list-style: none; margin: 8px 0; padding: 0; display: grid; gap: 8px; }
.hbar li { display: grid; grid-template-columns: minmax(90px, 34%) 1fr auto; align-items: center; gap: 10px; font-size: 13px; }
.hbar-et { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--tinta); font-weight: 600; }
.hbar-pista { height: 12px; background: var(--suave); border-radius: 0 4px 4px 0; overflow: hidden; }
.hbar-pista i { display: block; height: 100%; border-radius: 0 4px 4px 0; }
.hbar-v { font-variant-numeric: tabular-nums; min-width: 34px; text-align: right; }
.hbar li:hover .hbar-pista i, .hbar li.g-on .hbar-pista i { opacity: .8; }
.partida { display: flex; gap: 2px; height: 14px; margin: 10px 0 8px; }
.partida i { display: block; min-width: 4px; border-radius: 4px; }
ul.leyenda { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13px; }
.leyenda li { display: flex; align-items: center; gap: 6px; }
.leyenda li i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.leyenda small { color: var(--gris); }
details.tabla-ver { margin-top: 8px; }
details.tabla-ver summary { cursor: pointer; font-size: 13px; font-weight: 700; color: var(--verde); }
.g-tip { position: fixed; z-index: 60; display: none; pointer-events: none; max-width: 280px; background: #16241a; color: #fff;
  font: 600 12px/1.35 Manrope, sans-serif; padding: 7px 10px; border-radius: 8px; box-shadow: 0 8px 20px -8px rgba(0, 0, 0, .4); }
@media print { .descargar-todo, .exportar, .rep-filtros, .tabs { display: none; } .dash { grid-template-columns: 1fr 1fr; } }

/* ---------- Todo tu sitio (153) ---------- */
.sitio-auto .sa-lista { margin: 4px 0 12px; padding-left: 20px; }
.sitio-auto .sa-lista li { margin: 4px 0; }
.sitio-auto .fila-form { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; }
.sitio-auto .fila-form .campo { flex: 1 1 240px; margin: 0; }
.sa-cuentas { display: flex; gap: 18px; flex-wrap: wrap; margin: 10px 0 14px; font-size: 14px; color: var(--gris); }
.sa-cuentas b { color: var(--verde); font-size: 18px; margin-right: 4px; }
.sa-acciones { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 12px; }
.sa-acciones form:first-child { flex: 1 1 320px; }
.sa-tabla td small { display: block; color: var(--gris); font-size: 12px; max-width: 360px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.atajos .chip.on { background: var(--verde); color: #fff; border-color: var(--verde); }

/* ---------- Inicio con cards por área (29 oct) ---------- */
/* Inicio (29 oct; jerarquía y cabeceras con color por área, Mario). */
.ini-hero { position: relative; overflow: hidden; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 24px;
  margin: 0 0 18px; padding: 24px 26px; border-radius: 22px; color: #eef6ec;
  background: radial-gradient(120% 140% at 100% 0%, rgba(168, 254, 175, .22) 0%, rgba(168, 254, 175, 0) 55%),
              radial-gradient(90% 120% at 0% 100%, rgba(140, 175, 143, .35) 0%, rgba(140, 175, 143, 0) 60%), #1c3a22;
  border: 1px solid rgba(168, 254, 175, .18); box-shadow: 0 18px 40px -28px rgba(12, 30, 16, .8); }
.ini-hero h1 { margin: 2px 0 4px; font-size: clamp(24px, 3vw, 32px); line-height: 1.1; letter-spacing: -.02em; color: #fff; }
.ini-saludo { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: .02em; color: #a8feaf; }
.ini-fecha { margin: 0; font-size: 14px; color: rgba(238, 246, 236, .72); }
.ini-hero-acc { display: flex; flex-wrap: wrap; gap: 8px; }
.ini-btn { display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px; border-radius: 999px; font-weight: 700; font-size: 14px; text-decoration: none;
  background: #a8feaf; color: #13261a; border: 1px solid #a8feaf; transition: transform .15s, box-shadow .15s; }
.ini-btn span { font-size: 18px; line-height: 1; }
.ini-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 20px -10px rgba(168, 254, 175, .7); }
.ini-btn.sec { background: rgba(255, 255, 255, .08); color: #eef6ec; border-color: rgba(255, 255, 255, .22);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.ini-btn.sec:hover { background: rgba(255, 255, 255, .14); box-shadow: none; }

.ini-grid { display: grid; grid-template-columns: 1fr; gap: 16px; align-items: start; margin-bottom: 18px; }
@media (min-width: 760px) { .ini-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1240px) { .ini-grid { grid-template-columns: 1fr 1fr 1fr; } }
.ini-card { --c: #2f6b3a; --c-suave: #e4efe1; --c-fondo: linear-gradient(160deg, #e2eedf 0%, #f1f6ef 100%);
  background: rgba(255, 255, 255, .82); border: 1px solid var(--linea); border-radius: 20px; overflow: hidden;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 12px 32px -24px rgba(22, 36, 26, .5); }
#ini-ventas { --c: #9a5b12; --c-suave: #f8e8d4; --c-fondo: linear-gradient(160deg, #f8e9d6 0%, #fcf5ec 100%); }
#ini-catalogo { --c: #2d5d8f; --c-suave: #dde8f5; --c-fondo: linear-gradient(160deg, #dfe9f6 0%, #f1f5fb 100%); }
#ini-web { --c: #5e4592; --c-suave: #e9e1f5; --c-fondo: linear-gradient(160deg, #ebe3f6 0%, #f6f2fb 100%); }
#ini-cuenta { --c: #5f5a52; --c-suave: #ebe8e3; --c-fondo: linear-gradient(160deg, #ece9e4 0%, #f7f5f2 100%); }
.ini-cab { background: var(--c-fondo); padding: 18px 18px 16px; border-bottom: 1px solid rgba(22, 36, 26, .06); }
.ini-tit { display: flex; align-items: center; gap: 12px; }
.ini-tit h2 { margin: 0; font-size: 17px; letter-spacing: -.01em; }
.ini-tit small { display: block; margin-top: 1px; font-size: 12.5px; color: var(--gris); }
.ini-ico { width: 40px; height: 40px; border-radius: 13px; background: rgba(255, 255, 255, .85); border: 1px solid rgba(255, 255, 255, .9);
  box-shadow: 0 6px 14px -10px rgba(22, 36, 26, .6); display: grid; place-items: center; flex: none; }
.ini-ico svg { width: 20px; height: 20px; fill: none; stroke: var(--c); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ini-datos { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; }
.ini-cifra { flex: 1 1 auto; min-width: 108px; display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 13px;
  background: rgba(255, 255, 255, .72); border: 1px solid rgba(255, 255, 255, .95); }
.ini-cifra b { white-space: nowrap; font-size: 23px; font-weight: 800; line-height: 1.1; letter-spacing: -.02em; color: var(--c); font-variant-numeric: tabular-nums; }
.ini-cifra small { font-size: 12px; line-height: 1.3; color: var(--gris); }
.ini-estado { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 999px; font-size: 13px; font-weight: 600;
  background: rgba(255, 255, 255, .72); border: 1px solid rgba(255, 255, 255, .95); color: var(--tinta); }
.ini-estado i { width: 8px; height: 8px; border-radius: 50%; background: #9aa59c; }
.ini-estado.ok i { background: #3f7d4b; box-shadow: 0 0 0 3px rgba(63, 125, 75, .18); }
.ini-estado.alerta { color: #6f3f08; } .ini-estado.alerta i { background: #e08a2c; box-shadow: 0 0 0 3px rgba(224, 138, 44, .2); }
ul.ini-accesos { list-style: none; margin: 0; padding: 6px 8px 8px; }
.ini-accesos li + li { border-top: 1px solid rgba(22, 36, 26, .06); }
.ini-accesos a { position: relative; display: flex; flex-direction: column; gap: 1px; padding: 10px 34px 10px 10px; text-decoration: none; color: var(--tinta); border-radius: 10px; transition: background .12s; }
.ini-accesos a::after { content: ""; position: absolute; right: 12px; top: 50%; width: 7px; height: 7px; margin-top: -4px;
  border-right: 1.8px solid currentColor; border-top: 1.8px solid currentColor; transform: rotate(45deg); opacity: .3; transition: opacity .12s, right .12s; }
.ini-accesos a:hover { background: var(--c-suave); }
.ini-accesos a:hover::after { opacity: .8; right: 10px; color: var(--c); }
.ini-accesos b { font-size: 14.5px; font-weight: 650; }
.ini-accesos small { font-size: 12.5px; color: var(--gris); }
.ini-aviso { display: block; margin: 0 0 16px; padding: 12px 16px; border-radius: 14px; background: #fbeee0; border: 1px solid #f0d2ad; color: #6f3f08; text-decoration: none; }
.ini-aviso span { display: block; font-size: 13px; margin-top: 2px; }
.ini-pie { margin-bottom: 12px; }
details.ini-instalar summary { cursor: pointer; list-style: none; }
details.ini-instalar summary h2 { display: inline; }
figure.sa-ejemplo { margin: 10px 0 14px; }
figure.sa-ejemplo img { display: block; width: 100%; max-width: 640px; height: auto; border-radius: 12px; border: 1px solid var(--linea); box-shadow: 0 10px 30px -20px rgba(0,0,0,.4); }
figure.sa-ejemplo figcaption { font-size: 12.5px; color: var(--gris); margin-top: 6px; }

/* ---------- Restaurante (137) ---------- */
.rest-activar ul.rest-lista-check { margin: 0 0 16px; padding-left: 20px; }
.rest-activar li { margin: 4px 0; }
.rest-zona { margin: 0 0 22px; }
.rest-zona h3 { margin: 0 0 8px 4px; }
.rest-mesas { display: grid; grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); gap: 10px; }
.rest-mesa { display: block; margin: 0; }
.rest-mesa > button, a.rest-mesa { width: 100%; min-height: 92px; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 3px;
  padding: 12px 14px; border-radius: var(--radio); text-align: left; text-decoration: none; color: var(--tinta); font: inherit; cursor: pointer;
  background: rgba(255, 255, 255, .55); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border: 1px solid rgba(34, 68, 37, .12); }
.rest-mesa b { font-size: 20px; font-weight: 800; letter-spacing: -.01em; }
.rest-mesa small { font-size: 12.5px; color: var(--gris); }
a.rest-mesa.ocupada { background: rgba(214, 233, 210, .75); border-color: rgba(34, 68, 37, .25); }
.rest-mesa.con-aviso > button, a.rest-mesa.con-aviso { box-shadow: 0 0 0 2px #e9a23b inset; }
.rest-aviso { font-style: normal; font-size: 11.5px; font-weight: 700; border-radius: 999px; padding: 1px 8px; margin-top: 2px; }
.rest-aviso.llama { background: #fde7c4; color: #7a4a00; }
.rest-aviso.qr { background: #e4ddff; color: #3d2b8f; }
.rest-aviso.lista { background: #d6f5d1; color: #1c5a25; }
.rest-llamado { font-weight: 700; }
.rest-otras { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; }
.rest-otras a { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 10px 14px; border-radius: 12px; text-decoration: none; color: var(--tinta);
  background: rgba(255, 255, 255, .55); border: 1px solid rgba(34, 68, 37, .12); }
.rest-otras small { color: var(--gris); }
.rest-nuevas { display: flex; flex-wrap: wrap; gap: 12px; }
.rest-nueva { display: flex; align-items: flex-end; gap: 8px; flex: 1 1 260px; }
.rest-nueva .campo { flex: 1; margin: 0; }
.rest-orden { display: grid; gap: 18px; }
@media (min-width: 980px) { .rest-orden { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; } .rest-cuenta { position: sticky; top: 16px; } }
.rest-etapa { margin: 0 0 16px; }
.rest-etapa h3, .rest-agregar h3 { margin: 0 0 8px 4px; }
.rest-lineas { list-style: none; margin: 0 0 10px; padding: 4px; border-radius: var(--radio); background: rgba(255, 255, 255, .55); border: 1px solid rgba(34, 68, 37, .12); }
.rest-linea { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 10px 12px; }
.rest-linea + .rest-linea { border-top: 1px solid rgba(34, 68, 37, .07); }
.rest-linea-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.rest-linea-txt small { color: var(--gris); font-size: 12.5px; }
.rest-nota { color: #7a4a00 !important; font-weight: 600; }
.rest-linea-monto { font-weight: 700; white-space: nowrap; }
.rest-linea.void .rest-linea-txt b, .rest-linea.void .rest-linea-monto { text-decoration: line-through; opacity: .5; }
.rest-linea.requested { background: rgba(228, 221, 255, .45); border-radius: 10px; }
.rest-linea-acc { display: flex; align-items: center; gap: 8px; width: 100%; }
.rest-linea-acc form { display: flex; gap: 4px; margin: 0; }
.rest-mini { width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(34, 68, 37, .2); background: #fff; font: 700 18px/1 Manrope, sans-serif; color: var(--verde); cursor: pointer; }
.rest-nota-form, .rest-anular, .rest-anular-orden { font-size: 13px; }
.rest-nota-form summary, .rest-anular summary, .rest-anular-orden summary { color: var(--verde); cursor: pointer; font-weight: 600; }
.rest-nota-form form, .rest-anular form, .rest-anular-orden form { display: flex; gap: 6px; margin-top: 6px; }
.rest-nota-form input, .rest-anular input, .rest-anular-orden input { flex: 1; min-width: 0; font: inherit; border: 1px solid var(--linea); border-radius: 10px; padding: 6px 10px; }
.rest-quitar { border: 0; background: none; color: var(--rojo); font: 600 13px Manrope, sans-serif; cursor: pointer; padding: 4px; }
.rest-enviar { width: 100%; }
.rest-cats { display: flex; gap: 6px; overflow-x: auto; padding: 2px 0 10px; scrollbar-width: none; }
.rest-cats a { white-space: nowrap; text-decoration: none; color: var(--tinta); font-weight: 600; font-size: 14px; padding: 6px 14px; border-radius: 999px; border: 1px solid rgba(34, 68, 37, .14); background: rgba(255, 255, 255, .6); }
.rest-cats a.on { background: var(--verde); color: #fff; border-color: var(--verde); }
.rest-platos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.rest-platos form { margin: 0; }
.rest-platos button, .rest-agotado { width: 100%; min-height: 64px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 2px; text-align: left;
  padding: 10px 12px; border-radius: 12px; border: 1px solid rgba(34, 68, 37, .14); background: #fff; font: inherit; color: var(--tinta); cursor: pointer; }
.rest-platos button:active { background: var(--suave); }
.rest-platos small { color: var(--gris); font-size: 12.5px; }
.rest-agotado { opacity: .5; cursor: default; }
.rest-agotado small { color: var(--rojo); font-weight: 700; }
.rest-totales { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; margin: 0 0 12px; }
.rest-totales dt { color: var(--gris); }
.rest-totales dd { margin: 0; text-align: right; font-weight: 600; }
.rest-totales .rest-total { font-size: 17px; font-weight: 800; color: var(--tinta); padding-top: 6px; border-top: 1px solid rgba(34, 68, 37, .12); }
.rest-pagos { list-style: none; margin: 0 0 12px; padding: 0; }
.rest-pagos li { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border-top: 1px solid rgba(34, 68, 37, .07); font-size: 14px; }
.rest-pago-folio { color: var(--gris); }
.rest-saldo { margin: 6px 0 12px; }
.rest-medios { border: 0; padding: 0; margin: 0 0 10px; display: flex; flex-wrap: wrap; gap: 6px; }
.rest-medios legend { font-size: 13px; font-weight: 700; margin-bottom: 6px; }
.rest-medios label { margin: 0; }
.rest-medios input { position: absolute; opacity: 0; }
.rest-medios span { display: inline-block; padding: 7px 12px; border-radius: 999px; border: 1px solid rgba(34, 68, 37, .18); background: #fff; font-size: 14px; font-weight: 600; cursor: pointer; }
.rest-medios input:checked + span { background: var(--verde); color: #fff; border-color: var(--verde); }
.rest-medios input:focus-visible + span { outline: 2px solid var(--salvia); }
.rest-si-cash, .rest-si-room, .rest-si-ref { display: none; }
.rest-cobrar:has(input[value=cash]:checked) .rest-si-cash, .rest-cobrar:has(input[value=room]:checked) .rest-si-room,
.rest-cobrar:has(input[value=card]:checked) .rest-si-ref, .rest-cobrar:has(input[value=sinpe]:checked) .rest-si-ref { display: block; }
.rest-vuelto b { font-size: 20px; }
.rest-ticket-acc { display: flex; gap: 10px; margin: 0 0 14px; flex-wrap: wrap; }
.rest-ticket { max-width: 340px; background: #fff; border: 1px solid var(--linea); border-radius: 12px; padding: 18px; font: 13px/1.5 ui-monospace, Menlo, Consolas, monospace; white-space: pre-wrap; }
@media print {
  body:has(.rest-ticket) * { visibility: hidden; }
  body:has(.rest-ticket) .rest-ticket, body:has(.rest-ticket) .rest-ticket * { visibility: visible; }
  body:has(.rest-ticket) .rest-ticket { position: absolute; left: 0; top: 0; border: 0; padding: 0; }
}
/* Pantalla de cocina */
.kds { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; align-items: start; }
.kds-ticket { border-radius: var(--radio); background: #fff; border: 1px solid rgba(34, 68, 37, .14); overflow: hidden; }
.kds-ticket header { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding: 10px 14px; background: var(--suave); }
.kds-ticket header b { font-size: 18px; }
.kds-ticket header span { font-size: 12.5px; color: var(--gris); }
.kds-ticket.demora header { background: #fdf0d9; }
.kds-ticket.tarde header { background: #fbdcd9; }
.kds-ticket.listo { opacity: .6; }
.kds-ticket ul { list-style: none; margin: 0; padding: 6px; }
.kds-ticket li form { margin: 0; }
.kds-ticket li button { width: 100%; text-align: left; display: block; border: 0; background: none; font: inherit; font-size: 16px; padding: 8px; border-radius: 8px; cursor: pointer; color: var(--tinta); }
.kds-ticket li button:hover { background: var(--suave); }
.kds-ticket li button b { display: inline-block; min-width: 26px; font-size: 18px; }
.kds-ticket li button small { display: block; padding-left: 30px; font-size: 13px; color: var(--gris); }
.kds-ticket li.ready button { text-decoration: line-through; color: var(--gris); cursor: default; }
.kds-ticket > form { padding: 0 12px 12px; }
.kds-ticket > form .btn { width: 100%; }
.kds-listo { margin: 0; padding: 0 14px 12px; font-size: 13px; font-weight: 700; color: #1c5a25; }
/* Carta */
.rest-item-fila { flex-wrap: wrap; }
.rest-item-fila::after { display: none; }
.rest-chip { border: 1px solid rgba(34, 68, 37, .2); background: #fff; border-radius: 999px; padding: 3px 10px; font: 600 12px Manrope, sans-serif; color: #1c5a25; cursor: pointer; }
.rest-chip.agotado { color: var(--rojo); border-color: #efc2c0; background: #fff4f3; }
.rest-editar { font-size: 13px; font-weight: 600; color: var(--verde); }
.rest-nuevo-plato { padding: 10px 14px; }
.rest-nuevo-plato summary { cursor: pointer; color: var(--verde); font-weight: 700; }
.rest-editando { padding: 12px 14px; }
.rest-form-fila { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.rest-form-fila .campo { flex: 1 1 160px; margin: 0; }
.rest-precio-campo { flex: 0 1 150px !important; }
.rest-ingles { margin: 8px 0; font-size: 14px; }
.rest-ingles summary { cursor: pointer; color: var(--verde); font-weight: 600; }
.rest-nueva-cat { margin-top: 24px; }
.rest-url { font-family: ui-monospace, Menlo, monospace; font-size: 11.5px !important; word-break: break-all; white-space: normal !important; }
.rest-caja { display: grid; gap: 16px; }
@media (min-width: 900px) { .rest-caja { grid-template-columns: 1fr 1fr; align-items: start; } }
div.cat-fila::after { display: none; }
.rest-linea-acc .rest-quitar { margin-left: auto; }
.rest-mesa-nueva { margin-top: 14px; }
.rest-mesa > button > i, a.rest-mesa > i { align-self: flex-start; }

/* Inicio sin huecos (30 oct, Mario): en tres columnas, la última fila
   incompleta se estira (dos cards a media fila, una sola a fila entera), y
   las cards anchas reparten sus accesos en dos columnas. */
@media (min-width: 760px) and (max-width: 1239px) {
  .ini-grid > .ini-card:nth-child(odd):last-child { grid-column: 1 / -1; }
}
@media (min-width: 1240px) {
  .ini-grid { grid-template-columns: repeat(6, 1fr); }
  .ini-grid > .ini-card { grid-column: span 2; }
  .ini-grid > .ini-card:nth-child(3n+1):nth-last-child(2), .ini-grid > .ini-card:nth-child(3n+2):last-child { grid-column: span 3; }
  .ini-grid > .ini-card:nth-child(3n+1):last-child { grid-column: 1 / -1; }
  .ini-grid > .ini-card:nth-child(3n+1):nth-last-child(2) .ini-accesos, .ini-grid > .ini-card:nth-child(3n+2):last-child .ini-accesos,
  .ini-grid > .ini-card:nth-child(3n+1):last-child .ini-accesos { display: grid; grid-template-columns: 1fr 1fr; column-gap: 8px; }
}

/* Lateral con secciones madre (30 oct, Mario): las mismas áreas de Inicio,
   cada una desplegable con sus páginas; abierta la de la página actual. */
.lat-madres .lat-madre { display: flex; flex-direction: column; }
.lat-madres .lat-madre > summary { list-style: none; display: flex; align-items: center; gap: 12px; cursor: pointer; user-select: none;
  padding: 6px 14px 6px 6px; border-radius: 999px; color: var(--tinta-menu, #1d2a20); font-weight: 600; font-size: 15px; transition: background .15s; }
.lat-madres .lat-madre > summary::-webkit-details-marker { display: none; }
.lat-madres .lat-madre > summary:hover { background: var(--pill-hover, #e2ebdf); }
.lat-madres .lat-madre > summary span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lat-madres .lat-madre > summary svg { width: 32px; height: 32px; padding: 7px; box-sizing: border-box; border-radius: 11px; flex: none;
  fill: none; stroke: var(--m-c, #2f6b3a); stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; background: var(--m-f, #dcefd8); }
.lat-madres .lat-madre > summary .lat-flecha { transform: rotate(-45deg); }
.lat-madres .lat-madre[open] > summary .lat-flecha { transform: rotate(45deg) translate(-2px, -2px); }
.lat-madres .lat-madre.activa > summary { color: var(--pill-tinta, #13261a); }
.lat-madres .lat-madre.activa > summary svg { background: var(--m-c, #2f6b3a); stroke: #fff; }
.lat-madre[data-madre="ventas"] { --m-c: #9a5b12; --m-f: #f8e8d4; }
.lat-madre[data-madre="catalogo"] { --m-c: #2d5d8f; --m-f: #dde8f5; }
.lat-madre[data-madre="restaurante"] { --m-c: #8a4a2e; --m-f: #f3e0d6; }
.lat-madre[data-madre="web"] { --m-c: #5e4592; --m-f: #e9e1f5; }
.lat-madre[data-madre="cuenta"] { --m-c: #5f5a52; --m-f: #ebe8e3; }
.lat-madre[data-madre="plataforma"] { --m-c: #2f5a35; --m-f: #e1ebdc; }
.lat-hijos { display: flex; flex-direction: column; gap: 1px; margin: 2px 0 8px 22px; padding-left: 16px; border-left: 2px solid var(--pill-on, #d6e9d2); }
.lateral.lat-madres nav .lat-hijos a { align-self: stretch; padding: 6px 12px; font-size: 14px; font-weight: 500; border-radius: 10px; color: var(--gris, #5f6f62); }
.lateral.lat-madres nav .lat-hijos a:hover { background: var(--pill-hover, #e2ebdf); color: var(--tinta-menu, #1d2a20); }
.lateral.lat-madres nav .lat-hijos a.on { background: var(--pill-on, #d6e9d2); color: var(--pill-tinta, #13261a); font-weight: 700; }
.lateral.lat-madres nav .lat-hijos .lat-sub { margin: 2px 0 6px 12px; }
.lateral.lat-madres nav a.lat-inicio { margin-bottom: 6px; }
.lat-mini .lat-madres .lat-madre > summary { justify-content: center; padding: 3px; }
.lat-mini .lat-madres .lat-madre > summary span, .lat-mini .lat-madres .lat-madre > summary .lat-flecha,
.lat-mini .lat-madres .lat-hijos { display: none; }
/* Cards de la misma fila con la misma altura (el borde de abajo parejo). */
.ini-grid { align-items: stretch; }
.ini-card { display: flex; flex-direction: column; }
.ini-card .ini-accesos { flex: 1; }

/* Tracking (30 oct, Mario): una tarjeta por herramienta, con su estado. */
.trk .trk-cab h2 { margin-bottom: 4px; }
.trk .trk-cab .nota { margin: 0 0 18px; max-width: 720px; }
.trk-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 900px) { .trk-grid { grid-template-columns: 1fr 1fr; } }
.trk-card { border: 1px solid var(--linea, #e3e7e1); border-radius: 18px; padding: 16px 16px 14px; background: linear-gradient(160deg, #fbfcfa, #f4f7f2); display: flex; flex-direction: column; gap: 12px; }
.trk-card.ok { border-color: #bcd9b8; background: linear-gradient(160deg, #f4faf2, #eaf4e7); }
.trk-tit { display: flex; align-items: center; gap: 12px; }
.trk-tit > div { flex: 1; min-width: 0; }
.trk-tit b { display: block; font-size: 15.5px; }
.trk-tit small { color: var(--gris); font-size: 12.5px; }
.trk-logo { width: 42px; height: 42px; border-radius: 12px; background: #fff; border: 1px solid #e6ebe3; display: grid; place-items: center; flex: none; }
.trk-logo svg { width: 24px; height: 24px; }
.trk-estado { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px; font-size: 12.5px; font-weight: 700; background: #f1eee8; color: #6b655b; white-space: nowrap; }
.trk-estado i { width: 7px; height: 7px; border-radius: 50%; background: #b9b2a5; }
.trk-card.ok .trk-estado { background: #dcefd8; color: #2f5a35; }
.trk-card.ok .trk-estado i { background: #3f7d4b; }
.trk-card input { width: 100%; box-sizing: border-box; padding: 12px 14px; border-radius: 12px; border: 1px solid #d8e0d4; background: #fff; font: inherit; font-size: 15px; letter-spacing: .02em; }
.trk-card input:focus { outline: 2px solid #a8d3a4; outline-offset: 1px; border-color: #8fbf8a; }
.trk-donde { margin: 0; font-size: 12.5px; color: var(--gris); line-height: 1.45; }
.trk-eventos { margin-top: 16px; padding: 16px; border-radius: 18px; background: rgba(255,255,255,.7); border: 1px solid var(--linea, #e3e7e1); }
.trk-eventos > b { display: block; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); margin-bottom: 8px; }
.trk-eventos ul { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 6px; }
@media (min-width: 900px) { .trk-eventos ul { grid-template-columns: 1fr 1fr; column-gap: 18px; } }
.trk-eventos li { display: flex; align-items: center; gap: 8px; font-size: 14px; padding: 6px 0; border-bottom: 1px dashed #e3e9df; }
.trk-eventos li span { flex: 1; }
.trk-eventos code { font-size: 11.5px; padding: 3px 7px; border-radius: 6px; background: #eef3ea; color: #3c5a40; }
.trk-eventos li code + code { background: #e8eefb; color: #2d4f8a; }
.trk-eventos .nota { margin: 0; }
.trk-pie { margin-top: 16px; display: flex; justify-content: flex-start; }
.web-cambiar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.web-cambiar p { margin: 0; flex: 1 1 320px; }
.lateral .lat-sub .sub-op { display: none; }

/* ---------- Plano de mesas (156, 30 oct, Mario) ---------- */
.plano-marco { overflow-x: auto; margin: 0 -4px; padding: 4px; container-type: inline-size; }
.plano { --celda: calc(max(560px, 100cqw - 8px) / 8); display: grid; grid-template-columns: repeat(8, minmax(0, 1fr));
  grid-template-rows: repeat(var(--filas, 2), var(--celda)); min-width: 560px; border-radius: 22px; padding: 0;
  background: radial-gradient(circle at 1px 1px, rgba(34, 68, 37, .13) 1.2px, transparent 1.6px) 0 0 / calc(100% / 8) var(--celda), linear-gradient(160deg, #f6f8f3, #eef3ea);
  border: 1px solid #e1e8dd; position: relative; }
@supports not (width: 1cqw) { .plano { grid-template-rows: repeat(var(--filas, 2), 96px); } }
.plano-mesa { position: relative; margin: 0; display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 0; }
.plano-mesa > button, a.plano-mesa, button.plano-mesa { all: unset; box-sizing: border-box; position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
  cursor: pointer; border-radius: 18px; transition: background .15s, transform .15s; -webkit-tap-highlight-color: transparent; }
.plano-mesa:hover > button, a.plano-mesa:hover, button.plano-mesa:hover { background: rgba(255, 255, 255, .6); }
.plano .mesa-svg { position: absolute; inset: 3%; width: 94%; height: 94%; }
.mesa-svg .silla { fill: #dfe6db; stroke: #c3cfbf; stroke-width: 1; }
.mesa-svg .tabla { fill: #fff; stroke: #b9c7b4; stroke-width: 1.6; }
.plano-mesa.ocupada .mesa-svg .tabla { fill: #cfe8c9; stroke: #3f7d4b; }
.plano-mesa.ocupada .mesa-svg .silla { fill: #a9d2a1; stroke: #6aa465; }
.plano-mesa.con-aviso .mesa-svg .tabla { fill: #fde7c4; stroke: #e08a2c; stroke-width: 2.4; }
.plano-mesa.con-aviso .mesa-svg .silla { fill: #f6cf98; stroke: #e0a052; }
.pm-txt { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; text-align: center; line-height: 1.1; pointer-events: none; max-width: 70%; }
.plano-mesa .pm-txt b { font-size: clamp(13px, 2.4cqw, 18px); font-weight: 800; color: #1d2a20; letter-spacing: -.01em; }
.plano-mesa .pm-txt small { font-size: clamp(10px, 1.4cqw, 12px); color: #5f6f62; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.plano-mesa.ocupada .pm-txt small { color: #2f5a35; font-weight: 600; }
.pm-avisos { position: absolute; top: 2px; left: 0; right: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 2px; z-index: 2; pointer-events: none; }
.pm-avisos .rest-aviso { font-size: 10px; padding: 1px 6px; box-shadow: 0 2px 6px -2px rgba(0,0,0,.25); }
.plano-ley { display: flex; flex-wrap: wrap; gap: 14px; margin: 0 0 12px; font-size: 13px; color: var(--gris); }
.plano-ley span { display: inline-flex; align-items: center; gap: 6px; }
.plano-ley i { width: 12px; height: 12px; border-radius: 4px; border: 1.5px solid #b9c7b4; background: #fff; }
.plano-ley .ocupada i { background: #cfe8c9; border-color: #3f7d4b; }
.plano-ley .aviso i { background: #fde7c4; border-color: #e08a2c; }
/* Editor: arrastrar */
.plano.editar .plano-mesa { touch-action: none; cursor: grab; }
.plano.editar .plano-mesa.arrastrando { z-index: 5; cursor: grabbing; transition: none; filter: drop-shadow(0 10px 16px rgba(22, 36, 26, .25)); }
.plano.editar .plano-mesa.elegida { background: rgba(214, 233, 210, .7); box-shadow: 0 0 0 2px #3f7d4b inset; }
.plano-fantasma { pointer-events: none; border-radius: 18px; box-shadow: 0 0 0 2px #8fbf8a inset; background: rgba(168, 254, 175, .18); }
.plano-ficha { margin: 14px 0 0; padding: 16px; border-radius: 18px; border: 1px solid #d5e2d0; background: rgba(255, 255, 255, .8); }
.pf-cab { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 10px; }
.pf-cab > div { flex: 1 1 160px; }
.pf-cab b { display: block; font-size: 17px; }
.pf-cab small { color: var(--gris); }
.pf-dibujo .mesa-svg { width: 54px; height: 54px; display: block; }
.pf-formas { border: 0; padding: 0; margin: 4px 0 12px; display: flex; flex-wrap: wrap; gap: 8px; }
.pf-formas legend { font-size: 13px; font-weight: 600; margin-bottom: 6px; padding: 0; }
.pf-forma input { position: absolute; opacity: 0; pointer-events: none; }
.pf-forma span { display: flex; flex-direction: column; align-items: center; gap: 2px; width: 86px; padding: 8px 4px 6px; border-radius: 14px; border: 1.5px solid #dde6d9; background: #fff; cursor: pointer; }
.pf-forma .mesa-svg { width: 44px; height: 44px; }
.pf-forma small { font-size: 12px; color: var(--gris); }
.pf-forma input:checked + span { border-color: #3f7d4b; background: #eef7ec; }
.pf-forma input:checked + span small { color: #1d2a20; font-weight: 700; }
.pf-forma input:focus-visible + span { outline: 2px solid #8fbf8a; outline-offset: 2px; }
.rest-mesa-nueva .pf-formas { flex-basis: 100%; }

/* Widget (30 oct, Mario): más visual. */
.sa-hero { display: grid; gap: 26px; grid-template-columns: 1fr; padding: 24px; background: linear-gradient(150deg, #ffffff 0%, #f1f7ef 100%); }
@media (min-width: 1100px) { .sa-hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: center; } }
.sa-ojo { margin: 0 0 6px; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #3f7d4b; }
.sa-hero h2 { font-size: 26px; line-height: 1.15; letter-spacing: -.02em; margin: 0 0 10px; padding: 0; }
.sa-hero h2::before { display: none; }
.sa-bajada { color: var(--gris); margin: 0 0 18px; max-width: 560px; }
.sa-pasos { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 10px; }
.sa-pasos li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 16px; background: rgba(255,255,255,.75); border: 1px solid #e3e9df; }
.sa-pasos li.ok { background: #eef7ec; border-color: #c9e2c4; }
.sa-pasos b { display: block; font-size: 15px; }
.sa-pasos small { color: var(--gris); font-size: 13px; }
.sa-num { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 13px; background: #1d2a20; color: #a8feaf; }
.sa-pasos li.ok .sa-num { background: #3f7d4b; color: #fff; }
.sa-codigo { display: flex; align-items: center; gap: 10px; padding: 10px 10px 10px 14px; border-radius: 14px; background: #16241a; }
.sa-codigo code { flex: 1; min-width: 0; color: #c8f7cc; background: none; font: 500 12.5px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; overflow-x: auto; white-space: nowrap; scrollbar-width: thin; }
.sa-codigo .btn { flex: none; width: auto; }
.sa-codigo .btn.sec { background: rgba(255,255,255,.1); color: #eef6ec; border-color: rgba(255,255,255,.25); }
.sa-mock { margin: 0; border-radius: 18px; overflow: hidden; background: #fff; border: 1px solid #dfe6db; box-shadow: 0 24px 48px -28px rgba(22, 36, 26, .45); }
.sa-mock .sa-nav { display: flex; align-items: center; gap: 6px; padding: 9px 12px; background: #f1f4ef; border-bottom: 1px solid #e3e9df; }
.sa-mock .sa-nav i { width: 9px; height: 9px; border-radius: 50%; background: #d5ddd2; }
.sa-mock .sa-nav span { margin-left: 8px; font-size: 11.5px; color: #6b7d6e; background: #fff; border-radius: 999px; padding: 3px 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sa-mock img { display: block; width: 100%; height: 420px; object-fit: cover; object-position: top; }
.sa-mock figcaption { font-size: 12.5px; color: var(--gris); padding: 10px 14px; border-top: 1px solid #eef1ec; }
.sa-dos { display: grid; gap: 16px; grid-template-columns: 1fr; margin: 0 0 16px; }
@media (min-width: 1000px) { .sa-dos { grid-template-columns: 1fr 1fr; } }
.sa-dos .caja { margin: 0; }
.sa-tit { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.sa-tit h2 { margin: 0; font-size: 18px; padding: 0; }
.sa-tit h2::before { display: none; }
.sa-tit small { color: var(--gris); font-size: 12.5px; }
.sa-ico { width: 40px; height: 40px; border-radius: 13px; background: #e9e1f5; display: grid; place-items: center; flex: none; }
.sa-ico svg { width: 20px; height: 20px; fill: none; stroke: #5e4592; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.sa-img { display: block; width: 100%; height: auto; border-radius: 14px; border: 1px solid #e3e9df; margin-bottom: 12px; }
.sa-tarjeta > p { margin: 0 0 12px; }
.sa-lugares { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 14px; }
@media (max-width: 560px) { .sa-lugares { grid-template-columns: 1fr; } }
.sa-lugar { padding: 12px; border-radius: 16px; border: 1.5px solid #e3e9df; background: #fbfcfa; display: flex; flex-direction: column; gap: 4px; }
.sa-lugar.on { border-color: #3f7d4b; background: #eef7ec; }
.sa-lugar b { font-size: 13.5px; line-height: 1.25; }
.sa-lugar small { font-size: 12px; color: var(--gris); }
.sa-lugar small code { font-size: 10.5px; word-break: break-all; }
.sa-mini { display: flex; flex-direction: column; gap: 4px; padding: 8px; border-radius: 10px; background: #fff; border: 1px solid #e6ebe3; margin-bottom: 6px; }
.sa-mini i { display: block; height: 7px; border-radius: 4px; background: #e3e9df; }
.sa-mini i:nth-child(2) { width: 70%; }
.sa-mini i.w { height: 16px; background: #a8d3a4; width: 100%; }
.sa-cuentas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 6px 0 14px; }
.sa-cifra { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border-radius: 16px; text-decoration: none; color: inherit; border: 1px solid transparent; transition: transform .15s; }
.sa-cifra:hover { transform: translateY(-1px); }
.sa-cifra b { font-size: 28px; font-weight: 800; letter-spacing: -.02em; line-height: 1; }
.sa-cifra span { font-size: 13px; color: var(--gris); }
.sa-cifra.ok { background: #eef7ec; border-color: #cfe5ca; } .sa-cifra.ok b { color: #2f6b3a; }
.sa-cifra.rev { background: #fdf3e3; border-color: #f2dcb7; } .sa-cifra.rev b { color: #9a5b12; }
.sa-cifra.sin { background: #f3f3f1; border-color: #e5e5e1; } .sa-cifra.sin b { color: #5f5a52; }
/* Conectado: un punto verde y nada más; lo técnico, plegado. */
.sa-conectado { display: flex; align-items: center; gap: 16px; padding: 22px 24px; }
.sa-punto { flex: none; width: 16px; height: 16px; border-radius: 50%; background: #2fa84f; box-shadow: 0 0 0 6px rgba(47, 168, 79, .16); animation: sa-late 2.4s ease-in-out infinite; }
@keyframes sa-late { 50% { box-shadow: 0 0 0 10px rgba(47, 168, 79, .06); } }
@media (prefers-reduced-motion: reduce) { .sa-punto { animation: none; } }
.sa-con-txt b { display: block; font-size: 20px; color: #1f5c2e; letter-spacing: -.01em; }
.sa-con-txt small { color: var(--gris); font-size: 14px; }
.sa-con-rev { display: inline-block; margin-top: 6px; font-size: 13px; font-weight: 700; color: #9a5b12; background: #fdf3e3; border-radius: 999px; padding: 3px 10px; text-decoration: none; }
.sa-detalles { margin-top: 4px; }
.sa-detalles > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; font-weight: 600; font-size: 14px; color: var(--gris); }
.sa-detalles > summary::-webkit-details-marker { display: none; }
.sa-detalles > summary::before { content: "›"; font-size: 18px; line-height: 1; transition: transform .2s; }
.sa-detalles[open] > summary::before { transform: rotate(90deg); }
.sa-detalles > summary:hover { background: var(--pill-hover, #e2ebdf); color: var(--tinta); }
.sa-detalles > summary small { font-weight: 400; color: #8a9a8c; }
.sa-detalles[open] > summary { margin-bottom: 10px; }
.sa-detalles > summary::after { display: none !important; }
/* 159: entrar a ayudar */
.modo-soporte.ayudando { background: #fdf3e3; color: #6b4a12; border-color: #f2dcb7; }
.admin-archivados { margin-top: 10px; }
.admin-archivados > summary { cursor: pointer; }
.admin-arch-lista { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
.admin-arch-lista li { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 12px; background: #f6f8f3; }
.admin-arch-lista li > span { flex: 1; }
.admin-arch-lista li small { display: block; color: var(--gris); }
.acc-negocio { display: flex; flex-wrap: wrap; gap: 6px; }
/* Vista de Rezzerva (fondo oscuro): la cuenta con varios módulos, legible. */
.modo-plataforma .empresas .emp-modulos { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .12); }
.modo-plataforma .empresas .emp-modulos button { color: #e3ece3; }
.modo-plataforma .empresas .emp-modulos button:hover { background: rgba(255, 255, 255, .12); }
.modo-plataforma .empresas .emp-cuenta > small { color: rgba(227, 236, 227, .65); }
