:root{color-scheme:dark;--bg:#0d1117;--panel:#151c24;--ink:#f1f5f9;--muted:#a5b2c2;--line:#2c3848;--accent:#64e5c4;--warning:#ffd296;--danger:#ffb1bb;--live:#ff8a8a}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;padding-bottom:40px}
button,input{font:inherit}
button{padding:.75rem 1.1rem;border:1px solid var(--line);border-radius:8px;background:#1c2734;color:var(--ink);cursor:pointer;min-height:46px;font-size:.9rem;font-weight:600}
button:hover{background:#2a384a}
button:disabled{opacity:.45;cursor:not-allowed}
.primary{background:var(--accent);border-color:var(--accent);color:#092b24}
.primary:hover{background:#98f1d9}
.quiet{background:transparent}
.small{font-size:.8rem;padding:.5rem .8rem;min-height:38px}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
h1{font-size:1.6rem;font-weight:700;margin:14px 0 6px}
h2{font-size:1rem;line-height:1.3;margin:0;font-weight:700}
p{margin:8px 0}
.muted{color:var(--muted)}
small{color:var(--muted);font-size:.8rem}
.eyebrow{font-size:.7rem;font-weight:750;letter-spacing:1.4px;color:var(--accent)}
code{font-size:.85rem;color:#c8f5e9;overflow-wrap:anywhere}

.login{max-width:420px;margin:60px auto;padding:0 20px}
.login input{display:block;width:100%;background:#0d1117;border:1px solid var(--line);border-radius:7px;padding:13px;color:var(--ink);margin:14px 0}
.login .primary{width:100%}

#desk{max-width:640px;margin:0 auto;padding:0 16px}

#statusbar{padding:18px 0 6px}
.statusbar-top{display:flex;justify-content:space-between;align-items:center}
.who{display:flex;align-items:center;gap:10px}
.mark{background:var(--accent);color:#0a342b;padding:6px 9px;font-size:15px;font-weight:800;border-radius:5px}
.state-pill{display:inline-block;margin-top:14px;padding:7px 14px;border-radius:20px;font-size:.8rem;font-weight:750;letter-spacing:.4px;text-transform:uppercase}
.state-pill.live{background:#3a1414;color:var(--live);border:1px solid #5c2020}
.state-pill.dryrun{background:#152233;color:#8fc4ff;border:1px solid #223a54}
.state-pill.paused{background:#302a21;color:var(--warning);border:1px solid #4a3c26}
.state-pill.off{background:#1c2734;color:var(--muted);border:1px solid var(--line)}
.headline{font-size:1.05rem;margin:10px 0 16px;line-height:1.4}
.statusbar-actions{display:flex;gap:10px;margin-bottom:18px}
.statusbar-actions button{flex:1}

.notice{border-left:3px solid var(--warning);background:#302a21;color:#ffe6c5;padding:13px 16px;font-size:.875rem;border-radius:0 8px 8px 0;margin-bottom:18px}
.notice.bad{border-color:var(--danger);background:#301818;color:#ffd2d9}

.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.stat-row-4{grid-template-columns:repeat(2,1fr)}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 10px;text-align:center}
.stat span{display:block;font-size:.75rem;color:var(--muted);margin-bottom:5px}
.stat strong{font-size:1.25rem;font-variant-numeric:tabular-nums}

.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:14px}
details.panel{padding:0}
details.panel summary{padding:18px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
details.panel summary::-webkit-details-marker{display:none}
details.panel summary::after{content:'▾';color:var(--muted);transition:transform .15s}
details.panel[open] summary::after{transform:rotate(180deg)}
details.panel>*:not(summary){padding:0 18px 18px}
.section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.badge{font-size:.72rem;padding:4px 9px;background:#253342;color:#d5e1ed;border:1px solid var(--line);border-radius:5px;white-space:nowrap}

.row{padding:12px 0;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;align-items:flex-start}
.row:last-child{border:0}
.row>div:first-child{min-width:0;flex:1}
.row strong{display:block;font-size:.9rem}
.row small{display:block;margin-top:2px}
.row .align-right{text-align:right;flex-shrink:0}
.row .align-right strong{font-variant-numeric:tabular-nums}

.pill{font-size:.7rem;padding:3px 8px;border-radius:12px;text-transform:uppercase;letter-spacing:.4px;font-weight:700;white-space:nowrap}
.pill.executed,.pill.resting{background:#153128;color:var(--accent)}
.pill.canceled,.pill.unknown{background:#302a21;color:var(--warning)}
.pill.dry_run{background:#1c2734;color:var(--muted)}

.good{color:var(--accent)}
.bad{color:var(--danger)}

.empty{padding:20px 14px;text-align:center;color:var(--muted);font-size:.875rem}

#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 24px));padding:14px 18px;border:1px solid var(--accent);background:#203a33;box-shadow:0 8px 40px #0009;border-radius:8px;z-index:20;font-size:.875rem}
[hidden]{display:none!important}
.panel-live{border-color:#3d6b5c;background:linear-gradient(180deg,#152a24 0%,var(--panel) 60%)}
.panel-live .badge.on{background:#153128;color:var(--accent);border-color:#2a5a48}
.panel-live .badge.off{background:#302a21;color:var(--warning)}
h3.sub{font-size:.8rem;font-weight:700;color:var(--muted);letter-spacing:.6px;text-transform:uppercase;margin:16px 0 6px}
details.panel summary h2{margin:0}
details.panel summary .badge{margin-left:auto;margin-right:10px}
