:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--ink: #18302f;--muted: #667371;--paper: #fffaf2;--panel: #ffffff;--teal: #23615f;--coral: #e46c52;--gold: #efb842;--leaf: #78a75a;--line: #dbe4df;--shadow: 0 18px 44px rgba(24, 48, 47, .14)}*{box-sizing:border-box}body{min-height:100vh;margin:0;color:var(--ink);background:linear-gradient(135deg,rgba(35,97,95,.13),transparent 40%),linear-gradient(315deg,rgba(228,108,82,.15),transparent 44%),var(--paper)}button,input,select{font:inherit}button{cursor:pointer}.api-mutation-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:grid;place-items:center;padding:24px;background:#18302f47}.api-mutation-overlay>div{display:grid;gap:6px;min-width:min(320px,100%);border:1px solid var(--line);border-radius:8px;padding:18px 20px;color:var(--ink);background:#fff;box-shadow:var(--shadow);text-align:center}.api-mutation-overlay strong{font-size:1.05rem}.api-mutation-overlay span{color:var(--muted);font-weight:750}.center-screen{display:grid;min-height:100vh;place-items:center;padding:24px}.auth-screen{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(360px,1fr);width:min(1040px,calc(100% - 32px));min-height:100vh;margin:0 auto;align-content:center}.auth-visual{display:grid;min-height:620px;align-content:end;border-radius:8px 0 0 8px;padding:48px;color:#fff;background:linear-gradient(145deg,#18302f14,#18302fb8),radial-gradient(circle at 26% 24%,rgba(239,184,66,.9),transparent 30%),linear-gradient(135deg,#23615f,#2f7e9e 52%,#e46c52);box-shadow:var(--shadow)}.auth-mark,.avatar{display:grid;width:56px;height:56px;place-items:center;border:2px solid rgba(255,255,255,.72);border-radius:8px;color:#fff;background:var(--teal);font-weight:950}.auth-mark .brand-logo{width:46px;height:46px}.auth-visual p{max-width:360px;margin:20px 0 0;font-size:2.4rem;font-weight:900;line-height:1.04}.auth-panel,.panel{border:1px solid rgba(24,48,47,.12);border-radius:8px;background:#ffffffe6;box-shadow:var(--shadow)}.auth-panel{display:grid;min-height:620px;align-content:center;gap:14px;padding:48px;border-radius:0 8px 8px 0}.eyebrow{margin:0 0 6px;color:var(--coral);font-size:.78rem;font-weight:900;letter-spacing:0;text-transform:uppercase}h1,h2{margin:0;line-height:1.08}.auth-panel label{display:grid;gap:6px;color:var(--muted);font-size:.86rem;font-weight:750}input,select{min-height:44px;border:1px solid var(--line);border-radius:8px;padding:0 12px;color:var(--ink);background:var(--panel)}input:focus,select:focus{border-color:var(--teal);outline:3px solid rgba(35,97,95,.14)}.primary-button,.ghost-button,.mini-button,.language-button,.side-link,.keyboard button{min-height:42px;border:1px solid var(--line);border-radius:8px;padding:0 14px;font-weight:850}.primary-button,.language-button{border-color:var(--teal);color:#fff;background:var(--teal)}.google-button{min-height:44px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff;font-weight:850}.auth-divider{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;color:var(--muted);font-size:.78rem;font-weight:850;text-transform:uppercase}.auth-divider:before,.auth-divider:after{height:1px;background:var(--line);content:""}.ghost-button,.mini-button{color:var(--teal);background:#fff}.auth-links,.header-actions,.inline-form,.score-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.auth-links button{border:0;padding:0;color:var(--teal);background:transparent;font-weight:750}.message{margin:0;color:var(--coral);font-weight:800;text-align:center}.muted{color:var(--muted)}.student-shell,.app-main{width:min(1280px,calc(100% - 32px));margin:0 auto;padding:28px 0}.app-header{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.app-title-row{display:flex;align-items:center;gap:12px}.brand-logo{display:block;width:42px;height:42px;object-fit:contain}.landing-page{display:grid;min-height:100vh;align-items:center;padding:28px}.landing-hero{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(360px,1fr);gap:32px;width:min(1180px,100%);margin:0 auto;align-items:center}.landing-copy h1{max-width:740px;font-size:clamp(3.4rem,8vw,6.2rem);font-weight:950;line-height:.94}.landing-copy p:not(.eyebrow){max-width:620px;color:var(--muted);font-size:1.16rem;font-weight:750;line-height:1.55}.landing-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.landing-actions button{min-height:52px}.landing-board{display:grid;gap:26px;border:1px solid var(--line);border-radius:8px;min-width:0;padding:clamp(20px,4vw,42px);background:linear-gradient(145deg,#e8f4ef,#fff 56%,#fff7e8);box-shadow:var(--shadow)}.landing-image-mark{display:grid;width:88px;height:88px;place-items:center;border-radius:8px;color:#fff;background:var(--teal);font-size:1.65rem;font-weight:950}.landing-image-mark .brand-logo{width:76px;height:76px}.landing-word{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px;width:100%}.landing-word span{display:grid;aspect-ratio:1;min-width:0;place-items:center;border:4px solid var(--teal);border-radius:8px;color:var(--ink);font-size:clamp(1.25rem,3vw,3.1rem);font-weight:950}.landing-keys{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px}.landing-keys span{display:grid;min-height:40px;place-items:center;border-radius:8px;color:var(--ink);background:#d9eeea;font-weight:950}.admin-layout{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.admin-shell{display:grid;grid-template-columns:264px 1fr;min-height:100vh;background:#f8f6ef}.admin-sidebar{display:grid;align-content:baseline;gap:24px;border-right:1px solid rgba(24,48,47,.18);padding:22px 16px;color:#fff;background:#18302f}.admin-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.admin-brand-mark{width:42px;height:42px;border-radius:8px;object-fit:contain;background:#fff}.admin-brand div{display:grid;gap:2px}.admin-brand span:last-child{color:#ffffffad;font-size:.84rem;font-weight:750}.admin-nav,.sidebar-group{display:grid;gap:8px}.sidebar-group h2{color:#ffffffa8;font-size:.74rem;letter-spacing:0;margin:12px 0 0;text-transform:uppercase}.sidebar-group div{display:grid;gap:8px}.sidebar-mode-card{display:grid;gap:8px;border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:12px;background:#ffffff14}.sidebar-mode-card span{color:#ffffffa8;font-size:.75rem;font-weight:850;text-transform:uppercase}.sidebar-mode-card strong{color:#fff;font-size:1.05rem}.sidebar-mode-card button{min-height:36px;border:0;border-radius:8px;color:var(--ink);background:var(--gold);font-weight:850}.sidebar-class-card div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sidebar-class-card strong{min-height:24px;overflow-wrap:anywhere}.teacher-sidebar-language{display:none}.admin-nav button{min-height:44px;border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:0 12px;color:#fff;background:#ffffff0f;font-weight:850;text-align:left}.admin-nav button.active,.admin-nav button:hover{color:var(--ink);background:var(--gold);border-color:var(--gold)}.admin-workspace{min-width:0;padding:26px}.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:64px;margin-bottom:22px}.admin-topbar h1{font-size:1.65rem}.admin-user-menu{position:relative}.admin-user-menu summary{display:flex;align-items:center;gap:10px;min-height:46px;border:1px solid var(--line);border-radius:8px;padding:0 12px 0 0;background:#fff;font-weight:900;list-style:none;cursor:pointer}.admin-user-menu summary::-webkit-details-marker{display:none}.admin-user-menu summary:after{content:"v";color:var(--teal);font-size:.85rem}.admin-user-menu .avatar{width:44px;height:44px;border-color:var(--teal)}.admin-user-menu>div{position:absolute;right:0;z-index:10;display:grid;min-width:180px;margin-top:8px;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff;box-shadow:var(--shadow)}.admin-user-menu>div button{border:0;border-radius:8px;padding:10px;color:var(--ink);background:transparent;font-weight:850;text-align:left}.admin-user-menu>div button:hover{background:#e8f4ef}.admin-card{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 14px 34px #18302f14;margin-bottom:10px}.account-page{width:min(860px,calc(100% - 32px));margin:0 auto;padding:28px 0}.account-card{border:1px solid var(--line);border-radius:8px;padding:24px;background:#fff;box-shadow:var(--shadow)}.account-password-form{display:grid;gap:16px}.account-password-form label{display:grid;gap:6px;color:var(--muted);font-size:.86rem;font-weight:750}.account-actions{display:flex;flex-wrap:wrap;gap:10px}.success-message{margin:0;color:var(--teal);font-weight:850}.admin-card-header{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding:16px}.admin-card-header h2{font-size:1.05rem}.admin-card-body{padding:16px}.class-detail{display:grid;gap:12px}.class-detail>div{display:grid;gap:4px;border-bottom:1px solid var(--line);padding-bottom:12px}.class-detail span{color:var(--muted);font-size:.75rem;font-weight:850;text-transform:uppercase}.class-detail strong{overflow-wrap:anywhere;font-size:.95rem}.class-detail-link strong{color:var(--teal)}.class-detail-qr img{width:180px;height:180px;border:1px solid var(--line);border-radius:8px;background:#fff}.join-confirmation{display:grid;gap:14px;padding:16px}.join-confirmation>div:not(.student-class-actions){display:grid;gap:4px}.join-confirmation span{color:var(--muted);font-size:.75rem;font-weight:850;text-transform:uppercase}.join-confirmation strong{overflow-wrap:anywhere}.compact-select{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.compact-select select{min-height:36px;min-width:140px;text-transform:none}.admin-table{min-width:860px;width:100%;border-collapse:collapse;font-size:.92rem}.admin-table th,.admin-table td{border-bottom:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:middle}.admin-table th{color:var(--muted);background:#fbfcfa;font-size:.78rem;font-weight:900;text-transform:uppercase}.table-sort-button{align-items:center;display:inline-flex;gap:6px;border:0;padding:0;color:inherit;background:transparent;font:inherit;text-align:left;text-transform:inherit}.table-sort-button:not(:disabled){cursor:pointer}.table-sort-button:disabled{cursor:default}.table-sort-button.active{color:var(--teal)}.table-sort-indicator{min-width:12px;font-size:.8rem;line-height:1}.admin-table tbody tr:hover{background:#f7fbf8}.table-search-row{display:flex;justify-content:flex-end;padding:12px 16px;border-bottom:1px solid var(--line);background:#fff}.table-search-row label{display:grid;gap:4px;min-width:260px;color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.table-search-row input{min-height:38px;border:1px solid var(--line);border-radius:8px;padding:0 12px;color:var(--ink);background:#fff;font:inherit;text-transform:none}.table-actions{display:flex;flex-wrap:wrap}.table-actions button{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:0 10px;color:var(--teal);background:#fff;font-weight:850;margin-right:10px}.table-actions button:last-child{color:var(--coral)}.table-actions button.success-action{border-color:#1f7a4d;color:#1f7a4d}.table-actions button.danger-action{border-color:#b42318;color:#b42318}.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;color:var(--muted);font-weight:750}.table-pagination div{display:flex;align-items:center;gap:10px}.table-filter-row{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.table-filter-row select{min-width:260px}.table-filter-note{color:var(--muted);font-size:.84rem;font-weight:800}.admin-form{display:grid;gap:14px;max-width:680px;padding:18px}.admin-form label{display:grid;gap:6px;color:var(--muted);font-size:.84rem;font-weight:850}.admin-form textarea{min-height:8rem;resize:vertical}.inline-check{align-items:center;display:flex;gap:8px;font-weight:850}.admin-form button{width:fit-content}.inline-admin-form{align-items:end;grid-template-columns:minmax(220px,1fr) auto}.word-edit-form{grid-template-columns:minmax(320px,680px) minmax(280px,420px);align-items:start;max-width:none}.word-edit-fields,.word-media-column,.word-picture-panel{display:grid;gap:14px}.word-picture-panel label{display:grid;gap:6px;color:var(--muted);font-size:.84rem;font-weight:850}.word-picture-preview,.word-audio-preview{display:grid;min-height:280px;place-items:center;border:1px solid var(--line);border-radius:8px;padding:14px;background:#e8f4ef}.word-audio-preview{min-height:120px;background:#fffaf2}.word-audio-preview audio,.admin-table audio{width:min(260px,100%);height:30px}.word-picture-preview img{width:100%;max-height:360px;object-fit:contain;border-radius:8px;background:#fffaf2}.word-picture-preview p,.word-audio-preview p{margin:0;color:var(--muted);font-weight:850;text-align:center}.pronunciation-filter-row{align-items:center}.inline-check{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-weight:850}.inline-check input[type=checkbox]{flex:0 0 auto;height:18px;width:18px}.admin-message{margin-bottom:16px}.student-admin-shell .admin-sidebar{background:#1f605c}.student-admin-shell .admin-brand-mark,.student-admin-shell .admin-nav button.active,.student-admin-shell .admin-nav button:hover{color:#18302f;border-color:#f4c95d}.student-admin-shell .admin-nav button.active,.student-admin-shell .admin-nav button:hover{background:#f4c95d}.student-workspace{display:grid;align-content:start;gap:18px}.student-top-actions{display:flex;align-items:center;gap:12px}.student-top-actions select{min-height:46px;min-width:132px}.student-menu-toggle,.student-menu-backdrop{display:none}.student-top-title{min-width:0}.student-top-title h1{overflow-wrap:anywhere}.student-join-card{display:grid;gap:12px;border:1px solid rgba(255,255,255,.22);border-radius:8px;padding:14px;background:#ffffff14}.student-join-card label{display:grid;gap:8px}.student-join-card span{color:#ffffffc7;font-size:.78rem;font-weight:900;text-transform:uppercase}.student-join-card input{width:100%;min-height:44px}.student-join-card .primary-button{min-height:44px;color:#18302f;background:#f4c95d}.student-summary-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.student-summary-row article{display:grid;gap:8px;min-height:96px;align-content:center;border:1px solid var(--line);border-radius:8px;padding:16px;background:#fff}.student-summary-row span{color:var(--muted);font-size:.84rem;font-weight:900}.student-summary-row strong{color:var(--ink);font-size:2rem;font-weight:950}.student-dashboard-grid{align-items:start}.student-list-item{min-height:72px}.student-class-layout{display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr);gap:16px;align-items:start}.student-class-form{display:grid;gap:14px}.student-class-form label{display:grid;gap:8px;color:var(--muted);font-size:.84rem;font-weight:900}.student-class-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.side-nav{display:grid;align-content:start;gap:8px;padding:24px;color:#fff;background:#18302f}.side-brand{display:grid;gap:4px;margin-bottom:18px}.side-brand span{color:#ffffffb8}.side-link{justify-content:start;color:#fff;background:#ffffff14}.side-link.active{color:var(--ink);background:var(--gold)}.panel{padding:20px}.panel-body{display:grid;gap:12px;margin-top:16px}.content-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.content-grid .panel:last-child{grid-column:1 / -1}.tabs{display:grid;gap:14px}.tab-list{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:8px;overflow-x:auto}.tab-list button{border:0;border-bottom:3px solid transparent;color:var(--muted);background:transparent;font-weight:900;min-height:44px;padding:0 14px;white-space:nowrap}.tab-list button.active{border-bottom-color:var(--teal);color:var(--teal)}.tab-panel{min-width:0}.list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fff}.list-item div{display:grid;gap:4px}.list-item span{color:var(--muted)}.edit-pair{display:grid;grid-template-columns:minmax(160px,1fr) minmax(160px,1fr) auto;gap:8px;width:100%}.language-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.language-button{min-height:92px;font-size:1.4rem}.language-button.selected{background:var(--leaf)}.game-layout{display:grid;grid-template-columns:minmax(360px,.72fr) minmax(520px,1fr);gap:0;overflow:hidden;margin-top:14px;border:1px solid var(--line);border-radius:8px;background:#fff}.compact-game-layout{min-height:0}.game-shell,.game-header-inner{width:min(1180px,calc(100% - 54px));margin-inline:auto}.game-shell{padding:18px 0 32px}.game-header-band{width:100%;border-top:3px solid var(--teal);border-bottom:1px solid rgba(24,48,47,.14);background:#e8f4ef}.game-header-inner{display:grid;grid-template-columns:auto minmax(160px,.58fr) minmax(420px,1fr) auto;align-items:center;gap:22px;min-height:104px;padding:16px 0}.game-home-button{min-height:42px;border:1px solid var(--line);border-radius:8px;padding:0 12px;color:var(--teal);background:#fff;font-weight:900}.game-title-block h1{font-size:clamp(2.2rem,5vw,3.2rem);font-weight:950;line-height:1}.game-controls{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px}.game-controls label{display:grid;gap:6px;color:var(--muted);font-size:.85rem;font-weight:850}.game-controls select{min-height:48px;font-size:1rem}.game-user-menu{position:relative}.game-user-menu summary{display:flex;align-items:center;gap:10px;min-height:48px;border:1px solid var(--line);border-radius:8px;padding:0 12px 0 0;background:#fff;font-weight:900;list-style:none;cursor:pointer}.game-user-menu summary::-webkit-details-marker{display:none}.game-user-menu summary:after{content:"v";color:var(--teal);font-size:.85rem}.game-user-menu .avatar{width:46px;height:46px;border-color:var(--teal)}.game-user-menu .profile-menu-list{position:absolute;right:0;z-index:10;display:grid;min-width:180px;margin-top:8px;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff;box-shadow:var(--shadow)}.game-user-menu .profile-menu-list button{border:0;border-radius:8px;padding:10px;color:var(--ink);background:transparent;font-weight:850;text-align:left}.game-user-menu .profile-menu-list button:hover{background:#e8f4ef}.text-button{width:fit-content;border:0;padding:0;color:var(--coral);background:transparent;font-weight:900}.game-command-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}.score-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.score-card{display:grid;gap:8px;min-height:108px;align-content:start;border:1px solid var(--line);border-radius:8px;padding:14px;background:#fff}.score-card span{color:var(--muted);font-size:.84rem;font-weight:900}.score-card strong{color:var(--ink);font-size:1.85rem;font-weight:950}.clue-panel{display:grid;align-content:start;gap:16px;padding:26px;background:#e8f4ef}.game-panel{display:grid;min-height:560px;align-content:space-between;padding:30px 28px 28px;background:#fff}.compact-game-panel{min-height:0}.clue-panel img,.image-placeholder{width:100%;aspect-ratio:4 / 3;border-radius:8px;object-fit:contain;background:#f4f0e8}.image-placeholder{display:grid;place-items:center;color:var(--muted)}.clue-panel h2{font-size:clamp(2rem,4vw,2.45rem);font-weight:950}.word-display{container-type:inline-size;display:flex;flex-wrap:wrap;justify-content:center;gap:14px 48px;width:100%;margin:86px 0 26px}.word-group{display:inline-flex;flex-wrap:nowrap;gap:10px;max-width:100%}.single-long-word{gap:0}.single-long-word .word-group{width:100%;justify-content:center}.multi-long-word{gap:14px 36px}.multi-long-word .word-group{gap:8px}.word-group.long-word{width:100%;justify-content:center}.letter-slot{--slot-width: clamp(58px, 5.5vw, 76px);--slot-height: 76px;display:grid;box-sizing:border-box;width:var(--slot-width);height:var(--slot-height);place-items:center;overflow:hidden;padding:4px;border:4px solid var(--teal);border-radius:8px;color:var(--ink);font-size:clamp(1.45rem,calc(var(--slot-width) * .58),2.75rem);font-weight:950;line-height:1}.single-long-word .letter-slot,.word-group.long-word .letter-slot{--slot-width: clamp(42px, calc((100cqi - ((var(--word-length) - 1) * 8px)) / var(--word-length)), 76px);--slot-height: clamp(52px, calc((100cqi - ((var(--word-length) - 1) * 8px)) / var(--word-length)), 76px)}.multi-long-word .word-group .letter-slot{--slot-width: clamp(42px, calc((100cqi - ((var(--display-length) - 1) * 8px)) / var(--display-length)), 64px);--slot-height: clamp(52px, calc((100cqi - ((var(--display-length) - 1) * 8px)) / var(--display-length)), 64px)}.keyboard{display:flex;flex-direction:column;align-items:center;gap:8px}.keyboard-row{display:flex;justify-content:center;gap:8px;width:100%}.key-wrap{position:relative;display:inline-flex}.keyboard button,.accent-menu button{width:56px;height:52px;border:0;color:var(--ink);background:#d9eeea;font-weight:950;text-transform:uppercase;touch-action:manipulation;-webkit-user-select:none;user-select:none}.keyboard button:disabled,.accent-menu button:disabled{opacity:1;cursor:default}.keyboard button.guessed-correct{color:#fff;background:#98b780}.keyboard button.guessed-wrong{color:#fff;background:#d34a3f}.accent-menu{position:absolute;left:50%;bottom:calc(100% + 8px);z-index:3;display:flex;gap:6px;padding:6px;border:1px solid #b9d8d2;border-radius:8px;background:#fff;box-shadow:0 12px 28px #2036322e;transform:translate(-50%)}.accent-menu button{width:44px;height:44px;background:#eef8f5}.result-card .result-list{display:grid;gap:10px}.result-action-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:-12px auto 24px}.pronunciation-button{min-height:50px;border:0;border-radius:8px;padding:0 24px;color:#fff;background:#2f6f5e;box-shadow:inset 0 -4px #18302f2e,0 10px 22px #2f6f5e2e;font-weight:950}.pronunciation-button:hover{background:#245b4d}.next-result-button{background:#98b780}.next-result-button:hover{background:#7ea164}.result-card{margin-top:14px}.result-card .result-list{padding:16px}.result-card button{width:fit-content}.play-summary-card{overflow:hidden;border-color:#c8ddd7;background:#fffdf8;margin-top:11px}.play-summary-card .admin-card-header{background:#e8f4ef}.summary-score-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.summary-score-row div{display:grid;gap:4px;min-height:74px;align-content:center;border:1px solid #d8e5e1;border-radius:8px;padding:12px;background:#fff}.summary-score-row span,.summary-result-item span{color:var(--muted);font-weight:850}.summary-score-row strong{color:var(--ink);font-size:1.65rem;line-height:1}.summary-result-list{display:grid;gap:8px;padding:14px 16px 16px}.summary-result-item{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid #d8e5e1;border-radius:8px;padding:10px 12px;background:#fff}.summary-question-number{display:grid;width:34px;height:34px;place-items:center;border-radius:8px;color:#fff!important;background:var(--teal)}.summary-result-item div{display:grid;gap:2px}.summary-result-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.summary-status{border-radius:999px;padding:6px 10px;color:#fff!important;text-transform:uppercase;font-size:.78rem}.summary-status.won{background:#98b780}.summary-status.lost{background:#dc7358}.choice-grid,.score-button-row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));width:100%}.choice-grid button,.score-button-row button{background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--ink);cursor:pointer;font-weight:900;min-height:48px;padding:12px 16px}.answer-form,.interview-question-panel{display:grid;gap:16px;width:100%}.answer-form label{display:grid;gap:8px;font-weight:850}.interview-question-panel{margin:16px 0}.interview-question-panel h2{font-size:1.35rem;line-height:1.35;margin:0}.speaking-run-grid{align-items:start;display:grid;gap:20px;grid-template-columns:minmax(260px,.9fr) minmax(360px,1.1fr);padding-top:8px}.vocabulary-battle-grid{align-items:stretch;display:grid;gap:20px;grid-template-columns:minmax(420px,1fr) minmax(420px,1.05fr);min-height:clamp(680px,calc(100svh - 280px),940px)}.vocabulary-battle-summary{gap:8px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.vocabulary-battle-summary article{align-items:center;display:flex;gap:10px;min-height:50px;padding:10px 12px}.vocabulary-battle-summary span{flex:0 0 auto;font-size:.72rem}.vocabulary-battle-summary strong{overflow:hidden;font-size:1.05rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.battle-start-layout{display:grid;gap:24px;grid-template-columns:minmax(280px,.7fr) minmax(420px,1.3fr);padding:16px}.battle-start-form,.battle-hangman-panel{display:grid;gap:16px}.battle-start-students{min-width:0}.battle-start-students input[type=checkbox]{height:18px;width:18px}.vocabulary-battle-grid .interview-question-panel{margin:0}.battle-game-panel{align-content:stretch;display:grid;grid-template-rows:auto minmax(0,1fr);min-height:100%}.battle-student-panel{align-content:start;align-self:start}.battle-hangman-panel{align-content:stretch;gap:10px;grid-template-rows:minmax(280px,1fr) auto minmax(70px,auto) auto auto;height:100%;min-height:100%}.battle-hangman-panel .clue-panel{align-content:start;align-items:stretch;display:grid;gap:8px;grid-template-columns:1fr;min-height:0;padding:10px}.battle-hangman-panel .clue-panel img,.battle-hangman-panel .image-placeholder{aspect-ratio:4 / 3;height:clamp(300px,44svh,560px);width:100%;object-fit:contain}.battle-hangman-panel .clue-panel>div{padding:0}.battle-hangman-panel .clue-panel h2{font-size:1.35rem;line-height:1.2}.battle-hangman-panel .life-row{gap:6px;min-height:22px}.battle-hangman-panel .life-dot{height:18px;width:18px}.battle-hangman-panel .word-display{align-content:center;gap:8px 16px;margin:10px 0;min-height:60px}.battle-hangman-panel .letter-slot{--slot-height: 42px;--slot-width: 40px;border-width:2px;font-size:1.3rem}.battle-hangman-panel .keyboard{gap:6px;margin-top:auto}.battle-hangman-panel .keyboard-row{gap:6px}.battle-hangman-panel .keyboard button{border-radius:8px;font-size:.95rem;height:40px;width:42px}.battle-student-picker{border:1px solid var(--border);border-radius:8px;display:grid;gap:10px;max-height:320px;overflow:auto;padding:14px}.battle-student-picker>span{color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.battle-student-picker .inline-check{align-items:center;display:flex;gap:10px;justify-content:flex-start}.battle-student-picker .inline-check input{margin:0}.speaking-flip-card{min-height:280px;perspective:1200px;width:100%}.speaking-flip-inner{height:100%;min-height:280px;position:relative;transform-style:preserve-3d;transition:transform .55s ease}.speaking-flip-card.flipped .speaking-flip-inner{transform:rotateY(180deg)}.speaking-flip-face{align-content:center;backface-visibility:hidden;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 18px 36px #18302f14;display:grid;gap:18px;top:0;right:0;bottom:0;left:0;padding:32px;position:absolute}.speaking-flip-face span{color:var(--coral);font-size:.78rem;font-weight:900;text-transform:uppercase}.speaking-flip-face strong{color:var(--ink);font-size:2rem;line-height:1.35}.speaking-flip-back{transform:rotateY(180deg)}.speaking-card-actions{display:grid;gap:10px;grid-template-columns:minmax(120px,.35fr) 1fr}.speaking-question-list{display:grid;gap:12px;margin:0;padding-left:20px}.speaking-question-list li{color:var(--muted);line-height:1.45}.speaking-question-list span,.speaking-question-list strong{display:block}.speaking-question-list strong{color:var(--ink)}.text-clue-panel{min-height:12rem}.life-row{display:flex;gap:10px;min-height:44px}.life-dot{width:36px;height:36px;border-radius:999px;background:var(--leaf);box-shadow:inset 0 -4px #18302f1f}.life-dot.lost{background:#dc7358}.keep-guessing{margin:0 0 28px;color:var(--coral);font-size:1.05rem;font-weight:900;text-align:center}.answer{font-weight:900;text-align:center}@media(max-width:860px){.auth-screen,.admin-layout,.admin-shell,.content-grid,.landing-hero,.game-layout,.game-header-inner,.game-controls,.score-cards,.student-summary-row,.student-class-layout,.battle-start-layout,.speaking-run-grid,.vocabulary-battle-grid,.language-grid{grid-template-columns:1fr}.vocabulary-battle-grid{min-height:auto}.battle-hangman-panel .clue-panel img,.battle-hangman-panel .image-placeholder{height:min(36svh,320px)}.auth-visual,.auth-panel{min-height:auto;border-radius:8px}.landing-page{padding:18px}.landing-copy h1{font-size:3.1rem}.landing-word{gap:5px}.landing-word span{border-width:3px;font-size:1.35rem}.landing-keys{grid-template-columns:repeat(6,minmax(0,1fr))}.side-nav{position:static}.admin-sidebar{min-height:auto}.student-admin-shell,.teacher-admin-shell{position:relative;min-height:100svh}.student-admin-shell .student-sidebar,.teacher-admin-shell .teacher-sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:min(82vw,292px);min-height:100svh;max-height:100svh;overflow-y:auto;overscroll-behavior:contain;transform:translate(-105%);transition:transform .18s ease;box-shadow:var(--shadow);-webkit-overflow-scrolling:touch}.student-admin-shell.menu-open .student-sidebar,.teacher-admin-shell.menu-open .teacher-sidebar{transform:translate(0)}.student-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;border:0;padding:0;background:#18302f52}.student-admin-shell.menu-open .student-menu-backdrop,.teacher-admin-shell.menu-open .student-menu-backdrop{display:block}.student-menu-toggle{display:inline-grid;width:44px;height:44px;flex:0 0 44px;place-items:center;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}.student-menu-toggle span{display:block;width:20px;height:2px;border-radius:999px;background:var(--teal)}.admin-workspace{padding:16px}.student-admin-shell .admin-workspace,.teacher-admin-shell .admin-workspace{padding:0 16px 18px}.admin-topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:58px;padding:10px 0}.student-admin-shell .admin-topbar,.teacher-admin-shell .admin-topbar{position:sticky;top:0;z-index:12;margin:0 -16px 18px;border-bottom:1px solid rgba(24,48,47,.12);padding:10px 16px;background:#f8f6ef}.teacher-sidebar-language{display:grid}.student-top-actions{justify-self:end}.student-top-actions select{display:none}.student-top-actions .admin-user-menu summary{min-width:44px;padding:0}.student-top-actions .admin-user-menu summary span:last-child,.student-top-actions .admin-user-menu summary:after{display:none}.student-top-title .eyebrow{display:none}.student-top-title h1{font-size:1.35rem}.student-summary-row{gap:8px}.student-summary-row article{min-height:78px;gap:4px;padding:10px 14px}.student-summary-row span{font-size:.76rem}.student-summary-row strong{font-size:1.55rem}.progress-detail-summary{display:none}.word-edit-form{grid-template-columns:1fr}.app-header,.list-item{align-items:stretch;flex-direction:column}.edit-pair{grid-template-columns:1fr}.game-shell{width:100%;min-height:calc(100svh - 64px);overflow:visible;padding:8px 8px 10px}.game-header-inner{width:100%;grid-template-columns:auto minmax(0,1fr) auto;min-height:64px;gap:8px;padding:8px}.game-title-block h1{font-size:1.35rem}.game-home-button{min-height:40px;padding:0 10px}.game-title-block .eyebrow,.game-controls{display:none}.game-header-band{position:sticky;top:0;z-index:12;border-top-width:0}.game-user-menu{justify-self:end}.game-user-menu summary{min-width:44px;padding:0}.game-user-menu summary span:last-child,.game-user-menu summary:after{display:none}.game-user-menu .avatar{width:44px;height:44px}.game-command-row{display:none}.result-action-row{gap:8px;margin:0 auto 18px}.pronunciation-button{min-height:42px;padding:0 14px;font-size:.9rem}.summary-score-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px}.summary-score-row div{min-height:58px;padding:8px}.summary-score-row span{font-size:.68rem}.summary-score-row strong{font-size:1.2rem}.summary-result-list{gap:6px;padding:10px}.summary-result-item{grid-template-columns:34px minmax(0,1fr) auto;gap:8px;padding:8px}.summary-question-number{width:30px;height:30px}.summary-status{padding:5px 8px;font-size:.68rem}.admin-card{overflow-x:visible}.admin-table{min-width:0;border-collapse:separate;border-spacing:0}.admin-table thead{display:none}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{display:block;width:100%}.admin-table tr{border-bottom:1px solid var(--line);padding:8px 0}.admin-table tr:last-child{border-bottom:0}.admin-table td{display:grid;grid-template-columns:minmax(94px,.42fr) minmax(0,1fr);border-bottom:0;padding:7px 14px}.admin-table td:before{content:attr(data-label);color:var(--muted);font-size:.72rem;font-weight:950;text-transform:uppercase}.admin-table td.table-actions{display:grid;grid-template-columns:minmax(94px,.42fr) minmax(0,1fr)}.admin-table td.table-actions:before{grid-row:1 / span 20}.admin-table td.table-actions button{grid-column:2;width:fit-content}.admin-table td[colspan]{display:block}.admin-table td[colspan]:before{display:none}.table-pagination{align-items:stretch;flex-direction:column}.table-search-row{justify-content:stretch}.table-search-row label{min-width:0;width:100%}.table-pagination div{justify-content:space-between}.score-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.score-card{min-height:48px;gap:2px;padding:6px}.score-card span{font-size:.64rem}.score-card strong{font-size:1rem}.game-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);height:calc(100svh - 142px);margin-top:6px;overflow:hidden}.clue-panel{grid-template-columns:1fr;align-items:start;gap:0;padding:0}.clue-panel img,.image-placeholder{width:100%;height:min(42svh,calc(100vw - 26px),360px);aspect-ratio:auto;border-radius:8px 8px 0 0;object-fit:contain}.clue-panel>div{padding:5px 10px 6px}.clue-panel h2{font-size:clamp(.95rem,3.8vw,1.15rem)}.game-panel{display:flex;flex-direction:column;justify-content:flex-start;min-height:0;gap:3px;overflow:hidden;padding:6px}.word-display{align-content:center;flex-shrink:0;gap:4px 8px;margin:0;min-height:34px}.word-group{gap:4px}.letter-slot{--slot-width: clamp(24px, 7vw, 34px);--slot-height: clamp(28px, 7.6vw, 36px);border-width:2px;padding:2px;font-size:clamp(.9rem,4.8vw,1.25rem)}.single-long-word .letter-slot,.word-group.long-word .letter-slot{--slot-width: clamp(18px, calc((100cqi - ((var(--word-length) - 1) * 4px)) / var(--word-length)), 34px);--slot-height: clamp(24px, calc((100cqi - ((var(--word-length) - 1) * 4px)) / var(--word-length)), 36px)}.multi-long-word .word-group .letter-slot{--slot-width: clamp(18px, calc((100cqi - ((var(--display-length) - 1) * 4px)) / var(--display-length)), 34px);--slot-height: clamp(24px, calc((100cqi - ((var(--display-length) - 1) * 4px)) / var(--display-length)), 36px)}.life-row{flex-shrink:0;min-height:14px;gap:4px}.life-dot{width:14px;height:14px}.keep-guessing,.answer{margin:0;font-size:.78rem}.keyboard{--mobile-key-gap: clamp(3px, 1vw, 5px);--mobile-key-size: clamp(25px, calc((100vw - 72px)*.1) , 40px);flex-shrink:0;width:100%;gap:var(--mobile-key-gap);margin-top:auto}.keyboard-row{max-width:100%;gap:var(--mobile-key-gap)}.keyboard button{width:var(--mobile-key-size);height:clamp(32px,calc(var(--mobile-key-size) + 4px),42px);border-radius:7px;padding:0;font-size:clamp(.72rem,3.4vw,.88rem)}.accent-menu{max-width:min(260px,78vw);flex-wrap:wrap}.accent-menu button{width:38px;height:38px}}@media(max-width:430px)and (orientation:portrait){.clue-panel img,.image-placeholder{height:min(36svh,calc(100vw - 26px),320px)}.game-panel{gap:2px;padding:5px}.word-display{gap:3px 6px;min-height:0}.word-group{gap:3px}.letter-slot{--slot-width: clamp(20px, 6.4vw, 30px);--slot-height: clamp(24px, 7vw, 32px);font-size:clamp(.82rem,4.2vw,1.05rem)}.single-long-word .letter-slot,.word-group.long-word .letter-slot{--slot-width: clamp(16px, calc((100cqi - ((var(--word-length) - 1) * 3px)) / var(--word-length)), 30px);--slot-height: clamp(22px, calc((100cqi - ((var(--word-length) - 1) * 3px)) / var(--word-length)), 32px)}.multi-long-word .word-group .letter-slot{--slot-width: clamp(16px, calc((100cqi - ((var(--display-length) - 1) * 3px)) / var(--display-length)), 30px);--slot-height: clamp(22px, calc((100cqi - ((var(--display-length) - 1) * 3px)) / var(--display-length)), 32px)}.answer,.keep-guessing{font-size:.7rem;line-height:1.1}.result-action-row{flex-shrink:0;gap:6px;margin:2px auto 6px}.pronunciation-button{min-height:34px;padding:0 12px;font-size:.76rem}.keyboard{--mobile-key-size: clamp(23px, calc((100vw - 68px)*.1) , 35px)}.keyboard button{height:clamp(28px,calc(var(--mobile-key-size) + 4px),36px);font-size:clamp(.66rem,3.1vw,.78rem)}}@media(max-width:430px)and (max-height:740px)and (orientation:portrait){.game-shell{padding:6px}.score-cards{gap:4px}.score-card{min-height:42px;padding:5px}.score-card span{font-size:.58rem}.score-card strong{font-size:.92rem}.game-layout{height:calc(100svh - 132px);margin-top:4px}.clue-panel img,.image-placeholder{height:min(34svh,calc(100vw - 26px),240px)}.clue-panel>div{padding:4px 8px 5px}.clue-panel h2{font-size:.96rem}.game-panel{gap:2px;padding:5px}.word-display{gap:3px 6px;min-height:28px}.word-group{gap:3px}.letter-slot{--slot-width: clamp(20px, 6.4vw, 30px);--slot-height: clamp(24px, 7vw, 32px);font-size:clamp(.82rem,4.2vw,1.05rem)}.single-long-word .letter-slot,.word-group.long-word .letter-slot{--slot-width: clamp(16px, calc((100cqi - ((var(--word-length) - 1) * 3px)) / var(--word-length)), 30px);--slot-height: clamp(22px, calc((100cqi - ((var(--word-length) - 1) * 3px)) / var(--word-length)), 32px)}.multi-long-word .word-group .letter-slot{--slot-width: clamp(16px, calc((100cqi - ((var(--display-length) - 1) * 3px)) / var(--display-length)), 30px);--slot-height: clamp(22px, calc((100cqi - ((var(--display-length) - 1) * 3px)) / var(--display-length)), 32px)}.life-dot{width:12px;height:12px}.answer,.keep-guessing{font-size:.7rem;line-height:1.1}.result-action-row{gap:6px;margin-bottom:4px}.pronunciation-button{min-height:34px;padding:0 12px;font-size:.76rem}.keyboard{--mobile-key-size: clamp(23px, calc((100vw - 68px)*.1) , 35px)}.keyboard button{height:clamp(28px,calc(var(--mobile-key-size) + 4px),36px);font-size:clamp(.66rem,3.1vw,.78rem)}}
