.auth-gate { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:22px; background:linear-gradient(135deg,rgba(237,247,251,.98),rgba(248,245,238,.98)); }
.auth-gate[hidden] { display:none; }
.auth-card { width:min(440px,100%); padding:30px; border:1px solid #dce8ee; border-radius:24px; background:#fff; box-shadow:0 24px 70px rgba(40,78,101,.16); }
.auth-brand { display:flex; align-items:center; gap:13px; }
.auth-card > p { margin:16px 0 22px; color:#6e8192; font-size:13px; line-height:1.55; }
.auth-form { display:grid; gap:14px; }
.auth-submit { min-height:45px; margin-top:3px; }
.topbar-actions { display:flex; align-items:center; gap:10px; }
.account-box { display:flex; align-items:center; gap:10px; padding:7px 8px 7px 12px; border:1px solid #dce8ee; border-radius:14px; background:#fff; }
.account-box > div { display:flex; flex-direction:column; min-width:96px; }
.account-box strong { max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.account-box span { color:#6e8192; font-size:9px; }
.account-box .institution-clock { margin-top:2px; color:#1464a5; font-weight:800; }
.account-logout { border:0; padding:7px 9px; border-radius:9px; color:#9a4f4f; background:#fff0ef; font:inherit; font-size:10px; font-weight:800; cursor:pointer; }
.user-admin-grid { display:grid; grid-template-columns:minmax(300px,.8fr) minmax(400px,1.2fr); gap:18px; }
.user-intro { margin:7px 0 18px; color:#6e8192; font-size:12px; line-height:1.5; }
.user-form { margin-top:18px; }
.users-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.users-list { display:grid; gap:10px; margin-top:14px; }
.user-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; padding:14px; border:1px solid #dce8ee; border-radius:14px; background:#fbfdfe; }
.user-row h4 { margin:0; font-size:13px; }
.user-row p { margin:3px 0 0; color:#6e8192; font-size:11px; line-height:1.4; }
.user-status { border:0; padding:8px 10px; border-radius:10px; color:#2f6656; background:#e8f6f0; font:inherit; font-size:10px; font-weight:800; cursor:pointer; }
.user-status.inactive { color:#9a4f4f; background:#fff0ef; }
.user-actions { display:flex; align-items:center; gap:7px; }
.public-position-form { grid-column:1/-1; display:grid; gap:7px; border-top:1px solid #dce8ee; padding-top:10px; font-size:11px; }
.public-position-form input { min-width:0; flex:1; }
.public-position-form small { color:#6e8192; }
.public-position-form [role=status] { color:#2f6656; }
.user-delete { border:1px solid #f0cccc; padding:8px 10px; border-radius:10px; color:#9a3f3f; background:#fff; font:inherit; font-size:10px; font-weight:800; cursor:pointer; }
.user-delete:hover { border-color:#d99191; background:#fff4f3; }
.user-delete:disabled { cursor:wait; opacity:.55; }
.current-user-label { display:inline-block; margin-left:5px; padding:2px 6px; border-radius:999px; color:#1b659d; background:#e8f3fa; font-size:8px; vertical-align:middle; }
[data-auth][hidden] { display:none; }
@media (max-width:1050px) { .topbar-actions { width:100%; align-items:flex-start; flex-direction:column; } .account-box { align-self:flex-end; } }
@media (max-width:850px) { .user-admin-grid { grid-template-columns:1fr; } .nav { width:100%; overflow-x:auto; } .nav button { white-space:nowrap; } .account-box { align-self:stretch; justify-content:space-between; } }
.account-edit-form { grid-column:1/-1; width:100%; padding:20px; margin-top:16px; background:#f7fafc; border:1px solid #dbe5ed; border-radius:12px; }
.account-edit-form[hidden] { display:none; }
.account-edit-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.account-edit-grid label { display:flex; flex-direction:column; gap:7px; font-size:12px; color:#466075; }
.account-edit-grid label[hidden] { display:none; }
.account-edit-grid input,.account-edit-grid select { width:100%; min-width:0; font-size:14px; }
.account-edit-form .muted { font-size:12px; margin:16px 0; }
.account-edit-form [role=status] { display:block; margin-top:10px; font-size:13px; color:#944343; }
@media(max-width:650px) { .account-edit-grid { grid-template-columns:1fr; } }
