*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:18px;line-height:1.45}.page{max-width:1100px;margin:0 auto;padding:28px 20px 48px}.page.narrow{max-width:640px}h1{font-size:2rem;margin:0 0 4px}.subtitle{color:var(--muted);margin:0 0 24px}.panel{border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}.panel h2{font-size:1.1rem;margin:0 0 12px}.row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.row+.row{margin-top:14px}.field{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--muted)}input[type=number],input[type=text]{font:inherit;font-size:1rem;color:var(--text);padding:6px 10px;width:130px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}input.wide{width:auto;flex:1 1 260px}input[type=range]{accent-color:var(--accent)}button{font:inherit;font-size:.9rem;color:var(--text);padding:8px 14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer}button:hover:not(:disabled){border-color:var(--text)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:600}button:disabled{opacity:.45;cursor:default}.algorithm-option{display:inline-flex;align-items:center;gap:8px;padding:6px 0;border:0;font-size:.9rem;cursor:pointer;color:var(--muted)}.algorithm-option.on{color:var(--text)}.algorithm-option input[type=checkbox]{width:16px;height:16px;margin:0;cursor:pointer}.algorithm-option:focus-within{outline:none}.algorithm-option input.algorithm-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;display:inline-grid;place-content:center;width:16px;height:16px;margin:0;border:2px solid var(--algorithm-color);border-radius:3px;background:var(--bg);cursor:pointer;box-shadow:0 0 8px color-mix(in srgb,var(--algorithm-color) 65%,transparent)}.algorithm-option input.algorithm-checkbox:checked{background:var(--algorithm-color)}.algorithm-option input.algorithm-checkbox:checked:after{content:"";width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-2px}.algorithm-option input.algorithm-checkbox:disabled{cursor:default}.dot{width:12px;height:12px;border-radius:50%;display:inline-block;flex:none}.progress{height:10px;margin:16px 0 8px;background:var(--surface);border:1px solid var(--border);border-radius:6px;overflow:hidden}.progress>div{height:100%;background:var(--accent);transition:width .2s}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem;font-variant-numeric:tabular-nums}th,td{padding:8px 10px;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap}th:first-child,td:first-child{text-align:left}th{color:var(--muted);font-weight:600}tr.skipped td{color:var(--muted)}.muted{color:var(--muted);font-size:.85rem}.error{color:var(--danger);font-weight:600}.empty{color:var(--muted);padding:24px 0;text-align:center}.nav-link{display:block;padding:18px 20px;margin:12px 0;border:1px solid var(--border);border-radius:12px;color:inherit;text-decoration:none;font-size:1.15rem;font-weight:600}.nav-link:hover{border-color:var(--accent)}.cube-layout{display:flex;flex-wrap:wrap;gap:16px}.cube-stage{flex:2 1 420px;height:min(70vh,560px);border:1px solid var(--border);border-radius:12px}.cube-controls{flex:1 1 300px}.move-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.move-grid button{padding:8px 0;font-weight:600}.mono{font-family:ui-monospace,monospace;font-size:.85rem;word-break:break-word}@media(max-width:600px){html,body{font-size:16px}.move-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
