:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--body-text);background:var(--bg);--bg:#0c0c18;--surface:#0f0f1e;--surface-raised:#12102a;--text:#e4def5;--text-muted:#8884a6;--accent:#b890ff;--border:#2a1f4a;--border-focus:#8056cf;--danger:#ff8c9e;--board-deep:#1c0842;--board-surface:#0e0830;--petal:#0c0c18;--ring:#8c78c857;--token-bg:#0c0c18;--token-text:#0c0c18;--value-1:#ff6b6b;--value-2:#ffd93d;--value-3:#6bcb77;--value-4:#4d96ff;--value-5:#c77dff;--value-6:#ff9f40;--value-fallback:#a0a0c0;--button-bg:#1a0840;--button-border:#4a20a0;--button-hover:#2a1060;--input-text:#a0c0ff;--title-text:#9470d0;--body-text:#a0a0c0;--primary-bg:#271052;--primary-border:#7040b8;--primary-text:#d4baff;--secondary-text:#aaa8c8;--scrollbar:#3a2a6a;--hit-hover:#b890ff1f;--hit-focus:#b890ff59;--picker-border:#6840ac;--picker-shadow:#0008;--clear-bg:#302b43;--clear-text:#c0bad4;--clear-hover:#463d60;--flower-outline:#6040a0;--empty-title:#b8a5d6;--dialog-border:#4a287c;--dialog-bg:#101020;--dialog-backdrop:#0c0c18e0;--result-failure:#c060ff;--result-success:#60d0a0;font-synthesis:none;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--surface:#fff;--surface-raised:#fff;--text:#000;--text-muted:#000;--accent:#000;--border:#000;--border-focus:#000;--danger:#000;--board-deep:#fff;--board-surface:#fff;--petal:#fff;--ring:#000;--token-bg:#fff;--token-text:#000;--value-fallback:#000;--button-bg:#fff;--button-border:#000;--button-hover:#f2f2f2;--input-text:#000;--title-text:#000;--body-text:#000;--primary-bg:#fff;--primary-border:#000;--primary-text:#000;--secondary-text:#000;--scrollbar:#000;--hit-hover:#00000014;--hit-focus:#0003;--picker-border:#000;--picker-shadow:transparent;--clear-bg:#fff;--clear-text:#000;--clear-hover:#f2f2f2;--flower-outline:#000;--empty-title:#000;--dialog-border:#000;--dialog-bg:#fff;--dialog-backdrop:#ffffffe0;--result-failure:#000;--result-success:#000}*,:before,:after{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,input[type=number],select{border:1px solid var(--border);border-radius:4px;min-height:42px}button{background:var(--button-bg);border-color:var(--button-border);color:var(--accent);cursor:pointer;letter-spacing:.04em;padding:8px 18px;font-size:14px;transition:background .15s,border-color .15s}button:hover:enabled{background:var(--button-hover);border-color:var(--border-focus)}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input[type=number],select{color:var(--input-text);background:var(--surface);padding:8px 12px;font-size:16px}input[type=range]{accent-color:var(--border-focus);cursor:pointer;width:140px;height:42px;margin:0}h1,h2,p{margin:0}.app-layout{grid-template-columns:190px minmax(0,1fr);height:100dvh;min-height:540px;display:grid}.settings-sidebar{border-right:1px solid var(--border);background:var(--bg);flex-direction:column;align-items:stretch;gap:22px;padding:32px 20px;display:flex}.settings-sidebar h2{letter-spacing:.06em;color:var(--text-muted);font-size:12px;font-weight:400}.settings-sidebar select,.settings-sidebar button{width:100%;font-size:13px}.settings-sidebar button{padding-inline:8px}.app-shell{flex-direction:column;gap:16px;min-width:0;height:100dvh;min-height:540px;padding:26px 28px 0;display:flex}.topbar{flex-direction:column;align-items:center;gap:24px;display:flex}h1{color:var(--title-text);text-transform:uppercase;letter-spacing:.16em;text-align:center;max-width:100%;font-size:clamp(18px,2.2vw,30px);font-weight:700}.topbar-controls{flex-wrap:wrap;justify-content:center;align-items:end;gap:16px;display:flex}.field{flex-direction:column;gap:7px;display:flex}.field>span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-size:11px}.field output{color:var(--body-text);float:right;font-variant-numeric:tabular-nums}.size-input{width:90px}.primary{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary-text)}.fit-button{padding-inline:12px}.status-row{text-align:center;color:var(--text-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 22px;min-height:20px;font-size:12px;display:flex}.status-pill{gap:8px;display:flex}.status-pill strong{color:var(--secondary-text);font-variant-numeric:tabular-nums;font-weight:400}.error{color:var(--danger)}.page-error{text-align:center;font-size:13px}.workspace{flex:1;min-height:0;position:relative}.board-wrap{scrollbar-color:var(--scrollbar) var(--bg);scrollbar-width:thin;width:100%;height:100%;padding:12px;overflow:auto}.board-canvas{margin:0 auto;position:relative}.board{width:100%;height:100%;display:block}.board-backdrop{fill:var(--bg)}.petal-fill{fill:var(--petal)}.perimeter-rings circle,.boundary-rings circle{fill:none;stroke:var(--ring);stroke-width:.018px;pointer-events:none}.edge-highlight{stroke:#0000;stroke-linecap:round;pointer-events:none}.edge-highlight.selected{stroke:var(--accent);opacity:.45}.edge-highlight.conflict{stroke:var(--danger);opacity:.8}.hitbox{stroke:#0000;cursor:pointer;outline:none}.hitbox:hover{stroke:var(--hit-hover)}.hitbox:focus-visible{stroke:var(--hit-focus)}.selection-ring{fill:none;stroke:var(--text);pointer-events:none}.selection-ring.conflict{stroke:var(--danger)}.token{pointer-events:none}.given-badge{fill:var(--value-color);stroke:none}.token.hint .given-badge{stroke:var(--text)}.token text{text-anchor:middle;dominant-baseline:middle;font-family:inherit;font-weight:700}.picker-anchor{z-index:2;width:300px;position:absolute;transform:translate(-50%)}.value-picker{background:var(--surface-raised);border:1px solid var(--picker-border);box-shadow:0 8px 28px var(--picker-shadow);border-radius:8px;padding:8px 10px 12px}.picker-header{color:var(--text);justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:11px;display:flex}.picker-type{color:var(--text-muted)}.picker-close{background:0 0;border:0;width:26px;min-height:24px;padding:0;font-size:20px;line-height:1}.picker-values,.number-grid{gap:5px;display:flex}.number-grid{flex:1;min-width:0}.number-grid .pad{aspect-ratio:1;flex:1;min-width:0}.pad{width:35px;min-height:35px;color:var(--token-text);background:var(--value-color);letter-spacing:0;border:2px solid #0000;border-radius:50%;place-items:center;padding:0;font-size:15px;font-weight:700;display:grid}.pad:hover:enabled{background:var(--value-color);border-color:#fff}.pad.active{outline:2px solid var(--text);outline-offset:1px}.clear-value{background:var(--clear-bg);color:var(--clear-text);flex-shrink:0;font-size:22px}.clear-value:hover:enabled{background:var(--clear-hover)}.entry-mode{gap:6px;margin-bottom:10px;display:flex}.entry-mode button{border-color:var(--border);min-height:30px;color:var(--text-muted);background:0 0;flex:1;padding:5px 8px;font-size:11px}.entry-mode button.active{background:var(--primary-bg);border-color:var(--border-focus);color:var(--text)}.pad.marker{border-color:var(--value-color);color:var(--value-color);background:0 0}.pad.marker.marked{background:var(--value-color);color:var(--token-text)}.pad.marker:hover:enabled{background:0 0}.pad.marker.marked:hover:enabled{background:var(--value-color)}.marker-help{color:var(--text-muted);margin-top:8px;font-size:11px;line-height:1.5}.petal-markers{pointer-events:none;text-anchor:middle;dominant-baseline:central;font-weight:700}.locked-message{color:var(--text-muted);padding:4px 0;font-size:12px}.picker-hint{width:100%;min-height:34px;margin-top:8px;font-size:12px}.board-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;height:100%;min-height:240px;display:flex}.empty-flower{fill:none;width:clamp(130px,23vh,220px);stroke:var(--flower-outline);stroke-width:.015px;margin-bottom:10px}.board-empty h2{color:var(--empty-title);font-size:16px;font-weight:400}.board-empty p{max-width:360px;color:var(--text-muted);font-size:12px;line-height:1.7}.legend{background:var(--bg);flex-direction:column;align-items:center;gap:12px;padding:14px 0 18px;display:flex}.legend-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 18px;font-size:12px;display:flex}.legend-value,.legend-type{align-items:center;gap:7px;display:inline-flex}.legend-value i{background:var(--value-color);border-radius:5px;width:22px;height:8px}.legend-divider{background:var(--border);width:1px;height:20px}.badge-example{background:var(--value-4);width:22px;height:22px;color:var(--token-text);border-radius:50%;place-items:center;font-style:normal;font-weight:700;display:grid}.badge-example.hint{border:2px solid var(--text)}.badge-example.player{color:var(--value-4);border:2px solid var(--value-4);background:var(--bg)}.keyboard-help{color:var(--text-muted);text-align:center;font-size:11px;line-height:1.6}kbd{font:inherit;color:var(--secondary-text)}.result-dialog{border:1px solid var(--dialog-border);width:min(480px,100vw - 32px);color:var(--secondary-text);background:var(--dialog-bg);text-align:center;border-radius:8px;padding:38px 28px}.result-dialog::backdrop,.explanation-dialog::backdrop{background:var(--dialog-backdrop)}.explanation-dialog{border:1px solid var(--dialog-border);width:min(820px,100vw - 24px);max-height:calc(100dvh - 32px);color:var(--text);background:var(--dialog-bg);overscroll-behavior:contain;scrollbar-color:var(--scrollbar) var(--dialog-bg);scrollbar-width:thin;border-radius:8px;padding:0;overflow-y:auto}.explanation-header{border-bottom:1px solid var(--border);background:var(--dialog-bg);justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;display:flex;position:sticky;top:0}.explanation-header h2{color:var(--accent);font-size:clamp(17px,2.4vw,22px);line-height:1.4}.explanation-close{flex-shrink:0;width:42px;padding:0;font-size:24px}.explanation-content{padding:24px;font-size:14px;line-height:1.8}.explanation-intro{color:var(--accent);margin-bottom:24px}.explanation-step{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) 220px;align-items:center;gap:24px;padding:24px 0;display:grid}.explanation-content h3{margin:0 0 12px;font-size:16px;line-height:1.5}.explanation-step-number{color:var(--accent)}.explanation-figure{background:#fff;border-radius:6px;place-items:center;margin:0;padding:12px;display:grid}.explanation-figure img{max-width:100%;height:auto;display:block}.explanation-controls{border-top:1px solid var(--border);margin-top:8px;padding-top:24px}.explanation-controls ul{margin:0;padding-left:20px}.explanation-controls li+li{margin-top:12px}.explanation-done{margin:28px auto 0;display:block}@media (width<=600px){.explanation-header,.explanation-content{padding:16px}.explanation-step{grid-template-columns:1fr;gap:16px}.explanation-figure{justify-self:center;width:min(260px,100%)}}.result-dialog h2{color:var(--result-failure);letter-spacing:.18em;text-transform:uppercase;margin-bottom:22px;font-size:28px}.result-dialog h2.solved{color:var(--result-success)}.result-dialog p{margin-top:10px;font-size:13px;line-height:1.7}.result-dialog .result-score{color:var(--text);font-size:28px}.result-score span{color:var(--text-muted);font-size:13px}.result-stats{color:var(--text-muted)}.result-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:24px;display:flex}:root[data-theme=light] .pad:hover:enabled{border-color:var(--text)}:root[data-theme=light] .entry-mode button.active{text-underline-offset:4px;text-decoration:underline}:root[data-theme=light] .selection-ring.conflict{stroke-dasharray:.035 .025}@media (width<=980px){.app-layout{flex-direction:column;min-height:740px;display:flex}.app-shell{flex:1;height:auto;min-height:0}.settings-sidebar{border-right:0;border-bottom:1px solid var(--border);flex-flow:wrap;align-items:end;gap:10px;padding:12px 16px}.settings-sidebar h2{display:none}.settings-sidebar .field{flex:1;min-width:86px}.settings-sidebar select{min-width:0;padding-inline:8px}.settings-sidebar button{white-space:nowrap;flex:1;width:auto;font-size:12px}}@media (width<=700px){.app-shell{gap:12px;min-height:0;padding:18px 10px 0}.topbar{gap:18px}.topbar-controls{gap:12px 10px}.topbar-controls button{padding-inline:14px}.field>span{font-size:10px}input[type=range]{width:110px}.size-input{width:74px}.status-row{gap:8px 14px;font-size:10px}.picker-anchor{width:320px;max-width:calc(100vw - 16px);position:fixed;bottom:116px;top:auto!important;left:50%!important}.picker-values,.number-grid{gap:6px}.pad{width:37px;min-height:40px}.legend{gap:10px;padding-bottom:12px}.legend-row{gap:10px 14px;max-width:350px}.legend-divider{flex-basis:100%;height:0}.keyboard-help{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}
