.firebase-emulator-warning{display:none!important}*{box-sizing:border-box;margin-left:0;margin-right:0}*,body,html{padding-left:0;padding-right:0}body,html{overflow-x:hidden;width:100%}.user-view{overflow:hidden;padding-top:60px;position:relative}.user-view .main-content{display:flex;flex-direction:column;flex-grow:1;justify-content:flex-start;overflow:hidden;transition:margin-left .3s,margin-right .3s}@media screen and (max-width:1024px){.user-view{padding-top:42px}.user-view .main-content{padding:0 2px calc(56px + env(safe-area-inset-bottom, 0px))}.class-lists-page .search-container,.user-management-page .filter-container{flex:1 1;max-width:240px;min-width:60px;width:100%}.class-lists-page .search-container .filter-input,.user-management-page .filter-container .filter-input{box-sizing:border-box;flex:1 1;font-size:13px;min-width:0;padding:5px 6px;width:100%}.user-management-page .filter-container .search-button{padding:5px 8px}.class-lists-page .table-filters .filter-label{display:none}.class-lists-page .table-filters .filter-select{font-size:12px;max-width:90px;min-width:56px;padding:5px 6px}}.user-management-page .user-management-email-link{color:#06c;color:var(--link-color,#06c);text-decoration:none}.user-management-page .user-management-email-link:hover{text-decoration:underline}body,button,input,textarea{font-family:var(--font-family-primary);font-size:var(--font-size-body)}.user-form-input,input[type=email],input[type=number],input[type=password],input[type=text]{background-color:#fff;border:1px solid #ccc;border-radius:4px;color:#3c3c3c;padding:5px;width:100%}.user-form-input::placeholder,input[type=email]::placeholder,input[type=number]::placeholder,input[type=password]::placeholder,input[type=text]::placeholder{color:#3c3c3c;opacity:.7}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .5s ease-in-out}body{background-attachment:fixed;background-position:50%;background-repeat:no-repeat;background-size:cover;overflow-y:auto}body.default-background,body.login-signup-background{background-image:url(/static/media/blob-haikei.743f485c60b98b4a59f3.svg)}body.public-module-background{background-attachment:fixed;background-position:50%;background-repeat:no-repeat;background-size:cover}.filter-input{border:1px solid #ccc;border-radius:4px;font-size:15px}.filter-input::placeholder{color:#999}input[type=text].filter-input{width:96%}.top-controls{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.filter-container,.search-container{align-items:center;display:flex;flex:0 0 auto;width:300px}.table-filters{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.filter-label{color:#555;font-size:14px;margin:0;white-space:nowrap}.filter-select{background-color:#fff;font-size:14px;min-width:120px;padding:6px 10px}.filter-select,.search-button{border:1px solid #ccc;border-radius:4px;cursor:pointer}.search-button{color:#fff;margin-left:5px;padding:5px 10px}.search-button:hover{background-color:#f5f5f5}input[type=text].filter-input{width:calc(100% - 50px)}.loading-message{font-size:16px;margin-top:150px;text-align:center}.unsaved-changes-modal{align-items:center;animation:unsavedChangesModalFadeIn .2s ease-out;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:10001}@keyframes unsavedChangesModalFadeIn{0%{opacity:0}to{opacity:1}}.unsaved-changes-modal .unsaved-changes-modal-content{animation:unsavedChangesModalSlideIn .3s ease-out;background-color:#fff;border-radius:12px;box-shadow:0 10px 25px #00000026,0 4px 6px #0000001a;max-width:520px;padding:30px;position:relative;width:90%}@keyframes unsavedChangesModalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.unsaved-changes-modal .unsaved-changes-icon{font-size:48px;margin-bottom:16px;text-align:center}.unsaved-changes-modal .unsaved-changes-modal-content h2{color:#e67e22;font-size:1.5rem;font-weight:600;margin:0 0 16px;text-align:center}.unsaved-changes-modal .unsaved-changes-modal-content p{color:#333;font-size:15px;line-height:1.6;margin:0 0 12px;text-align:center}.unsaved-changes-modal .unsaved-changes-hint{color:#666;font-size:14px;margin-bottom:24px}.unsaved-changes-modal .unsaved-changes-modal-actions{display:flex;gap:12px;justify-content:center;margin-top:20px}.unsaved-changes-modal .unsaved-changes-leave-btn,.unsaved-changes-modal .unsaved-changes-stay-btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;min-width:140px;padding:12px 24px;transition:all .2s ease}.unsaved-changes-modal .unsaved-changes-leave-btn{background-color:#f5f5f5;border:1px solid #ddd;color:#333}.unsaved-changes-modal .unsaved-changes-leave-btn:hover{background-color:#e8e8e8;border-color:#ccc}.unsaved-changes-modal .unsaved-changes-stay-btn{background-color:#28a745;color:#fff}.unsaved-changes-modal .unsaved-changes-stay-btn:hover{background-color:#218838;box-shadow:0 4px 8px #28a7454d;transform:translateY(-1px)}.unsaved-changes-modal .unsaved-changes-leave-btn:active,.unsaved-changes-modal .unsaved-changes-stay-btn:active{transform:translateY(0)}@media (max-width:480px){.unsaved-changes-modal .unsaved-changes-modal-content{max-width:90%;padding:24px 20px}.unsaved-changes-modal .unsaved-changes-icon{font-size:40px;margin-bottom:12px}.unsaved-changes-modal .unsaved-changes-modal-content h2{font-size:1.3rem;margin-bottom:12px}.unsaved-changes-modal .unsaved-changes-modal-content p{font-size:14px}.unsaved-changes-modal .unsaved-changes-modal-actions{flex-direction:column-reverse;gap:10px;margin-top:20px}.unsaved-changes-modal .unsaved-changes-leave-btn,.unsaved-changes-modal .unsaved-changes-stay-btn{padding:14px 20px;width:100%}}.confirmation-modal{align-items:center;animation:confirmationModalFadeIn .2s ease-out;background-color:#0003;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:10000}@keyframes confirmationModalFadeIn{0%{opacity:0}to{opacity:1}}.confirmation-modal .confirmation-modal-content{animation:confirmationModalSlideIn .3s ease-out;background-color:#fff;border-radius:12px;box-shadow:0 10px 25px #00000026,0 4px 6px #0000001a;max-width:450px;padding:30px;position:relative;width:90%}.confirmation-modal .confirmation-modal-close-x{align-items:center;background:#0000;border:none;border-radius:6px;color:#666;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;line-height:1;padding:0;position:absolute;right:12px;top:12px;transition:background .2s,color .2s;width:32px}.confirmation-modal .confirmation-modal-close-x:hover{background:#f0f0f0;color:#333}@keyframes confirmationModalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.confirmation-modal .confirmation-modal-content h2{color:#333;font-size:1.5rem;font-weight:600;margin:0 0 20px;text-align:center}.confirmation-modal .confirmation-modal-content p{color:#333;font-size:15px;line-height:1.6;margin:0 0 25px;text-align:center}.confirmation-modal .confirmation-modal-content .confirmation-modal-extra{margin:20px 0 25px;text-align:left}.confirmation-modal .confirmation-modal-actions{display:flex;gap:12px;justify-content:center;margin-top:25px}.confirmation-modal .confirmation-modal-content.confirmation-modal-wide{max-width:640px}.confirmation-modal .confirmation-modal-content.confirmation-modal-reward{text-align:center}.confirmation-modal-reward-badge{align-items:center;display:flex;gap:10px;justify-content:center;margin-bottom:16px;position:relative}.confirmation-modal-reward-badge--achievement{flex-direction:column;gap:12px;margin-bottom:18px}.confirmation-modal-reward-badge-row{align-items:center;display:flex;gap:10px;justify-content:center;position:relative}.confirmation-modal-reward-badge--achievement:before{height:104px;top:28%;width:120px}.confirmation-modal-achievement-badge{background:linear-gradient(180deg,#fffef8,#f5e6a8 38%,#e0c76a);border:2px solid #b8941f;border-radius:999px;box-shadow:inset 0 1px 0 #ffffffbf,0 2px 6px #8b691440,0 4px 14px #00000014;color:#5c4810;display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:.09em;padding:7px 20px;position:relative;text-shadow:0 1px 0 #ffffff73;text-transform:uppercase;z-index:1}.confirmation-modal-gold-gradient-defs{height:0;overflow:hidden;position:absolute;width:0}.confirmation-modal-reward-badge:before{background:radial-gradient(ellipse 88% 78% at 48% 38%,#fff8dca6 0,#f5d2646b 22%,#c9a22738 48%,#8b691414 68%,#0000 78%);content:"";height:112px;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:112px;z-index:0}.confirmation-modal-reward-badge svg.confirmation-modal-achievement-center-icon{filter:drop-shadow(0 1px 0 rgba(255,255,255,.55)) drop-shadow(0 -1px 0 rgba(74,55,10,.12)) drop-shadow(1px 2px 2px rgba(92,70,18,.35)) drop-shadow(0 6px 14px rgba(0,0,0,.12));position:relative;z-index:1}.confirmation-modal-reward-badge svg.confirmation-modal-achievement-center-icon path{fill:url(#confirmation-modal-gold-metallic)}.confirmation-modal-achievement-center-icon{animation:confirmationCelebrationPulse 1.35s ease-in-out infinite;height:64px;width:64px}@keyframes confirmationCelebrationPulse{0%,to{transform:scale(1) rotate(-2deg)}50%{transform:scale(1.08) rotate(2deg)}}.confirmation-modal-reward .confirmation-modal-content h2,.confirmation-modal-reward .confirmation-modal-content p{text-align:center}.confirmation-modal-reward .confirmation-modal-actions{justify-content:center}.confirmation-modal .confirmation-cancel-btn,.confirmation-modal .confirmation-confirm-btn,.confirmation-modal .confirmation-ok-btn,.confirmation-modal .confirmation-secondary-btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;min-width:100px;padding:10px 24px;transition:all .2s ease}.confirmation-modal .confirmation-cancel-btn{background-color:#f5f5f5;border:1px solid #ddd;color:#333}.confirmation-modal .confirmation-cancel-btn:hover{background-color:#e8e8e8;border-color:#ccc}.confirmation-modal .confirmation-confirm-btn.danger{background-color:#d32f2f;color:#fff}.confirmation-modal .confirmation-confirm-btn.danger:hover{background-color:#b71c1c;box-shadow:0 4px 8px #d32f2f4d;transform:translateY(-1px)}.confirmation-modal .confirmation-confirm-btn.primary{background-color:#1976d2;color:#fff}.confirmation-modal .confirmation-confirm-btn.primary:hover{background-color:#1565c0;box-shadow:0 4px 8px #1976d24d;transform:translateY(-1px)}.confirmation-modal .confirmation-confirm-btn.success{background-color:#28a745;color:#fff}.confirmation-modal .confirmation-confirm-btn.success:hover{background-color:#218838;box-shadow:0 4px 8px #28a7454d;transform:translateY(-1px)}.confirmation-modal .confirmation-confirm-btn.warning,.confirmation-modal .confirmation-secondary-btn.warning{background-color:#f57c00;color:#fff}.confirmation-modal .confirmation-confirm-btn.warning:hover,.confirmation-modal .confirmation-secondary-btn.warning:hover{background-color:#e65100;box-shadow:0 4px 8px #f57c004d;transform:translateY(-1px)}.confirmation-modal .confirmation-secondary-btn.primary{background-color:#1976d2;color:#fff}.confirmation-modal .confirmation-secondary-btn.primary:hover{background-color:#1565c0;box-shadow:0 4px 8px #1976d24d;transform:translateY(-1px)}.confirmation-modal .confirmation-secondary-btn.danger{background-color:#d32f2f;color:#fff}.confirmation-modal .confirmation-secondary-btn.danger:hover{background-color:#b71c1c;box-shadow:0 4px 8px #d32f2f4d;transform:translateY(-1px)}.confirmation-modal .confirmation-secondary-btn.neutral{background-color:#f5f5f5;border:1px solid #ddd;color:#333}.confirmation-modal .confirmation-secondary-btn.neutral:hover{background-color:#e8e8e8;border-color:#ccc}.confirmation-modal .confirmation-ok-btn{background-color:#1976d2;color:#fff}.confirmation-modal .confirmation-ok-btn:hover{background-color:#1565c0;box-shadow:0 4px 8px #1976d24d;transform:translateY(-1px)}.confirmation-modal .confirmation-cancel-btn:active,.confirmation-modal .confirmation-confirm-btn:active,.confirmation-modal .confirmation-ok-btn:active,.confirmation-modal .confirmation-secondary-btn:active{transform:translateY(0)}@media (max-width:480px){.confirmation-modal .confirmation-modal-content{max-width:90%;padding:24px 20px}.confirmation-modal .confirmation-modal-content h2{font-size:1.3rem;margin-bottom:16px}.confirmation-modal .confirmation-modal-content p{font-size:14px;margin-bottom:20px}.confirmation-modal .confirmation-modal-actions{flex-direction:column;gap:10px;margin-top:20px}.confirmation-modal .confirmation-cancel-btn,.confirmation-modal .confirmation-confirm-btn,.confirmation-modal .confirmation-ok-btn,.confirmation-modal .confirmation-secondary-btn{padding:12px 20px;width:100%}}.training-overlay{background-color:#0000001a;bottom:0;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:9999}.training-popup{animation:trainingPopupFadeIn .3s ease-out;background:#fff;border:1px solid #e1e5e9;border-radius:12px;box-shadow:0 10px 25px #00000026,0 4px 6px #0000001a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;max-width:350px;min-width:280px;pointer-events:auto;position:fixed}@keyframes trainingPopupFadeIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.training-popup-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:1px solid #f0f2f5;border-radius:12px 12px 0 0;color:#fff;display:flex;justify-content:space-between;padding:16px 20px 12px}.training-popup-title{align-items:center;display:flex;font-size:16px;font-weight:600;gap:8px}.tip-icon{color:gold;font-size:18px}.training-popup-close{background:none;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:4px;transition:background-color .2s}.training-popup-close:hover{background-color:#fff3}.training-popup-content{color:#2c3e50;line-height:1.5;padding:20px}.training-popup-content p{font-size:14px;margin:0 0 12px}.training-popup-action{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;color:#495057;font-size:13px;margin-top:12px;padding:12px}.training-popup-action strong{color:#6c63ff}.training-popup-video{aspect-ratio:16/9;background:#000;border-radius:8px;margin:12px 0;max-height:200px;overflow:hidden}.training-popup-video iframe{border:none;height:100%;width:100%}.training-popup-with-video{max-width:420px}.training-popup-footer{display:flex;gap:10px;justify-content:flex-end;padding:0 20px 20px}.training-popup-button{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;padding:8px 16px;transition:all .2s}.training-popup-button.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.training-popup-button.primary:hover{box-shadow:0 4px 8px #667eea4d;transform:translateY(-1px)}.training-popup-button.secondary{background:#f8f9fa;border:1px solid #dee2e6;color:#6c757d}.training-popup-button.secondary:hover{background:#e9ecef;color:#495057}.training-popup-arrow{height:0;position:absolute;width:0}.training-popup-arrow.bottom{border-bottom:8px solid #fff;filter:drop-shadow(0 -1px 1px rgba(0,0,0,.1));top:-8px}.training-popup-arrow.bottom,.training-popup-arrow.top{border-left:8px solid #0000;border-right:8px solid #0000;left:50%;transform:translateX(-50%)}.training-popup-arrow.top{border-top:8px solid #fff;bottom:-8px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.1))}.training-popup-arrow.left{border-left:8px solid #fff;filter:drop-shadow(1px 0 1px rgba(0,0,0,.1));right:-8px}.training-popup-arrow.left,.training-popup-arrow.right{border-bottom:8px solid #0000;border-top:8px solid #0000;top:50%;transform:translateY(-50%)}.training-popup-arrow.right{border-right:8px solid #fff;filter:drop-shadow(-1px 0 1px rgba(0,0,0,.1));left:-8px}@media (max-width:768px){.training-popup{margin:0 5vw;max-width:90vw}.training-popup-content{padding:16px}.training-popup-header{padding:12px 16px 8px}.training-popup-footer{padding:0 16px 16px}}@media (prefers-color-scheme:dark){.training-popup{background:#2d3748;border-color:#4a5568;color:#e2e8f0}.training-popup-header{border-bottom-color:#4a5568}.training-popup-content{color:#e2e8f0}.training-popup-action,.training-popup-button.secondary{background:#4a5568;border-color:#718096;color:#e2e8f0}.training-popup-button.secondary:hover{background:#718096}}.training-section{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff}.training-indicator{position:relative;transition:all .3s ease}.training-indicator:before{animation:trainingPulse 2s infinite;border-radius:8px;bottom:-3px;content:"";left:-3px;opacity:.6;right:-3px;top:-3px;z-index:-1}.training-indicator:after,.training-indicator:before{background:linear-gradient(135deg,#667eea,#764ba2);position:absolute}.training-indicator:after{align-items:center;animation:trainingBob 2s ease-in-out infinite;border-radius:50%;box-shadow:0 2px 4px #0003;content:"💡";display:flex;font-size:12px;height:20px;justify-content:center;right:-8px;top:-8px;width:20px;z-index:10}@keyframes trainingPulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:.8;transform:scale(1.02)}}@keyframes trainingBob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.training-indicator:hover:before{opacity:.9;transform:scale(1.05)}.training-indicator:hover:after{animation:none;transform:scale(1.1)}.training-indicator.button-indicator:before{border-radius:6px}.training-indicator.button-indicator:after{right:-10px;top:-10px}.training-indicator.section-indicator:before{border-radius:12px}.training-indicator.section-indicator:after{right:10px;top:5px}.training-indicator.form-section-indicator:before{border-radius:8px}.training-indicator.form-section-indicator:after{right:15px;top:10px}.training-indicator.subtle:before{animation:none;opacity:.3}.training-indicator.subtle:after{animation:none;font-size:10px;height:16px;right:-6px;top:-6px;width:16px}.training-disabled .training-indicator:after,.training-disabled .training-indicator:before{display:none}@media (max-width:768px){.training-indicator:after{font-size:10px;height:18px;right:-6px;top:-6px;width:18px}.training-indicator.button-indicator:after{right:-8px;top:-8px}}.ai-tutor-page-container .ai-tutor-top-buttons .ai-tutor-create-button.training-indicator.button-indicator:after,.class-lists-page .top-controls .create-class-list-button.training-indicator.button-indicator:after,.courses-page .top-controls .create-course-button.training-indicator.button-indicator:after{bottom:-10px;right:-10px;top:auto}.timeout-overlay{align-items:center;animation:timeoutOverlayFadeIn .2s ease-out;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10001}@keyframes timeoutOverlayFadeIn{0%{opacity:0}to{opacity:1}}.timeout-modal{animation:timeoutModalFadeIn .3s ease-out;background-color:#fff;border-radius:12px;box-shadow:0 10px 25px #00000026,0 4px 6px #0000001a;max-width:380px;padding:30px;width:90%}@keyframes timeoutModalFadeIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.timeout-modal-title{color:#282c34;font-size:1.25rem;font-weight:600;margin:0 0 16px;text-align:center}.timeout-modal-message{color:#333;font-size:15px;line-height:1.5;margin:0 0 12px;text-align:center}.timeout-modal-message strong{color:#282c34}.timeout-modal-hint{color:#666;font-size:14px;line-height:1.5;margin:0;text-align:center}@media (max-width:480px){.timeout-modal{max-width:90%;padding:24px 20px}.timeout-modal-title{font-size:1.15rem;margin-bottom:12px}.timeout-modal-message{font-size:14px}}
/*# sourceMappingURL=main.03236c98.css.map*/