@import url(https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,300;0,600;1,300&family=DM+Sans:wght@300;400;500&display=swap);body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.gate-wrapper{align-items:center;background:linear-gradient(135deg,#1a1a2e,#16213e 50%,#0f3460);display:flex;justify-content:center;min-height:100vh;padding:1rem}.gate-card{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:380px;padding:2.5rem 2rem;text-align:center;width:100%}.gate-card.shake{animation:shake .5s ease}.gate-logo{margin-bottom:2rem}.gate-emoji{display:block;font-size:3rem;margin-bottom:.5rem}.gate-title{color:#1a1a2e;font-size:1.6rem;font-weight:700;letter-spacing:.08em;margin:0 0 .4rem}.gate-subtitle{color:#888;font-size:.85rem;margin:0}.gate-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.gate-input{border:2px solid #e0e0e0;border-radius:10px;font-size:1rem;letter-spacing:.1em;outline:none;padding:.85rem 1rem;text-align:center;transition:border-color .2s}.gate-input:focus{border-color:#2d6a4f}.gate-input.error{background:#fff5f5;border-color:#e63946}.gate-error{color:#e63946;font-size:.82rem;margin:0}.gate-btn{background:#2d6a4f;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.9rem;transition:background .2s,transform .1s}.gate-btn:hover{background:#1b4332}.gate-btn:active{transform:scale(.98)}.gate-hint{color:#aaa;font-size:.78rem;margin:0}.gate-hint a{color:#2d6a4f;text-decoration:none}.login-wrapper{align-items:center;background:linear-gradient(135deg,#1a1a2e,#16213e 50%,#0f3460);display:flex;justify-content:center;min-height:100vh;padding:1rem}.login-card{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:380px;padding:2.5rem 2rem;width:100%}.login-card.shake{animation:shake .5s ease}@keyframes shake{0%,to{transform:translateX(0)}20%{transform:translateX(-10px)}40%{transform:translateX(10px)}60%{transform:translateX(-8px)}80%{transform:translateX(8px)}}.login-logo{margin-bottom:2rem;text-align:center}.login-emoji{display:block;font-size:3rem;margin-bottom:.5rem}.login-title{color:#1a1a2e;font-size:1.6rem;font-weight:700;letter-spacing:.08em;margin:0 0 .3rem}.login-subtitle{color:#888;font-size:.85rem;margin:0}.login-form{gap:1rem;margin-bottom:1.5rem}.login-field,.login-form{display:flex;flex-direction:column}.login-field{gap:6px}.login-label{color:#555;font-size:.8rem;font-weight:600;letter-spacing:.05em}.login-input{border:2px solid #e0e0e0;border-radius:10px;box-sizing:border-box;font-size:1rem;outline:none;padding:.85rem 1rem;transition:border-color .2s;width:100%}.login-input:focus{border-color:#2d6a4f}.login-input.error{background:#fff5f5;border-color:#e63946}.login-pw-wrap{position:relative}.login-pw-wrap .login-input{padding-right:3rem;width:100%}.login-pw-toggle{background:none;border:none;cursor:pointer;font-size:1.1rem;padding:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.login-error{color:#e63946;font-size:.82rem;margin:0;text-align:center}.login-btn{background:#2d6a4f;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.25rem;padding:.9rem;transition:background .2s,transform .1s}.login-btn:hover{background:#1b4332}.login-btn:active{transform:scale(.98)}.login-hint{color:#aaa;font-size:.78rem;margin:0;text-align:center}.login-hint a{color:#2d6a4f;text-decoration:none}.onboarding-screen{background:var(--bg);display:flex;flex-direction:column;margin:0 auto;max-width:480px;min-height:100vh;padding:48px 32px 40px}.ob-progress{display:flex;gap:8px;justify-content:center;margin-bottom:40px}.ob-progress-dot{background:var(--border);border-radius:50%;height:8px;transition:all .3s;width:8px}.ob-progress-dot.active{background:var(--accent);border-radius:100px;width:24px}.ob-content{animation:fadeSlide .4s ease both;display:flex;flex:1 1;flex-direction:column;gap:40px}.ob-visual{align-items:center;display:flex;justify-content:center;min-height:200px;width:100%}.welcome-visual{flex-direction:column;gap:16px}.ob-phone{background:var(--ink);border-radius:24px;box-shadow:0 20px 60px #1a1a2e4d;padding:16px 12px;width:180px}.ob-phone-screen{background:var(--bg);border-radius:16px;display:flex;flex-direction:column;gap:8px;padding:12px}.ob-mock-logo{color:var(--accent);font-family:Fraunces,serif;font-size:10px;font-weight:600;letter-spacing:.15em;margin-bottom:4px;text-align:center}.ob-mock-card{background:#fff;border-radius:8px;color:var(--ink);font-family:DM Sans,sans-serif;font-size:11px;padding:8px 10px}.flow-visual{gap:12px}.ob-flow-step{flex-direction:column;gap:8px}.ob-flow-circle,.ob-flow-step{align-items:center;display:flex}.ob-flow-circle{background:var(--accent);border-radius:50%;color:#fff;font-family:Fraunces,serif;font-size:22px;font-weight:300;height:48px;justify-content:center;width:48px}.ob-flow-label{color:var(--ink-soft);font-size:12px;line-height:1.4;text-align:center;white-space:pre-line}.ob-flow-arrow{color:var(--border);font-size:20px;margin-top:12px}.classes-visual{gap:12px}.ob-class-pill{background:#fff;border:2px solid;border-radius:100px;font-family:DM Sans,sans-serif;font-size:15px;font-weight:600;padding:10px 20px}.ob-student-card{align-items:center;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;padding:28px 40px}.ob-student-emoji{font-size:48px}.ob-student-label{color:var(--ink);font-family:Fraunces,serif;font-size:20px;font-weight:300}.ob-student-sub{color:var(--ink-soft);font-size:13px}.ob-ready-icon{animation:bounce 1s ease infinite alternate;font-size:96px}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-12px)}}.ob-text{display:flex;flex-direction:column;gap:10px}.ob-emoji{font-size:32px}.ob-title{color:var(--ink);font-family:Fraunces,serif;font-size:clamp(26px,5vw,36px);font-weight:300;line-height:1.2}.ob-subtitle{color:var(--accent);font-size:15px;font-weight:600}.ob-body{color:var(--ink-soft);font-size:15px;line-height:1.7}.ob-actions{display:flex;flex-direction:column;gap:10px;padding-top:32px}.ob-btn{border:none;border-radius:var(--radius);cursor:pointer;font-family:DM Sans,sans-serif;font-size:16px;font-weight:500;padding:16px;transition:all .2s;width:100%}.ob-btn.primary{background:var(--accent);color:#fff}.ob-btn.primary:hover{background:#235c43;box-shadow:0 8px 24px #2d6a4f4d;transform:translateY(-1px)}.ob-btn.ghost{background:#0000;color:var(--ink-soft)}.ob-btn.ghost:hover{color:var(--ink)}.switcher-wrap{margin:0 auto;max-width:680px;padding:0 24px;position:relative;width:100%;z-index:50}.switcher-trigger{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-left:4px solid var(--cls-color);border-radius:14px;box-shadow:var(--shadow);cursor:pointer;display:flex;font-family:DM Sans,sans-serif;gap:10px;padding:12px 16px;transition:all .2s;width:100%}.switcher-trigger:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.switcher-emoji{flex-shrink:0;font-size:20px}.switcher-name{color:var(--ink);flex:1 1;font-size:14px;font-weight:600;text-align:left}.switcher-level{color:var(--ink-soft);font-size:12px}.switcher-chevron{color:var(--ink-soft);font-size:10px}.switcher-backdrop{inset:0;position:fixed;z-index:49}.switcher-dropdown{animation:dropIn .2s ease;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-hover);left:24px;overflow:hidden;position:absolute;right:24px;top:calc(100% + 8px);z-index:51}@keyframes dropIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.switcher-dropdown-label{color:var(--ink-soft);font-size:11px;font-weight:600;letter-spacing:.12em;padding:14px 16px 8px;text-transform:uppercase}.switcher-option{align-items:center;background:none;border:none;border-left:3px solid #0000;cursor:pointer;display:flex;font-family:DM Sans,sans-serif;gap:12px;padding:12px 16px;text-align:left;transition:all .15s;width:100%}.switcher-option.active,.switcher-option:hover{background:var(--surface-soft)}.switcher-option.active{border-left-color:var(--cls-color)}.switcher-option-emoji{font-size:20px}.switcher-option-info{display:flex;flex:1 1;flex-direction:column;gap:1px}.switcher-option-name{color:var(--ink);font-size:14px;font-weight:500}.switcher-option-level{color:var(--ink-soft);font-size:12px}.switcher-check{color:var(--accent);color:var(--cls-color,var(--accent));font-size:14px;font-weight:700}.switcher-manage{background:none;border:none;border-top:1.5px solid var(--border);color:var(--ink-soft);cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;padding:14px 16px;text-align:left;transition:background .2s;width:100%}.switcher-manage:hover{background:var(--surface-soft);color:var(--ink)}.streak-badge{align-items:center;animation:slideUp .4s ease both;background:linear-gradient(135deg,#fff8f0,#ffecd2);border:1.5px solid #f4a261;border-radius:16px;display:flex;gap:10px;padding:12px 18px;width:100%}.streak-flame{flex-shrink:0;font-size:24px;line-height:1}.streak-info{align-items:baseline;display:flex;flex:1 1;gap:6px}.streak-number{color:#e76f51;font-family:Fraunces,serif;font-size:28px;font-weight:600;line-height:1}.streak-label{color:#c85a38;font-size:13px;font-weight:500}.streak-best{color:#f4a261;font-size:11px;font-weight:500;white-space:nowrap}.daily-card{background:linear-gradient(135deg,#d8f3dc,#b7e4c7);border:1.5px solid #74c69d;border-radius:var(--radius);box-shadow:0 4px 16px #2d6a4f1f;cursor:pointer;display:flex;flex-direction:column;gap:12px;padding:16px 20px;text-align:left;transition:all .22s cubic-bezier(.34,1.56,.64,1);width:100%}.daily-card:hover{box-shadow:0 8px 28px #2d6a4f33;transform:translateY(-2px)}.daily-header{align-items:center;display:flex;justify-content:space-between}.daily-tag{color:#2d6a4f;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.daily-arrow{color:#2d6a4f;font-size:16px;transition:transform .2s}.daily-card:hover .daily-arrow{transform:translateX(4px)}.daily-body{gap:14px}.daily-body,.daily-emoji{align-items:center;display:flex}.daily-emoji{background:#fff9;border-radius:14px;flex-shrink:0;font-size:28px;height:48px;justify-content:center;width:48px}.daily-info{display:flex;flex-direction:column;gap:4px}.daily-title{color:#1a3a2a;font-family:Fraunces,serif;font-size:20px;font-weight:300;line-height:1.2}.daily-meta{color:#2d6a4f;font-size:12px;font-weight:500}.moodqr-overlay{align-items:center;background:#000000bf;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1200}.moodqr-panel{background:#fff;border-radius:20px;padding:20px;position:relative;text-align:center;width:min(560px,100%)}.moodqr-close{background:#0000;border:none;color:var(--ink-soft);cursor:pointer;font-size:20px;position:absolute;right:10px;top:10px}.moodqr-chip{background:var(--accent-light);border-radius:999px;color:var(--accent);display:inline-block;font-size:12px;font-weight:700;margin-bottom:10px;padding:4px 10px}.moodqr-title{color:var(--ink);font-family:Fraunces,serif;font-size:clamp(30px,5vw,44px);font-weight:300}.moodqr-subtitle{color:var(--ink-soft);font-size:14px;margin-top:6px}.moodqr-code-wrap{background:#fff;border:1.5px solid var(--border);border-radius:16px;margin:18px auto 10px;padding:10px;width:min(320px,100%)}.moodqr-image{display:block;height:auto;width:100%}.moodqr-link{color:var(--ink-soft);font-size:12px;margin-bottom:14px;word-break:break-all}.moodqr-actions{display:flex;gap:10px;justify-content:center}.moodqr-btn{background:var(--accent);border:none;border-radius:999px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:10px 14px}.moodqr-btn.secondary{background:var(--surface-soft);border:1px solid var(--border);color:var(--ink)}.mood-screen{margin:0 auto;max-width:680px;min-height:100vh;padding:32px 24px 80px}.mood-student-header{margin-bottom:32px}.mood-back{background:none;border:none;color:var(--ink-soft);cursor:pointer;display:block;font-family:DM Sans,sans-serif;font-size:14px;margin-bottom:16px;padding:0;transition:color .2s}.mood-back:hover,.mood-title{color:var(--ink)}.mood-title{font-family:Fraunces,serif;font-size:36px;font-weight:300;margin-bottom:8px}.mood-subtitle{color:var(--ink-soft);font-size:14px}.mood-picker{display:flex;flex-direction:column;gap:10px}.mood-option{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;display:flex;font-family:DM Sans,sans-serif;gap:16px;padding:18px 20px;text-align:left;transition:all .2s}.mood-option:hover{border-color:var(--accent);transform:translateY(-1px)}.mood-option.selected{background:var(--accent-light);border-color:var(--accent)}.mood-option-emoji{font-size:32px}.mood-option-label{color:var(--ink);font-size:16px;font-weight:500}.mood-submit{background:var(--accent);border:none;border-radius:var(--radius);color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:16px;font-weight:500;margin-top:8px;padding:18px;transition:all .2s;width:100%}.mood-submit:disabled{cursor:not-allowed;opacity:.4}.mood-submit:not(:disabled):hover{background:#235c43;transform:translateY(-1px)}.mood-submitted{align-items:center;display:flex;flex-direction:column;gap:16px;padding:60px 24px;text-align:center}.mood-submitted-emoji{align-items:center;background:var(--accent-light);border:2px solid var(--accent);border-radius:50%;color:var(--accent);display:flex;font-size:36px;height:80px;justify-content:center;width:80px}.mood-submitted-text{color:var(--ink);font-family:Fraunces,serif;font-size:22px;font-weight:300}.mood-teacher-view{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);padding:20px;width:100%}.mood-teacher-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.mood-teacher-title{color:var(--ink);font-size:15px;font-weight:600}.mood-student-btn{background:var(--accent);border:none;border-radius:100px;color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:12px;font-weight:500;padding:7px 14px;transition:all .2s}.mood-student-btn:hover{background:#235c43}.mood-empty{color:var(--ink-soft);font-size:14px;padding:16px 0;text-align:center}.mood-empty-hint{color:var(--ink-soft);font-size:12px;font-style:italic;margin-top:4px}.mood-results{display:flex;flex-direction:column;gap:16px}.mood-avg-display{align-items:center;background:var(--bg);border-radius:14px;display:flex;gap:12px;padding:14px 16px}.mood-avg-emoji{font-size:32px}.mood-avg-info{display:flex;flex-direction:column;gap:2px}.mood-avg-label{color:var(--ink);font-size:15px;font-weight:600}.mood-avg-sub{color:var(--ink-soft);font-size:12px}.mood-bar-grid{display:flex;flex-direction:column;gap:8px}.mood-bar-row{align-items:center;display:flex;gap:10px}.mood-bar-emoji{flex-shrink:0;font-size:18px;text-align:center;width:28px}.mood-bar-track{background:var(--bg);border-radius:100px;flex:1 1;height:8px;overflow:hidden}.mood-bar-fill{background:linear-gradient(90deg,#2d6a4f,#74c69d);border-radius:100px;height:100%;min-width:4px;transition:width .6s ease}.mood-bar-count{color:var(--ink-soft);flex-shrink:0;font-size:12px;text-align:right;width:20px}.mood-suggestion{background:var(--accent-light);border:1.5px solid var(--accent);border-radius:14px;display:flex;flex-direction:column;gap:10px;padding:14px 16px}.mood-suggestion-text{color:var(--ink);font-size:13px;line-height:1.5}.mood-suggestion-pills{display:flex;gap:8px}.mood-pill{background:#fff;border:1.5px solid var(--accent);border-radius:100px;color:var(--accent);cursor:pointer;font-family:DM Sans,sans-serif;font-size:12px;font-weight:500;padding:6px 14px;transition:all .2s}.mood-pill:hover{background:var(--accent);color:#fff}.singing-bowl{display:flex;flex-direction:column;gap:10px;width:100%}.bowl-selector{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.bowl-selector-btn{align-items:center;background:var(--surface);border:2px solid #e0e0e0;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:10px 8px;transition:all .2s}.bowl-selector-btn:hover{transform:translateY(-1px)}.bowl-selector-btn.active,.bowl-selector-btn:hover{border-color:#e9c46a;border-color:var(--bowl-color,#e9c46a)}.bowl-selector-btn.active{box-shadow:0 0 0 3px color-mix(in srgb,#e9c46a 20%,#0000);box-shadow:0 0 0 3px color-mix(in srgb,var(--bowl-color,#e9c46a) 20%,#0000)}.bowl-sel-icon{font-size:1.6rem}.bowl-sel-label{color:var(--ink);font-size:.85rem;font-weight:700}.bowl-sel-desc{color:var(--ink-soft);font-size:.72rem;text-align:center}.bowl-play-btn{align-items:center;background:linear-gradient(135deg,color-mix(in srgb,#e9c46a 15%,#fff),color-mix(in srgb,#e9c46a 8%,#fff));background:linear-gradient(135deg,color-mix(in srgb,var(--bowl-color,#e9c46a) 15%,#fff),color-mix(in srgb,var(--bowl-color,#e9c46a) 8%,#fff));border:2px solid #e9c46a;border:2px solid var(--bowl-color,#e9c46a);border-radius:12px;color:#7a5c00;color:var(--bowl-dark,#7a5c00);cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:10px;padding:14px 16px;transition:all .2s;width:100%}.bowl-play-btn:hover{box-shadow:0 4px 16px color-mix(in srgb,#e9c46a 30%,#0000);box-shadow:0 4px 16px color-mix(in srgb,var(--bowl-color,#e9c46a) 30%,#0000);transform:translateY(-1px)}.singing-bowl.active .bowl-play-btn{animation:bowl-pulse 2.5s ease-in-out infinite}@keyframes bowl-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,#e9c46a 40%,#0000);box-shadow:0 0 0 0 color-mix(in srgb,var(--bowl-color,#e9c46a) 40%,#0000)}50%{box-shadow:0 0 0 10px color-mix(in srgb,#e9c46a 0,#0000);box-shadow:0 0 0 10px color-mix(in srgb,var(--bowl-color,#e9c46a) 0,#0000)}}.bowl-play-icon{flex-shrink:0;font-size:1.1rem}.bowl-play-label{flex:1 1;text-align:left}.bowl-progress-bar{background:color-mix(in srgb,#e9c46a 25%,#0000);background:color-mix(in srgb,var(--bowl-color,#e9c46a) 25%,#0000);border-radius:4px;height:4px;overflow:hidden}.bowl-progress-fill{background:#e9c46a;background:var(--bowl-color,#e9c46a);border-radius:4px;height:100%;transition:width .1s linear}.singing-bowl.small .bowl-play-btn{font-size:.85rem;padding:10px 12px}.singing-bowl.small .bowl-sel-icon{font-size:1.3rem}.singing-bowl.small .bowl-selector-btn{padding:8px 6px}.bgm-wrapper{background:var(--surface);border:1.5px solid var(--border);border-radius:16px;display:flex;flex-direction:column;gap:12px;padding:16px;width:100%}.bgm-fullpage{border:none;border-radius:0;margin:0 auto;max-width:680px;min-height:calc(100vh - 80px);padding:24px 20px}.bgm-fullpage .bgm-title{font-size:18px}.bgm-fullpage .bgm-grid{gap:12px}.bgm-fullpage .bgm-card{padding:20px 12px}.bgm-fullpage .bgm-card-icon{font-size:2rem}.bgm-fullpage .bgm-card-label{font-size:15px}.bgm-fullpage .bgm-card-desc{font-size:12px}.bgm-header{align-items:center;display:flex;justify-content:space-between}.bgm-title{color:var(--ink);font-size:13px;font-weight:700}.bgm-stop-btn{background:#fff5f5;border:1.5px solid #e63946;border-radius:8px;color:#e63946;cursor:pointer;font-size:12px;font-weight:600;padding:5px 12px;transition:all .2s}.bgm-stop-btn:hover{background:#e63946;color:#fff}.bgm-now-playing{align-items:center;background:linear-gradient(135deg,#f0fff4,#dcfce7);border:1.5px solid #2d6a4f44;border-radius:10px;display:flex;font-size:12px;gap:8px;padding:8px 12px}.bgm-playing-icon{font-size:1.1rem}.bgm-playing-label{color:#2d6a4f;flex:1 1;font-weight:600}.bgm-loop-badge{color:#2d6a4f;font-size:11px;opacity:.7}.bgm-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.bgm-card{align-items:center;background:var(--surface);border:2px solid var(--border);border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:12px 8px;transition:all .2s}.bgm-card:hover{border-color:#2d6a4f;transform:translateY(-1px)}.bgm-card.active{box-shadow:0 4px 12px #0000001a}.bgm-card-icon{font-size:1.5rem}.bgm-card-label{color:var(--ink);font-size:13px;font-weight:700}.bgm-card-desc{color:var(--ink-soft);font-size:11px;text-align:center}.bgm-card-playing{align-items:flex-end;display:flex;gap:2px;height:14px;margin-top:2px}.bgm-bar{animation:bgm-dance .8s ease-in-out infinite alternate;background:currentColor;border-radius:2px;width:3px}.bgm-bar:first-child{animation-delay:0s;height:6px}.bgm-bar:nth-child(2){animation-delay:.2s;height:12px}.bgm-bar:nth-child(3){animation-delay:.4s;height:8px}@keyframes bgm-dance{0%{transform:scaleY(.4)}to{transform:scaleY(1)}}.bgm-volume{align-items:center;display:flex;gap:8px}.bgm-vol-icon{font-size:1rem}.bgm-vol-slider{appearance:none;background:var(--border);border-radius:4px;cursor:pointer;flex:1 1;height:4px;outline:none}.bgm-vol-slider::-webkit-slider-thumb{appearance:none;background:#2d6a4f;border-radius:50%;cursor:pointer;height:16px;width:16px}.bgm-vol-pct{color:var(--ink-soft);font-size:11px;min-width:32px;text-align:right}.bgm-hint{color:var(--ink-soft);font-size:12px;margin:4px 0 0;text-align:center}.nav-music-dot{animation:dot-pulse 1.5s ease-in-out infinite;background:#2d6a4f;border-radius:50%;height:7px;position:absolute;right:6px;top:4px;width:7px}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.start-screen{align-items:center;display:flex;flex-direction:column;gap:16px;margin:0 auto;max-width:680px;min-height:100vh;padding:48px 24px 32px}.start-areas-back-row{display:flex;justify-content:flex-start;margin-bottom:-8px;width:100%}.start-areas-back{background:none;border:none;color:var(--accent);cursor:pointer;font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;padding:0}.start-areas-back:hover{text-decoration:underline}.start-header{text-align:center;width:100%}.start-logo-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.start-logo{color:var(--accent);font-family:Fraunces,serif;font-size:12px;font-weight:600;letter-spacing:.2em;opacity:.8;text-transform:uppercase}.student-mode-btn{background:var(--surface);border:1.5px solid var(--border);border-radius:100px;color:var(--ink-soft);cursor:pointer;font-family:DM Sans,sans-serif;font-size:12px;font-weight:500;padding:6px 14px;transition:all .2s}.student-mode-btn:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.start-title{color:var(--ink);font-family:Fraunces,serif;font-size:clamp(32px,6vw,52px);font-weight:300;line-height:1.15;margin-bottom:16px}.start-title em{color:var(--accent);font-style:italic}.start-subtitle{color:var(--ink-soft);font-size:15px;line-height:1.6;margin:0 auto;max-width:420px}.dashboard-row{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr);width:100%}.dashboard-mini-card{align-items:flex-start;background:var(--surface);border:1.5px solid var(--border);border-radius:16px;box-shadow:var(--shadow);cursor:pointer;display:flex;flex-direction:column;gap:6px;min-width:0;padding:14px 12px;text-align:left;transition:all .2s}.dashboard-mini-card:hover{border-color:var(--accent);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.dashboard-mini-card.highlight{animation:pulse 2s ease infinite;background:linear-gradient(135deg,#fffbf0,#fdf6e3);border-color:#e9c46a}.dmc-emoji{font-size:22px}.dmc-info{display:flex;flex-direction:column;gap:2px;min-width:0;width:100%}.dmc-label{color:var(--ink-soft);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.dmc-title{color:var(--ink);font-size:12px;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dmc-sub{color:var(--ink-soft);font-size:11px}.dmc-new{color:#e9c46a;font-size:11px;font-weight:700}.dmc-bar{background:var(--border);border-radius:100px;height:4px;margin-top:4px;overflow:hidden;width:100%}.dmc-bar-fill{background:var(--accent);border-radius:100px;height:100%;transition:width .4s ease}.dmc-count{align-self:flex-end;color:var(--accent);font-size:12px;font-weight:700}.dmc-arrow{align-self:flex-end;color:var(--ink-soft);font-size:14px}.recent-section{width:100%}.recent-label{color:var(--ink-soft);font-size:11px;font-weight:600;letter-spacing:.12em;margin-bottom:10px;text-transform:uppercase}.recent-cards{display:flex;gap:10px}.recent-card{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:16px;box-shadow:var(--shadow);cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:6px;min-width:0;padding:14px 10px;text-align:center;transition:all .2s}.recent-card:hover{border-color:var(--accent);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.recent-emoji{font-size:22px}.recent-title{color:var(--ink);font-size:12px;font-weight:500;line-height:1.3;word-break:break-word}.recent-duration{color:var(--ink-soft);font-size:11px}.situation-grid{display:flex;flex-direction:column;gap:10px;width:100%}.situation-card{align-items:center;animation:slideUp .4s ease both;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;display:flex;gap:16px;padding:18px 24px;text-align:left;transition:all .22s cubic-bezier(.34,1.56,.64,1);width:100%}.situation-card.hovered,.situation-card:hover{background:var(--card-light);border-color:var(--card-color);box-shadow:var(--shadow-hover);transform:translateY(-2px) scale(1.01)}.situation-emoji{align-items:center;background:#f0f0f0;background:var(--card-light,#f0f0f0);border-radius:12px;display:flex;flex-shrink:0;font-size:24px;height:42px;justify-content:center;transition:background .2s;width:42px}.situation-card:hover .situation-emoji{background:#fff}.situation-label{color:var(--ink);flex:1 1;font-size:15px;font-weight:500}.situation-arrow{color:var(--ink-soft);font-size:16px;transition:transform .2s,color .2s}.situation-card:hover .situation-arrow{color:var(--card-color);transform:translateX(4px)}.random-btn{background:var(--surface);border:1.5px dashed var(--border);border-radius:var(--radius);color:var(--ink-soft);cursor:pointer;font-family:DM Sans,sans-serif;font-size:15px;font-weight:500;padding:16px;transition:all .2s;width:100%}.random-btn:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.start-footer{color:var(--ink-soft);font-size:13px;letter-spacing:.05em}.exercise-list-screen{margin:0 auto;max-width:680px;min-height:100vh;padding:32px 24px 48px}.list-header{margin-bottom:32px}.back-btn{margin-bottom:20px}.list-situation-badge{border-radius:100px;display:inline-block;font-size:13px;font-weight:500;margin-bottom:16px;padding:6px 14px}.list-title{color:var(--ink);font-family:Fraunces,serif;font-size:32px;font-weight:300;margin-bottom:6px}.list-subtitle{color:var(--ink-soft);font-size:14px}.exercise-cards{display:flex;flex-direction:column;gap:12px}.exercise-card{animation:slideUp .4s ease both;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;padding:20px;text-align:left;transition:all .22s cubic-bezier(.34,1.56,.64,1);width:100%}.exercise-card:hover{border-color:var(--accent);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.exercise-card-top{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.exercise-category-badge{color:var(--ink-soft);font-size:12px;font-weight:500}.exercise-noise-badge{font-size:12px;font-weight:600}.exercise-card-title{color:var(--ink);font-family:Fraunces,serif;font-size:20px;font-weight:300;margin-bottom:4px}.exercise-card-goal{color:var(--ink-soft);font-size:13px;margin-bottom:16px}.exercise-card-footer{align-items:center;border-top:1px solid var(--border);display:flex;justify-content:space-between;padding-top:12px}.exercise-duration{color:var(--ink-soft);font-size:13px}.exercise-arrow{color:var(--ink-soft);font-size:16px;transition:transform .2s}.exercise-card:hover .exercise-arrow{color:var(--accent);transform:translateX(4px)}.beamer-overlay{align-items:center;background:#0d1117;display:flex;flex-direction:column;inset:0;justify-content:center;padding:48px 64px;position:fixed;z-index:999}.beamer-close{background:#ffffff14;border:1px solid #ffffff26;border-radius:100px;color:#fff9;cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;padding:8px 18px;position:absolute;right:24px;top:24px;transition:all .2s}.beamer-close:hover{background:#ffffff24;color:#fff}.beamer-content{max-width:900px;text-align:center;width:100%}.beamer-ready{align-items:center;animation:fadeIn .5s ease;display:flex;flex-direction:column;gap:20px}.beamer-category{color:#ffffff80;font-size:18px;letter-spacing:.05em}.beamer-title{color:#fff;font-family:Fraunces,serif;font-size:clamp(48px,8vw,96px);font-weight:300;line-height:1.1}.beamer-goal{color:#fff9;font-size:22px}.beamer-duration-pill{background:#2d6a4f4d;border:1px solid #2d6a4f99;border-radius:100px;color:#74c69d;font-size:16px;padding:10px 24px}.beamer-start-btn{background:#2d6a4f;border:none;border-radius:100px;color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:20px;font-weight:500;letter-spacing:.02em;margin-top:16px;padding:18px 48px;transition:all .2s}.beamer-start-btn:hover{background:#235c43;box-shadow:0 12px 40px #2d6a4f66;transform:scale(1.03)}.beamer-running{align-items:center;animation:fadeIn .4s ease;display:flex;flex-direction:column;gap:32px}.beamer-progress-bar{background:#ffffff1a;border-radius:100px;height:6px;overflow:hidden;width:100%}.beamer-progress-fill{background:linear-gradient(90deg,#2d6a4f,#74c69d);border-radius:100px;height:100%;transition:width 1s linear}.beamer-timer-big{color:#fff;font-family:Fraunces,serif;font-size:clamp(72px,14vw,140px);font-weight:300;letter-spacing:-.02em;line-height:1}.beamer-step-area{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:24px;padding:36px 48px;width:100%}.beamer-step-head{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.beamer-step-counter{color:#fff6;font-size:14px;letter-spacing:.1em;text-transform:uppercase}.beamer-auto-toggle{align-items:center;color:#ffffffd9;display:flex;font-size:14px;gap:8px;-webkit-user-select:none;user-select:none}.beamer-auto-toggle input{height:16px;width:16px}.beamer-step-progress-wrap{margin-bottom:20px}.beamer-step-progress-label{color:#ffffffb3;font-size:14px;margin-bottom:8px}.beamer-step-progress{background:#ffffff1f;border-radius:999px;height:10px;overflow:hidden;width:100%}.beamer-step-progress-fill{background:linear-gradient(90deg,#4ea37c,#74c69d);border-radius:999px;height:100%;transition:width 1s linear}.beamer-step-text{color:#fff;font-family:Fraunces,serif;font-size:clamp(32px,5vw,56px);font-weight:300;line-height:1.25;margin-bottom:24px}.beamer-step-dots{display:flex;gap:8px;justify-content:center}.beamer-dot{background:#fff3;border-radius:50%;height:8px;transition:all .3s;width:8px}.beamer-dot.active{background:#74c69d;transform:scale(1.4)}.beamer-dot.done{background:#74c69d66}.beamer-step-nav{display:flex;gap:16px}.beamer-nav-btn{background:#ffffff14;border:1px solid #ffffff26;border-radius:100px;color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:16px;padding:12px 28px;transition:all .2s}.beamer-nav-btn:disabled{cursor:not-allowed;opacity:.25}.beamer-nav-btn:not(:disabled):hover{background:#ffffff26}.beamer-nav-btn.primary{background:#2d6a4f;border-color:#0000}.beamer-nav-btn.primary:not(:disabled):hover{background:#235c43}.beamer-teacher-line{align-items:center;background:#2d6a4f26;border:1px solid #2d6a4f4d;border-radius:16px;display:flex;gap:12px;padding:14px 24px;width:100%}.beamer-teacher-label{color:#74c69d;font-size:14px;font-weight:600;white-space:nowrap}.beamer-teacher-text{color:#ffffffbf;font-family:Fraunces,serif;font-size:18px;font-style:italic;text-align:left}.beamer-done{animation:fadeIn .5s ease;flex-direction:column;gap:20px}.beamer-done,.beamer-done-icon{align-items:center;display:flex}.beamer-done-icon{background:#2d6a4f4d;border:2px solid #2d6a4f;border-radius:50%;color:#74c69d;font-size:48px;height:100px;justify-content:center;width:100px}.beamer-done-title{color:#fff;font-family:Fraunces,serif;font-size:52px;font-weight:300}.beamer-done-sub{color:#ffffff80;font-size:20px}.guide-overlay{align-items:flex-end;animation:fadeIn .2s ease;background:#00000080;display:flex;inset:0;justify-content:center;padding:0;position:fixed;z-index:200}.guide-panel{animation:slideUp .3s cubic-bezier(.34,1.56,.64,1);background:var(--surface);border-radius:28px 28px 0 0;max-height:85vh;max-width:680px;overflow-y:auto;padding:28px 24px 48px;width:100%}.guide-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:28px}.guide-title-row{align-items:center;display:flex;gap:14px}.guide-emoji{font-size:32px}.guide-title{color:var(--ink);font-family:Fraunces,serif;font-size:22px;font-weight:300;margin-bottom:2px}.guide-subtitle{color:var(--ink-soft);font-size:13px}.guide-close{align-items:center;background:var(--bg);border:none;border-radius:50%;color:var(--ink-soft);cursor:pointer;display:flex;flex-shrink:0;font-size:14px;height:36px;justify-content:center;transition:all .2s;width:36px}.guide-close:hover{background:var(--border);color:var(--ink)}.guide-section{margin-bottom:24px}.guide-section-label{color:var(--ink);font-size:13px;font-weight:700;margin-bottom:12px}.guide-theory{background:var(--bg);border-radius:14px;color:var(--ink-soft);font-size:14px;line-height:1.7;padding:16px 18px}.guide-tips{display:flex;flex-direction:column;gap:10px;list-style:none}.guide-tip{align-items:flex-start;color:var(--ink-soft);display:flex;font-size:14px;gap:10px;line-height:1.5}.guide-tip-dot{background:var(--accent);border-radius:50%;flex-shrink:0;height:6px;margin-top:6px;width:6px}.guide-video-placeholder{align-items:center;background:var(--bg);border:1.5px dashed var(--border);border-radius:16px;display:flex;flex-direction:column;gap:8px;padding:28px;text-align:center}.guide-video-icon{font-size:36px}.guide-video-label{color:var(--ink);font-size:14px;font-weight:500}.guide-video-hint{color:var(--ink-soft);font-size:12px}.guide-video-wrap{aspect-ratio:16/9;border-radius:16px;overflow:hidden}.guide-video{height:100%;width:100%}.audio-player{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:14px;margin-bottom:16px;padding:20px;transition:all .3s}.audio-player.tts-mode{background:linear-gradient(135deg,#f0f7ff,#e8f4fd);border-color:#457b9d}.audio-player.file-mode{background:linear-gradient(135deg,#f5f0e8,#faf8f4);border-color:var(--accent)}.audio-player.loading{align-items:center;padding:24px}.audio-loading-dots{display:flex;gap:6px}.audio-loading-dots span{animation:loadingBounce .6s ease infinite alternate;background:var(--accent);border-radius:50%;height:8px;width:8px}.audio-loading-dots span:nth-child(2){animation-delay:.2s}.audio-loading-dots span:nth-child(3){animation-delay:.4s}@keyframes loadingBounce{0%{opacity:.4;transform:translateY(0)}to{opacity:1;transform:translateY(-6px)}}.audio-loading-label{color:var(--ink-soft);font-size:13px}.audio-player-header{align-items:center;display:flex;gap:12px}.audio-icon{flex-shrink:0;font-size:24px}.audio-info{display:flex;flex:1 1;flex-direction:column;gap:2px}.audio-title{color:var(--ink);font-size:14px;font-weight:600}.audio-subtitle{color:var(--ink-soft);font-size:12px}.audio-mode-badge{border-radius:100px;font-size:10px;font-weight:700;letter-spacing:.1em;padding:3px 8px;text-transform:uppercase}.audio-mode-badge.tts{background:#daeaf5;color:#457b9d}.audio-mode-badge.file{background:var(--accent-light);color:var(--accent)}.audio-script-preview{background:#fff9;border-radius:12px;padding:12px 16px}.audio-script-text{color:var(--ink);font-family:Fraunces,serif;font-size:15px;font-style:italic;line-height:1.5}.audio-progress-wrap{cursor:pointer;padding:8px 0}.audio-progress-bar{background:var(--border);border-radius:100px;height:6px;overflow:visible;position:relative}.audio-progress-fill{background:var(--accent);border-radius:100px;height:100%;transition:width .1s linear}.audio-progress-thumb{background:var(--accent);border:2px solid #fff;border-radius:50%;box-shadow:0 2px 6px #2d6a4f4d;height:14px;position:absolute;top:50%;transform:translate(-50%,-50%);transition:left .1s linear;width:14px}.audio-time-row{display:flex;justify-content:space-between;margin-top:-8px}.audio-time{color:var(--ink-soft);font-size:12px}.audio-controls{align-items:center;display:flex;gap:12px;justify-content:center}.audio-rewind-btn{background:#fff9;border:1.5px solid var(--border);border-radius:100px;color:var(--ink-soft);cursor:pointer;font-family:DM Sans,sans-serif;font-size:12px;font-weight:500;padding:8px 14px;transition:all .2s}.audio-rewind-btn:hover{border-color:var(--accent);color:var(--accent)}.audio-play-btn{align-items:center;background:var(--accent);border:none;border-radius:100px;color:#fff;cursor:pointer;display:flex;font-family:DM Sans,sans-serif;font-size:15px;font-weight:500;gap:8px;justify-content:center;min-width:160px;padding:12px 24px;transition:all .2s}.audio-play-btn:hover{background:#235c43;transform:scale(1.02)}.audio-play-btn.playing{background:#e76f51}.audio-play-btn.playing:hover{background:#d4613f}.play-icon{font-size:16px}.audio-tts-wave{align-items:center;display:flex;gap:3px;height:32px;justify-content:center}.tts-bar{animation:wave .8s ease infinite alternate;background:var(--accent);border-radius:100px;width:3px}@keyframes wave{0%{height:4px;opacity:.4}to{height:24px;opacity:1}}.audio-tts-hint{color:var(--ink-soft);font-size:11px;line-height:1.5;text-align:center}.audio-tts-hint code{background:var(--bg);border-radius:4px;color:#457b9d;font-size:11px;padding:1px 6px}.voice-toggle{background:#fff9;flex-shrink:0;gap:2px;padding:3px}.voice-btn{align-items:center;display:flex;font-size:15px;height:28px;justify-content:center;width:28px}.detail-screen{background:var(--bg);min-height:100vh;padding:32px 24px 64px}.detail-inner{margin:0 auto;max-width:640px}.detail-topbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-bottom:20px}.detail-topbar-actions{display:flex;flex-wrap:wrap;gap:6px}.back-btn{background:none;border:none;color:var(--ink-soft);cursor:pointer;font-family:DM Sans,sans-serif;font-size:14px;padding:0;transition:color .2s}.back-btn:hover{color:var(--ink)}.audio-toggle-btn{background:linear-gradient(135deg,#daeaf5,#b8d8ed);border:1.5px solid #457b9d;border-radius:100px;color:#457b9d;cursor:pointer;font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;padding:6px 12px;transition:all .2s}.audio-toggle-btn:hover{background:#457b9d;color:#fff}.guide-btn{background:var(--surface);border:1.5px solid var(--border);border-radius:100px;color:var(--ink-soft);cursor:pointer;font-family:DM Sans,sans-serif;font-size:12px;font-weight:500;padding:6px 12px;transition:all .2s}.guide-btn:hover{border-color:var(--accent);color:var(--accent)}.beamer-btn{background:#0d1117;border:none;border-radius:100px;color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:12px;font-weight:500;padding:6px 12px;transition:all .2s}.beamer-btn:hover{background:#1a2030}.detail-fav-btn{background:var(--surface);border:1.5px solid var(--border);border-radius:100px;color:var(--ink-soft);cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;padding:6px 12px;transition:all .2s}.detail-fav-btn.active,.detail-fav-btn:hover{background:#fdf6e3;border-color:#e9c46a;color:var(--ink)}.detail-header{margin-bottom:28px}.detail-category{color:var(--ink-soft);font-size:13px;font-weight:500}.detail-title{color:var(--ink);font-family:Fraunces,serif;font-size:clamp(28px,5vw,44px);font-weight:300;line-height:1.2;margin:8px 0 16px}.detail-meta{display:flex;flex-wrap:wrap;gap:10px}.meta-pill{background:var(--surface);border:1.5px solid var(--border);border-radius:100px;color:var(--ink-soft);font-size:13px;padding:6px 14px}.detail-section{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:24px}.section-label{color:var(--ink-soft);font-size:11px;font-weight:600;letter-spacing:.12em;margin-bottom:20px;text-transform:uppercase}.steps-list{display:flex;flex-direction:column;gap:14px;list-style:none}.step-item{align-items:flex-start;display:flex;gap:14px}.step-number{align-items:center;background:var(--accent-light);border-radius:50%;color:var(--accent);display:flex;flex-shrink:0;font-size:13px;font-weight:600;height:28px;justify-content:center;width:28px}.step-text{color:var(--ink);font-size:15px;line-height:1.5;padding-top:4px}.teacher-line-box{background:var(--accent-light);border:1.5px solid var(--accent);border-radius:var(--radius);margin-bottom:16px;padding:20px 24px}.teacher-line-label{color:var(--accent);display:block;font-size:11px;font-weight:600;letter-spacing:.12em;margin-bottom:10px;text-transform:uppercase}.teacher-line-text{color:var(--ink);font-family:Fraunces,serif;font-size:18px;font-style:italic;line-height:1.5}.note-section{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);margin-bottom:16px;overflow:hidden}.note-toggle{align-items:center;background:none;border:none;color:var(--ink-soft);cursor:pointer;display:flex;font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;justify-content:space-between;padding:16px 20px;transition:background .2s;width:100%}.note-toggle:hover{background:var(--surface-soft)}.note-toggle-arrow{font-size:11px}.note-body{animation:slideDown .2s ease;display:flex;flex-direction:column;gap:10px;padding:0 20px 20px}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.note-textarea{background:var(--bg);border:1.5px solid var(--border);border-radius:12px;color:var(--ink);font-family:DM Sans,sans-serif;font-size:14px;line-height:1.6;outline:none;padding:12px 14px;resize:vertical;transition:border-color .2s;width:100%}.note-textarea:focus{border-color:var(--accent)}.note-save-btn{align-self:flex-end;background:var(--accent);border:none;border-radius:100px;color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;padding:8px 20px;transition:all .2s}.note-save-btn:hover{background:#235c43}.note-save-btn.saved{background:#52b788}.start-btn{background:var(--accent);border:none;border-radius:var(--radius);color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:16px;font-weight:500;letter-spacing:.02em;margin-bottom:16px;padding:18px;transition:all .2s;width:100%}.start-btn:hover{background:#235c43;box-shadow:0 8px 24px #2d6a4f4d;transform:translateY(-1px)}.start-actions{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-bottom:16px}.beamer-start-btn{background:#0d1117}.beamer-start-btn:hover{background:#1a2030;box-shadow:0 8px 24px #0d111766}.feedback-box{animation:slideUp .4s ease both;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);margin-top:16px;padding:24px}.feedback-title{font-size:20px;margin-bottom:16px;text-align:center}.feedback-buttons{display:flex;gap:10px}.feedback-btn{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--ink);cursor:pointer;flex:1 1;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;padding:14px 8px;transition:all .2s}.feedback-btn:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.feedback-btn.better:hover{background:#d8f3dc;border-color:#2d6a4f}.feedback-btn.same:hover{background:#fdf6e3;border-color:#e9c46a}.feedback-btn.worse:hover{background:#fde8e3;border-color:#e76f51}.voice-select{align-items:center;display:flex;gap:12px;justify-content:center;margin-bottom:4px}.voice-select-label{color:var(--ink-soft);font-size:13px;font-weight:500}.voice-toggle{background:var(--bg);border:1.5px solid var(--border);border-radius:100px;display:flex;gap:4px;padding:4px}.voice-btn{background:#0000;border:none;border-radius:100px;color:var(--ink-soft);cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;padding:6px 16px;transition:all .18s}.voice-btn.active{background:var(--accent);color:#fff}.voice-btn:not(.active):hover{background:var(--accent-light);color:var(--accent)}.browser-screen{margin:0 auto;max-width:680px;min-height:100vh;padding:32px 24px 48px}.browser-header{margin-bottom:24px}.browser-title{color:var(--ink);font-family:Fraunces,serif;font-size:32px;font-weight:300;margin-bottom:4px}.browser-subtitle{color:var(--ink-soft);font-size:14px}.category-tabs{display:flex;gap:8px;margin-bottom:24px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.category-tabs::-webkit-scrollbar{display:none}.category-tab{background:var(--surface);border:1.5px solid var(--border);border-radius:100px;color:var(--ink-soft);cursor:pointer;flex-shrink:0;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;padding:8px 16px;transition:all .2s;white-space:nowrap}.category-tab:hover{border-color:var(--ink-soft);color:var(--ink)}.browser-list{display:flex;flex-direction:column;gap:10px}.browser-card{align-items:stretch;animation:slideUp .35s ease both;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;overflow:hidden;transition:box-shadow .2s,transform .2s}.browser-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.browser-card-main{background:none;border:none;cursor:pointer;flex:1 1;padding:18px 20px;text-align:left}.browser-card-top{display:flex;justify-content:space-between;margin-bottom:8px}.browser-category-badge{color:var(--ink-soft);font-size:12px;font-weight:500}.browser-noise{font-size:12px;font-weight:600}.browser-card-title{color:var(--ink);font-family:Fraunces,serif;font-size:18px;font-weight:300;margin-bottom:10px}.browser-card-footer{align-items:center;display:flex;gap:12px}.browser-duration,.browser-goal{color:var(--ink-soft);font-size:12px}.fav-btn{align-items:center;background:var(--surface-soft);border:none;border-left:1.5px solid var(--border);cursor:pointer;display:flex;flex-shrink:0;font-size:20px;justify-content:center;transition:background .2s,transform .2s;width:52px}.fav-btn:hover{transform:scale(1.1)}.fav-btn.active,.fav-btn:hover{background:#fdf6e3}.empty-state{padding:60px 24px;text-align:center}.report-screen{margin:0 auto;max-width:680px;min-height:100vh;padding:32px 24px 80px}.report-header{margin-bottom:28px}.report-back{background:none;border:none;color:var(--ink-soft);cursor:pointer;display:block;font-family:DM Sans,sans-serif;font-size:14px;margin-bottom:16px;padding:0;transition:color .2s}.report-back:hover,.report-title{color:var(--ink)}.report-title{font-family:Fraunces,serif;font-size:32px;font-weight:300;margin-bottom:4px}.report-subtitle{color:var(--ink-soft);font-size:14px}.report-stats-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-bottom:28px}.report-stat{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:4px;padding:20px 16px;text-align:center}.report-stat-number{color:var(--ink);font-family:Fraunces,serif;font-size:36px;font-weight:300;line-height:1}.report-stat-label{color:var(--ink-soft);font-size:12px}.report-section{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:20px 24px}.report-section-title{color:var(--ink-soft);font-size:11px;font-weight:600;letter-spacing:.12em;margin-bottom:20px;text-transform:uppercase}.report-days{display:flex;justify-content:space-between;margin-bottom:16px}.report-day{align-items:center;display:flex;flex-direction:column;gap:8px}.report-day.today .report-day-label{color:var(--accent);font-weight:700}.report-day-dot{align-items:center;border-radius:50%;color:#fff;display:flex;font-size:13px;font-weight:700;height:40px;justify-content:center;transition:transform .2s;width:40px}.report-day-dot.better{background:#2d6a4f}.report-day-dot.same{background:#e9c46a}.report-day-dot.worse{background:#e76f51}.report-day-dot.empty{background:var(--border)}.report-day-count{color:#fff;font-size:13px;font-weight:700}.report-day-label{color:var(--ink-soft);font-size:12px}.report-legend{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.legend-item{align-items:center;color:var(--ink-soft);display:flex;font-size:12px;gap:6px}.legend-dot{border-radius:50%;height:10px;width:10px}.legend-dot.better{background:#2d6a4f}.legend-dot.same{background:#e9c46a}.legend-dot.worse{background:#e76f51}.legend-dot.empty{background:var(--border)}.report-situations{display:flex;flex-direction:column;gap:10px}.report-situation-row{align-items:center;display:flex;gap:10px}.report-situation-rank{color:var(--ink-soft);flex-shrink:0;font-size:12px;font-weight:700;width:24px}.report-situation-label{color:var(--ink);flex-shrink:0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:160px}.report-situation-bar-wrap{background:var(--bg);border-radius:100px;flex:1 1;height:8px;overflow:hidden}.report-situation-bar{background:linear-gradient(90deg,#2d6a4f,#74c69d);border-radius:100px;height:100%;min-width:8px;transition:width .6s ease}.report-situation-count{color:var(--ink-soft);flex-shrink:0;font-size:12px;text-align:right;width:24px}.report-categories{display:flex;flex-wrap:wrap;gap:8px}.report-category-pill{align-items:center;background:var(--bg);border:1.5px solid var(--border);border-radius:100px;color:var(--ink-soft);display:flex;font-size:13px;gap:8px;padding:6px 14px}.report-category-count{background:var(--accent);border-radius:100px;color:#fff;font-size:11px;font-weight:700;padding:1px 8px}.report-empty{padding:60px 24px;text-align:center}.challenge-screen{margin:0 auto;max-width:680px;min-height:100vh;padding:32px 24px 80px}.challenge-header{margin-bottom:24px}.challenge-back{background:none;border:none;color:var(--ink-soft);cursor:pointer;display:block;font-family:DM Sans,sans-serif;font-size:14px;margin-bottom:12px;padding:0;transition:color .2s}.challenge-back:hover{color:var(--ink)}.challenge-week-badge{background:var(--accent-light);border-radius:100px;color:var(--accent);display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;margin-bottom:10px;padding:4px 12px;text-transform:uppercase}.challenge-title{color:var(--ink);font-family:Fraunces,serif;font-size:32px;font-weight:300}.challenge-card{background:linear-gradient(135deg,#d8f3dc,#b7e4c7);border:1.5px solid #74c69d;border-radius:var(--radius);box-shadow:0 8px 32px #2d6a4f26;display:flex;flex-direction:column;gap:16px;margin-bottom:24px;padding:24px}.challenge-card-top{align-items:flex-start;display:flex;justify-content:space-between}.challenge-emoji{font-size:40px}.challenge-days-left{align-items:flex-end;display:flex;flex-direction:column}.days-number{color:#1a3a2a;font-family:Fraunces,serif;font-size:36px;font-weight:300;line-height:1}.days-label{color:#2d6a4f;font-size:12px;font-weight:500}.challenge-name{color:#1a3a2a;font-family:Fraunces,serif;font-size:26px;font-weight:300}.challenge-desc{color:#2d6a4f;font-size:15px;line-height:1.5}.challenge-progress-section{display:flex;flex-direction:column;gap:8px}.challenge-progress-header{align-items:center;display:flex;justify-content:space-between}.challenge-progress-label{color:#2d6a4f;font-size:13px;font-weight:500}.challenge-progress-count{color:#1a3a2a;font-size:14px;font-weight:700}.challenge-progress-bar{background:#ffffff80;border-radius:100px;height:10px;overflow:hidden}.challenge-progress-fill{background:#2d6a4f;border-radius:100px;height:100%;transition:width .6s ease}.challenge-progress-fill.completed{background:linear-gradient(90deg,#2d6a4f,#52b788)}.challenge-steps{display:flex;gap:8px}.challenge-step-dot{background:#fff6;border:2px solid #2d6a4f4d;border-radius:50%;height:32px;transition:all .3s;width:32px}.challenge-step-dot.done{background:#2d6a4f;border-color:#2d6a4f}.challenge-done{align-items:center;background:#fff9;border-radius:16px;display:flex;flex-direction:column;gap:8px;padding:20px;text-align:center}.challenge-done-icon{font-size:36px}.challenge-done-title{color:#1a3a2a;font-family:Fraunces,serif;font-size:20px;font-weight:300}.challenge-done-sub{color:#2d6a4f;font-size:13px;line-height:1.5}.challenge-info-section{margin-bottom:24px}.challenge-info-title{color:var(--ink-soft);font-size:13px;font-weight:700;letter-spacing:.1em;margin-bottom:14px;text-transform:uppercase}.challenge-info-cards{display:flex;flex-direction:column;gap:10px}.challenge-info-card{align-items:flex-start;background:var(--surface);border:1.5px solid var(--border);border-radius:14px;display:flex;gap:14px;padding:14px 16px}.info-icon{flex-shrink:0;font-size:22px}.challenge-info-card p{color:var(--ink-soft);font-size:14px;line-height:1.5}.challenge-upcoming-title{color:var(--ink-soft);font-size:13px;font-weight:700;letter-spacing:.1em;margin-bottom:14px;text-transform:uppercase}.challenge-upcoming-list{display:flex;flex-direction:column;gap:8px}.upcoming-card{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:14px;display:flex;gap:14px;opacity:.6;padding:12px 16px}.upcoming-emoji{font-size:22px}.upcoming-info{display:flex;flex:1 1;flex-direction:column;gap:2px}.upcoming-title{color:var(--ink);font-size:14px;font-weight:600}.upcoming-desc,.upcoming-week{color:var(--ink-soft);font-size:12px}.upcoming-week{flex-shrink:0;font-weight:500}.history-view{display:flex;flex-direction:column;gap:16px}.history-group{background:var(--surface);border:1.5px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:14px}.history-group-header{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.history-group-chip{align-self:flex-start;background:var(--accent-light);border-radius:999px;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.08em;padding:4px 8px;text-transform:uppercase}.history-group-date{color:var(--ink-soft);font-size:12px}.history-list{display:flex;flex-direction:column;gap:8px}.history-item{align-items:center;background:#fff;border:1px solid var(--border);border-radius:12px;display:flex;gap:10px;justify-content:space-between;padding:10px}.history-item-main{display:flex;flex-direction:column;gap:6px;min-width:0}.history-item-title-row{align-items:center;display:flex;gap:8px;min-width:0}.history-item-emoji{font-size:18px}.history-item-title{color:var(--ink);font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-item-meta{color:var(--ink-soft);display:flex;flex-wrap:wrap;font-size:12px;gap:8px 12px}.history-item-feedback{flex-shrink:0;font-size:22px;line-height:1}.history-empty{background:var(--surface);border:1.5px solid var(--border);border-radius:16px;padding:40px 18px;text-align:center}.history-empty-icon{font-size:36px;margin-bottom:8px}.history-empty-title{color:var(--ink);font-family:Fraunces,serif;font-size:22px;font-weight:300;margin-bottom:4px}.history-empty-sub{color:var(--ink-soft);font-size:13px}@media (min-width:600px){.history-group{padding:16px}.history-item{padding:12px}}.ranking-screen{margin:0 auto;max-width:680px;min-height:100vh;padding:32px 24px 80px}.ranking-header{margin-bottom:24px}.ranking-back{background:none;border:none;color:var(--ink-soft);cursor:pointer;display:block;font-family:DM Sans,sans-serif;font-size:14px;margin-bottom:16px;padding:0;transition:color .2s}.ranking-back:hover,.ranking-title{color:var(--ink)}.ranking-title{font-family:Fraunces,serif;font-size:32px;font-weight:300;margin-bottom:4px}.ranking-subtitle{color:var(--ink-soft);font-size:14px}.ranking-tabs{display:flex;gap:8px;margin-bottom:24px}.ranking-tab{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:12px;color:var(--ink-soft);cursor:pointer;display:flex;flex:1 1;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;gap:8px;justify-content:center;padding:10px 16px;transition:all .2s}.ranking-tab.active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.ranking-tab-badge{background:#e9c46a;border-radius:100px;color:#7a5c00;font-size:10px;font-weight:700;padding:2px 6px}.ranking-podium{align-items:flex-end;display:flex;gap:8px;justify-content:center;margin-bottom:28px;padding:0 16px}.podium-place{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:6px}.podium-medal{font-size:24px}.podium-emoji{font-size:22px}.podium-name{color:var(--ink);font-size:13px;font-weight:600;text-align:center}.podium-count{color:var(--ink);font-family:Fraunces,serif;font-size:20px;font-weight:300}.podium-block{border-radius:10px 10px 0 0;opacity:.85;width:100%}.pos-1 .podium-block{height:80px}.pos-2 .podium-block{height:56px}.pos-3 .podium-block{height:40px}.ranking-list{display:flex;flex-direction:column;gap:8px}.ranking-row{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:16px;display:flex;gap:12px;padding:14px 16px;transition:all .2s}.ranking-row.leader{background:linear-gradient(135deg,#fffbf0,#fdf6e3);border-color:#e9c46a}.ranking-row.dummy{opacity:.75}.ranking-pos{flex-shrink:0;font-size:18px;text-align:center;width:32px}.ranking-cls-emoji{flex-shrink:0;font-size:22px}.ranking-cls-info{display:flex;flex:1 1;flex-direction:column;gap:6px;min-width:0}.ranking-cls-name-row{align-items:center;display:flex;gap:8px}.ranking-cls-name{color:var(--ink);font-size:14px;font-weight:600}.ranking-trend{font-size:14px;font-weight:700}.ranking-bar-wrap{background:var(--bg);border-radius:100px;height:6px;overflow:hidden}.ranking-bar{background:var(--accent);border-radius:100px;height:100%;min-width:4px;transition:width .8s ease}.ranking-cls-stats{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0}.ranking-cls-count{color:var(--ink);font-family:Fraunces,serif;font-size:22px;font-weight:300;line-height:1}.ranking-cls-label{color:var(--ink-soft);font-size:11px}.ranking-rate{flex-shrink:0;font-size:12px;font-weight:700;margin-left:4px}.school-ranking{display:flex;flex-direction:column;gap:16px}.school-ranking-banner{align-items:flex-start;background:linear-gradient(135deg,#fdf6e3,#fff8f0);border:1.5px solid #e9c46a;border-radius:var(--radius);display:flex;gap:12px;padding:16px 20px}.banner-icon{flex-shrink:0;font-size:28px}.banner-title{color:var(--ink);font-size:15px;font-weight:600;margin-bottom:4px}.banner-sub{color:var(--ink-soft);font-size:13px;line-height:1.5}.school-ranking-footer{color:var(--ink-soft);font-size:12px;padding:8px;text-align:center}.ranking-empty{padding:60px 24px;text-align:center}.empty-icon{font-size:48px;margin-bottom:16px}.empty-text{color:var(--ink);font-family:Fraunces,serif;font-size:20px;font-weight:300;margin-bottom:8px}.empty-hint{color:var(--ink-soft);font-size:14px}.director-view{gap:14px}.director-pin-card,.director-view{display:flex;flex-direction:column}.director-pin-card{background:var(--surface);border:1.5px solid var(--border);border-radius:16px;gap:10px;padding:18px}.director-pin-title{color:var(--ink);font-family:Fraunces,serif;font-size:20px;font-weight:300}.director-pin-subtitle{color:var(--ink-soft);font-size:13px}.director-pin-input{border:1.5px solid var(--border);border-radius:12px;font-size:18px;letter-spacing:.2em;padding:10px 12px;text-align:center;width:100%}.director-pin-error{color:#c0392b;font-size:12px}.director-pin-btn{background:var(--accent);border:none;border-radius:999px;color:#fff;cursor:pointer;font-weight:600;padding:10px 16px}.director-banner{align-items:flex-start;background:linear-gradient(135deg,#eef7ff,#f8fcff);border:1.5px solid #b7d3f2;border-radius:var(--radius);display:flex;gap:12px;padding:14px 16px}.director-table-wrap{background:var(--surface);border:1.5px solid var(--border);border-radius:16px;overflow:hidden}.director-table{border-collapse:collapse;font-size:13px;width:100%}.director-table td,.director-table th{border-bottom:1px solid var(--border);padding:10px 12px;text-align:left;vertical-align:top}.director-table th{background:var(--surface-soft);color:var(--ink-soft);font-size:11px;letter-spacing:.05em;text-transform:uppercase}.director-class-cell{align-items:center;display:flex;font-weight:600;gap:8px}.director-favorite-cell{max-width:240px}.director-rate{font-weight:700}.director-rate.good{color:#2d6a4f}.director-rate.mid{color:#b58400}.director-mobile-cards{display:none}.director-empty-cell{color:var(--ink-soft);padding:16px;text-align:center}@media (max-width:760px){.director-table{display:none}.director-mobile-cards{display:flex;flex-direction:column;gap:8px;padding:10px}.director-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px}.director-card-title{align-items:center;color:var(--ink);display:flex;gap:8px;margin-bottom:8px}.director-card p{color:var(--ink-soft);font-size:13px;margin:4px 0}.director-card p span:first-child{color:var(--ink);font-weight:600}}.achievements-screen{margin:0 auto;max-width:680px;min-height:100vh;padding:32px 24px 80px}.achievements-header{margin-bottom:20px}.achievements-back{background:none;border:none;color:var(--ink-soft);cursor:pointer;display:block;font-family:DM Sans,sans-serif;font-size:14px;margin-bottom:16px;padding:0;transition:color .2s}.achievements-back:hover{color:var(--ink)}.achievements-title{color:var(--ink);font-family:Fraunces,serif;font-size:32px;font-weight:300;margin-bottom:4px}.achievements-subtitle{color:var(--ink-soft);font-size:14px}.achievements-progress{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.ach-progress-bar{background:var(--border);border-radius:100px;height:10px;overflow:hidden}.ach-progress-fill{background:linear-gradient(90deg,#2d6a4f,#74c69d);border-radius:100px;height:100%;transition:width .8s ease}.ach-progress-label{color:var(--ink-soft);font-size:13px;text-align:right}.achievements-filters{display:flex;gap:8px;margin-bottom:20px}.ach-filter{background:var(--surface);border:1.5px solid var(--border);border-radius:100px;color:var(--ink-soft);cursor:pointer;flex:1 1;font-family:DM Sans,sans-serif;font-size:12px;font-weight:500;padding:8px 10px;transition:all .2s}.ach-filter.active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.achievements-grid{display:flex;flex-direction:column;gap:10px}.achievement-card{align-items:center;animation:slideUp .3s ease both;background:var(--surface);border:1.5px solid var(--border);border-radius:16px;display:flex;gap:14px;padding:16px 18px;transition:all .2s}.achievement-card.unlocked{background:linear-gradient(135deg,#fffbf0,#fdf6e3);border-color:#e9c46a}.achievement-card.locked{opacity:.55}.ach-emoji{align-items:center;background:var(--bg);border-radius:14px;display:flex;flex-shrink:0;font-size:28px;height:48px;justify-content:center;width:48px}.ach-emoji.grayscale{filter:grayscale(1);opacity:.4}.ach-info{display:flex;flex:1 1;flex-direction:column;gap:3px}.ach-title{color:var(--ink);font-size:15px;font-weight:600}.ach-desc{color:var(--ink-soft);font-size:12px;line-height:1.4}.ach-check{align-items:center;background:#2d6a4f;border-radius:50%;color:#fff;flex-shrink:0;font-size:12px;font-weight:700;height:24px;width:24px}.ach-check,.qr-overlay{display:flex;justify-content:center}.qr-overlay{align-items:flex-end;animation:fadeIn .2s ease;background:#00000080;inset:0;position:fixed;z-index:200}.qr-panel{align-items:center;animation:slideUp .3s cubic-bezier(.34,1.56,.64,1);background:var(--bg);border-radius:28px 28px 0 0;display:flex;flex-direction:column;gap:20px;max-width:480px;padding:28px 24px 48px;width:100%}.qr-header{position:relative;text-align:center;width:100%}.qr-close{background:var(--border);border:none;border-radius:50%;color:var(--ink-soft);cursor:pointer;font-size:13px;height:32px;position:absolute;right:0;top:0;transition:background .2s;width:32px}.qr-close:hover{background:var(--ink-soft);color:#fff}.qr-title{color:var(--ink);font-family:Fraunces,serif;font-size:26px;font-weight:300;margin-bottom:8px}.qr-subtitle{color:var(--ink-soft);font-size:14px;line-height:1.5;margin:0 auto;max-width:320px}.qr-class-badge{align-items:center;border:2px solid;border-radius:100px;display:flex;font-family:DM Sans,sans-serif;font-size:15px;gap:8px;padding:8px 18px}.qr-code-wrapper{background:#fff;border-radius:20px;box-shadow:0 8px 32px #0000001f;padding:4px}.qr-svg{border-radius:16px;display:block}.qr-info-row{gap:8px;justify-content:center;width:100%}.qr-info-item,.qr-info-row{align-items:center;display:flex}.qr-info-item{color:var(--ink-soft);flex-direction:column;font-size:11px;gap:4px;max-width:70px;text-align:center}.qr-info-icon{font-size:20px}.qr-info-arrow{color:var(--border);font-size:16px}.qr-coming-soon{align-items:flex-start;background:var(--surface);border:1.5px solid var(--border);border-radius:16px;display:flex;gap:12px;padding:14px 16px;width:100%}.qr-coming-icon{flex-shrink:0;font-size:22px}.qr-coming-title{color:var(--ink);font-size:13px;font-weight:600;margin-bottom:4px}.qr-coming-sub{color:var(--ink-soft);font-size:12px;line-height:1.4}.qr-copy-btn{background:var(--ink);border:none;border-radius:var(--radius);color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:15px;font-weight:500;padding:16px;transition:all .2s;width:100%}.qr-copy-btn:hover{background:#2c2c45}.qr-copy-btn.copied{background:#2d6a4f}.manager-screen{margin:0 auto;max-width:680px;min-height:100vh;padding:32px 24px 80px}.manager-back{background:none;border:none;color:var(--ink-soft);cursor:pointer;display:block;font-family:DM Sans,sans-serif;font-size:14px;margin-bottom:24px;padding:0;transition:color .2s}.manager-back:hover{color:var(--ink)}.manager-header{margin-bottom:28px}.manager-title{color:var(--ink);font-family:Fraunces,serif;font-size:32px;font-weight:300;margin-bottom:4px}.manager-subtitle{color:var(--ink-soft);font-size:14px}.class-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.class-card{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;overflow:hidden;transition:all .2s}.class-card.active{border-color:var(--cls-color);box-shadow:0 4px 20px #00000014,inset 3px 0 0 var(--cls-color)}.class-card-main{align-items:center;background:none;border:none;cursor:pointer;display:flex;flex:1 1;gap:14px;min-width:0;padding:18px 20px;text-align:left;transition:background .2s}.class-card-main:hover{background:var(--surface-soft)}.class-card-emoji{align-items:center;background:var(--bg);border-radius:12px;display:flex;flex-shrink:0;font-size:28px;height:44px;justify-content:center;width:44px}.class-card-info{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.class-card-name{color:var(--ink);font-size:16px;font-weight:500}.class-card-level,.class-card-notes{color:var(--ink-soft);font-size:12px}.class-card-notes{font-style:italic;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-active-badge{background:var(--cls-color);border-radius:100px;color:#fff;flex-shrink:0;font-size:11px;font-weight:600;padding:3px 10px}.class-card-actions{border-left:1.5px solid var(--border);display:flex;flex-direction:column}.class-action-btn{background:none;border:none;cursor:pointer;flex:1 1;font-size:15px;min-width:44px;padding:12px;transition:background .2s}.class-action-btn:hover{background:var(--surface-soft)}.class-action-btn.delete:hover{background:#fde8e3}.add-class-btn{background:none;border:1.5px dashed var(--border);border-radius:var(--radius);color:var(--ink-soft);cursor:pointer;font-family:DM Sans,sans-serif;font-size:15px;font-weight:500;padding:18px;transition:all .2s;width:100%}.add-class-btn:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.class-form{display:flex;flex-direction:column;gap:24px}.class-form-title{color:var(--ink);font-family:Fraunces,serif;font-size:28px;font-weight:300}.form-field{display:flex;flex-direction:column;gap:10px}.form-label{color:var(--ink-soft);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.form-input{background:var(--surface);border:1.5px solid var(--border);border-radius:14px;color:var(--ink);font-family:DM Sans,sans-serif;font-size:15px;outline:none;padding:14px 18px;transition:border-color .2s}.form-input:focus{border-color:var(--accent)}.form-textarea{background:var(--surface);border:1.5px solid var(--border);border-radius:14px;color:var(--ink);font-family:DM Sans,sans-serif;font-size:14px;line-height:1.6;outline:none;padding:14px 18px;resize:vertical;transition:border-color .2s}.form-textarea:focus{border-color:var(--accent)}.level-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,1fr)}.level-card{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:14px;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:16px 8px;text-align:center;transition:all .2s}.level-card.active,.level-card:hover{border-color:var(--accent)}.level-card.active{background:var(--accent-light)}.level-emoji{font-size:24px}.level-name{color:var(--ink);font-size:12px;font-weight:600}.level-desc{color:var(--ink-soft);font-size:11px}.emoji-grid{display:flex;flex-wrap:wrap;gap:8px}.emoji-option{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:12px;cursor:pointer;display:flex;font-size:22px;height:44px;justify-content:center;transition:all .2s;width:44px}.emoji-option:hover{border-color:var(--accent);transform:scale(1.1)}.emoji-option.active{background:var(--accent-light);border-color:var(--accent)}.color-grid{display:flex;flex-wrap:wrap;gap:10px}.color-option{border:2.5px solid #0000;border-radius:50%;cursor:pointer;height:36px;transition:all .2s;width:36px}.color-option.active,.color-option:hover{transform:scale(1.15)}.color-option.active{border-color:var(--ink);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--ink)}.form-tips{background:var(--accent-light);border:1.5px solid var(--accent);border-radius:14px;display:flex;flex-direction:column;gap:6px;padding:16px 20px}.form-tips-title{color:var(--accent);font-size:13px;font-weight:600;margin-bottom:4px}.form-tip{color:var(--ink-soft);font-size:13px;line-height:1.4}.form-actions{display:flex;gap:10px;padding-bottom:16px}.form-cancel{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--ink-soft);cursor:pointer;flex:1 1;font-family:DM Sans,sans-serif;font-size:14px;padding:14px;transition:all .2s}.form-cancel:hover{border-color:var(--ink-soft);color:var(--ink)}.form-save{background:var(--accent);border:none;border-radius:var(--radius);color:#fff;cursor:pointer;flex:2 1;font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;padding:14px;transition:all .2s}.form-save:disabled{cursor:not-allowed;opacity:.4}.form-save:not(:disabled):hover{background:#235c43}.delete-overlay{align-items:center;background:#0006;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:200}.delete-dialog{background:var(--surface);border-radius:var(--radius);box-shadow:0 20px 60px #0003;display:flex;flex-direction:column;gap:12px;max-width:360px;padding:28px;width:100%}.delete-title{color:var(--ink);font-family:Fraunces,serif;font-size:22px;font-weight:300}.delete-sub{color:var(--ink-soft);font-size:14px;line-height:1.5}.delete-actions{display:flex;gap:10px;margin-top:4px}.delete-confirm{background:#e63946;border:none;border-radius:100px;color:#fff;cursor:pointer;flex:1 1;font-family:DM Sans,sans-serif;font-size:14px;padding:12px;transition:background .2s}.delete-confirm:hover{background:#c1121f}.delete-cancel{background:var(--surface-soft);border:1.5px solid var(--border);border-radius:100px;color:var(--ink-soft);cursor:pointer;flex:1 1;font-family:DM Sans,sans-serif;font-size:14px;padding:12px}.moodvote-screen{align-items:center;background:var(--bg);display:flex;justify-content:center;min-height:100vh;padding:20px}.moodvote-card{background:var(--surface);border:1.5px solid var(--border);border-radius:20px;padding:22px;text-align:center;width:min(560px,100%)}.moodvote-class{color:var(--ink-soft);font-size:12px;margin-bottom:8px}.moodvote-title{color:var(--ink);font-family:Fraunces,serif;font-size:clamp(28px,6vw,42px);font-weight:300;margin-bottom:18px}.moodvote-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(5,minmax(0,1fr))}.moodvote-btn{align-items:center;background:#fff;border:1.5px solid var(--border);border-radius:14px;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:10px 6px}.moodvote-btn:hover{border-color:var(--accent)}.moodvote-emoji{font-size:30px}.moodvote-label{color:var(--ink-soft);font-size:11px}.moodvote-thanks{color:var(--accent);font-family:Fraunces,serif;font-size:44px;padding:20px 0 6px}.legal-screen{margin:0 auto;max-width:680px;min-height:100vh;padding:32px 24px 80px}.legal-header{margin-bottom:24px}.legal-back{background:none;border:none;color:var(--ink-soft);cursor:pointer;display:block;font-family:DM Sans,sans-serif;font-size:14px;margin-bottom:16px;padding:0;transition:color .2s}.legal-back:hover,.legal-title{color:var(--ink)}.legal-title{font-family:Fraunces,serif;font-size:32px;font-weight:300}.legal-tabs{display:flex;gap:8px;margin-bottom:24px}.legal-tab{background:var(--surface);border:1.5px solid var(--border);border-radius:12px;color:var(--ink-soft);cursor:pointer;flex:1 1;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;padding:10px 8px;transition:all .2s}.legal-tab.active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.legal-content{animation:fadeIn .3s ease;gap:20px}.legal-content,.legal-section{display:flex;flex-direction:column}.legal-section{background:var(--surface);border:1.5px solid var(--border);border-radius:16px;gap:8px;padding:20px}.legal-section-title{color:var(--accent);font-size:13px;font-weight:700;letter-spacing:.08em;margin-bottom:4px;text-transform:uppercase}.legal-section p{color:var(--ink-soft);font-size:14px;line-height:1.6}.legal-list{display:flex;flex-direction:column;gap:6px;list-style:none;padding:0}.legal-list li{color:var(--ink-soft);font-size:14px;line-height:1.5;padding-left:16px;position:relative}.legal-list li:before{color:var(--accent);content:"·";font-weight:700;left:0;position:absolute}.legal-beta-notice{align-items:flex-start;background:linear-gradient(135deg,#fdf6e3,#fff8f0);border:1.5px solid #e9c46a;border-radius:14px;display:flex;gap:12px;padding:14px 16px}.beta-icon{flex-shrink:0;font-size:20px}.legal-beta-notice p{color:var(--ink-soft);font-size:13px;line-height:1.5}.whatsnew-overlay{align-items:flex-end;animation:fadeIn .3s ease;background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:300}.whatsnew-panel{animation:slideUp .4s cubic-bezier(.34,1.56,.64,1);background:var(--bg);border-radius:28px 28px 0 0;display:flex;flex-direction:column;gap:24px;max-height:90vh;max-width:680px;overflow-y:auto;padding:32px 24px 48px;width:100%}.whatsnew-header{text-align:center}.whatsnew-version-badge{background:var(--accent-light);border-radius:100px;color:var(--accent);display:inline-block;font-size:11px;font-weight:700;letter-spacing:.1em;margin-bottom:12px;padding:4px 14px;text-transform:uppercase}.whatsnew-title{color:var(--ink);font-family:Fraunces,serif;font-size:32px;font-weight:300;margin-bottom:6px}.whatsnew-date{color:var(--ink-soft);font-size:13px}.whatsnew-changes{display:flex;flex-direction:column;gap:10px}.whatsnew-item{align-items:flex-start;animation:slideIn .4s ease both;background:var(--surface);border:1.5px solid var(--border);border-radius:14px;display:flex;gap:14px;padding:14px 16px}@keyframes slideIn{0%{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:translateX(0)}}.whatsnew-emoji{flex-shrink:0;font-size:22px;text-align:center;width:32px}.whatsnew-text{color:var(--ink);font-size:14px;line-height:1.5;padding-top:2px}.whatsnew-footer{align-items:center;display:flex;flex-direction:column;gap:16px}.whatsnew-feedback{background:linear-gradient(135deg,#fdf6e3,#fff8f0);border:1.5px solid #e9c46a;border-radius:16px;color:var(--ink-soft);font-size:14px;line-height:1.6;padding:14px 20px;text-align:center;width:100%}.whatsnew-btn{background:var(--accent);border:none;border-radius:var(--radius);color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:16px;font-weight:500;padding:18px;transition:all .2s;width:100%}.whatsnew-btn:hover{background:#235c43;box-shadow:0 8px 24px #2d6a4f4d;transform:translateY(-1px)}.area-selector{background:var(--bg);min-height:100vh;padding:48px 24px 32px}.area-selector-inner{align-items:center;display:flex;flex-direction:column;margin:0 auto;max-width:680px}.area-selector-logo{color:var(--accent);font-size:12px;font-weight:600;letter-spacing:.2em;margin-bottom:16px;opacity:.8;text-transform:uppercase}.area-selector-logo,.area-selector-welcome{font-family:Fraunces,serif;text-align:center}.area-selector-welcome{color:var(--ink);font-size:clamp(22px,4.5vw,30px);font-style:italic;font-weight:300;line-height:1.3;margin-bottom:24px}.area-selector-cards{flex-direction:column}.area-card,.area-selector-cards{display:flex;gap:16px;width:100%}.area-card{align-items:center;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--area-color);border-radius:20px;box-shadow:var(--shadow);color:inherit;cursor:pointer;flex-direction:row;font-family:inherit;justify-content:space-between;padding:20px 20px 20px 24px;text-align:left;transition:box-shadow .2s,transform .15s}.area-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.area-card:active{transform:translateY(0)}.area-card-main{align-items:flex-start;display:flex;flex:1 1;flex-direction:column;gap:10px;min-width:0}.area-card-emoji{font-size:40px;line-height:1}.area-card-copy{display:flex;flex-direction:column;gap:6px}.area-card-title{color:var(--ink);font-size:18px;font-weight:700}.area-card-desc{color:var(--ink-soft);font-size:14px;line-height:1.45;opacity:.92}.area-card-arrow{color:var(--ink-soft);flex-shrink:0;font-size:22px;line-height:1}.area-pw-overlay{align-items:center;background:#0006;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.area-pw-modal{background:var(--bg);border-radius:20px;box-shadow:0 8px 32px #00000026;display:flex;flex-direction:column;gap:12px;max-width:360px;padding:32px 28px;width:90%}.area-pw-title{color:var(--ink);font-size:18px;font-weight:700;margin:0}.area-pw-hint{color:var(--ink-soft);font-size:13px;margin:0}.area-pw-modal input{background:#fff;border:1.5px solid var(--border);border-radius:12px;font-family:DM Sans,sans-serif;font-size:15px;outline:none;padding:12px 16px}.area-pw-modal input.error{border-color:#e63946}.area-pw-error{color:#e63946;font-size:12px;margin:0}.area-pw-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.area-pw-actions button{background:#0000;border:1.5px solid var(--border);border-radius:100px;cursor:pointer;font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;padding:8px 20px}.area-pw-actions button.primary{background:var(--accent);border-color:#0000;color:#fff}.ut-board{flex-direction:column;font-family:DM Sans,sans-serif;inset:0;transition:background .5s ease}.ut-board,.ut-topbar{display:flex;position:fixed}.ut-topbar{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff26;justify-content:center;left:0;padding:10px 16px;right:0;top:0;z-index:30}.ut-toolbar.hidden,.ut-topbar.hidden{display:none}.ut-presentation-exit{background:#ffffff26;border:none;border-radius:50%;cursor:pointer;font-size:16px;height:32px;left:10px;opacity:.3;position:fixed;top:10px;transition:opacity .2s;width:32px;z-index:100}.ut-presentation-exit:hover{opacity:1}.ut-back-btn{background:#fffc;border:none;border-radius:100px;color:#2d3436;cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;left:16px;padding:6px 14px;position:absolute;top:50%;transform:translateY(-50%)}.ut-board-title{color:#0006;font-size:11px;font-weight:700;letter-spacing:.15em}.ut-page-nav{align-items:center;display:flex;gap:4px;position:fixed;right:16px;top:10px;z-index:30}.ut-page-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffd9;border:1.5px solid #00000026;border-radius:8px;color:#2d3436;cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;height:32px;padding:0;position:relative;transition:all .15s;width:32px}.ut-page-btn.active{background:#2d6a4f;border-color:#2d6a4f;color:#fff}.ut-page-btn:disabled{cursor:not-allowed;opacity:.3}.ut-page-btn:not(.active):not(:disabled):hover{background:#d8f3dc;border-color:#2d6a4f}.ut-page-bg-dot{border-radius:50%;bottom:3px;height:5px;left:50%;position:absolute;transform:translateX(-50%);width:5px}.ut-canvas{height:100vh;inset:0;position:fixed;touch-action:none;width:100vw}.ut-board[data-drawing=true] .ut-doc-card,.ut-board[data-drawing=true] .ut-exercise-card,.ut-board[data-drawing=true] .ut-file-card,.ut-board[data-drawing=true] .ut-image-card,.ut-board[data-drawing=true] .ut-textbox,.ut-board[data-drawing=true] .ut-widget{pointer-events:none}.ut-draw-mode-banner{align-items:center;animation:fadeInUp .25s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#2d6a4feb;border-radius:100px;bottom:60px;box-shadow:0 4px 20px #0003;color:#fff;display:flex;font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;gap:12px;left:50%;padding:8px 16px;pointer-events:all;position:fixed;transform:translateX(-50%);white-space:nowrap;z-index:31}@keyframes fadeInUp{0%{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.ut-draw-mode-exit{background:#fff3;border:none;border-radius:100px;color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:11px;font-weight:700;padding:3px 10px;transition:background .15s}.ut-draw-mode-exit:hover{background:#ffffff59}.ut-widget{animation:widgetIn .35s cubic-bezier(.34,1.56,.64,1);border:3px solid;border-radius:20px;box-shadow:0 8px 32px #00000026;position:fixed;z-index:10}.ut-widget,.ut-widget-body{align-items:center;display:flex;flex-direction:column;justify-content:center}.ut-widget-body{gap:10px;height:100%;position:relative;width:100%}.ut-widget-body--fill{align-self:stretch;flex:1 1;min-height:0}.ut-widget-close{align-items:center;background:#e63946;border:none;border-radius:50%;box-shadow:0 2px 8px #0003;color:#fff;cursor:pointer;display:none;font-family:DM Sans,sans-serif;font-size:11px;font-weight:700;height:22px;justify-content:center;line-height:1;padding:0;position:absolute;right:-8px;top:-8px;width:22px;z-index:5}.ut-widget:hover .ut-widget-close{display:flex}.ut-selection-overlay{background:#e6394614;border:2px dashed #e63946;border-radius:4px;pointer-events:none;position:fixed;z-index:8}.ut-widget-cursor-grab{cursor:grab}.ut-widget-cursor-grabbing{cursor:grabbing}@keyframes widgetIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.ut-sozialform-widget{background:#ffffffeb;border-radius:50%;border-width:3px;box-shadow:0 8px 32px #0000002e;box-sizing:border-box;gap:10px;height:130px;justify-content:center;padding:18px 12px;width:130px}.ut-widget-emoji{font-size:42px}.ut-widget-label{font-family:Fraunces,serif;font-size:11px;font-weight:700;letter-spacing:-.01em;line-height:1.2;text-align:center}.ut-timer-widget{border-color:#2d6a4f}.ut-stopwatch-widget,.ut-timer-widget{align-items:center;background:#ffffffeb;display:flex;height:140px;justify-content:center;width:140px}.ut-stopwatch-widget{border-color:#e9c46a}.ut-timer-ring{height:140px;left:0;position:absolute;top:0;width:140px}.ut-timer-inner{align-items:center;display:flex;flex-direction:column;gap:4px;position:relative;z-index:1}.ut-timer-time{font-feature-settings:"tnum";color:#2d3436;font-family:DM Sans,sans-serif;font-size:26px;font-variant-numeric:tabular-nums;font-weight:700}.ut-timer-btns{display:flex;gap:8px}.ut-timer-btns button{background:none;border:none;color:#2d6a4f;cursor:pointer;font-size:16px;padding:2px 4px}.ut-doc-card{background:#fffffff5;border:2px solid #0000001a;border-radius:16px;box-shadow:0 8px 32px #00000026;box-sizing:border-box;display:flex;flex-direction:column;min-height:100px;overflow:hidden;position:fixed;-webkit-user-select:none;user-select:none;z-index:11}.ut-doc-card.ut-doc-cursor-grab .ut-doc-card-header{cursor:grab}.ut-doc-card.ut-doc-cursor-grabbing .ut-doc-card-header{cursor:grabbing}.ut-doc-card-header{align-items:center;background:#f5f0e8;border-bottom:1px solid #00000014;display:flex;flex-shrink:0;justify-content:space-between;padding:10px 14px}.ut-doc-title{color:#2d3436;font-size:12px;font-weight:600;max-width:80%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ut-doc-card-header button{background:none;border:none;color:#999;cursor:pointer;flex-shrink:0;font-size:14px}.ut-doc-card.ut-doc-cursor-grab{cursor:grab}.ut-doc-card.ut-doc-cursor-grabbing{cursor:grabbing}.ut-doc-pdf{border:none;cursor:default;display:block;flex:1 1;min-height:0;width:100%}.ut-doc-content{cursor:text;flex:1 1;font-size:14px;line-height:1.6;min-height:0;outline:none;overflow-y:auto;padding:16px;-webkit-user-select:text;user-select:text}.ut-doc-file-badge{color:#636e72;font-size:13px;padding:12px 14px}.ut-rich-focus-scope{display:flex;flex-direction:column}.ut-rich-focus-scope,.ut-rich-focus-scope--pdf{flex:1 1;min-height:0}.ut-phase-announce{align-items:center;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);background:#ffffff2e;border:2px solid #fff6;border-radius:32px;box-shadow:0 24px 64px #0003;display:flex;flex-direction:column;gap:16px;justify-content:center;position:fixed;transition:all 1.4s cubic-bezier(.25,.46,.45,.94);z-index:50}.ut-announce-hint{animation:pulse 2s ease infinite;color:#ffffffb3;font-family:DM Sans,sans-serif;font-size:13px;letter-spacing:.05em;margin:0 0 8px}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.ut-announce-emoji{animation:utBounceIn .5s cubic-bezier(.34,1.56,.64,1);filter:drop-shadow(0 8px 24px rgba(0,0,0,.15));font-size:120px;line-height:1}.ut-announce-label{font-family:Fraunces,serif;font-size:36px;font-weight:700;text-align:center;text-shadow:0 2px 8px #fffc}@keyframes utBounceIn{0%{opacity:0;transform:scale(0) rotate(-10deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}.ut-explorer{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff5;border:1.5px solid #2d6a4f33;border-radius:20px;bottom:72px;box-shadow:0 16px 48px #0000002e;display:flex;flex-direction:column;left:16px;max-height:480px;overflow:hidden;position:fixed;width:300px;z-index:32}.ut-explorer-header{align-items:center;border-bottom:1px solid #00000012;display:flex;justify-content:space-between;padding:14px 16px}.ut-explorer-title{color:#2d3436;font-size:15px;font-weight:700}.ut-explorer-close{background:none;border:none;color:#999;cursor:pointer;font-size:16px}.ut-explorer-tabs{border-bottom:1px solid #00000012;display:flex;flex-wrap:wrap;gap:4px;padding:8px}.ut-explorer-tab{background:#0000;border:1.5px solid #0000001f;border-radius:100px;cursor:pointer;font-size:11px;font-weight:600;padding:4px 10px;transition:all .15s}.ut-explorer-list{display:flex;flex:1 1;flex-direction:column;gap:4px;overflow-y:auto;padding:8px}.ut-explorer-item{background:#0000;border:1.5px solid #00000014;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:10px 12px;text-align:left;transition:all .15s;width:100%}.ut-explorer-item:hover{background:#f5f0e8;border-color:#2d6a4f}.ut-explorer-item.active{background:#d8f3dc;border-color:#2d6a4f}.ut-explorer-item-top{align-items:center;display:flex;justify-content:space-between}.ut-explorer-item-title{color:#2d3436;font-size:13px;font-weight:600}.ut-explorer-item-dur,.ut-explorer-item-goal{color:#636e72;font-size:11px}.ut-explorer-no-audio{color:#b2bec3;font-size:10px}.ut-exercise-card{background:#fffffff5;border:2px solid #2d6a4f4d;border-radius:20px;box-shadow:0 12px 40px #0000002e;cursor:grab;overflow:hidden;position:fixed;width:300px;z-index:13}.ut-exercise-card .ut-widget-close{display:flex;opacity:1;position:relative;right:auto;top:auto}.ut-exercise-backdrop{animation:fadeIn .4s ease;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0000008c;inset:0;position:fixed;z-index:15}.ut-exercise-image-wrap{animation:exerciseImageSwoop .7s cubic-bezier(.34,1.56,.64,1);border:2px solid #fff3;border-radius:24px;box-shadow:0 32px 80px #00000080;height:82vh;left:14vw;max-width:1100px;overflow:hidden;position:fixed;top:50%;transform:translateY(-50%);width:72vw;z-index:16}.ut-exercise-image-wrap:before{background:#0000008c;border-radius:0;content:"";inset:0;pointer-events:none;position:fixed;z-index:-1}@keyframes exerciseImageSwoop{0%{opacity:0;transform:translateY(-50%) scale(.88)}to{opacity:1;transform:translateY(-50%) scale(1)}}.ut-exercise-image{display:block;height:100%;object-fit:cover;transition:opacity .6s ease;width:100%}.ut-exercise-image-wrap.loading .ut-exercise-image{opacity:0}.ut-exercise-image-label{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0000008c;border-radius:100px;bottom:80px;color:#fff;font-family:Fraunces,serif;font-size:18px;font-weight:700;left:50%;padding:12px 28px;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:2}.ut-exercise-audio-sidebar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff14;border:1px solid #ffffff26;border-radius:20px;gap:14px;min-width:140px;padding:24px 16px;position:fixed;right:2vw;top:50%;transform:translateY(-50%);width:11vw;z-index:35}.ut-ex-sidebar-title,.ut-exercise-audio-sidebar{align-items:center;display:flex;flex-direction:column}.ut-ex-sidebar-title{color:#fff;font-family:Fraunces,serif;font-size:13px;font-weight:700;gap:6px;line-height:1.3;text-align:center}.ut-ex-sidebar-title span:first-child{font-size:28px}.ut-ex-sidebar-voice{background:#ffffff1a;border-radius:100px;display:flex;gap:4px;padding:3px}.ut-ex-sidebar-voice button{background:#0000;border:none;border-radius:100px;color:#fff9;cursor:pointer;font-size:13px;padding:4px 10px;transition:all .15s}.ut-ex-sidebar-voice button.active{background:#ffffff40;color:#fff}.ut-ex-sidebar-progress{background:#fff3;border-radius:100px;cursor:pointer;display:flex;flex-direction:column;height:120px;justify-content:flex-end;position:relative;width:6px}.ut-ex-sidebar-fill{background:#74c69d;border-radius:100px;bottom:0;position:absolute;transition:height .25s linear;width:100%}.ut-ex-sidebar-time{align-items:center;color:#ffffff80;display:flex;flex-direction:column;font-size:11px;gap:2px}.ut-ex-sidebar-play{align-items:center;background:#ffffff26;border:2px solid #ffffff4d;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:20px;height:52px;justify-content:center;transition:all .2s;width:52px}.ut-ex-sidebar-play:hover:not(:disabled){background:#ffffff40;transform:scale(1.08)}.ut-ex-sidebar-play.playing{background:#e76f51;border-color:#e76f51}.ut-ex-sidebar-play:disabled{cursor:not-allowed;opacity:.4}.ut-ex-sidebar-close{background:#ffffff14;border:1px solid #fff3;border-radius:100px;color:#ffffffb3;cursor:pointer;font-family:DM Sans,sans-serif;font-size:11px;font-weight:600;padding:6px 14px;transition:all .15s;white-space:nowrap}.ut-ex-sidebar-close:hover{background:#e6394680;border-color:#0000;color:#fff}.ut-exercise-image-close{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:16px;height:36px;justify-content:center;opacity:0;position:absolute;right:16px;top:16px;transition:opacity .2s;width:36px;z-index:3}.ut-exercise-image-wrap:hover .ut-exercise-image-close{opacity:1}.ut-exercise-image-loader{background:#0006;color:#fffc;font-size:15px;gap:16px;inset:0;position:absolute}.ut-exercise-fallback,.ut-exercise-image-loader{align-items:center;display:flex;flex-direction:column;justify-content:center}.ut-exercise-fallback{gap:24px;height:100%;width:100%}.ut-exercise-fallback-emoji{font-size:120px}.ut-exercise-fallback-title{color:#2d3436;font-size:36px}.ut-ex-card-header{align-items:center;background:#f5f0e8;border-bottom:1px solid #00000012;cursor:grab;display:flex;justify-content:space-between;padding:10px 14px}.ut-ex-card-category{color:#636e72;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.ut-ex-card-title{color:#2d3436;font-family:Fraunces,serif;font-size:16px;font-weight:700;margin:0;padding:12px 14px 4px}.ut-ex-card-teacher{border-bottom:1px solid #0000000f;color:#636e72;font-size:12px;font-style:italic;margin:0;padding:0 14px 8px}.ut-ex-card-steps{margin:8px 14px;padding-left:18px}.ut-ex-card-steps li{color:#2d3436;font-size:12px;line-height:1.6}.ut-ex-audio{border-top:1px solid #0000000f;display:flex;flex-direction:column;gap:8px;padding:10px 14px 14px}.ut-ex-voice-toggle{display:flex;gap:4px}.ut-ex-voice-toggle button{background:#0000;border:1.5px solid #0000001f;border-radius:100px;cursor:pointer;font-size:13px;padding:3px 12px}.ut-ex-voice-toggle button.active{background:#2d6a4f;border-color:#2d6a4f;color:#fff}.ut-ex-progress-wrap{cursor:pointer}.ut-ex-progress-bar{background:#0000001a;border-radius:100px;height:4px;overflow:visible}.ut-ex-progress-fill{background:#2d6a4f;border-radius:100px;height:100%;transition:width .25s linear}.ut-ex-time-row{color:#b2bec3;display:flex;font-size:10px;justify-content:space-between;margin-top:3px}.ut-ex-play-btn{background:#2d6a4f;border:none;border-radius:100px;color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;padding:9px;transition:background .2s;width:100%}.ut-ex-play-btn.playing{background:#e76f51}.ut-ex-play-btn:disabled{background:#b2bec3;cursor:not-allowed}.ut-music-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff5;border:1.5px solid #0000001a;border-radius:20px;bottom:72px;box-shadow:0 16px 48px #0000002e;overflow:hidden;position:fixed;right:16px;width:240px;z-index:32}.ut-music-header{align-items:center;border-bottom:1px solid #00000012;color:#2d3436;display:flex;font-size:14px;font-weight:700;justify-content:space-between;padding:12px 14px}.ut-music-header button{background:none;border:none;color:#999;cursor:pointer;font-size:15px}.ut-music-tracks{display:flex;flex-direction:column;gap:4px;padding:8px}.ut-music-track{align-items:center;background:#0000;border:1.5px solid #00000014;border-radius:12px;cursor:pointer;display:flex;font-family:DM Sans,sans-serif;gap:10px;padding:10px 12px;text-align:left;transition:all .15s;width:100%}.ut-music-track:hover{background:#f5f0e8;border-color:#2d6a4f}.ut-music-track.active{background:#d8f3dc;border-color:#2d6a4f}.ut-music-icon{font-size:20px}.ut-music-label{color:#2d3436;flex:1 1;font-size:13px;font-weight:600}.ut-music-playing{color:#2d6a4f;font-size:11px;font-weight:700}.ut-music-volume{align-items:center;border-top:1px solid #00000012;display:flex;font-size:14px;gap:8px;padding:8px 14px}.ut-volume-slider{accent-color:#2d6a4f;flex:1 1}.ut-music-stop{background:#e63946;border:none;color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;padding:10px;width:100%}.ut-music-stop:hover{background:#c0392b}.ut-textbox{border-radius:12px;display:flex;flex-direction:column;overflow:hidden;position:fixed;transition:background .4s ease,border-color .4s ease,box-shadow .4s ease;-webkit-user-select:none;user-select:none;z-index:12}.ut-textbox.focused{background:#fffffff5;border:2px solid #2d6a4f80;box-shadow:0 4px 20px #0000001f}.ut-textbox.focused .ut-textbox-handle{height:28px;opacity:1}.ut-textbox.focused .ut-textbox-delete,.ut-textbox.focused .ut-textbox-resize{opacity:1}.ut-textbox.focused .format-bar{display:flex}.ut-textbox.blurred{background:#0000;border:2px solid #0000;box-shadow:none}.ut-textbox.blurred .ut-textbox-handle{height:0;opacity:0;overflow:hidden}.ut-textbox.blurred .ut-textbox-delete{opacity:0;pointer-events:none}.ut-textbox.blurred .ut-textbox-resize{opacity:0}.ut-textbox.blurred .format-bar{display:none}.ut-textbox.blurred:hover{background:#ffffff26;border-color:#2d6a4f33;box-shadow:0 0 0 1px #2d6a4f26}.ut-textbox.blurred:hover .ut-textbox-handle{height:20px;opacity:.5}.ut-textbox.blurred:hover .ut-textbox-resize{opacity:.4}.ut-textbox-handle{align-items:center;background:#2d6a4f14;border-bottom:1px solid #2d6a4f26;cursor:grab;display:flex;flex-shrink:0;height:28px;justify-content:space-between;padding:4px 8px;transition:opacity .2s ease,height .2s ease}.ut-textbox-handle--active,.ut-textbox-handle:active{cursor:grabbing}.ut-textbox-grip{color:#2d6a4f80;font-size:14px;letter-spacing:1px}.ut-textbox-delete{background:none;border:none;border-radius:4px;color:#e63946;cursor:pointer;font-size:13px;font-weight:700;opacity:0;padding:2px 4px;transition:opacity .15s}.ut-textbox-content{color:#2d3436;cursor:text;flex:1 1;font-family:DM Sans,sans-serif;line-height:1.5;min-height:0;outline:none;overflow-y:auto;padding:10px 12px;pointer-events:auto;-webkit-user-select:text;user-select:text;white-space:normal;word-break:break-word}.ut-textbox-content:empty:before{color:#00000040;content:"Text eingeben…";pointer-events:none}.ut-textbox-resize{background:linear-gradient(135deg,#0000 50%,#2d6a4f4d 0);border-bottom-right-radius:10px;bottom:0;cursor:nwse-resize;height:20px;position:absolute;right:0;transition:opacity .15s;width:20px}.ut-textbox-resize--active,.ut-textbox-resize:hover{background:linear-gradient(135deg,#0000 50%,#2d6a4f99 0)}.ut-toolbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffd9;border-top:1px solid #00000014;bottom:0;flex-wrap:wrap;left:0;padding:8px 12px;position:fixed;right:0;z-index:30}.ut-toolbar,.ut-toolbar-group{align-items:center;display:flex;gap:4px}.ut-toolbar-divider{background:#0000001f;height:28px;margin:0 4px;width:1px}.ut-tool-btn{align-items:center;background:#fffc;border:1.5px solid #0000001f;border-radius:10px;color:#2d3436;cursor:pointer;display:flex;font-family:DM Sans,sans-serif;font-size:16px;justify-content:center;min-height:36px;min-width:36px;padding:6px 10px;transition:all .18s}.ut-tool-btn.small{font-size:12px;min-width:28px;padding:4px 8px}.ut-tool-btn.active{background:#2d6a4f;border-color:#2d6a4f;color:#fff}.ut-tool-btn[title=Auswahl]{font-size:18px;font-weight:700}.ut-tool-btn.phase{font-size:20px}.ut-tool-btn:hover{transform:scale(1.08)}.ut-color-btn{border:2px solid #00000026;border-radius:50%;cursor:pointer;height:24px;padding:0;transition:transform .15s;width:24px}.ut-color-btn.active{border-color:#2d3436;border-width:2px;transform:scale(1.3)}.ut-pen-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff7;border:1.5px solid #0000001a;border-radius:20px;bottom:68px;box-shadow:0 16px 48px #0000002e;display:flex;flex-direction:column;gap:14px;left:50%;min-width:320px;padding:16px;position:fixed;transform:translateX(-50%);z-index:32}.ut-pen-types{display:flex;gap:8px}.ut-pen-type-btn{align-items:center;background:#0000;border:2px solid #0000001a;border-radius:14px;cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:6px;padding:12px 8px;transition:all .18s}.ut-pen-type-btn:hover{background:#f5f0e8;border-color:#2d6a4f}.ut-pen-type-btn.active{background:#d8f3dc;border-color:#2d6a4f}.ut-pen-type-icon{font-size:22px}.ut-pen-type-label{color:#2d3436;font-size:11px;font-weight:600}.ut-pen-preview{border-radius:100px;margin-top:4px;min-height:2px;width:100%}.ut-pen-divider{background:#00000014;height:1px}.ut-pen-colors{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.ut-color-dot{border:none;border-radius:50%;cursor:pointer;height:28px;padding:0;transition:transform .15s,outline .15s;width:28px}.ut-color-dot:hover{transform:scale(1.2)}.ut-pen-custom-color{display:flex;flex-direction:column}.ut-custom-color-label{color:#636e72;font-size:12px;font-weight:600;justify-content:space-between}.ut-custom-color-label,.ut-custom-color-wrap{align-items:center;cursor:pointer;display:flex}.ut-custom-color-wrap{gap:6px;position:relative}.ut-custom-color-preview{border:2px solid #0000001f;border-radius:8px;height:28px;width:28px}.ut-color-input{border:none;cursor:pointer;height:0;opacity:0;padding:0;position:absolute;width:0}.ut-image-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff7;border:1.5px solid #0000001a;border-radius:20px;bottom:68px;box-shadow:0 16px 48px #0000002e;overflow:hidden;position:fixed;right:60px;width:300px;z-index:32}.ut-image-panel-header{align-items:center;border-bottom:1px solid #00000012;color:#2d3436;display:flex;font-size:14px;font-weight:700;justify-content:space-between;padding:12px 16px}.ut-image-panel-header button{background:none;border:none;color:#999;cursor:pointer;font-size:15px}.ut-image-tabs{border-bottom:1px solid #00000012;display:flex}.ut-image-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:#636e72;cursor:pointer;flex:1 1;font-size:12px;font-weight:600;padding:8px 4px;transition:all .15s}.ut-image-tab.active{border-bottom-color:#2d6a4f;color:#2d6a4f}.ut-image-tab-content{display:flex;flex-direction:column;gap:10px;padding:16px}.ut-image-upload-btn{background:#d8f3dc;border:2px dashed #2d6a4f;border-radius:12px;color:#2d6a4f;cursor:pointer;font-family:DM Sans,sans-serif;font-size:14px;font-weight:600;padding:20px;text-align:center;transition:all .2s;width:100%}.ut-image-upload-btn:hover{background:#b7e4c7}.ut-image-url-input{border:1.5px solid #0000001f;border-radius:10px;font-family:DM Sans,sans-serif;font-size:13px;outline:none;padding:10px 12px;width:100%}.ut-image-url-input:focus{border-color:#2d6a4f}.ut-image-action-btn{background:#2d6a4f;border:none;border-radius:100px;color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;padding:10px;transition:all .2s}.ut-image-action-btn:hover:not(:disabled){background:#1e4d38}.ut-image-action-btn:disabled{background:#b2bec3;cursor:not-allowed}.ut-image-action-btn.loading{animation:pulse 1s infinite;background:#6a4c93}.ut-ai-hint{color:#636e72;font-size:12px;margin:0}.ut-ai-prompt{border:1.5px solid #0000001f;border-radius:10px;font-family:DM Sans,sans-serif;font-size:13px;outline:none;padding:10px 12px;resize:none;width:100%}.ut-ai-prompt:focus{border-color:#2d6a4f}.ut-ai-error{color:#e63946;font-size:12px;margin:0}.ut-ai-select-hint{color:#2d6a4f;font-size:12px;font-weight:600;margin:0}.ut-ai-variants{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(3,1fr)}.ut-ai-variant{aspect-ratio:4/3;background:#f5f0e8;border:2px solid #0000001a;border-radius:10px;cursor:pointer;overflow:hidden;padding:0;position:relative;transition:all .2s}.ut-ai-variant.ready:hover{border-color:#2d6a4f;box-shadow:0 4px 16px #2d6a4f4d;transform:scale(1.04)}.ut-ai-variant.loading{cursor:wait}.ut-ai-variant.error{cursor:default;opacity:.5}.ut-ai-variant-img{height:100%;inset:0;object-fit:cover;position:absolute;transition:opacity .4s ease;width:100%}.ut-ai-variant-overlay{align-items:center;background:#2d6a4fbf;border-radius:8px;color:#fff;display:flex;font-size:12px;font-weight:700;inset:0;justify-content:center;opacity:0;position:absolute;transition:opacity .2s;z-index:2}.ut-ai-variant.ready:hover .ut-ai-variant-overlay{opacity:1}.ut-ai-variant-loading{align-items:center;color:#636e72;display:flex;flex-direction:column;font-size:11px;gap:8px;height:100%;inset:0;justify-content:center;position:absolute;width:100%;z-index:1}.ut-ai-spinner{animation:spin .8s linear infinite;border:3px solid #2d6a4f33;border-radius:50%;border-top-color:#2d6a4f;height:24px;width:24px}@keyframes spin{to{transform:rotate(1turn)}}.ut-ai-variant-error{align-items:center;color:#e63946;display:flex;flex-direction:column;font-size:11px;gap:4px;height:100%;inset:0;justify-content:center;position:absolute;width:100%;z-index:1}.ut-ai-variant-retry{background:#ffffff26;border:1px solid #ffffff4d;border-radius:100px;color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:11px;font-weight:600;margin-top:4px;padding:4px 10px;transition:background .15s}.ut-ai-variant-retry:hover{background:#ffffff40}.ut-ai-variant-actions{display:flex;gap:6px}.ut-ai-retry-btn{background:#0000;border:1.5px solid #2d6a4f4d;border-radius:100px;color:#2d6a4f;cursor:pointer;flex:1 1;font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;padding:8px;transition:all .15s}.ut-ai-retry-btn:hover:not(:disabled){background:#d8f3dc}.ut-ai-retry-btn:disabled{cursor:not-allowed;opacity:.4}.ut-ai-cancel-btn{background:#0000;border:1.5px solid #e639464d;border-radius:100px;color:#e63946;cursor:pointer;font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;padding:8px 14px;transition:all .15s}.ut-ai-cancel-btn:hover{background:#fde8e3}.ut-image-hint{color:#b2bec3;font-size:11px;margin:0;text-align:center}.ut-lehrer-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000059;inset:0;position:fixed;z-index:40}.ut-lehrer-panel{animation:slideInRight .3s cubic-bezier(.34,1.56,.64,1);background:#1a1a2e;bottom:0;box-shadow:-8px 0 40px #0006;display:flex;flex-direction:column;position:fixed;right:0;top:0;width:380px;z-index:41}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.ut-lehrer-header{align-items:flex-start;border-bottom:1px solid #ffffff1a;display:flex;justify-content:space-between;padding:20px 20px 16px}.ut-lehrer-title{color:#fff;display:block;font-family:Fraunces,serif;font-size:16px;font-weight:700}.ut-lehrer-badge{color:#74c69d;display:block;font-size:10px;font-weight:600;letter-spacing:.08em;margin-top:4px;text-transform:uppercase}.ut-lehrer-close{background:#ffffff1a;border:none;border-radius:50%;color:#fff9;cursor:pointer;font-size:14px;height:28px;transition:all .15s;width:28px}.ut-lehrer-close:hover{background:#fff3;color:#fff}.ut-lehrer-tabs{border-bottom:1px solid #ffffff1a;display:flex}.ut-lehrer-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:#ffffff80;cursor:pointer;flex:1 1;font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;padding:10px 8px;transition:all .15s}.ut-lehrer-tab.active{border-bottom-color:#74c69d;color:#74c69d}.ut-lehrer-content{display:flex;flex:1 1;flex-direction:column;gap:12px;overflow-y:auto;padding:16px}.ut-lehrer-input{background:#ffffff0d;border:1.5px solid #ffffff1a;border-radius:12px;color:#fff;font-family:DM Sans,sans-serif;font-size:13px;line-height:1.6;outline:none;padding:12px;resize:none;width:100%}.ut-lehrer-input:focus{border-color:#74c69d}.ut-lehrer-meta{display:flex;gap:8px}.ut-lehrer-fach-input,.ut-lehrer-select{background:#ffffff0d;border:1.5px solid #ffffff1a;border-radius:8px;color:#fff;flex:1 1;font-family:DM Sans,sans-serif;font-size:12px;height:34px;outline:none;padding:0 10px}.ut-lehrer-select option{background:#1a1a2e;color:#fff}.ut-lehrer-fach-input:focus,.ut-lehrer-select:focus{border-color:#74c69d}.ut-lehrer-fach-input::placeholder{color:#ffffff4d}.ut-lehrer-wiki-loading{animation:pulse 1.5s infinite;color:#fff6;font-size:11px;padding:6px 0}.ut-lehrer-wiki{background:#74c69d14;border:1px solid #74c69d33;border-radius:10px;display:flex;flex-direction:column;gap:4px;padding:10px 12px}.ut-lehrer-wiki-label{color:#74c69d;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.ut-lehrer-wiki-text{color:#fff9;font-size:12px;line-height:1.5;margin:0}.ut-lehrer-wiki-remove{align-self:flex-start;background:none;border:none;color:#ffffff4d;cursor:pointer;font-size:11px;padding:0}.ut-lehrer-wiki-remove:hover{color:#fff9}.ut-lehrer-input::placeholder{color:#ffffff4d}.ut-lehrer-image-area{display:flex;flex-direction:column;gap:10px}.ut-lehrer-upload-btn{background:#74c69d26;border:2px dashed #74c69d66;border-radius:12px;color:#74c69d;cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;padding:24px;text-align:center;transition:all .2s;width:100%}.ut-lehrer-upload-btn:hover{background:#74c69d40}.ut-lehrer-image-preview{border-radius:10px;overflow:hidden;position:relative}.ut-lehrer-image-preview img{border-radius:10px;display:block;max-height:180px;object-fit:cover;width:100%}.ut-lehrer-image-remove{background:#e63946e6;border:none;border-radius:100px;color:#fff;cursor:pointer;font-size:11px;font-weight:600;padding:4px 10px;position:absolute;right:8px;top:8px}.ut-lehrer-generate-btn{background:linear-gradient(135deg,#2d6a4f,#52b788);border:none;border-radius:12px;color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:14px;font-weight:700;padding:14px;transition:all .2s;width:100%}.ut-lehrer-generate-btn:hover:not(:disabled){box-shadow:0 4px 20px #2d6a4f66;transform:scale(1.02)}.ut-lehrer-generate-btn:disabled{cursor:not-allowed;opacity:.4;transform:none}.ut-lehrer-generate-btn.loading{animation:pulse 1.5s ease infinite;background:linear-gradient(135deg,#6a4c93,#9b72cf)}.ut-lehrer-error{color:#f87171;font-size:12px;margin:0}.ut-lehrer-result{background:#ffffff0d;border:1.5px solid #74c69d4d;border-radius:12px;overflow:hidden}.ut-lehrer-result-header{align-items:center;border-bottom:1px solid #ffffff14;color:#74c69d;display:flex;font-size:12px;font-weight:600;justify-content:space-between;padding:10px 14px}.ut-lehrer-result-actions{display:flex;gap:6px}.ut-lehrer-copy-btn,.ut-lehrer-regenerate-btn{background:#ffffff1a;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;padding:4px 8px;transition:background .15s}.ut-lehrer-copy-btn:hover,.ut-lehrer-regenerate-btn:hover{background:#fff3}.ut-lehrer-result-text{color:#ffffffd9;font-size:13px;line-height:1.7;max-height:240px;overflow-y:auto;padding:14px;white-space:pre-wrap}.ut-lehrer-push-btn{background:#74c69d33;border:none;border-top:1px solid #74c69d33;color:#74c69d;cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;font-weight:700;padding:12px;transition:all .2s;width:100%}.ut-lehrer-push-btn:hover{background:#74c69d59}.ut-lehrer-footer{border-top:1px solid #ffffff14;color:#ffffff59;font-size:11px;line-height:1.5;padding:12px 20px}.ut-lehrer-footer span{color:#ffffff80;font-weight:600}.ut-image-card{border-radius:8px;box-shadow:0 4px 20px #00000026;cursor:grab;overflow:hidden;position:fixed;transition:box-shadow .2s;z-index:11}.ut-image-card:hover{box-shadow:0 8px 32px #00000038}.ut-image-card:active{cursor:grabbing}.ut-image-content{display:block;height:100%;object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%}.ut-image-delete-btn{align-items:center;background:#e63946e6;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;font-weight:700;height:26px;justify-content:center;opacity:0;position:absolute;right:8px;top:8px;transition:opacity .15s;width:26px}.ut-image-card:hover .ut-image-delete-btn{opacity:1}.ut-image-resize-handle{background:linear-gradient(135deg,#0000 50%,#fff9 0);bottom:0;cursor:nwse-resize;height:24px;opacity:0;position:absolute;right:0;transition:opacity .15s;width:24px}.ut-image-card:hover .ut-image-resize-handle{opacity:1}.format-bar{background:#f5f0e8;border-bottom:1px solid #00000014;flex-shrink:0;flex-wrap:wrap;gap:2px;padding:4px 8px;-webkit-user-select:none;user-select:none}.format-bar,.format-btn{align-items:center;display:flex}.format-btn{background:#0000;border:1px solid #0000;border-radius:6px;color:#2d3436;cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;height:26px;justify-content:center;min-width:28px;padding:3px 7px;transition:all .12s;white-space:nowrap}.format-btn:hover{background:#2d6a4f1a;border-color:#2d6a4f33}.format-btn.active{background:#d8f3dc;border-color:#2d6a4f;color:#2d6a4f}.format-btn.format-clear{color:#e63946}.format-select{background:#fff;border:1px solid #0000001f;border-radius:6px;color:#2d3436;cursor:pointer;font-size:12px;height:26px;outline:none;padding:0 4px}.format-select.font-family{width:110px}.format-select.font-size{width:52px}.format-dropdown-wrap{display:inline-flex;position:relative}.format-select-btn{align-items:center;background:#fff;border:1px solid #0000001f;border-radius:6px;color:#2d3436;cursor:pointer;display:flex;font-family:DM Sans,sans-serif;font-size:12px;gap:4px;height:26px;padding:0 8px;transition:border-color .15s;white-space:nowrap}.format-select-btn:hover{border-color:#2d6a4f}.format-select-btn.font-family{min-width:110px}.format-select-btn.font-size{justify-content:space-between;min-width:52px}.format-dropdown-arrow{color:#636e72;font-size:9px;margin-left:auto}.format-dropdown-list{background:#fff;border:1.5px solid #0000001a;border-radius:10px;box-shadow:0 8px 24px #00000026;left:0;min-width:100%;overflow-y:auto;position:absolute;top:calc(100% + 4px);z-index:200}.format-dropdown-list.font-list{max-height:220px;width:160px}.format-dropdown-list.size-list{max-height:200px;text-align:center;width:80px}.format-dropdown-item{background:#0000;border:none;color:#2d3436;cursor:pointer;display:block;font-family:DM Sans,sans-serif;font-size:13px;padding:8px 12px;text-align:left;transition:background .1s;width:100%}.format-dropdown-item:hover{background:#f5f0e8}.format-dropdown-item.active{background:#d8f3dc;color:#2d6a4f;font-weight:600}.format-dropdown-list.size-list .format-dropdown-item{padding:6px 8px;text-align:center}.format-divider{background:#0000001f;flex-shrink:0;height:18px;margin:0 3px;width:1px}.format-color-wrap{position:relative}.format-color-btn{flex-direction:column;gap:1px;height:28px;padding:2px 5px}.format-color-indicator{border:1px solid #0000001a;border-radius:2px;height:4px;width:18px}.format-color-popup{grid-gap:6px;background:#fff;border:1.5px solid #0000001a;border-radius:12px;box-shadow:0 8px 24px #00000026;display:grid;gap:6px;grid-template-columns:repeat(4,1fr);left:0;padding:10px;position:absolute;top:calc(100% + 6px);width:130px;z-index:100}.format-color-dot{border:1px solid #0000;border-radius:50%;cursor:pointer;height:24px;transition:transform .15s;width:24px}.format-color-dot:hover{transform:scale(1.2)}.format-custom-color{border:1px solid #0000001f;border-radius:6px;cursor:pointer;grid-column:span 4;height:26px;padding:0;width:100%}.area-placeholder-screen{background:var(--bg);min-height:100vh;padding:48px 24px 32px;position:relative}.area-placeholder-back{background:none;border:none;color:var(--accent);cursor:pointer;font-family:DM Sans,sans-serif;font-size:15px;font-weight:500;left:24px;padding:8px 0;position:absolute;top:24px}.area-placeholder-back:hover{text-decoration:underline}.area-placeholder-center{align-items:center;display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:calc(100vh - 96px);text-align:center}.area-placeholder-emoji{font-size:56px;line-height:1}.area-placeholder-title{color:var(--ink);font-family:Fraunces,serif;font-size:clamp(28px,6vw,40px);font-weight:600}.area-placeholder-sub{color:var(--ink-soft);font-size:15px}.feedback-overlay{align-items:flex-end;animation:fadeIn .2s ease;background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:250}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.feedback-panel{animation:slideUp .3s cubic-bezier(.34,1.56,.64,1);background:var(--bg);border-radius:28px 28px 0 0;display:flex;flex-direction:column;gap:20px;max-height:90vh;max-width:680px;overflow-y:auto;padding:28px 24px 48px;width:100%}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.feedback-header{position:relative;text-align:center}.feedback-close{background:var(--border);border:none;border-radius:50%;color:var(--ink-soft);cursor:pointer;font-size:13px;height:32px;position:absolute;right:0;top:0;transition:all .2s;width:32px}.feedback-close:hover{background:var(--ink-soft);color:#fff}.feedback-title{color:var(--ink);font-family:Fraunces,serif;font-size:26px;font-weight:300;margin-bottom:6px}.feedback-subtitle{color:var(--ink-soft);font-size:14px;margin-bottom:16px}.feedback-steps{display:flex;gap:8px;justify-content:center}.feedback-step-dot{background:var(--border);border-radius:50%;height:8px;transition:all .3s;width:8px}.feedback-step-dot.active{background:var(--accent);border-radius:100px;width:24px}.feedback-body{animation:fadeSlide .3s ease;display:flex;flex-direction:column;gap:14px}@keyframes fadeSlide{0%{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}.feedback-section-label{color:var(--ink-soft);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.feedback-type-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}.feedback-type-btn{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:16px;cursor:pointer;display:flex;font-family:DM Sans,sans-serif;gap:10px;padding:14px 16px;text-align:left;transition:all .2s}.feedback-type-btn.active,.feedback-type-btn:hover{border-color:var(--accent)}.feedback-type-btn.active{background:var(--accent-light)}.ft-emoji{flex-shrink:0;font-size:22px}.ft-label{color:var(--ink);font-size:13px;font-weight:500}.feedback-ratings{display:flex;flex-direction:column;gap:8px}.feedback-rating-btn{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:14px;cursor:pointer;display:flex;font-family:DM Sans,sans-serif;gap:14px;padding:12px 16px;transition:all .2s}.feedback-rating-btn:hover{border-color:var(--accent)}.feedback-rating-btn.active{background:var(--accent-light);border-color:var(--accent)}.fr-emoji{font-size:24px}.fr-label{color:var(--ink);font-size:14px;font-weight:500}.feedback-textarea{background:var(--surface);border:1.5px solid var(--border);border-radius:16px;color:var(--ink);font-family:DM Sans,sans-serif;font-size:15px;line-height:1.6;outline:none;padding:14px 16px;resize:vertical;transition:border-color .2s;width:100%}.feedback-textarea:focus{border-color:var(--accent)}.feedback-email{background:var(--surface);border:1.5px solid var(--border);border-radius:14px;color:var(--ink);font-family:DM Sans,sans-serif;font-size:14px;outline:none;padding:12px 16px;transition:border-color .2s;width:100%}.feedback-email:focus{border-color:var(--accent)}.feedback-nav{display:flex;gap:10px}.feedback-back-btn{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--ink-soft);cursor:pointer;font-family:DM Sans,sans-serif;font-size:14px;padding:14px 20px;transition:all .2s}.feedback-back-btn:hover{border-color:var(--ink-soft);color:var(--ink)}.feedback-next-btn{background:var(--accent);border:none;border-radius:var(--radius);color:#fff;cursor:pointer;flex:1 1;font-family:DM Sans,sans-serif;font-size:15px;font-weight:500;padding:14px;transition:all .2s}.feedback-next-btn:disabled{cursor:not-allowed;opacity:.4}.feedback-next-btn:not(:disabled):hover{background:#235c43}.feedback-submit-btn{background:var(--accent);border:none;border-radius:var(--radius);color:#fff;cursor:pointer;flex:1 1;font-family:DM Sans,sans-serif;font-size:15px;font-weight:500;padding:14px;transition:all .2s}.feedback-submit-btn:disabled{cursor:not-allowed;opacity:.4}.feedback-submit-btn:not(:disabled):hover{background:#235c43}.feedback-sent{align-items:center;display:flex;flex-direction:column;gap:16px;padding:32px 0;text-align:center}.feedback-sent-icon{font-size:56px}.feedback-sent-title{color:var(--ink);font-family:Fraunces,serif;font-size:26px;font-weight:300}.feedback-sent-sub{color:var(--ink-soft);font-size:15px;line-height:1.6;max-width:320px}.bottom-nav{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--surface);background:#ffffffeb;border-top:1.5px solid var(--border);bottom:0;height:var(--nav-height);justify-content:space-around;left:0;padding:0 16px;position:fixed;right:0;z-index:100}.bottom-nav,.nav-item{align-items:center;display:flex}.nav-item{background:none;border:none;border-radius:16px;cursor:pointer;flex:1 1;flex-direction:column;gap:4px;padding:8px;position:relative;transition:background .2s}.nav-item:hover{background:var(--surface-soft)}.nav-icon{font-size:22px;line-height:1;position:relative}.nav-badge{background:var(--accent-warm);border-radius:100px;color:#fff;font-family:DM Sans,sans-serif;font-size:10px;font-weight:700;padding:1px 5px;position:absolute;right:-8px;top:-4px}.nav-label{color:var(--ink-soft);font-size:11px;font-weight:400;transition:color .2s}.nav-item.active .nav-label{color:var(--accent);font-weight:600}.nav-item.active .nav-icon{transform:scale(1.1)}:root{--bg:#f5f0e8;--surface:#fff;--surface-soft:#faf8f4;--ink:#1a1a2e;--ink-soft:#5a5a7a;--accent:#2d6a4f;--accent-light:#d8f3dc;--accent-warm:#e76f51;--border:#e8e2d6;--radius:20px;--shadow:0 4px 24px #1a1a2e14;--shadow-hover:0 8px 40px #1a1a2e24;--nav-height:72px}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f0e8;background:var(--bg);color:#1a1a2e;color:var(--ink);font-family:DM Sans,sans-serif}.app,body{min-height:100vh}.app{display:flex;flex-direction:column;max-width:100vw;overflow-x:hidden}.app-content{flex:1 1;padding-bottom:72px;padding-bottom:var(--nav-height)}@media (max-width:480px){:root{--radius:16px}.start-screen{gap:12px;padding:32px 16px 24px}.start-title{font-size:28px}.situation-card{gap:12px;padding:14px 16px}.situation-label{font-size:14px}.situation-emoji{font-size:20px;height:36px;width:36px}.dashboard-row{gap:6px;grid-template-columns:repeat(3,1fr)}.dashboard-mini-card{padding:10px 8px}.dmc-emoji{font-size:18px}.dmc-title{font-size:11px}.recent-cards{gap:6px}.recent-card{padding:10px 6px}.recent-title{font-size:11px}.bottom-nav{padding:0 8px}.nav-label{font-size:10px}.nav-icon{font-size:20px}.detail-topbar-actions{gap:4px}.audio-toggle-btn,.beamer-btn,.detail-fav-btn,.guide-btn{font-size:11px;padding:5px 8px}.game-screen-body{padding:16px 16px 80px}.memory-grid{gap:6px}.memory-card-back,.memory-card-front{font-size:22px}.sequence-numpad{gap:6px}.numpad-btn{border-radius:12px;font-size:22px}.reaction-circle{height:200px;width:200px}.reaction-hint{font-size:24px}.ranking-podium{gap:4px;padding:0 8px}.podium-name{font-size:11px}.feedback-panel,.guide-panel,.qr-panel,.whatsnew-panel{padding:20px 16px 36px}.gamehub-grid{gap:8px;grid-template-columns:repeat(2,1fr)}.game-card{padding:14px 12px}.class-list{gap:8px}.level-grid{grid-template-columns:repeat(3,1fr)}.math-question{font-size:28px}.math-input{font-size:24px;width:120px}}@media (max-width:360px){.dashboard-row{gap:4px;grid-template-columns:repeat(3,1fr)}.dmc-title{font-size:10px}.start-title{font-size:24px}.situation-label{font-size:13px}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#e8e2d6;background:var(--border);border-radius:100px}.bottom-nav{padding-bottom:max(8px,env(safe-area-inset-bottom))}button:focus-visible{outline:2px solid #2d6a4f;outline:2px solid var(--accent);outline-offset:2px}button{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
/*# sourceMappingURL=main.43c29376.css.map*/