:root{--text: #1f2933;--muted: #6b7785;--faint: #9aa5b1;--line: #dde2e8;--bg: #f6f7f9;--card: #ffffff;--accent: #2f6fd6;--green: #3a9d5d;--yellow: #e0b000;--red: #d64541;--black: #222;font:13px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text)}*{box-sizing:border-box}html,body{margin:0;background:var(--bg)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;padding:4px 10px;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:5px;cursor:pointer;white-space:nowrap}button:hover:not(:disabled){border-color:#b8c1cc;background:#fafbfc}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:#2560bd}button.danger{color:var(--red);border-color:#efc3bf}button.link{border:0;background:none;color:#9ec5ff;padding:0 4px;text-decoration:underline}button.icon{border:0;background:none;color:inherit;padding:0 4px;font-size:16px}input,select,textarea{font:inherit;padding:4px 6px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--text)}input:focus,select:focus,button:focus-visible{outline:2px solid #b9d1f7;outline-offset:0}input[type=color]{padding:0 2px;height:28px;width:48px}code{background:#eef1f4;padding:1px 4px;border-radius:3px}.muted{color:var(--muted)}.small{font-size:12px}.error{color:var(--red)}.warn{color:#9a6b00;margin:2px 0}.grow{flex:1}.row{display:flex;gap:8px;align-items:flex-end}.row.wrap{flex-wrap:wrap}.row.end{justify-content:flex-end;align-items:center;margin-top:10px}.row.between{justify-content:space-between;align-items:center}.center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:12vh 16px}.empty{padding:16px;color:var(--muted)}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:6px 12px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}.brand{font-weight:700;letter-spacing:-.02em;font-size:15px;color:var(--text)}.brand:hover{text-decoration:none;color:var(--accent)}.account{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:12px}.help{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);color:var(--muted);font-weight:600;font-size:12px}.help:hover{text-decoration:none;border-color:var(--accent);color:var(--accent)}.apps{display:flex;gap:2px}.apps a{padding:4px 10px;border-radius:5px;color:var(--muted)}.apps a.on{background:#e7f0fb;color:var(--accent);font-weight:600}.apps a:hover{text-decoration:none;color:var(--text)}.slot{display:flex;gap:6px;align-items:center;flex:1}.clock{display:flex;gap:3px;align-items:center}.clock button{padding:3px 7px;font-size:12px}.clock-date{min-width:128px;text-align:center;font-weight:600;padding:3px 8px;border-radius:5px}.clock-date.sim{background:#fff3c4;color:#6b4e00}.live-dot{font-size:11px;color:var(--faint)}.live-dot:before{content:"●";margin-right:3px}.live-dot.on{color:var(--green)}.split{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:12px;padding:10px 12px}.grid-col{min-width:0;display:flex;flex-direction:column;gap:8px}.side{display:flex;flex-direction:column;gap:10px}.page{display:flex;flex-direction:column;gap:12px;padding:10px 12px}.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:10px 12px}.card-title{font-weight:650;margin-bottom:6px;display:flex;gap:6px;align-items:center}.swatch{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle;flex:none}.swatch.big{width:14px;height:14px}.badge{display:inline-block;font-size:11px;padding:0 6px;border-radius:9px;background:#eef1f4;color:var(--muted);margin-left:6px}.badge.released{background:#e0f0e5;color:#2b7a47}.badge.draft{background:#eef1f4}.badge.done{background:#e7f0fb;color:var(--accent)}.badge.mpc{background:#fbe1df;color:#a8322a}.badge.stale{background:#fff3c4;color:#6b4e00}.zone-pill{display:inline-block;color:#fff;font-size:11px;padding:0 6px;border-radius:9px}.kv td{padding:2px 8px 2px 0;vertical-align:top}.kv td:first-child{color:var(--muted);white-space:nowrap}.drum{background:#fff7e0;border:1px solid #f1dfa6;border-radius:6px;padding:6px 8px}.keys{line-height:1.6}.panel{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}.panel-title{padding:4px 10px;font-weight:600;border-bottom:1px solid var(--line);font-size:12px}.panel-body{position:relative;overflow-y:auto;overflow-x:hidden}.panel-body canvas{display:block}.grid-tip{position:absolute;z-index:5;pointer-events:none;background:#1f2933;color:#fff;padding:6px 8px;border-radius:5px;font-size:12px;white-space:pre-line;max-width:340px;box-shadow:0 3px 10px #0000002e}.grid-axis{position:relative;height:36px;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}.grid-axis canvas{position:absolute;left:0;top:0;cursor:grab}.grid-axis-left{position:absolute;left:0;top:0;bottom:0;z-index:1;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 6px 0 12px;border-right:1px solid #cfd5dd}.zoom{display:flex;gap:2px}.zoom button{padding:1px 6px;font-size:12px}.fever{background:#fff;border:1px solid var(--line);border-radius:6px;display:block}.fever .axis,.fever .axis-label{font-size:10px;fill:var(--muted)}.fever-title{font-size:12px;font-weight:600;fill:var(--text)}.fever .dot-label{font-size:10px;fill:var(--text);paint-order:stroke;stroke:#fffc;stroke-width:3px}.fever .clickable{cursor:pointer}.table{border-collapse:collapse;width:100%;background:#fff}.table th{text-align:left;font-weight:600;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line);padding:4px 8px}.table td{border-bottom:1px solid #eef1f4;padding:3px 8px}.table .num{text-align:right}.table tr.focus td{background:#fff7e0}input.inline{border-color:transparent;background:transparent;width:100%}input.inline:hover{border-color:var(--line)}input.inline:focus{background:#fff;border-color:#b9d1f7}.field{display:flex;flex-direction:column;gap:2px;margin-bottom:8px;min-width:0}.field-label{font-size:11px;color:var(--muted)}.field-hint{font-size:11px;color:var(--faint)}.field input:not([type=checkbox]):not([type=color]),.field select{width:100%}.multi{max-height:150px;overflow:auto;border:1px solid var(--line);border-radius:5px;padding:4px 6px;background:#fff}.multi-item{display:flex;gap:6px;align-items:center;padding:1px 0}.pred-row{justify-content:space-between}.overlap{display:flex;gap:3px;align-items:center;font-size:12px;color:var(--muted)}.overlap input{width:52px;padding:1px 4px}.overlap input.computed{color:var(--muted);background:#f3f4f6;font-style:italic}.inline-field{display:flex;gap:4px;align-items:center;color:var(--muted)}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#141c2652;display:flex;align-items:flex-start;justify-content:center;z-index:50;padding-top:12vh}.modal{background:#fff;border-radius:10px;padding:16px 18px;width:min(440px,calc(100vw - 32px));box-shadow:0 12px 40px #00000038}.modal.wide{width:min(720px,calc(100vw - 32px))}.modal h3{margin:0 0 12px;font-size:15px}.backdrop.docked{background:transparent;pointer-events:none;justify-content:flex-end;padding:56px 12px 12px 0}.backdrop.docked .modal{pointer-events:auto;width:min(660px,calc(100vw - 32px));max-height:calc(100vh - 72px);overflow:auto}.stagger td,.stagger th{padding:3px 6px;font-size:12px}.stagger tr.moved td{background:#f3eefb}.stagger .pin{opacity:.35}.stagger .pin.on{opacity:1}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:60;background:#1f2933;color:#fff;padding:8px 12px;border-radius:8px;display:flex;gap:10px;align-items:center;box-shadow:0 6px 20px #0003;max-width:calc(100vw - 32px)}.toast-error{background:#9b2c24}.project{display:grid;grid-template-columns:300px minmax(0,1fr);gap:12px;padding:10px 12px}.side-left{display:flex;flex-direction:column;gap:8px}.task-list{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:6px;max-height:420px;overflow:auto}.task-list li{display:flex;gap:6px;align-items:center;padding:4px 8px;border-bottom:1px solid #eef1f4;cursor:pointer}.task-list li:hover{background:#fafbfc}.task-list li.on{background:#e7f0fb}.summary{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:6px;padding:6px 10px}.summary .title{font-size:15px}.bottom{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;align-items:start}.legend{margin:0;display:flex;flex-wrap:wrap;gap:4px;align-items:center}.legend span[class^=lg-]{display:inline-block;width:18px;vertical-align:middle}.lg-bar{height:9px;background:#4c78a8;border-radius:1px}.lg-base{height:3px;background:#a7afba}.lg-cc{height:9px;border:2px solid #1f2933}.lg-mpc{height:9px;border:2px solid var(--red)}.lg-stale{width:7px!important;height:7px;border-radius:50%;background:var(--red)}.tasks-page{max-width:900px;margin:0 auto;padding:10px 12px;display:flex;flex-direction:column;gap:14px}.tlist h2{font-size:14px;margin:0 0 6px;display:flex;gap:8px;align-items:baseline}.count{background:#eef1f4;border-radius:9px;padding:0 7px;font-size:12px}.tcard{display:flex;gap:10px;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);border-left:5px solid var(--green);border-radius:6px;padding:8px 10px;margin-bottom:6px;flex-wrap:wrap}.tcard-main{min-width:0;flex:1 1 320px}.tcard-name{font-weight:600;font-size:14px}.tcard-actions{display:flex;gap:6px;align-items:center}.tcard-actions button{padding:7px 12px}.rde{width:64px;padding:6px}@media(max-width:900px){.split,.project,.bottom{grid-template-columns:minmax(0,1fr)}.slot{flex-basis:100%;order:3}}.nowrap{white-space:nowrap}.cap-y{color:#9a6b00}.cap-r{color:var(--red)}.table tr.click{cursor:pointer}.table tr.click:hover td{background:#fafbfc}.tpl-edit{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px;align-items:start}a.button{display:inline-block;padding:4px 10px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--text);white-space:nowrap}a.button:hover{text-decoration:none;border-color:#b8c1cc}.seg{gap:14px;margin-bottom:10px;align-items:center}.seg label{display:flex;gap:4px;align-items:center}.txlog td{vertical-align:top}.txlog tr.undone td{color:var(--faint)}.txlog tr.undone td b{font-weight:500}.txlog .undone-by{color:#9a6b00}.txlog tr.is-undo td{background:#fbfcfd}@media(max-width:900px){.tpl-edit{grid-template-columns:minmax(0,1fr)}}.warn-list{background:#fff8e6;border:1px solid #f0d48a;border-radius:6px;padding:6px 10px;margin:4px 0;color:#6b4e00;display:grid;gap:2px}.warn-list .warn-head{font-weight:600;color:#8a6200}.scen{display:grid;grid-template-columns:270px minmax(0,1fr);gap:12px;padding:10px 12px;align-items:start}.scen-list{display:flex;flex-direction:column;gap:6px;position:sticky;top:52px;max-height:calc(100vh - 64px);overflow:auto}.scen-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;white-space:normal;padding:8px 10px}.scen-item.on{border-color:var(--accent);background:#eef4fd}.scen-title{font-weight:600}.badge-pass{font-size:11px;font-weight:600;padding:1px 7px;border-radius:10px}.badge-pass.ok{background:#d6ecdc;color:#23683c}.badge-pass.bad{background:#f5d3d0;color:#a3271f}.scen-main{min-width:0;display:flex;flex-direction:column;gap:12px}.scen-head h2{margin:0 0 4px;font-size:18px}.scen-desc{margin:0 0 4px;max-width:980px;font-size:14px;line-height:1.5}.stepper{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 12px;display:flex;flex-direction:column;gap:8px}.stepper .row{align-items:center}.step-list{margin:0;padding-left:24px;max-height:190px;overflow:auto;font-size:12px}.step-list li{cursor:pointer;padding:1px 4px;border-radius:4px;color:var(--muted)}.step-list li.past{color:var(--text)}.step-list li.on{background:#e7f0fb;color:var(--text);font-weight:600}.step-do{display:inline-block;min-width:108px;font-family:ui-monospace,monospace;font-size:11px;color:var(--muted)}.ok-mark{color:var(--green);margin-right:4px}.bad-mark{color:var(--red);margin-right:4px}.step-now{background:#f6f9fe;border-left:3px solid var(--accent);padding:6px 10px;display:grid;gap:4px;font-size:13px}.table.expect{max-width:980px}.table.expect tr.pass td.mark{color:var(--green);font-weight:700}.table.expect tr.fail td{background:#fbe9e7}.table.expect tr.fail td.mark{color:var(--red);font-weight:700}.scen-project{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}.scen-h3{margin:4px 0 6px;font-size:14px}.row.top{align-items:flex-start;gap:24px}.entity-list{margin:6px 0}.entity-list .table{width:auto}.entity-list button.link,.modal button.link{color:#2f6fd6}.scroll-box{max-height:46vh;overflow:auto;margin:8px 0}.small.warn{color:#b26a00;margin:2px 0}details.help{margin-top:8px;padding:6px 10px;background:#f6f8fa;border-radius:6px}details.help summary{cursor:pointer;font-weight:600}details.help ul{margin:4px 0 4px 18px;padding:0}details.help p{margin:4px 0}.yaml-edit{width:100%;font-family:ui-monospace,monospace;font-size:12px;line-height:1.45;white-space:pre;resize:vertical}.yaml-ok{color:var(--green)}.cap-explain{font-size:12px;background:var(--bg);border-radius:6px;padding:6px 8px;margin:0 0 8px}.exp{font-size:11px;white-space:nowrap}.exp.ok{color:var(--green)}.exp.bad{color:#a3271f;font-weight:600}.tabs{display:flex;gap:4px}.tabs button[aria-selected=true]{border-color:var(--accent);background:#eef4fd;font-weight:600}.scen-group-title{margin:10px 0 2px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.scen-head-row{display:flex;gap:8px;align-items:baseline}.scen-num{font-size:22px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;min-width:30px}.scen-meta{display:flex;gap:8px;align-items:center}.step-note{background:#fffbe6;border-left:3px solid var(--yellow);padding:4px 8px;margin-top:4px}.cov-summary{gap:12px;margin:6px 0 10px}.table.cov td.ok{color:var(--green);font-weight:700}.table.cov td.bad{color:#a3271f;font-weight:700}.table.cov tr.fail td:first-child{box-shadow:inset 3px 0 #d64541}.table.cov td{vertical-align:top}.table.cov td.mid,.table.cov th.mid{text-align:center;width:64px}.table.cov td:nth-child(2){font-size:14px;line-height:1.45;max-width:760px}.table.cov tr.cov-group td{background:#f6f8fa;padding:10px 8px 6px;font-size:13px}.table.cov tr.cov-detail>td{background:#fbfcfd;padding:8px 16px 12px}.cov-title{font-weight:600;margin-bottom:4px}.cov-detail dl{display:grid;grid-template-columns:max-content 1fr;gap:2px 10px;margin:0 0 8px;font-size:13px;max-width:1100px}.cov-detail dt{font-weight:600;color:var(--muted)}.cov-detail dd{margin:0}.table.cov-tests{width:auto;background:transparent}.table.cov-tests td.ok{color:var(--green)}.table.cov-tests td.bad{color:#a3271f}.kind{font-size:11px;padding:1px 6px;border-radius:8px;background:#eef1f4;color:var(--muted)}.kind-unhappy{background:#fbe9e7;color:#a3271f}.kind-edge{background:#fff4d6;color:#8a6200}.file-link{font-family:ui-monospace,monospace;font-size:12px}.cov-file{margin:4px 0}.cov-file summary .small{margin-left:16px;color:var(--muted)}pre.code{background:#f3f5f8;padding:8px 10px;border-radius:6px}
