:root{--bg:#0f1115;--panel:#181b22;--line:#2b303b;--text:#e8eaed;--mute:#9aa0aa;--ok:#9be3a8;--warn:#f2d48a;--bad:#f5a3a3}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 system-ui,sans-serif}
header{display:flex;gap:12px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line)}
header h1{font-size:16px;margin:0;flex:1}
main{padding:16px;max-width:1200px;margin:0 auto}
nav{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid var(--line)}
nav button{background:none;border:0;color:var(--mute);padding:8px 12px;cursor:pointer;border-bottom:2px solid transparent}
nav button.active{color:var(--text);border-bottom-color:var(--text)}
button,.btn{background:var(--panel);color:var(--text);border:1px solid var(--line);padding:6px 12px;border-radius:4px;cursor:pointer;text-decoration:none;display:inline-block}
button:disabled{opacity:.5;cursor:not-allowed}
button.danger{border-color:var(--bad);color:var(--bad)}
table{width:100%;border-collapse:collapse;margin:8px 0 20px}
th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
th{color:var(--mute);font-weight:500}
h2{font-size:14px;color:var(--mute);margin:18px 0 4px;text-transform:uppercase;letter-spacing:.04em}
.pill{border:1px solid var(--line);border-radius:10px;padding:1px 8px;font-size:12px}
.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}
.hidden{display:none!important}
.banner{padding:8px 12px;border:1px solid var(--warn);color:var(--warn);border-radius:4px;margin-bottom:12px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center}
#modal-box{background:var(--panel);border:1px solid var(--line);padding:20px;border-radius:6px;max-width:560px;width:92%;max-height:85vh;overflow:auto}
input,select,textarea{background:var(--bg);color:var(--text);border:1px solid var(--line);padding:6px;border-radius:4px;width:100%}
.row{display:flex;gap:8px;align-items:center;margin:6px 0}
.row label{width:220px;color:var(--mute);flex:none}
.empty{color:var(--mute);padding:12px 0}
pre{white-space:pre-wrap;word-break:break-word}
.push{margin-left:auto}
.kv th{width:240px;font-weight:400}.kv{margin:4px 0 12px}
.mute{color:var(--mute)}code{background:var(--bg);padding:1px 5px;border-radius:3px}
.st-pending,.st-awaiting_approval,.st-starting{color:var(--warn)}.st-running,.st-approved{color:var(--ok)}.st-halted,.st-invalid,.st-revoked,.st-rejected,.st-failed,.st-expired{color:var(--bad)}
.card{border:1px solid var(--line);border-radius:6px;padding:10px 14px;margin:0 0 14px}
.log{max-height:360px;overflow:auto;white-space:pre-wrap;font-size:11px}
#modal-box{max-width:760px}ul{margin:4px 0 12px;padding-left:20px}
