@import"https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--font-sans: "Outfit", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--fs-xs: .8125rem;--fs-sm: .9375rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.25rem;--fs-2xl: 1.5rem;--fs-3xl: 1.875rem;--fs-display: 2.375rem;--color-base: #000000;--color-surface: #0a0a0a;--color-elevated: #141414;--color-card: #1a1a1a;--color-card-hover: #222222;--color-border: #333333;--color-border-subtle: #242424;--color-text: #e8e8e8;--color-text-muted: #a8a8a8;--color-text-dim: #8d8d8d;--color-text-faint: #666666;--color-text-bright: #ffffff;--color-healthy: #4ade80;--color-healthy-dim: #14532d;--color-healthy-glow: rgba(74, 222, 128, .1);--color-warning: #facc15;--color-warning-dim: #713f12;--color-warning-glow: rgba(250, 204, 21, .1);--color-error: #f87171;--color-error-dim: #7f1d1d;--color-error-glow: rgba(248, 113, 113, .1);--color-unknown: #9a9a9a;--color-unknown-dim: rgba(154, 154, 154, .1);--color-accent: #7dd3fc;--color-focus: #7dd3fc;--sidebar-width: 280px;--sidebar-logo-height: 24px;--sidebar-link-fs: var(--fs-lg);--sidebar-label-fs: var(--fs-sm);--sidebar-link-py: 8px;--topbar-height: 56px;--radius-sm: 4px;--radius-md: 8px;--radius-pill: 999px;--tap-target: 44px;--tap-target-sm: 32px;--transition: .15s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{color-scheme:dark;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-wrap:break-word}body{font-family:var(--font-sans);font-size:var(--fs-md);background:var(--color-base);color:var(--color-text);line-height:1.55;overflow:hidden;min-height:100dvh}#root{height:100dvh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}svg.icon{flex-shrink:0;vertical-align:-.125em}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:absolute;top:0;left:0;z-index:100;padding:10px 16px;background:var(--color-accent);color:var(--color-base);font-weight:600;border-bottom-right-radius:var(--radius-sm);transform:translateY(-120%);transition:transform var(--transition)}.skip-link:focus-visible{transform:translateY(0)}.font-mono{font-family:var(--font-mono)}.text-muted{color:var(--color-text-muted)}.text-dim{color:var(--color-text-dim)}.text-bright{color:var(--color-text-bright)}.inline-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--radius-sm);border:1px solid transparent;font-family:var(--font-sans);font-weight:500;cursor:pointer;white-space:nowrap;text-align:center;transition:background var(--transition),color var(--transition),border-color var(--transition)}.btn--md{min-height:var(--tap-target);padding:0 16px;font-size:var(--fs-sm)}.btn--sm{min-height:var(--tap-target-sm);padding:0 12px;font-size:var(--fs-xs)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-text-bright);border-color:var(--color-text-bright);color:var(--color-base);font-weight:600}.btn--primary:hover:not(:disabled){background:var(--color-text)}.btn--secondary{background:var(--color-elevated);border-color:var(--color-border);color:var(--color-text)}.btn--secondary:hover:not(:disabled){background:var(--color-card-hover);border-color:var(--color-text-dim);color:var(--color-text-bright)}.btn--ghost{background:transparent;border-color:var(--color-border-subtle);color:var(--color-text-muted)}.btn--ghost:hover:not(:disabled){border-color:var(--color-text-dim);color:var(--color-text-bright)}.btn--danger{background:transparent;border-color:var(--color-error);color:var(--color-error);font-weight:600}.btn--danger:hover:not(:disabled){background:var(--color-error);color:var(--color-base)}.btn[aria-pressed=true]{border-color:var(--color-healthy-dim);background:var(--color-healthy-glow);color:var(--color-healthy)}.layout{display:flex;height:100dvh;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);height:100dvh;display:flex;flex-direction:column;background:var(--color-surface);border-right:1px solid var(--color-border);overflow:hidden;z-index:40}.sidebar-header{display:flex;align-items:center;gap:8px;padding:20px 12px 16px 20px}.sidebar-logo{display:flex;align-items:center;gap:10px;min-height:var(--tap-target-sm)}.sidebar-logo-img{height:var(--sidebar-logo-height);width:auto;display:block}.sidebar .sidebar-close{display:none;margin-left:auto}.sidebar-body{flex:1;overflow-y:auto;padding:0 8px 8px;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.sidebar-group-label{padding:16px 12px 6px;font-size:var(--sidebar-label-fs);font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--color-text-dim)}.sidebar-list{list-style:none;display:flex;flex-direction:column;gap:1px}.sidebar-link{display:flex;align-items:center;gap:10px;padding:var(--sidebar-link-py) 12px;border-radius:var(--radius-sm);border:1px solid transparent;min-height:var(--tap-target);font-size:var(--sidebar-link-fs);font-weight:500;color:var(--color-text-muted);transition:background var(--transition),color var(--transition)}.sidebar-link:hover{background:var(--color-elevated);color:var(--color-text-bright)}.sidebar-link[aria-current=page]{background:var(--color-elevated);border-color:var(--color-border);color:var(--color-text-bright)}.sidebar-link-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-link-count{margin-left:auto;font-family:var(--font-mono);font-size:var(--sidebar-label-fs);color:var(--color-text-dim)}.sidebar-footer{padding:12px 20px;padding-bottom:max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--color-border);display:flex;align-items:center;gap:10px}.sidebar-user-avatar{width:28px;height:28px;border-radius:50%;background:var(--color-elevated);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;color:var(--color-text-muted);flex-shrink:0}.sidebar-user-name{font-size:var(--sidebar-link-fs);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user{display:flex;align-items:center;gap:10px;min-width:0;color:inherit;text-decoration:none;border-radius:var(--radius-sm);transition:color var(--transition)}.sidebar-user:hover .sidebar-user-name,.sidebar-user[aria-current=page] .sidebar-user-name{color:var(--color-text-bright)}.sidebar-overlay{display:none}@media(min-width:1600px){:root{--sidebar-width: 320px;--sidebar-logo-height: 28px;--sidebar-link-py: 10px}}.topbar{display:none;align-items:center;gap:12px;height:var(--topbar-height);padding:0 12px;padding-top:env(safe-area-inset-top);background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:30}.topbar-title{font-size:var(--fs-lg);font-weight:600;color:var(--color-text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--tap-target);height:var(--tap-target);flex-shrink:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-elevated);color:var(--color-text);font-size:var(--fs-xl);cursor:pointer}.icon-btn:hover{color:var(--color-text-bright);border-color:var(--color-text-dim)}.icon-btn--bare{border-color:transparent;background:transparent;color:var(--color-text-muted)}.main-content{flex:1;height:100dvh;overflow-y:auto;overflow-x:hidden;background:var(--color-base);display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}main{flex:1;min-width:0}.page{padding:40px 48px;padding-bottom:max(40px,env(safe-area-inset-bottom));max-width:1400px;width:100%;margin-inline:auto}@media(min-width:1800px){.page{max-width:1760px;padding:48px 64px}}@media(min-width:2400px){.page{max-width:2040px}}@media(min-width:3000px){.page{max-width:2560px;padding:56px 72px}}.page-header{margin-bottom:28px}.breadcrumb{margin-bottom:10px}.breadcrumb-list{display:flex;align-items:center;flex-wrap:wrap;gap:6px;list-style:none;font-size:var(--fs-sm);color:var(--color-text-muted)}.breadcrumb a{color:var(--color-text-muted);text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:3px;transition:color var(--transition)}.breadcrumb a:hover{color:var(--color-text-bright);text-decoration-color:currentColor}.breadcrumb-sep{color:var(--color-text-faint);-webkit-user-select:none;user-select:none}.page-title{font-size:var(--fs-3xl);font-weight:700;color:var(--color-text-bright);letter-spacing:-.5px;line-height:1.2}.page-subtitle{font-size:var(--fs-md);color:var(--color-text-muted);margin-top:4px}.page-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.section{margin-top:32px}.section-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--color-border-subtle)}.section-title{font-size:var(--fs-sm);font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--color-text-muted)}.section-actions{margin-left:auto}.count-chip{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;padding:1px 8px;border-radius:var(--radius-pill);background:var(--color-elevated);color:var(--color-text-muted)}.count-chip--error{background:var(--color-error-glow);color:var(--color-error)}.panel{margin-top:32px}.panel-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;row-gap:8px;margin-bottom:6px;padding-bottom:8px;border-bottom:1px solid var(--color-border-subtle)}.panel-title{font-size:var(--fs-xl);font-weight:600;color:var(--color-text-bright)}.panel-actions{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}.panel-description{font-size:var(--fs-sm);color:var(--color-text-muted);margin-bottom:14px;max-width:72ch}.card-grid{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.card{display:flex;flex-direction:column;gap:16px;height:100%;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px;transition:background var(--transition),border-color var(--transition)}.card-link{display:block;height:100%}.card-link:hover .card{background:var(--color-card-hover);border-color:var(--color-text-faint)}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.card-title{font-size:var(--fs-xl);font-weight:600;color:var(--color-text-bright)}.card-metric{display:flex;align-items:baseline;gap:8px}.card-metric-value{font-size:var(--fs-display);font-weight:800;color:var(--color-text-bright);line-height:1;letter-spacing:-1px}.card-metric-label{font-size:var(--fs-md);color:var(--color-text-muted)}.tag-list{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin-top:auto}.tag{font-family:var(--font-mono);font-size:var(--fs-xs);padding:3px 8px;border-radius:var(--radius-sm);background:var(--color-elevated);border:1px solid var(--color-border-subtle);color:var(--color-text-muted)}.status-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;padding:3px 10px 3px 8px;border-radius:var(--radius-pill);white-space:nowrap;border:1px solid transparent}.status-badge-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-badge--healthy{color:var(--color-healthy);background:var(--color-healthy-glow);border-color:var(--color-healthy-dim)}.status-badge--healthy .status-badge-dot{background:var(--color-healthy)}.status-badge--degraded{color:var(--color-warning);background:var(--color-warning-glow);border-color:var(--color-warning-dim)}.status-badge--degraded .status-badge-dot{background:var(--color-warning)}.status-badge--error{color:var(--color-error);background:var(--color-error-glow);border-color:var(--color-error-dim)}.status-badge--error .status-badge-dot{background:var(--color-error)}.status-badge--unknown{color:var(--color-unknown);background:var(--color-unknown-dim);border-color:var(--color-border)}.status-badge--unknown .status-badge-dot{background:var(--color-unknown)}.offline-banner{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--color-warning-glow);border-bottom:1px solid var(--color-warning-dim);font-size:var(--fs-sm);color:var(--color-warning)}.offline-banner-dot{width:6px;height:6px;border-radius:50%;background:var(--color-warning);flex-shrink:0;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;border-radius:var(--radius-sm)}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-sm)}.data-table thead th{font-size:var(--fs-xs);font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--color-text-muted);padding:10px 14px;text-align:left;border-bottom:1px solid var(--color-border);background:var(--color-surface);position:sticky;top:0;z-index:1;white-space:nowrap}.data-table tbody tr{transition:background .1s ease}.data-table tbody tr:hover{background:var(--color-card)}.data-table tbody td{padding:10px 14px;border-bottom:1px solid var(--color-border-subtle);color:var(--color-text);vertical-align:middle}.data-table tbody th{padding:10px 14px;border-bottom:1px solid var(--color-border-subtle);text-align:left;font-weight:600;color:var(--color-text-bright);vertical-align:middle}.data-table .col-mono{font-family:var(--font-mono);font-size:var(--fs-xs)}.data-table .col-muted{color:var(--color-text-muted)}.data-table .col-right{text-align:right}.col-optional{display:table-cell}.expandable-row{cursor:pointer}.expand-toggle{display:inline-flex;align-items:center;justify-content:center;width:var(--tap-target-sm);height:var(--tap-target-sm);margin:-6px 2px -6px -6px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;flex-shrink:0}.expand-toggle:hover{color:var(--color-text-bright);background:var(--color-elevated)}.row-details{background:var(--color-surface)}.row-details>td{padding:16px 14px}.cell-with-toggle{display:flex;align-items:center;gap:4px}.raw-payload{margin:0;padding:14px;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--fs-xs);line-height:1.5;color:var(--color-text);white-space:pre-wrap;word-break:break-word;max-height:400px;overflow:auto}.state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:64px 20px;gap:12px}.state--inline{padding:20px;flex-direction:row}.spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-text-bright);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.state-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xl)}.state-icon--error{background:var(--color-error-glow);color:var(--color-error)}.state-icon--healthy{background:var(--color-healthy-glow);color:var(--color-healthy)}.state-title{font-size:var(--fs-lg);font-weight:600;color:var(--color-text)}.state-text{font-size:var(--fs-sm);color:var(--color-text-muted)}.state-message{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--color-error);max-width:60ch}.state-hint{font-size:var(--fs-sm);color:var(--color-text-muted);max-width:60ch}.form-row{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.form-row>.btn{margin-top:calc(var(--fs-xs) * 1.55 + 4px)}.form-stack{display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field--auto{min-width:min(220px,100%)}.field--full{width:100%}.field--narrow{width:8rem}.field-label{font-size:var(--fs-xs);font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--color-text-muted)}.field-hint{font-size:var(--fs-xs);color:var(--color-text-muted)}.input{min-height:var(--tap-target);width:100%;padding:8px 12px;font-size:var(--fs-sm);font-family:var(--font-mono);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-elevated);color:var(--color-text)}.input::placeholder{color:var(--color-text-dim)}.input:disabled{opacity:.5;cursor:not-allowed}.form-message{font-size:var(--fs-sm);margin-top:12px}.form-message--error{color:var(--color-error)}.form-message--success{color:var(--color-healthy)}.secret-reveal{margin-top:14px;padding:14px;border:1px solid var(--color-healthy-dim);border-radius:var(--radius-sm);background:var(--color-healthy-glow);display:flex;flex-direction:column;gap:10px}.secret-reveal-label{font-size:var(--fs-sm);font-weight:600;color:var(--color-healthy)}.secret-reveal-value{font-family:var(--font-mono);font-size:var(--fs-xs);word-break:break-all;color:var(--color-text-bright);background:var(--color-base);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px}.dialog{margin:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);padding:0;max-width:min(440px,calc(100vw - 32px));width:100%}.dialog::backdrop{background:#000000b3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog-body{padding:24px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.dialog-icon{width:40px;height:40px;border-radius:50%;background:var(--color-warning-glow);color:var(--color-warning);font-size:var(--fs-xl);display:flex;align-items:center;justify-content:center}.dialog-title{font-size:var(--fs-xl);font-weight:600;color:var(--color-text-bright)}.dialog-message{font-size:var(--fs-md);color:var(--color-text);line-height:1.5}.dialog-message code{font-family:var(--font-mono);font-size:var(--fs-xs);background:var(--color-elevated);border:1px solid var(--color-border-subtle);padding:1px 6px;border-radius:var(--radius-sm);word-break:break-all}.dialog-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:8px;width:100%}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stat-grid--boxed{padding:20px;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:20px}.stat{display:flex;flex-direction:column;gap:4px;min-width:0}.stat--card{padding:14px;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.stat-label{font-size:var(--fs-xs);font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--color-text-muted)}.stat-value{font-size:var(--fs-xl);font-weight:700;color:var(--color-text-bright);word-break:break-word}.stat-value--mono{font-family:var(--font-mono);font-weight:600}.stat-value--small{font-size:var(--fs-md);font-weight:500}.group-stack{display:flex;flex-direction:column;gap:20px}.group{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:14px;background:var(--color-surface)}.group-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--color-border-subtle)}.group-title{font-family:var(--font-mono);font-size:var(--fs-md);font-weight:500;color:var(--color-text-bright);word-break:break-all}.group-meta{font-size:var(--fs-xs);color:var(--color-text-muted);margin-left:auto}.only-narrow{display:none}.spec-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px 16px;margin-bottom:16px;font-size:var(--fs-sm)}.spec-list dt{font-size:var(--fs-xs);font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--color-text-muted)}.spec-list dd{font-family:var(--font-mono);color:var(--color-text);word-break:break-word}.health-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.health-service{padding:12px;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.health-service-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.health-service-name{font-size:var(--fs-sm);font-weight:600;text-transform:capitalize;color:var(--color-text-bright)}.health-instances{display:flex;flex-direction:column;gap:6px;list-style:none}.health-instance{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--fs-xs)}.health-instance-id{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-muted)}.channel-preview{display:flex;flex-direction:column;gap:8px;max-width:640px}.channel-preview-video{position:relative;aspect-ratio:16 / 9;background:var(--color-base);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.channel-preview-video video{width:100%;height:100%;display:block;object-fit:contain}.channel-preview-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#000000c7;text-align:center;padding:12px}.channel-preview-error{color:var(--color-error);font-size:var(--fs-xs);font-family:var(--font-mono);max-width:90%;word-break:break-word}.channel-preview-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-muted)}.channel-preview-key{color:var(--color-text-bright)}.channel-preview-tag{padding:1px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.channel-preview-level{color:var(--color-healthy)}.channel-preview-fallback{color:var(--color-warning)}.channel-preview-link{display:inline-flex;align-items:center;gap:4px;color:var(--color-text-muted);text-decoration:underline;text-underline-offset:3px}.channel-preview-link:hover{color:var(--color-text-bright)}.result-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}.result{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:12px;background:var(--color-card)}.result-header{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.result-name{font-size:var(--fs-md);font-weight:600;color:var(--color-text-bright)}.result-meta{font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--color-text-muted)}.result-action{margin-left:auto}.result-url{display:block;font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--color-text);word-break:break-all;line-height:1.5}.note-list{margin-top:12px;list-style:none;display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm);color:var(--color-text-muted)}.auth-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100dvh;padding:24px;text-align:center;background:var(--color-base);gap:14px}.auth-screen h1{font-size:var(--fs-2xl);font-weight:700;color:var(--color-text-bright)}.auth-screen p{font-size:var(--fs-md);color:var(--color-text-muted);max-width:50ch}@media(max-width:1024px){.page{padding:32px}}@media(max-width:900px){.topbar{display:flex}.sidebar{position:fixed;width:min(var(--sidebar-width),85vw);min-width:0;top:0;left:0;height:100dvh;padding-top:env(safe-area-inset-top);transform:translate(-100%);transition:transform .25s ease;box-shadow:none}.sidebar.is-open{transform:translate(0);box-shadow:0 0 40px #0009}.sidebar .sidebar-close{display:inline-flex;margin-left:auto}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:35;border:none;opacity:0;pointer-events:none;transition:opacity .25s ease}.sidebar-overlay.is-visible{opacity:1;pointer-events:auto}.page{padding:24px 20px 32px}.page-title{font-size:var(--fs-2xl)}.page-header-row{flex-direction:column;align-items:stretch}.page-header-actions .btn{flex:1 1 auto}.card-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.col-optional{display:none}.only-narrow{display:grid}.dialog-actions .btn{flex:1 1 40%}.form-row>.field--auto,.form-row>.field--full{width:100%}}@media(max-width:480px){.page{padding:20px 16px 28px}.stat-grid,.health-grid{grid-template-columns:1fr}.stat-grid--boxed{padding:16px;gap:14px}.card-metric-value{font-size:var(--fs-3xl)}.data-table thead th,.data-table tbody td{padding:10px}.result-action{margin-left:0}}@media(forced-colors:active){.status-badge,.card,.input,.btn{border:1px solid CanvasText}.spinner{border-color:CanvasText;border-top-color:Highlight}}.checkbox-label{display:flex;align-items:center;gap:.5rem;min-height:var(--tap-target);font-size:var(--fs-md);color:var(--color-text);cursor:pointer}.checkbox{width:1.125rem;height:1.125rem;accent-color:var(--color-accent);cursor:pointer}.input--mono{font-family:var(--font-mono);font-size:var(--fs-sm);resize:vertical}.fieldset{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:.75rem;margin:0}.editor{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-elevated);padding:1rem;margin-bottom:1rem}.form-row--wrap{flex-wrap:wrap}.weight-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.weight-row{display:flex;align-items:flex-end;gap:.5rem}.weight-bar{flex:1;min-width:60px;height:8px;border-radius:999px;background:var(--color-card);overflow:hidden}.weight-bar-fill{display:block;height:100%;background:var(--color-accent)}.weight-percent{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--color-text-muted);min-width:3.5ch;text-align:right}.weight-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.75rem;flex-wrap:wrap}.weight-total{font-size:var(--fs-sm);color:var(--color-text-muted)}.weight-total--off{color:var(--color-warning)}.row--inactive th[scope=row],.row--inactive td{opacity:.65}.row--winner{background:var(--color-healthy-glow)}.tag--winner{margin-left:.5rem;background:var(--color-healthy-dim);color:var(--color-healthy)}.tag--danger{margin-left:.5rem;background:var(--color-error-dim);color:var(--color-error)}.dryrun-outcome{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-elevated);padding:.75rem 1rem;margin:1rem 0}.dryrun-verdict{margin:0 0 .5rem;font-size:var(--fs-md);color:var(--color-text)}.dryrun-split{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}.dryrun-split li{display:flex;align-items:center;gap:.5rem}.dryrun-split-alias{min-width:10ch;font-size:var(--fs-sm);color:var(--color-text-muted)}.diff-warning{margin:0 0 .75rem;padding:.5rem .75rem;border-radius:var(--radius-sm);background:var(--color-error-glow);color:var(--color-text);font-size:var(--fs-sm);text-align:left}.dialog:has(.diff-table){max-width:min(680px,calc(100vw - 32px))}.diff-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);text-align:left}.diff-table th,.diff-table td{padding:.375rem .5rem;border-bottom:1px solid var(--color-border-subtle);vertical-align:top}.diff-table th{white-space:nowrap}.diff-table td{overflow-wrap:anywhere}.diff-table thead th{color:var(--color-text-dim);font-weight:500}.diff-row--changed{background:var(--color-warning-glow);box-shadow:inset 2px 0 0 var(--color-warning)}@media(max-width:900px){.weight-row{flex-wrap:wrap}}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.75rem 1rem;align-items:start}.form-grid .field,.form-grid .field--auto,.form-grid .field--narrow{width:100%;min-width:0}.form-grid .input{width:100%}.form-grid .field-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dryrun-grid{margin-bottom:.75rem}.dryrun-flags{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;padding:.5rem .75rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-surface);margin-bottom:.75rem}.asn-selector{display:flex;flex-direction:column;gap:.625rem}.asn-empty{margin:0;font-size:var(--fs-sm)}.asn-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.375rem}.asn-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .25rem .25rem .5rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-card);font-size:var(--fs-sm)}.asn-chip-number{font-family:var(--font-mono);font-weight:600;color:var(--color-text-bright)}.asn-chip-name{color:var(--color-text-muted)}.asn-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:0;border-radius:50%;background:transparent;color:var(--color-text-dim);font-size:var(--fs-lg);line-height:1;cursor:pointer}.asn-chip-remove:hover:not(:disabled){background:var(--color-error-dim);color:var(--color-text-bright)}.asn-chip-remove:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.asn-add{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem}.asn-error{color:var(--color-error)}.expression-editor{display:flex;flex-direction:column;gap:.75rem}.expression-preview{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;padding:.5rem .75rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-base)}.expression-preview .field-label{margin:0;white-space:nowrap}.expression-preview-value{flex:1;min-width:200px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--color-accent);overflow-wrap:anywhere}.rule-raw--secondary{margin-top:.25rem;padding-top:.25rem;border-top:1px solid var(--color-border-subtle)}@media(max-width:900px){.form-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.form-grid{grid-template-columns:1fr}}.inline-row--nowrap{flex-wrap:nowrap;white-space:nowrap}.cell-actions{width:1%;white-space:nowrap}.panel-actions-row{display:flex;align-items:center;gap:1rem;flex-wrap:nowrap}@media(max-width:560px){.panel-actions-row{flex-wrap:wrap;gap:.5rem}}.panel-actions-row .field{width:auto;min-width:0}.panel-actions-row .checkbox-label{min-height:0;white-space:nowrap}.rule-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.rule-card{display:grid;grid-template-columns:4.5rem 1fr auto;gap:1rem;align-items:start;padding:.875rem 1rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-card)}.rule-card--inactive{background:var(--color-surface);border-style:dashed}.rule-card--inactive .rule-name,.rule-card--inactive .rule-route{color:var(--color-text-muted)}.rule-card-priority{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.25rem 0;border-right:1px solid var(--color-border-subtle);min-height:2.75rem}.rule-priority-value{font-family:var(--font-mono);font-size:var(--fs-xl);font-weight:600;color:var(--color-text-bright);line-height:1.1}.rule-priority-label{font-size:var(--fs-xs);color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.04em}.rule-card-body{display:flex;flex-direction:column;gap:.375rem;min-width:0}.rule-card-head{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.rule-name{margin:0;font-size:var(--fs-lg);font-weight:600;color:var(--color-text-bright)}.rule-route{display:flex;align-items:baseline;gap:.4375rem;flex-wrap:wrap;margin:0;font-size:var(--fs-sm);color:var(--color-text)}.rule-route-arrow{color:var(--color-text-dim)}.rule-route-split{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-muted);padding:.0625rem .375rem;border-radius:var(--radius-sm);background:var(--color-elevated)}.rule-route-missing{color:var(--color-error)}.rule-chips{display:flex;flex-wrap:wrap;gap:.3125rem}.chip{display:inline-flex;align-items:baseline;gap:.3125rem;padding:.125rem .4375rem;border-radius:var(--radius-sm);background:var(--color-elevated);border:1px solid var(--color-border-subtle);font-size:var(--fs-xs);color:var(--color-text-muted)}.chip-key{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--color-text)}.chip-value{color:var(--color-text-dim)}.chip--prid strong{color:var(--color-text-bright);font-weight:600}.chip--protocol{border-color:var(--color-accent);color:var(--color-accent)}.chip--any{font-style:italic}.rule-raw{display:block;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-dim);overflow-wrap:anywhere}.rule-raw--revealed{margin-top:.125rem;padding:.375rem .5rem;border-radius:var(--radius-sm);background:var(--color-base);color:var(--color-text-muted)}.rule-card-actions{display:flex;align-items:center;gap:.375rem}.editor-actions{display:flex;gap:.5rem;margin-top:.25rem}@media(max-width:700px){.rule-card{grid-template-columns:1fr;gap:.625rem}.rule-card-priority{flex-direction:row;justify-content:flex-start;gap:.375rem;border-right:0;border-bottom:1px solid var(--color-border-subtle);padding-bottom:.375rem;min-height:0}.rule-priority-value{font-size:var(--fs-lg)}.rule-card-actions{justify-content:flex-start}}.panel-pair{display:grid;gap:.75rem}@media(min-width:1500px){.panel-pair{grid-template-columns:1fr 1fr;align-items:start;column-gap:0}.panel-pair>.panel{margin-bottom:0;padding-right:2rem}.panel-pair>.panel+.panel{padding-right:0;padding-left:2rem;border-left:1px solid var(--color-border-subtle)}}.portal-layout{height:100dvh;overflow-y:auto;display:flex;flex-direction:column;background:var(--color-base)}.portal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--color-border-subtle)}.portal-brand{display:flex;align-items:center;gap:16px}.portal-brand-logo{height:28px;width:auto}.portal-brand-divider{width:1px;height:24px;background:var(--color-border)}.portal-brand-client{max-height:28px;max-width:140px;width:auto}.portal-user{display:flex;align-items:center;gap:12px;font-size:var(--fs-sm)}.portal-user-name{color:var(--color-text-muted)}.portal-signout{background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;font:inherit;padding:6px 12px}.portal-signout:hover{background:var(--color-card-hover)}.portal-main{flex:1 0 auto;width:100%;max-width:960px;margin:0 auto;padding:32px 24px 64px}.portal-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:24px}.portal-page-header h1{font-size:var(--fs-3xl);margin:0 0 4px}.portal-subtitle{color:var(--color-text-muted);margin:0}.portal-banner{background:var(--color-warning-glow);border:1px solid var(--color-warning-dim);border-left:3px solid var(--color-warning);border-radius:var(--radius-md);color:var(--color-text);margin:0 0 24px;padding:12px 16px}.portal-env-switcher{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.portal-env-option{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font:inherit;font-size:var(--fs-sm);padding:8px 16px}.portal-env-option:hover{background:var(--color-card-hover);color:var(--color-text)}.portal-env-option.is-current{background:var(--color-card);color:var(--color-text-bright)}.portal-cards{display:flex;flex-direction:column;gap:20px}.portal-status{align-items:center;display:flex;font-size:var(--fs-xl);gap:10px;margin:0 0 4px}.portal-status--healthy{color:var(--color-healthy)}.portal-status--degraded{color:var(--color-warning)}.portal-status--error{color:var(--color-error)}.portal-table{margin-top:16px}.portal-stats{display:flex;gap:32px;margin:0}.portal-stat{display:flex;flex-direction:column;gap:4px}.portal-stat .stat-value{font-size:var(--fs-2xl);margin:0}.portal-stat--healthy .stat-value{color:var(--color-healthy)}.portal-stat--degraded .stat-value{color:var(--color-warning)}.portal-stat--error .stat-value{color:var(--color-error)}.portal-empty,.portal-stale{color:var(--color-text-muted);margin:16px 0 0}.portal-footer{border-top:1px solid var(--color-border-subtle);color:var(--color-text-dim);font-size:var(--fs-sm);padding:20px 24px;text-align:center}@media(max-width:640px){.portal-page-header{flex-direction:column}.portal-stats{gap:20px}}.portal-staff-notice{background:var(--color-elevated);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--fs-sm);margin:0;padding:8px 24px;text-align:center}.portal-host{color:var(--color-text-dim);font-family:var(--font-mono);font-size:var(--fs-xs);margin-left:8px}
