:root{
  --bg:#0f172a;
  --card:#0f172a;
  --card2:#111c33;
  --text:#e5e7eb;
  --muted:#94a3b8;
  --border:#1f2a44;
  --accent:#22c55e;
  --danger:#ef4444;
  --warn:#f59e0b;
  --surface:#0a1327;
  --surface2:#12203b;
  --hover:rgba(255,255,255,.08);
  --shadow:0 18px 38px rgba(2,6,23,.28);
}

:root[data-theme="light"]{
  --bg:#f5f7fa;
  --card:#ffffff;
  --card2:#f8fafc;
  --text:#172033;
  --muted:#5d6878;
  --border:#d7e0ea;
  --accent:#6e9c72;
  --danger:#dc2626;
  --warn:#b7791f;
  --surface:#eef3f8;
  --surface2:#e8eef5;
  --hover:#eef3f8;
  --shadow:0 18px 38px rgba(15,23,42,.08);
}

*{box-sizing:border-box}
body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;background:var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}

.app{display:flex;min-height:100vh}
.sidebar{width:260px;background:#070d18;border-right:1px solid var(--border);padding:18px;display:flex;flex-direction:column;gap:18px}
.brand{display:flex;gap:12px;align-items:center}
.logo{width:40px;height:40px;border-radius:12px;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#071018;font-weight:900}
.brand-name{font-weight:800}
.brand-sub{font-size:12px;color:var(--muted);margin-top:2px}

.nav{display:flex;flex-direction:column;gap:10px}
.nav-item{padding:10px 12px;border-radius:12px;background:transparent;border:1px solid transparent}
.nav-item:hover{border-color:var(--border);background:#0a1327}
.nav-item.active{border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.10)}

.sidebar-footer{margin-top:auto}

.main{flex:1;display:flex;flex-direction:column;min-width:0}
.topbar{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}
.topbar-left{display:flex;align-items:center;gap:10px;min-width:0}
.topbar-heading{min-width:0}
.page-title{font-size:18px;font-weight:800}
.page-sub{font-size:12px;color:var(--muted);margin-top:3px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:999px;border:1px solid var(--border);background:#0a1327;color:var(--muted);font-size:12px}

.mobile-menu-btn{
  display:none;
  width:36px;
  height:36px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  color:#eaf2ff;
  cursor:pointer;
  font-size:18px;
  line-height:1;
  padding:0;
}
.mobile-menu-btn:hover{ background:rgba(255,255,255,.10); }

.sidebar-overlay{
  position:fixed;
  inset:0;
  background:rgba(2,6,23,.52);
  z-index:109;
}

.content{padding:22px}
.grid{display:grid;gap:14px}
.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px}
.card h3{margin:0 0 8px 0;font-size:14px;color:var(--muted);font-weight:700}
.big{font-size:28px;font-weight:900}
.btn{
  display:inline-flex;
  gap:8px;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  color:#eaf2ff;
  cursor:pointer;
  transition:.18s ease;
}
.btn.primary{
  border:none;
  background:#6e9c72;
  color:#ffffff;
  font-weight:800;
  box-shadow:0 12px 24px rgba(110,156,114,.24);
}
.btn:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.08);
}
.btn.primary:hover{ background:#5d8864; }
.btn:disabled,
.btn[disabled]{ opacity:.58; cursor:not-allowed; transform:none; }

/* Semantic tone helpers (shared across modules) */
.ok{ color:#86efac; font-weight:700; }
.warn{ color:#fde68a; font-weight:700; }
.err{ color:#fca5a5; font-weight:700; }
.pill.ok{
  border-color:rgba(134,239,172,.35) !important;
  background:rgba(134,239,172,.10) !important;
  color:#86efac !important;
}
.pill.warn{
  border-color:rgba(253,230,138,.35) !important;
  background:rgba(253,230,138,.10) !important;
  color:#fde68a !important;
}
.pill.err{
  border-color:rgba(248,113,113,.35) !important;
  background:rgba(248,113,113,.10) !important;
  color:#fca5a5 !important;
}

:root[data-theme="light"] .ok{ color:#15803d; font-weight:700; }
:root[data-theme="light"] .warn{ color:#b45309; font-weight:700; }
:root[data-theme="light"] .err{ color:#b91c1c; font-weight:700; }
:root[data-theme="light"] .pill.ok{
  border-color:rgba(34,197,94,.36) !important;
  background:rgba(34,197,94,.14) !important;
  color:#166534 !important;
}
:root[data-theme="light"] .pill.warn{
  border-color:rgba(245,158,11,.40) !important;
  background:rgba(245,158,11,.15) !important;
  color:#92400e !important;
}
:root[data-theme="light"] .pill.err{
  border-color:rgba(239,68,68,.36) !important;
  background:rgba(239,68,68,.14) !important;
  color:#991b1b !important;
}

.tabs{ display:flex; gap:8px; flex-wrap:wrap; }
.tab{
  cursor:pointer;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  color:#eaf2ff;
  padding:8px 14px;
  border-radius:999px;
  transition:.18s ease;
}
.tab:hover{ background:rgba(255,255,255,.08); }
.tab.active{ background:rgba(255,255,255,.10); }

/* === Estilo unificado de formularios (dashboard style) === */
.content .field input,
.content .field select,
.content .field textarea,
.content input.input,
.content select.input,
.content textarea.input,
.content input[type="text"],
.content input[type="date"],
.content input[type="number"],
.content input[type="email"],
.content input[type="password"],
.content input[type="search"],
.content input[type="time"],
.content input[type="datetime-local"],
.content input[type="month"],
.content input[type="tel"],
.content input[type="url"],
.content input[type="file"],
.content textarea,
.content select {
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  color: #eaf2ff;
  padding: 10px 12px;
  outline: none;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0);
}

.content .field input:focus,
.content .field select:focus,
.content .field textarea:focus,
.content input.input:focus,
.content select.input:focus,
.content textarea.input:focus,
.content input[type="text"]:focus,
.content input[type="date"]:focus,
.content input[type="number"]:focus,
.content input[type="email"]:focus,
.content input[type="password"]:focus,
.content input[type="search"]:focus,
.content input[type="time"]:focus,
.content input[type="datetime-local"]:focus,
.content input[type="month"]:focus,
.content input[type="tel"]:focus,
.content input[type="url"]:focus,
.content input[type="file"]:focus,
.content textarea:focus,
.content select:focus {
  border-color: #c89b63;
  box-shadow: 0 0 0 3px rgba(200,155,99,.18);
}

.content select,
.content select option {
  background: #0b1220;
  color: #eaf2ff;
}

.content select option:checked {
  background: #0f1b33;
  color: #eaf2ff;
}

:root { color-scheme: dark; }
:root[data-theme="light"] { color-scheme: light; }
.main{background:var(--bg)}
.nav-group { margin: 6px 0 10px; }

.nav-group-title{
  padding: 10px 12px;
  border-radius: 12px;
  color: rgba(255,255,255,.85);
  font-weight: 700;
}

.nav-group-title.active{
  background: rgba(34,197,94,.12);
  border: 1px solid rgba(34,197,94,.25);
}

.nav-sub{
  margin-top: 6px;
  padding-left: 12px;
  display: grid;
  gap: 6px;
}

.nav-sub-item{
  display:block;
  padding: 10px 12px;
  border-radius: 12px;
  color: rgba(255,255,255,.78);
  text-decoration:none;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.06);
}

.nav-sub-item:hover{
  background: rgba(255,255,255,.07);
}

.nav-sub-item.active{
  background: rgba(34,197,94,.18);
  border-color: rgba(34,197,94,.28);
  color: #fff;
}
/* === Sidebar: grupo + submenú === */
.nav-group { margin: 8px 0 14px; }

.nav-group-title{
  padding: 10px 12px;
  border-radius: 12px;
  color: rgba(255,255,255,.9);
  font-weight: 800;
  letter-spacing: .2px;
}

.nav-group-title.active{
  background: rgba(34,197,94,.10);
  border: 1px solid rgba(34,197,94,.22);
}

.nav-sub{
  margin-top: 6px;
  padding-left: 14px;
  border-left: 1px solid rgba(255,255,255,.10);
  display: grid;
  gap: 6px;
}

.nav-sub-item{
  display:block;
  padding: 9px 12px;
  border-radius: 12px;
  color: rgba(255,255,255,.78);
  text-decoration:none;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
}

.nav-sub-item:hover{
  background: rgba(255,255,255,.06);
}

.nav-sub-item.active{
  background: rgba(34,197,94,.16);
  border-color: rgba(34,197,94,.28);
  color: #fff;
}
.brand{ display:flex;
  justify-content: center;
  align-items: center;
  padding: 14px 0 18px 0;
  }
  .brand-logo{
    width: 180px;
    max-width: 90%;
    height: auto;
    object-fit: contain;
    display: block;
    }


/* =========================================================
   IkamLodge — /usuarios tweaks (Feb 2026)
   - Keep existing table/buttons
   - Improve contrast for "Accesos" and "Reset pass"
   - Make "Crear nuevo usuario" look like login/change-password card
   ========================================================= */

/* Card style inspired by login/change-password */
.user-create-card{  background: #111827;
  border: 1px solid #1f2937;
  border-radius: 18px;
  padding: 32px 30px;
  box-shadow: 0 20px 50px rgba(0,0,0,.45);
}

.user-create-card h2{
  margin:0 0 6px 0;
  font-size:22px;
  font-weight:800;
  color:#ffffff;
}

.user-create-card .sub{
  color:#9bb3d6;
  font-size:14px;
  margin-bottom:18px;
}

.user-create-card label{
  display:block;
  margin:18px 0 8px;
  font-size:14px;
  color:#cfd9ea;
}

.user-create-card .field{
  width:100%;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid #1e3559;
  background:#0a1a30;
  color:#ffffff;
  outline:none;
}

.user-create-card .field:focus{
  border-color:#c89b63;
  box-shadow:0 0 0 2px rgba(200,155,99,0.22);
}

.user-create-card .btn-gold{
  width:100%;
  margin-top:24px;
  padding:14px;
  border-radius:14px;
  border:none;
  background:#6e9c72;
  color:#ffffff;
  font-weight:700;
  cursor:pointer;
  transition:0.2s ease;
}
.user-create-card .btn-gold:hover{ background:#5d8864; }

/* Higher-contrast outline buttons just for specific actions */
.btn-contrast{
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.22) !important;
  color: rgba(226,232,240,0.95) !important;
}
.btn-contrast:hover{
  background: rgba(255,255,255,0.10) !important;
  border-color: rgba(255,255,255,0.30) !important;
}

/* Make the "Administrar perfiles" button readable inside the card */
.user-create-card .btn.btn-outline{
  background: rgba(255,255,255,0.06);
  border-color: rgba(255,255,255,0.18);
}
/* =========================================================
   IkamLodge — SaaS Standard Components (Feb 2026)
   Reusable visual system inspired by /usuarios/{id}/accesos
   - Does NOT change existing .card/.btn defaults
   - Use .saas-card / .saas-section / .btn-gold / .btn-secondary
   ========================================================= */

:root{
  --saas-bg:#0f172a;
  --saas-card:#111827;
  --saas-border:#1f2937;
  --saas-soft:rgba(255,255,255,.05);
  --saas-soft2:rgba(255,255,255,.03);
  --saas-soft-border:rgba(255,255,255,.08);
  --saas-gold:#c89b63;
  --saas-text:#ffffff;
  --saas-muted:#94a3b8;
}

.saas-wrapper{ max-width:1200px; margin:0 auto; }

.saas-card{
  background:var(--saas-card);
  border:1px solid var(--saas-border);
  border-radius:20px;
  padding:30px;
  box-shadow:0 25px 60px rgba(0,0,0,.45);
}

.saas-section{
  background:var(--saas-soft2);
  border:1px solid var(--saas-soft-border);
  border-radius:16px;
  padding:20px;
}

.btn-gold{
  padding:12px 20px;
  border-radius:14px;
  border:none;
  background:#6e9c72;
  color:#ffffff;
  font-weight:700;
  cursor:pointer;
  transition:.2s ease;
}
.btn-gold:hover{ background:#5d8864; }

.btn-secondary{
  padding:12px 20px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.20);
  background:var(--saas-soft);
  color:var(--saas-text);
  cursor:pointer;
  transition:.2s ease;
}
.btn-secondary:hover{ background:rgba(255,255,255,.08); }

.btn-sm{ padding:10px 14px; border-radius:12px; font-size:13px; }

.pill{
  display:inline-flex;
  gap:8px;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
  font-size:12px;
  opacity:.95;
}

.topbar-right{display:flex;align-items:center;gap:10px}
.topbar-theme{
  display:inline-flex;
  align-items:center;
  gap:8px;
  user-select:none;
}
.topbar-theme-label{
  font-size:12px;
  color:var(--muted);
  font-weight:700;
}
.topbar-theme .toggle{
  position:relative;
  width:44px;
  height:24px;
}
.topbar-theme .toggle input{
  opacity:0;
  width:0;
  height:0;
}
.topbar-theme .slider{
  position:absolute;
  cursor:pointer;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background:#334155;
  transition:.3s;
  border-radius:34px;
}
.topbar-theme .slider:before{
  position:absolute;
  content:"";
  height:18px;
  width:18px;
  left:3px;
  bottom:3px;
  background:white;
  transition:.3s;
  border-radius:50%;
}
.topbar-theme .toggle input:checked + .slider{ background:#c89b63; }
.topbar-theme .toggle input:checked + .slider:before{ transform:translateX(20px); }

.notif-wrap{position:relative}
.notif-btn{
  position:relative;
  width:38px;
  height:38px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  color:#eaf2ff;
  cursor:pointer;
}
.notif-count{
  position:absolute;
  top:-6px;
  right:-6px;
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:999px;
  background:#ef4444;
  color:#fff;
  font-size:11px;
  line-height:18px;
  text-align:center;
  border:1px solid rgba(0,0,0,.25);
}
.notif-panel{
  position:absolute;
  right:0;
  top:46px;
  width:min(380px, 86vw);
  max-height:65vh;
  overflow:hidden;
  background:#0f172a;
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px;
  box-shadow:0 18px 40px rgba(0,0,0,.4);
  z-index:80;
}
.notif-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 12px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.notif-read-all{
  border:0;
  background:transparent;
  color:#9bd1ff;
  cursor:pointer;
  font-size:12px;
}
.notif-list{max-height:54vh; overflow:auto;}
.notif-item{
  display:block;
  padding:10px 12px;
  border-bottom:1px solid rgba(255,255,255,.06);
  color:#eaf2ff;
}
.notif-item:hover{background:rgba(255,255,255,.05)}
.notif-item.unread{background:rgba(200,155,99,.08)}
.notif-title{font-weight:700; font-size:13px; margin-bottom:2px}
.notif-body{font-size:12px; color:#cbd5e1}
.notif-time{font-size:11px; color:#94a3b8; margin-top:4px}
.notif-empty{padding:14px 12px; font-size:12px; color:#94a3b8}

[hidden]{display:none !important;}

/* === Sidebar colapsable por grupos === */
.nav-group-title{
  width:100%;
  text-align:left;
  cursor:pointer;
  background:transparent;
}

.nav-group .nav-sub{
  display:none;
}

.nav-group.open .nav-sub{
  display:grid;
}

.kpis { display:grid; grid-template-columns: repeat(4, 1fr); gap:12px; }
.kpi {
  padding:14px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.04);
}
.kpi .k { font-size:12px; opacity:.75; }
.kpi .v { font-size:22px; font-weight:900; margin-top:4px; }

.chartCard{
  padding:16px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.04);
}

/* ===== Tema claro global ===== */
:root[data-theme="light"] body{ background:var(--bg); color:var(--text); }
:root[data-theme="light"] body{
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.72), rgba(255,255,255,0) 26%),
    linear-gradient(180deg, #fbfcfe 0%, var(--bg) 100%);
}
:root[data-theme="light"] .sidebar{
  background:var(--surface);
  border-right:1px solid rgba(148,163,184,.18);
  box-shadow:inset -1px 0 0 rgba(255,255,255,.65);
}
:root[data-theme="light"] .brand-logo{ filter:none; }

:root[data-theme="light"] .nav-item{
  color:var(--text);
  border-color:transparent;
}
:root[data-theme="light"] .nav-item:hover{
  border-color:rgba(148,163,184,.22);
  background:var(--hover);
}
:root[data-theme="light"] .nav-item.active{
  border-color:rgba(110,156,114,.30);
  background:rgba(110,156,114,.15);
  color:#46704d;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
}

:root[data-theme="light"] .nav-group-title,
:root[data-theme="light"] .nav-sub-item{ color:#0f172a; }
:root[data-theme="light"] .nav-group-title.active{
  background:rgba(110,156,114,.12);
  border:1px solid rgba(110,156,114,.22);
}
:root[data-theme="light"] .nav-sub{ border-left:1px solid rgba(148,163,184,.18); }
:root[data-theme="light"] .nav-sub-item{
  background:rgba(255,255,255,.88);
  border:1px solid rgba(148,163,184,.18);
}
:root[data-theme="light"] .nav-sub-item:hover{ background:var(--hover); }
:root[data-theme="light"] .nav-sub-item.active{
  background:rgba(110,156,114,.15);
  border-color:rgba(110,156,114,.30);
  color:#46704d;
}

:root[data-theme="light"] .topbar{
  background:rgba(255,255,255,.88);
  border-bottom:1px solid rgba(148,163,184,.18);
  backdrop-filter:saturate(160%) blur(12px);
}
:root[data-theme="light"] .chip{
  background:var(--card2);
  color:#334155;
  border-color:rgba(148,163,184,.22);
}
:root[data-theme="light"] .topbar-theme-label{ color:#64748b; }
:root[data-theme="light"] .topbar-theme .slider{ background:#cbd5e1; }
:root[data-theme="light"] .notif-btn{
  border-color:rgba(148,163,184,.22);
  background:var(--card2);
  color:#0f172a;
}
:root[data-theme="light"] .mobile-menu-btn{
  border-color:rgba(148,163,184,.22);
  background:var(--card2);
  color:var(--text);
}
:root[data-theme="light"] .mobile-menu-btn:hover{ background:var(--hover); }

:root[data-theme="light"] .card,
:root[data-theme="light"] .kpi,
:root[data-theme="light"] .chartCard,
:root[data-theme="light"] .saas-card,
:root[data-theme="light"] .saas-section,
:root[data-theme="light"] .user-create-card{
  background:var(--card) !important;
  border-color:rgba(148,163,184,.18) !important;
  color:#0f172a !important;
  box-shadow:var(--shadow) !important;
}

:root[data-theme="light"] .user-create-card h2,
:root[data-theme="light"] .user-create-card .sub,
:root[data-theme="light"] .user-create-card label,
:root[data-theme="light"] .kpi .k,
:root[data-theme="light"] .notif-body,
:root[data-theme="light"] .notif-time,
:root[data-theme="light"] .notif-empty,
:root[data-theme="light"] .page-sub,
:root[data-theme="light"] .card h3{ color:#475569 !important; }

:root[data-theme="light"] .btn,
:root[data-theme="light"] .btn-secondary,
:root[data-theme="light"] .btn-contrast,
:root[data-theme="light"] .tab{
  background:var(--card2) !important;
  border:1px solid rgba(148,163,184,.22) !important;
  color:var(--text) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}
:root[data-theme="light"] .btn:hover,
:root[data-theme="light"] .btn-secondary:hover,
:root[data-theme="light"] .btn-contrast:hover,
:root[data-theme="light"] .tab:hover{ background:var(--hover) !important; }
:root[data-theme="light"] .btn.primary,
:root[data-theme="light"] .btn-gold,
:root[data-theme="light"] .btn-primary,
:root[data-theme="light"] .rt-btn.primary,
:root[data-theme="light"] .cal-btn.primary,
:root[data-theme="light"] .rf-btn.primary,
:root[data-theme="light"] .face-btn.primary,
:root[data-theme="light"] .padron-btn-primary,
:root[data-theme="light"] #caja-page .btn-primary{
  background:#6e9c72 !important;
  border-color:#6e9c72 !important;
  color:#ffffff !important;
  box-shadow:0 14px 24px rgba(110,156,114,.22) !important;
}
:root[data-theme="light"] .btn.primary:hover,
:root[data-theme="light"] .btn-gold:hover,
:root[data-theme="light"] .btn-primary:hover,
:root[data-theme="light"] .rt-btn.primary:hover,
:root[data-theme="light"] .cal-btn.primary:hover,
:root[data-theme="light"] .rf-btn.primary:hover,
:root[data-theme="light"] .face-btn.primary:hover,
:root[data-theme="light"] .padron-btn-primary:hover,
:root[data-theme="light"] #caja-page .btn-primary:hover{
  background:#5d8864 !important;
  border-color:#5d8864 !important;
}

:root[data-theme="light"] .content .field input,
:root[data-theme="light"] .content .field select,
:root[data-theme="light"] .content .field textarea,
:root[data-theme="light"] .content input.input,
:root[data-theme="light"] .content select.input,
:root[data-theme="light"] .content textarea.input,
:root[data-theme="light"] .content input[type="text"],
:root[data-theme="light"] .content input[type="date"],
:root[data-theme="light"] .content input[type="number"],
:root[data-theme="light"] .content input[type="email"],
:root[data-theme="light"] .content input[type="password"],
:root[data-theme="light"] .content input[type="search"],
:root[data-theme="light"] .content input[type="time"],
:root[data-theme="light"] .content input[type="datetime-local"],
:root[data-theme="light"] .content input[type="month"],
:root[data-theme="light"] .content input[type="tel"],
:root[data-theme="light"] .content input[type="url"],
:root[data-theme="light"] .content input[type="file"],
:root[data-theme="light"] .content textarea,
:root[data-theme="light"] .content select,
:root[data-theme="light"] .user-create-card .field,
:root[data-theme="light"] .content .user-form input,
:root[data-theme="light"] .content .user-form select,
:root[data-theme="light"] .content .reset-input,
:root[data-theme="light"] .content .perm-filter-select{
  background:var(--card2) !important;
  color:var(--text) !important;
  border:1px solid rgba(148,163,184,.22) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}

:root[data-theme="light"] .content select,
:root[data-theme="light"] .content select option{
  background:var(--card2) !important;
  color:var(--text) !important;
}
:root[data-theme="light"] .content .field input:focus,
:root[data-theme="light"] .content .field select:focus,
:root[data-theme="light"] .content .field textarea:focus,
:root[data-theme="light"] .content input.input:focus,
:root[data-theme="light"] .content select.input:focus,
:root[data-theme="light"] .content textarea.input:focus,
:root[data-theme="light"] .content input[type="text"]:focus,
:root[data-theme="light"] .content input[type="date"]:focus,
:root[data-theme="light"] .content input[type="number"]:focus,
:root[data-theme="light"] .content input[type="email"]:focus,
:root[data-theme="light"] .content input[type="password"]:focus,
:root[data-theme="light"] .content input[type="search"]:focus,
:root[data-theme="light"] .content input[type="time"]:focus,
:root[data-theme="light"] .content input[type="datetime-local"]:focus,
:root[data-theme="light"] .content input[type="month"]:focus,
:root[data-theme="light"] .content input[type="tel"]:focus,
:root[data-theme="light"] .content input[type="url"]:focus,
:root[data-theme="light"] .content input[type="file"]:focus,
:root[data-theme="light"] .content textarea:focus,
:root[data-theme="light"] .content select:focus,
:root[data-theme="light"] .content .reset-input:focus,
:root[data-theme="light"] .content .user-form input:focus,
:root[data-theme="light"] .content .user-form select:focus,
:root[data-theme="light"] .content .perm-filter-select:focus{
  border-color:#c89b63 !important;
  box-shadow:0 0 0 3px rgba(200,155,99,.18), inset 0 1px 0 rgba(255,255,255,.75) !important;
}

:root[data-theme="light"] .notif-panel{
  background:var(--card);
  border:1px solid rgba(148,163,184,.22);
  box-shadow:0 18px 32px rgba(15,23,42,.10);
}
:root[data-theme="light"] .notif-head{ border-bottom:1px solid rgba(148,163,184,.18); }
:root[data-theme="light"] .notif-read-all{ color:#2563eb; }
:root[data-theme="light"] .notif-item{ color:#0f172a; border-bottom:1px solid rgba(148,163,184,.14); }
:root[data-theme="light"] .notif-item:hover{ background:var(--hover); }
:root[data-theme="light"] .notif-item.unread{ background:rgba(200,155,99,.18); }

/* ===== Refuerzo de contraste (modo claro) ===== */
:root[data-theme="light"] .content,
:root[data-theme="light"] .content p,
:root[data-theme="light"] .content span:not([class]),
:root[data-theme="light"] .content strong,
:root[data-theme="light"] .content b,
:root[data-theme="light"] .content li,
:root[data-theme="light"] .content td,
:root[data-theme="light"] .content th,
:root[data-theme="light"] .content label,
:root[data-theme="light"] .content .title,
:root[data-theme="light"] .content .big,
:root[data-theme="light"] .content .status,
:root[data-theme="light"] .content .statusBox,
:root[data-theme="light"] .content .table,
:root[data-theme="light"] .content .table td,
:root[data-theme="light"] .content .table th,
:root[data-theme="light"] .content .pill,
:root[data-theme="light"] .content .badge,
:root[data-theme="light"] .content .nps-pill,
:root[data-theme="light"] .content .perm-title,
:root[data-theme="light"] .content .perm-desc,
:root[data-theme="light"] .content .text-muted{
  color:#0f172a !important;
}

:root[data-theme="light"] .content .muted,
:root[data-theme="light"] .content .page-sub,
:root[data-theme="light"] .content .perm-desc,
:root[data-theme="light"] .content small,
:root[data-theme="light"] .content .sub,
:root[data-theme="light"] .content [style*="color:#94a3b8"],
:root[data-theme="light"] .content [style*="color:#cbd5e1"]{
  color:#475569 !important;
  opacity:1 !important;
}

:root[data-theme="light"] .content [style*="color:#eaf2ff"],
:root[data-theme="light"] .content [style*="color:#fff"],
:root[data-theme="light"] .content [style*="color: white"],
:root[data-theme="light"] .content [style*="color:#ffffff"]{
  color:#0f172a !important;
}

:root[data-theme="light"] .content .divider,
:root[data-theme="light"] .content hr{
  background:rgba(15,23,42,.12) !important;
  border-color:rgba(15,23,42,.12) !important;
}

:root[data-theme="light"] .content .tableWrap,
:root[data-theme="light"] .content .miniTable,
:root[data-theme="light"] .content table,
:root[data-theme="light"] .content .status,
:root[data-theme="light"] .content .statusBox,
:root[data-theme="light"] .content .pill,
:root[data-theme="light"] .content .badge,
:root[data-theme="light"] .content .nps-pill,
:root[data-theme="light"] .content .section-box,
:root[data-theme="light"] .content .reset-card,
:root[data-theme="light"] .content .access-card,
:root[data-theme="light"] .content .subCard,
:root[data-theme="light"] .content .panel{
  border-color:rgba(148,163,184,.18) !important;
}

:root[data-theme="light"] .content .table th,
:root[data-theme="light"] .content .table td,
:root[data-theme="light"] .content .miniTable th,
:root[data-theme="light"] .content .miniTable td,
:root[data-theme="light"] .content th,
:root[data-theme="light"] .content td{
  border-bottom-color:rgba(148,163,184,.18) !important;
}

:root[data-theme="light"] .content .status,
:root[data-theme="light"] .content .statusBox,
:root[data-theme="light"] .content .pill,
:root[data-theme="light"] .content .badge,
:root[data-theme="light"] .content .nps-pill,
:root[data-theme="light"] .content .kpi,
:root[data-theme="light"] .content .chartCard,
:root[data-theme="light"] .content .section-box,
:root[data-theme="light"] .content .reset-card,
:root[data-theme="light"] .content .access-card,
:root[data-theme="light"] .content .subCard,
:root[data-theme="light"] .content .panel,
:root[data-theme="light"] .content .perm-item,
:root[data-theme="light"] .content .rt-status,
:root[data-theme="light"] .content .rt-card,
:root[data-theme="light"] .content .cal-card,
:root[data-theme="light"] .content .cal-status,
:root[data-theme="light"] .content .rf-card,
:root[data-theme="light"] .content .rf-status{
  background:var(--card2) !important;
}

:root[data-theme="light"] .content .cellBtn,
:root[data-theme="light"] .content .tab,
:root[data-theme="light"] .content .btn-outline{
  color:#0f172a !important;
  border-color:rgba(148,163,184,.22) !important;
}
:root[data-theme="light"] .content .tableWrap,
:root[data-theme="light"] .content .miniTable,
:root[data-theme="light"] .content table,
:root[data-theme="light"] .content .access-card,
:root[data-theme="light"] .content .reset-card{
  background:var(--card) !important;
  box-shadow:var(--shadow) !important;
}
:root[data-theme="light"] .content .table th,
:root[data-theme="light"] .content th{
  background:rgba(148,163,184,.08) !important;
}
:root[data-theme="light"] .content .perm-item:hover{
  background:var(--hover) !important;
}
:root[data-theme="light"] .content .user-create-title,
:root[data-theme="light"] .content .section-title,
:root[data-theme="light"] .content .reset-title,
:root[data-theme="light"] .content .access-card h3{
  color:var(--text) !important;
}
:root[data-theme="light"] .content .user-create-sub{
  color:var(--muted) !important;
}
:root[data-theme="light"] .content .perm-module-title{
  color:#314056 !important;
}
:root[data-theme="light"] .content .perm-badge{
  background:#eef3f8 !important;
  color:#3f4b5d !important;
}
:root[data-theme="light"] .content .perm-badge.excepcion{
  color:#7c4a14 !important;
  border-color:rgba(200,155,99,.44) !important;
}
:root[data-theme="light"] .content .perm-badge.denegado{
  color:#b91c1c !important;
  border-color:rgba(220,38,38,.32) !important;
}
:root[data-theme="light"] .content [style*="background:#111827"],
:root[data-theme="light"] .content [style*="background: #111827"],
:root[data-theme="light"] .content [style*="background:#0b1220"],
:root[data-theme="light"] .content [style*="background: #0b1220"]{
  background:var(--card2) !important;
}
:root[data-theme="light"] .content [style*="border:1px solid rgba(255,255,255"],
:root[data-theme="light"] .content [style*="border: 1px solid rgba(255,255,255"]{
  border-color:rgba(148,163,184,.20) !important;
}
:root[data-theme="light"] .content [style*="background:rgba(255,255,255,.03)"],
:root[data-theme="light"] .content [style*="background: rgba(255,255,255,.03)"],
:root[data-theme="light"] .content [style*="background:rgba(255,255,255,.04)"],
:root[data-theme="light"] .content [style*="background: rgba(255,255,255,.04)"],
:root[data-theme="light"] .content [style*="background:rgba(255,255,255,.05)"],
:root[data-theme="light"] .content [style*="background: rgba(255,255,255,.05)"],
:root[data-theme="light"] .content [style*="background:rgba(255,255,255,.06)"],
:root[data-theme="light"] .content [style*="background: rgba(255,255,255,.06)"]{
  background:var(--card2) !important;
}

:root[data-theme="light"] .caja-detalle .detail-topbar{
  border-bottom:1px solid rgba(148,163,184,.18) !important;
}
:root[data-theme="light"] .caja-detalle .page-title .title,
:root[data-theme="light"] .caja-detalle .gasto-summary .main,
:root[data-theme="light"] .caja-detalle .gasto-detail-box .value{
  color:var(--text) !important;
}
:root[data-theme="light"] .caja-detalle .page-title .subtitle,
:root[data-theme="light"] .caja-detalle .muted,
:root[data-theme="light"] .caja-detalle .gasto-summary .sub,
:root[data-theme="light"] .caja-detalle .gasto-detail-box .label,
:root[data-theme="light"] .caja-detalle .gasto-items th{
  color:var(--muted) !important;
}
:root[data-theme="light"] .caja-detalle .card,
:root[data-theme="light"] .caja-detalle .gasto-detail-card,
:root[data-theme="light"] .caja-detalle .gasto-detail-cell,
:root[data-theme="light"] .caja-detalle .gasto-detail-box{
  background:var(--card) !important;
  border-color:rgba(148,163,184,.18) !important;
  box-shadow:none !important;
}
:root[data-theme="light"] .caja-detalle .gasto-detail-card{
  border-top:1px solid rgba(148,163,184,.18) !important;
}
:root[data-theme="light"] .caja-detalle .gasto-items td,
:root[data-theme="light"] .caja-detalle th,
:root[data-theme="light"] .caja-detalle td{
  color:var(--text) !important;
  border-bottom-color:rgba(148,163,184,.18) !important;
}
:root[data-theme="light"] .caja-detalle .preview-card{
  background:#f8fafc !important;
  border:1px solid rgba(148,163,184,.20) !important;
}
:root[data-theme="light"] .caja-detalle .preview-top{
  border-bottom:1px solid rgba(148,163,184,.18) !important;
}
:root[data-theme="light"] .caja-detalle .preview-body{
  background:#ffffff !important;
}

@media (max-width: 980px){
  .app{display:block;min-height:100vh}

  .sidebar{
    position:fixed;
    top:0;
    left:0;
    bottom:0;
    width:min(84vw, 320px);
    max-width:320px;
    transform:translateX(-110%);
    transition:transform .22s ease;
    z-index:120;
    overflow-y:auto;
    padding:14px;
  }
  .app.sidebar-open .sidebar{ transform:translateX(0); }

  .mobile-menu-btn{ display:inline-flex; align-items:center; justify-content:center; }

  .topbar{
    padding:12px 14px;
    align-items:flex-start;
    flex-wrap:wrap;
    gap:8px;
  }
  .topbar-left{ width:100%; }
  .topbar-heading{ flex:1; }
  .page-title{
    font-size:16px;
    line-height:1.2;
    word-break:break-word;
  }
  .page-sub{font-size:11px; margin-top:2px}

  .topbar-right{
    width:100%;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:8px;
  }

  .content{
    padding:12px;
    overflow-x:auto;
  }

  .content [style*="display:grid"]{
    grid-template-columns: 1fr !important;
  }

  .content [style*="grid-template-columns"]{
    grid-template-columns: 1fr !important;
  }

  .content [style*="display:flex"]{
    flex-wrap: wrap !important;
  }

  .content [style*="min-width"]{
    min-width: 0 !important;
  }

  .content input,
  .content select,
  .content textarea,
  .content .btn,
  .content .btn-gold,
  .content .btn-secondary{
    max-width: 100%;
  }

  .grid.cols-2,
  .grid.cols-3,
  .kpis{ grid-template-columns:1fr; }

  .card,
  .saas-card,
  .saas-section,
  .user-create-card{
    border-radius:14px;
    padding:14px;
  }

  .btn,
  .btn-secondary,
  .btn-gold{
    min-height:40px;
  }

  .content table{
    display:block;
    max-width:100%;
    overflow-x:auto;
  }

  .content pre{ overflow:auto; }

  .notif-panel{
    width:min(94vw, 380px);
    right:0;
  }

.brand-logo{ width:150px; }
}

/* ===== Semantic colors parity for light theme (cross-module) ===== */
:root[data-theme="light"] .content .pill.ok,
:root[data-theme="light"] .content .chip.ok,
:root[data-theme="light"] .content .chip.approved,
:root[data-theme="light"] .content .badge.ok,
:root[data-theme="light"] .content .badge.approved,
:root[data-theme="light"] .content .badge.closed,
:root[data-theme="light"] .content .badge.bg-success{
  color:#166534 !important;
  border-color:rgba(34,197,94,.40) !important;
  background:rgba(34,197,94,.16) !important;
}

:root[data-theme="light"] .content .pill.warn,
:root[data-theme="light"] .content .chip.warn,
:root[data-theme="light"] .content .chip.pending,
:root[data-theme="light"] .content .chip.pen,
:root[data-theme="light"] .content .badge.warn,
:root[data-theme="light"] .content .badge.pending,
:root[data-theme="light"] .content .badge.open,
:root[data-theme="light"] .content .badge.bg-warning,
:root[data-theme="light"] .content .badge.bg-warning.text-dark{
  color:#92400e !important;
  border-color:rgba(245,158,11,.42) !important;
  background:rgba(245,158,11,.17) !important;
}

:root[data-theme="light"] .content .pill.err,
:root[data-theme="light"] .content .chip.err,
:root[data-theme="light"] .content .chip.bad,
:root[data-theme="light"] .content .chip.rejected,
:root[data-theme="light"] .content .badge.err,
:root[data-theme="light"] .content .badge.rejected{
  color:#991b1b !important;
  border-color:rgba(239,68,68,.40) !important;
  background:rgba(239,68,68,.15) !important;
}

:root[data-theme="light"] .content td.ok,
:root[data-theme="light"] .content .ok{
  color:#166534 !important;
}
:root[data-theme="light"] .content td.warn,
:root[data-theme="light"] .content .warn{
  color:#92400e !important;
}
:root[data-theme="light"] .content td.err,
:root[data-theme="light"] .content .err{
  color:#991b1b !important;
}
