@font-face {
  font-family: "Montserrat";
  src: url("/static/brand/fonts/Montserrat-variable.woff2") format("woff2"), url("/static/brand/fonts/Montserrat-variable.ttf") format("truetype");
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --coral: #DF4661;
  --coral-osc: #C2364F;
  --coral-suave: #FBE7EA;
  --grafito: #252B31;
  --grafito-2: #343B43;
  --marfil: #F7F4EF;
  --bruma: #DCE8E8;
  --bruma-osc: #B9CFCF;
  --blanco: #FFFFFF;
  --texto: #252B31;
  --texto-2: #5C6670;
  --borde: #E4DFD7;
  --ok: #2E7D5B;
  --ok-suave: #E1F2EA;
  --alerta: #B7791F;
  --alerta-suave: #FBF0DC;
  --radio: 10px;
  --sombra: 0 1px 2px rgba(37, 43, 49, .06), 0 4px 14px rgba(37, 43, 49, .05);
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 14px;
  color: var(--texto);
  background: var(--marfil);
  line-height: 1.45;
}
a { color: var(--coral-osc); text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-size: 22px; font-weight: 700; margin: 0; letter-spacing: -.01em; }
h2 { font-size: 15px; font-weight: 700; margin: 0 0 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-2); }

/* ---------- Estructura ---------- */
.layout { display: grid; grid-template-columns: 236px 1fr; min-height: 100vh; }
.sidebar {
  background: var(--grafito);
  color: #C9CED3;
  padding: 22px 14px;
  position: sticky; top: 0; height: 100vh; overflow-y: auto;
  display: flex; flex-direction: column;
}
.sidebar .logo { display: block; padding: 4px 10px 22px; }
.sidebar .logo img { width: 100%; max-width: 190px; display: block; }
.nav-group { font-size: 10.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #7E8790; padding: 16px 10px 6px; }
.nav a {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px; border-radius: 8px;
  color: #DDE1E4; font-weight: 500;
}
.nav a:hover { background: var(--grafito-2); text-decoration: none; }
.nav a.activo { background: var(--coral); color: var(--blanco); font-weight: 600; }
/* WhatsApp resalta en el menú con su verde */
.nav a.nav-wa { color: #25D366; font-weight: 700; }
.nav a.nav-wa.activo { background: #00A884; color: #fff; }
.nav a.nav-wa .nav-badge.wa-nav { background: #fff; color: #008069; }
.ico {
  width: 18px; height: 18px; flex: none; display: inline-block;
  background: currentColor;
  -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat;
}
.sidebar .pie { margin-top: auto; padding: 18px 10px 0; font-size: 12px; border-top: 1px solid var(--grafito-2); }
.sidebar .pie a { color: #DDE1E4; }
.sidebar .pie button { background: none; border: 0; color: #DDE1E4; padding: 0; font: inherit; cursor: pointer; }

.main { padding: 26px 32px 60px; min-width: 0; }
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.topbar .acciones { display: flex; gap: 8px; flex-wrap: wrap; }
.menu-movil { display: none; }

/* ---------- Componentes ---------- */
.card { background: var(--blanco); border: 1px solid var(--borde); border-radius: var(--radio); box-shadow: var(--sombra); padding: 18px 20px; }
.card + .card { margin-top: 18px; }
.grid { display: grid; gap: 18px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; margin-bottom: 18px; }
.kpi { background: var(--blanco); border: 1px solid var(--borde); border-radius: var(--radio); padding: 16px 18px; box-shadow: var(--sombra); }
.kpi .lbl { font-size: 12px; font-weight: 600; color: var(--texto-2); }
.kpi .val { font-size: 22px; font-weight: 700; margin-top: 4px; font-variant-numeric: tabular-nums; }
.kpi .sub { font-size: 12px; color: var(--texto-2); margin-top: 2px; }
.kpi.destacado { background: var(--grafito); color: var(--blanco); border-color: var(--grafito); }
.kpi.destacado .lbl, .kpi.destacado .sub { color: #AEB5BC; }
.pos { color: var(--ok); }
.neg { color: var(--coral-osc); }

.btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px; border-radius: 8px; border: 1px solid var(--borde);
  background: var(--blanco); color: var(--texto); font: inherit; font-weight: 600; cursor: pointer;
  white-space: nowrap;
}
.btn:hover { text-decoration: none; border-color: var(--bruma-osc); background: #FBFAF8; }
.btn.primario { background: var(--coral); border-color: var(--coral); color: var(--blanco); }
.btn.primario:hover { background: var(--coral-osc); border-color: var(--coral-osc); }
.btn.peligro { color: var(--coral-osc); }
.btn.chico { padding: 5px 10px; font-size: 12.5px; }

.flash { padding: 11px 14px; border-radius: 8px; margin-bottom: 16px; font-weight: 500; }
.flash.ok { background: var(--ok-suave); color: var(--ok); }
.flash.error { background: var(--coral-suave); color: var(--coral-osc); }

/* ---------- Tablas ---------- */
.tabla-wrap { overflow-x: auto; background: var(--blanco); border: 1px solid var(--borde); border-radius: var(--radio); box-shadow: var(--sombra); }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 9px 12px; text-align: left; border-bottom: 1px solid #EFEBE5; white-space: nowrap; }
th { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--texto-2); background: #FAF8F5; }
tbody tr:hover { background: #FCFBF9; }
tbody tr:last-child td { border-bottom: 0; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
tfoot td { font-weight: 700; background: #FAF8F5; border-top: 1px solid var(--borde); border-bottom: 0; }
tr.clic { cursor: pointer; }
.vacio { padding: 36px; text-align: center; color: var(--texto-2); }
.tabla-simple td, .tabla-simple th { padding: 7px 4px; background: none; }

.chip { display: inline-block; padding: 2px 9px; border-radius: 99px; font-size: 12px; font-weight: 600; background: var(--bruma); color: var(--grafito); }
.chip.confirmada { background: var(--bruma); }
.chip.pendiente { background: var(--alerta-suave); color: var(--alerta); }
.chip.en-curso { background: var(--coral); color: var(--blanco); }
.chip.finalizada { background: #ECEAE6; color: var(--texto-2); }
.chip.cancelada { background: #ECEAE6; color: #9AA1A8; text-decoration: line-through; }
.chip.pagada { background: var(--ok-suave); color: var(--ok); }

/* ---------- Filtros y formularios ---------- */
.filtros { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; }
.filtros input, .filtros select { width: auto; min-width: 140px; }
input, select, textarea {
  width: 100%; padding: 8px 10px; border: 1px solid var(--borde); border-radius: 8px;
  font: inherit; color: var(--texto); background: var(--blanco);
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--coral); outline-offset: -1px; border-color: transparent; }
textarea { min-height: 80px; resize: vertical; }
.form { max-width: 760px; }
.campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
.campo label { display: block; font-size: 12.5px; font-weight: 600; margin-bottom: 5px; }
.campo .ayuda { font-size: 11.5px; color: var(--texto-2); margin-top: 4px; }
.campo.ancho { grid-column: 1 / -1; }
.campo.check label { display: flex; align-items: center; gap: 8px; margin-top: 26px; font-size: 14px; }
.campo.check input { width: auto; }
.req { color: var(--coral); }
.form-acciones { display: flex; gap: 8px; margin-top: 20px; justify-content: space-between; flex-wrap: wrap; }
.paginas { display: flex; gap: 6px; margin-top: 14px; align-items: center; color: var(--texto-2); }

/* ---------- Detalle ---------- */
.dl { display: grid; grid-template-columns: 140px 1fr; gap: 8px 14px; margin: 0; }
.dl dt { color: var(--texto-2); font-weight: 600; font-size: 12.5px; }
.dl dd { margin: 0; }

/* ---------- Calendario ---------- */
.cal { border-collapse: separate; border-spacing: 0; }
.cal th, .cal td { padding: 0; border-bottom: 1px solid #EFEBE5; border-right: 1px solid #F3F0EB; }
.cal th.dia { width: 34px; min-width: 34px; text-align: center; padding: 6px 0; font-size: 11px; }
.cal th.dia.finde { background: #F3EFE9; }
.cal th.dia.hoy { background: var(--coral); color: var(--blanco); }
.cal td.hab, .cal th.hab { position: sticky; left: 0; background: var(--blanco); padding: 8px 12px; font-weight: 600; z-index: 1; min-width: 140px; }
.cal td.libre { height: 38px; }
.cal td.ocup { padding: 3px 2px; }
.cal .bloque {
  display: block; height: 30px; line-height: 30px; padding: 0 8px; border-radius: 6px;
  background: var(--bruma); color: var(--grafito); font-size: 12px; font-weight: 600;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.cal .bloque:hover { text-decoration: none; filter: brightness(.96); }
.cal .bloque.pendiente { background: var(--alerta-suave); color: var(--alerta); }
.cal .bloque.en-curso { background: var(--coral); color: var(--blanco); }
.cal .bloque.finalizada { background: #ECEAE6; color: var(--texto-2); }
.leyenda { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 12px; font-size: 12px; color: var(--texto-2); }

/* ---------- Login ---------- */
.login-pagina {
  min-height: 100vh; display: grid; place-items: center; padding: 20px;
  background: var(--marfil) url("/static/brand/patron-lineas.svg") center / 420px repeat;
}
.login-caja { width: 100%; max-width: 380px; background: var(--blanco); border-radius: 14px; box-shadow: 0 10px 40px rgba(37, 43, 49, .12); padding: 34px 30px; }
.login-caja img { width: 150px; display: block; margin: 0 auto 22px; }
.login-caja .campo { margin-bottom: 14px; }
.login-caja .btn { width: 100%; justify-content: center; padding: 11px; margin-top: 6px; }
.login-caja p.lema { text-align: center; font-size: 11px; letter-spacing: .3em; color: var(--texto-2); margin: 22px 0 0; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .layout { grid-template-columns: 1fr; }
  .sidebar { position: fixed; inset: 0 auto 0 0; width: 250px; z-index: 50; transform: translateX(-100%); transition: transform .2s; }
  .layout.abierto .sidebar { transform: none; box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .35); }
  .main { padding: 16px 16px 50px; }
  .menu-movil { display: inline-flex; }
  .grid-2, .grid-3, .campos { grid-template-columns: 1fr; }
  .campo.check label { margin-top: 0; }
  .dl { grid-template-columns: 110px 1fr; }
}

@media print {
  .sidebar, .topbar .acciones, .filtros, .form-acciones, .menu-movil { display: none !important; }
  .layout { display: block; }
  body { background: #fff; }
}

/* Ajustes */
.btn.menu-movil { display: none; }
@media (max-width: 900px) { .btn.menu-movil { display: inline-flex; } }
.grid > .card { margin-top: 0; }
.login-pagina { background: linear-gradient(rgba(247, 244, 239, .9), rgba(247, 244, 239, .9)), url("/static/brand/patron-lineas.svg") center / 420px repeat; }

/* Calendario: canales, bloqueos y reservas a completar */
.cal .bloque.canal-airbnb, .chip.canal-airbnb { background: #FBE1E6; color: #A3253D; }
.cal .bloque.canal-booking, .chip.canal-booking { background: #DCE6F5; color: #1F3F73; }
.cal .bloque.en-curso { background: var(--coral); color: var(--blanco); }
.cal .bloque.finalizada { background: #ECEAE6; color: var(--texto-2); }
.cal .bloque.bloqueado, .chip.bloqueado {
  background: repeating-linear-gradient(-45deg, #EEEBE6, #EEEBE6 5px, #E4E0D9 5px, #E4E0D9 10px);
  color: var(--texto-2); font-weight: 500; cursor: default;
}
.cal .bloque.incompleta, .chip.incompleta { outline: 2px dashed var(--alerta); outline-offset: -2px; }
.card.aviso { border-left: 4px solid var(--alerta); }
.cal { table-layout: fixed; width: max-content; }
.cal th.hab, .cal td.hab { width: 160px; min-width: 160px; max-width: 160px; overflow: hidden; text-overflow: ellipsis; }
.cal td.ocup { max-width: 0; }
.tabla-simple td { white-space: normal; }
.tabla-simple td.num { white-space: nowrap; }

/* Ficha de unidad */
.unidad-titulo { font-size: 17px; font-weight: 600; margin: -10px 0 2px; }
.unidad-sub { color: var(--texto-2); margin: 0 0 16px; }
.galeria { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 170px 170px; gap: 8px; border-radius: 14px; overflow: hidden; }
.galeria a { display: block; overflow: hidden; background: var(--bruma); }
.galeria img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.galeria a:hover img { transform: scale(1.03); }
.galeria .g0 { grid-row: 1 / 3; }
.todas-fotos { margin-top: 10px; }
.todas-fotos summary { list-style: none; }
.todas-fotos summary::-webkit-details-marker { display: none; }
.fotos-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 8px; margin-top: 12px; }
.fotos-grid a { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 8px; background: var(--bruma); }
.fotos-grid img { width: 100%; height: 100%; object-fit: cover; }
.fotos-grid span { position: absolute; left: 6px; bottom: 6px; background: rgba(37, 43, 49, .75); color: #fff; font-size: 11px; padding: 2px 7px; border-radius: 99px; }
.destacado { padding: 8px 0; }
.destacado + .destacado { border-top: 1px solid #EFEBE5; }
.destacado div { color: var(--texto-2); font-size: 13px; }
.descripcion { line-height: 1.6; }
.servicios { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 20px; }
.servicios h3 { font-size: 13px; margin: 10px 0 4px; }
.servicios ul, .lista { margin: 0; padding-left: 18px; }
.servicios li, .lista li { margin: 2px 0; }
.dormitorios { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.dormitorios div { border: 1px solid var(--borde); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.dormitorios span { color: var(--texto-2); font-size: 13px; }
@media (max-width: 900px) {
  .galeria { grid-template-columns: 1fr 1fr; grid-template-rows: 200px 110px 110px; }
  .galeria .g0 { grid-column: 1 / 3; grid-row: auto; }
  .servicios { grid-template-columns: 1fr; }
}
.kpi .val.val-multi { font-size: 18px; line-height: 1.3; }

/* Pagos de Airbnb */
.chip.payoneer { background: #FFF1D6; color: #8A5A00; }
.chip.banco { background: #DCE6F5; color: #1F3F73; }
.mini { font-size: 12.5px; color: var(--texto-2); }
.meses-tabla td.num, .meses-tabla th.num { white-space: nowrap; }
.meses-tabla { width: 100%; }
.meses-tabla tr.activo td { background: var(--bruma); font-weight: 600; }
.huespedes { max-width: 340px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dia-sep td { background: #F6F4F1; font-weight: 600; font-size: 12.5px; color: var(--texto-2); padding-top: 6px !important; padding-bottom: 6px !important; }
.grid-pagos { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
@media (max-width: 900px) { .grid-pagos { grid-template-columns: 1fr; } .huespedes { max-width: 200px; } }
/* Las tarjetas KPI destacadas no deben heredar el estilo de los "destacados" de la ficha de la unidad */
.kpi.destacado { padding: 16px 18px; }
.kpi.destacado .val { color: var(--blanco); }
@media (max-width: 600px) {
  .kpis { grid-template-columns: 1fr 1fr; gap: 10px; }
  .kpi { padding: 12px 14px; }
  .kpi .val { font-size: 17px; }
  .huespedes { max-width: 120px; }
  .grid-pagos .chip { font-size: 11px; padding: 2px 7px; }
}
.grid-pagos td.medio { white-space: nowrap; }
@media (max-width: 600px) { .grid-pagos td.medio { white-space: normal; width: 90px; } .grid-pagos td, .grid-pagos th { padding-left: 8px !important; padding-right: 8px !important; } }
.chip { white-space: nowrap; }
.tablero-movs td.num { white-space: nowrap; vertical-align: middle; }
.tablero-movs td strong { font-weight: 600; }

/* Tablero de tareas */
.tareas-grid { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
@media (max-width: 900px) { .tareas-grid { grid-template-columns: 1fr; } }
.tareas-titulo { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-2); margin: 4px 0 10px; }
.tareas-titulo.prio-alta { color: var(--coral); }
a.card.tarea { display: flex; align-items: center; gap: 14px; text-decoration: none; color: inherit; padding: 14px 16px; margin-bottom: 10px; border-left: 4px solid var(--borde); transition: transform .08s, box-shadow .08s; }
a.card.tarea + a.card.tarea { margin-top: 0; }
a.card.tarea:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(0,0,0,.08); }
a.card.tarea.prio-alta { border-left-color: var(--coral); }
a.card.tarea.prio-media { border-left-color: var(--alerta); }
a.card.tarea.prio-baja { border-left-color: #B8C2CC; }
.tarea-nueva label input { width: auto; margin: 0; }
.tarea-nueva input[type=date] { flex: 1; min-width: 140px; }
.tarea-area { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--texto-2); width: 92px; flex-shrink: 0; }
.tarea-cuerpo { flex: 1; min-width: 0; }
.tarea-titulo { font-weight: 600; margin-bottom: 2px; }
.tarea-ok { border-left: 4px solid var(--ok); }
.tarea-manual { display: flex; gap: 10px; align-items: flex-start; padding: 9px 0; border-bottom: 1px solid #EFEBE5; }
.tarea-manual form { margin: 0; }
.tarea-manual .check { width: 20px; height: 20px; border-radius: 50%; border: 2px solid #B8C2CC; background: #fff; cursor: pointer; padding: 0; margin-top: 1px; font-size: 11px; line-height: 16px; color: #fff; }
.tarea-manual .check:hover { border-color: var(--ok); }
.tarea-manual .check.marcado { background: var(--ok); border-color: var(--ok); }
.tarea-manual.hecha div { color: var(--texto-2); text-decoration: line-through; }
.tarea-manual .borrar { border: 0; background: none; color: #B8C2CC; font-size: 18px; cursor: pointer; line-height: 1; }
.tarea-manual .borrar:hover { color: var(--coral); }
.tarea-nueva { display: grid; gap: 8px; margin-top: 12px; }
.tarea-nueva input[name=titulo] { width: 100%; }
@media (max-width: 600px) { a.card.tarea { flex-wrap: wrap; } .tarea-area { width: auto; } }

/* Operación */
.filtros-op { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
.tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.tabs a { padding: 7px 14px; border-radius: 99px; background: var(--blanco); border: 1px solid var(--borde); color: var(--texto); text-decoration: none; font-size: 14px; font-weight: 600; }
.tabs a.activo { background: var(--grafito); border-color: var(--grafito); color: var(--blanco); }
.filtros-op .filtros { display: flex; gap: 8px; flex-wrap: wrap; }
.filtros-op .filtros select, .filtros-op .filtros input { width: auto; min-width: 150px; }
a.card.tarea.estado-hecha, a.card.tarea.estado-cancelada { opacity: .6; }
a.card.tarea .tarea-area { width: 120px; }
.nota { padding: 10px 12px; border-radius: 10px; background: #F6F4F1; margin-bottom: 8px; }
.nota.sistema { background: none; padding: 4px 12px; font-size: 13px; color: var(--texto-2); }
.permisos-grid { width: 100%; border-collapse: collapse; }
.permisos-grid td, .permisos-grid th { padding: 7px 8px; border-bottom: 1px solid #EFEBE5; text-align: left; vertical-align: top; }
.permisos-grid label { display: inline-flex; gap: 5px; align-items: center; margin: 0 12px 4px 0; font-size: 13.5px; white-space: nowrap; }
.permisos-grid input { width: auto; margin: 0; }
@media print {
  .sidebar, .topbar .acciones, .no-print, .menu-movil, .flash { display: none !important; }
  .main { margin: 0 !important; padding: 0 !important; }
  .layout { display: block !important; }
  .card { box-shadow: none !important; border: 0 !important; }
}
.tarea-mia { display: flex; gap: 10px; align-items: center; padding: 9px 0; border-bottom: 1px solid #EFEBE5; color: inherit; text-decoration: none; }
.tarea-mia:hover strong { color: var(--coral); }
.permisos-grid label { white-space: normal; }
.permisos-grid td:first-child { width: 34%; }

/* Housekeeping del día: grilla tipo planilla (mismos colores que la planilla del equipo) */
.hk-resumen { margin: 0 0 14px; color: var(--texto-2); }
.hk-resumen strong { color: var(--texto); }
.hk-print-titulo { display: none; }
/* Arriba de la planilla: qué unidades tienen check in, check out o las dos cosas (nombres internos completos) */
.hk-mov { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0 0 14px; }
.hk-mov-g { border: 1px solid #C9C3BB; background: #fff; border-radius: 8px; overflow: hidden; }
.hk-mov-t { font-weight: 700; font-size: 12px; padding: 4px 8px; color: #000; }
.hk-mov-t span { font-weight: 600; }
.hk-mov-l { padding: 6px 8px; font-size: 13px; line-height: 1.45; }
.hk-mov-n { white-space: nowrap; }
.hk-mov-check_in .hk-mov-t { background: #FF9900; }
.hk-mov-check_out .hk-mov-t { background: #EA9999; }
.hk-mov-out_in .hk-mov-t { background: #FF0000; color: #fff; }
.hk-sale { font-size: 12px; color: #555; white-space: nowrap; }
.hk-sale input { font-size: 13px; padding: 1px 4px; width: auto; min-width: 0; }
.hk-sale-f { display: none; }
.hk-hora { white-space: nowrap; }
.hk-llega, .hk-habitual { color: #555; white-space: nowrap; font-size: 12px; }
.solo-print { display: none; }
[data-fila].guardado { background: #DFF3E6; border-radius: 4px; }
[data-fila].error-fila { background: #FDE2E2; border-radius: 4px; }
@media (max-width: 700px) { .hk-mov { grid-template-columns: 1fr; } }
.hk-cols { columns: 2 400px; column-gap: 16px; }
.hk-col { display: contents; }
.hk-hoja { width: 100%; border-collapse: collapse; background: #fff; margin: 0 0 12px; break-inside: avoid; font-size: 12.5px; table-layout: fixed; }
.hk-hoja col.w-u { width: 74px; } .hk-hoja col.w-e { width: 36%; } .hk-hoja col.w-h { width: 52px; } .hk-hoja col.w-c { width: 34px; }
.hk-hoja tr.hk-cab th { background: #FCE5CD; font-size: 10.5px; height: 20px; }
.hk-col { min-width: 0; }
.hk-hoja th, .hk-hoja td { border: 1px solid #C9C3BB; padding: 0 5px; height: 25px; text-align: left; vertical-align: middle; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hk-hoja thead th { background: #FCE5CD; font-size: 11px; font-weight: 700; color: #3a3a3a; text-transform: uppercase; white-space: nowrap; }
.hk-hoja th.hk-complejo-titulo { font-size: 12px; color: #000; background: #F6B26B; text-align: left; padding: 3px 6px; }
.hk-hoja .c { text-align: center; padding: 0; }
.hk-unidad { font-weight: 700; background: #FCE5CD; }
.hk-unidad a { color: inherit; text-decoration: none; }
/* Plataforma de la reserva: color del nombre de la unidad */
.c-airbnb, .hk-unidad a.c-airbnb { color: #D0103A; }
.c-booking, .hk-unidad a.c-booking { color: #0A3D91; }
.c-expedia, .hk-unidad a.c-expedia { color: #7A2FB0; }
.c-directa, .hk-unidad a.c-directa { color: #0E6B33; }
.c-hospital, .hk-unidad a.c-hospital { color: #B35C00; }
.hk-mov-n [class^="c-"], .hk-unidad a[class^="c-"] { font-weight: 800; }
.hk-leyenda { font-size: 13px; margin: -6px 0 10px; color: #555; }
.hk-canales span { font-weight: 800; }
.hk-print-titulo .hk-canales { float: right; font-size: 9px; }
.hk-huesp { background: #FFE599; }
.hk-obs-celda { background: #F4CCCC; }
.hk-hoja .hk-sel-estado, .hk-hoja .hk-obs, .hk-hoja .hk-num { width: 100%; min-width: 0; border: 0; border-radius: 0; background: transparent; padding: 2px 0; font-size: 12.5px; height: 24px; color: inherit; font-weight: inherit; box-shadow: none; }
.hk-hoja .hk-sel-estado { -webkit-appearance: none; appearance: none; }
.hk-hoja .hk-num { text-align: center; }
.hk-hoja .hk-sel-estado { cursor: pointer; }
.hk-hoja input:focus, .hk-hoja select:focus { outline: 2px solid #E69138; background: #FFFDF2; }
.hk-check { display: flex; align-items: center; justify-content: center; margin: 0; cursor: pointer; }
.hk-check input { width: 17px; height: 17px; margin: 0; accent-color: var(--ok); cursor: pointer; }
/* Colores del estado (como la planilla) */
.hk-fila td.hk-estado { background: #fff; }
.hk-fila.hk-libre td.hk-estado { background: #00FFFF; }
.hk-fila.hk-check_in td.hk-estado { background: #FF9900; }
.hk-fila.hk-check_out td.hk-estado { background: #EA9999; }
.hk-fila.hk-out_in td.hk-estado { background: #FF0000; color: #fff; font-weight: 600; }
.hk-fila.hk-en_curso td.hk-estado { background: #D9EAD3; }
.hk-fila.hk-recambio td.hk-estado { background: #B4A7D6; }
.hk-fila.hk-mantenimiento td.hk-estado { background: #999999; color: #fff; }
.hk-fila.hk-listo td.hk-unidad { background: #B6D7A8; }
.hk-fila.hk-listo .hk-unidad a:first-child::after { content: ' ✓'; }
.hk-fila.guardado td.hk-obs-celda { box-shadow: inset 0 0 0 9999px rgba(46, 160, 90, .18); }
@media (max-width: 700px) { .hk-cols { columns: 1; } .hk-hoja { font-size: 12px; } }
@media print {
  @page { size: A4 portrait; margin: 6mm; }
  html, body { background: #fff !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .layout { display: block !important; }
  .main { padding: 0 !important; margin: 0 !important; max-width: none !important; }
  .topbar, .hk-resumen, .no-print, .sidebar { display: none !important; }
  .hk-print-titulo { display: block; font-size: 10px; font-weight: 700; margin: 0 0 2mm; }
  .hk-mov { gap: 2mm; margin: 0 0 2.5mm; }
  .solo-print { display: inline !important; }
  .hk-hora { font-weight: 800; }
  .hk-hora.hk-hab { font-weight: 600; }
  .hk-mov-g { border-radius: 0; break-inside: avoid; }
  .hk-mov-t { font-size: 8px; padding: 0.6mm 1.5mm; }
  .hk-mov-l { font-size: 8.5px; padding: 1mm 1.5mm; line-height: 1.35; font-weight: 600; }
  .hk-cols { display: flex !important; columns: auto !important; gap: 2.5mm; align-items: flex-start; }
  .hk-col { display: block !important; flex: 1 1 0; min-width: 0; }
  .hk-hoja tr.hk-cab th { font-size: 6px; height: auto; }
  .hk-hoja { font-size: 8px; margin: 0 0 2.5mm; table-layout: fixed; width: 100%; page-break-inside: avoid; break-inside: avoid; }
  .hk-hoja col.w-u { width: 17%; } .hk-hoja col.w-e { width: 38%; } .hk-hoja col.w-h { width: 8%; } .hk-hoja col.w-o { width: 37%; }
  /* El tilde de "listo" se marca desde el celular: en la hoja impresa no va. */
  .hk-hoja col.w-c, .hk-hoja .hk-tilde { display: none; }
  .hk-hoja td.hk-unidad { white-space: normal; }
  .hk-check input { width: 7px; height: 7px; }
  .hk-hoja th, .hk-hoja td { height: auto; padding: 0.5mm 1mm; line-height: 1.3; }
  .hk-hoja thead th { font-size: 5.5px; white-space: normal; }
  .hk-hoja thead th.hk-complejo-titulo { font-size: 7px; }
  .hk-hoja th.hk-complejo-titulo { font-size: 8.5px; }
  .hk-hoja .hk-sel-estado, .hk-hoja .hk-obs, .hk-hoja .hk-num { font-size: 8px; height: auto; padding: 0; line-height: 1.25; -webkit-appearance: none; appearance: none; background: transparent; }
  .hk-unidad { width: auto; }
}
.cotizacion-form { display: flex; justify-content: space-between; align-items: flex-end; gap: 14px; flex-wrap: wrap; }
.cotizacion-form input[name=cotizacion] { width: 130px; }
.liq-h { font-size: 16px; margin: 22px 0 6px; color: var(--grafito); }
/* Sueldos: blanco / negro */
.tabla-sueldos th.grupo { text-align: center; border-bottom: 1px solid var(--borde, #e5e0d8); }
.tabla-sueldos td.acciones-sueldo { white-space: normal; min-width: 170px; }
.tabla-sueldos td.acciones-sueldo .btn { margin: 2px 2px 2px 0; }
.tabla-sueldos td.num { white-space: nowrap; }
/* Usuarios: lista + formulario; la grilla de permisos se acomoda en filas con "chips" */
.usuarios-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 18px; align-items: start; }
@media (max-width: 1100px) { .usuarios-layout { grid-template-columns: minmax(0, 1fr); } }
.usuarios-layout > * { min-width: 0; }
.permisos-lista { border-top: 1px solid #EFEBE5; }
.perm-fila { padding: 10px 0; border-bottom: 1px solid #EFEBE5; }
.perm-sec { font-weight: 600; font-size: 14px; margin-bottom: 6px; }
.perm-acc { display: flex; flex-wrap: wrap; gap: 6px; }
.perm-chip { display: inline-flex !important; align-items: center; gap: 6px; margin: 0 !important; padding: 5px 10px; border: 1px solid var(--borde); border-radius: 999px; font-size: 13px; cursor: pointer; background: #fff; }
.perm-chip input { width: auto; margin: 0; accent-color: var(--coral); }
.perm-chip:has(input:checked) { background: #FCEBEE; border-color: #F2B8C3; }
.perm-chip:has(input:disabled) { cursor: default; opacity: .75; }
/* Claves de acceso: hoja imprimible con el mismo estilo que la planilla del equipo */
.claves-titulo { font-weight: 700; letter-spacing: .04em; margin-bottom: 10px; font-size: 13px; color: var(--texto-2); }
.claves-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; max-width: 900px; }
@media (max-width: 700px) { .claves-cols { grid-template-columns: minmax(0, 1fr); } }
.claves-tabla { width: 100%; border-collapse: collapse; background: #fff; border: 2px solid #222; }
.claves-tabla th { background: #D9EAD3; font-weight: 700; text-align: center; padding: 6px 8px; border: 1px solid #222; font-size: 14px; }
.claves-tabla td { padding: 5px 8px; border: 1px solid #222; font-size: 14px; }
.claves-tabla tbody tr:nth-child(odd) td { background: #9FC5E8; }
.claves-tabla td.clave { font-size: 17px; font-variant-numeric: tabular-nums; width: 90px; text-align: right; }
@media print {
  .claves-hoja { padding: 4mm; }
  .claves-cols { max-width: none; gap: 10px; }
  .claves-tabla th, .claves-tabla td { -webkit-print-color-adjust: exact; print-color-adjust: exact; font-size: 11.5px; padding: 3px 6px; }
  .claves-tabla td.clave { font-size: 13px; }
  .claves-titulo { color: #000; }
}
/* Claves de acceso: grilla editable */
.claves-barra { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; }
.claves-barra input[type=search] { max-width: 320px; }
.claves-editables td { padding: 4px 6px; vertical-align: middle; }
.claves-editables input, .claves-editables select { padding: 6px 8px; font-size: 14px; border-color: transparent; background: transparent; }
.claves-editables input:hover, .claves-editables select:hover { border-color: var(--borde); }
.claves-editables input:focus, .claves-editables select:focus { border-color: var(--coral); background: #fff; }
.claves-editables .input-clave { font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; width: 90px; }
.claves-editables tr.guardado td { background: #E6F4EA; transition: background .2s; }
.claves-editables tr.error-fila td { background: #FCEBEE; }
.claves-editables .fila-nueva td { background: #FAF8F5; border-top: 2px solid var(--borde); }
.claves-editables .fila-nueva input, .claves-editables .fila-nueva select { border-color: var(--borde); background: #fff; }
.nowrap { white-space: nowrap; }
/* Calendario: línea de tiempo por unidad */
.cal-barra { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; }
.cal-barra select, .cal-barra input[type=month] { width: auto; }
.tl-wrap { overflow-x: auto; background: var(--blanco); border: 1px solid var(--borde); border-radius: 14px; }
.tl { width: max-content; min-width: 100%; font-size: 12.5px; }
.tl-head, .tl-fila, .tl-grupo { display: flex; }
.tl-u { position: sticky; left: 0; z-index: 3; flex: 0 0 130px; width: 130px; background: var(--blanco); padding: 0 10px; display: flex; align-items: center; border-right: 1px solid var(--borde); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tl-u a { color: var(--texto); font-weight: 600; }
.tl-head { position: sticky; top: 0; z-index: 4; border-bottom: 1px solid var(--borde); background: var(--blanco); }
.tl-dias { display: flex; }
.tl-dia { position: relative; width: var(--w); flex: 0 0 var(--w); text-align: center; padding: 16px 0 5px; font-size: 11px; font-weight: 600; color: var(--texto-2); line-height: 1.25; border-right: 1px solid #F3F0EB; }
.tl-dia .dow { display: block; font-weight: 400; font-size: 10px; }
.tl-dia .tl-mes { position: absolute; top: 2px; left: 3px; font-size: 9.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--coral); white-space: nowrap; }
.tl-dia.finde, .tl-celda.finde { background: #F7F4EF; }
.tl-dia.hoy { background: var(--coral); color: #fff; }
.tl-dia.hoy .tl-mes, .tl-dia.hoy .dow { color: #fff; }
.tl-grupo { background: #F3EFE9; border-bottom: 1px solid var(--borde); }
.tl-grupo .tl-u { background: #F3EFE9; font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; padding-top: 5px; padding-bottom: 5px; color: var(--texto-2); }
.tl-fila { border-bottom: 1px solid #F0ECE6; }
.tl-fila.inactiva .tl-u a { color: var(--alerta); font-style: italic; }
.tl-track { position: relative; display: flex; height: 34px; min-height: 34px; }
.tl-celda { width: var(--w); flex: 0 0 var(--w); height: 100%; border-right: 1px solid #F3F0EB; display: block; }
a.tl-celda:hover { background: #FCEBEE; }
.tl-celda.hoy { background: #FDF0F2; }
.tl-barra { position: absolute; top: 5px; height: 24px; margin-left: 1px; border-radius: 7px; padding: 0 7px; font-size: 11.5px; font-weight: 600; line-height: 24px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; z-index: 1;
  background: #E3E0DA; color: #4A4640; box-shadow: inset 0 0 0 1px rgba(0,0,0,.06); text-decoration: none; }
.tl-barra:hover { text-decoration: none; filter: brightness(.95); z-index: 2; }
.tl-barra.canal-airbnb, .chip.canal-airbnb { background: #FBE1E6; color: #A3253D; }
.tl-barra.canal-booking, .chip.canal-booking { background: #DCE6F5; color: #1F3F73; }
.tl-barra.canal-directo, .chip.canal-directo { background: #DDF0E2; color: #1F6B3A; }
.tl-barra.canal-otro, .chip.canal-otro { background: #EDE7F6; color: #5B3F8C; }
.tl-barra.canal-expedia, .chip.canal-expedia, .cal .bloque.canal-expedia { background: #FFF1B8; color: #1B2552; }
.tl-barra.canal-despegar, .chip.canal-despegar, .cal .bloque.canal-despegar { background: #E3F4F4; color: #1D5E63; }
.tl-barra.en-curso, .chip.tl-chip-encurso { box-shadow: inset 0 0 0 2px currentColor; }
.tl-barra.finalizada { opacity: .55; }
.tl-barra.corta-izq { border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: 0; }
.tl-barra.corta-der { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.tl-barra.choca { outline: 2px solid #C62828; outline-offset: -2px; }
.tl-fila.sola .tl-u a { font-weight: 700; }
.tl-fila.inactiva .tl-track { background: repeating-linear-gradient(-45deg, transparent 0 6px, #FBF3E6 6px 12px); }
.tl-barra.incompleta { outline: 2px dashed var(--alerta); outline-offset: -2px; }
.tl-alerta { display: inline-block; background: #C62828; color: #fff; border-radius: 50%; width: 14px; height: 14px; line-height: 14px; text-align: center; font-size: 9.5px; margin-right: 4px; vertical-align: 1px; }
@media (max-width: 700px) { .tl-u { flex-basis: 74px; width: 74px; padding: 0 6px; } }
.tl-ayuda { margin: 0 0 10px; font-size: 13px; color: var(--texto-2); }
.tl[data-arrastrar] .tl-barra { cursor: grab; touch-action: pan-x pan-y; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.tl-barra.arrastrando { cursor: grabbing; z-index: 10; opacity: .92; box-shadow: 0 6px 18px rgba(0,0,0,.22); transition: none; }
.tl-barra.guardando { opacity: .5; }
.tl-fila.tl-destino .tl-celda { background: #FCEBEE; }
.tl-fila.tl-destino { outline: 2px solid var(--coral); outline-offset: -2px; position: relative; z-index: 2; }
.tl-fila.tl-destino .tl-u { color: var(--coral); }
body.tl-moviendo, body.tl-moviendo * { cursor: grabbing !important; -webkit-user-select: none; user-select: none; }
.tl-etiqueta { display: none; position: fixed; z-index: 50; background: var(--grafito, #252B31); color: #fff; font-size: 12px; font-weight: 600; padding: 5px 9px; border-radius: 8px; pointer-events: none; white-space: nowrap; box-shadow: 0 4px 12px rgba(0,0,0,.2); }
/* Ingreso con Google */
.btn-google { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; padding: 11px; border: 1px solid #DADCE0; border-radius: 10px; background: #fff; color: #3C4043; font-weight: 600; font-size: 15px; text-decoration: none; }
.btn-google:hover { background: #F8F9FA; text-decoration: none; box-shadow: 0 1px 3px rgba(60,64,67,.2); }
.login-clave { margin-top: 18px; border-top: 1px solid var(--borde); padding-top: 12px; }
.login-clave summary { cursor: pointer; font-size: 13px; color: var(--texto-2); text-align: center; list-style: none; }
.login-clave summary::-webkit-details-marker { display: none; }
.login-clave[open] summary { margin-bottom: 12px; }
.google-config code { background: #F3EFE9; padding: 2px 6px; border-radius: 5px; font-size: 12.5px; word-break: break-all; }
/* Ayuda dentro del sistema */
.ayuda-movil { display: none; font-weight: 800; }
.ayuda-flotante { position: fixed; right: 20px; bottom: 20px; z-index: 40; display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px 9px 10px; border: 0; border-radius: 999px;
  background: var(--grafito); color: #fff; font: inherit; font-weight: 700; font-size: 14px; cursor: pointer; box-shadow: 0 6px 20px rgba(37,43,49,.25); }
.ayuda-flotante span { display: inline-flex; width: 24px; height: 24px; border-radius: 50%; background: var(--coral); align-items: center; justify-content: center; font-weight: 800; }
.ayuda-flotante:hover { background: #343B43; }
body.ayuda-abierta .ayuda-flotante { display: none; }
.main { padding-bottom: 70px; }
@media (max-width: 900px) { .ayuda-flotante { display: none; } .ayuda-movil { display: inline-flex; } }
.ayuda-capa { position: fixed; inset: 0; z-index: 60; background: rgba(37,43,49,.25); }
@media (min-width: 1200px) { .ayuda-capa { background: transparent; pointer-events: none; } .ayuda-capa .ayuda-panel { pointer-events: auto; } }
.ayuda-panel { position: absolute; top: 0; right: 0; bottom: 0; width: 100%; max-width: 440px; background: #fff; box-shadow: -8px 0 30px rgba(37,43,49,.18); display: flex; flex-direction: column; }
.ayuda-cab { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px 10px; border-bottom: 1px solid var(--borde); }
.ayuda-cab strong { font-size: 17px; }
.ayuda-seccion { color: var(--texto-2); font-size: 13.5px; }
.ayuda-cerrar { border: 0; background: none; font-size: 18px; cursor: pointer; color: var(--texto-2); padding: 4px 8px; }
.ayuda-buscar { margin: 10px 16px 4px; width: auto; }
.ayuda-cuerpo { flex: 1; overflow-y: auto; padding: 6px 16px 16px; }
.ayuda-pie { border-top: 1px solid var(--borde); padding: 10px 16px; font-size: 13.5px; font-weight: 600; }
.ayuda-grupo { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-2); margin: 14px 0 8px; }
.ayuda-vacio { color: var(--texto-2); font-size: 14px; }
.ayuda-todos, .ayuda-volver { margin: 12px 0 4px; }
.ayuda-tema { border: 1px solid var(--borde); border-radius: 10px; margin-bottom: 8px; background: #fff; }
.ayuda-tema summary { cursor: pointer; padding: 10px 12px; font-weight: 700; font-size: 14.5px; list-style: none; display: flex; justify-content: space-between; gap: 10px; }
.ayuda-tema summary::-webkit-details-marker { display: none; }
.ayuda-tema summary::after { content: "+"; color: var(--coral); font-weight: 800; }
.ayuda-tema[open] summary::after { content: "–"; }
.ayuda-tema[open] summary { border-bottom: 1px solid var(--borde); }
.ayuda-contenido { padding: 10px 12px 4px; font-size: 14px; line-height: 1.55; }
.ayuda-contenido p, .ayuda-contenido ul, .ayuda-contenido ol { margin: 0 0 10px; }
.ayuda-contenido ul, .ayuda-contenido ol { padding-left: 20px; }
.ayuda-contenido h3, .ayuda-contenido h4 { font-size: 14.5px; margin: 14px 0 6px; }
.ayuda-contenido table { width: 100%; border-collapse: collapse; font-size: 12.5px; margin: 0 0 10px; table-layout: fixed; }
.ayuda-contenido th, .ayuda-contenido td { overflow-wrap: anywhere; white-space: normal !important; }
.ayuda-contenido th { background: var(--grafito); color: #fff; text-align: left; padding: 5px 7px; font-weight: 600; }
.ayuda-contenido td { padding: 5px 7px; border-bottom: 1px solid var(--borde); vertical-align: top; }
.ayuda-contenido code { background: var(--marfil); padding: 0 4px; border-radius: 4px; font-size: .92em; }
.ayuda-contenido .recuadro { border-left: 4px solid; border-radius: 8px; padding: 8px 10px 2px 12px; margin: 10px 0; }
.ayuda-contenido .recuadro-titulo { font-weight: 700; margin-bottom: 4px !important; }
.ayuda-contenido .recuadro.paso { background: var(--coral-suave); border-color: var(--coral); }
.ayuda-contenido .recuadro.atencion { background: var(--alerta-suave); border-color: var(--alerta); }
.ayuda-contenido .recuadro.consejo { background: var(--ok-suave); border-color: var(--ok); }
.ayuda-contenido .recuadro.saber { background: #E9F1F1; border-color: #6E9494; }
.ayuda-contenido input[type=checkbox] { width: auto; margin-right: 6px; }
@media print { .ayuda-flotante, .ayuda-capa { display: none !important; } }
/* Anotador */
.nav-badge { margin-left: auto; background: var(--coral); color: #fff; border-radius: 999px; font-size: 11px; font-weight: 700; padding: 1px 7px; line-height: 1.5; }
.anot-vivo { color: var(--ok); font-weight: 600; }
.anot-nueva textarea { width: 100%; resize: vertical; min-height: 70px; }
.anot-nueva-pie { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }
.anot-nueva-pie select { width: auto; }
.anot-filtros { display: flex; gap: 6px; flex-wrap: wrap; margin: 14px 0; }
#anot-lista { display: grid; gap: 10px; max-width: 900px; }
.anot-nota { background: #fff; border: 1px solid var(--borde); border-radius: 12px; padding: 12px 14px; box-shadow: var(--sombra); }
.anot-nota.fijada { border-color: var(--coral); box-shadow: 0 0 0 1px var(--coral) inset, var(--sombra); }
.anot-nota.resuelta { opacity: .7; }
.anot-nota header { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.anot-texto { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 15px; line-height: 1.45; }
.anot-nota textarea { width: 100%; }
.anot-acciones { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.anot-etiqueta { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 2px 8px; border-radius: 999px; background: #EFEBE5; color: var(--texto-2); }
.anot-etiqueta.et-reservas { background: #DCE6F5; color: #1F3F73; }
.anot-etiqueta.et-housekeeping { background: #DDF0E2; color: #1F6B3A; }
.anot-etiqueta.et-mantenimiento { background: var(--alerta-suave); color: var(--alerta); }
.anot-etiqueta.et-administracion { background: #EDE7F6; color: #5B3F8C; }
.anot-etiqueta.et-pase-de-turno { background: var(--coral-suave); color: var(--coral-osc); }
.anot-pin { margin-left: auto; }
.anot-vacio { padding: 20px; }
/* Horarios y checklist de turno */
.turnos-grilla td, .turnos-grilla th { vertical-align: top; min-width: 112px; }
.turnos-grilla th.hoy, .turnos-grilla td.hoy { background: #FDF0F2; }
.turnos-grilla td.libre input, .turnos-grilla td.libre span { color: var(--texto-2); }
.turno-celda { padding: 5px 7px; font-size: 13.5px; }
.turno-celda.ok { border-color: var(--ok); background: var(--ok-suave); }
.turno-celda.error { border-color: #C62828; background: #FCEBEE; }
.turno-chk { display: block; font-size: 12px; margin-top: 4px; color: var(--texto-2); }
.turno-persona { display: flex; gap: 8px; align-items: center; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid var(--borde); }
.turno-persona select { width: auto; }
.turnos-panel tr.turno-ahora td { background: #FFFBEF; }
.turnos-panel tr.turno-libre td { color: var(--texto-2); }
.turnos-texto { white-space: pre-wrap; max-width: 300px; min-width: 200px; }
.chip.chk-finalizado { background: var(--ok-suave); color: var(--ok); }
.chip.chk-en_curso { background: var(--alerta-suave); color: var(--alerta); }
.chk-barra { height: 8px; background: #EFEBE5; border-radius: 99px; overflow: hidden; min-width: 90px; }
.chk-barra > div { height: 100%; background: var(--coral); width: 0; transition: width .2s; }
.chk { max-width: 860px; }
.chk-cab { background: var(--grafito); color: #fff; border-radius: 14px; padding: 16px 20px; margin-bottom: 14px; }
.chk-cab h2 { color: #fff; margin: 4px 0; font-size: 21px; text-transform: none; letter-spacing: 0; }
.chk-cab .mini { color: #CDD3D8; }
.chk-marca { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--coral); font-weight: 700; }
.chk-pase { margin-bottom: 14px; border-left: 4px solid var(--coral); }
.chk-pase summary { font-weight: 700; cursor: pointer; }
.chk-pase h4 { margin: 10px 0 4px; font-size: 13px; text-transform: uppercase; color: var(--texto-2); }
.chk-progreso { position: sticky; top: 6px; z-index: 5; background: #fff; border: 1px solid var(--borde); border-radius: 12px; padding: 10px 14px; margin-bottom: 14px; box-shadow: var(--sombra); }
.chk-progreso-top { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; margin-bottom: 6px; }
.chk-guardado { color: var(--texto-2); } .chk-guardado.ok { color: var(--ok); } .chk-guardado.error { color: #C62828; }
.chk-seccion { margin-bottom: 14px; padding: 0; overflow: hidden; }
.chk-seccion h3 { margin: 0; padding: 11px 16px; background: var(--marfil); font-size: 13px; letter-spacing: .04em; }
.chk-tarea { padding: 12px 16px; border-top: 1px solid var(--borde); }
.chk-texto { font-size: 15px; line-height: 1.35; margin-bottom: 9px; }
.chk-opciones { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.chk-op { border: 1px solid var(--borde); background: #fff; border-radius: 8px; padding: 9px 4px; font: inherit; font-size: 13px; cursor: pointer; color: var(--texto-2); }
.chk-op:disabled { cursor: default; }
.chk-op.activa[data-valor="Cumplido"] { background: var(--ok-suave); border-color: var(--ok); color: var(--ok); font-weight: 700; }
.chk-op.activa[data-valor="No cumplido"] { background: #FCEBEE; border-color: #C62828; color: #9B1C1C; font-weight: 700; }
.chk-op.activa[data-valor="No aplica"] { background: #EFEBE5; border-color: #9A948B; color: #4A4640; font-weight: 700; }
.chk-campos { padding: 14px 16px; }
.chk-hk { display: flex; gap: 8px; } .chk-hk input { max-width: 140px; }
.chk-pie { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 6px 0 30px; }
/* Anotador flotante */
.anf { position: fixed; z-index: 45; background: #fff; border: 1px solid var(--borde); border-radius: 14px; box-shadow: 0 10px 30px rgba(37,43,49,.22);
  display: flex; flex-direction: column; overflow: hidden; min-width: 0; }
.anf.abierto { resize: both; min-width: 240px; min-height: 180px; max-width: 95vw; max-height: 90vh; }
.anf-cab { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 8px 7px 12px; background: var(--grafito); color: #fff;
  cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; }
.anf-cab:active { cursor: grabbing; }
.anf:not(.abierto) { border-radius: 999px; }
.anf:not(.abierto) .anf-cab { padding: 8px 10px 8px 14px; }
.anf:not(.abierto) .anf-cuerpo { display: none; }
.anf.con-nuevas:not(.abierto) .anf-cab { background: var(--coral); }
.anf-titulo { font-weight: 700; font-size: 13.5px; white-space: nowrap; }
.anf-badge { display: inline-block; background: #fff; color: var(--coral); border-radius: 999px; font-size: 11px; font-weight: 800; padding: 0 6px; margin-left: 4px; }
.anf-botones { display: flex; gap: 2px; }
.anf-btn { background: transparent; border: 0; color: #fff; font: inherit; font-weight: 700; font-size: 15px; width: 26px; height: 24px; border-radius: 6px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.anf-btn:hover { background: rgba(255,255,255,.15); text-decoration: none; }
.anf-cuerpo { flex: 1; display: flex; flex-direction: column; min-height: 0; }
.anf-lista { flex: 1; overflow-y: auto; padding: 8px; display: grid; gap: 6px; align-content: start; background: var(--marfil); }
.anf-lista .anot-nota { padding: 8px 10px; border-radius: 10px; box-shadow: none; }
.anf-lista .anot-nota header { margin-bottom: 3px; gap: 6px; font-size: 12.5px; }
.anf-lista .anot-etiqueta { font-size: 9.5px; padding: 1px 6px; }
.anf-lista .anot-texto { font-size: 13.5px; }
.anf-lista .anot-texto.largo:not(.expandido) { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; cursor: pointer; }
.anf-lista .anot-texto.largo:not(.expandido)::after { content: ''; }
.anf-lista .anot-acciones { margin-top: 5px; }
.anf-lista .anot-acciones .btn { padding: 2px 8px; font-size: 12px; }
.anf-lista .anot-vacio { padding: 10px; font-size: 13px; }
.anf-nueva { border-top: 1px solid var(--borde); padding: 8px; background: #fff; }
.anf-nueva textarea { width: 100%; resize: none; font-size: 13.5px; padding: 6px 8px; }
.anf-nueva-pie { display: flex; gap: 6px; justify-content: flex-end; margin-top: 6px; }
.anf-nueva-pie select { width: auto; font-size: 12.5px; padding: 4px 6px; }
@media (max-width: 700px) { .anf.abierto { max-width: calc(100vw - 16px); } }
@media print { .anf { display: none !important; } }
.anf-badge[hidden] { display: none; }
.anf:not(.abierto) .anf-btn[href] { display: none; }
.cb-clave { margin-bottom: 14px; }
.cb-cab { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.cb-nombre { display: flex; gap: 6px; align-items: center; flex: 1; }
.cb-nombre input { font-weight: 700; max-width: 280px; }
.link-mp-monto { font-size: 24px; font-weight: 800; margin: 0 0 4px; }
.link-mp-url { font-size: 13px; margin-bottom: 8px; }
.link-mp-botones { display: flex; gap: 6px; flex-wrap: wrap; }
/* Hoja de mantenimiento (mismo estilo que la planilla de housekeeping) */
.mt-hoja { max-width: 1100px; }
.mt-hoja col.m-u { width: 70px; } .mt-hoja col.m-e { width: 110px; } .mt-hoja col.m-t { width: auto; } .mt-hoja col.m-p { width: 62px; } .mt-hoja col.m-d { width: 24%; } .mt-hoja col.m-o { width: 18%; }
.mt-hoja td.mt-tarea, .mt-hoja td.mt-disp { white-space: normal; line-height: 1.3; padding-top: 3px; padding-bottom: 3px; height: auto; }
.mt-hoja .mt-desc { color: #555; }
.mt-hoja .mt-espera { color: #8a5a00; font-style: italic; }
.mt-hoja td.mt-prio { font-size: 10.5px; font-weight: 800; }
.mt-hoja tr.prio-urgente td.mt-prio { background: #FF0000; color: #fff; }
.mt-hoja tr.prio-alta td.mt-prio { background: #FFD966; }
.mt-hoja td.mt-disp { font-size: 11.5px; }
@media print {
  .mt-hoja { max-width: none; font-size: 9px; margin-bottom: 2.5mm; page-break-inside: auto; break-inside: auto; }
  .mt-hoja tr { break-inside: avoid; }
  .mt-hoja th, .mt-hoja td { padding: 0.6mm 1.2mm; height: auto; line-height: 1.25; }
  .mt-hoja thead th { font-size: 7px; }
  .mt-hoja thead th.hk-complejo-titulo { font-size: 9px; }
  .mt-hoja td.mt-disp { font-size: 8px; }
  .mt-hoja col.m-o { width: 20%; }
}
/* Panel de inicio */
.panel-aviso { display: block; background: var(--coral); color: #fff; font-weight: 700; padding: 11px 16px; border-radius: 12px; margin-bottom: 14px; text-decoration: none; }
.panel-aviso:hover { text-decoration: none; filter: brightness(.96); }
.panel-kpis { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.panel-kpis a.kpi { color: inherit; text-decoration: none; }
.panel-kpis a.kpi:hover { box-shadow: 0 0 0 2px var(--coral) inset, var(--sombra); }
.kpi-chico { font-size: 13px; font-weight: 600; color: var(--texto-2); }
.kpi.kpi-alerta { box-shadow: 0 0 0 2px #E57373 inset, var(--sombra); }
.panel-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 18px; align-items: start; margin-top: 18px; }
@media (max-width: 1000px) { .panel-grid { grid-template-columns: minmax(0, 1fr); } }
.panel-grid.panel-una { grid-template-columns: minmax(0, 760px); }
.panel-linea { display: block; }
.panel-monto { flex: 0 0 auto; white-space: nowrap; }
.panel-col > .card { margin-bottom: 18px; }
.panel-sub { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--texto-2); margin: 12px 0 4px; }
.panel-fila { display: flex; align-items: center; gap: 8px; padding: 7px 4px; border-bottom: 1px solid #F0ECE6; color: inherit; text-decoration: none; font-size: 14px; flex-wrap: wrap; }
a.panel-fila:hover { background: #FBF8F4; text-decoration: none; }
.panel-fila.panel-ahora { background: #FFFBEF; }
.panel-u { flex: 0 0 auto; min-width: 92px; font-weight: 700; font-size: 13px; }
.panel-t { flex: 1 1 160px; min-width: 0; }
.chip.prio-urgente { background: #FF0000; color: #fff; }
.chip.prio-alta { background: #FFD966; color: #5a4300; }
.hk-chip { display: inline-block; font-size: 11.5px; padding: 2px 8px; border-radius: 6px; white-space: nowrap; }
.hk-chip.hk-libre { background: #00FFFF; } .hk-chip.hk-check_in { background: #FF9900; } .hk-chip.hk-check_out { background: #EA9999; }
.hk-chip.hk-out_in { background: #FF0000; color: #fff; } .hk-chip.hk-en_curso { background: #D9EAD3; } .hk-chip.hk-recambio { background: #B4A7D6; } .hk-chip.hk-mantenimiento { background: #999; color: #fff; }
.panel-hk { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; padding: 9px 4px; border-bottom: 1px solid #F0ECE6; color: inherit; text-decoration: none; }
.panel-hk:hover { background: #FBF8F4; text-decoration: none; }
.panel-hk strong { min-width: 62px; }
.panel-progreso { flex: 1 1 100%; height: 7px; background: #EFEBE5; border-radius: 99px; overflow: hidden; margin-top: 4px; }
.panel-progreso > span { display: block; height: 100%; background: var(--ok); }
.ocu-barras { display: grid; grid-template-columns: repeat(14, 1fr); gap: 4px; align-items: end; }
.ocu-dia { display: flex; flex-direction: column; align-items: center; gap: 3px; color: inherit; text-decoration: none; font-size: 11px; }
.ocu-dia:hover { text-decoration: none; }
.ocu-pct { font-size: 10.5px; color: var(--texto-2); }
.ocu-barra { width: 100%; height: 80px; background: #F3EFE9; border-radius: 6px; display: flex; align-items: flex-end; overflow: hidden; }
.ocu-barra > span { display: block; width: 100%; background: var(--coral); border-radius: 6px 6px 0 0; }
.ocu-dia.finde .ocu-barra { background: #EDE6DC; }
.ocu-lbl { text-align: center; line-height: 1.15; color: var(--texto-2); }
.panel-nota { display: block; padding: 7px 4px; border-bottom: 1px solid #F0ECE6; color: inherit; text-decoration: none; font-size: 13.5px; }
.panel-nota:hover { background: #FBF8F4; text-decoration: none; }
.panel-pend { display: flex; flex-direction: column; gap: 4px; color: inherit; text-decoration: none; border-left: 4px solid var(--alerta); }
.panel-pend:hover { text-decoration: none; box-shadow: 0 0 0 2px var(--alerta) inset; }

/* ---------- Reseñas ---------- */
.res-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 18px; align-items: start; }
/* En tablets y pantallas chicas: una sola columna, con el resumen por unidad arriba de las reseñas */
@media (max-width: 1350px) { .res-grid { grid-template-columns: minmax(0, 1fr); } .res-grid > .res-lista { order: 2; } }
.res-unidades-wrap { overflow-x: auto; margin: 0 -4px; }
.res-unidades { width: 100%; }
.res-unidades th, .res-unidades td.num { white-space: nowrap; }
.res-filtros input[type="search"] { flex: 1 1 150px; }
@media (min-width: 601px) { .res-kpis { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); } }
@media (max-width: 600px) { .res-unidades td, .res-unidades th { padding: 6px 4px; } .res-unidades th { white-space: normal; font-size: 10px; } .res-unidades td.num .mini { display: none; } }
.res-bien { color: var(--ok); }
.res-medio { color: #B7791F; }
.res-mal { color: var(--coral-osc); }
.res-dist { margin-bottom: 14px; display: flex; flex-direction: column; gap: 5px; }
.res-barra { display: grid; grid-template-columns: 34px 1fr 44px; gap: 8px; align-items: center; color: inherit; text-decoration: none; font-size: 13px; }
.res-barra:hover { text-decoration: none; color: var(--coral); }
.res-barra-fondo { height: 8px; background: #EFEBE5; border-radius: 99px; overflow: hidden; }
.res-barra-fondo > span { display: block; height: 100%; background: #E8B931; }
.res-item { margin-bottom: 12px; }
.res-item-media { border-left: 4px solid #E8B931; }
.res-item-mala { border-left: 4px solid var(--coral); }
.res-cab { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.res-cab .mini { margin-left: auto; }
.res-estrellas { color: #E0A800; letter-spacing: 1px; font-size: 15px; white-space: nowrap; }
.res-quien { margin: 3px 0 6px; }
.res-texto { margin: 6px 0; white-space: pre-line; line-height: 1.5; }
.res-respuesta { background: #FBF8F4; border-radius: 8px; padding: 8px 12px; margin: 8px 0 6px; }
.res-respuesta p { margin: 4px 0 0; white-space: pre-line; font-size: 13.5px; }
.res-unidades td, .res-unidades th { padding: 6px 6px; }
.res-unidades tr.res-sel td { background: #FFF6F7; }
.panel-res { display: block; padding: 7px 4px; border-bottom: 1px solid #F0ECE6; color: inherit; text-decoration: none; font-size: 13.5px; }
.panel-res:hover { background: #FBF8F4; text-decoration: none; }
.panel-res .res-estrellas { font-size: 13px; }

/* Anotador: parpadeo mientras haya notas nuevas sin leer */
@keyframes anf-parpadeo {
  0%, 100% { background: var(--coral); color: #fff; }
  50% { background: #FFD43B; color: var(--grafito); }
}
@keyframes anf-latido {
  0%, 100% { transform: scale(1); box-shadow: 0 10px 30px rgba(37,43,49,.22), 0 0 0 0 rgba(223,70,97,.75); }
  50% { transform: scale(1.12); box-shadow: 0 10px 30px rgba(37,43,49,.22), 0 0 0 14px rgba(223,70,97,0); }
}
.anf.alerta:not(.abierto) { animation: anf-latido .7s ease-in-out infinite; }
.anf.alerta:not(.abierto) .anf-cab, .anf.destello .anf-cab { animation: anf-parpadeo .7s steps(1, end) infinite; }
.nav-badge.alerta { animation: anf-parpadeo .7s steps(1, end) infinite; }
@media (prefers-reduced-motion: reduce) { .anf.alerta:not(.abierto) { animation: none; } }

/* ---------- Seguridad ---------- */
.seg-tabs { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin: -4px 0 16px; }
.seg-tabs > a:not(.chip) { padding: 7px 14px; border-radius: 999px; background: var(--blanco); border: 1px solid var(--borde); color: var(--grafito); font-weight: 600; font-size: 13.5px; text-decoration: none; }
.seg-tabs > a.activo { background: var(--grafito); color: #fff; border-color: var(--grafito); }
.seg-sep { width: 1px; height: 22px; background: var(--borde); margin: 0 4px; }
.seg-kpis { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.seg-punto { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 3px; vertical-align: 1px; }
.seg-ok { background: var(--ok); }
.seg-med { background: #E0A800; }
.seg-mal { background: var(--coral); box-shadow: 0 0 0 3px rgba(223,70,97,.2); }
.seg-sin { border-left: 4px solid var(--coral); }
.seg-alertas { border-left: 4px solid #E0A800; margin-bottom: 18px; }
.seg-alertas ul { margin: 6px 0 0; padding-left: 20px; }
.seg-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.seg-grid > div > .card { margin-bottom: 18px; }
@media (max-width: 1000px) { .seg-grid { grid-template-columns: minmax(0, 1fr); } }
.seg-datos { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px 14px; margin-bottom: 8px; }
.seg-datos span { display: block; font-size: 11.5px; color: var(--texto-2); }
.seg-datos b { font-size: 15px; font-variant-numeric: tabular-nums; }
.seg-graf-tit { font-size: 12.5px; font-weight: 600; color: var(--texto-2); margin: 12px 0 4px; }
.seg-graf { width: 100%; height: 64px; display: block; background: #FBF8F4; border-radius: 8px; }
.seg-graf .l1 { fill: none; stroke: var(--coral); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.seg-graf .l2 { fill: none; stroke: #B7791F; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.seg-graf .a1 { fill: rgba(223,70,97,.12); }
.seg-graf .a2 { fill: rgba(224,168,0,.15); }
.seg-graf .a4 { fill: rgba(46,125,91,.22); }
.seg-ref { display: inline-block; width: 10px; height: 3px; vertical-align: 3px; }
.seg-ref.r1 { background: var(--coral); }
.seg-ref.r4 { background: rgba(46,125,91,.5); }
.seg-tabla td, .seg-tabla th { padding: 6px; }
.seg-apagada td { color: var(--texto-2); }
.seg-alerta-h { padding: 6px 0; border-bottom: 1px solid #F0ECE6; font-size: 13.5px; }
.seg-chip-ok { background: var(--ok-suave); color: var(--ok); }
.seg-chip-mal { background: var(--coral-suave); color: var(--coral-osc); }
.cam-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.cam { background: #111; border-radius: var(--radio); overflow: hidden; box-shadow: var(--sombra); display: flex; flex-direction: column; }
.cam.grande { grid-column: 1 / -1; order: -1; }
.cam-cab { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 8px 6px 12px; background: var(--grafito); color: #fff; font-size: 13.5px; }
.cam-cab .mini { color: #B9BEC4; }
.cam-btns { display: flex; gap: 4px; }
.cam-btns .btn { background: rgba(255,255,255,.1); border-color: transparent; color: #fff; }
.cam-btns .btn:hover { background: rgba(255,255,255,.2); }
.cam-video { position: relative; aspect-ratio: 16 / 9; background: #000; cursor: zoom-in; }
.cam.grande .cam-video { cursor: zoom-out; }
.cam-video camara-video { display: block; width: 100%; height: 100%; position: relative; }
.cam-video video { object-fit: contain; background: #000; }
.cam-estado { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; padding: 16px; color: #C9CDD2; font-size: 13.5px; pointer-events: none; }
.cam-estado[hidden] { display: none; }
.cam:fullscreen { border-radius: 0; }
.cam:fullscreen .cam-video { aspect-ratio: auto; flex: 1; }
.grab-card .cam-video { cursor: default; }
.grab-player { margin-bottom: 10px; }
.grab-reloj { font-variant-numeric: tabular-nums; color: #fff !important; font-weight: 600; }
.grab-saltos { display: flex; gap: 4px; flex-wrap: wrap; }
.grab-form input[type="date"], .grab-form input[type="time"] { min-width: 0; }
.seg-fw { font-size: 12px !important; word-break: break-all; }
.ico-completa { display: block; }

/* ---------- Actividad del equipo ---------- */
.act-resumen { margin: -4px 0 8px; }
.act-fila { display: flex; gap: 10px; align-items: flex-start; padding: 8px 2px; border-bottom: 1px solid #F0ECE6; }
.act-quien { flex: 1; min-width: 0; font-size: 14px; }
.act-punto { display: inline-block; width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; margin-top: 5px; background: #C9CDD2; }
.act-resumen .act-punto { margin-top: 0; vertical-align: -1px; }
.act-punto.act-activo { background: var(--ok); box-shadow: 0 0 0 3px rgba(46,125,91,.18); }
.act-punto.act-ausente { background: #E0A800; }
.act-desconectado .act-quien strong { color: var(--texto-2); }
.act-turno { background: #FFF6DB; color: #8A6100; font-size: 11px; padding: 1px 7px; }
.act-aviso { margin: 8px 0 0; color: #8A6100; }
.act-tabla td, .act-tabla th { padding: 6px; white-space: nowrap; }

/* ---------- Luces del equipo (barra lateral del administrador) ---------- */
.equipo { position: sticky; top: -22px; z-index: 2; background: var(--grafito); margin: -6px -4px 4px; padding: 6px 4px 10px; border-bottom: 1px solid var(--grafito-2); }
.equipo-tit { display: flex; justify-content: space-between; align-items: baseline; font-size: 10.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #7E8790; padding: 0 6px 6px; text-decoration: none; }
.equipo-tit span { letter-spacing: 0; text-transform: none; font-weight: 600; color: #8FD3B2; font-size: 11.5px; }
.equipo-tit:hover { text-decoration: none; color: #C9CED3; }
.equipo-lista { display: grid; grid-template-columns: 1fr; gap: 1px; }
.eq { display: flex; align-items: center; gap: 6px; padding: 2px 6px; border-radius: 7px; color: #DDE1E4; font-size: 12.5px; text-decoration: none; white-space: nowrap; overflow: hidden; }
.eq .eq-n { flex: 0 0 auto; }
.eq small { margin-left: auto; color: #8F99A3; font-size: 11px; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.eq-fuera small { color: #F0A35E; }
.eq:hover { background: rgba(255,255,255,.07); text-decoration: none; }
.eq i, .equipo-movil i { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; display: inline-block; }
.eq-activo i, .equipo-movil i.eq-activo { background: #2ECC71; box-shadow: 0 0 6px #2ECC71; }
.eq-ausente i, .equipo-movil i.eq-ausente { background: #F5B700; }
.eq-desconectado i, .equipo-movil i.eq-desconectado { background: #E5484D; }
.eq-desconectado { color: #9AA3AB; }
.eq-turno { box-shadow: inset 0 0 0 1px rgba(245,183,0,.55); }
.equipo-movil { display: none; gap: 3px; align-items: center; padding: 6px 8px; }
@media (max-width: 900px) { .btn.equipo-movil { display: inline-flex; } }
@media print { .equipo-movil { display: none !important; } }
.act-nombre { color: inherit; }
.act-fuera { color: #B5651D; font-weight: 600; }
/* Línea de tiempo del día */
.act-tl { position: relative; height: 22px; background: #F4F0EA; border-radius: 6px; overflow: hidden; margin: 4px 0 2px; }
.act-tl span { position: absolute; top: 0; bottom: 0; min-width: 1px; }
.act-tl-horas { display: flex; justify-content: space-between; font-size: 10.5px; color: var(--texto-2); }
.act-tl-ley { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12px; margin-top: 8px; }
.act-tl-ley i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 4px; vertical-align: -1px; }
.act-dia { padding: 10px 0; border-bottom: 1px solid #F0ECE6; }
.act-dia-cab { display: flex; justify-content: space-between; gap: 10px; font-size: 14px; }
.act-sitios { display: grid; gap: 4px; }
.act-sitio { display: grid; grid-template-columns: minmax(120px, 210px) 1fr 70px; gap: 10px; align-items: center; font-size: 13.5px; }
.act-sitio .barra { height: 9px; background: #F4F0EA; border-radius: 99px; overflow: hidden; }
.act-sitio .barra > span { display: block; height: 100%; border-radius: 99px; }
.ext-form { background: #FBF8F4; border-radius: 10px; padding: 12px 14px; margin-bottom: 12px; }
.ext-sw { font-size: 15px; display: flex; gap: 8px; align-items: center; }
.ext-grupo { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; margin-bottom: 10px; font-size: 14px; }
.ext-grupo .mini { flex-basis: 100%; }
.ext-grupo label { display: inline-flex; gap: 5px; align-items: center; }
.ext-form input[type="checkbox"] { width: auto; min-width: 0; margin: 0; flex: 0 0 auto; }
.ext-sw { justify-content: flex-start; }

/* ---------- App instalable (PWA) ---------- */
.pwa-cartel { position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); z-index: 60; display: flex; gap: 10px; align-items: center; background: var(--grafito); color: #fff; border-radius: 14px; padding: 12px 40px 12px 14px; font-size: 14px; box-shadow: 0 10px 30px rgba(0,0,0,.3); }
.pwa-cartel .pwa-x { position: absolute; top: 6px; right: 8px; background: none; border: 0; color: #fff; font-size: 22px; line-height: 1; cursor: pointer; }
.pwa-ico { display: inline-block; border: 1px solid rgba(255,255,255,.6); border-radius: 4px; padding: 0 4px; font-size: 12px; }
html.es-app .main { padding-bottom: calc(60px + env(safe-area-inset-bottom)); }
.notif-op { display: flex; gap: 8px; align-items: center; margin: 6px 0; font-size: 14px; }
.notif-op input { width: auto; margin: 0; }
.codigo-grande { font-size: 40px; font-weight: 800; letter-spacing: .12em; text-align: center; padding: 10px 0; font-variant-numeric: tabular-nums; color: var(--coral-osc); }
.login-codigo { margin-top: 14px; }
.btn[hidden], [data-push-activar][hidden], [data-push-probar][hidden], [data-push-desactivar][hidden] { display: none !important; }
.pwa-ico svg { display: inline-block; vertical-align: -2px; }
.pwa-ico { border: 0; padding: 0; }
.act-clientes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.act-clientes .chip { font-weight: 500; font-size: 12px; }

/* ---------- Gastos y proveedores ---------- */
.chip.parcial { background: #FFF1D6; color: #9A6200; }
.gst-lista { display: flex; flex-direction: column; }
.gst-fila { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 9px 2px; border-bottom: 1px solid #F0ECE6; font-size: 14px; }
.gst-fila:last-child { border-bottom: 0; }
.gst-fila .mini { line-height: 1.5; }
.gst-acc { display: flex; align-items: center; gap: 8px; flex-shrink: 0; white-space: nowrap; }
.gst-acc input { width: 130px; min-width: 0; }
.gst-vencida { background: linear-gradient(90deg, #FDECEF 0, transparent 70%); }
.gst-confirmar { border-left: 4px solid #E8B931; }
.prov-saldo { font-size: 24px; font-weight: 800; margin: 2px 0 10px; }
.prov-movs td { vertical-align: top; }
.prov-movs .chip { font-size: 11px; padding: 1px 7px; margin-left: 4px; }
.prov-pago td { background: #F7FBF8; }
.prov-cbu { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; word-break: break-all; }
@media (max-width: 600px) {
  .gst-fila { flex-direction: column; align-items: stretch; gap: 6px; }
  .gst-acc { justify-content: space-between; }
  .gst-acc input { flex: 1; }
}

/* ---------- Documentación de los huéspedes ---------- */
.doc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin-bottom: 14px; }
.doc-grid-chica { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); }
.doc { display: flex; flex-direction: column; gap: 6px; font-size: 13px; }
.doc-vista { display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; border-radius: 10px; overflow: hidden; background: #F4F0EA; border: 1px solid var(--borde); }
.doc-vista img { width: 100%; height: 100%; object-fit: cover; }
.doc-ico { font-weight: 800; font-size: 18px; color: var(--texto-2); letter-spacing: .05em; }
.doc-info { line-height: 1.35; }
.doc-acc summary { cursor: pointer; }
.doc-acc form { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.doc-acc select, .doc-acc input { width: 100%; min-width: 0; font-size: 13px; }
.doc-subir { border: 2px dashed var(--borde); border-radius: 12px; padding: 12px; background: #FBF8F4; }
.doc-subir.subiendo { opacity: .6; pointer-events: none; }
.doc-campos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 8px; margin-bottom: 10px; }
.doc-botones { display: flex; gap: 8px; flex-wrap: wrap; }
.doc-botones .btn { position: relative; overflow: hidden; cursor: pointer; }
.doc-input { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; cursor: pointer; font-size: 0; }
@media (min-width: 901px) { .doc-camara { display: none; } }
@media (max-width: 600px) { .doc-campos { grid-template-columns: 1fr; } }

/* ---------- WhatsApp en la reserva ---------- */
.wa-texto { display: flex; gap: 8px; align-items: flex-end; margin-bottom: 12px; }
.wa-texto textarea { flex: 1; min-height: 44px; }
.wa-hilo { display: flex; flex-direction: column; gap: 6px; max-height: 360px; overflow-y: auto; padding: 4px 2px; }
.wa-msj { max-width: 85%; padding: 7px 10px; border-radius: 10px; font-size: 14px; }
.wa-msj > div { white-space: pre-line; }
.wa-msj.entrante { align-self: flex-start; background: #F1EFEC; }
.wa-msj.saliente { align-self: flex-end; background: #DCF8C6; }
.wa-msj .mini { display: block; margin-top: 2px; }

/* ---------- Bandeja de WhatsApp (al estilo del celular) ---------- */
.main:has(> .wz) { padding: 14px 16px !important; }
.wz { --wz-verde: #00A884; --wz-verde-osc: #008069; --wz-gris: #F0F2F5; --wz-linea: #E9EDEF; --wz-texto: #111B21; --wz-texto-2: #667781; --wz-salida: #D9FDD3; --wz-fondo: #EFEAE2;
  display: grid; grid-template-columns: minmax(300px, 400px) minmax(0, 1fr); height: calc(100dvh - 28px); min-height: 480px; background: #fff; border: 1px solid var(--borde);
  border-radius: 14px; overflow: hidden; box-shadow: var(--sombra); color: var(--wz-texto); }
.wz-ico { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: 0; background: transparent; color: #54656F; cursor: pointer; flex: 0 0 auto; text-decoration: none; position: relative; }
.wz-ico:hover { background: rgba(0,0,0,.06); text-decoration: none; }
/* Lista */
.wz-lista { display: flex; flex-direction: column; min-height: 0; border-right: 1px solid var(--wz-linea); background: #fff; }
.wz-lista-cab { display: flex; align-items: center; gap: 6px; padding: 10px 10px 6px 16px; }
.wz-lista-cab h1 { font-size: 21px; margin: 0; flex: 1; letter-spacing: -.01em; }
.wz-lista-cab .menu-movil { display: none; }
.wz-iconos { display: flex; gap: 2px; }
.wz-buscar { margin: 4px 12px 8px; display: flex; align-items: center; gap: 10px; background: var(--wz-gris); border-radius: 10px; padding: 0 12px; color: #54656F; }
.wz-buscar input { border: 0; background: transparent; padding: 9px 0; font-size: 14.5px; width: 100%; box-shadow: none; outline: none; }
.wz-filtros { display: flex; gap: 8px; padding: 0 12px 8px; }
.wz-filtros button { border: 0; background: var(--wz-gris); color: #54656F; border-radius: 99px; padding: 6px 13px; font: inherit; font-size: 13.5px; font-weight: 500; cursor: pointer; }
.wz-filtros button.activo { background: #E7FCE3; color: var(--wz-verde-osc); font-weight: 600; }
.wz-filtros [data-wz-nl]:not(:empty)::before { content: '· '; }
.wz-items { flex: 1; overflow-y: auto; overscroll-behavior: contain; }
.wz-item { display: flex; gap: 12px; align-items: center; padding: 0 14px 0 12px; color: inherit; text-decoration: none; cursor: pointer; }
.wz-item:hover { background: #F5F6F6; text-decoration: none; }
.wz-item.activo { background: var(--wz-gris); }
.wz-item-c { flex: 1; min-width: 0; padding: 11px 0; border-bottom: 1px solid var(--wz-linea); }
.wz-item:last-child .wz-item-c { border-bottom: 0; }
.wz-item-l1, .wz-item-l2 { display: flex; align-items: center; gap: 8px; min-width: 0; }
.wz-item-l1 b { flex: 1; min-width: 0; font-weight: 500; font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wz-item-l1 time { font-size: 12px; color: var(--wz-texto-2); flex: 0 0 auto; }
.wz-item.sin-leer .wz-item-l1 time { color: #1DAA61; font-weight: 600; }
.wz-item-l2 { margin-top: 2px; }
.wz-prev { flex: 1; min-width: 0; font-size: 14px; color: var(--wz-texto-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wz-prev .wz-tk { vertical-align: -1px; margin-right: 3px; }
.wz-item.sin-leer .wz-prev { color: var(--wz-texto); font-weight: 500; }
.wz-nl { flex: 0 0 auto; min-width: 20px; height: 20px; border-radius: 99px; background: #25D366; color: #fff; font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; padding: 0 6px; }
.wz-item-r { margin-top: 3px; font-size: 12px; color: #8696A0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wz-item-r.en-casa { color: var(--wz-verde-osc); font-weight: 600; }
.wz-item-r.web { color: #3B6FB6; display: flex; align-items: center; gap: 4px; }
.wz-item-r.web b { color: #00A884; }
.wz-av.web { background: #E3ECF8; color: #3B6FB6; }
.wz-cab-info svg { vertical-align: -2px; }
.wz-sec { padding: 14px 16px 6px; font-size: 13px; font-weight: 600; color: var(--wz-verde-osc); }
.wz-nada, .wz-cargando { text-align: center; color: var(--wz-texto-2); padding: 26px 16px; font-size: 14px; margin: 0; }
.wz-av { --h: 160; flex: 0 0 auto; width: 49px; height: 49px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 600; font-size: 17px;
  background: hsl(var(--h) 45% 88%); color: hsl(var(--h) 45% 32%); letter-spacing: .02em; }
.wz-av.chico { width: 36px; height: 36px; font-size: 14px; }
/* Conversación */
.wz-chat { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--wz-fondo); position: relative; }
.wz-chat::before { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image: radial-gradient(rgba(0,0,0,.035) 1.2px, transparent 1.3px), radial-gradient(rgba(0,0,0,.025) 1px, transparent 1.1px); background-size: 22px 22px, 34px 34px; background-position: 0 0, 11px 17px; }
.wz-chat > * { position: relative; }
.wz-vacio { margin: auto; max-width: 440px; text-align: center; padding: 30px; color: var(--wz-texto-2); }
.wz-vacio h2 { color: var(--wz-texto); font-weight: 400; font-size: 26px; margin: 14px 0 10px; text-transform: none; letter-spacing: 0; }
.wz-vacio-ico { color: #25D366; }
.wz-cab { display: flex; align-items: center; gap: 12px; padding: 8px 12px 8px 16px; background: var(--wz-gris); border-bottom: 1px solid var(--wz-linea); min-height: 60px; }
.wz-cab .wz-av { width: 40px; height: 40px; font-size: 15px; }
.wz-cab-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.wz-cab-info b { font-weight: 500; font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wz-cab-info span { font-size: 13px; color: var(--wz-texto-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wz-cab-info a { color: var(--wz-verde-osc); }
.wz-cab-acc { display: flex; gap: 2px; }
.wz-volver { display: none; }
.wz-msjs { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 12px 6% 10px; display: flex; flex-direction: column; }
.wz-dia { text-align: center; margin: 12px 0 8px; position: sticky; top: 0; z-index: 2; }
.wz-dia span, .wz-sistema span { display: inline-block; background: #fff; color: #54656F; font-size: 12.5px; padding: 5px 12px; border-radius: 8px; box-shadow: 0 1px .5px rgba(11,20,26,.13); }
.wz-sistema { text-align: center; margin: 16px 0; }
.wz-sistema span { background: #FFEECD; color: #54656F; max-width: 460px; }
.wz-anteriores { text-align: center; margin: 4px 0 8px; }
.wz-anteriores button { border: 0; background: #fff; color: var(--wz-verde-osc); border-radius: 99px; padding: 6px 14px; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; box-shadow: 0 1px .5px rgba(11,20,26,.13); }
.wz-m { display: flex; flex-direction: column; margin-top: 2px; max-width: min(78%, 620px); }
.wz-m.primera { margin-top: 10px; }
.wz-m.in { align-self: flex-start; align-items: flex-start; }
.wz-m.out { align-self: flex-end; align-items: flex-end; }
.wz-b { position: relative; background: #fff; border-radius: 8px; padding: 6px 7px 8px 9px; box-shadow: 0 1px .5px rgba(11,20,26,.13); font-size: 14.2px; line-height: 1.38; overflow-wrap: anywhere; min-width: 70px; }
.wz-m.out .wz-b { background: var(--wz-salida); }
.wz-m.in.primera .wz-b { border-top-left-radius: 0; }
.wz-m.out.primera .wz-b { border-top-right-radius: 0; }
.wz-m.in.primera .wz-b::before, .wz-m.out.primera .wz-b::before { content: ''; position: absolute; top: 0; width: 8px; height: 13px; }
.wz-m.in.primera .wz-b::before { left: -8px; background: linear-gradient(to bottom left, #fff 50%, transparent 50%); }
.wz-m.out.primera .wz-b::before { right: -8px; background: linear-gradient(to bottom right, var(--wz-salida) 50%, transparent 50%); }
.wz-txt { white-space: normal; padding-right: 2px; }
.wz-txt a { color: #027EB5; }
.wz-txt.jumbo { font-size: 38px; line-height: 1.15; }
.wz-esp { visibility: hidden; display: inline-flex; align-items: center; gap: 3px; font-size: 11px; line-height: 11px; height: 11px; margin-left: 12px; vertical-align: baseline; white-space: nowrap; }
.wz-txt.jumbo .wz-esp { font-size: 11px; }
.wz-b:has(.wz-nota), .wz-b:has(> .wz-doc:last-of-type) { padding-bottom: 20px; }
.wz-meta { position: absolute; right: 7px; bottom: 3px; font-size: 11px; color: var(--wz-texto-2); display: inline-flex; align-items: center; gap: 3px; white-space: nowrap; }
.wz-quien { font-weight: 600; color: #6B7C85; }
.wz-quien::after { content: ' ·'; font-weight: 400; }
.wz-tk { color: #8696A0; flex: 0 0 auto; }
.wz-tk.leido { color: #53BDEB; }
.wz-tk.mal { color: #D93025; font-weight: 800; font-style: normal; padding: 0 2px; }
.wz-b:not(:has(.wz-txt)) { padding-bottom: 22px; }
.wz-b.solo-media { padding: 3px 3px 3px; }
.wz-b.solo-media .wz-meta { right: 9px; bottom: 7px; color: #fff; background: rgba(0,0,0,.35); border-radius: 8px; padding: 1px 6px; }
.wz-b.solo-media .wz-tk { color: #fff; }
.wz-img { display: block; border: 0; padding: 0; background: none; cursor: zoom-in; border-radius: 6px; overflow: hidden; margin-bottom: 3px; }
.wz-img img { display: block; max-width: min(330px, 62vw); max-height: 340px; object-fit: cover; border-radius: 6px; }
.wz-img.sticker img { max-width: 150px; background: transparent; }
.wz-b audio { display: block; width: 270px; max-width: 62vw; margin-bottom: 2px; }
.wz-b video { display: block; max-width: min(330px, 62vw); border-radius: 6px; margin-bottom: 3px; }
.wz-doc { display: flex; align-items: center; gap: 10px; background: rgba(0,0,0,.05); border-radius: 6px; padding: 10px 12px; color: inherit; text-decoration: none; margin-bottom: 3px; min-width: 220px; }
.wz-doc:hover { background: rgba(0,0,0,.08); text-decoration: none; }
.wz-doc-ico { flex: 0 0 auto; width: 32px; height: 38px; border-radius: 4px; background: #E3533F; color: #fff; font-size: 10px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.wz-doc-n { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13.5px; }
.wz-pl { font-size: 11.5px; color: var(--wz-texto-2); margin-bottom: 2px; }
.wz-nota { font-size: 12px; color: var(--wz-verde-osc); margin-top: 2px; }
.wz-sinarchivo { font-size: 13.5px; color: var(--wz-texto-2); font-style: italic; }
.wz-err { font-size: 12px; color: #B42318; margin: 3px 4px 0; max-width: 420px; }
.wz-err button { border: 0; background: none; color: var(--wz-verde-osc); font: inherit; font-weight: 600; padding: 0; cursor: pointer; text-decoration: underline; }
/* Escribir */
.wz-escribir { display: flex; align-items: flex-end; gap: 4px; padding: 8px 12px; background: var(--wz-gris); }
.wz-escribir[hidden], .wz-cerrada[hidden] { display: none !important; }
.wz-caja { flex: 1; min-width: 0; background: #fff; border-radius: 10px; padding: 3px 12px; }
.wz-caja textarea { width: 100%; border: 0; outline: none; box-shadow: none; resize: none; padding: 7px 0; font: inherit; font-size: 15px; line-height: 1.35; max-height: 140px; background: transparent; display: block; min-height: 0; }
.wz-enviar { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--wz-verde); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.wz-enviar:hover { background: var(--wz-verde-osc); }
.wz-escribir .wz-ico { margin-bottom: 2px; }
/* Micrófono: aparece en lugar de enviar cuando no hay texto; mientras graba, la barra roja reemplaza a todo */
.wz-escribir .wz-mic { display: none; }
.wz-escribir.vacio .wz-mic { display: inline-flex; }
.wz-escribir.vacio [data-wz-enviar] { display: none; }
.wz-escribir.grabando > :not(.wz-grabando) { display: none !important; }
.wz-grabando { flex: 1; display: flex; align-items: center; gap: 10px; min-height: 46px; }
.wz-grabando[hidden] { display: none; }
.wz-rec { width: 11px; height: 11px; border-radius: 50%; background: #E53935; animation: wz-rec 1s ease-in-out infinite; margin-left: 4px; }
@keyframes wz-rec { 50% { opacity: .25; } }
.wz-rec-t { font-variant-numeric: tabular-nums; font-size: 16px; color: var(--wz-texto); min-width: 42px; }
.wz-rec-ayuda { flex: 1; color: var(--wz-texto-2); font-size: 14px; }
.wz-cerrada { display: flex; align-items: center; gap: 12px; padding: 10px 16px; background: #FFF6E0; border-top: 1px solid #F3E2B3; font-size: 13.5px; color: #5E4B1F; }
.wz-cerrada span { flex: 1; }
.wz-sololectura { padding: 12px 16px; background: var(--wz-gris); color: var(--wz-texto-2); font-size: 13.5px; text-align: center; }
/* Elegir plantilla */
.wz-modal-fondo { position: fixed; inset: 0; z-index: 90; background: rgba(11,20,26,.45); display: flex; align-items: center; justify-content: center; padding: 16px; }
.wz-modal { background: #fff; border-radius: 14px; width: min(560px, 100%); max-height: min(720px, calc(100dvh - 32px)); display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.wz-modal header { display: flex; align-items: center; gap: 8px; padding: 12px 10px 4px 18px; }
.wz-modal header h3 { flex: 1; margin: 0; font-size: 17px; }
.wz-modal > p { margin: 0 18px 8px; }
.wz-modal footer { padding: 10px 18px 14px; border-top: 1px solid var(--wz-linea, #E9EDEF); font-size: 14px; }
.wz-pls { overflow-y: auto; padding: 4px 14px 14px; display: grid; gap: 10px; background: #EFEAE2; }
.wz-pl-op { text-align: left; border: 2px solid transparent; background: #fff; border-radius: 10px; padding: 10px 12px; font: inherit; cursor: pointer; display: flex; flex-direction: column; gap: 4px; box-shadow: 0 1px .5px rgba(11,20,26,.13); }
.wz-pl-op:hover:not(:disabled) { border-color: #00A884; }
.wz-pl-op:disabled { opacity: .55; cursor: not-allowed; }
.wz-pl-op.enviando { opacity: 1; border-color: #00A884; }
.wz-pl-op-n { font-weight: 700; font-size: 13px; color: #008069; }
.wz-pl-op-t { font-size: 14px; line-height: 1.4; color: #111B21; }
.wz-pl-op-f { font-size: 12px; color: #B42318; }
/* Foto en grande y avisos */
.wz-visor { position: fixed; inset: 0; z-index: 95; background: rgba(11,20,26,.92); display: flex; align-items: center; justify-content: center; padding: 50px 16px 16px; cursor: zoom-out; }
.wz-visor img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 4px; }
.wz-visor-acc { position: fixed; top: 10px; right: 12px; display: flex; gap: 10px; align-items: center; }
.wz-visor-acc a, .wz-visor-acc button { color: #fff; background: rgba(255,255,255,.12); border: 0; border-radius: 99px; padding: 7px 14px; font: inherit; font-size: 14px; cursor: pointer; text-decoration: none; }
.wz-toast { position: fixed; left: 50%; bottom: 30px; transform: translateX(-50%); z-index: 96; background: #111B21; color: #fff; padding: 10px 16px; border-radius: 10px; font-size: 14px; max-width: calc(100vw - 32px); box-shadow: 0 10px 30px rgba(0,0,0,.3); }
/* Emojis */
.emoji-panel { position: fixed; z-index: 92; background: #fff; border-radius: 12px; box-shadow: 0 12px 40px rgba(11,20,26,.28); display: flex; flex-direction: column; height: 320px; overflow: hidden; border: 1px solid #E9EDEF; }
.emoji-panel[hidden] { display: none; }
.emoji-tabs { display: flex; border-bottom: 1px solid #E9EDEF; padding: 4px 6px 0; gap: 2px; flex: 0 0 auto; }
.emoji-tabs button { flex: 1; border: 0; background: none; font-size: 19px; padding: 6px 0 7px; cursor: pointer; border-bottom: 3px solid transparent; filter: grayscale(.6); }
.emoji-tabs button.activo { border-bottom-color: #00A884; filter: none; }
.emoji-grilla { flex: 1; overflow-y: auto; display: grid; grid-template-columns: repeat(auto-fill, minmax(38px, 1fr)); padding: 6px; align-content: start; }
.emoji-grilla button { border: 0; background: none; font-size: 25px; line-height: 1; padding: 6px 0; border-radius: 8px; cursor: pointer; }
.emoji-grilla button:hover { background: #F0F2F5; }
/* Anotador y Ayuda en la bandeja: el Anotador se corre arriba a la derecha (no tapa el botón de enviar) */
@media (min-width: 901px) {
  body:has(.wz) .ayuda-flotante { display: none !important; }
  body:has(.wz) .anf:not(.abierto) { top: 25px !important; right: 30px !important; left: auto !important; bottom: auto !important; }
  body:has(.wz.con-chat) .wz-cab { padding-right: 190px; }
}
/* Celular: una sola columna (la lista o el chat), a pantalla completa */
@media (max-width: 900px) {
  .main:has(> .wz) { padding: 0 !important; }
  .wz { grid-template-columns: 1fr; height: 100dvh; border: 0; border-radius: 0; box-shadow: none; min-height: 0; }
  html.es-app .wz { height: calc(100dvh - env(safe-area-inset-bottom)); }
  .wz.con-chat .wz-lista { display: none; }
  .wz:not(.con-chat) .wz-chat { display: none; }
  .wz-lista-cab { padding: 8px 8px 4px 6px; }
  .wz-lista-cab .menu-movil { display: inline-flex; }
  .wz-volver { display: inline-flex; margin-left: -8px; }
  .wz-cab { padding: 6px 6px 6px 10px; gap: 8px; }
  .wz-msjs { padding: 10px 10px 8px; }
  .wz-m { max-width: 86%; }
  .wz-escribir { padding: 6px 6px calc(6px + env(safe-area-inset-bottom)); }
  .wz-escribir .wz-ico { width: 38px; height: 40px; }
  body:has(.wz) .anf, body:has(.wz) .ayuda-flotante, body:has(.wz) [data-ayuda-abrir].flotante, body:has(.wz) .pwa-cartel { display: none !important; }
  .wz-cerrada { flex-direction: column; align-items: stretch; text-align: left; padding-bottom: calc(10px + env(safe-area-inset-bottom)); }
}
.nav-badge.wa-nav { background: #25A35A; }

/* WhatsApp en la ficha del huésped */
.wa-ficha { margin-top: 18px; }
.wa-ficha-cab { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.wa-ficha-ico { width: 40px; height: 40px; border-radius: 50%; background: #25D366; color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.wa-ficha-tit { flex: 1; min-width: 200px; }
.wa-ficha-tit h2 { margin: 0; }
.btn.wa-ficha-abrir { background: #00A884; border-color: #00A884; color: #fff; }
.btn.wa-ficha-abrir:hover { background: #008069; border-color: #008069; }
.wa-ficha-cuerpo { margin-top: 14px; align-items: start; }
.wa-ficha-sub { font-size: 14px; margin: 0 0 8px; }
.wa-ficha-pls { border-radius: 10px; padding: 10px; max-height: 420px; }

/* ---------- Configurar WhatsApp y plantillas ---------- */
.wa-estado { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; margin-bottom: 18px; }
.wa-estado-item { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--borde); border-radius: var(--radio); padding: 14px 16px; box-shadow: var(--sombra); color: inherit; text-decoration: none; }
a.wa-estado-item:hover { border-color: #00A884; text-decoration: none; }
.wa-estado-item b { display: block; font-size: 13px; color: var(--texto-2); font-weight: 600; }
.wa-estado-item span:not(.wa-estado-ico) { display: block; font-size: 15px; font-weight: 600; }
.wa-estado-ico { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; background: #ECEAE6; color: var(--texto-2); }
.wa-estado-ico.ok { background: #DCF5E6; color: #008069; }
.wa-estado-ico.mal { background: var(--coral-suave); color: var(--coral-osc); }
.wa-estado-ico.alerta { background: #25D366; color: #fff; }
.wa-opcion { display: flex; gap: 10px; align-items: flex-start; border: 2px solid var(--borde); border-radius: 12px; padding: 12px 14px; margin-bottom: 10px; cursor: pointer; font-weight: 400; }
.wa-opcion.elegida, .wa-opcion:has(input:checked) { border-color: #00A884; background: #F2FBF7; }
.wa-opcion input { width: auto; margin-top: 3px; }
.wa-opcion:has(input:disabled) { opacity: .55; cursor: not-allowed; }
.wa-mini-burbuja { margin: 8px 0 10px; background: #D9FDD3; border-radius: 8px; padding: 8px 10px; font-size: 13px; line-height: 1.4; white-space: pre-line; max-height: 140px; overflow: auto; box-shadow: 0 1px .5px rgba(11,20,26,.13); }
.wa-detalles { margin: 10px 0; }
.wa-detalles summary { cursor: pointer; font-weight: 600; font-size: 14px; color: var(--texto-2); }
.wa-pl-filtros { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 16px; }
.wa-pl-filtros button { border: 1px solid var(--borde); background: #fff; border-radius: 99px; padding: 6px 13px; font: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer; color: var(--grafito); }
.wa-pl-filtros button span { color: var(--texto-2); font-weight: 500; margin-left: 2px; }
.wa-pl-filtros button.activo { background: var(--grafito); color: #fff; border-color: var(--grafito); }
.wa-pl-filtros button.activo span { color: #C9CED3; }
.wa-pl-filtros input { width: auto; flex: 1; min-width: 160px; max-width: 280px; margin-left: auto; }
.wa-pl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; align-items: start; }
.wa-pl-card { background: #fff; border: 1px solid var(--borde); border-radius: 14px; overflow: hidden; box-shadow: var(--sombra); display: flex; flex-direction: column; }
.wa-pl-card[hidden] { display: none; }
.wa-pl-card header { padding: 14px 16px 10px; }
.wa-pl-nombre { font-weight: 700; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13.5px; word-break: break-all; margin-bottom: 6px; }
.wa-pl-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.wa-pl-estado { display: inline-block; padding: 2px 9px; border-radius: 99px; font-size: 12px; font-weight: 700; background: #ECEAE6; color: var(--texto-2); }
.wa-pl-estado.ok { background: #DCF5E6; color: #008069; }
.wa-pl-estado.espera { background: var(--alerta-suave); color: var(--alerta); }
.wa-pl-estado.mal { background: var(--coral-suave); color: var(--coral-osc); }
.wa-pl-vista { background: #EFEAE2; padding: 14px 16px 16px; flex: 1; }
.wa-burbuja-pl { background: #fff; border-radius: 8px; border-top-left-radius: 0; padding: 4px 4px 6px; box-shadow: 0 1px .5px rgba(11,20,26,.13); max-width: 330px; font-size: 13.5px; line-height: 1.4; position: relative; overflow-wrap: anywhere; }
.wa-burbuja-pl.grande { max-width: none; font-size: 14.2px; }
.wa-burbuja-pl img { display: block; width: 100%; max-height: 180px; object-fit: cover; border-radius: 6px; margin-bottom: 4px; }
.wa-burbuja-pl img[hidden] { display: none; }
.wa-pl-titulo { font-weight: 700; padding: 2px 6px; }
.wa-pl-cuerpo { padding: 2px 6px; }
.wa-pl-pie { font-size: 12px; color: #667781; padding: 4px 6px 0; }
.wa-pl-hora { font-size: 11px; color: #667781; text-align: right; padding: 0 6px; }
.wa-pl-titulo[hidden], .wa-pl-pie[hidden] { display: none; }
.wa-pl-boton { background: #fff; color: #027EB5; text-align: center; font-size: 14px; font-weight: 500; border-radius: 8px; padding: 8px; margin-top: 3px; max-width: 330px; box-shadow: 0 1px .5px rgba(11,20,26,.13); }
.wa-var { display: inline-block; background: #E7F1FF; color: #1F4FA8; border-radius: 6px; padding: 0 5px; font-size: .92em; font-weight: 600; }
.wa-var.mal { background: var(--coral-suave); color: var(--coral-osc); }
.wa-var-ej { background: #FFF3C4; border-radius: 4px; padding: 0 2px; }
.wa-pl-card footer { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 10px 14px; border-top: 1px solid var(--borde); }
.wa-pl-usar { margin-left: auto; }
.wa-pl-usar select { width: auto; font-size: 13px; padding: 5px 8px; }
/* Editor de plantillas */
.wa-pf { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 20px; align-items: start; }
.wa-pf-sec { padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--borde); }
.wa-pf-sec h3 { margin: 0 0 10px; font-size: 15px; }
.wa-pf-sec h3 .mini { font-weight: 400; }
.wa-seg { display: inline-flex; border: 1px solid var(--borde); border-radius: 10px; overflow: hidden; margin-bottom: 10px; }
.wa-seg button { border: 0; background: #fff; padding: 7px 14px; font: inherit; font-size: 13.5px; cursor: pointer; color: var(--texto); }
.wa-seg button + button { border-left: 1px solid var(--borde); }
.wa-seg button.activo { background: var(--grafito); color: #fff; }
.wa-opcion-chica { display: flex; gap: 8px; align-items: center; font-weight: 400; margin: 4px 0; }
.wa-opcion-chica input { width: auto; margin: 0; }
.wa-pf-barra { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; margin-bottom: 8px; }
.wa-pf-herr { border: 1px solid var(--borde); background: #fff; border-radius: 8px; width: 34px; height: 32px; font-size: 16px; cursor: pointer; }
.wa-pf-sep { width: 1px; height: 22px; background: var(--borde); margin: 0 4px; }
.wa-pf-var { border: 1px solid #C9DCF7; background: #E7F1FF; color: #1F4FA8; border-radius: 99px; padding: 4px 10px; font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; }
.wa-pf-var:hover { background: #D6E7FF; }
.wa-pf-pie-texto { display: flex; justify-content: space-between; gap: 10px; margin-top: 4px; }
.wa-pf-boton { display: grid; grid-template-columns: 170px 1fr 1fr auto; gap: 6px; margin-bottom: 8px; align-items: center; }
.wa-pf-boton:has(> :nth-child(3):last-child) { grid-template-columns: 170px 1fr auto; }
.wa-pf-vista { position: sticky; top: 16px; }
.wa-tel { background: #EFEAE2; border-radius: 22px; overflow: hidden; border: 8px solid #111B21; box-shadow: 0 16px 40px rgba(0,0,0,.18); }
.wa-tel-cab { display: flex; align-items: center; gap: 10px; background: #008069; color: #fff; padding: 10px 12px; }
.wa-tel-cab .wa-av { width: 34px; height: 34px; border-radius: 50%; background: #fff; color: var(--coral); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; }
.wa-tel-cab div { display: flex; flex-direction: column; font-size: 14px; }
.wa-tel-cab span { font-size: 11.5px; opacity: .85; }
.wa-tel-fondo { padding: 16px 14px 22px; min-height: 380px; }
.wa-pf-ejemplo { display: flex; gap: 6px; align-items: center; justify-content: center; margin-top: 10px; font-weight: 400; }
.wa-pf-ejemplo input { width: auto; margin: 0; }
@media (max-width: 1100px) { .wa-pf { grid-template-columns: 1fr; } .wa-pf-vista { position: static; max-width: 420px; } }
@media (max-width: 600px) { .wa-pf-boton, .wa-pf-boton:has(> :nth-child(3):last-child) { grid-template-columns: 1fr auto; } .wa-pf-boton select { grid-column: 1 / -1; } }

/* Aviso de mensaje nuevo de WhatsApp (arriba, en cualquier pantalla) */
.wa-aviso { position: fixed; top: 14px; left: 50%; transform: translateX(-50%); z-index: 80; display: flex; align-items: center; gap: 6px; max-width: min(460px, calc(100vw - 24px));
  background: #1F7A3A; color: #fff; border-radius: 14px; padding: 10px 8px 10px 14px; box-shadow: 0 10px 30px rgba(0,0,0,.3); animation: wa-entra .25s ease-out, anf-parpadeo 1s steps(1, end) 6; }
.wa-aviso[hidden] { display: none; }
.wa-aviso a { display: flex; gap: 10px; align-items: center; color: #fff; text-decoration: none; min-width: 0; }
.wa-aviso-ico { font-size: 22px; }
.wa-aviso-txt { font-size: 13px; opacity: .9; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.wa-aviso-x { background: none; border: 0; color: #fff; font-size: 22px; line-height: 1; cursor: pointer; padding: 0 6px; align-self: flex-start; }
@keyframes wa-entra { from { opacity: 0; transform: translate(-50%, -12px); } to { opacity: 1; transform: translate(-50%, 0); } }
.nav-badge.wa-nav.alerta { animation: anf-parpadeo .7s steps(1, end) infinite; }
@keyframes wa-parpadeo { 0%, 100% { background: #25A35A; color: #fff; } 50% { background: #FFD43B; color: var(--grafito); } }
.nav-badge.wa-nav.alerta { animation: wa-parpadeo .7s steps(1, end) infinite; }
.wa-aviso { animation: wa-entra .25s ease-out, wa-parpadeo 1s steps(1, end) 6; }
.filtros input.buscar-ancho { flex: 1 1 320px; }

/* Página pública de política de privacidad */
.legal { max-width: 760px; margin: 0 auto; padding: 32px 20px 60px; line-height: 1.6; }
.legal-logo { width: 220px; max-width: 70%; display: block; margin: 0 0 24px; }
.legal h1 { font-size: 1.7rem; margin: 0 0 4px; }
.legal h2 { font-size: 1.15rem; margin: 28px 0 8px; }
.legal ul, .legal ol { padding-left: 22px; }
.legal li { margin-bottom: 4px; }
.legal hr { border: 0; border-top: 1px solid var(--borde); margin: 36px 0 0; }

/* ---------- Check-in online y mensajes automáticos ---------- */
.auto-regla { border: 1px solid var(--linea, #ECE6DD); border-radius: 14px; padding: 12px 14px; margin-bottom: 10px; background: #fff; }
.auto-regla.activa { border-color: #BFE0CD; background: #F6FBF8; }
.auto-cab { display: flex; gap: 12px; align-items: flex-start; }
.auto-pie { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-top: 8px; padding-left: 52px; }
.auto-cuando { font-size: 13px; color: var(--texto-2); display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.auto-cuando input[type=number] { width: 64px; padding: 4px 6px; }
.auto-cuando input[type=time] { width: auto; padding: 4px 6px; }
.auto-texto { white-space: pre-wrap; background: var(--marfil, #F7F4EF); border-radius: 10px; padding: 10px 12px; margin-top: 6px; color: var(--grafito); }
.auto-regla details { margin: 8px 0 0 52px; }
.auto-switch { position: relative; width: 40px; height: 24px; flex: none; margin-top: 2px; }
.auto-switch input { opacity: 0; width: 0; height: 0; position: absolute; }
.auto-switch span { position: absolute; inset: 0; background: #CFC8BE; border-radius: 99px; cursor: pointer; transition: background .15s; }
.auto-switch span::after { content: ''; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: transform .15s; box-shadow: 0 1px 2px rgba(0,0,0,.2); }
.auto-switch input:checked + span { background: #2E7D5B; }
.auto-switch input:checked + span::after { transform: translateX(16px); }
.auto-switch input:disabled + span { cursor: default; opacity: .6; }
.auto-switch input:focus-visible + span { outline: 3px solid var(--coral); outline-offset: 2px; }
.guias-faltan { display: flex; flex-wrap: wrap; gap: 6px; }
.guias-faltan .chip { text-decoration: none; }
.form-guia label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 10px; color: var(--grafito); }
.form-guia label input, .form-guia label textarea { display: block; width: 100%; margin-top: 4px; font-weight: 400; }
.form-guia label.check { display: flex; gap: 8px; align-items: center; font-weight: 400; }
.form-guia label.check input { width: auto; margin: 0; }
td.centro { text-align: center; }
.lista-scroll { max-height: 520px; overflow-y: auto; margin: 0 -4px; padding: 0 4px; }
.wz-pedidos { background: #FFF8E6; border-bottom: 1px solid #F0E2B6; padding: 8px 14px; display: flex; flex-direction: column; gap: 6px; }
.wz-pedido { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13.5px; }
.wz-pedido > span { flex: 1; min-width: 200px; }
.wz-pedido form { display: inline; margin: 0; }
.wz-libre { color: #2E7D5B; font-weight: 600; }
.wz-ocupado { color: #C2364F; font-weight: 600; }
.ck-claves-staff { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; background: var(--marfil, #F7F4EF); border-radius: 12px; padding: 10px 12px; margin-top: 12px; font-size: 13.5px; }
.ck-claves-staff span { flex: 1; min-width: 200px; }
.ck-claves-staff form { display: inline; margin: 0; }

/* ---------- Adjuntos: facturas, comprobantes y fotos de tareas ---------- */
.campo-adjuntos { margin: 6px 0 4px; padding: 12px 14px; border: 1.5px dashed #D9D3CA; border-radius: 12px; background: var(--marfil, #F7F4EF); }
.campo-adjuntos label { display: block; font-weight: 600; font-size: 13.5px; margin-bottom: 6px; }
.adjuntos-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 10px; }
.adjunto { position: relative; border: 1px solid #ECE6DD; border-radius: 12px; overflow: hidden; background: #fff; }
.adjunto a { display: block; color: inherit; text-decoration: none; }
.adjunto img { display: block; width: 100%; height: 96px; object-fit: cover; background: #F7F4EF; }
.adjunto-pdf { display: grid; place-items: center; height: 96px; background: #FBE7EA; color: #C2364F; font-weight: 800; font-size: 20px; letter-spacing: .05em; }
.adjunto-nombre { display: block; font-size: 11.5px; padding: 5px 7px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--texto-2); }
.adjunto form { position: absolute; top: 5px; right: 5px; margin: 0; }
.adjunto-x { width: 24px; height: 24px; border-radius: 50%; border: 0; background: rgba(37,43,49,.75); color: #fff; font-size: 15px; line-height: 1; cursor: pointer; }
.adjunto-x:hover { background: #C2364F; }
/* Panel de housekeeping (lo primero que ve quien limpia) */
.panel-hkdia { margin-bottom: 18px; border-top: 4px solid #FF9900; }
.panel-hkdia-cab { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.panel-hkdia-cab h2 { margin: 0; flex: 1; }
.panel-progreso.grande { display: block; height: 10px; margin: 0 0 12px; }
.hkdia-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 8px; }
.hkdia-fila { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid #ECE6DD; border-radius: 12px; background: #fff; }
.hkdia-fila.listo { background: #EAF5EF; border-color: #BFE0CD; }
.hkdia-fila.listo .hkdia-unidad { text-decoration: line-through; color: var(--texto-2); }
.hkdia-unidad { font-weight: 700; font-size: 15px; min-width: 120px; }
.hkdia-info { flex: 1; font-size: 13px; color: var(--texto-2); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hkdia-listo { display: flex; align-items: center; gap: 6px; font-weight: 600; font-size: 14px; cursor: pointer; white-space: nowrap; }
.hkdia-listo input { width: 22px; height: 22px; accent-color: #2E7D5B; }

/* Facturación */
.fac-items input, .fac-items select { width: 100%; min-width: 0; }
.fac-totales { margin: 10px 0 16px auto; max-width: 340px; font-variant-numeric: tabular-nums; }
.fac-totales div { display: flex; justify-content: space-between; padding: 3px 0; }
.fac-totales .fac-total { border-top: 1px solid var(--borde); margin-top: 4px; padding-top: 6px; font-weight: 800; font-size: 17px; }
.fac-hoja { background: #fff; border: 1px solid var(--borde); border-radius: var(--radio); padding: 24px; max-width: 900px; color: #111; position: relative; }
.fac-prueba { text-align: center; font-weight: 800; color: #B3261E; letter-spacing: .06em; border: 2px dashed #B3261E; padding: 6px; margin-bottom: 14px; }
.fac-cab { display: grid; grid-template-columns: 1fr auto 1fr; gap: 16px; border-bottom: 2px solid #111; padding-bottom: 14px; }
.fac-logo { height: 34px; margin-bottom: 6px; }
.fac-emisor p, .fac-datos p { margin: 4px 0; font-size: 13.5px; line-height: 1.45; }
.fac-letra { width: 64px; height: 70px; border: 2px solid #111; display: flex; flex-direction: column; align-items: center; justify-content: center; align-self: start; }
.fac-letra b { font-size: 38px; line-height: 1; }
.fac-letra span { font-size: 10px; }
.fac-datos h1 { font-size: 20px; margin: 0 0 6px; }
.fac-bloque { border-bottom: 1px solid #ccc; padding: 12px 0; }
.fac-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px 18px; font-size: 13.5px; }
.fac-grid span, .fac-obs span { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: #666; }
.fac-tabla { width: 100%; border-collapse: collapse; margin: 14px 0; font-size: 13.5px; table-layout: auto; }
.fac-tabla td:first-child { white-space: normal; overflow-wrap: anywhere; width: 100%; }
.fac-tabla th { text-align: left; font-size: 11px; text-transform: uppercase; color: #555; border-bottom: 1px solid #111; padding: 6px; }
.fac-tabla td { border-bottom: 1px solid #e5e5e5; padding: 7px 6px; vertical-align: top; }
.fac-tabla .num { text-align: right; white-space: nowrap; }
.fac-pie { display: grid; grid-template-columns: 1fr 340px; gap: 20px; }
.fac-obs p { margin: 4px 0; font-size: 13px; }
.fac-suma div { display: flex; justify-content: space-between; gap: 10px; padding: 3px 0; font-size: 13.5px; font-variant-numeric: tabular-nums; }
.fac-suma .fac-total { border-top: 2px solid #111; margin-top: 4px; padding-top: 6px; font-weight: 800; font-size: 18px; }
.fac-suma .mini { font-size: 11.5px; color: #444; }
.fac-cae { display: flex; gap: 16px; align-items: center; border-top: 1px solid #ccc; margin-top: 16px; padding-top: 14px; font-size: 13px; }
@media (max-width: 700px) { .fac-cab, .fac-pie { grid-template-columns: 1fr; } .fac-letra { order: -1; } }
@media print { .fac-hoja { border: 0; padding: 0; max-width: none; } }
.pasos-cert li { margin: 8px 0; line-height: 1.5; }

.hk-difiere { font-size: 11px; color: #8A1F33; background: #FDECEE; border-radius: 4px; padding: 1px 4px; margin-top: 2px; white-space: normal; }

/* Bloqueos de Cloudbeds en el calendario (estadías cargadas allá como bloqueo) */
.tl-barra.tl-bloqueo { background: repeating-linear-gradient(135deg, #D9D4CC, #D9D4CC 6px, #E6E1D9 6px, #E6E1D9 12px); color: #3D4349; cursor: default; }

.auditor-banda { background: #252B31; color: #fff; padding: 8px 14px; border-radius: 10px; margin-bottom: 14px; font-size: 14px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.auditor-banda .btn { background: #fff; }

/* ---------- Pestañas en la misma página (ficha de la reserva) ---------- */
.tab-panel[hidden] { display: none; }
.pila { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.pila > .card, .pila > .card + .card { margin-top: 0 !important; }
.sub-h { font-size: 12.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-2); margin: 20px 0 6px; }
@media print { .tab-panel[hidden] { display: block; } }
.wa-estado.tira-5 { grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); }
.wa-estado.tira-5 .wa-estado-item { padding: 12px 14px; gap: 10px; }
.wa-estado.tira-5 .wa-estado-ico { width: 32px; height: 32px; }
.wa-estado.tira-5 .wa-estado-item span:not(.wa-estado-ico) { font-size: 14px; }

/* Listados: los textos largos se cortan (se ven enteros al pasar el mouse) para que la tabla entre en la pantalla */
td.txt-corto { max-width: 190px; overflow: hidden; text-overflow: ellipsis; }
.tabla-wrap th, .tabla-wrap td { padding-left: 10px; padding-right: 10px; }
.tabla-wrap th { white-space: normal; letter-spacing: .03em; vertical-align: bottom; line-height: 1.3; }
.devolver-mp summary { cursor: pointer; color: var(--coral-osc); }
.devolver-form { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; margin-top: 8px; }
.devolver-form label { display: flex; flex-direction: column; gap: 3px; }
.devolver-form input { width: 160px; }
.limpieza-form { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.limpieza-form select { width: auto; }
.importes-form { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; }
.importes-form label { display: flex; flex-direction: column; gap: 3px; }
.importes-form input { width: 120px; }
.importes-mas { font-size: 18px; font-weight: 700; color: var(--texto-2); padding-bottom: 8px; }
.importes-total { display: flex; flex-direction: column; gap: 3px; padding-bottom: 6px; min-width: 110px; }
.importes-total b { font-size: 16px; }

/* ---------- Asistente IA en el panel de Ayuda ---------- */
.ayuda-modos { display: flex; gap: 6px; padding: 0 16px 10px; }
.ayuda-modos button { flex: 1; padding: 7px 10px; border-radius: 99px; border: 1px solid var(--borde); background: var(--blanco); font: inherit; font-weight: 600; font-size: 13.5px; cursor: pointer; }
.ayuda-modos button.activo { background: var(--grafito); border-color: var(--grafito); color: #fff; }
.asis { display: flex; flex-direction: column; flex: 1; min-height: 0; padding: 0 16px 12px; gap: 8px; }
.asis[hidden] { display: none; }
.asis-msgs { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; padding: 4px 2px; }
.asis-msg { padding: 9px 12px; border-radius: 12px; font-size: 14px; line-height: 1.5; max-width: 92%; }
.asis-msg p { margin: 0 0 6px; } .asis-msg p:last-child { margin-bottom: 0; }
.asis-msg ul { margin: 4px 0; padding-left: 18px; }
.asis-msg.user { align-self: flex-end; background: var(--grafito); color: #fff; white-space: pre-wrap; }
.asis-msg.assistant { align-self: flex-start; background: #F3F0EB; }
.asis-msg.esperando { color: var(--texto-2); font-style: italic; }
.asis-msg.error { align-self: flex-start; background: var(--coral-suave); color: var(--coral-osc); }
.asis-form { display: flex; gap: 6px; align-items: flex-end; }
.asis-form textarea { flex: 1; resize: none; font: inherit; font-size: 14px; }
.asis-form.esperando button { opacity: .5; pointer-events: none; }
.asis-pie { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 12px; color: var(--texto-2); }
.ayuda-cuerpo[hidden], .ayuda-buscar[hidden], .ayuda-modos button[hidden] { display: none; }

/* ---------- Visor de fotos, PDF, videos y audios ---------- */
.visor { position: fixed; inset: 0; z-index: 2000; background: rgba(20, 24, 28, .94); display: flex; align-items: center; justify-content: center; }
.visor[hidden] { display: none; }
body.visor-abierto { overflow: hidden; }
.visor-barra { position: absolute; top: 0; left: 0; right: 0; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 14px; color: #fff; font-size: 14px; background: linear-gradient(rgba(0,0,0,.45), transparent); }
.visor-titulo { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.visor-acc { display: flex; gap: 8px; align-items: center; flex-shrink: 0; }
.visor-acc a, .visor-cerrar { color: #fff; background: rgba(255,255,255,.14); border: 0; border-radius: 99px; padding: 7px 12px; font: inherit; font-size: 13px; text-decoration: none; cursor: pointer; }
.visor-acc a:hover, .visor-cerrar:hover { background: rgba(255,255,255,.26); }
.visor-cont { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; padding: 56px 64px 24px; box-sizing: border-box; }
.visor-cont img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 6px; box-shadow: 0 10px 40px rgba(0,0,0,.4); }
.visor-cont iframe { width: min(1000px, 100%); height: 100%; border: 0; border-radius: 6px; background: #fff; }
.visor-cont video { max-width: 100%; max-height: 100%; }
.visor-cargando, .visor-nada { color: #ddd; text-align: center; line-height: 1.6; }
.visor-nada a { color: #fff; }
.visor-flecha { position: absolute; top: 50%; transform: translateY(-50%); width: 46px; height: 46px; border-radius: 50%; border: 0; background: rgba(255,255,255,.14); color: #fff; font-size: 28px; line-height: 1; cursor: pointer; }
.visor-flecha:hover { background: rgba(255,255,255,.26); }
.visor-flecha.ant { left: 10px; } .visor-flecha.sig { right: 10px; }
.visor-flecha[hidden] { display: none; }
@media (max-width: 700px) { .visor-cont { padding: 52px 8px 12px; } .visor-flecha { top: auto; bottom: 14px; transform: none; } .visor-acc .visor-nueva { display: none; } }
.fotos-sel-botones { display: flex; gap: 8px; flex-wrap: wrap; }
.fotos-sel-botones .btn { cursor: pointer; }
.fotos-sel-lista { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.fotos-sel-lista:empty { display: none; }
.fotos-sel-item { position: relative; width: 72px; height: 72px; border-radius: 8px; overflow: hidden; background: #ECEAE6; display: flex; align-items: center; justify-content: center; }
.fotos-sel-item img { width: 100%; height: 100%; object-fit: cover; }
.fotos-sel-item button { position: absolute; top: 3px; right: 3px; width: 22px; height: 22px; border-radius: 50%; border: 0; background: rgba(0,0,0,.6); color: #fff; font-size: 12px; cursor: pointer; line-height: 1; }
