@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg: #0a0a0b;--bg-panel: #111113;--bg-panel-2: #18181b;--bg-hover: #1c1c20;--bg-active: #222228;--border: #26262a;--border-strong: #34343a;--text: #ededef;--text-secondary: #a0a0a8;--text-muted: #6e6e76;--accent: #6e8bff;--accent-hover: #8aa2ff;--accent-muted: rgba(110, 139, 255, .14);--success: #2ecc8f;--success-muted: rgba(46, 204, 143, .14);--failure: #ff5c7a;--failure-muted: rgba(255, 92, 122, .13);--warning: #f5a623;--warning-muted: rgba(245, 166, 35, .13);--neutral: #8b8b93;--neutral-muted: rgba(139, 139, 147, .15);--shadow: 0 8px 32px rgba(0, 0, 0, .55);--radius: 8px;--radius-sm: 6px;--chart-grid: rgba(255, 255, 255, .06);--skeleton-base: #1a1a1e;--skeleton-shine: #26262c;color-scheme:dark}[data-theme=light]{--bg: #fafafa;--bg-panel: #ffffff;--bg-panel-2: #f4f4f5;--bg-hover: #f0f0f2;--bg-active: #e8e8eb;--border: #e4e4e8;--border-strong: #d4d4da;--text: #18181b;--text-secondary: #52525b;--text-muted: #8e8e98;--accent: #4f6ef2;--accent-hover: #3d5ce0;--accent-muted: rgba(79, 110, 242, .1);--success: #16a06d;--success-muted: rgba(22, 160, 109, .12);--failure: #e0335b;--failure-muted: rgba(224, 51, 91, .1);--warning: #cf8208;--warning-muted: rgba(207, 130, 8, .12);--neutral: #71717a;--neutral-muted: rgba(113, 113, 122, .12);--shadow: 0 8px 32px rgba(0, 0, 0, .14);--chart-grid: rgba(0, 0, 0, .07);--skeleton-base: #ececef;--skeleton-shine: #f8f8fa;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,Segoe UI,sans-serif;font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#root{display:flex;flex-direction:column;height:100vh}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}input,textarea,select{font:inherit;color:var(--text);background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 9px;outline:none;transition:border-color .1s ease}input:focus,textarea:focus,select:focus{border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--text-muted)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px;border:2px solid transparent;background-clip:content-box}.app-header{display:flex;align-items:center;gap:20px;height:46px;padding:0 16px;border-bottom:1px solid var(--border);background:var(--bg-panel);flex-shrink:0}.app-logo{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13.5px;color:var(--text)}.app-logo svg{color:var(--accent)}.app-nav{display:flex;gap:4px}.app-nav a{padding:4px 10px;border-radius:var(--radius-sm);color:var(--text-secondary);font-weight:500}.app-nav a:hover{color:var(--text);background:var(--bg-hover)}.app-nav a.active{color:var(--text);background:var(--bg-active)}.header-spacer{flex:1}.theme-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);color:var(--text-secondary);border:1px solid transparent}.theme-toggle:hover{color:var(--text);background:var(--bg-hover);border-color:var(--border)}.page{flex:1;display:flex;flex-direction:column;min-height:0;padding:14px 16px;gap:12px;overflow-y:auto}.page--flows{overflow:hidden}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius)}.panel-title{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;padding:10px 12px 0;margin:0 0 8px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:500;padding:1px 8px;border-radius:999px;white-space:nowrap;border:1px solid transparent}.badge .dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.badge--success{color:var(--success);background:var(--success-muted)}.badge--success .dot{background:var(--success)}.badge--failure{color:var(--failure);background:var(--failure-muted)}.badge--failure .dot{background:var(--failure)}.badge--warning{color:var(--warning);background:var(--warning-muted)}.badge--warning .dot{background:var(--warning)}.badge--neutral{color:var(--neutral);background:var(--neutral-muted)}.badge--neutral .dot{background:var(--neutral)}.badge--accent{color:var(--accent);background:var(--accent-muted)}.badge--accent .dot{background:var(--accent)}.tag-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:1px 7px;border-radius:999px;background:var(--bg-active);border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap}.tag-chip button{display:inline-flex;color:var(--text-muted);line-height:1;font-size:13px;padding:0 1px}.tag-chip button:hover{color:var(--failure)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex-shrink:0}.search-input{width:260px;height:30px}.toolbar select{height:30px;padding:4px 8px;color:var(--text-secondary)}.toolbar select:has(option:checked:not([value=""])){color:var(--text);border-color:var(--border-strong)}.toolbar input[type=text]{height:30px}.filter-toggle{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-panel-2);color:var(--text-secondary);font-weight:500;transition:all .1s ease}.filter-toggle:hover{border-color:var(--border-strong);color:var(--text)}.filter-toggle.active{background:var(--accent-muted);border-color:var(--accent);color:var(--accent)}.active-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.active-chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;padding:2px 8px;border-radius:999px;background:var(--accent-muted);border:1px solid var(--accent);color:var(--accent)}.active-chip button{display:inline-flex;color:inherit;opacity:.7;font-size:13px;line-height:1}.active-chip button:hover{opacity:1}.result-count{margin-left:auto;color:var(--text-muted);font-size:12px;white-space:nowrap}.table-wrap{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.table-scroll{flex:1;overflow:auto;position:relative}.flow-table{width:100%;min-width:1080px}.thead-row,.table-row{display:flex;align-items:center;min-width:1080px}.thead-row{position:sticky;top:0;z-index:2;background:var(--bg-panel);border-bottom:1px solid var(--border);height:36px}.th{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:0 10px;display:flex;align-items:center;gap:4px;-webkit-user-select:none;user-select:none;white-space:nowrap}.th.sortable{cursor:pointer}.th.sortable:hover{color:var(--text-secondary)}.th .sort-arrow{font-size:9px;color:var(--accent)}.table-row{height:44px;border-bottom:1px solid var(--border);cursor:pointer;position:absolute;top:0;left:0;right:0;background:var(--bg-panel);transition:background-color .08s ease}.table-row:hover{background:var(--bg-hover)}.table-row.selected{background:var(--accent-muted)}.td{padding:0 10px;display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden}.cell-name{display:flex;flex-direction:column;min-width:0;line-height:1.3}.cell-name .name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-name .sub{font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lastrun-cell{display:flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.2}.lastrun-cell .when{color:var(--text-secondary);font-size:12px}.spark-cell{display:flex;align-items:center;gap:7px}.spark-pct{font-size:11.5px;color:var(--text-secondary);font-variant-numeric:tabular-nums;min-width:34px}.tags-cell{display:flex;gap:4px;overflow:hidden}.tags-more{font-size:11px;color:var(--text-muted)}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pager{display:flex;align-items:center;gap:8px;padding:8px 10px;border-top:1px solid var(--border);color:var(--text-muted);font-size:12px;flex-shrink:0}.pager button{padding:3px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-panel-2);color:var(--text-secondary)}.pager button:hover:not(:disabled){border-color:var(--border-strong);color:var(--text)}.pager button:disabled{opacity:.4;cursor:default}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:40}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(640px,94vw);background:var(--bg-panel);border-left:1px solid var(--border);box-shadow:var(--shadow);z-index:41;display:flex;flex-direction:column;animation:drawer-in .16s ease-out}@keyframes drawer-in{0%{transform:translate(24px);opacity:0}to{transform:translate(0);opacity:1}}.drawer-header{padding:14px 18px 12px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:7px;flex-shrink:0}.drawer-header .title-row{display:flex;align-items:flex-start;gap:10px}.drawer-header h2{margin:0;font-size:15px;font-weight:600;flex:1;min-width:0;overflow-wrap:break-word}.drawer-close{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-sm);color:var(--text-muted);flex-shrink:0}.drawer-close:hover{color:var(--text);background:var(--bg-hover)}.drawer-header .meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:var(--text-muted);font-size:12px}.external-link{font-size:12px;display:inline-flex;align-items:center;gap:4px}.drawer-body{flex:1;overflow-y:auto;padding:14px 18px 24px;display:flex;flex-direction:column;gap:16px}.section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 7px}.meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.meta-item{min-width:0}.meta-item .label{font-size:11px;color:var(--text-muted);margin-bottom:1px}.meta-item .value{color:var(--text);font-size:12.5px;overflow-wrap:break-word}.meta-item .value .sub{color:var(--text-muted);font-size:11.5px}.callout{border-radius:var(--radius-sm);padding:8px 11px;font-size:12.5px;border:1px solid}.callout--warning{background:var(--warning-muted);border-color:var(--warning);color:var(--warning)}.conn-list{display:flex;flex-direction:column;gap:6px}.conn-item{display:flex;align-items:center;gap:9px;padding:6px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-panel-2)}.conn-item img{width:20px;height:20px;border-radius:4px;flex-shrink:0}.conn-item .conn-icon-fallback{width:20px;height:20px;border-radius:4px;background:var(--bg-active);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--text-muted);flex-shrink:0}.conn-item .conn-text{min-width:0;line-height:1.3}.conn-item .conn-name{font-size:12.5px;font-weight:500}.conn-item .conn-sub{font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-grid{display:flex;flex-direction:column;gap:13px}.tag-editor{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.tag-add-input{height:24px;font-size:11.5px;padding:1px 8px;border-radius:999px;width:110px}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-panel-2)}.segmented button{padding:4px 12px;font-size:12px;color:var(--text-secondary);border-right:1px solid var(--border);transition:all .08s ease}.segmented button:last-child{border-right:none}.segmented button:hover{background:var(--bg-hover);color:var(--text)}.segmented button.on{background:var(--accent-muted);color:var(--accent);font-weight:500}.segmented button.on--low{background:var(--neutral-muted);color:var(--neutral)}.segmented button.on--medium{background:var(--warning-muted);color:var(--warning)}.segmented button.on--high{background:var(--failure-muted);color:var(--failure)}.notes-area{width:100%;min-height:64px;resize:vertical;font-size:12.5px}.field-row{display:flex;align-items:center;gap:8px}.saving-hint{font-size:11px;color:var(--text-muted)}.btn{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-panel-2);color:var(--text-secondary);font-weight:500;font-size:12px;transition:all .1s ease}.btn:hover:not(:disabled){border-color:var(--border-strong);color:var(--text)}.btn:disabled{opacity:.45;cursor:default}.btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-hover);color:#fff}.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.stat-tile{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 11px}.stat-tile .stat-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px;white-space:nowrap}.stat-tile .stat-value{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2}.stat-tile .stat-value.good{color:var(--success)}.stat-tile .stat-value.bad{color:var(--failure)}.stat-tile .stat-value.warn{color:var(--warning)}.chart-box{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 8px 4px}.runs-table{width:100%;border-collapse:collapse;font-size:12px}.runs-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:600;padding:5px 8px;border-bottom:1px solid var(--border);white-space:nowrap}.runs-table td{padding:5px 8px;border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap}.runs-table td.error-cell{max-width:220px;overflow:hidden;text-overflow:ellipsis;color:var(--text-secondary)}.runs-table .error-code{color:var(--failure);font-weight:500;margin-right:5px}.dash-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;flex-shrink:0}.dash-tiles .stat-tile{background:var(--bg-panel)}.dash-tiles .stat-value{font-size:22px}.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}@media (max-width: 1100px){.dash-grid{grid-template-columns:1fr}}.dash-table{width:100%;border-collapse:collapse;font-size:12.5px}.dash-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:600;padding:6px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.dash-table td{padding:7px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.dash-table tbody tr:last-child td{border-bottom:none}.dash-table tbody tr.clickable{cursor:pointer}.dash-table tbody tr.clickable:hover{background:var(--bg-hover)}.dash-table .num{text-align:right;font-variant-numeric:tabular-nums}.rate-bar{display:flex;align-items:center;gap:8px;min-width:120px}.rate-bar .track{flex:1;height:5px;border-radius:3px;background:var(--bg-active);overflow:hidden}.rate-bar .fill{height:100%;background:var(--failure);border-radius:3px}.rate-bar .label{font-size:11.5px;color:var(--text-secondary);font-variant-numeric:tabular-nums;min-width:38px;text-align:right}.stale-counts{display:flex;gap:8px;padding:0 12px 10px}.stale-counts .stat-tile{flex:1}.skeleton{position:relative;overflow:hidden;background:var(--skeleton-base);border-radius:4px}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--skeleton-shine),transparent);animation:shimmer 1.4s infinite}@keyframes shimmer{to{transform:translate(100%)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:44px 20px;color:var(--text-muted);text-align:center}.empty-state .empty-title{color:var(--text-secondary);font-weight:500;font-size:13.5px}.error-banner{display:flex;align-items:center;gap:10px;padding:9px 13px;border:1px solid var(--failure);background:var(--failure-muted);color:var(--failure);border-radius:var(--radius-sm);font-size:12.5px}.error-banner .msg{flex:1;min-width:0}.error-banner button{border:1px solid var(--failure);border-radius:var(--radius-sm);padding:2px 10px;color:var(--failure);font-weight:500;flex-shrink:0}.error-banner button:hover{background:var(--failure);color:#fff}.recharts-tooltip-wrapper{outline:none}.chart-tooltip{background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:7px 10px;font-size:12px;box-shadow:var(--shadow)}.chart-tooltip .tt-title{font-weight:600;margin-bottom:3px}.chart-tooltip .tt-row{display:flex;align-items:center;gap:6px;color:var(--text-secondary)}.chart-tooltip .swatch{width:8px;height:8px;border-radius:2px}
