:root{--bg: #0f1412;--bg-elev: #171e1b;--bg-panel: #1c2521;--line: #2d3b34;--text: #e8efe9;--muted: #8fa199;--accent: #3dba7e;--accent-dim: #2a7a54;--warn: #d4a017;--danger: #d45a4a;--mono: "IBM Plex Mono", ui-monospace, monospace;--sans: "IBM Plex Sans", system-ui, sans-serif;color:var(--text);background:var(--bg);font-family:var(--sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-height:100vh;background:radial-gradient(1200px 600px at 10% -10%,#1a3a2c 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#243028 0%,transparent 50%),var(--bg)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}code,pre,.mono{font-family:var(--mono)}.app{max-width:1440px;margin:0 auto;padding:28px 24px 64px}.brand{display:flex;flex-direction:column;gap:8px;margin-bottom:28px}.brand h1{margin:0;font-size:clamp(1.8rem,3vw,2.4rem);font-weight:600;letter-spacing:-.02em}.brand p{margin:0;color:var(--muted);max-width:52ch;line-height:1.5}.grid{display:grid;gap:16px}@media(min-width:1100px){.grid.two{grid-template-columns:minmax(320px,.85fr) minmax(560px,1.4fr);align-items:start}}.panel{background:color-mix(in srgb,var(--bg-panel) 92%,transparent);border:1px solid var(--line);border-radius:12px;padding:18px;min-width:0}.job-card{border:1px solid var(--line);border-radius:10px;background:var(--bg-elev);padding:14px;display:flex;flex-direction:column;gap:10px}.job-card .logs{max-height:140px}.workbook-list{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow:auto}.workbook-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg-elev);cursor:pointer}.workbook-item.active{border-color:var(--accent-dim);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.jobs-grid{display:grid;gap:12px}@media(min-width:1100px){.jobs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.panel h2{margin:0 0 14px;font-size:.95rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.stack{display:flex;flex-direction:column;gap:10px}label.field{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--muted);flex:1;min-width:140px}label.field input,label.field select{background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;padding:9px 11px;color:var(--text)}label.field input:focus,label.field select:focus{outline:1px solid var(--accent-dim);border-color:var(--accent-dim)}.btn{border:1px solid var(--line);background:var(--bg-elev);border-radius:8px;padding:9px 14px;transition:background .15s ease,border-color .15s ease}.btn:hover:not(:disabled){border-color:var(--accent-dim)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:linear-gradient(180deg,#3fca88,#2f9a66);border-color:transparent;color:#07140e;font-weight:600}.btn.danger{background:color-mix(in srgb,var(--danger) 18%,var(--bg-elev));border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}.drop{border:1.5px dashed var(--line);border-radius:10px;padding:28px 18px;text-align:center;color:var(--muted);background:color-mix(in srgb,var(--bg-elev) 70%,transparent);transition:border-color .15s ease,background .15s ease}.drop.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg-elev))}.drop strong{display:block;color:var(--text);margin-bottom:6px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stat{background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;padding:10px 12px}.stat .k{font-size:.75rem;color:var(--muted)}.stat .v{margin-top:4px;font-family:var(--mono);font-size:1.05rem}.table-wrap{overflow:auto;max-height:260px;border:1px solid var(--line);border-radius:8px}table{width:100%;border-collapse:collapse;font-size:.85rem}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}th{position:sticky;top:0;background:var(--bg-elev);color:var(--muted);font-weight:500}.yaml,.logs{margin:0;padding:12px;background:#0b100e;border:1px solid var(--line);border-radius:8px;overflow:auto;max-height:420px;font-size:.78rem;line-height:1.45;white-space:pre-wrap;word-break:break-word}.logs{max-height:220px;color:#b7cfc1}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);font-size:.8rem;color:var(--muted)}.pill.ok{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.pill.warn{color:var(--warn)}.pill.err{color:var(--danger)}.warn-list{margin:0;padding-left:18px;color:var(--warn);font-size:.85rem}.check{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.9rem}.progress{height:8px;border-radius:999px;background:var(--bg-elev);border:1px solid var(--line);overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent-dim),var(--accent));transition:width .2s ease}.error{color:var(--danger);font-size:.9rem}
