/* =========================================================
   ML RENTABILIDAD · USUARIOS
   ADMINISTRACIÓN / TABLA / MODAL / RESPONSIVE
   ========================================================= */


/* =========================================================
   PAGE
   ========================================================= */

#pageUsuarios {
  width: 100%;
  min-width: 0;
}


/* =========================================================
   HEADER
   ========================================================= */

.users-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;

  gap: 18px;

  margin-bottom: 18px;
}

.users-page-header > div:first-child {
  min-width: 0;
}

.users-page-header h1 {
  margin: 0;

  color: var(--text);

  font-size:
    clamp(
      24px,
      2.2vw,
      34px
    );

  font-weight: 900;

  line-height: 1;

  letter-spacing:
    -0.04em;
}

.users-page-header p {
  margin:
    8px
    0
    0;

  color: var(--muted);

  font-size: 13px;
  font-weight: 600;

  line-height: 1.5;
}

.users-page-header .primary-button {
  flex:
    0
    0
    auto;

  min-height: 40px;

  padding:
    0
    14px;

  border-radius: 10px;
}


/* =========================================================
   SURFACE
   ========================================================= */

.users-surface {
  overflow: hidden;

  border-radius: 14px;
}


/* =========================================================
   TABLE WRAP
   ========================================================= */

.users-table-wrap {
  width: 100%;

  overflow-x: auto;
}


/* =========================================================
   TABLE
   ========================================================= */

.users-table {
  width: 100%;

  min-width: 620px;

  border-collapse: collapse;
}

.users-table th {
  padding:
    11px
    14px;

  border-bottom:
    1px solid
    var(--border);

  background:
    var(--surface-2);

  color:
    var(--muted);

  font-size: 8px;
  font-weight: 850;

  letter-spacing:
    0.05em;

  text-align: left;

  text-transform:
    uppercase;

  white-space: nowrap;
}

.users-table th:last-child {
  width: 70px;

  text-align: right;
}

.users-table td {
  padding:
    11px
    14px;

  border-bottom:
    1px solid
    var(--border-soft);

  color:
    var(--text-2);

  font-size: 10px;
  font-weight: 700;

  vertical-align: middle;

  transition:
    background var(--transition),
    color var(--transition);
}

.users-table tbody tr {
  transition:
    background var(--transition),
    transform var(--transition);
}

.users-table tbody tr:hover td {
  background:
    color-mix(
      in srgb,
      var(--surface-3) 72%,
      transparent
    );
}


/* =========================================================
   USER NAME
   ========================================================= */

.user-list-name {
  min-width: 0;

  display: flex;
  align-items: center;

  gap: 10px;
}

.user-list-avatar {
  width: 34px;
  height: 34px;

  flex:
    0
    0
    auto;

  display: grid;
  place-items: center;

  border:
    1px solid
    var(--border);

  border-radius: 9px;

  background:
    var(--surface-2);

  color:
    var(--muted);

  transition:
    background var(--transition),
    border-color var(--transition),
    color var(--transition),
    transform var(--transition);
}

.users-table tbody tr:hover
.user-list-avatar {
  border-color:
    var(--accent-border);

  background:
    var(--accent-soft);

  color:
    var(--accent);

  transform:
    scale(1.03);
}

.user-list-avatar svg {
  width: 14px;
  height: 14px;
}

.user-list-name strong {
  overflow: hidden;

  color:
    var(--text);

  font-size: 11px;
  font-weight: 850;

  text-overflow:
    ellipsis;

  white-space:
    nowrap;
}


/* =========================================================
   ACTIONS
   ========================================================= */

.user-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.users-table .table-icon-button {
  width: 30px;
  height: 30px;

  display: grid;
  place-items: center;

  border:
    1px solid
    var(--border);

  border-radius: 8px;

  background:
    var(--surface-2);

  color:
    var(--muted);

  transition:
    background var(--transition),
    border-color var(--transition),
    color var(--transition),
    transform var(--transition);
}

.users-table .table-icon-button:hover {
  transform:
    translateY(-1px);
}

