:root{color-scheme:dark;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:#06172f;color:#fff}.login-shell{min-height:100dvh;display:grid;place-items:center;padding:max(22px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:radial-gradient(circle at 50% 0,#113d72 0,#06172f 45%)}.login-card{width:min(100%,430px);padding:clamp(22px,6vw,38px);border:1px solid #31557f;border-radius:18px;background:#0c2341;box-shadow:0 20px 60px #0008}.login-card header{display:flex;align-items:center;gap:14px;margin-bottom:28px}.brand-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#ff7a18;color:#08162a;font-size:30px;font-weight:900}.login-card header p{margin:0;color:#91bce9;font-size:12px;font-weight:900;letter-spacing:.16em}.login-card h1{margin:2px 0 0;font-size:clamp(25px,7vw,34px)}form{display:grid;gap:10px}label{margin-top:7px;color:#c5daf1;font-weight:750}input{width:100%;min-height:52px;padding:12px 14px;border:1px solid #50739b;border-radius:9px;background:#06172f;color:#fff;font:inherit;font-size:17px}input:focus{outline:3px solid #3184dc55;border-color:#6ab4ff}.password-field{position:relative}.password-field input{padding-right:70px}.password-field button{position:absolute;right:7px;top:7px;height:38px;border:0;border-radius:6px;background:#23486f;color:#fff;font-weight:800}.login-button,.qr-button{min-height:52px;margin-top:10px;border-radius:9px;font:inherit;font-weight:900;cursor:pointer}.login-button{border:1px solid #ffab68;background:#f57c00;color:#101010}.qr-button{border:1px solid #6b96c2;background:#17395d;color:#fff}.qr-button span{font-size:22px;margin-right:7px}.form-error{padding:10px;border:1px solid #ff7373;border-radius:8px;background:#681d28}.login-status{min-height:1.4em;margin:16px 0 0;color:#a9caec;text-align:center}dialog{width:min(calc(100% - 24px),500px);padding:16px;border:1px solid #557da6;border-radius:15px;background:#0c2341;color:#fff}dialog::backdrop{background:#000c}.qr-head{display:flex;align-items:center}.qr-head h2{flex:1;margin:0 0 12px}.qr-head button{border:0;background:transparent;color:#fff;font-size:30px}.scanner{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:#020912}.scanner video{width:100%;height:100%;object-fit:cover}.scan-frame{position:absolute;inset:15%;border:3px solid #ff8a2c;border-radius:12px;box-shadow:0 0 0 999px #0005}.file-scan{display:block;margin-top:12px;padding:12px;border:1px solid #668cb5;border-radius:8px;text-align:center}.file-scan input{position:absolute;opacity:0;pointer-events:none}
