/* Scoped to the new rubik frames; existing widget documents are untouched. */
:root{--rk-paper:#fafaf8;--rk-raised:#fff;--rk-ink:#1a1a1a;--rk-muted:#6d6d6d;--rk-line:#d8d6d2;--rk-accent:#ffb000;--rk-active:#b07b08;--rk-code:#f2f0ec;color-scheme:light}
:root[data-mode=dark]{--rk-paper:#0d0d0d;--rk-raised:#141414;--rk-ink:#e6e4e0;--rk-muted:#8f8d88;--rk-line:#2a2a28;--rk-active:#ffb000;--rk-code:#161614;color-scheme:dark}
@media(prefers-color-scheme:dark){:root:not([data-mode=light]){--rk-paper:#0d0d0d;--rk-raised:#141414;--rk-ink:#e6e4e0;--rk-muted:#8f8d88;--rk-line:#2a2a28;--rk-active:#ffb000;--rk-code:#161614;color-scheme:dark}}
html:has(.rubik-widget),body:has(.rubik-widget){background:var(--rk-paper);color:var(--rk-ink)}
.kz-widget:has(.rubik-widget){padding:16px}
.rubik-widget{font:14px/1.6 system-ui,-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;color:var(--rk-ink)}
.rubik-widget *{box-sizing:border-box}
.rk-controls{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;margin:0 0 12px}
.rk-controls label{display:inline-flex;gap:6px;align-items:center;max-width:100%}
.rubik-widget button,.rubik-widget select{font:inherit;color:var(--rk-ink);border:1px solid var(--rk-line);border-radius:3px;padding:5px 9px;background:var(--rk-paper);min-height:34px;max-width:100%}
.rubik-widget select{height:auto;min-width:0}
.rubik-widget button{cursor:pointer}
.rubik-widget button:hover{background:var(--rk-code)}
.rubik-widget button.primary{border-color:var(--rk-active)}
.rubik-widget button:disabled{opacity:.45;cursor:default}
.rubik-widget :is(button,select,input):focus-visible{outline:2px solid var(--rk-active);outline-offset:3px}
.rubik-widget input{accent-color:var(--rk-active)}
.rk-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.rk-stage figure{margin:0;min-width:0}
.rk-stage figcaption,.rk-label{color:var(--rk-muted);font:12px/1.5 ui-monospace,Menlo,monospace;text-align:center;min-height:20px;overflow-wrap:anywhere}
.rubik-widget canvas{display:block;width:100%;height:auto;aspect-ratio:1.18}
.rubik-widget .rk-ring{aspect-ratio:1.02}
.rubik-widget .rk-square{max-width:360px;aspect-ratio:1.35;margin:auto}
.rk-status{margin:12px 0 0;font-size:13px;min-height:22px;overflow-wrap:anywhere;color:var(--rk-muted)}
.rk-status strong{color:var(--rk-ink);font-weight:500}
.rk-status .rk-current{color:var(--rk-active)}
.rk-tokens{font-family:ui-monospace,Menlo,monospace;letter-spacing:.04em;word-spacing:.2em}
.rk-node-select{max-width:190px}
.rk-track{max-width:138px}
.rk-node-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;position:relative;padding:26px 24px;margin:0;aspect-ratio:1;align-items:center}
.rk-node-grid svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.rubik-widget .rk-node{position:relative;z-index:1;justify-self:center;border:1px solid var(--rk-muted);border-radius:50%;width:44px;height:44px;min-height:0;padding:0;background:var(--rk-paper);font:12px ui-monospace,Menlo,monospace}
.rubik-widget .rk-node.discovered{background:var(--rk-code);color:var(--rk-ink)}
.rubik-widget .rk-node.frontier{border:2px solid var(--rk-active)}
.rubik-widget .rk-node.selected{outline:2px solid var(--rk-active);outline-offset:3px}
.rubik-widget .rk-node.goal{font-weight:700}
.rk-square-state{display:flex;gap:12px;justify-content:center;margin:6px 0}
.rk-square-state span{font:14px ui-monospace,Menlo,monospace;padding:4px 8px;border-bottom:2px solid transparent}
.rk-square-state .current{color:var(--rk-active);border-color:var(--rk-active)}
.rk-failure{color:var(--rk-ink);padding:16px}
@media(max-width:560px){.rk-stage{grid-template-columns:1fr;gap:12px}.rk-stage .rk-cube{max-width:360px;margin:auto;aspect-ratio:1.5}.rk-stage .rk-ring{max-width:400px;margin:auto}.rk-controls{gap:8px;font-size:13px}.rk-stage[data-compare=true] canvas{max-width:360px;margin:auto;aspect-ratio:1.5}.rk-node-grid{max-width:400px;width:100%;margin:auto}}
@media(pointer:coarse){.rubik-widget :is(button,select){min-height:44px}}
