/* ==========================================================================
   Administration screens (same shell, same components)
   ========================================================================== */
.toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 16px; }
.toolbar .search-field { max-width: 340px; }
.toolbar .spacer { flex: 1; }
.filters-row { display: flex; gap: 6px; overflow-x: auto; margin: -2px -4px 20px; padding: 2px 4px 4px; }

/* Statut sized for its longest badge (« Mot de passe à définir »); Fonction gives way and truncates. */
.grid-users { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) 160px 44px 112px 20px; }
.grid-activity { grid-template-columns: 132px minmax(0, 1fr) minmax(0, 1.5fr) 130px; }
.grid-logins { grid-template-columns: minmax(0, 1.2fr) 140px minmax(0, 1fr) 130px 44px 110px; }
.grid-links { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) 130px 120px 100px; }
.grid-internal { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr) 120px 110px 100px; }
.grid-spaces { grid-template-columns: minmax(0, 1.4fr) 140px 140px 24px; }
.grid-recent-admin { grid-template-columns: 110px minmax(0, 1fr) 130px; }

.cell-person { display: flex; align-items: center; gap: 12px; min-width: 0; }
.cell-person .name { font-size: 14px; font-weight: 600; color: var(--ink); }
.cell-person .mail { font-size: 12.5px; color: var(--muted); }
.mfa-on { color: var(--olive-ink); }
.mfa-off { color: var(--faint); }
.row-chevron { color: var(--faint); }
.list-row:hover .row-chevron { color: var(--ink); }

.activity-line { color: var(--ink); font-size: 13.5px; min-width: 0; }
.activity-line .who { font-weight: 600; }
.activity-line .what { color: var(--muted); }
.activity-line .obj { font-weight: 500; }
.activity-date { font-size: 12.5px; color: var(--muted); }
.ip { font-family: var(--font-mono); font-size: 12px; color: var(--muted); }

.settings-grid { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; } /* cards of a row share their height */
.settings-grid .card { margin: 0; }
.settings-grid .card + .card { margin-top: 0; }

.admin-dash { display: grid; gap: 24px; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); align-items: start; }
.quota { padding: 20px; }
.quota .big { font-size: 28px; font-weight: 600; letter-spacing: -.02em; line-height: 1; }
.quota .meter { margin-top: 14px; height: 8px; }
.quota-legend { margin-top: 10px; display: flex; justify-content: space-between; font-size: 12.5px; color: var(--muted); }

.user-hero { display: flex; align-items: center; gap: 16px; padding: 16px; border-radius: var(--r-lg); border: 1px solid var(--line); margin-bottom: 20px; }
.user-hero .badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.temp-password { margin-top: 12px; }

.legend { display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 14px 20px; border-top: 1px solid var(--line); font-size: 12.5px; color: var(--muted); }
.foot-note { margin-top: 16px; font-size: 12.5px; color: var(--muted); }

@media (max-width: 1179.98px) {
  .admin-dash { grid-template-columns: 1fr; }
}
@media (max-width: 1023.98px) {
  .settings-grid { grid-template-columns: 1fr; }
  .grid-users { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) 160px 20px; }
  .grid-users > .col-hide-md { display: none; }
  .grid-logins { grid-template-columns: minmax(0, 1fr) 130px 110px; }
  .grid-logins > .col-hide-md { display: none; }
  .grid-links, .grid-internal { grid-template-columns: minmax(0, 1fr) 120px 100px; }
  .grid-links > .col-hide-md, .grid-internal > .col-hide-md { display: none; }
  .grid-activity { grid-template-columns: 110px minmax(0, 1fr); }
  .grid-activity > .col-hide-md { display: none; }
}
@media (max-width: 767.98px) {
  .grid-users { grid-template-columns: minmax(0, 1fr) auto 20px; }
  .grid-users > .col-hide-sm, .grid-logins > .col-hide-sm, .grid-activity > .col-hide-sm,
  .grid-links > .col-hide-sm, .grid-internal > .col-hide-sm, .grid-spaces > .col-hide-sm { display: none; }
  .grid-logins { grid-template-columns: minmax(0, 1fr) auto; }
  .grid-activity { grid-template-columns: minmax(0, 1fr); row-gap: 2px; }
  .grid-links, .grid-internal { grid-template-columns: minmax(0, 1fr) auto; }
  .grid-spaces { grid-template-columns: minmax(0, 1fr) auto 20px; }
  .list-head.grid-users, .list-head.grid-logins, .list-head.grid-activity, .list-head.grid-links,
  .list-head.grid-internal, .list-head.grid-spaces { display: none; }
  .toolbar .search-field { max-width: none; }
}
.temp-password { flex-wrap: nowrap; align-items: flex-start; }
.temp-password > .i { margin-top: 2px; }
.temp-password .btn { flex-shrink: 0; }

/* Tags */
.grid-tags { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 100px 24px; }
@media (max-width: 767.98px) { .grid-tags { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 24px; } }
.tag-filter { width: 180px; }
.tag-members { max-height: 320px; overflow-y: auto; margin-top: 8px; border: 1px solid var(--line); border-radius: 12px; padding: 4px; }
.tag-member { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: var(--r-sm); }
.tag-member:hover { background: var(--hover); }
.tag-member.is-dim { opacity: .6; }
.tag-delete { margin-right: auto; }
.tag-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
