﻿@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Source+Sans+Pro:wght@400;600;700&display=swap');

:root{
  --bg-dark:#4A4A49;
  --sidebar:#4A4A49;
  --accent-primary:#AF6114;
  --accent-secondary:#757578;
  --danger:#C43E1C;
  --warning:#F28D1B;
  --success:#7A9C4C;
  --info:#4A4A49;
  --text-primary:#4A4A49;
  --text-secondary:#5f6164;
  --text-muted:#757578;
  --bg-light:#F9E8DC;
  --card-bg:#ffffff;
  --border-color:#E7E7E7;
  --glass:rgba(255,255,255,0.04);
  --sidebar-bg:#424242;
  --sidebar-active:#C8741A;
}

*{box-sizing:border-box;margin:0;padding:0}

html,body{
  height:100%;
  font-family:'Inter','Source Sans Pro',Segoe UI,Tahoma,Geneva,Verdana,sans-serif;
  background:#F0F0F0;
  color:var(--text-primary);
}

/* Layout Principal */
.app{display:flex;min-height:100vh;background:#F0F0F0}

.sidebar{
  width:230px;
  background:var(--sidebar-bg);
  color:#fff;
  padding:16px 10px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  box-shadow:2px 0 12px rgba(0,0,0,0.18);
  overflow-y:auto;
  transition:width 0.2s ease;
  flex-shrink:0;
}
/* Submódulos del módulo activo siempre visibles (táctil/tablet, sin depender de hover) */
.sidebar:not(.collapsed) .submenu.open{display:flex !important;}

.sidebar.collapsed{
  width:80px;
}

.sidebar-toggle{
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.1);
  color:#fff;
  border-radius:6px;
  padding:8px 10px;
  margin-bottom:10px;
  cursor:pointer;
  align-self:flex-end;
}

.brand{
  font-weight:800;
  color:#fff;
  font-size:16px;
  line-height:1.2;
  padding:12px 8px;
  border-bottom:2px solid var(--accent-primary);
  margin-bottom:16px;
  text-align:center;
}

.brand span{
  display:block;
  color:#fff;
  font-size:14px;
  margin-top:4px;
}

.menu{
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:1;
}

.menu-group{display:flex;flex-direction:column;}

