: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-ui);--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;--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%)}@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;--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;--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;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.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}.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}.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,.author__types{display:grid;gap:var(--space-3);list-style:none;margin:0;padding: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,.author__type-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,18rem) 1fr;gap:var(--space-6);align-items:start}@media(max-width:52rem){.author__lesson{grid-template-columns:1fr}}.author__panel ul{display:grid;gap:var(--space-1);list-style:none;margin:0 0 var(--space-4);padding:0}.author__panel button{width:100%;text-align:left}.author__work{display:grid;gap:var(--space-4)}.author__types{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}.author__types button{display:grid;gap:var(--space-1);width:100%;text-align:left;border:1px solid var(--line);border-radius:var(--radius-2);background:var(--surface);padding:var(--space-3)}.author__blocks>li{border:1px solid var(--line);border-radius:var(--radius-2);padding:var(--space-3);background:var(--surface)}.author__block-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.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__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{margin-left:auto;font-size:var(--text-sm);color:var(--muted)}.author__save[data-state=saved]{color:var(--ok)}.author__save[data-state=offline]{color:var(--warn)}.author__save[data-state=conflict]{color:var(--bad)}.author__save[data-state=syntax]{color:var(--warn)}.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 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)}.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)}.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{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)}.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__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}.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)}*,*: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-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{color:var(--muted);font-size:var(--text-sm)}.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)}}
