:root{--bg:#111315;--surface:#1a1d20;--line:#ffffff14;--text:#eceef0;--dim:#a3aab2;--faint:#737b84;--accent:#5b8cff;--good:#3ecf8e;--warn:#f0b429;--bad:#f2716b;--r:10px;--ease:cubic-bezier(.2, .7, .3, 1);--t:.18s var(--ease)}@media (prefers-color-scheme:light){:root{--bg:#fff;--surface:#f3f4f6;--line:#00000014;--text:#16181a;--dim:#555c64;--faint:#8a9098;--accent:#2f6bf0;--good:#12875a;--warn:#a86a00;--bad:#cf3b35}}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;padding:24px 20px 64px;font:17px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.wrap{max-width:680px;margin:0 auto}h1,h2,h3{letter-spacing:-.01em;margin:0}h2{font-size:22px;font-weight:650}button{font:inherit;cursor:pointer;transition:background var(--t), color var(--t), opacity var(--t)}button:disabled{cursor:default;opacity:.5}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}input[type=number]{appearance:textfield}input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.good{color:var(--good)}.warn{color:var(--warn)}.bad{color:var(--bad)}.top{align-items:center;gap:6px;margin-bottom:40px;display:flex}.top h1{margin-right:auto;font-size:18px;font-weight:650}.failed{color:var(--bad);margin-right:6px;font-size:15px}.ghost{color:var(--dim);border-radius:var(--r);background:0 0;border:0;align-items:center;gap:6px;padding:8px 10px;font-size:15px;display:inline-flex}.ghost svg{width:16px;height:16px}.ghost:hover:not(:disabled){color:var(--text);background:var(--surface)}.btn{border-radius:var(--r);background:var(--surface);color:var(--text);border:0;padding:9px 16px;font-size:15px;font-weight:600}.btn:hover:not(:disabled){background:var(--line)}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:color-mix(in oklab, var(--accent) 88%, #fff)}.btn.danger{background:var(--bad);color:#fff}.summary{margin-bottom:56px}.score{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:88px;font-weight:700;line-height:1}.lead{color:var(--dim);margin:10px 0 20px;font-size:18px}.status{align-items:center;gap:10px;margin:0 0 8px;font-size:19px;font-weight:600;display:flex}.status svg{flex:none;width:22px;height:22px}.solve{color:var(--dim);margin:0 0 28px}.solve b{color:var(--text)}.mode{flex-wrap:wrap;gap:8px;display:flex}.mode button{background:var(--surface);color:var(--dim);border:0;border-radius:99px;padding:8px 16px;font-size:15px}.mode button:hover{color:var(--text)}.mode button[aria-pressed=true]{background:var(--text);color:var(--bg)}.caption{color:var(--dim);margin:10px 0 0;font-size:15px}.assume{width:56px;font:inherit;text-align:center;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:6px;padding:2px 4px}.assume:focus{border-color:var(--accent);outline:none}.block{margin-bottom:56px}.block>h2{margin-bottom:16px}.head{justify-content:space-between;align-items:center;gap:12px;display:flex}.sub{color:var(--dim);margin:8px 0 20px}.sub b{font-variant-numeric:tabular-nums}.empty{color:var(--faint);margin:12px 0}.rules{border-collapse:collapse;width:100%}.rules th{text-align:left;color:var(--faint);padding:0 0 8px;font-size:14px;font-weight:500}.rules td{border-top:1px solid var(--line);vertical-align:top;padding:12px 0}.rules tbody tr{cursor:pointer}.rules tbody tr:hover td{background:var(--surface)}.rules th:not(:first-child),.rules td:not(:first-child){text-align:right;padding-left:16px}.rules .ic{vertical-align:-3px;margin-right:10px;display:inline-grid}.rules .ic svg{width:18px;height:18px}.rules .note{color:var(--faint);margin-left:28px;font-size:14px;display:block}.rules .num{font-variant-numeric:tabular-nums;font-weight:650}.rules .pass{color:var(--dim);white-space:nowrap}.group{margin-top:20px}.group h3{color:var(--dim);margin-bottom:4px;font-size:15px;font-weight:600}.group h3 span{color:var(--faint);margin-left:10px;font-weight:400}.row{border-top:1px solid var(--line);grid-template-columns:1fr auto 76px;align-items:center;gap:14px;padding:6px 0;display:grid}.row .n{min-width:0;line-height:1.35}.row .w{color:var(--faint);font-variant-numeric:tabular-nums;font-size:15px}.row input{text-align:center;width:76px;font:inherit;font-variant-numeric:tabular-nums;border-radius:var(--r);background:var(--surface);color:var(--text);transition:border-color var(--t), background var(--t);border:1px solid #0000;padding:7px 4px}.row input:hover{border-color:var(--line)}.row input:focus{border-color:var(--accent);outline:none}.row input.edited{border-color:var(--accent)}.row input::placeholder{color:var(--faint)}.marks-head{margin-bottom:8px}.tools{flex-wrap:wrap;justify-content:flex-end;display:flex}.subj{border-top:1px solid var(--line);background:var(--bg);transition:box-shadow .18s var(--ease);padding:14px 0}.subj:last-child{border-bottom:1px solid var(--line)}.shead{align-items:center;gap:8px;display:flex}.grip{width:26px;height:26px;color:var(--faint);opacity:0;cursor:grab;touch-action:none;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;margin-left:-34px;display:grid}.grip svg{width:18px;height:18px}.grip:active{cursor:grabbing}.subj:hover .grip,.grip:focus-visible{opacity:1}@media (hover:none),(max-width:760px){.grip{opacity:1;margin-left:-6px}}.subjects.reordering{cursor:grabbing;-webkit-user-select:none;user-select:none}.subj.drag{pointer-events:none;border-radius:var(--r);box-shadow:0 12px 32px -12px #00000080}.stoggle{min-width:0;color:inherit;text-align:left;background:0 0;border:0;flex:1;align-items:baseline;gap:10px;padding:4px 0;display:flex}.stoggle svg{width:14px;height:14px;color:var(--faint);transition:transform .2s var(--ease);flex:none;align-self:center}.subj.open .stoggle svg{transform:rotate(90deg)}.sname{font-size:19px;font-weight:600}.ssub{color:var(--faint);font-size:15px}.spct{font-variant-numeric:tabular-nums;font-size:19px;font-weight:650}.spct:not(.good):not(.warn):not(.bad){color:var(--faint)}.sbody{transition:grid-template-rows .22s var(--ease);grid-template-rows:0fr;display:grid}.sbody[data-open=true]{grid-template-rows:1fr}.sbodyin{min-height:0;padding-left:24px;overflow:hidden}.foot{color:var(--faint);margin-top:32px;font-size:15px}.scrim{z-index:10;animation:fade .16s var(--ease);background:#00000080;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog{background:var(--bg);width:100%;max-width:360px;animation:rise .2s var(--ease);border-radius:14px;padding:24px;box-shadow:0 24px 60px -20px #0009}.dialog h3{margin-bottom:8px;font-size:19px}.dialog p{color:var(--dim);margin:0 0 20px}.dialog .row{border:0;justify-content:flex-end;gap:8px;padding:0;display:flex}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.gate{text-align:center;max-width:300px;margin:16vh auto 0}.gate h2{margin-bottom:4px;font-size:22px}.gate>p{color:var(--dim);margin:0 0 22px}.gate form{flex-direction:column;gap:10px;display:flex}.gate input{font:inherit;letter-spacing:8px;text-indent:8px;text-align:center;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);color:var(--text);padding:13px;font-size:22px}.gate input:focus{border-color:var(--accent);outline:none}.gate.shake input{border-color:var(--bad);animation:shake .3s var(--ease)}.gate button{background:var(--accent);color:#fff;border-radius:var(--r);border:0;padding:13px;font-weight:600}.gate .err{color:var(--bad);min-height:22px;margin:0;font-size:15px}@keyframes shake{25%{transform:translate(-5px)}75%{transform:translate(5px)}}.sk{background:var(--surface);border-radius:var(--r);animation:pulse 1.5s var(--ease) infinite;margin-bottom:16px}.sk-summary{height:300px;margin-bottom:56px}.sk-rules{height:360px;margin-bottom:56px}.sk-subj{height:52px}@keyframes pulse{50%{opacity:.5}}@media (max-width:480px){.score{font-size:72px}.row{grid-template-columns:1fr 68px;gap:2px 10px}.row .w{grid-row:2;font-size:14px}.row input{grid-area:1/2/span 2;width:68px}.sbodyin{padding-left:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