.users-table .table-icon-button.danger:hover {
  border-color:
    color-mix(
      in srgb,
      var(--danger) 40%,
      var(--border)
    );

  background:
    var(--danger-soft);

  color:
    var(--danger);
}

.users-table .table-icon-button svg {
  width: 12px;
  height: 12px;
}


/* =========================================================
   EMPTY
   ========================================================= */

.users-empty {
  min-height: 180px;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  gap: 6px;

  padding: 24px;

  color:
    var(--muted);

  font-size: 10px;
  font-weight: 700;

  text-align: center;
}

.users-empty svg {
  width: 24px;
  height: 24px;

  margin-bottom: 4px;
}

.users-empty strong {
  color:
    var(--text);

  font-size: 12px;
  font-weight: 850;
}


/* =========================================================
   MODAL
   ========================================================= */

.user-modal {
  position: fixed;

  top:
    var(--topbar-height);

  right: 0;
  bottom: 0;
  left: 0;

  z-index: 260;

  display: none;

  align-items: center;
  justify-content: center;

  padding: 18px;

  overflow: hidden;

  background:
    rgba(
      0,
      0,
      0,
      0.64
    );

  backdrop-filter:
    blur(8px);

  -webkit-backdrop-filter:
    blur(8px);
}

.user-modal.open {
  display: flex;

  animation:
    userModalBackdrop
    180ms
    ease;
}

@keyframes userModalBackdrop {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}


/* =========================================================
   MODAL CARD
   ========================================================= */

.user-modal-card {
  position: relative;

  width:
    min(
      100%,
      520px
    );

  max-height:
    calc(
      100dvh -
      var(--topbar-height) -
      36px
    );

  display: flex;
  flex-direction: column;

  overflow: hidden;

  border:
    1px solid
    var(--border-strong);

  border-radius: 16px;

  background:
    linear-gradient(
      180deg,
      var(--surface),
      color-mix(
        in srgb,
        var(--surface-2) 65%,
        var(--surface)
      )
    );

  box-shadow:
    0
    28px
    90px
    rgba(
      0,
      0,
      0,
      0.42
    );

  animation:
    userModalEnter
    220ms
    cubic-bezier(
      .2,
      .8,
      .2,
      1
    );
}

.user-modal-card::before {
  position: absolute;

  top: 0;
  left: 18%;
  right: 18%;

  height: 1px;

  content: "";

  pointer-events: none;

  background:
    linear-gradient(
      90deg,
      transparent,
      var(--accent),
      transparent
    );

  opacity: 0.65;
}

@keyframes userModalEnter {
  from {
    opacity: 0;

    transform:
      translateY(12px)
      scale(0.985);
  }

  to {
    opacity: 1;

    transform:
      translateY(0)
      scale(1);
  }
}


/* =========================================================
   MODAL HEADER
   ========================================================= */

.user-modal-header {
  flex:
    0
    0
    auto;

  min-height: 66px;

  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 12px;

  padding:
    13px
    16px;

  border-bottom:
    1px solid
    var(--border);

  background:
    var(--surface-2);
}

.user-modal-header > div {
  min-width: 0;
}

.user-modal-header h2 {
  margin:
    1px
    0
    0;

  color:
    var(--text);

  font-size: 18px;
  font-weight: 900;

  line-height: 1.1;

  letter-spacing:
    -0.035em;
}

.user-modal-header .section-kicker {
  color:
    var(--muted);

  font-size: 7px;
  font-weight: 850;

  letter-spacing:
    0.12em;

  text-transform:
    uppercase;
}

.user-modal-header .icon-button {
  width: 32px;
  height: 32px;

  display: grid;
  place-items: center;

  flex:
    0
    0
    auto;

  border:
    1px solid
    var(--border);

  border-radius: 8px;

  background:
    var(--surface);

  color:
    var(--muted);
}

.user-modal-header .icon-button:hover {
  border-color:
    var(--danger);

  background:
    var(--danger-soft);

  color:
    var(--danger);
}


/* =========================================================
   FORM
   ========================================================= */

