/* PAGE */

.seguridad-roles-list-page {
  padding: 24px;

  display: flex;
  flex-direction: column;

  gap: 20px;

  height: 100%;

  min-height: 0;
}

/* =========================================
   HEADER
========================================= */

.seguridad-roles-list-header {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 18px;

  flex-wrap: wrap;
}

.seguridad-roles-list-title-row {
  display: flex;
  align-items: center;

  gap: 14px;
}

.seguridad-roles-list-title {
  font-size: var(--font-2xl-22);
  font-weight: var(--font-bold-700);

  color: var(--color-text);
}

.seguridad-roles-list-subtitle {
  margin-top: 4px;

  font-size: var(--font-md-14);

  color: var(--color-text-secondary);
}

/* =========================================
   KPIS
========================================= */

.seguridad-roles-list-kpis {
  display: flex;
  align-items: center;

  gap: 14px;

  flex-wrap: wrap;
}

.seguridad-roles-list-kpi-card {
  min-width: 120px;

  background: var(--color-surface);

  border-radius: var(--radius-lg-16);

  padding: 14px 18px;

  border: 1px solid var(--color-border-light);

  box-shadow: var(--shadow-sm);
}

.seguridad-roles-list-kpi-label {
  font-size: var(--font-sm-12);

  color: var(--color-text-secondary);
}

.seguridad-roles-list-kpi-value {
  margin-top: 6px;

  font-size: var(--font-2xl-22);
  font-weight: var(--font-bold-700);

  color: var(--color-text);
}

/* =========================================
   TOOLBAR
========================================= */

.seguridad-roles-list-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 16px;

  flex-wrap: wrap;
}

.seguridad-roles-list-search {
  position: relative;

  width: 100%;
  max-width: 340px;
}

.seguridad-roles-list-search i {
  position: absolute;

  left: 14px;
  top: 50%;

  transform: translateY(-50%);

  color: var(--color-text-secondary);
}

.seguridad-roles-list-search input {
  width: 100%;
  height: 46px;

  border: 1px solid var(--color-border);

  border-radius: var(--radius-md-12);

  background: var(--color-surface);

  padding: 0 16px 0 42px;

  outline: none;

  font-size: var(--font-md-14);

  transition: var(--transition-fast);
}

.seguridad-roles-list-search input:focus {
  border-color: var(--color-primary);

  box-shadow: 0 0 0 4px rgba(0, 106, 255, 0.08);
}

/* =========================================
   TABLE
========================================= */

.seguridad-roles-list-table-wrapper {
  flex: 1;

  min-height: 0;

  overflow-y: auto;
  overflow-x: auto;

  background: var(--color-surface);

  border-radius: var(--radius-xl-24);

  border: 1px solid var(--color-border-light);

  box-shadow: var(--shadow-sm);
}

.seguridad-roles-list-table {
  width: 100%;

  border-collapse: collapse;

  min-width: 760px;
}

.seguridad-roles-list-table thead {
  position: sticky;

  top: 0;

  z-index: 10;

  background: var(--color-surface);
}

.seguridad-roles-list-table th {
  text-align: left;

  padding: 16px;

  font-size: var(--font-sm-12);
  font-weight: var(--font-semibold-600);

  color: var(--color-text-secondary);

  border-bottom: 1px solid var(--color-border);

  white-space: nowrap;
}

.seguridad-roles-list-table td {
  padding: 16px;

  border-bottom: 1px solid var(--color-border-light);

  vertical-align: middle;
}

.seguridad-roles-list-row {
  transition: var(--transition-fast);
}

.seguridad-roles-list-row:hover {
  background: var(--color-background);
}

/* =========================================
   ROLE
========================================= */

.seguridad-roles-list-role {
  display: flex;
  align-items: center;

  gap: 14px;
}

.seguridad-roles-list-icon {
  width: 46px;
  height: 46px;

  border-radius: var(--radius-md-12);

  background: var(--color-primary);

  display: flex;
  align-items: center;
  justify-content: center;

  flex-shrink: 0;

  color: var(--color-text-white);

  font-size: 18px;
}

.seguridad-roles-list-name {
  font-size: var(--font-md-14);
  font-weight: var(--font-semibold-600);

  color: var(--color-text);
}

.seguridad-roles-list-desc {
  margin-top: 3px;

  font-size: var(--font-sm-12);

  color: var(--color-text-secondary);
}

/* =========================================
   ACTION MENU
========================================= */

.mod-seguridad-action-wrapper {
  position: relative;
}

.mod-seguridad-action-menu {
  position: fixed;

  width: 180px;

  background: var(--color-surface);

  border-radius: var(--radius-md-12);

  border: 1px solid var(--color-border);

  box-shadow: var(--shadow-md);

  padding: 8px;

  z-index: 9999;
}

.mod-seguridad-action-menu.hidden {
  display: none;
}

.mod-seguridad-action-item {
  width: 100%;

  border: none;

  background: transparent;

  padding: 10px 12px;

  border-radius: var(--radius-sm-08);

  display: flex;
  align-items: center;

  gap: 10px;

  cursor: pointer;

  font-size: var(--font-md-14);

  color: var(--color-text);

  transition: var(--transition-fast);
}

.mod-seguridad-action-item:hover {
  background: var(--color-background);
}

.mod-seguridad-action-item.danger {
  color: var(--color-error);
}

.mod-seguridad-action-divider {
  height: 1px;

  background: var(--color-border);

  margin: 6px 0;
}

/* =========================================
   ROLE
========================================= */

.seguridad-roles-list-module {
  display: flex;
  align-items: center;
  gap: 14px;
}

.seguridad-roles-list-icon {
  width: 46px;
  height: 46px;
  border-radius: var(--radius-md-12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 18px;
  flex-shrink: 0;
}

.seguridad-roles-list-name {
  font-size: var(--font-md-14);
  font-weight: var(--font-semibold-600);
  color: var(--color-text);
}

.seguridad-roles-list-desc {
  margin-top: 3px;
  font-size: var(--font-sm-12);
  color: var(--color-text-secondary);
}

/* =========================================
   MOBILE
========================================= */

@media (max-width: 768px) {
  .seguridad-roles-list-page {
    padding: 16px;
  }

  .seguridad-roles-list-header {
    flex-direction: column;

    align-items: stretch;
  }

  .seguridad-roles-list-kpis {
    width: 100%;
  }

  .seguridad-roles-list-kpi-card {
    flex: 1;
  }

  .seguridad-roles-list-search {
    max-width: 100%;
  }
}
