#login{min-block-size:100dvh;padding:var(--gutter);grid-template-columns:min(100%,26rem);place-content:center;display:grid}#login h1{font-size:var(--text-2xl)}#login .panel{gap:var(--space-4)}#my-courses{container-type:inline-size}#my-courses .cards{gap:var(--grid-gap);grid-template-columns:100%;margin:0;padding:0;list-style:none;display:grid}@container (width>=36rem){#my-courses .cards{grid-template-columns:1fr 1fr}}#my-courses .card{gap:var(--space-3);block-size:100%;padding:var(--panel-padding);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-decoration:none;transition:border-color .2s;display:grid}@media (hover:hover){#my-courses .card:hover{border-color:var(--color-accent)}}#my-courses .card-head{justify-content:space-between;align-items:start;gap:var(--space-3);display:flex}#profile .totp{gap:0}#profile .start{gap:var(--space-4);display:grid}#profile .key{font-size:var(--text-base);letter-spacing:.06em;text-align:center;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}#shell{grid-template:"bar""view"1fr"tabs"/100%;min-block-size:100dvh;display:grid}#shell>.bar{z-index:1;min-block-size:var(--shell-bar-size);padding-block-start:env(safe-area-inset-top);padding-inline:var(--gutter);background:var(--color-surface);border-block-end:1px solid var(--color-border);grid-area:bar;align-items:center;display:flex;position:sticky;inset-block-start:0}#shell>.bar>.brand{font-size:var(--text-lg);letter-spacing:-.01em;font-weight:700;text-decoration:none}#shell>.tabs{z-index:1;padding-block-end:env(safe-area-inset-bottom);padding-inline:env(safe-area-inset-left) env(safe-area-inset-right);background:var(--color-surface);border-block-start:1px solid var(--color-border);grid-area:tabs;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:sticky;inset-block-end:0}#shell>.tabs>a{min-block-size:3.25rem;padding-inline:var(--space-1);font-size:var(--text-sm);text-align:center;color:var(--color-text-muted);place-items:center;text-decoration:none;transition:color .2s;display:grid}#shell>.tabs>a[aria-current=page]{color:var(--color-accent);font-weight:600}@media (hover:hover){#shell>.tabs>a:hover{color:var(--color-text)}}#shell>.view{--view-width:var(--content-width);grid-area:view;grid-template-columns:min(100%, var(--view-width));place-content:start center;gap:var(--space-6);min-inline-size:0;padding:var(--space-6) var(--gutter);display:grid}#shell>.view[data-wide]{--view-width:var(--content-width-wide)}#shell>.view>section{align-content:start;gap:var(--space-6);grid-template-columns:100%;display:grid}#shell>.view>.nag{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);text-align:center;color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 10%, var(--color-surface));border:1px solid color-mix(in srgb, var(--color-warning) 35%, var(--color-border));border-radius:var(--radius-sm);text-decoration:none}@media (width>=62rem){#shell{grid-template:"bar tabs""view view"1fr/auto 1fr}#shell>.bar{border-inline-end:0;padding-inline-end:var(--space-6)}#shell>.tabs{border-block-start:0;border-block-end:1px solid var(--color-border);grid-auto-columns:auto;justify-content:end;padding-block-start:env(safe-area-inset-top);padding-block-end:0;padding-inline-end:var(--gutter);inset-block:0 auto}#shell>.tabs>a{padding-inline:var(--space-4)}}#splash{min-block-size:100dvh;padding:var(--gutter);font-size:var(--text-xl);color:var(--color-text-muted);place-items:center;font-weight:700;display:grid}#splash.offline{grid-template-columns:min(100%,26rem);justify-content:center}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0b0d10;--color-surface:#12151a;--color-surface-raised:#191d24;--color-border:#262b34;--color-text:#e8eaed;--color-text-muted:#9aa1ac;--color-accent:#7c9cff;--color-accent-strong:#a8baff;--color-on-accent:#0b0d10;--color-danger:#ff8080;--color-success:#6fdc9c;--color-warning:#f5c451;--tone:var(--color-accent);--tone-soft:color-mix(in srgb, var(--color-accent) 16%, var(--color-surface));--tone-1:#4fd1c1;--tone-2:#f39a5c;--tone-3:#d79bf2;--tone-4:#f2c14f;--tone-5:#f28bb5;--tone-6:#9fd46b;--qr-light:#fff;--qr-dark:#000;--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-pill:999px;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-md:clamp(1.0625rem, 1rem + .2vw, 1.1875rem);--text-lg:clamp(1.125rem, 1.05rem + .35vw, 1.3125rem);--text-xl:clamp(1.25rem, 1.15rem + .5vw, 1.5rem);--text-2xl:clamp(1.5rem, 1.3rem + .9vw, 2rem);--text-4xl:clamp(3rem, 2.4rem + 2.6vw, 4.5rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--gutter:clamp(1rem, .25rem + 3.2vw, 3rem);--grid-gap:clamp(1rem, .75rem + 1vw, 1.5rem);--panel-padding:clamp(1rem, .5rem + 2vw, 2rem);--content-width:56rem;--content-width-wide:80rem;--shell-bar-size:3.5rem;--tap-size:2.75rem;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ease-out:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html{background:var(--color-bg);-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}h1,h2,h3{text-wrap:balance;overflow-wrap:break-word;font-weight:700}h1{font-size:var(--text-2xl);letter-spacing:-.02em;line-height:1.15}h2{font-size:var(--text-lg);letter-spacing:-.01em;line-height:1.3}h3{font-size:var(--text-base);line-height:1.3}p{text-wrap:pretty}a{color:inherit}code{font-family:var(--font-mono)}button,input,select{font:inherit;color:inherit}svg{flex:none}:is(a,img,svg){-webkit-user-drag:none}:is(button,label,summary,select,a){-webkit-user-select:none;user-select:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}form{gap:var(--space-4);grid-template-columns:100%;display:grid}.panel{align-content:start;gap:var(--space-6);padding:var(--panel-padding);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);grid-template-columns:100%;display:grid}.panel.empty{color:var(--color-text-muted)}.lead{font-size:var(--text-base);color:var(--color-text-muted);line-height:1.5}.card-meta{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.45}.note{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-text-muted);background:var(--color-surface-raised);border:1px dashed var(--color-border);border-radius:var(--radius-sm)}.button{justify-content:center;align-items:center;gap:var(--space-2);min-block-size:var(--tap-size);padding:var(--space-3) var(--space-6);text-align:center;color:var(--color-on-accent);background:var(--color-accent);border-radius:var(--radius-pill);transition:transform .25s var(--ease-out), background-color .2s, border-color .2s, color .2s, opacity .2s;border:1px solid #0000;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}@media (hover:hover) and (prefers-reduced-motion:no-preference){.button:hover:not(:disabled){transform:translateY(-2px)}}@media (hover:hover){.button:hover:not(:disabled){background:var(--color-accent-strong)}}.button:disabled{opacity:.5}.button.is-ghost{color:var(--color-text);border-color:var(--color-border);background:0 0}@media (hover:hover){.button.is-ghost:hover:not(:disabled){border-color:var(--color-accent);background:0 0}}.button.is-danger{color:var(--color-danger)}@media (hover:hover){.button.is-danger:hover:not(:disabled){border-color:var(--color-danger)}}.button.is-danger-solid{color:var(--color-on-accent);background:var(--color-danger)}@media (hover:hover){.button.is-danger-solid:hover:not(:disabled){background:color-mix(in srgb, var(--color-danger) 80%, white)}}.actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.actions>.button{flex:auto}.field{gap:var(--space-1);display:grid;position:relative}.field>label:first-child{font-size:var(--text-sm);font-weight:600}.field>:is(input,select){inline-size:100%;min-block-size:var(--tap-size);padding:var(--space-3) var(--space-4);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color .2s}.field>:is(input,select):has(+label){min-block-size:3.5rem;padding-block:var(--space-6) var(--space-1)}.field>:is(input,select):focus-visible{border-color:var(--color-accent);outline-offset:0}.field>:is(input,select)[aria-invalid=true]{border-color:var(--color-danger)}.field>:is(input,select)+label{inset-block-start:var(--space-4);inset-inline:var(--space-4);font-size:var(--text-base);text-overflow:ellipsis;white-space:nowrap;pointer-events:none;color:var(--color-text-muted);transition:inset-block-start .2s var(--ease-out), font-size .2s var(--ease-out), color .2s;line-height:1.5;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.field>:is(input,select)+label{transition:color .2s}}.field>input:-webkit-any(:focus,:not(:placeholder-shown),:-webkit-autofill)+label,.field>select+label{font-size:var(--text-xs);inset-block-start:var(--space-1)}.field>input:is(:focus,:not(:placeholder-shown),:autofill)+label,.field>select+label{font-size:var(--text-xs);inset-block-start:var(--space-1)}.field>:is(input,select):focus+label{color:var(--color-accent)}.field input[type=file]{padding:var(--space-2);color:var(--color-text-muted)}.field input[type=file]::file-selector-button{padding:var(--space-2) var(--space-4);font:inherit;color:var(--color-text);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-pill);margin-inline-end:var(--space-3);font-weight:600}.field>input.code-input{font-family:var(--font-mono);font-size:var(--text-xl);letter-spacing:.35em;text-align:center;font-variant-numeric:tabular-nums;line-height:1.25}.expand{transition:grid-template-rows .3s var(--ease-out);grid-template-rows:0fr;display:grid}.expand[data-open]{grid-template-rows:1fr}@media (prefers-reduced-motion:reduce){.expand{transition:none}}.expand>*{min-block-size:0;margin:calc(var(--space-2) * -1);padding:var(--space-2);overflow:hidden}.field-message{font-size:var(--text-sm);color:var(--color-text-muted)}.field-message.is-error{color:var(--color-danger)}.check{align-items:center;gap:var(--space-3);min-block-size:var(--tap-size);display:flex}.check>input{block-size:1.25rem;inline-size:1.25rem;accent-color:var(--color-accent);flex:none;margin:0}.check small{color:var(--color-text-muted)}.picker{border:0;gap:0;min-inline-size:0;margin:0;padding:0;display:grid}.picker>legend{font-size:var(--text-sm);margin-block-end:var(--space-1);padding:0;font-weight:600}.alert{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);line-height:1.45}.alert.is-error{color:var(--color-danger);border-color:color-mix(in srgb, var(--color-danger) 40%, var(--color-border))}.alert.is-warning{color:var(--color-warning);border-color:color-mix(in srgb, var(--color-warning) 40%, var(--color-border))}.alert.is-ok{color:var(--color-success);border-color:color-mix(in srgb, var(--color-success) 40%, var(--color-border))}.alert code{color:var(--color-text);overflow-wrap:anywhere}.chip{padding:0 var(--space-3);font-size:var(--text-sm);white-space:nowrap;color:var(--color-text-muted);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-pill);align-items:center;line-height:1.6;display:inline-flex}.chip.is-ok{color:var(--color-success)}.chip.is-bad{color:var(--color-danger)}.chip.is-warn{color:var(--color-warning)}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.rows{margin:0;padding:0;list-style:none;display:grid}.rows>li{gap:var(--space-1);padding-block:var(--space-3);border-block-start:1px solid var(--color-border);display:grid}.rows>li:first-child{border-block-start:0;padding-block-start:0}.rows>li:last-child{padding-block-end:0}.row-main{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.row-main>b{overflow-wrap:anywhere;flex:12rem;min-inline-size:0}.block{gap:var(--space-4);border-block-start:1px solid var(--color-border);grid-template-columns:100%;padding-block-start:var(--space-6);display:grid}.block:first-child{border-block-start:0;padding-block-start:0}.status-line{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.stats{gap:var(--space-2);display:grid}.stats>progress{appearance:none;block-size:6px;inline-size:100%;color:var(--color-success);background:var(--color-surface-raised);border-radius:var(--radius-pill);border:0;overflow:hidden}.stats>progress::-webkit-progress-bar{background:var(--color-surface-raised)}.stats>progress::-webkit-progress-value{background:var(--color-success);border-radius:var(--radius-pill);transition:width .3s var(--ease-out)}.stats>progress::-moz-progress-bar{background:var(--color-success);border-radius:var(--radius-pill)}.stats-line{gap:var(--space-1) var(--space-4);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--color-text-muted);flex-wrap:wrap;display:flex}.stats-line b{color:var(--color-text);font-weight:600}.stats-line .is-bad b{color:var(--color-danger)}.stats-line .is-due b{color:var(--color-warning)}.loading{color:var(--color-text-muted)}@media (prefers-reduced-motion:no-preference){.loading{animation:1.4s ease-in-out infinite pulse}}.back{min-block-size:var(--tap-size);font-size:var(--text-sm);color:var(--color-text-muted);justify-self:start;align-items:center;text-decoration:none;display:inline-flex}@media (hover:hover){.back:hover{color:var(--color-text)}}.qr{border-radius:var(--radius-sm);justify-self:center;block-size:auto;inline-size:min(100%,15rem)}.qr>.qr-light{fill:var(--qr-light)}.qr>.qr-dark{fill:var(--qr-dark)}.secret>.secret-value{padding:var(--space-4);font-size:var(--text-lg);letter-spacing:.04em;text-align:center;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.confirm{align-items:center;gap:var(--space-2);flex-wrap:wrap;flex:auto;display:flex}.confirm>span{font-size:var(--text-sm);color:var(--color-text-muted);flex:1 0 100%}.confirm>.button{flex:auto}[data-section]{--tone-soft:color-mix(in srgb, var(--tone) 16%, var(--color-surface))}[data-section][data-section="1"]{--tone:var(--tone-1)}[data-section][data-section="2"]{--tone:var(--tone-2)}[data-section][data-section="3"]{--tone:var(--tone-3)}[data-section][data-section="4"]{--tone:var(--tone-4)}[data-section][data-section="5"]{--tone:var(--tone-5)}[data-section][data-section="6"]{--tone:var(--tone-6)}.enter{animation:rise .3s var(--ease-out)}@media (prefers-reduced-motion:reduce){.enter{animation-name:fade}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes fade{0%{opacity:0}}@keyframes pulse{50%{opacity:.45}}