.user-form {
  min-height: 0;

  display: flex;
  flex-direction: column;

  flex: 1;
}


/* =========================================================
   BODY
   ========================================================= */

.user-modal-body {
  min-height: 0;

  display: grid;

  gap: 15px;

  padding:
    18px
    16px;

  overflow-y: auto;

  overscroll-behavior:
    contain;
}


/* =========================================================
   FIELDS
   ========================================================= */

.user-modal-body .field {
  display: grid;

  gap: 7px;
}

.user-modal-body .field > span {
  color:
    var(--text-2);

  font-size: 10px;
  font-weight: 800;
}


/* =========================================================
   INPUT SHELL
   ========================================================= */

.user-modal-body .input-shell {
  min-height: 46px;

  display: flex;
  align-items: center;

  overflow: hidden;

  border:
    1px solid
    var(--border);

  border-radius: 10px;

  background:
    var(--surface-2);

  transition:
    border-color var(--transition),
    background var(--transition),
    box-shadow var(--transition);
}

.user-modal-body .input-shell:focus-within {
  border-color:
    var(--accent-border);

  background:
    var(--surface-3);

  box-shadow:
    0
    0
    0
    3px
    var(--focus-ring);
}


/* =========================================================
   INPUT ICON
   ========================================================= */

.user-modal-body .input-icon {
  width: 16px;
  height: 16px;

  margin-left: 12px;

  flex:
    0
    0
    auto;

  color:
    var(--muted);
}

.user-modal-body
.input-shell:focus-within
.input-icon {
  color:
    var(--accent);
}


/* =========================================================
   INPUT
   ========================================================= */

.user-modal-body .input-shell input {
  width: 100%;
  min-width: 0;
  min-height: 44px;

  padding:
    0
    11px;

  border: 0;
  outline: 0;

  background:
    transparent;

  color:
    var(--text);

  font-size: 11px;
  font-weight: 750;
}


/* =========================================================
   PASSWORD ACTION
   ========================================================= */

.user-modal-body .input-action {
  width: 36px;
  height: 36px;

  display: grid;
  place-items: center;

  flex:
    0
    0
    auto;

  margin-right: 4px;

  border: 0;

  border-radius: 8px;

  background:
    transparent;

  color:
    var(--muted);

  transition:
    background var(--transition),
    color var(--transition),
    transform var(--transition);
}

.user-modal-body .input-action:hover {
  background:
    var(--surface-4);

  color:
    var(--text);

  transform:
    scale(1.03);
}

.user-modal-body .input-action svg {
  width: 14px;
  height: 14px;
}


/* =========================================================
   MESSAGE
   ========================================================= */

.user-form-message {
  min-height: 18px;

  color:
    var(--danger);

  font-size: 9px;
  font-weight: 700;

  line-height: 1.4;
}


/* =========================================================
   FOOTER
   ========================================================= */

.user-modal-footer {
  flex:
    0
    0
    auto;

  min-height: 62px;

  display: flex;
  align-items: center;
  justify-content: flex-end;

  gap: 8px;

  padding:
    10px
    16px;

  border-top:
    1px solid
    var(--border);

  background:
    var(--surface-2);
}

.user-modal-footer
.secondary-button,
.user-modal-footer
.primary-button {
  min-height: 40px;

  padding:
    0
    15px;

  border-radius: 9px;

  font-size: 9px;
  font-weight: 850;
}


/* =========================================================
   DARK
   ========================================================= */

html[data-theme="dark"]
.users-surface {
  background:
    rgba(
      14,
      17,
      21,
      0.96
    );
}


/* =========================================================
   LIGHT
   ========================================================= */

html[data-theme="light"]
.users-surface {
  background:
    rgba(
      255,
      255,
      255,
      0.98
    );
}


/* =========================================================
   TABLET
   ========================================================= */

