:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f4f5f7;--card:#fff;--ink:#1b1f27;--muted:#5d6573;--line:#d9dde4;--accent:#2563eb;--accent-ink:#fff;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f1115;--card:#171a21;--ink:#e6e8ec;--muted:#9aa1ad;--line:#2c313b;--accent:#3b82f6}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;line-height:1.4}.app{max-width:1400px;margin:0 auto;padding:12px}header{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:8px 16px;margin-bottom:12px;display:flex}h1{margin:0;font-size:1.4rem}h2{margin:0 0 8px;font-size:.95rem}.sub{color:var(--muted);margin:2px 0 0;font-size:.9rem}main{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:12px;display:grid}@media (width<=900px){main{grid-template-columns:minmax(0,1fr)}}.stage,.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px}aside{gap:12px;display:grid}.toolbar{flex-wrap:wrap;align-items:end;gap:6px;margin-bottom:8px;display:flex}button,select,input[type=number]{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;min-height:32px;padding:5px 9px}button{cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}button.x{min-height:24px;padding:0 7px}.field{color:var(--muted);gap:2px;min-width:0;margin-bottom:8px;font-size:.8rem;display:grid}.field.inline{margin:0}.field input[type=number],.field select{width:100%}.row{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.row>.field{flex:70px}.check{align-items:center;gap:8px;margin-bottom:8px;font-size:.9rem;display:flex}.canvas-wrap{width:100%}canvas{touch-action:none;border-radius:6px;max-width:100%;display:block}.hint,.note{color:var(--muted);margin:6px 0 0;font-size:.8rem}.status{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;font-size:.85rem;display:flex}.status progress{width:100%;height:6px;accent-color:var(--accent)}.status span{color:var(--muted);flex:200px}.tablewrap{overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.8rem}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:3px 5px}tr.sel{background:color-mix(in srgb, var(--accent) 18%, transparent)}tbody tr{cursor:pointer}footer{color:var(--muted);margin:14px 0 6px;font-size:.8rem}
