:root{--bg: #f4f6fa;--card: #ffffff;--fg: #17202b;--muted: #5d6b7c;--line: #dfe5ee;--accent: #1f5fae;--accent-fg: #fff;--accent-soft: #e6effa;--good: #1f8a4c;--good-soft: #e3f4ea;--mid: #b7791f;--mid-soft: #fbf1df;--low: #c0392b;--low-soft: #fbe6e3;--code: #f0f3f8;--shadow: 0 1px 2px rgba(20, 30, 50, .06), 0 4px 14px rgba(20, 30, 50, .05);--radius: 14px;--tab-h: 62px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0f1419;--card: #182029;--fg: #e6ebf1;--muted: #93a1b2;--line: #2a3542;--accent: #5aa2f0;--accent-fg: #0b1220;--accent-soft: #1b2b40;--good: #4cc27e;--good-soft: #15301f;--mid: #e3a43c;--mid-soft: #33270f;--low: #ef6f60;--low-soft: #3a1a17;--code: #121a22;--shadow: none;color-scheme:dark}}:root[data-theme=dark]{--bg: #0f1419;--card: #182029;--fg: #e6ebf1;--muted: #93a1b2;--line: #2a3542;--accent: #5aa2f0;--accent-fg: #0b1220;--accent-soft: #1b2b40;--good: #4cc27e;--good-soft: #15301f;--mid: #e3a43c;--mid-soft: #33270f;--low: #ef6f60;--low-soft: #3a1a17;--code: #121a22;--shadow: none;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body.noscroll{overflow:hidden}main{padding-bottom:calc(var(--tab-h) + 24px + env(safe-area-inset-bottom))}a{color:var(--accent)}h1{font-size:1.55rem;margin:.4rem 0 .6rem;line-height:1.2}h2{font-size:1.15rem;margin:1.6rem 0 .6rem}h2 small,h3 small{color:var(--muted);font-weight:500}h3{font-size:1.02rem;margin:1.1rem 0 .5rem}.page{max-width:820px;margin:0 auto;padding:max(14px,env(safe-area-inset-top)) 16px 16px}.muted{color:var(--muted)}.small{font-size:.85rem}.err{color:var(--low)}.sub{color:var(--muted);margin-top:-.3rem}.back{display:inline-block;text-decoration:none;margin:2px 0 4px;font-size:.95rem}.splash{min-height:100vh;display:grid;place-items:center;font-size:3rem}button,.btn{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:10px;padding:.55rem .9rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:42px}button:disabled{opacity:.55;cursor:default}button.primary,.btn.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);font-weight:600}button.big,.btn.big{width:100%;padding:.8rem;font-size:1.05rem;margin-top:.6rem}button.link{border:0;background:none;color:var(--accent);padding:.3rem 0;min-height:0}button.bad{border-color:var(--low);color:var(--low)}input,textarea,select{font:inherit;width:100%;padding:.6rem .7rem;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--fg)}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}textarea{resize:vertical;min-height:5.5rem}textarea.code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.9rem}label{display:block;margin:.5rem 0}label>span{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.2rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin:12px 0;box-shadow:var(--shadow)}.md p{margin:.45rem 0}.md ul,.md ol{margin:.4rem 0;padding-left:1.3rem}.md li{margin:.15rem 0}.md code{background:var(--code);padding:.08rem .3rem;border-radius:5px;font-size:.9em}.md pre{background:var(--code);padding:.7rem .8rem;border-radius:10px;overflow-x:auto;font-size:.85rem;line-height:1.4}.md pre code{background:none;padding:0}.md table{border-collapse:collapse;margin:.5rem 0;font-size:.9rem;display:block;overflow-x:auto;max-width:100%}.md th,.md td{border:1px solid var(--line);padding:.3rem .5rem;text-align:left;vertical-align:top}.md th{background:var(--code)}.md img{max-width:100%}.hero{background:linear-gradient(135deg,#1e3a5f,#2f6db3);color:#fff;border-radius:18px;padding:18px;margin-top:6px}.hero .count{display:flex;align-items:baseline;gap:.6rem}.hero .count b{font-size:3rem;line-height:1}.hero .mini{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-top:.6rem;font-size:.9rem;opacity:.95}.plan{list-style:none;padding:0;margin:0;display:grid;gap:8px}.plan a{display:flex;gap:10px;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:12px;padding:10px 12px;text-decoration:none;color:var(--fg);box-shadow:var(--shadow)}.plan a.plan-sim{border-left-color:#8e44ad}.plan a.plan-trainer{border-left-color:var(--good)}.plan a.plan-mistakes{border-left-color:var(--low)}.plan b{display:block}.plan small{color:var(--muted)}.plan .min{font-weight:700;color:var(--muted);white-space:nowrap}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.chip{background:var(--accent-soft);color:var(--accent);padding:.35rem .7rem;border-radius:999px;text-decoration:none;font-size:.9rem}.chip.warn{background:var(--low-soft);color:var(--low)}.cats{list-style:none;padding:0;margin:0;display:grid;gap:8px}.cats a{display:block;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;text-decoration:none;color:var(--fg)}.cats .row{display:flex;justify-content:space-between;gap:8px}.bar{height:7px;background:var(--line);border-radius:99px;overflow:hidden;margin:6px 0 3px}.bar i{display:block;height:100%;background:var(--accent);border-radius:99px}.bar i.good{background:var(--good)}.bar i.mid{background:var(--mid)}.bar i.low{background:var(--low)}.item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 14px 12px;margin:12px 0;box-shadow:var(--shadow)}.item-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.badge{background:var(--accent);color:var(--accent-fg);font-weight:700;border-radius:8px;padding:.1rem .5rem;font-size:.9rem}.pts{font-weight:600;color:var(--muted)}.op{margin-left:auto;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;background:var(--accent-soft);color:var(--accent);padding:.15rem .5rem;border-radius:6px}.stems{background:var(--bg);border-radius:10px;padding:6px 10px;margin:6px 0;font-size:.95rem}.stems summary{cursor:pointer;color:var(--muted);font-size:.85rem}.q{font-weight:500}figure{margin:8px 0}figure img{max-width:100%;border-radius:8px;border:1px solid var(--line);background:#fff}figcaption{font-size:.8rem;color:var(--muted)}.answer{margin:8px 0}.fields.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.fields label.ok input{border-color:var(--good);background:var(--good-soft)}.fields label.bad input{border-color:var(--low);background:var(--low-soft)}.exp{color:var(--low);display:block;font-size:.8rem}.mc{display:grid;gap:6px}.opt{justify-content:flex-start;text-align:left;width:100%}.opt .md p{margin:0}.opt.on{border-color:var(--accent);background:var(--accent-soft)}.opt.ok{border-color:var(--good);background:var(--good-soft)}.opt.bad{border-color:var(--low);background:var(--low-soft)}.opt .dot{font-size:1.1rem}.table-wrap{overflow-x:auto;margin:6px 0}.input-table{border-collapse:collapse;min-width:100%}.input-table th,.input-table td{border:1px solid var(--line);padding:3px;text-align:center;font-size:.9rem}.input-table th{background:var(--code);padding:4px 6px}.input-table input{min-width:3.4rem;padding:.35rem;text-align:center;border-radius:6px}.input-table td.ok input{background:var(--good-soft);border-color:var(--good)}.input-table td.bad input{background:var(--low-soft);border-color:var(--low)}.order{padding-left:1.4rem}.order li{display:flex;align-items:center;gap:6px;margin:4px 0}.order li span{flex:1}.order button{min-height:34px;padding:.2rem .5rem}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.actions.spread{justify-content:space-between}.actions.spread button{flex:1}.result{margin-top:10px;border-radius:10px;padding:8px 12px;font-weight:600}.result.full{background:var(--good-soft);color:var(--good)}.result.part{background:var(--mid-soft);color:var(--mid)}.result.zero{background:var(--low-soft);color:var(--low)}.result.ki{font-weight:400;color:var(--fg)}.result.ki b{display:block}.result ul{list-style:none;padding:0;margin:.3rem 0}.result ul.good li{color:var(--good)}.result ul.miss li{color:var(--low)}.result small{color:var(--muted)}.tipp{margin:.3rem 0}.solution{margin-top:10px;border-top:1px dashed var(--line);padding-top:8px}.solution h4{margin:0 0 4px;color:var(--good)}.note{background:var(--mid-soft);border-radius:10px;padding:4px 10px;margin-top:6px;font-size:.92rem}.selfrate{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}.selfrate span{font-size:.85rem;color:var(--muted);width:100%}.selfrate button{min-width:42px;padding:.3rem .5rem}.selfrate button.on{background:var(--accent);color:var(--accent-fg)}.term h3{border-bottom:1px solid var(--line);padding-bottom:4px}.exam-row{display:flex;gap:10px;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:8px 0}.exam-row small{display:block;color:var(--muted)}.exam-row .btns{display:flex;gap:6px;flex-shrink:0}.scenario{background:var(--accent-soft);border-radius:12px;padding:4px 14px;margin:10px 0}.toc{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0;position:sticky;top:0;background:var(--bg);padding:6px 0;z-index:2}.toc a{text-decoration:none;font-size:.8rem;padding:.2rem .45rem;border-radius:6px;background:var(--card);border:1px solid var(--line);color:var(--fg)}.toc a.good{background:var(--good-soft)}.toc a.mid{background:var(--mid-soft)}.toc a.low{background:var(--low-soft)}.task h2{border-left:4px solid var(--accent);padding-left:8px}.origs img{width:100%;border:1px solid var(--line);border-radius:8px;margin:6px 0;background:#fff}.timer{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;background:var(--card);border-bottom:1px solid var(--line);margin:-14px -16px 8px;padding:max(8px,env(safe-area-inset-top)) 16px 8px}.timer b{font-size:1.5rem;font-variant-numeric:tabular-nums}.timer span{flex:1;color:var(--muted);font-size:.85rem}.timer.warn b{color:var(--low)}.score b{font-size:1.3rem;display:block}.score span{display:block;font-weight:600}.score.note1,.score.note2{border-color:var(--good)}.score.note5,.score.note6{border-color:var(--low)}.sim-res summary{cursor:pointer;padding:8px 0}.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:8px 0}.seg.wrap{display:flex;flex-wrap:wrap;border:0;gap:6px}.seg button{border:0;border-radius:0;min-height:36px;text-transform:capitalize}.seg.wrap button{border:1px solid var(--line);border-radius:999px}.seg button.on{background:var(--accent);color:var(--accent-fg)}.itemlist{list-style:none;padding:0;margin:0}.itemrow{width:100%;justify-content:flex-start;text-align:left;margin:4px 0;gap:10px}.itemrow .t{flex:1;min-width:0}.itemrow .t b{display:block;font-size:.85rem}.itemrow .t small{display:block;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.itemrow .p{color:var(--muted);font-size:.85rem;white-space:nowrap}.state{width:10px;height:10px;border-radius:99px;background:var(--line);flex-shrink:0}.state.good{background:var(--good)}.state.mid{background:var(--mid)}.state.low{background:var(--low)}.inline-item{padding:0 0 8px}.gens{list-style:none;padding:0;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.gens a{display:block;position:relative;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;text-decoration:none;color:var(--fg);min-height:78px}.gens b{display:block}.gens small{color:var(--muted)}.pill{position:absolute;top:10px;right:10px;font-size:.75rem;font-weight:700;padding:.1rem .45rem;border-radius:99px}.pill.good{background:var(--good-soft);color:var(--good)}.pill.mid{background:var(--mid-soft);color:var(--mid)}.pill.low{background:var(--low-soft);color:var(--low)}.flash{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px 18px;min-height:200px;box-shadow:var(--shadow);cursor:pointer}.flash .front{font-size:1.15rem;font-weight:600}.flash hr{border:0;border-top:1px dashed var(--line)}.menu{list-style:none;padding:0;display:grid;gap:8px}.menu a{display:block;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;text-decoration:none;color:var(--fg);font-weight:500}.doc section{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:2px 14px 10px;margin:12px 0}.toc-doc{display:flex;flex-wrap:wrap;gap:6px}.toc-doc a{font-size:.82rem;background:var(--accent-soft);padding:.2rem .55rem;border-radius:99px;text-decoration:none}.chat{display:flex;flex-direction:column;min-height:calc(100vh - 200px)}.chat.compact{min-height:0;height:100%}.chat-log{flex:1;overflow-y:auto;padding:4px 0}.msg{margin:10px 0;padding:10px 12px;border-radius:14px;max-width:94%}.msg.user{background:var(--accent);color:var(--accent-fg);margin-left:auto}.msg.user p{margin:0;white-space:pre-wrap}.msg.assistant{background:var(--card);border:1px solid var(--line)}.status{color:var(--muted);font-size:.88rem;margin:0;display:flex;align-items:center;gap:6px}.spin{width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:99px;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.sources{font-size:.82rem;margin:8px 0 0;padding-left:1.4rem;border-top:1px dashed var(--line);padding-top:6px}.sources small{color:var(--muted)}.chat-input{display:flex;gap:8px;align-items:flex-end;position:sticky;bottom:calc(var(--tab-h) + env(safe-area-inset-bottom));background:var(--bg);padding:8px 0}.chat.compact .chat-input{bottom:0}.chat-input textarea{min-height:2.8rem}.sheet-bg{position:fixed;inset:0;background:#00000073;z-index:50;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--bg);width:100%;max-width:760px;height:88vh;border-radius:18px 18px 0 0;padding:10px 14px env(safe-area-inset-bottom);display:flex;flex-direction:column}.sheet header{display:flex;justify-content:space-between;align-items:center}.sheet header button{border:0;background:none;font-size:1.2rem}.tabs{position:fixed;bottom:0;left:0;right:0;height:calc(var(--tab-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--card);border-top:1px solid var(--line);display:flex;z-index:20}.tabs a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:var(--muted);gap:1px}.tabs a .ico{display:grid;place-items:center;height:24px}.tabs a small{font-size:.7rem}.tabs a.on{color:var(--accent);font-weight:700}.fab{position:fixed;right:16px;bottom:calc(var(--tab-h) + 14px + env(safe-area-inset-bottom));width:52px;height:52px;border-radius:99px;background:var(--accent);color:var(--accent-fg);display:grid;place-items:center;font-size:1.4rem;text-decoration:none;box-shadow:0 4px 14px #00000040;z-index:21}.page.sim~.fab{display:none}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login .card{width:100%;max-width:380px;text-align:center}.login label{text-align:left}.login .logo{font-size:2.6rem}@media(min-width:900px){.tabs{top:0;bottom:auto;height:56px;padding:0;justify-content:center;border-top:0;border-bottom:1px solid var(--line)}.tabs a{flex:0 0 120px;flex-direction:row;gap:6px}.tabs a small{font-size:.9rem}main{padding:64px 0 40px}.fab{bottom:24px}.chat-input{bottom:0}.timer{top:0;margin-top:-14px}}@media(max-width:420px){.exam-row{flex-direction:column;align-items:stretch}.exam-row .btns .btn{flex:1}.fields.grid2{grid-template-columns:1fr}}.sqltry .actions{align-items:flex-start}.schema{flex:1;min-width:0;font-size:.82rem}.schema pre{white-space:pre-wrap;word-break:break-word;background:var(--code);padding:6px;border-radius:8px;max-height:220px;overflow:auto}.sqlres td{text-align:left;padding:3px 6px;font-size:.82rem}.theory-box{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin:8px 0}.theory-box summary{cursor:pointer;font-weight:600}.menu.small a{padding:10px 12px;font-weight:400;font-size:.95rem}.menu.small{margin:8px 0 2px;gap:6px}.doc section .md table{font-size:.82rem}.input-table td.mark{padding:2px}.input-table td.mark button{width:34px;height:34px;min-height:0;padding:0;font-weight:700;border-radius:6px}.input-table td.mark button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.input-table td.mark.ok button{border-color:var(--good);background:var(--good-soft)}.input-table td.mark.bad button{border-color:var(--low);background:var(--low-soft)}.input-table.vhead thead th{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;font-size:.78rem;padding:6px 2px}.input-table.vhead tbody th{position:sticky;left:0;z-index:1;text-align:left;font-size:.8rem;white-space:nowrap}.theme-btn{position:absolute;top:12px;right:12px;background:#ffffff2e;color:#fff;border:0;border-radius:99px;width:40px;height:40px;min-height:0;padding:0;font-size:1.15rem}.hero{position:relative}.login .theme-btn{position:fixed;background:var(--card);color:var(--fg);border:1px solid var(--line)}.acct-list{list-style:none;padding:0;margin:0}.acct.off{opacity:.6}.acct-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.acct p{margin:4px 0}.tag{font-size:.75rem;padding:2px 8px;border-radius:99px;background:var(--accent-soft);color:var(--accent)}.tag.warn{background:var(--low-soft);color:var(--low)}button.danger{color:var(--low)}.creds{border:2px solid var(--accent)}.creds pre{white-space:pre-wrap;word-break:break-all;background:var(--code);padding:10px;border-radius:10px;font-size:.9rem;margin:8px 0}
