:root { --bg:#f4f6f8; --card:#fff; --ink:#1c2733; --muted:#5d6b7a; --line:#d5dbe1; --accent:#c8501a; --steel:#3c4a59; --ok:#1d7a46; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#14191f; --card:#1d252e; --ink:#e7ecf1; --muted:#9aa8b6; --line:#33404d; --accent:#f08040; --steel:#9db0c4; --ok:#5fcf8f; }
}
* { box-sizing: border-box; }
body { margin:0; font:16px/1.45 system-ui,sans-serif; background:var(--bg); color:var(--ink); }
header { display:flex; justify-content:space-between; align-items:center; padding:14px 20px; border-bottom:1px solid var(--line); background:var(--card); }
header h1 { font-size:1.15rem; margin:0; }
header a { color:var(--accent); text-decoration:none; font-size:.9rem; }
main { max-width:1000px; margin:0 auto; padding:16px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:16px; margin-bottom:16px; }
#stage svg { width:100%; height:auto; display:block; }
.controls { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.field label { display:block; font-weight:600; margin-bottom:4px; }
.field .row { display:flex; gap:10px; align-items:center; }
.field input[type=range] { flex:1; accent-color:var(--accent); min-width:0; }
.field input[type=number] { width:80px; }
input, select, button { font:inherit; color:var(--ink); background:var(--bg); border:1px solid var(--line); border-radius:6px; padding:6px 8px; }
select { width:100%; }
.hint { color:var(--muted); font-size:.85rem; margin-top:2px; }
#result h2 { margin:0 0 8px; font-size:1rem; }
.warn { color:var(--accent); font-weight:600; }
details { margin-top:10px; }
summary { cursor:pointer; color:var(--muted); }
.funnel { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; font-size:.85rem; }
.funnel span { background:var(--bg); border:1px solid var(--line); border-radius:99px; padding:2px 10px; }
table { border-collapse:collapse; width:100%; font-size:.9rem; }
th, td { text-align:left; padding:5px 6px; border-bottom:1px solid var(--line); }
td input[type=number] { width:80px; } td input[type=text] { width:100%; }
.admin-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:10px 16px; }
.admin-grid label { display:flex; justify-content:space-between; gap:8px; align-items:center; font-size:.9rem; }
.admin-grid input { width:90px; }
.savebar { position:sticky; bottom:0; background:var(--card); border-top:1px solid var(--line); padding:10px 16px; display:flex; gap:12px; align-items:center; }
button.primary { background:var(--accent); color:#fff; border-color:var(--accent); font-weight:600; }
.msg.ok { color:var(--ok); } .msg.err { color:var(--accent); }
@media (max-width:600px) { main { padding:10px; } }