.menu-item{
  background:transparent;
  border:0;
  border-left:3px solid transparent;
  color:#e6e6e6;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  text-align:center;
  padding:12px 4px;
  border-radius:8px;
  cursor:pointer;
  font-weight:600;
  font-size:11px;
  letter-spacing:.2px;
  transition:background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.menu-item:hover{
  background:rgba(255,255,255,0.10);
  color:#fff;
}

.menu-item.active{
  background:rgba(200,116,26,0.18);
  color:#fff;
  border-left-color:var(--sidebar-active);
}

.menu-item svg{
  width:22px;
  height:22px;
  stroke:#fff;
  stroke-width:2;
}

.menu-label{display:block;line-height:1.25;}

.submenu{
  display:none;
  flex-direction:column;
  gap:4px;
  padding:4px 0 4px 8px;
  margin-left:8px;
  border-left:1px solid rgba(255,255,255,0.12);
}

/* Los submÃ³dulos del mÃ³dulo activo se muestran siempre (funciona en tÃ¡ctil/tablet, sin depender de hover) */
.sidebar:not(.collapsed) .submenu.open{display:flex;}
/* En desktop, ademÃ¡s se previsualizan al pasar el cursor sobre cualquier mÃ³dulo */
.sidebar:not(.collapsed) .menu-group:hover .submenu{display:flex;}

/* BotÃ³n hamburguesa (solo mÃ³vil) y fondo del menÃº deslizante */
.mobile-menu-btn{display:none;background:none;border:none;color:#0b1720;cursor:pointer;padding:6px;margin-right:6px;}
.mobile-menu-btn svg{width:26px;height:26px;}
.sidebar-backdrop{display:none;}

/* ===== Visibilidad / Login ===== */
.hidden{display:none !important;}
.login-screen{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2b2b2b,#424242);padding:20px;}

/* ============ NEXUS OP360 — Pantalla de acceso (identidad del producto) ============ */
.nx-login{position:fixed;inset:0;z-index:2000;display:grid;grid-template-columns:1.12fr .88fr;
  background:#0e1d30;color:#e8eef6;font-family:'Inter','Source Sans Pro',system-ui,sans-serif;overflow:auto}
#login-screen.nx-login.hidden{display:none!important}
.nx-login *{box-sizing:border-box}

/* ---- Panel izquierdo (hero) ---- */
.nx-hero{position:relative;overflow:hidden;padding:46px 54px;display:flex;flex-direction:column;justify-content:space-between;gap:26px;
  background:
    radial-gradient(130% 70% at 88% 6%, rgba(238,108,26,.10), transparent 52%),
    linear-gradient(180deg,#091220 0%,#0d1b2e 34%,#182136 60%,#2c2733 76%,#3d2a20 100%)}
/* Trama de puntos naranja (esquina superior derecha, como el banner) */
.nx-hero::before{content:"";position:absolute;top:0;right:0;width:360px;height:320px;pointer-events:none;opacity:.55;z-index:0;
  background:radial-gradient(circle, rgba(238,108,26,.6) 1.3px, transparent 1.7px);background-size:19px 19px;
  -webkit-mask-image:linear-gradient(220deg,#000,transparent 68%);mask-image:linear-gradient(220deg,#000,transparent 68%)}
/* Escena al atardecer: resplandor del horizonte + cordillera en capas (sin puntos) */
.nx-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:54%;pointer-events:none;z-index:0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 540' preserveAspectRatio='xMidYMax slice'><defs><linearGradient id='g' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='%23f0863a' stop-opacity='0'/><stop offset='.62' stop-color='%23e8600a' stop-opacity='.28'/><stop offset='1' stop-color='%23e8600a' stop-opacity='0'/></linearGradient></defs><rect x='0' y='140' width='1200' height='240' fill='url(%23g)'/><path d='M0 540 L0 252 L160 176 L340 268 L520 186 L700 280 L900 196 L1080 268 L1200 224 L1200 540Z' fill='%23243a52' opacity='.5'/><path d='M0 540 L0 338 L200 240 L430 352 L650 260 L900 358 L1090 282 L1200 338 L1200 540Z' fill='%230b1422'/></svg>") bottom/cover no-repeat}
.nx-hero-glow{position:absolute;left:50%;bottom:-40px;transform:translateX(-50%);width:820px;height:300px;pointer-events:none;z-index:0;
  background:radial-gradient(60% 100% at 50% 100%, rgba(238,108,26,.34), rgba(238,108,26,0) 68%);filter:blur(4px)}
.nx-hero>*{position:relative;z-index:1}

.nx-logo{display:flex;align-items:center;gap:10px}
.nx-logo-word{font-size:30px;font-weight:800;letter-spacing:1.5px;color:#fff;line-height:1}
.nx-logo-word span{color:#ee6c1a}
.nx-logo-badge{background:#ee6c1a;color:#fff;font-size:12px;font-weight:800;letter-spacing:1px;padding:4px 9px;border-radius:7px;line-height:1}
.nx-logo-tag{margin:9px 0 0;font-size:11px;letter-spacing:.34em;color:#9fb2c8;font-weight:600}

.nx-hero-title{margin:0;font-size:clamp(30px,3.4vw,50px);font-weight:800;line-height:1.06;letter-spacing:-.01em;text-wrap:balance}
.nx-hero-title span{color:#ee6c1a}
.nx-hero-lead{margin:16px 0 0;font-size:16px;color:#b9c8da;max-width:34ch;min-height:24px;transition:opacity .5s ease}
.nx-hero-mid{margin:6px 0}

.nx-features{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:30px}
.nx-feature{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:13px;padding:15px 13px;display:flex;flex-direction:column;gap:8px}
.nx-feature i{width:28px;height:28px;color:#F5811E;stroke-width:2.15}
.nx-feature b{font-size:13px;color:#fff;font-weight:700;line-height:1.2}
.nx-feature span{font-size:11px;color:#93a6bb;line-height:1.35}

.nx-hero-bottom{display:flex;flex-direction:column;gap:14px}
.nx-pills{display:flex;flex-wrap:wrap;gap:22px}
.nx-pills span{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#a9bacd}
.nx-pills i{width:15px;height:15px;color:#F5811E;stroke-width:2.15}
.nx-hero-foot{margin:0;font-size:14px;color:#7f93a9}
.nx-hero-foot b{color:#ee6c1a;font-weight:700}

/* ---- Panel derecho (tarjeta de acceso) ---- */
.nx-panel{display:flex;align-items:center;justify-content:center;padding:32px;background:#0e1d30}
.nx-card{width:100%;max-width:420px;background:#fff;border-radius:22px;padding:34px 34px 26px;
  box-shadow:0 30px 80px rgba(0,0,0,.45);display:flex;flex-direction:column;color:#1e293b}
.nx-card-logo{display:flex;align-items:center;justify-content:center;gap:9px;margin-bottom:3px}
.nx-card-logo .nx-logo-word{font-size:27px;color:#16263c}
.nx-card-logo .nx-logo-word span{color:#ee6c1a}
.nx-card-tag{text-align:center;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#94a3b8;font-weight:600;margin:0 0 22px}

.nx-field{position:relative;display:flex;align-items:center;background:#eef1f6;border:1.5px solid #eef1f6;border-radius:11px;margin-bottom:13px;transition:border-color .15s,background .15s}
.nx-field:focus-within{background:#fff;border-color:#ee6c1a;box-shadow:0 0 0 3px rgba(238,108,26,.12)}
.nx-field>i:first-child{width:19px;height:19px;color:#94a3b8;margin-left:14px;flex:none}
.nx-field:focus-within>i:first-child{color:#ee6c1a}
.nx-field input,.nx-field select{flex:1;border:none;background:transparent;padding:13px 12px;font-size:15px;color:#1e293b;outline:none;font-family:inherit}
.nx-field select{appearance:none;-webkit-appearance:none;cursor:pointer;color:#475569}
.nx-field input::placeholder{color:#9aa7b6}
.nx-eye{background:none;border:none;cursor:pointer;padding:0 14px;color:#94a3b8;display:flex;align-items:center}
.nx-eye:hover{color:#ee6c1a}
.nx-eye i{width:19px;height:19px}
.nx-field-sel .nx-caret{width:17px;height:17px;color:#94a3b8;margin-right:13px;pointer-events:none;flex:none}
.nx-camp-label{font-size:12.5px;color:#64748b;font-weight:600;margin:5px 0 7px}
.nx-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.nx-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 18px;flex-wrap:wrap}
.nx-remember{display:flex;align-items:center;gap:7px;font-size:12.5px;color:#475569;cursor:pointer;user-select:none}
.nx-remember input{width:15px;height:15px;accent-color:#ee6c1a;cursor:pointer}
.nx-forgot{font-size:12.5px;color:#ee6c1a;font-weight:600;text-decoration:none}
.nx-forgot:hover{text-decoration:underline}

.nx-error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;border-radius:9px;padding:9px 11px;font-size:12.5px;margin-bottom:12px}
.nx-btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:14px;border:none;border-radius:11px;cursor:pointer;
  background:linear-gradient(180deg,#f07d2b,#e8600a);color:#fff;font-size:15.5px;font-weight:700;letter-spacing:.02em;font-family:inherit;
  box-shadow:0 10px 24px rgba(232,96,10,.32);transition:transform .12s,box-shadow .12s,filter .12s}
.nx-btn:hover{filter:brightness(1.04);box-shadow:0 12px 30px rgba(232,96,10,.42)}
.nx-btn:active{transform:translateY(1px)}
.nx-btn i{width:18px;height:18px}
.nx-btn:disabled{opacity:.7;cursor:default}
.nx-card-foot{text-align:center;font-size:10.5px;color:#94a3b8;letter-spacing:.04em;margin-top:20px;padding-top:15px;border-top:1px solid #eef1f5;line-height:1.7}
.nx-card-foot span{color:#cbd5e1}

@media (max-width:980px){
  .nx-login{grid-template-columns:1fr}
  .nx-hero{display:none}
  .nx-panel{min-height:100vh;background:linear-gradient(135deg,#0b1626,#173250)}
}
@media (prefers-reduced-motion:reduce){.nx-hero-lead{transition:none}}
.login-card{background:#fff;border-radius:14px;padding:28px 26px;width:100%;max-width:360px;box-shadow:0 18px 50px rgba(0,0,0,.4);display:flex;flex-direction:column;}
.login-brand{font-size:30px;font-weight:800;letter-spacing:1px;color:#2b2b2b;text-align:center;}
.login-brand span{color:#C8741A;}
.login-sub{text-align:center;color:#757578;font-size:12px;margin:2px 0 18px;}
.login-card label{font-size:12px;color:#424242;margin:8px 0 3px;font-weight:600;}
.login-card input{padding:10px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;}
.login-error{background:#fde8e8;color:#b91c1c;border-radius:8px;padding:8px;font-size:12px;margin-top:10px;}
.login-foot{text-align:center;color:#9ca3af;font-size:11px;margin-top:16px;}

/* ===== Entornos App (Mucama / Usuario) ===== */
.env-root{min-height:100vh;background:var(--bg-light,#f3f4f6);}
.app-header{position:sticky;top:0;z-index:10;background:#424242;color:#fff;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;}
.app-header .ah-brand{font-weight:800;}
.app-header .ah-brand span{color:#C8741A;}
.app-header .ah-user{font-size:12px;opacity:.9;}
.mobile-tabs{display:flex;gap:4px;overflow-x:auto;background:#fff;padding:6px;border-bottom:1px solid #e5e7eb;position:sticky;top:48px;z-index:9;}
.mtab{flex:1 0 auto;padding:10px 14px;border:none;background:#f3f4f6;border-radius:8px;font-size:13px;cursor:pointer;white-space:nowrap;}
.mtab.active{background:#C8741A;color:#fff;font-weight:700;}
.mobile-content{padding:14px;}

/* App Mucama / Terreno */
.muc-subbar{background:#fff;padding:8px 14px;font-size:12px;color:#424242;border-bottom:1px solid #e5e7eb;font-weight:600;display:flex;align-items:center;gap:10px;}
.muc-back{display:inline-flex;align-items:center;gap:2px;border:1px solid #d1d5db;background:#f9fafb;border-radius:8px;padding:5px 10px;font-size:12px;font-weight:700;color:#C8741A;cursor:pointer;}
.muc-back svg{width:15px;height:15px;}
.muc-progress{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:12px;margin-bottom:12px;font-weight:700;text-align:center;}
.muc-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:12px;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);}
.muc-card.censado{border-left:5px solid #16a34a;}
.muc-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.muc-num{font-size:20px;font-weight:800;color:#2b2b2b;}
.muc-estado{font-size:12px;color:#757578;}
.muc-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.muc-est{padding:12px 4px;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb;font-size:12px;cursor:pointer;font-weight:600;}
.muc-est.sel{background:#C8741A;color:#fff;border-color:#C8741A;}
.muc-jor{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;}
.muc-j{flex:1;padding:10px;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb;cursor:pointer;font-weight:600;}
.muc-j.sel{background:#2563eb;color:#fff;border-color:#2563eb;}
.muc-dev{width:100%;margin-top:10px;padding:11px;border:1px solid #C8741A;border-radius:8px;background:#fff;color:#C8741A;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;}
.muc-dev svg{width:16px;height:16px;}
.muc-seg{display:flex;gap:6px;}
.muc-seg-b{flex:1;padding:10px;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb;cursor:pointer;font-weight:600;font-size:13px;}
.muc-seg-b.sel{background:#C8741A;color:#fff;border-color:#C8741A;}
.muc-chips{display:flex;flex-wrap:wrap;gap:6px;}
.muc-chip{padding:9px 12px;border:1px solid #d1d5db;border-radius:20px;background:#f9fafb;cursor:pointer;font-size:13px;}
.muc-chip.sel{background:#C8741A;color:#fff;border-color:#C8741A;}
.muc-qty{display:flex;align-items:center;gap:8px;}
.muc-qty button{width:32px;height:32px;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb;font-size:16px;font-weight:700;cursor:pointer;}
.muc-qty span{min-width:22px;text-align:center;font-weight:700;}
.muc-qty .ins-del{color:#dc2626;border-color:#fca5a5;}
.ins-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 8px;border-bottom:1px solid #eee;}
.ins-row.sel{background:#fff7ed;border-radius:8px;}
.ins-name{flex:1;font-size:13px;}

/* Barra de progreso (avance de censo) */
.progress-wrap{ background:#ececec; border-radius:8px; height:24px; overflow:hidden; border:1px solid var(--border-color); }
.progress-bar{ background:var(--accent-primary); color:#fff; height:100%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; min-width:34px; transition:width .35s ease; }

/* Iconos Lucide dentro de pestaÃ±as y botones */
.tab-button svg{ width:15px; height:15px; vertical-align:-3px; margin-right:5px; stroke-width:2; }
.btn svg{ width:15px; height:15px; vertical-align:-3px; margin-right:4px; stroke-width:2; }
.censo-dev svg{ width:14px; height:14px; }

/* Checklist de desviaciÃ³n (selecciÃ³n por Ã­tems) */
.chk-grid{ display:flex; flex-wrap:wrap; gap:6px; }
.chk{ display:inline-flex; align-items:center; gap:5px; font-size:12px; background:#fff; border:1px solid var(--border-color); border-radius:6px; padding:5px 9px; cursor:pointer; }
.chk input{ margin:0; }

/* Selector de rol/perfil en el header */
.rol-select{ padding:6px 10px; border-radius:6px; border:1px solid var(--border-color); background:#fff; color:var(--accent-secondary); font-size:12px; font-weight:600; margin-right:10px; }

/* Censo en terreno (mucamas) â€” grilla de habitaciones tipo app */
.censo-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; }
.censo-card{ background:#fff; border:1px solid var(--border-color); border-radius:10px; padding:12px; }
.censo-card.censado{ border-color:var(--success); background:#f3f7ee; }
.censo-num{ font-weight:700; font-size:15px; margin-bottom:6px; color:var(--accent-primary); }
.censo-card select{ width:100%; padding:8px; border-radius:6px; border:1px solid var(--border-color); font-size:13px; }

/* ImpresiÃ³n / Exportar PDF: informe ejecutivo limpio (sin navegaciÃ³n) */
@media print {
  @page { size: A4 landscape; margin: 8mm; }
  .sidebar, .header, .footer, .action-buttons, .no-print, .search-box, .sidebar-backdrop, #sidebar, .mobile-tabs { display:none !important; }
  .app, .main, .content, #app-op360 { display:block !important; margin:0 !important; padding:0 !important; height:auto !important; max-height:none !important; width:100% !important; overflow:visible !important; }
  body { background:#fff !important; -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  .panel, table, tr, .kpi-card { break-inside:avoid; page-break-inside:avoid; }
  .panel { box-shadow:none !important; border:1px solid #ddd !important; margin-bottom:8px !important; }
  /* filas de paneles lado a lado -> apilar a ancho completo para que no se corten */
  [style*="flex-wrap:wrap"] { display:block !important; }
  [style*="flex-wrap:wrap"] > .panel { width:100% !important; min-width:0 !important; margin-bottom:8px !important; }
  /* tablas: ocupar el ancho y reducir para que entren todas las columnas */
  .table-container { overflow:visible !important; box-shadow:none !important; }
  table { width:100% !important; font-size:9px !important; table-layout:fixed; word-break:break-word; }
  th, td { padding:3px 4px !important; }
  canvas { max-height:200px !important; }
  .report-title-block h2 { color:#4A4A49 !important; }
}

.submenu-item{
  background:transparent;
  border:0;
  color:#9cb2b0;
  text-align:left;
  padding:6px 8px;
  border-radius:4px;
  cursor:pointer;
  font-size:11px;
  font-weight:600;
}

.submenu-item:hover,
.submenu-item.active{
  background:rgba(242,141,27,0.16);
  color:#fff;
}

.sidebar.collapsed .menu-label,
.sidebar.collapsed .submenu{
  display:none;
}

.sidebar-footer{
  margin-top:auto;
  text-align:center;
  color:rgba(255,255,255,0.3);
  font-size:11px;
  padding:12px 8px;
  border-top:1px solid rgba(255,255,255,0.1);
}

.main{
  flex:1;
  display:flex;
  flex-direction:column;
}

/* Header */
.header{
  height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 24px;
  background:#fff;
  border-bottom:1px solid var(--border-color);
  box-shadow:0 2px 8px rgba(75,75,73,0.06);
}

.header-left h1{
  font-size:22px;
  font-weight:800;
  color:var(--text-primary);
  margin:0 0 4px 0;
}

.breadcrumbs{
  font-size:12px;
  color:var(--text-muted);
}

.header-right{
  display:flex;
  align-items:center;
  gap:16px;
}

.user-info{
  background:var(--bg-light);
  padding:8px 12px;
  border-radius:6px;
  font-weight:600;
  font-size:12px;
  color:var(--text-primary);
  text-align:right;
}

.timestamp{
  display:block;
  font-size:11px;
  color:var(--text-muted);
}

/* Content Area */
.content{
  padding:24px;
  overflow-y:auto;
  flex:1;
  background:#F0F0F0;
}

.footer{
  padding:14px 24px;
  text-align:center;
  font-size:11px;
  color:var(--text-muted);
  background:#fff;
  border-top:1px solid var(--border-color);
}

.availability-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;color:#fff;font-size:11px;font-weight:700;min-width:78px}
.availability-badge.available{background:var(--success)}
.availability-badge.full{background:var(--danger)}
.availability-badge.blocked{background:var(--warning)}
.availability-badge.maintenance{background:var(--text-muted)}
.availability-badge.reserved{background:var(--info)}
.room-details-card{background:var(--bg-light);border:1px solid var(--border-color);padding:12px;border-radius:8px;margin-top:12px;display:grid;gap:8px}
.room-detail-title{font-weight:700;color:var(--text-primary)}
.room-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:8px}
.room-detail-grid strong{display:block;font-size:12px;color:var(--text-secondary)}
.room-detail-grid span{display:block;font-size:13px;color:var(--text-primary);margin-top:2px}

/* KPI Cards */
.kpi-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-bottom:24px;
}

.kpi-card{
  background:var(--card-bg);
  padding:18px;
  border-radius:10px;
  box-shadow:0 2px 8px rgba(75,75,73,0.06);
  border-left:4px solid var(--accent-primary);
  transition:transform 0.2s,box-shadow 0.2s;
}

.kpi-card:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(0,0,0,0.1);
}

.kpi-card.danger{
  border-left-color:var(--danger);
}

.kpi-card.warning{
  border-left-color:var(--warning);
}

.kpi-card.success{
  border-left-color:var(--success);
}

.kpi-label{
  font-size:11px;
  color:var(--text-muted);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.5px;
}

.kpi-value{
  font-size:32px;
  font-weight:800;
  color:var(--text-primary);
  margin-top:8px;
}

.kpi-change{
  font-size:12px;
  color:var(--success);
  margin-top:4px;
}

/* Tablas */
.section-title{
  font-size:14px;
  font-weight:700;
  color:var(--text-primary);
  margin:20px 0 12px 0;
  text-transform:uppercase;
  letter-spacing:0.5px;
}

.table-container{
  background:var(--card-bg);
  border-radius:8px;
  box-shadow:0 2px 8px rgba(0,0,0,0.06);
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}

table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}

thead{
  background:var(--sidebar);
  border-bottom:2px solid var(--border-color);
}

th{
  padding:12px 14px;
  text-align:left;
  font-weight:700;
  color:#fff;
  text-transform:uppercase;
  font-size:11px;
  letter-spacing:0.5px;
}

td{
  padding:12px 14px;
  border-bottom:1px solid var(--border-color);
  color:var(--text-secondary);
}

tbody tr:hover{
  background:#F9E8DC;
}

tbody tr:last-child td{
  border-bottom:none;
}

/* Botones */
.btn{
  display:inline-block;
  padding:8px 14px;
  border:0;
  border-radius:6px;
  cursor:pointer;
  font-weight:600;
  font-size:12px;
  transition:all 0.2s ease;
  text-transform:uppercase;
  letter-spacing:0.5px;
}

.recepcion-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:20px;
}

.recepcion-header .module-title{
  margin:6px 0 0;
  font-size:22px;
  color:var(--text-primary);
}

.action-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}

.filter-panel{
  display:grid;
  grid-template-columns:repeat(4,minmax(180px,1fr));
  gap:14px;
  margin-bottom:24px;
}

.filter-panel .filter-group{
  background:var(--card-bg);
  padding:14px;
  border-radius:10px;
  border:1px solid var(--border-color);
}

.filter-panel label{
  display:block;
  margin-bottom:8px;
  font-size:11px;
  color:var(--text-muted);
  font-weight:700;
  text-transform:uppercase;
}

.filter-panel .filter-search{
  grid-column: span 2;
}

.panel-grid{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:20px;
}

.room-summary-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(140px,1fr));
  gap:14px;
  margin-bottom:24px;
}

.summary-card{
  background:var(--bg-light);
  border-radius:12px;
  padding:16px;
  border:1px solid rgba(13,179,158,0.12);
  display:flex;
  flex-direction:column;
  gap:6px;
}

.summary-label{
  font-size:11px;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:0.08em;
}

.summary-card strong{
  font-size:24px;
  color:var(--text-primary);
}

.table-modern table{
  width:100%;
  border-collapse:separate;
  border-spacing:0 10px;
}

.table-modern thead th{
  background:transparent;
  color:var(--text-secondary);
  font-weight:700;
  text-transform:uppercase;
  font-size:11px;
  letter-spacing:0.08em;
  padding:14px 10px;
  text-align:left;
}

.table-modern tbody tr{
  background:var(--card-bg);
  border-radius:12px;
  box-shadow:0 2px 8px rgba(0,0,0,0.04);
}

.table-modern tbody tr td{
  padding:14px 10px;
  border:none;
  color:var(--text-secondary);
}

.table-modern tbody tr td:first-child{
  border-top-left-radius:12px;
  border-bottom-left-radius:12px;
}

.table-modern tbody tr td:last-child{
  border-top-right-radius:12px;
  border-bottom-right-radius:12px;
}

.table-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.availability-panel{
  margin-top:14px;
}

.availability-list{
  display:grid;
  gap:10px;
  background:var(--bg-light);
  border-radius:12px;
  padding:14px;
  border:1px solid var(--border-color);
}

.availability-list div{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  color:var(--text-primary);
  font-size:13px;
}

.modal-root.hidden{
  display:none;
}

.modal-root{
  position:fixed;
  inset:0;
  z-index:1200;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}

.modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(11,21,32,0.6);
  backdrop-filter:blur(2px);
}

.modal-card{
  position:relative;
  background:var(--card-bg);
  border-radius:16px;
  max-width:640px;
  width:100%;
  padding:0;
  z-index:1;
  box-shadow:0 16px 40px rgba(0,0,0,0.18);
  overflow:hidden;
}

.modal-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:18px 20px;
  border-bottom:1px solid var(--border-color);
  background:rgba(245,248,250,0.96);
}

.modal-header h3{
  margin:0;
  font-size:18px;
  color:var(--text-primary);
}

.modal-close{
  border:none;
  background:transparent;
  font-size:28px;
  line-height:1;
  cursor:pointer;
  color:var(--text-secondary);
}

.modal-form{
  padding:20px;
  display:grid;
  gap:16px;
}

.modal-form .form-row{
  grid-template-columns:repeat(2,minmax(160px,1fr));
}

.modal-form .form-group input,
.modal-form .form-group select{
  background:var(--bg-light);
}

.modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:12px;
  padding-top:10px;
}

.modal-error{
  margin:0 20px 14px;
  padding:12px 14px;
  background:rgba(255,71,87,0.12);
  color:var(--danger);
  border-radius:10px;
  font-size:13px;
  font-weight:700;
}

.modal-error.hidden{
  display:none;
}

.availability-alert{
  margin:0 20px 14px;
  padding:12px 14px;
  background:rgba(255,165,2,0.12);
  color:var(--warning);
  border-radius:10px;
  font-size:13px;
  font-weight:700;
  border-left:4px solid var(--warning);
}

.availability-alert.hidden{
  display:none;
}

.modal-body{
  padding:20px;
}

.modal-body .availability-list{
  grid-template-columns:1fr 1fr;
}

@media (max-width:1024px){
  .room-summary-grid{
    grid-template-columns:repeat(2,minmax(140px,1fr));
  }
}

.panel{
  background:var(--card-bg);
  border-radius:12px;
  box-shadow:0 2px 12px rgba(0,0,0,0.05);
  padding:18px;
}

.panel-title{
  font-size:13px;
  font-weight:800;
  color:var(--text-primary);
  margin-bottom:14px;
  text-transform:uppercase;
  letter-spacing:0.08em;
}

.rooms-status{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:18px;
}

.room-card{
  background:var(--bg-light);
  border-radius:10px;
  padding:14px;
  border:1px solid rgba(13,179,158,0.12);
}

.room-label{
  font-weight:800;
  margin-bottom:8px;
  color:var(--text-primary);
}

.room-detail{
  margin-top:10px;
  font-size:12px;
  color:var(--text-muted);
}

.status-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
}

.status-chip.available{background:rgba(46,204,113,0.12);color:var(--success);}
.status-chip.reserved{background:rgba(255,165,2,0.12);color:var(--warning);}
.status-chip.occupied{background:rgba(255,71,87,0.12);color:var(--danger);}
.status-chip.cleaning{background:rgba(52,152,219,0.12);color:var(--info);}

.btn-primary{
  background:var(--accent-primary);
  color:#fff;
}

.btn-primary:hover{
  background:#7B3800;
  box-shadow:0 4px 8px rgba(175,97,20,0.24);
}

.btn-secondary{
  background:var(--accent-secondary);
  color:#fff;
}

.btn-secondary:hover{
  background:#4A4A49;
  box-shadow:0 4px 8px rgba(75,75,73,0.18);
}

.btn-danger{
  background:var(--danger);
  color:#fff;
}

.btn-danger:hover{
  background:#ff3838;
}

.btn-small{
  padding:6px 10px;
  font-size:11px;
}

.btn-group{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:16px 0;
}

/* Badges */
.badge{
  display:inline-block;
  padding:4px 8px;
  border-radius:4px;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
}

.badge-success{
  background:rgba(46,204,113,0.1);
  color:var(--success);
}

.badge-warning{
  background:rgba(255,165,2,0.1);
  color:var(--warning);
}

.badge-danger{
  background:rgba(255,71,87,0.1);
  color:var(--danger);
}

.badge-secondary{
  background:#f3f4f6;
  color:#4b5563;
}

.badge-info{
  background:rgba(52,152,219,0.1);
  color:var(--info);
}

/* Responsive */
@media (max-width:1200px){
  .kpi-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .sidebar{
    width:200px;
  }
}

@media (max-width:768px){
  .app{
    flex-direction:column;
  }
  .app{
    flex-direction:column;
  }
  .mobile-menu-btn{
    display:inline-flex;
    align-items:center;
  }
  /* MenÃº lateral deslizante (off-canvas) */
  .sidebar{
    position:fixed;
    top:0;
    left:0;
    height:100%;
    width:268px;
    max-height:none;
    padding:16px 12px;
    flex-direction:column;
    overflow-y:auto;
    overflow-x:hidden;
    z-index:3000;
    transform:translateX(-100%);
    transition:transform .25s ease;
    box-shadow:2px 0 14px rgba(0,0,0,0.3);
  }
  .sidebar.mobile-open{
    transform:translateX(0) !important;
  }
  .brand{
    display:block;
  }
  .sidebar-footer{
    display:block;
  }
  .menu{
    flex-direction:column;
    gap:4px;
    width:100%;
  }
  .menu-item{
    padding:12px 10px;
    font-size:14px;
    white-space:nowrap;
  }
  /* En tÃ¡ctil no hay hover: el mÃ³dulo activo muestra sus submÃ³dulos */
  .sidebar:not(.collapsed) .menu-group.active .submenu{
    display:flex;
  }
  .menu-group.active .submenu-item{
    font-size:13px;
    padding:10px 12px;
  }
  /* El botÃ³n colapsar del sidebar no aplica en mÃ³vil */
  .sidebar-toggle{
    display:none;
  }
  /* Fondo oscuro cuando el menÃº estÃ¡ abierto */
  .sidebar-backdrop.show{
    display:block;
    position:fixed;
    inset:0;
    background:rgba(0,0,0,0.45);
    z-index:2900;
  }
  .brand{
    display:none;
  }
  .sidebar-footer{
    display:none;
  }
  .header{
    padding:0 16px;
    height:60px;
  }
  .content{
    padding:16px;
  }
  .kpi-grid{
    grid-template-columns:repeat(2,1fr);
    gap:12px;
  }
  .kpi-card{
    padding:12px;
  }
  .kpi-value{
    font-size:24px;
  }
}

@media (max-width:640px){
  .kpi-grid{
    grid-template-columns:1fr;
  }
  .header-left h1{
    font-size:18px;
  }
  table{
    font-size:11px;
  }
  th,td{
    padding:8px 10px;
  }
  .btn-group{
    flex-direction:column;
  }
  .btn{
    width:100%;
  }
}

/* Tabs */
.tabs-container{
  display:flex;
  gap:0;
  border-bottom:2px solid var(--border-color);
  margin-bottom:20px;
  overflow-x:auto;
}

.tab-button{
  background:transparent;
  border:none;
  padding:12px 16px;
  cursor:pointer;
  font-weight:600;
  font-size:13px;
  color:var(--text-muted);
  border-bottom:3px solid transparent;
  transition:all 0.2s ease;
}

.tab-button:hover{
  color:var(--text-primary);
  background:#f9fbfc;
}

.tab-button.active{
  color:var(--accent-primary);
  border-bottom-color:var(--accent-primary);
}

.tab-content{
  display:none;
}

.tab-content.active{
  display:block;
}

/* Formularios */
.form-group{
  margin-bottom:16px;
}

.form-row{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
}

.form-group label{
  display:block;
  font-weight:600;
  font-size:12px;
  color:var(--text-primary);
  margin-bottom:6px;
  text-transform:uppercase;
  letter-spacing:0.5px;
}

.form-group input,
.form-group select,
.form-group textarea{
  width:100%;
  padding:10px 12px;
  border:1px solid var(--border-color);
  border-radius:6px;
  font-size:12px;
  font-family:inherit;
  transition:border 0.2s ease;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
  outline:none;
  border-color:var(--accent-primary);
  box-shadow:0 0 0 3px rgba(13,179,158,0.1);
}

.form-group textarea{
  resize:vertical;
  min-height:80px;
}

/* Search Box */
.search-box{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:16px;
}

.search-box input{
  flex:1;
  padding:10px 12px;
  border:1px solid var(--border-color);
  border-radius:6px;
  font-size:12px;
}

/* Admin Panel */
.admin-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:20px;
}

.admin-title{
  font-size:16px;
  font-weight:800;
  color:var(--text-primary);
}

.admin-actions{
  display:flex;
  gap:8px;
}

.filter-group{
  display:flex;
  gap:8px;
  margin-bottom:16px;
  flex-wrap:wrap;
}

.filter-group select{
  padding:8px 10px;
  border:1px solid var(--border-color);
  border-radius:6px;
  font-size:11px;
  background:var(--card-bg);
}

/* Modal */
.modal{
  display:none;
  position:fixed;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background:rgba(0,0,0,0.5);
  z-index:1000;
  align-items:center;
  justify-content:center;
}

.modal.show{
  display:flex;
}

.modal-content{
  background:var(--card-bg);
  border-radius:8px;
  padding:24px;
  max-width:600px;
  width:90%;
  max-height:80vh;
  overflow-y:auto;
  box-shadow:0 8px 24px rgba(0,0,0,0.15);
}

.modal-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:16px;
  border-bottom:1px solid var(--border-color);
  padding-bottom:12px;
}

.modal-header h2{
  margin:0;
  font-size:16px;
}

.modal-close{
  background:none;
  border:none;
  font-size:20px;
  cursor:pointer;
  color:var(--text-muted);
}

.modal-footer{
  display:flex;
  gap:8px;
  justify-content:flex-end;
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid var(--border-color);
}

/* Sidebar Admin */
.sidebar-admin{
  background:var(--card-bg);
  border-radius:8px;
  padding:16px;
  margin-bottom:16px;
  box-shadow:0 2px 8px rgba(0,0,0,0.06);
}

.sidebar-admin-item{
  padding:10px;
  border-left:3px solid transparent;
  cursor:pointer;
  font-weight:600;
  font-size:12px;
  color:var(--text-secondary);
  margin-bottom:4px;
  transition:all 0.2s ease;
}

.sidebar-admin-item:hover,
.sidebar-admin-item.active{
  border-left-color:var(--accent-primary);
  color:var(--accent-primary);
  background:rgba(13,179,158,0.06);
}

/* Stats Grid */
.stats-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-bottom:16px;
}

/* Nuevos estilos para mÃ³dulo RecepciÃ³n */
.table-recepcion thead th{
  background:#f5f8fa;
  font-weight:700;
  font-size:11px;
  color:var(--text-primary);
  padding:12px 10px;
  text-transform:uppercase;
  letter-spacing:0.5px;
}

.table-recepcion tbody td{
  padding:12px 10px;
  vertical-align:middle;
}

.table-recepcion tbody tr:hover{
  background:#f9fbfc;
}

.room-highlight{
  font-weight:800;
  color:var(--accent-primary);
  font-size:13px;
}

.btn-tiny{
  padding:4px 6px;
  font-size:10px;
  margin:0 2px;
}

.insumos-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(200px,1fr));
  gap:16px;
  margin-bottom:24px;
}

.insumo-card{
  background:var(--card-bg);
  border-radius:12px;
  padding:16px;
  border:1px solid var(--border-color);
  box-shadow:0 2px 8px rgba(0,0,0,0.04);
  transition:all 0.2s ease;
}

.insumo-card:hover{
  box-shadow:0 4px 12px rgba(0,0,0,0.08);
  transform:translateY(-2px);
}

.insumo-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:12px;
  gap:8px;
}

.insumo-header strong{
  flex:1;
  font-size:13px;
  color:var(--text-primary);
}

.insumo-bars{
  height:6px;
  background:#e0e8e6;
  border-radius:3px;
  overflow:hidden;
  margin-bottom:12px;
}

.progress-bar{
  height:100%;
  background:linear-gradient(90deg,var(--accent-primary),var(--success));
  width:60%;
  border-radius:3px;
}

.insumo-details{
  font-size:12px;
  color:var(--text-secondary);
}

.insumo-details div{
  margin-bottom:4px;
}

.insumo-details strong{
  color:var(--text-primary);
  font-weight:700;
}

.text-muted{
  color:var(--text-muted);
}

.room-meta{
  font-size:11px;
  color:var(--text-muted);
  margin-top:4px;
}

/* Responsive Insumos */
@media (max-width:1400px){
  .insumos-grid{
    grid-template-columns:repeat(3,minmax(180px,1fr));
  }
}

@media (max-width:1024px){
  .insumos-grid{
    grid-template-columns:repeat(2,minmax(160px,1fr));
  }
  .panel-grid{
    grid-template-columns:1fr;
  }
  .filter-panel{
    grid-template-columns:repeat(2,minmax(160px,1fr));
  }
}

@media (max-width:768px){
  .insumos-grid{
    grid-template-columns:1fr;
  }
  .room-summary-grid{
    grid-template-columns:repeat(2,minmax(120px,1fr));
  }
  .rooms-status{
    grid-template-columns:1fr;
  }
}

.stat-box{
  background:var(--card-bg);
  padding:12px;
  border-radius:8px;
  box-shadow:0 2px 8px rgba(0,0,0,0.06);
  text-align:center;
}

.stat-label{
  font-size:11px;
  color:var(--text-muted);
  font-weight:700;
}

.stat-value{
  font-size:24px;
  font-weight:800;
  color:var(--accent-primary);
  margin-top:4px;
}

/* Utility */
.text-muted{color:var(--text-muted)}
.text-secondary{color:var(--text-secondary)}
.text-center{text-align:center}
.mt-3{margin-top:16px}
.gap-2{gap:8px}
.gap-3{gap:16px}

/* ===== Navegación agrupada Recepción (#7) ===== */
.rcp-nav{display:flex;flex-wrap:wrap;gap:16px;margin:6px 0 16px;padding:12px;background:#fff;border:1px solid #ececec;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.rcp-nav-group{display:flex;flex-direction:column;gap:6px;min-width:160px}
.rcp-nav-title{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9a9a9a;padding-left:2px}
.rcp-nav-btns{display:flex;flex-wrap:wrap;gap:6px}
.rcp-nav .tab-button{border:1px solid #e3e3e3;border-radius:8px;padding:7px 12px;font-size:12.5px;background:#fafafa;color:#4A4A49;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.rcp-nav .tab-button:hover{background:#f0f0f0}
.rcp-nav .tab-button.active{background:#C8741A;border-color:#C8741A;color:#fff;font-weight:600}
.rcp-nav .tab-button i{width:14px;height:14px}
@media(max-width:720px){.rcp-nav-group{min-width:100%}}

/* ===== Layout 2 columnas Recepción (#7b) ===== */
.rcp-layout{display:flex;gap:16px;align-items:flex-start}
.rcp-side{flex:0 0 210px;position:sticky;top:12px}
.rcp-main{flex:1;min-width:0}
.rcp-layout .rcp-nav{flex-direction:column;gap:14px}
.rcp-layout .rcp-nav-group{min-width:100%}
@media(max-width:900px){.rcp-layout{flex-direction:column}.rcp-side{flex:1 1 auto;position:static;width:100%}.rcp-layout .rcp-nav{flex-direction:row;flex-wrap:wrap}}

/* ===== Recepción v3: tabs horizontales + KPIs secundarios (ancho completo) ===== */
.rcp-kpi-sec{display:flex;flex-wrap:wrap;gap:10px;margin:2px 0 14px}
.rcp-kpi-chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid #ececec;border-radius:20px;padding:6px 14px;font-size:13px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.rcp-kpi-chip .rcp-kpi-lbl{color:#8a8a8a}
.rcp-kpi-chip strong{color:#4A4A49}
.rcp-tabs{display:flex;gap:2px;overflow-x:auto;border-bottom:2px solid #ececec;margin:4px 0 16px;padding-bottom:0;-webkit-overflow-scrolling:touch}
.rcp-tabs::-webkit-scrollbar{height:6px}
.rcp-tabs::-webkit-scrollbar-thumb{background:#d8d8d8;border-radius:3px}
.rcp-tabs .tab-button{flex:0 0 auto;background:transparent;border:0;border-bottom:2px solid transparent;margin-bottom:-2px;border-radius:0;padding:10px 16px;font-size:13px;color:#6b6b6b;white-space:nowrap;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.rcp-tabs .tab-button:hover{color:#C8741A;background:#faf6f1}
.rcp-tabs .tab-button.active{color:#C8741A;border-bottom-color:#C8741A;font-weight:600}
.rcp-tabs .tab-button i{width:15px;height:15px}

/* ===== Menú lateral agrupado Recepción ===== */
.submenu-cat{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#7f9490;padding:10px 10px 4px;margin-top:4px}
.submenu-cat:first-child{margin-top:0}

/* ===== Check-in rediseño (boceto) ===== */
.rcp-checkin{display:flex;gap:16px;align-items:flex-start}
.rcp-ci-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}
.rcp-ci-side{flex:0 0 300px;display:flex;flex-direction:column;gap:16px}
.rcp-form-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}
.rcp-fs{margin-bottom:14px}
.rcp-fs-title{font-size:13px;font-weight:700;color:#4A4A49;border-bottom:1px solid #eee;padding-bottom:6px;margin-bottom:10px}
.rcp-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.rcp-fields label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#6b6b6b}
.rcp-fields input,.rcp-fields select{padding:8px;border:1px solid #d1d5db;border-radius:8px;font-size:13px;color:#333}
.rcp-room-sel{margin-top:12px;background:#fff8f0;border:1px solid #f0d9bf;border-radius:10px;padding:12px;font-size:12px;min-height:60px}
.rcp-services{display:flex;gap:24px;flex-wrap:wrap}
.rcp-service{display:flex;align-items:center;gap:10px;font-size:13px;background:#fafafa;border:1px solid #eee;border-radius:10px;padding:10px 14px}
.rcp-service select{padding:6px;border:1px solid #d1d5db;border-radius:6px}
.rcp-service i{width:18px;height:18px;color:#C8741A}
.rcp-side-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f2f2f2;font-size:13px}
.rcp-side-row:last-child{border-bottom:0}
.rcp-alert{display:flex;gap:10px;align-items:flex-start;background:#fdf3f3;border:1px solid #f3d6d6;border-radius:10px;padding:10px}
.rcp-alert i{width:18px;height:18px;flex:none;margin-top:2px}
.rcp-quick{display:flex;flex-direction:column;gap:8px}
.rcp-quick .btn{justify-content:flex-start}
.rcp-rooms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.rcp-room-card{border:1px solid #ececec;border-radius:10px;padding:10px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.rcp-room-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
@media(max-width:1000px){.rcp-checkin{flex-direction:column}.rcp-ci-side{flex:1 1 auto;width:100%}.rcp-form-grid{grid-template-columns:1fr}.rcp-fields{grid-template-columns:1fr}}

/* ===== KPIs compactos Recepción (una fila, con icono) ===== */
.rcp-kpis{display:grid;grid-template-columns:repeat(8,1fr);gap:12px;margin:6px 0 16px}
.rcp-kpi{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #ececec;border-radius:12px;padding:12px 14px;box-shadow:0 1px 3px rgba(0,0,0,.04);border-top:3px solid #C8741A}
.rcp-kpi-ic{width:34px;height:34px;flex:none;border-radius:9px;display:flex;align-items:center;justify-content:center;background:#fbf1e6;color:#C8741A}
.rcp-kpi-ic i{width:18px;height:18px}
.rcp-kpi-l{font-size:10px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#8a8a8a;line-height:1.2}
.rcp-kpi-v{font-size:20px;font-weight:800;color:#3a3a3a;line-height:1.1}
.rcp-kpi-success{border-top-color:#16a34a}.rcp-kpi-success .rcp-kpi-ic{background:#e9f7ef;color:#16a34a}
.rcp-kpi-warning{border-top-color:#d97706}.rcp-kpi-warning .rcp-kpi-ic{background:#fdf3e6;color:#d97706}
.rcp-kpi-danger{border-top-color:#dc2626}.rcp-kpi-danger .rcp-kpi-ic{background:#fdeaea;color:#dc2626}
@media(max-width:1300px){.rcp-kpis{grid-template-columns:repeat(4,1fr)}}
@media(max-width:700px){.rcp-kpis{grid-template-columns:repeat(2,1fr)}}

/* ===== Check-in: servicios (radio + stepper) y leyenda ===== */
.rcp-service{display:flex;align-items:center;gap:14px;background:#fafafa;border:1px solid #eee;border-radius:10px;padding:12px 16px;flex:1;min-width:280px}
.rcp-service>i{width:20px;height:20px;color:#C8741A;flex:none}
.rcp-svc-body{display:flex;flex-direction:column;gap:6px;flex:1}
.rcp-svc-body>span{font-size:13px;font-weight:600;color:#3a3a3a}
.rcp-radio{display:flex;gap:14px;font-size:13px;color:#555}
.rcp-radio label{display:inline-flex;align-items:center;gap:4px;cursor:pointer}
.rcp-radio input{accent-color:#C8741A}
.rcp-step{display:flex;flex-direction:column;align-items:center;gap:4px}
.rcp-step-l{font-size:11px;color:#8a8a8a}
.rcp-stepper{display:flex;align-items:center;border:1px solid #d1d5db;border-radius:8px;overflow:hidden}
.rcp-stepper button{border:0;background:#f3f4f6;width:30px;height:30px;font-size:16px;cursor:pointer;color:#4A4A49}
.rcp-stepper button:hover{background:#e6e7e9}
.rcp-stepper input{width:42px;text-align:center;border:0;border-left:1px solid #e5e7eb;border-right:1px solid #e5e7eb;height:30px;font-size:14px}
.rcp-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:#666}
.rcp-legend span{display:inline-flex;align-items:center;gap:6px}
.rcp-legend .dot{width:9px;height:9px;border-radius:50%;display:inline-block}

/* ===== Centro de Notificaciones ===== */
.notif-wrap{position:relative;display:inline-flex}
.notif-bell{position:relative;background:transparent;border:1px solid #e3e3e3;border-radius:10px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#4A4A49}
.notif-bell:hover{background:#f3f4f6}
.notif-bell i{width:18px;height:18px}
.notif-count{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 4px;background:#dc2626;color:#fff;border-radius:9px;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #fff}
.notif-panel{position:absolute;top:46px;right:0;width:340px;max-height:420px;overflow-y:auto;background:#fff;border:1px solid #e6e6e6;border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.14);z-index:60}
.notif-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #eee}
.notif-item{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;border-bottom:1px solid #f3f3f3}
.notif-item:hover{background:#fafafa}
.notif-item i{width:17px;height:17px;flex:none;margin-top:2px}
.notif-t{font-size:13px;color:#333;line-height:1.3}
.notif-s{font-size:11px;color:#9a9a9a;margin-top:2px}
.notif-empty{padding:22px 14px;text-align:center;color:#9a9a9a;font-size:13px}

/* ===== Isotipo NEXUS OP360 (cerro) en todas las marcas ===== */
.brand,.login-brand,.ah-brand{display:inline-flex;align-items:center;gap:9px}
.brand::before,.login-brand::before,.ah-brand::before{content:'';flex:none;width:30px;height:30px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><rect width='32' height='32' rx='7' fill='%232f3a3a'/><polygon points='5,25 13,11 17.5,19 21,14 27,25' fill='%23eef2f3'/><polygon points='21,14 27,25 20.5,25 17.7,18.4' fill='%23C8741A'/></svg>") center/contain no-repeat}
.login-brand::before{width:38px;height:38px}

/* ===== Logo NEXUS OP360 v2: cerro + texto apilado ===== */
.brand::before,.login-brand::before,.ah-brand::before{width:36px;height:30px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 34'><polygon points='2,31 13,10 21,31' fill='%23e0912f'/><polygon points='13,31 26,6 39,31' fill='%23C8741A'/><polygon points='26,6 31,15 25,31 20,31' fill='%23f2b562'/></svg>") center/contain no-repeat}
.login-brand::before{width:46px;height:38px}
.brand-txt{display:flex;flex-direction:column;line-height:1;gap:3px}
.brand-txt em{font-style:normal}
.brand .brand-txt{font-size:20px;font-weight:800;color:#fff}
.brand .brand-txt em{font-size:10px;font-weight:600;letter-spacing:.22em;color:#e0912f}
.login-brand{justify-content:center}
.login-brand .brand-txt{font-size:28px;font-weight:800}
.login-brand .brand-txt em{font-size:12px;font-weight:600;letter-spacing:.2em;color:#C8741A}
.ah-brand .brand-txt{font-size:16px;font-weight:800}
.ah-brand .brand-txt em{font-size:9px;font-weight:600;letter-spacing:.2em;color:#e0912f}

/* ===== Logo NEXUS OP360 v3 (definitivo) ===== */
.brand,.login-brand,.ah-brand{display:inline-flex!important;flex-direction:row!important;align-items:center!important;gap:11px!important}
.brand-txt{display:flex!important;flex-direction:column!important;align-items:flex-start!important;line-height:1.02!important;gap:2px!important}
.brand-txt b{display:block!important;font-style:normal!important;font-weight:800!important}
.brand-txt em{display:block!important;font-style:normal!important;font-weight:600!important;letter-spacing:.24em!important;color:#e6942e!important}
.brand .brand-txt b{font-size:19px!important;color:#fff!important}
.brand .brand-txt em{font-size:10px!important}
.login-brand .brand-txt b{font-size:28px!important}
.login-brand .brand-txt em{font-size:12px!important;color:#C8741A!important}
.ah-brand .brand-txt b{font-size:16px!important}
.ah-brand .brand-txt em{font-size:9px!important}
/* Logo oficial: se usa el archivo assets/logo-nexus.svg (no dibujar) */
.brand::before,.login-brand::before,.ah-brand::before{content:none!important;background:none!important}
.brand-img{display:block;height:40px;width:auto;max-width:100%}
.login-brand .brand-img{height:56px}
.ah-brand .brand-img{height:30px}
/* Sidebar: logo completo expandido, solo isotipo colapsado */
.brand .brand-ico{display:none;height:34px}
.sidebar.collapsed .brand{justify-content:center}
.sidebar.collapsed .brand .brand-full{display:none}
.sidebar.collapsed .brand .brand-ico{display:block}

/* ===== Check-out V2 ===== */
.rcp-step-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#C8741A;color:#fff;font-size:12px;font-weight:700;margin-right:8px}
.co-info{display:grid;grid-template-columns:1fr 1.2fr;gap:18px}
.co-pax-card{background:#fafafa;border:1px solid #eee;border-radius:12px;padding:16px;text-align:center}
.co-avatar{width:60px;height:60px;border-radius:50%;background:#eef0f2;display:flex;align-items:center;justify-content:center;margin:0 auto 8px;color:#9aa6ad}
.co-avatar i{width:30px;height:30px}
.co-pax-name{font-size:18px;font-weight:800;color:#333}
.co-pax-rut{font-size:12px;color:#888;margin-bottom:12px}
.co-pax-rows{text-align:left;display:flex;flex-direction:column}
.co-pax-rows>div{display:flex;align-items:center;gap:8px;font-size:12px;border-top:1px solid #f0f0f0;padding:8px 0}
.co-pax-rows i{width:15px;height:15px;color:#C8741A;flex:none}
.co-pax-rows .text-muted{flex:1}
.co-pax-rows b{font-weight:700;color:#333}
.co-detail{display:flex;flex-direction:column;justify-content:center}
.co-drow{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #f2f2f2;font-size:13px}
.co-drow b{font-weight:700;color:#333}
.co-note{margin-top:14px;background:#eef4fb;border:1px solid #d3e3f5;color:#3a5b82;border-radius:8px;padding:10px 12px;font-size:12px;display:flex;align-items:center;gap:8px}
.co-note i{width:16px;height:16px;flex:none}
.co-acc{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid #f3f3f3;font-size:13px}
.co-acc i{width:16px;height:16px;flex:none}
@media(max-width:1000px){.co-info{grid-template-columns:1fr}}

/* Disponibilidad - vista tarjetas */
.disp-group{margin-bottom:18px}
.disp-group-h{display:flex;justify-content:space-between;align-items:center;padding:6px 2px 10px;border-bottom:1px solid #eee;margin-bottom:12px}
.disp-group-t{font-size:15px;font-weight:800;color:#1E1E1E}
.disp-group-c{font-size:13px;color:#6B7280}
.disp-group-c b{color:#16a34a}
.disp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.disp-card{text-align:left;background:#fff;border:1px solid #e6e6e6;border-left:4px solid #d1d5db;border-radius:12px;padding:12px 14px;cursor:pointer;transition:box-shadow .15s,transform .1s;display:flex;flex-direction:column;gap:7px;font:inherit}
.disp-card:hover{box-shadow:0 4px 14px rgba(0,0,0,.08);transform:translateY(-1px)}
.disp-card-h{display:flex;justify-content:space-between;align-items:center}
.disp-room{font-size:16px;font-weight:800;color:#1E1E1E}
.disp-card-meta{font-size:12px;color:#6B7280}
.disp-card-beds{display:flex;gap:14px;font-size:12px;color:#4b5563}
.disp-card-beds i{width:14px;height:14px;vertical-align:-2px}
.disp-card-occ{font-size:12px;color:#374151;display:flex;align-items:center;gap:6px}
.disp-card-occ i{width:14px;height:14px;flex:none;color:#6B7280}
.disp-badge{font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap}
.disp-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:1px}
/* colores sobrios por estado */
.disp-av{border-left-color:#16a34a}.disp-av .disp-badge,.disp-badge.disp-av{background:#dcfce7;color:#15803d}.disp-dot.disp-av{background:#16a34a}
.disp-oc{border-left-color:#f87171}.disp-oc .disp-badge,.disp-badge.disp-oc{background:#fee2e2;color:#b91c1c}.disp-dot.disp-oc{background:#f87171}
.disp-fu{border-left-color:#ef4444}.disp-fu .disp-badge,.disp-badge.disp-fu{background:#fee2e2;color:#b91c1c}.disp-dot.disp-fu{background:#ef4444}
.disp-re{border-left-color:#F28C28}.disp-re .disp-badge,.disp-badge.disp-re{background:#ffedd5;color:#c2410c}.disp-dot.disp-re{background:#F28C28}
.disp-ma{border-left-color:#9ca3af}.disp-ma .disp-badge,.disp-badge.disp-ma{background:#f3f4f6;color:#4b5563}.disp-dot.disp-ma{background:#9ca3af}
.disp-bl{border-left-color:#dc2626}.disp-bl .disp-badge,.disp-badge.disp-bl{background:#fee2e2;color:#991b1b}.disp-dot.disp-bl{background:#dc2626}
.disp-cl{border-left-color:#eab308}.disp-cl .disp-badge,.disp-badge.disp-cl{background:#fef9c3;color:#a16207}.disp-dot.disp-cl{background:#eab308}
/* Drawer lateral */
.disp-drawer-bg{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:1200}
.disp-drawer{position:fixed;top:0;right:0;width:400px;max-width:92vw;height:100vh;background:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.15);z-index:1201;display:flex;flex-direction:column;animation:dwIn .18s ease}
@keyframes dwIn{from{transform:translateX(30px);opacity:.6}to{transform:none;opacity:1}}
.disp-dw-h{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 18px;border-bottom:1px solid #eee}
.disp-dw-room{font-size:20px;font-weight:800;color:#1E1E1E}
.disp-dw-x{background:none;border:0;cursor:pointer;color:#6B7280;padding:4px}
.disp-dw-x i{width:20px;height:20px}
.disp-dw-body{padding:16px 18px;overflow-y:auto}
.disp-dw-sec{margin-top:16px}
.disp-dw-t{font-size:13px;font-weight:700;color:#1E1E1E;margin-bottom:6px}
.disp-dw-actions{margin-top:20px;display:flex;flex-direction:column;gap:8px}
.disp-dw-actions .btn{width:100%;justify-content:center}
.disp-cama{border:1px solid #eee;border-radius:8px;padding:8px 10px;margin-bottom:8px}
.disp-cama-h{font-size:12px;font-weight:700;color:#6B7280;margin-bottom:4px}
.ficha-mini{width:100%;border-collapse:collapse;font-size:12px}
.ficha-mini th,.ficha-mini td{border:1px solid #eee;padding:4px 7px;text-align:left}
.ficha-mini th{background:#f7f7f7;color:#4b5563;font-weight:700}
/* Pasajeros - segmentado por estado */
.pax-segs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.pax-seg{background:#fff;border:1px solid #e2e2e2;border-radius:999px;padding:6px 14px;font-size:13px;color:#4b5563;cursor:pointer;display:flex;align-items:center;gap:6px}
.pax-seg:hover{border-color:#F28C28}
.pax-seg.active{background:#F28C28;border-color:#F28C28;color:#fff}
.pax-seg-c{background:rgba(0,0,0,.08);border-radius:999px;padding:0 7px;font-size:11px;font-weight:700}
.pax-ct{padding:3px 6px;border:1px solid #d1d5db;border-radius:6px;font-size:12px;font-weight:700;color:#2563eb;background:#fff}
.pax-tools{margin-bottom:12px;background:#fafafa;border:1px solid #eee;border-radius:8px;padding:8px 10px}
.pax-tools>summary{cursor:pointer;font-size:12px;color:#6B7280;font-weight:600;display:flex;align-items:center;gap:6px;list-style:none}
.pax-tools>summary i{width:15px;height:15px}
.pax-tools[open]>summary{margin-bottom:8px}
.pax-tools-body{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pax-tools-sep{width:1px;height:20px;background:#ddd;display:inline-block}
.sab-f{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid #d1d5db;border-radius:8px}
/* Centro de Validaciones (Supervisor) */
.val-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:14px}
.val-kpi{background:#fff;border:1px solid #eaeaea;border-radius:12px;padding:14px;display:flex;align-items:center;gap:12px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.val-kpi-ic{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none}
.val-kpi-ic i{width:20px;height:20px}
.val-kpi-v{font-size:22px;font-weight:800;color:#1E1E1E;line-height:1}
.val-kpi-l{font-size:12px;color:#6B7280;margin-top:2px}
.val-item{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #eee;border-radius:10px;margin-bottom:8px}
.val-item:hover{box-shadow:0 2px 8px rgba(0,0,0,.06)}
.val-ic{width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex:none}
.val-ic i{width:18px;height:18px}
.val-body{flex:1;min-width:0}
.val-t{font-size:14px;font-weight:700;color:#1E1E1E;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.val-s{font-size:12px;color:#6B7280}
/* Acordeón por fecha (cambio de sábanas) */
.sa-acc-item{border:1px solid #e6e6e6;border-radius:10px;margin-bottom:8px;overflow:hidden;background:#fff}
.sa-acc-h{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;background:#fff;border:0;cursor:pointer;font:inherit;font-size:14px;font-weight:700;color:#1E1E1E}
.sa-acc-h:hover{background:#fafafa}
.sa-acc-h.open{background:#fff7ed;color:#c2410c;border-bottom:1px solid #fed7aa}
.sa-acc-h i{width:16px;height:16px}
.sa-acc-h .pax-seg-c{background:rgba(0,0,0,.08);color:#4b5563}
.sa-acc-item .table-container{border:0}
.sa-acc-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:8px 12px;background:#fafafa;border-bottom:1px solid #eee}
.rep-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:1100px){.rep-grid4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.rep-grid4{grid-template-columns:1fr}}
.rep-gauge{position:relative;height:180px}
.rep-gauge-v{position:absolute;left:0;right:0;bottom:24px;text-align:center;font-size:26px;font-weight:800}
.op-av{display:inline-flex;width:26px;height:26px;border-radius:50%;background:#F28C28;color:#fff;font-size:10px;font-weight:800;align-items:center;justify-content:center;vertical-align:middle;margin-right:4px}
.op-bar{height:7px;background:#eef0f3;border-radius:999px;overflow:hidden}
.op-bar>div{height:100%;border-radius:999px}
.pax-seg.active .pax-seg-c{background:rgba(255,255,255,.28)}
/* Importación - validación */
.imp-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:6px 0 10px}
.imp-kpi{background:#f8f9fb;border:1px solid #eee;border-radius:10px;padding:10px;text-align:center}
.imp-kpi-v{font-size:22px;font-weight:800;color:#1E1E1E}
.imp-kpi-l{font-size:11px;color:#6B7280}
.imp-kpi.ok .imp-kpi-v{color:#16a34a}.imp-kpi.err .imp-kpi-v{color:#dc2626}.imp-kpi.warn .imp-kpi-v{color:#d97706}
.imp-det{margin:6px 0;font-size:13px}
.imp-det summary{cursor:pointer;font-weight:600;padding:4px 0}
.imp-det summary.err{color:#dc2626}.imp-det summary.warn{color:#d97706}
.imp-det ul{margin:4px 0 8px 18px;color:#4b5563;font-size:12px}
.imp-done{background:#dcfce7;border:1px solid #bbf7d0;color:#15803d;border-radius:8px;padding:12px;display:flex;align-items:center;gap:8px;font-size:13px}
.imp-done i{width:18px;height:18px;flex:none}
/* Asignación - sugerencia */
.asig-sug{background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:12px;margin-bottom:10px}
.asig-sug-t{font-size:12px;font-weight:700;color:#c2410c;display:flex;align-items:center;gap:6px}
.asig-sug-t i{width:15px;height:15px}
.asig-sug-room{font-size:20px;font-weight:800;color:#1E1E1E;margin:4px 0}
.asig-sug-m{font-size:12px;color:#6B7280;margin-bottom:8px}
.asig-exc{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:10px;margin-top:8px}
/* Reportes */
.rep-tabs{display:flex;gap:4px;flex-wrap:wrap}
.rep-tab{background:#f4f5f7;border:1px solid #e5e7eb;border-radius:8px;padding:6px 12px;font-size:12.5px;color:#4b5563;cursor:pointer;white-space:nowrap}
.rep-tab:hover{border-color:#F28C28;color:#D96B00}
.rep-tab.active{background:#1E1E1E;border-color:#1E1E1E;color:#fff}
.rep-exec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.rep-card{background:#fff;border:1px solid #eaeaea;border-radius:12px;padding:14px;display:flex;align-items:center;gap:12px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.rep-card-ic{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#f3f4f6;color:#6B7280;flex:none}
.rep-card-ic i{width:20px;height:20px}
.rep-card-v{font-size:22px;font-weight:800;color:#1E1E1E;line-height:1.1}
.rep-card-l{font-size:12px;color:#6B7280;margin-top:2px}
.rep-card.ok .rep-card-ic{background:#dcfce7;color:#16a34a}
.rep-card.info .rep-card-ic{background:#dbeafe;color:#2563eb}
.rep-card.warn .rep-card-ic{background:#fef3c7;color:#d97706}
.rep-card.err .rep-card-ic{background:#fee2e2;color:#dc2626}
.rep-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:900px){.rep-2col{grid-template-columns:1fr}}
.rep-chart{position:relative;height:280px}
.rep-nomina-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid #f2f2f2;font-size:13px}
.rep-nomina-row:last-child{border-bottom:0}
.rep-detalle{width:100%;border-collapse:collapse;font-size:12px}
.rep-detalle th,.rep-detalle td{border:1px solid #e5e7eb;padding:5px 7px;text-align:center}
.rep-detalle th{background:#F28C28;color:#fff;font-weight:700;font-size:11px}
.rep-detalle td:first-child,.rep-detalle th:first-child{text-align:left}
.rep-detalle tr.rep-total td{font-weight:800;background:#f3f4f6}
.rep-detalle .rep-inef{background:#fdeee2}
.rep-detalle .rep-bloq{background:#fbe9e9}
.rep-boxrow{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid #f2f2f2;font-size:13px}
.rep-boxrow.b{background:#fff7ed;font-weight:800;padding:8px 8px;border-radius:6px;border-bottom:0}
.rep-boxrow:last-child{border-bottom:0}
