:root{--bg: #f7f5f2;--fg: #1d1d1f;--muted: #6b6b70;--card: #ffffff;--line: #e3e0db;--accent: #c8102e;--accent-fg: #fff;--ok: #1f7a3a;--ok-bg: #e6f4ea;--low: #b4231f;--low-bg: #fdecea;--warn-bg: #fff6dc;--warn-line: #e8c76a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5}@media (prefers-color-scheme: dark){:root{--bg: #141416;--fg: #ececf0;--muted: #a0a0a8;--card: #1f1f23;--line: #2f2f35;--ok-bg: #13301c;--low-bg: #3a1716;--warn-bg: #3a2f10;--warn-line: #8c7430}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg)}#root,.page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.page>main{flex:1;width:100%}a{color:inherit}h1{font-size:1.6rem;margin:0 0 .5rem}h2{font-size:1.2rem;margin:1.5rem 0 .5rem}h3{margin:0;font-size:1.05rem}.container{max-width:1000px;margin:0 auto;padding:1.5rem 16px 3rem}.narrow{max-width:460px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 16px;border-bottom:1px solid var(--line);background:var(--card)}.topbar nav{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.topbar nav a{text-decoration:none;color:var(--muted)}.brand{font-weight:700;text-decoration:none}.footer{text-align:center;color:var(--muted);font-size:.85rem;padding:1rem 16px 2rem;max-width:720px;margin:0 auto}.footer p{margin:.25rem 0}.legal{max-width:720px}.legal p,.legal li{margin:.5rem 0}.check{display:flex;gap:.6rem;align-items:start}.check input{width:auto;margin-top:.3rem}.muted{color:var(--muted)}.small{font-size:.875rem}.center{text-align:center}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem;word-break:break-all}.error{color:var(--low)}.success{color:var(--ok)}.warn{background:var(--warn-bg);border:1px solid var(--warn-line);padding:.6rem .8rem;border-radius:8px}button,.button{font:inherit;border:0;border-radius:8px;padding:.6rem 1rem;background:var(--accent);color:var(--accent-fg);cursor:pointer;text-decoration:none;display:inline-block}button:disabled{opacity:.5;cursor:default}button.secondary,.button.secondary{background:var(--card);color:var(--fg);border:1px solid var(--line)}button.danger{background:var(--low-bg);color:var(--low)}button.small{padding:.35rem .6rem;font-size:.85rem}button.linklike{background:none;color:var(--muted);padding:0}input,select{font:inherit;padding:.55rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--fg);width:100%}label{display:block;margin:.75rem 0;font-size:.9rem}label input{margin-top:.25rem}form button[type=submit]{margin-top:.5rem}.row{display:flex;gap:.75rem;align-items:center;margin-top:1rem;flex-wrap:wrap}.grow{flex:1;min-width:200px}.auth-card{max-width:400px;margin:2rem auto;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:2rem 1.5rem}.group-grid{list-style:none;padding:0;margin:1rem 0 0;display:grid;gap:.9rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:12px}.card-warn{border-color:var(--warn-line);background:var(--warn-bg)}.card-link{display:block;padding:1rem;text-decoration:none;height:100%}.card-link:hover{border-color:var(--accent)}.card-head{display:flex;justify-content:space-between;align-items:start;gap:.5rem}.badge{font-size:.8rem;padding:.15rem .5rem;border-radius:999px;white-space:nowrap}.badge-ok{background:var(--ok-bg);color:var(--ok)}.badge-low{background:var(--low-bg);color:var(--low)}.status{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;padding:.1rem .5rem;border-radius:4px;border:1px solid var(--line);color:var(--muted)}.status-in_progress{background:var(--warn-bg);border-color:var(--warn-line);color:var(--fg)}.status-completed{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}.card-progress{height:4px;background:var(--line);border-radius:2px;margin:.5rem 0 0;overflow:hidden}.card-progress div{height:100%;background:var(--warn-line)}.card-foot{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin:.5rem 0 0}.crumbs{margin:0 0 .5rem}.crumbs a{color:var(--muted);text-decoration:none}.practice-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.progress{height:6px;background:var(--line);border-radius:3px;margin:.75rem 0 1.25rem;overflow:hidden}.progress div{height:100%;background:var(--accent);transition:width .2s}.question{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.25rem}.question h2{margin:.25rem 0 1rem;font-size:1.25rem}.tags{display:flex;gap:.4rem;flex-wrap:wrap;margin:0}.tag{font-size:.75rem;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:.05rem .5rem}.options{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}.option{width:100%;text-align:left;background:var(--bg);color:var(--fg);border:1px solid var(--line);padding:.7rem .9rem}.option:hover:not(:disabled){border-color:var(--accent)}.option:disabled{opacity:1;cursor:default}.option .key{display:inline-block;width:1.6rem;color:var(--muted);font-weight:600}.option.correct{background:var(--ok-bg);border-color:var(--ok)}.option.wrong{background:var(--low-bg);border-color:var(--low)}.option.dim{opacity:.55}.feedback{margin-top:1rem;padding:.75rem .9rem;border-radius:8px}.feedback.ok{background:var(--ok-bg)}.feedback.miss{background:var(--low-bg)}.feedback p{margin:.4rem 0 0}.result{text-align:center;padding:1.5rem;border-radius:12px;margin:1rem 0}.result-ok{background:var(--ok-bg)}.result-low{background:var(--low-bg)}.result-score{font-size:2.5rem;font-weight:700}.review{padding-left:1.25rem}.review li{padding:.6rem 0 .6rem .5rem;border-left:3px solid var(--line);margin-bottom:.6rem}.review li.ok{border-color:var(--ok)}.review li.miss{border-color:var(--low)}.review .q{margin:0 0 .25rem;font-weight:600}.review p{margin:.15rem 0}.strike{text-decoration:line-through}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem 1.25rem;margin-top:1rem}.panel h2{margin-top:0}.inline-form{display:flex;gap:.5rem;flex-wrap:wrap}.inline-form input{flex:1;min-width:200px}.inline-form select{width:auto}.invite-box{margin-top:1rem;padding:.75rem;background:var(--bg);border-radius:8px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.5rem .4rem;border-bottom:1px solid var(--line);vertical-align:middle}td select{width:auto;padding:.3rem .4rem}.actions{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}tr.dim{opacity:.6}
