:root{font-family:Arial,Helvetica,sans-serif;color:#20243c;background:#f7f8fc;--bg:#f7f8fc;--card:#fff;--ink:#20243c;--muted:#85899c;--line:#e9eaf3;--violet:#7361e7;--soft:#efedff}*{box-sizing:border-box}body{margin:0}:root.dark,body.dark{--bg:#151624;--card:#222437;--ink:#f1f0fa;--muted:#a3a5bb;--line:#34364d;--soft:#302b52;background:var(--bg);color:var(--ink)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;color:inherit}button:disabled{opacity:.5;cursor:wait}.shell{max-width:940px;margin:auto;padding:0 25px 110px}header{display:flex;align-items:center;justify-content:space-between;padding:27px 0 34px}.brand{text-decoration:none;display:flex;gap:10px;align-items:center;font-size:25px;font-weight:800;color:var(--ink)}.logo{background:var(--violet);color:white;width:37px;height:37px;border-radius:12px;display:grid;place-content:center;font-size:26px}.logo span{position:absolute;font-size:17px;transform:translate(25px,-5px);color:#ffc76f}.pill{font-size:10px;font-weight:600;border:1px solid var(--line);border-radius:20px;padding:6px 11px;color:var(--muted);margin-left:7px}#theme{background:var(--card);border:1px solid var(--line);width:36px;height:36px;border-radius:50%;font-size:22px}h1{font-size:32px;letter-spacing:-1.2px;margin:0 0 9px;line-height:1.25}h2{font-size:20px;letter-spacing:-.5px;margin:0}p{color:var(--muted);line-height:1.65;font-size:14px}small,.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:10px;font-weight:800;color:var(--muted);margin-bottom:14px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.section{margin-top:30px}.hero{background:linear-gradient(110deg,#7967ed,#9a87f2);border-radius:25px;padding:26px;color:white;margin:25px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;overflow:hidden}.hero p{color:#ebe5ff;margin:8px 0 18px;max-width:310px}.hero h2{font-size:25px}.hero .orb{font-size:65px;transform:rotate(-12deg);filter:drop-shadow(0 8px 15px #4e3c8b55)}.primary,.secondary,.danger,.light{border-radius:13px;padding:13px 19px;font-weight:700;font-size:13px;background:var(--violet);color:#fff}.secondary{background:var(--soft);color:var(--violet)}.light{background:white;color:#6b57d4}.danger{background:#fff0f0;color:#c65555}.link{background:none;color:var(--violet);padding:8px 0;font-weight:700;font-size:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{background:var(--card);border:1px solid var(--line);border-radius:19px;padding:18px 16px}.stat strong{display:block;font-size:25px;letter-spacing:-.5px;margin:5px 0}.stat small{font-size:11px}.bar{height:6px;background:var(--soft);border-radius:5px;overflow:hidden;margin-top:12px}.bar i{display:block;background:var(--violet);height:100%;border-radius:5px}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:18px 0}.deck{text-align:start;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px;min-height:155px;transition:transform .2s}.deck:hover{transform:translateY(-3px)}.deck .icon{display:grid;place-content:center;width:39px;height:39px;border-radius:12px;background:var(--soft);font-size:20px;margin-bottom:18px}.deck:nth-child(3n+2) .icon{background:#e9f7f1}.deck:nth-child(3n+3) .icon{background:#fff2df}.deck h3{margin:0 0 9px;font-size:16px;overflow-wrap:anywhere}.deck small{font-size:11px}.tag{font-size:10px;border-radius:5px;background:var(--soft);color:var(--violet);padding:3px 5px}.search,input,textarea,select{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:13px 15px;width:100%;outline:none}input:focus,textarea:focus{border-color:var(--violet)}.search{margin-top:20px}textarea{min-height:160px;resize:vertical}.field{display:block;margin:18px 0;font-size:12px;font-weight:700}.field input,.field select,.field textarea{display:block;margin-top:8px;font-size:14px}nav{position:fixed;z-index:5;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:60px;border-top:1px solid var(--line);padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:var(--card)}nav button{display:flex;flex-direction:column;gap:4px;align-items:center;background:none;color:var(--muted);font-size:22px;min-width:60px}nav span{font-size:10px;font-weight:700}nav button.active{color:var(--violet)}.word{padding:17px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;align-items:center}.word .pair{flex:1;min-width:0}.word b{display:block;font-size:15px;margin-bottom:5px;unicode-bidi:plaintext;overflow-wrap:anywhere}.word small{unicode-bidi:plaintext}.tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:24px;margin:18px 0}.flash{min-height:265px;display:flex;flex-direction:column;justify-content:center;text-align:center;box-shadow:0 10px 40px #28205008}.flash .prompt{font-size:30px;font-weight:700;unicode-bidi:plaintext;overflow-wrap:anywhere;line-height:1.7}.flash .hint{font-size:11px;margin-bottom:25px;color:var(--muted)}.option{width:100%;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:17px;text-align:start;margin:5px 0;unicode-bidi:plaintext}.option:hover{border-color:var(--violet);background:var(--soft)}.letters{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin:20px 0;direction:ltr}.letter{font-size:21px;width:47px;height:49px;background:var(--card);border:1px solid var(--line);border-radius:11px}.built{text-align:center;font-size:27px;min-height:48px;padding:10px;unicode-bidi:plaintext}.empty{text-align:center;padding:40px 20px}.empty .emoji{font-size:48px}.feedback{text-align:center}.feedback .emoji{font-size:55px}.feedback pre{font:inherit;white-space:pre-wrap;line-height:1.9}.loading{padding:80px 0;text-align:center;color:var(--muted)}#toast{position:fixed;z-index:20;top:20px;left:50%;transform:translateX(-50%);max-width:90%;background:#2e2946;color:white;padding:13px 20px;border-radius:15px;display:none;font-size:13px;white-space:pre-wrap}pre.profile{font:inherit;font-size:13px;white-space:pre-wrap;line-height:1.8}.subtitle{margin:0}.back{margin:0 0 20px}.wfull{width:100%}@media(min-width:700px){.shell{padding-top:15px}h1{font-size:38px}.hero{padding:35px}.hero .orb{font-size:95px;margin-right:30px}.grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:380px){.shell{padding-left:17px;padding-right:17px}.pill{display:none}.stat{padding:13px 10px}nav{gap:30px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

html{min-height:100%;background:var(--bg);color:var(--ink);color-scheme:light}html.dark{color-scheme:dark}body{min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--ink)}.shell{min-height:100vh;min-height:100dvh}main{min-height:45vh}input,textarea,select{color-scheme:inherit}
/* Compact semibold typography. */
:root{font-weight:600;letter-spacing:-.025em}button,input,textarea,select{letter-spacing:inherit}p,small,.muted,.subtitle,.profile{font-weight:600}.eyebrow{letter-spacing:.10em}h1{letter-spacing:-.045em}h2{letter-spacing:-.035em}.flash .prompt,.built,.letter{letter-spacing:normal}

