/* Shared access, recovery and password-reset presentation. */
html body.auth-screen { margin:0; padding:40px 20px; min-height:100svh; display:flex; align-items:center; justify-content:center; background:#f5f8f7; color:#183b35; font:14px/1.6 Inter,system-ui,sans-serif; }
.auth-screen *, .auth-screen *::before, .auth-screen *::after { box-sizing:border-box; }
html body.auth-screen .bg { display:none; }
html body.auth-screen .wrap { width:100%; max-width:440px; margin:0; position:relative; }
.auth-screen .top { text-align:center; margin-bottom:28px; }
html body.auth-screen .system-brand-logo.brand-auth { width:195px; padding:0; background:transparent; margin:0 auto 14px; }
html body.login-screen.auth-screen .wrap .top-subtitle { font-size:12px; color:#60746e; margin:0; }
html body.auth-screen .card { background:#fff; border:1px solid #dce6e0; border-radius:16px; overflow:hidden; box-shadow:0 12px 40px #123e3a06; backdrop-filter:none; }
.auth-screen .card-body { padding:32px; }
.auth-kicker { color:#487461; font-size:9px; font-weight:600; letter-spacing:.15em; margin-bottom:12px; }
html body.auth-screen .panel-title { color:#123e3a; font-size:24px; font-weight:600; line-height:1.25; letter-spacing:-.035em; margin:0 0 12px; }
html body.login-screen.auth-screen .wrap .panel-desc { color:#60746e; font-size:13px; line-height:1.7; margin:0 0 26px; }
.auth-screen .field { margin-bottom:20px; }
html body.login-screen.auth-screen .wrap .field label { display:block; font-size:12px; font-weight:500; color:#35544c; margin-bottom:8px; text-transform:none; letter-spacing:0; }
.auth-screen .field-wrap { position:relative; }
html body.auth-screen .field-wrap input { width:100%; height:49px; padding:12px 42px 12px 13px; background:#fff; color:#183b35; border:1px solid #cddbd5; border-radius:8px; font:14px Inter,system-ui,sans-serif; outline:none; transition:border-color .15s,box-shadow .15s; }
html body.auth-screen .field-wrap input:focus { border-color:#23836c; box-shadow:0 0 0 3px #75dfc02b; }
html body.auth-screen .field-wrap input::placeholder { color:#7d9089; }
html body.login-screen.auth-screen .wrap .field-wrap .fi { position:absolute; right:13px; top:50%; transform:translateY(-50%); color:#68867a; font-size:13px; }
.auth-screen button.fi { display:grid; place-items:center; height:38px; width:38px; padding:0; border:0; background:none; cursor:pointer; right:4px; }
html body.auth-screen .btn-submit { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:49px; padding:12px; border:0; border-radius:8px; background:#123e3a; color:#fff; font:600 13px Inter,system-ui,sans-serif; box-shadow:none; cursor:pointer; margin:0 0 22px; transition:background .15s; }
html body.auth-screen .btn-submit:hover { background:#1b5b50; box-shadow:none; }
html body.auth-screen .btn-submit:disabled { opacity:.65; cursor:wait; }
html body.auth-screen .back-link { color:#60746e; text-align:center; font-size:12px; }
html body.auth-screen .back-link a, .auth-screen .auth-forgot { color:#123e3a; font-weight:500; text-decoration:none; }
.auth-screen .auth-forgot { display:block; margin:-4px 0 22px; text-align:right; font-size:12px; }
.auth-screen a:hover { text-decoration:underline; }
html body.auth-screen .alert { padding:14px; border-radius:8px; font-size:12px; line-height:1.7; margin-bottom:22px; display:flex; gap:8px; align-items:flex-start; }
html body.auth-screen :is(.alert-error,.inline-error) { color:#a32e2e; background:#fff1f1; border:1px solid #f1caca; }
html body.auth-screen .alert-success { color:#216748; background:#edf8f1; border:1px solid #c9e5d4; }
.auth-screen .inline-error { display:none; padding:12px; border-radius:8px; font-size:12px; line-height:1.6; margin-bottom:20px; }
.auth-screen .inline-error.visible { display:flex; gap:8px; animation:none; }
html body.auth-screen .req-list { list-style:none; padding:0; margin:0 0 20px; display:grid; gap:7px; }
html body.auth-screen .req-list li { color:#60746e; font-size:11px; display:flex; align-items:center; gap:7px; }
html body.auth-screen .req-list li.ok { color:#216748; }.auth-screen .req-list i { font-size:7px; }
.auth-screen .pw-strength { height:3px; margin-top:8px; border-radius:3px; background:#dce6e0; }.auth-screen .pw-strength.weak{background:#c64c4c;width:33%}.auth-screen .pw-strength.medium{background:#af852c;width:66%}.auth-screen .pw-strength.strong{background:#23836c;width:100%}
.auth-screen .dev-box { padding:12px; margin:18px 0; font-size:11px; color:#7d632e; border:1px solid #e8dcbd; border-radius:8px; background:#fffaf0; }.auth-screen .dev-box a { color:#76571e; overflow-wrap:anywhere; }.auth-screen .dev-box strong{display:block;margin-bottom:6px}
.auth-screen .auth-footer { color:#7a9285; text-align:center; font-size:10px; margin:24px 0 0; }
.auth-screen :is(input,button,a):focus-visible { outline:3px solid #75dfc0; outline-offset:3px; }
@media(max-width:480px) { html body.auth-screen { padding:32px 18px; }.auth-screen .card-body { padding:26px 22px; }html body.auth-screen .panel-title { font-size:22px; } }
@media(prefers-reduced-motion:reduce) { .auth-screen *, .auth-screen *::before, .auth-screen *::after { animation:none!important; transition:none!important; } }
