:root{--bg: #ffffff;--fg: #16181d;--muted: #6b7280;--border: #e5e7eb;--surface: #f9fafb;--accent: #2563eb;--error: #b42318;--ok: #067647;--warn: #b54708;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #0f1115;--fg: #e6e8eb;--muted: #9198a1;--border: #262b33;--surface: #171a20;--accent: #6293f7;--error: #f97066;--ok: #47cd89;--warn: #fdb022}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.app{max-width:1000px;margin:0 auto;padding:24px 20px 64px}header{display:flex;align-items:baseline;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:20px}header h1{font-size:20px;margin:0}h2{font-size:18px;margin:16px 0 4px}h3{font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:28px 0 8px}section{margin-top:8px}.muted{color:var(--muted)}.error{color:var(--error)}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:16px;flex-wrap:wrap}input,select{font:inherit;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--fg)}input[type=search]{min-width:240px;flex:1}.job-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:8px;overflow:hidden}.job-list li+li{border-top:1px solid var(--border)}.job-row{display:grid;grid-template-columns:110px 1fr;gap:4px 12px;width:100%;text-align:left;padding:12px 14px;background:none;border:0;font:inherit;color:inherit;cursor:pointer}.job-row:hover{background:var(--surface)}.job-row .topic{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-row .meta{grid-column:2;color:var(--muted);font-size:13px}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;border:1px solid var(--border);background:var(--surface);white-space:nowrap}.status-completed{color:var(--ok)}.status-failed{color:var(--error)}.status-running,.status-awaiting_input{color:var(--warn)}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.num{text-align:right;font-variant-numeric:tabular-nums}.task-graph{list-style:none;margin:0;padding:0;font-size:14px}.task-graph li{padding:4px 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}.task-completed{background:var(--ok)}.task-failed,.task-cancelled{background:var(--error)}.task-running{background:var(--warn)}.tag{font-size:11px;padding:1px 6px;border-radius:4px;background:var(--surface);border:1px solid var(--border);color:var(--muted)}.link{background:none;border:0;color:var(--accent);cursor:pointer;padding:0;font:inherit;margin-bottom:8px}button.primary,.gate-actions button{font:inherit;padding:7px 14px;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer}.gate-actions button.secondary{background:none;color:var(--accent)}button:disabled{opacity:.5;cursor:default}.gate-actions{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap}.gate{margin-top:20px;padding:16px;border:1px solid var(--warn);border-radius:8px;background:var(--surface)}.gate h3{margin-top:0;color:var(--warn)}textarea{width:100%;font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--fg);resize:vertical}.angle-list,.prompt-list{list-style:none;margin:0;padding:0}.angle-list li+li,.prompt-list li+li{margin-top:8px}label.angle{display:flex;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;cursor:pointer;align-items:baseline}label.angle.chosen{border-color:var(--accent)}label.angle .meta{display:block;color:var(--muted);font-size:13px}.new-job .field{display:flex;flex-direction:column;gap:4px;margin-top:12px;font-size:14px;color:var(--muted)}.new-job .field input,.new-job .field select{color:var(--fg)}.new-job .field-row{display:flex;gap:16px;align-items:end;flex-wrap:wrap}.new-job .field.checkbox{flex-direction:row;align-items:center;gap:8px}.article{max-width:720px;padding:24px 28px;border:1px solid var(--border);border-radius:10px;background:var(--surface);line-height:1.7}.article h1{font-size:26px;line-height:1.25;margin-top:0}.article h2{font-size:20px;margin-top:28px}.article h3{font-size:16px;text-transform:none;letter-spacing:normal;color:var(--fg);margin:20px 0 6px}.article img{max-width:100%;border-radius:8px;margin:8px 0}.article blockquote{margin:12px 0;padding-left:14px;border-left:3px solid var(--border);color:var(--muted)}.graph-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:4px}.node rect{fill:var(--bg);stroke:var(--border);stroke-width:1.5}.node text{fill:var(--fg);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;text-anchor:middle;dominant-baseline:middle}.node-completed rect{stroke:var(--ok)}.node-running rect{stroke:var(--warn);stroke-width:2.5}.node-failed rect,.node-cancelled rect{stroke:var(--error)}.node-pending rect{stroke-dasharray:4 3}.node-pending text{fill:var(--muted)}.edge{fill:none;stroke:var(--border);stroke-width:1.5}.edge-done{stroke:var(--ok);opacity:.55}.task-errors{list-style:none;margin:10px 0 0;padding:0;font-size:13px}.timeline{display:flex;gap:10px;padding:8px;min-width:min-content}.timeline-labels{flex:none}.timeline-label{height:18px;line-height:18px;font-size:11px;color:var(--muted);white-space:nowrap;text-align:right;padding-right:4px}.timeline-toolbar{display:flex;align-items:center;gap:6px;margin-bottom:6px}button.secondary.small{padding:3px 9px;font-size:12px;border-radius:5px}.bar{fill:var(--accent);opacity:.85}.bar-completed{fill:var(--ok)}.bar-failed{fill:var(--error)}.bar-running{fill:var(--warn)}.bar-text{fill:var(--bg);font-size:10px;text-anchor:end;dominant-baseline:middle}.tick{stroke:var(--border);stroke-dasharray:2 3}.tick-text{fill:var(--muted);font-size:10px}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin:0 2px}.live-on{background:var(--ok);box-shadow:0 0 0 2px color-mix(in srgb,var(--ok) 25%,transparent)}.live-off{background:var(--warn)}.collapsible{margin-top:16px}.collapsible summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.collapsible summary::-webkit-details-marker{display:none}.collapsible summary h3{margin:0;flex:1}.collapsible-arrow{color:var(--muted);font-size:11px;transition:transform .15s ease}.collapsible[open] .collapsible-arrow{transform:rotate(90deg)}.collapsible-body{margin-top:6px}.stats-bar{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:10px 0 16px;margin-bottom:4px;border-bottom:1px solid var(--border);font-size:13px}.stats-group{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.stats-group-label{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border-right:1px solid var(--border);padding-right:12px;margin-right:-4px}.budget-pill{position:relative;flex:1;min-width:180px;max-width:320px;height:22px;border-radius:999px;border:1px solid var(--border);background:var(--surface);overflow:hidden;display:flex;align-items:center}.budget-fill{position:absolute;inset:0 auto 0 0;background:color-mix(in srgb,var(--accent) 35%,transparent)}.budget-low .budget-fill{background:color-mix(in srgb,var(--error) 45%,transparent)}.budget-label{position:relative;padding:0 10px;white-space:nowrap;font-size:12px;color:var(--fg)}.node-gate rect{fill:color-mix(in srgb,var(--accent) 12%,var(--bg));stroke-width:2}.node-gate.node-completed rect{stroke:var(--ok)}.node-gate.node-running rect,.node-gate.node-pending rect{stroke:var(--accent)}.graph-legend{display:flex;align-items:center;gap:16px;margin:8px 0 0;font-size:12px;color:var(--muted);flex-wrap:wrap}.graph-legend>span{display:flex;align-items:center;gap:6px}.legend-dot{width:10px;height:10px;border-radius:50%;border:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg))}.hint-box{margin-top:12px;padding:10px 12px;border:1px dashed var(--border);border-radius:8px;background:var(--surface)}.hint-box input{width:100%}.bar-clickable{cursor:pointer}.bar-artifact-dot{fill:var(--bg);opacity:.85;pointer-events:none}.artifact-viewer{margin-top:12px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);max-height:420px;overflow:auto}.artifact-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px}.artifact-raw{white-space:pre-wrap;word-break:break-word;font-size:12px;margin:0}.artifact-markdown{font-size:14px;line-height:1.6}.artifact-markdown :first-child{margin-top:0}.revision-history{margin-bottom:14px;font-size:13px}.revision-round{padding:4px 0}.verdict-list{list-style:none;margin:0;padding:0}.verdict-list>li+li{margin-top:14px}.verdict-section-header{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px;padding-bottom:2px;border-bottom:1px solid var(--border)}.verdict-votes{list-style:none;margin:0;padding:0}.vote{padding:6px 0;font-size:13px}.vote-header{display:flex;align-items:center;gap:8px}.vote p{margin:4px 0 0}.vote-revise .badge{border-color:var(--warn)}.node-skipped rect{stroke:var(--muted);stroke-dasharray:3 3;fill:var(--surface);opacity:.6}.node-skipped text{fill:var(--muted);font-style:italic}.legend-skipped{border:1px dashed var(--muted);background:var(--surface)}button.secondary{font:inherit;padding:7px 14px;border-radius:6px;border:1px solid var(--border);background:none;color:var(--fg);cursor:pointer}.header-actions{display:flex;align-items:center;gap:10px;margin-left:auto}.login-screen{display:flex;justify-content:center;padding-top:15vh}.login-form{display:flex;flex-direction:column;gap:4px;width:280px}.login-form h1{font-size:18px;margin:0 0 16px;text-align:center}.login-form .field{display:flex;flex-direction:column;gap:4px;margin-top:12px;font-size:14px;color:var(--muted)}.login-form .field input{color:var(--fg)}.login-form button{margin-top:16px}.admin-users .field{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--muted)}.admin-users .field input,.admin-users .field select{color:var(--fg)}.new-user-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:16px 0 24px;padding-bottom:20px;border-bottom:1px solid var(--border)}
