.signed-out>.auth{padding-top:68px;padding-bottom:40px}.auth .login__card{max-width:420px}.auth__brand{display:flex;align-items:center;min-height:32px;margin-bottom:22px}.auth__brand img{display:block;max-height:40px;max-width:200px;width:auto;object-fit:contain}.auth__brand-name{font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}.auth__title{font-size:24px;margin:0 0 6px}.auth__lead{margin:0 0 20px;color:var(--ink-2);font-size:14.5px}.auth-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.auth-field__label{font-size:13px;color:var(--ink-2)}.auth-field__hint{margin:0;font-size:13px;color:var(--ink-3)}.auth-field__error{margin:0;font-size:14px;color:var(--crit)}.auth-field__error a{color:inherit;font-weight:600}.auth-field input[type=text],.auth-field input[type=password]{width:100%;padding:11px 13px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--ink);font:inherit}.auth-field input[type=text]:focus,.auth-field input[type=password]:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent);outline:none}.auth-field input[aria-invalid=true]{border-color:var(--crit)}.password{position:relative}.auth-field .password input{padding-right:48px}.password__toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%);display:inline-grid;place-items:center;width:36px;height:36px;padding:0;border:none;border-radius:var(--radius-control);background:none;color:var(--ink-3);cursor:pointer}.password__toggle:hover{color:var(--ink);background:var(--surface-2)}.password__toggle.is-on{color:var(--accent-ink);background:var(--accent-soft)}.auth__switch{align-self:flex-start;margin:-6px 0 16px;font-size:14px}.auth__switch:hover{text-decoration:underline}.auth__alert{margin:0 0 14px;padding:10px 12px;border-radius:var(--radius-control);background:var(--crit-soft);color:var(--crit);font-size:14px}.auth__alert--lock p{margin:0}.auth__alert--lock .auth__alert-note{margin-top:6px;color:var(--ink-2);font-size:13px}.auth__hint{margin-top:18px;padding:12px 14px;border-radius:var(--radius-control);background:var(--accent-soft);font-size:14px}.auth__hint strong{display:block;margin-bottom:2px;color:var(--accent-ink)}.auth__hint p{margin:0;color:var(--ink-2)}.auth .notice{margin-bottom:20px}.auth .notice p{margin:0;font-size:14.5px}.auth__actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px;margin-top:16px;font-size:14px}.auth__more{margin:0 0 16px}.auth__more>summary{display:inline-flex;align-items:center;gap:4px;color:var(--accent-ink);font-size:14px;cursor:pointer;list-style:none}.auth__more>summary::-webkit-details-marker{display:none}.auth__more>summary .icon{transition:transform .12s}.auth__more[open]>summary .icon{transform:rotate(180deg)}.auth__more[open]>summary{margin-bottom:12px}.auth .login__card.choose-password{max-width:440px}.choose-password__who{margin:-12px 0 20px;font-size:14px;color:var(--ink-3);overflow-wrap:anywhere}.choose-password__rules{margin:-4px 0 16px;padding:10px 14px;border-radius:var(--radius-control);background:var(--accent-soft);color:var(--ink-2);font-size:14px}.choose-password__rules strong{display:block;margin-bottom:2px;color:var(--accent-ink)}.choose-password__rules ul{margin:0;padding-left:18px}.choose-password__devices{margin:0 0 16px;font-size:13.5px;color:var(--ink-3)}.choose-password__later{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:14px;color:var(--ink-3)}.choose-password__later p{flex:1 1 220px;margin:0}.settings{max-width:600px}.settings>h1{margin-bottom:24px}.settings .card{margin-bottom:22px}.settings .card__body>h2{margin:0}.settings__facts{display:grid;grid-template-columns:minmax(0,max-content) minmax(0,1fr);gap:8px 20px;margin:0}.settings__facts dt{color:var(--ink-3);font-size:14px}.settings__facts dd{margin:0;overflow-wrap:anywhere}.settings__phone{font-family:var(--font-num);font-variant-numeric:tabular-nums}.settings__note{margin:0;font-size:14px;color:var(--ink-3)}.settings__done{margin:0 0 16px;padding:12px 14px;border-radius:var(--radius-control);background:var(--ok-soft);color:var(--ink);font-size:14.5px}.lang-choice{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:0;padding:0;border:none}.lang-choice__option{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface);cursor:pointer}.lang-choice__option:hover{background:var(--surface-2)}.lang-choice__option input{position:absolute;opacity:0;pointer-events:none}.lang-choice__option:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:500}.lang-choice__option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.lang-choice__tick{margin-left:auto;color:var(--accent-ink)}@media(max-width:480px){.auth .login__card{padding:24px 20px}.settings__facts{grid-template-columns:minmax(0,1fr);gap:2px}.settings__facts dd{margin-bottom:8px}}.cover{display:block;width:100%;height:100%;object-fit:cover}.card img.cover{aspect-ratio:auto}.cover--blank{--cover-from: var(--player);--cover-to: var(--accent);display:grid;place-items:center;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--player-ink) 5%,transparent) 0 10px,transparent 10px 20px),linear-gradient(135deg,var(--cover-from),var(--cover-to));color:var(--player-ink);container-type:inline-size}.cover--blank[data-tone="1"]{--cover-from: var(--accent);--cover-to: color-mix(in srgb, var(--accent) 65%, var(--ok))}.cover--blank[data-tone="2"]{--cover-from: color-mix(in srgb, var(--player) 70%, var(--accent));--cover-to: color-mix(in srgb, var(--accent) 80%, var(--surface))}.cover--blank[data-tone="3"]{--cover-from: color-mix(in srgb, var(--accent) 60%, var(--player));--cover-to: var(--ok)}.cover__initials{font-family:var(--font-display);font-weight:600;font-size:clamp(14px,22cqi,64px);letter-spacing:.04em;opacity:.92}.section-title{margin-top:32px}.course-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--gap);margin:0;padding:0;list-style:none}.course-cards>li{display:flex;min-width:0}.course-tile{width:100%;transition:box-shadow .16s ease,transform .16s ease}a.course-tile:hover{box-shadow:var(--shadow-float);transform:translateY(-1px)}@media(prefers-reduced-motion:reduce){.course-tile,a.course-tile:hover{transition:none;transform:none}}.course-tile__media{position:relative;aspect-ratio:16 / 9;background:var(--surface-2);border-bottom:1px solid var(--line);overflow:hidden}.course-tile__state{position:absolute;left:10px;top:10px;padding:2px 10px;border-radius:999px;background:color-mix(in srgb,var(--surface) 90%,transparent);color:var(--ink-2);font-size:13px;font-weight:500;box-shadow:var(--shadow)}.course-tile h2{overflow-wrap:anywhere}.course-tile__about{margin:0;color:var(--ink-2);font-size:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-tile .card__body>p.muted{margin:auto 0 0}.course-hero{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:24px;align-items:center;max-width:980px;margin-bottom:28px}.course-hero__cover{aspect-ratio:16 / 9;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--surface-2);box-shadow:var(--shadow)}.course-hero__body{display:flex;flex-direction:column;gap:10px;min-width:0}.course-hero__body h1{margin:0;overflow-wrap:anywhere}.course-hero__about{margin:0;color:var(--ink-2);max-width:var(--measure);white-space:pre-line}.course-hero__body .bar{max-width:360px}.course-hero__figure{margin:0;font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:14px}.course-hero .button{max-width:100%}@media(max-width:760px){.course-hero{grid-template-columns:minmax(0,1fr)}.course-hero__cover{max-width:480px}}.module__picture{flex:none;width:112px;aspect-ratio:16 / 9;border-radius:var(--radius-control);overflow:hidden;border:1px solid var(--line);background:var(--surface)}.module__heading{display:flex;flex-direction:column;gap:2px;min-width:0}.module__number{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.module__title{overflow-wrap:anywhere}.module__note{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--ink-3)}.module--shut .module__picture{filter:saturate(.6)}.module__empty{margin:0;padding:12px 18px;color:var(--ink-3);font-size:14px}@media(max-width:520px){.module__picture{width:84px}}.link--back{display:inline-flex;align-items:center;gap:4px}.empty__actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.rating__status{font-size:14px;color:var(--ink-3)}.lesson__nav .button{gap:6px}.board-page__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;max-width:640px}.board-page__pick{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--ink-2)}.board-page__pick select{min-width:220px;max-width:100%;padding:8px 10px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--ink);font:inherit}.board-page__you{margin:0 0 14px;font-weight:500;color:var(--accent-ink)}table.board th.board__rank{width:72px}:root{--accent: #01493D;--ok: #157F43;--warn: #95600E;--crit: #B93A34;--light-ground: #F3F6F4;--light-ink: #102A24;--light-footer: #43564F;--dark-ground: #0A1512;--dark-ink: #E3EFEB;--dark-footer: #A9BFB8;--ground: var(--light-ground);--surface: #FFFFFF;--surface-2: #EBF1EE;--ink: var(--light-ink);--ink-2: var(--light-footer);--ink-3: #62756D;--line: #DAE4E0;--line-strong: #BFCEC8;--on-accent: #FFFFFF;--accent-soft: color-mix(in srgb, var(--accent) 12%, var(--surface));--accent-ink: color-mix(in srgb, var(--accent) 86%, var(--ink));--ok-soft: #E0F4E7;--warn-soft: #FBF0DA;--crit-soft: #FBE6E4;--player: #0A241F;--player-ink: #FFFFFF;--shadow: 0 1px 2px rgba(6, 40, 33, .06), 0 8px 24px rgba(1, 73, 61, .07);--shadow-float: 0 4px 10px rgba(6, 40, 33, .08), 0 16px 40px rgba(1, 73, 61, .14);--scrim: rgba(4, 22, 18, .5);--radius: 10px;--radius-control: 6px;--gap: 20px;--measure: 68ch;--sidebar: 240px;--font-display: "Onest", "Segoe UI", system-ui, -apple-system, sans-serif;--font: "Golos Text", "Segoe UI", system-ui, -apple-system, sans-serif;--font-num: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--accent: #4CC7A0;--on-accent: #03261E;--ok: #A3D977;--warn: #E0A84A;--crit: #EE8079;--ground: var(--dark-ground);--surface: #10201B;--surface-2: #162A24;--ink: var(--dark-ink);--ink-2: var(--dark-footer);--ink-3: #849A93;--line: #213832;--line-strong: #2E4B43;--accent-soft: color-mix(in srgb, var(--accent) 18%, var(--surface));--accent-ink: color-mix(in srgb, var(--accent) 72%, var(--ink));--ok-soft: #183420;--warn-soft: #33260F;--crit-soft: #3A1A18;--player: #050E0C;--player-ink: #E3EFEB;--shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 8px 24px rgba(0, 0, 0, .4);--shadow-float: 0 4px 12px rgba(0, 0, 0, .45), 0 18px 44px rgba(0, 0, 0, .5);--scrim: rgba(2, 8, 6, .66);color-scheme:dark}}:root[data-theme=dark]{--accent: #4CC7A0;--on-accent: #03261E;--ok: #A3D977;--warn: #E0A84A;--crit: #EE8079;--ground: var(--dark-ground);--surface: #10201B;--surface-2: #162A24;--ink: var(--dark-ink);--ink-2: var(--dark-footer);--ink-3: #849A93;--line: #213832;--line-strong: #2E4B43;--accent-soft: color-mix(in srgb, var(--accent) 18%, var(--surface));--accent-ink: color-mix(in srgb, var(--accent) 72%, var(--ink));--ok-soft: #183420;--warn-soft: #33260F;--crit-soft: #3A1A18;--player: #050E0C;--player-ink: #E3EFEB;--shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 8px 24px rgba(0, 0, 0, .4);--shadow-float: 0 4px 12px rgba(0, 0, 0, .45), 0 18px 44px rgba(0, 0, 0, .5);--scrim: rgba(2, 8, 6, .66);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.2;letter-spacing:-.02em;text-wrap:balance;margin:0 0 .4em}h1{font-size:28px}h2{font-size:22px}h3{font-size:18px}p{margin:0 0 1em;max-width:var(--measure)}a{color:var(--accent-ink)}.muted{color:var(--ink-3)}.mono{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:14px}.grow{flex:1;min-width:0}.glyph{width:1em;height:1em;display:inline-block;vertical-align:-.125em;fill:currentColor}.icon{flex:none;display:inline-block;vertical-align:middle}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:fixed;top:8px;left:8px;z-index:100;padding:8px 14px;border-radius:var(--radius-control);background:var(--accent);color:var(--on-accent);font-weight:500;text-decoration:none;transform:translateY(-160%)}.skip-link:focus-visible{transform:none}.shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100%}.shell--bare .content{padding:24px 28px 72px}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:28px;padding:24px 16px;background:var(--surface);border-right:1px solid var(--line);overflow-y:auto}.brand{padding:0 4px}.brand img{display:block;max-width:160px;max-height:40px}.brand__name{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-.02em;color:var(--ink)}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a{position:relative;display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:var(--radius-control);color:var(--ink-2);text-decoration:none;font-size:16px}.sidebar nav a .icon{color:var(--ink-3)}.sidebar nav a:hover{background:var(--surface-2);color:var(--ink)}.sidebar nav a.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:500}.sidebar nav a.active .icon{color:var(--accent)}.sidebar nav a.active:before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:3px;border-radius:0 2px 2px 0;background:var(--accent)}.sidebar__foot{margin-top:auto;display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:14px 4px 0;border-top:1px solid var(--line);font-size:14px}.sidebar__who{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.sidebar__signout{display:inline-flex;align-items:center;gap:6px;font-size:14px}.content{padding:32px 36px 72px;min-width:0}.content:focus{outline:none}@media(max-width:860px){.shell{grid-template-columns:1fr;grid-template-rows:auto 1fr}.sidebar{position:static;height:auto;flex-direction:row;align-items:center;gap:16px;border-right:none;border-bottom:1px solid var(--line);padding:10px 12px;overflow-x:auto}.sidebar nav{flex-direction:row}.sidebar nav a,.brand__name{white-space:nowrap}.sidebar nav a{padding:8px 10px;font-size:15px}.sidebar nav a.active:before{display:none}.sidebar__foot{margin-top:0;margin-left:auto;padding:0;border-top:none;flex-direction:row;align-items:center}.sidebar__who{display:none}.content,.shell--bare .content{padding:20px 16px 56px}}@media(max-width:600px){.sidebar{gap:10px}.sidebar nav a{padding:8px}.sidebar nav a span,.sidebar__signout span,.lang__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}.signed-out{position:relative;display:flex;flex-direction:column;min-height:100%}.signed-out>:not(.signed-out__lang){flex:1}.signed-out__lang{position:absolute;top:16px;right:16px;z-index:5}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border:1px solid transparent;border-radius:var(--radius-control);background:var(--accent);color:var(--on-accent);font:inherit;font-weight:500;font-size:16px;line-height:1.3;cursor:pointer;text-decoration:none}.button:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 86%,var(--ink))}.button:disabled{opacity:.45;cursor:not-allowed}.button--wide{width:100%}.button--quiet{background:var(--surface);color:var(--ink-2);border-color:var(--line-strong)}.button--quiet:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.link{background:none;border:none;padding:0;font:inherit;color:var(--accent-ink);cursor:pointer;text-decoration:none}.link:disabled{color:var(--ink-3);cursor:default}.link--back{font-size:14px;color:var(--ink-2)}.link--back:hover{color:var(--accent-ink)}.chip{padding:5px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:14px;cursor:pointer}.chip:hover{background:var(--surface-2);color:var(--ink)}.chip--on{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field span{font-size:13px;color:var(--ink-2)}.field input{padding:11px 13px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--ink);font:inherit}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent);outline:none}.field__error{color:var(--crit);font-size:14px;margin:-8px 0 14px}.phone-input{display:flex;align-items:stretch;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface);overflow:hidden}.phone-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.phone-input.is-invalid{border-color:var(--crit)}.phone-input[data-disabled]{opacity:.6}.phone-input__prefix{display:flex;align-items:center;gap:7px;padding:0 12px;background:var(--surface-2);border-right:1px solid var(--line);color:var(--ink-2);font-size:15px;flex:none}.phone-input input.phone-input__field{flex:1;width:0;min-width:0;padding:11px 13px;border:none;background:none;color:var(--ink);font:inherit;font-family:var(--font-num);letter-spacing:.02em;border-radius:0}.phone-input input.phone-input__field:focus{outline:none;border:none;box-shadow:none}.phone-input__field::placeholder{color:var(--ink-3)}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:22px 18px;border:1.5px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface-2);color:var(--ink-2);text-align:center;cursor:pointer;transition:border-color .12s,background-color .12s}.dropzone:hover{border-color:var(--accent)}.dropzone.is-over{border-color:var(--accent);border-style:solid;background:var(--accent-soft)}.dropzone.is-disabled{opacity:.5;cursor:not-allowed}.dropzone__icon{color:var(--accent);margin-bottom:2px}.dropzone__title{font-weight:500;color:var(--ink)}.dropzone__hint{font-size:14px;color:var(--ink-3)}.dropzone__error{margin-top:6px;font-size:14px;color:var(--crit)}.lang{position:relative}.lang__button{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--ink-2);font:inherit;font-size:14px;cursor:pointer}.lang__button:hover,.lang__button[aria-expanded=true]{background:var(--surface-2);color:var(--ink)}.lang__caret{opacity:.7}.lang__menu{z-index:90;min-width:180px;margin:0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-float)}.lang__menu:focus{outline:none}.lang__option{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-control);color:var(--ink);font-size:15px;cursor:pointer}.lang__option.is-active{background:var(--surface-2)}.lang__option[aria-selected=true]{color:var(--accent-ink);font-weight:500}.lang__menu:focus-visible .lang__option.is-active{outline:2px solid var(--accent);outline-offset:-2px}.flag{display:inline-block;width:21px;height:14px;border-radius:2px;overflow:hidden;flex:none;box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 14%,transparent)}.flag svg{display:block;width:100%;height:100%}.login{display:grid;place-items:center;min-height:100%;padding:24px}.login__card{width:100%;max-width:380px;padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.login__brand{font-size:22px;margin-bottom:20px}.login__lead{color:var(--ink-2);font-size:14px}.login__actions{display:flex;justify-content:space-between;margin-top:14px;font-size:14px}.bar{position:relative;height:8px;border-radius:999px;overflow:hidden;background-color:var(--surface-2);background-image:repeating-linear-gradient(90deg,var(--line-strong) 0 8px,transparent 8px 16px);background-size:100% 2px;background-repeat:no-repeat;background-position:0 3px}.bar__fill{position:absolute;top:0;bottom:0;left:0;background-color:var(--accent);background-image:repeating-linear-gradient(90deg,color-mix(in srgb,var(--on-accent) 45%,transparent) 0 8px,transparent 8px 16px);background-size:100% 2px;background-repeat:no-repeat;background-position:0 3px;animation:road-in .4s ease-out;transition:width .4s ease-out}.bar--slim{height:6px;background-position:0 2px;background-image:repeating-linear-gradient(90deg,var(--line-strong) 0 6px,transparent 6px 12px)}.bar--slim .bar__fill{background-position:0 2px;background-image:repeating-linear-gradient(90deg,color-mix(in srgb,var(--on-accent) 45%,transparent) 0 6px,transparent 6px 12px)}@keyframes road-in{0%{width:0}}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--gap)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;color:inherit;text-decoration:none;display:flex;flex-direction:column}a.card:hover{border-color:var(--line-strong)}.card__body{padding:18px 20px;display:flex;flex-direction:column;gap:12px;flex:1}.card h2{font-size:18px;margin:0}a.card .card__body>p.muted{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:13px}.card img{width:100%;aspect-ratio:16 / 9;object-fit:cover}.notice{padding:16px 20px;background:var(--accent-soft);border-radius:var(--radius)}.notice h2{font-size:16px;margin-bottom:4px;color:var(--accent-ink)}.notice--warn{background:var(--warn-soft)}.notice--warn h2{color:var(--warn)}.notice--continue{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;max-width:720px;margin-bottom:36px}.notice--continue p{margin:0}.tree{display:flex;flex-direction:column;gap:14px;max-width:780px}.module{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.module__head{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--surface-2);border-bottom:1px solid var(--line)}.module__title{font-weight:500}.module__head .muted{font-size:14px}.module__count{margin-left:auto;font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink-3)}.lesson-row{display:flex;align-items:center;gap:12px;padding:11px 18px;border-top:1px solid var(--line);color:inherit;text-decoration:none}.lesson-row:first-of-type{border-top:none}.lesson-row:hover:not(.lesson-row--shut){background:var(--surface-2)}.lesson-row--shut{color:var(--ink-3);cursor:not-allowed}.lesson-row--now{color:var(--accent-ink);font-weight:500}.lesson-row__mark{width:20px;display:inline-flex;justify-content:center;color:var(--ok);font-size:16px}.lesson-row--now .lesson-row__mark{color:var(--accent)}.lesson-row--shut .lesson-row__mark{color:var(--ink-3)}.lesson-row__title{flex:1;min-width:0}.lesson-row .bar{width:96px;flex:none}.lesson-row__pct{width:44px;text-align:right;font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink-3)}.lesson{max-width:860px}.lesson--loading{min-height:60vh}.lesson__head{margin-bottom:20px}.lesson__head h1{margin-top:6px}.lesson__section{color:var(--ink-3);font-size:14px;margin:0}.lesson__nav{display:flex;justify-content:space-between;gap:12px;margin-top:32px}.lesson__hint{margin-top:12px;font-size:14px;color:var(--ink-3)}.block{margin-bottom:26px}.block__caption,.block--image figcaption{margin-top:10px;font-size:14px;color:var(--ink-2)}.block--video{margin-bottom:30px}.block--text h2{font-size:18px;margin-top:8px}.block--text ul{padding-left:22px;margin:0 0 1em;max-width:var(--measure)}.block--text li{margin-bottom:4px}.block--image{margin-left:0;margin-right:0}.block--iframe iframe,.block--image img{width:100%;border:0;border-radius:var(--radius)}.block--materials ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.block--materials li{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control)}.block--materials a{text-decoration:none}.block--materials a:hover{text-decoration:underline}.block--audio audio{width:100%}.player{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.player video{width:100%;display:block;aspect-ratio:16 / 9;background:var(--player)}.player--error{display:grid;place-items:center;aspect-ratio:16 / 9;background:var(--player);color:var(--player-ink);font-size:16px}.player__rail{position:relative;height:4px;overflow:hidden;background-color:var(--surface-2);background-image:repeating-linear-gradient(90deg,var(--line-strong) 0 6px,transparent 6px 12px);background-size:100% 2px;background-repeat:no-repeat;background-position:0 1px}.player__rail-fill{position:absolute;top:0;bottom:0;left:0;background-color:var(--accent);background-image:repeating-linear-gradient(90deg,color-mix(in srgb,var(--on-accent) 45%,transparent) 0 6px,transparent 6px 12px);background-size:100% 2px;background-repeat:no-repeat;background-position:0 1px;animation:road-in .4s ease-out;transition:width .4s ease-out}.rating{display:flex;align-items:center;gap:10px;padding:16px 0;border-top:1px solid var(--line);font-size:16px;color:var(--ink-2)}.empty{max-width:460px;margin:12vh auto;text-align:center}.splash{display:grid;place-items:center;height:100%}.splash__pulse{width:34px;height:34px;border-radius:50%;border:3px solid var(--line-strong);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}table.board{width:100%;max-width:640px;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}table.board th,table.board td{padding:11px 16px;text-align:left;border-bottom:1px solid var(--line)}table.board tr:last-child td{border-bottom:none}table.board th{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);background:var(--surface-2);font-weight:500}table.board td:first-child{font-family:var(--font-num);font-variant-numeric:tabular-nums;color:var(--ink-3)}table.board td.num,table.board th.num{font-family:var(--font-num);font-variant-numeric:tabular-nums;text-align:right}table.board tr.self td{background:var(--accent-soft);color:var(--accent-ink);font-weight:500}.facts{display:grid;grid-template-columns:minmax(0,max-content) minmax(0,1fr);gap:6px 20px;margin:0 0 14px}.facts dd{margin:0}.homework{padding:20px 22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:26px}.homework h2{font-size:18px;margin-bottom:8px}.homework__brief{color:var(--ink-2);white-space:pre-line}.homework textarea{padding:11px 13px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--ink);font:inherit;resize:vertical;width:100%}.homework textarea:focus{outline:none;border-color:var(--accent)}.homework__files{margin-bottom:16px}.homework__files ul{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:6px}.homework__files li{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface-2);border-radius:var(--radius-control);font-size:14px}.homework__files li>span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.homework__files li.is-bad{color:var(--crit)}.homework__history{list-style:none;padding:0;margin:0 0 20px;display:flex;flex-direction:column;gap:10px}.verdict{padding:12px 16px;background:var(--surface-2);border-radius:var(--radius)}.verdict--ok{background:var(--ok-soft)}.verdict--bad{background:var(--crit-soft)}.verdict--wait{background:var(--warn-soft)}.verdict__head{display:flex;align-items:baseline;gap:10px;font-size:14px;margin-bottom:6px}.verdict__grade{font-family:var(--font-num);font-variant-numeric:tabular-nums}.verdict__body{margin:0 0 6px;white-space:pre-line;font-size:14px}.verdict__files{list-style:none;padding:0;margin:0 0 6px;font-size:14px}.verdict__files a{text-decoration:none}.verdict__files a:hover{text-decoration:underline}.verdict__comment{margin:0;font-size:14px}@media(prefers-reduced-motion:reduce){.bar__fill,.player__rail-fill{animation:none;transition:none}.splash__pulse{animation:none}}
