/* ══════════════════════════════════════════════════════════════════
   mobile-compact.css · shared mobile правки для всех уроков lab
   v1 · 2026-07-14 · извлечено из b1/dana-russia-history-exam
   Селекторы только те что уже используются canonical lab-топбаром
   и inject'ится через lab-sync.js. Уроки без этих элементов —
   ничего не сломается (правил просто не на что применить).
   ══════════════════════════════════════════════════════════════════ */

/* ── Mobile declutter · кегли, padding'и, карточки ── */
@media(max-width:640px){
  body{font-size:15.5px;line-height:1.5}
  .hero,.progress,.section,footer,.divider{padding:0 14px}
  .hero{margin:12px auto 10px}
  .section{margin:0 auto 22px}
  .hero-card{aspect-ratio:auto;min-height:220px}
  .hero-overlay{padding:20px 18px}
  .hero-title{font-size:1.7rem;margin:10px 0 10px}
  .hero-lead{font-size:.95rem;margin:0 0 12px}
  .hero-tag{font-size:.72rem;padding:6px 10px}
  .section-head{gap:10px;margin-bottom:10px}
  .section-head .n{width:36px;height:36px;font-size:.95rem}
  .section-head h2{font-size:1.05rem}
  .section-sub{padding-left:0;margin:0 0 12px;font-size:.8rem}
  .card{padding:14px 14px;border-radius:14px}
  .card + .card{margin-top:10px}
  .card h3{font-size:.98rem;margin:0 0 8px}
  .epoch-row{gap:6px;margin:8px 0 12px}
  .epoch{font-size:.66rem;padding:5px 8px}
  .vocab-grid,.flip-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
  .flip-card,.vocab-card{min-height:120px}
  .flip-inner{min-height:120px}
  .flip-front,.flip-back,.vocab-front,.vocab-back{padding:24px 8px 10px!important}
  .flip-front .w,.vocab-front .w{font-size:.9rem}
  .wf-row{grid-template-columns:auto 1fr;gap:8px;padding:9px 12px}
  .wf-input{width:100%;grid-column:1/-1;margin-top:6px}
  .wf-text{font-size:.9rem}
  .reading{font-size:.92rem;line-height:1.6;padding:4px 0}
  .listening-player{padding:12px;gap:10px}
  .listening-player .play-big{width:44px;height:44px;font-size:1.2rem}
  .listening-player .meta{min-width:0;flex:1 1 100%}
  .match-txt{padding:10px 12px;font-size:.88rem}
  .match-heads-list{position:static;padding:12px;top:auto}
  .gap-frag,.lex-item{padding:10px 12px;font-size:.88rem}
  .write-brief{padding:12px 14px;font-size:.88rem}
  .write-tt{min-height:160px;padding:12px;font-size:.92rem}
  .write-stats{gap:10px;font-size:.76rem}
  .write-table{font-size:.8rem}
  .write-table th,.write-table td{padding:6px 6px}
  .read-aloud{padding:14px 16px;font-size:.94rem;line-height:1.7}
  .t2-slot{padding:10px 12px}
  .t2-slot-input{font-size:.9rem;padding:9px 10px}
  .t3-question{gap:8px;padding:10px 12px}
  .t3-question .qn{min-width:22px;font-size:.9rem}
  .t3-question .qtext{min-width:0;font-size:.9rem}
  .t3-question .qplay{width:32px;height:32px;font-size:.85rem}
  .t3-timer-bar,.timer-bar{padding:8px 12px;gap:8px;font-size:.78rem}
  .t3-timer-bar .clock,.timer-bar .clock{font-size:1rem;min-width:46px}
  .speak-photo{padding:22px 12px;min-height:150px}
  .speak-photo .e{font-size:2.8rem}
  .speak-plan{padding:12px 14px}
  .speak-plan ol{font-size:.88rem;line-height:1.6}
  .template{padding:12px;font-size:.74rem;line-height:1.6}
  .q-block{padding:10px 12px;margin:8px 0}
  .q-text{font-size:.92rem}
  .choice{padding:7px 12px;font-size:.82rem}
  button[data-say]{width:34px;height:34px;font-size:.9rem}
  .check-btn{padding:9px 14px;font-size:.84rem}
  .reset-btn{padding:9px 12px;font-size:.74rem}
  .score-summary{padding:18px 16px}
  .score-summary h3{font-size:1rem;margin:0 0 10px}
  .score-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .score-cell{padding:10px 12px}
  .score-cell .val{font-size:1.2rem}
  .score-total{font-size:1.4rem;margin-top:12px}
  .score-total strong{font-size:1.7rem}
  .divider{margin:22px auto}
  .divider-overlay{padding:18px}
  .divider-title{font-size:1.3rem}
  .divider-list{max-width:100%}
  .share-code{padding:8px 12px;gap:8px}
  .share-code .code-digits{font-size:1.2rem;padding:3px 10px;letter-spacing:.14em}
  .teacher-mirror{padding:14px}
  .grader{padding:16px 14px}
  .grader-criteria{padding:12px}
  .checks li{font-size:.82rem;padding:6px 0;gap:8px}
  .grader-controls{padding:8px 10px;gap:8px}
  .grader-btn{padding:8px 12px;font-size:.8rem}
  .row{gap:8px}
  .dots{padding:6px;gap:6px}
  .dot{width:20px;height:5px}
}
@media(max-width:400px){
  .vocab-grid,.flip-grid{grid-template-columns:1fr!important}
  .flip-card,.vocab-card{min-height:110px}
  .flip-inner{min-height:110px}
  .hero-title{font-size:1.5rem}
  .section-head h2{font-size:1rem}
}

