/* ============================================================
   ESL LEARNER — shared styles
   Used by: index.html (library), lesson.html (viewer),
            create.html (generator)
   ============================================================ */
:root{
  --ink:#22263a; --paper:#ffffff; --rule:#e6e9f2;
  --accent:#5b6ef0; --accent2:#1f7a5a; --soft:#eef1fb;
  --gold:#f2b705; --muted:#6b7280; --grid:#cfd3e0;
  --hero:#eef0fb;
  /* level colours (soft card tints) */
  --lvl-phonics:#fff2e0; --lvl-phonics-ink:#c9791b;
  --lvl-beginner:#fdeef5; --lvl-beginner-ink:#b83f7a;
  --lvl-pre-int:#e9f7fb; --lvl-pre-int-ink:#1f7fa0;
  --lvl-super:#ececf7; --lvl-super-ink:#443a9e;
  --lvl-elementary:#eaf6ef; --lvl-elementary-ink:#1f7a5a;
  --lvl-intermediate:#eaf0fb; --lvl-intermediate-ink:#3457c4;
  --lvl-upper:#f3edfb; --lvl-upper-ink:#7a4fc0;
  --lvl-advanced:#fdeee9; --lvl-advanced-ink:#d2603a;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:Georgia,'Times New Roman',serif;background:var(--paper);color:var(--ink);line-height:1.55;}
a{color:inherit;text-decoration:none;}

/* ---- top navigation bar ---- */
.nav{background:#fff;border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:20;}
.nav-inner{max-width:1040px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:18px;}
.nav .brand{font-family:'Arial Black',Helvetica,sans-serif;font-weight:900;letter-spacing:-.5px;font-size:18px;display:flex;align-items:center;gap:9px;color:var(--ink);}
.nav .brand .dot,.nav .brand .mark{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;flex-shrink:0;}
.nav-spacer{flex:1;}
.nav-link{font-family:Helvetica,Arial,sans-serif;font-size:14px;font-weight:700;color:var(--muted);padding:8px 12px;border-radius:20px;}
.nav-link:hover{color:var(--ink);background:var(--soft);}
.nav-link.cta{background:var(--accent);color:#fff;}
.nav-link.cta:hover{background:#4a5cd8;color:#fff;}
.lang-switch{display:inline-flex;border:1px solid var(--grid);border-radius:20px;overflow:hidden;margin-right:4px;}
.lang-switch button{font-family:Helvetica,Arial,sans-serif;font-size:12px;font-weight:700;padding:7px 12px;border:none;background:#fff;color:var(--muted);cursor:pointer;}
.lang-switch button.on{background:var(--accent);color:#fff;}

/* ---- hero ---- */
.hero{background:var(--hero);border-bottom:1px solid var(--rule);}
.hero-inner{max-width:1040px;margin:0 auto;padding:54px 20px 46px;text-align:center;}
.hero h1{font-family:'Arial Black',Helvetica,sans-serif;font-weight:900;font-size:38px;line-height:1.08;letter-spacing:-1px;margin-bottom:14px;}
.hero p{font-family:Helvetica,Arial,sans-serif;font-size:17px;color:var(--muted);max-width:560px;margin:0 auto;}

/* ---- learning path ---- */
.path-overall{max-width:460px;margin:22px auto 0;}
.path-overall-bar{height:14px;border-radius:9px;background:#fff;border:1px solid var(--rule);overflow:hidden;}
.path-overall-bar > div{height:100%;width:0%;background:var(--accent);transition:width .4s ease;}
.path-wrap{max-width:720px;margin:10px auto 70px;padding:20px;}
.path-level{margin-bottom:34px;}
.path-level-head{display:flex;align-items:baseline;gap:12px;margin-bottom:14px;}
.path-level-head h2{font-family:'Arial Black',Helvetica,sans-serif;font-size:20px;color:var(--ink);}
.path-level-prog{font-family:Helvetica,Arial,sans-serif;font-size:13px;font-weight:700;color:var(--muted);}
.path-list{position:relative;padding-left:8px;}
.path-lesson{display:flex;align-items:center;gap:14px;padding:12px 14px;margin-bottom:10px;background:#fff;border:1px solid var(--rule);border-radius:14px;transition:transform .1s,box-shadow .1s;}
.path-lesson:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(34,38,58,.08);}
.path-lesson.done{background:#f2faf5;border-color:#cfe9da;}
.pl-check{flex:none;width:30px;height:30px;border-radius:50%;background:var(--soft);color:var(--accent);font-family:'Arial Black',sans-serif;font-size:13px;display:flex;align-items:center;justify-content:center;cursor:pointer;border:2px solid transparent;}
.pl-check:hover{border-color:var(--accent);}
.path-lesson.done .pl-check{background:var(--accent2);color:#fff;}
.pl-icon{flex:none;font-size:26px;}
.pl-main{display:flex;flex-direction:column;min-width:0;}
.pl-title{font-family:'Arial Black',Helvetica,sans-serif;font-size:15px;color:var(--ink);}
.pl-sum{font-family:Helvetica,Arial,sans-serif;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ---- library controls ---- */
.lib{max-width:1040px;margin:0 auto;padding:30px 20px 60px;}
.filter-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px;font-family:Helvetica,Arial,sans-serif;}
.filter-label{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:700;margin-right:4px;}
.chip{font-family:Helvetica,Arial,sans-serif;font-size:14px;padding:8px 16px;border-radius:20px;border:1px solid var(--grid);background:#fff;color:var(--ink);cursor:pointer;}
.chip.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;}
.search-box{margin:18px 0 26px;}
.search-box input{width:100%;font-family:Helvetica,Arial,sans-serif;font-size:15px;padding:13px 16px;border-radius:24px;border:1px solid var(--grid);background:#fff;}

/* ---- lesson card grid ---- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;}
.card{background:#fff;border:1px solid var(--rule);border-radius:14px;overflow:hidden;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;display:flex;flex-direction:column;}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(34,38,58,.10);}
.card-top{height:96px;display:flex;align-items:center;justify-content:center;font-family:'Arial Black',sans-serif;font-size:34px;}
.card-body{padding:15px 16px 18px;font-family:Helvetica,Arial,sans-serif;flex:1;display:flex;flex-direction:column;}
.card-cat{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:var(--accent);margin-bottom:6px;}
.card h3{font-family:'Arial Black',Helvetica,sans-serif;font-size:17px;line-height:1.15;margin-bottom:7px;color:var(--ink);}
.card .summary{font-size:13px;color:var(--muted);flex:1;margin-bottom:12px;}
.card .lvl-pill{align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:4px 10px;border-radius:14px;}
.lvl-phonics .lvl-pill,.pill-phonics{background:var(--lvl-phonics);color:var(--lvl-phonics-ink);}
.lvl-phonics .card-top{background:var(--lvl-phonics);}
.lvl-beginner .lvl-pill,.pill-beginner{background:var(--lvl-beginner);color:var(--lvl-beginner-ink);}
.lvl-beginner .card-top{background:var(--lvl-beginner);}
.lvl-pre-int .lvl-pill,.pill-pre-int{background:var(--lvl-pre-int);color:var(--lvl-pre-int-ink);}
.lvl-pre-int .card-top{background:var(--lvl-pre-int);}
.lvl-super .lvl-pill,.pill-super{background:var(--lvl-super);color:var(--lvl-super-ink);}
.lvl-super .card-top{background:var(--lvl-super);}
.lvl-elementary .lvl-pill,.pill-elementary{background:var(--lvl-elementary);color:var(--lvl-elementary-ink);}
.lvl-intermediate .lvl-pill,.pill-intermediate{background:var(--lvl-intermediate);color:var(--lvl-intermediate-ink);}
.lvl-upper .lvl-pill,.pill-upper{background:var(--lvl-upper);color:var(--lvl-upper-ink);}
.lvl-advanced .lvl-pill,.pill-advanced{background:var(--lvl-advanced);color:var(--lvl-advanced-ink);}
.lvl-elementary .card-top{background:var(--lvl-elementary);}
.lvl-intermediate .card-top{background:var(--lvl-intermediate);}
.lvl-upper .card-top{background:var(--lvl-upper);}
.lvl-advanced .card-top{background:var(--lvl-advanced);}
.no-results{font-family:Helvetica,Arial,sans-serif;color:var(--muted);padding:40px 0;text-align:center;}

/* ---- mode toggle (lesson.html: Present vs PDF) ---- */
.mode-toggle{display:flex;justify-content:center;gap:8px;padding:16px;background:#fff;border-bottom:1px solid var(--rule);}
.mode-toggle button{font-family:Helvetica,Arial,sans-serif;font-size:15px;font-weight:700;padding:10px 22px;border-radius:24px;border:1px solid var(--grid);background:#fff;color:var(--ink);cursor:pointer;}
.mode-toggle button.on{background:var(--accent);border-color:var(--accent);color:#fff;}

/* ---- present (Tasks) mode ---- */
.present-wrap{display:flex;max-width:1180px;margin:0 auto;min-height:74vh;}
.steps{width:248px;flex:none;border-right:1px solid var(--rule);padding:20px 12px;background:#fbfbfe;}
.steps-title{font-family:Helvetica,Arial,sans-serif;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-weight:700;padding:0 10px 12px;}
.step{display:flex;gap:11px;align-items:flex-start;font-family:Helvetica,Arial,sans-serif;font-size:15px;padding:11px 10px;border-radius:10px;cursor:pointer;color:var(--ink);margin-bottom:2px;}
.step:hover{background:var(--soft);}
.step.on{background:var(--accent);color:#fff;font-weight:700;}
.step .num{flex:none;width:24px;height:24px;border-radius:50%;background:#fff;border:1px solid var(--grid);color:var(--accent);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;}
.step.on .num{background:#fff;color:var(--accent);border-color:#fff;}
.step.done .num{background:var(--accent2);color:#fff;border-color:var(--accent2);}

.slide-stage{flex:1;display:flex;flex-direction:column;padding:34px 48px 22px;min-width:0;}
.slide{flex:1;}
.slide .slide-kicker{font-family:Helvetica,Arial,sans-serif;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:8px;}
.slide h2{font-family:'Arial Black',Helvetica,sans-serif;font-size:40px;line-height:1.1;margin-bottom:6px;color:var(--ink);}
.slide .slide-hint{font-family:Helvetica,Arial,sans-serif;font-size:19px;color:var(--muted);margin-bottom:24px;}
.slide .big p{font-size:28px;line-height:1.62;margin-bottom:20px;font-weight:600;color:var(--ink);}
.slide .big b{color:var(--accent);}
.slide .big-vocab div{font-size:25px;padding:12px 0;border-bottom:1px solid var(--soft);font-weight:600;}
.slide .big-vocab strong{font-family:Helvetica,Arial,sans-serif;}
.slide ol.bigq{list-style:none;counter-reset:bq;padding:0;}
.slide ol.bigq li{counter-increment:bq;font-size:26px;line-height:1.5;padding:14px 0 14px 46px;position:relative;border-bottom:1px solid var(--soft);font-weight:600;color:var(--ink);}
.slide ol.bigq li::before{content:counter(bq);position:absolute;left:0;top:12px;width:30px;height:30px;border-radius:50%;background:var(--soft);color:var(--accent);font-family:'Arial Black',sans-serif;font-size:15px;display:flex;align-items:center;justify-content:center;}
.slide .scram-big{font-family:'Courier New',monospace;letter-spacing:5px;font-weight:700;font-size:30px;padding:14px 0;border-bottom:1px solid var(--soft);}
.slide .start-screen{text-align:center;padding:50px 10px;}
.slide .start-screen .big-icon{font-size:64px;margin-bottom:10px;}
.slide .start-screen h2{font-size:40px;margin-bottom:14px;}
.slide-table-wrap{display:flex;gap:30px;flex-wrap:wrap;align-items:flex-start;}
.slide table.ws td{width:36px;height:36px;font-size:18px;}
.slide .ws-words ul{font-size:16px;}

/* sticky audio player on the reading slide */
.player{position:sticky;bottom:16px;display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--rule);border-radius:44px;padding:10px 18px;box-shadow:0 10px 28px rgba(34,38,58,.14);margin-top:22px;}
.play-btn{flex:none;width:56px;height:56px;border-radius:50%;border:none;background:var(--accent);color:#fff;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(91,110,240,.35);}
.play-btn.paused{background:var(--accent2);}
.player-track{flex:1;height:9px;border-radius:6px;background:var(--soft);overflow:hidden;}
.player-fill{height:100%;width:0%;background:var(--accent);transition:width .35s ease;}
.player-time{font-family:Helvetica,Arial,sans-serif;font-size:14px;color:var(--muted);min-width:48px;text-align:right;}

/* per-word vocabulary play buttons */
.vrow{display:flex;align-items:flex-start;gap:14px;padding:12px 0;border-bottom:1px solid var(--soft);}
.vrow .vtext{font-size:25px;line-height:1.4;font-weight:600;color:var(--ink);}
.word-play{flex:none;width:38px;height:38px;border-radius:50%;border:1px solid var(--accent);background:var(--soft);color:var(--accent);cursor:pointer;font-size:14px;display:inline-flex;align-items:center;justify-content:center;margin-top:2px;}
.word-play:hover,.word-play.on{background:var(--accent);color:#fff;}

/* answer reveal (comprehension + scramble) */
.reveal-all{font-family:Helvetica,Arial,sans-serif;font-size:14px;font-weight:700;padding:9px 18px;border-radius:20px;border:1px solid var(--accent);background:var(--soft);color:var(--accent);cursor:pointer;margin-bottom:18px;}
.reveal-all:hover{background:var(--accent);color:#fff;}
.ans-btn{display:inline-block;margin-left:10px;font-family:Helvetica,Arial,sans-serif;font-size:13px;font-weight:700;padding:4px 12px;border-radius:16px;border:1px solid var(--grid);background:#fff;color:var(--accent);cursor:pointer;vertical-align:middle;}
.answer{display:none;margin-top:8px;font-family:Helvetica,Arial,sans-serif;font-size:18px;color:var(--accent2);font-weight:700;}
.answer.show{display:block;}
.scram-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--soft);}
.scram-row .answer{display:none;margin-top:0;}
.scram-row .answer.show{display:inline-block;}

/* interactive word search */
table.wsplay{touch-action:none;}
table.wsplay td{cursor:pointer;user-select:none;-webkit-user-select:none;transition:background .08s;}
table.wsplay td.sel{background:#cfe0ff;}
table.wsplay td.found{background:#ffd3c9;color:#c0392b;font-weight:800;}
.ws-words li.struck{text-decoration:line-through;color:#c0392b;}
.ws-done{font-family:'Arial Black',sans-serif;color:var(--accent2);font-size:18px;margin-top:16px;}
table.wsplay td.hint{background:#fff3c4;box-shadow:inset 0 0 0 2px var(--gold);}
.hint-show{font-family:'Courier New',monospace;letter-spacing:3px;font-weight:700;font-size:20px;color:var(--accent2);}

/* ---- beginner flashcards (present mode) ---- */
.fc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;margin-top:6px;}
.fcard{background:#fff;border:1px solid var(--rule);border-radius:16px;padding:18px 12px 14px;text-align:center;box-shadow:0 6px 16px rgba(34,38,58,.05);}
.fc-emoji{font-size:56px;line-height:1;margin-bottom:10px;}
.fc-word{font-family:'Arial Black',Helvetica,sans-serif;font-size:20px;color:var(--ink);}
.fc-word .fc-letter{display:block;color:var(--accent);font-size:24px;margin-bottom:2px;}
.word-play{margin-top:10px;width:40px;height:40px;border-radius:50%;border:none;background:var(--accent);color:#fff;font-size:16px;cursor:pointer;}
.word-play.on{background:var(--accent2);}

.gate-loading{max-width:820px;margin:80px auto;text-align:center;font-family:Helvetica,Arial,sans-serif;font-size:15px;color:var(--muted);}

/* ---- paywall ---- */
.paywall{max-width:820px;margin:40px auto;padding:0 20px;}
.paywall-card{background:#fff;border:2px solid var(--accent);border-radius:20px;padding:40px 30px;text-align:center;box-shadow:0 14px 34px rgba(91,110,240,.14);font-family:Helvetica,Arial,sans-serif;}
.paywall-card .pw-emoji{font-size:52px;}
.paywall-card h2{font-family:'Arial Black',sans-serif;font-size:26px;color:var(--ink);margin:10px 0;}
.paywall-card p{font-size:16px;color:var(--muted);max-width:460px;margin:0 auto 18px;line-height:1.55;}
.paywall-card .pw-btn{display:inline-block;font-size:17px;font-weight:800;padding:14px 28px;border-radius:28px;background:var(--accent);color:#fff;box-shadow:0 8px 20px rgba(91,110,240,.25);}

/* ---- Korean translation (global KR switch) ---- */
.ko-switch{border-color:#c94f7a!important;color:#c94f7a!important;}
.ko-switch.on{background:#c94f7a!important;border-color:#c94f7a!important;color:#fff!important;}
.ko-line{color:var(--accent2);font-size:1em;font-weight:700;margin-top:5px;font-family:'Malgun Gothic','Apple SD Gothic Neo',sans-serif;}
.ko-article .ko{display:none;}
.ko-article.show-ko .sen{display:block;margin-bottom:12px;}
.ko-article.show-ko .en{display:block;}
.ko-article.show-ko .ko{display:block;color:var(--accent2);font-size:.92em;margin-top:3px;font-family:'Malgun Gothic','Apple SD Gothic Neo',sans-serif;}

/* ---- read together (picture sentences) ---- */
.read-list{display:flex;flex-direction:column;gap:8px;}
.read-row{display:flex;align-items:center;gap:16px;padding:14px 6px;border-bottom:1px solid var(--soft);}
.read-sentence{font-size:32px;line-height:1.5;color:var(--ink);font-weight:600;}
.read-sentence b{color:var(--accent);}
.fc-read-row{font-size:18px;line-height:1.7;padding:6px 0;}
.fc-read-row b{color:var(--accent);}

/* ---- matching game ---- */
.match-wrap{display:flex;gap:40px;justify-content:center;margin-top:10px;}
.match-col{display:flex;flex-direction:column;gap:12px;min-width:150px;}
.match-item{font-family:'Arial Black',Helvetica,sans-serif;font-size:22px;padding:14px 18px;border-radius:14px;border:2px solid var(--grid);background:#fff;color:var(--ink);cursor:pointer;transition:transform .08s;}
.match-item .mi-emoji{font-size:38px;}
.match-item.picked{border-color:var(--accent);background:var(--soft);}
.match-item.done{border-color:var(--accent2);background:#eaf6ef;color:var(--accent2);cursor:default;}
.match-item.wrong{border-color:#d2603a;background:#fdeee9;animation:shake .4s;}
@keyframes shake{0%,100%{transform:translateX(0);}25%{transform:translateX(-5px);}75%{transform:translateX(5px);}}

/* ---- beginner flashcards (printable PDF) ---- */
.fc-print-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.fc-print{border:1px solid var(--rule);border-radius:12px;padding:12px 6px;text-align:center;}
.fc-print-emoji{font-size:40px;line-height:1;margin-bottom:6px;}
.fc-print-word{font-family:Helvetica,Arial,sans-serif;font-size:14px;font-weight:700;}
.fc-write-row{display:flex;align-items:center;gap:14px;padding:9px 0;border-bottom:1px solid var(--soft);}
.fc-write-emoji{font-size:26px;width:34px;text-align:center;}
.fc-write-word{font-family:Helvetica,Arial,sans-serif;font-weight:700;min-width:120px;}
.fc-write-line{flex:1;border-bottom:1px dotted var(--grid);height:18px;}
.hint-btn{border-color:var(--gold)!important;color:#b9860b!important;}
.teacher-card{max-width:560px;margin:26px auto 0;text-align:left;background:var(--soft);border-left:4px solid var(--accent);border-radius:0 12px 12px 0;padding:16px 20px;font-family:Helvetica,Arial,sans-serif;font-size:14px;}
.teacher-card h3{font-size:14px;letter-spacing:.5px;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}
.teacher-card p{margin-bottom:7px;line-height:1.5;}

.slide-nav{display:flex;align-items:center;gap:14px;border-top:1px solid var(--rule);padding-top:16px;margin-top:10px;}
.slide-nav button{font-family:Helvetica,Arial,sans-serif;font-size:15px;font-weight:700;padding:11px 22px;border-radius:24px;border:1px solid var(--grid);background:#fff;color:var(--ink);cursor:pointer;}
.slide-nav button:disabled{opacity:.4;cursor:default;}
.slide-nav button.primary{background:var(--accent);border-color:var(--accent);color:#fff;}
.slide-nav .count{margin-left:auto;font-family:Helvetica,Arial,sans-serif;font-size:14px;color:var(--muted);}
@media(max-width:720px){ .present-wrap{flex-direction:column;} .steps{width:100%;border-right:none;border-bottom:1px solid var(--rule);} .slide-stage{padding:24px 20px;} .slide h2{font-size:30px;} .slide .big p{font-size:23px;} .slide ol.bigq li{font-size:22px;} .vrow .vtext{font-size:21px;} .read-sentence{font-size:26px;} }

/* ---- generator control panel (create.html) ---- */
.panel{background:var(--hero);color:var(--ink);padding:24px 20px;border-bottom:1px solid var(--rule);}
.panel-inner{max-width:820px;margin:0 auto;}
.panel .tagline{font-family:Helvetica,Arial,sans-serif;font-size:13px;color:var(--muted);margin-bottom:18px;}
.field{margin-bottom:14px;}
.field label{display:block;font-family:Helvetica,Arial,sans-serif;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:700;}
.seg{display:flex;gap:6px;flex-wrap:wrap;}
.seg button{font-family:Helvetica,Arial,sans-serif;font-size:13px;padding:8px 14px;border-radius:20px;border:1px solid var(--grid);background:#fff;color:var(--ink);cursor:pointer;}
.seg button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;}
textarea,input[type=text]{width:100%;font-family:Helvetica,Arial,sans-serif;font-size:15px;padding:12px;border-radius:8px;border:1px solid var(--grid);background:#fff;color:var(--ink);resize:vertical;}
textarea{min-height:80px;}
.row{display:flex;gap:18px;flex-wrap:wrap;}
.row .field{flex:1;min-width:180px;}
.gen-btn{font-family:Helvetica,Arial,sans-serif;font-size:16px;font-weight:800;padding:14px 22px;border-radius:30px;border:none;background:var(--accent);color:#fff;cursor:pointer;width:100%;margin-top:4px;box-shadow:0 8px 20px rgba(91,110,240,.25);}
.gen-btn:active{transform:translateY(1px);}
.gen-btn:disabled{opacity:.6;cursor:wait;}
.mode-note{font-family:Helvetica,Arial,sans-serif;font-size:11px;color:var(--muted);margin-top:10px;line-height:1.5;}
.engine-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.mini-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:9px;}
.mini-btn{font-family:Helvetica,Arial,sans-serif;font-size:13px;font-weight:700;background:none;border:none;color:var(--accent);cursor:pointer;padding:2px 0;}
.mini-btn:hover{text-decoration:underline;}
.panel .field label{font-size:15px;text-transform:none;letter-spacing:0;color:var(--ink);font-weight:800;margin-bottom:8px;}

/* ---- output sheet (lesson rendering) ---- */
.stage{max-width:820px;margin:26px auto;padding:0 14px;}
.sheet{background:#fff;border:1px solid var(--rule);box-shadow:0 10px 40px rgba(34,38,58,.06);border-radius:14px;overflow:hidden;}
.empty{padding:60px 30px;text-align:center;color:var(--muted);font-family:Helvetica,Arial,sans-serif;}
.empty h2{font-family:'Arial Black',sans-serif;color:var(--ink);font-size:20px;margin-bottom:8px;}
.lesson-hero{width:100%;height:230px;object-fit:cover;display:block;}
.photo-credit{font-family:Helvetica,Arial,sans-serif;font-size:11px;color:var(--muted);margin-top:8px;}
.start-screen .hero-photo{width:100%;max-width:540px;height:260px;object-fit:cover;border-radius:18px;margin:0 auto 18px;display:block;box-shadow:0 10px 28px rgba(34,38,58,.12);}
.brand-band{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;}
.brand-band .bb-name{font-family:'Arial Black',Helvetica,sans-serif;font-weight:900;letter-spacing:-.3px;font-size:17px;color:var(--accent);}
.brand-band .bb-url{font-family:Helvetica,Arial,sans-serif;font-size:12px;color:var(--muted);}
.print-footer{display:none;}
.masthead{border-bottom:1px solid var(--rule);padding:22px 40px 16px;background:var(--hero);}
.masthead .kicker{font-family:Helvetica,Arial,sans-serif;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--accent);font-weight:700;}
.masthead h1{font-family:'Arial Black',Helvetica,sans-serif;font-weight:900;font-size:30px;line-height:1.07;letter-spacing:-1px;margin:8px 0 6px;color:var(--ink);}
.level-tag{display:inline-block;font-family:Helvetica,Arial,sans-serif;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;background:#fff;color:var(--accent);border:1px solid var(--grid);padding:4px 10px;border-radius:20px;}
.body{padding:24px 40px 40px;}
section{margin-bottom:30px;}
.ex-head{display:flex;align-items:center;gap:11px;margin:0 0 12px;border-bottom:1px solid var(--rule);padding-bottom:7px;}
.ex-num{flex:none;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-family:'Arial Black',sans-serif;font-size:13px;display:flex;align-items:center;justify-content:center;}
.ex-head h2{font-family:'Arial Black',Helvetica,sans-serif;font-size:18px;color:var(--ink);}
.listen-btn{font-family:Helvetica,Arial,sans-serif;font-size:13px;font-weight:700;padding:7px 14px;margin-bottom:14px;border-radius:20px;border:1px solid var(--accent);background:var(--soft);color:var(--accent);cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
.listen-btn:hover{background:var(--accent);color:#fff;}
.listen-btn.on{background:var(--accent);color:#fff;}
.article p{margin-bottom:13px;text-align:justify;}
.article .lead{font-size:18px;}
.article b{color:var(--accent);}
.vocab div{font-size:15px;padding-bottom:8px;border-bottom:1px dotted var(--rule);margin-bottom:8px;}
.vocab strong{font-family:Helvetica,Arial,sans-serif;}
ol.q{padding-left:5px;list-style:none;counter-reset:q;}
ol.q li{counter-increment:q;padding:9px 0 9px 32px;position:relative;border-bottom:1px solid var(--soft);}
ol.q li::before{content:counter(q);position:absolute;left:0;top:8px;width:21px;height:21px;border-radius:50%;background:var(--soft);color:var(--accent);font-family:'Arial Black',sans-serif;font-size:12px;display:flex;align-items:center;justify-content:center;}
.discuss li::before{background:var(--accent);color:#fff;}
.ws-wrap{display:flex;gap:24px;flex-wrap:wrap;align-items:flex-start;}
table.ws{border-collapse:collapse;font-family:'Courier New',monospace;}
table.ws td{width:28px;height:28px;text-align:center;font-size:15px;font-weight:700;border:1px solid var(--soft);text-transform:uppercase;}
.ws-words ul{list-style:none;columns:2;column-gap:20px;font-family:Helvetica,Arial,sans-serif;font-size:13px;}
.ws-words li{padding:3px 0;}
.ws-words h3{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);margin-bottom:8px;}
.scramble li{padding:10px 0 10px 32px;}
.scrambled{font-family:'Courier New',monospace;letter-spacing:3px;font-weight:700;font-size:16px;}
.ans-line{display:inline-block;min-width:170px;border-bottom:1px solid var(--rule);margin-left:10px;}
.teacher{background:var(--soft);border-left:4px solid var(--accent);padding:16px 20px;font-family:Helvetica,Arial,sans-serif;font-size:13px;border-radius:0 10px 10px 0;}
.teacher h3{font-size:13px;letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;color:var(--accent);}
.out-actions{max-width:820px;margin:14px auto 0;padding:0 14px;display:flex;gap:8px;flex-wrap:wrap;}
.out-actions button,.out-actions a.btn{font-family:Helvetica,Arial,sans-serif;font-size:13px;padding:9px 16px;border-radius:20px;border:1px solid var(--grid);background:#fff;cursor:pointer;font-weight:700;color:var(--ink);display:inline-block;}
.out-actions .primary{background:var(--accent);color:#fff;border-color:var(--accent);}
.spin{display:inline-block;width:15px;height:15px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:sp 0.7s linear infinite;vertical-align:-2px;margin-right:7px;}
@keyframes sp{to{transform:rotate(360deg);}}

/* zero page margin removes the browser's date/title/URL headers & footers;
   we add our own breathing room with padding on the printed sheet */
@page{ margin:0; }
@media print{
  .nav,.panel,.out-actions,.listen-btn,.mode-toggle,#presentView{display:none!important;}
  #pdfView{display:block!important;}
  body{background:#fff;}
  .sheet{box-shadow:none;border:none;border-radius:0;}
  .stage{margin:0;padding:12mm;max-width:100%;}
  /* keep each exercise whole on a page; let the long article flow */
  section{break-inside:avoid;}
  .sec-article{break-inside:auto;}
  .ex-head{break-after:avoid;}            /* never leave a heading alone at the page bottom */
  ol.q li{break-inside:avoid;}
  .teacher{break-inside:avoid;}
  /* big brand on the front page */
  .brand-band .bb-name{font-size:24px;}
  .brand-band .bb-url{font-size:13px;}
  /* small site URL repeated at the bottom of every printed page */
  .print-footer{display:block;position:fixed;bottom:5mm;left:0;right:0;text-align:center;
    font-family:Helvetica,Arial,sans-serif;font-size:9pt;color:#9aa0ad;}
}
@media(max-width:560px){ .masthead,.body{padding-left:22px;padding-right:22px;} .masthead h1{font-size:24px;} .hero h1{font-size:28px;} }
