:root,.theme-dark{--bg: #0c0c0d;--bg-elevated: #111113;--surface: #18181b;--surface-hover: #1f1f23;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--hover-overlay: rgba(255, 255, 255, .1);--text: #f1efe9;--text-muted: rgba(241, 239, 233, .62);--text-faint: rgba(241, 239, 233, .38);--accent: #e3342f;--accent-dark: #b91f1c;--accent-soft: rgba(227, 52, 47, .14);--accent-border: rgba(227, 52, 47, .35);--success: #4fb35c;--success-soft: rgba(79, 179, 92, .14);--success-border: rgba(79, 179, 92, .32);--danger: #ff6b6b;--danger-soft: rgba(255, 107, 107, .14);--danger-border: rgba(255, 107, 107, .35);--warning: #e0b23e;--warning-soft: rgba(224, 178, 62, .14);--warning-border: rgba(224, 178, 62, .32);--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--font-sans: "Space Grotesk", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo, monospace;--shadow-card: 0 1px 0 rgba(255, 255, 255, .03) inset, 0 8px 24px rgba(0, 0, 0, .28);--shadow-pop: 0 12px 40px rgba(0, 0, 0, .45);--shadow-menu: 0 4px 12px rgba(0, 0, 0, .3)}.theme-light{--bg: #ffffff;--bg-elevated: #f6f6f7;--surface: #f4f4f5;--surface-hover: #e9e9ec;--border: rgba(0, 0, 0, .1);--border-strong: rgba(0, 0, 0, .2);--hover-overlay: rgba(0, 0, 0, .06);--text: #1b1b1f;--text-muted: rgba(27, 27, 31, .65);--text-faint: rgba(27, 27, 31, .42);--accent-soft: rgba(227, 52, 47, .1);--success: #2f8a3c;--success-soft: rgba(47, 138, 60, .1);--success-border: rgba(47, 138, 60, .32);--danger: #d0312d;--danger-soft: rgba(208, 49, 45, .08);--danger-border: rgba(208, 49, 45, .32);--warning: #a87a06;--warning-soft: rgba(168, 122, 6, .1);--warning-border: rgba(168, 122, 6, .32);--shadow-card: 0 1px 2px rgba(0, 0, 0, .06), 0 4px 12px rgba(0, 0, 0, .06);--shadow-pop: 0 12px 40px rgba(0, 0, 0, .18);--shadow-menu: 0 2px 8px rgba(0, 0, 0, .1)}.theme-dark,.theme-light{color:var(--text);background:var(--bg)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;overflow-x:hidden;background:var(--bg);background-image:radial-gradient(ellipse 900px 500px at 50% -10%,rgba(227,52,47,.08),transparent 60%);background-attachment:fixed;color:var(--text);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent-soft);color:var(--text)}*{scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--accent-dark)}h1,h2,h3{font-weight:700;letter-spacing:-.01em;margin:0 0 12px;color:var(--text)}h1{font-size:26px}h2{font-size:16px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}h3{font-size:15px}p{color:var(--text-muted);line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-dark)}code,pre{font-family:var(--font-mono)}input,select,textarea{font-family:inherit;font-size:14px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 12px;outline:none;transition:border-color .15s,background .15s}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:focus,select:focus,textarea:focus{border-color:var(--accent-border);background:var(--surface-hover)}input:disabled,select:disabled,textarea:disabled,button:disabled{opacity:.5;cursor:not-allowed}label{font-size:12px;font-weight:600;color:var(--text-muted)}button{font-family:inherit;font-size:14px;font-weight:600;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 16px;cursor:pointer;transition:border-color .15s,background .15s,transform .1s,color .15s}button:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-hover)}button:active:not(:disabled){transform:translateY(1px)}.btn-primary{color:#fff;background:var(--accent);border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark)}.btn-danger{color:var(--danger);border-color:var(--danger-border);background:var(--danger-soft)}.btn-danger:hover:not(:disabled){background:#ff6b6b38;border-color:var(--danger-border)}.btn-link{background:none;border:none;border-radius:0;padding:0;font-weight:inherit;color:var(--accent)}.btn-link:hover:not(:disabled){background:none;border-color:transparent;color:var(--accent-dark)}.btn-link:active:not(:disabled){transform:none}.btn-with-icon{display:inline-flex;align-items:center;gap:8px}.btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:8px;line-height:0}.btn-icon .icon{width:16px;height:16px}.btn-borderless{background:transparent;border-color:transparent}.btn-borderless:hover:not(:disabled){background:var(--surface-hover);border-color:transparent}.btn-primary.btn-borderless{color:var(--accent)}.btn-primary.btn-borderless:hover:not(:disabled){background:var(--accent-soft)}.btn-danger.btn-borderless:hover:not(:disabled){background:var(--danger-soft)}.btn-icon.btn-borderless{border-radius:50%}.btn-icon.btn-borderless:hover:not(:disabled){background:var(--hover-overlay)}a.btn-primary{display:inline-block;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;border-radius:var(--radius-sm);padding:9px 16px;cursor:pointer;transition:border-color .15s,background .15s,color .15s;color:#fff;background:var(--accent);border:1px solid var(--accent)}a.btn-primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.switch-label{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:13px;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.switch{position:relative;display:inline-block;width:36px;height:20px;flex-shrink:0}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch-track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:999px;transition:background .15s,border-color .15s}.switch-track:before{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--text-muted);transition:transform .18s ease,background .15s}.switch input:checked+.switch-track{background:var(--accent-soft);border-color:var(--accent-border)}.switch input:checked+.switch-track:before{transform:translate(16px);background:var(--accent)}.app-shell{display:flex;min-height:100vh;align-items:stretch}.sidebar{width:232px;flex-shrink:0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;background:var(--bg-elevated);border-right:1px solid var(--border);padding:18px 14px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;color:var(--text);white-space:nowrap;padding:0 6px;margin-bottom:22px}.brand-mark{display:flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--accent);font-size:30px;flex-shrink:0}.brand-mark svg{width:100%;height:100%}.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto}.nav-link{display:block;color:var(--text-muted);font-size:13px;font-weight:600;padding:9px 12px;border-radius:var(--radius-sm);white-space:nowrap;transition:color .15s,background .15s}.nav-link:hover{color:var(--text);background:var(--surface)}.nav-link.active{color:var(--accent);background:var(--accent-soft)}.sidebar-group{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.sidebar-group-header select{width:100%}.sidebar-group-items{display:flex;flex-direction:column;gap:2px;margin-left:12px;padding-left:8px;border-left:1px solid var(--border)}.sidebar-group-items .nav-link{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px}.sidebar-user{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 6px 0;margin-top:12px;border-top:1px solid var(--border);color:var(--text-muted);font-size:13px}.sidebar-user span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user button{padding:6px 12px;font-size:12px;flex-shrink:0}.content{flex:1;min-width:0}.page{padding:28px 28px 64px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-header h1{margin:0}.page-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mobile-topbar{display:none;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-elevated);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:120}.mobile-topbar .brand{margin-bottom:0}.menu-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;flex-shrink:0}.menu-button-bars{display:flex;flex-direction:column;gap:4px;width:16px}.menu-button-bars span{display:block;height:2px;width:100%;background:var(--text);border-radius:2px}.sidebar-backdrop{display:none}@media (max-width: 860px){.app-shell{flex-direction:column;min-height:0}.mobile-topbar{display:flex}.sidebar{position:fixed;inset:0 auto 0 0;height:100vh;width:90%;max-width:320px;transform:translate(-100%);transition:transform .25s ease;z-index:200;box-shadow:var(--shadow-pop)}.sidebar.open{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:150;opacity:0;pointer-events:none;transition:opacity .2s ease}.sidebar-backdrop.open{opacity:1;pointer-events:auto}.page{padding:20px 16px 48px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.page-header{gap:10px}.tabs{overflow-x:auto}.modal-card,.auth-card{padding:20px}}@media (max-width: 480px){.page{padding:16px 12px 40px}h1{font-size:21px}.card,.stat-tile{padding:16px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:20px}.section{margin-bottom:32px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}.stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;transition:border-color .2s,transform .2s}.stat-tile:hover{border-color:var(--accent-border);transform:translateY(-2px)}.stat-value{font-size:34px;font-weight:700;letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums}.stat-label{color:var(--text-muted);font-size:13px;margin-top:4px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:999px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted)}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge-online,.badge-success{color:var(--success);background:var(--success-soft);border-color:var(--success-border)}.badge-pending{color:var(--warning);background:var(--warning-soft);border-color:#e0b23e52}.badge-running{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-border)}.badge-offline,.badge-error,.badge-failure{color:var(--danger);background:var(--danger-soft);border-color:var(--danger-border)}.panel,.table-wrap{--panel-padding: 16px;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}.panel-header{display:flex;align-items:center;gap:12px;min-height:40px;padding:6px 14px;border-bottom:1px solid var(--border);background:var(--bg-elevated);font-size:13px}.panel-header-start,.panel-header-end,.panel-footer-start,.panel-footer-end{display:flex;align-items:center;gap:8px;min-width:0}.panel-header-end,.panel-footer-end{margin-left:auto}.panel-body{padding:var(--panel-padding)}.panel-body-flush,.panel-body:has(>table,>.list,>.list-header){padding:0}.panel-footer{display:flex;align-items:center;gap:12px;padding:0 var(--panel-padding) var(--panel-padding)}.panel-body-flush+.panel-footer,.panel-body:has(>table,>.list,>.list-header)+.panel-footer,.panel-body.theme-light+.panel-footer,.panel-body.theme-dark+.panel-footer{min-height:40px;padding:6px 14px;border-top:1px solid var(--border);background:var(--bg-elevated);font-size:13px}.panel-scroll{display:flex;flex-direction:column;overflow:hidden;max-height:var(--panel-max-height)}.panel-scroll>.panel-header,.panel-scroll>.panel-footer{flex-shrink:0}.panel-scroll>.panel-body{flex:1 1 auto;min-height:0;overflow:auto}.panel-scroll>.panel-body>.list-header{position:sticky;top:0;z-index:1}table{width:100%;border-collapse:collapse;font-size:13px}.panel table{border:none}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);font-weight:600;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--bg-elevated);white-space:nowrap}td{padding:10px 14px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--surface-hover)}.list{list-style:none;margin:0;padding:0}.list-compact{--list-item-padding-y: 6px;--list-item-gap: 8px}.list-item{display:grid;grid-template-columns:auto minmax(0,200px) minmax(0,1fr) auto auto;grid-template-areas:"leading title description meta trailing";align-items:center;gap:var(--list-item-gap, 12px);width:100%;padding:var(--list-item-padding-y, 10px) var(--list-item-padding-x, 14px);border:none;border-bottom:1px solid var(--border);background:none;color:var(--text);font:inherit;font-size:13px;line-height:1.4;text-align:left;text-decoration:none}.list-item :where(p,h1,h2,h3,h4){margin:0;line-height:inherit;color:inherit}.list>li:last-child>.list-item{border-bottom:none}a.list-item,button.list-item{cursor:pointer}a.list-item:hover,button.list-item:hover{background:var(--surface-hover)}.list-item.emphasized{background:var(--surface)}.list-item.selected,.list-item.selected:hover,.list-item.active,.list-item.active:hover{background:var(--accent-soft)}.list-item.emphasized{font-weight:600}.list-item-leading{grid-area:leading;display:flex;align-items:center;gap:8px}.list-header{padding:6px var(--list-item-padding-x, 14px)}.list-header-count{color:var(--text-muted)}.list-checkbox{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:14px;height:14px;border:1px solid var(--border-strong);border-radius:3px;cursor:pointer;transition:background .15s,border-color .15s}.list-checkbox:hover{border-color:var(--accent-border)}.list-checkbox.checked,.list-checkbox.mixed{background:var(--accent);border-color:var(--accent)}.list-checkbox.checked:after{content:"";width:4px;height:7px;border:solid #ffffff;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}.list-checkbox.mixed:after{content:"";width:8px;height:2px;background:#fff}.list-checkbox:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.list-item-title{grid-area:title}.list-item-description{grid-area:description}.list-item:not(.emphasized) .list-item-description{color:var(--text-muted)}.list-item-title,.list-item-description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-item-meta{grid-area:meta;display:flex;align-items:center;gap:8px;color:var(--text-faint);font-size:12px;white-space:nowrap}.list-item-trailing{grid-area:trailing;display:flex;align-items:center;gap:8px}.list-item .btn-icon{padding:6px;margin:-6px 0}.list-item .btn-icon .icon{width:14px;height:14px}@media (max-width: 480px){.list-item{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"leading title meta" "leading description trailing";row-gap:2px}.list-compact .list-item{row-gap:0}}.avatar{display:flex;align-items:center;gap:var(--avatar-gap, 12px);min-width:0}.avatar-image{flex-shrink:0;border-radius:50%;object-fit:cover}.avatar-initial{display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:600;-webkit-user-select:none;user-select:none}.avatar-text{min-width:0;line-height:1.3}.avatar-mainline,.avatar-subline{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar-mainline{font-weight:600;color:var(--text)}.avatar-subline{font-size:12px;color:var(--text-muted)}.avatar-indent{padding-left:calc(var(--avatar-size, 40px) + var(--avatar-gap, 12px))}.icon{display:inline-flex;flex-shrink:0;width:1em;height:1em;vertical-align:-.125em}.icon svg{width:100%;height:100%;fill:currentColor;stroke:currentColor}.icon .ionicon-fill-none{fill:none}.icon .ionicon-stroke-width{stroke-width:32px}.icon-custom{background-color:currentColor;mask-position:center;mask-size:contain;mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat}.form-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:12px;font-weight:600;color:var(--text-muted)}.field-hint{color:var(--text-faint);font-size:12px;margin:2px 0 0}.copy-field-row{display:flex;gap:8px;align-items:flex-start}.copy-field-row input,.copy-field-row textarea{flex:1;min-width:0}.copy-field-row textarea{resize:none;word-break:break-all}.log{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;overflow:auto;max-height:500px;font-family:var(--font-mono);font-size:12.5px;line-height:1.6;color:#d7d3c9;white-space:pre-wrap;word-break:break-all}.tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border)}.tabs button{background:none;border:none;border-radius:0;color:var(--text-muted);padding:9px 14px;border-bottom:2px solid transparent}.tabs button:hover:not(:disabled){background:none;color:var(--text)}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow-pop)}.auth-card .brand{justify-content:center;margin-bottom:20px}.auth-card h1{font-size:20px;text-align:center}.auth-card form{display:flex;flex-direction:column;gap:12px;margin-top:18px}.auth-card button[type=submit]{margin-top:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:16px;z-index:100}.modal-card{width:100%;max-width:480px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-pop)}.muted{color:var(--text-muted)}.error-text{color:var(--danger);font-size:13px}.loading-shell{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-muted);font-size:14px}@media (max-width: 480px){.auth-shell{padding:16px}.auth-card{padding:24px 20px}}.tooltip-wrap{position:relative;display:inline-flex}.tooltip-bubble{position:fixed;background:var(--bg-elevated);border:1px solid var(--border-strong);color:var(--text);font-size:12px;font-weight:500;white-space:nowrap;padding:6px 10px;border-radius:var(--radius-sm);box-shadow:var(--shadow-pop);pointer-events:none;z-index:1000;animation:tooltip-in .12s ease-out}@keyframes tooltip-in{0%{opacity:0}}.context-menu{position:fixed;min-width:180px;padding:4px;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-menu);z-index:1000;animation:tooltip-in .12s ease-out}.context-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:13px;font-weight:500;text-align:left;white-space:nowrap}.context-menu-item:hover:not(:disabled),.context-menu-item:focus-visible,.context-menu-item.open{background:var(--surface-hover);border-color:transparent;outline:none}.context-menu-item:active:not(:disabled){transform:none}.context-menu-item.danger{color:var(--danger)}.context-menu-icon{display:inline-flex;width:16px;flex-shrink:0}.context-menu-icon .icon,.context-menu-chevron{width:14px;height:14px}.context-menu-chevron{margin-left:auto;padding-left:12px;box-sizing:content-box;color:var(--text-muted)}.context-menu-divider{height:1px;margin:4px 0;background:var(--border)}.alert{display:flex;align-items:flex-start;gap:10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);padding:12px 16px;font-size:13px;margin-bottom:16px}.alert-success{color:var(--success);background:var(--success-soft);border-color:var(--success-border)}.alert-warning{color:var(--warning);background:var(--warning-soft);border-color:var(--warning-border)}.alert-danger{color:var(--danger);background:var(--danger-soft);border-color:var(--danger-border)}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spinner-spin .6s linear infinite}@keyframes spinner-spin{to{transform:rotate(360deg)}}.toast-stack{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:300}.toast{min-width:240px;max-width:360px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:12px 16px;color:var(--text);font-size:13px;box-shadow:var(--shadow-pop)}.toast-success{border-color:var(--success-border)}.toast-danger{border-color:var(--danger-border)}@media (max-width: 480px){.toast-stack{left:12px;right:12px;bottom:12px}.toast{min-width:0;max-width:none;width:100%}}.stack{display:flex;flex-direction:column;gap:24px}.grow{flex:1;min-width:0}.field input,.field select,.field textarea{width:100%}.field textarea{resize:vertical;min-height:80px;font-family:var(--font-mono)}.placeholders code{font-family:var(--font-mono);font-size:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.empty{padding:32px 16px;text-align:center;color:var(--text-muted)}.nowrap{white-space:nowrap}
