:root{--bg: #0b1116;--panel: #131c24;--border: #223140;--text: #e6edf3;--muted: #8b9bab;--accent: #4fc3f7;--ok: #66bb6a;--warn: #ffb300;--alert: #ef5350;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}.layout{display:grid;grid-template-columns:340px 1fr;height:100%}@media(max-width:900px){.layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}}.panel{background:var(--panel);border-right:1px solid var(--border);overflow-y:auto;padding:16px}.panel h1{font-size:16px;margin:0 0 16px}.panel h2{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}.panel section{border-top:1px solid var(--border);padding-top:14px;margin-top:14px}.panel section:first-of-type{border-top:none;margin-top:0;padding-top:0}label{display:block;margin-bottom:10px;color:var(--muted)}label .value{color:var(--text);font-weight:600;float:right}input[type=range]{width:100%;margin-top:4px;accent-color:var(--accent)}input[type=number]{width:100%;margin-top:4px;padding:6px 8px;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text)}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{accent-color:var(--accent)}button{background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text);cursor:pointer;font-size:13px;padding:7px 12px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.4;cursor:not-allowed}button.active{background:var(--accent);border-color:var(--accent);color:#06121a;font-weight:600}.buttons{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.hint{color:var(--muted);font-size:12px;line-height:1.45;margin:8px 0 12px}.error{background:#ef535026;border:1px solid var(--alert);border-radius:4px;color:var(--alert);padding:8px 10px}.stats{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:0}.stats dt{color:var(--muted)}.stats dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.status-running{color:var(--ok)}.status-paused{color:var(--warn)}.status-failed{color:var(--alert)}.tractors{width:100%;border-collapse:collapse;font-size:12px}.tractors td{padding:4px 6px 4px 0;border-bottom:1px solid var(--border)}.tractors .state{color:var(--muted)}.ok{color:var(--ok)}.alert{color:var(--alert)}.muted{color:var(--muted)}.stage{display:grid;grid-template-rows:1fr 200px;overflow:hidden}.map-container{position:relative;overflow:hidden;background:#0b1a26}.map-warning{position:absolute;top:12px;left:12px;background:#ffb300e6;color:#201400;font-size:12px;font-weight:600;padding:5px 10px;border-radius:4px}.placeholder{display:grid;place-items:center;color:var(--muted);padding:24px;text-align:center}.log{border-top:1px solid var(--border);overflow-y:auto;padding:10px 16px}.log h2{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}.log ul{list-style:none;margin:0;padding:0;font-size:12px}.log li{display:grid;grid-template-columns:70px 110px 1fr;gap:10px;padding:2px 0;border-bottom:1px solid rgba(34,49,64,.5)}.log .time{color:var(--muted);font-variant-numeric:tabular-nums}.log .ref{color:var(--accent)}.log .transition{color:var(--muted)}.log strong{color:var(--text)}code{background:var(--panel);border-radius:3px;padding:1px 5px}.login{max-width:460px;margin:12vh auto;padding:24px;background:var(--panel, #16181d);border:1px solid var(--border, #2a2e37);border-radius:8px}.login input{width:100%;padding:8px 10px;margin-bottom:10px;background:var(--bg, #0e1014);border:1px solid var(--border, #2a2e37);border-radius:4px;color:inherit;font:inherit}.login button{width:100%}.login .hint{margin-bottom:16px}
