.mod-seguridad-modulos-page,
.mod-seguridad-modulos-detalle-page {
  height: calc(100vh - var(--header-height));
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  padding: 0px 24px 0;
}

/* HEADER */
.mod-seguridad-modulos-header,
.mod-seguridad-modulos-detalle-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0px;
  position: sticky;
  top: 0;
  z-index: 20;
  background: var(--color-background);
  padding-bottom: 12px;
  flex-shrink: 0;
}

.mod-seguridad-modulos-title-row {
  display: flex;
  align-items: center;
  gap: 14px;
}

/* SCROLL AREA */
.mod-seguridad-modulos-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 2px;
  padding-bottom: 80px;
}

.mod-seguridad-modulos-detalle-header {
  justify-content: flex-start;
  gap: var(--space-lg-16);
}

.mod-seguridad-modulos-title,
.mod-seguridad-modulos-detalle-title {
  font-size: var(--font-3xl-28);
  font-weight: var(--font-bold-700);
  color: var(--color-text);
}

.mod-seguridad-modulos-subtitle,
.mod-seguridad-modulos-detalle-subtitle {
  margin-top: var(--space-xs-04);
  color: var(--color-text-secondary);
  font-size: var(--font-md-14);
}

/* KPI */
.mod-seguridad-modulos-kpis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-lg-16);
  margin-bottom: var(--space-xl-24);
}

.mod-seguridad-modulos-kpi-card {
  margin-top: 10px;
  background: var(--color-surface);
  border-radius: var(--radius-lg-16);
  padding: 8px 12px;
  min-width: 75px;
  min-height: 40px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.mod-seguridad-modulos-kpi-label {
  color: var(--color-text-secondary);
  font-size: var(--font-sm-12);
  margin-bottom: 6px;
}

.mod-seguridad-modulos-kpi-value {
  font-size: 24px;
  font-weight: var(--font-bold-700);
  line-height: 1;
}

/* TOOLBAR */
.mod-seguridad-modulos-toolbar {
  margin-bottom: 20px;
}

.mod-seguridad-modulos-search {
  background: var(--color-surface);
  border-radius: var(--radius-md-12);
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: var(--space-sm-08);
  box-shadow: var(--shadow-sm);
}

.mod-seguridad-modulos-search i {
  color: var(--color-text-secondary);
}

.mod-seguridad-modulos-search input {
  border: none;
  outline: none;
  width: 100%;
  background: transparent;
  color: var(--color-text);
  font-size: var(--font-md-14);
}

/* TABLE */
.mod-seguridad-modulos-table-wrapper {
  background: var(--color-surface);
  border-radius: var(--radius-xl-24);
  box-shadow: var(--shadow-sm);
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.mod-seguridad-modulos-table-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: auto;
  padding-bottom: 80px;
}

.mod-seguridad-modulos-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.mod-seguridad-modulos-table th {
  position: sticky;
  top: 0;
  z-index: 5;
  background: var(--color-surface-secondary);
  text-align: left;
  padding: 16px;
  font-size: var(--font-sm-12);
  color: var(--color-text-secondary);
  border-bottom: 1px solid var(--color-border);
}

.mod-seguridad-modulos-table td {
  padding: 18px 16px;
  border-top: 1px solid var(--color-border-light);
}

.mod-seguridad-modulos-row {
  cursor: pointer;
  transition: var(--transition-fast);
}

.mod-seguridad-modulos-row:hover {
  background: var(--color-surface-secondary);
}

.mod-seguridad-modulos-module {
  display: flex;
  align-items: center;
  gap: 14px;
}

.mod-seguridad-modulos-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md-12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-white);
  font-size: 20px;
}

.mod-seguridad-modulos-name {
  font-weight: var(--font-bold-700);
  color: var(--color-text);
}

.mod-seguridad-modulos-desc {
  margin-top: var(--space-xs-04);
  font-size: var(--font-sm-12);
  color: var(--color-text-secondary);
}

/* DETAIL */
.mod-seguridad-modulos-detalle-card {
  background: var(--color-surface);
  border-radius: var(--radius-xl-24);
  padding: var(--space-xl-24);
  box-shadow: var(--shadow-sm);
}

.mod-seguridad-modulos-section {
  margin-bottom: var(--space-2xl-32);
}

.mod-seguridad-modulos-section-title {
  font-size: var(--font-xl-18);
  font-weight: var(--font-bold-700);
  color: var(--color-text);
  margin-bottom: 20px;
}

.mod-seguridad-modulos-form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.mod-seguridad-modulos-field {
  display: flex;
  flex-direction: column;
}

