.practice .topic-head{margin-bottom:18px}.practice .kicker{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:.95rem;display:flex}.practice .code{color:color-mix(in srgb, var(--primary) 70%, var(--text));background:color-mix(in srgb, var(--primary) 12%, transparent);border-radius:99px;padding:.1em .7em;font-weight:700}.practice h1{margin:.3em 0 .2em;font-size:clamp(1.7rem,4vw,2.3rem)}.intro-card,.results{text-align:center}.big-icon,.medal{font-size:3.2rem;line-height:1.2}.intro-card .lead{max-width:560px;margin:.4em auto .8em}.intro-card .chips{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.best{color:var(--primary);font-weight:700}.btn-start{cursor:pointer;border:none;padding:.7em 2.4em;font-family:inherit;font-size:1.15rem;font-weight:800}.print-hint{margin:.8em 0 0;font-weight:700}.print-hint a{text-decoration:none}.readiness{margin-top:1em;font-size:.92rem}.ready-note{color:var(--muted);margin:0}.ready-note.ready{color:#16a34a;font-weight:700}.unfinished{flex-wrap:wrap;justify-content:center;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.unfinished a{border:1px solid var(--primary);border-radius:99px;padding:.15em .9em;font-weight:700;text-decoration:none;display:block}.practice .topic-progress{z-index:5;background:var(--bg);align-items:center;gap:12px;margin-bottom:14px;padding:10px 0;display:flex;position:sticky;top:64px}.practice .track{background:var(--border);border-radius:99px;flex:1;height:10px;position:relative;overflow:hidden}.practice .fill{background:linear-gradient(90deg, var(--primary), var(--accent));border-radius:99px;width:0;transition:width .5s;position:absolute;inset-block:0;inset-inline-start:0}.practice .label{color:var(--muted);flex:none;font-size:.85rem;font-weight:700}.pq{scroll-margin-top:120px;animation:.4s ease-out step-in}.pq .check-options{gap:10px;display:grid}.check-label-inline{color:var(--muted);margin:0 0 .3em;font-size:.9rem;font-weight:800}.next-q,.btn-check{font:inherit;cursor:pointer;border:none;margin:16px auto 0;font-weight:700;display:block}.btn-check:disabled{opacity:.45;cursor:not-allowed}.btn-check.btn-outline{border:2px solid var(--primary)}.tf-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.option.tf{justify-content:center;font-size:1.1rem;font-weight:800}.bank-hint{color:var(--muted);margin:.8em 0 .4em;font-size:.85rem}.bank{border:2px dashed var(--border);border-radius:12px;flex-wrap:wrap;gap:8px;min-height:54px;padding:10px;display:flex}.chip{border:2px solid var(--primary);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:99px;padding:6px 14px;font-weight:700}.chip:hover:not(:disabled),.chip.selected{background:var(--primary);color:var(--surface)}.slot{border:2px dashed var(--muted);background:var(--bg);min-width:7em;min-height:2.2em;color:var(--text);font:inherit;vertical-align:middle;cursor:pointer;border-radius:10px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;margin:2px 4px;padding:2px 12px;font-weight:700;display:inline-flex}.slot.chosen{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent)}.slot.filled{border-style:solid;border-color:var(--primary);background:color-mix(in srgb, var(--primary) 10%, var(--surface))}.slot-empty{color:var(--muted);font-size:.85em;font-weight:400}.slot.right,.chip.right,.number-input.right{background:color-mix(in srgb, #16a34a 14%, var(--surface));color:var(--text);border-color:#16a34a}.slot.wrong,.chip.wrong,.number-input.wrong{background:color-mix(in srgb, #dc2626 10%, var(--surface));color:var(--text);border-color:#dc2626}.slot:disabled,.chip:disabled{cursor:default}.check-feedback.part{color:#d97706}.fix{color:#16a34a;font-weight:800}.fill-text{margin:0;font-size:1.1rem;line-height:2.4}.match-list{gap:8px;display:grid}.match-row{grid-template-columns:minmax(6em,.8fr) auto 1.6fr;align-items:center;gap:8px;display:grid}.match-left{font-weight:800}.match-arrow{color:var(--muted)}.match-row .slot{width:100%;margin:0}.order-list{gap:6px;margin:0;padding-inline-start:1.6em;display:grid}.order-list li::marker{color:var(--primary);font-weight:800}.order-list .slot{justify-content:flex-start;width:100%;margin:0}.sort-groups{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px;margin-top:12px;display:grid}.sort-group{border:2px solid var(--border);background:var(--bg);min-height:110px;color:var(--text);font:inherit;cursor:pointer;text-align:center;border-radius:12px;flex-direction:column;align-items:stretch;gap:8px;padding:10px;display:flex}.sort-groups.armed .sort-group:not(:disabled){border-color:var(--accent);border-style:dashed}.sort-name{color:var(--primary);font-weight:800}.sort-items{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.number-step{border-top:1px dashed var(--border);margin-top:18px;padding-top:14px}.number-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.number-input{border:2px solid var(--border);background:var(--surface);width:9em;color:var(--text);font:inherit;text-align:center;border-radius:10px;padding:8px 12px;font-size:1.15rem;font-weight:700}.number-input:focus{border-color:var(--primary);outline:none}.number-unit{direction:ltr;font-weight:800}.number-row .btn-check{margin:0}.think-area{border:2px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:10px;padding:10px 12px}.model-answer{border-inline-start:5px solid var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:10px;margin-top:12px;padding:12px 14px}.results{border:2px solid var(--accent)}.percent{color:var(--primary);margin:0;font-size:3rem;font-weight:800;line-height:1.2}.results .finish-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.results .btn{font:inherit;cursor:pointer;border:none;font-weight:700}.results .btn-outline{border:2px solid var(--primary)}.results .prev-link{color:var(--muted);margin-top:14px;font-size:.9rem;text-decoration:none;display:inline-block}@media (width<=560px){.match-row{border-bottom:1px solid var(--border);grid-template-columns:1fr;gap:4px;padding-bottom:8px}.match-arrow{display:none}}@media (prefers-reduced-motion:reduce){.pq{animation:none}}
