.users-page {
  width:
    100%;

  max-width:
    1600px;

  margin:
    0 auto;

  padding:
    32px;
}

.users-page__header {
  display:
    flex;

  align-items:
    flex-end;

  justify-content:
    space-between;

  gap:
    24px;

  margin-bottom:
    24px;
}

.page-eyebrow {
  color:
    var(--accent);

  font-size:
    11px;

  font-weight:
    800;

  letter-spacing:
    0.1em;
}

.users-page__header h1 {
  margin:
    6px 0;

  font-size:
    32px;
}

.users-page__header p {
  margin:
    0;

  color:
    var(--text-muted);
}

.users-panel {
  overflow:
    hidden;

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

  border-radius:
    14px;

  background:
    var(--surface);
}

.users-filters {
  display:
    grid;

  grid-template-columns:
    minmax(240px, 1fr) 190px 190px auto;

  align-items:
    end;

  gap:
    14px;

  padding:
    20px;

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

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

.filter-field {
  display:
    grid;

  gap:
    7px;
}

.filter-field span {
  color:
    var(--text-muted);

  font-size:
    12px;

  font-weight:
    700;
}

.filter-field input,
.filter-field select {
  width:
    100%;

  min-height:
    42px;

  padding:
    0 12px;

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

  border-radius:
    9px;

  outline:
    none;

  background:
    var(--surface);

  color:
    var(--text);
}

.filter-field input:focus,
.filter-field select:focus {
  border-color:
    var(--accent);
}

.filter-button {
  min-height:
    42px;
}

.users-table-header {
  display:
    flex;

  align-items:
    center;

  min-height:
    54px;

  padding:
    0 20px;

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

.users-table-header strong {
  font-size:
    14px;
}

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

  overflow-x:
    auto;
}

.users-table {
  width:
    100%;

  min-width:
    1120px;

  border-collapse:
    collapse;
}

.users-table th,
.users-table td {
  padding:
    14px 16px;

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

  text-align:
    left;

  vertical-align:
    middle;
}

.users-table th {
  background:
    #fafbf8;

  color:
    var(--text-muted);

  font-size:
    11px;

  font-weight:
    800;

  letter-spacing:
    0.05em;

  text-transform:
    uppercase;
}

.users-table td {
  font-size:
    13px;
}

.users-table tbody tr:hover {
  background:
    #fafbf8;
}

.table-center {
  text-align:
    center !important;
}

.user-identity {
  display:
    flex;

  align-items:
    center;

  gap:
    11px;
}

.user-avatar {
  display:
    grid;

  flex:
    0 0 auto;

  width:
    38px;

  height:
    38px;

  place-items:
    center;

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

  border-radius:
    10px;

  background:
    var(--accent-soft);

  color:
    var(--accent-dark);

  font-size:
    12px;

  font-weight:
    800;
}

.user-identity strong,
.user-identity span {
  display:
    block;
}

.user-identity strong {
  font-size:
    13px;
}

.user-identity span {
  margin-top:
    3px;

  color:
    var(--text-muted);

  font-size:
    11px;
}

.role-badge,
.status-badge {
  display:
    inline-flex;

  align-items:
    center;

  justify-content:
    center;

  min-height:
    26px;

  padding:
    0 9px;

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

  border-radius:
    999px;

  font-size:
    10px;

  font-weight:
    800;

  letter-spacing:
    0.04em;
}

.role-badge--admin {
  border-color:
    #b9c9b1;

  background:
    #eaf0e6;

  color:
    #45623c;
}

.role-badge--tecnico {
  background:
    #f3f4f1;

  color:
    #626b60;
}

.status-badge--active {
  border-color:
    #b8cfaf;

  background:
    #edf5e9;

  color:
    #456b39;
}

.status-badge--inactive {
  border-color:
    #d5b9b7;

  background:
    #fff2f1;

  color:
    #8f423e;
}

.table-actions-cell {
  width:
    1%;
}

.table-actions {
  display:
    flex;

  align-items:
    center;

  gap:
    6px;

  white-space:
    nowrap;
}

.action-button {
  min-height:
    32px;

  padding:
    0 10px;

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

  border-radius:
    7px;

  background:
    var(--surface);

  color:
    var(--text-muted);

  font-size:
    11px;

  font-weight:
    700;
}

.action-button:hover:not(:disabled) {
  border-color:
    var(--accent);

  color:
    var(--accent-dark);
}

.action-button--danger:hover:not(:disabled) {
  border-color:
    #c89591;

  background:
    #fff5f4;

  color:
    #973f3a;
}

.action-button:disabled {
  cursor:
    not-allowed;

  opacity:
    0.4;
}

.users-empty {
  height:
    160px;

  color:
    var(--text-muted);

  text-align:
    center !important;
}

.users-empty--error {
  color:
    #993f3a;
}

.users-pagination {
  display:
    flex;

  align-items:
    center;

  justify-content:
    flex-end;

  gap:
    14px;

  min-height:
    66px;

  padding:
    12px 20px;
}

.users-pagination span {
  color:
    var(--text-muted);

  font-size:
    12px;

  font-weight:
    600;
}

.secondary-button {
  min-height:
    40px;

  padding:
    0 14px;

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

  border-radius:
    9px;

  background:
    var(--surface);

  color:
    var(--text);

  font-weight:
    700;
}

.secondary-button:hover:not(:disabled) {
  border-color:
    var(--accent);

  color:
    var(--accent-dark);
}

.secondary-button:disabled {
  cursor:
    not-allowed;

  opacity:
    0.45;
}

.users-message {
  margin-bottom:
    16px;

  padding:
    13px 16px;

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

  border-radius:
    10px;

  font-size:
    13px;

  font-weight:
    600;
}

.users-message--success {
  border-color:
    #b8cfaf;

  background:
    #edf5e9;

  color:
    #456b39;
}

.users-message--error {
  border-color:
    #d5b9b7;

  background:
    #fff2f1;

  color:
    #8f423e;
}

.modal-open {
  overflow:
    hidden;
}

.users-modal {
  position:
    fixed;

  z-index:
    1000;

  inset:
    0;

  display:
    grid;

  place-items:
    center;

  padding:
    24px;
}

.users-modal__backdrop {
  position:
    absolute;

  inset:
    0;

  background:
    rgba(25, 30, 24, 0.54);
}

.users-modal__dialog {
  position:
    relative;

  z-index:
    1;

  width:
    min(650px, 100%);

  max-height:
    calc(100vh - 48px);

  overflow-y:
    auto;

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

  border-radius:
    15px;

  background:
    var(--surface);
}

.users-modal__header {
  display:
    flex;

  align-items:
    flex-start;

  justify-content:
    space-between;

  gap:
    20px;

  padding:
    22px 24px;

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

.users-modal__header span {
  color:
    var(--accent);

  font-size:
    10px;

  font-weight:
    800;

  letter-spacing:
    0.1em;
}

.users-modal__header h2 {
  margin:
    5px 0 0;

  font-size:
    22px;
}

.modal-close-button {
  display:
    grid;

  width:
    34px;

  height:
    34px;

  place-items:
    center;

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

  border-radius:
    8px;

  background:
    var(--surface);

  color:
    var(--text-muted);

  font-size:
    22px;
}

.user-form {
  padding:
    24px;
}

.form-grid {
  display:
    grid;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  gap:
    18px;
}

.form-grid--single {
  grid-template-columns:
    1fr;
}

.form-field--full {
  grid-column:
    1 /
    -1;
}

.form-field select {
  width:
    100%;

  min-height:
    48px;

  padding:
    0 14px;

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

  border-radius:
    10px;

  outline:
    none;

  background:
    var(--surface);

  color:
    var(--text);
}

.form-field small {
  color:
    var(--text-muted);

  font-size:
    11px;
}

.modal-form-error {
  margin-top:
    18px;

  padding:
    12px 14px;

  border:
    1px solid #d5b9b7;

  border-radius:
    9px;

  background:
    #fff2f1;

  color:
    #8f423e;

  font-size:
    13px;
}

.users-modal__footer {
  display:
    flex;

  align-items:
    center;

  justify-content:
    flex-end;

  gap:
    10px;

  margin:
    24px -24px -24px;

  padding:
    18px 24px;

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

  background:
    #fafbf8;
}

@media (
  max-width: 1100px
) {
  .users-filters {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .filter-field--search {
    grid-column:
      1 /
      -1;
  }
}

@media (
  max-width: 780px
) {
  .users-page {
    padding:
      20px;
  }

  .users-page__header {
    align-items:
      stretch;

    flex-direction:
      column;
  }

  .users-page__header .primary-button {
    width:
      100%;
  }

  .users-filters {
    grid-template-columns:
      1fr;
  }

  .filter-field--search {
    grid-column:
      auto;
  }

  .form-grid {
    grid-template-columns:
      1fr;
  }

  .form-field--full {
    grid-column:
      auto;
  }

  .users-pagination {
    justify-content:
      center;
  }
}

@media (
  max-width: 520px
) {
  .users-page {
    padding:
      14px;
  }

  .users-modal {
    align-items:
      end;

    padding:
      0;
  }

  .users-modal__dialog {
    width:
      100%;

    max-height:
      92vh;

    border-right:
      0;

    border-bottom:
      0;

    border-left:
      0;

    border-radius:
      16px 16px 0 0;
  }

  .users-modal__footer {
    align-items:
      stretch;

    flex-direction:
      column-reverse;
  }

  .users-modal__footer button {
    width:
      100%;
  }
}

/* =========================================================
   AGRO INTEL · USUARIOS A TODO EL ANCHO
   ========================================================= */

#page-content {
  width: 100%;
  max-width: none;
}

.users-page,
.usuarios-page,
.users-container,
.usuarios-container,
.users-content,
.usuarios-content,
.users-list,
.usuarios-list,
.users-detail,
.usuarios-detail {
  width: 100%;
  max-width: none;
  min-width: 0;
}

.users-page,
.usuarios-page {
  padding:
    24px
    18px;
}

.users-page > *,
.usuarios-page > *,
.users-container > *,
.usuarios-container > *,
.users-content > *,
.usuarios-content > * {
  width: 100%;
  max-width: none;
  min-width: 0;
}

.users-header,
.usuarios-header,
.users-filters,
.usuarios-filters,
.users-table-container,
.usuarios-table-container,
.users-panel,
.usuarios-panel,
.users-card,
.usuarios-card {
  width: 100%;
  max-width: none;
  min-width: 0;
}

@media (min-width: 821px) {
  .users-page,
  .usuarios-page {
    width: 100%;
    padding:
      24px
      28px;
  }

  body.sidebar-desktop-collapsed
  .users-page,
  body.sidebar-desktop-collapsed
  .usuarios-page {
    padding-inline:
      32px;
  }
}

@media (max-width: 820px) {
  .users-page,
  .usuarios-page {
    width: 100%;
    max-width: 100%;
    padding:
      16px
      12px;
  }

  .users-page > *,
  .usuarios-page > *,
  .users-container > *,
  .usuarios-container > *,
  .users-content > *,
  .usuarios-content > * {
    width: 100%;
    max-width: 100%;
  }
}
