:root{color-scheme:light;--page: #f4f5f7;--surface: #fcfcfb;--surface-2: #f2f2ef;--ink: #0b0b0b;--ink-2: #52514e;--muted: #898781;--grid: #e1e0d9;--axis: #c3c2b7;--border: rgba(11, 11, 11, .1);--accent: #2a78d6;--accent-ink: #ffffff;--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--series-4: #eda100;--series-5: #e87ba4;--series-6: #008300;--series-7: #6250d6;--series-8: #e34948;--good: #0ca30c;--good-ink: #006300;--warning: #fab219;--serious: #ec835a;--critical: #d03b3b;--tone-work-bg: #e3eefc;--tone-work: #1c5cab;--tone-human-bg: #fdf1d6;--tone-human: #8a5a00;--tone-stop-bg: #fbe3e3;--tone-stop: #a12a2a;--tone-good-bg: #def3de;--tone-good: #006300;--tone-neutral-bg: #ecebe7;--tone-neutral: #52514e;--sidebar: #0f1b2d;--sidebar-ink: #c9d3e2;--sidebar-active: #1d3a63;--shadow: 0 1px 2px rgba(15, 27, 45, .06);--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,sans-serif}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--surface-2: #232321;--ink: #f0efec;--ink-2: #c3c2b7;--muted: #898781;--grid: #2c2c2a;--axis: #383835;--border: rgba(255, 255, 255, .1);--accent: #3987e5;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767;--good-ink: #0ca30c;--tone-work-bg: #17304f;--tone-work: #9ec5f4;--tone-human-bg: #3d2f0c;--tone-human: #f5c95c;--tone-stop-bg: #4a1a1a;--tone-stop: #f2a0a0;--tone-good-bg: #133713;--tone-good: #7fd67f;--tone-neutral-bg: #2c2c2a;--tone-neutral: #c3c2b7;--sidebar: #0a111c;--sidebar-active: #1a3050;--shadow: none}}:root[data-theme=dark]{color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--surface-2: #232321;--ink: #f0efec;--ink-2: #c3c2b7;--muted: #898781;--grid: #2c2c2a;--axis: #383835;--border: rgba(255, 255, 255, .1);--accent: #3987e5;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767;--good-ink: #0ca30c;--tone-work-bg: #17304f;--tone-work: #9ec5f4;--tone-human-bg: #3d2f0c;--tone-human: #f5c95c;--tone-stop-bg: #4a1a1a;--tone-stop: #f2a0a0;--tone-good-bg: #133713;--tone-good: #7fd67f;--tone-neutral-bg: #2c2c2a;--tone-neutral: #c3c2b7;--sidebar: #0a111c;--sidebar-active: #1a3050;--shadow: none}*{box-sizing:border-box}html,body{margin:0;background:var(--page);color:var(--ink);font-size:14px;line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}code,pre,.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12.5px}h1{font-size:24px;margin:0;letter-spacing:-.01em}h2{font-size:15px;margin:0}h3{font-size:13px;margin:0 0 6px;color:var(--ink-2);font-weight:600}.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--sidebar);color:var(--sidebar-ink);padding:18px 12px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:4px}.brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:15px;padding:4px 8px 18px}.brand-mark{width:26px;height:26px;border-radius:7px;background:#2a78d6;display:grid;place-items:center}.nav-link{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:var(--sidebar-ink)}.nav-link:hover{background:#ffffff0f;text-decoration:none}.nav-link.active{background:var(--sidebar-active);color:#fff}.nav-link svg{flex:none}.sidebar-foot{margin-top:auto;font-size:12px;padding:8px;color:#8796ad;display:grid;gap:8px}.sidebar-foot button{background:none;border:1px solid rgba(255,255,255,.15);color:var(--sidebar-ink);border-radius:6px;padding:5px 8px;cursor:pointer;text-align:left}.main{min-width:0;padding:20px 24px 40px}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.subtitle{color:var(--ink-2);margin-top:4px}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.control{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 10px;min-height:34px}.control:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.muted{color:var(--muted)}.small{font-size:12px}.grid{display:grid;gap:14px}.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:14px}.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:span 2}@media (max-width: 1200px){.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 860px){.layout{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;padding:10px 12px}.brand{padding:4px 8px;width:100%}.sidebar-foot{margin:0;width:100%;grid-auto-flow:column;justify-content:start}.main{padding:16px}.cols-3,.cols-2{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-value{font-size:22px}.span-2{grid-column:auto}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);min-width:0}.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}.card-head p{margin:2px 0 0;color:var(--ink-2);font-size:12.5px}.kpi{display:flex;flex-direction:column;gap:2px}.kpi-label{color:var(--ink-2);font-size:12.5px}.kpi-value{font-size:26px;font-weight:650;letter-spacing:-.01em}.kpi-note{color:var(--muted);font-size:12px}.kpi.alert .kpi-value{color:var(--critical)}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.tone-work{background:var(--tone-work-bg);color:var(--tone-work)}.tone-human{background:var(--tone-human-bg);color:var(--tone-human)}.tone-stop{background:var(--tone-stop-bg);color:var(--tone-stop)}.tone-good{background:var(--tone-good-bg);color:var(--tone-good)}.tone-neutral{background:var(--tone-neutral-bg);color:var(--tone-neutral)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;font-weight:600;color:var(--ink-2);font-size:12px;padding:6px 8px;border-bottom:1px solid var(--grid);white-space:nowrap}td{padding:7px 8px;border-bottom:1px solid var(--grid);vertical-align:top}tr:last-child td{border-bottom:none}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--surface-2)}tr.selected td{background:var(--tone-work-bg)}.clip{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:6px 12px;cursor:pointer;font-weight:550;min-height:34px}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}.btn.danger{color:var(--critical)}.btn.small{min-height:28px;padding:3px 9px;font-size:12.5px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stack{display:grid;gap:10px}.spread{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.feed{list-style:none;margin:0;padding:0;display:grid}.feed li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 0;border-bottom:1px solid var(--grid)}.feed li:last-child{border-bottom:none}.feed .reason{grid-column:1 / -1;color:var(--ink-2);font-size:12.5px;overflow-wrap:anywhere}.error{background:var(--tone-stop-bg);color:var(--tone-stop);border-radius:8px;padding:8px 12px;overflow-wrap:anywhere}.empty{color:var(--muted);padding:18px 0;text-align:center}.loading{color:var(--muted);padding:14px 0}.meter{height:8px;background:var(--surface-2);border-radius:4px;overflow:hidden}.meter>span{display:block;height:100%;border-radius:4px;background:var(--series-1)}.meter.over>span{background:var(--critical)}.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--ink-2);margin-top:6px}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}.tooltip{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:12px;box-shadow:0 4px 16px #0000001f;color:var(--ink)}.tooltip .t-head{font-weight:600;margin-bottom:4px}.tooltip .t-row{display:flex;gap:10px;justify-content:space-between}.tooltip .t-row i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px}.timeline{list-style:none;padding:0;margin:0}.timeline li{position:relative;padding:0 0 12px 18px;border-left:2px solid var(--grid);margin-left:5px}.timeline li:before{content:"";position:absolute;left:-6px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--surface);border:2px solid var(--axis)}.timeline li:last-child{border-left-color:transparent}.log{display:grid;gap:6px;max-height:70vh;overflow:auto;padding-right:4px}.log-line{border:1px solid var(--grid);border-radius:8px;padding:7px 10px;background:var(--surface)}.log-line header{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);margin-bottom:3px}.log-line pre{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;overflow:auto;background:var(--surface-2);border-radius:6px;padding:6px 8px}.log-text{white-space:pre-wrap;overflow-wrap:anywhere}.tag{font-family:ui-monospace,Consolas,monospace;font-size:11.5px;background:var(--surface-2);border-radius:4px;padding:0 5px;color:var(--ink-2)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;z-index:50;padding:16px}.modal{background:var(--surface);border-radius:12px;padding:18px;width:min(560px,100%);display:grid;gap:12px;border:1px solid var(--border)}.modal textarea,.modal input:not([type=checkbox]):not([type=radio]),.modal select{width:100%}.modal label.row{flex-wrap:nowrap;align-items:flex-start}.modal label.row input{flex:none;margin-top:3px}.modal .row>label.stack{flex:1;min-width:140px}textarea.control{min-height:110px;resize:vertical}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login form{width:min(360px,100%);display:grid;gap:10px}.chips{display:flex;flex-wrap:wrap;gap:6px}details summary{cursor:pointer;color:var(--ink-2)}dl.props{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0}dl.props dt{color:var(--ink-2)}dl.props dd{margin:0;overflow-wrap:anywhere}.pager{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:10px}.toast{position:fixed;right:16px;bottom:16px;z-index:60}.text-work{color:var(--tone-work)}.text-stop{color:var(--tone-stop)}.steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px}.steps li:before{content:"○ "}.steps .step-passed{color:var(--tone-good)}.steps .step-passed:before{content:"✓ "}.steps .step-now{color:var(--tone-work);font-weight:600}.steps .step-now:before{content:"● "}.steps .step-failed{color:var(--tone-stop);font-weight:600}.steps .step-failed:before{content:"✕ "}.steps .step-later{color:var(--tone-neutral)}
