/* Login follows the RESURS evening-building reference. */
.auth-page { color-scheme:dark; margin:0; min-height:100vh; min-height:100svh; padding:24px; display:flex; align-items:center; justify-content:center; color:#f5f7fa; font-family:Inter,'Segoe UI',Arial,sans-serif; background:#101d30 url('/assets/login-background.png') center / cover fixed no-repeat; position:relative; isolation:isolate; }
.auth-page::before { content:''; position:fixed; inset:0; z-index:-1; background:linear-gradient(180deg,#07101c2e,#03091265); }
.login-stage { width:450px; max-width:100%; padding:0; }
.login-card { padding:54px 54px 40px; border:1px solid #d4e7ff66; border-radius:12px; background:linear-gradient(135deg,#bbd8ff14,transparent 45%),linear-gradient(140deg,#102236b8,#060c17b3 75%); box-shadow:0 25px 70px #0005,inset 0 1px #eef6ff29,inset 0 -1px #eef6ff0b; backdrop-filter:blur(20px) saturate(135%); -webkit-backdrop-filter:blur(20px) saturate(135%); }
.login-brand { margin-bottom:35px; text-align:center; }
.login-brand a { display:flex; align-items:center; justify-content:center; gap:10px; text-decoration:none; color:#f8faff; }
.login-brand img { width:63px; height:63px; }
.login-brand strong { font-size:44px; font-weight:750; letter-spacing:-.8px; line-height:1; }
.login-tagline { margin:10px -8px 0; font-size:8px; letter-spacing:3.4px; white-space:nowrap; color:#e4eaf3; }
.login-byline { font-size:12px; color:#c0cce0; margin:13px 0 0; display:flex; align-items:center; justify-content:center; gap:9px; }
.login-brand .login-byline img { width:168px; height:41px; }
.login-card #auth-intro { text-align:center; margin:-9px 0 25px; }
.login-card h1 { font-size:20px; font-weight:600; margin-bottom:9px; letter-spacing:-.4px; }
.login-card #auth-description { font-size:12px; line-height:1.7; color:#a9b5c7; }
.login-card .login-field { position:relative; display:flex; align-items:center; margin:0 0 15px; }
.login-card .login-field > svg { position:absolute; left:14px; width:19px; height:19px; fill:none; stroke:#c7cdd5; stroke-width:1.8; pointer-events:none; }
.login-card .login-field input { width:100%; height:46px; margin:0; padding:0 15px 0 45px; border-radius:6px; background:linear-gradient(110deg,#ffffff0b,#ffffff05); border:1px solid #c3c9d05c; box-shadow:inset 0 1px 4px #0002; color:#f5f7fc; font-size:13px; transition:border-color .15s,box-shadow .15s; }
.login-field input::placeholder { color:#b3bac5; opacity:1; }
.login-card input:focus { outline:none; border-color:#3489ff; box-shadow:0 0 0 3px #1676ff26; }
.login-card .password-field input { padding-right:46px; }
.login-card #show-password { position:absolute; inset:1px 1px 1px auto; width:42px; height:auto; border:0; background:none; color:#cdd3dd; padding:10px; }
.login-card #show-password svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; }
.login-card #show-password[aria-pressed=true] { color:#62b0ff; }
.login-card button:focus-visible,.login-brand a:focus-visible { outline:2px solid #7dc1ff; outline-offset:4px; }
.login-card .auth-submit { width:100%; height:44px; margin:4px 0 0; padding:0 10px; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:600; border:1px solid #127fff; border-radius:6px; color:white; background:linear-gradient(110deg,#087aff,#0964fa); box-shadow:0 5px 18px #0058df29; }
.login-card .auth-submit:hover { background:#2488ff; }
.login-card .auth-submit:disabled { opacity:.6; cursor:wait; }
.login-card .auth-hint { color:#b3bfd0; font-size:11px; line-height:1.7; margin:1px 0 15px; }
.login-card #auth-error { color:#ffacb7; font-size:12px; line-height:1.6; margin:0 0 15px; }
.login-card #auth-error:empty { display:none; }
.login-divider { display:flex; gap:14px; align-items:center; color:#a7afbd; font-size:12px; margin:26px 0 17px; }
.login-divider::before,.login-divider::after { content:''; height:1px; flex:1; background:#b7bfcb66; }
.login-links { display:flex; justify-content:space-between; align-items:center; gap:15px; }
.login-links button,#setup-notice button { background:none; border:0; padding:4px 0; color:#7fc4ff; font-size:12px; font-weight:400; }
.login-links button:hover,#setup-notice button:hover { color:#c3e6ff; text-decoration:underline; }
.login-card .password-help { font-size:12px; line-height:1.7; margin-top:20px; padding:12px; border-radius:5px; border:1px solid #4e67834d; color:#c3d1e3; background:#182b4144; }
#setup-notice { margin-top:24px; padding-top:19px; border-top:1px solid #ffffff18; text-align:center; font-size:11px; color:#acb8ca; }
#setup-notice span { display:block; margin-bottom:5px; }
#setup-notice button { font-size:11px; }
.login-footer { display:flex; flex-direction:column; align-items:center; gap:11px; margin:25px 0 0; color:#b8c6d7; font-size:10px; text-shadow:0 1px 4px #000; }
.login-footer img { width:148px; height:36px; filter:drop-shadow(0 1px 4px #0006); }
.login-card #auth-success { text-align:center; }
.login-card #auth-success h2 { font-size:20px; font-weight:600; }
.login-card #auth-success p { font-size:13px; line-height:1.8; color:#bdc8d8; margin:13px 0 23px; }
.login-card #auth-success .success-mark { margin:0 auto 20px; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.login-card [hidden] { display:none!important; }
@media(max-width:520px) { .auth-page { padding:24px 18px; background-attachment:scroll; } .login-card { padding:40px 27px 30px; } .login-brand strong { font-size:38px; } .login-brand img { width:55px; height:55px; } .login-tagline { font-size:7px; letter-spacing:2.8px; } .login-brand { margin-bottom:31px; } .login-footer { font-size:9px; } }
@media(prefers-reduced-transparency:reduce) { .login-card { background:#0c1725; backdrop-filter:none; } }
.install-card { padding:38px; }
.install-card h1 { text-align:center; }
.install-intro { color:#bac7d8; font-size:12px; line-height:1.8; margin:15px 0; }
.install-intro:empty { display:none; }
.install-card details { border-bottom:1px solid #ffffff1c; padding:14px 0; }
.install-card summary { font-size:12px; cursor:pointer; color:#dce7f6; }
.install-card details p { font-size:11px; color:#aebfd4; line-height:1.8; margin-top:12px; }
.install-note { color:#a9bacf; font-size:11px; line-height:1.8; margin:22px 0; }
.install-open { color:#82c8ff; font-size:13px; text-decoration:none; }

.login-download { display:inline-flex; align-items:center; gap:8px; padding:9px 18px; color:#a9dcff; background:#0b1b2cbb; border:1px solid #62b9ff66; border-radius:7px; font-size:13px; text-decoration:none; text-shadow:none; }
.login-download svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.login-download:hover { color:#fff; background:#123756; border-color:#82c8ff; }
.login-download:focus-visible { outline:2px solid #82c8ff; outline-offset:4px; }
.login-card .code-field input { padding:0 12px; text-align:center; font-size:25px; letter-spacing:9px; font-variant-numeric:tabular-nums; height:58px; }
#verification-actions { text-align:center; margin:18px 0 0; color:#bdc8d8; font-size:12px; line-height:1.7; }
#resend-code { border:0; background:none; color:#7fc4ff; padding:8px; }
#resend-code:disabled { opacity:.6; cursor:default; }
