.login-page { min-height:100vh; display:grid; place-items:center; padding:24px; box-sizing:border-box; background:#f3f5f8; }
.login-panel { width:min(100%,420px); box-sizing:border-box; padding:32px; }
.login-panel h1 { margin:12px 0 24px; font-size:26px; }
.auth-form { display:grid; gap:16px; }
.auth-form label { display:grid; gap:7px; }
.auth-form input,.auth-form select { width:100%; min-height:42px; box-sizing:border-box; border:1px solid #cbd2dd; border-radius:6px; padding:9px 11px; font:inherit; }
.auth-form .auth-checkbox { display:flex; align-items:center; gap:8px; }
.auth-checkbox input { width:18px; min-height:18px; }
.auth-form button { min-height:42px; }
.auth-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.auth-actions button { padding:9px 14px; }
.auth-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:28px; margin-top:24px; }
.auth-error { color:#a12626; }
.auth-notice { color:#36536e; font-size:14px; }
.profile-access { display:flex; align-items:center; gap:12px; margin-left:auto; }
.profile-access button { background:transparent; border:1px solid #cbd2dd; color:#344054; border-radius:6px; padding:7px 11px; cursor:pointer; }
@media(max-width:600px) { .login-page { padding:16px; } .login-panel { padding:24px; } .profile-access { gap:7px; font-size:13px; } }

/* Keep account controls independent of the dashboard's general form rules. */
#users-panel { padding:20px; }
#users-panel .users-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:18px; }
#users-panel h2 { margin:0; font-size:18px; line-height:1.35; }
#users-panel .users-heading p { margin:5px 0 0; color:#667387; font-size:13px; }
#users-panel .users-session-note { flex:none; padding:5px 9px; border:1px solid #e2e8f0; border-radius:6px; background:#f8fafc; color:#667387; font-size:12px; white-space:nowrap; }
#users-panel .users-table-wrap { border:1px solid #e4e9f0; border-radius:8px; }
#users-panel .users-table { width:100%; min-width:0; table-layout:fixed; }
#users-panel .users-table th { background:#f8fafc; color:#667387; font-size:12px; font-weight:500; }
#users-panel .users-table th,#users-panel .users-table td { padding:10px 14px; vertical-align:middle; line-height:1.4; }
#users-panel .users-table th:first-child { width:36%; }
#users-panel .users-table th:nth-child(2) { width:24%; }
#users-panel .users-table td { font-size:13px; overflow-wrap:anywhere; }
#users-panel .users-table tbody tr:last-child td { border-bottom:0; }
#users-panel .users-login { font-weight:600; color:#273548; }
#users-panel .users-self { margin-left:7px; color:#7b8798; font-size:12px; font-weight:400; }
#users-panel .users-state { display:inline-flex; align-items:center; gap:6px; padding:3px 8px; border-radius:5px; background:#edf7f1; color:#28724a; font-size:12px; font-weight:500; white-space:nowrap; }
#users-panel .users-state::before { content:''; width:5px; height:5px; border-radius:50%; background:currentColor; }
#users-panel .users-state.is-inactive { background:#f1f3f6; color:#697586; }
#users-panel .users-last-login { color:#667387; font-variant-numeric:tabular-nums; }
#users-panel .users-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:16px; margin-top:16px; }
#users-panel .users-card { display:grid; align-content:start; align-items:start; gap:14px; min-width:0; margin:0; padding:18px; border:1px solid #e4e9f0; border-radius:9px; background:#fff; }
#users-panel .users-card-heading h3 { margin:0; color:#273548; font-size:15px; line-height:1.4; }
#users-panel .users-card-heading p { margin:4px 0 2px; color:#7b8798; font-size:12px; line-height:1.5; }
#users-panel .users-field { display:grid; grid-template-columns:112px minmax(0,1fr); align-items:start; gap:12px; min-width:0; }
#users-panel .users-field>label { padding-top:9px; color:#526175; font-size:13px; line-height:18px; }
#users-panel .users-field-body { display:grid; align-content:start; gap:5px; width:100%; max-width:420px; min-width:0; }
#users-panel input:not([type=checkbox]),#users-panel select { display:block; width:100%; min-width:0; height:36px; min-height:36px; max-height:36px; margin:0; padding:7px 10px; border:1px solid #d4dce7; border-radius:6px; background:#fff; color:#273548; font:inherit; font-size:13px; line-height:20px; box-shadow:0 1px 2px #18212c04; }
#users-panel input:focus-visible,#users-panel select:focus-visible,#users-panel button:focus-visible { outline:2px solid #7fa5eb; outline-offset:2px; }
#users-panel .users-field-hint { color:#7b8798; font-size:11px; line-height:1.45; }
#users-panel .users-password-tools { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 12px; }
#users-panel button { display:inline-flex; align-items:center; justify-content:center; justify-self:start; flex:none; width:auto; min-width:0; min-height:34px; margin:0; padding:7px 12px; border-radius:6px; font:inherit; font-size:13px; font-weight:500; line-height:18px; white-space:normal; }
#users-panel .users-text-button { min-height:26px; padding:2px 0; border:0; border-radius:3px; background:transparent; color:#285cbb; font-size:12px; }
#users-panel .users-text-button:hover { color:#174497; text-decoration:underline; }
#users-panel .users-checkbox { display:inline-flex; align-items:center; gap:6px; padding:0; color:#667387; font-size:12px; line-height:20px; cursor:pointer; }
#users-panel .users-checkbox input { flex:none; width:15px; height:15px; min-height:15px; margin:0; padding:0; accent-color:#2358b7; }
#users-panel .users-card-actions { display:flex; align-items:center; gap:10px; margin:1px 0 0 124px; }
#users-panel .users-primary { border:1px solid #2358b7; background:#2358b7; color:#fff; }
#users-panel .users-primary:hover { background:#194a9f; }
#users-panel .users-access-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:13px; border-top:1px solid #edf0f4; }
#users-panel .users-access-actions>span { color:#667387; font-size:12px; }
#users-panel .users-access-actions>div { display:flex; flex-wrap:wrap; gap:6px; }
#users-panel .users-secondary { border:1px solid #d9e1ec; background:#fff; color:#526175; }
#users-panel .users-secondary:hover { background:#f5f8fc; }
#users-panel .users-danger { border:1px solid #eadbdb; background:#fff; color:#a34b4b; }
#users-panel .users-danger:hover { background:#fff5f5; }
#users-panel .users-card-note { margin:0; color:#7b8798; font-size:11px; line-height:1.5; }
#users-panel .users-status { margin:14px 0 0; padding:10px 12px; border-radius:6px; background:#f1f6ff; color:#375578; font-size:13px; line-height:1.5; }
#users-panel .users-status:empty { display:none; }
#users-panel .users-status.auth-error { color:#a12626; background:#fff3f3; }
@media(max-width:1120px) {
  #users-panel .users-grid { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:600px) {
  #users-panel { padding:16px; }
  #users-panel .users-heading { flex-direction:column; gap:8px; margin-bottom:14px; }
  #users-panel .users-card { padding:14px; gap:13px; }
  #users-panel .users-field { grid-template-columns:minmax(0,1fr); gap:5px; }
  #users-panel .users-field>label { padding-top:0; font-size:12px; }
  #users-panel .users-field-body { max-width:none; }
  #users-panel input:not([type=checkbox]),#users-panel select { height:40px; min-height:40px; max-height:40px; font-size:16px; }
  #users-panel button { min-height:38px; }
  #users-panel .users-text-button { min-height:30px; }
  #users-panel .users-card-actions { margin-left:0; }
  #users-panel .users-access-actions { flex-wrap:wrap; }
  #users-panel .users-table th,#users-panel .users-table td { padding:9px 7px; }
  #users-panel .users-table th { font-size:11px; white-space:normal; }
  #users-panel .users-table th:first-child { width:28%; }
  #users-panel .users-table th:nth-child(2) { width:29%; }
  #users-panel .users-table td { font-size:12px; }
  #users-panel .users-state { gap:4px; padding:3px 5px; font-size:11px; }
  #users-panel .users-self { display:block; margin-left:0; font-size:11px; }
}