@media (
  max-width: 900px
) {
  .users-page-header {
    flex-direction: column;

    align-items: stretch;
  }

  .users-page-header
  .primary-button {
    width: fit-content;
  }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (
  max-width: 700px
) {
  .users-page-header
  .primary-button {
    width: 100%;

    justify-content: center;
  }

  .user-modal {
    top:
      var(--topbar-height);

    padding: 8px;
  }

  .user-modal-card {
    width: 100%;

    max-height:
      calc(
        100dvh -
        var(--topbar-height) -
        16px
      );

    border-radius: 13px;
  }
}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (
  max-width: 480px
) {
  .users-page-header h1 {
    font-size: 25px;
  }

  .user-modal-header,
  .user-modal-body,
  .user-modal-footer {
    padding-left: 11px;
    padding-right: 11px;
  }

  .user-modal-footer {
    display: grid;

    grid-template-columns:
      1fr
      1fr;
  }

  .user-modal-footer button {
    width: 100%;

    justify-content: center;
  }
}


/* =========================================================
   TOUCH
   ========================================================= */

@media (
  hover: none
) {
  .users-table
  .table-icon-button:hover,
  .user-modal-body
  .input-action:hover {
    transform: none;
  }
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (
  prefers-reduced-motion:
  reduce
) {
  .user-modal.open,
  .user-modal-card {
    animation:
      none !important;
  }
}/* =========================================================
   FIX · USUARIOS
   MÁS CONTRASTE / DIVISIONES / TIPOGRAFÍA MÁS GRANDE
   ========================================================= */

#pageUsuarios {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}


/* =========================================================
   CONTRASTE LOCAL
   ========================================================= */

html[data-theme="light"] #pageUsuarios {
  --text: #0a0f1a;
  --text-2: #1f2937;
  --muted: #475569;
  --muted-2: #64748b;

  --border:
    rgba(15, 23, 42, 0.16);

  --border-soft:
    rgba(15, 23, 42, 0.11);

  --border-strong:
    rgba(15, 23, 42, 0.28);
}


html[data-theme="dark"] #pageUsuarios {
  --text: #f8fafc;
  --text-2: #dbe3ee;
  --muted: #aeb8c6;
  --muted-2: #8f9bad;

  --border:
    rgba(255, 255, 255, 0.13);

  --border-soft:
    rgba(255, 255, 255, 0.08);

  --border-strong:
    rgba(255, 255, 255, 0.22);
}


/* =========================================================
   TÍTULOS
   ========================================================= */

#pageUsuarios h1,
#pageUsuarios h2,
#pageUsuarios h3 {
  color:
    var(--text) !important;

  font-weight:
    950 !important;
}


#pageUsuarios h1 {
  font-size:
    clamp(25px, 2.2vw, 35px) !important;
}


/* =========================================================
   KICKERS / TEXTOS SECUNDARIOS
   ========================================================= */

#pageUsuarios .section-kicker,
#pageUsuarios .surface-kicker {
  color:
    var(--text-2) !important;

  font-size:
    9px !important;

  font-weight:
    900 !important;
}


#pageUsuarios p {
  color:
    var(--text-2) !important;

  font-size:
    13px !important;

  font-weight:
    750 !important;
}


/* =========================================================
   BOTONES
   ========================================================= */

#pageUsuarios button,
#pageUsuarios .primary-button,
#pageUsuarios .secondary-button {
  font-size:
    10px !important;

  font-weight:
    900 !important;
}


/* =========================================================
   SUPERFICIES
   ========================================================= */

#pageUsuarios .surface,
#pageUsuarios .users-surface,
#pageUsuarios .users-list-surface,
#pageUsuarios .users-filter-panel {
  border:
    1px solid
    var(--border-strong) !important;
}


/* =========================================================
   HEADERS DE BLOQUES
   ========================================================= */

#pageUsuarios .surface-header,
#pageUsuarios .users-header,
#pageUsuarios .users-list-header {
  border-bottom:
    1px solid
    var(--border-strong) !important;
}


#pageUsuarios .surface-header h2,
#pageUsuarios .users-header h2,
#pageUsuarios .users-list-header h2 {
  color:
    var(--text) !important;

  font-size:
    16px !important;

  font-weight:
    950 !important;
}


