:root{--bg: #f6f7f9;--fg: #1c2330;--muted: #667085;--card: #fff;--line: #e4e7ec;--primary: #5b3df5;--danger: #c0352b;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #12151c;--fg: #e6e9f0;--muted: #98a2b3;--card: #1b2029;--line: #2a313d}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}h1,h2{margin:0 0 8px}a{color:var(--primary)}.muted{color:var(--muted)}.center{text-align:center;margin-top:20vh}.error{color:var(--danger);margin:6px 0}.login{max-width:360px;margin:18vh auto;text-align:center;padding:0 16px}.shell{display:flex;min-height:100vh}.sidebar{width:210px;flex:none;display:flex;flex-direction:column;gap:6px;padding:16px 12px;background:var(--card);border-right:1px solid var(--line);position:sticky;top:0;height:100vh}.sidebar .brand{font-size:16px;padding:0 8px}.sidebar .who{padding:0 8px;font-size:12px;word-break:break-all}.spacer{flex:1}main{flex:1;min-width:0;padding:16px 24px}.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px;margin:12px 0}.row{display:flex;flex-wrap:wrap;gap:8px}input,select{padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);min-width:160px;flex:1}.btn{padding:6px 12px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--fg);cursor:pointer;text-decoration:none;display:inline-block}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.danger{color:var(--danger)}.btn:disabled{opacity:.5;cursor:default}table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:8px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}td.actions{white-space:nowrap}td.actions .btn{margin-right:6px}.pill{padding:1px 8px;border-radius:999px;font-size:12px;border:1px solid var(--line)}.pill.prod{color:var(--danger);border-color:var(--danger)}@media(max-width:720px){table{display:block;overflow-x:auto}}input[type=checkbox]{min-width:0;flex:none}label{display:inline-flex;align-items:center;gap:6px}.row{align-items:center}nav{display:flex;flex-direction:column;gap:2px;margin:12px 0}.tab{display:block;background:none;border:0;padding:8px 10px;border-radius:6px;color:var(--muted);cursor:pointer;font:inherit}.tab:hover{background:var(--bg);color:var(--fg)}.tab.active{background:var(--bg);color:var(--fg);font-weight:600}.link{background:none;border:0;padding:0;color:var(--primary);cursor:pointer;font:inherit;text-align:left}textarea{width:100%;padding:8px 9px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);font:inherit;margin:8px 0}textarea.code{font-family:ui-monospace,Consolas,monospace;font-size:12px}summary{cursor:pointer}.notice{background:color-mix(in srgb,var(--primary) 10%,transparent);border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin:8px 0}.notice ul,.card ul{margin:4px 0;padding-left:20px}.bad{color:var(--danger)}.item{border-top:1px solid var(--line);padding:8px 0}table.steps{margin:6px 0;font-size:13px}table.steps td{padding:3px 8px}.pill.passed,.pill.active,.pill.done,.pill.sandbox{color:#1a7f4b;border-color:#1a7f4b}.pill.failed,.pill.error{color:var(--danger);border-color:var(--danger)}.pill.running,.pill.queued,.pill.warn{color:#a15c00;border-color:#a15c00}.pill.ai{color:var(--primary);border-color:var(--primary)}.pill.skipped,.pill.cancelled,.pill.inactive{color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.chips.small{margin:4px 0 0;gap:4px}.chip{padding:2px 10px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--muted);font:inherit;font-size:12px;cursor:pointer}.chip.on{border-color:var(--primary);color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,transparent)}.chips.small .chip{cursor:default;font-size:11px;padding:0 8px}.chip:disabled{cursor:default;opacity:.7}details>summary{margin-top:8px;color:var(--muted)}.page-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}.page-head h2{margin:0}a.tab{text-decoration:none}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:8px}.field{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin-bottom:8px}.field input,.field select{width:100%}.card h3{margin:16px 0 4px;font-size:15px}.picklist{max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:6px;margin:8px 0;padding:4px 8px}.pick{display:flex;gap:8px;padding:4px 0;align-items:center}input:disabled,select:disabled,textarea:disabled{opacity:.75}.frow{display:flex;align-items:center;gap:10px;padding:3px 0;border-bottom:1px solid var(--line)}.frow .flabel{flex:1}.frow .fkey{font-size:11px;margin-left:6px}.frow .fsrc{width:130px;font-size:12px;text-align:right}.frow select.state{flex:none;width:130px;min-width:0;padding:3px 6px}select.state.enabled{border-color:#1a7f4b;color:#1a7f4b}select.state.disabled{border-color:#a15c00;color:#a15c00}select.state.unavailable{color:var(--muted)}select.state.unknown{border-style:dashed;color:var(--muted)}.features details{margin:6px 0}.features .fsection{margin:18px 0 0;padding-bottom:4px;border-bottom:2px solid var(--line)}.frow .fdetail{font-size:12px}.features summary{margin:8px 0 2px;color:var(--fg)}.pill.blocked,.pill.eligible-blocked{color:#a15c00;border-color:#a15c00}.pill.eligible{color:#1a7f4b;border-color:#1a7f4b}.pill.off{color:var(--muted)}.reason{margin:2px 0 0;font-size:12px}.kv{display:flex;gap:8px;margin:4px 0}tr.grouprow td{background:color-mix(in srgb,var(--primary) 6%,var(--card));border-top:2px solid var(--line)}@media(max-width:720px){.shell{flex-direction:column}.sidebar{width:auto;height:auto;position:static;flex-direction:row;flex-wrap:wrap;align-items:center;border-right:0;border-bottom:1px solid var(--line)}.sidebar nav{flex-direction:row;margin:0}.sidebar .spacer{display:none}}tr.inactive td{opacity:.6}.history{font-size:12px;margin:12px 0 0;border-top:1px solid var(--line);padding-top:8px}.rules{display:flex;flex-direction:column;gap:10px;margin:8px 0}.rule-block{border:1px solid var(--line);border-radius:8px;padding:8px 12px 10px;margin:0}.rule-block legend{font-weight:600;padding:0 6px}.rule-block p{margin:0 0 8px}.cond{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg)}.cond.unfinished{border-style:dashed;border-color:#a15c00}.cond input,.cond select{width:auto;min-width:120px}.cond .hint{color:#a15c00;font-size:12px}.cond code{overflow-wrap:anywhere}.feature-box{display:inline-flex;flex-direction:column;gap:2px}.feature-box input{min-width:260px}.or{text-align:center;color:var(--muted);font-size:12px;font-weight:600;margin:4px 0;letter-spacing:.05em;text-transform:uppercase}.rules-summary{margin:0}details.stepcond{border-top:1px solid var(--line);padding:6px 0}details.stepcond>summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}.split-main{min-width:0}.split>.side{position:sticky;top:16px}.side>.card:first-child{margin-top:0}.runpanel .row{flex-direction:column;align-items:stretch;margin-bottom:10px}.runpanel .row:last-child{margin-bottom:0}.runpanel select{width:100%}.runpanel .btn{width:100%;text-align:center}.runpanel label{display:flex;align-items:center;gap:6px}.groupcell .muted{font-size:12px}@media(max-width:1000px){.split{grid-template-columns:minmax(0,1fr)}.split>.side{position:static;order:-1}}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:6px 0 14px;overflow-x:auto}.tabs button{background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:8px 14px;color:var(--muted);cursor:pointer;font:inherit;white-space:nowrap}.tabs button:hover{color:var(--fg)}.tabs button[aria-selected=true]{color:var(--fg);font-weight:600;border-bottom-color:var(--primary)}.tabs .badge{margin-left:6px;padding:0 7px;border-radius:999px;background:var(--line);color:var(--muted);font-size:11px;font-weight:600}.steplist{display:flex;flex-direction:column;gap:10px}.stepcard{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin:0;background:var(--card);min-width:0}.stepcard.incomplete{border-color:#a15c00;border-style:dashed}.stephead{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}.stephead select{width:auto}.stephead .summary{flex:1 1 200px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stephead .btn{padding:2px 9px}.stepbody .field{margin-bottom:8px}.stepbody .small{font-size:12px}.assertrow{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.3fr) minmax(0,2fr);gap:10px;align-items:start}.valinput{display:flex;gap:6px;align-items:flex-start;min-width:0}.valinput select{width:auto;flex:none}.valinput input,.valinput textarea{flex:1;min-width:0}.valinput textarea{margin:0}.rows{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.fieldrow{display:flex;gap:6px;align-items:flex-start;width:100%}.fieldrow>input{width:200px;flex:none}.fieldrow>select{width:auto;flex:none}.fieldrow .valinput{flex:1}.check{display:flex;align-items:center;gap:6px;margin:6px 0}.stepproblems{margin:8px 0 0;padding-left:18px;color:#a15c00;font-size:12px}.bad-input{border-color:var(--danger)}details.more{margin:6px 0}.addsteps{margin-top:4px}@media(max-width:1000px){.assertrow{grid-template-columns:minmax(0,1fr)}}.btn.small{padding:2px 8px;font-size:12px;flex:none}table.steps td.stepreport{white-space:normal}.stepreport .why{font-style:italic;font-size:12px}.stepreport .outcome{margin-top:2px;font-size:12px}.keymodes{display:flex;flex-direction:column;margin:4px 0 8px}.publickey{display:block;padding:6px 8px;background:var(--bg);border:1px solid var(--line);border-radius:6px;overflow-wrap:anywhere;font-size:12px;flex:1;min-width:0}.keybox{margin-top:8px}td.actions .keybox{white-space:normal}.paramedit{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex:1;min-width:0}.paramedit input{width:200px;flex:none}.ifmissing{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.ifmissing select{width:auto;max-width:100%}.settings-used td,.settings-used th{vertical-align:top}