.mod-seguridad-modulos-field.full {
  grid-column: 1 / -1;
}

.mod-seguridad-modulos-field label {
  margin-bottom: var(--space-sm-08);
  font-size: var(--font-sm-12);
  color: var(--color-text-secondary);
}

.mod-seguridad-modulos-field input,
.mod-seguridad-modulos-field textarea {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md-12);
  padding: 14px;
  outline: none;
  background: var(--color-surface);
  color: var(--color-text);
  font-size: var(--font-md-14);
  transition: var(--transition-fast);
}

.mod-seguridad-modulos-field input:focus,
.mod-seguridad-modulos-field textarea:focus {
  border-color: var(--color-primary);
}

.mod-seguridad-modulos-field textarea {
  min-height: 120px;
  resize: vertical;
}

/* SWITCHES */
.mod-seguridad-modulos-switches {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.mod-seguridad-modulos-switch-row {
  background: var(--color-surface-secondary);
  border-radius: var(--radius-lg-16);
  padding: 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--color-text);
}

/* FOOTER */
.mod-seguridad-modulos-footer {
  margin-top: var(--space-2xl-32);
  display: flex;
  justify-content: flex-end;
  gap: var(--space-md-12);
  padding-top: var(--space-xl-24);
  border-top: 1px solid var(--color-border-light);
}

/* GRID 3 */
.form-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}

/* DISABLED */
.mod-seguridad-modulos-disabled {
  background: var(--color-surface-secondary);
  color: var(--color-text-secondary);
  cursor: not-allowed;
  pointer-events: none;
}

/* SWITCHES */
.switches-margin-top {
  margin-top: var(--space-lg-16);
}

/* PREVIEW */
.mod-seguridad-preview-card {
  background: var(--color-surface-secondary);
  border-radius: var(--radius-lg-16);
  padding: var(--space-lg-16);
  display: flex;
  align-items: center;
  gap: var(--space-lg-16);
}

.mod-seguridad-preview-title {
  font-size: var(--font-lg-16);
  font-weight: var(--font-bold-700);
  color: var(--color-text);
}

.mod-seguridad-preview-subtitle {
  margin-top: 4px;
  font-size: var(--font-sm-12);
  color: var(--color-text-secondary);
}

/* SWITCHES */
.mod-seguridad-modulos-switches-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

/* ITEM */
.mod-seguridad-switch-item {
  height: 72px;
  background: var(--color-surface-secondary);
  border-radius: var(--radius-lg-16);
  padding: 0 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.mod-seguridad-switch-item span {
  font-size: var(--font-md-14);
  font-weight: var(--font-medium-500);
  color: var(--color-text);
}

/* MOBILE */
@media (max-width: 1100px) {
  .mod-seguridad-modulos-switches-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* MOBILE */
@media (max-width: 768px) {
  .mod-seguridad-modulos-page,
  .mod-seguridad-modulos-detalle-page {
    padding: var(--space-lg-16);
  }

  .mod-seguridad-modulos-header,
  .mod-seguridad-modulos-detalle-header {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-lg-16);
  }

  .mod-seguridad-modulos-kpis,
  .mod-seguridad-modulos-form-grid,
  .mod-seguridad-modulos-switches {
    grid-template-columns: 1fr;
  }

  .mod-seguridad-modulos-switches-grid {
    grid-template-columns: 1fr;
  }
  .form-grid-3 {
    grid-template-columns: 1fr;
  }
}

/* ACTION MENU */
.mod-seguridad-action-wrapper {
  position: relative;
  display: flex;
  justify-content: center;
}

.mod-seguridad-action-menu {
  position: fixed;
  width: 220px;
  background: var(--color-surface);
  border-radius: var(--radius-lg-16);
  box-shadow: var(--shadow-md);
  border: 1px solid var(--color-border);
  overflow: hidden;
  z-index: 999999;
  display: flex;
  flex-direction: column;
  white-space: nowrap;
}

.mod-seguridad-action-item {
  width: 100%;
  border: none;
  background: transparent;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  cursor: pointer;
  transition: var(--transition-fast);
  color: var(--color-text);
  font-size: var(--font-md-14);
}

.mod-seguridad-action-item:hover {
  background: var(--color-surface-secondary);
}

.mod-seguridad-action-item.danger {
  color: var(--color-error);
}

.mod-seguridad-action-divider {
  height: 1px;
  background: var(--color-border-light);
}

.mod-seguridad-action-menu.hidden {
  display: none !important;
}
