.users-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.users-heading h2 { margin:0; }
.users-heading p { margin:.4rem 0; color:var(--color-text-muted); }
.users-filters { margin:1rem 0; }
.users-filters.form-grid { grid-template-columns:2fr 1fr 1fr; }
.users-table td { vertical-align:middle; }
.users-table small { display:block; color:var(--color-text-muted); }
.user-status { display:inline-block; border-radius:999px; padding:.2rem .65rem; font-size:.85rem; background:var(--color-surface-strong); }
.user-status-active { background:#dcfce7; color:#14532d; }
.user-status-expired, .user-status-blocked, .user-status-invalid { background:#fee2e2; color:#7f1d1d; }
.user-status-scheduled { background:#dbeafe; color:#1e3a8a; }
.user-expiring { color:var(--color-warning); font-weight:600; }
.user-dialog { box-sizing:border-box; width:min(760px, calc(100vw - 2rem)); max-height:90vh; overflow:auto; padding:1.5rem; border:1px solid var(--color-border); border-radius:var(--radius-lg); color:var(--color-text); background:var(--color-surface); box-shadow:0 16px 60px #0f172a40; }
.user-dialog::backdrop { background:#0f172a88; }
.user-dialog fieldset { border:1px solid var(--color-border); border-radius:.5rem; margin:1rem 0; padding:1rem; min-width:0; }
.user-dialog legend { font-weight:600; padding:0 .4rem; }
.user-dialog label { display:flex; flex-direction:column; gap:.35rem; margin:.5rem 0; }
.user-dialog .user-check { flex-direction:row; align-items:center; }
.user-check input { width:auto; }
.user-dialog p { color:var(--color-text-muted); }
.user-dialog [role=alert] { color:var(--color-danger); }
.user-dialog dl { display:grid; grid-template-columns:auto 1fr; gap:.5rem 1rem; }
.user-dialog dt { font-weight:600; }
.user-dialog dd { margin:0; overflow-wrap:anywhere; }
.user-dialog .form-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem; }
.user-action-dialog { width:min(520px, calc(100vw - 2rem)); }
.users-table button { margin:.2rem; }
@media(max-width:600px) { .user-dialog { padding:1rem; } .user-dialog dl { grid-template-columns:1fr; } .users-heading > button { width:100%; } .users-filters.form-grid { grid-template-columns:1fr; } }
