:root{--bg: #f7f8fa;--card: #ffffff;--text: #1f2937;--muted: #6b7280;--primary: #6366f1;--primary-600: #5458e6;--border: #e5e7eb;--background-primary: var(--card);--background-subtle: var(--bg);--text-primary: var(--text);--text-secondary: var(--muted);--border-color: var(--border);--success-color: #10b981;--success-background: #d1fae5;--warning-color: #f59e0b;--warning-background: #fef3c7;--error-color: #ef4444;--error-background: #fee2e2;--info-color: #3b82f6;--info-background: #dbeafe;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700}@media(prefers-color-scheme:dark){:root{--bg: #0f172a;--card: #111827;--text: #e5e7eb;--muted: #9ca3af;--primary: #818cf8;--primary-600: #6366f1;--border: #1f2937;--background-primary: var(--card);--background-subtle: var(--bg);--text-primary: var(--text);--text-secondary: var(--muted);--border-color: var(--border);--success-color: #34d399;--success-background: #064e3b;--warning-color: #fbbf24;--warning-background: #451a03;--error-color: #f87171;--error-background: #450a0a;--info-color: #60a5fa;--info-background: #1e3a8a}}:root{font-family:var(--font-sans);line-height:1.6;font-weight:var(--font-weight-regular);color-scheme:light dark;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:var(--font-weight-medium);color:var(--primary);text-decoration:inherit}a:hover{color:var(--primary-600)}body{margin:0;width:100%;min-width:320px;min-height:100vh;background-color:var(--bg);color:var(--text)}h1{font-size:var(--font-size-2xl);line-height:1.25}button{border-radius:var(--radius-sm);border:1px solid transparent;padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-family:inherit;background-color:var(--primary);color:#fff;cursor:pointer;transition:border-color .25s,transform .15s ease}button:hover{border-color:var(--primary-600);transform:translateY(-1px)}button:focus,button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}input,textarea,select{font:inherit}input,textarea,select{background-color:var(--card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}:root{--shell-gutter-x: 24px;--shell-gutter-y: 16px;--shell-gutter-x-sm: 12px;--header-height: 56px;--sidebar-width: 220px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh;background:var(--bg);color:var(--text)}.app-header-shell{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:var(--shell-gutter-x);height:var(--header-height);padding:0 var(--shell-gutter-x);border-bottom:1px solid var(--border);-webkit-backdrop-filter:saturate(180%) blur(6px);backdrop-filter:saturate(180%) blur(6px);background:color-mix(in oklab,var(--bg) 84%,transparent)}.header-left{display:flex;align-items:center;gap:12px}.app-title{font-size:var(--font-size-lg);margin:0}.header-right{display:flex;align-items:center;gap:12px;min-width:360px}.header-control{display:flex;align-items:center;gap:8px}.header-control.grow{flex:1}.header-control input[type=search]{width:100%}.app-body{display:grid;grid-template-columns:var(--sidebar-width) 1fr}.app-body.sidebar-hidden{grid-template-columns:1fr}.app-sidebar{position:sticky;top:var(--header-height);align-self:start;height:calc(100vh - var(--header-height));border-right:1px solid var(--border);background:color-mix(in oklab,var(--card) 92%,transparent);padding:var(--shell-gutter-y) var(--shell-gutter-x);display:flex;flex-direction:column;gap:12px}.sidebar-toggle{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;cursor:pointer;color:var(--text);font-size:14px;transition:all .2s;align-self:flex-start}.sidebar-toggle:hover{background:var(--card);border-color:var(--primary);color:var(--primary)}.sidebar-show-button{position:fixed;top:calc(var(--header-height) + 12px);left:12px;z-index:10;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;cursor:pointer;color:var(--text);font-size:14px;transition:all .2s;box-shadow:0 2px 8px #0000001a}.sidebar-show-button:hover{background:var(--card);border-color:var(--primary);color:var(--primary);box-shadow:0 4px 12px #00000026}.sidebar-nav{display:flex;flex-direction:column;gap:6px}.sidebar-nav .nav-item{display:block;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text);text-decoration:none}.sidebar-nav .nav-item:hover{background:#6366f114}.sidebar-nav .nav-item.active{background:#6366f11f;color:var(--primary);font-weight:var(--font-weight-medium)}.app-main-shell{min-height:calc(100vh - var(--header-height));overflow:auto}.app-main-inner{padding:var(--shell-gutter-y) var(--shell-gutter-x);max-width:1280px}@media(max-width:920px){.app-body{grid-template-columns:1fr}.app-sidebar{position:static;height:auto;top:auto;border-right:none;border-bottom:1px solid var(--border);padding-top:var(--shell-gutter-y);padding-bottom:var(--shell-gutter-y)}.app-main-inner{padding-left:var(--shell-gutter-x-sm);padding-right:var(--shell-gutter-x-sm)}}.ui-table.compact th,.ui-table.compact td{padding:6px 10px}.ui-table.zebra tbody tr:nth-child(2n) td{background:color-mix(in oklab,var(--card) 96%,var(--bg))}.ui-table.sticky thead th{position:sticky;top:0;z-index:1}.ui-card{background-color:var(--card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-5)}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);background-color:var(--primary);color:#fff;border:1px solid transparent;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);cursor:pointer;transition:background-color .2s ease,transform .15s ease}.ui-btn:hover:not(:disabled){background-color:var(--primary-600);transform:translateY(-1px)}.ui-btn:disabled{opacity:.6;cursor:not-allowed}.ui-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ui-input{width:100%;background-color:var(--card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm)}.ui-input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ui-table{width:100%;border-collapse:collapse;background-color:var(--card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.ui-table th,.ui-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);font-size:var(--font-size-sm);text-align:left}.ui-table thead th{background:#00000005;color:var(--muted);font-weight:var(--font-weight-semibold)}@media(prefers-color-scheme:dark){.ui-table thead th{background:#ffffff08}}.ui-table tr:hover td{background:#6366f10a}.ui-skeleton{display:block;width:100%;height:1rem;border-radius:6px;background:linear-gradient(90deg,#0000000f,#0000001f,#0000000f);background-size:200% 100%;animation:ui-shimmer 1.2s ease-in-out infinite}@keyframes ui-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ui-spinner{width:18px;height:18px;border:2px solid rgba(0,0,0,.1);border-top-color:var(--primary);border-radius:50%;animation:ui-spin .8s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-empty{padding:var(--space-6);text-align:center;color:var(--muted)}.ui-empty .icon{display:inline-block;width:28px;height:28px;border:2px solid var(--border);border-radius:50%;margin-bottom:var(--space-2)}.ui-field-error{margin-top:var(--space-1);color:#b91c1c;font-size:var(--font-size-xs)}@keyframes ui-skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#0000000f 25%,#0000001f 37%,#0000000f 63%);background-size:400% 100%;animation:ui-skeleton-shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}.skeleton-line{height:12px;width:100%;margin:var(--space-2) 0}.skeleton-card{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);box-shadow:var(--shadow-sm)}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-4)}.skeleton-row td{padding:var(--space-3) var(--space-4)}.empty-state{text-align:center;color:var(--muted);padding:var(--space-6)}.empty-state .icon{display:inline-block;font-size:1.75rem;margin-bottom:var(--space-2)}.empty-state .text{font-size:var(--font-size-sm)}.subtle-text{color:var(--muted);font-size:var(--font-size-sm)}.input-error{color:#dc2626;font-size:var(--font-size-xs);margin-top:var(--space-1);display:block}.ui-btn-ghost{background:transparent;color:var(--text);border-color:var(--border)}.ui-btn-ghost:hover:not(:disabled){background:#6366f114;transform:none}.ui-btn-danger{background:var(--error-color)}.ui-btn-sm{padding:4px 10px;font-size:var(--font-size-xs)}.ui-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:1.4;white-space:nowrap;border:1px solid transparent}.ui-pill.tone-ok{background:var(--success-background);color:var(--success-color)}.ui-pill.tone-warn{background:var(--warning-background);color:var(--warning-color)}.ui-pill.tone-bad{background:var(--error-background);color:var(--error-color)}.ui-pill.tone-info{background:var(--info-background);color:var(--info-color)}.ui-pill.tone-muted{background:transparent;color:var(--muted);border-color:var(--border)}.ui-datatable-scroll{overflow-x:auto}.ui-th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.ui-th-sortable:hover{color:var(--text)}.ui-th-sortable.active{color:var(--primary)}.ui-th-inner{display:inline-flex;align-items:center;gap:4px}.ui-sort-caret{font-size:10px;opacity:.7}.ui-row-clickable{cursor:pointer}.ui-row-selected td{background:#6366f114!important}.ui-row-loading td{opacity:.6}.ui-datatable-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-2)}.ui-pager{display:inline-flex;align-items:center;gap:var(--space-3)}.ui-chips{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5);align-items:center}.ui-chip-group{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}.ui-chip-group-label{font-size:var(--font-size-xs);color:var(--muted);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.4px;margin-right:2px}.ui-chip{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:9999px;padding:3px 10px;font-size:var(--font-size-xs);cursor:pointer;transition:background-color .15s,border-color .15s}.ui-chip:hover{border-color:var(--primary)}.ui-chip.on{background:var(--primary);color:#fff;border-color:var(--primary)}.ui-chip.on.tone-ok{background:var(--success-color);border-color:var(--success-color)}.ui-chip.on.tone-warn{background:var(--warning-color);border-color:var(--warning-color)}.ui-chip.on.tone-bad{background:var(--error-color);border-color:var(--error-color)}.ui-chip-clear{color:var(--muted);border-style:dashed}.ui-kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-3)}.ui-kpi{display:flex;flex-direction:column;gap:2px;padding:var(--space-3) var(--space-4);background:var(--card);border:1px solid var(--border);border-left-width:4px;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--text);text-decoration:none;text-align:left;font:inherit;cursor:default}.ui-kpi-link{cursor:pointer}.ui-kpi-link:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.ui-kpi.tone-ok{border-left-color:var(--success-color)}.ui-kpi.tone-warn{border-left-color:var(--warning-color)}.ui-kpi.tone-bad{border-left-color:var(--error-color)}.ui-kpi.tone-info{border-left-color:var(--info-color)}.ui-kpi.tone-muted{border-left-color:var(--border)}.ui-kpi-label{font-size:var(--font-size-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-weight:var(--font-weight-semibold)}.ui-kpi-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:1.1}.ui-kpi-hint{font-size:var(--font-size-xs);color:var(--muted)}.ui-drawer-backdrop{position:fixed;inset:0;z-index:60;background:#0f172a59;display:flex;justify-content:flex-end}.ui-drawer{height:100%;max-width:100vw;background:var(--card);color:var(--text);border-left:1px solid var(--border);box-shadow:-8px 0 24px #00000026;display:flex;flex-direction:column;animation:ui-drawer-in .18s ease-out}@keyframes ui-drawer-in{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.ui-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.ui-drawer-title{font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg);min-width:0}.ui-drawer-close{background:none;border:none;font-size:22px;line-height:1;cursor:pointer;color:var(--muted);padding:4px 8px}.ui-drawer-close:hover{color:var(--text)}.ui-drawer-body{padding:var(--space-4);overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:var(--space-4)}.ui-drawer-section h4{margin:0 0 var(--space-2);font-size:var(--font-size-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.ui-kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;font-size:var(--font-size-sm)}.ui-kv dt{color:var(--muted)}.ui-kv dd{margin:0;word-break:break-word}.ui-callout{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--font-size-sm);border:1px solid transparent}.ui-callout.tone-bad{background:var(--error-background);color:var(--error-color);border-color:color-mix(in oklab,var(--error-color) 40%,transparent)}.ui-callout.tone-warn{background:var(--warning-background);color:var(--warning-color)}.ui-callout.tone-info{background:var(--info-background);color:var(--info-color)}.ui-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;white-space:pre-wrap;word-break:break-word;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin:0;max-height:240px;overflow:auto}.ui-menu{position:relative;display:inline-block}.ui-menu-trigger{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;padding:2px 8px;font-size:16px;line-height:1.2}.ui-menu-trigger:hover,.ui-menu-trigger[aria-expanded=true]{border-color:var(--primary);color:var(--primary)}.ui-menu-popover{position:absolute;top:calc(100% + 4px);z-index:40;min-width:200px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:4px;display:flex;flex-direction:column}.ui-menu-popover.align-right{right:0}.ui-menu-popover.align-left{left:0}.ui-menu-item{display:block;width:100%;text-align:left;background:none;border:none;padding:7px 10px;border-radius:4px;color:var(--text);font-size:var(--font-size-sm);cursor:pointer;text-decoration:none}.ui-menu-item:hover:not(:disabled){background:#6366f114}.ui-menu-item:disabled{opacity:.5;cursor:not-allowed}.ui-menu-item.danger{color:var(--error-color)}.ui-toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.ui-toolbar .grow{flex:1;min-width:200px}.ui-bulkbar{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-2) var(--space-3);background:#6366f114;border:1px solid rgba(99,102,241,.3);border-radius:var(--radius-sm);margin-bottom:var(--space-3)}.toast-container{position:fixed;top:20px;right:20px;z-index:1000;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{pointer-events:auto;min-width:300px;max-width:500px;border-radius:8px;box-shadow:0 4px 12px #00000026;transition:all .3s cubic-bezier(.4,0,.2,1);transform-origin:top right}.toast-enter{animation:toast-slide-in .3s cubic-bezier(.4,0,.2,1) forwards}.toast-exit{animation:toast-slide-out .3s cubic-bezier(.4,0,.2,1) forwards}@keyframes toast-slide-in{0%{transform:translate(100%) scale(.8);opacity:0}to{transform:translate(0) scale(1);opacity:1}}@keyframes toast-slide-out{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(100%) scale(.8);opacity:0}}.toast-content{display:flex;align-items:center;padding:12px 16px;gap:12px;background:#fff;border-radius:8px;border-left:4px solid}.toast-success .toast-content{border-left-color:#28a745;background-color:#f8fff9}.toast-error .toast-content{border-left-color:#dc3545;background-color:#fff8f8}.toast-info .toast-content{border-left-color:#17a2b8;background-color:#f8fcfd}.toast-icon{font-size:18px;line-height:1;flex-shrink:0}.toast-message{flex:1;font-size:14px;line-height:1.4;color:#2c3e50;font-weight:500}.toast-close{background:none;border:none;color:#6c757d;font-size:20px;line-height:1;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;flex-shrink:0}.toast-close:hover{background-color:#6c757d1a;color:#495057}.toast-close:focus{outline:2px solid rgba(102,126,234,.3);outline-offset:1px}@media(max-width:768px){.toast-container{top:10px;right:10px;left:10px}.toast{min-width:auto;width:100%}.toast-content{padding:10px 12px}.toast-message{font-size:13px}}.health-badge-wrapper{position:relative;display:inline-block}.health-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500;border:none;cursor:default;transition:all .2s ease;white-space:nowrap}.health-badge-clickable{cursor:pointer}.health-badge-clickable:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.health-badge-icon{font-size:.875rem;line-height:1}.health-badge-label{line-height:1}.health-badge-healthy{background-color:#d1fae5;color:#065f46}.health-badge-healthy:hover{background-color:#a7f3d0}.health-badge-degraded{background-color:#fef3c7;color:#92400e}.health-badge-degraded:hover{background-color:#fde68a}.health-badge-failing{background-color:#fee2e2;color:#991b1b}.health-badge-failing:hover{background-color:#fecaca}.health-badge-unknown{background-color:#e5e7eb;color:#374151}.health-badge-unknown:hover{background-color:#d1d5db}.health-badge-tooltip{position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%);z-index:50;pointer-events:none;animation:fadeIn .15s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(.25rem)}to{opacity:1;transform:translate(-50%) translateY(0)}}.health-badge-tooltip-content{background-color:#1f2937;color:#f9fafb;padding:.75rem;border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;min-width:200px;font-size:.875rem}.health-badge-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:.375rem;border-style:solid;border-color:#1f2937 transparent transparent transparent}.health-badge-tooltip-row{display:flex;justify-content:space-between;gap:1rem;padding:.25rem 0}.health-badge-tooltip-row:not(:last-child){border-bottom:1px solid rgba(255,255,255,.1)}.health-badge-tooltip-label{color:#9ca3af;font-weight:500}.health-badge-tooltip-value{color:#f9fafb;font-weight:600;text-align:right}.health-badge-tooltip-error{color:#fca5a5}.health-badge-tooltip-action{margin-top:.5rem;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.1);text-align:center;color:#60a5fa;font-size:.75rem;font-style:italic}@media(max-width:640px){.health-badge{font-size:.75rem;padding:.25rem .5rem;gap:.25rem}.health-badge-icon{font-size:.75rem}.health-badge-tooltip-content{min-width:180px;font-size:.75rem}}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:12px;max-width:90vw;max-height:90vh;width:800px;display:flex;flex-direction:column;box-shadow:0 4px 20px #00000026;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e9ecef;background-color:#f8f9fa}.modal-header h2{margin:0;color:#2c3e50;font-size:1.25rem;font-weight:600}.close-button{background:none;border:none;font-size:1.5rem;color:#6c757d;cursor:pointer;padding:0;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center}.modal-body{flex:1;overflow-y:auto;padding:1.5rem}.execution-time{font-size:.9rem;color:#6c757d;font-weight:500}.error-section,.metadata-section,.data-section{margin-bottom:2rem}.error-section h3,.metadata-section h3,.data-section h3{margin:0 0 1rem;color:#2c3e50;font-size:1.1rem;font-weight:600}.error-content{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;padding:1rem}.error-content pre{margin:0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;line-height:1.4;white-space:pre-wrap;word-break:break-word;color:#721c24}.metadata-grid{display:grid;gap:1rem}.metadata-item{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem;background-color:#f8f9fa;border-radius:6px;gap:1rem}.metadata-item .label{font-weight:600;color:#2c3e50;min-width:150px;flex-shrink:0}.metadata-item .value{color:#555;flex:1;text-align:right;word-break:break-all}.metadata-item .value a{color:#667eea;text-decoration:none}.metadata-item .value a:hover{text-decoration:underline}.data-content{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:1rem;max-height:400px;overflow-y:auto}.json-output{margin:0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.85rem;line-height:1.4;white-space:pre-wrap;word-break:break-word;color:#2c3e50}.modal-footer{padding:1rem 1.5rem;border-top:1px solid #e9ecef;background-color:#f8f9fa;text-align:right}.close-modal-button{background-color:#6c757d;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500}.close-modal-button:hover{background-color:#5a6268;transform:none;box-shadow:none}@media(max-width:768px){.modal-content{width:95vw;height:95vh;max-width:none;max-height:none;margin:0}.modal-header{padding:1rem}.modal-header h2{font-size:1.1rem}.modal-body{padding:1rem}.metadata-item{flex-direction:column;align-items:flex-start}.metadata-item .value{text-align:left}.result-status{flex-direction:column;align-items:flex-start}}.venues-dashboard{display:flex;flex-direction:column}.fleet-name{display:flex;flex-direction:column;gap:2px;min-width:180px}.fleet-name-link{background:none;border:none;padding:0;text-align:left;cursor:pointer;color:var(--text);font:inherit;font-weight:var(--font-weight-semibold)}.fleet-name-link:hover{color:var(--primary);text-decoration:underline}.fleet-url{font-size:11px;color:var(--muted);text-decoration:none;word-break:break-all}.fleet-url:hover{text-decoration:underline}.fleet-health{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.fleet-health .health-badge{padding:2px 8px;font-size:12px}.fleet-bad{color:var(--error-color)}@media(prefers-color-scheme:dark){.health-badge-healthy{background:var(--success-background);color:var(--success-color)}.health-badge-degraded{background:var(--warning-background);color:var(--warning-color)}.health-badge-failing{background:var(--error-background);color:var(--error-color)}.health-badge-unknown{background:#1f2937;color:#9ca3af}}.configuration-editor{width:100%;max-width:none}.editor-header{display:flex;align-items:center;gap:1rem;padding:1.5rem 2rem}.back-button{background-color:var(--muted);padding:.5rem 1rem;font-size:.9rem;display:inline-flex;align-items:center;gap:.5rem}.back-button:hover:not(:disabled){background-color:#5a6268}.editor-header h1{color:var(--text);margin:0;font-size:1.75rem;font-weight:600}.editor-header a{display:inline-block;margin-top:4px}.editor-header a:hover{text-decoration:underline}.editor-content{background:var(--card);border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.editor-content.two-column{display:grid;grid-template-columns:250px 1fr;gap:0;min-height:calc(100vh - 180px);max-height:calc(100vh - 180px)}.left-panel{border-right:1px solid var(--border);padding:1rem;background:var(--bg);overflow-y:auto;max-height:calc(100vh - 250px)}.right-panel{padding:1.5rem;background:var(--card);overflow-y:auto;max-height:calc(100vh - 180px);display:flex;flex-direction:column}.venues-list .nav-link>div{transition:all .2s ease}.venues-list .nav-link:hover>div{background-color:#6366f11f!important;border-color:#6366f1!important}.venues-list .nav-link>div[style*="var(--primary-light)"]{background-color:#6366f11f!important;border-color:#6366f1!important}.tab-navigation{padding:.5rem 0;margin-bottom:1rem;border-bottom:1px solid var(--border)}.tab-navigation strong{color:var(--text);font-size:.875rem;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.skeleton-line{height:60px;background:linear-gradient(90deg,#0000000f 25%,#0000001f,#0000000f 75%);background-size:200% 100%;animation:loading 1.5s ease-in-out infinite;border-radius:6px;margin-bottom:8px}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.config-editor{padding:0;background:var(--card)}.editor-panel{margin-bottom:1.5rem}.editor-panel:last-of-type{margin-bottom:0}.editor-panel h3{margin:0 0 .5rem;color:var(--text);font-size:1.125rem;font-weight:600}.editor-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;flex-wrap:wrap;gap:.5rem}.editor-panel-actions{display:flex;gap:.5rem;align-items:center}.editor-info{color:var(--muted);font-size:.9rem;font-style:italic}.monaco-editor-container{border:1px solid var(--border);border-radius:6px;overflow:hidden;background-color:var(--card);transition:border-color .2s ease;box-shadow:0 1px 3px #0000001a}.monaco-editor-container:focus-within{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.format-button{background-color:var(--muted);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease}.format-button:hover{background-color:#5a6268;transform:translateY(-1px)}.validate-button{background-color:#17a2b8;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease}.validate-button:hover{background-color:#138496;transform:translateY(-1px)}.json-editor{width:100%;min-height:500px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;line-height:1.5;padding:1rem;border:2px solid var(--border);border-radius:8px;background-color:var(--card);color:var(--text);resize:vertical;transition:border-color .2s ease}.json-editor:focus{outline:none;border-color:#667eea;background-color:var(--card);color:var(--text);box-shadow:0 0 0 3px #667eea1a}.json-error{margin-top:.5rem;padding:.75rem;background-color:var(--error-background);color:var(--error-color);border:1px solid var(--error-color);border-radius:6px;font-size:.9rem;font-family:monospace}.editor-actions{display:flex;gap:1rem;padding-top:1rem;margin-top:auto;border-top:1px solid var(--border);flex-wrap:wrap;position:sticky;bottom:0;background:var(--card);padding-bottom:.5rem}.save-button{background-color:#28a745;font-weight:600;padding:.75rem 1.5rem}.save-button:disabled{background-color:var(--muted);cursor:not-allowed;opacity:.7}.save-button:disabled:hover{background-color:var(--muted);transform:none}.test-button:disabled,.test-current-button:disabled{background-color:var(--muted);cursor:not-allowed;opacity:.7}.test-button:disabled:hover,.test-current-button:disabled:hover{background-color:var(--muted);transform:none}.test-button{background-color:#17a2b8;padding:.75rem 1.5rem}.test-button:hover:not(:disabled){background-color:#138496}.test-current-button{background-color:#fd7e14;padding:.75rem 1.5rem}.test-current-button:hover:not(:disabled){background-color:#e8680e}.test-results{margin-top:2rem;background:var(--card);border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.results-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background-color:#f8f9fa;border-bottom:1px solid var(--border)}.results-header h3{margin:0;color:var(--text);font-size:1.25rem;font-weight:600}.close-button{background:none;border:none;font-size:1.5rem;color:var(--muted);cursor:pointer;padding:0;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center}.close-button:hover{background-color:#e9ecef;color:#495057;transform:none;box-shadow:none}.results-content{padding:2rem}.result-status{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.status{padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.status.success{background-color:#d4edda;color:#155724}.status.error{background-color:#f8d7da;color:#721c24}.execution-time{font-size:.9rem;color:var(--muted);font-weight:500}.error-details,.success-details,.metadata{margin-bottom:1.5rem}.error-details h4,.success-details h4,.metadata h4{margin:0 0 1rem;color:var(--text);font-size:1.1rem;font-weight:600}.json-output{background-color:#f8f9fa;padding:1rem;border-radius:8px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.8rem;line-height:1.4;overflow-x:auto;max-height:400px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.metadata ul{list-style:none;padding:0;margin:0}.metadata li{padding:.5rem 0;border-bottom:1px solid #eee;display:flex;justify-content:space-between;font-size:.95rem}.metadata li:last-child{border-bottom:none}.metadata li strong{color:var(--text);font-weight:600}@media(max-width:768px){.editor-header{flex-direction:column;align-items:flex-start}.editor-header h1{font-size:1.5rem}.tab-navigation{flex-direction:column}.tab{text-align:left;padding:.75rem 1rem}.config-editor{padding:1rem}.editor-panel-header{flex-direction:column;align-items:flex-start}.editor-panel-actions{width:100%;justify-content:flex-start}.editor-info{flex:1;text-align:left}.monaco-editor-container{border-radius:4px}.format-button,.validate-button{flex:1;text-align:center}.json-editor{min-height:300px;font-size:.8rem}.editor-actions{flex-direction:column;padding:1rem}.editor-actions button{width:100%}.result-status{flex-direction:column;align-items:flex-start}}.modal-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:var(--card);border-radius:12px;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px;border-bottom:1px solid var(--border);background-color:#f8f9fa}.modal-header h3{margin:0;color:var(--text);font-size:1.5rem;font-weight:600}.modal-body{flex:1;overflow:auto}.modal-footer{display:flex;justify-content:flex-end;gap:12px}.html-stats{font-family:Monaco,Menlo,Ubuntu Mono,monospace}.pipeline-analysis{display:flex;flex-direction:column;gap:1rem}.analysis-controls{background:var(--background-subtle)}.analysis-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.analysis-header h3{margin:0;color:var(--text-primary)}.analysis-controls-group{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.lookback-selector{display:flex;align-items:center;gap:.5rem}.lookback-selector label{font-size:.9rem;color:var(--text-secondary);white-space:nowrap}.lookback-selector select{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--background-primary);color:var(--text-primary);font-size:.9rem}.analysis-btn{min-width:120px}.error-card{background:var(--error-background);border-left:4px solid var(--error-color)}.error-message{color:var(--error-color)}.analysis-summary{background:var(--background-subtle)}.analysis-summary h4{margin:0 0 1rem;color:var(--text-primary)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.summary-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:var(--background-primary);border-radius:6px;border:1px solid var(--border-color)}.summary-item .label{font-size:.9rem;color:var(--text-secondary)}.summary-item .value{font-weight:600;font-size:1.1rem;color:var(--text-primary)}.summary-item .value.rate{padding:.25rem .5rem;border-radius:4px;color:#fff;font-size:.9rem}.summary-item .value.rate.success{background:var(--success-color)}.summary-item .value.rate.warning{background:var(--warning-color)}.summary-item .value.rate.error{background:var(--error-color)}.stage-breakdown{background:var(--background-subtle)}.stage-breakdown h4{margin:0 0 1rem;color:var(--text-primary)}.stages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.stage-card{background:var(--background-primary);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.stage-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.stage-icon{font-size:1.5rem}.stage-name{font-weight:600;color:var(--text-primary);text-transform:capitalize}.stage-stats{display:flex;flex-direction:column;gap:.5rem}.stat{display:flex;justify-content:space-between;align-items:center}.stat-label{font-size:.9rem;color:var(--text-secondary)}.stat-value{font-weight:600;color:var(--text-primary)}.venue-details{background:var(--background-subtle)}.venue-details h4{margin:0 0 1rem;color:var(--text-primary)}.venue-list{display:flex;flex-direction:column;gap:.75rem;max-height:600px;overflow-y:auto}.venue-item{background:var(--background-primary);border:1px solid var(--border-color);border-radius:6px;padding:1rem;transition:all .2s ease}.venue-item.success{border-left:4px solid var(--success-color)}.venue-item.failed{border-left:4px solid var(--error-color)}.venue-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;flex-wrap:wrap}.venue-name{font-weight:600;color:var(--text-primary);flex:1;min-width:150px}.venue-badges{display:flex;gap:.5rem;flex-wrap:wrap}.badge{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500;white-space:nowrap}.badge.inactive{background:var(--warning-background);color:var(--warning-color);border:1px solid var(--warning-color)}.badge.no-config{background:var(--error-background);color:var(--error-color);border:1px solid var(--error-color)}.badge.stage-reached{background:var(--info-background);color:var(--info-color);border:1px solid var(--info-color)}.badge.stage-reached.gold{background:var(--success-background);color:var(--success-color);border:1px solid var(--success-color)}.badge.stage-reached.none{background:var(--error-background);color:var(--error-color);border:1px solid var(--error-color)}.venue-stats{margin-bottom:.5rem}.event-counts{display:flex;gap:1rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;color:var(--text-secondary)}.event-counts span{padding:.25rem .5rem;background:var(--background-subtle);border-radius:4px}.venue-errors{margin-top:.5rem;display:flex;flex-direction:column;gap:.25rem}.venue-errors .error{font-size:.9rem;padding:.5rem;border-radius:4px;background:var(--error-background);color:var(--error-color);border-left:3px solid var(--error-color)}.missing-fields{margin-top:.5rem;padding:.5rem;background:var(--warning-background);color:var(--warning-color);border-radius:4px;border-left:3px solid var(--warning-color);font-size:.9rem}.missing-fields strong{color:var(--warning-color)}@media(max-width:768px){.analysis-header{flex-direction:column;align-items:flex-start}.analysis-controls-group{width:100%;justify-content:space-between}.summary-grid,.stages-grid{grid-template-columns:1fr}.venue-header{flex-direction:column;align-items:flex-start;gap:.5rem}.venue-badges{width:100%}}.pipeline-management{width:100%}.pipeline-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:12px}.pipeline-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.pipeline-items{display:inline-flex;gap:4px;flex-wrap:wrap}.pipeline-task-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;font-size:var(--font-size-sm)}.page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.error-banner{color:#b91c1c;margin-bottom:8px}.row-actions{display:flex;gap:8px;justify-content:flex-end}.modal-overlay{position:fixed;inset:0;z-index:50;background:#0006;display:flex;align-items:center;justify-content:center}.modal{background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:12px;width:680px;max-width:92vw;box-shadow:var(--shadow-lg)}.modal-header,.modal-footer{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal-footer{border-top:1px solid var(--border);border-bottom:0;justify-content:flex-end;gap:8px}.modal-body{padding:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:span 2}.close-button{background:transparent;color:var(--muted);border:none;padding:4px 8px;cursor:pointer;font-size:18px}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;color:#333;line-height:1.6}#root{height:100vh;display:flex;flex-direction:column}.App{height:100vh;display:flex;flex-direction:column;overflow:hidden}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.75rem 0;box-shadow:0 2px 4px #0000001a;flex-shrink:0}.app-header h1{margin:0 0 .5rem;font-size:1.25rem;font-weight:600;text-align:center}.app-nav{display:flex;justify-content:center;gap:2rem}.nav-link{color:#fff;text-decoration:none;padding:.5rem 1rem;border-radius:6px;font-weight:500;transition:all .2s ease;border:1px solid transparent}.nav-link:hover{background:#ffffff1a;border-color:#fff3}.nav-link.active{background:#fff3;border-color:#ffffff4d}.app-header p{display:none}.app-main{flex:1;overflow-y:auto;padding:1.5rem 2rem;width:100%;max-width:none;margin:0}.app-footer{background-color:#2c3e50;color:#fff;text-align:center;padding:.75rem;flex-shrink:0;font-size:.9rem}.loading{display:flex;align-items:center;justify-content:center;padding:3rem;font-size:1.1rem;color:#666}.loading:before{content:"";width:20px;height:20px;border:2px solid #f3f3f3;border-top:2px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-right:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error{background-color:#fee;color:#c33;padding:1rem;border-radius:8px;border:1px solid #fcc;margin:1rem 0}button{background-color:#667eea;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease}button:hover:not(:disabled){background-color:#5a6fd8;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}button:disabled{background-color:#ccc;cursor:not-allowed;transform:none}button.secondary{background-color:#6c757d}button.secondary:hover:not(:disabled){background-color:#5a6268}button.danger{background-color:#dc3545}button.danger:hover:not(:disabled){background-color:#c82333}button.success{background-color:#28a745}button.success:hover:not(:disabled){background-color:#218838}select,input[type=text],textarea{padding:.5rem;border:1px solid #ddd;border-radius:6px;font-size:.9rem;font-family:inherit}select:focus,input[type=text]:focus,textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-badge.active{background-color:#d4edda;color:#155724}.status-badge.inactive{background-color:#f8d7da;color:#721c24}.status-badge.complete{background-color:#d1ecf1;color:#0c5460}.status-badge.partial{background-color:#fff3cd;color:#856404}.status-badge.missing{background-color:#f8d7da;color:#721c24}@media(max-width:768px){.app-main{padding:1rem}.app-header h1{font-size:1.1rem}.app-nav{gap:1rem}.nav-link{padding:.4rem .8rem;font-size:.9rem}}