/* =========================================================
   BUSCADORES
   ========================================================= */

#pageUsuarios .users-search,
#pageUsuarios .user-search {
  border-color:
    var(--border-strong) !important;
}


#pageUsuarios .users-search input,
#pageUsuarios .user-search input {
  color:
    var(--text) !important;

  font-size:
    12px !important;

  font-weight:
    850 !important;
}


#pageUsuarios input::placeholder,
#pageUsuarios textarea::placeholder {
  color:
    var(--muted) !important;

  font-weight:
    750 !important;

  opacity: 1;
}


/* =========================================================
   SELECTS
   ========================================================= */

#pageUsuarios select {
  border-color:
    var(--border-strong) !important;

  color:
    var(--text) !important;

  font-size:
    11px !important;

  font-weight:
    850 !important;
}


/* =========================================================
   INPUTS
   ========================================================= */

#pageUsuarios input,
#pageUsuarios textarea {
  color:
    var(--text) !important;

  font-size:
    12px !important;

  font-weight:
    850 !important;
}


/* =========================================================
   LABELS
   ========================================================= */

#pageUsuarios .field > span,
#pageUsuarios label > span {
  color:
    var(--text) !important;

  font-size:
    11px !important;

  font-weight:
    900 !important;
}


/* =========================================================
   TABLA
   ========================================================= */

#pageUsuarios table {
  border-color:
    var(--border-strong) !important;
}


#pageUsuarios table th {
  padding:
    12px
    10px !important;

  border-bottom:
    1px solid
    var(--border-strong) !important;

  color:
    var(--text-2) !important;

  font-size:
    9px !important;

  font-weight:
    950 !important;
}


#pageUsuarios table td {
  padding:
    11px
    10px !important;

  border-bottom:
    1px solid
    var(--border) !important;

  color:
    var(--text) !important;

  font-size:
    10px !important;

  font-weight:
    800 !important;
}


/* =========================================================
   DIVISIONES VERTICALES
   ========================================================= */

#pageUsuarios table th:not(:last-child),
#pageUsuarios table td:not(:last-child) {
  border-right:
    1px solid
    var(--border-soft);
}


/* =========================================================
   HOVER FILA
   ========================================================= */

#pageUsuarios table tbody tr:hover td {
  background:
    color-mix(
      in srgb,
      var(--surface-3) 90%,
      transparent
    ) !important;
}


/* =========================================================
   USERNAME / NOMBRE
   ========================================================= */

#pageUsuarios .user-name,
#pageUsuarios .usuario-nombre,
#pageUsuarios .users-name,
#pageUsuarios .user-cell strong {
  color:
    var(--text) !important;

  font-size:
    11px !important;

  font-weight:
    950 !important;
}


/* =========================================================
   TEXTO SECUNDARIO DE USUARIO
   ========================================================= */

#pageUsuarios .user-email,
#pageUsuarios .user-username,
#pageUsuarios .usuario-email,
#pageUsuarios .usuario-username,
#pageUsuarios .user-cell span,
#pageUsuarios .user-cell small {
  color:
    var(--text-2) !important;

  font-size:
    9px !important;

  font-weight:
    750 !important;
}


/* =========================================================
   BADGES
   ========================================================= */

#pageUsuarios .badge,
#pageUsuarios .user-role,
#pageUsuarios .user-status,
#pageUsuarios .usuario-rol,
#pageUsuarios .usuario-estado {
  min-height:
    25px !important;

  border-color:
    var(--border-strong) !important;

  font-size:
    9px !important;

  font-weight:
    900 !important;
}


/* =========================================================
   BOTONES DE TABLA
   ========================================================= */

#pageUsuarios .table-icon-button,
#pageUsuarios .user-action-button {
  width:
    31px !important;

  height:
    31px !important;

  border-color:
    var(--border-strong) !important;
}


/* =========================================================
   CONTADORES / KPI
   ========================================================= */

#pageUsuarios .users-count,
#pageUsuarios .users-count-box,
#pageUsuarios .users-summary-card {
  border-color:
    var(--border-strong) !important;
}


