:root{--bg: #0d1117;--panel: #161b22;--panel-2: #1c2129;--border: #2d333b;--text: #e6edf3;--dim: #8b949e;--accent: #58a6ff;--ok: #3fb950;--warn: #d29922;--bad: #f85149;--radius: 8px;font-size:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}code,pre,.mono{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.layout{display:flex;min-height:100vh}.sidebar{width:220px;border-right:1px solid var(--border);padding:20px 12px;position:sticky;top:0;height:100vh;flex-shrink:0;display:flex;flex-direction:column}.sidebar-footer{margin-top:auto;padding:12px 10px 0}.sidebar-footer button{width:100%}.sidebar .brand{font-weight:700;font-size:15px;padding:0 10px 16px;letter-spacing:.02em}.sidebar .brand span{color:var(--accent)}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a{padding:8px 10px;border-radius:6px;color:var(--dim);display:flex;justify-content:space-between;align-items:center}.sidebar nav a:hover{background:var(--panel);text-decoration:none;color:var(--text)}.sidebar nav a.active{background:var(--panel-2);color:var(--text)}.sidebar .pill{background:var(--warn);color:#1c1503;border-radius:10px;padding:0 8px;font-size:11px;font-weight:700}.project-switcher{padding:0 10px 14px;margin-bottom:10px;border-bottom:1px solid var(--border)}.project-switcher label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim);margin-bottom:5px}.project-switcher select{width:100%}.content{flex:1;padding:24px 32px;min-width:0}.page-title{display:flex;align-items:center;gap:14px;margin:0 0 18px}.page-title h1{font-size:20px;margin:0}button,.btn{font:inherit;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 14px;cursor:pointer}button:hover{border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}button.primary{background:#1f6feb;border-color:#1f6feb}button.primary:hover{background:#2f7ef7}button.ok{background:#1c4428;color:var(--ok);border-color:#2ea043}button.danger{background:#3a1d1d;color:var(--bad);border-color:#6e2c2c}button.ghost{background:transparent}input,textarea,select{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 10px}textarea{font-family:ui-monospace,Menlo,monospace;font-size:13px}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:14px}.card h2{font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--dim);margin:0 0 12px}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--dim);font-weight:500;font-size:12px;padding:6px 10px;border-bottom:1px solid var(--border)}td{padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:middle}tr:last-child td{border-bottom:none}tr.clickable{cursor:pointer}tr.clickable:hover td,tr.selected td{background:var(--panel-2)}.badge{display:inline-block;padding:1px 9px;border-radius:10px;font-size:12px;font-weight:600}.badge.active{background:#12361f;color:var(--ok)}.badge.terminated{background:#3a1d1d;color:var(--bad)}.badge.creating,.badge.paused,.badge.pending,.badge.pending_approval{background:#3a2e12;color:var(--warn)}.badge.completed,.badge.approved{background:#12361f;color:var(--ok)}.badge.failed,.badge.rejected,.badge.denied{background:#3a1d1d;color:var(--bad)}.badge.executing{background:#15293f;color:var(--accent)}.login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}.login-card{width:100%;max-width:360px;margin:0}.login-card .brand{font-weight:700;font-size:18px;margin-bottom:6px}.login-card .brand span{color:var(--accent)}.login-card p{margin:0 0 16px}.login-card button{width:100%}.empty{color:var(--dim);font-style:italic;padding:12px 0}.dim{color:var(--dim)}.small{font-size:12px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.grow{flex:1}.split{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:16px;align-items:start}@media(max-width:1100px){.split{grid-template-columns:1fr}}.timeline{max-height:65vh;overflow-y:auto}.event{padding:7px 12px;border-left:2px solid var(--border);margin-bottom:6px}.event .head{display:flex;gap:10px;align-items:baseline}.event .seq{color:var(--dim);font-size:12px}.event .type{color:var(--accent);font-size:13px}.event .ts{color:var(--dim);font-size:11px;margin-left:auto}.event pre{margin:5px 0 0;color:var(--dim);font-size:12px;white-space:pre-wrap;word-break:break-all;max-height:130px;overflow-y:auto}.event.completed,.event.approved{border-left-color:var(--ok)}.event.failed,.event.denied{border-left-color:var(--bad)}.event.approval_requested{border-left-color:var(--warn)}.preview-box{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,Menlo,monospace;font-size:12.5px;max-height:220px;overflow-y:auto}.toast{position:fixed;bottom:20px;right:20px;background:var(--panel-2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:6px;padding:12px 16px;max-width:420px;z-index:50}.toast.error{border-left-color:var(--bad)}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field label{font-size:12px;color:var(--dim)}.kv{display:grid;grid-template-columns:130px 1fr;gap:4px 12px;font-size:13px}.kv dt{color:var(--dim)}.kv dd{margin:0;word-break:break-all}
