:root{--bg:#071f28;--panel:#0b2b36;--card:#fff;--ink:#0a1f26;--muted:#708089;--line:#dce5e8;--accent:#20c997;--accent2:#0fa877;--soft:#eafbf5;--warn:#d98d00;--danger:#b3261e;--shadow:0 24px 70px rgba(0,0,0,.15)}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",Tahoma,Arial,sans-serif;background:#eef4f5;color:var(--ink)}button,input,select{font:inherit}.shell{min-height:100vh}.auth-grid{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.brand-panel{background:radial-gradient(circle at 10% 10%,#15586b,var(--bg) 52%);color:white;padding:8vw;display:flex;flex-direction:column;justify-content:center;gap:28px}.brand-mark{width:84px;height:84px;border-radius:24px;display:grid;place-items:center;font-size:30px;font-weight:900;background:linear-gradient(145deg,#28e0aa,#12a97d);color:#04251d;box-shadow:0 18px 50px rgba(32,201,151,.25)}.brand-mark.small{width:46px;height:46px;border-radius:13px;font-size:18px}.brand-panel h1{font-size:clamp(38px,5vw,78px);line-height:1.05;margin:10px 0 14px;max-width:720px}.brand-panel p{font-size:20px;line-height:1.8;color:#d1e2e7;max-width:620px}.eyebrow{font-size:12px;letter-spacing:.18em;font-weight:800;color:#20c997}.feature-list{display:flex;flex-wrap:wrap;gap:10px}.feature-list div{padding:10px 14px;border:1px solid rgba(255,255,255,.15);border-radius:999px;background:rgba(255,255,255,.06)}.auth-card{margin:auto;width:min(600px,88%);padding:34px}.card{background:#fff;border-radius:28px;box-shadow:var(--shadow)}.tabs{display:flex;background:#f1f5f6;padding:6px;border-radius:15px;margin-bottom:24px}.tab{flex:1;border:0;background:transparent;padding:12px;border-radius:11px;cursor:pointer;color:#61727a}.tab.active{background:white;color:var(--ink);box-shadow:0 4px 18px rgba(0,0,0,.08);font-weight:800}.form{display:none;gap:15px}.form.active{display:grid}.form label{display:grid;gap:7px;font-weight:700;font-size:13px}.form input,.form select,.input{width:100%;border:1px solid var(--line);border-radius:12px;padding:13px 14px;background:#fbfdfd;outline:none}.form input:focus,.input:focus{border-color:#19b887;box-shadow:0 0 0 3px rgba(32,201,151,.12)}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.primary,.ghost,.danger-ghost{border:0;border-radius:13px;padding:13px 16px;cursor:pointer;font-weight:800}.primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#04271d}.ghost{background:#e9f8f3;color:#096846}.danger-ghost{background:#fff0ef;color:var(--danger)}.hint{font-size:12px;color:var(--muted);line-height:1.7}.hidden{display:none!important}.app-view{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:var(--bg);color:white;padding:25px 18px;display:flex;flex-direction:column;gap:18px}.logo-row{display:flex;align-items:center;gap:11px;padding:0 6px 14px}.logo-row small{display:block;color:#9bb5bd}.sidebar nav{display:grid;gap:7px;flex:1}.nav-btn{border:0;background:transparent;color:#a9c0c6;text-align:right;padding:12px 14px;border-radius:12px;cursor:pointer}.nav-btn.active,.nav-btn:hover{background:#113944;color:white}.content{padding:32px;max-width:1500px;width:100%;margin:auto}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.topbar h2{margin:6px 0 0;font-size:30px}.user-badge{background:white;border:1px solid var(--line);border-radius:16px;padding:10px 14px;min-width:180px}.user-badge small{display:block;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat{background:white;border:1px solid var(--line);border-radius:18px;padding:20px}.stat b{display:block;font-size:32px;margin-top:8px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}.panel{background:white;border:1px solid var(--line);border-radius:20px;padding:20px}.panel h3{margin-top:0}.lesson{display:flex;flex-direction:column;gap:12px}.progress{height:9px;background:#e8eeee;border-radius:99px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2))}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eef3f4;color:#4c626b;font-size:12px}.pill.active{background:#e5fbf3;color:#08734f}.pill.pending{background:#fff6df;color:#9a6600}.pill.suspended{background:#ffebea;color:#9f2a23}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px;background:white}.table{width:100%;border-collapse:collapse;min-width:850px}.table th,.table td{padding:13px 12px;border-bottom:1px solid #edf1f2;text-align:right;font-size:13px}.table th{background:#f7fafb;color:#557079;position:sticky;top:0}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.toolbar .input{max-width:260px}.modal{position:fixed;inset:0;background:rgba(3,17,22,.58);display:grid;place-items:center;padding:20px;z-index:10}.modal-card{background:white;width:min(560px,100%);border-radius:22px;padding:24px;box-shadow:var(--shadow)}.toast{position:fixed;left:24px;bottom:24px;z-index:99;background:#0f303a;color:white;padding:13px 17px;border-radius:12px;opacity:0;transform:translateY(12px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}.empty{padding:36px;text-align:center;color:var(--muted)}@media(max-width:980px){.auth-grid{grid-template-columns:1fr}.brand-panel{padding:42px 26px;min-height:42vh}.brand-panel h1{font-size:44px}.auth-card{margin:28px auto}.app-view{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:4;flex-direction:row;align-items:center;padding:10px 12px;overflow:auto}.logo-row{display:none}.sidebar nav{display:flex;flex:1;overflow:auto}.nav-btn{white-space:nowrap}.sidebar #installBtn,.sidebar #logoutBtn{white-space:nowrap;padding:10px}.content{padding:20px}.stats{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.brand-panel p{font-size:16px}.two{grid-template-columns:1fr}.stats,.grid{grid-template-columns:1fr}.topbar{align-items:flex-start}.user-badge{min-width:0}.content{padding:16px}.auth-card{padding:22px}}
.subtle{margin:4px 0 0;color:var(--muted);font-size:13px}.cell-sub{display:block;color:var(--muted);margin-top:3px}.row-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.compact{padding:8px 10px;border-radius:10px;font-size:12px}.approval-list{display:grid;gap:9px;margin-top:14px}.approval-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fbfdfd}.approval-item small{display:block;color:var(--muted);margin-top:4px}.empty.mini{padding:18px}.admin-toolbar .input{max-width:220px}.modal-card.wide{width:min(720px,100%)}.modal-card.extra-wide{width:min(980px,100%);max-height:90vh;overflow:auto}.two-col{grid-template-columns:1fr 1fr}.lesson-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.mini-progress{width:110px;height:7px;background:#e7eeee;border-radius:99px;overflow:hidden;margin-bottom:4px}.mini-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2))}.mini-stats{grid-template-columns:repeat(3,1fr)}.small-value{font-size:14px!important;line-height:1.4}.form select:disabled,.form input:disabled{opacity:.55;background:#f2f4f5}@media(max-width:760px){.approval-item{align-items:flex-start;flex-direction:column}.two-col,.mini-stats{grid-template-columns:1fr}.admin-toolbar .input{max-width:none;flex:1 1 160px}}
.lesson-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;background:linear-gradient(135deg,#082a35,#0d4d55);color:#fff;padding:28px;border-radius:24px}.lesson-hero h2{font-size:34px;margin:10px 0}.lesson-hero p{color:#cde0e4;max-width:760px;line-height:1.7}.progress-ring{width:110px;height:110px;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center;align-content:center;flex:0 0 auto}.progress-ring b{font-size:28px}.progress-ring span{font-size:11px;color:var(--muted)}.progress.big{height:12px;margin:14px 0 22px}.lesson-section{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;margin:18px 0}.section-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px}.section-head>span{width:38px;height:38px;border-radius:12px;background:var(--soft);display:grid;place-items:center;font-weight:900;color:#08734f}.section-head h3{margin:0}.section-head p{margin:4px 0 0;color:var(--muted)}.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.video-card{border:1px solid var(--line);border-radius:18px;padding:14px;background:#fbfdfd;display:grid;gap:12px}.video-card.done{border-color:#9fe5cd;background:#f1fff9}.lesson-video{width:100%;border-radius:13px;background:#06191f;max-height:330px}.video-placeholder{padding:35px 18px;text-align:center;border:1px dashed #c7d4d8;border-radius:12px;color:var(--muted)}.media-link{padding:14px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:#08734f;background:white}.vocab-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.vocab-card{border:1px solid var(--line);border-radius:14px;padding:14px}.vocab-card b,.vocab-card span{display:block}.vocab-card span{color:var(--muted);margin-top:6px}.grammar-box,.task-box,.feedback{padding:18px;border-radius:16px;background:#f5f9fa;line-height:1.9;white-space:pre-wrap}.quiz-list{display:grid;gap:14px}.quiz-q{border:1px solid var(--line);border-radius:16px;padding:16px}.option-list{display:grid;gap:8px;margin-top:12px}.option-list label{padding:10px 12px;border:1px solid #e5ebed;border-radius:11px;cursor:pointer}.option-list label:has(input:checked){border-color:#20c997;background:#eefcf7}.result-note{padding:10px 14px;background:var(--soft);border-radius:12px}.homework-form{display:grid;gap:12px}.homework-form textarea,.form textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:13px 14px;background:#fbfdfd;outline:none;font:inherit;resize:vertical}.video-admin{display:grid;gap:9px}.video-admin-row{display:grid;grid-template-columns:36px .7fr 1.3fr;gap:8px;align-items:center}.video-admin-row>span{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:var(--soft);font-weight:800}.qr-link{text-decoration:none;display:inline-flex;align-items:center}.primary:disabled,.ghost:disabled{opacity:.5;cursor:not-allowed}@media(max-width:900px){.video-grid{grid-template-columns:1fr}.vocab-grid{grid-template-columns:repeat(2,1fr)}.lesson-hero{align-items:flex-start}.video-admin-row{grid-template-columns:32px 1fr}.video-admin-row .v-url{grid-column:2}}@media(max-width:560px){.lesson-hero{flex-direction:column}.vocab-grid{grid-template-columns:1fr}.progress-ring{width:88px;height:88px}.lesson-hero h2{font-size:26px}}

/* Guided lesson flow */
.lesson-section[hidden], [hidden]{display:none!important}
.stage-status{display:flex;justify-content:space-between;gap:16px;margin:24px 0 0;padding:18px 22px;background:#edf4ff;border-radius:16px;color:#174b92}
.stage-navigation{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0;padding:18px;background:#fff;border:1px solid #dce5f1;border-radius:16px}
.stage-navigation span{font-size:14px;color:#5a6476;text-align:center}
button:disabled{opacity:.5;cursor:not-allowed}
.video-grid.single-player{display:block;width:100%;max-width:960px;margin:auto}
#sequenceVideo{width:100%;max-height:65vh;background:#101828;border-radius:12px}
#playerMessage:empty{display:none}
@media(max-width:600px){.stage-navigation{flex-wrap:wrap}.stage-navigation span{order:3;width:100%}.stage-status{font-size:14px}.lesson-section{margin-top:18px}}

/* Course access system v0.5 */
.activation-hero{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:22px;background:linear-gradient(135deg,#082a35,#0f4c55);color:#fff}.activation-hero p{color:#cde0e4;max-width:760px}.activation-hero h3{font-size:26px;margin:6px 0}.section-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:24px 0 14px}.section-title h3{margin:0}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.course-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;display:flex;flex-direction:column;gap:14px;min-height:280px;box-shadow:0 8px 28px rgba(8,42,53,.04)}.course-card.locked{background:linear-gradient(180deg,#fff,#f7fafb)}.course-card.unlocked{border-color:#a9e7d2}.course-card-top,.course-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.course-category{font-size:11px;font-weight:800;letter-spacing:.08em;color:#557079;text-transform:uppercase}.course-lock{width:38px;height:38px;border-radius:12px;background:var(--soft);display:grid;place-items:center;font-weight:900}.course-card h3{font-size:21px;margin:0 0 8px}.course-card p{color:var(--muted);line-height:1.7;margin:0}.course-actions{margin-top:auto}.course-actions button{width:100%}.locked-note{padding:11px 13px;background:#f2f5f6;border-radius:12px;color:#61727a;font-size:12px}.course-expiry{color:var(--muted)}.locked-empty{text-align:center;padding:38px;margin-top:18px}.lock-big{font-size:42px;margin-bottom:8px}.expected-course{margin:14px 0;padding:12px 14px;border-radius:12px;background:#f4f8f9}.course-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(135deg,#082a35,#0d4d55);color:white;padding:28px;border-radius:24px;margin-bottom:18px}.course-hero h2{font-size:32px;margin:10px 0}.course-hero p{color:#cde0e4;max-width:760px}.expiry-box{background:rgba(255,255,255,.1);padding:15px 18px;border-radius:16px;min-width:180px}.expiry-box small,.expiry-box b{display:block}.expiry-box small{color:#cde0e4;margin-bottom:6px}.generated-codes{width:100%;min-height:260px;border:1px solid var(--line);border-radius:14px;padding:14px;margin:16px 0;background:#f8fbfc;font:600 14px ui-monospace,SFMono-Regular,Menlo,monospace;direction:ltr;text-align:left}.enrollment-list{display:grid;gap:10px}.enrollment-item{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 14px;border:1px solid var(--line);border-radius:14px}.enrollment-item small{display:block;color:var(--muted);margin-top:4px}.enrollment-item>div:last-child{text-align:left}
@media(max-width:980px){.course-grid{grid-template-columns:1fr 1fr}.activation-hero,.course-hero{align-items:flex-start}.activation-hero{flex-direction:column}.activation-hero .primary{width:100%}}
@media(max-width:620px){.course-grid{grid-template-columns:1fr}.section-title,.course-hero{flex-direction:column;align-items:stretch}.section-title .primary,.section-title .ghost{width:100%}.expiry-box{min-width:0}.enrollment-item{align-items:flex-start;flex-direction:column}.enrollment-item>div:last-child{text-align:right}}

/* Assigned student login and unified kids catalog */
.username-hint{background:#edf7f5;border-radius:12px;padding:12px;margin:0}
.registration-success{display:grid;gap:14px;text-align:center;max-width:480px}
.registration-success h3,.registration-success p{margin:0;line-height:1.7}
.registration-success label{display:grid;gap:8px;font-weight:700}
.success-mark{display:grid;place-items:center;width:58px;height:58px;margin:auto;border-radius:50%;background:#d6f5e7;color:#086448;font-size:30px}
.assigned-username{font:700 clamp(22px,5vw,32px) ui-monospace,monospace;color:#083744;text-align:center;border:2px solid #addace;border-radius:14px;width:100%;padding:16px;background:#f3fbf8}
.kids-group{background:linear-gradient(140deg,#eefaf5,#f2f5ff);border-color:#b7dfd3}
.kids-group h3{font-size:25px;color:#0c534b}
.kids-summary{font-size:14px;color:#315d57;padding:10px 12px;border-radius:12px;background:#ffffffaa}
.course-hero .ghost{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;background:#fff;color:#163c47}
.course-hero .eyebrow{display:block;margin-top:12px}
