/* ── Admin KPIs en Seguridad ── */
.security-admin-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 10px;
}
.sa-kpi {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: var(--radius);
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  box-shadow: var(--shadow-xs);
}
.sa-kpi-warn { border-color: #fcd34d; background: #fffbeb; }
.sa-kpi-val { font-size: 1.45rem; font-weight: 800; color: var(--cead-dark); line-height: 1; }
.sa-kpi-warn .sa-kpi-val { color: #92400e; }
.sa-kpi-label { font-size: .72rem; color: var(--slate-500); font-weight: 600; }

/* ── Alertas operativas ── */
.sa-alert {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border-radius: var(--radius);
  border: 1px solid var(--slate-200);
  background: var(--white);
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.sa-alert-alta { border-color: #fca5a5; background: #fff1f1; }
.sa-alert-media { border-color: #fcd34d; background: #fffbeb; }
.sa-alert-baja { border-color: #a5f3fc; background: #f0fdff; }
.sa-alert-icon { font-size: 1.3rem; flex-shrink: 0; }
.sa-alert-body { flex: 1; min-width: 180px; }
.sa-alert-body strong { display: block; font-size: .87rem; color: var(--slate-800); }
.sa-alert-body span { font-size: .76rem; color: var(--slate-500); }
.sa-alert-btn { flex-shrink: 0; }
.sa-no-alerts {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 24px;
  color: var(--slate-500);
  font-size: .87rem;
  font-weight: 600;
}
.sa-no-alerts span { font-size: 1.8rem; }

/* ── Panel Sistema y Datos ── */
.sa-sistema-grid { display: flex; flex-direction: column; gap: 14px; }
.sa-sistema-card { overflow: visible; }
.sa-data-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  padding: 14px 20px;
}
.sa-stat { display: flex; flex-direction: column; gap: 3px; }
.sa-stat strong { font-size: 1.45rem; color: var(--cead-dark); font-weight: 800; }
.sa-stat span { font-size: .72rem; color: var(--slate-500); font-weight: 600; }
.sa-sistema-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 20px 16px;
}
.sa-sys-btn { min-width: 180px; justify-content: flex-start; }
.sa-sys-danger { color: var(--cead-danger) !important; border-color: var(--cead-danger) !important; }
.sa-sys-danger:hover { background: var(--cead-danger) !important; color: white !important; }

/* ── Panel Admin en Home ── */
.home-admin-panel {
  background: linear-gradient(135deg, var(--cead-dark), #1e3a8a);
  border-radius: var(--radius-lg);
  padding: 20px 24px;
  color: var(--white);
  box-shadow: var(--shadow-md);
}
.home-admin-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.home-admin-header h3 { font-size: 1.1rem; color: var(--white); margin: 4px 0 0; }
.home-admin-header .dashboard-eyebrow { color: var(--cead-celeste-soft, #7dd3fc); }
.home-admin-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.home-admin-actions .btn-outline {
  border-color: rgba(255,255,255,.35);
  color: var(--white);
  background: transparent;
}
.home-admin-actions .btn-outline:hover { background: rgba(255,255,255,.12); }
.home-admin-actions .btn-primary { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.35); }
.home-admin-actions .btn-primary:hover { background: rgba(255,255,255,.28); }
.home-admin-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 10px;
}
.home-admin-kpi {
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--radius);
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.home-admin-kpi.warn { background: rgba(252,211,77,.18); border-color: rgba(252,211,77,.5); }
.home-admin-kpi strong { font-size: 1.5rem; font-weight: 800; color: var(--white); line-height: 1; }
.home-admin-kpi.warn strong { color: #fef3c7; }
.home-admin-kpi span { font-size: .7rem; color: rgba(255,255,255,.72); font-weight: 600; }

.security-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: 20px;
}

.security-hero h2 {
  margin: 3px 0 4px;
  font-family: var(--font-display);
  color: var(--slate-900);
  font-size: 1.2rem;
}

.security-hero p {
  margin: 0;
  color: var(--slate-500);
  font-size: .84rem;
}

.security-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.security-tabs {
  display: inline-flex;
  width: max-content;
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-sm);
  padding: 4px;
  box-shadow: var(--shadow-xs);
}

.security-tab {
  border: none;
  background: transparent;
  padding: 8px 14px;
  border-radius: var(--radius-sm);
  color: var(--slate-600);
  font-weight: 700;
  font-size: .82rem;
}

.security-tab.active {
  background: var(--blue-50);
  color: var(--blue-700);
}

.security-panel { display: none; }
.security-panel.active { display: block; }

.security-chip {
  display: inline-flex;
  align-items: center;
  border-radius: 99px;
  background: var(--slate-100);
  color: var(--slate-600);
  padding: 3px 9px;
  font-size: .72rem;
  font-weight: 700;
}

.security-chip-danger {
  background: var(--rose-100);
  color: var(--rose-600);
}

.security-profile-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}

.security-profile-card {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.security-profile-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.security-profile-head h3 {
  margin: 0 0 4px;
  font-family: var(--font-display);
  font-size: .98rem;
  color: var(--slate-900);
}

.security-profile-head p {
  margin: 0;
  font-size: .78rem;
  color: var(--slate-500);
  line-height: 1.4;
}

.security-profile-meta {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}

.security-profile-meta span {
  background: var(--slate-100);
  color: var(--slate-600);
  border-radius: 99px;
  padding: 3px 8px;
  font-size: .72rem;
  font-weight: 700;
}

.security-profile-edit {
  width: 100%;
  justify-content: center;
}

.modal-profile { max-width: 860px; }

.field-help {
  display: block;
  margin-top: 5px;
  color: var(--slate-500);
  font-size: .74rem;
}

.permissions-editor {
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.permission-group {
  border: 1px solid var(--slate-200);
  border-radius: var(--radius);
  padding: 12px;
  background: var(--slate-50);
}

.permission-group h4 {
  margin: 0 0 9px;
  font-size: .82rem;
  color: var(--slate-800);
}

.permission-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.permission-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .78rem;
  color: var(--slate-700);
}

.permission-item input { accent-color: var(--blue-600); }

@media (max-width: 760px) {
  .security-hero {
    align-items: stretch;
    flex-direction: column;
  }
  .security-actions {
    width: 100%;
  }
  .security-actions button {
    flex: 1;
  }
  .permissions-editor {
    grid-template-columns: 1fr;
  }
}

/* Mejoras demo seguridad, calidad y operación */
.session-status-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 8px;
  background: rgba(14, 159, 138, .16);
  color: #bff7ea;
  border: 1px solid rgba(191, 247, 234, .32);
  font-size: .68rem;
  font-weight: 800;
  white-space: nowrap;
}

.executive-panel {
  background: linear-gradient(135deg, var(--blue-900) 0%, var(--cead-dark) 55%, var(--cead-medium) 100%);
  border-radius: var(--radius-lg);
  padding: 18px;
  color: var(--white);
  box-shadow: var(--shadow-md);
  overflow: hidden;
}

/* Header propio del panel ejecutivo — evita herencia de .card-header (fondo blanco) */
.exec-panel-header {
  padding: 0 0 14px;
  border-bottom: 1px solid rgba(255,255,255,.15);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: transparent;
  margin-bottom: 14px;
}
.executive-panel .card-title { color: var(--white); }
.executive-panel .dashboard-card-note {
  color: rgba(255,255,255,.92);
  background: rgba(255,255,255,.18);
}

.exec-kpi-grid {
  display: grid;
  /* 6 items → 3 columnas exactas: 2 filas simétricas */
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 14px;
}
@media (max-width: 640px) {
  .exec-kpi-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 380px) {
  .exec-kpi-grid { grid-template-columns: 1fr; }
}

.exec-kpi {
  min-height: 82px;
  border-radius: var(--radius-sm);
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.18);
  padding: 12px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.exec-kpi span { font-size: .73rem; color: rgba(255,255,255,.74); font-weight: 700; }
.exec-kpi strong { font-size: 1.28rem; color: #fff; }

.dashboard-quality-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  gap: 16px;
}

.quality-list, .duplicates-list, .audit-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.quality-row, .audit-row, .quality-alert-row, .duplicate-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-sm);
  padding: 10px;
  background: var(--white);
}

.quality-row div, .audit-row div, .quality-alert-row div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.quality-row small, .audit-row small, .duplicate-card small, .quality-alert-row small {
  color: var(--slate-500);
  font-size: .72rem;
}

.quality-priority {
  border-radius: 999px;
  padding: 4px 8px;
  font-size: .68rem;
  font-weight: 800;
}
.quality-alta  { background: rgba(239,68,68,.1);    color: var(--cead-danger); }
.quality-media { background: rgba(42,85,148,.1);    color: var(--cead-medium); }
.quality-baja  { background: rgba(0,174,239,.1);    color: var(--cead-dark); }

.duplicate-card {
  grid-template-columns: 1fr;
  align-items: start;
}

.form-section-box {
  margin-top: 14px;
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-sm);
  background: var(--slate-50);
  padding: 14px;
}

