:root{--auth-bg:#f0f2f5;--auth-surface:#fff;--auth-border:#e2e4e9;--auth-border-light:#f0f1f3;--auth-text-primary:#1a1a2e;--auth-text-secondary:#636e80;--auth-text-tertiary:#9aa1af;--auth-accent:#2563eb;--auth-accent-hover:#1d4ed8;--auth-accent-light:#2563eb14;--auth-error:#dc2626;--auth-error-bg:#fef2f2;--auth-error-border:#fecaca;--auth-radius:16px;--auth-radius-sm:10px;--auth-shadow:0 4px 24px #0000000f, 0 1px 4px #0000000a;--auth-shadow-hover:0 8px 32px #00000014, 0 2px 8px #0000000a}.auth-page{background:var(--auth-bg);-webkit-font-smoothing:antialiased;background-image:radial-gradient(80% 60% at 50% 0,#2563eb0f,#0000),radial-gradient(60% 50% at 80% 100%,#6366f10a,#0000);justify-content:center;align-items:center;min-height:100vh;padding:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,sans-serif;display:flex}.auth-card{background:var(--auth-surface);border:1px solid var(--auth-border);border-radius:var(--auth-radius);width:100%;max-width:440px;box-shadow:var(--auth-shadow);padding:44px 48px;transition:box-shadow .3s}.auth-card:hover{box-shadow:var(--auth-shadow-hover)}@media (max-width:600px){.auth-card{border-radius:12px;padding:32px 24px}}.auth-logo{background:var(--auth-accent-light);width:56px;height:56px;color:var(--auth-accent);border-radius:14px;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.auth-header{text-align:center;border-bottom:1px solid var(--auth-border-light);margin-bottom:28px;padding-bottom:28px}.auth-title{color:var(--auth-text-primary);letter-spacing:-.025em;margin:0 0 6px;font-size:1.6rem;font-weight:700}.auth-subtitle{color:var(--auth-text-secondary);margin:0;font-size:.92rem;line-height:1.5}.auth-form-group{flex-direction:column;gap:6px;margin-bottom:18px;display:flex}.auth-label{color:var(--auth-text-primary);letter-spacing:-.01em;font-size:.82rem;font-weight:600}.auth-input{border:1.5px solid var(--auth-border);border-radius:var(--auth-radius-sm);background:var(--auth-surface);width:100%;color:var(--auth-text-primary);box-sizing:border-box;outline:none;padding:11px 14px;font-family:inherit;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.auth-input:focus{border-color:var(--auth-accent);box-shadow:0 0 0 3px #2563eb1a}.auth-input::placeholder{color:var(--auth-text-tertiary)}.auth-btn-primary{background:var(--auth-accent);color:#fff;border-radius:var(--auth-radius-sm);cursor:pointer;letter-spacing:-.01em;border:none;justify-content:center;align-items:center;width:100%;margin-top:8px;padding:12px 22px;font-size:.95rem;font-weight:600;transition:background .2s,transform .1s,box-shadow .2s;display:inline-flex}.auth-btn-primary:hover:not(:disabled){background:var(--auth-accent-hover);box-shadow:0 4px 12px #2563eb40}.auth-btn-primary:active:not(:disabled){transform:scale(.98)}.auth-btn-primary:disabled{opacity:.55;cursor:not-allowed}.auth-error-msg{background:var(--auth-error-bg);border:1px solid var(--auth-error-border);border-radius:var(--auth-radius-sm);color:var(--auth-error);align-items:flex-start;gap:10px;margin-bottom:22px;padding:12px 14px;font-size:.85rem;font-weight:500;line-height:1.45;animation:.25s ease-out auth-fadeIn;display:flex}.auth-error-icon{flex-shrink:0;margin-top:1px}.auth-error-text{flex:1}.auth-error-dismiss{color:var(--auth-error);cursor:pointer;opacity:.6;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:1.2rem;line-height:1;transition:opacity .15s}.auth-error-dismiss:hover{opacity:1}@keyframes auth-fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.auth-toggle-container{text-align:center;color:var(--auth-text-secondary);margin-top:24px;font-size:.9rem}.auth-toggle-btn{color:var(--auth-accent);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:.9rem;font-weight:600;transition:color .15s}.auth-toggle-btn:hover{color:var(--auth-accent-hover);text-decoration:underline}.auth-spinner{border:3px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite auth-spin;display:inline-block}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-divider{color:var(--auth-text-tertiary);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:14px;margin:24px 0;font-size:.78rem;font-weight:500;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--auth-border);flex:1;height:1px}.auth-btn-google{background:var(--auth-surface);width:100%;color:var(--auth-text-primary);border:1.5px solid var(--auth-border);border-radius:var(--auth-radius-sm);cursor:pointer;letter-spacing:-.01em;justify-content:center;align-items:center;gap:10px;padding:12px 22px;font-size:.95rem;font-weight:600;transition:background .2s,border-color .2s,box-shadow .2s,transform .1s;display:inline-flex}.auth-btn-google:hover:not(:disabled){background:#f8f9fb;border-color:#c8ccd4;box-shadow:0 2px 8px #0000000f}.auth-btn-google:active:not(:disabled){transform:scale(.98)}.auth-btn-google:disabled{opacity:.55;cursor:not-allowed}.auth-google-icon{flex-shrink:0}.auth-role-toggle-group{background:var(--auth-border-light);border-radius:var(--auth-radius-sm);border:1px solid var(--auth-border);margin-bottom:20px;padding:4px;display:flex}.auth-role-toggle-btn{color:var(--auth-text-secondary);cursor:pointer;border-radius:calc(var(--auth-radius-sm) - 4px);background:0 0;border:none;flex:1;padding:8px 12px;font-size:.85rem;font-weight:600;transition:all .2s}.auth-role-toggle-btn.active{background:var(--auth-surface);color:var(--auth-accent);box-shadow:0 2px 6px #0000000d}.auth-subjects-container{background:color-mix(in srgb, var(--auth-accent) 4%, transparent);border:1px dashed color-mix(in srgb, var(--auth-accent) 20%, transparent);border-radius:var(--auth-radius-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);margin-bottom:18px;padding:14px}.auth-subjects-title{color:var(--auth-accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:.8rem;font-weight:700}
