.auth-dialog-overlay{-webkit-backdrop-filter:blur(4px);z-index:10000;background-color:#0009;justify-content:center;align-items:center;padding:1rem;animation:.2s ease-out authFadeIn;display:flex;position:fixed;inset:0}@keyframes authFadeIn{0%{opacity:0}to{opacity:1}}.auth-dialog{background:#fff;border-radius:16px;width:100%;max-width:420px;max-height:90vh;padding:2rem;animation:.3s ease-out authSlideUp;overflow-y:auto;box-shadow:0 25px 50px -12px #00000040,0 0 0 1px #ffffff1a}@keyframes authSlideUp{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.auth-dialog-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.auth-close-btn{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:6px;padding:.25rem .5rem;font-size:1.75rem;line-height:1;transition:background-color .2s,color .2s}.auth-close-btn:hover:not(:disabled){color:#111827;background-color:#f3f4f6}.auth-close-btn:disabled{opacity:.5;cursor:not-allowed}.auth-dialog-title{text-align:center;margin-bottom:2rem}.auth-dialog-title h2{color:#111827;margin:0 0 .5rem;font-size:1.75rem;font-weight:700}.auth-dialog-title p{color:#6b7280;margin:0;font-size:.95rem}.auth-input-group{margin-bottom:1.25rem}.auth-input-group label{color:#374151;margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.auth-input-group input{color:#1f2937;box-sizing:border-box;background-color:#fff;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:.75rem 1rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.auth-input-group input:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f11a}.auth-input-group input:disabled{cursor:not-allowed;background-color:#f9fafb}.auth-input-group select,.auth-select{color:#1f2937;box-sizing:border-box;cursor:pointer;appearance:auto;background-color:#fff;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:.75rem 1rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.auth-input-group select:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f11a}.auth-input-group select:disabled{cursor:not-allowed;background-color:#f9fafb}.auth-password-wrapper{position:relative}.auth-password-wrapper input{padding-right:2.75rem}.auth-password-toggle{cursor:pointer;color:#9ca3af;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.25rem;transition:color .2s;display:flex;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.auth-password-toggle:hover{color:#4b5563}.auth-error-message{color:#dc2626;text-align:left;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin:0 0 1rem;padding:.75rem 1rem;font-size:.875rem}.auth-success-message{color:#16a34a;text-align:left;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin:0 0 1rem;padding:.75rem 1rem;font-size:.875rem}.auth-forgot-password-link{color:#6366f1;cursor:pointer;background:0 0;border:none;margin-top:.5rem;padding:0;font-size:.875rem;display:inline-block}.auth-forgot-password-link:hover:not(:disabled){text-decoration:underline}.auth-forgot-password-link:disabled{opacity:.7;cursor:not-allowed}.auth-btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%);border:none;border-radius:8px;width:100%;margin-top:.5rem;padding:.875rem;font-size:1rem;font-weight:600;transition:transform .15s,box-shadow .15s,opacity .15s}.auth-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.auth-btn-primary:active:not(:disabled){transform:translateY(0)}.auth-btn-primary:disabled{opacity:.7;cursor:not-allowed}.auth-divider{color:#9ca3af;align-items:center;gap:1rem;margin:1.5rem 0;font-size:.875rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background-color:#e5e7eb;flex-grow:1;height:1px}.auth-btn-google{cursor:pointer;color:#374151;background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;justify-content:center;align-items:center;gap:.75rem;width:100%;padding:.75rem;font-size:1rem;font-weight:500;transition:background-color .2s,border-color .2s,box-shadow .2s;display:flex}.auth-btn-google:hover:not(:disabled){background-color:#f9fafb;border-color:#d1d5db;box-shadow:0 2px 4px #0000000d}.auth-btn-google:disabled{opacity:.7;cursor:not-allowed}.auth-btn-google img{width:20px;height:20px}.auth-btn-microsoft{cursor:pointer;color:#374151;background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;justify-content:center;align-items:center;gap:.75rem;width:100%;margin-top:.5rem;padding:.75rem;font-size:1rem;font-weight:500;transition:background-color .2s,border-color .2s,box-shadow .2s;display:flex}.auth-btn-microsoft:hover:not(:disabled){background-color:#f9fafb;border-color:#d1d5db;box-shadow:0 2px 4px #0000000d}.auth-btn-microsoft:disabled{opacity:.7;cursor:not-allowed}.auth-mode-toggle{text-align:center;color:#6b7280;margin-top:1.5rem;font-size:.875rem}.auth-mode-toggle button{color:#6366f1;cursor:pointer;font-weight:600;font-size:inherit;background:0 0;border:none;padding:0}.auth-mode-toggle button:hover:not(:disabled){text-decoration:underline}.auth-mode-toggle button:disabled{opacity:.7;cursor:not-allowed}.auth-child-account-notice{background-color:#eff6ff;border:1px solid #93c5fd;border-radius:8px;margin-bottom:1.25rem;padding:1rem}.auth-child-notice-title{color:#1e40af;margin:0 0 .5rem;font-size:.9rem;font-weight:600}.auth-child-notice-text{color:#374151;margin:0 0 .75rem;font-size:.85rem;line-height:1.4}.auth-parent-consent-checkbox{cursor:pointer;color:#374151;align-items:flex-start;gap:.5rem;font-size:.875rem;line-height:1.4;display:flex}.auth-parent-consent-checkbox input[type=checkbox]{accent-color:#6366f1;cursor:pointer;flex-shrink:0;width:16px;height:16px;margin-top:.15rem}.auth-parent-notice{color:#6b7280;background-color:#fff;border-left:3px solid #6366f1;border-radius:6px;margin:.75rem 0 0;padding:.5rem .75rem;font-size:.8rem;line-height:1.4}.auth-parent-notice a{color:#4f46e5;text-decoration:none}.auth-parent-notice a:hover{text-decoration:underline}.auth-guest-link{text-align:center;margin-top:.75rem;font-size:.875rem}.auth-guest-link button{color:#6b7280;cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;transition:color .2s}.auth-guest-link button:hover:not(:disabled){color:#374151;text-decoration:underline}.auth-guest-link button:disabled{opacity:.7;cursor:not-allowed}.dark .auth-dialog,.dark-mode .auth-dialog,html.dark .auth-dialog{background:#1e1e2e;box-shadow:0 25px 50px -12px #00000080,0 0 0 1px #ffffff0d}.dark .auth-dialog-title h2,.dark-mode .auth-dialog-title h2,html.dark .auth-dialog-title h2{color:#f1f5f9}.dark .auth-dialog-title p,.dark-mode .auth-dialog-title p,html.dark .auth-dialog-title p,.dark .auth-close-btn,.dark-mode .auth-close-btn,html.dark .auth-close-btn{color:#94a3b8}.dark .auth-close-btn:hover:not(:disabled),.dark-mode .auth-close-btn:hover:not(:disabled),html.dark .auth-close-btn:hover:not(:disabled){color:#f1f5f9;background-color:#334155}.dark .auth-input-group label,.dark-mode .auth-input-group label,html.dark .auth-input-group label{color:#cbd5e1}.dark .auth-input-group input,.dark-mode .auth-input-group input,html.dark .auth-input-group input{color:#f1f5f9;background-color:#1e293b;border-color:#334155}.dark .auth-input-group input:focus,.dark-mode .auth-input-group input:focus,html.dark .auth-input-group input:focus{border-color:#818cf8;box-shadow:0 0 0 3px #818cf833}.dark .auth-input-group input:disabled,.dark-mode .auth-input-group input:disabled,html.dark .auth-input-group input:disabled{background-color:#0f172a}.dark .auth-input-group select,.dark .auth-select,.dark-mode .auth-input-group select,.dark-mode .auth-select,html.dark .auth-input-group select,html.dark .auth-select{color:#f1f5f9;background-color:#1e293b;border-color:#334155}.dark .auth-input-group select:focus,.dark-mode .auth-input-group select:focus,html.dark .auth-input-group select:focus{border-color:#818cf8;box-shadow:0 0 0 3px #818cf833}.dark .auth-input-group select:disabled,.dark-mode .auth-input-group select:disabled,html.dark .auth-input-group select:disabled{background-color:#0f172a}.dark .auth-error-message,.dark-mode .auth-error-message,html.dark .auth-error-message{color:#fca5a5;background-color:#dc262626;border-color:#dc26264d}.dark .auth-success-message,.dark-mode .auth-success-message,html.dark .auth-success-message{color:#86efac;background-color:#16a34a26;border-color:#16a34a4d}.dark .auth-forgot-password-link,.dark-mode .auth-forgot-password-link,html.dark .auth-forgot-password-link{color:#818cf8}.dark .auth-divider,.dark-mode .auth-divider,html.dark .auth-divider{color:#64748b}.dark .auth-divider:before,.dark .auth-divider:after,.dark-mode .auth-divider:before,.dark-mode .auth-divider:after,html.dark .auth-divider:before,html.dark .auth-divider:after{background-color:#334155}.dark .auth-btn-google,.dark-mode .auth-btn-google,html.dark .auth-btn-google{color:#f1f5f9;background-color:#1e293b;border-color:#334155}.dark .auth-btn-google:hover:not(:disabled),.dark-mode .auth-btn-google:hover:not(:disabled),html.dark .auth-btn-google:hover:not(:disabled){background-color:#334155;border-color:#475569}.dark .auth-btn-microsoft,.dark-mode .auth-btn-microsoft,html.dark .auth-btn-microsoft{color:#f1f5f9;background-color:#1e293b;border-color:#334155}.dark .auth-btn-microsoft:hover:not(:disabled),.dark-mode .auth-btn-microsoft:hover:not(:disabled),html.dark .auth-btn-microsoft:hover:not(:disabled){background-color:#334155;border-color:#475569}.dark .auth-mode-toggle,.dark-mode .auth-mode-toggle,html.dark .auth-mode-toggle{color:#94a3b8}.dark .auth-mode-toggle button,.dark-mode .auth-mode-toggle button,html.dark .auth-mode-toggle button{color:#818cf8}.dark .auth-child-account-notice,.dark-mode .auth-child-account-notice,html.dark .auth-child-account-notice{background-color:#3b82f61a;border-color:#1e3a5f}.dark .auth-child-notice-title,.dark-mode .auth-child-notice-title,html.dark .auth-child-notice-title{color:#93c5fd}.dark .auth-child-notice-text,.dark-mode .auth-child-notice-text,html.dark .auth-child-notice-text,.dark .auth-parent-consent-checkbox,.dark-mode .auth-parent-consent-checkbox,html.dark .auth-parent-consent-checkbox{color:#cbd5e1}.dark .auth-parent-notice,.dark-mode .auth-parent-notice,html.dark .auth-parent-notice{color:#94a3b8;background-color:#6366f11a;border-left-color:#818cf8}.dark .auth-parent-notice a,.dark-mode .auth-parent-notice a,html.dark .auth-parent-notice a{color:#818cf8}.dark .auth-password-toggle,.dark-mode .auth-password-toggle,html.dark .auth-password-toggle{color:#64748b}.dark .auth-password-toggle:hover,.dark-mode .auth-password-toggle:hover,html.dark .auth-password-toggle:hover{color:#cbd5e1}.dark .auth-guest-link button,.dark-mode .auth-guest-link button,html.dark .auth-guest-link button{color:#94a3b8}.dark .auth-guest-link button:hover:not(:disabled),.dark-mode .auth-guest-link button:hover:not(:disabled),html.dark .auth-guest-link button:hover:not(:disabled){color:#cbd5e1}@media (max-width:768px){.auth-dialog-overlay{align-items:flex-start;padding:2rem .5rem .5rem}.auth-dialog{border-radius:12px;max-height:calc(100vh - 3rem);padding:1.5rem}.auth-dialog-header{margin-bottom:1rem}.auth-dialog-title{margin-bottom:1.5rem}.auth-dialog-title h2{font-size:1.5rem}}.auth-btn-primary:disabled,.auth-btn-google:disabled{position:relative}@keyframes authPulse{0%,to{opacity:.7}50%{opacity:1}}.auth-btn-primary:disabled{animation:1.5s ease-in-out infinite authPulse}.auth-guest-grade-section{text-align:center;border:1px solid #e5e7eb;border-radius:8px;margin-top:.75rem;padding:.75rem}.auth-guest-grade-label{color:#6b7280;margin:0 0 .5rem;font-size:.85rem}.auth-guest-grade-section .auth-select{margin-bottom:.5rem}.auth-btn-secondary{color:#4f46e5;cursor:pointer;background:0 0;border:1px solid #4f46e5;border-radius:6px;width:100%;padding:.5rem 1rem;font-size:.9rem;transition:background-color .2s,color .2s}.auth-btn-secondary:hover{color:#fff;background:#4f46e5}.dark .auth-guest-grade-section,.dark-mode .auth-guest-grade-section,html.dark .auth-guest-grade-section{border-color:#374151}.dark .auth-guest-grade-label,.dark-mode .auth-guest-grade-label,html.dark .auth-guest-grade-label{color:#94a3b8}.dark .auth-btn-secondary,.dark-mode .auth-btn-secondary,html.dark .auth-btn-secondary{color:#818cf8;border-color:#818cf8}.dark .auth-btn-secondary:hover,.dark-mode .auth-btn-secondary:hover,html.dark .auth-btn-secondary:hover{color:#1e1e2e;background:#818cf8}
