.auth-page{background-color:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex;position:relative;overflow:hidden}.auth-page:before{content:"";z-index:0;background:radial-gradient(at 20%,#3b82f614 0%,#0000 50%),radial-gradient(at 80% 20%,#8b5cf60f 0%,#0000 50%),radial-gradient(at 50% 80%,#10b9810d 0%,#0000 50%);position:absolute;inset:0}[data-theme=dark] .auth-page:before{background:radial-gradient(at 20%,#3b82f61f 0%,#0000 50%),radial-gradient(at 80% 20%,#8b5cf61a 0%,#0000 50%),radial-gradient(at 50% 80%,#10b98114 0%,#0000 50%)}.auth-page>*{z-index:1;position:relative}.auth-card{border:1px solid var(--border-color);background:var(--surface-color);width:100%;max-width:420px;color:var(--text-color);box-shadow:0 4px 6px -1px var(--shadow-color), 0 10px 20px -2px var(--shadow-color);border-radius:1rem;margin:0 auto;transition:box-shadow .3s,transform .3s;animation:.4s ease-out authFadeIn}.auth-card:hover{box-shadow:0 8px 16px -4px var(--shadow-color), 0 20px 40px -8px var(--shadow-color);transform:translateY(-2px)}.auth-card-wide{max-width:480px}.auth-card-body{padding:2.5rem 2rem}.auth-brand{text-align:center;color:var(--text-muted);margin-bottom:1.25rem;font-size:.95rem;font-weight:600}.auth-status-icon{margin-bottom:.75rem;font-size:3rem}.auth-status-icon.success{color:var(--success-color)}.auth-status-icon.error{color:var(--error-color)}.auth-status-icon.primary{color:var(--primary-color)}.auth-title{letter-spacing:-.02em;color:var(--text-color);text-align:center;margin-bottom:.25rem;font-size:1.5rem;font-weight:700}.auth-subtitle{color:var(--text-muted);text-align:center;margin-bottom:1.5rem;font-size:.9rem}.auth-heading{text-align:center;margin-bottom:.75rem;font-size:1.25rem;font-weight:600}.auth-heading.success{color:var(--success-color)}.auth-heading.error{color:var(--error-color)}.auth-heading.primary{color:var(--primary-color)}.auth-text{text-align:center;color:var(--text-color);margin-bottom:1rem}.auth-text-center{text-align:center}.auth-text-muted{color:var(--text-muted)}.auth-form-group{margin-bottom:1rem}.auth-form-group-lg{margin-bottom:1.5rem}.auth-label{color:var(--text-secondary-color);margin-bottom:.4rem;font-size:.85rem;font-weight:600;display:block}.auth-input{background-color:var(--input-bg);width:100%;color:var(--text-color);border:1px solid var(--input-border);border-radius:.5rem;padding:.65rem .85rem;font-family:inherit;font-size:.95rem;line-height:1.5;transition:border-color .2s,box-shadow .2s;display:block}.auth-input::placeholder{color:var(--text-muted)}.auth-input:focus{background-color:var(--input-bg);color:var(--text-color);border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #3b82f626}.auth-input:disabled{opacity:.6;cursor:not-allowed}.auth-input-group{display:flex}.auth-input-group .auth-input{border-radius:.5rem 0 0 .5rem;flex:1;min-width:0}.auth-input-toggle{border:1px solid var(--input-border);background-color:var(--input-bg);color:var(--text-muted);cursor:pointer;border-left:none;border-radius:0 .5rem .5rem 0;justify-content:center;align-items:center;padding:0 .75rem;font-size:.95rem;transition:color .2s,background .2s;display:flex}.auth-input-toggle:hover{background:var(--bg-primary);color:var(--text-color)}.auth-name-row{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;display:grid}.auth-invalid-feedback{color:var(--error-color);margin-top:.25rem;font-size:.8rem;display:none}.auth-form.validated .auth-input:invalid~.auth-invalid-feedback{display:block}.auth-form.validated .auth-input:invalid{border-color:var(--error-color)}.auth-alert{border-radius:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.auth-alert-error{color:var(--error-color);background-color:#dc35451a;border:1px solid #dc354540}.auth-alert-success{color:var(--success-color);background-color:#1987541a;border:1px solid #19875440}.auth-alert-info{color:var(--primary-color);background-color:#0dcaf01a;border:1px solid #0dcaf040}.auth-alert-dismissible{align-items:flex-start;gap:.75rem;display:flex}.auth-alert-dismissible>span{flex:1}.auth-alert-close{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:none;padding:0;font-size:1.25rem;line-height:1}.auth-alert-close:hover{opacity:1}.auth-alert-action{color:inherit;cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.auth-alert-action:disabled{cursor:default;opacity:.6}.auth-btn{background:var(--primary-color);width:100%;color:var(--button-text-color);cursor:pointer;text-align:center;border:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;margin-bottom:1rem;padding:.7rem 1.5rem;font-family:inherit;font-size:1rem;font-weight:600;line-height:1.5;text-decoration:none;transition:transform .15s,box-shadow .2s,opacity .2s;display:flex}.auth-btn:hover:not(:disabled){color:var(--button-text-color);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb59}.auth-btn:active:not(:disabled){transform:translateY(0)}.auth-btn:disabled{opacity:.7;cursor:not-allowed}.auth-btn-secondary{border:1px solid var(--border-color);color:var(--text-color);background:0 0;margin-top:0}.auth-btn-secondary:hover:not(:disabled){color:var(--text-color);box-shadow:0 4px 12px #0f172a1f}.auth-code-input{letter-spacing:.3em;text-align:center;font-size:1.4rem;font-weight:700}.auth-form-check{align-items:center;gap:.5rem;margin-bottom:1.25rem;display:flex}.auth-check-input{width:1rem;height:1rem;accent-color:var(--button-color);cursor:pointer;flex:none}.auth-check-label{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.88rem}.auth-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex-shrink:0;width:1rem;height:1rem;animation:.75s linear infinite authSpin;display:inline-block}.auth-spinner-lg{width:2rem;height:2rem;color:var(--primary-color);border-width:3px}.auth-divider{border:none;border-top:1px solid var(--border-color);margin:1.25rem 0}.auth-or{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);align-items:center;gap:.75rem;margin:1rem 0;font-size:.8rem;display:flex}.auth-or:before,.auth-or:after{content:"";border-top:1px solid var(--border-color);flex:1}.auth-card a{color:var(--primary-color);font-weight:500;text-decoration:none;transition:color .2s}.auth-card a:hover{text-decoration:underline}.auth-link-section{text-align:center;margin-bottom:.5rem}@keyframes authFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes authSpin{to{transform:rotate(360deg)}}@media (width<=480px){.auth-card-body{padding:2rem 1.5rem}.auth-title{font-size:1.3rem}.auth-name-row{grid-template-columns:1fr}}
