// ============================================================================= // UsersPage — the admin user-account list + "create an account" dialog. // Shares the table language of messages-page.scss / corrections-page.scss; // its own file since nothing outside this page uses these classes. // ============================================================================= .users-page__header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-md); flex-wrap: wrap; } // "Nouvel utilisateur" — the page's single primary action. .users-page__new { flex-shrink: 0; padding: var(--space-sm) var(--space-md); font-family: var(--font-body); font-size: var(--font-size-sm); font-weight: 600; color: #fff; background: var(--color-primary); border: 1px solid var(--color-primary); border-radius: var(--radius-base); cursor: pointer; &:hover { opacity: 0.9; } } .users-table-wrap { overflow-x: auto; } .users-table { width: 100%; border-collapse: collapse; font-size: var(--font-size-sm); th, td { padding: var(--space-xs) var(--space-sm); border-bottom: 1px solid var(--color-border); text-align: left; vertical-align: top; } th { color: var(--color-text-muted); font-weight: 600; } &__date { white-space: nowrap; } &__email { color: var(--color-text-muted); font-size: var(--font-size-xs); } } // Create-user modal — the `Dialog` primitive supplies the panel/scroll/close; // this only sizes the fields, the footer buttons and the password reveal. .user-create-dialog { &.dialog-panel { max-width: 32rem; width: 100%; } label { display: block; margin: var(--space-sm) 0 var(--space-xs); font-size: var(--font-size-sm); font-weight: 600; } input { width: 100%; padding: var(--space-sm); font-family: var(--font-body); font-size: var(--font-size-sm); color: var(--color-text); background: var(--color-background); border: 1px solid var(--color-border); border-radius: var(--radius-base); } .field-error { margin: var(--space-xs) 0 0; font-size: var(--font-size-xs); color: var(--color-error); } .form-error { margin: var(--space-sm) 0 0; font-size: var(--font-size-sm); color: var(--color-error); } &__submit { color: #fff; background: var(--color-primary); border-color: var(--color-primary); &:hover:not(:disabled) { opacity: 0.9; } } // Read-only temp password + its "Copier" button, side by side. &__password-row { display: flex; gap: var(--space-sm); input { font-family: var(--font-mono); letter-spacing: 0.03em; } button { flex-shrink: 0; padding: var(--space-sm) var(--space-md); font-family: var(--font-body); font-size: var(--font-size-sm); font-weight: 600; color: var(--color-text); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-base); cursor: pointer; &:hover { border-color: var(--color-primary); color: var(--color-primary); } } } &__warning { margin: var(--space-sm) 0 0; font-size: var(--font-size-xs); color: var(--color-text-muted); font-style: italic; } }