#pageUsuarios .users-count span,
#pageUsuarios .users-count-box span,
#pageUsuarios .users-summary-card span {
  color:
    var(--text-2) !important;

  font-size:
    8px !important;

  font-weight:
    850 !important;
}


#pageUsuarios .users-count strong,
#pageUsuarios .users-count-box strong,
#pageUsuarios .users-summary-card strong {
  color:
    var(--text) !important;

  font-size:
    16px !important;

  font-weight:
    950 !important;
}


/* =========================================================
   EMPTY / LOADING
   ========================================================= */

#pageUsuarios .users-empty,
#pageUsuarios .users-loading,
#pageUsuarios .usuarios-empty {
  color:
    var(--text-2) !important;

  font-size:
    11px !important;

  font-weight:
    800 !important;
}


#pageUsuarios .users-empty strong,
#pageUsuarios .usuarios-empty strong {
  color:
    var(--text) !important;

  font-size:
    12px !important;

  font-weight:
    950 !important;
}


/* =========================================================
   MODAL
   ========================================================= */

#pageUsuarios .user-modal-card,
#pageUsuarios .users-modal-card,
#pageUsuarios .usuario-modal-card {
  border:
    1px solid
    var(--border-strong) !important;
}


/* =========================================================
   MODAL HEADER
   ========================================================= */

#pageUsuarios .user-modal-header,
#pageUsuarios .users-modal-header,
#pageUsuarios .usuario-modal-header {
  border-bottom:
    1px solid
    var(--border-strong) !important;
}


#pageUsuarios .user-modal-header h2,
#pageUsuarios .users-modal-header h2,
#pageUsuarios .usuario-modal-header h2 {
  color:
    var(--text) !important;

  font-size:
    20px !important;

  font-weight:
    950 !important;
}


/* =========================================================
   MODAL CAMPOS
   ========================================================= */

#pageUsuarios .user-modal-body .field > span,
#pageUsuarios .users-modal-body .field > span,
#pageUsuarios .usuario-modal-body .field > span {
  color:
    var(--text) !important;

  font-size:
    11px !important;

  font-weight:
    900 !important;
}


#pageUsuarios .user-modal-body input,
#pageUsuarios .user-modal-body select,
#pageUsuarios .user-modal-body textarea,
#pageUsuarios .users-modal-body input,
#pageUsuarios .users-modal-body select,
#pageUsuarios .users-modal-body textarea,
#pageUsuarios .usuario-modal-body input,
#pageUsuarios .usuario-modal-body select,
#pageUsuarios .usuario-modal-body textarea {
  border-color:
    var(--border-strong) !important;

  color:
    var(--text) !important;

  font-size:
    12px !important;

  font-weight:
    900 !important;
}


/* =========================================================
   CONTRASEÑA
   ========================================================= */

#pageUsuarios input[type="password"] {
  font-weight:
    900 !important;
}


/* =========================================================
   MENSAJES
   ========================================================= */

#pageUsuarios .user-form-message,
#pageUsuarios .users-form-message,
#pageUsuarios .usuario-form-message {
  font-size:
    10px !important;

  font-weight:
    850 !important;
}


/* =========================================================
   MODAL FOOTER
   ========================================================= */

#pageUsuarios .user-modal-footer,
#pageUsuarios .users-modal-footer,
#pageUsuarios .usuario-modal-footer {
  border-top:
    1px solid
    var(--border-strong) !important;
}


#pageUsuarios .user-modal-footer button,
#pageUsuarios .users-modal-footer button,
#pageUsuarios .usuario-modal-footer button {
  font-size:
    11px !important;

  font-weight:
    900 !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (
  max-width: 700px
) {
  #pageUsuarios table th {
    font-size:
      9px !important;
  }

  #pageUsuarios table td {
    font-size:
      10px !important;
  }

  #pageUsuarios input,
  #pageUsuarios select,
  #pageUsuarios textarea {
    font-size:
      12px !important;
  }

  #pageUsuarios .field > span {
    font-size:
      11px !important;
  }
}