*{margin:0;padding:0;box-sizing:border-box}body{font-family:Arial,sans-serif;background-color:#121212;color:#fff;height:100vh;width:100vw;display:flex;justify-content:center;align-items:center}#root{width:100%;height:100%}.container{display:flex;flex-direction:column;align-items:center;width:100%;height:100%;padding:20px}.controls{margin-bottom:20px;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.bar-container{display:flex;align-items:flex-end;justify-content:space-between;height:400px;width:100%;padding:0 20px}:root{--bg:#0f172a;--panel:#111827;--text:#e5e7eb;--compare:#ef4444;--swap:#f59e0b;--pivot:#8b5cf6;--sorted:#22c55e;--bar:#334155;--accent:#6366f1}.sv-root{min-height:100vh;background:var(--bg);color:var(--text);display:flex;flex-direction:column;align-items:center;padding:16px}.sv-title{margin:8px 0 16px;font-size:20px;font-weight:800;letter-spacing:.3px}.sv-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:var(--panel);padding:12px;border-radius:12px;border:1px solid #1f2937;margin-bottom:16px}.row{display:flex;align-items:center;gap:8px}.select,input[type=range]{accent-color:var(--accent)}.btn{background:#0b1220;color:var(--text);border:1px solid #1f2937;padding:8px 12px;border-radius:10px;cursor:pointer}.btn.primary{background:var(--accent);border-color:var(--accent)}.btn.warn{background:#b91c1c;border-color:#b91c1c}.small{font-size:12px;opacity:.85}.sv-board{width:min(1100px,95vw);height:54vh;background:#0b1220;border:1px solid #1f2937;border-radius:12px;padding:10px 8px 14px;display:flex;gap:2px;align-items:flex-end;justify-content:stretch}.bar{flex:1;background:var(--bar);border-radius:6px 6px 0 0;transition:height .12s linear,background 80ms linear,transform 80ms linear}.bar.compare{background:var(--compare)}.bar.swap{background:var(--swap);transform:translateY(-2px)}.bar.pivot{background:var(--pivot)}.bar.sorted{background:var(--sorted)}.sv-footer{margin-top:10px;font-size:12px;opacity:.85}.legend{padding:2px 6px;border-radius:6px;border:1px solid #1f2937;margin:0 4px}.legend.compare{background:var(--compare);color:#fff}.legend.swap{background:var(--swap);color:#000}.legend.pivot{background:var(--pivot);color:#fff}.legend.sorted{background:var(--sorted);color:#000}
