:root{--navy:#0c2347;--blue:#124fb7;--sky:#eaf5ff;--teal:#0d9a9a;--ink:#15213a;--muted:#64748b;--line:#dce6f3;--card:#fff;--green:#16a34a;--red:#dc2626;--shadow:0 18px 45px rgba(12,35,71,.10)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:#f7fbff;padding-bottom:84px}button,input,select,textarea{font:inherit}button{cursor:pointer}.topbar{position:sticky;top:0;z-index:30;height:68px;padding:8px 18px;display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.brand{border:0;background:none;display:flex;align-items:center;gap:9px;color:var(--navy);font-weight:900;font-size:17px}.brand img{width:42px;height:42px;object-fit:contain}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:12px;width:40px;height:40px}.topstats{margin-left:auto;display:flex;gap:10px}.topstats span{background:var(--sky);border-radius:999px;padding:8px 12px;font-size:13px}.view{display:none;max-width:1180px;margin:auto;padding:34px 22px 60px}.view.active{display:block}.eyebrow{font-size:12px;font-weight:900;letter-spacing:.12em;color:var(--teal)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(36px,5vw,62px);line-height:1.02;color:var(--navy);letter-spacing:-.04em}h2{color:var(--navy)}p{line-height:1.62;color:#536178}.hero{display:grid;grid-template-columns:1.45fr .55fr;gap:28px;align-items:stretch}.hero-copy,.hero-card,.pet-banner,.coursehead,.progress-card,.profile-card,.teacher-card,.price-note{background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}.hero-copy{padding:48px;background:linear-gradient(135deg,#fff 35%,#eaf7ff)}.hero-copy p{font-size:18px;max-width:720px}.hero-card{padding:32px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.goal-ring{width:135px;height:135px;border-radius:50%;border:14px solid #dff3f3;box-shadow:inset 0 0 0 8px #fff;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:18px}.goal-ring b{font-size:28px;color:var(--navy)}.goal-ring span{font-size:12px;color:var(--muted)}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.primary,.secondary,.ghost{border:0;border-radius:13px;padding:13px 18px;font-weight:800}.primary{background:var(--navy);color:#fff}.primary:hover{background:#153b75}.secondary{background:#edf5ff;color:var(--navy)}.wide{width:100%}.section-head{margin:42px 0 16px}.language-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.language-card{border:1px solid var(--line);background:#fff;border-radius:20px;padding:22px;text-align:left;display:grid;grid-template-columns:auto 1fr;gap:5px 14px;align-items:center;transition:.2s}.language-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.language-card .flag{font-size:36px;grid-row:1/3}.language-card b{font-size:18px;color:var(--navy)}.language-card small{color:var(--muted)}.pet-banner{margin-top:28px;padding:25px;display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;background:linear-gradient(110deg,#f3fbff,#fff8e7)}.mini-pets{display:flex}.mini-pets span{font-size:40px;margin-right:-12px;filter:drop-shadow(0 5px 4px #ccd)}.title{margin-bottom:25px}.title h1{margin-bottom:8px}.language-switch{display:flex;gap:8px;overflow:auto;padding-bottom:8px;margin-bottom:18px}.language-switch button{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 14px;font-weight:800}.language-switch button.active{background:var(--navy);color:#fff}.coursehead{padding:24px;display:flex;justify-content:space-between;gap:20px}.pill{height:max-content;background:#eaf7ff;color:var(--blue);padding:7px 12px;border-radius:999px;font-size:12px;font-weight:900}.path{max-width:820px;margin:28px auto}.node{display:grid;grid-template-columns:68px 1fr;gap:15px;position:relative;padding-bottom:20px}.node:before{content:"";position:absolute;left:33px;top:58px;bottom:-3px;width:3px;background:#dce7f4}.node:last-child:before{display:none}.dot{z-index:1;width:66px;height:66px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:27px;border:7px solid #eef6ff}.node.locked .dot{filter:grayscale(1);opacity:.45}.lesson{border:1px solid var(--line);background:#fff;border-radius:20px;padding:18px 21px;text-align:left}.lesson:disabled{opacity:.5;cursor:not-allowed}.lesson h3{margin:5px 0}.practice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.practice-grid button{border:1px solid var(--line);background:#fff;border-radius:22px;padding:28px;text-align:left;font-size:30px;min-height:150px}.practice-grid button b,.practice-grid button span{display:block}.practice-grid button b{font-size:18px;margin:14px 0 5px;color:var(--navy)}.practice-grid button span{font-size:13px;color:var(--muted)}.practice-grid .dark{background:var(--navy)}.practice-grid .dark b,.practice-grid .dark span{color:#fff}.mascot-pick{display:flex;gap:10px;overflow:auto;margin-bottom:16px}.mascot-pick button{min-width:118px;border:2px solid transparent;background:#fff;border-radius:18px;padding:11px;border:1px solid var(--line)}.mascot-pick button.active{border-color:var(--teal);background:#effdfc}.mascot-pick span{font-size:34px;display:block}.mascot-pick b,.mascot-pick small{display:block}.buddy-room{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.room-scene{position:relative;height:610px;overflow:hidden;border-radius:30px;border:1px solid #b8ddf2;background:linear-gradient(#dff4ff 0 64%,#efdfc3 64%);box-shadow:var(--shadow)}.room-scene:after{content:"";position:absolute;left:0;right:0;top:64%;height:7px;background:#d0b995}.room-window{position:absolute;top:35px;left:40px;width:150px;height:145px;border:11px solid #fff;border-radius:13px;background:linear-gradient(#75c9ff,#e5f8ff);box-shadow:0 4px 12px #7ba1b4}.room-window span{font-size:36px;position:absolute;right:10px;top:6px}.room-window i:first-of-type{position:absolute;left:50%;top:0;bottom:0;width:6px;background:#fff}.room-window i:last-of-type{position:absolute;top:50%;left:0;right:0;height:6px;background:#fff}.room-picture{position:absolute;right:32px;top:42px;background:#fff;border:8px solid #d9b477;padding:15px 22px;text-align:center;transform:rotate(2deg);color:var(--teal)}.room-rug{position:absolute;bottom:32px;left:16%;width:68%;height:90px;background:#c5e9e3;border-radius:50%;border:7px solid #9bd6cc}.buddy-character{position:absolute;left:50%;bottom:94px;width:220px;height:330px;transform:translateX(-50%);z-index:4;transform-origin:50% 100%}.buddy-shadow{position:absolute;left:38px;bottom:0;width:145px;height:27px;border-radius:50%;background:rgba(17,24,39,.18);filter:blur(2px)}.buddy-body-wrap{position:absolute;left:25px;bottom:16px;width:170px;height:300px;transform-origin:50% 90%}.buddy-head{position:absolute;left:35px;top:0;width:100px;height:100px;border-radius:48%;background:#fff7e0;display:grid;place-items:center;font-size:72px;z-index:7;box-shadow:0 5px 0 rgba(12,35,71,.12);border:4px solid rgba(255,255,255,.9)}.buddy-neck{position:absolute;left:75px;top:88px;width:20px;height:25px;background:#f4c99a;z-index:4}.buddy-torso{position:absolute;left:45px;top:105px;width:82px;height:108px;border-radius:35px 35px 24px 24px;background:linear-gradient(145deg,#0d9a9a,#087779);z-index:3;border:4px solid rgba(255,255,255,.45);display:grid;place-items:center;color:#fff;font-size:25px}.buddy-arm{position:absolute;top:118px;width:31px;height:115px;background:#f4c99a;border-radius:20px;transform-origin:50% 12px;z-index:2}.buddy-arm i,.buddy-leg i{display:block;position:absolute;background:#f1bf89}.arm-left{left:25px;transform:rotate(16deg)}.arm-right{right:23px;transform:rotate(-16deg)}.buddy-arm i{width:36px;height:36px;border-radius:50%;bottom:-8px;left:-2px}.buddy-leg{position:absolute;top:197px;width:38px;height:96px;background:#24457a;border-radius:20px;transform-origin:50% 8px;z-index:1}.leg-left{left:48px}.leg-right{right:47px}.buddy-leg i{width:48px;height:22px;border-radius:20px 25px 10px 10px;bottom:-2px;left:-5px}.buddy-nameplate{position:absolute;left:20px;bottom:18px;background:rgba(255,255,255,.92);border-radius:17px;padding:10px 15px;z-index:8}.buddy-nameplate h2{display:inline;margin-right:8px}.buddy-nameplate span{display:block;color:var(--teal);font-size:12px;font-weight:800}.action-dock{position:absolute;right:15px;bottom:15px;z-index:8;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.action-dock button{border:0;background:rgba(255,255,255,.94);border-radius:12px;padding:8px 9px;font-size:18px;box-shadow:0 3px 8px #abc}.action-dock span{font-size:9px;display:block}.chat-panel{height:610px;background:#fff;border:1px solid var(--line);border-radius:28px;padding:18px;display:flex;flex-direction:column;box-shadow:var(--shadow)}.chathead{display:flex;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.chathead small{display:block;color:var(--muted);margin-top:3px}.log{flex:1;overflow:auto;padding:16px 3px;display:flex;flex-direction:column;gap:10px}.empty{margin:auto;text-align:center;color:var(--muted);max-width:300px}.bubble{max-width:84%;padding:11px 14px;border-radius:17px;line-height:1.45}.bubble.user{align-self:flex-end;background:var(--navy);color:#fff;border-bottom-right-radius:5px}.bubble.bot{align-self:flex-start;background:#eef7ff;border-bottom-left-radius:5px}.bubble small{display:block;opacity:.65;margin-top:5px;font-size:10px}.prompts{display:flex;gap:6px;overflow:auto;padding:5px 0}.prompts button{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;font-size:11px}.chat-input{display:flex;gap:7px;margin:7px 0}.chat-input input{flex:1;border:1px solid var(--line);border-radius:13px;padding:11px}.send{width:44px;border:0;border-radius:13px;background:var(--teal);color:#fff}.talkbtn{border:0;border-radius:16px;background:var(--navy);color:#fff;padding:12px;display:flex;justify-content:center;align-items:center;gap:9px}.talkbtn small{opacity:.7}.local-note{font-size:10px;line-height:1.3;margin:8px 0 0}.teacher-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.teacher-card{overflow:hidden}.teacher-card>img{width:100%;height:330px;object-fit:cover;object-position:top}.teacher-info{padding:24px}.teacher-info video{width:100%;border-radius:14px;margin:10px 0 15px;background:#000;max-height:270px}.motto{font-weight:800;color:var(--teal)}.tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.tags span{background:#eef6ff;border-radius:999px;padding:5px 9px;font-size:11px}.price-note{margin-top:20px;padding:20px;display:flex;justify-content:space-between}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat-grid>div{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;text-align:center}.stat-grid span,.stat-grid b,.stat-grid small{display:block}.stat-grid span{font-size:28px}.stat-grid b{font-size:27px;color:var(--navy)}.progress-card{padding:22px;margin-top:16px}.course-row{display:grid;grid-template-columns:130px 1fr 45px;align-items:center;gap:10px;margin:12px 0}.bar{height:10px;border-radius:999px;background:#e6eef6;overflow:hidden}.bar i{display:block;height:100%;background:var(--teal)}.badges{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.badges div{border:1px solid var(--line);border-radius:15px;padding:15px}.badges .locked{filter:grayscale(1);opacity:.35}.profile-card{padding:22px;display:flex;align-items:center;gap:16px}.avatar{width:64px;height:64px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:28px;font-weight:900}.profile-card button{margin-left:auto}.settings{margin-top:16px;display:grid;gap:8px}.settings button{background:#fff;border:1px solid var(--line);padding:17px;border-radius:15px;text-align:left}.settings b{float:right}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:72px;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:center;z-index:35}.bottom-nav button{width:min(150px,20%);border:0;background:none;color:#6b7a91;font-size:20px}.bottom-nav span{display:block;font-size:10px;font-weight:800}.bottom-nav button.active{color:var(--navy);background:#f1f8ff}#drawer{position:fixed;z-index:60;top:0;bottom:0;left:0;width:280px;background:#fff;padding:25px;transform:translateX(-105%);transition:.25s;box-shadow:20px 0 50px rgba(0,0,0,.2)}#drawer.open{transform:none}#drawer img{width:90px;margin-bottom:20px}#drawer>button:not(.drawer-close){width:100%;border:0;background:none;padding:13px 8px;text-align:left;font-weight:800}.drawer-close{float:right;border:0;background:none;font-size:28px}#scrim{position:fixed;inset:0;background:#00142d99;z-index:55;display:none}#scrim.show{display:block}dialog{border:0;border-radius:25px;padding:0;width:min(620px,92vw);max-height:88vh;box-shadow:0 30px 90px #001b3d55}dialog::backdrop{background:#00142d99}.modal-close{position:absolute;right:12px;top:12px;border:0;background:#edf4fb;border-radius:50%;width:36px;height:36px;z-index:2}#modalBody,#bookingForm{padding:30px}label{display:block;font-weight:800;font-size:12px;margin:12px 0}input,select,textarea{width:100%;margin-top:6px;border:1px solid #cbd8e8;border-radius:10px;padding:11px;background:#fff}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.word{background:#f0f8ff;border-radius:18px;padding:24px;text-align:center;margin:15px 0}.word .big{font-size:38px;font-weight:900;color:var(--navy)}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.answer-grid button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:13px}.answer-grid .correct{border-color:#16a34a;background:#eafbea}.answer-grid .wrong{border-color:#dc2626;background:#fff0f0}.feedback{padding:14px;border-radius:13px;background:#eafbea;margin-top:10px}.trace-stage{height:320px;position:relative;background:#fff;border:2px dashed #b9d2e7;border-radius:20px;overflow:hidden}.trace-guide{position:absolute;inset:0;display:grid;place-items:center;font-size:220px;color:#e3e9ef}.trace-stage canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}#toast{position:fixed;left:50%;bottom:88px;transform:translate(-50%,20px);background:#0c2347;color:#fff;border-radius:999px;padding:11px 17px;opacity:0;pointer-events:none;transition:.2s;z-index:100}#toast.show{opacity:1;transform:translate(-50%,0)}
/* Character motion */
.buddy-character.idle .buddy-body-wrap{animation:breathe 2.6s ease-in-out infinite}.buddy-character.wave .arm-right{animation:waveArm .55s ease-in-out 4;transform-origin:50% 12px}.buddy-character.jump{animation:jumpWhole .85s cubic-bezier(.2,.7,.2,1)}.buddy-character.jump .buddy-shadow{animation:shadowJump .85s}.buddy-character.run .buddy-body-wrap{animation:runBody .22s linear 8}.buddy-character.run .leg-left{animation:runLeg .22s linear 8}.buddy-character.run .leg-right{animation:runLeg .22s linear 8 reverse}.buddy-character.run .arm-left{animation:runArm .22s linear 8}.buddy-character.run .arm-right{animation:runArm .22s linear 8 reverse}.buddy-character.sit .buddy-body-wrap{animation:sitPose 2.4s forwards}.buddy-character.sit .leg-left{animation:sitLegL 2.4s forwards}.buddy-character.sit .leg-right{animation:sitLegR 2.4s forwards}.buddy-character.lie .buddy-body-wrap{animation:liePose 2.7s forwards}.buddy-character.dance .buddy-body-wrap{animation:danceBody .55s ease-in-out 5}.buddy-character.dance .arm-left{animation:danceArmL .55s ease-in-out 5}.buddy-character.dance .arm-right{animation:danceArmR .55s ease-in-out 5}.buddy-character.speaking .buddy-head{animation:speakHead .38s ease-in-out infinite alternate}.buddy-character.listening .buddy-head{animation:listenHead 1s ease-in-out infinite}.buddy-character.thinking .buddy-head{animation:thinkHead .8s ease-in-out infinite alternate}@keyframes breathe{50%{transform:translateY(-5px) scale(1.01)}}@keyframes waveArm{0%,100%{transform:rotate(-18deg)}50%{transform:rotate(-125deg)}}@keyframes jumpWhole{0%,100%{transform:translateX(-50%) translateY(0)}40%{transform:translateX(-50%) translateY(-145px) rotate(-3deg)}70%{transform:translateX(-50%) translateY(-25px)}}@keyframes shadowJump{40%{transform:scale(.45);opacity:.08}}@keyframes runBody{0%,100%{transform:translateX(-8px) rotate(-5deg)}50%{transform:translateX(8px) rotate(5deg)}}@keyframes runLeg{0%,100%{transform:rotate(35deg)}50%{transform:rotate(-45deg)}}@keyframes runArm{0%,100%{transform:rotate(45deg)}50%{transform:rotate(-45deg)}}@keyframes sitPose{15%,85%{transform:translateY(70px)}100%{transform:translateY(0)}}@keyframes sitLegL{15%,85%{transform:rotate(75deg);transform-origin:50% 10px}100%{transform:none}}@keyframes sitLegR{15%,85%{transform:rotate(-75deg);transform-origin:50% 10px}100%{transform:none}}@keyframes liePose{15%,85%{transform:translateY(105px) rotate(82deg) translateX(25px)}100%{transform:none}}@keyframes danceBody{0%,100%{transform:rotate(-8deg) translateY(0)}50%{transform:rotate(8deg) translateY(-15px)}}@keyframes danceArmL{0%,100%{transform:rotate(30deg)}50%{transform:rotate(155deg)}}@keyframes danceArmR{0%,100%{transform:rotate(-30deg)}50%{transform:rotate(-155deg)}}@keyframes speakHead{to{transform:translateY(-4px) rotate(3deg)}}@keyframes listenHead{50%{transform:rotate(9deg)}}@keyframes thinkHead{to{transform:rotate(-8deg) translateY(-2px)}}
@media(max-width:850px){.hero,.buddy-room,.teacher-grid{grid-template-columns:1fr}.hero-card{display:none}.language-grid{grid-template-columns:1fr 1fr}.pet-banner{grid-template-columns:1fr;text-align:center}.mini-pets{justify-content:center}.buddy-room{gap:12px}.room-scene{height:540px}.chat-panel{height:560px}.practice-grid{grid-template-columns:1fr 1fr}.stat-grid{grid-template-columns:1fr 1fr}.topstats span:first-child{display:none}.brand span{display:none}.teacher-card>img{height:290px}}@media(max-width:520px){.view{padding:22px 12px 45px}.language-grid{grid-template-columns:1fr}.practice-grid{grid-template-columns:1fr 1fr}.practice-grid button{padding:18px;min-height:125px}.room-scene{height:500px}.buddy-character{transform:translateX(-50%) scale(.86);bottom:80px}.action-dock{left:10px;right:10px;grid-template-columns:repeat(6,1fr)}.action-dock button{font-size:15px;padding:7px 3px}.action-dock span{display:none}.buddy-nameplate{bottom:68px}.chat-panel{height:590px}.bottom-nav button{font-size:18px}.price-note{display:block}.form-row{grid-template-columns:1fr}.course-row{grid-template-columns:95px 1fr 38px}}

/* Mascot art + smart AI controls */
.mascot-pick button{min-width:132px;overflow:hidden}.mascot-pick button img{width:76px;height:92px;object-fit:cover;object-position:50% 20%;border-radius:14px;display:block;margin:0 auto 8px;box-shadow:0 6px 14px rgba(12,35,71,.12)}
.buddy-character{width:260px;height:390px;bottom:76px}.buddy-image{position:absolute;left:50%;bottom:16px;width:235px;height:350px;object-fit:cover;object-position:50% 20%;border-radius:32px;transform:translateX(-50%);transform-origin:50% 100%;box-shadow:0 18px 28px rgba(12,35,71,.16);border:5px solid rgba(255,255,255,.92)}
.ai-strip{display:flex;align-items:center;gap:10px;padding:10px 0 8px}.ai-strip .primary{padding:10px 13px}.ai-state{font-size:11px;font-weight:900;border-radius:999px;padding:7px 10px}.ai-state.offline{background:#eef2f7;color:#68768b}.ai-state.connecting{background:#fff4d8;color:#8a5d00}.ai-state.online{background:#e7faef;color:#11723a}.ai-state.error{background:#ffeaea;color:#a51f1f}
.buddy-character.idle .buddy-image{animation:v8Breathe 2.7s ease-in-out infinite}.buddy-character.wave .buddy-image{animation:v8Wave .72s ease-in-out 3}.buddy-character.jump .buddy-image{animation:v8Jump .9s cubic-bezier(.2,.75,.2,1)}.buddy-character.run .buddy-image{animation:v8Run .26s linear 8}.buddy-character.sit .buddy-image{animation:v8Sit 2.4s ease forwards}.buddy-character.lie .buddy-image{animation:v8Lie 2.8s ease forwards}.buddy-character.dance .buddy-image{animation:v8Dance .5s ease-in-out 6}.buddy-character.stand .buddy-image{animation:v8Stand 1s ease}.buddy-character.speaking .buddy-image{animation:v8Speak .35s ease-in-out infinite alternate}.buddy-character.listening .buddy-image{animation:v8Listen .8s ease-in-out infinite alternate}.buddy-character.thinking .buddy-image{animation:v8Think .75s ease-in-out infinite alternate}
@keyframes v8Breathe{50%{transform:translateX(-50%) translateY(-7px) scale(1.012)}}
@keyframes v8Wave{0%,100%{transform:translateX(-50%) rotate(0)}25%{transform:translateX(-50%) rotate(-5deg) translateY(-3px)}75%{transform:translateX(-50%) rotate(5deg) translateY(-3px)}}
@keyframes v8Jump{0%,100%{transform:translateX(-50%) translateY(0) scale(1)}42%{transform:translateX(-50%) translateY(-150px) scale(.98) rotate(-3deg)}70%{transform:translateX(-50%) translateY(-18px) scale(1.03)}}
@keyframes v8Run{0%,100%{transform:translateX(-58%) translateY(0) rotate(-4deg)}50%{transform:translateX(-42%) translateY(-10px) rotate(4deg)}}
@keyframes v8Sit{0%{transform:translateX(-50%) translateY(0)}22%,82%{transform:translateX(-50%) translateY(95px) scaleY(.78) scaleX(1.04)}100%{transform:translateX(-50%) translateY(0)}}
@keyframes v8Lie{0%{transform:translateX(-50%) rotate(0)}18%,82%{transform:translateX(-45%) translateY(110px) rotate(76deg) scale(.9)}100%{transform:translateX(-50%) rotate(0)}}
@keyframes v8Dance{0%,100%{transform:translateX(-50%) rotate(-7deg) translateY(0)}50%{transform:translateX(-50%) rotate(7deg) translateY(-22px) scale(1.02)}}
@keyframes v8Stand{0%{transform:translateX(-50%) scaleY(.82) translateY(80px)}100%{transform:translateX(-50%) scaleY(1) translateY(0)}}
@keyframes v8Speak{to{transform:translateX(-50%) translateY(-5px) scale(1.015)}}
@keyframes v8Listen{to{transform:translateX(-50%) rotate(2deg) scale(1.01)}}
@keyframes v8Think{to{transform:translateX(-50%) rotate(-3deg) translateY(-4px)}}
@media(max-width:520px){.buddy-character{width:230px;height:350px;bottom:72px}.buddy-image{width:210px;height:315px}.action-dock{grid-template-columns:repeat(4,1fr)}.ai-strip{align-items:flex-start;flex-direction:column}}

/* ================= V10 GAME-STYLE BUDDY WORLD ================= */
:root{--room-accent:#ff9ec0}.buddy-title{max-width:850px}.pet-game-shell{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);gap:18px;align-items:stretch}.pet-stage{position:relative;min-height:690px;border-radius:30px;overflow:hidden;background:linear-gradient(#c9f5ff 0 48%,#f7e2bd 48% 100%);box-shadow:0 22px 60px rgba(12,35,71,.15);border:1px solid rgba(12,35,71,.08)}.room-backdrop{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 33%,rgba(255,255,255,.85),transparent 25%),linear-gradient(180deg,#bcebf2 0 55%,#efd5ae 55% 100%)}.room-window{position:absolute;left:7%;top:16%;width:160px;height:190px;border:12px solid #fff;border-radius:24px;background:linear-gradient(#78ccef,#dff7ff);box-shadow:0 10px 0 rgba(12,35,71,.07);display:grid;place-items:center;font-size:48px}.room-window:before,.room-window:after{content:"";position:absolute;background:#fff}.room-window:before{width:8px;height:100%;left:50%;transform:translateX(-50%)}.room-window:after{height:8px;width:100%;top:50%;transform:translateY(-50%)}.room-poster{position:absolute;right:7%;top:18%;padding:18px 22px;background:#fff9;border:5px solid #fff;border-radius:20px;transform:rotate(2deg);font-weight:900;letter-spacing:.08em;text-align:center;color:#0c2347;box-shadow:0 8px 25px #0c23471a}.room-poster b{color:#098f98}.room-shelf{position:absolute;right:7%;top:43%;display:flex;gap:14px;padding:12px 18px;border-radius:18px;background:#fff9;font-size:28px;box-shadow:0 8px 25px #0c234716}.room-floor{position:absolute;left:0;right:0;bottom:0;height:45%;background:repeating-linear-gradient(90deg,#e8c899 0 75px,#d9b984 76px 78px)}.room-floor:after{content:"";position:absolute;left:50%;bottom:68px;width:390px;height:105px;transform:translateX(-50%);background:radial-gradient(ellipse,#73d6d2 0 55%,#2ca2a5 56% 70%,transparent 71%);border-radius:50%;opacity:.9}.pet-hud{position:absolute;z-index:8;top:18px;left:18px;right:18px;display:flex;gap:9px;align-items:center}.hud-pill{background:#fffde8;border:3px solid #fff;padding:9px 13px;border-radius:999px;display:flex;gap:7px;align-items:center;box-shadow:0 6px 18px #0c23471c}.hud-pill b{font-size:12px}.pet-hud .ai-state{margin-left:auto;border:3px solid #fff;box-shadow:0 6px 18px #0c23471c}.ai-state.ready{background:#e8f4ff;color:#175b8c}.buddy-character{position:absolute;z-index:5;left:50%;bottom:128px;width:300px;height:430px;transform:translateX(-50%);border:0;background:none;padding:0;cursor:pointer;overflow:visible}.buddy-shadow{position:absolute;z-index:-1;left:50%;bottom:2px;width:190px;height:34px;background:#0b355024;filter:blur(2px);border-radius:50%;transform:translateX(-50%)}.buddy-image{position:absolute;left:50%;bottom:8px;width:auto;height:405px;max-width:285px;object-fit:contain;object-position:center bottom;border:0;border-radius:0;box-shadow:none;transform:translateX(-50%);filter:drop-shadow(0 18px 18px rgba(12,35,71,.2));transform-origin:50% 100%}.buddy-nameplate{position:absolute;z-index:9;left:50%;bottom:100px;transform:translateX(-50%);display:flex;gap:8px;align-items:center;background:#ffffffeb;border:3px solid #fff;padding:8px 14px;border-radius:999px;box-shadow:0 8px 24px #0c234721;white-space:nowrap}.buddy-nameplate h2{font-size:17px;margin:0}.buddy-nameplate b,.buddy-nameplate span{font-size:10px}.side-actions{position:absolute;z-index:8;right:18px;top:90px;display:grid;gap:10px}.side-actions button{width:54px;height:54px;border-radius:18px;border:3px solid #fff;background:#ffffffdf;font-size:24px;box-shadow:0 8px 18px #0c234719;cursor:pointer;transition:.15s}.side-actions button:hover{transform:scale(1.08)}.room-nav{position:absolute;z-index:10;left:14px;right:14px;bottom:14px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:#ffffffea;border:3px solid #fff;padding:8px;border-radius:24px;box-shadow:0 10px 30px #0c234724}.room-nav button{border:0;background:transparent;border-radius:18px;padding:8px 5px;color:#55657a;font-weight:900}.room-nav button span{display:block;font-size:23px;margin-bottom:3px}.room-nav button b{font-size:11px}.room-nav button.active{background:color-mix(in srgb,var(--room-accent) 26%,white);color:#0c2347}.action-tray{position:absolute;z-index:12;left:50%;bottom:86px;transform:translate(-50%,20px);display:grid;grid-template-columns:repeat(4,1fr);gap:7px;width:min(92%,520px);padding:10px;background:#ffffffed;border:3px solid #fff;border-radius:22px;box-shadow:0 14px 34px #0c23472b;opacity:0;pointer-events:none;transition:.2s}.action-tray.open{opacity:1;pointer-events:auto;transform:translate(-50%,0)}.action-tray button{border:0;border-radius:14px;background:#f3f7fb;padding:9px 5px;font-size:18px}.action-tray button span{display:block;font-size:9px;font-weight:900}.pet-game-shell .chat-panel{height:690px;border-radius:30px;box-shadow:0 22px 60px rgba(12,35,71,.12);border:1px solid rgba(12,35,71,.08)}.ai-connect-row{padding:10px 14px;display:grid;gap:5px;border-bottom:1px solid #e4edf6}.ai-connect-row small{color:#728096}.bubble.system{align-self:center;background:#fff5d9;color:#725710;border:1px solid #ecd48e;max-width:90%;font-size:12px}.language-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.language-card em{display:block;margin-top:5px;font-style:normal;font-size:10px;color:#718198}.language-card.active{border-color:#0d9da3;box-shadow:0 0 0 3px #0d9da320}.language-switch{display:grid!important;grid-template-columns:repeat(6,minmax(118px,1fr));gap:8px;overflow-x:auto;padding:3px 1px 14px}.language-switch .language-card{min-width:118px}.lesson-card{width:100%;display:grid;grid-template-columns:58px 1fr auto;gap:14px;align-items:center;text-align:left;border:1px solid #dfe8f2;background:#fff;border-radius:20px;padding:14px 16px;margin:10px 0;box-shadow:0 8px 24px rgba(12,35,71,.05)}.lesson-card span:nth-child(2){display:grid;gap:3px}.lesson-card small{font-size:9px;color:#0d9da3;font-weight:900}.lesson-card b{font-size:15px;color:#0c2347}.lesson-card em{font-size:11px;color:#78869a;font-style:normal}.lesson-card strong{font-size:11px;color:#0c2347}.lesson-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#eaf8f7;font-size:22px}.lesson-card.done{background:#f2fbf7;border-color:#bce8d2}
@media(max-width:980px){.pet-game-shell{grid-template-columns:1fr}.pet-stage{min-height:650px}.pet-game-shell .chat-panel{height:590px}.language-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.pet-stage{min-height:590px;border-radius:22px}.room-window{width:100px;height:120px;left:5%;top:20%;border-width:8px}.room-poster{right:5%;top:20%;font-size:10px;padding:10px}.room-shelf{display:none}.buddy-character{width:240px;height:360px;bottom:120px}.buddy-image{height:335px;max-width:225px}.buddy-nameplate{bottom:94px;max-width:75%;overflow:hidden}.side-actions{right:8px;top:75px}.side-actions button{width:44px;height:44px;font-size:19px}.pet-hud{left:9px;right:9px;top:9px}.hud-pill{padding:7px 9px}.room-nav{left:7px;right:7px;bottom:7px}.room-nav button span{font-size:19px}.action-tray{bottom:75px}.language-grid{grid-template-columns:1fr 1fr}.language-switch{grid-template-columns:repeat(6,112px)}.lesson-card{grid-template-columns:48px 1fr}.lesson-card strong{grid-column:2}.pet-game-shell .chat-panel{height:610px}}

/* V10 mascot integration: soften source-scene edges so characters feel placed in the room rather than pasted on a card. */
.buddy-image{border-radius:28% 28% 18% 18%;-webkit-mask-image:radial-gradient(ellipse 74% 84% at 50% 48%,#000 63%,rgba(0,0,0,.96) 72%,rgba(0,0,0,.38) 86%,transparent 100%);mask-image:radial-gradient(ellipse 74% 84% at 50% 48%,#000 63%,rgba(0,0,0,.96) 72%,rgba(0,0,0,.38) 86%,transparent 100%);filter:drop-shadow(0 18px 16px rgba(12,35,71,.20));}
.mascot-pick img{object-fit:cover;object-position:center 38%;}
.teacher-card>img{object-fit:cover;object-position:center 20%;}

/* V12 polish */
.teacher-card>img{height:360px;object-fit:contain!important;object-position:center!important;background:linear-gradient(180deg,#f8fbff,#eef5fb);padding:18px 28px 0}
.placement-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.placement-row button{padding:9px 12px}
.pet-hud{flex-wrap:wrap}.room-nav{grid-template-columns:repeat(6,1fr)!important}.room-nav button b{font-size:10px}
.buddy-accessory{position:absolute;z-index:7;left:50%;top:34px;transform:translateX(-50%);font-size:54px;filter:drop-shadow(0 4px 4px #0002);pointer-events:none}
.life-panel,.wardrobe-panel{position:absolute;z-index:14;left:24px;right:24px;bottom:86px;background:#fffffff2;border:3px solid #fff;border-radius:22px;padding:12px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;box-shadow:0 14px 35px #0c23472b;opacity:0;pointer-events:none;transform:translateY(16px);transition:.2s}.life-panel.open,.wardrobe-panel.open{opacity:1;pointer-events:auto;transform:none}.life-panel button,.wardrobe-panel button{border:1px solid #dce6f3;background:#f8fbff;border-radius:16px;padding:10px;display:grid;gap:2px;text-align:center}.life-panel b,.wardrobe-panel b{font-size:11px;color:#0c2347}.life-panel span,.wardrobe-panel span{font-size:22px}.life-panel button>span:last-child,.wardrobe-panel small{font-size:9px;color:#728096}
.bubble.coach{align-self:flex-start;background:#fff7d8;border:1px solid #f1d77c;color:#6a5212}
.buddy-image{mask-image:linear-gradient(to bottom,#000 0 90%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0 90%,transparent 100%)}
@media(max-width:700px){.room-nav{grid-template-columns:repeat(6,1fr)!important}.room-nav button b{font-size:8px}.life-panel,.wardrobe-panel{grid-template-columns:repeat(2,1fr);left:10px;right:10px}.teacher-card>img{height:320px;padding:10px 14px 0}}

.talkbtn{touch-action:none;user-select:none;transition:.16s}.talkbtn.recording{background:#b91c1c;transform:scale(.985);box-shadow:0 0 0 5px rgba(220,38,38,.14)}.talkbtn.recording b{letter-spacing:.01em}.buddy-image{filter:drop-shadow(0 12px 10px rgba(15,35,71,.16))}

/* ================= V13 APPROVED DARK DASHBOARD ================= */
:root{--v13-bg:#040b14;--v13-bg2:#07111f;--v13-card:#091827;--v13-card2:#0c1d30;--v13-line:#17354c;--v13-teal:#11d1cb;--v13-teal2:#069b9d;--v13-text:#f6f8fb;--v13-muted:#9fb0c1;--v13-gold:#f6b93b;--v13-red:#ef5757}
body{background:radial-gradient(circle at 55% -15%,#103148 0,#06101d 34%,#030913 76%);color:var(--v13-text)}
.topbar{background:rgba(3,10,18,.95);border-bottom:1px solid var(--v13-line);box-shadow:0 10px 30px rgba(0,0,0,.18)}
.topbar .brand,.topbar .brand span{color:#fff}.topstats span{background:#081827;border:1px solid #18374f;color:#fff}
.view{max-width:1480px}.eyebrow{color:var(--v13-teal)}h1,h2,h3{color:#fff}p{color:var(--v13-muted)}
.hero-copy,.hero-card,.pet-banner,.coursehead,.progress-card,.profile-card,.teacher-card,.price-note,.language-card,.practice-grid button,.lesson-card,.settings button{background:linear-gradient(180deg,#0a1a2a,#06111e);border-color:var(--v13-line);color:#fff;box-shadow:0 18px 45px rgba(0,0,0,.2)}
.hero-copy{background:radial-gradient(circle at 85% 20%,rgba(17,209,203,.10),transparent 26%),linear-gradient(145deg,#0b1d30,#06111e)}
.language-card b,.lesson-card b,.practice-grid button b,.stat-grid b,.teacher-info h2,.word .big{color:#fff}.language-card small,.language-card em,.lesson-card em,.lesson-card strong{color:var(--v13-muted)}
.primary,.send,.talkbtn{background:linear-gradient(135deg,#08a4a4,#11d1cb);color:#001718}.primary:hover{background:linear-gradient(135deg,#0eb8b5,#23e0d9)}.secondary{background:#0b1d30;color:#eaffff;border:1px solid #20445c}.icon-btn{background:#091827;border-color:#1d4058;color:#fff}
.mascot-pick{gap:12px;padding:3px 1px 12px}.mascot-pick button{min-width:145px;background:#081726;border:1px solid #18374f;color:#fff;border-radius:16px;padding:9px;transition:.18s}.mascot-pick button:hover{transform:translateY(-2px)}.mascot-pick button.active{border-color:var(--v13-teal);box-shadow:0 0 0 1px rgba(17,209,203,.2),0 0 22px rgba(17,209,203,.15);background:#0a2030}.mascot-pick button img{width:74px;height:74px;border-radius:12px;object-fit:cover;object-position:center 35%;background:#fff}.mascot-pick b{color:#fff}.mascot-pick small{color:#c4d1dc}
.pet-game-shell{grid-template-columns:minmax(300px,.78fr) minmax(390px,1.18fr) minmax(245px,.62fr);gap:16px;align-items:stretch}.pet-stage,.pet-game-shell .chat-panel,.mascot-profile-panel{height:690px;min-height:690px;border-radius:26px;background:linear-gradient(180deg,#091929,#050e19);border:1px solid #18374f;box-shadow:0 22px 60px rgba(0,0,0,.28)}
.pet-stage{overflow:hidden}.room-backdrop{background:radial-gradient(circle at 50% 28%,rgba(20,196,203,.12),transparent 26%),linear-gradient(180deg,#0c2435 0 55%,#081522 55% 100%)}.room-floor{background:repeating-linear-gradient(90deg,#0b1a27 0 74px,#0e2231 75px 78px)}.room-floor:after{background:radial-gradient(ellipse,rgba(17,209,203,.28) 0 56%,rgba(17,209,203,.1) 57% 70%,transparent 71%)}.room-window{border-color:#dceff4;background:linear-gradient(#2b86a7,#ccecff);box-shadow:0 10px 25px rgba(0,0,0,.22)}.room-poster,.room-shelf{background:rgba(8,24,39,.88);border-color:#1b4058;color:#eaffff}.room-poster b{color:var(--v13-teal)}
.buddy-character{width:88%;height:500px;bottom:100px;overflow:visible}.buddy-image{height:470px;max-height:470px;width:100%;max-width:100%;object-fit:contain;object-position:center bottom;border-radius:22px;border:0;box-shadow:none;filter:drop-shadow(0 18px 18px rgba(0,0,0,.28));mask-image:none!important;-webkit-mask-image:none!important;background:transparent}.buddy-shadow{background:rgba(0,0,0,.36)}
.buddy-nameplate{bottom:82px;background:rgba(5,15,25,.94);border-color:#1a4057;color:#fff}.buddy-nameplate h2{color:#fff}.buddy-nameplate span{color:var(--v13-teal)}
.pet-hud{z-index:15}.hud-pill{background:rgba(5,18,30,.92);border-color:#1b4058;color:#fff}.ai-state{border:1px solid transparent}.ai-state.ready{background:#0c2540;color:#8dc6ef}.ai-state.online{background:rgba(17,209,203,.12);color:#63fff7;border-color:#11d1cb}.ai-state.connecting{background:#352b12;color:#ffd96b}.ai-state.error{background:#39151b;color:#ff9aa7}
.side-actions button,.action-tray,.life-panel,.wardrobe-panel{background:rgba(6,18,30,.94);border-color:#1a4057;color:#fff}.side-actions button,.action-tray button,.life-panel button,.wardrobe-panel button{background:#0b1d2e;border-color:#1b4058;color:#fff}.life-panel b,.wardrobe-panel b{color:#fff}
.room-nav{background:rgba(4,13,23,.96);border-color:#1a4057}.room-nav button{color:#8fa5b8}.room-nav button.active{background:rgba(17,209,203,.13);color:#5efff7}
.pet-game-shell .chat-panel{padding:16px;background:linear-gradient(180deg,#071523,#040c16)}.chathead{border-color:#17354c}.chathead b{color:#fff}.ai-connect-row{border-color:#17354c}.ai-connect-row small{color:#869bad}.log{background:#030a13;border-radius:18px;padding:14px}.bubble{border:1px solid transparent}.bubble.user{background:linear-gradient(135deg,#075c65,#087b7c);color:#fff}.bubble.bot{background:#0c1d30;color:#fff;border-color:#18364d}.bubble.coach{background:#352b14;border-color:#6a5621;color:#ffe7a1}.bubble.system{background:#151f2b;color:#b7c6d3;border-color:#26394b}.prompts button{background:#0a1928;border-color:#18374f;color:#e7f5f6}.chat-input input{background:#06111d;color:#fff;border-color:#22445a}.chat-input input::placeholder{color:#75899b}
.talkbtn{font-weight:900}.talkbtn.recording{background:#b91c1c;color:#fff}
.mascot-profile-panel{padding:18px;display:flex;flex-direction:column;gap:15px;overflow:auto}.profile-top{display:grid;grid-template-columns:58px 1fr auto;gap:12px;align-items:center;padding-bottom:14px;border-bottom:1px solid #17354c}.profile-top img{width:58px;height:58px;border-radius:14px;object-fit:cover;background:#fff}.profile-top h2{margin:0 0 3px}.profile-top p{margin:0}.profile-heart{font-size:27px;color:#ff505d}.profile-detail{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:start}.profile-detail>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(17,209,203,.12);color:var(--v13-teal)}.profile-detail b{color:#fff}.profile-detail p{font-size:12px;line-height:1.45;margin:3px 0}.whats-new{margin-top:auto;padding:15px;border:1px solid #18435a;border-radius:18px;background:linear-gradient(180deg,#071827,#06111d)}.whats-new h3{margin:4px 0 10px}.whats-new p{margin:7px 0;color:#58e9e4;font-size:12px}
.teacher-card>img{background:#071522!important}.teacher-info{color:#fff}.teacher-info video{border:1px solid #18374f}.price-note{color:#fff}.stat-grid>div{background:#091827;border-color:#18374f;color:#fff}.bar{background:#132a3d}.bar i{background:var(--v13-teal)}.badges div{background:#091827;border-color:#18374f;color:#fff}.profile-card{color:#fff}.settings button{color:#fff}.settings button b{color:#9edfdc}dialog{background:#081523;color:#fff;border:1px solid #18374f}input,select,textarea{background:#06111d!important;color:#fff!important;border-color:#23465d!important}.word{background:#0a1c2d}.answer-grid button{background:#0a1928;border-color:#18374f;color:#fff}.trace-stage{background:#07111d;border-color:#24465d}.trace-guide{color:#203448}
#drawer{background:#040c16;color:#fff;border-right:1px solid #17354c;box-shadow:18px 0 45px rgba(0,0,0,.2)}#drawer>button:not(.drawer-close){color:#cad5df;border-radius:12px}#drawer>button:not(.drawer-close):hover{background:#0b1c2d;color:#fff}.bottom-nav{background:#040c16;border-top-color:#17354c}.bottom-nav button{color:#8fa4b5}.bottom-nav button.active{color:#53f0ea;background:#0a1c2d}
@media(min-width:1180px){body{padding-left:220px;padding-bottom:0}#drawer{display:block;transform:none;width:220px;padding-top:28px}#drawer .drawer-close,#scrim,#menuBtn{display:none!important}.topbar{left:220px}.bottom-nav{display:none}.view{padding-top:28px}.brand img{width:38px;height:38px}.brand span{display:inline!important}}
@media(max-width:1179px){.pet-game-shell{grid-template-columns:1fr 1fr}.mascot-profile-panel{grid-column:1/-1;height:auto;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.profile-top,.whats-new{grid-column:1/-1}}
@media(max-width:820px){.pet-game-shell{grid-template-columns:1fr}.pet-stage,.pet-game-shell .chat-panel{height:620px;min-height:620px}.mascot-profile-panel{grid-template-columns:1fr}.profile-top,.whats-new{grid-column:auto}.buddy-character{height:440px}.buddy-image{height:410px}.language-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.pet-stage{height:560px;min-height:560px}.pet-game-shell .chat-panel{height:600px;min-height:600px}.buddy-character{height:365px;bottom:112px}.buddy-image{height:345px}.mascot-pick button{min-width:125px}.mascot-profile-panel{padding:14px}.language-grid{grid-template-columns:1fr}}

/* V13.1 90-day mastery course */
.long-unit .unit-bar{display:block;height:6px;border-radius:999px;background:#10263a;margin-top:9px;overflow:hidden}
.long-unit .unit-bar u{display:block;height:100%;background:#0fd0ca;text-decoration:none}
.day-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}
.study-day{border:1px solid #25445c;background:#0a1a2b;color:#fff;border-radius:18px;padding:20px;text-align:left;display:grid;gap:7px}
.study-day b{font-size:18px}.study-day span{color:#4bf0e9;font-weight:900}.study-day small{color:#9db0c2}
.study-summary,.study-plan{border:1px solid #214157;background:#071624;border-radius:18px;padding:16px;margin:14px 0;color:#d8e7f2}
.study-summary{display:grid;gap:5px}.study-summary span{font-size:12px;color:#98acbd}
.study-plan ol{padding-left:22px;line-height:1.75}.study-plan p{color:#c2d2df}
.session-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}
.study-session{border:1px solid #24435b;background:#081827;color:#fff;border-radius:17px;padding:15px;text-align:left;display:grid;grid-template-columns:38px 1fr;gap:3px 10px;align-items:center}
.study-session>span{font-size:25px;grid-row:1/3}.study-session b{font-size:14px}.study-session small{font-size:10px;color:#91a7b8}
.study-session.done{border-color:#0fd0ca;background:#092a2e}.study-session.done>span{color:#4dfff7}
.anchor-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}
.anchor-card{background:#0a1a2a;border:1px solid #234259;border-radius:18px;padding:18px;text-align:center}
.anchor-card .big{font-size:24px;font-weight:900;color:#fff;line-height:1.45}.anchor-card p{color:#a9bdcc}
.source-material{margin:16px 0;border:1px solid #654f1d;background:#211b0d;border-radius:16px;padding:12px;color:#f4dd8b}
.source-material summary{cursor:pointer;font-weight:900}.source-material pre{white-space:pre-wrap;max-height:330px;overflow:auto;color:#f2ead2;font-family:inherit;font-size:12px;line-height:1.55}
.finish-study{margin:12px 0}
@media(max-width:680px){.day-grid{grid-template-columns:1fr}.session-grid,.anchor-grid{grid-template-columns:1fr}}

/* V13.2 language-card fix + certificate system */
.language-switch button.language-card{
 background:linear-gradient(180deg,#0a1a2a,#06111e)!important;
 color:#fff!important;border:1px solid #18374f!important;
 border-radius:22px!important;box-shadow:0 10px 28px rgba(0,0,0,.16)!important;
}
.language-switch button.language-card b{color:#fff!important}
.language-switch button.language-card small,.language-switch button.language-card em{color:#9eb1c2!important}
.language-switch button.language-card.active{background:linear-gradient(180deg,#0c2b39,#08202d)!important;border-color:#11d1cb!important;box-shadow:0 0 0 1px rgba(17,209,203,.25),0 0 26px rgba(17,209,203,.13)!important}
.certificate-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.certificate-trophy{font-size:48px}
.certificate-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px}
.certificate-card{display:grid;grid-template-columns:46px 1fr auto;gap:12px;align-items:center;padding:15px;border-radius:18px;border:1px solid #1e3d54;background:#081725}
.certificate-card-icon{font-size:29px}.certificate-card b,.certificate-card span,.certificate-card small{display:block}.certificate-card b{color:#fff}.certificate-card span{font-size:11px;color:#91a8bb;margin-top:3px}.certificate-card small{font-size:9px;color:#36ded7;margin-top:4px}.certificate-card.locked{opacity:.62}
.digital-certificate{position:relative;overflow:hidden;background:#fbfaf4;color:#142a48;border:12px solid #092646;outline:2px solid #c6a24c;padding:34px 42px;border-radius:4px;text-align:center;box-shadow:0 24px 70px #0005;min-height:570px}
.cert-corner{position:absolute;width:155px;height:155px;background:linear-gradient(135deg,#092646 0 45%,#caa44f 46% 50%,transparent 51%)}.cert-corner-a{left:-20px;top:-20px}.cert-corner-b{right:-20px;bottom:-20px;transform:rotate(180deg)}
.cert-brand{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:900;color:#0c3154}.cert-brand img{height:45px;width:45px;object-fit:contain}.cert-title{font-family:Georgia,serif;font-size:48px;letter-spacing:.13em;font-weight:700;margin-top:20px}.cert-subtitle{font-family:Georgia,serif;font-size:20px;letter-spacing:.22em;color:#a87d2c;font-weight:700}.cert-rule{height:1px;background:#c7a24e;width:70%;margin:18px auto}.cert-small{font-size:10px;letter-spacing:.23em;font-weight:800}.cert-name{font:italic 46px Georgia,serif;color:#0b3158;margin:14px}.cert-course{font-size:22px;font-weight:1000;letter-spacing:.06em;color:#0a858c;margin:12px}.cert-copy{max-width:680px;margin:12px auto!important;color:#32465b!important;font-size:13px}.cert-stats{display:flex;justify-content:center;margin:24px auto;border-top:1px solid #d8c89a;border-bottom:1px solid #d8c89a;width:80%}.cert-stats div{padding:12px 30px;border-right:1px solid #d8c89a}.cert-stats div:last-child{border:0}.cert-stats b,.cert-stats span{display:block}.cert-stats b{font-size:24px}.cert-stats span{font-size:9px;letter-spacing:.08em}.cert-bottom{display:flex;align-items:center;justify-content:space-between;text-align:left;margin-top:20px}.cert-bottom small,.cert-id small{font-size:8px;letter-spacing:.12em}.cert-bottom b{display:block;margin-top:4px}.cert-id{text-align:right}.cert-seal{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:#0a2a4b;color:#e0bc61;border:5px double #d2a94e;font-weight:1000;line-height:1}.cert-seal small{font-size:6px}.cert-signature{margin-top:8px;font:italic 23px Georgia,serif}.cert-signature span,.cert-signature small{display:block}.cert-signature small{font:8px Arial,sans-serif;letter-spacing:.13em}
.certificate-actions{display:flex;gap:10px;margin-top:15px}.certificate-email-status{text-align:center;font-size:12px}.certificate-unlocked{text-align:center;background:#0d332b;color:#7dffe2;border:1px solid #23a986;border-radius:14px;padding:12px;margin-bottom:14px;font-weight:900}
.certificate-print-page{background:#fff!important;padding:20px!important}.certificate-print-page .digital-certificate{width:1050px;margin:auto;box-shadow:none}
@media print{body.certificate-print-page{padding:0!important}.certificate-print-page .digital-certificate{width:100%;min-height:720px;border-width:9px;page-break-inside:avoid}}
@media(max-width:700px){.certificate-grid{grid-template-columns:1fr}.digital-certificate{padding:26px 20px}.cert-title{font-size:34px}.cert-name{font-size:34px}.cert-stats{width:100%}.cert-stats div{padding:10px}.certificate-actions{flex-direction:column}}

/* V13.3 requested additions — existing mascot art and logo file are unchanged */
.sidebar img[src*="logo"],.brand img[src*="logo"]{border-radius:50%!important;clip-path:circle(48%);box-shadow:0 0 0 2px #14c9c3,0 8px 24px #0006!important;object-fit:cover!important}
.language-switch{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important;gap:14px!important;overflow:visible!important}.language-switch>*{min-width:0!important;overflow:hidden!important}.language-switch b,.language-switch strong{position:static!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important}
.header-language-switcher{margin-left:auto;position:relative;z-index:60}.flag-switch-button{background:#081a2b;border:1px solid #1e4058;color:#fff;border-radius:14px;padding:8px 12px;display:flex;align-items:center;gap:7px}.flag-switch-button span{font-size:22px}.flag-menu{display:none;position:absolute;right:0;top:48px;width:235px;padding:8px;background:#06121f;border:1px solid #24445b;border-radius:16px;box-shadow:0 20px 50px #0009}.flag-menu.open{display:grid}.flag-menu button{display:grid;grid-template-columns:35px 1fr;grid-template-areas:"f n" "f s";text-align:left;background:transparent;color:#fff;border:0;border-radius:10px;padding:8px}.flag-menu button:hover{background:#0c2938}.flag-menu button span{grid-area:f;font-size:23px}.flag-menu button b{grid-area:n}.flag-menu button small{grid-area:s;color:#8ea7b9}
.home-certificate-teaser{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:center;margin:22px 0;padding:18px;background:#081827;border:1px solid #24445b;border-radius:22px}.mini-cert{background:#fbf8ec;color:#102b4c;border:7px solid #0b2d51;outline:2px solid #c9a448;min-height:170px;padding:15px;text-align:center;display:grid;place-items:center}.mini-cert b{font:700 24px Georgia,serif;letter-spacing:.1em}.mini-cert em{font:700 10px Georgia,serif;color:#a27d30}.mini-cert strong{font:italic 20px Georgia,serif}.mini-cert i{background:#bd3048;color:#fff;font-style:normal;padding:4px 8px;border-radius:999px;font-size:8px}.home-certificate-teaser .bar{height:7px;background:#10283b;border-radius:99px;overflow:hidden}.home-certificate-teaser .bar i{display:block;height:100%;background:#14d0c9}.leader-list{display:grid;gap:8px}.leader-row{display:grid;grid-template-columns:35px 1fr auto;padding:11px 14px;border-radius:13px;background:#091a2a;border:1px solid #17364c}.leader-row.you{border-color:#12cec7;background:#0b2b31}.leader-row strong{color:#f4ca4d}.placement-meta{display:flex;justify-content:space-between;color:#51e5df}.skill-result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.skill-result-grid div{display:flex;justify-content:space-between;background:#0a1b2b;padding:12px;border-radius:12px}.writing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.writing-card{background:#091b2d;color:#fff;border:1px solid #21445e;border-radius:15px;padding:15px}.writing-card b{display:block;font-size:36px}#traceCanvas{width:100%;height:260px;background:#06111d;border:1px dashed #2c5973;border-radius:18px;margin-top:15px;touch-action:none}[dir="rtl"]{font-family:Arial,sans-serif}@media(max-width:760px){.home-certificate-teaser{grid-template-columns:1fr}.writing-grid{grid-template-columns:repeat(2,1fr)}}

/* V13.4 requested fixes */
.brand img,#drawer>img{border-radius:50%!important;clip-path:circle(48%);background:#fff!important;padding:2px!important;box-shadow:0 0 0 2px #15cac5,0 8px 24px #0006!important}
.language-grid,.language-switch{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important;gap:14px!important;overflow:visible!important}
.language-grid .language-card,.language-switch .language-card{width:100%!important;min-width:0!important;max-width:none!important;overflow:hidden!important;display:grid!important;grid-template-columns:54px minmax(0,1fr)!important;grid-template-areas:"flag name" "flag native" "progress progress"!important;gap:3px 12px!important;border-radius:22px!important;padding:17px 18px!important;white-space:normal!important}
.language-card .flag{grid-area:flag!important;align-self:center!important}.language-card b{grid-area:name!important;position:static!important;min-width:0!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:17px!important}.language-card small{grid-area:native!important;position:static!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.language-card em{grid-area:progress!important;position:static!important;white-space:normal!important}
.pet-stage{overflow:hidden!important}.buddy-character{left:50%!important;bottom:118px!important;width:250px!important;height:410px!important;overflow:visible!important}.buddy-image{height:365px!important;max-width:245px!important;width:auto!important;object-fit:contain!important;object-position:center bottom!important;filter:drop-shadow(0 15px 16px rgba(0,0,0,.28))!important}.buddy-nameplate{bottom:88px!important}.side-actions{right:12px!important;top:112px!important}.room-nav{z-index:20!important}.pet-hud{z-index:21!important}
.mascot-pick img{width:54px!important;height:54px!important;object-fit:contain!important;background:transparent!important}
.story-card{background:#071827;border:1px solid #21445a;border-radius:18px;padding:18px;line-height:2;font-size:18px;margin:15px 0}.locked-unit{opacity:.55!important}.locked-unit:disabled{cursor:not-allowed!important}
.practice-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important}.practice-grid button{min-height:145px!important}
.flag-menu-title{padding:8px 10px;color:#6df5ef;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.rtl-ui .topbar,.rtl-ui .hero,.rtl-ui .coursehead,.rtl-ui .profile-card{direction:rtl}.rtl-ui .flag-menu{right:auto!important;left:0!important}.rtl-ui .language-card{text-align:right!important}
@media(max-width:700px){.language-grid,.language-switch{grid-template-columns:1fr!important}.buddy-character{width:220px!important;height:350px!important;bottom:112px!important}.buddy-image{height:315px!important;max-width:210px!important}.side-actions{top:105px!important}.buddy-nameplate{bottom:82px!important}}

/* V13.4.1 — ONLY mascot formation/display corrections */
.buddy-character{
  width:270px!important;
  height:430px!important;
  bottom:112px!important;
  display:flex!important;
  justify-content:center!important;
  align-items:flex-end!important;
  overflow:visible!important;
}
.buddy-image{
  width:auto!important;
  height:auto!important;
  max-width:255px!important;
  max-height:390px!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}
.buddy-character[data-mascot="jess"] .buddy-image,
.buddy-character[data-mascot="dariya"] .buddy-image{
  border-radius:24px!important;
  max-height:385px!important;
  box-shadow:0 16px 34px rgba(0,0,0,.26)!important;
}
.buddy-character[data-mascot="zayd"] .buddy-image{
  border-radius:0!important;
  box-shadow:none!important;
  filter:drop-shadow(0 16px 18px rgba(0,0,0,.28))!important;
}

/* V13.4.1 — professional Home certificate preview */
.certificate-preview-home{
  margin:22px 0 28px!important;
  display:block!important;
  width:100%!important;
}
.certificate-showcase{
  display:grid!important;
  grid-template-columns:minmax(300px,1fr) 430px!important;
  gap:24px!important;
  align-items:center!important;
  padding:22px!important;
  border:1px solid #1d4059!important;
  border-radius:24px!important;
  background:linear-gradient(135deg,#081827,#07131f)!important;
  box-shadow:0 18px 45px rgba(0,0,0,.18)!important;
}
.certificate-showcase-copy h2{
  margin:7px 0 9px!important;
  font-size:26px!important;
}
.certificate-showcase-copy p{
  max-width:650px!important;
  color:#a9bdcc!important;
  line-height:1.6!important;
}
.cert-preview-progress{
  display:grid!important;
  grid-template-columns:1fr auto auto!important;
  gap:10px!important;
  align-items:center!important;
  margin:15px 0!important;
}
.cert-preview-progress>div{
  height:8px!important;
  background:#10283b!important;
  border-radius:999px!important;
  overflow:hidden!important;
}
.cert-preview-progress>div i{
  display:block!important;
  height:100%!important;
  background:linear-gradient(90deg,#13cfc8,#38e8df)!important;
}
.cert-preview-progress b{color:#fff!important;font-size:12px!important}
.cert-preview-progress span{color:#8fa9bb!important;font-size:11px!important}
.cert-lock-state{
  display:inline-flex!important;
  padding:7px 11px!important;
  border-radius:999px!important;
  border:1px solid #caa54d!important;
  color:#f1d37b!important;
  background:#2a230f!important;
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:.06em!important;
}
.professional-cert-preview{
  position:relative!important;
  background:linear-gradient(145deg,#08284b,#c99c3c,#08284b)!important;
  padding:7px!important;
  border-radius:16px!important;
  box-shadow:0 14px 38px rgba(0,0,0,.34)!important;
}
.cert-frame-inner{
  position:relative!important;
  min-height:245px!important;
  overflow:hidden!important;
  border-radius:11px!important;
  background:#fffdf7!important;
  color:#102b4e!important;
  padding:16px 20px!important;
  text-align:center!important;
  border:2px solid #e8d3a0!important;
}
.cert-preview-brand{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:9px!important;
}
.cert-preview-brand img{
  width:40px!important;
  height:40px!important;
  object-fit:contain!important;
  border-radius:50%!important;
}
.cert-preview-brand div{
  display:grid!important;
  text-align:left!important;
}
.cert-preview-brand b{
  font-size:13px!important;
  color:#0b3156!important;
}
.cert-preview-brand small{
  font-size:7px!important;
  color:#0aa6a3!important;
  letter-spacing:.08em!important;
}
.cert-preview-rule{
  width:72%!important;
  height:1px!important;
  margin:10px auto 8px!important;
  background:linear-gradient(90deg,transparent,#c79b42,transparent)!important;
}
.cert-preview-kicker{
  display:block!important;
  font-family:Georgia,serif!important;
  font-size:25px!important;
  letter-spacing:.14em!important;
  font-weight:700!important;
}
.cert-frame-inner>strong{
  display:block!important;
  font-family:Georgia,serif!important;
  font-size:11px!important;
  color:#a77c2f!important;
  letter-spacing:.18em!important;
  margin-bottom:9px!important;
}
.cert-preview-certified{
  display:block!important;
  font-size:6px!important;
  letter-spacing:.18em!important;
  color:#66768a!important;
}
.cert-preview-name{
  font:italic 27px Georgia,serif!important;
  color:#0b3158!important;
  margin:5px 0 6px!important;
  border-bottom:1px solid #d7c18b!important;
  display:inline-block!important;
  min-width:190px!important;
  padding:0 15px 3px!important;
}
.cert-preview-course{
  margin:7px 0 10px!important;
  font-size:10px!important;
  font-weight:900!important;
  color:#087e88!important;
  letter-spacing:.05em!important;
}
.cert-preview-meta{
  display:grid!important;
  grid-template-columns:1fr 48px 1fr!important;
  align-items:center!important;
  width:78%!important;
  margin:0 auto!important;
  border-top:1px solid #dfd1aa!important;
  border-bottom:1px solid #dfd1aa!important;
  padding:7px 0!important;
}
.cert-preview-meta span:not(.cert-preview-seal){display:grid!important}
.cert-preview-meta b{font-size:14px!important}
.cert-preview-meta small{font-size:6px!important;color:#69788b!important}
.cert-preview-seal{
  width:40px!important;
  height:40px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
  background:#0a3157!important;
  color:#e8c463!important;
  border:3px double #d4ab4e!important;
  font-weight:900!important;
}
.cert-preview-footer{
  display:flex!important;
  justify-content:space-between!important;
  margin-top:8px!important;
  font-size:6px!important;
  color:#68798d!important;
}
.certificate-watermark{
  position:absolute!important;
  inset:auto 0 20px 0!important;
  margin:auto!important;
  width:max-content!important;
  transform:rotate(-7deg)!important;
  color:#b72e47!important;
  border:2px solid #b72e47!important;
  border-radius:5px!important;
  padding:4px 9px!important;
  font-size:11px!important;
  font-weight:1000!important;
  letter-spacing:.12em!important;
  opacity:.88!important;
  background:#fff9!important;
}
@media(max-width:900px){
  .certificate-showcase{grid-template-columns:1fr!important}
  .professional-cert-preview{max-width:500px!important;width:100%!important;margin:auto!important}
}

/* V13.4.3 targeted mascot sizing — Dariya and Zayd only */
.buddy-character[data-mascot="dariya"]{
  width:330px!important;
  height:475px!important;
  bottom:94px!important;
}
.buddy-character[data-mascot="dariya"] .buddy-image{
  max-width:310px!important;
  max-height:445px!important;
}
.buddy-character[data-mascot="zayd"]{
  width:330px!important;
  height:475px!important;
  bottom:94px!important;
}
.buddy-character[data-mascot="zayd"] .buddy-image{
  max-width:310px!important;
  max-height:445px!important;
}

/* V13.4.3 premium certificate — visual upgrade only */
.professional-cert-preview{
  background:linear-gradient(135deg,#071f3c 0%,#d3aa4f 22%,#f4df9b 34%,#0b3158 50%,#e2bd61 72%,#071f3c 100%)!important;
  padding:9px!important;
  border-radius:17px!important;
  box-shadow:0 18px 45px rgba(0,0,0,.4),0 0 0 1px rgba(239,201,104,.28)!important;
}
.cert-frame-inner{
  min-height:285px!important;
  padding:18px 24px 15px!important;
  background:
    radial-gradient(circle at 50% 45%,rgba(228,194,112,.11),transparent 34%),
    linear-gradient(135deg,#fffdf8,#fffaf0 52%,#fffdf8)!important;
  border:1px solid #d7b65e!important;
  outline:3px double #b88c32!important;
  outline-offset:-7px!important;
}
.cert-frame-inner:before,.cert-frame-inner:after{
  content:"✦"!important;
  position:absolute!important;
  top:13px!important;
  color:#b58a32!important;
  font-size:17px!important;
}
.cert-frame-inner:before{left:16px!important}
.cert-frame-inner:after{right:16px!important}
.cert-preview-brand img{
  width:48px!important;height:48px!important;
  padding:3px!important;
  background:white!important;
  border:1px solid #d8bb70!important;
  box-shadow:0 3px 10px rgba(10,49,87,.14)!important;
}
.cert-preview-brand b{
  font-family:Georgia,serif!important;
  font-size:15px!important;
  letter-spacing:.025em!important;
}
.cert-preview-brand small{font-size:7px!important}
.cert-preview-rule{
  width:82%!important;height:2px!important;margin:11px auto 9px!important;
  background:linear-gradient(90deg,transparent,#b98b2d 18%,#e1c46e 50%,#b98b2d 82%,transparent)!important;
}
.cert-preview-kicker{
  font-size:29px!important;
  letter-spacing:.18em!important;
  color:#092f55!important;
  text-shadow:0 1px 0 #fff!important;
}
.cert-frame-inner>strong{
  font-size:12px!important;
  letter-spacing:.24em!important;
  color:#a87922!important;
}
.cert-preview-certified{font-size:6.5px!important}
.cert-preview-name{
  font-size:30px!important;
  min-width:225px!important;
  color:#092f55!important;
  border-bottom:1px solid #b88a2f!important;
  margin:6px 0 7px!important;
}
.cert-preview-course{
  font-family:Georgia,serif!important;
  font-size:11px!important;
  color:#087d84!important;
  letter-spacing:.075em!important;
}
.cert-preview-meta{
  width:82%!important;
  border-color:#d1b261!important;
}
.cert-preview-seal{
  width:48px!important;height:48px!important;
  background:radial-gradient(circle,#0e456f 0 45%,#092d51 46% 100%)!important;
  border:4px double #d9b34e!important;
  box-shadow:0 0 0 2px #f4df9a,0 3px 8px rgba(0,0,0,.22)!important;
  font-family:Georgia,serif!important;
  font-size:15px!important;
}
.cert-preview-footer{
  margin-top:10px!important;
  padding:0 8px!important;
  font-size:6.5px!important;
  color:#566b7f!important;
}
.certificate-watermark{
  bottom:24px!important;
  border:2px solid #a9273d!important;
  color:#a9273d!important;
  font-size:10px!important;
  background:rgba(255,253,247,.91)!important;
}

/* V13.4.5 quality-only mascot fix: no raster upscaling */
.buddy-character[data-mascot="dariya"] .buddy-image,
.buddy-character[data-mascot="zayd"] .buddy-image{
  width:auto!important;
  height:auto!important;
  max-height:445px!important;
  max-width:310px!important;
  image-rendering:auto!important;
}

/* V13.4.6 — approved Dariya/Zayd assets only */
.buddy-character[data-mascot="dariya"],
.buddy-character[data-mascot="zayd"]{
  width:300px!important;
  height:455px!important;
  bottom:98px!important;
}
.buddy-character[data-mascot="dariya"] .buddy-image,
.buddy-character[data-mascot="zayd"] .buddy-image{
  width:auto!important;
  height:430px!important;
  max-width:285px!important;
  max-height:430px!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  image-rendering:auto!important;
  filter:drop-shadow(0 15px 18px rgba(0,0,0,.28))!important;
  border-radius:0!important;
  box-shadow:none!important;
}

/* V13.5 IELTS self-study + milestone certificates */
.ielts-hero{display:grid;grid-template-columns:1.45fr .75fr;gap:22px;padding:30px;border-radius:28px;background:radial-gradient(circle at 80% 20%,rgba(25,205,197,.16),transparent 30%),linear-gradient(135deg,#071827,#0b2940);border:1px solid #1c425a;box-shadow:0 18px 45px rgba(0,0,0,.2)}
.ielts-hero h1{font-size:42px;margin:7px 0}.ielts-hero p{max-width:760px;color:#abc0cf;line-height:1.65}.ielts-actions{display:flex;gap:10px;margin-top:18px}
.ielts-score-card{display:flex;flex-direction:column;justify-content:center;padding:22px;border-radius:22px;background:linear-gradient(145deg,#0d3550,#082034);border:1px solid #2a6078}.ielts-score-card small{color:#55ddd5;font-weight:900}.ielts-score-card b{font-size:27px;margin:8px 0}.ielts-score-card span{color:#c9d7e2}.ielts-score-card i{font-size:10px;color:#8299aa;margin-top:14px}
.ielts-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 28px}.ielts-stat-grid article{padding:17px;border-radius:18px;background:#0a2031;border:1px solid #173a50;display:grid}.ielts-stat-grid b{font-size:25px;color:#4be0d8}.ielts-stat-grid span{font-size:11px;color:#9fb4c3}
.ielts-mode-tabs{display:flex;gap:8px;margin:15px 0}.ielts-mode-tabs button{padding:10px 16px;border-radius:999px}.ielts-mode-tabs button.active{background:#17c9c2;color:#052029}
.ielts-level-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ielts-level-card{display:grid;text-align:left;gap:5px;padding:19px;border-radius:20px;background:#0a2031;border:1px solid #1b4157;color:#fff}.ielts-level-card:hover,.ielts-level-card.active{border-color:#20d7cf;transform:translateY(-2px)}.ielts-level-card>span{font-size:25px}.ielts-level-card small{color:#4be0d8;font-weight:900}.ielts-level-card b{font-size:18px}.ielts-level-card i,.ielts-level-card em{font-size:11px;color:#9fb4c3;font-style:normal}
.ielts-skill-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.ielts-skill-card{padding:17px;border-radius:18px;background:#0a2031;border:1px solid #173a50;display:grid;gap:7px}.ielts-skill-card>span{font-size:25px}.ielts-skill-card small{color:#98adbd;line-height:1.45}
.ielts-mock-banner{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:28px;padding:24px;border-radius:22px;background:linear-gradient(120deg,#102d47,#123b51);border:1px solid #24546d}.ielts-mock-banner p{color:#a9bdca}
.ielts-unit-list{display:grid;gap:9px;max-height:60vh;overflow:auto}.ielts-unit-list article{display:grid;gap:4px;padding:13px;border-radius:13px;background:#0c2638}.ielts-unit-list small,.ielts-unit-list span{font-size:10px;color:#9fb4c3}
.diagnostic-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.diagnostic-grid article{display:grid;padding:14px;border-radius:14px;background:#0c2638}.diagnostic-grid small{color:#55ddd5}.notice{margin-top:15px;padding:12px;border-radius:12px;background:#2c2814;color:#ecd17a;font-size:11px}
.mock-list{display:grid;gap:12px}.mock-list article{padding:16px;border-radius:15px;background:#0c2638}.mock-list article>b{display:block;font-size:18px;margin:5px 0}.mock-list p{color:#a6b8c5}
.milestone-section{margin:28px 0}.milestone-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.milestone-cert{position:relative;min-height:190px;padding:16px;text-align:center;border-radius:16px;background:linear-gradient(145deg,#fffdf7,#f7edd4);border:5px double #b68c35;color:#0b3156;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 10px 25px rgba(0,0,0,.14)}.milestone-cert.locked{filter:saturate(.45);opacity:.68}.milestone-cert img{width:38px;height:38px;object-fit:contain;border-radius:50%}.milestone-cert>small{font-size:7px;letter-spacing:.16em;color:#9a762e}.milestone-cert>b{font:700 34px Georgia,serif;margin:4px}.milestone-cert h3{font:700 16px Georgia,serif;margin:0 0 7px}.milestone-cert>span{font-size:10px;font-weight:900}.milestone-cert>i{font-size:7px;margin-top:7px;color:#6e7883}
@media(max-width:900px){.ielts-hero{grid-template-columns:1fr}.ielts-stat-grid,.milestone-grid{grid-template-columns:repeat(2,1fr)}.ielts-level-grid{grid-template-columns:repeat(2,1fr)}.ielts-skill-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.ielts-stat-grid,.milestone-grid,.ielts-level-grid,.ielts-skill-grid{grid-template-columns:1fr}}

/* V13.5.1 IELTS permanent left navigation */
.ielts-side-link{position:relative!important;border:1px solid rgba(37,222,211,.34)!important;background:linear-gradient(135deg,rgba(13,64,82,.92),rgba(7,35,51,.95))!important;color:#fff!important;box-shadow:0 8px 22px rgba(0,0,0,.18)!important}
.ielts-side-link:before{content:"";position:absolute;left:0;top:12%;height:76%;width:3px;border-radius:3px;background:#22ded5}.ielts-side-link b{display:block}.ielts-side-link small{display:block;color:#66e9e2;font-size:8px}
.ielts-left-rail{position:fixed;left:14px;top:120px;z-index:50;width:145px}.ielts-left-rail .ielts-side-link{width:100%;padding:12px;border-radius:14px}
.ielts-unit-open{width:100%;display:grid;text-align:left;gap:4px;padding:13px;border-radius:13px;background:#0c2638;border:1px solid #1c445b;color:#fff}.ielts-unit-open:hover{border-color:#23d9d0}.ielts-unit-open small,.ielts-unit-open span{font-size:10px;color:#9fb4c3}
.ielts-block-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.ielts-block-grid button{display:grid;text-align:left;gap:6px;padding:15px;border-radius:15px;background:#0c2638;border:1px solid #1d445a;color:#fff}.ielts-block-grid button:hover{border-color:#23d9d0}.ielts-block-grid small{color:#9fb4c3}.ielts-block-grid span{font-size:10px;color:#58ded7}
.audio-script-box,.ielts-reading-passage,.writing-task,.speaking-part,.criteria-box{padding:15px;border-radius:15px;background:#0b2334;border:1px solid #1b4358;margin:10px 0}.audio-script-box p{line-height:1.65;color:#bad0dc}.ielts-reading-passage p{line-height:1.75}.ielts-question-list{display:grid;gap:12px}.ielts-question-list label,.production-task,.grammar-drills label{display:grid;gap:6px;padding:12px;border-radius:12px;background:#091e2e}.ielts-question-list input,.production-task input,.writing-task textarea,.grammar-drills textarea{width:100%;box-sizing:border-box;background:#061723;border:1px solid #21485f;color:#fff;border-radius:10px;padding:10px}
.ielts-vocab-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.ielts-vocab-grid article{display:grid;gap:4px;padding:12px;border-radius:12px;background:#0a2233}.ielts-vocab-grid b{color:#53e0d8}.ielts-vocab-grid small{color:#93aaba}
.strategy-list{display:grid;gap:8px}.strategy-list article{display:grid;grid-template-columns:30px 1fr;gap:8px;padding:10px;border-radius:11px;background:#0a2233}.strategy-list b{color:#56e1da}.mock-sections{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.mock-sections button{display:grid;text-align:left;gap:5px;padding:18px;border-radius:16px;background:#0b2639;color:#fff;border:1px solid #1b455d}.mock-sections span{font-size:10px;color:#9fb4c3}
@media(max-width:650px){.ielts-block-grid,.ielts-vocab-grid,.mock-sections{grid-template-columns:1fr}}

/* V14 quality/depth upgrade */
.writing-stage-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}
.writing-stage-bar span{padding:9px;border:1px solid rgba(255,255,255,.14);border-radius:10px;text-align:center;opacity:.55;font-size:12px}
.writing-stage-bar span.active{opacity:1;font-weight:800;outline:2px solid rgba(24,213,207,.35)}
.game-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.game-mode-grid button{min-height:105px;padding:18px;text-align:left;border-radius:16px}
.game-mode-grid b,.game-mode-grid span{display:block}.game-mode-grid span{margin-top:7px;opacity:.75}
@media(max-width:700px){.writing-stage-bar,.game-mode-grid{grid-template-columns:1fr 1fr}}

/* V15 product systems */
.quest-list,.mission-grid{display:grid;gap:12px;margin:18px 0}.quest-list article,.mission-grid button{padding:16px;border-radius:16px;text-align:left}.quest-list article b,.quest-list article span,.mission-grid b,.mission-grid span{display:block}.quest-list .bar{height:8px;margin:10px 0}.mission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.score-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.score-cards article{padding:14px;text-align:center;border-radius:14px;background:rgba(255,255,255,.06)}.score-cards b{font-size:24px;display:block}.danger{border-color:#b44!important}.privacy-links{display:flex;gap:8px;flex-wrap:wrap}.language-card.selected{outline:3px solid rgba(24,213,207,.65)}
@media(max-width:700px){.mission-grid,.score-cards{grid-template-columns:1fr}}

/* V15.0.3 placement progression base */
.long-unit.placement-passed{opacity:.88}
.long-unit.placement-passed strong{font-weight:800}
.long-unit.placement-start{outline:2px solid rgba(24,213,207,.55);box-shadow:0 0 0 4px rgba(24,213,207,.08)}
.long-unit.placement-start strong{font-weight:900}

/* V15.1 feedback pass: isolated IELTS, clearer status text and placement readability */
.page{display:none;max-width:1180px;margin:auto;padding:34px 22px 60px}.page.active{display:block}
.bottom-nav button{width:16.666%;max-width:150px}
.tags span{background:#17364c!important;color:#f1fbff!important;border:1px solid #2c5f79;font-weight:800;letter-spacing:.01em}
.long-unit.placement-passed{opacity:1!important;border-color:#2a6570!important;background:linear-gradient(180deg,#0c2332,#081925)!important}
.long-unit.placement-passed .lesson-icon{background:#d9fbf8!important;color:#073b3a!important;font-weight:900}
.long-unit.placement-passed small{color:#5ff1e9!important}.long-unit.placement-passed strong{color:#a8fff9!important;font-weight:900!important}
.long-unit.placement-passed em{color:#c2d4df!important}
.milestone-cert.locked{filter:none!important;opacity:1!important;background:linear-gradient(145deg,#f5f1e5,#e9e0c8)!important;color:#17334d!important}
.milestone-cert.locked>small,.milestone-cert.locked>i{color:#665a43!important}.milestone-cert.locked>span{color:#293d50!important}
.placement-question{line-height:1.45;margin:18px 0 12px}.placement-reading{color:#d7e6ef!important;font-weight:700;background:#0d2637;padding:10px 12px;border-radius:10px}.placement-note{color:#a9becb!important;font-size:11px}.placement-audio{margin:4px 0 10px;min-width:170px}.placement-answers button{min-height:58px;line-height:1.35;font-weight:700}.placement-meta{gap:8px;flex-wrap:wrap}.placement-meta span{background:#0c2a3d;border:1px solid #235067;padding:6px 9px;border-radius:999px;color:#78f2eb!important;font-weight:800}
@media(max-width:620px){.bottom-nav span{font-size:9px}.bottom-nav button{font-size:17px}.page{padding:22px 12px 45px}}

/* V15.4 learning/readability repair */
.placement-note{color:#d8e8f2!important;font-size:13px!important;line-height:1.55}.placement-question{color:#fff!important;line-height:1.45}.placement-reading{background:#071b2b;border:1px solid #2e627d;color:#fff;padding:14px;border-radius:12px;font-size:16px}.placement-meta span{background:#0a2a3d;border:1px solid #2a667c;color:#7ff8ef;padding:6px 9px;border-radius:999px;font-weight:900}.long-unit.placement-passed small,.long-unit.placement-passed strong,.long-unit.placement-passed em{opacity:1!important}.writing-card.active{outline:3px solid #18d5cf;border-color:#18d5cf}.writing-card.mastered{border-color:#2ecc91;background:#0c2a28}.writing-card small{display:block;min-height:14px;margin-top:5px;color:#79ead0;font-weight:800}.writing-progress{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;background:#0a2032;border:1px solid #26516a}.teacher-card .tags span{font-size:12px!important;color:#fff!important;background:#17425d!important;border-color:#3c718d!important}.milestone-cert.locked>small,.milestone-cert.locked>i,.milestone-cert.locked>span{font-size:10px!important;font-weight:800}.muted{color:#a9becd!important}.study-summary span,.study-plan p,.study-plan li{color:#d2e0e9!important}

.writing-card.future{opacity:.42;filter:saturate(.6)}.writing-card.future:hover{transform:none}.native-khmer-answers button{font-size:17px;line-height:1.7;text-align:left}.finish-study:disabled{opacity:.42;cursor:not-allowed}.placement-production input{font-size:17px;padding:14px}.writing-grid{max-height:330px;overflow:auto;padding-right:4px}

/* V16.0.3 Khmer beginner foundations */
.khmer-foundation-banner{display:flex;gap:18px;justify-content:space-between;align-items:center;margin:0 0 18px;padding:20px;border:1px solid rgba(47,214,204,.45);background:linear-gradient(135deg,rgba(16,83,108,.45),rgba(16,38,64,.88));border-radius:20px;box-shadow:0 14px 34px rgba(0,0,0,.18)}
.khmer-foundation-banner h3{margin:5px 0 7px;font-size:1.2rem}.khmer-foundation-banner p{margin:0;max-width:760px;color:#e8f7fa;line-height:1.55}.khmer-foundation-actions{display:flex;gap:10px;flex-wrap:wrap;min-width:260px;justify-content:flex-end}.khmer-script-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:8px;margin:10px 0 20px}.khmer-script-grid span{display:flex;min-height:58px;align-items:center;justify-content:center;flex-direction:column;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(255,255,255,.06)}.khmer-script-grid b{font-size:1.65rem}.khmer-script-grid small{opacity:.72}.placement-reading{font-size:1.15rem!important;font-weight:800!important;color:#9ff7ef!important;background:rgba(47,214,204,.12);border:1px solid rgba(47,214,204,.3);padding:10px 14px;border-radius:12px;display:inline-block}.placement-audio{font-size:1.05rem}.placement-answers button{line-height:1.45;min-height:54px}
@media(max-width:760px){.khmer-foundation-banner{flex-direction:column;align-items:stretch}.khmer-foundation-actions{justify-content:stretch;min-width:0}.khmer-foundation-actions button{flex:1}}
/* V16.0.4 advanced Khmer conversation progression */
.advanced-placement textarea,.advanced-course-challenge+label textarea{min-height:150px}
.advanced-course-challenge{border:1px solid rgba(71,214,201,.35);background:rgba(10,47,67,.72);border-radius:18px;padding:18px;margin:14px 0}
.advanced-course-challenge ul,.advanced-placement ul{line-height:1.65}

/* V16.0.6 IELTS AI mock examiner */
.ielts-ai-result{margin-top:18px;padding:18px;border:1px solid var(--line,#dbe4ee);border-radius:18px;background:var(--card,#fff)}.ielts-score-grid{display:grid;gap:8px;margin:12px 0}.ielts-score-grid>div{display:flex;justify-content:space-between;gap:16px;padding:10px 12px;border-radius:12px;background:rgba(127,127,127,.08)}.ielts-ai-result ul{margin:8px 0 14px;padding-left:22px}


/* IELTS V16.0.7 professional-prep additions */
.ielts-official-resources{margin-top:28px;padding:20px;border:1px solid var(--line,#dfe7ea);border-radius:18px;background:var(--card,#fff)}
.ielts-resource-links{display:flex;flex-wrap:wrap;gap:10px}
.ielts-resource-links a{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:12px}
.mock-practice-part{margin:12px 0;padding:10px 12px;border:1px solid var(--line,#dfe7ea);border-radius:14px}
.mock-practice-part summary{cursor:pointer;font-weight:700}
.answer-grid button.selected{outline:3px solid currentColor;outline-offset:2px}

/* V16.0.9 relaxed digital library */


.library-notice{padding:14px 16px;border-radius:16px;background:rgba(24,183,166,.09);line-height:1.55;margin-bottom:18px}
.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.library-book{background:var(--card,#fff);border-radius:22px;overflow:hidden;box-shadow:0 10px 30px rgba(12,35,71,.08);display:grid;grid-template-columns:92px 1fr;min-height:190px}
.book-cover{background:linear-gradient(160deg,#0c2347,#155a72);color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:12px;gap:14px}
.book-cover span{font-size:36px}.book-cover small{font-size:10px;line-height:1.2;opacity:.85;text-transform:uppercase;font-weight:800}
.book-info{padding:18px 16px;display:flex;flex-direction:column;align-items:flex-start}.book-info h3{margin:0 0 5px;font-size:17px}.book-info p{margin:0 0 7px;opacity:.75}.book-info>small{opacity:.6;line-height:1.35;margin-bottom:14px}.library-read{margin-top:auto;text-decoration:none;font-size:13px}
.library-empty{grid-column:1/-1;padding:36px;border:2px dashed rgba(12,35,71,.16);border-radius:20px;text-align:center;display:grid;gap:8px}
@media(max-width:600px){.library-grid{grid-template-columns:1fr}.library-book{grid-template-columns:82px 1fr}}

/* V16.1.0 library visual upgrade — isolated to Library/Reader */
#library .title{margin-bottom:14px}
.library-hero{position:relative;overflow:hidden;display:flex;align-items:center;gap:22px;padding:22px 26px;margin:0 0 16px;border:1px solid rgba(39,208,194,.22);border-radius:22px;background:radial-gradient(circle at 15% 50%,rgba(29,197,183,.17),transparent 30%),linear-gradient(135deg,#071b2c,#0b2638);color:#fff;box-shadow:0 18px 50px rgba(0,0,0,.18)}
.library-hero h2{font-size:28px;margin:4px 0 5px}.library-hero p{margin:0;opacity:.8}.library-logo{width:126px;height:100px;flex:0 0 126px;position:relative;display:flex;align-items:center;justify-content:center;border-radius:18px;background:radial-gradient(circle,rgba(31,218,200,.2),transparent 65%);font-size:58px;text-shadow:0 0 24px rgba(53,239,219,.65)}
.library-logo i{font-style:normal;filter:drop-shadow(0 8px 10px rgba(0,0,0,.35))}.library-logo span{position:absolute;font-size:18px;color:#ffd36b}.library-logo span:first-child{top:13px;left:13px}.library-logo span:last-child{right:12px;bottom:15px}
.library-controls{display:flex;align-items:center;gap:10px;margin:0 0 14px}.library-controls>div{display:flex;gap:8px;flex:1}.library-controls button,.library-controls select,.library-controls input{border:1px solid rgba(124,164,193,.25);background:#0c2133;color:#eaf7ff;border-radius:12px;padding:10px 14px}.library-controls button.active{background:#14bdb5;color:#02171c;border-color:#14bdb5;font-weight:800}.library-controls input{min-width:210px}
#library .library-notice{background:rgba(16,55,68,.62);border:1px solid rgba(31,190,179,.14);color:#d8edf1}
#library .library-grid{grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:16px}
#library .premium-book{display:block;min-height:0;background:linear-gradient(180deg,#10283d,#0a1d2d);border:1px solid rgba(112,167,198,.2);color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.2);transition:.2s transform,.2s box-shadow}
#library .premium-book:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(0,0,0,.3)}
#library .book-art{height:190px;position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 35%,rgba(61,217,198,.24),transparent 28%),linear-gradient(145deg,#183c55,#071827);overflow:hidden}
#library .book-art>span{font-size:78px;position:relative;z-index:2;filter:drop-shadow(0 12px 12px rgba(0,0,0,.4))}
#library .book-art small{position:absolute;bottom:10px;left:10px;background:rgba(2,16,28,.76);border:1px solid rgba(255,255,255,.13);border-radius:20px;padding:5px 9px;color:#8ff5e8;font-weight:800;text-transform:uppercase}
#library .book-glow{position:absolute;width:120px;height:120px;border-radius:50%;background:rgba(255,207,96,.12);filter:blur(15px)}
#library .book-info{padding:15px 15px 16px;min-height:170px}#library .book-info h3{color:#fff;font-size:17px;line-height:1.25}#library .book-info p{color:#b8cad6}#library .book-info small{color:#829cab}
.book-progress{height:4px;width:100%;background:#17384d;border-radius:5px;margin:9px 0 7px;overflow:hidden}.book-progress i{display:block;height:100%;background:#16c3b8}.library-read{border:0;margin-top:13px}
dialog.reader-dialog{width:min(1500px,98vw);max-width:none;height:min(940px,96vh);padding:0;background:#07131f;border:1px solid #25445b;border-radius:20px;color:#fff;overflow:auto}dialog.reader-dialog #modalClose{display:none}
.reader-shell{min-height:100%;background:linear-gradient(#07131f,#0b1b28);padding-bottom:18px}.reader-top{position:sticky;top:0;z-index:4;height:70px;display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;padding:0 20px;background:rgba(5,17,27,.96);border-bottom:1px solid #20394b}.reader-top>div:nth-child(2){text-align:center}.reader-top small{display:block;color:#22c9bc;margin-top:3px}.reader-top button,.reader-nav button,.reader-footer button{background:#102434;border:1px solid #29465a;color:#edf8fb;border-radius:11px;padding:10px 14px}.reader-actions{display:flex;justify-content:flex-end;gap:7px}
.reader-book{display:grid;grid-template-columns:1fr 1fr;max-width:1050px;min-height:610px;margin:28px auto 18px;background:#f2e3c6;border:9px solid #60472f;border-radius:16px;box-shadow:0 20px 50px #000,inset 0 0 35px rgba(86,53,22,.3);color:#302417}
.reader-page{position:relative;padding:58px 62px 52px;font-size:var(--reader-font);line-height:1.72;background:linear-gradient(90deg,rgba(103,72,37,.09),transparent 7%,transparent 92%,rgba(103,72,37,.08)),#f6e9cf;border:1px solid rgba(98,67,33,.25);min-height:610px}.reader-page:first-child{box-shadow:inset -14px 0 18px rgba(80,53,25,.1)}.reader-page:last-child{box-shadow:inset 14px 0 18px rgba(80,53,25,.1)}
.reader-page:before{content:"";position:absolute;inset:18px;border:1px solid rgba(122,87,48,.35);pointer-events:none}.reader-page h2{text-align:center;font-size:1.35em;margin:10px 0 35px}.reader-page>small{display:block;text-align:center;text-transform:uppercase;letter-spacing:.08em;opacity:.68}.reader-page p{white-space:pre-wrap}.page-no{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);font-size:13px}
.reader-serif .reader-page{font-family:Georgia,"Times New Roman",serif}.reader-sans .reader-page{font-family:Arial,sans-serif}
.reader-nav,.reader-footer{max-width:1050px;margin:auto;display:flex;align-items:center;gap:10px}.reader-nav>div{margin:auto;text-align:center;display:grid}.reader-nav span{font-size:12px;color:#8aa2b2}.reader-range{display:block;max-width:1050px;width:calc(100% - 40px);margin:14px auto;accent-color:#16c3b8}.reader-footer{justify-content:space-between}.reader-night .reader-book{border-color:#1c2a31;background:#1c2528}.reader-night .reader-page{background:#172329;color:#dce9e7;border-color:#34464b}.reader-night .reader-page:before{border-color:#40565b}
@media(max-width:800px){.library-controls{align-items:stretch;flex-wrap:wrap}.library-controls>div{overflow:auto}.library-controls input{flex:1}.library-hero{align-items:flex-start}.library-logo{width:90px;flex-basis:90px}.reader-book{display:block;margin:12px}.reader-page{padding:45px 32px;min-height:70vh}.reader-page:nth-child(2){display:none}.reader-top{grid-template-columns:auto 1fr auto}.reader-actions button:nth-child(2),.reader-actions button:nth-child(3){display:none}.reader-nav,.reader-footer{margin:0 12px;flex-wrap:wrap}.reader-footer{justify-content:center}}

/* V16.1.4 Meet the Teachers — cinematic showcase */
#teachers{max-width:1400px;margin:0 auto}
.teacher-showcase-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}
.teacher-showcase-head h1{margin:4px 0 8px;font-size:clamp(30px,4vw,48px)}
.teacher-showcase-head p{margin:0;max-width:720px;opacity:.78}
.teacher-price-chip{min-width:180px;padding:14px 18px;border-radius:18px;background:linear-gradient(145deg,#0d263a,#102f42);border:1px solid rgba(44,213,198,.22);display:grid;text-align:center;box-shadow:0 12px 30px rgba(0,0,0,.16)}
.teacher-price-chip small{letter-spacing:.1em;opacity:.65}.teacher-price-chip b{font-size:28px;color:#28d4c5}.teacher-price-chip span{font-size:12px;opacity:.72}
.teacher-showcase{position:relative;display:flex;align-items:center;gap:12px}
.teacher-cinema-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;flex:1;min-width:0}
.teacher-cinema-card{position:relative;min-height:520px;border-radius:26px;overflow:hidden;background:#071725;border:1px solid rgba(126,170,197,.2);box-shadow:0 22px 55px rgba(0,0,0,.24);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.teacher-cinema-card:hover,.teacher-cinema-card.active{transform:translateY(-3px);border-color:rgba(39,207,192,.48);box-shadow:0 28px 65px rgba(0,0,0,.32)}
.teacher-cinema-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%}
.teacher-cinema-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,9,16,.03) 20%,rgba(2,13,23,.35) 52%,rgba(2,12,21,.96) 84%),linear-gradient(90deg,rgba(3,18,30,.08),rgba(3,18,30,.02))}
.teacher-cinema-copy{position:absolute;left:0;right:0;bottom:0;padding:30px;color:#fff}
.teacher-language-badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#1268d5;color:#fff;font-weight:900;font-size:12px;letter-spacing:.06em}
.teacher-language-badge.khmer{background:#15934d}
.teacher-cinema-copy h2{font-size:36px;margin:10px 0 0}.teacher-role{margin:1px 0 12px;font-weight:700;opacity:.86}
.teacher-specialties{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.teacher-specialties span{padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12);font-size:12px;font-weight:750;backdrop-filter:blur(8px)}
.teacher-quick{max-width:580px;line-height:1.45;margin:0 0 16px;color:#d8e6ed}
.teacher-actions{display:flex;gap:8px;flex-wrap:wrap}.teacher-actions button{min-height:42px}
.teacher-ghost{border:1px solid rgba(255,255,255,.3);background:rgba(5,20,31,.62);color:white;border-radius:12px;padding:10px 13px;font-weight:800;backdrop-filter:blur(10px)}
.teacher-ghost:hover{background:rgba(26,65,82,.82);border-color:rgba(83,225,211,.55)}
.teacher-arrow{width:44px;height:44px;border-radius:50%;flex:0 0 44px;border:1px solid rgba(121,174,199,.3);background:#0d2638;color:#eaf8fb;font-size:28px;display:grid;place-items:center;z-index:2}
.teacher-arrow:hover{background:#143b50}
.teacher-showcase-dots{display:flex;justify-content:center;gap:8px;margin:16px 0}.teacher-showcase-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#496474}.teacher-showcase-dots button.active{width:26px;border-radius:8px;background:#20cabc}
.teacher-trust-strip{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;padding:14px 18px;border-radius:18px;background:rgba(11,38,54,.7);border:1px solid rgba(93,157,186,.16);font-size:13px;color:#c9dce4}
.teacher-profile-modal{display:grid;grid-template-columns:220px 1fr;gap:24px;align-items:start}.teacher-profile-modal img{width:220px;height:280px;object-fit:cover;border-radius:20px}.teacher-profile-modal h2{margin:3px 0 5px}.teacher-profile-modal .tags{margin:12px 0}.teacher-video-modal video{display:block;width:min(820px,100%);max-height:70vh;background:#000;border-radius:18px;margin:10px auto 0}
@media(max-width:900px){.teacher-showcase-head{align-items:flex-start;flex-direction:column}.teacher-price-chip{width:100%}.teacher-cinema-grid{grid-template-columns:1fr}.teacher-cinema-card{min-height:480px}.teacher-cinema-card:not(.active){display:none}.teacher-arrow{display:grid}.teacher-profile-modal{grid-template-columns:1fr}.teacher-profile-modal img{width:100%;height:min(360px,60vh)}}
@media(min-width:901px){.teacher-arrow{display:none}}
@media(max-width:540px){.teacher-cinema-card{min-height:540px}.teacher-cinema-copy{padding:22px}.teacher-cinema-copy h2{font-size:30px}.teacher-actions{display:grid;grid-template-columns:1fr}.teacher-actions button{width:100%}.teacher-specialties span{font-size:11px}}

.teacher-modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.teacher-modal-actions button{min-height:44px}
@media(max-width:540px){.teacher-modal-actions{display:grid;grid-template-columns:1fr}.teacher-modal-actions button{width:100%}}

/* V16.1.7 real flag icons — avoids Windows country-code emoji fallback */
.language-flag-img{width:28px;height:20px;object-fit:cover;border-radius:3px;box-shadow:0 0 0 1px rgba(255,255,255,.18);display:inline-block;vertical-align:middle;flex:0 0 auto}
.flag-switch-button .language-flag-img{width:30px;height:21px;margin-right:7px}
.flag-menu button .language-flag-img{width:30px;height:20px;margin-right:2px}

/* V16.1.8 final sidebar, real flags, readable reader */
#drawer button[data-view="library"]{display:flex;align-items:center;gap:11px}
#drawer button[data-view="library"]::before{content:"";width:26px;height:26px;flex:0 0 26px;background:url("/assets/icons/library-book.svg") center/contain no-repeat;filter:drop-shadow(0 2px 5px rgba(41,225,207,.35))}
.language-flag-img{display:inline-block;width:30px;height:20px;object-fit:cover;border-radius:3px;box-shadow:0 0 0 1px rgba(255,255,255,.2);vertical-align:middle;flex:0 0 auto}
.flag-switch-button .language-flag-img{width:31px;height:21px;margin-right:7px}
.flag-menu button .language-flag-img{width:31px;height:21px}
.reader-page{line-height:1.9;letter-spacing:.002em}
.reader-page p{max-width:34em;margin-left:auto;margin-right:auto}
.reader-lang-khmer .reader-page{font-family:"Leelawadee UI","Noto Sans Khmer","Khmer OS System",Arial,sans-serif;line-height:2.08}
.reader-lang-mandarin .reader-page{font-family:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",Arial,sans-serif;line-height:1.95}
.reader-lang-japanese .reader-page{font-family:"Yu Gothic","Meiryo","Noto Sans JP",Arial,sans-serif;line-height:1.95}
.reader-lang-arabic .reader-page{font-family:"Traditional Arabic","Segoe UI","Noto Naskh Arabic",serif;line-height:2.08;text-align:right}
.reader-lang-arabic .reader-top,.reader-lang-arabic .reader-nav,.reader-lang-arabic .reader-footer{direction:ltr}
@media(max-width:800px){.reader-page{padding:42px 28px 58px;line-height:1.95}.reader-page p{max-width:30em}}

/* V16.1.9 Library reading-standard refinement */
.library-book-meta{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0 5px}
.library-book-meta span{font-size:10px;font-weight:800;letter-spacing:.025em;padding:5px 8px;border-radius:999px;background:rgba(35,201,188,.1);border:1px solid rgba(53,205,195,.18);color:#9cece5}

/* Keep the existing cream paper, but use true black ink in bright mode. */
.reader-shell:not(.reader-night) .reader-page{color:#050505 !important}
.reader-shell:not(.reader-night) .reader-page h2,
.reader-shell:not(.reader-night) .reader-page p,
.reader-shell:not(.reader-night) .reader-page .page-no{color:#050505 !important}
.reader-shell:not(.reader-night) .reader-page>small{color:#222 !important;opacity:.78}

/* Night mode deliberately retains the existing dark-paper/light-text treatment. */
.reader-toc-panel{position:fixed;z-index:20;top:82px;bottom:20px;left:50%;transform:translateX(-50%);width:min(680px,calc(100vw - 32px));display:flex;flex-direction:column;border-radius:20px;background:#091a27;color:#ecf8fa;border:1px solid #315063;box-shadow:0 28px 80px rgba(0,0,0,.5);overflow:hidden}
.reader-toc-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid #254052;background:#0d2231}
.reader-toc-head div{display:grid}.reader-toc-head small{font-size:10px;letter-spacing:.13em;color:#33d4c5;font-weight:900}.reader-toc-head b{margin-top:3px;font-size:17px}
.reader-toc-head button{width:38px;height:38px;border-radius:50%;border:1px solid #355165;background:#142b3a;color:white;font-size:24px}
.reader-toc-list{overflow:auto;padding:10px}
.reader-toc-list button{width:100%;display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;text-align:left;padding:11px 12px;border:0;border-bottom:1px solid rgba(121,161,184,.12);background:transparent;color:#eaf5f7;border-radius:11px}
.reader-toc-list button:hover,.reader-toc-list button.active{background:rgba(31,202,188,.12)}
.reader-toc-list button>span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#153447;color:#52e0d2;font-weight:900;font-size:11px}
.reader-toc-list button>b{font-size:13px;line-height:1.35}.reader-toc-list button>small{font-size:10px;opacity:.62;white-space:nowrap}
@media(max-width:600px){.reader-toc-panel{top:70px;bottom:10px}.reader-toc-list button{grid-template-columns:30px 1fr}.reader-toc-list button>small{grid-column:2}}

/* V16.2.1 — teacher photo framing only; original photos are unchanged */
.teacher-cinema-card[data-teacher-card="Jessica"] > img{
  object-position: 50% 36% !important;
}
.teacher-cinema-card[data-teacher-card="An Sievly"] > img{
  object-position: 50% 43% !important;
}


/* V16.3.0 — professional tutor booking + teacher portal */
.teacher-head-actions{display:flex;align-items:center;gap:10px}.teacher-head-actions>.teacher-ghost{white-space:nowrap}
.booking-dialog{width:min(1000px,calc(100vw - 24px));max-width:1000px}.booking-dialog form{max-width:none}.booking-layout{display:grid;grid-template-columns:1.35fr .9fr;gap:24px}.booking-layout h3{margin:16px 0 10px}.booking-days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;overflow:auto;padding:2px}.booking-day{min-width:72px;padding:10px 7px;border-radius:14px;border:1px solid rgba(110,159,187,.25);background:#0d2638;color:#dcebf1;display:grid;gap:2px;text-align:center}.booking-day strong{font-size:22px}.booking-day small{font-size:10px;opacity:.65}.booking-day.active{border-color:#27d1c1;background:#103e4b;box-shadow:0 0 0 2px rgba(39,209,193,.12)}.booking-day:disabled{opacity:.35}.booking-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;min-height:92px}.booking-slot{padding:11px 8px;border-radius:12px;border:1px solid rgba(106,157,184,.26);background:#0b2232;color:#e8f7f9;font-weight:800}.booking-slot:hover,.booking-slot.active{border-color:#27d1c1;background:#12444f}.booking-hint{grid-column:1/-1;opacity:.68}.booking-timezone{font-size:12px;opacity:.62;margin-top:10px}.booking-details{padding:16px;border-radius:18px;background:rgba(9,34,49,.75);border:1px solid rgba(104,165,190,.18)}.booking-selection{display:flex;justify-content:space-between;gap:10px;padding:12px;margin:10px 0;border-radius:12px;background:rgba(34,205,190,.1);border:1px solid rgba(34,205,190,.2)}.portal-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.portal-summary>div{padding:14px;border-radius:14px;background:#0d2c3e;display:grid;text-align:center}.portal-summary b{font-size:26px;color:#2bd2c3}.portal-summary span{font-size:12px;opacity:.72}.portal-help{opacity:.75}.availability-editor{display:grid;gap:8px;max-height:360px;overflow:auto;padding-right:4px}.availability-row{display:grid;grid-template-columns:100px 1fr;gap:10px;align-items:start;padding:10px;border-radius:12px;background:rgba(11,37,52,.65)}.availability-row>div{display:flex;flex-wrap:wrap;gap:6px}.time-check input{display:none}.time-check span{display:block;padding:7px 9px;border-radius:9px;border:1px solid rgba(109,158,182,.24);font-size:12px;cursor:pointer}.time-check input:checked+span{background:#12665f;border-color:#28d4c5;color:white}.portal-bookings{display:grid;gap:8px}.portal-bookings article{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border-radius:12px;background:rgba(11,37,52,.65)}.portal-bookings article>div{display:grid;gap:2px}.portal-bookings small{opacity:.6}.portal-bookings select{min-width:120px}
@media(max-width:760px){.teacher-head-actions{width:100%;align-items:stretch;flex-direction:column}.booking-layout{grid-template-columns:1fr}.booking-days{grid-template-columns:repeat(7,minmax(68px,1fr))}.booking-slots{grid-template-columns:repeat(3,1fr)}.availability-row{grid-template-columns:1fr}.portal-bookings article{align-items:stretch;flex-direction:column}.portal-bookings select{width:100%}}

/* V16.3.1 — Preply/italki-style visible availability + Jessica CV portrait */
.teacher-cinema-card[data-teacher-card="Jessica"] > img{object-position:50% 28% !important}
.teacher-availability-preview{margin:0 0 14px;padding:11px 12px;border-radius:14px;background:rgba(4,20,31,.78);border:1px solid rgba(52,211,196,.25);backdrop-filter:blur(12px)}
.availability-preview-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.availability-preview-head b{font-size:12px}.availability-preview-head span{font-size:10px;color:#5ce0d4;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.availability-preview-slots{display:flex;gap:7px;flex-wrap:wrap}.availability-preview-slots>small{opacity:.7}
.availability-preview-slot{display:grid;gap:1px;text-align:left;padding:7px 9px;border-radius:10px;border:1px solid rgba(116,176,199,.22);background:#0d2a3b;color:#eefbfc;min-width:108px}.availability-preview-slot span{font-size:10px;opacity:.7}.availability-preview-slot b{font-size:13px}.availability-preview-slot:hover{border-color:#31d2c3;background:#114653}
.booking-dialog::backdrop{background:rgba(0,7,13,.72);backdrop-filter:blur(4px)}
.booking-dialog{border:1px solid rgba(68,211,197,.3);box-shadow:0 30px 90px rgba(0,0,0,.52)}
.booking-days{scrollbar-width:thin}.booking-day:not(:disabled):hover{border-color:rgba(39,209,193,.65);transform:translateY(-1px)}
.booking-slot{transition:.15s ease}.booking-slot:hover{transform:translateY(-1px)}
@media(max-width:540px){.availability-preview-slots{display:grid;grid-template-columns:repeat(3,1fr)}.availability-preview-slot{min-width:0;padding:7px}.availability-preview-slot span{font-size:9px}}


/* V16.3.2 — keep original introduction/profile actions visible above availability */
.teacher-cinema-card{min-height:640px}
.teacher-actions{margin-bottom:12px}
.teacher-availability-preview{margin:0}
@media(max-width:900px){.teacher-cinema-card{min-height:620px}}
@media(max-width:540px){.teacher-cinema-card{min-height:690px}}

/* V17.1 teacher application centre */
.application-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.application-feature-grid>div{padding:14px;border:1px solid var(--line,#dbe3ee);border-radius:14px;display:grid;grid-template-columns:auto 1fr;gap:3px 10px;align-items:center}.application-feature-grid>div:first-line{font-size:22px}.application-feature-grid b{display:block}.application-feature-grid small{grid-column:2}.application-dashboard{min-width:min(820px,90vw)}.application-status-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.profile-score{min-width:110px;border-radius:18px;padding:14px;text-align:center;background:linear-gradient(135deg,#e7fff7,#edf5ff)}.profile-score b{display:block;font-size:28px;color:#087d73}.profile-score span{font-size:12px}.application-tabs{display:flex;gap:7px;overflow:auto;margin:18px 0;border-bottom:1px solid #dde4ec;padding-bottom:8px}.application-tabs button{white-space:nowrap;border:0;background:transparent;padding:9px 12px;border-radius:9px;font-weight:700}.application-tabs button.active{background:#0f766e;color:white}.application-section{display:grid;gap:14px}.application-section h3{margin:3px 0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}.app-check-grid{display:flex;flex-wrap:wrap;gap:8px}.app-check{display:flex!important;flex-direction:row!important;gap:7px;align-items:center;border:1px solid #dbe3e8;border-radius:999px;padding:8px 11px}.media-preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.media-preview-grid>div{display:grid;gap:8px}.application-photo-preview,.application-video-preview{width:100%;max-height:320px;object-fit:cover;border-radius:16px;background:#0d1b2d}.application-placeholder{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #cbd5df;border-radius:16px;font-size:34px}.application-placeholder b{font-size:14px}.certificate-file{display:inline-block;margin:3px;padding:8px 10px;background:#eef4f7;border-radius:9px}.application-checklist{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.application-checklist>div{padding:10px;border-radius:10px;background:#f3f5f7}.application-checklist>div.done{background:#e6f8f2;color:#086c60}.application-preview-card,.admin-review-profile{display:grid;grid-template-columns:120px 1fr;gap:14px;padding:15px;border:1px solid #d9e2e8;border-radius:16px}.application-preview-card img,.admin-review-profile img{width:120px;height:120px;object-fit:cover;border-radius:50%}.review-note,.success-panel,.info-panel{padding:13px;border-radius:12px;background:#eef6ff}.success-panel{background:#e6f8ef}.admin-application-list{display:grid;gap:8px}.admin-application-list>button{display:flex;justify-content:space-between;align-items:center;text-align:left;padding:13px;border:1px solid #d9e1e7;background:white;border-radius:13px}.admin-application-list>button div{display:grid;gap:2px}.admin-application-list strong{font-size:20px;color:#087d73}.review-actions{display:flex;gap:8px;justify-content:flex-end}.danger{background:#a62929!important;color:white!important}.teacher-head-actions{flex-wrap:wrap}
@media(max-width:700px){.application-feature-grid,.two-col,.media-preview-grid,.application-checklist{grid-template-columns:1fr}.application-status-head{flex-direction:column}.application-preview-card,.admin-review-profile{grid-template-columns:1fr}.application-preview-card img,.admin-review-profile img{width:100px;height:100px}.review-actions{flex-direction:column}.application-dashboard{min-width:0}}

/* V17.2 accessibility hardening */
:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid currentColor;outline-offset:3px}
[hidden]{display:none!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* V17.3 learning-engine rebuild */
.can-do-card,.culture-note{display:flex;gap:.55rem;align-items:flex-start;padding:.85rem 1rem;border:1px solid rgba(70,220,190,.22);border-radius:16px;background:rgba(26,188,156,.08);margin:.75rem 0}
.can-do-card{flex-direction:column}.culture-note{margin:1rem 0;flex-direction:column}.can-do-card span,.culture-note span{line-height:1.45}
.skill-graph{display:grid;gap:.8rem;margin-top:1rem}.skill-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(120px,2fr) 52px;gap:.75rem;align-items:center}.skill-row>div:first-child{display:flex;flex-direction:column;gap:.18rem}.skill-row span{font-size:.78rem;opacity:.7}.skill-row strong{text-align:right}.skill-row .bar{height:10px}
.branch-story-choice{display:grid;gap:.6rem}.branch-story-choice button{text-align:left}.story-context{padding:.9rem 1rem;border-radius:16px;background:rgba(255,255,255,.04);margin:.75rem 0;line-height:1.5}
.game-mode-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
@media(max-width:620px){.skill-row{grid-template-columns:1fr 48px}.skill-row .bar{grid-column:1 / -1;grid-row:2}.skill-row strong{grid-column:2;grid-row:1}}

.buddy-target{display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--navy);font-size:13px;font-weight:900;box-shadow:0 8px 20px rgba(12,35,71,.06)}

/* V17.4.2 — visible account access */
.top-auth{display:flex;align-items:center;gap:8px;margin-left:4px}.top-auth button{border-radius:12px;padding:9px 14px;font-weight:900;white-space:nowrap}.top-login{background:transparent;color:#fff;border:1px solid #31516b}.top-signup{background:#14c9c3;color:#03111d;border:1px solid #14c9c3}.top-account{background:#0d2d45;color:#fff;border:1px solid #31516b}.guest-welcome{margin:22px 0 20px;padding:16px 18px;border:1px solid #cfe5f5;border-radius:18px;background:rgba(255,255,255,.8);display:flex;justify-content:space-between;align-items:center;gap:18px}.guest-welcome b,.guest-welcome span{display:block}.guest-welcome b{color:var(--navy);margin-bottom:3px}.guest-welcome span{color:var(--muted);font-size:13px}.guest-welcome>div:last-child{display:flex;gap:8px;flex-shrink:0}.account-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.account-choice button{padding:14px}.auth-note{margin-top:12px}.auth-switch{margin-top:10px;text-align:center}.auth-switch button{border:0;background:none;color:var(--teal);font-weight:900;padding:6px}.auth-title-row{display:flex;gap:8px;margin-bottom:16px}.auth-title-row button{flex:1;border:1px solid var(--line);background:#eef6ff;color:var(--navy);border-radius:12px;padding:10px;font-weight:900}.auth-title-row button.active{background:var(--navy);color:#fff}.password-row{position:relative}.password-row input{padding-right:78px}.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:#edf5ff;border-radius:9px;padding:6px 9px;font-size:12px;font-weight:900;color:var(--navy)}
@media(max-width:760px){.topbar{gap:8px;padding-inline:10px}.topstats{display:none}.brand span{display:none}.top-auth{margin-left:auto}.top-auth button{padding:8px 10px;font-size:12px}.guest-welcome{align-items:stretch;flex-direction:column}.guest-welcome>div:last-child{display:grid;grid-template-columns:1fr 1fr}.guest-welcome button{width:100%}}
@media(max-width:420px){.top-login{display:none}.top-auth button{padding:8px 9px}.guest-welcome>div:last-child{grid-template-columns:1fr}}

/* V17.5 dual-language learning */
.language-direction{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:10px 0 16px;padding:10px 14px;border:1px solid rgba(39,213,205,.25);border-radius:14px;background:rgba(10,35,71,.48);font-size:.92rem}.language-direction span{display:flex;gap:6px;align-items:center}.language-direction b{opacity:.72;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em}.language-direction strong{color:#24d6cf}.support-meaning{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:.45rem 0}.support-meaning small{display:block;width:100%;opacity:.6;text-transform:uppercase;letter-spacing:.05em;font-size:.67rem}.support-meaning span{font-weight:650}.support-meaning i{font-style:normal;font-size:.62rem;border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:2px 5px;opacity:.7}.dual-language-explainer{margin:14px 0 20px;padding:12px 16px;border-radius:16px;background:rgba(20,213,203,.06);border:1px solid rgba(20,213,203,.14)}.dual-language-explainer p{text-align:center;margin:0;opacity:.72}.learning-card-label{display:block;font-size:.64rem;text-transform:uppercase;letter-spacing:.06em;opacity:.55;margin-bottom:4px}.rtl-ui .language-direction,.rtl-ui .support-meaning{direction:rtl;text-align:right}@media(max-width:650px){.language-direction{gap:7px;font-size:.8rem}.language-direction strong{transform:rotate(90deg)}}

/* V18 International Learning Core */
.learner-insights{margin-top:18px;padding:16px;border:1px solid rgba(89,220,205,.24);border-radius:18px;background:rgba(5,26,40,.35)}.intelligence-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.intelligence-head span{font-size:.82rem;opacity:.78}.intelligence-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.intelligence-grid>div{padding:12px;border-radius:14px;background:rgba(255,255,255,.035)}.intelligence-grid p{display:flex;justify-content:space-between;gap:12px;margin:8px 0}.support-fallback i{font-style:normal;font-weight:800;font-size:.68rem;padding:2px 5px;border-radius:6px;background:rgba(255,186,73,.16);border:1px solid rgba(255,186,73,.35)}@media(max-width:680px){.intelligence-grid{grid-template-columns:1fr}.intelligence-head{align-items:flex-start;flex-direction:column}}

/* V18.2.0 — full teacher portal */
.teacher-declarations{display:grid;gap:9px;margin:14px 0;padding:14px;border:1px solid #d9e3e8;border-radius:14px;background:#f8fbfc}.teacher-declarations label{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:9px;font-weight:650}.teacher-declarations input{width:auto!important;margin-top:3px}
.teacher-portal{width:min(1040px,92vw)}.teacher-portal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.teacher-account-badges{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.teacher-account-badges span{padding:7px 10px;border-radius:999px;background:#eef8f6;border:1px solid #cfe8e2;color:#17665e;font-size:12px;font-weight:800}.teacher-portal-tabs{display:flex;gap:7px;overflow:auto;margin:18px 0;padding-bottom:9px;border-bottom:1px solid #dde6eb}.teacher-portal-tabs button{white-space:nowrap;border:0;border-radius:10px;background:#edf3f6;color:#294354;padding:9px 13px;font-weight:850}.teacher-portal-tabs button.active{background:#0e766e;color:#fff}.teacher-portal-footer{display:flex;justify-content:space-between;gap:12px;margin-top:18px;padding-top:10px;border-top:1px solid #e2e8ec}
.portal-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:12px 0 20px}.portal-kpis>div{padding:15px;border:1px solid #dfe8ec;border-radius:16px;background:linear-gradient(145deg,#fff,#f5fbfc)}.portal-kpis span,.portal-kpis small{display:block;color:#607580;font-size:12px}.portal-kpis b{display:block;margin:5px 0;font-size:26px;color:#123f4e}.portal-two-panel{display:grid;grid-template-columns:1.35fr .8fr;gap:16px}.portal-two-panel>section{padding:15px;border:1px solid #e0e7eb;border-radius:16px}.portal-readiness{display:grid;gap:7px}.portal-readiness p{display:flex;justify-content:space-between;gap:14px;margin:0;padding:9px 0;border-bottom:1px solid #edf1f3}.portal-readiness p:last-child{border-bottom:0}.portal-readiness span{color:#657983}
.portal-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}.portal-section-head h3{margin-bottom:4px}.portal-section-head p{margin:0;color:#667a85}.portal-section-head label{min-width:260px}.portal-lessons,.student-roster,.earnings-ledger,.admin-payment-list{display:grid;gap:9px}.portal-lesson-card,.earnings-ledger article,.admin-payment-list article{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid #dfe7eb;border-radius:14px;background:#fff}.portal-lesson-card>div,.earnings-ledger article>div,.admin-payment-list article>div{display:grid;gap:3px}.portal-lesson-card span,.portal-lesson-card small,.earnings-ledger span,.earnings-ledger small{color:#687d88}.empty-state{padding:18px;border:1px dashed #cbd8de;border-radius:14px;text-align:center;color:#657b87;background:#f9fbfc}
.student-roster article{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid #dfe7eb;border-radius:14px}.student-roster article>div:last-child{display:grid;gap:2px}.student-roster span,.student-roster small{color:#6a7e89}.student-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#e4f7f4;color:#0e766e;font-weight:900;font-size:18px;flex:0 0 42px}.portal-profile-photo{width:72px;height:72px;border-radius:50%;object-fit:cover}.payment-paid{color:#10735f!important;font-weight:850}.payment-pending{color:#9a6700!important;font-weight:850}.payment-not_set{color:#7a8790!important}.lesson-manager{width:min(720px,88vw)}.lesson-student-info{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:14px 0}.lesson-student-info p{display:grid;gap:4px;margin:0;padding:12px;border-radius:12px;background:#f3f8fa}.lesson-student-info span{overflow-wrap:anywhere;color:#506975}.admin-check-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}.admin-check-grid>div{padding:11px;border:1px solid #dde5e9;border-radius:12px;background:#f8fbfc}.admin-check-grid span,.admin-check-grid b{display:block}.admin-check-grid span{font-size:11px;color:#6c7e87}.admin-teacher-review{width:min(860px,90vw)}.admin-payment-list select{min-width:120px}
@media(max-width:820px){.portal-kpis{grid-template-columns:repeat(2,1fr)}.portal-two-panel{grid-template-columns:1fr}.teacher-portal-head{flex-direction:column}.teacher-account-badges{justify-content:flex-start}.lesson-student-info{grid-template-columns:1fr}.admin-check-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.portal-kpis{grid-template-columns:1fr}.portal-section-head{align-items:stretch;flex-direction:column}.portal-section-head label{min-width:0}.portal-lesson-card,.earnings-ledger article,.admin-payment-list article{align-items:stretch;flex-direction:column}.teacher-portal{width:auto}.admin-check-grid{grid-template-columns:1fr}}

/* V18.3.0 — iSpeak Classroom */
.classroom-launch{border:1px solid rgba(45,212,191,.45);background:linear-gradient(135deg,#0f766e,#0f4c5c);color:#fff;border-radius:12px;padding:11px 14px;font-weight:900}.classroom-launch:hover{filter:brightness(1.12)}
dialog.classroom-dialog{width:calc(100vw - 22px);max-width:none;height:calc(100vh - 22px);max-height:none;border-radius:20px;overflow:hidden;background:#06111d}dialog.classroom-dialog #modalBody{padding:0;height:100%;overflow:auto}dialog.classroom-dialog .modal-close{background:#10263a;color:#fff;border:1px solid #24465d}.classroom-prejoin{max-width:820px;margin:0 auto;padding:56px 34px}.classroom-brand{display:flex;align-items:center;gap:18px}.classroom-brand img{width:74px;height:74px;object-fit:contain}.classroom-brand h2{margin:3px 0}.classroom-notice,.classroom-policy-admin{margin:22px 0;padding:18px;border-radius:16px;border:1px solid rgba(45,212,191,.28);background:rgba(15,118,110,.12)}.classroom-notice b,.classroom-policy-admin b{color:#72e7dc}.classroom-consent{display:flex;gap:10px;align-items:flex-start;font-size:13px}.classroom-consent input{width:auto;margin-top:3px}.device-preview{padding:18px;margin:18px 0;border:1px dashed #31566e;border-radius:16px;color:#9fb9ca}.ispeak-classroom{height:100%;min-height:700px;display:flex;flex-direction:column}.ispeak-classroom>header{padding:18px 70px 14px 22px;display:flex;justify-content:space-between;gap:18px;align-items:center;border-bottom:1px solid #18374f;background:#071522}.ispeak-classroom>header h2{margin:2px 0;font-size:21px}.classroom-status{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.classroom-status span{padding:7px 10px;border-radius:999px;background:#10263a;font-size:11px;color:#afc6d5}.classroom-status #roomRecording.active{background:#431418;color:#ffb4b4}.ispeak-classroom>main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,.6fr)}.classroom-stage{min-width:0;padding:18px;display:flex;flex-direction:column;background:#030a11}.classroom-videos{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.classroom-video-tile{position:relative;min-height:300px;border-radius:18px;overflow:hidden;background:#0b1d2b;border:1px solid #18374f}.classroom-video-tile video{width:100%;height:100%;object-fit:cover;background:#02070b}.classroom-video-tile>span{position:absolute;left:12px;bottom:12px;padding:6px 9px;border-radius:9px;background:rgba(0,0,0,.62);font-size:12px}.classroom-video-tile .video-wait{position:absolute;inset:0;display:grid;place-items:center;color:#7490a1;pointer-events:none}.classroom-video-tile.connected .video-wait{display:none}.classroom-controls{display:flex;justify-content:center;gap:8px;padding-top:14px}.classroom-controls button{border:1px solid #27465a;background:#0d2535;color:#fff;border-radius:12px;padding:10px 14px}.classroom-controls button.off{opacity:.5}.classroom-controls .danger{background:#611a21;border-color:#8b2f38}.admin-observer-note{text-align:center;padding:11px;color:#8ea8b8;font-size:12px}.classroom-tools{min-width:0;border-left:1px solid #18374f;background:#071522;display:flex;flex-direction:column}.classroom-tool-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #18374f}.classroom-tool-tabs button{border:0;background:transparent;color:#8ea8b8;padding:15px 8px;font-weight:800}.classroom-tool-tabs button.active{color:#5ee0d4;background:#0d2230}#roomToolBody{flex:1;min-height:0;padding:14px;overflow:auto}.room-chat-log{height:calc(100vh - 245px);min-height:320px;overflow:auto;display:flex;flex-direction:column;gap:9px}.room-chat-message{max-width:88%;padding:9px 11px;border-radius:13px;background:#102637}.room-chat-message.mine{align-self:flex-end;background:#0f625c}.room-chat-message b,.room-chat-message small{font-size:10px}.room-chat-message p{margin:3px 0;color:#e8f1f5;line-height:1.4}.room-chat-send{display:flex;gap:7px;margin-top:10px}.room-chat-send input{margin:0}.room-chat-send button{border:0;border-radius:10px;background:#0f766e;color:#fff;padding:0 14px}.workspace-head{display:grid;gap:3px;margin-bottom:10px}.workspace-head small,#workspaceSaved{color:#7f9aaa}#roomWorkspace{min-height:440px;resize:vertical;line-height:1.55}.room-info-card,.lesson-review-box{padding:15px;border:1px solid #1f4359;border-radius:14px;background:#0b1d2b;margin-bottom:12px}.star-picker{display:flex;gap:5px;margin:8px 0}.star-picker button{border:0;background:transparent;color:#526a7a;font-size:29px;padding:2px}.star-picker button.active{color:#f6c84c}.teacher-rating-summary{display:inline-block;margin:2px 0 10px;padding:7px 10px;border-radius:999px;background:#183422;color:#ffd76a;font-weight:900;font-size:12px}.teacher-review-section{margin-top:22px;padding-top:18px;border-top:1px solid #204159}.teacher-review-section article{padding:13px 0;border-bottom:1px solid #173347}.teacher-review-section article>div{display:flex;justify-content:space-between;gap:10px}.teacher-review-section article b{color:#f6c84c}.teacher-review-section article p{margin:5px 0;color:#d4e2e9}.teacher-review-section article small{color:#7895a7}.student-lesson-list,.admin-classroom-list,.recording-segment-list{display:grid;gap:9px}.student-lesson-list article,.admin-classroom-list article,.recording-segment-list article{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px;border-radius:13px;background:#0b2232;border:1px solid #18374f}.student-lesson-list article>div,.admin-classroom-list article>div:first-child,.recording-segment-list article>div{display:grid;gap:3px}.student-lesson-list span,.admin-classroom-list span{color:#b6cbd7;font-size:12px}.admin-classroom-list small,.recording-segment-list small{color:#7895a7}.admin-classroom-list article>div:last-child{display:flex;gap:6px}.admin-replay-video{width:100%;max-height:520px;background:#000;border-radius:14px;margin:14px 0}.portal-bookings .classroom-launch{margin-left:auto}
@media(max-width:900px){dialog.classroom-dialog{width:100vw;height:100vh;border-radius:0}.ispeak-classroom>main{grid-template-columns:1fr;overflow:auto}.classroom-tools{border-left:0;border-top:1px solid #18374f;min-height:420px}.classroom-videos{grid-template-columns:1fr}.classroom-video-tile{min-height:260px}.room-chat-log{height:330px}.ispeak-classroom>header{align-items:flex-start;flex-direction:column;padding-right:58px}.classroom-status{justify-content:flex-start}.admin-classroom-list article,.student-lesson-list article{align-items:flex-start;flex-direction:column}.admin-classroom-list article>div:last-child{width:100%}.admin-classroom-list article button{flex:1}}

/* V18.4.1 — visible, professional Admin Portal */
.admin-login-shell{max-width:540px;margin:0 auto;text-align:left}.admin-login-shell>img{width:72px;height:72px;object-fit:contain;display:block;margin:0 0 12px}.admin-login-shell h2{margin:4px 0 8px}.admin-security-note{display:block;margin-top:12px;line-height:1.5;color:#6f7f8b}.admin-security-note code{font-size:11px}.admin-dashboard{min-width:min(880px,90vw)}.admin-dashboard-head{display:flex;justify-content:space-between;gap:20px;align-items:center}.admin-dashboard-head img{width:82px;height:82px;object-fit:contain}.admin-dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.admin-dashboard-kpis>div{padding:15px;border:1px solid #d9e2e8;border-radius:14px;background:#f7fafc}.admin-dashboard-kpis span{display:block;font-size:12px;color:#687986}.admin-dashboard-kpis b{display:block;margin-top:4px;font-size:26px;color:#087d73}.admin-dashboard-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 18px}.admin-action-card{display:flex;align-items:flex-start;gap:14px;text-align:left;padding:18px;border:1px solid #cfdce4;border-radius:16px;background:white}.admin-action-card>span{font-size:28px}.admin-action-card div{display:grid;gap:5px}.admin-action-card b{font-size:16px}.admin-action-card small{line-height:1.45;color:#667985}@media(max-width:760px){.admin-dashboard{min-width:0}.admin-dashboard-head{align-items:flex-start}.admin-dashboard-head img{width:58px;height:58px}.admin-dashboard-kpis{grid-template-columns:repeat(2,1fr)}.admin-dashboard-actions{grid-template-columns:1fr}}


/* V18.6 portal pages + collaborative classroom whiteboard */
body.portal-page-mode{padding:0!important;background:#06111d!important;overflow:hidden}body.portal-page-mode>.topbar,body.portal-page-mode>#drawer,body.portal-page-mode>#scrim,body.portal-page-mode>.bottom-nav,body.portal-page-mode>main{display:none!important}
dialog.portal-page-dialog{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;max-height:none;margin:0;border-radius:0;background:#f4f8fb;box-shadow:none;overflow:auto}dialog.portal-page-dialog::backdrop{background:#f4f8fb}dialog.portal-page-dialog #modalBody{min-height:100vh;padding:42px clamp(24px,5vw,72px);max-width:1500px;margin:0 auto}dialog.portal-page-dialog .modal-close{position:fixed;right:24px;top:20px;width:44px;height:44px;z-index:20}.portal-page-dialog .admin-login-shell{max-width:620px;padding:40px;border:1px solid #d9e5eb;border-radius:22px;background:#fff;margin:5vh auto}.portal-page-dialog .admin-dashboard,.portal-page-dialog .teacher-portal,.portal-page-dialog .application-dashboard,.portal-page-dialog .admin-teacher-review{width:100%;max-width:1400px;min-width:0;margin:0 auto}.portal-page-dialog .teacher-portal{background:#fff;border:1px solid #dce7ed;border-radius:22px;padding:26px}.portal-page-dialog .teacher-portal-tabs{position:sticky;top:0;z-index:4;background:#fff;padding-top:8px}.portal-page-dialog .admin-dashboard{padding:20px 0}.portal-page-dialog .admin-dashboard-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-page-dialog .admin-dashboard-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.portal-lesson-actions{display:flex;gap:8px;align-items:center}.portal-lesson-actions button{white-space:nowrap}
.classroom-tool-tabs{grid-template-columns:repeat(4,1fr)!important}.whiteboard-toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.whiteboard-toolbar button{border:1px solid #294b61;background:#0d2535;color:#d9e8ef;border-radius:9px;padding:8px 10px}.whiteboard-toolbar button.active{background:#0f766e;color:#fff;border-color:#31b7aa}.whiteboard-toolbar button.danger{background:#5b1a20;border-color:#7f3038}.whiteboard-toolbar label{display:flex;align-items:center;gap:7px;color:#a8bfcc;margin:0}.whiteboard-toolbar input[type=range]{width:100px;margin:0;padding:0}.whiteboard-wrap{height:calc(100vh - 285px);min-height:360px;background:#fff;border-radius:14px;overflow:hidden;border:1px solid #294b61}.whiteboard-wrap canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair;background:#fff}#whiteboardSaved{display:block;margin-top:8px;color:#7f9aaa}
@media(max-width:900px){dialog.portal-page-dialog #modalBody{padding:70px 14px 28px}.portal-page-dialog .teacher-portal{padding:16px}.portal-page-dialog .admin-dashboard-kpis{grid-template-columns:repeat(2,1fr)}.portal-page-dialog .admin-dashboard-actions{grid-template-columns:1fr}.portal-lesson-actions{width:100%;flex-wrap:wrap}.portal-lesson-actions button{flex:1}.classroom-tool-tabs button{font-size:11px;padding:12px 4px}.whiteboard-wrap{height:420px}}


/* V18.6.1 — robust full-page teacher login */
.portal-page-dialog .teacher-login-shell{max-width:620px;margin:5vh auto;padding:38px 40px;background:#fff;border:1px solid #d9e5eb;border-radius:22px;color:#15213a;box-shadow:0 18px 55px rgba(12,35,71,.10)}
.portal-page-dialog .teacher-login-shell>img{display:block;width:72px;height:72px;object-fit:contain;margin:0 0 12px}
.portal-page-dialog .teacher-login-shell h2{color:#0c2347;font-size:32px;margin:6px 0 8px}
.portal-page-dialog .teacher-login-shell p{color:#536178;margin-bottom:22px}
.portal-page-dialog .teacher-login-shell label{color:#334155;font-size:13px}
.portal-page-dialog .teacher-login-shell input{background:#fff;color:#15213a;border:1px solid #b9cad8;min-height:50px}
.portal-page-dialog .teacher-login-shell .primary{margin-top:12px;background:#0d9a9a;color:#fff;min-height:52px}
.portal-page-dialog .teacher-login-shell .secondary{margin-top:10px;background:#0c2347;color:#fff;min-height:50px}
.portal-login-status{min-height:24px;margin:10px 0 2px;color:#b42318;font-weight:700;font-size:13px}
.portal-login-help{display:block;margin-top:16px;color:#64748b;line-height:1.45}
.portal-page-dialog .teacher-portal,.portal-page-dialog .teacher-portal h2,.portal-page-dialog .teacher-portal h3,.portal-page-dialog .teacher-portal label{color:#15213a}
.portal-page-dialog .teacher-portal p,.portal-page-dialog .teacher-portal small,.portal-page-dialog .teacher-portal span{color:#536178}
@media(max-width:700px){.portal-page-dialog .teacher-login-shell{margin:2vh auto;padding:28px 20px}.portal-page-dialog .teacher-login-shell h2{font-size:27px}}

/* V18.6.2 — readable, complete teacher application workflow */
.portal-page-dialog .teacher-application-landing,
.portal-page-dialog .teacher-application-auth,
.portal-page-dialog .application-dashboard{color:#15213a;background:#fff}
.portal-page-dialog .teacher-application-landing{max-width:1120px;margin:2vh auto;padding:38px 42px;border:1px solid #d9e5eb;border-radius:24px;box-shadow:0 16px 48px rgba(12,35,71,.08)}
.portal-page-dialog .teacher-application-auth{max-width:650px;margin:4vh auto;padding:38px 42px;border:1px solid #d9e5eb;border-radius:24px;box-shadow:0 16px 48px rgba(12,35,71,.08)}
.portal-page-dialog .teacher-application-landing h2,.portal-page-dialog .teacher-application-auth h2,.portal-page-dialog .application-dashboard h2,.portal-page-dialog .application-dashboard h3,.portal-page-dialog .application-dashboard h4{color:#0c2347}
.portal-page-dialog .teacher-application-landing p,.portal-page-dialog .teacher-application-landing small,.portal-page-dialog .teacher-application-auth p,.portal-page-dialog .application-dashboard p,.portal-page-dialog .application-dashboard small,.portal-page-dialog .application-dashboard span{color:#536178}
.portal-page-dialog .teacher-application-landing .eyebrow,.portal-page-dialog .teacher-application-auth .eyebrow,.portal-page-dialog .application-dashboard .eyebrow{color:#078f91}
.portal-page-dialog .teacher-application-landing .application-feature-grid>div{background:#f7fafc;border-color:#d8e4eb;color:#15213a}
.portal-page-dialog .teacher-application-landing .application-feature-grid b{color:#0c2347}
.portal-page-dialog .teacher-application-landing .primary,.portal-page-dialog .teacher-application-auth .primary,.portal-page-dialog .application-dashboard .primary{background:#0d9a9a;color:#fff}
.portal-page-dialog .teacher-application-landing .secondary{background:#0c2347;color:#fff}
.portal-page-dialog .teacher-application-auth label,.portal-page-dialog .application-dashboard label{color:#334155}
.portal-page-dialog .teacher-application-auth input,.portal-page-dialog .application-dashboard input,.portal-page-dialog .application-dashboard textarea,.portal-page-dialog .application-dashboard select{background:#fff;color:#15213a;border:1px solid #b9cad8}
.portal-page-dialog .application-dashboard{padding:30px 34px;border:1px solid #dce7ed;border-radius:22px}
.portal-page-dialog .application-tabs button{color:#334155}
.portal-page-dialog .application-tabs button.active{color:#fff;background:#0d817a}
.portal-page-dialog .app-check,.portal-page-dialog .time-check{background:#f8fbfc;color:#24364a}
.portal-page-dialog .teacher-declarations label{background:#f8fbfc;color:#24364a;border:1px solid #dbe5eb;border-radius:12px;padding:12px}
.portal-page-dialog .application-checklist>div{background:#f4f6f8;color:#536178;border:1px solid #e0e7ec}
.portal-page-dialog .application-checklist>div.done{background:#e7f8f2;color:#086c60;border-color:#b8e6d7}
.portal-page-dialog .application-checklist>div.missing{background:#fff3f2;color:#9b2c2c;border-color:#f0c7c2}
.portal-page-dialog .application-required-note,.portal-page-dialog .application-submit-panel{padding:14px 16px;border-radius:13px;background:#f7fafc;border:1px solid #dce7ed}
.portal-page-dialog .application-submit-panel button:disabled{background:#a9bac4!important;color:#fff!important;cursor:not-allowed;opacity:1}
.portal-page-dialog .required-mark{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:999px;background:#e7f6f5;color:#087d73!important;font-size:10px;font-weight:800;vertical-align:middle}
.portal-page-dialog .application-placeholder{color:#526578;background:#f8fbfc}
.portal-page-dialog .info-panel,.portal-page-dialog .review-note{color:#24364a}
@media(max-width:700px){.portal-page-dialog .teacher-application-landing,.portal-page-dialog .teacher-application-auth,.portal-page-dialog .application-dashboard{padding:24px 18px;border-radius:18px}.portal-page-dialog .application-feature-grid{grid-template-columns:1fr}}


/* V18.6.3 — youth teacher safeguarding + student professional conduct */
.portal-page-dialog .teacher-declarations select{width:100%;min-height:48px;background:#fff;color:#15213a;border:1px solid #b9cad8;border-radius:12px;padding:0 12px}
.student-classroom-rules{margin-top:14px;padding:16px 18px;border:1px solid #c8d9e4;border-radius:14px;background:#f8fbfd;color:#15213a}
.student-classroom-rules b{display:block;margin-bottom:8px;color:#0c2347}
.student-classroom-rules ul{margin:0;padding-left:20px;line-height:1.55}
.student-classroom-rules li+li{margin-top:5px}
.special-offer{margin:14px 0;padding:14px 16px;border:1px solid var(--teal,#19a7a0);border-radius:14px;background:rgba(25,167,160,.09);display:flex;flex-direction:column;gap:4px}.special-offer b{font-size:16px}.special-offer span{font-size:13px}.promo-row{display:grid;grid-template-columns:1fr auto;gap:8px}.price-summary{margin:12px 0;padding:12px 14px;border:1px solid rgba(127,127,127,.25);border-radius:12px}.price-summary div{display:flex;justify-content:space-between;margin:5px 0}.price-summary .total{padding-top:8px;border-top:1px solid rgba(127,127,127,.25);font-weight:800}.payment-wall{max-width:520px;margin:auto}.payment-provider-note{padding:12px;border-radius:12px;background:rgba(25,167,160,.09);margin:12px 0}.test-payment{border:1px dashed rgba(127,127,127,.5);padding:14px;border-radius:12px;margin-top:14px}
/* V18.5.0 student schedule + classroom navigation */
.teacher-special-offer{min-width:260px;padding:12px 16px;border-radius:18px;border:1px solid rgba(44,213,198,.38);background:rgba(21,194,185,.10);display:grid;gap:2px}.teacher-special-offer small{letter-spacing:.08em;color:#23d3c8;font-weight:800}.teacher-special-offer b{font-size:15px}.teacher-special-offer span{font-size:11px;opacity:.78}.teacher-special-offer strong{letter-spacing:.03em}.teacher-price-chip b{font-size:20px}.student-schedule,.student-classroom-centre{width:min(1040px,92vw)}.schedule-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-end}.schedule-nav{display:flex;gap:10px;align-items:center}.schedule-nav button{min-width:44px}.schedule-week,.schedule-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.schedule-week{margin-top:18px;text-align:center;font-size:12px;opacity:.65}.schedule-grid{margin-top:7px}.schedule-day{min-height:92px;padding:8px;border:1px solid #d8e1e8;border-radius:12px;background:#fff;color:#0c2133;text-align:left;display:flex;flex-direction:column;gap:4px}.schedule-day.empty{visibility:hidden}.schedule-day.has-lesson{border-color:#10a99f;background:#eafbf8}.schedule-day>span{font-weight:800}.schedule-day small{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-day em{font-size:10px}.schedule-upcoming,.classroom-centre-list{display:grid;gap:9px;margin-top:10px}.schedule-upcoming article,.classroom-centre-list article{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:13px;border:1px solid #d8e1e8;border-radius:14px;background:#fff;color:#0c2133}.schedule-upcoming article>div,.classroom-centre-list article>div{display:grid;gap:3px}.schedule-upcoming span,.schedule-upcoming small,.classroom-centre-list span,.classroom-centre-list small{font-size:12px}.classroom-centre-list article.recommended{border-color:#10a99f;background:#eafbf8}.next-badge{color:#087d73;font-weight:800}@media(max-width:760px){.teacher-special-offer{width:100%;min-width:0}.schedule-head{align-items:flex-start;flex-direction:column}.schedule-week{display:none}.schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-day.empty{display:none}.schedule-day{min-height:72px}.schedule-upcoming article,.classroom-centre-list article{align-items:stretch;flex-direction:column}}
.teacher-rate{font-weight:800;color:#0fd1d1;margin:.25rem 0 .6rem}.teacher-special-offer{min-width:340px}.teacher-calendar-event{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-top:6px;padding:7px 8px;border-radius:10px;border:1px solid rgba(25,210,210,.35);background:rgba(25,210,210,.1);color:inherit;text-align:left}.teacher-calendar-event span{font-weight:800}.teacher-calendar-event small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.teacher-calendar .schedule-day{min-height:108px}.teacher-portal-tabs{flex-wrap:wrap}.teacher-portal-tabs button{white-space:nowrap}
@media(max-width:760px){.teacher-special-offer{min-width:0;width:100%}.teacher-calendar .schedule-day{min-height:78px}.teacher-calendar-event small{display:none}}

/* V18.5 classroom pre-join + calendar overflow hardening */
.teacher-calendar-more{display:block;width:100%;margin-top:6px;border:0;background:transparent;color:#19d2d2;font-weight:900;text-align:left;padding:5px 7px;cursor:pointer}.teacher-day-list{display:grid;gap:10px;margin:18px 0}.teacher-day-list article{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px;border:1px solid #1d4056;border-radius:14px;background:#0b1d2b}.teacher-day-list article>div{display:grid;gap:3px}.teacher-day-list span,.teacher-day-list small{color:#9fb9ca}.always-open-badge{display:inline-block;margin-top:7px;padding:6px 9px;border-radius:999px;background:rgba(24,201,194,.12);border:1px solid rgba(24,201,194,.3);color:#7ee9e2}.prejoin-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:20px;margin:24px 0}.prejoin-media,.prejoin-settings{min-width:0}.prejoin-preview{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:18px;border:1px solid #274c63;background:#02070b;display:grid;place-items:center}.prejoin-preview video{width:100%;height:100%;object-fit:cover;background:#02070b}.prejoin-preview-placeholder{position:absolute;inset:0;display:grid;place-items:center;padding:20px;text-align:center;color:#7895a7;pointer-events:none}.prejoin-preview video[srcObject] + .prejoin-preview-placeholder{display:none}.prejoin-preview[data-effect="studio-light"]{background:#e8f7f5;padding:6%;border-color:#56cfc8}.prejoin-preview[data-effect="studio-light"] video{border-radius:16px}.prejoin-preview[data-effect="studio-dark"]{background:#071522;padding:6%;border-color:#18c9c2}.prejoin-preview[data-effect="studio-dark"] video{border-radius:16px}.prejoin-live-controls{display:grid;grid-template-columns:auto auto 1fr;gap:8px;align-items:center;margin:10px 0}.prejoin-live-controls button{border:1px solid #27465a;background:#0d2535;color:#fff;border-radius:10px;padding:9px 11px}.prejoin-live-controls button.off{opacity:.55}.mic-meter{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;color:#9fb9ca;font-size:12px}.mic-meter i{display:block;height:8px;background:#142c3d;border-radius:999px;overflow:hidden}.mic-meter b{display:block;width:0;height:100%;background:#18c9c2;transition:width .08s linear}.prejoin-settings h3{margin-top:0}.prejoin-settings label{display:grid;gap:5px;margin-bottom:11px}.prejoin-settings select{width:100%}.prejoin-settings>small{display:block;color:#8ea8b8;line-height:1.45;margin:-3px 0 12px}
@media(max-width:900px){.prejoin-grid{grid-template-columns:1fr}.classroom-prejoin{padding:32px 18px}.prejoin-live-controls{grid-template-columns:1fr 1fr}.mic-meter{grid-column:1/-1}.teacher-day-list article{align-items:flex-start;flex-direction:column}.teacher-day-list .classroom-launch{width:100%}}
.prejoin-preview.ready .prejoin-preview-placeholder{display:none}

/* V18.5.0 classroom readability + permission recovery */
dialog.classroom-dialog .classroom-prejoin{color:#e8f2f7;background:#06111d;min-height:100%}
dialog.classroom-dialog .classroom-prejoin h2,dialog.classroom-dialog .classroom-prejoin h3,dialog.classroom-dialog .classroom-prejoin b,dialog.classroom-dialog .classroom-prejoin strong{color:#f5fbff}
dialog.classroom-dialog .classroom-prejoin p,dialog.classroom-dialog .classroom-prejoin small,dialog.classroom-dialog .classroom-prejoin label{color:#b8cad5}
dialog.classroom-dialog .classroom-prejoin .eyebrow{color:#25d9d1}
dialog.classroom-dialog .classroom-brand p{margin:.3rem 0;color:#a9c0cf}
dialog.classroom-dialog .prejoin-settings select{background:#0b2030;color:#f5fbff;border:1px solid #31556c;border-radius:12px;min-height:46px;padding:0 12px}
dialog.classroom-dialog .prejoin-settings option{background:#0b2030;color:#f5fbff}
dialog.classroom-dialog .classroom-notice{background:#0b2530;border-color:#2b6b6a;color:#d7e8ef}
dialog.classroom-dialog .classroom-notice b{color:#61e5dc}
dialog.classroom-dialog .classroom-notice p,dialog.classroom-dialog .classroom-notice small,dialog.classroom-dialog .classroom-consent{color:#c6d8e1}
dialog.classroom-dialog .student-classroom-rules{background:#0a1d2a;border-color:#31556c;color:#dbe9ef}
dialog.classroom-dialog .student-classroom-rules b{color:#f5fbff}
dialog.classroom-dialog .student-classroom-rules li{color:#c7d8e1}
dialog.classroom-dialog .prejoin-device-status{margin-top:10px;padding:12px 14px;border-radius:12px;background:#0b2030;border:1px solid #274c63;color:#c8dbe5;display:grid;gap:4px}
dialog.classroom-dialog .prejoin-device-status.error{background:#32181b;border-color:#7d3037;color:#ffd1d1}
dialog.classroom-dialog .prejoin-device-status.error b{color:#fff0f0}
dialog.classroom-dialog .prejoin-device-status.error span{color:#ffd1d1}
dialog.classroom-dialog .prejoin-permission-help{margin-top:10px;padding:14px 16px;border-radius:12px;background:#102535;border:1px solid #31556c;color:#dceaf0}
dialog.classroom-dialog .prejoin-permission-help[hidden]{display:none!important}
dialog.classroom-dialog .prejoin-permission-help b{color:#f5fbff}
dialog.classroom-dialog .prejoin-permission-help ol{margin:8px 0 8px 20px;padding:0;color:#d0e0e7;line-height:1.55}
dialog.classroom-dialog .prejoin-permission-help li+li{margin-top:4px}
dialog.classroom-dialog .prejoin-permission-help p,dialog.classroom-dialog .prejoin-permission-help small{color:#b9ccd6}
dialog.classroom-dialog .always-open-badge{color:#91f2eb;background:#0c2b31;border-color:#28716f}
dialog.classroom-dialog .mic-meter{color:#b8cad5}
dialog.classroom-dialog #enterISpeakClassroom:disabled{opacity:.48;cursor:not-allowed}

/* V18.5 classroom next-lesson / prejoin UX */
dialog.classroom-dialog{background:#06111d!important;color:#eaf4f8!important}
dialog.classroom-dialog::backdrop{background:rgba(2,8,14,.92)!important}
dialog.classroom-dialog #modalBody{background:#06111d!important;color:#eaf4f8!important;max-width:none!important;margin:0!important;padding:0!important;min-height:100%!important}
dialog.classroom-dialog.portal-page-dialog{background:#06111d!important}
body.portal-page-mode:has(dialog.classroom-dialog[open]){background:#06111d!important}
.classroom-prejoin{max-width:1060px!important;min-height:100%!important;padding:28px 30px 108px!important;background:#06111d!important;color:#eaf4f8!important}
.classroom-brand{margin-bottom:8px}.classroom-brand h2{color:#fff!important;font-size:28px}.classroom-brand p{color:#b8cad5!important}.classroom-brand .next-lesson-line{display:block;margin-top:8px;color:#78e9df!important;font-size:15px}
.prejoin-grid{margin:18px 0 10px!important;align-items:start}.prejoin-settings{background:#0a1b29;border:1px solid #214158;border-radius:18px;padding:18px}.prejoin-settings h3{color:#fff!important}.prejoin-settings label,.prejoin-settings small{color:#b8cad5!important}.prejoin-settings select{background:#0d2535!important;color:#fff!important;border:1px solid #31566e!important}
.secure-room-note{display:grid;gap:4px;padding:12px 14px;margin-bottom:15px;border-radius:13px;background:#0d2632;border:1px solid #24685f}.secure-room-note b{color:#70e8dc!important}.secure-room-note span{color:#bed2dc!important;font-size:13px}
.classroom-notice.compact{margin:13px 0 0!important;padding:13px!important}.classroom-notice.compact p{font-size:12px;line-height:1.45;margin:6px 0}.conduct-details{margin-top:8px}.conduct-details summary{cursor:pointer;color:#d9edf3;font-weight:800}.conduct-details ul{padding-left:20px;color:#a9c0cc;font-size:12px;line-height:1.5}
.prejoin-actionbar{position:sticky;bottom:0;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px -30px -108px;padding:14px 30px 18px;background:linear-gradient(180deg,rgba(6,17,29,.94),#06111d 30%);border-top:1px solid #19394d;box-shadow:0 -10px 28px rgba(0,0,0,.22)}.prejoin-actionbar .classroom-consent{margin:0;max-width:620px;color:#d3e2e8!important}.prejoin-action-buttons{display:flex;gap:10px;flex:0 0 auto}.prejoin-action-buttons button{min-width:150px;min-height:48px}.prejoin-action-buttons .primary:disabled{opacity:.48;cursor:not-allowed}
.prejoin-device-status{min-height:0;margin-top:8px}.prejoin-device-status.error{color:#ffaaa4}.prejoin-permission-help{background:#32171a;border:1px solid #733138;color:#ffd2cf;border-radius:13px;padding:12px 14px;margin-top:10px}.prejoin-permission-help b{color:#fff!important}.prejoin-permission-help li,.prejoin-permission-help small,.prejoin-permission-help p{color:#ffd2cf!important}
.prejoin-preview.devices-off .prejoin-preview-placeholder{display:grid!important}.prejoin-preview.devices-off .prejoin-preview-placeholder::after{content:'Camera and microphone are off';font-weight:800;color:#a9c1cd}.prejoin-preview.devices-off .prejoin-preview-placeholder{font-size:0}
.next-classroom-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:16px 0 20px;padding:18px 20px;border-radius:18px;border:1px solid #23a89f;background:linear-gradient(135deg,rgba(24,201,194,.16),rgba(8,31,45,.72))}.next-classroom-card>div{display:grid;gap:5px}.next-classroom-card h3,.next-classroom-card h4{margin:0;color:#f4fbff}.next-classroom-card span{color:#c3d7df}.next-classroom-card small{color:#91adbb}.next-classroom-card .classroom-launch{min-width:190px}.practice-classroom-card{opacity:.9}.empty-next-class{display:grid;gap:4px;padding:16px;border-radius:14px;border:1px dashed #31566e;background:#0a1b29;margin:14px 0}.empty-next-class span{color:#8fa9b8}
.classroom-video-tile.practice-empty .video-wait{color:#8ba8b8}.classroom-video-tile.connected video{display:block}.classroom-video-tile.connected .video-wait{display:none!important}
.ispeak-classroom{min-height:0!important;height:100%!important}.ispeak-classroom>main{min-height:0!important}.classroom-stage{min-height:0}.classroom-video-tile{min-height:240px}
@media(max-width:900px){.classroom-prejoin{padding:20px 14px 132px!important}.prejoin-actionbar{margin:16px -14px -132px;padding:12px 14px 16px;flex-direction:column;align-items:stretch}.prejoin-action-buttons{width:100%}.prejoin-action-buttons button{flex:1;min-width:0}.next-classroom-card{align-items:stretch;flex-direction:column}.next-classroom-card .classroom-launch{width:100%;min-width:0}}
/* V18.5.0 collaborative classroom refinement */
.ispeak-classroom>main{grid-template-columns:minmax(0,1.05fr) minmax(520px,.95fr)}
.classroom-tools{overflow:hidden}
.live-tools-heading{padding:14px 16px;border-bottom:1px solid #18374f;display:grid;gap:3px;background:#091a28}
.live-tools-heading b{color:#f4fbff;font-size:15px}.live-tools-heading small{color:#8ea8b8}
#roomToolBody{padding:12px;overflow:auto}
.classroom-live-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(210px,.72fr) minmax(330px,1.28fr);gap:10px;min-height:calc(100vh - 190px)}
.live-tool-panel{min-width:0;min-height:0;border:1px solid #1d4056;border-radius:14px;background:#0a1b29;padding:11px;display:flex;flex-direction:column;overflow:hidden}
.live-tool-panel .workspace-head{flex:0 0 auto}.live-tool-panel .workspace-head b{color:#f3fbff}.live-tool-panel .workspace-head small{color:#8ea8b8}
.chat-panel .room-chat-log{height:auto;min-height:0;flex:1;overflow:auto}.chat-panel .room-chat-send{flex:0 0 auto}
.notes-panel #roomWorkspace{min-height:0;height:auto;flex:1;resize:none;background:#071522;color:#edf7fb;border-color:#294b61}
.whiteboard-panel{grid-column:1/-1}.whiteboard-panel .whiteboard-wrap{height:auto;min-height:260px;flex:1}.whiteboard-panel .whiteboard-toolbar{flex:0 0 auto}
.classroom-info-drawer{margin-top:10px;border:1px solid #1d4056;border-radius:12px;background:#091a28;color:#dcebf2}.classroom-info-drawer summary{cursor:pointer;padding:10px 12px;font-weight:800;color:#a8c4d2}.classroom-info-drawer>div{margin:0 10px 10px}
.prejoin-settings select:not(:disabled){cursor:pointer}.prejoin-settings select:disabled{opacity:.65;cursor:not-allowed}
@media(max-width:1150px){.ispeak-classroom>main{grid-template-columns:minmax(0,1fr) minmax(430px,.9fr)}.classroom-live-tools{grid-template-columns:1fr;grid-template-rows:240px 240px 420px}.whiteboard-panel{grid-column:auto}}
@media(max-width:900px){.ispeak-classroom>main{grid-template-columns:1fr}.classroom-live-tools{min-height:0;grid-template-columns:1fr;grid-template-rows:300px 280px 460px}.whiteboard-panel{grid-column:auto}.live-tools-heading{position:sticky;top:0;z-index:2}.classroom-tools{overflow:visible}}
/* V18.5.0 teacher messaging, academy and conduct */
.teacher-message-layout{display:grid;grid-template-columns:260px 1fr;gap:16px;min-height:430px}.teacher-message-layout aside{display:grid;align-content:start;gap:8px}.teacher-message-student{display:grid;text-align:left;padding:12px;border:1px solid #d5e3ea;border-radius:12px;background:#f7fbfd}.teacher-message-student.active{border-color:#16aaa5;background:#e9fbfa}.teacher-message-student small{color:#6e8494}.teacher-message-layout section{border:1px solid #d8e5eb;border-radius:16px;padding:14px;display:flex;flex-direction:column;min-height:430px}.message-thread-head{padding-bottom:10px;border-bottom:1px solid #e0e9ee}.message-thread-head div{display:grid}.message-learning-prompts{display:flex;gap:7px;flex-wrap:wrap;padding:10px 0}.message-learning-prompts button{border:1px solid #b9d8db;background:#eefafa;border-radius:999px;padding:7px 10px}.portal-message-list{flex:1;overflow:auto;display:flex;flex-direction:column;gap:8px;padding:8px 0}.portal-message{max-width:75%;background:#eef3f6;border-radius:12px;padding:9px 11px}.portal-message.mine{align-self:flex-end;background:#dff8f6}.portal-message p{margin:4px 0}.portal-message small{color:#708695}.portal-message-compose{display:grid;grid-template-columns:1fr auto;gap:8px}.portal-message-compose textarea{resize:none}.academy-progress{display:grid;text-align:center}.academy-progress b{font-size:28px;color:#087f7b}.academy-modules{display:grid;gap:10px}.academy-modules article{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;border:1px solid #d9e5ea;border-radius:14px;padding:14px}.academy-modules article>span{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#e5f8f7;color:#087f7b;font-weight:900}.academy-modules p{margin:4px 0;color:#637b8b}.academy-final{margin-top:18px;padding:18px;border-radius:16px;background:#eefafa;border:1px solid #bfe3e1}.academy-lesson-content{display:grid;gap:6px;margin:18px 0;padding:18px;border-radius:14px;background:#f4f8fa}.teacher-certificate{max-width:980px;margin:auto}.certificate-border{padding:48px;border:8px double #12324a;text-align:center;background:#fff}.certificate-border img{width:90px}.certificate-border>span{display:block;letter-spacing:3px;font-weight:900;color:#148f8a}.certificate-border h1{font-size:38px;color:#102f48}.certificate-border h2{font-size:34px;color:#148f8a;border-bottom:1px solid #aacbd0;display:inline-block;padding:0 30px 8px}.certificate-border h3{font-size:24px}.certificate-meta{display:flex;justify-content:space-between;gap:20px;margin-top:40px;font-size:13px}.conduct-warning{background:#fff3d8;border:1px solid #e7b24b;padding:10px;border-radius:10px}
@media(max-width:850px){.teacher-message-layout{grid-template-columns:1fr}.teacher-message-layout aside{grid-template-columns:repeat(2,minmax(0,1fr))}.academy-modules article{grid-template-columns:40px 1fr}.academy-modules article button{grid-column:1/-1}.certificate-border{padding:25px}.certificate-meta{flex-direction:column}}
/* V18.5.1 — premium teacher portal + classroom polish */
dialog.portal-page-dialog{background:linear-gradient(145deg,#061522 0%,#0a2636 52%,#0b3540 100%)}dialog.portal-page-dialog #modalBody{background:transparent}.teacher-portal{width:min(1320px,96vw);min-height:78vh;margin:18px auto;background:#071b29;color:#eaf8f7;border:1px solid #164358;border-radius:24px;padding:28px;box-shadow:0 24px 70px rgba(0,0,0,.3)}.teacher-portal .eyebrow{color:#22d3c5}.teacher-portal-head{padding:8px 4px 22px;border-bottom:1px solid #194358}.teacher-portal-head h2{font-size:34px;color:#fff;margin:4px 0}.teacher-portal-head p,.teacher-portal p,.teacher-portal small,.teacher-portal span{color:#9db8c7}.teacher-account-badges span{background:#0d3540;border-color:#1c625f;color:#8af0e6}.teacher-portal-tabs{gap:8px;padding:16px 0;margin:0 0 24px;border-bottom:1px solid #194358}.teacher-portal-tabs button{background:#0c2a3a;color:#b9d2df;border:1px solid #19475b;padding:11px 15px}.teacher-portal-tabs button:hover{background:#12384a}.teacher-portal-tabs button.active{background:#12aaa4;color:#03151d;border-color:#23d2c7}.teacher-portal #teacherPortalBody{min-height:430px}.teacher-portal h3{color:#fff}.teacher-portal label{color:#cce2e9}.teacher-portal input,.teacher-portal textarea,.teacher-portal select{background:#081722;color:#eefbfb;border-color:#285064}.teacher-portal .empty-state,.teacher-portal .info-panel,.teacher-portal .review-note{background:#0b2534;border-color:#245064;color:#bcd0da}.teacher-portal-footer{border-color:#194358}.teacher-portal-footer .text-btn{appearance:none;border:1px solid #27536a;border-radius:10px;background:#0c2a3a;color:#d8edf2;padding:10px 16px}.teacher-portal-footer .text-btn:hover{background:#12384a}.nathan-admin-panel{padding:8px}.admin-owner-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:760px}.owner-message-area{margin-top:22px;max-width:850px}.owner-message-log{display:grid;gap:10px;margin-top:18px}.owner-message-log article{padding:14px;border:1px solid #285064;border-radius:14px;background:#0b2534}.owner-message-log p{color:#e8f5f6}.classroom-prejoin{max-width:1040px}.prejoin-preview[data-effect="studio-light"]{background:linear-gradient(135deg,#e8f7f5,#c7ece8);border-color:#21bcb3}.prejoin-preview[data-effect="studio-dark"]{background:linear-gradient(135deg,#071522,#0e3542);border-color:#22d3c5}.prejoin-preview[data-effect="blur"] video{filter:blur(8px);transform:scale(1.04)}.ispeak-classroom:fullscreen{width:100vw;height:100vh;background:#06111d}.ispeak-classroom:fullscreen main{height:calc(100vh - 82px)}.ispeak-classroom:fullscreen .classroom-video-tile{min-height:0}.ispeak-classroom:fullscreen .classroom-stage{padding:10px}.ispeak-classroom:fullscreen .classroom-controls{padding-top:8px}@media(max-width:850px){.teacher-portal{width:96vw;padding:18px}.admin-owner-grid{grid-template-columns:1fr}}

/* V18.6 deep classroom + academy polish */
.prejoin-preview[data-effect="blur"] video{filter:none!important;transform:none!important}
.prejoin-preview[data-effect="studio-light"],.prejoin-preview[data-effect="studio-dark"],.prejoin-preview[data-effect="blur"]{overflow:hidden}
.prejoin-preview[data-effect="studio-light"]::after,.prejoin-preview[data-effect="studio-dark"]::after,.prejoin-preview[data-effect="blur"]::after{content:'AI background effect';position:absolute;right:12px;top:12px;padding:6px 9px;border-radius:999px;background:rgba(4,18,28,.72);color:#e8fbfa;font-size:12px;font-weight:700;pointer-events:none}
.classroom-live-tools{grid-template-columns:minmax(270px,.8fr) minmax(290px,1fr) minmax(360px,1.2fr)!important}
.room-file-list{display:grid;gap:9px;max-height:320px;overflow:auto;margin:10px 0}.room-file-list article{display:flex;gap:10px;justify-content:space-between;align-items:center;padding:11px 12px;border:1px solid #244c61;border-radius:12px;background:#0a2231}.room-file-list article>div{display:grid;gap:3px;min-width:0}.room-file-list b{color:#effdfc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-file-list small{color:#91aebd}.empty-shared-files{display:grid;gap:5px;padding:18px;border:1px dashed #31566b;border-radius:12px;color:#a9c2cf}.room-file-upload{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center}.file-share-button{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 12px;border:1px solid #31586d;border-radius:10px;background:#0d2939;color:#dff7f5!important;font-weight:700;cursor:pointer}.file-share-button input{position:absolute;opacity:0;pointer-events:none}.files-panel #roomFileStatus{color:#8faebb!important}
.ispeak-classroom.conversation-only .classroom-tools{display:none}.ispeak-classroom.conversation-only main{grid-template-columns:1fr!important}.ispeak-classroom.conversation-only .classroom-stage{min-height:calc(100vh - 150px)}.ispeak-classroom.conversation-only .classroom-videos{height:calc(100vh - 245px);grid-template-columns:repeat(2,minmax(0,1fr))}.ispeak-classroom.conversation-only .classroom-video-tile{min-height:0;height:100%}.ispeak-classroom.fullscreen-fallback,.ispeak-classroom.browser-fullscreen{position:fixed!important;inset:0!important;z-index:99999!important;width:100vw!important;height:100vh!important;max-width:none!important;border-radius:0!important;background:#06111d!important;overflow:auto!important}.ispeak-classroom.fullscreen-fallback main,.ispeak-classroom.browser-fullscreen main{min-height:calc(100vh - 90px)}
.academy-certificate-preview{margin:18px 0;padding:12px;border:1px solid #2b596b;border-radius:18px;background:#071824}.academy-certificate-preview>div{min-height:230px;border:4px double #18aaa4;border-radius:12px;background:#f9fcfd;color:#102f48;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px;position:relative}.academy-certificate-preview span{letter-spacing:3px;color:#178f8a!important;font-weight:900}.academy-certificate-preview b{font-family:Georgia,serif;font-size:34px;margin:10px 0;color:#102f48!important}.academy-certificate-preview strong{font-family:Georgia,serif;font-size:30px;color:#17aaa4;margin:15px 0 5px}.academy-certificate-preview small,.academy-certificate-preview em{color:#5f7783!important}.academy-certificate-preview.locked>div{filter:saturate(.7)}.academy-certificate-preview.locked::after{content:'PREVIEW — LOCKED';position:absolute}.academy-standard{display:grid;gap:5px;padding:14px 16px;margin:14px 0 18px;border-radius:14px;background:#0b2a39;border:1px solid #28566a}.academy-standard b{color:#fff}.academy-standard span{color:#a9c5d0}.academy-checkpoint,.academy-rubric{margin:18px 0;padding:16px;border-radius:14px;background:#0a2635;border:1px solid #28556a}.academy-checkpoint label,.academy-final-questions label{display:grid;gap:7px;margin:12px 0}.academy-final-questions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.academy-exam,.academy-lesson{max-width:1050px;margin:auto}.academy-exam select,.academy-lesson select{width:100%}
.teacher-profile-editor-shell{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:24px;align-items:start}.teacher-profile-preview-card{position:sticky;top:14px;padding:18px;border:1px solid #24536a;border-radius:18px;background:#0a2635;text-align:center}.teacher-profile-preview-card img{width:132px;height:132px;object-fit:cover;border-radius:50%;border:4px solid #19aaa4}.teacher-profile-preview-card h3{margin:12px 0 4px}.teacher-profile-preview-card p{margin:5px 0}.teacher-profile-form-card{display:grid;gap:14px;padding:20px;border:1px solid #24536a;border-radius:18px;background:#091f2d}.teacher-media-section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.teacher-media-section>div{padding:14px;border:1px solid #244d61;border-radius:14px;background:#081a26}
@media(max-width:980px){.classroom-live-tools{grid-template-columns:1fr!important}.academy-final-questions{grid-template-columns:1fr}.teacher-profile-editor-shell{grid-template-columns:1fr}.teacher-profile-preview-card{position:static}.teacher-media-section{grid-template-columns:1fr}.ispeak-classroom.conversation-only .classroom-videos{grid-template-columns:1fr;height:auto}.ispeak-classroom.conversation-only .classroom-video-tile{min-height:280px}}
\n/* V18.6 secure in-class lesson-file preview */\n.room-file-actions{display:flex;gap:8px;flex-wrap:wrap}.room-file-preview{margin-top:12px;border:1px solid rgba(83,211,202,.32);border-radius:16px;background:#071b2a;overflow:hidden}.room-file-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#0c2940;color:#fff}.room-file-preview iframe{display:block;width:100%;height:440px;border:0;background:#fff}.docx-text-preview{max-height:440px;overflow:auto;padding:18px;background:#fff;color:#12324a;line-height:1.65;white-space:normal}.room-file-preview[hidden]{display:none!important}\n@media(max-width:720px){.room-file-preview iframe,.docx-text-preview{height:340px;max-height:340px}}\n
.owner-teacher-list{display:grid;gap:12px;margin-top:18px}.owner-teacher-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid rgba(43,196,188,.28);border-radius:16px;background:rgba(7,27,45,.58)}.owner-teacher-card>div:first-child{display:grid;gap:4px}.owner-teacher-card b{font-size:1.05rem;color:#fff}.owner-teacher-card span,.owner-teacher-card small{color:#a9c3d1}.owner-teacher-card>div:last-child{display:flex;gap:8px;flex-wrap:wrap}.owner-chat-panel{margin-top:18px;padding:18px;border-radius:16px;background:rgba(9,37,56,.8);border:1px solid rgba(43,196,188,.25)}
.teacher-certificate .certificate-border{position:relative;overflow:hidden;background:linear-gradient(145deg,#fffdf7,#f4fbfa);color:#0b2940;border:8px solid #0b2940;outline:3px solid #19aaa5;outline-offset:-20px;padding:58px 70px;text-align:center;min-height:650px}.teacher-certificate .certificate-border:before,.teacher-certificate .certificate-border:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;background:rgba(25,170,165,.08)}.teacher-certificate .certificate-border:before{left:-100px;top:-100px}.teacher-certificate .certificate-border:after{right:-100px;bottom:-100px}.teacher-certificate .certificate-border img{width:90px;height:90px;object-fit:contain}.teacher-certificate .certificate-border>span{display:block;margin:18px 0 10px;color:#159f9a;font-weight:900;letter-spacing:.18em}.teacher-certificate h1{font-family:Georgia,serif;font-size:2.4rem;margin:12px 0}.teacher-certificate h2{font-family:Georgia,serif;font-style:italic;color:#159f9a;font-size:2.5rem;border-bottom:1px solid #cbdcdb;display:inline-block;padding:0 55px 12px}.teacher-certificate h3{font-size:1.35rem}.teacher-certificate .certificate-meta{display:flex;justify-content:space-between;gap:20px;margin-top:45px;padding-top:20px;border-top:1px solid #cbdcdb;font-size:.9rem}
/* V18.5 classroom background reliability pass */
.prejoin-preview[data-effect="bg-ispeak-classroom"]{border-color:#22d3c5;background:#02070b}
.prejoin-preview[data-effect="bg-ispeak-classroom"]::after{content:'iSpeak Classroom';position:absolute;right:12px;top:12px;padding:6px 10px;border-radius:999px;background:rgba(4,18,28,.78);color:#e8fbfa;font-size:12px;font-weight:800;pointer-events:none}

/* V18.5 owner/security/support/certificate polish */
.academy-award-preview{max-width:760px;margin:22px auto;transform:none}.academy-award-preview.locked{filter:none;opacity:.9;position:relative}.certificate-preview-stamp{position:absolute;left:50%;bottom:78px;transform:translateX(-50%) rotate(-6deg);border:3px solid #c54848;color:#c54848;padding:8px 18px;font-weight:900;letter-spacing:2px;background:rgba(255,255,255,.86)}
.support-thread-log,#supportChatLog{display:grid;gap:8px;max-height:360px;overflow:auto;margin:12px 0;padding:10px;border:1px solid #21445b;border-radius:14px;background:#071522}.support-thread-log article,.support-msg{padding:10px 12px;border-radius:12px;background:#102637}.support-thread-log article.mine,.support-msg.mine{background:#0f625c}.support-thread-log p,.support-msg p{margin:4px 0}.support-thread-log small,.support-msg small{opacity:.7;font-size:11px}.support-admin-box{margin-top:22px;padding-top:18px;border-top:1px solid #24465d}.interview-invite-box{margin:20px 0;padding:16px;border:1px solid #2b6178;border-radius:14px;background:#0a2030}.device-verify-shell{text-align:left;max-width:520px;margin:auto}.device-verify-shell img{width:72px;height:72px;object-fit:contain}
.admin-observer-note{display:none!important}.classroom-video-tile[data-video-tile="admin"]{display:none!important}


/* V18.5 teacher profile readability pass */
.teacher-profile-form-card label,.teacher-profile-form-card label>span{color:#72e3dc!important;font-weight:750}
.teacher-profile-form-card small,.teacher-profile-form-card p,.teacher-profile-preview-card p,.teacher-profile-preview-card small{color:#c9e6e8!important}
.teacher-profile-form-card input,.teacher-profile-form-card textarea,.teacher-profile-form-card select{color:#f7ffff!important;background:#061923!important;border-color:#2b6573!important}
.teacher-profile-form-card input::placeholder,.teacher-profile-form-card textarea::placeholder{color:#86aeb4!important;opacity:1}
.teacher-profile-form-card .info-panel{background:#0b2c39!important;border-color:#2c6974!important;color:#dff8f7!important}
.teacher-profile-form-card .info-panel b,.teacher-profile-preview-card b{color:#72e3dc!important}
.teacher-profile-preview-card h3,.teacher-profile-form-card h3{color:#fff!important}
.teacher-profile-editor-shell .eyebrow,.portal-section-head .eyebrow{color:#5de1d8!important}
.teacher-profile-editor-shell .portal-section-head p{color:#c9e6e8!important}


/* === ISPEAK HEROES LIBRARY V18.6 === */
.lib-hub,.heroes-lib,.hero-shelf,.manga-reader{max-width:1420px;margin:0 auto;padding:28px;color:#eefaff}.eyebrow{font-size:12px;letter-spacing:.14em;font-weight:900;color:#24c7bb}.lib-hub h1,.heroes-lib h1,.hero-shelf h1{font-size:34px;margin:6px 0}.lib-hub p,.heroes-lib p,.hero-shelf p{color:#a8c3d2}.lib-path-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:28px}.lib-path-card{min-height:210px;border:1px solid #1e536c;border-radius:24px;background:linear-gradient(145deg,#0c2c40,#071c2a);color:#eefaff;padding:30px;display:flex;align-items:center;gap:22px;text-align:left;cursor:pointer}.lib-path-card:hover,.heroes-lib .hero-card:hover{transform:translateY(-2px);border-color:#26c8bd}.lib-path-icon{font-size:48px}.lib-path-card b{display:block;font-size:28px}.lib-path-card small{display:block;color:#a8c3d2;font-size:15px;margin-top:8px}.arrow{margin-left:auto;font-size:28px}.heroes-top{display:flex;gap:20px}.hero-back,.manga-toolbar button{background:#0c2c40;border:1px solid #25546d;color:#eaf8ff;border-radius:12px;padding:10px 14px}.hero-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:26px}.heroes-lib .hero-card{background:#092537;border:1px solid #1d4c64;border-radius:20px;overflow:hidden;cursor:pointer}.hero-art{height:225px;position:relative;overflow:hidden;background:radial-gradient(circle,#37768a,#071a28 70%)}.hero-art img{position:absolute;height:205px;max-width:90%;object-fit:contain;left:50%;bottom:0;transform:translateX(-50%);z-index:2}.hero-burst{position:absolute;inset:-35%;background:repeating-conic-gradient(#ffffff12 0 8deg,transparent 8deg 20deg)}.hero-jack{background:radial-gradient(circle,#71808a,#121c25 70%)}.hero-pedro{background:radial-gradient(circle,#b85c35,#301d28 70%)}.hero-loulou{background:radial-gradient(circle,#8765a4,#27213a 70%)}.hero-yuki{background:radial-gradient(circle,#5e9cb2,#152b3a 70%)}.hero-dariya{background:radial-gradient(circle,#a68449,#29382f 70%)}.hero-zyad{background:radial-gradient(circle,#987548,#283044 70%)}.hero-body{padding:16px}.hero-body h2{margin:0}.hero-body p{font-size:13px;min-height:38px}.power-chip{display:inline-block;padding:5px 9px;border-radius:999px;background:#0b4a4a;color:#9ef2e8;font-size:12px;font-weight:800}.vols{display:flex;justify-content:space-between;margin-top:14px;font-size:11px;color:#8fb0c1}.hero-profile{display:flex;align-items:center;gap:24px;margin:22px 0;background:#092537;border:1px solid #1d4c64;border-radius:22px;padding:20px}.hero-profile img{height:135px;width:135px;object-fit:contain}.volume-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.volume-card{background:#092537;border:1px solid #1d4c64;border-radius:20px;padding:0;overflow:hidden;color:#eefaff;text-align:left;cursor:pointer}.manga-cover{height:470px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 30%,#356f80,#071824 72%)}.manga-cover img{position:absolute;z-index:2;left:50%;bottom:42px;transform:translateX(-50%);height:360px;max-width:88%;object-fit:contain;filter:drop-shadow(0 18px 18px #0008)}.cover-rays{position:absolute;inset:-40%;background:repeating-conic-gradient(from 10deg,#fff0 0 9deg,#ffffff12 10deg 13deg)}.vol-tag{position:absolute;z-index:4;top:18px;left:18px;background:#20c8ba;color:#06252a;border-radius:999px;padding:7px 11px;font-weight:900;font-size:11px}.cover-title{position:absolute;z-index:4;left:0;right:0;bottom:0;padding:48px 22px 20px;background:linear-gradient(transparent,#04111bea 45%)}.cover-title b{font-size:27px;display:block}.cover-title small{color:#a9c6d4}.volume-meta{padding:16px 20px;display:flex;justify-content:space-between}.manga-reader{max-width:980px}.manga-toolbar{position:sticky;top:0;z-index:20;background:#061925ee;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:12px;border:1px solid #1d4c64;border-radius:16px}.manga-toolbar div{text-align:center}.manga-toolbar small{display:block;color:#9ab9c9}.manga-toolbar select{justify-self:end;background:#0c2c40;color:white;border:1px solid #25546d;border-radius:10px;padding:9px}.chapter-title{text-align:center;margin:34px 0 18px}.chapter-title span{font-size:11px;color:#24c7bb;font-weight:900}.manga-page{background:#f5f1e8;color:#101820;min-height:1040px;margin:0 auto 34px;padding:18px;display:grid;gap:12px;grid-template-columns:1.2fr .8fr;grid-template-rows:1fr .8fr 1fr}.panel{border:4px solid #101820;position:relative;overflow:hidden;background:#dbe2df}.panel img{position:absolute;max-height:92%;max-width:80%;object-fit:contain;bottom:0;left:50%;transform:translateX(-50%);z-index:2}.p1{grid-row:span 2}.layout-1 .p3{grid-column:span 2}.layout-2{grid-template-columns:.8fr 1.2fr}.layout-2 .p4{grid-column:span 2}.scene-bg{position:absolute;inset:0;background:linear-gradient(135deg,#d9e5e1,#8aa4a8)}.scene-bg.alt{background:repeating-linear-gradient(120deg,#c8d5d3 0 18px,#9fb4b5 18px 22px)}.speed-lines{position:absolute;inset:-30%;background:repeating-conic-gradient(#1110 0 8deg,#1113 9deg 10deg)}.manga-page .bubble{position:absolute;z-index:5;top:18px;right:18px;max-width:48%;background:white;border:3px solid #111;border-radius:50%;padding:14px;text-align:center;font-weight:800}.caption{position:absolute;z-index:5;left:14px;bottom:14px;background:#111;color:white;padding:9px 12px;font-weight:800}.sfx{position:absolute;z-index:4;top:35%;left:10%;font-size:48px;font-weight:900;transform:rotate(-12deg);text-shadow:3px 3px white}.manga-nav{display:flex;justify-content:space-between;align-items:center;margin:25px 0 60px}.manga-nav button{padding:12px 18px;border-radius:12px;border:1px solid #25546d;background:#0c2c40;color:white}.manga-nav button:disabled{opacity:.35}@media(max-width:900px){.hero-grid{grid-template-columns:repeat(2,1fr)}.volume-grid,.lib-path-grid{grid-template-columns:1fr}.manga-page{min-height:720px}}@media(max-width:540px){.hero-grid{grid-template-columns:1fr}.manga-reader{padding:10px}.manga-toolbar{grid-template-columns:auto 1fr}.manga-toolbar select{grid-column:span 2;width:100%}.manga-page{min-height:610px;padding:9px;gap:7px}}

/* === V18.6.1 LIBRARY HUB + HERO SERIES POLISH === */
#library{max-width:none}.library-hub-screen,.library-subscreen{max-width:1420px;margin:0 auto;padding:30px 28px}.library-hero-head{max-width:760px;margin-bottom:28px}.library-hero-head h1{font-size:clamp(38px,5vw,66px);line-height:1;margin:8px 0 14px;letter-spacing:-.035em}.library-hero-head p{font-size:17px;color:#a9c5d4}.library-paths{display:grid;grid-template-columns:1.35fr .85fr;gap:22px}.library-path{position:relative;min-height:390px;overflow:hidden;border:1px solid #24566d;border-radius:28px;padding:28px;text-align:left;color:#effcff;cursor:pointer;transition:.2s ease}.library-path:hover{transform:translateY(-3px);border-color:#2bd4c8;box-shadow:0 18px 48px #0005}.hero-series-path{background:radial-gradient(circle at 62% 35%,#1a6b78 0,#0a2b3d 42%,#061724 78%)}.classic-library-path{background:radial-gradient(circle at 50% 28%,#5f4632 0,#172d35 52%,#071722 82%)}.path-kicker{position:relative;z-index:5;display:inline-block;padding:7px 11px;border-radius:999px;background:#0b171db8;border:1px solid #ffffff25;color:#74eee5;font-size:11px;font-weight:900;letter-spacing:.1em}.path-character-stack{position:absolute;right:-20px;top:25px;width:62%;height:260px}.path-character-stack:before{content:"";position:absolute;inset:18% 5%;background:#2ce3d833;filter:blur(30px);border-radius:50%}.path-character-stack img{position:absolute;bottom:0;height:230px;max-width:55%;object-fit:contain;filter:drop-shadow(0 16px 15px #0008)}.path-character-stack img:nth-child(1){left:0;z-index:3}.path-character-stack img:nth-child(2){left:29%;height:245px;z-index:2}.path-character-stack img:nth-child(3){right:0;z-index:1}.path-copy{position:absolute;z-index:6;left:28px;right:28px;bottom:28px}.path-copy h2{font-size:30px;margin:0 0 8px}.path-copy p{max-width:650px;color:#c0d5df;margin:0 0 16px}.path-copy span{font-weight:900;color:#67eee5}.classic-books-art{position:absolute;inset:60px 30px 120px;display:flex;align-items:flex-end;justify-content:center;gap:10px}.classic-books-art i{display:block;width:88px;height:180px;border:2px solid #d7b88766;border-radius:7px 12px 12px 7px;background:linear-gradient(90deg,#2a1810,#8b6742 12%,#47301e 14%,#6c4c2d);transform:rotate(-6deg);box-shadow:8px 12px 20px #0006}.classic-books-art i:nth-child(2){height:210px;transform:translateY(-6px);background:linear-gradient(90deg,#122934,#477b86 12%,#173a46 14%,#245868)}.classic-books-art i:nth-child(3){height:170px;transform:rotate(7deg);background:linear-gradient(90deg,#351f2d,#8d587b 12%,#4b2940 14%,#6d3b5d)}.library-feature-strip{margin-top:22px;border:1px solid #1e4b5e;background:#0a2634;border-radius:16px;padding:16px 20px;display:flex;gap:16px;align-items:center}.library-feature-strip span{color:#a9c5d4}.library-back{border:1px solid #2a5a70;background:#0a2636;color:#eaffff;border-radius:12px;padding:10px 15px;font-weight:800;cursor:pointer;margin-bottom:18px}.heroes-lib,.hero-shelf,.manga-reader{padding-top:0}.hero-book-count{position:absolute;right:12px;top:12px;z-index:4;background:#06161dcc;border:1px solid #ffffff2b;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:900;color:#8df6ed}.hero-titles{display:grid;grid-template-columns:1fr auto 1fr;gap:6px;align-items:center;margin-top:15px;padding-top:12px;border-top:1px solid #ffffff14}.hero-titles b{font-size:11px;line-height:1.25;color:#d7edf5}.hero-titles span{color:#3be2d6}.hero-profile strong{display:block;color:#d9eef5;margin-top:8px;max-width:760px}.series-order{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin:8px 0 12px;color:#6eece3;font-size:10px;font-weight:900;letter-spacing:.08em}.series-order i{height:1px;background:linear-gradient(90deg,#27cfc3,#ffffff20)}.volume-meta div{display:grid;gap:3px}.volume-meta small{color:#8eafbe}.cover-title small{display:block;color:#62e7de;font-weight:900;letter-spacing:.08em}.cover-title em{display:block;color:#b4ccd6;font-style:normal;margin-top:5px}.manga-cover:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 80px #0009;pointer-events:none}.cover-city{position:absolute;left:-10%;right:-10%;bottom:0;height:44%;opacity:.6;background:linear-gradient(135deg,transparent 0 45%,#020a0f 46% 52%,transparent 53%) 0 0/90px 100%,linear-gradient(45deg,transparent 0 48%,#071219 49% 58%,transparent 59%) 0 0/130px 100%}.volume-2{filter:saturate(1.18)}
@media(max-width:900px){.library-paths{grid-template-columns:1fr}.library-path{min-height:360px}.path-character-stack{width:70%}.library-feature-strip{align-items:flex-start;flex-direction:column;gap:5px}}
@media(max-width:600px){.library-hub-screen,.library-subscreen{padding:20px 14px}.library-hero-head h1{font-size:40px}.library-path{min-height:340px;padding:20px}.path-copy{left:20px;right:20px;bottom:20px}.path-copy h2{font-size:25px}.path-character-stack{right:-35px;width:92%;opacity:.85}.library-feature-strip{font-size:13px}}

/* === V18.6.2 Story Series reliability pass === */
.story-series .hero-grid{align-items:stretch}
.story-hero-card{display:flex;flex-direction:column;min-height:360px;padding:0!important;text-align:left!important;color:#eefaff;background:linear-gradient(160deg,#0b3041,#071a27 72%)!important;overflow:hidden;border:1px solid #24566d!important}
.story-hero-card:hover{transform:translateY(-3px);border-color:#31d6cb!important;box-shadow:0 16px 42px #0005}
.story-cover-symbol{height:150px;display:grid;place-items:center;font-size:76px;font-weight:1000;letter-spacing:-.06em;color:#89f4ec;background:radial-gradient(circle at 50% 45%,#1c6671 0,#0b2b3c 46%,#071722 78%);border-bottom:1px solid #ffffff18}
.story-cover-symbol.large{width:130px;height:130px;border-radius:24px;flex:0 0 130px;border:1px solid #2b6377;font-size:64px}
.story-book-count{display:inline-block;margin-bottom:10px;font-size:10px;font-weight:900;letter-spacing:.09em;color:#63eee4}
.story-profile{display:flex;align-items:center;gap:24px;margin:22px 0;background:#092537;border:1px solid #1d4c64;border-radius:22px;padding:20px}
.story-profile strong{display:block;color:#d9eef5;margin-top:8px;max-width:760px}
.story-book-cover{height:420px;position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:28px;background:radial-gradient(circle at 50% 26%,#266877,#0a2b3a 48%,#06141f 80%);overflow:hidden}
.story-book-cover:before{content:"";position:absolute;inset:-30%;background:repeating-conic-gradient(from 15deg,#ffffff0a 0 9deg,transparent 10deg 22deg)}
.story-book-cover>*{position:relative;z-index:2}
.story-book-cover .vol-tag{top:20px;left:20px;bottom:auto;position:absolute}
.story-book-cover small{font-weight:900;letter-spacing:.11em;color:#68e9df;margin-bottom:10px}
.story-book-cover b{display:block;font-size:clamp(28px,3vw,43px);line-height:1.02;max-width:520px;color:#fff;letter-spacing:-.03em}
.story-book-cover em{display:block;color:#b7d0da;font-style:normal;margin-top:10px}
.story-cover-letter{position:absolute!important;right:28px;top:68px;font-size:150px;line-height:1;font-weight:1000;color:#ffffff10;letter-spacing:-.08em}
.story-reader{max-width:920px;margin:0 auto}
.story-toolbar{position:sticky;top:0;z-index:20;background:#061925f2;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:12px;border:1px solid #1d4c64;border-radius:16px}
.story-toolbar button,.story-toolbar select{background:#0c2c40;color:#fff;border:1px solid #25546d;border-radius:10px;padding:10px 12px}
.story-toolbar div{text-align:center}.story-toolbar small{display:block;color:#9ab9c9}.story-toolbar select{justify-self:end}
.story-page{margin:24px auto 0;background:#fffdf8;color:#1b2632;border-radius:20px;padding:clamp(30px,6vw,72px);box-shadow:0 18px 48px #0004;min-height:720px}
.story-page .chapter-title{margin-top:0}.story-page .chapter-title h1{color:#102b42;font-size:clamp(36px,5vw,56px)}
.story-page p{font-family:Georgia,"Times New Roman",serif;font-size:clamp(18px,2vw,21px);line-height:1.9;color:#263744;max-width:720px;margin:0 auto 26px}
.story-page .story-lead:first-letter{float:left;font-size:68px;line-height:.76;padding:12px 9px 0 0;color:#0d8f91;font-weight:700}
.story-divider{text-align:center;color:#0d9a9a;font-size:20px;margin:28px 0}.story-next-tease{font-style:italic;text-align:center;color:#617584!important}
@media(max-width:700px){.story-profile{align-items:flex-start}.story-cover-symbol.large{width:90px;height:90px;flex-basis:90px;font-size:44px}.story-book-cover{height:330px}.story-toolbar{grid-template-columns:auto 1fr}.story-toolbar select{grid-column:1/-1;width:100%}.story-page{padding:30px 22px;min-height:0}}
\n/* V18.7.0 mobile tutor-photo correction: show the full portrait instead of zoom-cropping it. */\n@media(max-width:900px){.teacher-cinema-card>img,.teacher-cinema-card[data-teacher-card="Jessica"]>img,.teacher-cinema-card[data-teacher-card="An Sievly"]>img{object-fit:contain!important;object-position:50% 0!important;background:#071725!important}}\n.analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.analytics-panel{border:1px solid #244e63;background:#082334;border-radius:18px;padding:16px}.analytics-panel h3{margin:0 0 10px}.analytics-row{display:flex;justify-content:space-between;gap:15px;padding:8px 0;border-bottom:1px solid #ffffff12}.analytics-row:last-child{border-bottom:0}.analytics-funnel{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.analytics-funnel>div{border:1px solid #244e63;background:#082334;border-radius:14px;padding:13px;display:grid;gap:5px}.analytics-funnel b{font-size:22px}@media(max-width:700px){.analytics-grid{grid-template-columns:1fr}.analytics-funnel{grid-template-columns:repeat(2,1fr)}}\n

/* V18.7.2 — booking/payment safety + larger student windows */
.booking-dialog{width:min(1260px,96vw)!important;max-width:1260px!important;max-height:94vh!important}
.booking-dialog #bookingForm{padding:38px 42px!important}.booking-layout{grid-template-columns:minmax(0,1.35fr) minmax(360px,.9fr)!important;gap:32px!important}
.payment-wall.revolut-beta-wall{max-width:720px;margin:auto}.payment-wall.revolut-beta-wall .wide{margin-top:10px}.payment-confirm-ready{border:1px solid rgba(45,212,191,.55)!important}
dialog.student-schedule-dialog{width:min(1280px,96vw)!important;max-width:1280px!important;height:min(900px,94vh)!important;max-height:94vh!important}
dialog.student-schedule-dialog #modalBody{padding:42px!important;min-height:100%;overflow:auto}
dialog.student-classroom-centre-dialog{width:min(1180px,96vw)!important;max-width:1180px!important;height:min(820px,92vh)!important;max-height:92vh!important}
dialog.student-classroom-centre-dialog #modalBody{padding:42px!important;min-height:100%;overflow:auto}
.student-schedule .schedule-grid{min-height:430px}.student-classroom-centre .classroom-centre-list{gap:14px}
@media(max-width:760px){
 .booking-dialog{width:98vw!important;max-width:none!important;height:96vh!important;max-height:96vh!important;border-radius:16px!important}
 .booking-dialog #bookingForm{padding:26px 18px 36px!important;overflow:auto}.booking-layout{grid-template-columns:1fr!important;gap:18px!important}.booking-details{padding:14px!important}
 dialog.student-schedule-dialog,dialog.student-classroom-centre-dialog{width:98vw!important;height:96vh!important;max-width:none!important;max-height:96vh!important;border-radius:16px!important}
 dialog.student-schedule-dialog #modalBody,dialog.student-classroom-centre-dialog #modalBody{padding:28px 16px 34px!important}
 .student-schedule .schedule-grid{min-height:360px}.schedule-day{min-height:70px!important}.schedule-week{font-size:11px}
}


/* V18.7.3 — payment claims are not bookings + genuinely larger student prejoin */
dialog.classroom-dialog .classroom-prejoin{max-width:1320px!important;width:min(1320px,96vw)!important;padding:34px 36px 118px!important}
dialog.classroom-dialog .prejoin-grid{grid-template-columns:minmax(0,1.45fr) minmax(390px,.8fr)!important;gap:28px!important}
dialog.classroom-dialog .prejoin-preview{min-height:420px!important;aspect-ratio:auto!important}
dialog.classroom-dialog .prejoin-settings{padding:24px!important}
dialog.classroom-dialog .prejoin-settings h3{font-size:26px!important}
dialog.classroom-dialog .prejoin-settings select{min-height:52px!important;font-size:15px!important}
dialog.classroom-dialog .prejoin-actionbar{margin-left:-36px!important;margin-right:-36px!important;padding-left:36px!important;padding-right:36px!important}
@media(max-width:900px){dialog.classroom-dialog .classroom-prejoin{width:100%!important;max-width:none!important;padding:18px 14px 132px!important}dialog.classroom-dialog .prejoin-grid{grid-template-columns:1fr!important;gap:16px!important}dialog.classroom-dialog .prejoin-preview{min-height:240px!important;aspect-ratio:16/9!important}dialog.classroom-dialog .prejoin-settings{padding:18px!important}dialog.classroom-dialog .prejoin-actionbar{margin-left:-14px!important;margin-right:-14px!important;padding-left:14px!important;padding-right:14px!important}}

/* V18.7.4 — true full-screen student booking/schedule/classroom + stable focus mode */
html:has(dialog[open]){overflow:hidden}
body:has(dialog[open]){overflow:hidden}

/* Student teacher booking is a real full-viewport workspace, not a small centred popup. */
dialog.booking-dialog{
  inset:0!important;
  width:100vw!important;
  max-width:none!important;
  height:100dvh!important;
  max-height:none!important;
  margin:0!important;
  border-radius:0!important;
  padding:0!important;
  overflow:hidden!important;
}
dialog.booking-dialog #bookingForm{
  box-sizing:border-box;
  width:100%;
  height:100%;
  max-width:1680px;
  margin:0 auto;
  padding:38px clamp(24px,4vw,72px) 48px!important;
  overflow:auto!important;
}
dialog.booking-dialog .booking-layout{
  grid-template-columns:minmax(0,1.45fr) minmax(420px,.75fr)!important;
  gap:clamp(28px,4vw,64px)!important;
  align-items:start;
}
dialog.booking-dialog .booking-details{position:sticky;top:0}

/* Student schedule and classroom centre use the whole screen. */
dialog.student-schedule-dialog,
dialog.student-classroom-centre-dialog{
  inset:0!important;
  width:100vw!important;
  max-width:none!important;
  height:100dvh!important;
  max-height:none!important;
  margin:0!important;
  border-radius:0!important;
  padding:0!important;
  overflow:hidden!important;
}
dialog.student-schedule-dialog #modalBody,
dialog.student-classroom-centre-dialog #modalBody{
  box-sizing:border-box;
  width:100%;
  height:100%;
  max-width:1600px;
  margin:0 auto;
  padding:42px clamp(22px,4vw,70px)!important;
  overflow:auto!important;
}

/* Pre-join and live classroom are full-screen from the start. */
dialog.classroom-dialog{
  inset:0!important;
  width:100vw!important;
  max-width:none!important;
  height:100dvh!important;
  max-height:none!important;
  margin:0!important;
  border-radius:0!important;
  padding:0!important;
  overflow:hidden!important;
  background:#06111d!important;
}
dialog.classroom-dialog #modalBody{height:100%;padding:0!important;overflow:auto!important}
dialog.classroom-dialog .classroom-prejoin{
  box-sizing:border-box;
  width:100%!important;
  max-width:1600px!important;
  min-height:100dvh!important;
  margin:0 auto!important;
  padding:32px clamp(18px,3.5vw,58px) 118px!important;
}
dialog.classroom-dialog .prejoin-grid{
  grid-template-columns:minmax(0,1.55fr) minmax(420px,.72fr)!important;
  gap:clamp(24px,3vw,54px)!important;
}
dialog.classroom-dialog .prejoin-preview{min-height:min(60vh,620px)!important}
dialog.classroom-dialog .ispeak-classroom{
  box-sizing:border-box;
  width:100%!important;
  max-width:none!important;
  height:100dvh!important;
  min-height:100dvh!important;
  border-radius:0!important;
  overflow:hidden!important;
}
dialog.classroom-dialog .ispeak-classroom>main{height:calc(100dvh - 86px)!important;min-height:0!important}

/* Stable CSS-only focus mode: no browser Fullscreen API, so no resize/flicker/glitch. */
dialog.classroom-dialog.classroom-focus-mode .ispeak-classroom>main{grid-template-columns:1fr!important}
dialog.classroom-dialog.classroom-focus-mode .classroom-tools{display:none!important}
dialog.classroom-dialog.classroom-focus-mode .classroom-stage{height:100%!important}
dialog.classroom-dialog.classroom-focus-mode .classroom-videos{height:calc(100dvh - 180px)!important}
dialog.classroom-dialog.classroom-focus-mode .classroom-video-tile{min-height:0!important;height:100%!important}

@media(max-width:900px){
  dialog.booking-dialog #bookingForm{padding:22px 14px 34px!important}
  dialog.booking-dialog .booking-layout{grid-template-columns:1fr!important;gap:18px!important}
  dialog.booking-dialog .booking-details{position:static}
  dialog.student-schedule-dialog #modalBody,
  dialog.student-classroom-centre-dialog #modalBody{padding:24px 14px 34px!important}
  dialog.classroom-dialog .classroom-prejoin{padding:18px 12px 132px!important}
  dialog.classroom-dialog .prejoin-grid{grid-template-columns:1fr!important;gap:16px!important}
  dialog.classroom-dialog .prejoin-preview{min-height:240px!important;aspect-ratio:16/9!important}
  dialog.classroom-dialog .ispeak-classroom{overflow:auto!important}
  dialog.classroom-dialog .ispeak-classroom>main{height:auto!important;min-height:calc(100dvh - 86px)!important}
  dialog.classroom-dialog.classroom-focus-mode .classroom-videos{height:auto!important}
}

/* V18.7.6 — compact full-screen booking calendar */
dialog.booking-dialog #bookingForm{max-width:1480px!important;padding-top:24px!important}
dialog.booking-dialog .booking-layout{grid-template-columns:minmax(0,1.15fr) minmax(360px,.72fr)!important;gap:clamp(22px,3vw,44px)!important}
.booking-calendar-panel{max-width:780px;width:100%;margin:0 auto}
.booking-calendar{display:block!important;overflow:visible!important;padding:0!important}
.booking-calendar-head{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:12px;margin:8px 0 12px;padding:10px 12px;border:1px solid rgba(104,165,190,.2);border-radius:16px;background:rgba(7,31,46,.7)}
.booking-calendar-head>div{text-align:center;display:grid;gap:2px}.booking-calendar-head b{font-size:20px}.booking-calendar-head small{opacity:.62}
.booking-calendar-head button{min-width:44px;min-height:44px;padding:0;font-size:24px;border-radius:12px}
.booking-calendar-week,.booking-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.booking-calendar-week{padding:0 2px 6px}.booking-calendar-week b{text-align:center;font-size:11px;letter-spacing:.06em;opacity:.62}
.booking-calendar-day,.booking-calendar-blank{aspect-ratio:1.08/1;min-height:62px;border-radius:13px}
.booking-calendar-day{border:1px solid rgba(110,159,187,.2);background:#0b2232;color:#e8f7f9;padding:7px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.booking-calendar-day>span{font-size:18px;font-weight:850}.booking-calendar-day small{font-size:9px;opacity:.55;white-space:nowrap}
.booking-calendar-day.has-times{background:#0c2b3c;border-color:rgba(39,209,193,.35);cursor:pointer}.booking-calendar-day.has-times:hover{transform:translateY(-1px);border-color:#27d1c1}
.booking-calendar-day.active{background:#12515a;border-color:#35dfce;box-shadow:0 0 0 2px rgba(53,223,206,.14)}
.booking-calendar-day:disabled{opacity:.3;cursor:default}.booking-calendar-day.has-times:disabled{opacity:.4}
.booking-slots{grid-template-columns:repeat(4,minmax(0,1fr))!important;min-height:58px!important;margin-bottom:8px}
.booking-slot{padding:10px 7px!important}
@media(max-width:900px){
 dialog.booking-dialog #bookingForm{padding:16px 12px 30px!important}
 dialog.booking-dialog .booking-layout{grid-template-columns:1fr!important;gap:14px!important}
 .booking-calendar-panel{max-width:680px}
 .booking-calendar-head{grid-template-columns:42px 1fr 42px;margin-top:4px;padding:8px}.booking-calendar-head button{min-width:38px;min-height:38px}
 .booking-calendar-week,.booking-calendar-grid{gap:4px}.booking-calendar-day,.booking-calendar-blank{min-height:48px;border-radius:10px}.booking-calendar-day>span{font-size:16px}.booking-calendar-day small{font-size:8px}
 .booking-slots{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 .booking-details{position:static!important}
}
@media(max-width:430px){.booking-calendar-day,.booking-calendar-blank{min-height:43px}.booking-calendar-day small{display:none}.booking-slots{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* V18.8.1 targeted visual cleanup */
.path-character-stack.two-characters img:nth-child(1){left:5%;z-index:3}
.path-character-stack.two-characters img:nth-child(2){left:40%;right:auto;height:245px;z-index:2}

/* V18.8.2 — exact three-image visual fixes */
.buddy-character[data-mascot="jess"] .buddy-image{
  border-radius:0!important;
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
  filter:drop-shadow(0 15px 16px rgba(0,0,0,.28))!important;
}

/* Library: exactly two mascots, both fully visible and kept on the left/centre of the art area. */
.path-character-stack.two-characters{
  right:2%!important;
  top:30px!important;
  width:58%!important;
  height:245px!important;
}
.path-character-stack.two-characters img:nth-child(1){
  left:8%!important;
  right:auto!important;
  height:205px!important;
  max-width:42%!important;
}
.path-character-stack.two-characters img:nth-child(2){
  left:48%!important;
  right:auto!important;
  height:220px!important;
  max-width:45%!important;
}

/* V18.8.3 exact visual repair */
.path-character-stack.two-characters{
  right:0!important;
  top:28px!important;
  width:58%!important;
  height:250px!important;
  overflow:visible!important;
}
.path-character-stack.two-characters img{
  object-fit:contain!important;
  bottom:0!important;
}
.path-character-stack.two-characters img:nth-child(1){
  left:2%!important;
  right:auto!important;
  height:215px!important;
  max-width:44%!important;
}
.path-character-stack.two-characters img:nth-child(2){
  left:45%!important;
  right:auto!important;
  height:225px!important;
  max-width:46%!important;
}

/* V18.8.5 teacher-led booking workflow */
.booking-chat-log{max-height:42vh;overflow:auto;display:grid;gap:10px;margin:16px 0;padding:10px;background:#f7fbfc;border-radius:18px}
.teacher-chat-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.teacher-thread-card{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:16px;margin:10px 0;border:1px solid #d9e7ea;border-radius:16px;background:#fff}
.teacher-thread-card div{display:grid;gap:4px}.teacher-thread-card span,.teacher-thread-card small{color:#5e7180}
.payment-check{display:flex!important;gap:10px;align-items:flex-start;margin:16px 0;padding:14px;background:#fff8df;border:1px solid #efd57d;border-radius:14px}
.payment-check input{width:auto!important;margin-top:3px}
.open-payment-link{margin:8px 0}
@media(max-width:700px){.teacher-chat-actions{grid-template-columns:1fr}.teacher-thread-card{align-items:flex-start;gap:10px}}

/* V18.8.6 mobile tutor listing polish */
@media(max-width:900px){
  .teacher-cinema-card>img,
  .teacher-cinema-card[data-teacher-card="Jessica"]>img,
  .teacher-cinema-card[data-teacher-card="An Sievly"]>img{
    width:100%!important;
    height:min(52vh,390px)!important;
    object-fit:contain!important;
    object-position:50% 0!important;
    padding:0!important;
    background:#071725!important;
  }
}
@media(max-width:520px){
  .teacher-cinema-card>img,
  .teacher-cinema-card[data-teacher-card="Jessica"]>img,
  .teacher-cinema-card[data-teacher-card="An Sievly"]>img{
    height:330px!important;
  }
}

/* V18.8.6 analytics visual summaries */
.analytics-chart-row{padding:3px 0 8px}
.analytics-bar{height:8px;background:#102f42;border-radius:999px;overflow:hidden}
.analytics-bar i{display:block;height:100%;min-width:4px;background:linear-gradient(90deg,#20d6c7,#72e6df);border-radius:999px}
.analytics-conversion{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 18px}
.analytics-conversion>div{display:grid;gap:4px;padding:14px;border:1px solid #244e63;background:#082334;border-radius:14px}
.analytics-conversion span{color:#a9c3d1;font-size:12px;font-weight:800}
.analytics-conversion b{font-size:24px;color:#7ff8ef}
@media(max-width:700px){.analytics-conversion{grid-template-columns:1fr}}

/* V18.8.7 full roadmap update */
.library-ai-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 20px}
.library-ai-card{display:grid;gap:6px;text-align:left;padding:18px;border:1px solid #cce5e5;border-radius:18px;background:linear-gradient(135deg,#effcfb,#fff);box-shadow:0 8px 24px rgba(18,87,92,.08)}
.library-ai-card b{font-size:18px}.library-ai-card span{color:#55717a}
.helper-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.helper-result{margin-top:16px;padding:16px;border-radius:16px;background:#f3fbfb;border:1px solid #cde8e7;white-space:normal}
.scenario-card{padding:18px;margin:12px 0;border-radius:18px;background:#102f42;color:white;font-weight:800}
.teacher-ui-language{padding:10px 14px;background:#eef9f8;border-bottom:1px solid #d5e8e6}.teacher-ui-language label{display:flex;align-items:center;gap:10px;justify-content:flex-end}.teacher-ui-language select{width:auto}
.oversight-list{display:grid;gap:10px}.oversight-list article{display:flex;justify-content:space-between;gap:12px;padding:14px;border:1px solid #dce8ec;border-radius:14px}.oversight-list article div{display:grid;gap:4px}.oversight-list .needs-reply{border-color:#efb64c;background:#fff9e8}.oversight-list .needs-reply strong{color:#a15c00}
@media(max-width:700px){.library-ai-tools,.helper-grid{grid-template-columns:1fr}.teacher-ui-language label{justify-content:stretch;flex-direction:column;align-items:stretch}}


/* V18.8.7 visible full-update feature wiring */
.library-ai-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 20px}.library-ai-card{padding:18px;border-radius:18px;border:1px solid rgba(72,205,195,.28);background:rgba(8,42,56,.88);color:#eefcfc;text-align:left;display:grid;gap:6px}.library-ai-card b{font-size:18px}.library-ai-card span{opacity:.78}.student-message-list{display:grid;gap:10px;margin:18px 0}.student-message-thread{display:flex;justify-content:space-between;gap:16px;align-items:center;text-align:left;padding:14px;border-radius:14px;border:1px solid rgba(103,169,190,.24);background:#0a2738;color:#effcff}.student-message-thread>div{display:grid;gap:4px}.student-message-thread span,.student-message-thread small{opacity:.7}.teacher-ui-language{display:grid;gap:5px;font-size:12px;font-weight:800}.teacher-ui-language select{min-width:150px}.teacher-chat-actions{display:flex;flex-wrap:wrap;gap:8px}@media(max-width:700px){.library-ai-tools{grid-template-columns:1fr}.student-message-thread{align-items:flex-start;flex-direction:column}}

/* V18.8.11 publish-readiness repair */
.teacher-head-tools{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;justify-content:flex-end}.teacher-flag-switch{position:relative}.teacher-flag-button{display:flex;align-items:center;gap:8px;border:1px solid #cbdde4;background:#fff;border-radius:12px;padding:8px 11px;color:#0b2940;font-weight:800}.teacher-flag-button span{font-size:24px}.teacher-flag-button small{font-size:12px}.teacher-flag-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:80;min-width:190px;padding:7px;background:#fff;border:1px solid #c9dce3;border-radius:14px;box-shadow:0 16px 34px rgba(3,24,39,.2);display:grid;gap:4px}.teacher-flag-menu[hidden]{display:none}.teacher-flag-menu button{display:flex;align-items:center;gap:10px;text-align:left;border:0;background:transparent;border-radius:9px;padding:8px 10px;color:#0b2940}.teacher-flag-menu button:hover,.teacher-flag-menu button.active{background:#e7f8f7}.teacher-flag-menu span{font-size:22px}.academy-modules article.complete{border-color:#98d9d4;background:#f0fbfa}.academy-modules article h4{margin:2px 0;font-size:16px}.academy-modules article small{color:#149d98;font-weight:800}.academy-certificate-preview{position:relative}.academy-certificate-preview img{width:72px;height:72px;object-fit:contain;margin-bottom:8px}.academy-certificate-preview .certificate-meta{width:100%;display:flex;justify-content:space-between;gap:15px;margin-top:20px;border-top:1px solid #cbdcdb;padding-top:12px}.certificate-name-editor{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin:16px 0;padding:14px;border:1px solid #cbdde4;border-radius:14px;background:#f7fbfc}.certificate-name-editor label{margin:0}.classroom-entry-note{display:block;margin-top:6px;color:#627b89}.classroom-launch.locked-entry{opacity:.65;cursor:not-allowed}.next-classroom-card strong{display:block;margin-top:7px;color:#0b7c78}.teacher-portal[dir=rtl] .teacher-flag-menu{right:auto;left:0}@media(max-width:760px){.teacher-head-tools{justify-content:flex-start}.certificate-name-editor{grid-template-columns:1fr}.academy-certificate-preview .certificate-meta{flex-direction:column;align-items:center}.teacher-flag-menu{right:auto;left:0}}

/* V18.8.12 targeted certificate/admin/test-room polish */
.pro-tutor-cert-preview{position:relative;overflow:hidden;min-height:560px!important;padding:42px 68px 34px!important;background:linear-gradient(135deg,#fffdfa 0%,#f9fcfb 55%,#f4f8f8 100%)!important;border:3px solid #0b2940!important;outline:2px solid #c79a43;outline-offset:-14px}
.pro-tutor-cert-preview:before{content:"";position:absolute;inset:24px;border:1px solid rgba(21,159,154,.45);pointer-events:none}.pro-cert-corner{position:absolute;width:180px;height:180px;border-color:#c79a43}.pro-cert-corner.top-left{left:-56px;top:-56px;border-right:6px solid #c79a43;border-bottom:6px solid #c79a43;transform:rotate(45deg)}.pro-cert-corner.bottom-right{right:-56px;bottom:-56px;border-left:6px solid #c79a43;border-top:6px solid #c79a43;transform:rotate(45deg)}
.pro-cert-ribbon{position:absolute;right:48px;top:38px;width:88px;height:118px;background:#0b2940;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px solid #c79a43;clip-path:polygon(0 0,100% 0,100% 82%,50% 100%,0 82%);z-index:2}.pro-cert-ribbon b{font:800 30px Georgia!important;color:#f2c66f!important;margin:0!important}.pro-cert-ribbon span{font-size:11px!important;color:#fff!important;letter-spacing:1px!important}
.pro-cert-brand{display:flex;align-items:center;gap:12px;position:absolute;left:52px;top:38px;text-align:left}.pro-cert-brand img{width:58px!important;height:58px!important;margin:0!important}.pro-cert-brand div{display:grid}.pro-cert-brand b{font:800 20px Arial!important;margin:0!important;color:#0b2940!important}.pro-cert-brand small{font-size:10px!important;letter-spacing:1.3px;color:#159f9a!important;text-transform:uppercase}
.pro-cert-kicker{margin-top:84px;display:block!important;font:700 24px Georgia!important;letter-spacing:3px!important;color:#b4832f!important}.pro-cert-certifies{margin-top:26px!important;font-size:11px!important;letter-spacing:2px!important;color:#657783!important}.pro-cert-name{font:italic 700 42px Georgia!important;color:#0b2940!important;margin:10px 0 2px!important;border-bottom:1px solid #d9c28e;padding:0 45px 7px}.pro-tutor-cert-preview p{margin:12px 0 4px;color:#63727b}.pro-tutor-cert-preview>strong{font:700 34px Georgia!important;color:#0b2940!important;margin:4px 0 9px!important}.pro-tutor-cert-preview>em{max-width:650px;line-height:1.45;font-size:13px!important;color:#596c77!important}
.pro-cert-credentials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 18px;margin:22px auto 12px;max-width:640px;text-align:left}.pro-cert-credentials span{font-size:12px!important;letter-spacing:0!important;color:#314d5c!important;font-weight:700}.pro-cert-title{margin:16px auto 6px;padding:8px 22px;border-top:1px solid #159f9a;border-bottom:1px solid #159f9a;color:#159f9a;font-weight:900;letter-spacing:2px;font-size:15px}.pro-tutor-cert-preview .certificate-meta{margin-top:20px!important}.pro-tutor-cert-preview .certificate-meta span{display:grid;gap:4px;letter-spacing:0!important;color:#0b2940!important}.pro-tutor-cert-preview .certificate-meta small{font-size:9px!important;letter-spacing:1.4px;color:#71838d!important}.pro-tutor-cert-preview .certificate-meta b{font:700 12px Arial!important;margin:0!important;color:#0b2940!important}.teacher-certificate-name-editor{max-width:760px;margin:12px auto 22px}.professional-teacher-certificate .academy-certificate-preview{margin-top:0}.professional-teacher-certificate .certificate-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.professional-teacher-certificate .certificate-actions button{min-width:240px}
@media(max-width:760px){.pro-tutor-cert-preview{padding:110px 28px 28px!important}.pro-cert-brand{left:28px;top:34px}.pro-cert-ribbon{right:24px;top:30px}.pro-cert-kicker{margin-top:30px;font-size:18px!important}.pro-cert-name{font-size:32px!important;padding:0 12px 6px}.pro-tutor-cert-preview>strong{font-size:25px!important}.pro-cert-credentials{grid-template-columns:1fr}.pro-tutor-cert-preview .certificate-meta{flex-direction:column}.professional-teacher-certificate .certificate-actions{display:grid}}
