.auth-gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 80% 10%,#fff4cd 0,transparent 26%),#f3f4f2}
.auth-gate[hidden],.portal-shell[hidden]{display:none!important}
.auth-card{width:min(100%,520px);padding:32px;border:1px solid #dfe1e3;border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(25,28,31,.12)}
.auth-brand{display:inline-block;margin-bottom:24px}
.auth-brand img{display:block;width:220px;max-width:70vw}
.auth-card h1{margin:4px 0 8px;font-size:2rem;line-height:1.08;letter-spacing:-.04em}
.auth-intro{margin:0 0 22px;color:#6e737a;font-size:.84rem}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:18px;padding:4px;border-radius:12px;background:#f3f4f2}
.auth-tabs button{border:0;border-radius:9px;padding:10px;background:transparent;font-size:.74rem;font-weight:850;cursor:pointer}
.auth-tabs button.is-active{background:#fff;box-shadow:0 2px 8px rgba(25,28,31,.08)}
.auth-form{display:grid;gap:13px}
.auth-form[hidden],.auth-tabs[hidden]{display:none!important}
.auth-form label{display:grid;gap:6px;color:#4e5258;font-size:.68rem;font-weight:800}
.auth-form input,.auth-form select{width:100%;border:1px solid #d8dade;border-radius:10px;padding:12px;background:#fff;font:inherit;font-size:.8rem;color:#202226;outline:none}
.auth-form input:focus,.auth-form select:focus{border-color:#c99a16;box-shadow:0 0 0 3px rgba(201,154,22,.14)}
.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.auth-submit{width:100%;margin-top:3px;padding:13px}
.auth-submit:disabled{opacity:.6;cursor:wait}
.auth-hint{margin:0;padding:10px 12px;border-left:3px solid #c99a16;background:#fff5d2;color:#655529;font-size:.66rem}
.auth-message{min-height:20px;margin:13px 0 0;color:#137a50;font-size:.72rem;font-weight:750}
.auth-message.is-error{color:#b7463b}
.pending-account{display:grid;gap:10px;padding:16px;border:1px solid #ead69a;border-radius:12px;background:#fff9e8}
.pending-account[hidden]{display:none}
.pending-account strong{font-size:.86rem}
.pending-account p{margin:0;color:#655529;font-size:.7rem}
.pending-account button{justify-self:start}
.auth-return{display:inline-block;margin-top:10px;color:#916b00;text-decoration:none;font-size:.69rem;font-weight:800}
.auth-role-display strong{font-size:.74rem}
.password-field{display:grid;gap:6px}
.password-controls{display:flex;align-items:stretch;gap:8px;min-width:0}
.password-controls input{flex:1;min-width:0}
.password-toggle{flex:0 0 46px;display:grid;place-items:center;border:1px solid #d8dade;border-radius:10px;background:#fff;color:#655529;cursor:pointer}
.password-toggle[hidden]{display:none}
.password-toggle:hover{background:#fff5d2}
.password-toggle:focus-visible{outline:3px solid #c99a16;outline-offset:2px}
.password-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.password-toggle .eye-slash{display:none}
.password-toggle.is-visible .eye-slash{display:block}
.auth-form input,.auth-form select{font-size:1rem;min-height:44px}
.auth-form label,.auth-tabs button,.auth-submit,.auth-return{font-size:.875rem}
@media(max-width:560px){.auth-gate{align-items:start;padding:14px}.auth-card{margin-top:24px;padding:23px 18px}.auth-card h1{font-size:1.65rem}.auth-grid{grid-template-columns:1fr}}