.form-section-box h3 {
  margin: 0 0 12px;
  color: var(--slate-800);
  font-size: .9rem;
}

.data-auth-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 8px;
  font-size: .68rem;
  font-weight: 800;
}
.data-auth-ok { background: #dcfce7; color: #166534; }
.data-auth-missing { background: #fee2e2; color: #991b1b; }

.security-demo-warning, .portal-demo-note {
  margin-top: 10px;
  border-radius: var(--radius);
  border: 1px solid rgba(14,159,138,.3);
  background: rgba(14,159,138,.06);
  color: var(--slate-700);
  padding: 10px 14px;
  font-size: var(--text-sm);
  line-height: 1.5;
  display: flex;
  gap: 8px;
  align-items: flex-start;
}
.security-demo-warning::before, .portal-demo-note::before {
  content: '🔒';
  flex-shrink: 0;
  font-size: .9rem;
  margin-top: 1px;
}

.audit-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.audit-filters input {
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-sm);
  padding: 9px 10px;
}

.timeline-operativo {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 4px 0;
}

.timeline-item {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 10px;
}

.timeline-dot {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--blue-50);
  color: var(--blue-700);
  font-weight: 900;
  border: 1px solid var(--blue-100);
}

.timeline-danger .timeline-dot {
  background: var(--rose-100);
  color: var(--rose-600);
}

