/* Shared standalone authentication pages. */
body.auth-page { font-family:'Segoe UI',Inter,Arial,sans-serif; background:radial-gradient(ellipse at 15% 10%,rgba(111,161,158,.16),transparent 50%),radial-gradient(ellipse at 85% 90%,rgba(91,125,162,.18),transparent 50%),linear-gradient(rgba(12,22,32,.86),rgba(12,22,32,.94)),url('/img/background.png') center/cover fixed; color:#e9f3f7; min-height:100vh; min-height:100dvh; padding:40px 20px; overflow-x:hidden; overflow-y:auto; }
.auth-page::before,.auth-page::after { display:none; }
.auth-page :is(.login-wrapper,.register-wrapper) { width:100%; max-width:480px; margin:auto; }
.auth-page.auth-register .register-wrapper { max-width:620px; }
.auth-page :is(.login-container,.register-container) { padding:36px; background:linear-gradient(145deg,rgba(227,244,255,.06),transparent),rgba(24,38,50,.88); border:1px solid rgba(224,243,255,.2); border-radius:26px; box-shadow:0 24px 70px rgba(0,0,0,.3); backdrop-filter:blur(20px); animation:none; }
.auth-page :is(.login-container,.register-container)::before,.auth-page :is(.login-container,.register-container)::after { display:none; }
.auth-page .logo-section { margin-bottom:28px; }
.auth-page .auth-kicker { display:block; color:#b6dfcf; font-size:.65rem; font-weight:600; letter-spacing:.17em; margin-bottom:20px; }
.auth-page .logo { width:64px; height:64px; object-fit:contain; margin:0 auto 18px; animation:none; filter:none; }
.auth-page h1 { color:#f2f8fb; font-size:2rem; letter-spacing:-.04em; font-weight:600; margin-bottom:10px; }
.auth-page .subtitle { color:#aabccc; font-size:.88rem; line-height:1.6; }
.auth-page .form-group { margin-bottom:20px; }
.auth-page .form-group label { color:#bdcfdd; font-size:.8rem; font-weight:500; letter-spacing:0; }
.auth-page :is(input,select) { width:100%; min-width:0; box-sizing:border-box; min-height:48px; padding:13px 46px; border:1px solid rgba(224,243,255,.18); border-radius:12px; background:rgba(8,20,33,.4); color:#e9f3f7; font-family:inherit; font-size:16px; color-scheme:dark; }
.auth-page select { padding-right:30px; }
.auth-page select option { background:#1e2c3b; color:#e9f3f7; }
.auth-page input::placeholder { color:#8299aa; font-size:.85rem; }
.auth-page :is(input,select):focus { background:rgba(8,20,33,.5); border-color:#a8d4df; outline:2px solid rgba(168,212,223,.35); outline-offset:2px; box-shadow:none; }
.auth-page .input-icon { color:#91b4b3; font-size:.95rem; }
.auth-page .input-wrapper:focus-within .input-icon { color:#c5e6d8; }
.auth-page .password-toggle { color:#aabccc; right:10px; padding:10px; font-size:1rem; }
.auth-page .password-toggle:hover { color:#d7eee6; }
.auth-page .forgot-password { margin-top:-6px; margin-bottom:22px; }
.auth-page a,.auth-page .form-group small a { color:#b6dfcf!important; }
.auth-page a:hover { color:#d7eee6!important; text-decoration:underline; }
.auth-page .btn-primary { min-height:48px; padding:14px 16px; border:1px solid rgba(255,255,255,.25); border-radius:12px; background:linear-gradient(135deg,#c0ead9,#a8d4df); color:#152f35; font-family:inherit; font-size:.9rem; font-weight:600; box-shadow:none; }
.auth-page .btn-primary::before { display:none; }
.auth-page .btn-primary:hover { background:#d0eee4; transform:none; box-shadow:none; }
.auth-page .btn-primary:disabled { opacity:.45; cursor:not-allowed; }
.auth-page :is(button,a):focus-visible { outline:2px solid #a8d4df; outline-offset:4px; }
.auth-page .divider { margin:24px 0; color:#8299aa; font-size:.7rem; }
.auth-page .divider::before,.auth-page .divider::after { background:rgba(224,243,255,.13); }
.auth-page :is(.register-link,.login-link) { color:#aabccc; font-size:.83rem; line-height:1.7; }
.auth-page .error-message { background:rgba(248,144,144,.07); border-color:rgba(248,144,144,.25); color:#f4b6b6; animation:none; }
.auth-page .checklist { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:12px; }
.auth-page .checklist li { color:#aabccc; font-size:.73rem; line-height:1.5; }
.auth-page .checklist li.valid { color:#b6dfcf; }
.auth-page .strength-bar { background:rgba(224,243,255,.09); height:5px; border-radius:6px; }
.auth-page .strength-fill.strong { background:#b6dfcf; }
.auth-page .strength-fill.good { background:#a8d4df; }
.auth-page .strength-fill.fair { background:#e4c78b; }
.auth-page .strength-fill.weak { background:#f4b6b6; }
@media(max-width:550px) { body.auth-page { padding:24px 14px; } .auth-page :is(.login-container,.register-container) { padding:26px 22px; border-radius:22px; } .auth-page h1 { font-size:1.75rem; } .auth-page .checklist { grid-template-columns:minmax(0,1fr); } }
@media(prefers-reduced-motion:reduce) { .auth-page * { animation:none!important; transition:none!important; } }
.auth-page .error-message.show { display:flex; align-items:flex-start; gap:11px; padding:14px 16px; border-radius:12px; line-height:1.5; }
.auth-page .error-message > i { margin-top:3px; flex-shrink:0; }
.auth-page .error-message strong { display:block; font-size:.85rem; font-weight:600; }
.auth-page .error-message p { margin:5px 0 0; color:#dfbec5; font-size:.8rem; }
