:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#fff;--surface:#f6f8fa;--text:#1f2328;--muted:#57606a;--border:#d0d7de;--accent:#0b57d0;--on-accent:#fff;--success:#1a7f37;--success-bg:#dafbe1;--danger:#b4232e;--danger-bg:#ffebe9;--focus:#0b57d0;--radius:8px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--muted:#9198a1;--border:#3d444d;--accent:#4493f8;--on-accent:#0d1117;--success:#3fb950;--success-bg:#12261e;--danger:#ff7b72;--danger-bg:#2d1517;--focus:#4493f8}}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font);margin:0;font-size:1rem;line-height:1.6}h1{margin:1.5rem 0 .75rem;font-size:1.75rem;line-height:1.25}h2{margin:2rem 0 .75rem;font-size:1.25rem;line-height:1.3}a{color:var(--accent)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}main:focus,.feedback:focus{outline:none}.container{width:100%;max-width:46rem;margin:0 auto;padding:0 1rem}main.container{padding-bottom:4rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:10;background:var(--accent);color:var(--on-accent);border-radius:var(--radius);padding:.5rem 1rem;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:.5rem}.app-header{border-bottom:1px solid var(--border);background:var(--surface)}.app-header__inner{justify-content:space-between;align-items:center;gap:1rem;min-height:3.5rem;display:flex}.brand{color:var(--text);font-size:1.125rem;font-weight:700;text-decoration:none}select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);min-height:2.5rem;padding:.4rem .6rem}.lead{color:var(--muted);margin-top:0}.progress-summary{font-weight:600}.exercise-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.exercise-link{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;padding:.75rem 1rem;text-decoration:none;display:flex}.exercise-link:hover{border-color:var(--accent)}.exercise-link__title{font-weight:600}.exercise-link__meta{color:var(--muted);gap:1rem;font-size:.9rem;display:flex}.status--solved{color:var(--success);font-weight:600}.breadcrumb{margin-top:1rem}.notice{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--muted);padding:.5rem .75rem}.question__prompt{font-size:1.125rem}.inline-code,code{font-family:var(--mono)}.inline-code{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:.1em .35em;font-size:.9em}.code-block{margin:1rem 0}.code-block__language{color:var(--muted);margin-bottom:.25rem;font-size:.85rem}.code-block__body .shiki{border-radius:var(--radius);border:1px solid var(--border);font-family:var(--mono);background-color:var(--shiki-light-bg);color:var(--shiki-light);margin:0;padding:1rem;font-size:.9rem;line-height:1.5;overflow-x:auto}.code-block__body .shiki span{color:var(--shiki-light)}@media (prefers-color-scheme:dark){.code-block__body .shiki{background-color:var(--shiki-dark-bg);color:var(--shiki-dark)}.code-block__body .shiki span{color:var(--shiki-dark)}}.options{border:0;gap:.5rem;margin:1rem 0;padding:0;display:grid}.option{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;display:flex}.option input{accent-color:var(--accent);margin-top:.35rem}.option--selected{border-color:var(--accent)}.option--correct{border-color:var(--success);background:var(--success-bg)}.option--wrong{border-color:var(--danger);background:var(--danger-bg)}.option__text{flex:1}.option__badge{font-size:.85rem;font-weight:600}.option--correct .option__badge{color:var(--success)}.option--wrong .option__badge{color:var(--danger)}.button{font:inherit;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);min-height:2.75rem;color:var(--on-accent);cursor:pointer;padding:.6rem 1.1rem;font-weight:600;text-decoration:none;display:inline-block}.button:disabled{opacity:.5;cursor:not-allowed}.button--secondary{color:var(--accent);background:0 0}.feedback{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);border-left-width:6px;margin-top:1.5rem;padding:1rem 1.25rem}.feedback--correct{border-left-color:var(--success)}.feedback--incorrect{border-left-color:var(--danger)}.feedback__title{margin-top:0}.feedback--correct .feedback__title{color:var(--success)}.feedback--incorrect .feedback__title{color:var(--danger)}.feedback__subtitle{margin:1rem 0 .25rem;font-size:1rem}.feedback__details{margin:1rem 0}.feedback__details summary{cursor:pointer;font-weight:600}.feedback__actions{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}@media (prefers-reduced-motion:no-preference){.exercise-link,.option{transition:border-color .15s}}.language-grid{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.language-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);height:100%;color:var(--text);flex-direction:column;gap:.25rem;padding:1rem 1.25rem;text-decoration:none;display:flex}.language-card:hover{border-color:var(--accent)}.language-card__name{font-size:1.25rem;font-weight:700}.language-card__meta{color:var(--muted);font-size:.9rem}.breadcrumb ol{flex-wrap:wrap;gap:.25rem .5rem;margin:0;padding:0;list-style:none;display:flex}.breadcrumb li+li:before{content:"/";color:var(--muted);margin-right:.5rem}.exercise-meta{color:var(--muted);margin:-.25rem 0 1rem;font-size:.9rem}.header-controls{align-items:center;gap:.75rem;display:flex}.account-email{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;color:var(--muted);font-size:.9rem;overflow:hidden}.button--small{min-height:2.5rem;padding:.35rem .8rem;font-size:.9rem}@media (width<=36rem){.account-email{display:none}.header-controls{gap:.5rem}}.auth-form{gap:1rem;max-width:24rem;display:grid}.field{gap:.35rem;display:grid}.field label{font-weight:600}.field .show-password{align-items:center;gap:.5rem;font-size:.9rem;font-weight:400;display:flex}.field-error{color:var(--danger)}.field-hint{color:var(--muted);margin:0;font-size:.9rem}.auth-switch{margin-top:1.5rem}a.button{text-decoration:none}.test-list{gap:.25rem;margin:.5rem 0 0;padding-left:1.25rem;display:grid}.test-list__arrow{color:var(--muted);margin:0 .5rem}.code-editor__loading{border:1px solid var(--border);border-radius:var(--radius);min-height:12rem;color:var(--muted);margin:0;padding:1rem}.code-editor__fallback{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:100%;min-height:12rem;color:var(--text);font-family:var(--mono);padding:.75rem;font-size:.9rem;line-height:1.5}.code-exercise__actions{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.test-results{gap:.5rem;margin:1rem 0;padding:0;list-style:none;display:grid}.test-result{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);border-left-width:4px;padding:.5rem .75rem}.test-result--passed{border-left-color:var(--success)}.test-result--failed{border-left-color:var(--danger)}.test-result__line{flex-wrap:wrap;gap:.25rem .75rem;margin:0;display:flex}.test-result--passed .test-result__status{color:var(--success)}.test-result--failed .test-result__status{color:var(--danger)}.test-result__details{grid-template-columns:max-content 1fr;gap:.25rem .75rem;margin:.5rem 0 0;display:grid}.test-result__details dt{font-weight:600}.test-result__details dd{overflow-wrap:anywhere;margin:0}.console-output{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);max-height:16rem;font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:.75rem 1rem;font-size:.85rem;line-height:1.5;overflow:auto}.console-output__error{color:var(--danger)}
