:root{--app-safe-top:env(safe-area-inset-top,0px)}.connection-spinner{animation:1s linear infinite spin}.avatar-mic-error{overflow-wrap:anywhere}.voice-input-control{justify-items:center;gap:8px;width:min(100%,420px);min-width:0;margin-inline:auto;display:grid}.voice-status{color:var(--muted);text-align:center;margin:0;font-size:.8rem}.voice-input-meter{width:min(100%,220px);height:12px}.voice-input-control select{background:var(--bg);width:min(100%,280px);min-height:36px;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:6px}.voice-diagnostics{width:100%;color:var(--muted);font-size:.75rem}.voice-diagnostics summary{cursor:pointer;text-align:center;padding:6px}.voice-diagnostics pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);max-height:180px;padding:8px;overflow-y:auto}.voice-diagnostics button,.voice-input-control .retry-connection-btn{justify-content:center;align-items:center;gap:6px;display:inline-flex}.voice-diagnostics button{color:inherit;border:1px solid var(--line);background:0 0;border-radius:6px;padding:8px}@media (prefers-reduced-motion:reduce){.connection-spinner{animation:none}}.learning-map-page-view .map-scroll-viewport{touch-action:pan-x pan-y;overscroll-behavior-x:contain;overflow:auto}.learning-map-page-view .map-canvas-stage{transition:none;aspect-ratio:auto!important;min-width:0!important}.map-canvas-size{position:relative}.insight-details>summary{cursor:pointer;color:var(--cyan);padding:8px 0;font-size:.85rem}.insight-details[open]>summary{margin-bottom:6px}@media (max-width:768px){html:has(.practice-main){overscroll-behavior:none!important;height:100dvh!important;max-height:100dvh!important;overflow:hidden!important}body:has(.practice-main){overscroll-behavior:none!important;height:100dvh!important;max-height:100dvh!important;overflow:hidden!important}body:has(.practice-main) .app-shell{overscroll-behavior:none!important;height:100dvh!important;max-height:100dvh!important;overflow:hidden!important}.app-shell{--bottom-nav-space:calc(64px + env(safe-area-inset-bottom,0px))}.app-shell .mobile-nav{z-index:100;padding-top:2px;padding-bottom:max(4px, env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:none;background:#070809f5;border-top:1px solid #ffffff14;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 14px #00000073}.app-shell .mobile-nav :is(a,.mobile-nav-item){border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:0;min-height:44px;padding:3px 2px 2px;display:flex}.app-shell :is(.practice-main,.secondary-main){min-width:0;padding-bottom:calc(var(--bottom-nav-space) + 12px)!important}.app-shell:before{content:"";height:var(--app-safe-top);background:var(--bg);z-index:50;pointer-events:none;position:fixed;inset:0 0 auto}.app-shell .app-header{height:calc(var(--app-safe-top) + 48px);min-height:calc(var(--app-safe-top) + 48px);max-height:calc(var(--app-safe-top) + 48px);padding:var(--app-safe-top) max(12px, env(safe-area-inset-right,0px)) 0 max(12px, env(safe-area-inset-left,0px));background:var(--bg);box-sizing:border-box;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;display:flex}.app-shell .practice-main.clean-layout{box-sizing:border-box;flex-direction:column;justify-content:space-between;display:flex;height:calc(100dvh - var(--bottom-nav-space))!important;max-height:calc(100dvh - var(--bottom-nav-space))!important;margin-bottom:var(--bottom-nav-space)!important;padding-top:4px!important;padding-bottom:4px!important;overflow:hidden!important}.app-shell .brand-mark{gap:7px;min-width:0;font-size:1.05rem}.app-shell .header-actions{gap:6px}.app-shell .header-actions .icon-link{width:40px;height:40px}.learning-map-page-view{gap:8px;min-width:0;height:auto;padding:4px 0 0;overflow:visible}.learning-map-page-view .map-scroll-outer-viewport{height:clamp(330px, calc(100svh - 225px - env(safe-area-inset-bottom,0px)), 540px);border-radius:8px;flex:none}.learning-map-page-view .map-canvas-stage{width:auto;height:auto;min-width:0!important}.learning-map-page-view .map-mobile-compact-header{border-radius:8px;flex-wrap:wrap;gap:6px;padding:9px}.learning-map-page-view .map-mobile-title-col{flex-wrap:wrap;gap:4px 8px}.learning-map-page-view .map-floating-controls{justify-content:space-between;gap:6px;top:8px;left:8px;right:8px}.learning-map-page-view .map-ctrl-btn{min-height:40px;padding:8px;font-size:.78rem}.learning-map-page-view .map-zoom-buttons-group{gap:4px}.learning-map-page-view .btn-zoom,.learning-map-page-view .btn-reset{width:40px}.learning-map-page-view .checkpoint-card-pill{white-space:normal;width:174px;min-width:0;max-width:174px}.learning-map-page-view .checkpoint-card-title{white-space:normal;overflow-wrap:anywhere;font-size:.78rem;line-height:1.2}.learning-map-page-view .checkpoint-card-actions{flex-wrap:wrap}.learning-map-page-view .checkpoint-card-actions button{min-height:36px}.practice-main .practice-header-nav-row{flex-shrink:0;min-width:0;gap:7px!important;margin-bottom:1px!important}.practice-main .practice-header-stats-row{display:none!important}.practice-main .active-module-pill-btn{max-width:none!important;min-height:34px!important;padding:3px 10px!important;font-size:.82rem!important}.practice-main .stage-exam-action-btn{min-height:34px!important;padding:3px 10px!important}.practice-main .session-header{display:none!important}.practice-main .module-concept-tracker-bar{flex-shrink:0;min-height:unset!important;margin-bottom:1px!important;padding:3px 10px!important}.practice-main .clean-stage{flex-direction:column;flex:auto;justify-content:space-between;align-items:center;gap:2px;width:100%;min-height:0;display:flex;overflow:hidden}.practice-main .clean-stage.history-is-closed .character-column{flex-direction:column;flex:auto;align-items:center;gap:4px;width:100%;max-width:440px;height:100%;min-height:0;display:flex;box-shadow:none!important;background:0 0!important;border:none!important;justify-content:flex-start!important;padding:0 0 clamp(144px,21dvh,164px)!important}.practice-main .teaching-concept-wrapper{flex-shrink:0;gap:2px!important;max-width:440px!important;margin-bottom:1px!important}.practice-main .teaching-concept-pill-bar{border-radius:6px!important;padding:2px 8px!important}.practice-main .concept-step-number{padding:1px 6px!important;font-size:.65rem!important}.practice-main .concept-remaining-pill{padding:1px 5px!important;font-size:.62rem!important}.practice-main .module-phase-stepper-track{gap:3px!important;padding:1px 1px 0!important}.practice-main .phase-stepper-bar-fill{height:3px!important}.practice-main .phase-stepper-step.is-current .phase-stepper-bar-fill{height:4px!important}.practice-main .phase-stepper-label{font-size:.54rem!important}.practice-main .concept-step-title{font-size:.74rem!important}.practice-main .concept-guide-toggle-btn{padding:2px 6px!important;font-size:.68rem!important}.practice-main .teaching-study-card{border-radius:6px!important;flex-direction:column!important;align-items:flex-start!important;gap:2px!important;padding:4px 8px!important;display:flex!important}.practice-main .study-card-item{gap:5px!important;width:100%!important}.practice-main .study-item-label{padding:1px 4px!important;font-size:.6rem!important}.practice-main .study-item-value{font-size:.74rem!important}.practice-main .study-item-value.english-phrase{font-size:.78rem!important}.practice-main .study-item-value.phonetic-guide{font-size:.74rem!important}.practice-main .study-speak-trigger-btn{padding:1px 5px!important}.practice-main.clean-layout .clean-stage.history-is-closed .character-speech-bubble-container{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#94a3b873 transparent;flex-shrink:0;width:min(96vw,440px);margin-bottom:2px;max-height:clamp(116px,21dvh,164px)!important;overflow-y:auto!important}.practice-main.clean-layout .clean-stage.history-is-closed .character-speech-bubble-container.has-overflow:not(.is-scrolled){-webkit-mask-image:linear-gradient(#000 0 calc(100% - 18px),#0000 100%);mask-image:linear-gradient(#000 0 calc(100% - 18px),#0000 100%)}.practice-main.clean-layout .clean-stage.history-is-closed .character-speech-bubble-container.has-overflow.is-scrolled{-webkit-mask-image:linear-gradient(#0000 0,#000 16px calc(100% - 18px),#0000 100%);mask-image:linear-gradient(#0000 0,#000 16px calc(100% - 18px),#0000 100%)}.practice-main .character-speech-bubble{padding:11px 14px 18px!important}.practice-main .speech-bubble-text{overflow-wrap:anywhere;font-size:.88rem!important;line-height:1.42!important}.practice-main .speech-bubble-didactic-footer{grid-template-columns:minmax(0,1fr) auto;align-items:start!important;gap:6px!important;display:grid!important}.practice-main .speech-study-guide{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px!important}.practice-main .speech-study-target{grid-column:1/-1}.practice-main .speech-study-guide>div:not(.speech-study-target){display:block!important}.practice-main .speech-study-guide dt{font-size:.62rem!important}.practice-main .speech-study-guide dd{overflow-wrap:anywhere;margin-top:2px!important;font-size:.72rem!important;line-height:1.3!important}.practice-main .speech-study-target dd{font-size:.94rem!important}.practice-main .speech-target-audio-btn{width:30px;min-width:30px;min-height:30px!important;padding:0!important}.practice-main .speech-target-audio-btn span{display:none}.practice-main .clean-stage.history-is-closed .character-avatar-wrapper{flex:auto;width:100%;position:relative;z-index:4!important;justify-content:center!important;align-items:flex-end!important;min-height:0!important;max-height:none!important;margin:2px auto 0!important;display:flex!important;overflow:visible!important}.practice-main .clean-stage.history-is-closed .character-stage{transform:none;justify-content:center!important;align-items:center!important;width:clamp(220px,37dvh,320px)!important;max-width:82vw!important;height:clamp(220px,37dvh,320px)!important;max-height:none!important;margin:0 auto!important;display:flex!important;overflow:visible!important}.practice-main .clean-stage.history-is-closed .rpg-character{margin:0 auto;width:100%!important;height:100%!important;display:block!important;overflow:visible!important}.practice-main .clean-stage.history-is-closed .character-stage.stage-hammock{transform:none}.practice-main .clean-stage.history-is-closed .character-stage.stage-hammock .rpg-character{filter:drop-shadow(0 14px 18px #0000007a)}.practice-main .clean-stage.history-is-open .character-column{flex-direction:column;flex:auto;align-items:center;gap:4px;width:100%;max-width:440px;min-height:0;display:flex}.practice-main .clean-stage.history-is-open .rpg-character{width:clamp(90px,18vw,120px)!important;height:auto!important}.practice-main .clean-stage.history-is-open .conversation-panel.clean-conversation{scroll-behavior:auto;width:100%;min-height:120px!important;max-height:38svh!important}.practice-main .practice-voice-hub{z-index:6;flex-direction:column;flex-shrink:0;align-items:center;display:flex;transform:translate(-50%);-webkit-backdrop-filter:blur(14px)!important;background:linear-gradient(#0d1822d9,#070d14eb)!important;border:1px solid #5eead429!important;border-radius:14px!important;gap:1px!important;width:calc(100% - 34px)!important;max-width:335px!important;margin-top:0!important;margin-bottom:0!important;padding:2px 6px 1px!important;position:absolute!important;inset:auto auto 2px 50%!important;box-shadow:0 6px 18px #00000059!important}@media (max-width:430px),(max-height:720px){.practice-main .header-actions .icon-link,.practice-main .stage-exam-action-btn{width:38px!important;min-width:38px!important;padding-inline:8px!important}.practice-main .stage-exam-action-btn span,.practice-main .active-module-pill-btn .module-pill-badge{display:none!important}.practice-main.clean-layout .clean-stage.history-is-closed .character-speech-bubble-container{max-height:clamp(106px,19dvh,144px)!important}.practice-main .clean-stage.history-is-closed .character-avatar-wrapper{min-height:0!important;margin-bottom:0!important}}.practice-main .voice-mode-selector-pill{gap:2px!important;margin-bottom:0!important;padding:1px 2px!important}.practice-main .voice-mode-tab-btn{min-height:20px!important;padding:1px 6px!important;font-size:.6rem!important}.practice-main .mic-btn-row{gap:4px!important;margin:0!important}.practice-main .dock-wave-side-container{min-width:24px!important;max-width:48px!important;height:18px!important}.practice-main .ptt-dock-row{border-radius:12px!important;gap:6px!important;max-width:100%!important;padding:4px 8px!important}.practice-main .ptt-dock-hold-btn{border-radius:9px!important;padding:4px 9px!important;font-size:.68rem!important}.practice-main .ptt-dock-label{font-size:.66rem!important}.practice-main .dock-wave-bars{height:18px!important}.practice-main .ptt-recording-pill{margin-bottom:0!important;padding:1px 8px!important;font-size:.62rem!important}.practice-main .avatar-mic-halo-wrapper{width:44px!important;height:44px!important}.practice-main .voice-input-control{flex-direction:column;flex-shrink:0;align-items:center;display:flex;gap:1px!important;margin:0!important}.practice-main .voice-input-control .avatar-mic-circle-btn{width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important}.practice-main .voice-action-badge{min-height:18px!important;margin-top:0!important;margin-bottom:0!important;padding:1px 7px!important}.practice-main .voice-action-text{font-size:.62rem!important;line-height:1.15!important}.practice-main .voice-dock-actions-row{gap:4px!important;margin:1px 0 0!important}.practice-main .dock-action-pill-btn{min-height:22px!important;padding:1px 7px!important;font-size:.62rem!important}.practice-main .history-toggle-row{flex-shrink:0;margin:2px 0 0!important}.practice-main .history-toggle-pill-btn{min-height:24px!important;padding:2px 8px!important;font-size:.66rem!important}.practice-main .chat-suggestions-bar,.practice-main .quick-text-input-bar{display:none!important}.evolution-dashboard{min-width:0;padding:12px 0}.evolution-dashboard .evolution-tabs{gap:6px}.evolution-dashboard .evolution-tab-btn{min-width:0;padding:10px 8px;font-size:.85rem}.evolution-dashboard .evolution-banner-header{gap:10px;margin-bottom:12px;padding:0}.evolution-dashboard .evolution-banner-header h2{font-size:1.25rem}.evolution-dashboard .evolution-banner-header p,.evolution-dashboard .metric-footnote,.evolution-dashboard .panel-subtext,.evolution-dashboard .mobile-swipe-hint,.evolution-dashboard .swipe-badge-pill{display:none}.evolution-dashboard .evolution-card-panel{box-shadow:none;background:0 0;border:0;padding:12px 0}.evolution-dashboard .panel-header h3{font-size:1rem}.evolution-dashboard .horizontal-swipe-track{align-items:flex-start;max-width:100%;scroll-snap-type:x proximity!important;gap:10px!important;margin:0!important;padding:3px 0 10px!important}.evolution-dashboard .swipe-card-wide{overflow-wrap:anywhere;border-radius:8px;scroll-snap-align:start!important;flex:0 0 87%!important;min-width:0!important;max-width:340px!important;padding:12px!important}.evolution-dashboard .metric-card.swipe-card-wide{min-height:106px;flex-basis:46%!important}.evolution-dashboard .metric-value{font-size:1.1rem}.evolution-dashboard .metric-icon-box{width:28px;height:28px}.evolution-dashboard .technique-desc,.evolution-dashboard .focus-desc{font-size:.85rem;line-height:1.45}.evolution-dashboard .technique-steps{background:0 0;margin:0;padding:0!important}.evolution-dashboard .ai-insight-cta-card{gap:10px;padding:12px}.evolution-dashboard .cta-text p{display:none}.evolution-dashboard .cta-text h4{font-size:.9rem}.evolution-dashboard .ai-diagnostic-card{border-radius:8px;padding:12px}.evolution-dashboard .evolution-tabs{margin-bottom:14px}.evolution-dashboard .evolution-banner-header{background:0 0;border:0}.evolution-dashboard .evolution-banner-header .badge-pill{display:none}.evolution-dashboard .evolution-card-panel{margin-bottom:8px}.evolution-dashboard .section-title-row{margin:12px 0 8px}.evolution-dashboard .section-subtitle{margin:0;font-size:1rem}.evolution-dashboard .focus-areas-container{margin-top:8px}.evolution-dashboard .insight-summary-track{scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;align-items:flex-start;gap:10px;margin:8px 0;display:flex;overflow-x:auto}.evolution-dashboard .insight-summary-track>*{scroll-snap-align:start;border-radius:8px;flex:0 0 87%;min-width:0;margin:0;padding:12px;font-size:.85rem}.evolution-dashboard .insight-summary-track .daily-challenge-clean-card{display:block}.evolution-dashboard .insight-summary-track .challenge-text{text-align:left;margin-top:8px}.stage-horizontal-modal{max-height:calc(100dvh - 32px - env(safe-area-inset-bottom,0px));overflow-y:auto}}.history-loading,.history-empty-state{background:radial-gradient(circle at 12% 0,#0ea5e91f,#0000 42%),#0f172ab8;border:1px solid #67e8f933;border-radius:18px}.history-loading{min-height:176px;color:var(--muted);text-align:center;place-items:center;padding:20px;display:grid}.history-empty-state{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:22px;display:grid}.history-empty-state>svg{color:#67e8f9}.history-empty-state h2{color:var(--text);margin:0 0 5px;font-size:1rem}.history-empty-state p{color:var(--muted);margin:0;font-size:.87rem;line-height:1.5}@media (max-width:640px){.app-shell .secondary-main{width:100%;padding:18px 14px calc(var(--bottom-nav-space) + 18px)!important}.secondary-hero{margin-bottom:20px}.secondary-hero h1{font-size:clamp(1.55rem,8vw,2.05rem);line-height:1.08}.hero-subtext{font-size:.88rem}.history-empty-state{grid-template-columns:1fr;justify-items:start;gap:12px;padding:18px}.history-empty-state .quick-practice-btn,.history-cta-wrap .quick-practice-btn{justify-content:center;width:100%;min-height:46px}.history-cta-wrap{margin-top:18px}.exam-modal-backdrop{padding:max(8px, env(safe-area-inset-top,0px)) 8px max(8px, env(safe-area-inset-bottom,0px));align-items:flex-end}.exam-modal-container{max-height:calc(100dvh - 16px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border-radius:18px;overflow-y:auto}.exam-header-bar{gap:10px;padding:14px 16px 11px}.exam-header-title{font-size:1.08rem;line-height:1.2}.exam-header-subtitle{font-size:.76rem;line-height:1.4}.exam-close-btn{flex:0 0 40px;width:40px;height:40px}.exam-goal-banner{align-items:flex-start;gap:9px;padding:10px 16px}.goal-flag{white-space:normal}.goal-text{font-size:.8rem;line-height:1.4}.exam-intro-banner{margin:0 16px 10px;font-size:.78rem}.exam-task-context{margin:0 12px 8px;padding:9px 10px}.exam-task-context p{font-size:.75rem}.exam-stage-grid{flex-direction:column;min-height:0;max-height:none;display:flex}.exam-npc-column{grid-template-columns:minmax(112px,auto) minmax(0,1fr);align-items:center;gap:12px;padding:10px 14px;display:grid}.exam-npc-column .pixel-npc-svg{width:auto;max-height:112px}.exam-npc-column .npc-status-tag{min-height:24px;margin-top:6px}.exam-metrics-card{width:100%;margin:0}.exam-dialogue-feed{gap:9px;min-height:180px;max-height:34dvh;padding:12px}.exam-bubble{max-width:90%;padding:10px 12px;font-size:.84rem}.exam-input-dock{padding:11px 12px calc(11px + env(safe-area-inset-bottom,0px))}.exam-controls-row{grid-template-columns:1fr auto;gap:8px;display:grid}.exam-mic-btn{grid-column:1/-1;justify-content:center;min-height:44px}.exam-text-form{min-width:0}.exam-text-input{min-height:44px}.exam-finish-action-btn{min-height:44px;padding:10px 12px}.exam-finish-action-btn span{display:none}.exam-result-overlay{align-items:flex-end;padding:10px;overflow-y:auto}.exam-result-card{max-height:calc(100dvh - 20px);overflow-y:auto}.exam-answer-review{padding:10px}.exam-answer-review-heading{flex-direction:column;align-items:flex-start;gap:3px}.exam-answer-review-item{padding:9px 10px}.result-actions-row{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion:reduce){.learning-map-page-view *,.rpg-character *{transition:none!important;animation:none!important}}@media (max-width:768px){.app-shell{--bottom-nav-space:calc(58px + env(safe-area-inset-bottom,0px))}.app-shell .mobile-nav{padding-top:2px;padding-bottom:max(4px, env(safe-area-inset-bottom,0px))}.practice-main.clean-layout{gap:clamp(4px,1dvh,8px)!important;padding-inline:clamp(10px,3vw,16px)!important}.practice-main .practice-header-nav-row{width:100%;grid-template-columns:minmax(0,1fr) auto!important;gap:6px!important;display:grid!important}.practice-main .active-module-pill-btn{width:100%;min-width:0;-webkit-backdrop-filter:blur(10px)!important;background:#0f172aad!important;border:1px solid #ffffff1a!important;min-height:36px!important;padding:2px 10px!important}.practice-main .active-module-pill-btn .module-pill-title{text-overflow:clip!important;white-space:nowrap!important;font-size:clamp(.76rem,3.2vw,.88rem)!important;overflow:visible!important}.practice-main .practice-header-actions-group{gap:0!important}.practice-main .header-icon-action-btn,.practice-main .stage-exam-action-btn{display:none!important}.practice-main .hamburger-btn{-webkit-backdrop-filter:blur(10px)!important;background:#0f172aad!important;border:1px solid #ffffff1a!important;width:36px!important;min-width:36px!important;height:36px!important}.practice-main .teaching-concept-wrapper{width:100%;max-width:none!important;margin-bottom:0!important}.practice-main .teaching-concept-pill-bar{-webkit-backdrop-filter:blur(10px)!important;background:#0d14209e!important;border:1px solid #ffffff14!important;border-radius:10px!important;gap:2px!important;padding:3px 8px 2px!important}.practice-main .concept-badge-header-row{grid-template-columns:auto minmax(0,1fr)!important;gap:6px!important;display:grid!important}.practice-main .concept-step-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden;font-size:clamp(.74rem,3.15vw,.86rem)!important}.practice-main .concept-step-stage-pill{display:none!important}.practice-main .module-phase-stepper-track{width:100%;gap:4px!important;padding-top:0!important}.practice-main .phase-stepper-label{font-size:.6rem!important}.practice-main .clean-stage.history-is-closed .character-column{width:100%;max-width:none!important;padding:0 0 var(--mobile-voice-hub-space,148px)!important;flex-direction:column!important;flex:auto!important;justify-content:flex-start!important;align-items:center!important;gap:clamp(2px,.7dvh,6px)!important;height:100%!important;min-height:0!important;display:flex!important}.practice-main.clean-layout .clean-stage.history-is-closed .character-speech-bubble-container{overscroll-behavior:auto;flex-shrink:0!important;width:100%!important;max-width:none!important;max-height:none!important;margin:0!important;overflow:visible!important;-webkit-mask-image:none!important;mask-image:none!important}.practice-main .character-speech-bubble{-webkit-backdrop-filter:blur(14px)!important;background:linear-gradient(#101724c2,#0a0e16e0)!important;border:1px solid #ffffff1f!important;border-radius:14px!important;padding:8px 12px!important;box-shadow:0 4px 18px #00000059!important}.practice-main .speech-bubble-header{gap:8px;min-height:28px!important;margin-bottom:2px!important}.practice-main .speech-bubble-audio-btn{min-width:32px!important;min-height:32px!important;padding:4px 6px!important}.practice-main .speech-bubble-audio-btn span{display:none}.practice-main .speech-bubble-text{margin:0 0 3px!important;font-size:clamp(.82rem,3.4vw,.94rem)!important;line-height:1.36!important}.practice-main .speech-bubble-text.is-collapsed{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.practice-main .speech-bubble-expand-btn{color:#67e8f9;font:inherit;background:0 0;border:0;align-items:center;padding:2px 0;font-weight:700;display:inline-flex;min-height:30px!important;margin-top:1px!important;font-size:.76rem!important}.practice-main .speech-bubble-didactic-footer{border-top:1px solid #ffffff14!important;flex-direction:column!important;gap:3px!important;margin-top:4px!important;padding-top:4px!important;display:flex!important}.practice-main .speech-study-guide{flex-direction:column!important;gap:4px!important;width:100%!important;margin:0!important;display:flex!important}.practice-main .speech-study-target{background:#0ea5e91f!important;border:1px solid #38bdf847!important;border-radius:8px!important;justify-content:space-between!important;align-items:center!important;gap:8px!important;width:100%!important;padding:4px 10px!important;display:flex!important}.practice-main .speech-study-target-text{flex-direction:column!important;flex:auto!important;gap:1px!important;min-width:0!important;display:flex!important}.practice-main .speech-study-target dt{color:#f59e0b!important;text-transform:uppercase!important;letter-spacing:.04em!important;white-space:nowrap!important;font-size:.58rem!important;font-weight:700!important}.practice-main .speech-study-target dd{color:#38bdf8!important;overflow-wrap:anywhere!important;margin:0!important;font-size:.94rem!important;font-weight:800!important}.practice-main .speech-study-detail-item.is-hidden{display:none!important}.practice-main .speech-study-detail-item.is-open{background:#0f172a99!important;border:1px solid #ffffff12!important;border-radius:6px!important;flex-direction:column!important;gap:1px!important;padding:3px 8px!important;display:flex!important}.practice-main .speech-study-guide dt{color:#94a3b8!important;text-transform:uppercase!important;letter-spacing:.02em!important;font-size:.56rem!important;font-weight:600!important}.practice-main .speech-study-guide dd{color:#f1f5f9!important;margin:0!important;font-size:.74rem!important;line-height:1.25!important}.practice-main .speech-study-variation.is-open{background:#f59e0b14!important;border:1px solid #f59e0b2e!important;border-radius:6px!important;padding:3px 8px!important}.practice-main .speech-study-variation dt{color:#fbbf24!important;text-transform:uppercase!important;font-size:.56rem!important;font-weight:700!important}.practice-main .speech-study-variation dd{color:#fef3c7!important;margin:0!important;font-size:.72rem!important}.practice-main .speech-study-toggle-btn{cursor:pointer;transition:all .18s;color:#94a3b8!important;background:#ffffff0a!important;border:1px solid #ffffff1a!important;border-radius:9999px!important;align-self:center!important;align-items:center!important;gap:4px!important;min-height:24px!important;margin-top:2px!important;padding:2px 10px!important;font-size:.64rem!important;font-weight:600!important;display:inline-flex!important}.practice-main .speech-study-toggle-btn:hover,.practice-main .speech-study-toggle-btn:active{color:#38bdf8!important;background:#38bdf81f!important;border-color:#38bdf847!important}.practice-main .speech-target-audio-btn{color:#38bdf8!important;background:#38bdf826!important;border:1px solid #38bdf859!important;border-radius:6px!important;flex-shrink:0!important;align-items:center!important;gap:4px!important;min-height:26px!important;padding:2px 8px!important;font-size:.64rem!important;font-weight:600!important;display:inline-flex!important}.practice-main .speech-target-audio-btn span{display:inline!important}.practice-main .clean-stage.history-is-closed .character-avatar-wrapper{z-index:4!important;flex:auto!important;justify-content:center!important;align-items:center!important;width:100%!important;min-height:140px!important;margin:0 auto!important;display:flex!important;position:relative!important;overflow:visible!important}.practice-main .clean-stage.history-is-closed .character-avatar-wrapper:before{content:"";pointer-events:none;z-index:-1;filter:blur(14px);background:radial-gradient(circle,#38bdf833 0%,#f59e0b14 45%,#0000 70%);border-radius:50%;width:clamp(180px,32dvh,260px);height:clamp(180px,32dvh,260px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.practice-main .clean-stage.history-is-closed .character-stage{transform:translateY(clamp(0px,1dvh,8px));justify-content:center!important;align-items:center!important;width:clamp(152px,27dvh,246px)!important;max-width:74vw!important;height:clamp(152px,27dvh,246px)!important;margin:0 auto!important;display:flex!important;position:relative!important}.practice-main .avatar-mic-error-box{-webkit-backdrop-filter:blur(8px)!important;background:#260c12e0!important;border:1px solid #f8717159!important;border-radius:8px!important;gap:3px!important;width:100%!important;max-height:48px!important;margin:2px auto 0!important;padding:3px 8px!important;box-shadow:0 4px 12px #0000004d!important}.practice-main .avatar-mic-error-copy{align-items:center!important;gap:6px!important;display:flex!important}.practice-main .avatar-mic-error-copy svg{color:#f87171!important;flex-shrink:0!important;width:12px!important;height:12px!important}.practice-main .avatar-mic-error-copy strong{color:#fee2e2!important;white-space:nowrap!important;font-size:.68rem!important}.practice-main .avatar-mic-error-copy p,.practice-main .avatar-mic-error-detail{display:none!important}.practice-main .avatar-mic-error-actions{gap:4px!important;margin-top:1px!important;display:flex!important}.practice-main .avatar-mic-error-actions button{border-radius:5px!important;flex:1!important;justify-content:center!important;align-items:center!important;gap:3px!important;min-height:22px!important;padding:1px 6px!important;font-size:.62rem!important;display:inline-flex!important}.practice-main .practice-voice-hub{--mobile-voice-hub-space:148px;width:100%!important;max-width:none!important;padding:6px 12px calc(8px + env(safe-area-inset-bottom,0px))!important;-webkit-backdrop-filter:blur(14px)!important;z-index:10!important;background:linear-gradient(#0d1822c7,#070d14eb)!important;border:1px solid #38bdf829!important;border-bottom:none!important;border-radius:18px 18px 0 0!important;gap:4px!important;position:absolute!important;inset:auto 0 0!important;transform:none!important;box-shadow:0 -4px 20px #00000059!important}.practice-main .voice-input-control{width:100%;gap:3px!important}.practice-main .voice-mode-selector-pill{align-self:flex-end;background:0 0!important;border:0!important;gap:0!important;padding:0!important}.practice-main .voice-mode-tab-btn.is-active{display:none!important}.practice-main .voice-mode-tab-btn:not(.is-active){color:#94a3b8;background:0 0!important;border:0!important;min-height:30px!important;padding:4px 6px!important;font-size:.68rem!important}.practice-main .voice-mode-tab-btn:not(.is-active) svg{display:none}.practice-main .mic-btn-row{min-height:58px;gap:clamp(8px,5vw,28px)!important}.practice-main .avatar-mic-halo-wrapper{width:62px!important;height:62px!important}.practice-main .voice-input-control .avatar-mic-circle-btn{width:54px!important;min-width:54px!important;height:54px!important;min-height:54px!important}.practice-main .dock-wave-side-container{width:min(23vw,88px);max-width:88px!important;height:22px!important}.practice-main .voice-action-badge{background:0 0!important;border:0!important;min-height:22px!important;padding:0!important}.practice-main .voice-action-text{font-size:.82rem!important;line-height:1.2!important}.practice-main .voice-dock-actions-row{width:100%;gap:8px!important;margin:2px 0 0!important}.practice-main .dock-action-pill-btn{flex:50%;min-height:44px!important;padding:8px 10px!important;font-size:.78rem!important}.practice-main .practice-ambient-scene{pointer-events:none}}@media (max-width:390px){.practice-main .active-module-pill-btn .module-pill-badge{display:none!important}.practice-main .dock-action-pill-btn{padding-inline:6px!important;font-size:.74rem!important}}@media (max-height:700px) and (max-width:768px){.practice-main .clean-stage.history-is-closed .character-column{--mobile-voice-hub-space:142px;gap:2px!important}.practice-main .clean-stage.history-is-closed .character-stage{transform:none;width:clamp(132px,24dvh,178px)!important;height:clamp(132px,24dvh,178px)!important}.practice-main .ambient-arch-center,.practice-main .ambient-spark-2,.practice-main .ambient-spark-3,.practice-main .ambient-spark-4{display:none}.practice-main .ambient-torch{opacity:.55;height:72px;bottom:16%}.practice-main .ambient-torch-glow{width:88px;height:110px;bottom:36px}.practice-main .ambient-flame{bottom:60px}.practice-main .ambient-flame-core{bottom:61px}}@media (orientation:landscape) and (max-width:768px) and (max-height:560px){.practice-main.clean-layout{padding-top:2px!important}.practice-main .teaching-concept-pill-bar{padding-block:2px!important}.practice-main .active-module-pill-btn,.practice-main .hamburger-btn{height:34px!important;min-height:34px!important}.practice-main .clean-stage.history-is-closed .character-column{padding-bottom:112px!important;display:block!important}.practice-main.clean-layout .clean-stage.history-is-closed .character-speech-bubble-container{max-height:84px!important}.practice-main .character-speech-bubble{padding-block:6px!important}.practice-main .speech-bubble-header{min-height:28px}.practice-main .clean-stage.history-is-closed .character-avatar-wrapper{display:none!important}.practice-main .speech-study-guide{grid-template-columns:repeat(3,minmax(0,1fr))!important}.practice-main .speech-study-target{grid-column:auto}.practice-main .speech-study-guide dt,.practice-main .speech-study-guide dd{font-size:.66rem!important}.practice-main .practice-voice-hub{--mobile-voice-hub-space:112px;padding-block:3px 5px!important}.practice-main .voice-mode-selector-pill{display:none}.practice-main .mic-btn-row{min-height:44px}.practice-main .avatar-mic-halo-wrapper{width:46px!important;height:46px!important}.practice-main .voice-input-control .avatar-mic-circle-btn{width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important}.practice-main .dock-action-pill-btn{min-height:34px!important}}@media (max-width:768px){html:has(.practice-main.clean-layout){width:100%;height:100dvh!important;min-height:0!important;max-height:100dvh!important;overflow:hidden!important}body:has(.practice-main.clean-layout){width:100%;height:100dvh!important;min-height:0!important;max-height:100dvh!important;overflow:hidden!important}.app-shell:has(.practice-main.clean-layout){width:100%;height:100dvh!important;min-height:0!important;max-height:100dvh!important;overflow:hidden!important}.app-shell:has(.practice-main.clean-layout){flex-direction:column;display:flex}.app-shell .practice-main.clean-layout{flex:0 0 calc(100dvh - var(--bottom-nav-space,58px));width:100%;height:calc(100dvh - var(--bottom-nav-space,58px))!important;min-height:0!important;max-height:calc(100dvh - var(--bottom-nav-space,58px))!important;padding:max(8px, var(--app-safe-top)) 10px 4px!important;gap:5px!important;margin:0!important;overflow:hidden!important}.practice-main.clean-layout .clean-stage{width:100%;flex:1 1 0!important;height:auto!important;min-height:0!important;overflow:hidden!important}.practice-main.clean-layout .clean-stage.history-is-closed .character-column{width:100%;min-width:0;height:100%!important;min-height:0!important;padding-bottom:calc(var(--mobile-voice-hub-space,136px) + env(safe-area-inset-bottom,0px))!important;gap:4px!important;overflow:visible!important}.practice-main.clean-layout .clean-stage.history-is-closed .character-speech-bubble-container{flex:0 auto!important;width:100%!important;max-width:none!important;min-height:0!important;max-height:none!important;margin:0!important;overflow:visible!important;-webkit-mask-image:none!important;mask-image:none!important}.practice-main.clean-layout .speech-bubble-text.is-collapsed,.practice-main.clean-layout .speech-bubble-text.is-expanded{-webkit-line-clamp:unset!important;line-clamp:unset!important;display:block!important;overflow:visible!important}.practice-main.clean-layout .clean-stage.history-is-closed .character-avatar-wrapper{flex:1 1 0!important;width:100%!important;min-height:0!important;overflow:visible!important}.practice-main.clean-layout .clean-stage.history-is-closed .character-stage{width:min(78vw,clamp(150px,29dvh,250px))!important;max-width:100%!important;height:min(78vw,clamp(150px,29dvh,250px))!important;max-height:100%!important}.practice-main.clean-layout .active-module-pill-btn,.practice-main.clean-layout .hamburger-btn{height:auto!important;min-height:36px!important}.practice-main.clean-layout .active-module-pill-btn .module-pill-title{text-overflow:ellipsis!important;white-space:nowrap!important;min-width:0!important;overflow:hidden!important}.practice-main.clean-layout .practice-voice-hub{width:100%!important;min-width:0!important;max-width:none!important;bottom:0!important;left:0!important;right:0!important;overflow:visible!important}.practice-main.clean-layout .speech-pronunciation-card{gap:3px 6px;padding:5px 8px}.practice-main.clean-layout .speech-pronunciation-kicker{font-size:.55rem}.practice-main.clean-layout .speech-pronunciation-target strong{font-size:.84rem}.practice-main.clean-layout .speech-pronunciation-tip,.practice-main.clean-layout .speech-pronunciation-phonetic{font-size:.67rem;line-height:1.2}}@media (min-width:1440px){.app-shell:has(.practice-main.clean-layout) .practice-main.clean-layout .clean-stage.history-is-closed{grid-template-columns:minmax(230px,280px) minmax(0,1fr) minmax(230px,280px);align-items:stretch;gap:18px;width:min(1380px,100vw - 48px);max-width:1380px;min-height:clamp(540px,100dvh - 230px,760px);padding:0;display:grid!important}.app-shell:has(.practice-main.clean-layout) .clean-stage.history-is-closed>.desktop-support-rail{align-self:stretch;width:100%;min-width:0;display:flex!important}.app-shell:has(.practice-main.clean-layout) .clean-stage.history-is-closed>.character-column{grid-area:1/2;width:100%;min-width:0;max-width:none}.app-shell:has(.practice-main.clean-layout) .clean-stage.history-is-closed>.desktop-support-left{grid-area:1/1}.app-shell:has(.practice-main.clean-layout) .clean-stage.history-is-closed>.desktop-support-right{grid-area:1/3}.app-shell:has(.practice-main.clean-layout) .clean-stage.history-is-closed .desktop-support-card{box-sizing:border-box;width:100%}.app-shell:has(.practice-main.clean-layout) .clean-stage.history-is-closed .character-stage{width:clamp(300px,22vw,380px);height:clamp(300px,22vw,380px)}.app-shell:has(.practice-main.clean-layout) .clean-stage.history-is-closed .practice-voice-hub{width:min(100%,380px)!important}}.practice-ambient-scene,.character-glow{contain:paint}.voice-hub-heading{border-bottom:1px solid #94a3b829;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:2px 2px 7px;display:flex}.voice-hub-heading-copy{text-align:left;gap:2px;min-width:0;display:grid}.voice-hub-kicker{color:#94a3b8;letter-spacing:.12em;font-size:.58rem;font-weight:800}.voice-hub-heading strong{color:#f8fafc;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;line-height:1.2;overflow:hidden}.voice-hub-connection-status{color:#cbd5e1;border:1px solid #94a3b833;border-radius:999px;flex:none;align-items:center;gap:5px;padding:4px 8px;font-size:.62rem;font-weight:800;display:inline-flex}.voice-hub-connection-status>span{background:#64748b;border-radius:50%;width:6px;height:6px}.voice-hub-connection-status.is-connected{color:#6ee7b7;background:#10b9811a;border-color:#34d39947}.voice-hub-connection-status.is-connected>span{background:#34d399;box-shadow:0 0 8px #34d399bf}.voice-hub-connection-status.is-connecting{color:#fde68a;background:#eab3081a;border-color:#facc1547}.voice-hub-connection-status.is-connecting>span{background:#facc15;animation:1s ease-in-out infinite voice-hub-status-pulse}.voice-hub-connection-status.is-failed{color:#fca5a5;background:#ef44441a;border-color:#f871714d}.voice-hub-connection-status.is-failed>span{background:#f87171}@keyframes voice-hub-status-pulse{50%{opacity:.35;transform:scale(.7)}}@media (min-width:769px){.practice-main.clean-layout .practice-voice-hub{background:linear-gradient(145deg,#0f172af5,#0c192dd1)!important;border:1px solid #60a5fa38!important;border-radius:20px!important;align-items:stretch!important;gap:8px!important;padding:12px 16px 10px!important;display:flex!important;box-shadow:0 12px 28px #02061738,inset 0 1px #ffffff0a!important}.practice-main.clean-layout .voice-input-control,.practice-main.clean-layout .voice-action-badge{width:100%;max-width:100%}.practice-main.clean-layout .mic-btn-row{min-height:68px}.practice-main.clean-layout .voice-action-badge{justify-content:center;min-height:32px}.practice-main.clean-layout .voice-dock-actions-row{border-top:1px solid #94a3b824;margin-top:0;padding-top:8px}.practice-main.clean-layout .dock-action-pill-btn{flex:1;justify-content:center;min-height:34px}}.user-live-transcript-badge{display:none!important}@media (max-width:768px){.practice-main.clean-layout .voice-hub-heading{display:none}}@media (max-width:620px){.mobile-nav:has(.mobile-nav-item.is-admin){grid-template-columns:repeat(5,minmax(0,1fr))}.mobile-nav .mobile-nav-item.is-admin{color:#fbbf24}.mobile-nav .mobile-nav-item.is-admin.active{color:#fde68a;background:#f59e0b29}}@media (min-width:769px){.top-nav a.is-active{color:#f8fafc;background:#38bdf81f;border-color:#38bdf847}.top-nav .admin-nav-item.is-active{color:#fde68a;background:#f59e0b29;border-color:#f59e0b57}}
