.widget{--gap: var(--sp-3, .9rem);font-family:var(--font-body);color:var(--ink)}.widget .controls{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:0 0 var(--sp-3)}.widget label.field{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:var(--fs-sm);color:var(--ink-soft)}.widget input[type=text],.widget input[type=number]{font-family:var(--font-body);font-size:1rem;font-weight:640;text-align:center;color:var(--ink);background:var(--surface);border:1.5px solid var(--line-strong);border-radius:var(--r-sm);padding:.45rem .5rem;width:4.5rem;transition:border-color .15s ease,box-shadow .15s ease}.widget input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.widget input.narrow{width:3.4rem}.widget .btn{font-family:var(--font-body);font-weight:640;font-size:var(--fs-sm);color:#fff;background:var(--accent);border:none;border-radius:var(--r-sm);padding:.5rem 1rem;cursor:pointer;transition:filter .15s ease,transform .1s ease}.widget .btn:hover{filter:brightness(1.05)}.widget .btn:active{transform:translateY(1px)}.widget .btn--ghost{background:var(--accent-soft);color:var(--accent-ink)}.widget .btn--soft{background:var(--surface-2);color:var(--ink-soft);border:1px solid var(--line)}.widget .chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 var(--sp-3)}.widget .chip-btn{font-family:var(--font-body);font-weight:600;font-size:var(--fs-xs);color:var(--accent-ink);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-pill);padding:.3rem .7rem;cursor:pointer}.widget .chip-btn:hover{filter:brightness(.97)}.widget .graphwrap{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:flex-start}.widget .graphwrap__graph{flex:1 1 300px;min-width:min(100%,280px);max-width:420px}.widget .graphwrap__info{flex:1 1 260px;min-width:240px}.graph{display:block;width:100%;height:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);touch-action:none}.graph .draggable{cursor:grab}.graph .draggable:active{cursor:grabbing}.number-line{display:block;width:100%;max-width:520px;height:auto;margin:var(--sp-3) auto var(--sp-2)}.number-line .nl-axis{stroke:var(--line-strong);stroke-width:2}.number-line .nl-arrow{fill:var(--line-strong)}.number-line .nl-tick{stroke:var(--line-strong);stroke-width:1.5}.number-line .nl-ticklabel{fill:var(--muted);font-size:12px;text-anchor:middle;font-family:var(--font-body)}.number-line .nl-ray{stroke:var(--accent);stroke-width:6;stroke-linecap:round}.number-line .nl-open{fill:var(--surface);stroke:var(--accent);stroke-width:3}.number-line .nl-closed{fill:var(--accent);stroke:var(--accent);stroke-width:2}.number-line .nl-bound{fill:var(--accent-ink);font-size:13px;font-weight:700;text-anchor:middle;font-family:var(--font-body)}.widget .forms{display:grid;gap:.5rem}.widget .formrow{display:flex;gap:.8rem;align-items:baseline;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:.55rem .8rem}.widget .formrow__name{flex:none;min-width:8.5rem;font-weight:640;font-size:var(--fs-sm);color:var(--accent-ink)}.widget .formrow__val{font-weight:600}.widget .out{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:.8rem 1rem;font-size:1.05rem;line-height:1.6}.widget .msg{color:var(--muted);font-size:var(--fs-sm)}.practice .q{font-size:1.2rem;line-height:1.5;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-4);margin:0 0 var(--sp-3);text-align:center}.practice .hint{color:var(--muted);font-size:var(--fs-sm);margin:.2rem 0 var(--sp-3)}.practice .answer-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.practice .answer-row input{width:12rem;text-align:left}.widget .feedback{min-height:1.5em;font-weight:640;margin:var(--sp-3) 0 0}.widget .feedback.ok{color:var(--good)}.widget .feedback.no{color:var(--bad)}.widget .steps{display:grid;gap:.4rem;margin:var(--sp-3) 0 0}.widget .step{display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:.5rem .8rem}.widget .step__tag{flex:none;font-weight:640;font-size:var(--fs-xs);color:var(--accent-ink);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-pill);padding:.12em .6em;white-space:nowrap}.widget .step__body{flex:1;min-width:10ch}.practice .score{display:flex;flex-wrap:wrap;gap:1.2rem;margin:var(--sp-4) 0 0;padding-top:var(--sp-3);border-top:1px solid var(--line);color:var(--muted);font-size:var(--fs-sm);font-weight:600}.practice .score b{color:var(--ink);font-variant-numeric:tabular-nums}.practice .score .score__streak{display:inline-flex;align-items:center;gap:.3em}.practice .score .score__flame{color:var(--terracotta)}.hintnote{color:var(--muted);font-weight:500}.test .test__intro{font-size:var(--fs-md);margin:0 0 .3rem}.test .test__bar{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-size:var(--fs-sm);font-weight:640;color:var(--ink-soft);margin:0 0 .5rem}.test .test__clock{font-variant-numeric:tabular-nums;color:var(--muted)}.test .test__track{height:6px;border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--line);overflow:hidden;margin:0 0 var(--sp-3)}.test .test__fill{height:100%;background:var(--accent);border-radius:inherit;transition:width .25s ease}.test .test__result{display:flex;align-items:center;gap:var(--sp-4);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-4);margin:0 0 var(--sp-4)}.test .test__grade{font-family:var(--font-display);font-weight:600;font-size:2.2rem;color:var(--accent-ink);font-variant-numeric:tabular-nums;white-space:nowrap}.test .test__scoreline{margin:0;font-weight:640}.test .test__result .hint{margin:.15rem 0 0}.test .test__h{font-size:var(--fs-md);margin:var(--sp-4) 0 var(--sp-2)}.test .test__units{display:grid;gap:.35rem}.test .test__unit{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:.45rem .8rem;font-size:var(--fs-sm)}.test .test__unit b{font-variant-numeric:tabular-nums}.test .test__unit.ok b{color:var(--good)}.test .test__unit.no b{color:var(--bad)}.test .test__unitcode{font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent-ink);min-width:2em}.test .test__review{list-style:none;margin:0 0 var(--sp-4);padding:0;display:grid;gap:.5rem}.test .test__item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:.7rem .9rem}.test .test__item.ok{border-left:3px solid var(--good)}.test .test__item.no{border-left:3px solid var(--bad)}.test .test__itemhead{display:flex;gap:.55rem;align-items:baseline;flex-wrap:wrap}.test .test__mark{font-weight:700;flex:none}.test .test__item.ok .test__mark{color:var(--good)}.test .test__item.no .test__mark{color:var(--bad)}.test .test__itemprompt{flex:1;min-width:14ch}.test .test__answers{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.2rem;margin:.45rem 0 0;font-size:var(--fs-sm);color:var(--ink-soft)}.test .btn--sm{padding:.25rem .7rem;font-size:var(--fs-xs)}.widget .segmented{display:inline-flex;gap:.2rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);padding:.2rem}.widget .segmented button{font-family:var(--font-body);font-weight:600;font-size:var(--fs-sm);border:none;background:transparent;color:var(--ink-soft);border-radius:var(--r-pill);padding:.35rem .8rem;cursor:pointer}.widget .segmented button.on{background:var(--accent);color:#fff}.widget select{font-family:var(--font-body);font-weight:600;font-size:var(--fs-sm);color:var(--ink);background:var(--surface);border:1.5px solid var(--line-strong);border-radius:var(--r-sm);padding:.45rem .6rem}
