:root{--bg:#f5f6f8;--card:#fff;--text:#15181d;--text-2:#4a525e;--muted:#5b6370;--border:#e3e6eb;--border-soft:#eef0f3;--input-border:#d5d9e0;--subtle:#fafbfc;--accent:#2457d6;--accent-hover:#1a3fa0;--accent-soft:#e8eefb;--accent-ring:#dce6fb;--accent-text:#1d47b0;--err-bar:#e8833a;--ok:#12703a;--ok-bg:#e6f4ec;--warn:#8a3f06;--warn-bg:#fdf0e1;--danger:#a11e14;--danger-bg:#fdecea;--danger-line:#c0362c;--rule:#7a5ac8;--side-bg:#0f1216;--side-text:#c9ced6;--side-muted:#9aa3af;--side-active:#1f2630;--link:var(--accent);--link-hover:var(--accent-hover);--border-strong:#b8bec8;--danger-border:#e9a39d;--warn-border:#f2c999;--ok-border:#a9d8bb;--info-border:#c9d7f5;--info-bg:#f3f6fd;--rule-bg:#f1ecfb;--rule-text:#5b3fa8;--row-hover:#f6f8fc;--row-selected:#eef3fd;--chip-hover:#d3def8;--code-text:#d7dce3;--idle:#9aa3af;--chart-grid:#eef0f3;--chart-axis:#c9ced6;--chart-hover:#8c95a3;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--sans:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121519;--card:#1a1e24;--text:#e6e9ee;--text-2:#b9c0ca;--muted:#98a1ad;--border:#2c323b;--border-soft:#242a32;--input-border:#3b424d;--subtle:#161a1f;--accent:#3466e3;--accent-hover:#4a78ee;--accent-soft:#1b2847;--accent-ring:#2a3d6b;--accent-text:#9db8ff;--link:#8fb0ff;--link-hover:#b3cbff;--err-bar:#e8833a;--ok:#5fcf96;--ok-bg:#13301f;--warn:#f2ab68;--warn-bg:#33240f;--danger:#ff8f85;--danger-bg:#3a1714;--danger-line:#e5534b;--rule:#a088ea;--side-bg:#0b0d10;--side-active:#1c222b;--border-strong:#4a525e;--danger-border:#7a2e28;--warn-border:#6b4a1c;--ok-border:#1f5a3a;--info-border:#2a3d6b;--info-bg:#172238;--rule-bg:#261d3d;--rule-text:#c4b1ff;--row-hover:#20252d;--row-selected:#1b2847;--chip-hover:#2a3d6b;--code-text:#d7dce3;--idle:#6b7380;--chart-grid:#262c34;--chart-axis:#3b424d;--chart-hover:#7d8693;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#121519;--card:#1a1e24;--text:#e6e9ee;--text-2:#b9c0ca;--muted:#98a1ad;--border:#2c323b;--border-soft:#242a32;--input-border:#3b424d;--subtle:#161a1f;--accent:#3466e3;--accent-hover:#4a78ee;--accent-soft:#1b2847;--accent-ring:#2a3d6b;--accent-text:#9db8ff;--link:#8fb0ff;--link-hover:#b3cbff;--err-bar:#e8833a;--ok:#5fcf96;--ok-bg:#13301f;--warn:#f2ab68;--warn-bg:#33240f;--danger:#ff8f85;--danger-bg:#3a1714;--danger-line:#e5534b;--rule:#a088ea;--side-bg:#0b0d10;--side-active:#1c222b;--border-strong:#4a525e;--danger-border:#7a2e28;--warn-border:#6b4a1c;--ok-border:#1f5a3a;--info-border:#2a3d6b;--info-bg:#172238;--rule-bg:#261d3d;--rule-text:#c4b1ff;--row-hover:#20252d;--row-selected:#1b2847;--chip-hover:#2a3d6b;--code-text:#d7dce3;--idle:#6b7380;--chart-grid:#262c34;--chart-axis:#3b424d;--chart-hover:#7d8693;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.4}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--link)}a:hover{color:var(--link-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-family:var(--mono);font-size:12px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:12px}.right{text-align:right}.nowrap{white-space:nowrap}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell{min-height:100vh;display:flex}.sidebar{background:var(--side-bg);color:var(--side-text);flex-direction:column;flex:0 0 232px;gap:20px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:10px;padding:4px 8px;display:flex}.brand-text{flex-direction:column;display:flex}.brand-title{color:#fff;font-size:15px;font-weight:600}.brand-sub{color:var(--side-muted);font-size:12px}.nav{flex-direction:column;gap:2px;display:flex}.nav a{color:var(--side-text);border-radius:6px;align-items:center;gap:10px;padding:9px 10px;font-size:14px;text-decoration:none;display:flex}.nav a:hover{color:#fff;background:#181d24}.nav a.active{background:var(--side-active);color:#fff;font-weight:600}.nav a:focus-visible{outline-color:#7aa2ff}.side-user{border-top:1px solid #262c35;flex-direction:column;gap:4px;margin-top:auto;padding:12px 10px 0;display:flex}.side-user-email{color:#fff;overflow-wrap:anywhere;font-size:13px}.side-user-role{color:var(--side-muted);font-size:12px}.side-signout{color:var(--side-text);cursor:pointer;background:0 0;border:1px solid #343b46;border-radius:6px;align-self:flex-start;align-items:center;gap:6px;margin-top:8px;padding:6px 10px;font-size:13px;display:inline-flex}.side-signout:hover{color:#fff;border-color:#4a525e}.side-signout:focus-visible{outline-color:#7aa2ff}.menu-toggle{display:none}.sidebar-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.side-collapse{width:32px;height:32px;color:var(--side-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.side-collapse:hover{color:#fff;background:#181d24}.side-collapse:focus-visible{outline-color:#7aa2ff}@media (width>=901px){.sidebar{transition:flex-basis .15s}.sidebar.collapsed{flex-basis:64px;padding:20px 10px}.sidebar.collapsed .sidebar-top{flex-direction:column;gap:12px}.sidebar.collapsed .brand{padding:0}.sidebar.collapsed .brand-text,.sidebar.collapsed .side-user-email,.sidebar.collapsed .side-user-role{display:none}.sidebar.collapsed .nav-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sidebar.collapsed .nav a{justify-content:center;padding:9px 0}.sidebar.collapsed .side-user{align-items:center;padding:12px 0 0}.sidebar.collapsed .side-signout{align-self:center;padding:7px}}@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}.main{flex-direction:column;flex:auto;gap:20px;min-width:0;padding:24px 32px 48px;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.page-title{flex-direction:column;gap:4px;display:flex}.page-title h1{margin:0;font-size:24px;font-weight:600}.page-title span{color:var(--muted);font-size:13px}.page-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (width<=900px){.side-collapse{display:none}.shell{flex-direction:column}.sidebar{z-index:20;flex:none;gap:10px;height:auto;padding:10px 16px;position:sticky;top:0;overflow:visible}.sidebar-top{justify-content:space-between;align-items:center;display:flex}.brand{padding:0}.menu-toggle{color:#fff;cursor:pointer;background:0 0;border:1px solid #343b46;border-radius:6px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.sidebar .nav,.sidebar .side-user{display:none}.sidebar.open .nav,.sidebar.open .side-user{display:flex}.side-user{margin-top:0;padding-bottom:6px}.main{padding:16px 16px 40px}}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;min-width:0;padding:18px;display:flex;position:relative}.card.flush{gap:0;padding:0;overflow-x:auto}.card h2,.h2{margin:0;font-size:15px;font-weight:600}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.card.flush>.card-head{padding:14px 16px}.row{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.row.center{align-items:center}.row.tight{gap:8px}.grow-2{flex:2 520px;min-width:0}.grow-1{flex:300px;min-width:0}.stack{flex-direction:column;gap:12px;min-width:0;display:flex}.stack.tight{gap:6px}.kpis{grid-template-columns:repeat(auto-fit,minmax(122px,1fr));gap:12px;display:grid}.kpi{background:var(--card);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;padding:16px;display:flex}.kpi-label{color:var(--muted);font-size:12px;font-weight:500}.kpi-value{font-variant-numeric:tabular-nums;font-size:26px;font-weight:600}.kpi-note{color:var(--muted);font-size:12px}.spark{margin-top:auto;padding-top:6px}.spark-plot{position:relative}.spark svg{touch-action:pan-y;width:100%;height:32px;display:block;overflow:visible}.spark-empty{height:32px}.spark-line{fill:none;stroke:var(--chart-hover);stroke-width:1.5px;stroke-linejoin:round;stroke-linecap:round}.spark-cursor{stroke:var(--chart-axis);stroke-width:1px}.spark-dot{background:var(--text-2);width:7px;height:7px;box-shadow:0 0 0 2px var(--card);pointer-events:none;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.spark-dot.latest{background:var(--accent)}.spark-read{min-height:1.4em;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.note-box{color:var(--text-2);background:var(--subtle);border:1px solid var(--border-soft);border-radius:8px;margin:0;padding:10px 12px;font-size:13px}.empty{text-align:center;color:var(--muted);padding:24px;font-size:13px}.btn{border:1px solid var(--input-border);background:var(--card);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:14px;display:inline-flex}.btn:hover:not(:disabled){background:var(--subtle);border-color:var(--border-strong)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn.danger{color:var(--danger);border-color:var(--danger-border)}.btn.danger:hover:not(:disabled){background:var(--danger-bg)}.btn.danger-solid{color:#fff;background:#b42318;border-color:#b42318;font-weight:500}.btn.danger-solid:hover:not(:disabled){background:#8f1c13}.btn.sm{padding:6px 11px;font-size:13px}.btn.link{color:var(--accent);background:0 0;border:none;padding:6px 8px;font-weight:500}.btn.link:hover:not(:disabled){background:var(--accent-soft)}.btn.dashed{border:1px dashed var(--border-strong);color:var(--accent);background:0 0;padding:12px;font-weight:500}.icon-btn{border:1px solid var(--input-border);background:var(--card);cursor:pointer;width:32px;height:32px;color:var(--text);border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--subtle)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.seg{flex-wrap:wrap;gap:6px;display:flex}.seg button{cursor:pointer;border:1px solid var(--input-border);background:var(--card);color:var(--text);border-radius:6px;padding:7px 12px;font-size:13px}.seg button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text);font-weight:600}.seg button:disabled{cursor:not-allowed;opacity:.6}.field{color:var(--muted);flex-direction:column;gap:6px;min-width:0;font-size:12px;font-weight:500;display:flex}.field .hint{font-weight:400}.field-row{flex-wrap:wrap;gap:16px;display:flex}.field-row>.field{flex:180px}.input,.select,.textarea{border:1px solid var(--input-border);background:var(--card);color:var(--text);border-radius:6px;width:100%;min-width:0;padding:8px 10px;font-size:14px}.select{padding:8px}.input:disabled,.select:disabled{background:var(--subtle);color:var(--muted)}.input.mono{font-family:var(--mono);font-size:13px}.input[aria-invalid=true]{border-color:var(--danger-line)}.check{color:var(--text);cursor:pointer;align-items:center;gap:6px;font-size:13px;font-weight:400;display:inline-flex}.check input{width:16px;height:16px;accent-color:var(--accent);margin:0}fieldset.plain{border:none;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;display:flex}fieldset.plain>legend{color:var(--muted);margin-bottom:8px;padding:0;font-size:12px;font-weight:500}.label{color:var(--muted);font-size:12px;font-weight:500}.alert{border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger);overflow-wrap:anywhere;border-radius:8px;margin:0;padding:10px 12px;font-size:13px}.alert.warn{border-color:var(--warn-border);background:var(--warn-bg);color:var(--warn)}.alert.ok{border-color:var(--ok-border);background:var(--ok-bg);color:var(--ok)}.alert.info{border-color:var(--info-border);background:var(--info-bg);color:var(--accent-text)}.pill{white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:500;display:inline-block}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.err{background:var(--danger-bg);color:var(--danger)}.pill.off{background:var(--border-soft);color:var(--text-2)}.pill.info{background:var(--accent-soft);color:var(--accent-text)}.pill.rule{background:var(--rule-bg);color:var(--rule-text)}.machine{align-items:center;gap:6px;min-width:0;max-width:100%;display:inline-flex}.machine-dot{border-radius:50%;flex:none;width:9px;height:9px;box-shadow:inset 0 0 0 1px #00000026}.machine-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.machine-sub{color:var(--muted);font-weight:400}.swatch{border-radius:2px;flex:none;width:10px;height:10px}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.legend>span{align-items:center;gap:6px;display:inline-flex}.table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.table.nowrap{white-space:nowrap}.table th{text-align:left;color:var(--muted);background:var(--subtle);padding:10px;font-size:12px;font-weight:500}.table th.right,.table td.right{text-align:right}.table td{border-top:1px solid var(--border-soft);vertical-align:middle;padding:10px}.table th:first-child,.table td:first-child{padding-left:16px}.table.plain th{background:0 0;padding:8px}.table.plain td{padding:8px}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--row-hover)}.table tr.selected td{background:var(--row-selected)}.table tr.dim td{color:var(--muted)}.table-foot{color:var(--muted);border-top:1px solid var(--border-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:0;padding:10px 16px;font-size:12px;display:flex}.row-btn{cursor:pointer;color:inherit;font:inherit;text-align:left;background:0 0;border:none;padding:0}.dl{grid-template-columns:max-content minmax(0,1fr);gap:8px 14px;margin:0;font-size:13px;display:grid}.dl dt{color:var(--muted)}.dl dd{overflow-wrap:anywhere;min-width:0;margin:0}.dl.mono-values dd{font-family:var(--mono);font-size:12px}.dl-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;font-size:13px;display:grid}.dl-grid dt{color:var(--muted);font-size:12px}.dl-grid dd{overflow-wrap:anywhere;margin:0}.code{background:var(--side-bg);color:var(--code-text);font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;max-height:480px;margin:0;padding:12px;font-size:12px;overflow:auto}.bars{border-bottom:1px solid var(--border);align-items:flex-end;gap:3px;height:180px;display:flex}.bars.short{height:140px}.bar{flex-direction:column;flex:1 1 0;justify-content:flex-end;min-width:0;height:100%;display:flex}.bar>div{flex:none}.bar-ok{background:var(--accent)}.bar-err{background:var(--err-bar);border-radius:2px 2px 0 0}.axis{color:var(--muted);font-size:11px;font-family:var(--mono);justify-content:space-between;display:flex}.slotbar{background:var(--border-soft);border-radius:2px;width:100%;height:4px;display:block;overflow:hidden}.slotbar>span{height:100%;display:block}.split{background:var(--border-soft);border-radius:3px;height:12px;display:flex;overflow:hidden}.split>div{min-width:0}.map-scroll{overflow-x:auto}.map{background:var(--subtle);border:1px solid var(--border-soft);border-radius:8px;min-width:760px;position:relative}.map svg{width:100%;height:100%;position:absolute;inset:0}.map-col-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600;position:absolute}.map-node{text-align:left;cursor:pointer;background:var(--card);border:1px solid var(--input-border);border-radius:8px;flex-direction:column;justify-content:center;gap:3px;min-width:0;padding:6px 12px;display:flex;position:absolute;overflow:hidden}.map-node:hover{border-color:var(--border-strong)}.map-node.fail{border-color:var(--danger-border)}.map-node.picked{border:2px solid var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.map-node-title{color:var(--text);white-space:nowrap;align-items:center;gap:6px;max-width:100%;font-size:13px;font-weight:600;display:flex;overflow:hidden}.map-node-title>span:last-child{text-overflow:ellipsis;overflow:hidden}.map-node-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:12px;overflow:hidden}.state-dot{border-radius:50%;flex:none;width:8px;height:8px}.live-dot{background:var(--ok);border-radius:50%;width:8px;height:8px}.live-dot.off{background:var(--idle)}.rule-card{text-align:left;cursor:pointer;background:var(--card);width:100%;color:var(--text);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.rule-card.selected{border:2px solid var(--accent);box-shadow:0 0 0 3px var(--accent-ring);padding:11px 13px}.rule-card.disabled-rule{background:var(--subtle)}.rule-item{align-items:stretch;gap:6px;display:flex}.rule-item>.rule-card{flex:auto;min-width:0}.rule-moves{flex-direction:column;justify-content:center;gap:4px;display:flex}.rule-badge{background:var(--border-soft);min-width:26px;height:22px;color:var(--text);border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:600;display:inline-flex}.rule-badge.filter{background:var(--rule-bg);color:var(--rule-text)}.group-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text);margin:0;font-size:13px;font-weight:600}.cond-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cond-row .and{width:34px;color:var(--muted);font-size:12px;font-weight:600}.cond-row .select{width:auto}.cond-row .cond-value{flex:160px;min-width:0}.trace{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.trace li{gap:10px;font-size:13px;display:flex}.trace .tdot{background:var(--border-strong);border-radius:50%;flex:none;width:8px;height:8px;margin-top:6px}.trace .tdot.on{background:var(--ok)}.result-box{border:1px solid var(--info-border);background:var(--info-bg);border-radius:10px;flex-direction:column;gap:6px;padding:16px;display:flex}.result-kicker{color:var(--accent-text);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent-text);border-radius:6px;align-items:center;gap:6px;max-width:100%;padding:4px 4px 4px 10px;font-size:13px;font-weight:500;display:inline-flex}.chip.static{padding:4px 10px}.chip button{width:22px;height:22px;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.chip button:hover{background:var(--chip-hover)}.chip .order{color:var(--accent-text);opacity:.8;font-size:11px;font-weight:600}.picker{min-width:0;position:relative}.picker-trigger{border:1px solid var(--input-border);background:var(--card);width:100%;color:var(--text);cursor:pointer;text-align:left;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:8px 10px;font-size:14px;display:flex}.picker-trigger:disabled{background:var(--subtle);color:var(--muted);cursor:not-allowed}.picker-trigger .placeholder{color:var(--muted)}.picker-trigger>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.popover{z-index:50;background:var(--card);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;width:max-content;min-width:100%;max-width:min(360px,100vw - 32px);padding:6px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #0f12161f}.popover.align-right{left:auto;right:0}.popover .input{padding:7px 9px;font-size:13px}.options{flex-direction:column;max-height:260px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.option{cursor:pointer;color:var(--text);border-radius:5px;align-items:center;gap:8px;min-width:0;padding:7px 8px;font-size:13px;display:flex}.option[aria-selected=true]{font-weight:600}.option.active{background:var(--accent-soft)}.option .tick{width:14px;color:var(--accent);flex:none}.option .opt-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.option .opt-hint{color:var(--muted);margin-left:auto;font-size:12px;font-weight:400}.options-empty{color:var(--muted);padding:8px;font-size:13px}.tags{border:1px solid var(--input-border);background:var(--card);cursor:text;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;min-height:38px;padding:5px 6px;display:flex}.tags:focus-within{outline:2px solid var(--accent);outline-offset:1px}.tags input{min-width:80px;font-size:14px;font-family:var(--mono);border:none;outline:none;flex:120px;padding:3px 4px}.tags .chip{font-family:var(--mono);font-size:12px}.swatches{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.swatch-btn{border:2px solid var(--card);width:28px;height:28px;box-shadow:0 0 0 1px var(--input-border);cursor:pointer;border-radius:50%;padding:0}.swatch-btn[aria-checked=true]{box-shadow:0 0 0 2px var(--text)}dialog.dialog{background:var(--card);width:min(560px,100vw - 24px);max-height:calc(100vh - 32px);color:var(--text);border:none;border-radius:12px;padding:0;box-shadow:0 24px 64px #0f121647}dialog.dialog.wide{width:min(720px,100vw - 24px)}dialog.dialog.xwide{width:min(1040px,100vw - 24px)}dialog.dialog::backdrop{background:#0f121673}.dialog-inner{flex-direction:column;max-height:calc(100vh - 32px);display:flex}.dialog-head{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:8px;padding:16px 20px;display:flex}.dialog-head h2{margin:0;font-size:16px;font-weight:600}.dialog-body{flex-direction:column;gap:16px;padding:18px 20px;display:flex;overflow-y:auto}.dialog-foot{border-top:1px solid var(--border-soft);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.secret-box{align-items:stretch;gap:8px;display:flex}.secret-box code{min-width:0;font-family:var(--mono);background:var(--subtle);border:1px solid var(--input-border);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;border-radius:6px;flex:auto;padding:10px 12px;font-size:13px}.diff{background:var(--subtle);border:1px solid var(--border-soft);font-family:var(--mono);white-space:normal;border-radius:8px;flex-direction:column;gap:4px;margin:0;padding:10px 12px;font-size:12px;display:flex}.diff-line{overflow-wrap:anywhere;flex-wrap:wrap;gap:6px;display:flex}.diff-path{color:var(--text);font-weight:600}.diff-old{color:var(--danger);text-decoration:line-through}.diff-new{color:var(--ok)}.diff-arrow{color:var(--muted)}.auth-wrap{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.auth-card{background:var(--card);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:16px;width:min(400px,100%);padding:28px 24px;display:flex}.auth-card h1{margin:0;font-size:20px;font-weight:600}.auth-brand{color:var(--muted);align-items:center;gap:10px;font-size:13px;display:flex}.splash{min-height:100vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:16px;display:flex}.auth-or{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:flex}.auth-or:before,.auth-or:after{content:"";border-top:1px solid var(--border);flex:1}.budget{flex-direction:column;gap:4px;min-width:140px;display:flex}.budget .slotbar{border-radius:3px;height:6px}.budget-text{color:var(--muted);white-space:nowrap;font-size:12px}.budget-text.warn{color:var(--warn)}.budget-text.over{color:var(--danger);font-weight:500}.map-rows{flex-direction:column;gap:8px;display:flex}.map-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.map-row .arrow{color:var(--muted)}@media (width<=520px){.map-row{grid-template-columns:minmax(0,1fr) auto}.map-row .arrow,.map-row.map-head{display:none}.map-row>:nth-child(3){grid-column:1}.map-row>:nth-child(4){grid-area:1/2/span 2}}.passkey-list{margin:0;padding:0;list-style:none}.passkey-list li{border-top:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.passkey-list li:first-child{border-top:0}.probe-row{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.ok-text{color:var(--ok)}.err-text{color:var(--danger);overflow-wrap:anywhere}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.connect-grid{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));align-items:start;gap:16px;display:grid}.seg[role=tablist] button[aria-selected=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text);font-weight:600}.code-wrap{flex-direction:column;gap:6px;min-width:0;display:flex;position:relative}.code-wrap .code{padding-right:92px}.code-copy{position:absolute;top:8px;right:8px}.connect-list{color:var(--text-2);flex-direction:column;gap:6px;margin:0;padding-left:20px;font-size:13px;display:flex}@media (width<=520px){.code-wrap .code{padding-top:48px;padding-right:12px}}.table-scroll{overflow-x:auto}.requests-table td{vertical-align:top;white-space:nowrap}.requests-table td .small{white-space:normal}.requests-table td:first-child{max-width:200px}.cell2{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.cell2.end{align-items:flex-end}.cell2 .row-btn{padding:0}.perf-toolbar{flex-wrap:wrap;align-items:flex-end;gap:12px 16px;display:flex}.tb-field,.tb-stack{flex-direction:column;gap:6px;min-width:0;display:flex}.tb-pick{flex:160px;max-width:240px}.tb-label{color:var(--muted);font-size:12px;font-weight:500}.tb-live{flex-wrap:wrap;align-items:center;gap:8px;min-height:36px;margin-left:auto;display:flex}.tb-live .btn[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.live-dot.pulse{animation:2s ease-out infinite live-pulse;box-shadow:0 0 #12703a80}@keyframes live-pulse{to{box-shadow:0 0 0 6px #12703a00}}@media (prefers-reduced-motion:reduce){.live-dot.pulse{animation:none}}.perf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}@media (width<=1080px){.perf-grid{grid-template-columns:minmax(0,1fr)}}.tc{gap:8px;transition:opacity .15s}.tc-dim{opacity:.55}.tc-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.tc-title{flex-direction:column;gap:2px;min-width:0;display:flex}.tc-unit{color:var(--muted);font-size:12px;font-weight:400}.tc-note{color:var(--muted);font-size:12px}.tc-time{color:var(--text-2);min-height:1.4em;font-size:12px}.tc-legend{flex-wrap:wrap;gap:2px 4px;display:flex}.tc-lg{color:var(--text-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;min-height:28px;padding:3px 6px;font-size:12px;display:inline-flex}.tc-lg:hover{background:var(--subtle);border-color:var(--border-soft)}.tc-lg[aria-pressed=false]{color:var(--muted)}.tc-lg[aria-pressed=false] .tc-key{opacity:.25}.tc-lg[aria-pressed=false] .tc-lg-label{text-decoration:line-through}.tc-lg-val{color:var(--text);font-weight:600}.tc-key{flex:none}.tc-style{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.tc-style>span{align-items:center;gap:4px;display:inline-flex}.tc-plot{touch-action:pan-y;border-radius:4px;width:100%;position:relative}.tc-plot svg{display:block;overflow:visible}.tc-tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.tc-tip{z-index:5;pointer-events:none;background:var(--card);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:4px;max-width:min(280px,70%);padding:8px 10px;font-size:12px;display:flex;position:absolute;top:8px;box-shadow:0 6px 18px #0f12161f}.tc-tip-time{color:var(--muted)}.tc-tip-row{white-space:nowrap;align-items:center;gap:6px;display:flex}.tc-tip-row strong{color:var(--text)}.tc-tip-row span{color:var(--text-2);text-overflow:ellipsis;overflow:hidden}.tc-table summary{color:var(--muted);cursor:pointer;width:max-content;font-size:12px}.tc-table-scroll{max-height:260px;margin-top:6px;overflow:auto}.flow{background:var(--subtle);border:1px solid var(--border-soft);border-radius:8px;position:relative;overflow:hidden}.flow-svg{position:absolute;inset:0}.ribbon{stroke:var(--chart-hover)}.ribbon.rule{stroke:var(--rule)}.ribbon.failing{stroke:var(--danger-line)}.ribbon-err{stroke:var(--danger-line);stroke-opacity:.9;pointer-events:none}.flow-dot{fill:var(--text);stroke:var(--subtle);pointer-events:none}.flow-node{box-sizing:border-box;background:var(--card);border:1px solid var(--input-border);color:var(--text);text-align:left;cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;gap:4px;padding:10px 14px;display:flex;position:absolute;overflow:hidden}.flow-node:hover{border-color:var(--border-strong)}.flow-node.picked{border:2px solid var(--accent);box-shadow:0 0 0 3px var(--accent-ring);padding:9px 13px}.flow-node.machine{justify-content:flex-start;align-items:stretch;gap:9px;padding:12px 14px}.flow-node.machine.picked{padding:11px 13px}.flow-node.full{border-color:var(--warn-border)}.flow-node.down{border-color:var(--danger-border)}.flow-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.flow-title.mono{font-size:13px;font-weight:500}.flow-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:16px;overflow:hidden}.flow-wait{color:var(--warn);white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:16px;overflow:hidden}.flow-machine-head{align-items:center;gap:8px;min-width:0;height:22px;display:flex}.slots{flex-wrap:wrap;gap:3px;display:flex}.slot{box-sizing:border-box;border:1px solid var(--input-border);border-radius:3px;width:12px;height:12px;display:inline-block}.rule-tag{z-index:2;color:var(--rule-text);background:var(--rule-bg);white-space:nowrap;pointer-events:none;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:500;position:absolute}.flow-idle{box-sizing:border-box;border:1px dashed var(--input-border);height:48px;color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:0 8px 0 14px;font-size:12px;display:flex;position:absolute}.flow-idle-list{white-space:nowrap;flex:1;gap:12px;min-width:0;display:flex;overflow:hidden}.flow-idle-list>*{flex-wrap:nowrap;flex-shrink:0}.flow-hide-idle{z-index:2;position:absolute}.flow-tip{z-index:3;box-sizing:border-box;background:var(--card);border:1px solid var(--border);width:260px;color:var(--text-2);pointer-events:none;border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;font-size:12px;display:flex;position:absolute;box-shadow:0 8px 24px #0f121633}.flow-tip strong{color:var(--text);font-size:13px}.flow-row{text-align:left;background:var(--card);border:1px solid var(--input-border);color:var(--text);cursor:pointer;border-radius:8px;flex-direction:column;gap:3px;padding:10px 12px;display:flex}.legend-ribbon{background:var(--chart-hover);border-radius:3px;width:22px;height:6px;display:inline-block}.legend-ribbon.rule{background:var(--rule)}.legend-ribbon.err{background:linear-gradient(90deg, var(--chart-hover) 60%, var(--danger-line) 60%)}.model-chips{flex-wrap:wrap;gap:6px;display:flex}.model-chip{font-family:var(--mono);border:1px solid var(--border);background:var(--subtle);color:var(--text);border-radius:6px;padding:3px 8px;font-size:12px}.mapping-table td{white-space:nowrap}.mapping-table th .machine{color:var(--text);font-weight:600}.mapping-same{color:var(--text-2);align-items:center;gap:6px;display:inline-flex}.mapping-same svg{color:var(--ok)}.mapping-as{background:var(--accent-soft);color:var(--accent-text);font-family:var(--mono);border-radius:6px;gap:6px;padding:3px 8px;font-size:12px;display:inline-flex}.mapping-as .as{opacity:.7}
