:root{--login-bg: #0a0a0a;--login-card: rgba(20, 20, 20, .6);--login-surface: rgba(255, 255, 255, .05);--login-surface-strong: rgba(255, 255, 255, .08);--login-border: rgba(255, 255, 255, .12);--login-text: #ffffff;--login-muted: rgba(255, 255, 255, .65);--login-accent: #2563eb;--login-accent-2: #1d4ed8;--login-success: #34d399;--login-danger: #f87171}*,*:before,*:after{box-sizing:border-box}html,body{width:100%;max-width:100%}html,body,body.login-page{min-height:100vh;overflow-x:hidden}body.login-page{margin:0;background:var(--login-bg);color:var(--login-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex;align-items:flex-start;justify-content:center;padding:1.25rem 1rem calc(1.25rem + env(safe-area-inset-bottom,0px));position:relative;overflow-y:auto}body.login-page a{color:var(--login-text);text-decoration:none}body.login-page a:focus-visible,body.login-page button:focus-visible,body.login-page input:focus-visible{outline:2px solid var(--login-accent);outline-offset:2px}.login-background{position:fixed;inset:0;z-index:0}.login-blur{position:absolute;border-radius:50%;filter:blur(100px)}.login-blur-1{width:420px;height:420px;background:#2563eb2e;top:-120px;left:-120px}.login-blur-2{width:520px;height:520px;bottom:-200px;right:-220px}.login-blur-2,.login-blur-3{background:#2563eb1f}.login-blur-3{width:320px;height:320px;top:45%;left:50%;transform:translate(-50%,-50%)}.login-modal{background:var(--login-card);border:1px solid var(--login-border);border-radius:24px;box-shadow:0 25px 50px -12px #00000080;width:min(960px,98vw);margin:0 auto 1rem;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);position:relative;z-index:1;overflow:hidden}.login-modal-split{display:flex;align-items:stretch}.login-modal-content{flex:1;display:flex;flex-direction:column;align-items:center;gap:1.75rem;padding:2.5rem 2.25rem}.login-logo-wrap{display:inline-flex;align-items:center;justify-content:center}.login-logo-wrap,.login-logo{width:64px;height:64px}.login-logo{display:block}.login-text{text-align:center}.login-text h2{margin:0 0 .4rem;font-size:1.55rem;font-weight:700;letter-spacing:-.02em}.login-text p{margin:0;color:var(--login-muted);font-size:.98rem}.login-provider-button,.login-form,.login-divider,.login-status{width:100%;max-width:420px}.login-provider-button{border:1px solid var(--login-border);border-radius:16px;background:var(--login-surface);color:var(--login-text);height:52px;padding:0 1.4rem 0 1rem;font-size:1rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;position:relative;overflow:hidden;transition:transform .25s ease,border-color .25s ease}.login-provider-button:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#2563eb2e,#1d4ed81a);opacity:0;transition:opacity .25s ease}.login-provider-button:hover{transform:translateY(-2px);border-color:#2563eb73}.login-provider-button:hover:before{opacity:1}.login-provider-button:active{transform:translateY(0)}.login-provider-button span,.login-provider-button svg{position:relative;z-index:1}.login-provider-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0}.login-divider{display:flex;align-items:center;gap:.75rem;color:var(--login-muted);font-size:.9rem}.login-divider:before,.login-divider:after{content:"";height:1px;flex:1;background:var(--login-border)}.login-form{gap:.9rem}.login-form,.login-field{display:flex;flex-direction:column}.login-field{gap:.4rem}.login-field label{font-weight:700;font-size:.95rem;color:var(--login-text)}.login-field input{width:100%;height:48px;border-radius:14px;border:1px solid var(--login-border);background:var(--login-surface);color:var(--login-text);padding:0 .95rem;font-size:.98rem;transition:border .2s ease,box-shadow .2s ease,background .2s ease}.login-field input::placeholder{color:#ffffff8c}.login-field input:focus{border-color:#2563eb99;box-shadow:0 0 0 3px #2563eb33;background:#ffffff14;outline:none}.login-form-meta{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.login-remember{display:inline-flex;align-items:center;gap:.6rem;color:var(--login-muted);cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.login-remember input{position:absolute;opacity:0;pointer-events:none}.login-checkmark{width:20px;height:20px;border-radius:6px;border:2px solid var(--login-border);background:var(--login-surface);display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease}.login-checkmark:after{content:"";display:none;width:4px;height:8px;border:solid #ffffff;border-width:0 2px 2px 0;transform:rotate(45deg)}.login-remember:hover .login-checkmark{border-color:#2563eb99;background:#2563eb29}.login-remember input:checked+.login-checkmark{background:var(--login-accent);border-color:var(--login-accent)}.login-remember input:checked+.login-checkmark:after{display:block}.login-link{color:var(--login-muted);font-weight:600;transition:color .2s ease}.login-link:hover,.login-submit{color:var(--login-text)}.login-submit{border:none;border-radius:14px;background:linear-gradient(135deg,var(--login-accent),var(--login-accent-2));height:50px;font-size:1rem;font-weight:700;cursor:pointer;transition:transform .2s ease}.login-submit:hover{transform:translateY(-2px)}.login-submit:active{transform:translateY(0)}.login-status{background:#34d39924;border:1px solid rgba(52,211,153,.5);color:#c7f9e1;padding:.75rem .9rem;border-radius:14px}.login-input-error{margin:.25rem 0 0;color:var(--login-danger);list-style:none;padding-left:0}.login-input-error li{line-height:1.4}.login-modal-illustration{flex:1.1;border-left:1px solid var(--login-border);background:#ffffff0a;display:flex;align-items:center;justify-content:center;min-height:360px;position:relative;overflow:hidden}.login-illustration{width:100%;height:100%;display:block}.register-modal .login-text h2{font-size:1.6rem}.register-meta{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.register-meta,.register-modal .login-submit{width:100%}.register-modal .login-form{max-width:500px}.register-modal .login-muted{color:var(--login-muted);margin:0}.register-modal .login-link{font-size:.95rem;color:#dbeafe}.register-modal .login-link:hover{color:#fff}@media(max-width:900px){.login-modal-content{padding:2.25rem 1.5rem}}@media(max-width:768px){.login-modal{width:100%;max-width:480px}.login-modal-split{flex-direction:column}.login-modal-illustration{display:none}}
