@layer lab-base{:root{--band-a:#dbe2ff;--band-a-line:#3b5bdb;--band-b:#ffe6cf;--band-b-line:#f08c00;--band-c:#d8f3df;--band-c-line:#2fa84f}@media (prefers-reduced-motion:reduce){.sq,.sq .big{transition:none!important;animation:none!important}}.board{border:3px solid var(--ink);background:var(--ink);-webkit-user-select:none;user-select:none;border-radius:10px;grid-template-columns:repeat(9,1fr);width:min(100%,468px);margin:0 auto;display:grid;overflow:hidden}.sq{aspect-ratio:1;background:var(--card);border-right:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:center;align-items:center;transition:background .18s,box-shadow .18s;display:flex;position:relative}.sq:nth-child(9n){border-right:none}.sq.boxr{border-right:1px solid var(--ink-soft)}.sq.boxb{border-bottom:1px solid var(--ink-soft)}.sq .big{font-family:var(--mono);color:var(--accent);font-size:clamp(16px,5.2vw,23px);font-weight:600;line-height:1}.sq.given .big{color:var(--ink)}.sq.filled .big{color:var(--accent);animation:.3s both vega-pop}.sq.given{background:#f6f3ec}.sq .cands{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);width:100%;height:100%;padding:2px;display:grid}.sq .cand{font-family:var(--mono);color:var(--muted);justify-content:center;align-items:center;font-size:clamp(8px,2.4vw,11px);font-style:normal;font-weight:600;line-height:1;display:flex}.sq .cand.off{visibility:hidden}.sq .cand.hot{color:var(--accent);font-weight:600;transform:scale(1.18)}.sq .cand.gone{color:var(--bad);opacity:.85;text-decoration:line-through}.sq .cand.pair{color:var(--warn);background:var(--warn-soft);border-radius:4px;font-weight:600}.sq .cand.lock{color:var(--good);background:var(--good-soft);border-radius:4px;font-weight:600}.sq .x{font-family:var(--mono);color:var(--bad);opacity:.78;font-size:16px;font-weight:600}.sq.band-a{background:var(--band-a)}.sq.band-b{background:var(--band-b)}.sq.band-c{background:var(--band-c)}.sq.band-a.band-b{background:linear-gradient(135deg, var(--band-a) 50%, var(--band-b) 50%)}.sq.band-a.band-c{background:linear-gradient(135deg, var(--band-a) 50%, var(--band-c) 50%)}.sq.band-b.band-c{background:linear-gradient(135deg, var(--band-b) 50%, var(--band-c) 50%)}.sq.house{box-shadow:inset 0 0 0 2.5px var(--accent);z-index:1}.sq.house-row{box-shadow:inset 0 2.5px 0 var(--accent), inset 0 -2.5px 0 var(--accent)}.sq.house-col{box-shadow:inset 2.5px 0 0 var(--accent), inset -2.5px 0 0 var(--accent)}.sq.src{background:var(--hi)}.sq.src .big{color:var(--accent-deep)}.sq.src:after{content:"";border:1px solid var(--accent);border-radius:8px;position:absolute;inset:3px}.sq.target,.sq.pick{background:var(--good-soft);box-shadow:inset 0 0 0 3px var(--good);z-index:2}.sq.target .big,.sq.pick .big{color:var(--good)}.sq.target .x,.sq.pick .x{display:none}.sq.seen{background:var(--accent-soft)}.sq.elim:not(.target){background:var(--bad-soft)}.sq.try{background:var(--warn-soft);box-shadow:inset 0 0 0 2px var(--warn)}.sq.try .big{color:var(--warn)}.sq.dead{background:var(--bad)}.sq.dead .x{color:#fff;opacity:1}.sq.guess{background:var(--hi);box-shadow:inset 0 0 0 3px var(--warn);z-index:2}.sq.guess .big{color:var(--accent-deep)}.sq.colA{background:#dbe8ff}.sq.colB{background:#d8f3df}.sq.colA .cand.on2,.sq.colB .cand.on2{font-weight:600;transform:scale(1.18)}.sq.colA .cand.on2{color:#1c5fd0}.sq.colB .cand.on2{color:#1f9d57}.sq.peerflash{background:var(--accent-soft)}.sq.selflash{box-shadow:inset 0 0 0 3px var(--accent-2);z-index:3}.sq.selflash .big{color:var(--accent)}.tchips{flex-wrap:wrap;align-items:center;gap:6px;margin:2px 0 0;display:flex}.tchip{font-family:var(--mono);border:1px solid var(--line);color:var(--ink-soft);background:#fff;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:600}.tchip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}.tchip.done{background:var(--good-soft);color:var(--good);border-color:#b4eecf}.vega-legend .sw.band-a{background:var(--band-a);border-color:var(--band-a-line)}.vega-legend .sw.band-b{background:var(--band-b);border-color:var(--band-b-line)}.vega-legend .sw.band-c{background:var(--band-c);border-color:var(--band-c-line)}.vega-legend .sw.tgt{background:var(--good-soft);border-color:var(--good)}.vega-legend .sw.srcsw{background:var(--hi);border-color:var(--accent)}.stepmeta{font-family:var(--mono);color:var(--muted);align-self:center;margin-left:auto;font-size:11px}div.vega-lab:has(>.ur-types){box-shadow:none;background:0 0;border:none;margin:16px 0;overflow:visible}.ur-types{gap:14px;margin:16px 0;display:grid}.ur-type{border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow);border-radius:16px;grid-template-columns:auto 1fr;align-items:center;gap:16px;padding:14px 16px;display:grid}.ur-type .urhead{font-family:var(--display);color:var(--accent-deep);margin:0 0 5px;font-size:14px}.ur-type .urtxt{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.62}.ur-type .urtxt b{color:var(--ink)}.ur-type .urkill{color:var(--good);margin-top:6px;font-size:12.5px;font-weight:600;display:block}.ur-mini{flex:none;grid-template-rows:repeat(2,54px);grid-template-columns:repeat(2,54px);gap:5px;display:grid}.ur-mini.one{grid-template-rows:54px;grid-template-columns:54px}.uc{border:1px solid var(--line);background:#fff;border-radius:9px;flex-wrap:wrap;place-content:center;gap:2px 4px;padding:4px;display:flex}.uc.roof{border-color:var(--warn);background:var(--warn-soft)}.uc.tgt{border-color:var(--good);background:var(--good-soft)}.uc i{font-family:var(--mono);color:var(--ink-soft);font-size:12px;font-style:normal;font-weight:600;line-height:1}.uc i.ext{color:var(--warn);font-weight:600}.uc i.del{color:var(--bad);text-decoration:line-through}.uc i.key{color:var(--good);font-weight:600}@media (width<=560px){.ur-type{grid-template-columns:1fr;justify-items:start}}.rulebox{grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0;display:grid}.rulecard{border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow);border-radius:14px;padding:12px 14px}.rulecard h4{font-family:var(--display);color:var(--accent-deep);margin:0 0 4px;font-size:13px}.rulecard p{color:var(--muted);margin:0;font-size:12px;line-height:1.55}@media (width<=560px){.rulebox{grid-template-columns:1fr}}}
