.cube-app{--bg-1:#12161b;--bg-2:#1b2128;--card:#1d2228eb;--card-solid:#1d2228;--border:#2a3037;--ink:#f1f3f5;--ink-2:#b9c1c9;--ink-3:#8b949e;--accent:#f2b81f;--accent-ink:#ffe08a;--accent-soft:#3a3016;--good:#25c45f;--same:#e3a21a;--bad:#f2555a;--band:#f2b81f1a;--band-cur:#f2b81f52;--btn:#232930;--btn-hover:#2c333b;--shadow:none;color:var(--ink);background:radial-gradient(1200px 800px at 30% 20%, var(--bg-2), var(--bg-1));font-family:Inter,system-ui,sans-serif}.cube-app #app{height:calc(100vh - var(--chrome,180px));min-height:620px}.cube-app .loading{background:var(--bg-1)}.cube-app #panel{background:#0000002e}.cube-app .brand{pointer-events:none}.cube-app #app{grid-template-columns:1fr 380px;display:grid}.cube-app #stage{min-height:0;position:relative}.cube-app #stage canvas{outline:none;width:100%;height:100%;display:block}.cube-app .brand{color:inherit;z-index:2;align-items:center;gap:10px;font-family:Inter,sans-serif;font-size:22px;font-weight:600;text-decoration:none;display:flex;position:absolute;top:20px;left:24px}.cube-app .brand small{color:var(--ink-2);background:var(--card);border:1px solid var(--border);border-radius:99px;padding:3px 10px;font-family:Inter;font-size:13px;font-weight:700}.cube-app .hint-chip{background:var(--card-solid);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--ink-2);white-space:nowrap;border-radius:99px;align-items:center;gap:10px;padding:10px 16px;font-size:14px;font-weight:700;transition:opacity .25s;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.cube-app .hint-chip.hidden{opacity:0;pointer-events:none}.cube-app .hint-chip b{color:var(--ink)}.cube-app .toast{opacity:0;background:var(--ink);color:var(--card-solid);pointer-events:none;border-radius:12px;padding:9px 16px;font-size:14px;font-weight:700;transition:all .25s;position:absolute;top:22px;left:50%;transform:translate(-50%,-10px)}.cube-app .toast.show{opacity:1;transform:translate(-50%)}.cube-app .loading{color:var(--ink-2);background:inherit;z-index:5;place-items:center;font-weight:700;transition:opacity .4s;display:grid;position:absolute;inset:0}.cube-app #panel{border-left:1px solid var(--border);background:#ffffff2e;flex-direction:column;gap:14px;padding:18px 18px 28px;display:flex;overflow-y:auto}.cube-app .card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);backdrop-filter:blur(8px);border-radius:20px;padding:16px}.cube-app .card h2{justify-content:space-between;align-items:center;margin:0 0 12px;font-family:Inter,sans-serif;font-size:16px;font-weight:600;display:flex}.cube-app .card h2 .sub{color:var(--ink-3);font-family:Inter;font-size:12px;font-weight:700}.cube-app .dist{align-items:center;gap:16px;display:flex}.cube-app .ring{flex:none;width:104px;height:104px;position:relative}.cube-app .ring svg{transform:rotate(-90deg)}.cube-app .ring .num{text-align:center;place-items:center;display:grid;position:absolute;inset:0}.cube-app .ring .num b{font-family:Inter;font-size:40px;font-weight:700;line-height:1;display:block}.cube-app .ring .num span{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:800}.cube-app .dist-text .headline{font-family:Inter;font-size:19px;font-weight:600;line-height:1.2}.cube-app .dist-text .meta{color:var(--ink-2);margin-top:4px;font-size:13px}.cube-app .next{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;font-size:12px;font-weight:700;display:flex}.cube-app .pill{background:var(--accent-soft);color:var(--accent-ink);border-radius:8px;padding:2px 8px;font-family:Inter;font-size:13px;font-weight:800}.cube-app .solved-pop{animation:.6s pop}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.04)}to{transform:scale(1)}}.cube-app .row{gap:8px;display:flex}.cube-app .row>*{flex:1}.cube-app button{font:inherit;color:var(--ink);cursor:pointer;background:var(--btn);border:1px solid var(--border);border-radius:12px;padding:9px 10px;font-size:14px;font-weight:800;transition:background .15s,transform 80ms,box-shadow .15s;box-shadow:0 1px #0000000a}.cube-app button:hover{background:var(--btn-hover)}.cube-app button:active{transform:translateY(1px)}.cube-app button:disabled{opacity:.45;cursor:default}.cube-app button.primary{background:var(--accent);color:#3d2c00;border-color:#0000}.cube-app button.primary:hover{filter:brightness(1.05);background:var(--accent)}.cube-app .actions{margin-top:14px}.cube-app .tabs{background:var(--accent-soft);border-radius:12px;gap:4px;margin-bottom:12px;padding:4px;display:flex}.cube-app .tabs button{box-shadow:none;color:var(--ink-2);background:0 0;border:none;border-radius:9px;flex:1;padding:7px 4px;font-size:13px}.cube-app .tabs button.on{background:var(--card-solid);color:var(--ink);box-shadow:0 1px 3px #00000014}.cube-app .tabpane{display:none}.cube-app .tabpane.on{display:block}.cube-app .help{color:var(--ink-2);margin:0 0 10px;font-size:13px;line-height:1.45}.cube-app .pad{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.cube-app .pad.four{grid-template-columns:repeat(4,1fr);margin-top:6px}.cube-app .pad button{padding:8px 0;font-family:Inter;font-size:15px;font-weight:600}.cube-app .pad .lbl{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;grid-column:1/-1;margin-top:4px;font-size:11px;font-weight:800}.cube-app textarea{width:100%;color:var(--ink);background:var(--card-solid);border:1px solid var(--border);resize:vertical;border-radius:12px;min-height:64px;padding:10px 12px;font:600 15px Inter,sans-serif}.cube-app textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.cube-app .check{color:var(--ink-2);align-items:center;gap:8px;margin:8px 0;font-size:13px;font-weight:700;display:flex}.cube-app .err{color:var(--bad);min-height:16px;font-size:12px;font-weight:700}.cube-app .switch{color:var(--ink-2);justify-content:space-between;align-items:center;margin-top:10px;font-size:13px;font-weight:700;display:flex}.cube-app .switch input{appearance:none;background:var(--border);cursor:pointer;border-radius:99px;width:38px;height:22px;transition:background .2s;position:relative}.cube-app .switch input:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:left .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0003}.cube-app .switch input:checked{background:var(--accent)}.cube-app .switch input:checked:after{left:19px}.cube-app #tree{width:100%;display:block}.cube-app #tree text{font-family:Inter}.cube-app #tree .band{fill:var(--band)}.cube-app #tree .band.cur{fill:var(--band-cur)}.cube-app #tree .lab{fill:var(--ink-3);font-size:10px;font-weight:700}.cube-app #tree .lab.cur{fill:var(--ink);font-weight:800}.cube-app #tree .twig{stroke:var(--ink-3);stroke-width:1px;opacity:.35;fill:none}.cube-app #tree .twigdot{fill:var(--ink-3);opacity:.4}.cube-app #tree .path{stroke:var(--accent);stroke-width:3.5px;fill:none;stroke-linecap:round}.cube-app #tree .pnode{fill:var(--accent);stroke:var(--card-solid);stroke-width:2px}.cube-app #tree .mvlab{fill:var(--ink-2);font-size:10px;font-weight:800}.cube-app #tree .child{cursor:pointer}.cube-app #tree .child circle{stroke:var(--card-solid);stroke-width:2px;transition:r .15s}.cube-app #tree .child:hover circle{r:13}.cube-app #tree .child text{fill:#fff;pointer-events:none;font:700 9px Inter}.cube-app #tree .cedge{fill:none;stroke-width:1.6px;opacity:.55}.cube-app #tree .you circle{fill:var(--ink);stroke:var(--accent);stroke-width:3px}.cube-app #tree .you text{fill:var(--card-solid);font:700 9px Inter}.cube-app .legend{color:var(--ink-2);flex-wrap:wrap;gap:14px;margin-top:8px;font-size:12px;font-weight:700;display:flex}.cube-app .legend i{vertical-align:0;border-radius:50%;width:9px;height:9px;margin-right:5px;display:inline-block}.cube-app .spark-wrap{border-top:1px dashed var(--border);margin-top:12px;padding-top:10px}.cube-app .spark-wrap .t{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:800}.cube-app #spark{width:100%;height:54px;margin-top:4px;display:block}.cube-app details{color:var(--ink-2);font-size:13px;line-height:1.5}.cube-app details summary{cursor:pointer;color:var(--ink);font-weight:800}.cube-app kbd{background:var(--accent-soft);border-radius:5px;padding:1px 5px;font:700 11px Inter}@media (width<=860px){.cube-app #app{grid-template-columns:1fr;height:auto;min-height:0}.cube-app #stage{height:58vh}.cube-app #panel{border-left:none;padding:14px 16px 28px;overflow:visible}.cube-app .brand{font-size:19px;top:14px;left:16px}.cube-app .hint-chip{white-space:normal;text-align:center;flex-wrap:wrap;justify-content:center;gap:4px 8px;width:max-content;max-width:calc(100% - 32px);font-size:12px;bottom:12px}}
