.auth-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex}.auth-container{width:100%;max-width:420px}.auth-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.5rem;font-size:.75rem;font-weight:700}.auth-title{color:var(--text);margin-bottom:.35rem;font-size:1.75rem;font-weight:700}.auth-subtitle{color:var(--muted);margin-bottom:1.5rem;font-size:.9rem}.auth-card{background:var(--card-bg);border:1px solid #2a2a2a;border-radius:14px;padding:1.75rem;box-shadow:0 8px 32px #00000073}.oauth-group{flex-direction:column;gap:.6rem;margin-bottom:1.25rem;display:flex}.oauth-btn{width:100%;color:var(--text);cursor:pointer;background:#1a1a1a;border:1px solid #333;border-radius:9px;justify-content:center;align-items:center;gap:10px;padding:10px 16px;font-family:Ubuntu,sans-serif;font-size:.9rem;font-weight:500;transition:background .15s,border-color .15s;display:flex}.oauth-btn:hover{background:#242424;border-color:#444}.oauth-btn.google:hover{background:linear-gradient(#242424,#242424) padding-box padding-box,linear-gradient(135deg,#4285f4,#34a853,#fbbc05,#ea4335) border-box;border:1px solid #0000}.oauth-btn.discord:hover{border-color:var(--accent)}.oauth-btn.github:hover{border-color:#acacac}.auth-divider{color:var(--muted);align-items:center;gap:.75rem;margin-bottom:1.25rem;font-size:.8rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:#2e2e2e;flex:1;height:1px}.auth-status{border-radius:8px;margin-bottom:1rem;padding:10px 14px;font-size:.85rem}.auth-status.error{border:1px solid var(--danger);color:var(--danger);background:#e74c3c1a}.auth-status.success{border:1px solid var(--success);color:var(--success);background:#2ecc711a}.field-group{flex-direction:column;gap:1rem;margin-bottom:1.25rem;display:flex}.field{flex-direction:column;gap:5px;display:flex}.field-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.field label{color:#ccc;font-size:.82rem;font-weight:600}.field input,.field-actions+.password-wrapper input,input[type=email],input[type=text],input[type=password]{width:100%;color:var(--text);background:#161616;border:1px solid #333;border-radius:9px;outline:none;padding:10px 14px;font-family:Ubuntu,sans-serif;font-size:.9rem;transition:border-color .15s}.field input:focus{border-color:var(--accent)}.error-input{border-color:var(--danger)!important}.field-error{color:var(--danger);font-size:.78rem}.field-actions{justify-content:space-between;align-items:center;display:flex}.forgot-link{color:var(--accent);font-size:.8rem;text-decoration:none}.forgot-link:hover{text-decoration:underline}.password-wrapper{position:relative}.password-wrapper input{padding-right:40px}.password-toggle{color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.password-toggle:hover{color:var(--text)}.password-strength{gap:4px;margin-top:6px;display:flex}.strength-bar{background:#2e2e2e;border-radius:2px;flex:1;height:3px;transition:background .2s}.strength-bar.filled-1{background:var(--danger)}.strength-bar.filled-2{background:var(--warning)}.strength-bar.filled-3{background:#4fa3e0}.strength-bar.filled-4{background:var(--success)}.strength-label{color:var(--muted);margin-top:3px;font-size:.75rem}.checkbox-field{color:#bbb;cursor:pointer;align-items:flex-start;gap:8px;font-size:.85rem;display:flex}.checkbox-field input[type=checkbox]{width:auto;accent-color:var(--accent);margin-top:2px}.checkbox-field a{color:var(--accent);text-decoration:none}.checkbox-field a:hover{text-decoration:underline}.auth-submit{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:9px;width:100%;margin-bottom:1rem;padding:11px;font-family:Ubuntu,sans-serif;font-size:.95rem;font-weight:600;transition:background .15s,opacity .15s}.auth-submit:hover:not(:disabled){background:var(--accent-hover)}.auth-submit:disabled,.auth-submit.loading{opacity:.6;cursor:not-allowed}.auth-footer{text-align:center;color:var(--muted);font-size:.85rem}.auth-footer a{color:var(--accent);text-decoration:none}.auth-footer a:hover{text-decoration:underline}.staff-link{text-align:center;color:#555;margin-top:1.25rem;font-size:.8rem}.staff-link a{color:#666;text-decoration:none;transition:color .15s}.staff-link a:hover{color:var(--muted)}.firework-particle{pointer-events:none;opacity:0;border-radius:50%;width:8px;height:8px;position:absolute}@keyframes explode{0%{opacity:1;transform:translate(0)scale(1)}to{transform:translate(var(--dx), var(--dy)) scale(0);opacity:0}}.tfa-steps{justify-content:center;gap:2rem;margin-bottom:1.5rem;display:flex}.tfa-step{color:#555;flex-direction:column;align-items:center;gap:4px;font-size:.78rem;font-weight:500;transition:color .2s;display:flex}.tfa-step.active{color:var(--accent)}.tfa-step-dot{background:#1e1e1e;border:2px solid #333;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:.75rem;font-weight:700;transition:background .2s,border-color .2s;display:flex}.tfa-step.active .tfa-step-dot{background:var(--accent);border-color:var(--accent);color:#fff}.tfa-panel{text-align:center;flex-direction:column;align-items:center;display:flex}.tfa-instruction{color:var(--muted);margin-bottom:1.25rem;font-size:.875rem;line-height:1.55}.tfa-qr-wrapper{margin-bottom:1.25rem}.tfa-qr-placeholder{flex-direction:column;align-items:center;gap:8px;display:flex}.tfa-qr-label{color:var(--muted);font-size:.78rem}.tfa-secret-box{background:#111;border:1px solid #2e2e2e;border-radius:9px;align-items:center;gap:10px;width:100%;margin-bottom:1.25rem;padding:10px 14px;display:flex}.tfa-secret-label{color:var(--muted);white-space:nowrap;font-size:.75rem}.tfa-secret{color:var(--warning);word-break:break-all;text-align:left;flex:1;font-family:Space Mono,Courier New,monospace;font-size:.85rem}.tfa-copy-btn{color:var(--muted);cursor:pointer;white-space:nowrap;background:#222;border:1px solid #333;border-radius:6px;padding:4px 10px;font-size:.78rem;transition:background .15s}.tfa-copy-btn:hover{color:var(--text);background:#2e2e2e}.tfa-code-input-wrapper{width:100%;margin-bottom:1rem}.tfa-code-input{width:100%;color:var(--text);text-align:center;letter-spacing:.35em;background:#161616;border:1px solid #333;border-radius:9px;outline:none;padding:14px;font-family:Space Mono,Courier New,monospace;font-size:1.4rem;transition:border-color .15s}.tfa-code-input:focus{border-color:var(--accent)}.tfa-digit-row{justify-content:center;gap:8px;width:100%;margin-bottom:1rem;display:flex}.tfa-digit-input{width:44px;height:52px;color:var(--text);text-align:center;caret-color:var(--accent);background:#161616;border:1px solid #333;border-radius:9px;outline:none;font-size:1.3rem;font-weight:700;transition:border-color .15s}.tfa-digit-input:focus{border-color:var(--accent)}.tfa-error{color:var(--danger);margin-bottom:.75rem;font-size:.82rem}.tfa-back-btn,.tfa-switch-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-top:.5rem;padding:0;font-size:.82rem;text-decoration:underline}.tfa-back-btn:hover,.tfa-switch-btn:hover{color:var(--text)}.tfa-lock-icon{color:var(--accent);margin-bottom:1.25rem}.tfa-done{gap:.5rem}.tfa-success-icon{border:2px solid var(--success);width:56px;height:56px;color:var(--success);background:#2ecc711f;border-radius:50%;justify-content:center;align-items:center;margin-bottom:.75rem;display:flex}.tfa-done-title{color:var(--text);margin-bottom:.5rem;font-size:1.1rem;font-weight:700}.tfa-backup-grid{grid-template-columns:1fr 1fr;gap:6px;width:100%;margin:1rem 0;display:grid}.tfa-backup-code{color:var(--warning);text-align:center;background:#111;border:1px solid #2a2a2a;border-radius:6px;padding:6px 10px;font-family:Space Mono,Courier New,monospace;font-size:.82rem}:root{--bg:#0d0d0d;--card-bg:#1c1c1c;--text:#e0e0e0;--muted:#aaa;--accent:#5865f2;--accent-hover:#4752c4;--danger:#e74c3c;--success:#2ecc71;--warning:#f39c12;--primary:#3c1c77;--primary-hover:#4547c7;--cf-orange:#f6821f;--cf-orange-hover:#e5720e}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Ubuntu,sans-serif}a{color:inherit;text-decoration:none}
