
:root{--navy:#061a2c;--navy2:#0b2b48;--gold:#d7a844;--cream:#fbf7ef;--ink:#10283d;--muted:#6d7d89;--green:#147a55;--red:#a64242;--line:#d9cfbb}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:linear-gradient(180deg,#f8f4ea 0,#fff 40%,#f4efe4 100%);color:var(--ink)}
a{text-decoration:none;color:inherit}.hidden{display:none!important}.wrap{width:min(1120px,calc(100% - 32px));margin:auto}.top{background:rgba(6,26,44,.97);color:white;position:sticky;top:0;z-index:10;box-shadow:0 5px 20px #0003}.nav{display:flex;justify-content:space-between;align-items:center;padding:14px 0}.brand{display:flex;align-items:center;gap:10px;font-weight:900}.mark{width:42px;height:42px;border:1px solid #d7a844;border-radius:50%;display:grid;place-items:center;color:var(--gold)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #b9c3ca;background:white;color:var(--ink);padding:10px 15px;border-radius:12px;font-weight:800;cursor:pointer}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg,var(--navy2),#0f4774);color:white;border-color:#1f5a86}.btn.gold{background:linear-gradient(135deg,#e3bd62,#b88422);color:#11202b;border-color:#c3912e}.btn.good{background:#e8f5ef;border-color:#a9d7c4;color:#0c6d4b}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.hero{padding:54px 0 28px}.eyebrow{font-size:12px;letter-spacing:.18em;font-weight:900;color:#a37725;text-transform:uppercase}.hero h1{font-family:Georgia,serif;font-size:clamp(42px,7vw,78px);line-height:.95;margin:8px 0 16px;color:var(--navy)}.hero p{font-size:18px;color:var(--muted);max-width:760px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card,.step{background:rgba(255,255,255,.95);border:1px solid #e1d6c2;border-radius:20px;box-shadow:0 14px 40px #253a5011;padding:22px}.lesson-card.locked{opacity:.55;filter:grayscale(.2)}.lesson-card h3{margin:5px 0}.tag{display:inline-block;padding:5px 9px;border-radius:999px;background:#f2eadb;color:#71551e;font-size:12px;font-weight:800}.status{font-size:13px;font-weight:800;margin-top:10px}.status.done{color:var(--green)}.status.lock{color:#8f6e35}.schedule{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:10px 0 28px}.schedule .card{background:linear-gradient(160deg,#fff,#fbf4e5)}
.progress-shell{height:14px;background:#e8e2d8;border-radius:999px;overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,#0d4774,#d6a845);transition:width .35s}
.lesson-head{padding:34px 0 12px}.lesson-head h1{font-family:Georgia,serif;font-size:clamp(36px,6vw,64px);margin:0;color:var(--navy)}.stage-nav{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:18px 0}.stage-dot{padding:9px 7px;border-radius:10px;text-align:center;font-size:12px;font-weight:900;background:#e9e4db;color:#697681}.stage-dot.active{background:#0d426b;color:#fff}.stage-dot.done{background:#e8f6ef;color:#137253}
.step{margin:16px 0 26px}.step.locked{opacity:.45;pointer-events:none;filter:grayscale(.4)}.step h2{font-family:Georgia,serif;font-size:32px;margin:4px 0 8px}.step p.help{color:var(--muted);margin-top:0}.vocab-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.vocab{border:1px solid #e2d7c4;border-radius:15px;padding:15px;background:#fff}.vocab.done{border-color:#a9d7c4;background:#f2fbf7}.vocab strong{display:block;font-size:20px}.vocab .ar{direction:rtl;color:#6d5630;margin:4px 0 12px;font-size:18px}.video{width:100%;border-radius:16px;background:#000;max-height:620px}.quiz-item{padding:15px 0;border-bottom:1px solid #eee}.option{display:block;padding:8px 10px;margin:6px 0;border:1px solid #e0e5e8;border-radius:10px;cursor:pointer}.option:has(input:checked){border-color:#2d6f9c;background:#eef7fc}.notice{padding:14px 16px;border-radius:13px;margin:12px 0;font-weight:700}.notice.good{background:#eaf8f1;color:#126a4b;border:1px solid #b9e0ce}.notice.bad{background:#fff0f0;color:#8c3030;border:1px solid #e4b6b6}.notice.warn{background:#fff6df;color:#7c5b18;border:1px solid #e6cf93}
.grammar-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.grammar-box{background:#f8f3e8;border:1px solid #e0cfaa;border-radius:15px;padding:18px}.grammar-box.ar{direction:rtl;text-align:right;font-size:18px;line-height:1.9}.example{padding:9px 12px;background:white;border-left:4px solid var(--gold);margin:8px 0;border-radius:8px}
.write-row{display:grid;grid-template-columns:160px 1fr 52px;gap:10px;align-items:center;margin:10px 0}.write-row input{padding:12px;border:1px solid #cfd8dd;border-radius:10px;font-size:17px}.write-row .ok{font-size:22px;text-align:center}
.speak-line{border:1px solid #e2d7c4;padding:14px;border-radius:14px;margin:10px 0}.speak-line.done{background:#f0faf5;border-color:#add9c7}.speak-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.checkpoint{background:radial-gradient(circle at top right,#204d70,#081b2e 60%);color:white;border-radius:22px;padding:26px;margin:22px 0}.checkpoint h2{font-family:Georgia,serif;font-size:34px}.checkpoint .eyebrow{color:#efca75}
.slot-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.slot{padding:15px;border:1px solid #d9cfbb;border-radius:14px;background:white}.score-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.field{display:block;margin:12px 0}.field input,.field select,.field textarea{width:100%;padding:12px;border:1px solid #cad3d8;border-radius:10px}.footer{padding:50px 0;text-align:center;color:#71808a}
@media(max-width:780px){.grid,.schedule,.grammar-layout,.slot-grid{grid-template-columns:1fr}.vocab-grid{grid-template-columns:1fr}.stage-nav{grid-template-columns:repeat(3,1fr)}.write-row{grid-template-columns:110px 1fr 40px}.score-grid{grid-template-columns:1fr 1fr}}

.checkpoint-block{grid-column:1/-1;margin:0}.checkpoint-block .slot{color:var(--ink)}

.speak-line [hidden]{display:none!important}.record-clock{align-self:center;font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px}.record-status{min-height:1.5em;line-height:1.7;margin:10px 0}.recording-review{padding:12px;background:#f8f6ef;border-radius:10px}.student-recording{display:block;width:100%;max-width:560px}.speak-line.is-recording{border:2px solid #ae3030;background:#fff5f3}.is-recording .record-status{color:#a52222;font-weight:700}