.timeline-body {
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-sm);
  padding: 10px 12px;
  background: var(--white);
}

.timeline-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.timeline-head time, .timeline-body span {
  color: var(--slate-500);
  font-size: .72rem;
}

.timeline-body p {
  margin: 5px 0;
  color: var(--slate-700);
  font-size: .8rem;
}

.modal-small { max-width: 520px; }
.modal-helper { margin: 0 0 12px; color: var(--slate-600); font-size: .82rem; }

.duplicate-patient-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.duplicate-patient-row {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) auto auto auto auto;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-sm);
  padding: 10px;
}

.duplicate-patient-row div {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.duplicate-patient-row small {
  color: var(--slate-500);
  font-size: .72rem;
}

.inactive-carnet-mark {
  min-height: 220px;
  border-radius: var(--radius);
  border: 1px solid var(--rose-100);
  background: linear-gradient(135deg, #111827, #374151);
  color: var(--white);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 8px;
  text-align: center;
}

.inactive-carnet-mark strong {
  color: #fecaca;
  font-size: 1.6rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.report-work-tray, .quality-alerts-panel {
  margin-top: 14px;
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-sm);
  background: var(--white);
  padding: 12px;
}

.worktray-head strong, .quality-alert-title {
  display: block;
  color: var(--slate-900);
  font-weight: 800;
  font-size: .88rem;
}

.worktray-head span {
  color: var(--slate-500);
  font-size: .72rem;
}

.worktray-tabs {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin: 10px 0;
}

.worktray-tab {
  border: 1px solid var(--slate-200);
  background: var(--slate-50);
  color: var(--slate-600);
  border-radius: 999px;
  padding: 6px 9px;
  font-size: .7rem;
  font-weight: 800;
}

.worktray-tab.active {
  background: var(--blue-50);
  border-color: var(--blue-200);
  color: var(--blue-700);
}

.worktray-tab span {
  margin-left: 4px;
}

.worktray-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.worktray-item {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--slate-200);
  background: var(--white);
  border-radius: var(--radius-sm);
  padding: 9px 10px;
  cursor: default;
  transition: border-color var(--transition), background var(--transition);
}
.worktray-item:hover { border-color: var(--cead-celeste); background: var(--blue-50); }
.worktray-item-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  cursor: pointer;
  min-width: 0;
}
.worktray-item-stale { border-left: 3px solid var(--cead-amber, #f59e0b); }
.worktray-item strong { color: var(--slate-800); font-size: .82rem; }
.worktray-item span, .worktray-item small { color: var(--slate-500); font-size: .72rem; }
.worktray-quick-btn {
  flex-shrink: 0;
  padding: 5px 10px;
  background: var(--cead-celeste);
  color: var(--white);
  border: none;
  border-radius: var(--radius-sm);
  font-size: .72rem;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--transition);
}
.worktray-quick-btn:hover { background: var(--cead-dark); }
/* Chips de estado en bandeja */
.rep-estado-chip {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 99px;
  font-size: .66rem;
  font-weight: 800;
  background: var(--slate-100);
  color: var(--slate-600);
  font-style: normal;
}
.rep-estado-borrador { background: #dbeafe; color: #1e40af; }
.rep-estado-pendiente-por-m-dico { background: #fef3c7; color: #92400e; }
.rep-estado-finalizado { background: #dcfce7; color: #166534; }
.rep-estado-entregado { background: #d1fae5; color: #065f46; }
.rep-estado-escalado-a-calidad { background: #fee2e2; color: #991b1b; }
.rep-estado-vencido { background: #f1f5f9; color: #64748b; }

.report-alert-chip {
  width: max-content;
  border-radius: 999px;
  padding: 3px 7px;
  font-size: .66rem;
  font-weight: 900;
}
.report-alert-soft { background: var(--blue-50); color: var(--blue-700); }
.report-alert-warn { background: #fef3c7; color: #92400e; }
.report-alert-critical { background: var(--rose-100); color: var(--rose-600); }

.quality-alert-row {
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 8px;
}

.quality-alert-row em {
  grid-column: 1 / -1;
  color: var(--slate-600);
  font-size: .73rem;
  font-style: normal;
}

.portal-input-stack {
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.portal-input-stack input {
  width: 100%;
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-sm);
  padding: 11px 12px;
}

.btn-link {
  border: none;
  background: transparent;
  color: var(--blue-700);
  font-weight: 800;
  font-size: .78rem;
  cursor: pointer;
}

.portal-masked-data {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.portal-masked-data span {
  border-radius: 999px;
  padding: 4px 8px;
  background: var(--slate-100);
  color: var(--slate-600);
  font-size: .72rem;
  font-weight: 700;
}

.portal-status-message {
  margin-top: 10px;
  border-radius: var(--radius-sm);
  background: #fff7ed;
  color: #9a3412;
  border: 1px solid #fed7aa;
  padding: 10px;
  font-size: .78rem;
  font-weight: 700;
}

@media (max-width: 900px) {
  .dashboard-quality-grid { grid-template-columns: 1fr; }
  .audit-filters { grid-template-columns: 1fr 1fr; }
  .duplicate-patient-row { grid-template-columns: 1fr; align-items: start; }
}

@media (max-width: 640px) {
  /* exec-kpi-grid gestionado cerca de su definición base (evita conflicto) */
  .quality-row, .audit-row { grid-template-columns: 1fr; align-items: start; }
  .audit-filters { grid-template-columns: 1fr; }
  .session-status-badge { display: none; }
  .portal-access-tabs { flex-direction: column; width: 100%; }
  .portal-access-tabs .portal-tab { width: 100%; }
  .portal-search-card { overflow: hidden; }
}

/* ── Session timer chip ─────────────────────────────────────── */
.session-timer-chip {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 99px;
  background: var(--slate-100);
  font-size: .73rem;
  font-weight: 600;
  color: var(--slate-500);
  cursor: default;
  user-select: none;
  transition: background .3s, color .3s;
}
.session-timer-chip.warning {
  background: rgba(242,181,68,.18);
  color: #b45309;
}
.session-timer-chip.urgent {
  background: rgba(239,68,68,.12);
  color: var(--cead-danger);
}

/* ── PERMISOS DE MÓDULOS ────────────────────────────────────── */
.pm-header-roles {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 8px 16px;
  background: var(--slate-50);
  border-bottom: 1px solid var(--slate-200);
  font-size: .72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--slate-500);
}
.pm-perm-info-placeholder { flex: 1; min-width: 260px; }
.pm-header-roles .pm-role-header {
  width: 130px;
  text-align: center;
}
.pm-perms-list { padding: 8px 0; }
.pm-perm-row {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 12px 16px;
  border-bottom: 1px solid var(--slate-200);
}
.pm-perm-row:last-child { border-bottom: none; }
.pm-perm-info {
  flex: 1;
  min-width: 260px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.pm-perm-icon { font-size: 1.1rem; }
.pm-perm-info strong { display: block; font-size: .84rem; }
.pm-perm-detail { font-size: .74rem; color: var(--slate-500); }
.pm-toggle-wrap {
  width: 130px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  cursor: pointer;
}
.pm-toggle-wrap[title]:hover { background: var(--slate-50); border-radius: 6px; }
.pm-toggle-role { font-size: .7rem; color: var(--slate-500); }
.pm-toggle-cb { display: none; }
.pm-toggle-track {
  width: 38px;
  height: 20px;
  background: var(--slate-200);
  border-radius: 10px;
  position: relative;
  transition: background .18s;
}
.pm-toggle-track::after {
  content: '';
  position: absolute;
  top: 3px; left: 3px;
  width: 14px; height: 14px;
  background: #fff;
  border-radius: 50%;
  transition: transform .18s;
  box-shadow: 0 1px 3px rgba(0,0,0,.18);
}
.pm-toggle-cb:checked + .pm-toggle-track { background: var(--cead-celeste); }
.pm-toggle-cb:checked + .pm-toggle-track::after { transform: translateX(18px); }
.pm-toggle-cb:disabled + .pm-toggle-track { opacity: .45; cursor: not-allowed; }
.pm-note {
  padding: 10px 16px;
  font-size: .75rem;
  color: var(--slate-500);
  background: var(--slate-50);
  border-top: 1px solid var(--slate-200);
  margin: 0;
}

/* ── PARÁMETROS GENERALES ───────────────────────────────────── */
.pg-section { }
.pg-form { padding: 16px; display: flex; flex-direction: column; gap: 14px; }
.pg-form .form-group { margin: 0; }
.pg-modules-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 10px;
  padding: 16px;
}
.pg-module-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border: 1px solid var(--slate-200);
  border-radius: 8px;
  cursor: pointer;
  font-size: .84rem;
  transition: background .15s;
}
.pg-module-item:hover { background: var(--slate-50); }
.pg-module-item input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--cead-celeste); flex-shrink: 0; }
.pg-module-label { flex: 1; }
.pg-module-locked { opacity: .6; cursor: not-allowed; }
.pg-module-locked-badge { font-size: .65rem; color: var(--slate-500); background: var(--slate-100); padding: 1px 6px; border-radius: 10px; white-space: nowrap; }

/* ── MANTENIMIENTO ──────────────────────────────────────────── */
.mant-body { padding: 20px; }
.mant-status {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  border-radius: 10px;
  border: 1.5px solid;
}
.mant-off    { background: rgba(16,185,129,.07); border-color: rgba(16,185,129,.3);  color: #059669; }
.mant-active { background: rgba(239,68,68,.07);  border-color: rgba(239,68,68,.3);   color: #dc2626; }
.mant-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
  animation: mant-pulse 1.5s infinite;
}
@keyframes mant-pulse {
  0%,100% { opacity: 1; }
  50%      { opacity: .4; }
}
.mant-status strong { font-size: .9rem; }
.mant-status span   { font-size: .78rem; margin-left: 4px; opacity: .8; }
.mant-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.btn-danger {
  background: var(--cead-danger,#ef4444);
  color: #fff;
  border: none;
  padding: 8px 18px;
  border-radius: 8px;
  font-size: .84rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s;
}
.btn-danger:hover { background: #dc2626; }

/* ── COPIAS Y EXPORTACIÓN ───────────────────────────────────── */
.copies-grid { display: flex; flex-direction: column; gap: 0; }
.copies-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--slate-200);
  transition: background .12s;
}
.copies-item:last-child { border-bottom: none; }
.copies-item:hover { background: var(--slate-50); }
.copies-item-icon { font-size: 1.4rem; flex-shrink: 0; width: 32px; text-align: center; }
.copies-item-body { flex: 1; }
.copies-item-body strong { display: block; font-size: .86rem; }
.copies-item-body span   { font-size: .76rem; color: var(--slate-500); }
.copies-btn { flex-shrink: 0; white-space: nowrap; }
.copies-item-restore { border-top: 1.5px dashed var(--slate-200); }

/* ── MANUAL DE USO ──────────────────────────────────────────── */
.manual-header { padding: 20px 20px 4px; }
.manual-header h2 { margin: 0 0 6px; font-size: 1.05rem; }
.manual-header p  { margin: 0; font-size: .84rem; color: var(--slate-500); }
.manual-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 12px;
  padding: 16px;
}
.manual-card {
  border: 1px solid var(--slate-200);
  border-radius: 10px;
  overflow: hidden;
  transition: box-shadow .15s;
}
.manual-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.manual-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  cursor: pointer;
  background: var(--white);
  user-select: none;
}
.manual-card-head:hover { background: var(--slate-50); }
.manual-card-head strong { flex: 1; font-size: .84rem; }
.manual-card-icon { font-size: 1.1rem; }
.manual-chevron { color: var(--slate-500); transition: transform .2s; flex-shrink: 0; }
.manual-card-open .manual-chevron { transform: rotate(180deg); }
.manual-card-body {
  padding: 12px 20px 14px 42px;
  background: var(--slate-50);
  border-top: 1px solid var(--slate-200);
  margin: 0;
  font-size: .82rem;
  line-height: 1.75;
  color: var(--cead-text,#334155);
}
.manual-card-body li { margin-bottom: 5px; }

/* ── BITÁCORA ───────────────────────────────────────────────── */
.audit-filters { display: flex; gap: 8px; flex-wrap: wrap; }

@media (max-width: 700px) {
  .pm-header-roles { display: none; }
  .pm-perm-row { flex-wrap: wrap; }
  .pm-toggle-wrap { width: 80px; }
  .manual-grid { grid-template-columns: 1fr; }
  .pg-modules-grid { grid-template-columns: 1fr 1fr; }
  .param-body { flex-direction: column; }
  .param-nav { width: 100%; border-right: none; border-bottom: 1px solid var(--slate-200); flex-direction: row; flex-wrap: wrap; padding: 8px; gap: 4px; }
  .param-nav-group { margin-bottom: 0; }
  .param-nav-group-title { display: none; }
  .param-nav .security-tab { padding: 6px 10px; font-size: .75rem; }
}

/* ── LAYOUT PARAMETRIZACIÓN: nav lateral + contenido ───────── */
.param-body {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  min-height: 0;
  flex: 1;
}

.param-nav {
  width: 205px;
  flex-shrink: 0;
  border-right: 1px solid var(--slate-200);
  padding: 8px 6px;
  background: var(--slate-50);
  display: flex;
  flex-direction: column;
  gap: 1px;
  position: sticky;
  top: 0;
  align-self: flex-start;
  max-height: calc(100vh - 80px);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--slate-200) transparent;
}
.param-nav::-webkit-scrollbar { width: 4px; }
.param-nav::-webkit-scrollbar-track { background: transparent; }
.param-nav::-webkit-scrollbar-thumb { background: var(--slate-200); border-radius: 4px; }

.param-nav-group {
  margin-bottom: 2px;
}

.param-nav-group-title {
  display: block;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--slate-400);
  padding: 6px 8px 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Resetear estilos horizontales de .security-tab dentro del nav lateral */
.param-nav .security-tab {
  display: flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  text-align: left;
  padding: 5px 8px;
  border-radius: 5px;
  font-size: .78rem;
  font-weight: 500;
  color: var(--slate-600);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: background .12s, color .12s;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.4;
}
.param-nav .security-tab:hover {
  background: var(--white);
  color: var(--cead-celeste);
}
.param-nav .security-tab.active {
  background: var(--blue-50);
  color: var(--blue-700);
  font-weight: 700;
  box-shadow: inset 3px 0 0 var(--cead-celeste);
}
.param-nav .security-tab svg {
  flex-shrink: 0;
  opacity: .65;
}
.param-nav .security-tab.active svg { opacity: 1; }

.param-content {
  flex: 1;
  min-width: 0;
  padding: 16px 20px;
  overflow-x: hidden;
}