/* ── Compact-v2 · топбар + hero + пилюли ── */
@media(max-width:640px){
  header.topbar.canon-l-topbar{padding:6px 10px!important;gap:8px!important;flex-wrap:wrap!important;min-height:0!important}
  .topbar .brand,.canon-l-brand{gap:8px!important;flex:0 0 auto!important}
  .topbar .brand-mark,.canon-l-mark{width:28px!important;height:28px!important;font-size:.9rem!important;border-radius:8px!important}
  .brand-copy,.canon-l-copy{gap:0!important}
  .brand-name,.canon-l-name{font-size:.82rem!important;line-height:1.15!important;letter-spacing:.01em!important}
  .brand-sub,.canon-l-sub{display:none!important}
  .topnav,.canon-l-nav{order:3;flex-basis:100%!important;gap:2px!important;overflow-x:auto;flex-wrap:nowrap!important;padding:2px 0!important;margin:0!important;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .topnav::-webkit-scrollbar,.canon-l-nav::-webkit-scrollbar{display:none}
  .topnav .canon-l-link,.canon-l-nav .canon-l-link{padding:4px 8px!important;font-size:.68rem!important;letter-spacing:.02em!important;white-space:nowrap!important;flex:0 0 auto!important}
  .top-tools,.canon-l-tools{gap:5px!important;flex:0 0 auto!important;justify-content:flex-end!important}
  .tool-pill,.canon-l-pill,.level-pill,.canon-l-level{padding:3px 7px!important;font-size:.66rem!important;line-height:1.1!important;letter-spacing:.02em!important;border-radius:8px!important;min-height:0!important}
  .ltab{padding:3px 7px!important;font-size:.66rem!important;min-height:0!important;height:22px!important;border-radius:8px!important}
  .ltab-count{padding:0 5px!important;font-size:.6rem!important;min-width:14px!important;line-height:1.1!important}
  .hero-card{min-height:160px!important}
  .hero-overlay{padding:14px 14px!important}
  .hero-eyebrow{font-size:.6rem!important;margin:0 0 6px!important;letter-spacing:.08em!important}
  .hero-title{font-size:1.35rem!important;margin:4px 0 6px!important;line-height:1.15!important}
  .hero-lead{font-size:.8rem!important;margin:0 0 8px!important;line-height:1.4!important}
  .hero-meta{gap:5px!important}
  .hero-tag{font-size:.6rem!important;padding:3px 7px!important;border-radius:8px!important}
  .section{margin:0 auto 14px!important;padding:0 12px!important}
  .section-head{gap:8px!important;margin-bottom:6px!important}
  .section-head .n{width:26px!important;height:26px!important;font-size:.78rem!important;border-radius:8px!important}
  .section-head h2{font-size:.85rem!important;line-height:1.25!important;letter-spacing:0!important}
  .ege-tag{font-size:.55rem!important;padding:2px 6px!important;margin-left:5px!important;letter-spacing:.04em!important}
  .section-sub{font-size:.72rem!important;margin:0 0 8px!important}
  .card{padding:10px 12px!important;border-radius:12px!important}
  .card + .card{margin-top:8px!important}
  .card h3{font-size:.88rem!important;margin:0 0 6px!important}
}
@media(max-width:400px){
  .brand-name,.canon-l-name{font-size:.75rem!important}
  .topnav .canon-l-link,.canon-l-nav .canon-l-link{font-size:.64rem!important;padding:3px 6px!important}
  .tool-pill,.canon-l-pill,.level-pill,.canon-l-level{font-size:.6rem!important;padding:2px 6px!important}
  .hero-title{font-size:1.2rem!important}
  .section-head h2{font-size:.8rem!important}
}

/* ── Бургер + сворачивание canon-l-nav ── */
.mobile-burger{display:none}
@media(max-width:640px){
  .mobile-burger{display:inline-flex;align-items:center;justify-content:center;
    width:32px;height:32px;padding:0;margin-left:auto;
    background:transparent;border:1px solid rgba(27,58,92,.22);border-radius:8px;
    color:#0D2440;font-size:16px;line-height:1;cursor:pointer;flex:0 0 auto}
  .mobile-burger:active{background:rgba(27,58,92,.06)}
  .canon-l-nav{display:none!important}
  .canon-l-nav.is-open{display:flex!important;position:absolute;left:0;right:0;top:100%;
    flex-direction:column!important;align-items:stretch!important;
    background:#FDF9EE;border-top:1px solid rgba(27,58,92,.14);
    border-bottom:1px solid rgba(27,58,92,.14);
    padding:6px 12px!important;gap:0!important;overflow:visible!important;
    box-shadow:0 8px 20px rgba(0,0,0,.08);z-index:50}
  .canon-l-nav.is-open .canon-l-link{padding:10px 12px!important;font-size:.85rem!important;
    border-bottom:1px solid rgba(27,58,92,.08);text-align:left}
  .canon-l-nav.is-open .canon-l-link:last-child{border-bottom:0}
  header.topbar.canon-l-topbar{position:relative}
}

/* ── Ltab (Урок / Домашка) pill · 📖 L / 📚 H ── */
@media(max-width:640px){
  .lesson-tabs{padding:5px 8px!important;gap:6px!important}
  .ltab{padding:4px 10px!important;height:24px!important;width:auto!important;
    font-size:0!important;line-height:1!important;border-radius:50px!important;
    display:inline-flex!important;align-items:center;justify-content:center;
    position:relative;overflow:visible!important;letter-spacing:.06em!important}
  .ltab[data-tab="lesson"]::before{content:"📖 L";font-size:11px;font-weight:800;letter-spacing:.08em}
  .ltab[data-tab="homework"]::before{content:"📚 H";font-size:11px;font-weight:800;letter-spacing:.08em}
  .ltab .ltab-count{position:static!important;margin-left:5px!important;font-size:9px!important;
    padding:1px 5px!important;min-width:14px!important;height:14px!important;line-height:12px!important;
    border-radius:50px!important;background:#F5C842!important;color:#0D2440!important}
  .ltab .ltab-count:empty{display:none!important}
}

/* ── Teacher banner: fixed сверху, 2 строки, чистый ── */
@media(max-width:640px){
  .lab-teacher-banner{position:fixed!important;top:0!important;left:0!important;right:0!important;
    flex-wrap:wrap!important;padding:6px 10px!important;gap:6px 8px!important;
    min-height:60px!important;font-size:11px!important;z-index:100!important}
  body.lab-teacher-on{padding-top:150px!important}
  .lab-teacher-banner > span:nth-of-type(1){font-size:11px!important;letter-spacing:.05em!important}
  .lab-teacher-banner > span:nth-of-type(3){display:none!important}
  .lab-teacher-banner > a[href*="teacher=off"]{display:none!important}
  .lab-teacher-banner input#labTeacherWord{width:calc(100vw - 160px)!important;max-width:260px!important;
    font-size:11px!important;padding:4px 10px!important}
  .lab-teacher-banner button#labTeacherAdd{padding:5px 10px!important;font-size:10px!important;letter-spacing:.1em!important}
}

/* ── Speaking bottom dock (Vocabulary / Results) → V / R жёстко в углу ── */
@media(max-width:640px){
  .speaking-bottom-dock{position:fixed!important;top:auto!important;left:auto!important;
    right:0!important;bottom:calc(env(safe-area-inset-bottom,0px) + 80px)!important;
    padding:2px!important;gap:4px!important;flex-direction:column!important;
    align-items:flex-end!important;width:34px!important;min-width:0!important;max-width:34px!important;
    background:transparent!important;box-shadow:none!important;
    transform:none!important;margin:0!important;z-index:75!important}
  .speaking-bottom-dock button{width:30px!important;height:30px!important;padding:0!important;
    font-size:0!important;border-radius:50%!important;overflow:hidden;position:relative;
    display:inline-flex!important;align-items:center;justify-content:center;min-height:0!important;
    box-shadow:0 2px 6px rgba(0,0,0,.25)}
  .speaking-bottom-dock button[data-clean-lex]::before{content:"V";font-size:12px;font-weight:800;color:inherit}
  .speaking-bottom-dock button[data-clean-total]::before{content:"R";font-size:12px;font-weight:800;color:inherit}
}

/* ── Лифт .lp-toc → скрыт по умолчанию, drawer при .is-open ── */
@media(max-width:640px){
  .lp-toc{display:none!important}
  .lp-toc.is-open{display:block!important;position:fixed!important;
    left:6px!important;bottom:80px!important;top:auto!important;
    width:44px!important;max-height:60vh!important;overflow-y:auto!important;
    padding:6px 4px!important;-webkit-overflow-scrolling:touch;
    background:#FDF9EE!important;border:1px solid rgba(27,58,92,.22)!important;
    border-radius:12px!important;box-shadow:0 8px 20px rgba(0,0,0,.2)!important;
    z-index:70!important}
  .lp-toc.is-open .lp-toc-btn{width:36px!important;height:28px!important;font-size:11px!important;
    padding:0!important;margin:2px auto!important;border-radius:6px!important;display:block!important}
  .lp-toc-mobile-btn{padding:4px 10px!important;height:24px!important;width:auto!important;min-width:32px;
    border-radius:50px!important;background:#0D2440;color:#F5EDD8;
    border:0;cursor:pointer;font-size:11px;font-weight:800;letter-spacing:.08em;
    display:inline-flex!important;align-items:center;justify-content:center;
    line-height:1;box-shadow:0 2px 6px rgba(0,0,0,.18)}
  .lp-toc-mobile-btn:active{transform:scale(.96)}
}
