@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-display:block;src:url(/fonts/ibm-plex-sans-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-display:block;src:url(/fonts/ibm-plex-sans-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-display:block;src:url(/fonts/ibm-plex-sans-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/ibm-plex-mono-400-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/ibm-plex-mono-400-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/ibm-plex-mono-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f8fa;--surface:#fff;--surface-sunken:#f0f2f6;--fg:#16181d;--fg-muted:#5b6371;--line:#e6e8ee;--line-strong:#767e8d;--accent:#3559c7;--accent-quiet:#eef2fd;--accent-quiet-strong:#dfe7fb;--accent-on:#fff;--accent-hover:#2e4dab;--brand-0:#f1f3fb;--brand-1:#e3e8f7;--brand-2:#cad4f0;--brand-3:#aab9e7;--brand-4:#869bdd;--brand-5:#5d7ad2;--brand-6:#3559c7;--brand-7:#2e4dab;--brand-8:#26408f;--brand-9:#203577;--state-correct-ink:#10693c;--state-correct-wash:color-mix(in srgb, var(--state-correct-ink) 9%, transparent);--state-partial-ink:#8a5200;--state-partial-wash:color-mix(in srgb, var(--state-partial-ink) 10%, transparent);--state-incorrect-ink:#b3261e;--state-incorrect-wash:color-mix(in srgb, var(--state-incorrect-ink) 8%, transparent);--state-help-ink:#0b6180;--state-help-wash:color-mix(in srgb, var(--state-help-ink) 9%, transparent);--state-disputed-ink:#64409f;--state-disputed-wash:color-mix(in srgb, var(--state-disputed-ink) 9%, transparent);--state-failed-ink:#4c5361;--state-failed-wash:color-mix(in srgb, var(--state-failed-ink) 8%, transparent);--series-1:#3559c7;--series-2:#b3261e;--series-3:#10693c;--series-4:#64409f;--series-5:#8a5200;--series-6:#0b6f9c}:root[data-mantine-color-scheme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#101216;--surface:#191c22;--surface-sunken:#23272f;--fg:#e8eaef;--fg-muted:#a2a9b7;--line:#2b303a;--line-strong:#7b8492;--accent:#8fb2ff;--accent-quiet:#1b2231;--accent-quiet-strong:#242e42;--accent-on:#101420;--accent-hover:#a5c1ff;--brand-0:#1f2532;--brand-1:#2c3549;--brand-2:#3e4c6a;--brand-3:#52658f;--brand-4:#667fb4;--brand-5:#7b98da;--brand-6:#8fb2ff;--brand-7:#a1beff;--brand-8:#b3cbff;--brand-9:#c5d7ff;--state-correct-ink:#63cf95;--state-correct-wash:color-mix(in srgb, var(--state-correct-ink) 14%, transparent);--state-partial-ink:#e0b25e;--state-partial-wash:color-mix(in srgb, var(--state-partial-ink) 14%, transparent);--state-incorrect-ink:#f49b96;--state-incorrect-wash:color-mix(in srgb, var(--state-incorrect-ink) 13%, transparent);--state-help-ink:#5cc7d4;--state-help-wash:color-mix(in srgb, var(--state-help-ink) 13%, transparent);--state-disputed-ink:#bda6f5;--state-disputed-wash:color-mix(in srgb, var(--state-disputed-ink) 14%, transparent);--state-failed-ink:#a7aebd;--state-failed-wash:color-mix(in srgb, var(--state-failed-ink) 12%, transparent);--series-1:#8fb2ff;--series-2:#f49b96;--series-3:#63cf95;--series-4:#bda6f5;--series-5:#e0b25e;--series-6:#5cc7d4}:root{--rail-correct:var(--state-correct-ink);--rail-partial:linear-gradient(180deg, var(--state-partial-ink) 0 50%, color-mix(in srgb, var(--state-partial-ink) 30%, transparent) 50% 100%);--rail-incorrect:repeating-linear-gradient(180deg, var(--state-incorrect-ink) 0 7px, color-mix(in srgb, var(--state-incorrect-ink) 35%, transparent) 7px 12px);--rail-help:repeating-linear-gradient(135deg, var(--state-help-ink) 0 3px, transparent 3px 6px);--rail-disputed:repeating-linear-gradient(180deg, var(--state-disputed-ink) 0 3px, transparent 3px 7px);--rail-failed:repeating-linear-gradient(180deg, var(--state-failed-ink) 0 10px, transparent 10px 16px);--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-xs:.8125rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--leading-tight:1.25;--leading-normal:1.55;--leading-prose:1.7;--measure-narrow:25rem;--measure-prose:38.75rem;--measure:45rem;--measure-wide:62.5rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--radius-sm:6px;--radius:9px;--radius-lg:12px;--radius-xl:14px;--radius-pill:999px;--rail-width:4px;--border-width:1px;--control-height:2.5rem;--control-height-lg:2.75rem;--nav-width:16.5rem;--nav-width-admin:15.625rem;--shadow-sm:0 1px 2px #1018280a;--shadow-md:0 1px 3px #10182814, 0 4px 12px #1018280a}
*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;margin:0}.appShell{align-items:flex-start;min-height:100vh;display:flex}.appWork{flex:1;min-width:0}main{max-width:var(--measure);padding:var(--space-6) var(--space-5) var(--space-7);margin:0 auto}.adminSection main{max-width:var(--measure-wide)}.appWork.unframed main{max-width:var(--measure-narrow);padding-top:var(--space-7)}.appNav{width:var(--nav-width);align-self:stretch;gap:var(--space-5);height:100vh;padding:var(--space-5) var(--space-3);background:var(--surface);border-right:var(--border-width) solid var(--line);flex-direction:column;flex:none;display:flex;position:sticky;top:0;overflow-y:auto}.appNav.admin{width:var(--nav-width-admin)}.appNav .appName{padding:0 var(--space-3);color:var(--fg);font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:var(--leading-tight);text-decoration:none;display:block}.appNav .openCourse{padding:var(--space-1) var(--space-3) 0;color:var(--fg-muted);font-size:var(--text-sm);text-decoration:none;display:block}.appNav .openCourse:hover{color:var(--accent)}.appNav nav{gap:var(--space-1);flex-direction:column;display:flex}.appNav nav a{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);color:var(--fg);font-size:var(--text-sm);text-decoration:none;display:flex}.appNav nav a:hover{background:var(--surface-sunken)}.appNav nav a.here{background:var(--accent-quiet);color:var(--accent);font-weight:var(--weight-medium)}.appNav nav a.here:hover{background:var(--accent-quiet-strong)}.appNav nav a svg{flex:none}.appNav nav .count{padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--wash,var(--surface-sunken));color:var(--ink,var(--fg-muted));font-size:var(--text-xs);font-weight:var(--weight-semibold);margin-left:auto}.appNav .groupLabel{padding:0 var(--space-3);color:var(--fg-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase}.appNav .lessonRail{gap:var(--space-1);flex-direction:column;display:flex}.appNav .lessonRail a,.appNav .lessonRail span.locked{align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-3);border-radius:var(--radius);color:var(--fg-muted);font-size:var(--text-sm);text-decoration:none;display:flex}.appNav .lessonRail a:hover{background:var(--surface-sunken);color:var(--fg)}.appNav .lessonRail span.locked{color:var(--line-strong)}.appNav .lessonRail .open{background:var(--accent-quiet);border-radius:var(--radius-lg);padding:var(--space-2) 0}.appNav .lessonRail .open>a{color:var(--accent);font-weight:var(--weight-semibold)}.appNav .lessonRail .open a:hover{background:var(--accent-quiet-strong);color:var(--accent)}.appNav .lessonRail .open nav{padding:var(--space-1) 0 0 var(--space-5)}.appNav .lessonRail .open nav a{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);font-size:var(--text-sm);display:flex}.appNav .lessonRail .open nav a:before{content:"";width:var(--space-2);height:var(--space-2);border-radius:var(--radius-pill);background:0 0;flex:none}.appNav .lessonRail .open nav a.here:before{background:var(--accent)}.appNav .lessonRail .open nav a.here{color:var(--accent);font-weight:var(--weight-semibold)}.appNav .mark{width:var(--space-5);height:var(--space-5);border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--fg-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);flex:none;justify-content:center;align-items:center;display:flex}.appNav .mark[class*=state-]{background:var(--wash,var(--surface-sunken));color:var(--ink,var(--fg-muted))}.appNav .mark.here{border:2px solid var(--accent);color:var(--accent);background:0 0}.appNav .accountBlock{gap:var(--space-3);padding-top:var(--space-4);border-top:var(--border-width) solid var(--line);flex-direction:column;margin-top:auto;display:flex}.appNav .schemeToggle{gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-lg);background:var(--surface-sunken);display:flex}.appNav .schemeToggle button:not([class*=mantine-]){min-width:var(--space-6);min-height:var(--space-6);border-radius:var(--radius);border:var(--border-width) solid transparent;color:var(--fg-muted);box-shadow:none;background:0 0;flex:1;justify-content:center;align-items:center;padding:0;display:inline-flex}.appNav .schemeToggle button:not([class*=mantine-]):hover{color:var(--fg);background:0 0}.appNav .schemeToggle button:not([class*=mantine-])[aria-pressed=true]{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.appNav .account{align-items:center;gap:var(--space-3);display:flex}.appNav .account .who{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-sm);flex:1;overflow:hidden}.appNav .account .avatar{width:var(--space-6);height:var(--space-6);border-radius:var(--radius-pill);background:var(--accent-quiet);color:var(--accent);font-size:var(--text-xs);font-weight:var(--weight-semibold);flex:none;justify-content:center;align-items:center;display:flex}.appNav .account form{margin:0}.appNav .account button{min-height:var(--space-6);width:var(--space-6);justify-content:center;align-items:center;padding:0;display:inline-flex}@media (max-width:60rem){.appShell{flex-direction:column}.appNav,.appNav.admin{align-items:center;gap:var(--space-3);border-right:0;border-bottom:var(--border-width) solid var(--line);flex-flow:wrap;width:100%;height:auto;position:static}.appNav nav{flex-flow:wrap}.appNav .lessonRail,.appNav .groupLabel{display:none}.appNav .accountBlock{border-top:0;flex-direction:row;align-items:center;margin-top:0;padding-top:0}.appNav .schemeToggle{flex:none}.appWork{width:100%}}h1{margin:0 0 var(--space-2);font-size:var(--text-2xl);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:-.02em}h2{margin:var(--space-6) 0 var(--space-3);font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:-.015em}h3{margin:var(--space-5) 0 var(--space-2);font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:var(--leading-tight)}a{color:var(--accent)}label:not([class*=mantine-]){margin-bottom:var(--space-4);display:block}label:not([class*=mantine-])>span:not([class*=mantine-]){margin-bottom:var(--space-1);color:var(--fg-muted);font-size:var(--text-sm);display:block}input[type=text]:not([class*=mantine-]),input[type=password]:not([class*=mantine-]),input[type=number]:not([class*=mantine-]),select:not([class*=mantine-]),textarea:not([class*=mantine-]){width:100%;padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--text-base);line-height:var(--leading-normal);color:var(--fg);background:var(--surface);border:var(--border-width) solid var(--line-strong);border-radius:var(--radius)}input[type=text]:not([class*=mantine-]),input[type=password]:not([class*=mantine-]),input[type=number]:not([class*=mantine-]),select:not([class*=mantine-]){min-height:var(--control-height)}input[type=number]:not([class*=mantine-]){width:8rem}textarea:not([class*=mantine-]){resize:vertical}:where(input,select,textarea,button,a,summary):focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=checkbox]:not([class*=mantine-]),input[type=radio]:not([class*=mantine-]){width:1.05em;height:1.05em;accent-color:var(--accent)}button:not([class*=mantine-]){font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-medium);min-height:var(--control-height-lg);padding:var(--space-2) var(--space-5);border-radius:var(--radius);cursor:pointer;color:var(--accent-on);background:var(--accent);border:var(--border-width) solid transparent;box-shadow:var(--shadow-sm)}button:not([class*=mantine-]):hover{background:var(--accent-hover)}button:not([class*=mantine-]):disabled{opacity:.6;cursor:default}button.secondary:not([class*=mantine-]){color:var(--fg);background:var(--surface);border-color:var(--line-strong);box-shadow:none}button.secondary:not([class*=mantine-]):hover{background:var(--surface-sunken)}a.button{align-items:center;gap:var(--space-2);min-height:var(--control-height-lg);padding:var(--space-2) var(--space-5);border-radius:var(--radius);font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--accent-on);background:var(--accent);box-shadow:var(--shadow-sm);text-decoration:none;display:inline-flex}a.button:hover{background:var(--accent-hover);color:var(--accent-on);text-decoration:none}a.button.small,button.small:not([class*=mantine-]){min-height:var(--control-height);padding:var(--space-1) var(--space-3);font-size:var(--text-sm)}a.button.secondary{color:var(--fg);background:var(--surface);border:var(--border-width) solid var(--line-strong);box-shadow:none}a.button.secondary:hover{background:var(--surface-sunken);color:var(--fg);text-decoration:none}.actions{gap:var(--space-3);min-height:var(--control-height-lg);flex-wrap:wrap;align-items:center;display:flex}label.inline:not([class*=mantine-]){gap:var(--space-2);margin-right:var(--space-4);align-items:center;display:inline-flex}label.inline:not([class*=mantine-])>span{color:var(--fg);font-size:var(--text-base);margin:0;display:inline}.error{color:var(--state-incorrect-ink);margin:0 0 var(--space-4)}.ok{color:var(--state-correct-ink)}.muted{color:var(--fg-muted)}.lead{color:var(--fg-muted);font-size:var(--text-lg);margin:0 0 var(--space-5)}main.signIn{max-width:var(--measure-narrow);margin:var(--space-7) auto;padding:var(--space-6);background:var(--surface);border:var(--border-width) solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}main.signIn h1{margin:0 0 var(--space-2)}main.signIn .lead{margin-bottom:var(--space-5);font-size:var(--text-base)}main.signIn form{margin:0}main.signIn form label:last-of-type{margin-bottom:var(--space-5)}main.signIn button{width:100%}main.signIn>p:last-child{margin-bottom:0}ul.cards,ol.cards,ol.lessons,ul.attempts,ol.progressLessons{margin:0 0 var(--space-4);gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}ul.cards>li,ol.cards>li,ol.lessons>li,ul.attempts>li,ol.progressLessons>li{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--surface);border:var(--border-width) solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex}ol.lessons>li{padding:0;overflow:hidden}ol.lessons>li.locked{box-shadow:none;color:var(--fg-muted);background:0 0;border-style:dashed}ul.cards>li a,ol.lessons>li a,ul.attempts>li a,ol.cards>li a{font-weight:var(--weight-medium);text-decoration:none}ul.cards>li a:hover,ul.attempts>li a:hover,ol.cards>li a:hover{text-decoration:underline}ul.variants{gap:var(--space-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}ul.variants>li{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--surface-sunken);font-size:var(--text-sm)}ol.exercises{gap:var(--space-4);flex-direction:column;padding:0;list-style:none;display:flex}.theory{max-width:var(--measure-prose);font-size:var(--text-lg);line-height:var(--leading-prose)}.theory>*{margin:0}.theory>*+*{margin-top:var(--space-4)}.theory h1,.theory h2,.theory h3,.theory h4,.theory h5,.theory h6{font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:-.01em}.theory h1{font-size:var(--text-xl)}.theory h2{font-size:var(--text-lg)}.theory h3{font-size:var(--text-base)}.theory h4,.theory h5,.theory h6{font-size:var(--text-base);color:var(--fg-muted)}.theory>h1,.theory>h2,.theory>h3{margin-top:var(--space-6)}.theory>h4,.theory>h5,.theory>h6{margin-top:var(--space-5)}.theory>h1:not(:first-child),.theory>h2:not(:first-child){margin-top:var(--space-7)}.theory ul,.theory ol{padding-left:var(--space-5)}.theory li+li{margin-top:var(--space-2)}.theory img{border-radius:var(--radius-lg);max-width:100%;height:auto}.theory a{text-underline-offset:.15em}.theory blockquote{border-left:var(--rail-width) solid var(--accent);border-radius:0 var(--radius-lg) var(--radius-lg) 0;background:var(--accent-quiet);padding:var(--space-4) var(--space-5)}.theory table{border-collapse:separate;border-spacing:0;margin:var(--space-4) 0;border:var(--border-width) solid var(--line);border-radius:var(--radius-lg)}.theory th,.theory td{border-right:var(--border-width) solid var(--line);border-bottom:var(--border-width) solid var(--line);padding:var(--space-2) var(--space-3);text-align:left}.theory tr>:last-child{border-right:none}.theory tr:last-child>*{border-bottom:none}.theory table>:first-child>tr:first-child>:first-child{border-top-left-radius:calc(var(--radius-lg) - var(--border-width))}.theory table>:first-child>tr:first-child>:last-child{border-top-right-radius:calc(var(--radius-lg) - var(--border-width))}.theory table>:last-child>tr:last-child>:first-child{border-bottom-left-radius:calc(var(--radius-lg) - var(--border-width))}.theory table>:last-child>tr:last-child>:last-child{border-bottom-right-radius:calc(var(--radius-lg) - var(--border-width))}.theory thead th{background:var(--surface-sunken)}.theory code{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--surface-sunken);border-radius:var(--radius-sm);padding:.1em .35em}.theory pre{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--surface-sunken);border-radius:var(--radius-lg);padding:var(--space-4);overflow-x:auto}.theory pre code{background:0 0;padding:0}.state-correct{--ink:var(--state-correct-ink);--wash:var(--state-correct-wash);--rail:var(--rail-correct)}.state-partial{--ink:var(--state-partial-ink);--wash:var(--state-partial-wash);--rail:var(--rail-partial)}.state-incorrect{--ink:var(--state-incorrect-ink);--wash:var(--state-incorrect-wash);--rail:var(--rail-incorrect)}.state-help{--ink:var(--state-help-ink);--wash:var(--state-help-wash);--rail:var(--rail-help)}.state-disputed{--ink:var(--state-disputed-ink);--wash:var(--state-disputed-wash);--rail:var(--rail-disputed)}.state-failed{--ink:var(--state-failed-ink);--wash:var(--state-failed-wash);--rail:var(--rail-failed)}.verdict{padding-left:var(--space-4);position:relative}.verdict:before{content:"";width:var(--rail-width);border-radius:var(--radius-pill);background:var(--rail,var(--line-strong));position:absolute;top:0;bottom:0;left:0}.verdict{margin:var(--space-4) 0 var(--space-2);color:var(--ink,var(--fg));font-weight:var(--weight-semibold)}.verdict .detail{color:var(--fg);font-weight:var(--weight-normal);display:block}ol.progress{gap:var(--space-1);margin:0 0 var(--space-3);padding:0;list-style:none;display:flex}ol.progress .segment{height:var(--space-2);border-radius:var(--radius-pill);background:var(--line);flex:1}ol.progress .segment[class*=state-]{background:var(--ink,var(--line-strong))}ol.progress .segment.current{background:var(--fg)}.meter{width:100%;height:var(--space-2);border-radius:var(--radius-pill);background:var(--surface-sunken);display:flex;overflow:hidden}.meter .fill{background:var(--ink,var(--line-strong))}.askCard{background:var(--surface);border:var(--border-width) solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.askCard>.askBody{padding:var(--space-6)}.askCard>.askBody>*+*{margin-top:var(--space-4)}.askKind{color:var(--fg-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.05em;text-transform:uppercase}.prompt{font-size:var(--text-lg);line-height:var(--leading-prose);margin:var(--space-5) 0;text-wrap:pretty}.cards .body>.prompt{font-size:var(--text-base);margin:0}.given{padding:var(--space-2) var(--space-3);border:var(--border-width) dashed var(--line-strong);border-radius:var(--radius)}.given.inline{padding:var(--space-1) var(--space-2);display:inline-block}.given.inline[class*=state-]{border-style:solid;border-color:var(--ink,var(--line));background:var(--wash,transparent);color:var(--ink,var(--fg))}ul.choices{gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}ul.choices label{gap:var(--space-3);min-height:var(--control-height-lg);padding:var(--space-2) var(--space-4);border:var(--border-width) solid var(--line-strong);border-radius:var(--radius);cursor:pointer;align-items:center;margin:0;display:flex}ul.choices label:hover{background:var(--surface-sunken)}ul.choices label:has(input:checked){border-color:var(--accent);background:var(--accent-quiet)}ul.choices label span{color:var(--fg);font-size:var(--text-base);margin:0}.wordOrder .built{min-height:calc(var(--leading-normal) * 2em);padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--line-strong);border-radius:var(--radius);background:var(--surface-sunken);font-size:var(--text-lg)}.wordOrder .fragments{gap:var(--space-2);flex-wrap:wrap;display:flex}.wordOrder .fragments button{min-height:var(--control-height);padding:0 var(--space-4)}.wordOrder .fragments .used{visibility:hidden}input[type=text].gap{width:8rem;padding:var(--space-1) var(--space-2);font-family:inherit;font-size:var(--text-lg);font-weight:var(--weight-medium);color:var(--fg);background:var(--surface-sunken);border:0;border-bottom:2px solid var(--line-strong);border-radius:var(--radius-sm) var(--radius-sm) 0 0}input[type=text].gap:focus{border-bottom-color:var(--accent)}.result{border-top:var(--border-width) solid var(--line);background:var(--wash,var(--surface-sunken));border-left:var(--rail-width) solid var(--ink,var(--line-strong));padding:var(--space-5) var(--space-5) var(--space-5) var(--space-4);margin-top:0}.result>*+*{margin-top:var(--space-3)}.result .verdict{margin-top:0}.feedback{white-space:pre-wrap}.corrected{border-left:var(--rail-width) solid var(--state-correct-ink);padding-left:var(--space-3)}.errors{--ink:var(--state-incorrect-ink);--rail:var(--rail-incorrect)}.errors ul{gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.errors li{background:var(--surface);border:var(--border-width) solid var(--line);border-left:var(--rail-width) solid var(--ink,var(--line-strong));border-radius:0 var(--radius) var(--radius) 0;padding:var(--space-3) var(--space-4)}.errors .errorType{font-weight:var(--weight-semibold);color:var(--ink,var(--fg))}.errors .span{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--state-incorrect-wash);border-radius:var(--radius-sm);padding:.1em .35em}.editorLayout{align-items:flex-start;gap:var(--space-5);display:flex}.editorLayout>.draft{flex:1;min-width:0}.editorLayout>.aside{width:23rem;top:var(--space-5);gap:var(--space-4);flex-direction:column;flex:none;display:flex;position:sticky}@media (max-width:75rem){.editorLayout{flex-direction:column}.editorLayout>.aside{width:100%;position:static}}.panel{background:var(--surface);border:var(--border-width) solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.panel>h2:first-child,.panel>h3:first-child{margin-top:0}.workBar{z-index:1;align-items:center;gap:var(--space-3);margin:calc(var(--space-6) * -1) calc(var(--space-5) * -1) var(--space-5);padding:var(--space-4) var(--space-5);background:var(--surface);border-bottom:var(--border-width) solid var(--line);flex-wrap:wrap;display:flex;position:sticky;top:0}.workBar .spacer{flex:1}.tag{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--fg-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;align-items:center;display:inline-flex}.tag[class*=state-]{background:var(--wash,var(--surface-sunken));color:var(--ink,var(--fg-muted))}.madeBy{padding:0 var(--space-2);border:var(--border-width) solid var(--line-strong);border-radius:var(--radius-pill);color:var(--fg-muted);font-size:var(--text-xs);display:inline-flex}.exerciseForm{background:var(--surface);border:var(--border-width) solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.exerciseForm .head{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.exerciseForm .head .spacer{flex:1}ul.choiceRows{gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}ul.choiceRows>li{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}ul.choiceRows>li>input[type=text]{flex:1;min-width:12rem}.reviewHead{align-items:center;gap:var(--space-3);margin:0;display:flex}.reviewHead .spacer{flex:1}.review .score{font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:-.02em;margin:0}.review ol.exercises>li{background:var(--surface);border:var(--border-width) solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4) var(--space-5)}.review ol.exercises>li[class*=state-]{border-left:var(--rail-width) solid var(--ink,var(--line-strong));border-radius:0 var(--radius-lg) var(--radius-lg) 0}.review ol.exercises>li.state-correct{box-shadow:none}.review ul.choices li{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border:var(--border-width) solid var(--line);border-radius:var(--radius);display:flex}.review ul.choices li[class*=state-]{border-color:var(--ink,var(--line));background:var(--wash,transparent);color:var(--ink,var(--fg))}.review ul.choices li.state-incorrect{text-decoration:line-through}.review .given strong[class*=state-]{border-radius:var(--radius-sm);background:var(--wash,transparent);color:var(--ink,var(--fg));padding:.1em .35em}.review .given strong.state-incorrect{text-decoration:line-through}.stateName{color:var(--ink,var(--fg));font-weight:var(--weight-medium)}.disputeForm{margin:var(--space-3) 0;padding:var(--space-4);background:var(--surface);border:var(--border-width) solid var(--line);border-radius:var(--radius-lg)}.disputeForm textarea{max-width:var(--measure)}.sideBySide{align-items:flex-start;gap:var(--space-5);display:flex}.sideBySide>.main{gap:var(--space-4);flex-direction:column;flex:1;min-width:0;display:flex}.sideBySide>.side{width:20rem;top:var(--space-5);flex:none;position:sticky}@media (max-width:70rem){.sideBySide{flex-direction:column}.sideBySide>.side{width:100%;position:static}}.decision{background:var(--surface);border:var(--border-width) solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-5)}.decision fieldset.gapChoice{margin:0 0 var(--space-4);border:0;padding:0}.decision fieldset.gapChoice legend{margin-bottom:var(--space-2);color:var(--fg-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:0}.decision fieldset.gapChoice label{gap:var(--space-3);margin-bottom:var(--space-2);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--line-strong);border-radius:var(--radius);cursor:pointer;align-items:center;display:flex}.decision fieldset.gapChoice label:has(input:checked){border-color:var(--accent);background:var(--accent-quiet)}.decision fieldset.gapChoice p{margin:var(--space-2) 0 0}.decision>.muted{margin:var(--space-2) 0 var(--space-4);font-size:var(--text-sm)}.decision>.muted:last-child{margin-bottom:0}.viewingStudent{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);background:var(--accent-quiet);color:var(--accent);font-weight:var(--weight-medium);display:inline-flex}ol.progressLessons>li{display:block}ol.progressLessons>li>p:first-child{margin-top:0}ol.progressLessons>li>p:last-child{margin-bottom:0}ol.progressLessons .lessonName{align-items:center;gap:var(--space-3);display:flex}ol.progressLessons .lessonName strong{min-width:0}details.section>summary{align-items:baseline;gap:var(--space-3);cursor:pointer;padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--line);margin-bottom:var(--space-4);list-style:none;display:flex}details.section>summary::-webkit-details-marker{display:none}details.section>summary h2{margin:0}details.section>summary:before{content:"";border-right:2px solid var(--fg-muted);border-bottom:2px solid var(--fg-muted);flex:none;align-self:center;width:.5rem;height:.5rem;transform:rotate(-45deg)}details.section[open]>summary:before{transform:rotate(45deg)}details.section>summary:hover:before{border-color:var(--accent)}details.section>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}details.section>summary .muted{font-size:var(--text-sm);margin-left:auto}details.section+details.section,details.section{margin-top:var(--space-6)}table.histogram{border-collapse:collapse;width:100%}table.histogram th,table.histogram td{padding:var(--space-2) var(--space-3);text-align:left;border-bottom:var(--border-width) solid var(--line);font-weight:var(--weight-normal)}table.histogram thead th{color:var(--fg-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold)}table.histogram tbody th{width:40%}table.histogram .barCell{width:auto}table.histogram .track{width:100%;height:var(--space-3);border-radius:var(--radius-pill);background:var(--surface-sunken);display:block;overflow:hidden}table.histogram .bar{border-radius:var(--radius-pill);background:var(--accent);min-width:2px;height:100%;display:block}table.histogram td.value{white-space:nowrap;width:1%;padding-left:var(--space-4);color:var(--fg-muted);font-size:var(--text-sm)}.chartFrame{margin:0 0 var(--space-4);padding:var(--space-5);background:var(--surface);border:var(--border-width) solid var(--line);border-radius:var(--radius-lg);overflow-x:auto}.chart .grid line{stroke:var(--line)}.chart .grid text{fill:var(--fg-muted);stroke:none;font-size:var(--text-xs)}.chart .axis{fill:var(--fg-muted);font-size:var(--text-xs)}.chart .seriesLabel{font-size:var(--text-xs)}.chart .series{stroke-linecap:round;stroke-linejoin:round}.chart .s1{stroke:var(--series-1);fill:var(--series-1)}.chart .s2{stroke:var(--series-2);fill:var(--series-2)}.chart .s3{stroke:var(--series-3);fill:var(--series-3)}.chart .s4{stroke:var(--series-4);fill:var(--series-4)}.chart .s5{stroke:var(--series-5);fill:var(--series-5)}.chart .s6{stroke:var(--series-6);fill:var(--series-6)}.chart .line{fill:none;stroke-width:2px}.chart .s2 .line{stroke-dasharray:6 4}.chart .s3 .line{stroke-dasharray:2 3}.chart .s4 .line{stroke-dasharray:9 3 2 3}.chart .s5 .line{stroke-dasharray:1 4}.chart .s6 .line{stroke-dasharray:12 4}.chart .seriesLabel{stroke:var(--surface);stroke-width:3px;paint-order:stroke fill;stroke-linejoin:round}.chart .leader{stroke-width:1px}.spanPickers{gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:flex-end;display:flex}.spanPickers>*{min-width:15rem}table.spanTable{margin-top:var(--space-4)}.pickerField{gap:var(--space-1);flex-direction:column;flex:1;display:flex}.pickerLabel{color:var(--fg);font-size:var(--text-sm);font-weight:var(--weight-medium)}button.pickerTrigger:not([class*=mantine-]){align-items:center;gap:var(--space-3);width:100%;min-height:var(--control-height);padding:var(--space-1) var(--space-3);border:var(--border-width) solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--fg);font-family:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;display:flex}button.pickerTrigger:not([class*=mantine-]):hover{background:var(--surface-sunken)}.pickerTrigger svg{color:var(--fg-muted);flex:none;margin-left:auto}.pickerValue{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.pickerPanel{gap:var(--space-4);flex-direction:column;display:flex}ul.pickerList{gap:var(--space-1);flex-direction:column;max-height:20rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}button.pickerRow:not([class*=mantine-]){align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border:var(--border-width) solid transparent;border-radius:var(--radius);color:var(--fg);font-family:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;display:flex}button.pickerRow:not([class*=mantine-]):hover{background:var(--surface-sunken)}button.pickerRow.here:not([class*=mantine-]){border-color:var(--accent);background:var(--accent-quiet)}.pickerRow>.body{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.pickerRow .title{font-weight:var(--weight-medium)}.pickerRow .muted{font-size:var(--text-xs)}.dateFilter{gap:var(--space-3);flex-direction:column;display:flex}button.dateToggle:not([class*=mantine-]){align-items:center;gap:var(--space-2);min-height:auto;padding:var(--space-1) 0;color:var(--fg);font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;background:0 0;border:none;align-self:flex-start;display:flex}.dateToggle svg{color:var(--fg-muted)}.dateToggle:not(.open) svg{transform:rotate(-90deg)}.dateToggle .chosenRange{color:var(--accent);font-weight:var(--weight-normal)}.calendar{padding:var(--space-3);border:var(--border-width) solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.calHeader{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium);display:flex}.calHeader button:not([class*=mantine-]){width:var(--space-6);height:var(--space-6);border-radius:var(--radius);min-height:auto;box-shadow:none;color:var(--fg-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.calHeader button:not([class*=mantine-]):hover{background:var(--surface-sunken);color:var(--fg)}.calGrid{grid-template-columns:repeat(7,1fr);display:grid}.calHead{padding:var(--space-1) 0;text-align:center;color:var(--fg-muted);font-size:var(--text-xs)}.calCell{padding:1px 0}.calCell.in{background:var(--accent-quiet)}.calCell.start{border-top-left-radius:var(--radius-pill);border-bottom-left-radius:var(--radius-pill)}.calCell.end{border-top-right-radius:var(--radius-pill);border-bottom-right-radius:var(--radius-pill)}button.calDay:not([class*=mantine-]){width:100%;min-height:var(--space-6);border-radius:var(--radius-pill);box-shadow:none;color:var(--fg);font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-normal);cursor:pointer;background:0 0;border:none;padding:0;display:block;position:relative}button.calDay:not([class*=mantine-]):hover{background:var(--surface-sunken)}.calCell.start button.calDay:not([class*=mantine-]),.calCell.end button.calDay:not([class*=mantine-]){background:var(--accent);color:var(--accent-on);font-weight:var(--weight-semibold)}.calCell.start button.calDay:not([class*=mantine-]):hover,.calCell.end button.calDay:not([class*=mantine-]):hover{background:var(--accent-hover)}.calDay.studied:after{content:"";border-radius:var(--radius-pill);background:var(--accent);width:3px;height:3px;margin-left:-1.5px;position:absolute;bottom:.22rem;left:50%}.calCell.start .calDay.studied:after,.calCell.end .calDay.studied:after{background:var(--accent-on)}.calFoot{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-3);font-size:var(--text-sm);display:flex}.calFoot button:not([class*=mantine-]){min-height:var(--control-height);font-size:var(--text-sm)}.notice{margin:0 0 var(--space-5);padding:var(--space-4) var(--space-5);background:var(--surface);border:var(--border-width) solid var(--line);border-left:var(--rail-width) solid var(--accent);border-radius:0 var(--radius-lg) var(--radius-lg) 0}.notice p{margin:0}.notice p+p{margin-top:var(--space-1)}.healthBanner{margin:0 0 var(--space-5);padding:var(--space-4) var(--space-5);background:var(--surface);border:var(--border-width) solid var(--line);border-left:var(--rail-width) solid var(--line-strong);border-radius:0 var(--radius-lg) var(--radius-lg) 0;box-shadow:var(--shadow-sm)}.healthBanner p{margin:0 0 var(--space-1)}.healthBanner p:last-child{margin-bottom:0}.healthBanner.healthy{border-left-color:var(--state-correct-ink)}.healthBanner.unhealthy{border-left-color:var(--state-incorrect-ink)}.healthBanner.stale{border-left-color:var(--state-incorrect-ink);border-left-style:dashed}.healthBanner.never{border-left-style:dotted}.healthBanner .bannerHealthy{color:var(--state-correct-ink);font-weight:var(--weight-semibold)}.healthBanner .bannerUnhealthy,.healthBanner .bannerStale{color:var(--state-incorrect-ink);font-weight:var(--weight-semibold)}.healthBanner .bannerNever{color:var(--fg-muted)}.issuedPassword{margin:var(--space-4) 0;padding:var(--space-5);background:var(--surface);border:var(--border-width) solid var(--line-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.issuedPassword h3{margin-top:0}.issuedPassword p{margin-bottom:var(--space-3)}.temporaryPassword{font-family:var(--font-mono);font-size:var(--text-lg);background:var(--surface-sunken);border:var(--border-width) solid var(--line);border-radius:var(--radius);padding:var(--space-3) var(--space-4);word-break:break-all;-webkit-user-select:all;user-select:all}pre.streaming{font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-normal);white-space:pre-wrap;background:var(--surface-sunken);border-radius:var(--radius);max-height:20rem;padding:var(--space-4);overflow-y:auto}.pageHead{justify-content:space-between;align-items:flex-end;gap:var(--space-5);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.pageHead>div{min-width:0}.pageHead h1{margin:0 0 var(--space-1)}.pageHead p{margin:0}.figure{align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-5);background:var(--surface);border:var(--border-width) solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex}.figure .big{font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:-.02em;line-height:var(--leading-tight);display:block}.figure .under{color:var(--fg-muted);font-size:var(--text-sm);display:block}.cardGrid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));margin:0;padding:0;list-style:none;display:grid}.cardGrid>li{gap:var(--space-4);padding:var(--space-5);background:var(--surface);border:var(--border-width) solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.cardGrid .title{font-size:var(--text-lg);font-weight:var(--weight-semibold);text-decoration:none}.cardGrid .title:hover{text-decoration:underline}.cardGrid .facts{gap:var(--space-2);flex-wrap:wrap;display:flex}.cardGrid .foot{gap:var(--space-2);flex-direction:column;margin-top:auto;display:flex}ol.lessons .row{align-items:center;gap:var(--space-4);min-width:0;padding:var(--space-4) var(--space-5);color:inherit;flex:1;text-decoration:none;display:flex}ol.lessons .row .title{font-size:var(--text-base);font-weight:var(--weight-medium)}ol.lessons>li:has(a.row):hover{border-color:var(--accent);box-shadow:var(--shadow-md)}ol.lessons .row:hover .title{color:var(--accent)}ol.lessons .row:focus-visible{outline:none}ol.lessons>li:has(.row:focus-visible){outline:2px solid var(--accent);outline-offset:2px}li>.body,.row>.body{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}li>.body>a,li>.body>span:first-child{font-size:var(--text-base);font-weight:var(--weight-medium)}ol.lessons .row>.meter{flex:none;width:8rem}ol.lessons>li.here{border-color:var(--accent);box-shadow:var(--shadow-md)}.mark{width:var(--space-6);height:var(--space-6);border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--fg-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold);flex:none;justify-content:center;align-items:center;display:flex}.mark[class*=state-]{background:var(--wash,var(--surface-sunken));color:var(--ink,var(--fg-muted))}.mark.here{border:2px solid var(--accent);color:var(--accent);background:0 0}.facts{color:var(--fg-muted);font-size:var(--text-sm);margin:0}.facts>*+:before{content:"·";margin:0 var(--space-2)}.fixedFacts{padding:var(--space-3) var(--space-4);background:var(--surface-sunken);border-radius:var(--radius)}.fixedFacts p{margin:0}.fixedFacts p+p{margin-top:var(--space-1)}
