:root{color-scheme:light dark;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--radius-1: 8px;--radius-2: 10px;--radius-3: 14px;--radius-pill: 999px;--f-ui: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--f-display: var(--f-poster);--f-read: var(--f-ui);--f-script: "Great Vibes", "Brush Script MT", cursive;--f-poster: "Montserrat", var(--f-ui);--f-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-sm: .875rem;--text-base: .9375rem;--text-lg: 1.125rem;--text-xl: 1.45rem;--text-2xl: 2rem;--leading: 1.5;--tap: 44px;--paper: #f2f6fb;--surface: #ffffff;--sunk: #eaf1f8;--ink: #061b33;--muted: #557089;--line: #d8e3ee;--accent: #0277b5;--accent-soft: #e0f2fb;--brand: #0f3156;--brand-ink: #ffffff;--sky: #69d1fe;--rail: #041a33;--rail-ink: #eaf4fc;--rail-muted: #8faecb;--glow: #01a4df;--bad: #c01e1e;--bad-bg: #fdecec;--ok: #0f7a3c;--ok-bg: #e8f6ee;--warn: #8a5a00;--warn-bg: #fdf3e2;--focus: var(--accent);--hl-yellow: #eab308;--hl-green: #22c55e;--hl-pink: #ec4899;--hl-orange: #f97316;--hl-blue: #3b82f6;--hl-ink: #111827;--pm-blue: #0b63a8;--pm-green: #0f7a3c;--pm-yellow: #8a5a00;--pm-orange: #b34700;--pm-pink: #b5247c;--pm-red: #c01e1e;--pm-grey: #557089;--shadow-1: 0 1px 2px rgb(16 24 40 / 4%), 0 2px 8px rgb(16 24 40 / 5%);--shadow-2: 0 6px 20px rgb(16 24 40 / 12%);--glow-soft: 0 0 0 1px color-mix(in srgb, var(--sky) 18%, transparent), 0 10px 30px color-mix(in srgb, var(--brand) 22%, transparent);--glow-strong: 0 0 0 1px color-mix(in srgb, var(--sky) 40%, transparent), 0 14px 40px color-mix(in srgb, var(--glow) 28%, transparent);--shadow-book: 0 18px 38px rgb(3 21 43 / 30%), 0 2px 6px rgb(3 21 43 / 24%);--motion-fast: .12s;--motion-base: .22s;--motion-slow: .42s;--ease-magic: cubic-bezier(.22, .61, .36, 1);--state-open: var(--sky);--state-expired: var(--muted);--state-done: var(--ok);--cover-ratio: 3 / 4}@media(prefers-reduced-motion:reduce){:root{--motion-fast: 0ms;--motion-base: 0ms;--motion-slow: 0ms}}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #03152b;--surface: #0a2442;--sunk: #0e2e52;--ink: #eaf4fc;--muted: #9db6cf;--line: #163d66;--accent: #3cc3f5;--accent-soft: #0e3558;--rail: #02101f;--bad: #f87171;--bad-bg: #351815;--ok: #4ade80;--ok-bg: #12301f;--warn: #e8bb62;--warn-bg: #2f2411;--focus: var(--sky);--hl-yellow: #facc15;--hl-green: #4ade80;--hl-pink: #f472b6;--hl-orange: #fb923c;--hl-blue: #60a5fa;--hl-ink: #0f1116;--pm-blue: #6cc6f5;--pm-green: #4ade80;--pm-yellow: #e8bb62;--pm-orange: #fba86a;--pm-pink: #f472b6;--pm-red: #f87171;--pm-grey: #9db6cf;--shadow-1: 0 1px 2px rgb(0 0 0 / 30%);--shadow-2: 0 6px 20px rgb(0 0 0 / 50%);color-scheme:dark}}:root[data-theme=dark]{--paper: #03152b;--surface: #0a2442;--sunk: #0e2e52;--ink: #eaf4fc;--muted: #9db6cf;--line: #163d66;--accent: #3cc3f5;--accent-soft: #0e3558;--rail: #02101f;--bad: #f87171;--bad-bg: #351815;--ok: #4ade80;--ok-bg: #12301f;--warn: #e8bb62;--warn-bg: #2f2411;--focus: var(--sky);--hl-yellow: #facc15;--hl-green: #4ade80;--hl-pink: #f472b6;--hl-orange: #fb923c;--hl-blue: #60a5fa;--hl-ink: #0f1116;--pm-blue: #6cc6f5;--pm-green: #4ade80;--pm-yellow: #e8bb62;--pm-orange: #fba86a;--pm-pink: #f472b6;--pm-red: #f87171;--pm-grey: #9db6cf;--shadow-1: 0 1px 2px rgb(0 0 0 / 30%);--shadow-2: 0 6px 20px rgb(0 0 0 / 50%);color-scheme:dark}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/GreatVibes-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/Inter-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/Inter-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/Inter-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/Inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/Montserrat-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/Montserrat-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/Montserrat-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/Montserrat-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.app{display:grid;--rail-width: 68px;grid-template-columns:var(--rail-width) minmax(0,1fr);min-height:100vh;transition:grid-template-columns .18s ease}.app:has(.rail:hover),.app:has(.rail:focus-within),.app:has(.rail[data-pinned]){--rail-width: 230px}.rail{position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column;gap:22px;padding:24px 14px;color:var(--rail-ink);background:radial-gradient(1.2px 1.2px at 20% 30%,rgb(255 255 255 / 55%),transparent 60%),radial-gradient(1px 1px at 70% 12%,rgb(255 255 255 / 45%),transparent 60%),radial-gradient(1.4px 1.4px at 40% 72%,rgb(160 225 255 / 50%),transparent 60%),radial-gradient(1px 1px at 85% 55%,rgb(255 255 255 / 40%),transparent 60%),radial-gradient(1px 1px at 10% 88%,rgb(160 225 255 / 45%),transparent 60%),radial-gradient(120% 45% at 0% 0%,rgb(1 164 223 / 38%),transparent 70%),radial-gradient(90% 40% at 100% 100%,rgb(7 142 197 / 30%),transparent 70%),linear-gradient(180deg,#062a4a 0%,var(--rail) 55%,#081c3d 100%)}.brand{display:flex;flex-direction:column;gap:4px;padding:0 8px}.brand__logo{display:block;margin-bottom:8px;border-radius:12px}.brand b{font-size:1.15rem;font-weight:700;letter-spacing:-.02em;color:var(--rail-ink)}.brand span{font-size:.78rem;color:var(--rail-muted)}.nav{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0}.nav a{text-decoration:none;display:block}.nav__link{display:flex;align-items:center;gap:10px;min-height:var(--tap);padding:8px 14px;border-radius:var(--radius-pill);color:var(--rail-muted);font-weight:500}.nav a:hover .nav__link{color:var(--rail-ink);background:#ffffff0f}.nav__link[data-active=true]{color:var(--sky);background:#01a4df2e;box-shadow:inset 0 0 0 1px #69d1fe40}.sw{width:9px;height:9px;border-radius:50%;flex:none;opacity:.9}.sw--y{background:var(--hl-yellow)}.sw--g{background:var(--hl-green)}.sw--p{background:var(--hl-pink)}.sw--o{background:var(--hl-orange)}.sw--b{background:var(--hl-blue)}.sw--k{background:var(--rail-ink)}.count{margin-left:auto;border-radius:var(--radius-pill);padding:0 7px;background:var(--sky);color:#0a182d;font-size:.75rem;font-weight:600;font-variant-numeric:tabular-nums}.who{margin-top:auto;display:flex;flex-direction:column;gap:2px;padding:0 8px;font-size:.8rem;color:var(--rail-muted)}.who b{color:var(--rail-ink);font-weight:600}main{min-width:0;padding-inline:clamp(16px,4vw,48px);padding-block:32px 64px}.wrap{display:flex;flex-direction:column;gap:28px;max-width:1180px}.wrap p.read,.wrap .lede{max-width:66ch}.page{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.page h1{margin:0;flex:1 1 auto;font-size:clamp(1.6rem,3.4vw,2.1rem);font-weight:700;letter-spacing:-.02em;line-height:1.15}.page__actions{display:flex;gap:var(--space-2)}.crumbs{flex-basis:100%;display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:0;padding:0;font-size:var(--text-sm)}.crumbs a{color:var(--accent)}@media(max-width:820px){.app{grid-template-columns:1fr}.rail{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:12px}.brand{flex-direction:row;align-items:center;gap:8px}.brand__logo{width:34px;height:34px;margin:0}.brand b,.brand span,.who span{display:none}.nav{flex-direction:row;flex-wrap:wrap;gap:var(--space-1)}.who{margin:0 0 0 auto}}.wordmark{display:inline-flex;flex-direction:column;align-items:center;line-height:1}.wordmark__script{font-family:var(--f-script);font-weight:400;color:#3ec4f8;text-shadow:0 0 24px rgb(1 164 223 / 45%);line-height:.9}.wordmark__caps{margin-top:-.1em;font-family:var(--f-poster);font-weight:800;letter-spacing:.01em;color:#e9eef3;background:linear-gradient(180deg,#fff,#e9eef3 45%,#a9b4bf);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.wordmark[data-size=hero] .wordmark__script{font-size:clamp(2.6rem,7vw,4rem)}.wordmark[data-size=hero] .wordmark__caps{font-size:clamp(2.1rem,6.5vw,3.6rem)}.wordmark[data-size=small] .wordmark__script{font-size:1.6rem}.wordmark[data-size=small] .wordmark__caps{font-size:1.3rem}.hero{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:14px;border-radius:20px;padding:clamp(28px,5vw,48px) clamp(20px,4vw,40px);text-align:center;color:#eaf4fc;background:radial-gradient(1.5px 1.5px at 12% 22%,rgb(255 255 255 / 70%),transparent 60%),radial-gradient(1px 1px at 30% 70%,rgb(255 255 255 / 55%),transparent 60%),radial-gradient(1.2px 1.2px at 78% 18%,rgb(190 235 255 / 70%),transparent 60%),radial-gradient(1px 1px at 88% 64%,rgb(255 255 255 / 50%),transparent 60%),radial-gradient(1.3px 1.3px at 56% 86%,rgb(190 235 255 / 60%),transparent 60%),radial-gradient(60% 70% at 0% 50%,rgb(1 164 223 / 55%),transparent 70%),radial-gradient(55% 60% at 100% 0%,rgb(7 142 197 / 35%),transparent 70%),linear-gradient(160deg,#0a2a4d,#06203c 55%,#04172c)}.hero p{margin:0;max-width:52ch;color:#b8d3ea}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-3);padding:20px;box-shadow:var(--shadow-1)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.tile{display:flex;flex-direction:column;gap:8px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-3);padding:16px;box-shadow:var(--shadow-1);transition:border-color .15s,box-shadow .15s}.tile:hover{border-color:var(--accent);box-shadow:0 4px 14px #0b7dbe1f}.tile h3{margin:0;font-size:1.02rem;font-weight:650}.tile p{margin:0;color:var(--muted);font-size:.92rem}.tile .meta{display:flex;flex-wrap:wrap;gap:10px;font-size:.8rem;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-3);padding:14px 16px;box-shadow:var(--shadow-1)}.stat b{display:block;font-size:1.6rem;font-weight:700;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}.stat span{font-size:.82rem;color:var(--muted)}.list{display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-3);box-shadow:var(--shadow-1);list-style:none;margin:0;padding:0}.list>li,.item{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:12px 16px;border-top:1px solid var(--line)}.list>li:first-child,.item:first-child{border-top:0}.list>li:hover{background:var(--sunk)}.chip{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-pill);padding:2px 9px;font-size:.75rem;font-weight:600;white-space:nowrap;background:var(--sunk);color:var(--muted)}.chip[data-tone=wait]{background:var(--hl-orange);color:var(--hl-ink)}.chip[data-tone=done]{background:var(--hl-green);color:var(--hl-ink)}.chip[data-tone=bad]{background:var(--bad-bg);color:var(--bad)}.empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:28px 20px;text-align:center;color:var(--muted);font-style:normal;text-wrap:balance}.empty:before{content:"✧";font-size:1.15rem;line-height:1;color:var(--state-expired)}.empty__hint{margin:0;max-width:44ch;font-size:var(--text-sm);opacity:.85}.bar{height:6px;border-radius:var(--radius-pill);background:var(--sunk);overflow:hidden}.bar i{display:block;height:100%;border-radius:var(--radius-pill);background:var(--accent);transition:width .3s}.nav__text{display:grid;line-height:1.2}.nav__text small{font-size:.72rem;opacity:.65}.who__exit{margin-top:6px;padding:0;border:0;background:none;color:var(--rail-ink);font-size:var(--text-sm);text-align:left;text-decoration:underline;text-underline-offset:3px;opacity:.75;cursor:pointer}.who__exit:hover,.who__exit:focus-visible{opacity:1}.rail{width:var(--rail-width, 230px);overflow-x:hidden;transition:width .18s ease}.nav__icon{flex:0 0 auto;width:22px;height:22px;color:var(--rail-ink);opacity:.9}.nav__icon--y{color:var(--hl-yellow)}.nav__icon--g{color:var(--hl-green)}.nav__icon--p{color:var(--hl-pink)}.nav__icon--o{color:var(--hl-orange)}.nav__icon--b{color:var(--hl-blue)}.nav__icon--k{color:var(--rail-ink)}.nav__link[data-active=true] .nav__icon{opacity:1}.rail .brand b,.rail .brand span,.rail .nav__text,.rail .who,.rail .rail__pinText,.rail .count{transition:opacity .12s ease}.app:not(:has(.rail:hover)):not(:has(.rail:focus-within)):not(:has(.rail[data-pinned])){.rail .brand b,.rail .brand span,.rail .nav__text,.rail .who,.rail .rail__pinText{opacity:0;pointer-events:none}}.rail__pin{display:flex;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:0 10px;border:0;border-radius:var(--radius-pill);background:none;color:var(--rail-ink);font:inherit;opacity:.8;cursor:pointer}.rail__pin:hover,.rail__pin:focus-visible{background:#ffffff14;opacity:1}@media(max-width:820px){.app{--rail-width: auto}.rail .nav__text,.rail .brand b,.rail .who{opacity:1}.rail__pin{display:none}}.wrap>section{display:grid;gap:var(--space-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-3);padding:20px;box-shadow:var(--shadow-1)}.wrap>section>h2{font-size:1.2rem;font-weight:650}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:0;padding:0}.chips li{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);background:var(--sunk);color:var(--muted);font-size:var(--text-sm);font-weight:500}.grid{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.grid th,.grid td{padding:12px 16px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--line)}.grid tbody tr:last-child th,.grid tbody tr:last-child td{border-bottom:0}.grid thead th{padding-block:8px;border-bottom:1px solid var(--line);background:none;color:var(--muted);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;white-space:nowrap}.grid tbody tr:hover{background:var(--sunk)}.grid tr[data-inactive] th,.grid tr[data-inactive] td{color:var(--muted)}.grid button:not([class]){min-height:30px;padding:4px 12px;font-size:.82rem;white-space:nowrap}.grid select{min-width:11rem}.row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}@media(max-width:40rem){.grid{display:block;overflow-x:auto}}form label{display:grid;gap:var(--space-1);font-size:var(--text-sm)}form label input[type=checkbox],form label input[type=radio]{width:auto}fieldset{border:1px solid var(--line);border-radius:var(--radius-2);padding:var(--space-3);display:grid;gap:var(--space-2)}fieldset legend{padding:0 var(--space-2);font-size:var(--text-sm);color:var(--muted)}.grades,.homework,.schedule,.inbox,.writing__list,.vocab__list,.vocab__mistakes,.decks,.admin__links{display:grid;gap:var(--space-2);list-style:none;margin:0;padding:0}.homework>li,.schedule>li,.admin__links>li,.author__courses>li,.author__lessons>li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.homework>li>button,.schedule>li>button,.author__lessons>li>button{margin-left:auto}.grades__row,.homework__row,.schedule__row{display:grid;gap:var(--space-1);border:1px solid var(--line);border-left-width:4px;border-radius:var(--radius-2);padding:var(--space-3);background:var(--surface)}.grades__score{font-weight:600}.grades__comment{margin:0;color:var(--ink)}.homework__row[data-overdue]{border-left-color:var(--bad);background:var(--bad-bg)}.schedule__row[data-cancelled]{border-left-color:var(--muted);text-decoration-line:line-through;color:var(--muted)}.homework__row h3{margin:0;font-size:var(--text-base)}.homework__lesson,.homework__note,.homework__due,.homework__state,.schedule__note{margin:0;font-size:var(--text-sm);color:var(--muted)}.vocab__add,.writing__form,.admin__filter{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-3)}.writing__form{display:grid}.vocab__list li,.vocab__mistakes li,.decks li,.admin__links li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--line);padding:var(--space-2) 0}.vocab__list li[data-learned] b{color:var(--ok)}.decks__cards{width:100%;display:grid;gap:var(--space-1);list-style:none;margin:var(--space-2) 0 0;padding:0 0 0 var(--space-4);border-left:2px solid var(--line)}.practice__sets{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:var(--space-3);list-style:none;margin:0;padding:0}.practice__card{display:grid;gap:var(--space-2);align-content:start;border:1px solid var(--line);border-radius:var(--radius-2);padding:var(--space-4);background:var(--surface)}.practice__card h3{margin:0;font-size:var(--text-base)}.practice__score{margin:0;font-size:var(--text-sm);color:var(--muted)}.practice__items{display:grid;gap:var(--space-4);padding-left:var(--space-6)}.practice__question{display:grid;gap:var(--space-2);border-left:4px solid var(--line);padding-left:var(--space-3)}.practice__question[data-status=ok]{border-left-color:var(--ok)}.practice__question[data-status=bad]{border-left-color:var(--bad)}.practice__prompt{margin:0}.practice__options,.practice__tokens{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:0;padding:0}.practice__options button,.practice__tokens button{border:1px solid var(--line);border-radius:var(--radius-1);background:var(--surface);padding:0 var(--space-3)}.practice__options button[data-chosen=true],.practice__tokens button[data-chosen=true]{border-color:var(--accent);background:var(--sunk);font-weight:600}.practice__verdict,.practice__result,.practice__notice{margin:0;font-size:var(--text-sm)}.practice__footer{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.writing__guide{border-left:4px solid var(--accent);padding-left:var(--space-3);font-size:var(--text-sm);color:var(--muted)}.writing__counter [data-enough=false]{color:var(--warn)}.writing__counter [data-enough=true]{color:var(--ok)}.writing__grade{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--muted)}.queue__filter,.author__modes,.review__sections ul{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:0;padding:0}.queue__filter button,.author__modes button,.review__sections button{min-height:var(--tap);border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface);padding:0 var(--space-3)}.queue__filter button[aria-pressed=true],.author__modes button[aria-pressed=true],.review__sections button[aria-pressed=true]{border-color:var(--accent);background:var(--sunk);font-weight:600}.review__head{margin:0;font-size:var(--text-sm);color:var(--muted)}.review__answers{display:grid;gap:var(--space-4);list-style:none;margin:0;padding:0}.review__card{display:grid;gap:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-2);padding:var(--space-4);background:var(--surface)}.review__card[data-stale]{border-color:var(--warn);background:var(--warn-bg)}.review__answer{margin:0;overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-1);padding:var(--space-2);background:var(--sunk);font-family:var(--f-mono);font-size:var(--text-sm)}.review__grade{display:grid;gap:var(--space-2)}.review__grade fieldset{display:flex;flex-wrap:wrap;gap:var(--space-3)}.review__current,.review__notice,.students__notice,.admin__notice,.admin__total{margin:0;font-size:var(--text-sm);color:var(--muted)}.inbox li{border:1px solid var(--line);border-radius:var(--radius-2);padding:var(--space-3);background:var(--surface)}.inbox li[data-reviewed]{color:var(--muted)}.inbox li>button{display:block;width:100%;text-align:left;border:0;background:none;color:inherit;font:inherit}.inbox__body{display:grid;gap:var(--space-3);margin-top:var(--space-3)}.inbox__text{margin:0;border-left:4px solid var(--line);padding-left:var(--space-3);white-space:pre-wrap}.admin__constraints,.admin__meta{color:var(--muted);font-family:var(--f-mono);font-size:var(--text-sm);word-break:break-word}.author__courses,.author__modules,.author__lessons,.author__blocks{display:grid;gap:var(--space-3);list-style:none;margin:0;padding:0}.author__blocks{gap:0}.author__courses li,.author__modules li{border:1px solid var(--line);border-radius:var(--radius-2);padding:var(--space-4);background:var(--surface)}.author__courses li[data-archived],.author__modules li[data-archived],.author__lessons li[data-archived]{opacity:.6}.author__counts,.author__level,.author__archived,.author__revision,.author__hint{color:var(--muted);font-size:var(--text-sm)}.author__hint{margin:var(--space-1) 0 0}.author__lesson{display:grid;grid-template-columns:minmax(12rem,17rem) minmax(0,1fr);gap:var(--space-6);align-items:start}@media(max-width:52rem){.author__lesson{grid-template-columns:1fr}}@media(min-width:52.0625rem){.author__panel{position:sticky;top:var(--space-4);max-height:calc(100vh - var(--space-8));overflow:auto}}.author__panel{display:grid;gap:var(--space-3);align-content:start}.author__panel-title{margin:0;font-size:var(--text-sm);font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.author__panel ul{display:grid;gap:2px;list-style:none;margin:0;padding:0}.author__panel button{display:flex;align-items:center;gap:var(--space-2);width:100%;text-align:left;border-radius:var(--radius-2)}.author__panel button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:650;box-shadow:inset 3px 0 0 var(--accent)}.author__panel-count{margin-left:auto;font-variant-numeric:tabular-nums;font-size:var(--text-sm);color:var(--muted)}.author__panel button[aria-pressed=true] .author__panel-count{color:inherit}.author__work{display:grid;gap:var(--space-3);max-width:50rem}.author__work-head{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) 0;background:var(--paper);border-bottom:1px solid var(--line)}.author__work-head h2{margin:0;font-size:var(--text-lg)}.author__work-sub{margin:0;color:var(--muted);font-size:var(--text-sm)}.author__work>.btn{justify-self:start}.author__blocks>li{border:1px solid var(--line);border-radius:var(--radius-2);padding:var(--space-1) var(--space-3);background:var(--surface)}.author__blocks>li:has(.author__editor){border-color:var(--accent);padding-bottom:var(--space-3);box-shadow:var(--glow-soft)}.author__block-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);min-height:var(--tap);font-size:var(--text-sm)}.author__block-index{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:1.75rem;height:1.75rem;border-radius:var(--radius-pill);background:var(--sunk);color:var(--muted);font-variant-numeric:tabular-nums;font-weight:650}.author__block-type{font-size:var(--text-base)}.author__block-meta{color:var(--muted)}.author__block-excerpt{flex:1 1 10rem;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--muted);font-family:var(--f-read)}.author__block-controls{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-left:auto}.author__editor{display:grid;gap:var(--space-3);margin-top:var(--space-3);border-top:1px solid var(--line);padding-top:var(--space-3)}.author__editor-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2)}.author__editor-head h3{margin:0;font-size:var(--text-base)}.author__editor-head .btn{margin-left:auto}.author__editor>.btn{justify-self:start}.author__field{display:grid;gap:var(--space-1)}.author__field>label{font-size:var(--text-sm);color:var(--muted)}.author__list-row{display:grid;gap:var(--space-2);border:1px dashed var(--line);border-radius:var(--radius-1);padding:var(--space-2)}.author__list-controls{display:flex;flex-wrap:wrap;gap:var(--space-1)}.author__status{font-size:var(--text-sm);color:var(--muted)}.author__error{color:var(--bad)}.author__warnings{color:var(--warn)}.author__preview{display:grid;gap:var(--space-6)}.author__preview-block{border:1px dashed var(--line);border-radius:var(--radius-2);padding:var(--space-4)}.review__text{margin:0;border-left:4px solid var(--line);padding-left:var(--space-3);white-space:pre-wrap}.review__voice{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.notify{display:grid;gap:var(--space-2);list-style:none;margin:0;padding:0}.notify li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--line);padding:var(--space-2) 0;color:var(--muted)}.notify li[data-unread]{border-left:4px solid var(--accent);padding-left:var(--space-2);color:var(--ink);font-weight:500}.notify li time{margin-left:auto;font-size:var(--text-sm)}.review__grade fieldset label,.inbox__body fieldset label{display:inline-flex;align-items:center;gap:var(--space-2);padding:0 var(--space-2)}.author__save,.author__status,.vset-author__busy,.audio-author__busy,.wordlist-author__busy{display:inline-flex;align-items:center;gap:var(--space-2);min-height:1.75rem;margin:0;padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--sunk);color:var(--muted);font-size:var(--text-sm)}.author__save{margin-left:auto}.author__save[data-state=idle]{background:none;padding:0}.author__save[data-state=idle]:before{content:none}.author__save:before{content:"•";font-size:1.1em;line-height:1}.author__save[data-state=saved]{background:var(--ok-bg);color:var(--ok)}.author__save[data-state=saved]:before{content:"✓"}.author__save[data-state=offline],.author__save[data-state=syntax]{background:var(--warn-bg);color:var(--warn)}.author__save[data-state=conflict]{background:var(--bad-bg);color:var(--bad)}.author__save[data-state=offline]:before,.author__save[data-state=syntax]:before,.author__save[data-state=conflict]:before{content:"⚠"}.author__save[data-state=saving]:before,.vset-author__busy:before,.audio-author__busy:before,.wordlist-author__busy:before{content:"";flex:none;width:.85em;height:.85em;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.author__status{flex-wrap:wrap;justify-self:start;padding:var(--space-1) var(--space-3);border-radius:var(--radius-2)}.progress{display:grid;gap:var(--space-1);min-width:8rem}.progress__value{font-variant-numeric:tabular-nums}.grid__sub{display:block;color:var(--muted);font-weight:400;font-size:var(--text-sm)}.shelf__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.vocab__scope{margin:0;color:var(--muted);font-size:var(--text-sm)}.sortable__item[data-dragging],.author__blocks>li[data-dragging]{opacity:.45}.sortable__item[data-over],.author__blocks>li[data-over]{box-shadow:inset 0 2px 0 var(--accent)}.rte{border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface);overflow:hidden}.rte__bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);padding:var(--space-2);border-bottom:1px solid var(--line);background:var(--sunk)}.rte__bar select{width:auto;max-width:12rem;min-height:38px;padding-block:4px}.rte__bar button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.rte__sep{width:1px;height:20px;margin:0 var(--space-1);background:var(--line)}.rte__body .ProseMirror{min-height:7rem;padding:var(--space-3);outline:none;font-family:var(--f-read);line-height:1.6}.rte__body .ProseMirror img{max-width:100%;height:auto;border-radius:var(--radius-1)}.rte__bar--sub{background:var(--surface);border-bottom:1px solid var(--line)}.rte__body .ProseMirror .selectedCell{background:var(--accent-soft);outline:1px solid var(--accent)}.rte__body .ProseMirror .pm-callout__title,.rte__body .ProseMirror .pm-callout__icon{cursor:default;user-select:none}.notify__tap{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap);min-height:var(--tap);cursor:pointer}.lesson__submitted{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--ok-bg);color:var(--ok);font-weight:600}.series__who{display:grid;gap:var(--space-2);margin:0;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-2)}.series__who label{display:flex;align-items:center;gap:var(--space-2);min-height:var(--tap)}.students__list{display:grid;gap:var(--space-2);list-style:none;margin:0;padding:0}.students__list>li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-2)}.students__list>li>button{margin-left:auto}.review__sentence{margin:var(--space-2) 0;font-size:var(--text-lg);line-height:2}.review__slot{padding:2px 8px;border-bottom:2px solid var(--line);border-radius:var(--radius-1);font-weight:600}.review__slot[data-state=ok]{border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}.review__slot[data-state=bad]{border-color:var(--bad);background:var(--bad-bg);color:var(--bad)}.review__slot[data-state=empty]{color:var(--muted);font-weight:400}.review__slot i{font-size:var(--text-sm);font-weight:400;font-style:normal;opacity:.85}.review__values{margin:var(--space-2) 0;padding-left:var(--space-4)}.review__raw summary{cursor:pointer;color:var(--muted);font-size:var(--text-sm)}.vset-author{display:grid;gap:var(--space-3)}.vset-author__words{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}.vset-author__card{display:grid;gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-2);padding:var(--space-3);background:var(--surface)}.vset-author__card-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.vset-author__card-head h4{margin:0;font-size:var(--text-base)}.vset-author__card-controls{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-left:auto}.vset-author__format{display:flex;gap:var(--space-1)}.vset-author__format button{font-weight:700}.vset-author__thumb{max-width:12rem;max-height:8rem;border-radius:var(--radius-1);object-fit:contain}.vset-author__warnings{margin:0;padding:var(--space-2) var(--space-3);border-left:4px solid var(--warn);border-radius:var(--radius-1);background:var(--warn-bg);color:var(--warn);font-size:var(--text-sm);list-style:none;display:grid;gap:var(--space-1)}.vset-author__busy{margin:0;font-size:var(--text-sm);color:var(--muted)}.vset-author__paste summary{cursor:pointer;display:flex;align-items:center}.vset-author__paste{border:1px dashed var(--line);border-radius:var(--radius-2);padding:var(--space-2) var(--space-3);display:grid;gap:var(--space-2)}.vbank__notice{margin:var(--space-3) 0;padding:var(--space-3);border:1px solid var(--bad);border-radius:var(--radius-2);background:var(--bad-bg);color:var(--bad)}.vbank__counters{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:0 0 var(--space-4);padding:0;list-style:none}.vbank__counters>li{flex:1 1 8rem;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface);text-align:center}.vbank__counters b{display:block;font-size:var(--text-2xl);line-height:1.1}.vbank__counters span{color:var(--muted);font-size:var(--text-sm)}.vbank__reminder{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin:0 0 var(--space-4);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface)}.vbank__reminder[data-kind=due]{border-color:var(--warn);background:var(--warn-bg);color:var(--warn)}.vbank__modes{margin:0 0 var(--space-6)}.vbank__chosen{margin:0 0 var(--space-2);color:var(--muted)}.vbank__mode-list{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.vbank__mode-note{display:block;font-size:var(--text-sm);font-weight:400;opacity:.8}.vbank__hint{color:var(--muted);font-size:var(--text-sm)}.vbank__course{margin:0 0 var(--space-4)}.vbank__course-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.vbank__course-head h3{margin:0}.vbank__sets{margin:var(--space-2) 0 0;padding:0;list-style:none}.vbank__set{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface)}.vbank__set+.vbank__set{margin-top:var(--space-2)}.vbank__set[data-selected=true]{border-color:var(--accent);background:var(--accent-soft)}.vbank__set[data-locked=true]{background:var(--sunk);color:var(--muted)}.vbank__set-pick{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.vbank__set-title{font-weight:600}.vbank__set-lesson,.vbank__set-count,.vbank__set-locked{color:var(--muted);font-size:var(--text-sm)}.vbank__progress-wrap{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.vbank__bar{display:flex;width:7rem;height:8px;overflow:hidden;border-radius:var(--radius-pill);background:var(--sunk)}.vbank__bar-learned{background:var(--hl-green)}.vbank__bar-doing{background:var(--hl-yellow)}.vbank__progress-text{color:var(--muted);font-size:var(--text-sm)}.vbank__switch{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.vbank__switch small{display:block;color:var(--muted)}.shelf__vocab{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin:0 0 var(--space-4);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface)}.shelf__vocab-learned{margin-left:auto;color:var(--muted);font-size:var(--text-sm)}.cvbank{margin:var(--space-3) 0 0;padding:var(--space-3);border-top:1px solid var(--line)}.cvbank h3{margin:0 0 var(--space-2)}.cvbank__due{margin:var(--space-2) 0;color:var(--warn)}.cvbank__sets{margin:var(--space-2) 0 0;padding:0;list-style:none}.cvbank__sets>li{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2) var(--space-3);padding:var(--space-1) 0}.cvbank__sets>li[data-locked=true]{color:var(--muted)}.cvbank__learned,.cvbank__locked{margin-left:auto;font-size:var(--text-sm);color:var(--muted)}.author__insert-row{list-style:none}.author__blocks>li.author__insert-row{border:0;padding:0;background:none;box-shadow:none}.author__insert{display:flex;align-items:center;justify-content:center;min-height:26px;position:relative}.author__insert:before{content:"";position:absolute;left:0;right:0;height:1px;background:var(--line);opacity:.6}.author__insert-button{position:absolute;top:50%;left:50%;translate:-50% -50%;display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--accent);font-size:1.25rem;line-height:1;opacity:0;transition:opacity .12s;cursor:pointer}.author__insert:hover .author__insert-button,.author__insert-button:focus-visible{opacity:1}@media(pointer:coarse){.author__insert-button{opacity:.55}}.author__insert--open{min-height:auto}.author__picker{width:100%;display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--accent);border-radius:var(--radius-2);background:var(--surface)}.catalogue{display:grid;gap:var(--space-4);width:100%;padding:var(--space-3);border:1px solid var(--accent);border-radius:var(--radius-3);background:var(--surface);box-shadow:var(--shadow-2)}.catalogue__head{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:end}.catalogue__search{display:grid;gap:var(--space-1);flex:1 1 14rem;font-size:var(--text-sm);color:var(--muted)}.catalogue__group{display:grid;gap:var(--space-2)}.catalogue__group-name{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.catalogue__cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:var(--space-3);list-style:none;margin:0;padding:0}.catalogue__cell{position:relative}.catalogue__card{display:grid;gap:var(--space-1);width:100%;padding:var(--space-3) calc(var(--tap) + var(--space-1)) var(--space-3) var(--space-3);text-align:left;font:inherit;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface);cursor:pointer;transition:border-color .12s,background .12s}.catalogue__card:hover,.catalogue__card:focus-visible{border-color:var(--accent);background:var(--accent-soft)}.catalogue__name{font-weight:650}.catalogue__hint{font-size:var(--text-sm);color:var(--muted)}.catalogue__star{position:absolute;top:0;right:0;display:inline-flex;align-items:center;justify-content:center;width:var(--tap);border:0;border-radius:var(--radius-2);background:none;color:var(--muted);font-size:var(--text-lg);line-height:1;cursor:pointer}.catalogue__star[aria-pressed=true]{color:var(--hl-yellow)}.cprev{display:grid;gap:3px;margin-top:var(--space-1);padding:var(--space-2);border-radius:var(--radius-1);background:var(--sunk);min-height:46px;align-content:center;pointer-events:none}.cprev__line{display:block;height:4px;border-radius:var(--radius-pill);background:var(--line)}.cprev__row{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:.6rem;color:var(--muted)}.cprev__chip{display:inline-block;min-width:14px;min-height:10px;padding:1px 4px;border-radius:var(--radius-1);border:1px solid var(--line);background:var(--surface);font-size:.6rem;line-height:1.3;color:var(--ink)}.cprev__gap{display:inline-block;width:28px;height:11px;border-bottom:2px solid var(--accent)}.cprev__bank{display:flex;gap:4px;padding-bottom:3px}.cprev__select{display:inline-flex;align-items:center;gap:4px;width:44px;padding:2px 4px;border:1px solid var(--accent);border-radius:var(--radius-1);background:var(--surface)}.cprev__caret{width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid var(--accent)}.cprev__screen{position:relative;display:block;height:34px;border-radius:var(--radius-1);border:1px solid var(--line);background:var(--surface)}.cprev__play{position:absolute;top:50%;left:50%;translate:-40% -50%;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:10px solid var(--accent)}.cprev__pin{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--accent)}.cprev__note{display:flex;gap:5px;align-items:center;padding:4px 5px;border-left:3px solid var(--hl-blue);border-radius:var(--radius-1);background:var(--surface)}.cprev__lines{display:grid;gap:3px;flex:1}.cprev__dot{width:8px;height:8px;border-radius:50%;background:var(--hl-blue)}.cprev__card{display:grid;gap:4px;padding:4px 6px;border:1px solid var(--line);border-radius:var(--radius-1);background:var(--surface);font-size:.6rem;color:var(--ink)}.cprev__table{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}.cprev__table>span{height:11px;border:1px solid var(--line);background:var(--surface)}.cprev__strike{font-size:.6rem;color:var(--bad);text-decoration:line-through}.cprev__tile{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;border:1px solid var(--line);border-radius:3px;background:var(--surface);font-size:.55rem;color:var(--ink)}.cprev__options{display:grid;gap:4px}.cprev__option{display:flex;align-items:center;gap:5px}.cprev__option>.cprev__line{flex:1}.cprev__radio{width:8px;height:8px;border-radius:50%;border:1px solid var(--line);background:var(--surface)}.cprev__radio[data-on=true]{border-color:var(--accent);background:var(--accent)}.cprev__num{font-size:.55rem;color:var(--muted)}.cprev__pairs{display:flex;align-items:center;gap:4px}.cprev__col{display:grid;gap:4px;flex:1}.cprev__wires{position:relative;width:16px;height:20px;background:linear-gradient(to bottom right,transparent 45%,var(--accent) 45%,var(--accent) 55%,transparent 55%),linear-gradient(to top right,transparent 45%,var(--accent) 45%,var(--accent) 55%,transparent 55%)}.cprev__tiles{display:grid;grid-template-columns:1fr 1fr;gap:3px}.cprev__tiles>span{height:13px;border:1px solid var(--line);border-radius:3px;background:var(--surface)}.cprev__tiles>span[data-on=true]{border-color:var(--accent);background:var(--accent-soft)}.cprev__columns{display:grid;grid-template-columns:1fr 1fr;gap:4px}.cprev__column{display:grid;gap:3px;padding:3px;border:1px dashed var(--line);border-radius:var(--radius-1)}.cprev__slashed{font-size:.6rem;color:var(--ink);letter-spacing:.02em}.cprev__list{display:grid;gap:4px}.cprev__list>span{display:flex;align-items:center;gap:5px;padding:2px 3px;border:1px solid var(--line);border-radius:3px;background:var(--surface)}.cprev__list .cprev__line{flex:1}.cprev__grip{width:6px;height:9px;background:radial-gradient(circle,var(--muted) 1px,transparent 1.2px) 0 0 / 3px 3px repeat;opacity:.8}.cprev__scale{position:relative;display:block;height:18px}.cprev__ticks{position:absolute;top:8px;left:0;right:0;height:3px;border-radius:var(--radius-pill);background:var(--line)}.cprev__knob{position:absolute;top:4px;left:62%;width:11px;height:11px;border-radius:50%;background:var(--accent)}.cprev__area{display:grid;gap:4px;padding:4px 5px;min-height:26px;border:1px solid var(--line);border-radius:var(--radius-1);background:var(--surface)}.cprev__mic{width:12px;height:18px;border-radius:var(--radius-pill);background:var(--accent)}.cprev__wave{display:flex;align-items:center;gap:2px;height:18px}.cprev__wave>span{width:3px;border-radius:var(--radius-pill);background:var(--accent);opacity:.55}.cprev__wave>span:nth-child(1){height:6px}.cprev__wave>span:nth-child(2){height:13px}.cprev__wave>span:nth-child(3){height:18px}.cprev__wave>span:nth-child(4){height:10px}.cprev__wave>span:nth-child(5){height:5px}@media(max-width:30rem){.catalogue__cards{grid-template-columns:1fr}}.author__menu{position:relative;display:inline-flex}.author__menu-trigger{border:1px solid var(--line);border-radius:var(--radius-1);background:var(--surface);color:var(--ink);line-height:1}.author__menu-trigger[aria-expanded=true],.author__menu-trigger:hover,.author__menu-trigger:focus-visible{border-color:var(--accent)}.author__menu-list{position:absolute;right:0;top:calc(100% + var(--space-1));z-index:20;min-width:16rem;margin:0;padding:var(--space-1);list-style:none;display:grid;gap:2px;border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface);box-shadow:var(--shadow-2)}.author__menu-list button{width:100%;text-align:left;border:0;border-radius:var(--radius-1);background:transparent;color:var(--ink);padding:var(--space-1) var(--space-2);font-size:var(--text-sm)}.author__menu-list button:hover:not(:disabled),.author__menu-list button:focus-visible{background:var(--sunk)}.author__menu-list button:disabled{opacity:.5}.author__picker--target{position:absolute;right:0;top:calc(100% + var(--space-1));z-index:21;width:min(24rem,90vw);box-shadow:var(--shadow-2)}.author__picker-title{margin:0;font-weight:600}.author__picker--target label{display:grid;gap:var(--space-1);font-size:var(--text-sm)}.author__picker-sections{margin:0;padding:0;list-style:none;display:grid;gap:2px;max-height:14rem;overflow-y:auto}.author__picker-sections button{width:100%;text-align:left;border:1px solid var(--line);border-radius:var(--radius-1);background:var(--surface);color:var(--ink);padding:var(--space-1) var(--space-2)}.author__picker-sections button:hover,.author__picker-sections button:focus-visible{border-color:var(--accent)}@media(max-width:40rem){.author__menu-list,.author__picker--target{right:auto;left:0}}.toc{display:grid;gap:var(--space-4)}.toc__head{display:grid;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-3);background:var(--surface)}.toc__head h2{margin:0;font-family:var(--f-display);font-size:var(--text-xl)}.toc__subtitle{margin:0;color:var(--muted)}.toc__cover{width:6rem;aspect-ratio:2 / 3;object-fit:cover;border-radius:var(--radius-2);box-shadow:0 2px 10px #061b332e}.toc__progress{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:var(--space-2) var(--space-3)}.toc__percent{font-family:var(--f-poster);font-size:var(--text-2xl);line-height:1;color:var(--accent)}.toc__counts{color:var(--muted);font-size:var(--text-sm)}.toc__progress .bar{grid-column:1 / -1}.toc__tabs{display:flex;gap:var(--space-2);border-bottom:1px solid var(--line)}.toc__tab{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-3);border-bottom:2px solid transparent;color:var(--muted);text-decoration:none;font-weight:600}.toc__tab[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}.toc__module{border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface)}.toc__module>summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;font-weight:600}.toc__module-count{color:var(--muted);font-size:var(--text-sm);font-weight:400}.toc__lessons{margin:0;padding:0;list-style:none;display:grid;gap:2px}.toc__lesson{border-top:1px solid var(--line)}.toc__open{display:flex;align-items:center;gap:var(--space-2);width:100%;text-align:left;border:0;background:none;color:inherit;padding:var(--space-2) var(--space-3);cursor:pointer}.toc__open:hover,.toc__open:focus-visible{background:var(--sunk)}.toc__lesson-title{flex:1 1 auto}.toc__level,.toc__sections{color:var(--muted);font-size:var(--text-sm)}.toc__done{color:var(--ok);background:var(--ok-bg);border-radius:var(--radius-pill);padding:0 var(--space-2);font-size:var(--text-sm)}.toc__submitted{color:var(--accent);font-size:var(--text-sm)}.toc__lesson[data-locked]{padding:var(--space-2) var(--space-3);color:var(--muted)}.toc__locked{margin-left:var(--space-2);font-size:var(--text-sm)}.toc__error{margin:0;padding:0 var(--space-3) var(--space-2);color:var(--bad)}.tabs{display:flex;gap:var(--space-2);border-bottom:1px solid var(--line);margin-bottom:var(--space-4)}.tabs__tab{border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);font-weight:600;padding:var(--space-2) var(--space-3);cursor:pointer}.tabs__tab[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}.course-picker{margin:0 0 var(--space-3);padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-2)}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:var(--radius-pill);padding:2px var(--space-2);font-size:var(--text-sm);background:var(--sunk);color:var(--ink)}.badge--ok{background:var(--ok-bg);color:var(--ok)}.badge--off{background:var(--bad-bg);color:var(--bad)}.badge[data-state]{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--badge-tone) 45%,transparent);background:color-mix(in srgb,var(--badge-tone) 16%,var(--surface));color:var(--ink)}.badge[data-state=open],.badge[data-state=active]{--badge-tone: var(--state-open)}.badge[data-state=done]{--badge-tone: var(--state-done)}.badge[data-state=expired],.badge[data-state=closed],.badge[data-state=idle]{--badge-tone: var(--state-expired)}.badge__icon{flex:none;line-height:1}.muted{color:var(--muted)}.grid tr[data-expired] th,.grid tr[data-expired] td{background:var(--sunk)}.extend{display:grid;grid-template-columns:repeat(2,minmax(6rem,1fr));align-items:end;gap:var(--space-1);width:13rem}.students-grid th,.students-grid td{padding-inline:var(--space-3)}.extend__custom,.extend>.btn:last-of-type{grid-column:1 / -1}.extend__custom{display:grid;gap:2px;font-size:var(--text-sm);color:var(--muted)}.extend__notice{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--accent)}.sprogress{display:grid;gap:var(--space-3);margin-top:var(--space-6);padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-3);background:var(--surface)}.sprogress__head h3{margin:0}.sprogress__summary{margin:0;color:var(--muted)}.sprogress__bulk{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-2);background:var(--sunk)}.sprogress__all{display:inline-flex;align-items:center;gap:var(--space-1);font-weight:600}.sprogress__count{color:var(--muted);font-size:var(--text-sm)}.sprogress__notice{margin:0;color:var(--accent)}.sprogress__blocks{margin:0;padding:0;list-style:none;display:grid;gap:var(--space-1)}.sprogress__blocks li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.sprogress__block-type{font-family:var(--f-mono);font-size:var(--text-sm)}.grid tr[data-closed] th,.grid tr[data-closed] td{opacity:.7}.author__modes{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.author__module-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.author__menu{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-1);margin-top:var(--space-1);padding:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-2);background:var(--sunk)}.author__move,.author__lesson-settings label{display:grid;gap:2px;font-size:var(--text-sm);color:var(--muted)}.author__lesson-settings{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-2)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.audio-author,.wordlist-author{display:grid;gap:var(--space-3)}.audio-author__tracks,.wordlist-author__cards{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}.audio-author__card,.wordlist-author__card{display:grid;gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-2);padding:var(--space-3);background:var(--surface)}.audio-author__card-head,.wordlist-author__card-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.audio-author__card-head h4,.wordlist-author__card-head h4{margin:0;font-size:var(--text-base)}.audio-author__card-controls,.wordlist-author__card-controls{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-left:auto}.wordlist-author__audio{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.wordlist-author__display{border:1px solid var(--line);border-radius:var(--radius-1);padding:var(--space-2) var(--space-3)}.wordlist-author__display label{display:flex;align-items:center;gap:var(--space-2)}.audio-author__busy,.wordlist-author__busy{margin:0;font-size:var(--text-sm);color:var(--muted)}.author__confirm{position:absolute;right:0;top:calc(100% + var(--space-1));z-index:22;width:min(26rem,90vw);display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--bad);border-radius:var(--radius-2);background:var(--surface);box-shadow:var(--shadow-2);text-align:left}.author__confirm p{margin:0;font-size:var(--text-sm)}.author__confirm-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}@media(max-width:40rem){.author__confirm{right:auto;left:0}}.btn:disabled,.btn[data-variant]:disabled,.btn[aria-disabled=true]{border-style:dashed;border-color:var(--line);background:var(--sunk);background-image:none;color:var(--muted);box-shadow:none;opacity:.75;cursor:not-allowed}.btn[aria-busy=true]:disabled,.btn[data-variant][aria-busy=true]:disabled{border-style:solid;cursor:progress;opacity:.9}.grid-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.wrap input:disabled,.wrap select:disabled,.wrap textarea:disabled{border-style:dashed;background:var(--sunk);color:var(--muted);cursor:not-allowed}.rte:has(.rte__body:focus-within){outline:3px solid var(--focus);outline-offset:2px;border-color:var(--accent)}.homework>li.empty,.schedule>li.empty,.admin__links>li.empty,.decks>li.empty,.students__list>li.empty,.course-picker>li.empty,.author__courses>li.empty,.author__modules>li.empty,.author__lessons>li.empty,.author__blocks>li.empty{display:grid;justify-items:center;border:1px dashed var(--line);border-radius:var(--radius-2);background:none;padding:var(--space-6) var(--space-4)}.author__shelf .book__face{cursor:pointer}.author__shelf .book[data-state=archived] .book__face,.author__shelf .book[data-state=draft] .book__face{filter:grayscale(.5) brightness(.8);box-shadow:none}.author__shelf .book__counts{margin:0;color:var(--muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.author__shelf .book__publish{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--tap);font-size:var(--text-sm)}.block{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-3);box-shadow:var(--shadow-1)}.block__instruction{color:var(--muted)}.gaps,.dropdown,.dragfill__text,.fix__text,.block-open__field,.sentences__preview,.spell__word,.matchpairs__text,.match__prompt,.practice__prompt{font-family:var(--f-read);font-size:1.08rem;line-height:1.9}.block-text,.note{display:grid;gap:var(--space-2)}.block-text__title,.note__title{margin:0;font-size:var(--text-base)}.note__icon{margin-right:var(--space-2);font-size:1.2em;line-height:1}.note{border-left:4px solid var(--line);border-radius:var(--radius-2);padding:var(--space-3);background:var(--sunk)}.note[data-color=yellow]{border-left-color:#d9a400}.note[data-color=green]{border-left-color:var(--ok)}.note[data-color=blue]{border-left-color:var(--accent)}.note[data-color=pink]{border-left-color:#c2529a}.note[data-color=grey]{border-left-color:var(--muted)}.block-video__frame{width:100%;aspect-ratio:16 / 9;border:0;border-radius:var(--radius-2)}.block-video__frame--exercise{aspect-ratio:4 / 3;min-height:420px;background:var(--sunk)}.block-audio{display:grid;gap:var(--space-3);list-style:none;margin:0;padding:0}.block-audio__track{border:1px solid var(--line);border-radius:var(--radius-2);padding:var(--space-3);background:var(--surface)}.block-audio__title{margin:0 0 var(--space-2);font-size:var(--text-base)}.block-audio__track audio{display:none}.block-audio__controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.block-audio__seek{flex:1 1 140px;min-width:120px}.block-audio__time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:var(--text-sm)}.block-audio__volume{display:inline-flex;align-items:center;gap:var(--space-1)}.block-audio__volume input{width:80px}.block-audio__label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.block-audio__play,.block-audio__gear,.block-audio__doc{border:1px solid var(--line);border-radius:var(--radius-1);background:var(--surface);cursor:pointer}.block-audio__play[aria-pressed=true],.block-audio__gear[aria-expanded=true],.block-audio__doc[aria-expanded=true]{border-color:var(--accent);background:var(--accent-soft)}.block-audio__panel{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:var(--space-2)}.block-audio__panel button{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);padding:0 var(--space-3);cursor:pointer}.block-audio__panel button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.block-audio__transcript{margin-top:var(--space-3);border-top:1px solid var(--line);padding-top:var(--space-2)}.block-audio__empty{color:var(--muted)}.wordlist{display:grid;gap:var(--space-1);list-style:none;margin:0;padding:0}.wordlist__row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--line);padding:var(--space-2) 0}.wordlist__row[data-learned=true] .wordlist__word b{color:var(--ok)}.wordlist__pos,.wordlist__example{color:var(--muted);font-size:var(--text-sm)}.wordlist--cards{gap:var(--space-3)}.wordlist__card{display:grid;gap:var(--space-1);border:1px solid var(--line);border-radius:var(--radius-2);padding:var(--space-3);background:var(--surface)}.wordlist__card[data-learned=true] .wordlist__word b{color:var(--ok)}.wordlist__card p{margin:0}.wordlist__note,.wordlist__coll{color:var(--muted);font-size:var(--text-sm)}.wordlist__examples{margin:0;padding-left:var(--space-4);color:var(--muted);font-size:var(--text-sm)}.wordlist__card .wordlist__mark{margin-left:0;justify-self:start}.wordlist__mark{margin-left:auto;border:1px solid var(--line);border-radius:var(--radius-1);background:var(--surface);padding:0 var(--space-3)}.wordlist__mark[aria-pressed=true]{border-color:var(--ok);background:var(--ok-bg)}.block-open,.block-speak{display:grid;gap:var(--space-2)}.block-open__field{width:100%;border:1px solid var(--line);border-radius:var(--radius-2);padding:var(--space-3);background:var(--surface);color:inherit;font:inherit;line-height:var(--leading)}.block-open__counter{margin:0;font-size:var(--text-sm);color:var(--muted)}.block-open__counter [data-enough=false]{color:var(--warn)}.block-open__counter [data-enough=true]{color:var(--ok)}.block-speak__controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.block-speak__saved{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.block-speak__duration{color:var(--muted);font-size:var(--text-sm)}.block-speak__file{display:grid;gap:var(--space-1);font-size:var(--text-sm)}.block-speak__error{margin:0;color:var(--bad);font-size:var(--text-sm)}.dragfill{display:grid;gap:var(--space-3)}.dragfill__text{margin:0;line-height:2.4;white-space:pre-line}.dragfill__text .dragfill__slot,.dragfill__text .dragfill__bank{white-space:normal}.dragfill__slot,.gaps__slot,.dropdown__slot{display:inline-flex;align-items:center;gap:var(--space-1)}.dragfill__bank,.diagram__bank,.spell__letters,.sort__bank,.match__right,.matchpairs__right{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:0;padding:0}.dragfill__revealed,.match__revealed,.mcq__revealed,.dropdown__revealed{color:var(--ok);font-size:var(--text-sm)}.fix{display:grid;gap:var(--space-2)}.fix__text{margin:0;line-height:2.2}.fix__token{display:inline-flex;align-items:center;gap:var(--space-1)}.fix__word{border:1px solid transparent;border-bottom:1px dashed var(--line);border-radius:var(--radius-1);background:none;color:inherit;font:inherit;padding:0 var(--space-1)}.fix__word[data-edited=true]{border-color:var(--accent);background:var(--sunk)}.fix__word[data-spurious=true]{border-color:var(--warn);background:var(--warn-bg)}.fix__undo{border:0;background:none;color:var(--muted);cursor:pointer}.fix__feedback{margin:0;font-size:var(--text-sm);color:var(--muted)}.mcq,.test{display:grid;gap:var(--space-4)}.mcq__question,.test__question{display:grid;gap:var(--space-2)}.mcq__question[data-status=ok],.test__question[data-status=ok]{border-color:var(--ok)}.mcq__question[data-status=bad],.test__question[data-status=bad]{border-color:var(--bad)}.mcq__option,.test__option{display:flex;align-items:center;gap:var(--space-2)}.mcq__ungraded,.test__ungraded,.ordered__note,.sort__note{color:var(--muted);font-size:var(--text-sm);font-weight:400}.test__scale{display:flex;flex-wrap:wrap;gap:var(--space-3)}.test__scale label{display:inline-flex;align-items:center;gap:var(--space-2);padding:0 var(--space-2)}.mcq__verdict,.test__verdict,.test__explanation{margin:0;font-size:var(--text-sm)}.test__explanation{color:var(--muted)}.match,.matchpairs{display:grid;grid-template-columns:1fr auto;gap:var(--space-4);align-items:start}.matchpairs[data-mode=type]{grid-template-columns:1fr}.match__left,.matchpairs__left{display:grid;gap:var(--space-2);list-style:none;margin:0;padding:0}.match__row,.matchpairs__row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.match__prompt,.matchpairs__text{min-width:8rem}.matchpairs__picture{max-width:8rem;height:auto;border-radius:var(--radius-1)}@media(max-width:40rem){.match,.matchpairs{grid-template-columns:1fr}}.sort{display:grid;gap:var(--space-4)}.sort__bank-empty{color:var(--muted);font-size:var(--text-sm)}.sort__columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:var(--space-3)}.sort__column{display:grid;gap:var(--space-2);align-content:start;border:1px solid var(--line);border-radius:var(--radius-2);padding:var(--space-3);background:var(--sunk)}.sort__title{margin:0;font-size:var(--text-sm)}.sort__column ul{display:grid;gap:var(--space-2);list-style:none;margin:0;padding:0}.sort__column li[data-status=ok]{background:var(--ok-bg);border-radius:var(--radius-1)}.sort__column li[data-status=bad]{background:var(--bad-bg);border-radius:var(--radius-1)}.diagram{display:grid;gap:var(--space-3)}.diagram__canvas{position:relative;display:inline-block;max-width:100%}.diagram__image{display:block;max-width:100%;height:auto;border-radius:var(--radius-2)}.diagram__alt{display:flex;align-items:center;justify-content:center;min-height:14rem;margin:0;border:1px dashed var(--line);border-radius:var(--radius-2);padding:var(--space-4);color:var(--muted);text-align:center}.diagram__point{position:absolute;transform:translate(-50%,-50%);border:2px solid var(--accent);border-radius:var(--radius-3);background:var(--surface);color:inherit;font:inherit;padding:0 var(--space-2)}.diagram__point[data-status=ok]{border-color:var(--ok);background:var(--ok-bg)}.diagram__point[data-status=bad]{border-color:var(--bad);background:var(--bad-bg)}.diagram__list{display:grid;gap:var(--space-2);margin:0;padding-left:var(--space-6)}.diagram__list li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.diagram__label{min-width:10rem}.diagram__placed[data-status=ok]{color:var(--ok)}.diagram__placed[data-status=bad]{color:var(--bad)}.spell{display:grid;gap:var(--space-3)}.spell__words{display:grid;gap:var(--space-3);list-style:none;margin:0;padding:0}.spell__word{display:grid;gap:var(--space-1)}.spell__hint{color:var(--muted);font-size:var(--text-sm)}.spell__slots{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1)}.spell__open{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap);min-height:var(--tap);border-bottom:2px solid var(--line);color:var(--muted)}.spell__sep{padding:0 var(--space-1)}.spell__slot{border:1px solid var(--line);border-radius:var(--radius-1);background:var(--surface);color:inherit;font:inherit}.spell__slot[data-status=ok]{border-color:var(--ok);background:var(--ok-bg)}.spell__slot[data-status=bad]{border-color:var(--bad);background:var(--bad-bg)}.sentences,.ordered{display:grid;gap:var(--space-4)}.sentences__row{display:grid;gap:var(--space-2)}.sentences__preview{margin:0;border-left:4px solid var(--accent);padding-left:var(--space-3);font-weight:500}.sentences__word[data-status=ok],.ordered__item[data-status=ok]{color:var(--ok)}.sentences__word[data-status=bad],.ordered__item[data-status=bad]{color:var(--bad)}.ordered__pole{margin:0;font-size:var(--text-sm);color:var(--muted)}.ordered__extra{display:grid;gap:var(--space-2);border:1px dashed var(--line);border-radius:var(--radius-2);padding:var(--space-3)}.ordered__extra-title{margin:0;font-size:var(--text-sm)}.ordered__extra-empty{margin:0;color:var(--muted);font-size:var(--text-sm)}.ordered__extra ul{display:grid;gap:var(--space-2);list-style:none;margin:0;padding:0}.table-block{overflow-x:auto}.table-block table{border-collapse:collapse;min-width:100%}.table-block th,.table-block td{border:1px solid var(--line);padding:var(--space-2);text-align:left;vertical-align:top}.table-block thead th,.table-block th{background:var(--sunk)}.table-block[data-compact] th,.table-block[data-compact] td{padding:var(--space-1);font-size:var(--text-sm)}.table-block__line{display:block}.table-block__line[data-layout=stack]+.table-block__line{margin-top:var(--space-1)}.table-block__select{border:1px solid var(--line);border-radius:var(--radius-1);background:var(--surface);color:inherit}.block__offline{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-3) 0 0;padding:10px 12px;border-radius:var(--radius-2);background:var(--sunk);color:var(--muted);font-size:var(--text-sm)}.vset__instr{margin:0 0 var(--space-3);font-weight:600}.vset__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:var(--space-3);margin:0 0 var(--space-3);padding:0;list-style:none}.vset__card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface)}.vset__img{width:100%;height:6rem;object-fit:cover;border-radius:var(--radius-1)}.vset__letter{display:flex;align-items:center;justify-content:center;height:6rem;border-radius:var(--radius-1);background:var(--sunk);color:var(--accent);font-family:var(--f-display);font-size:var(--text-2xl)}.vset__word{font-size:var(--text-lg)}.vset__def{color:var(--muted);font-size:var(--text-sm)}.vset__practise{display:inline-flex;align-items:center}.vset__empty{color:var(--muted)}.dragfill__form{position:relative;display:inline-flex;align-items:center;gap:2px;margin:0 2px}.dragfill__hint{position:absolute;top:50%;left:10px;color:var(--muted);font-size:var(--text-sm);line-height:1;pointer-events:none;transform:translateY(-50%);transition:transform .15s,font-size .15s,opacity .15s}.dragfill__form[data-edited] .dragfill__hint,.dragfill__form:focus-within .dragfill__hint{font-size:.72rem;opacity:.75;transform:translateY(-150%)}.dragfill__formInput{min-width:6ch;min-height:var(--tap);padding:4px 10px;border:1px solid var(--line);border-bottom-width:2px;border-radius:var(--radius-2);background:var(--surface);font:inherit}.dragfill__form[data-status=ok] .dragfill__formInput{border-color:var(--ok);background:var(--ok-bg)}.dragfill__form[data-status=bad] .dragfill__formInput{border-color:var(--bad);background:var(--bad-bg)}.dragfill__return{min-width:24px;min-height:24px;padding:0;border:0;background:none;color:var(--muted);font-size:1.1rem;line-height:1;cursor:pointer}.dragfill__return:hover,.dragfill__return:focus-visible{color:var(--bad)}.pm-ink--blue{color:var(--pm-blue)}.pm-ink--green{color:var(--pm-green)}.pm-ink--yellow{color:var(--pm-yellow)}.pm-ink--orange{color:var(--pm-orange)}.pm-ink--pink{color:var(--pm-pink)}.pm-ink--red{color:var(--pm-red)}.pm-ink--grey{color:var(--pm-grey)}.pm-hl{border-radius:3px;padding:0 2px;color:var(--ink);background:color-mix(in oklab,var(--pm-yellow) 26%,var(--surface))}.pm-hl--blue{background:color-mix(in oklab,var(--pm-blue) 26%,var(--surface))}.pm-hl--green{background:color-mix(in oklab,var(--pm-green) 26%,var(--surface))}.pm-hl--yellow{background:color-mix(in oklab,var(--pm-yellow) 26%,var(--surface))}.pm-hl--orange{background:color-mix(in oklab,var(--pm-orange) 26%,var(--surface))}.pm-hl--pink{background:color-mix(in oklab,var(--pm-pink) 26%,var(--surface))}.pm-hl--red{background:color-mix(in oklab,var(--pm-red) 26%,var(--surface))}.pm-hl--grey{background:color-mix(in oklab,var(--pm-grey) 26%,var(--surface))}.pm-size--sm{font-size:.85em}.pm-size--lg{font-size:1.25em}.pm-size--xl{font-size:1.5em}.pm-table{width:100%;border-collapse:collapse;margin:var(--space-3) 0;font-family:var(--f-read)}.pm-table th,.pm-table td{border:1px solid var(--line);padding:var(--space-2);text-align:start;vertical-align:top}.pm-table th{background:var(--sunk);font-weight:600}.pm-table p{margin:0}.pm-callout{display:flex;gap:var(--space-2);align-items:flex-start;margin:var(--space-3) 0;padding:var(--space-3);border-radius:var(--radius-2);border-left:4px solid var(--pm-blue);background:color-mix(in oklab,var(--pm-blue) 14%,var(--surface))}.pm-callout__icon{flex:none;font-size:1.15em;line-height:1.4}.pm-callout__main{flex:1;min-width:0}.pm-callout__title{margin:0 0 var(--space-1);font-weight:600}.pm-callout__body>:first-child{margin-top:0}.pm-callout__body>:last-child{margin-bottom:0}.pm-callout--blue{border-left-color:var(--pm-blue);background:color-mix(in oklab,var(--pm-blue) 14%,var(--surface))}.pm-callout--green{border-left-color:var(--pm-green);background:color-mix(in oklab,var(--pm-green) 14%,var(--surface))}.pm-callout--yellow{border-left-color:var(--pm-yellow);background:color-mix(in oklab,var(--pm-yellow) 14%,var(--surface))}.pm-callout--orange{border-left-color:var(--pm-orange);background:color-mix(in oklab,var(--pm-orange) 14%,var(--surface))}.pm-callout--pink{border-left-color:var(--pm-pink);background:color-mix(in oklab,var(--pm-pink) 14%,var(--surface))}.pm-callout--red{border-left-color:var(--pm-red);background:color-mix(in oklab,var(--pm-red) 14%,var(--surface))}.pm-callout--grey{border-left-color:var(--pm-grey);background:color-mix(in oklab,var(--pm-grey) 14%,var(--surface))}.answer-input__help{position:relative;display:inline-flex;vertical-align:middle}.answer-input__help-button{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--muted);font-weight:600;line-height:1}.answer-input__help-button:hover,.answer-input__help-button:focus-visible,.answer-input__help-button[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.answer-input__help-menu{position:absolute;left:0;top:calc(100% + 4px);z-index:20;display:grid;gap:2px;min-width:13rem;padding:var(--space-1);border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface);box-shadow:var(--shadow-2);text-align:left}.answer-input__help-menu button{border:0;border-radius:var(--radius-1);background:transparent;color:var(--ink);padding:var(--space-1) var(--space-2);text-align:left;font-size:var(--text-sm)}.answer-input__help-menu button:hover,.answer-input__help-menu button:focus-visible{background:var(--sunk)}.answer-input[data-status=revealed] .answer-input__field{border-color:var(--muted);border-style:dashed}.answer-input[data-status=revealed] .answer-input__mark{color:var(--muted)}.lesson__warning{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);border:1px solid var(--accent);border-radius:var(--radius-2);background:var(--accent-soft);color:var(--ink)}.shelf__list{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--space-6)}.book{display:grid;gap:var(--space-3);align-content:start}.book__face{position:relative;display:block;border-radius:var(--radius-3);box-shadow:var(--shadow-book);transition:transform var(--motion-base) var(--ease-magic),box-shadow var(--motion-base) var(--ease-magic)}a.book__face:hover,a.book__face:focus-visible{transform:translateY(-6px) rotate(-.4deg);box-shadow:var(--shadow-book),var(--glow-strong)}a.book__face:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.book[data-state=expired] .book__face{filter:grayscale(.45) brightness(.72);box-shadow:none}.book__seal{position:absolute;inset:var(--space-2) var(--space-2) auto auto;display:grid;justify-items:center;gap:2px;max-width:72%;padding:var(--space-2);border-radius:var(--radius-2);background:color-mix(in srgb,var(--rail) 86%,transparent);color:var(--rail-ink);font-size:.75rem;line-height:1.2;text-align:center;box-shadow:0 2px 10px #03152b73}.book__seal span:first-child{font-size:1.1rem;line-height:1;color:var(--state-expired)}.book__meta{display:grid;gap:2px}.book__title{margin:0;font-family:var(--f-poster);font-size:var(--text-base);font-weight:700;line-height:1.25}.book__title a{color:inherit;text-decoration:none}.book__title a:hover,.book__title a:focus-visible{color:var(--accent);text-decoration:underline}.book__sub,.book__state{margin:0;color:var(--muted);font-size:var(--text-sm)}.book__link{justify-self:start;font-size:var(--text-sm);min-height:var(--tap);display:inline-flex;align-items:center}.cover{position:relative;container-type:inline-size;display:block;aspect-ratio:var(--cover-ratio);border-radius:var(--radius-3);overflow:hidden;background:var(--brand)}.cover__image{width:100%;height:100%;object-fit:cover;display:block}.cover__made{position:absolute;inset:0;display:grid;align-content:end;padding:var(--space-3);background:linear-gradient(0deg,rgb(3 16 31 / 85%) 0%,transparent 55%),radial-gradient(130% 90% at 18% 4%,hsl(var(--cover-hue, 205) 78% 42% / 95%),transparent 62%),radial-gradient(90% 70% at 100% 100%,color-mix(in srgb,var(--sky) 60%,transparent),transparent 58%),linear-gradient(160deg,var(--brand),var(--rail))}.cover:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px #ffffff24;pointer-events:none}.cover__sigil{position:absolute;inset:0;opacity:.85;background-image:radial-gradient(1.6px 1.6px at 20% 26%,#fff,transparent),radial-gradient(1.2px 1.2px at 70% 18%,var(--sky),transparent),radial-gradient(2px 2px at 46% 58%,#fff,transparent),radial-gradient(1.2px 1.2px at 86% 48%,var(--sky),transparent),radial-gradient(1.4px 1.4px at 31% 72%,#fff,transparent),radial-gradient(1px 1px at 62% 82%,var(--sky),transparent),radial-gradient(1px 1px at 12% 52%,#fff,transparent),radial-gradient(70% 40% at 0% 50%,color-mix(in srgb,var(--sky) 28%,transparent),transparent 70%)}.cover__spine{position:absolute;inset:0 auto 0 0;width:16px;background:linear-gradient(90deg,#0000008c,#00000038 55%,#ffffff38 92%,#ffffff0f)}.cover__title{position:relative;margin-left:8px;font-family:var(--f-poster);font-weight:700;font-size:clamp(.75rem,11cqi,1.125rem);line-height:1.15;color:#fff;text-shadow:0 2px 10px rgb(3 21 43 / 60%);display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.cover__badge{position:absolute;top:var(--space-2);right:var(--space-2);padding:2px 8px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--rail) 70%,transparent);color:var(--rail-ink);font-size:.75rem;font-weight:600}@media(prefers-reduced-motion:no-preference){::view-transition-old(root){animation:cover-close var(--motion-base) var(--ease-magic) both}::view-transition-new(root){animation:cover-open var(--motion-slow) var(--ease-magic) both}}@keyframes cover-open{0%{opacity:0;transform:perspective(1200px) rotateY(-6deg) scale(.985)}to{opacity:1;transform:none}}@keyframes cover-close{0%{opacity:1}to{opacity:0}}.toc__head{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"cover title" "cover student" "cover sub" "cover about" "cover progress";align-items:start;gap:var(--space-2) var(--space-6)}.toc__cover{grid-area:cover;display:block;width:132px;border-radius:var(--radius-3);box-shadow:var(--shadow-book)}.toc__head h2{grid-area:title;align-self:end;font-family:var(--f-poster)}.toc__subtitle{grid-area:sub}.toc__about{grid-area:about;max-width:68ch;margin:0;color:var(--muted)}.toc__student{grid-area:student;display:flex;align-items:center;gap:var(--space-2);color:var(--muted);font-size:var(--text-sm)}.toc__avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);font-family:var(--f-poster);font-size:.75rem;font-weight:700}.toc__progress{grid-area:progress;display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-2)}.sigil{position:relative;display:grid;place-items:center;flex:none}.sigil svg{transform:rotate(-90deg)}.sigil__track{fill:none;stroke:var(--line);stroke-width:6}.sigil__fill{fill:none;stroke:var(--sky);stroke-width:6;stroke-linecap:round;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--sky) 55%,transparent));transition:stroke-dasharray var(--motion-slow) var(--ease-magic)}.sigil__value{position:absolute;font-family:var(--f-poster);font-size:var(--text-base);font-weight:700}.toc__counts{color:var(--muted)}@media(max-width:40rem){.toc__head{gap:var(--space-2) var(--space-4)}.toc__cover{width:92px}.toc__progress{gap:var(--space-3)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--f-ui);font-size:var(--text-base);line-height:var(--leading);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-family:var(--f-display);font-weight:700;letter-spacing:-.02em;text-wrap:balance}h2{font-size:1.2rem;font-weight:650}h3{font-size:1.02rem;font-weight:650}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:var(--radius-1)}a{color:var(--accent);text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-underline-offset:2px}a:hover{text-decoration-color:currentcolor}input,textarea,select{font:inherit;color:inherit}input:not([type=checkbox]):not([type=radio]),textarea,select{width:100%;min-height:38px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface);font-size:max(.95rem,16px)}textarea{min-height:120px;line-height:1.6;resize:vertical}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:1.05em;height:1.05em}form label{display:grid;gap:var(--space-1);font-size:var(--text-sm);font-weight:500;color:var(--muted)}form label input,form label select,form label textarea{color:var(--ink);font-weight:400}main form{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-3)}main form>label{flex:1 1 14rem;max-width:28rem}main form>label:has(textarea){flex-basis:100%;max-width:none}main form label:has(>input[type=checkbox]),main form label:has(>input[type=radio]){display:inline-flex;align-items:center;gap:var(--space-2);flex:0 0 auto;max-width:none;color:var(--ink);font-weight:400}main form label:has(>input[type=checkbox]) input,main form label:has(>input[type=radio]) input{width:auto}button{font:inherit;color:inherit;cursor:pointer}button:not([class]){display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:34px;padding:6px 14px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);font-size:var(--text-sm);font-weight:500;transition:border-color .15s,color .15s}button:not([class]):hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button:disabled{cursor:default;opacity:.55}.page-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);min-height:60vh;color:var(--muted)}.spinner{width:24px;height:24px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.placement-item{display:inline-flex;align-items:center;gap:var(--space-1)}.placement-item__button{padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface);box-shadow:var(--shadow-1)}.placement-item[data-selected=true] .placement-item__button{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.placement-item[data-used=true] .placement-item__button{text-decoration:line-through;opacity:.5}.placement-target{display:inline-flex;align-items:center;gap:var(--space-1);min-width:6ch;padding:var(--space-1) var(--space-2);border:1px dashed var(--line);border-radius:var(--radius-1);background:var(--surface);vertical-align:baseline}.placement-target[data-active=true]{border-style:solid;border-color:var(--accent)}.placement-target[data-status=ok]{border-color:var(--ok);background:var(--ok-bg)}.placement-target[data-status=bad]{border-color:var(--bad);background:var(--bad-bg)}.placement-target__empty{display:inline-block;width:5ch}.move-handle{position:relative;display:inline-flex}.move-handle__button{padding:0 var(--space-2);border:1px solid transparent;border-radius:var(--radius-1);background:transparent;color:var(--muted)}.move-handle__menu{position:absolute;z-index:20;top:100%;left:0;min-width:14rem;margin:var(--space-1) 0 0;padding:var(--space-1);list-style:none;border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface);box-shadow:var(--shadow-2)}.move-handle__menu button{display:block;width:100%;padding:var(--space-2) var(--space-3);min-height:var(--tap);text-align:left;border:0;border-radius:var(--radius-1);background:transparent}.move-handle__menu button:hover:not(:disabled){background:var(--sunk)}.sortable{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}.sortable__item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface)}.sortable__item[data-fixed=true]{background:var(--sunk);color:var(--muted)}.sortable__content{flex:1}.sortable__controls{display:flex;gap:var(--space-1)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:38px;padding:8px 16px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:inherit;font-weight:500;box-shadow:0 1px 2px #1018280d;transition:border-color .15s,box-shadow .15s,background .15s}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn[data-variant=primary]{border-color:transparent;background:linear-gradient(135deg,#0baeea,#0478bc 55%,#0a4f86);color:#fff;box-shadow:0 4px 14px #01a4df47}.btn[data-variant=primary]:hover:not(:disabled){background:linear-gradient(135deg,#29bdf2,#0a86cc 55%,#0b5a96);color:#fff;box-shadow:0 6px 20px #01a4df61}.btn[data-variant=quiet]{border-color:transparent;background:transparent;color:var(--muted);box-shadow:none}.btn[data-variant=quiet]:hover:not(:disabled){color:var(--accent)}.btn[data-variant=danger]{border-color:var(--bad);color:var(--bad)}.btn--small{min-height:30px;padding:4px 12px;font-size:var(--text-sm)}.spinner--inline{width:1em;height:1em;border-width:2px}.answer-input{display:inline-flex;align-items:baseline;gap:var(--space-1)}.answer-input__field{min-width:8ch;padding:var(--space-1) var(--space-2);border:1px solid var(--line);border-radius:var(--radius-1);background:var(--surface);color:inherit}.answer-input[data-status=ok] .answer-input__field{border-color:var(--ok);background:var(--ok-bg)}.answer-input[data-status=bad] .answer-input__field{border-color:var(--bad);background:var(--bad-bg)}.answer-input__revealed{color:var(--ok);font-weight:600}.feedback{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-2);font-size:var(--text-sm)}.feedback[data-kind=ok]{background:var(--ok-bg);color:var(--ok)}.feedback[data-kind=partial]{background:var(--warn-bg);color:var(--warn)}.feedback[data-kind=note]{background:var(--sunk);color:var(--muted)}.skeleton{display:flex;flex-direction:column;gap:var(--space-2)}.skeleton__line{height:1rem;border-radius:var(--radius-1);background:linear-gradient(90deg,var(--sunk),var(--line),var(--sunk));background-size:200% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}.block{padding:var(--space-4);margin-bottom:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-3);background:var(--surface);box-shadow:var(--shadow-1)}.block__instruction{margin-bottom:var(--space-3);color:var(--muted)}.block__audio{width:100%;margin:var(--space-3) 0}.block__image img{max-width:100%;height:auto;border-radius:var(--radius-2)}.block__image[data-size=small] img{max-width:240px}.block__image[data-size=medium] img{max-width:480px}.block__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-4)}.block__attempts{margin-left:auto;color:var(--muted);font-size:var(--text-sm)}.block__transcript{margin-top:var(--space-3);font-size:var(--text-sm)}.gaps{line-height:2.4}.gaps__slot{display:inline-flex;align-items:baseline;gap:var(--space-1)}.gaps__hint{position:absolute;top:50%;left:12px;z-index:1;color:var(--muted);font-size:var(--text-sm);line-height:1;pointer-events:none;transform:translateY(-50%);transition:transform var(--motion-fast) var(--ease-magic),font-size var(--motion-fast) var(--ease-magic),opacity var(--motion-fast) var(--ease-magic)}.gaps__slot{position:relative}.gaps__slot[data-filled] .gaps__hint,.gaps__slot:focus-within .gaps__hint{font-size:.72rem;opacity:.8;transform:translateY(-150%)}.gaps__slot[data-checked] .gaps__hint{opacity:0}.auth{min-height:100vh;display:grid;place-content:center;gap:var(--space-6);padding:var(--space-6) var(--space-4);color:var(--rail-ink);background:radial-gradient(1.5px 1.5px at 12% 22%,rgb(255 255 255 / 70%),transparent 60%),radial-gradient(1px 1px at 30% 70%,rgb(255 255 255 / 55%),transparent 60%),radial-gradient(1.2px 1.2px at 78% 18%,rgb(190 235 255 / 70%),transparent 60%),radial-gradient(1px 1px at 88% 64%,rgb(255 255 255 / 50%),transparent 60%),radial-gradient(1.3px 1.3px at 56% 86%,rgb(190 235 255 / 60%),transparent 60%),radial-gradient(60% 70% at 0% 50%,rgb(1 164 223 / 45%),transparent 70%),radial-gradient(55% 60% at 100% 0%,rgb(7 142 197 / 30%),transparent 70%),linear-gradient(160deg,#0a2a4d,#06203c 55%,#04172c)}.auth__brand{display:grid;justify-items:center;gap:var(--space-2)}.auth__brand p{margin:0;color:#b8d3ea;font-size:var(--text-sm)}.auth form{display:grid;gap:var(--space-4);width:min(26rem,100%);padding:var(--space-6);border:1px solid rgb(105 209 254 / 22%);border-radius:20px;background:#0a2442b3;backdrop-filter:blur(6px);box-shadow:var(--shadow-2)}.auth label{display:grid;gap:var(--space-1);font-size:var(--text-sm);color:#b8d3ea}.auth input{min-height:var(--tap);padding:0 var(--space-3);border:1px solid rgb(105 209 254 / 25%);border-radius:var(--radius-2);background:#04172cb3;color:var(--rail-ink);font-size:max(1rem,16px)}.auth input:focus-visible{border-color:var(--sky);outline:2px solid var(--sky);outline-offset:1px}.form-error{margin:0;color:var(--bad);font-size:var(--text-sm)}.toasts{position:fixed;inset-block-end:var(--space-4);inset-inline:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);pointer-events:none}.toast{padding:var(--space-2) var(--space-4);border-radius:var(--radius-3);background:var(--ink);color:var(--surface);box-shadow:var(--shadow-2)}.toast[data-kind=error]{background:var(--bad);color:#fff}@media(max-width:640px){.block{padding:var(--space-3);border-radius:var(--radius-2)}.block__actions{flex-direction:column;align-items:stretch}.block__attempts{margin-left:0}}.lesson{display:grid;grid-template-columns:minmax(12rem,16rem) minmax(0,1fr);gap:var(--space-6);align-items:start}@media(max-width:60rem){.lesson{grid-template-columns:1fr}}.lesson__main{min-width:0}.lesson__notice{display:flex;align-items:center;gap:var(--space-3);margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-2);background:var(--warn-bg);color:var(--warn)}.lesson__footer{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}.section-panel ol{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-1)}.section-panel__item{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:var(--tap);padding:var(--space-2) var(--space-3);border:1px solid transparent;border-radius:var(--radius-2);background:transparent;text-align:left}.section-panel__item[data-current=true]{border-color:var(--accent);background:var(--surface)}.section-panel__item[data-complete=true] .section-panel__index{background:var(--ok);color:var(--surface)}.section-panel__index{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:50%;background:var(--sunk);font-size:var(--text-sm)}.section-panel__title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-panel__score{color:var(--muted);font-size:var(--text-sm)}.block__missing{padding:var(--space-3);border-radius:var(--radius-2);background:var(--warn-bg);color:var(--warn)}@media(max-width:900px){.lesson{grid-template-columns:minmax(0,1fr);padding:var(--space-3)}.section-panel ol{flex-direction:row;overflow-x:auto;padding-bottom:var(--space-2)}.section-panel__item{width:auto;white-space:nowrap}.section-panel__title{display:none}}.shelf{display:grid;gap:var(--space-4)}.shelf__list{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;align-items:start}.shelf__card{padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-3);background:var(--surface);box-shadow:var(--shadow-1)}.shelf__card[data-active=false]{opacity:.65}.shelf__card h2{margin:0 0 var(--space-1);font-size:1.02rem;font-weight:650}.shelf__subtitle{margin:0 0 var(--space-2);color:var(--muted)}.shelf__expired{margin:var(--space-2) 0 0;color:var(--warn)}.shelf__empty{color:var(--muted)}.shelf__lessons{margin:var(--space-4) 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}.shelf__lesson{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--tap);padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface);text-align:left}.shelf__lesson-title{flex:1}.shelf__level,.shelf__progress,.shelf__submitted{color:var(--muted);font-size:var(--text-sm)}.shelf__submitted{color:var(--ok)}.shelf__error{color:var(--bad)}.dropdown{line-height:2.4}.dropdown__slot{display:inline-flex;align-items:baseline;gap:var(--space-1)}.dropdown__select{padding:var(--space-1) var(--space-2);border:1px solid var(--line);border-radius:var(--radius-1);background:var(--surface);color:inherit}.dropdown__slot[data-status=ok] .dropdown__select{border-color:var(--ok);background:var(--ok-bg)}.dropdown__slot[data-status=bad] .dropdown__select{border-color:var(--bad);background:var(--bad-bg)}.dropdown__revealed{color:var(--ok);font-weight:600}.placement-item[data-dragging] .placement-item__button{opacity:.45}.placement-target[data-over]{border-color:var(--accent);background:var(--accent-soft)}.skip{position:absolute;z-index:100;top:var(--space-2);left:var(--space-2);padding:12px 16px;border-radius:var(--radius-2);background:var(--ink);color:var(--surface);font-weight:600;text-decoration:none;transform:translateY(-200%);transition:transform .15s}.skip:focus-visible{transform:translateY(0)}@media(pointer:coarse),(max-width:52rem){.btn,.btn--small,button:not([class]){min-height:var(--tap)}input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:var(--tap)}input[type=checkbox],input[type=radio]{width:1.5em;height:1.5em}h2>a,h3>a,h4>a{display:inline-block;padding-block:12px}.fix__word,.mistakes__word{min-width:24px}label:has(>input[type=checkbox]),label:has(>input[type=radio]){display:flex;align-items:center;gap:var(--space-2);min-height:var(--tap)}}