/* Physical card flip around the vertical axis. */
.flip-stage{perspective:1100px;min-height:285px;margin:18px 0;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}
.flip-stage:focus-visible{outline:2px solid var(--violet);outline-offset:5px;border-radius:24px}
.flip-inner{position:relative;display:grid;min-height:285px;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.35,.05,.2,1);will-change:transform}
.flip-stage.flipped .flip-inner{transform:rotateY(180deg)}
.flip-face{grid-area:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;min-height:285px;padding:30px 22px;background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:0 12px 35px #2820500b;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:rotateY(0deg)}
.flip-back{transform:rotateY(180deg);background:var(--soft)}
.flip-face .prompt{font-size:30px;font-weight:700;line-height:1.6;unicode-bidi:plaintext;overflow-wrap:anywhere;text-align:center;width:100%}
.flip-face .hint{font-size:11px;color:var(--muted);font-weight:700;letter-spacing:.08em}
.flip-face small{font-size:11px;font-weight:600}
@media(prefers-reduced-motion:reduce){.flip-inner{transition:none}}
/* Motion: short transitions with no waiting before actions. */
@keyframes words-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes words-pop{0%{opacity:0;transform:scale(.8) rotate(-8deg)}65%{opacity:1;transform:scale(1.07) rotate(2deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes words-ripple{to{transform:translate(-50%,-50%) scale(1);opacity:0}}
@keyframes words-breathe{0%,100%{opacity:.35;transform:scaleX(.45)}50%{opacity:1;transform:scaleX(1)}}
body,header,nav,.card,.stat,.deck,.option,.flip-face,input,textarea,select{transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}
button,.primary,.secondary,.light,.danger{position:relative;transition:transform .13s ease,background-color .18s ease,box-shadow .18s ease,opacity .15s ease}
button:active:not(:disabled){transform:scale(.965)}
.deck{transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s ease,background-color .2s ease}
.deck:hover{box-shadow:0 9px 24px #342a7110}
.grid>.deck{animation:words-rise .28s ease both}
.grid>.deck:nth-child(2){animation-delay:25ms}.grid>.deck:nth-child(3){animation-delay:50ms}.grid>.deck:nth-child(4){animation-delay:75ms}.grid>.deck:nth-child(5){animation-delay:100ms}.grid>.deck:nth-child(n+6){animation-delay:125ms}
.feedback .emoji{animation:words-pop .45s cubic-bezier(.2,.8,.2,1) both}
.feedback h1,.feedback h2{animation:words-rise .22s 50ms ease both}
.bar i{transition:width .3s ease}
nav button{transition:color .18s ease,transform .15s ease}
nav button.active{transform:translateY(-2px)}
nav button span{transition:opacity .18s ease}
#toast{animation:words-rise .18s ease}
.tap-wave{pointer-events:none;position:absolute;border-radius:50%;background:currentColor;opacity:.13;width:var(--wave-size);height:var(--wave-size);left:var(--wave-x);top:var(--wave-y);transform:translate(-50%,-50%) scale(0);animation:words-ripple .42s ease-out forwards;z-index:0}
.primary,.secondary,.light,.danger,.option,.letter{overflow:hidden}
body.is-busy:before{content:'';position:fixed;z-index:30;left:calc(50% - 35px);top:0;width:70px;height:3px;border-radius:0 0 5px 5px;background:var(--violet);animation:words-breathe 1s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.tap-wave{display:none}}

.retry-notice{padding:13px 16px;border-radius:13px;background:#ffeded;color:#bb3636;font-size:13px;margin:12px 0;font-weight:700}.wrong-answer{border-color:#e56c6c!important;background:#fff0f0!important;color:#b93030!important}.dark .wrong-answer,.dark .retry-notice{background:#41272e!important;color:#ffb3b3!important}.built.wrong-answer{border:1px solid;border-radius:12px}button.wrong-answer:disabled{opacity:.8;cursor:default}
/* Prevent iOS focus zoom without blocking manual page magnification. */
input,textarea,select,.field input,.field textarea,.field select{font-size:16px}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

#modeToggle{margin:-10px 0 30px}#modeToggle[hidden]{display:none}.mode-switch{display:flex;padding:5px;border:1px solid var(--line);border-radius:17px;background:var(--card);max-width:520px;margin:0 auto;box-shadow:0 5px 20px #28205006}.mode-switch button{flex:1;border-radius:12px;background:transparent;padding:14px 8px;color:var(--muted);font-size:14px;font-weight:700}.mode-switch button.selected{background:var(--violet);color:white;box-shadow:0 4px 12px #7361e72b}.teacher-nav{gap:30px}.pupils{display:grid;gap:10px;margin:18px 0}.pupil-row{width:100%;display:flex;align-items:center;gap:13px;text-align:start;background:var(--card);border:1px solid var(--line);border-radius:17px;padding:17px}.pupil-avatar{width:42px;height:42px;border-radius:14px;background:var(--soft);color:var(--violet);display:grid;place-content:center;font-size:19px}.pupil-info{flex:1;min-width:0}.pupil-info b{display:block;font-size:15px;overflow-wrap:anywhere}.pupil-info small{display:block;font-size:11px;margin-top:6px}.pupil-series{font-size:15px;font-weight:700;white-space:nowrap}.pupil-series small{display:block;text-align:center;font-size:10px;font-weight:600;margin-top:3px}.teacher-body{white-space:pre-wrap;line-height:1.8;font-size:15px;overflow-wrap:anywhere}.teacher-action-row{display:flex;gap:9px}.teacher-action-row>.option{flex:1;min-width:0;line-height:1.45;text-align:center}#teacherInput{margin:20px 0}#teacherText{min-height:120px}@media(max-width:400px){.teacher-nav{gap:14px}.mode-switch button{font-size:13px}}

.calendar{padding:16px 12px;margin:22px 0}.cal-heading{padding:0 2px 17px}.cal-heading b{font-size:14px}.cal-arrow{width:34px;height:34px;border-radius:10px;background:var(--soft);color:var(--violet);font-size:25px;line-height:1}.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-day{display:flex;align-items:center;flex-direction:column;gap:10px;background:transparent;padding:12px 0;border-radius:13px;border:1px solid transparent}.calendar-day small{font-size:9px}.calendar-day strong{font-size:19px}.calendar-day span{font-size:9px;color:var(--muted)}.calendar-day.today{border-color:var(--violet)}.calendar-day.selected{background:var(--violet);color:white}.calendar-day.selected small,.calendar-day.selected span{color:#eeeaff}.day-lessons{display:grid;gap:12px;margin:18px 0}.calendar-lesson{display:flex;align-items:center;gap:17px;text-align:start;padding:19px 16px;background:var(--card);border:1px solid var(--line);border-radius:18px;width:100%}.lesson-time{font-size:19px;font-weight:700;align-self:stretch;min-width:58px;display:flex;flex-direction:column;gap:10px}.lesson-time i{width:25px;height:3px;background:var(--violet);border-radius:3px}.completed .lesson-time i{background:#51b58d}.canceled .lesson-time i{background:#d87d85}.lesson-info{flex:1;min-width:0}.lesson-info b{display:block;font-size:16px;margin-bottom:8px;overflow-wrap:anywhere}.lesson-info small{display:block;font-size:11px}.lesson-homework{display:inline-block;font-size:10px;background:var(--soft);color:var(--violet);padding:5px 7px;border-radius:6px;margin-top:10px}#dayTitle{text-transform:capitalize;font-size:19px}
/* Visual teaching workspace: information first, actions in context. */
.pupil-heading{display:flex;align-items:center;gap:15px;margin:4px 0 23px}.pupil-heading>div{flex:1;min-width:0}.pupil-heading h1{font-size:31px;margin:0}.pupil-heading .eyebrow{margin-bottom:7px;font-size:9px}.pupil-avatar.large{width:60px;height:60px;font-size:27px;border-radius:20px}.more-button{background:var(--card);border:1px solid var(--line);width:39px;height:39px;border-radius:12px;font-size:24px;flex-shrink:0}.pupil-summary{display:grid;grid-template-columns:.85fr 1.4fr;gap:12px;margin-bottom:24px}.series-tile,.daily-tile{background:var(--card);border:1px solid var(--line);padding:18px 13px;border-radius:19px;display:flex;align-items:center;gap:11px}.series-tile>span{font-size:26px}.series-tile strong{font-size:27px;display:block;line-height:1.15}.series-tile small,.daily-tile small{display:block;font-size:10px;margin-top:5px}.daily-tile>div>b{font-size:12px}.daily-ring{width:54px;height:54px;flex-shrink:0;border-radius:50%;background:conic-gradient(var(--violet) var(--done),var(--soft) 0);display:grid;place-content:center}.daily-ring>b{display:flex;align-items:baseline;justify-content:center;background:var(--card);width:44px;height:44px;border-radius:50%;padding-top:14px;font-size:17px}.daily-ring>b>small{margin:0;font-size:10px}.pupil-tabs,.bank-tabs{display:flex;border-bottom:1px solid var(--line);gap:25px;margin:14px 0 23px}.pupil-tabs button,.bank-tabs button{background:none;padding:13px 2px;border-radius:0;font-size:14px;font-weight:700;color:var(--muted);border-bottom:3px solid transparent}.pupil-tabs button.selected,.bank-tabs button.selected{color:var(--violet);border-bottom-color:var(--violet)}.activity-card{padding:20px 16px}.activity-card h2{font-size:16px}.activity-week{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-top:22px}.activity-week>div{text-align:center}.activity-cell{aspect-ratio:1;display:grid;place-content:center;background:var(--soft);color:var(--muted);border-radius:11px;font-size:13px}.activity-cell.started{color:var(--violet);background:#e7e0ff}.activity-cell.done{background:var(--violet);color:white}.activity-week small{display:block;text-transform:capitalize;font-size:10px;margin-top:8px}.upcoming-card{display:flex;align-items:center;gap:17px;width:100%;padding:20px;margin-top:14px;background:var(--card);border:1px solid var(--line);border-radius:18px;text-align:start}.upcoming-card>span:nth-child(2){flex:1}.upcoming-card small{display:block;font-size:10px;margin-top:8px}.lesson-date{background:var(--soft);padding:12px 13px;border-radius:12px;font-size:11px;color:var(--violet);text-align:center}.lesson-date b{display:block;font-size:20px;margin-top:7px}.homework-visual{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;display:block;width:100%;text-align:start;margin-top:13px}.homework-visual p{color:var(--ink);font-size:14px;white-space:pre-wrap;margin:14px 0}.homework-visual .row>small{font-size:10px;letter-spacing:.04em}.status-badge{border-radius:7px;font-size:10px;line-height:1.3;padding:6px 8px;background:var(--soft);color:var(--violet);white-space:nowrap}.status-badge.pending{background:#fff1db;color:#9a661d}.status-badge.accepted,.status-badge.done{background:#def4eb;color:#26825d}.status-badge.revise{background:#ffe8e8;color:#b34d4d}.compact-empty{border:1px dashed var(--line);border-radius:15px;padding:22px 15px;text-align:center;color:var(--muted);font-size:13px;margin-top:13px;line-height:1.7}.pupil-word-summary{display:flex;gap:20px;background:var(--card);padding:21px 18px;border:1px solid var(--line);border-radius:18px;margin:15px 0}.pupil-word-summary strong{font-size:28px;flex:1}.pupil-word-summary small{display:block;font-size:10px;font-weight:600;margin-top:7px}.pupil-word-summary div{align-self:center}.pupil-word-summary div b{font-size:20px}.assignment-card{display:flex;align-items:center;gap:12px;padding:17px;background:var(--card);border:1px solid var(--line);border-radius:17px;width:100%;text-align:start;margin-top:12px}.assignment-info{flex:1;min-width:0}.assignment-info b{display:block;font-size:14px;overflow-wrap:anywhere}.assignment-info small{display:block;font-size:10px;margin-top:6px}.set-symbol{display:grid;place-content:center;width:39px;height:39px;border-radius:12px;font-size:20px;font-weight:700;flex-shrink:0}.words-symbol{color:#6577c9;background:#e9efff}.tasks-symbol{color:#b67d38;background:#fff0da}.visual-set{position:relative;display:flex;flex-direction:column;gap:15px;background:var(--card);border:1px solid var(--line);border-radius:19px;padding:20px;text-align:start;min-height:175px;transition:transform .18s ease,box-shadow .18s ease}.visual-set h3{margin:0;line-height:1.4;font-size:15px;overflow-wrap:anywhere}.visual-set small{font-size:11px}.visual-set .row{margin-top:auto}.visual-set .bar{width:100%;margin-top:auto}.visual-set:hover{transform:translateY(-2px);box-shadow:0 9px 25px #2320400c}.quota-line{font-size:11px;margin:7px 0 0}.bank-empty{grid-column:1/-1;text-align:center;padding:35px 20px;border:1px dashed var(--line);border-radius:19px;background:var(--card)}.bank-empty>span{font-size:35px;color:var(--violet)}.bank-empty h3{font-size:16px;margin-top:17px}.bank-empty p{font-size:12px}.task-card{display:block;width:100%;text-align:start;background:var(--card);border:1px solid var(--line);padding:20px;border-radius:17px;margin:13px 0}.task-type{display:inline-block;font-size:10px;background:var(--soft);color:var(--violet);border-radius:6px;padding:5px 8px}.task-card h3{font-size:16px;margin:14px 0 8px}.task-card p{font-size:12px;margin:0 0 12px}.dark .words-symbol{background:#2c3553;color:#afbcff}.dark .tasks-symbol{background:#42382d;color:#edc184}.dark .activity-cell.started{background:#42365f;color:#d4bfff}.dark .status-badge.pending{background:#493b27;color:#f2c780}.dark .status-badge.accepted,.dark .status-badge.done{background:#253f37;color:#93d9b6}.dark .status-badge.revise{background:#492c35;color:#f2a1b5}#pupilSettings,#setSettings{margin-bottom:18px}#pupilSettings[hidden],#setSettings[hidden]{display:none}@media(min-width:700px){.pupil-summary{max-width:550px}.activity-card{max-width:550px}}@media(max-width:370px){.daily-tile{gap:7px;padding:15px 9px}.series-tile{padding:15px 9px;gap:7px}.daily-ring{width:47px;height:47px}.daily-ring>b{width:37px;height:37px;font-size:15px;padding-top:10px}.pupil-tabs,.bank-tabs{gap:18px}.assignment-card{padding:14px 11px}.assignment-card .status-badge{font-size:9px}}

/* One persistent thumb slides on taps and follows horizontal drags. */
.mode-switch{position:relative;isolation:isolate;touch-action:pan-y;user-select:none;-webkit-user-select:none}.mode-thumb{position:absolute;left:5px;top:5px;bottom:5px;width:calc((100% - 10px)/2);background:var(--violet);border-radius:12px;box-shadow:0 4px 12px #7361e72b;transform:translateX(calc(var(--mode-position,0)*100%));transition:transform .32s cubic-bezier(.22,.8,.22,1);pointer-events:none;z-index:0;will-change:transform}.mode-switch.dragging .mode-thumb{transition:none}.mode-switch button{z-index:1;background:transparent!important;box-shadow:none!important;transition:color .2s ease!important}.mode-switch button:active{transform:none}.mode-switch button.selected{background:transparent;color:white;box-shadow:none}@media(prefers-reduced-motion:reduce){.mode-thumb{transition:none}}
/* Comfortable spacing between form actions. */
#form #remove{margin-top:24px;margin-bottom:18px}#form #submit{margin-top:18px}#form{padding-bottom:20px}.tools{gap:12px;row-gap:14px}.teacher-actions{display:grid;gap:12px}.teacher-action-row{gap:12px}.teacher-action-row>.option{margin:0}#actions{display:flex;flex-direction:column;gap:12px}#actions>.option{margin:0}#actions>.link{padding:12px 0}#lettertools{gap:14px}

.training-counts{display:flex;justify-content:space-between;gap:15px;margin-top:18px;font-size:12px;font-weight:700}.still-learning{color:#d99844;background:#fff2df;border-radius:15px;padding:7px 12px}.already-know{color:#29876a;background:#e0f7ee;border-radius:15px;padding:7px 12px}.dark .still-learning{background:#493a2b;color:#f3c17e}.dark .already-know{background:#263f38;color:#91dec0}.swipe-tip{text-align:center;font-size:12px;margin:0}.flip-stage{position:relative;user-select:none;-webkit-user-select:none}.flip-stage.swipe-yes .flip-face{border-color:#4fba91;box-shadow:0 0 0 2px #4fba9144}.flip-stage.swipe-no .flip-face{border-color:#eba958;box-shadow:0 0 0 2px #eba95844}.game-menu{display:grid;gap:17px;margin-top:25px}.game-menu-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:25px;text-align:start}.game-menu-card>span{display:grid;place-content:center;width:55px;height:55px;border-radius:15px;background:var(--soft);color:var(--violet);font-size:32px;margin-bottom:18px}.game-menu-card p{font-size:13px}.pair-board{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.pair-board>div{display:grid;gap:10px}.pair-tile{padding:15px 10px;border-radius:13px;border:1px solid var(--line);background:var(--card);font-size:14px;min-height:70px;unicode-bidi:plaintext;overflow-wrap:anywhere}.pair-tile.selected{border-color:var(--violet);background:var(--soft)}.pair-tile.matched{opacity:.28!important;background:var(--soft)}.block-board{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;padding:14px;background:var(--card);border:1px solid var(--line);border-radius:18px;margin:20px auto;max-width:410px}.block-cell{aspect-ratio:1;border-radius:7px;background:var(--soft);border:1px solid var(--line)}.block-cell.occupied{background:linear-gradient(135deg,#9b88ff,#7361e7);border-color:#9680ee;box-shadow:inset 0 2px 4px #ffffff44}.block-cell:hover{outline:2px solid var(--violet)}.piece-preview{display:grid;grid-template-columns:repeat(3,30px);gap:5px;justify-content:center;margin:20px auto}.piece-preview i{width:30px;height:30px;border-radius:5px}.piece-preview i.filled{background:var(--violet);box-shadow:inset 0 2px 4px #ffffff44}.game-prompt{margin:20px 0;line-height:1.6;unicode-bidi:plaintext;overflow-wrap:anywhere}.game-notice{font-size:13px;color:var(--muted);line-height:1.6;margin:18px 0;min-height:20px}.game-notice.error{color:#d66b70}#blockAction>.wfull{margin-top:15px}
.block-cell.occupied{animation:words-pop .2s ease both}.pair-tile{transition:opacity .22s ease,background-color .18s ease,border-color .18s ease}.game-menu-card:hover{border-color:var(--violet)}@media(prefers-reduced-motion:reduce){.block-cell.occupied{animation:none}}
