:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0d10;--panel:#14181d;--panel-2:#1a1f25;--border:#232a32;--text:#e6e9ee;--muted:#9aa4b1;--accent:#4fb3ff;--green:#06d6a0;--yellow:#ffd166;--purple:#c792ea;--error:#ff6b6b}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{max-width:1200px;margin:0 auto;padding:0 24px 48px}main{margin-top:8px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.muted{color:var(--muted)}.topnav{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;justify-content:space-between;align-items:center;gap:24px;padding:16px 0;display:flex;position:sticky;top:0}.brand{letter-spacing:-.01em;font-size:15px;font-weight:700}.brand-light{color:var(--muted);font-weight:500}.nav-tabs{flex-wrap:wrap;gap:4px;display:flex}.nav-tab{color:var(--muted);border:1px solid #0000;border-radius:6px;padding:6px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:color .1s,background .1s}.nav-tab:hover{color:var(--text);text-decoration:none}.nav-tab.active{color:var(--text);background:var(--panel);border-color:var(--border)}.page{margin-top:16px}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-head h1,.page>h1{letter-spacing:-.02em;margin:0 0 4px;font-size:24px}.subtitle{color:var(--muted);max-width:720px;margin:0;font-size:13px}.page-loading,.empty-note{color:var(--muted);padding:16px 0}.page-error{color:var(--error);background:#ff6b6b14;border:1px solid #ff6b6b4d;border-radius:8px;margin:12px 0;padding:10px 14px}section{margin-top:24px}section h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px;font-size:13px;font-weight:600}.env-section{margin-top:28px}.env-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.env-head h2{text-transform:none;letter-spacing:0;color:var(--text);margin:0;font-size:18px;font-weight:600}.env-id{color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.badge{letter-spacing:.02em;border-radius:10px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-block}.badge-promote-only{color:var(--purple);background:#c792ea26;border:1px solid #c792ea59}.badge-mutable{color:var(--green);background:#06d6a01f;border:1px solid #06d6a04d}.chip{text-transform:lowercase;border-radius:9px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.chip-completed{color:var(--green);background:#06d6a026}.chip-running{color:var(--accent);background:#4fb3ff26}.chip-pending{color:var(--yellow);background:#ffd16626}.chip-failed{color:var(--error);background:#ff6b6b26}.chip-skipped,.chip-muted{color:var(--muted);background:#9aa4b126}.chip-transform{color:var(--accent);background:#4fb3ff1f}.chip-promotion{color:var(--purple);background:#c792ea2e}.chip-on{color:var(--green);background:#06d6a026}.chip-off{color:var(--muted);background:#9aa4b126}.chip-row{align-items:center;gap:6px;display:flex}.chip-row.wrap{flex-wrap:wrap}.trigger-chip,.disabled-step{background:var(--panel-2);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-size:11.5px}.disabled-step{color:var(--yellow);border-color:#ffd16659}button{background:var(--accent);color:#0b0d10;cursor:pointer;border:0;border-radius:6px;padding:6px 12px;font-size:13px;font-weight:600}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{color:var(--muted);border:1px solid var(--border);background:0 0;font-weight:500}button.secondary:hover:not(:disabled){color:var(--text)}.chip-toggle{color:var(--muted);border:1px solid var(--border);background:0 0;border-radius:9px;padding:1px 10px;font-size:11.5px;font-weight:600}.chip-toggle.active{color:var(--accent);background:#4fb3ff26;border-color:#4fb3ff66}.publish-grid{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px;display:grid}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;padding:14px 16px;display:flex}.card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.card-title{align-items:center;gap:8px;min-width:0;display:flex}.label{font-size:15px;font-weight:600}.kv-rows{flex-direction:column;gap:3px;display:flex}.kv-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:600}.kv-value{font-size:13px}.promote-row{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:auto;padding-top:12px;display:flex}.promote-note{color:var(--muted);font-size:12px;line-height:1.45}.filters{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:20px;margin-bottom:16px;padding:12px 16px;display:flex}.filter{flex-direction:column;gap:5px;display:flex}.filter>span{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:600}select,input{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-family:inherit;font-size:13px}select:focus,input:focus{outline:1px solid var(--accent)}.runs-table{border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:10px;width:100%;overflow:hidden}.runs-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--border);background:var(--panel-2);padding:10px 12px;font-size:11px;font-weight:600}.runs-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:9px 12px;font-size:13px}.runs-table tbody tr:last-child td{border-bottom:0}.run-row{cursor:pointer}.run-row:hover{background:var(--panel-2)}.error-text{color:var(--error);font-size:12px}.list-footer{justify-content:space-between;align-items:center;margin-top:12px;font-size:12.5px;display:flex}.detail-grid{background:var(--panel);border:1px solid var(--border);border-radius:10px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;padding:14px 16px;display:grid}.detail-item{min-width:0}.promotion-trace{background:#c792ea0f;border:1px solid #c792ea4d;border-radius:10px;padding:14px 16px}.promotion-trace .detail-grid{background:0 0;border:0;padding:10px 0 0}.promote-route{align-items:center;gap:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;display:flex}.promote-env{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:3px 10px}.promote-env-target{color:var(--purple);border-color:#c792ea80}.promote-arrow{color:var(--muted)}details summary{cursor:pointer;color:var(--muted);margin-bottom:8px;font-size:13px}.j-pre{white-space:pre-wrap;word-break:break-all;color:var(--muted);background:var(--panel-2);border:1px solid var(--border);border-radius:6px;max-height:420px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5;overflow:auto}.j-key{color:#4fb3ff}.j-string{color:#06d6a0}.j-num{color:#ffd166}.j-bool{color:#c792ea;font-weight:600}.j-null{color:#ff6b6b}.modal-backdrop{z-index:50;background:#0009;justify-content:center;align-items:flex-start;padding:10vh 16px 16px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;width:100%;max-width:560px;box-shadow:0 16px 48px #00000080}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-head h3{margin:0;font-size:15px}.modal-close{color:var(--muted);background:0 0;padding:0 6px;font-size:18px}.modal-body{flex-direction:column;gap:14px;padding:16px 18px;display:flex}.modal-blurb{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.modal-blurb strong{color:var(--text)}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.form-row{flex-direction:column;gap:5px;display:flex}.form-row label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:600}.form-hint{color:var(--muted);font-size:11.5px}.form-error{color:var(--error);font-size:12.5px}.promote-done{background:#06d6a01a;border:1px solid #06d6a04d;border-radius:8px;padding:10px 14px;font-size:13px}.deferred-note{color:var(--muted);border-top:1px solid var(--border);margin-top:28px;padding-top:14px;font-size:12.5px}.deferred-note code{background:var(--panel);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}
