:root{
  --navy:#0d2f55;--navy2:#123f6f;--ink:#173554;--muted:#708398;--ice:#f5f8fb;--line:#d8e3ed;--panel:#fff;
  --green:#2d6c57;--green-bg:#edf6f2;--purple:#5a4d75;--purple-bg:#f3f0f8;--blue-bg:#eef5fb;--danger:#a64a4a;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#eef3f7
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:linear-gradient(180deg,#eef4f8,#f8fafc 240px,#f5f8fb);color:var(--ink)}
button,input,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
a{color:inherit}.app{min-height:100vh}.shell{max-width:1240px;margin:0 auto;padding:0 24px 48px}
.topbar{position:sticky;top:0;z-index:40;background:rgba(247,250,252,.94);backdrop-filter:blur(15px);border-bottom:1px solid rgba(197,211,224,.85)}
.topbar-inner{max-width:1240px;margin:auto;min-height:72px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,#0d2f55,#245f8d);display:grid;place-items:center;color:white;font-family:Georgia,serif;font-weight:800;font-size:17px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.brand strong{display:block;font-family:Georgia,serif;letter-spacing:.04em;font-size:17px;color:#0b294a}.brand small{display:block;color:#6d8094;font-size:11px;margin-top:1px}
.top-actions{display:flex;align-items:center;gap:9px}.top-actions a,.ghost-btn{border:1px solid #cbd9e5;background:#fff;color:#315778;border-radius:10px;padding:9px 12px;text-decoration:none;font-size:12px;font-weight:800}.ghost-btn:hover,.top-actions a:hover{background:#f1f6fa}
.primary-btn{border:0;background:#153f6a;color:#fff;border-radius:11px;padding:11px 15px;font-size:12px;font-weight:850}.primary-btn:hover{background:#0d3258}.primary-btn:disabled{opacity:.55;cursor:default}
.hero{padding:42px 0 25px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:24px;align-items:end}
.kicker{display:inline-flex;align-items:center;gap:7px;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:900;color:#416687}.hero h1{font-family:Georgia,serif;font-size:clamp(34px,5vw,58px);line-height:1.02;color:#0b294c;margin:10px 0 12px}.hero p{font-size:15px;line-height:1.65;color:#63798f;max-width:680px;margin:0}
.hero-side{background:#102f50;border-radius:20px;padding:20px;color:white;box-shadow:0 18px 46px rgba(17,48,78,.16)}.hero-side small{display:block;color:#b7cadb;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.hero-side strong{font-family:Georgia,serif;font-size:25px;display:block;margin:5px 0 12px}.hero-side p{font-size:12px;color:#d5e2ed;line-height:1.5}.hero-side .bar{height:8px;border-radius:99px;background:#294b68;overflow:hidden;margin-top:15px}.hero-side .bar span{display:block;height:100%;background:#8fd0c0;width:0}
.navtabs{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0 26px}.navtab{border:1px solid #cddbe6;background:#fff;color:#46647f;padding:10px 14px;border-radius:999px;font-size:12px;font-weight:850}.navtab.active{background:#153f6a;border-color:#153f6a;color:#fff}
.page{display:none}.page.active{display:block}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px}.metric{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px}.metric span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#6e8398;font-weight:900}.metric strong{display:block;font-family:Georgia,serif;font-size:30px;color:#123a65;margin-top:5px}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:22px 0 12px}.section-head h2{font-family:Georgia,serif;font-size:27px;color:#0f3158;margin:3px 0}.section-head p{color:#75879b;font-size:12px;margin:0}.section-head .count{min-width:38px;height:38px;border:1px solid #d3dfe9;border-radius:12px;background:#fff;display:grid;place-items:center;color:#315c80;font-weight:900}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.task-card{background:#fff;border:1px solid #d8e3ed;border-radius:18px;padding:17px;display:flex;flex-direction:column;min-width:0;transition:.16s}.task-card:hover{border-color:#adc4d7;transform:translateY(-1px);box-shadow:0 12px 28px rgba(25,61,94,.07)}.task-card.done{background:#f8fbfa}.task-card .top{display:flex;justify-content:space-between;gap:12px}.task-card .eyebrow{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#55748e;font-weight:900}.task-card h3{font-family:Georgia,serif;font-size:19px;line-height:1.2;color:#10345e;margin:7px 0 8px}.task-card p{font-size:12px;line-height:1.55;color:#738598;margin:0 0 14px}.time{font-size:10px;font-weight:900;color:#476984;background:#f0f5f9;padding:6px 8px;border-radius:999px;white-space:nowrap}.badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}.badge{font-size:9px;font-weight:850;border:1px solid #d2dee8;border-radius:999px;padding:5px 7px;background:#f7fafc;color:#536d84}.badge.game{background:#edf6f2;border-color:#cfe4dc;color:#326150}.badge.teacher{background:#f3f0f8;border-color:#e0d9ea;color:#625578}.badge.score{background:#eef5fb;color:#2f5d84}.task-foot{border-top:1px solid #e6edf3;margin-top:14px;padding-top:12px;display:flex;justify-content:space-between;align-items:center;gap:10px}.task-foot small{font-size:10px;color:#7a8da0}.text-btn{border:0;background:transparent;color:#174e7c;font-size:11px;font-weight:900;padding:5px}.empty{border:1px dashed #c9d8e5;background:#f9fbfc;border-radius:16px;padding:28px;text-align:center;color:#7b8ea1;font-size:13px}
.memory-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.memory-filter{border:1px solid #d0dee8;background:#fff;border-radius:999px;padding:8px 11px;color:#55718a;font-size:11px;font-weight:850}.memory-filter.active{background:#153f6a;color:#fff;border-color:#153f6a}.memory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.memory-card{background:#fff;border:1px solid #d8e3ed;border-radius:16px;padding:16px}.memory-card strong{font-family:Georgia,serif;color:#10365f;font-size:18px}.memory-card p{color:#708498;font-size:11px;margin:7px 0}.status{display:inline-flex;font-size:9px;font-weight:900;border-radius:999px;padding:5px 8px;background:#edf3f8;color:#42637e}.status.REVIEW{background:#fff4dd;color:#866321}.status.ACTIVE{background:#eaf6ef;color:#2e6950}.status.LEARNING{background:#edf2fb;color:#355e91}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 10%,#dceaf3 0,transparent 36%),linear-gradient(145deg,#f7fafc,#eef4f8)}.login-card{width:min(440px,100%);background:#fff;border:1px solid #d7e2eb;border-radius:24px;padding:30px;box-shadow:0 24px 70px rgba(18,52,83,.13)}.login-card .brand{margin-bottom:24px}.login-card h1{font-family:Georgia,serif;font-size:31px;color:#0e3158;margin:0 0 8px}.login-card>p{color:#718499;font-size:13px;line-height:1.55;margin:0 0 22px}.field{display:grid;gap:6px;margin:13px 0}.field label{font-size:10px;font-weight:900;color:#526c84;text-transform:uppercase;letter-spacing:.07em}.field input,.field textarea{width:100%;border:1px solid #cad9e5;background:#fbfcfd;border-radius:11px;padding:12px 13px;color:#173958;font-size:16px;outline:none}.field input:focus,.field textarea:focus{border-color:#4d7da4;box-shadow:0 0 0 3px rgba(67,111,150,.1)}.login-card .primary-btn{width:100%;margin-top:8px;min-height:46px}.message{min-height:20px;font-size:11px;color:#a44e4e;margin-top:10px}.message.good{color:#2d6c57}
.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(7,22,39,.58);display:grid;place-items:center;padding:20px}.modal{width:min(920px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:21px;box-shadow:0 30px 90px rgba(3,17,30,.35)}.modal-head{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid #dbe5ee;padding:17px 20px;display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.modal-head .eyebrow{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:#54728c;font-weight:900}.modal-head h2{font-family:Georgia,serif;font-size:24px;color:#0f3159;margin:4px 0}.icon-btn{width:38px;height:38px;border:1px solid #d5e1eb;border-radius:11px;background:#fff;color:#4b6780;font-size:19px}.modal-body{padding:20px}.task-intro{color:#6f8296;font-size:12px;line-height:1.6;margin:0 0 12px}.prompt-box,.reference-box,.audio-box,.feedback-box{border:1px solid #d8e3ed;background:#f8fafc;border-radius:14px;padding:14px;margin:12px 0}.prompt-box{background:#f1f6fa;color:#173a61;font-weight:750}.reference-box pre{white-space:pre-wrap;font:inherit;font-size:12px;line-height:1.65;color:#425e78;margin:0}.audio-box{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.audio-state{font-size:11px;color:#687e92}.feedback-box.good{background:#edf6f2;border-color:#cbe3da;color:#315f51}.feedback-box.bad{background:#fff0f0;border-color:#ebcece;color:#8c4d4d}.modal-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:14px}
.quick-game-stage{border:0;background:transparent;padding:0;margin:10px 0}.mini-game-shell{border:1px solid #173651;border-radius:18px;overflow:hidden;background:#f8fbfd;margin:12px 0 4px;box-shadow:0 16px 34px rgba(9,28,51,.15)}.mini-game-topbar{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 14px;background:#102d4c;border-bottom:3px solid #081d34}.mini-game-topbar strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:#f4fbff;letter-spacing:.035em}.mini-game-topbar span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;color:#b8d7e8;font-weight:900}.mini-game-canvas-wrap{position:relative;background:#183754;border-bottom:4px solid #0a2038;overflow:hidden}.mini-game-canvas{display:block;width:100%;height:auto;aspect-ratio:16/9;max-height:440px;image-rendering:pixelated;image-rendering:crisp-edges;background:#75bcd6}.mini-game-challenge{padding:16px;background:#fff}.mini-game-round-label{font-size:8px;font-weight:950;letter-spacing:.11em;text-transform:uppercase;color:#397099}.mini-game-challenge h4{font-size:18px;line-height:1.35;color:#0d2e59;margin:6px 0 12px}.mini-game-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.mini-game-option{min-height:50px;border:1px solid #c4d3e0;border-radius:12px;background:#f7fafc;color:#173b62;font-size:11px;font-weight:850;padding:10px 11px;cursor:pointer}.mini-game-option.correct{border-color:#7db798;background:#eaf6ee;color:#245744}.mini-game-option.wrong{border-color:#cf8f8f;background:#fbebeb;color:#793e3e}.mini-game-option:disabled{cursor:default;opacity:.7}.mini-game-feedback{min-height:24px;margin-top:10px;font-size:10px;font-weight:850;color:#526d86}.mini-game-feedback.good{color:#2f6c52}.mini-game-feedback.bad{color:#995252}.mini-game-finish{display:grid;gap:9px;text-align:center;padding:17px 8px}.mini-game-finish strong{font-family:Georgia,serif;font-size:26px;color:#0d2e59}.mini-game-keyhint{font-size:8px;color:#8595a6}.mini-game-shell.game-platformer .mini-game-topbar{background:#123c58}.mini-game-shell.game-language_battle .mini-game-topbar{background:#3a2858}.mini-game-shell.game-adventure_board .mini-game-topbar{background:#245240}
.match-board{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.match-column{display:grid;gap:7px}.match-column button{min-height:42px;border:1px solid #cddae6;background:#fff;color:#193b60;border-radius:10px;padding:9px;text-align:left;font-size:11px;font-weight:750}.match-column button.selected{border-color:#356b98;background:#edf5fb}.match-column button.matched{opacity:.55;background:#f0f4f7}.match-progress{margin-top:10px;color:#60758a;font-size:10px;font-weight:800}
.account-card{max-width:620px;background:#fff;border:1px solid #d8e3ed;border-radius:18px;padding:20px}.account-card h3{font-family:Georgia,serif;color:#10365d;font-size:22px;margin-top:0}.account-row{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #e5edf3;padding:12px 0;font-size:12px}.account-row:first-of-type{border-top:0}.account-row span{color:#76899b}.account-row strong{color:#173a5d}
@media(max-width:900px){.hero{grid-template-columns:1fr}.grid,.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar-inner{padding:0 16px}.shell{padding-inline:16px}.hero{padding-top:30px}}
@media(max-width:620px){.brand small{display:none}.top-actions a{display:none}.grid,.memory-grid,.metrics{grid-template-columns:1fr}.hero h1{font-size:38px}.hero{padding-top:24px}.navtabs{position:sticky;top:72px;z-index:30;background:rgba(245,248,251,.96);padding:8px 0;margin-top:0;overflow:auto;flex-wrap:nowrap}.navtab{white-space:nowrap}.section-head{align-items:flex-start}.mini-game-options{grid-template-columns:1fr}.mini-game-canvas{aspect-ratio:4/3;max-height:none}.mini-game-topbar{align-items:flex-start;flex-direction:column}.match-board{grid-template-columns:1fr}.modal-backdrop{padding:0;align-items:end}.modal{border-radius:20px 20px 0 0;max-height:94vh}.task-foot{align-items:flex-start}.topbar-inner{min-height:64px}.navtabs{top:64px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.task-card:hover{transform:none}}

.mini-game-shell.game-escape_room .mini-game-topbar{background:#2f3154}.mini-game-shell.game-evidence_hunt .mini-game-topbar{background:#24485f}.mini-game-shell.game-language_cafe .mini-game-topbar{background:#8a5843}.mini-game-shell.game-research_lab .mini-game-topbar{background:#1d6674}.mini-game-shell.game-build_abstract .mini-game-topbar{background:#426287}.mini-game-shell.game-academic_tetris .mini-game-topbar{background:#2d315c}.mini-game-shell.game-word_factory .mini-game-topbar{background:#4b5d66}.mini-game-shell.game-conference_rush .mini-game-topbar{background:#5b4d83}.mini-game-shell.game-argument_builder .mini-game-topbar{background:#3c587b}.mini-game-shell.game-vocabulary_dungeon .mini-game-topbar{background:#322f52}.mini-game-shell.game-speed_sort .mini-game-topbar{background:#22677d}.mini-game-shell.game-spot_problem .mini-game-topbar{background:#536a80}
