:root{--bg: #f6fbff;--surface: #ffffff;--surface-soft: #eef8f6;--ink: #162033;--muted: #66758a;--line: #dbe7ef;--teal: #18a999;--teal-dark: #087a70;--yellow: #ffd166;--coral: #ff7568;--green: #68bd7d;--blue: #4d96ff;--shadow: 0 24px 60px rgba(39, 70, 105, .14);--radius: 8px;color:var(--ink);font-family:Nunito,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 12%,rgba(255,209,102,.24),transparent 24rem),radial-gradient(circle at 85% 8%,rgba(24,169,153,.2),transparent 22rem),linear-gradient(135deg,#f9fcff,#edf8f5)}button,input,select{font:inherit}button{cursor:pointer}.center-screen,.auth-layout{min-height:100vh}.center-screen{display:grid;place-items:center;align-content:center;gap:18px}.auth-layout{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:32px;align-items:center;padding:clamp(20px,5vw,70px)}.auth-hero h1{max-width:780px;margin:36px 0 18px;font-size:clamp(2.4rem,5vw,5.2rem);line-height:.98}.auth-hero p{max-width:650px;color:var(--muted);font-size:1.18rem;font-weight:800;line-height:1.55}.brand-row,.brand,.topbar,.panel-head,.metric-row,.answer-form,.dialog-actions,.topbar-actions{display:flex;align-items:center}.brand-row,.brand{gap:12px;color:var(--ink);text-decoration:none}.brand-mark{display:grid;width:48px;height:48px;place-items:center;border-radius:8px;background:linear-gradient(135deg,var(--teal),var(--blue));color:#fff;font-size:1.7rem;font-weight:900;box-shadow:0 12px 24px #18a99942}.brand strong,.brand-row strong{display:block;font-size:1.1rem;font-weight:900}.brand small,.brand-row small,.muted-line{color:var(--muted);font-size:.86rem;font-weight:800}.feature-strip{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.subject-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.subject-chip{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#31506b;font-size:.82rem;font-weight:900}.subject-chip span{display:grid;min-width:28px;height:28px;place-items:center;border-radius:8px;color:#fff;font-size:.78rem}.subject-chip.active,.subject-chip:hover{border-color:var(--teal);background:#eefaf8;color:var(--teal-dark)}.capacity-note{margin-top:12px}.mode-switch{margin-top:14px;grid-template-columns:repeat(3,1fr)}.dashboard-filter{max-width:260px;margin-top:14px}.dashboard-filter-row{display:flex;flex-wrap:wrap;gap:12px}.test-grade-select{max-width:160px;margin-top:12px}.feature-strip span{padding:10px 14px;border-radius:999px;background:#fff;color:var(--teal-dark);font-weight:900;box-shadow:0 10px 26px #2746691a}.auth-card,.child-form,.dialog,.mission-map,.panel,.practice-panel,.progress-aside>section{border:1px solid rgba(219,231,239,.92);border-radius:var(--radius);background:#ffffffe6;box-shadow:var(--shadow)}.auth-card,.child-form{display:grid;gap:16px;padding:24px}.demo-actions{display:grid;grid-template-columns:1fr;gap:10px;padding:12px;border-radius:8px;background:#f4f8fb}.auth-card label,.child-form label,.small-select{display:grid;gap:7px;color:var(--muted);font-size:.82rem;font-weight:900}input,select{width:100%;min-height:46px;padding:0 13px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-weight:900;outline:none}input:focus,select:focus{border-color:var(--teal);box-shadow:0 0 0 4px #18a99924}.segment-control{display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:8px;background:#edf5fb}.segment-control button{min-height:40px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-weight:900}.segment-control .active{background:#fff;color:var(--teal-dark);box-shadow:0 8px 18px #2746691a}.primary-button,.secondary-button,.profile-chip{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:0;border-radius:8px;font-weight:900}.primary-button{padding:0 18px;background:var(--teal);color:#fff;box-shadow:0 12px 26px #18a99940}.secondary-button,.profile-chip{padding:0 14px;background:#edf5fb;color:#31506b}.profile-chip.active,.secondary-button:hover,.profile-chip:hover{background:#e4f5f2;color:var(--teal-dark)}.secondary-button:disabled{cursor:not-allowed;opacity:.55}.form-error{margin:0;color:#a33d32;font-weight:900}.demo-note{margin:0;color:var(--muted);font-size:.88rem;font-weight:800}.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{display:flex;flex-direction:column;gap:28px;padding:28px 20px;border-right:1px solid rgba(219,231,239,.9);background:#ffffffd1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.side-nav{display:grid;gap:10px}.side-link{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:0 14px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-weight:900;text-align:left}.side-link.active,.side-link:hover{background:#e8f7f4;color:var(--teal-dark)}.logout{margin-top:auto}.workspace{display:flex;flex-direction:column;gap:24px;padding:30px clamp(18px,4vw,54px)}.topbar{justify-content:space-between;gap:22px}.topbar h1{margin:0 0 6px;font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.05}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px}.section-label{margin:0 0 6px;color:var(--teal-dark);font-size:.78rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.learning-grid{display:grid;grid-template-columns:290px minmax(0,1fr) 330px;gap:22px;align-items:start}.mission-layout{grid-template-columns:360px minmax(0,1fr) 330px}.module-column,.panel,.practice-panel{padding:22px}.module-grid{display:grid;gap:10px;margin-top:18px}.module-card,.test-item,.child-card,.class-card{display:grid;gap:8px;width:100%;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffffd1;color:var(--ink);text-align:left}.module-card{grid-template-columns:auto 1fr;align-items:center}.module-card span{grid-column:2;color:var(--muted);font-size:.84rem;font-weight:800}.module-card.active,.module-card:hover,.test-item.active,.child-card.active,.class-card.active,.mission-card.active,.mission-card:hover{border-color:var(--teal);background:#eefaf8}.mission-map{padding:22px}.mission-list,.mission-progress-list{display:grid;gap:10px;margin-top:18px}.mission-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;width:100%;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffffdb;color:var(--ink);text-align:left}.mission-card.completed{border-color:#68bd7db3;background:#effaf2}.mission-visual{display:grid;width:48px;height:48px;place-items:center;border-radius:8px;background:#fff5d9;color:var(--teal-dark);font-weight:900}.mission-copy{display:grid;gap:4px;min-width:0}.mission-copy small,.mission-meta{color:var(--muted);font-size:.82rem;font-weight:800}.mission-meta{display:inline-flex;align-items:center;gap:5px;justify-self:end;white-space:nowrap}.progress-track{grid-column:1 / -1;display:block;height:8px;overflow:hidden;border-radius:999px;background:#dcebf2}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--teal),var(--green))}.progress-track.large{height:12px;margin:16px 0}.practice-panel,.panel{background:#ffffffe6}.panel-head{justify-content:space-between;gap:16px}.panel h2,.practice-panel h2{margin:0;font-size:1.28rem}.exercise-card{display:grid;gap:18px;margin-top:18px;padding:clamp(18px,3vw,32px);border:1px solid #d1ebe7;border-radius:var(--radius);background:linear-gradient(135deg,#fffffff5,#eff9f7eb),repeating-linear-gradient(0deg,transparent,transparent 38px,rgba(24,169,153,.08) 39px)}.mission-player{min-width:0}.mission-status,.mission-recap,.compact-mission-stats{display:flex;flex-wrap:wrap;gap:10px}.mission-status{margin-top:16px}.mission-status span,.compact-mission-stats span{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 12px;border-radius:8px;background:#f4f8fb;color:#31506b;font-weight:900}.hint-stack{display:grid;gap:8px}.hint{display:flex;gap:9px;align-items:flex-start;padding:11px 12px;border-radius:8px;background:#fff8df;color:#6d5720;font-weight:900}.mission-complete{display:grid;justify-items:start;gap:12px;margin-top:18px;padding:clamp(20px,3vw,34px);border:1px solid rgba(104,189,125,.55);border-radius:var(--radius);background:#effaf2;color:#217245}.mission-complete h3,.mission-complete p{margin:0}.mission-recap{margin-top:16px}.question-visual{display:grid;width:96px;height:72px;place-items:center;border-radius:8px;background:#fff8df;color:var(--teal-dark);font-size:3rem;font-weight:900}.question-prompt{margin:0;color:var(--ink);font-size:clamp(1.4rem,3vw,2.35rem);font-weight:900;line-height:1.15}.answer-form{gap:12px;align-items:end}.answer-form label{display:grid;flex:1;gap:7px;color:var(--muted);font-weight:900}.answer-control{display:grid;flex:1;gap:8px;color:var(--muted);font-weight:900}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.choice-button{min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#31506b;font-weight:900;text-align:center}.choice-button.active,.choice-button:hover{border-color:var(--teal);background:#eefaf8;color:var(--teal-dark)}.feedback{display:grid;gap:4px;padding:14px;border-radius:8px;font-weight:900}.feedback.correct{background:#e9f8ee;color:#217245}.feedback.wrong{background:#fff0ee;color:#a33d32}.actions-row{display:flex;flex-wrap:wrap;gap:10px}.progress-aside{display:grid;gap:18px}.big-number{display:block;font-size:3.2rem;line-height:1}.recommendation-list{display:grid;gap:10px;margin:14px 0 0;padding:0;list-style:none}.recommendation-list li{display:flex;align-items:center;gap:9px;padding:10px;border-radius:8px;background:#f4f8fb;color:#31506b;font-weight:900}.attempt-table{display:grid;gap:8px;margin-top:14px;overflow-x:auto}.attempt-row{display:grid;grid-template-columns:150px minmax(0,1fr) 120px 74px;gap:10px;align-items:center;padding:10px 12px;border-radius:8px;background:#f5f9fc;color:var(--muted);font-size:.88rem;font-weight:800;width:100%;border:0;text-align:left}.progress-aside .attempt-row{grid-template-columns:1fr 74px}.attempt-table.detailed{min-width:100%}.attempt-table.detailed .attempt-row{grid-template-columns:minmax(110px,.8fr) minmax(120px,.8fr) minmax(260px,2fr) minmax(110px,.8fr) minmax(110px,.8fr) 70px 90px minmax(110px,.8fr) 130px 80px;min-width:1200px}.attempt-table.detailed .attempt-row:not(.header):hover{background:#eefaf8}.attempt-table.detailed .attempt-row.header{background:#e9f2f7;color:#31506b;cursor:default;font-weight:900}.attempt-table.detailed .attempt-row:not(.header) span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ok{color:#217245}.bad{color:#a33d32}.two-column{display:grid;grid-template-columns:minmax(280px,390px) minmax(0,1fr);gap:22px;align-items:start}.test-list,.child-list,.class-list{display:grid;gap:12px;margin-top:18px}.test-item{grid-template-columns:auto 1fr;align-items:center}.test-item small,.child-card small{display:block;color:var(--muted);font-weight:800}.test-runner .score-result{display:grid;gap:12px;margin-top:22px}.score-result strong{font-size:4rem;line-height:1}.child-card{grid-template-columns:auto 1fr auto;align-items:center}.class-card{grid-template-columns:auto 1fr;align-items:center}.child-card span{display:grid;width:42px;height:42px;place-items:center;border-radius:8px;background:#fff5d9}.child-card.static{cursor:default}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:22px}.wide{grid-column:1 / -1}.hero-panel{background:linear-gradient(135deg,#fffffff0,#e8f7f4f0)}.metric-row{flex-wrap:wrap;gap:14px;margin-top:18px}.metric{min-width:150px;padding:16px;border-radius:8px;background:#fff}.metric strong{display:block;font-size:2rem}.metric span{color:var(--muted);font-weight:900}.empty-state{display:grid;justify-items:start;gap:10px}.empty-state p{margin:0;color:var(--muted);font-weight:800}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:20px;background:#1620335c}.dialog{display:grid;width:min(420px,100%);gap:14px;padding:24px}.dialog h2,.dialog p{margin:0}.dialog-actions{justify-content:flex-end;gap:10px}.teacher-grid{display:grid;grid-template-columns:minmax(280px,360px) minmax(320px,430px) minmax(0,1fr);gap:22px;align-items:start}.class-form,.inline-form{display:grid;gap:12px;margin-top:18px}.class-form label,.inline-form label,.filter-grid label{display:grid;gap:7px;color:var(--muted);font-size:.82rem;font-weight:900}.form-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px}.compact-list{margin-top:14px}.filter-grid{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:12px;margin:18px 0}.attempt-detail{width:min(820px,100%)}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.detail-grid div{display:grid;gap:5px;padding:12px;border-radius:8px;background:#f5f9fc}.detail-grid .full{grid-column:1 / -1}.detail-grid dt{color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.detail-grid dd{margin:0;color:var(--ink);font-weight:900}.mission-progress-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 12px;border-radius:8px;background:#f5f9fc;color:var(--muted);font-size:.88rem;font-weight:900}.mission-progress-list.compact .mission-progress-row:nth-child(n+5){display:none}@media (max-width: 1420px){.mission-layout{grid-template-columns:minmax(300px,360px) minmax(360px,1fr)}.mission-layout .progress-aside{grid-column:1 / -1;grid-template-columns:repeat(4,minmax(180px,1fr))}.teacher-grid{grid-template-columns:minmax(300px,360px) minmax(0,1fr)}.teacher-grid .hero-panel,.teacher-grid .wide{grid-column:1 / -1}}@media (max-width: 1180px){.learning-grid,.mission-layout,.dashboard-grid,.teacher-grid,.two-column{grid-template-columns:1fr}.module-grid,.mission-list,.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 860px){.auth-layout,.app-shell{grid-template-columns:1fr}.sidebar{position:static;flex-direction:row;align-items:center;overflow-x:auto;padding:16px}.side-nav{display:flex}.side-link{width:auto;white-space:nowrap}.logout{margin-top:0}.topbar,.answer-form{align-items:stretch;flex-direction:column}.mission-card{grid-template-columns:auto minmax(0,1fr)}.mission-meta{grid-column:2;justify-self:start}}@media (max-width: 620px){.workspace{padding:18px 14px 28px}.module-grid,.mission-list,.filter-grid,.detail-grid,.form-row,.metric-row,.attempt-row{grid-template-columns:1fr}.attempt-table.detailed{min-width:0}.attempt-table.detailed .attempt-row{grid-template-columns:1fr;min-width:0}.attempt-table.detailed .attempt-row.header{display:none}.attempt-table.detailed .attempt-row:not(.header) span{white-space:normal}.auth-layout{padding:18px}}
