:root{--app-bg:#111a2a;--panel-bg:#1a273a;--panel-bg-soft:#1d2c42;--topbar-bg:#1a2434;--border:#32465f;--text-primary:#e5e7eb;--text-secondary:#9ca3af;--text-muted:#6b7280;--status-running:#3b82f6;--status-success:#22c55e;--status-failed:#ef4444;--status-neutral:#6b7280;--radius-card:12px;--radius-control:10px;--radius-pill:999px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--shadow-soft:0 10px 24px #040a163d;--control-bg:#1c2a3f;--control-bg-hover:#2f4668;--chip-bg:#202f45;--avatar-bg:#314866;--menu-trigger-bg:#263854;--menu-trigger-hover-bg:#30486b;--menu-hover-bg:#2f4668;--terminal-bg:#121c2c;--body-grad-1:#4678d247;--body-grad-2:#5f8fdf2e;--body-grad-3:#28549a2e;--scrollbar-thumb:#425f87;--scrollbar-thumb-hover:#5374a2;--scrollbar-track:#1a273a;--bg-primary:var(--app-bg);--bg-secondary:var(--panel-bg);--bg-tertiary:var(--panel-bg-soft);--fg-primary:var(--text-primary);--fg-secondary:var(--text-secondary);--brand-red:var(--status-failed);--accent-yellow:#f2eb0e;--accent-pink:#ffb5ff;--accent-teal:#bee6db;--neutral:var(--border);--neutral-light:#22324b;--neutral-dark:var(--text-secondary);--white:var(--panel-bg);--black:var(--text-primary);--padding:var(--space-lg);--border-radius:var(--radius-control)}:root[data-theme=light]{--app-bg:#edf2f9;--panel-bg:#fff;--panel-bg-soft:#f6f9ff;--topbar-bg:#fff;--border:#d4deec;--text-primary:#17263b;--text-secondary:#4b5d78;--text-muted:#6f7f97;--neutral-light:#eaf0fb;--neutral-dark:#4b5d78;--shadow-soft:0 10px 24px #1429471f;--control-bg:#f4f7fd;--control-bg-hover:#e2ebfa;--chip-bg:#f2f6fd;--avatar-bg:#d8e4f8;--menu-trigger-bg:#eef3fc;--menu-trigger-hover-bg:#e2ebfa;--menu-hover-bg:#e2ebfa;--terminal-bg:#101826;--body-grad-1:#5884d22e;--body-grad-2:#8cb0ed26;--body-grad-3:#abc4ec24;--scrollbar-thumb:#bfd0e8;--scrollbar-thumb-hover:#a7bddc;--scrollbar-track:#edf3fd}*{box-sizing:border-box}#root,body,html{min-height:100%}body{background:radial-gradient(1200px 560px at 12% -8%,#4678d247,#0000 60%),radial-gradient(1000px 480px at 88% 8%,#5f8fdf2e,#0000 56%),radial-gradient(900px 460px at 50% 100%,#28549a2e,#0000 62%),#111a2a;background:radial-gradient(1200px 560px at 12% -8%,var(--body-grad-1),#0000 60%),radial-gradient(1000px 480px at 88% 8%,var(--body-grad-2),#0000 56%),radial-gradient(900px 460px at 50% 100%,var(--body-grad-3),#0000 62%),var(--app-bg);color:#e5e7eb;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.45;margin:0}.dashboard-root{grid-gap:16px;grid-gap:var(--space-lg);padding:16px;padding:var(--space-lg)}.dashboard-root,.top-nav{display:grid;gap:16px;gap:var(--space-lg)}.top-nav{grid-gap:16px;grid-gap:var(--space-lg);align-items:center;background:#1a2434;background:var(--topbar-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-card);box-shadow:0 10px 24px #060b1847;grid-template-columns:auto 1fr;height:62px;padding:0 16px;padding:0 var(--space-lg)}.brand-wrap{align-items:center;display:flex;gap:10px}.brand-logo{background:#5c91e840;border:1px solid #3f5f8a;border-radius:8px;color:#dbeafe;display:grid;font-size:10px;font-weight:700;height:30px;place-items:center;width:30px}:root[data-theme=light] .brand-logo{background:#78a0e240;border-color:#8fb0df;color:#214a8f}.brand-text{font-size:20px;font-weight:600}.search-input{background:#1c2a3f;background:var(--control-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-control);color:#e5e7eb;color:var(--text-primary);font-size:14px;padding:10px 12px;width:min(520px,100%)}.search-input::placeholder{color:#6b7280;color:var(--text-muted)}input,select,textarea{background:#1c2a3f;background:var(--control-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-control);color:#e5e7eb;color:var(--text-primary)}.search-input:focus,input:focus,select:focus{border-color:#35538f;box-shadow:0 0 0 2px #3b82f63d;outline:none}.nav-actions{align-items:center;display:flex;gap:8px;gap:var(--space-sm);justify-self:end}.user-menu-anchor{position:relative}.user-chip{align-items:center;background:#202f45;background:var(--chip-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-control);color:inherit;cursor:pointer;display:flex;gap:8px;height:36px;padding:0 10px;transition:background .18s ease,border-color .18s ease,transform .18s ease}.user-chip:hover{background:#30486b;background:var(--menu-trigger-hover-bg);border-color:#4e6d96;transform:translateY(-1px)}.user-chip:active{transform:translateY(0)}.avatar{background:#314866;background:var(--avatar-bg);border-radius:50%;color:#e5e7eb;color:var(--text-primary);display:grid;font-size:11px;font-weight:600;height:20px;overflow:hidden;place-items:center;width:20px}.avatar-image{display:block;height:100%;object-fit:cover;width:100%}.user-name{color:#9ca3af;color:var(--text-secondary);font-size:12px;text-transform:none}.user-menu-trigger{align-items:center;background:#263854;background:var(--menu-trigger-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:8px;color:inherit;cursor:pointer;display:inline-flex;gap:6px;padding:4px 8px;transition:background .18s ease,border-color .18s ease,transform .18s ease}.user-menu-trigger:hover{background:#30486b;background:var(--menu-trigger-hover-bg);border-color:#4e6d96;transform:translateY(-1px)}.user-menu-trigger:active{transform:translateY(0)}.user-menu-caret{align-items:center;color:#9ca3af;color:var(--text-secondary);display:inline-flex;line-height:1;transition:transform .18s ease}.user-menu-caret.open{transform:rotate(180deg)}.user-menu-dropdown{background:#1a273a;background:var(--panel-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 24px #040a163d;box-shadow:var(--shadow-soft);min-width:220px;padding:6px;position:absolute;right:0;top:calc(100% + 8px);z-index:1200}.user-menu-item{background:#0000;border:1px solid #0000;border-radius:8px;color:#e5e7eb;color:var(--text-primary);cursor:pointer;font-size:13px;padding:8px 10px;text-align:left;width:100%}.user-menu-item:hover{background:#2f4668;background:var(--menu-hover-bg);border-color:#4e6d96}.user-menu-item:disabled{cursor:not-allowed;opacity:.5}.table-action-loading{align-items:center;display:inline-flex;gap:8px}.inline-spinner{animation:inline-spinner-rotate .8s linear infinite;border:2px solid color-mix(in srgb,#e5e7eb 35%,#0000);border-top-color:#e5e7eb;border:2px solid color-mix(in srgb,var(--text-primary) 35%,#0000);border-radius:50%;border-top-color:var(--text-primary);height:12px;width:12px}@keyframes inline-spinner-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.user-menu-section-title{color:#9ca3af;color:var(--text-secondary);font-size:11px;letter-spacing:.06em;padding:6px 10px 4px;text-transform:uppercase}.user-menu-section-note{color:#9ca3af;color:var(--text-secondary);font-size:12px;padding:8px 10px}.table-menu-dropdown{min-width:190px;z-index:9999}.table-menu-dropdown-fixed{position:fixed;right:auto}.table-menu-item{display:block}.user-menu-theme{align-items:center;display:flex;gap:10px;justify-content:space-between}.theme-toggle{align-items:center;background:#7d8da7;border-radius:999px;display:inline-flex;height:20px;padding:2px;transition:background .18s ease;width:34px}.theme-toggle.on{background:#3b82f6}.theme-toggle-knob{background:#fff;border-radius:50%;height:16px;transition:transform .18s ease;width:16px}.theme-toggle.on .theme-toggle-knob{transform:translateX(14px)}.stats-grid{grid-gap:16px;grid-gap:var(--space-lg);display:grid;gap:16px;gap:var(--space-lg);grid-template-columns:repeat(5,minmax(0,1fr))}.stat-card{background:#1a273a;background:var(--panel-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-card);box-shadow:0 10px 24px #040a163d;box-shadow:var(--shadow-soft);min-height:96px;padding:16px;padding:var(--space-lg)}.stat-card.is-loading .stat-value{opacity:.55}.stat-label{color:#9ca3af;color:var(--text-secondary);font-size:12px;margin-bottom:8px;margin-bottom:var(--space-sm)}.stat-label-with-icon{gap:8px}.stat-icon,.stat-label-with-icon{align-items:center;display:inline-flex}.stat-icon{border-radius:6px;height:18px;justify-content:center;width:18px}.stat-icon.queue{background:#6b72802e;color:#94a3b8}.stat-icon.running{background:#3b82f633;color:#bfdbfe}.stat-icon.success{background:#22c55e33;color:#bbf7d0}.stat-icon.failed{background:#ef444433;color:#fecaca}.stat-icon.agents{background:#6366f138;color:#c7d2fe}:root[data-theme=light] .stat-icon.queue{background:#64748b38;color:#475569}:root[data-theme=light] .stat-icon.running{background:#3b82f638;color:#1d4ed8}:root[data-theme=light] .stat-icon.success{background:#22c55e38;color:#166534}:root[data-theme=light] .stat-icon.failed{background:#ef444438;color:#b91c1c}:root[data-theme=light] .stat-icon.agents{background:#4f46e533;color:#3730a3}.stat-value{font-size:24px;font-weight:600;letter-spacing:-.02em}.content-grid{grid-gap:16px;grid-gap:var(--space-lg);display:grid;gap:16px;gap:var(--space-lg);grid-template-columns:minmax(0,1.9fr) minmax(340px,1fr)}.panel{background:#1a273a;background:var(--panel-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-card);box-shadow:0 10px 24px #040a163d;box-shadow:var(--shadow-soft);min-width:0;padding:16px;padding:var(--space-lg)}.panel-header{align-items:center;display:flex;gap:12px;gap:var(--space-md);justify-content:space-between;margin-bottom:12px;margin-bottom:var(--space-md)}.jobs-header-tools{align-items:center;display:flex;flex:1 1;gap:8px;justify-content:flex-end}.jobs-search-input{background:#1c2a3f;background:var(--control-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-control);color:#e5e7eb;color:var(--text-primary);font-size:13px;padding:8px 12px;width:min(360px,100%)}.jobs-search-input::placeholder{color:#6b7280;color:var(--text-muted)}.jobs-search-help{align-items:center;background:#1c2a3f;background:var(--control-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:999px;color:#9ca3af;color:var(--text-secondary);cursor:help;display:inline-flex;font-size:12px;font-weight:600;height:24px;justify-content:center;min-width:24px;-webkit-user-select:none;user-select:none}.panel-title{font-size:16px;font-weight:600;line-height:1.2;margin:0}.tabs-row{align-items:center;border-bottom:1px solid #32465f;border-bottom:1px solid var(--border);display:flex;gap:8px;gap:var(--space-sm);margin-bottom:12px;margin-bottom:var(--space-md)}.tab-divider{background:#32465f;background:var(--border);height:18px;margin:0 4px;width:1px}.tab-btn{background:#0000;border:0;border-bottom:2px solid #0000;color:#9ca3af;color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:500;padding:10px 4px;transition:color .18s ease,border-color .18s ease}.tab-btn.active{border-color:#3b82f6;border-color:var(--status-running);color:#e5e7eb;color:var(--text-primary)}.btn{border:1px solid #32465f;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-control);cursor:pointer;font-size:13px;font-weight:500;padding:8px 12px;transition:all .2s ease}.btn:disabled{cursor:not-allowed;opacity:.5}.btn.primary,button.primary{background:#3b82f6;background:var(--status-running);border-color:#3e6fc5;color:#f8fbff}.btn.primary:hover,button.primary:hover{filter:brightness(1.08)}.create-job-btn{align-items:center;display:inline-flex;gap:8px;justify-content:center;line-height:1}.create-job-btn svg{display:block;flex-shrink:0}.btn.secondary,button.secondary{background:#1c2a3f;background:var(--control-bg);border-color:#32465f;border-color:var(--border);color:#e5e7eb;color:var(--text-primary)}.btn.secondary:hover,button.secondary:hover{background:#2f4668;background:var(--control-bg-hover);border-color:#4e6d96;box-shadow:0 4px 10px #0a142447;transform:translateY(-1px)}.btn.secondary:active,button.secondary:active{box-shadow:none;transform:translateY(0)}.switch-wrap{align-items:center;color:#9ca3af;color:var(--text-secondary);display:inline-flex;font-size:13px;gap:10px;position:relative}.switch-wrap input{height:0;opacity:0;position:absolute;width:0}.switch-slider{background:#2f3f59;border:1px solid #455f85;border-radius:999px;height:24px;position:relative;transition:all .18s ease;width:42px}.switch-slider:before{background:#d1d5db;border-radius:50%;content:"";height:18px;left:2px;position:absolute;top:2px;transition:all .18s ease;width:18px}.switch-wrap input:checked+.switch-slider{background:#1f3f73;border-color:#32558e}.switch-wrap input:checked+.switch-slider:before{background:#dbeafe;transform:translateX(18px)}.modal-scroll-shell,.table-wrap,.uploadjob-popup{overflow-x:auto;scrollbar-color:#425f87 #1a273a;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin;width:100%}.modal-scroll-shell::-webkit-scrollbar,.table-wrap::-webkit-scrollbar,.uploadjob-popup::-webkit-scrollbar{height:10px;width:10px}.modal-scroll-shell::-webkit-scrollbar-track,.table-wrap::-webkit-scrollbar-track,.uploadjob-popup::-webkit-scrollbar-track{background:#1a273a;background:var(--scrollbar-track)}.modal-scroll-shell::-webkit-scrollbar-thumb,.table-wrap::-webkit-scrollbar-thumb,.uploadjob-popup::-webkit-scrollbar-thumb{background:#425f87;background:var(--scrollbar-thumb);border:2px solid #1a273a;border:2px solid var(--scrollbar-track);border-radius:999px}.modal-scroll-shell::-webkit-scrollbar-thumb:hover,.table-wrap::-webkit-scrollbar-thumb:hover,.uploadjob-popup::-webkit-scrollbar-thumb:hover{background:#5374a2;background:var(--scrollbar-thumb-hover)}.agent-table-wrap{overflow-x:hidden}.job-table-wrap{position:relative}.job-table-loading-overlay{background:color-mix(in srgb,#1a273a 62%,#0000);background:color-mix(in srgb,var(--panel-bg) 62%,#0000);display:grid;inset:0;min-height:220px;place-items:center;pointer-events:none;position:absolute;z-index:20}.job-table-spinner{animation:inline-spinner-rotate .8s linear infinite;border:4px solid color-mix(in srgb,#e5e7eb 24%,#0000);border-top-color:#3b82f6;border:4px solid color-mix(in srgb,var(--text-primary) 24%,#0000);border-radius:50%;border-top-color:var(--status-running);height:36px;width:36px}.dashboard-table{border-collapse:collapse;min-width:880px;width:100%}.modal-task-table{min-width:760px}.job-detail-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#060c16b8;display:flex;inset:0;justify-content:center;padding:12px;position:fixed;z-index:10000}.job-detail-modal{background:radial-gradient(900px 360px at 25% 0,#3b82f61f,#0000 58%),#1a273a;background:radial-gradient(900px 360px at 25% 0,#3b82f61f,#0000 58%),var(--panel-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:12px;box-shadow:0 24px 64px #00000080;max-height:92vh;overflow:auto;overscroll-behavior:contain;padding:28px 28px 24px;width:min(1280px,98vw)}.job-detail-header{grid-gap:28px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:radial-gradient(900px 360px at 25% 0,#3b82f61f,#0000 58%),color-mix(in srgb,#1a273a 94%,#0000);background:radial-gradient(900px 360px at 25% 0,#3b82f61f,#0000 58%),color-mix(in srgb,var(--panel-bg) 94%,#0000);border-bottom:1px solid #32465f9e;display:grid;gap:28px;grid-template-columns:minmax(0,1fr) auto;margin:-28px 0 18px;padding:28px 0 16px;position:-webkit-sticky;position:sticky;top:-28px;z-index:40}.job-detail-main{min-width:0}.job-detail-back{align-items:center;background:#0000;border:0;color:#e5e7eb;color:var(--text-primary);cursor:pointer;display:inline-flex;font:inherit;gap:8px;margin:0 0 16px;padding:0}.job-detail-back:hover{color:#3b82f6;color:var(--status-running)}.job-detail-title{font-size:28px;font-weight:700;line-height:1.15;margin:0 0 12px}.job-detail-meta,.job-detail-title{color:#e5e7eb;color:var(--text-primary)}.job-detail-meta{align-items:center;display:flex;flex-wrap:wrap;font-size:15px;gap:10px;margin-bottom:16px}.job-detail-meta strong{color:#e5e7eb;color:var(--text-primary);font-weight:700}.job-detail-command{align-items:flex-start;background:#0f1c2db8;border:1px solid #32465f;border:1px solid var(--border);border-radius:8px;color:#e5e7eb;color:var(--text-primary);display:inline-flex;gap:8px;max-width:100%;min-height:38px;padding:8px 12px}.job-detail-command code{font-family:Consolas,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.45;min-width:0;overflow-wrap:anywhere;white-space:normal}.job-detail-side{grid-gap:28px;align-content:start;display:grid;gap:28px;justify-items:end}.job-detail-actions{align-items:center;display:flex;gap:12px}.job-detail-menu-wrap{position:relative}.job-detail-kebab,.modal-row-action{background:#1c2a3f;background:var(--control-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:8px;color:#e5e7eb;color:var(--text-primary);cursor:pointer;display:inline-grid;place-items:center}.job-detail-kebab{height:36px;width:36px}.job-detail-kebab:hover,.modal-row-action:hover{background:#2f4668;background:var(--control-bg-hover);border-color:#4e6d96}.job-detail-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:20020}.job-detail-stats{grid-gap:0;display:grid;gap:0;grid-template-columns:auto auto auto}.job-detail-stats>div{border-left:1px solid #32465f;border-left:1px solid var(--border);min-width:108px;padding:4px 18px}.job-detail-stats span{color:#9ca3af;color:var(--text-secondary);display:block;font-size:13px;margin-bottom:8px}.job-detail-stats strong{color:#e5e7eb;color:var(--text-primary);font-size:18px;font-weight:500}.modal-task-progress{grid-gap:8px;color:#9ca3af;color:var(--neutral-dark);display:grid;gap:8px;margin-bottom:18px}.modal-task-progress-line{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.modal-task-progress-pills{flex-wrap:wrap}.modal-task-progress-pills,.task-count-pill{align-items:center;display:inline-flex;gap:6px}.task-count-pill{background:#202f45;background:var(--chip-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:999px;border-radius:var(--radius-pill);color:#e5e7eb;color:var(--text-primary);font-size:12px;font-weight:500;line-height:1;min-height:24px;padding:3px 9px}.task-count-pill>span{background:currentColor;border-radius:50%;height:7px;width:7px}.task-count-pill.queued{background:#6b72802e;border-color:#6b728059;color:#cbd5e1}.task-count-pill.running{background:#3b82f62e;border-color:#3b82f673;color:#dbeafe}.task-count-pill.finished{background:#22c55e2e;border-color:#22c55e73;color:#dcfce7}.task-count-pill.failed{background:#ef44442e;border-color:#ef444473;color:#fee2e2}.task-count-pill.cancelled{background:#f59e0b29;border-color:#f59e0b6b;color:#fde68a}.modal-task-progress-bar{background:#6b728038;border:1px solid #32465f;border:1px solid var(--border);border-radius:8px;display:flex;height:22px;overflow:hidden;width:100%}.modal-task-progress-bar>span{align-items:center;color:#f8fbff;display:inline-flex;font-size:12px;font-weight:700;justify-content:center;line-height:1;min-width:0;overflow:hidden;padding:0 8px;text-overflow:ellipsis;text-shadow:0 1px 2px #00000059;white-space:nowrap}.modal-task-progress-bar .finished{background:#22c55e;background:var(--status-success)}.modal-task-progress-bar .failed{background:#ef4444;background:var(--status-failed)}.modal-task-progress-bar .cancelled{background:#f59e0b}.modal-task-progress-bar .running{background:#3b82f6;background:var(--status-running)}.modal-task-progress-bar .queued{background:#64748b}.job-detail-table-section{min-width:0}.job-detail-table-wrap{background:#0b182770;border:1px solid #32465f;border:1px solid var(--border);border-radius:10px;max-height:min(560px,54vh);overflow:auto}.job-detail-table{min-width:1060px}.job-detail-table th{background:#0d1d2ff0;color:#9ca3af;color:var(--text-secondary);font-size:13px;letter-spacing:0;position:-webkit-sticky;position:sticky;text-transform:none;top:0;z-index:30}.job-detail-table td{border-bottom-color:#32465fb8;font-size:14px;height:54px}.job-detail-table tbody tr{cursor:pointer}.job-detail-table tbody tr.is-selected{background:#3b82f624}.modal-progress-cell{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:58px minmax(92px,1fr)}.modal-progress-mini{background:#64748b47;border-radius:999px;height:9px;overflow:hidden}.modal-progress-mini>span{border-radius:inherit;display:block;height:100%;min-width:0}.modal-progress-mini.running>span{background:#3b82f6;background:var(--status-running)}.modal-progress-mini.finished>span{background:#22c55e;background:var(--status-success)}.modal-progress-mini.cancelled>span,.modal-progress-mini.failed>span,.modal-progress-mini.offline>span{background:#ef4444;background:var(--status-failed)}.modal-progress-mini.default>span,.modal-progress-mini.queued>span{background:#64748b}.modal-row-action-wrap{display:inline-block}.modal-row-action{height:36px;width:36px}.modal-row-action svg{transition:transform .18s ease}.modal-row-action:has(svg){color:#9ca3af;color:var(--text-secondary)}.job-detail-empty{color:#9ca3af;color:var(--text-secondary);height:84px;text-align:center}:root[data-theme=light] .job-detail-overlay{background:#0f172a52}:root[data-theme=light] .job-detail-modal{background:radial-gradient(900px 360px at 25% 0,#3b82f614,#0000 58%),#1a273a;background:radial-gradient(900px 360px at 25% 0,#3b82f614,#0000 58%),var(--panel-bg);box-shadow:0 24px 64px #1429473d}:root[data-theme=light] .job-detail-header{background:radial-gradient(900px 360px at 25% 0,#3b82f614,#0000 58%),color-mix(in srgb,#1a273a 94%,#0000);background:radial-gradient(900px 360px at 25% 0,#3b82f614,#0000 58%),color-mix(in srgb,var(--panel-bg) 94%,#0000);border-bottom-color:#32465f;border-bottom-color:var(--border)}:root[data-theme=light] .job-detail-command,:root[data-theme=light] .job-detail-kebab,:root[data-theme=light] .modal-row-action{background:#1c2a3f;background:var(--control-bg);border-color:#32465f;border-color:var(--border);color:#e5e7eb;color:var(--text-primary)}:root[data-theme=light] .job-detail-kebab:hover,:root[data-theme=light] .modal-row-action:hover{background:#2f4668;background:var(--control-bg-hover);border-color:#a7bddc}:root[data-theme=light] .modal-task-progress-bar{background:#64748b29;border-color:#32465f;border-color:var(--border)}:root[data-theme=light] .modal-task-progress-bar>span{text-shadow:none}:root[data-theme=light] .modal-task-progress-bar .queued{background:#94a3b8}:root[data-theme=light] .job-detail-table-wrap{background:#1a273a;background:var(--panel-bg);border-color:#32465f;border-color:var(--border)}:root[data-theme=light] .job-detail-table th{background:#1a273a;background:var(--panel-bg);color:#6b7280;color:var(--text-muted)}:root[data-theme=light] .job-detail-table td,:root[data-theme=light] .job-detail-table th{border-bottom-color:#32465f;border-bottom-color:var(--border)}:root[data-theme=light] .job-detail-table tbody tr.is-selected{background:#3b82f61f}:root[data-theme=light] .modal-progress-mini{background:#64748b2e}:root[data-theme=light] .modal-progress-mini.default>span,:root[data-theme=light] .modal-progress-mini.queued>span{background:#94a3b8}.agent-table{min-width:0;table-layout:fixed}.agent-table td,.agent-table th{white-space:nowrap}.agent-table td:nth-child(3),.agent-table th:nth-child(3){overflow-wrap:anywhere;white-space:normal}.dashboard-table th{background:#1a273a;background:var(--panel-bg);border-bottom:1px solid #32465f;border-bottom:1px solid var(--border);color:#6b7280;color:var(--text-muted);font-size:12px;font-weight:500;letter-spacing:.06em;padding:10px;position:-webkit-sticky;position:sticky;text-align:left;text-transform:uppercase;top:0;white-space:nowrap;z-index:5}.cell-with-icon,.table-head-icon{align-items:center;display:inline-flex;gap:6px}.agent-job-link{background:#0000;border:0;color:inherit;cursor:pointer;font:inherit;margin:0;padding:0;text-align:left}.agent-job-link:hover{color:#3b82f6;color:var(--status-running);text-decoration:underline}.dashboard-table td{border-bottom:1px solid #32465f;border-bottom:1px solid var(--border);color:#e5e7eb;color:var(--text-primary);font-size:13px;height:40px;padding:9px 10px;white-space:nowrap}.dashboard-table tbody tr:hover{background:#98c0ff14}.job-row-clickable{cursor:pointer}.skeleton-row td{animation:skeleton-shimmer 1.25s ease-in-out infinite;background:linear-gradient(90deg,#94a3b814,#94a3b829 50%,#94a3b814);background-size:220% 100%;border-bottom:1px solid #32465f;border-bottom:1px solid var(--border);height:40px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-20% 0}}.mono{font-family:Consolas,SFMono-Regular,Menlo,monospace}.status-pill{border:1px solid #0000;border-radius:999px;border-radius:var(--radius-pill);font-size:12px;font-weight:500;height:22px;padding:0 10px}.status-pill,.status-pill-wrap{align-items:center;display:inline-flex}.status-pill-wrap{position:relative}.status-pill.has-tooltip{cursor:help}.status-pill-tooltip{background:#1a273a;background:var(--panel-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 24px #040a163d;box-shadow:var(--shadow-soft);color:#e5e7eb;color:var(--text-primary);left:0;line-height:1.35;max-width:280px;min-width:190px;padding:8px 10px;position:absolute;top:calc(100% + 8px);white-space:normal;z-index:1300}.status-pill-tooltip-line{display:block}.status-pill-tooltip-meta{color:#9ca3af;color:var(--text-secondary);font-size:12px;margin-top:3px}.status-pill.queued{background:#6b72802e;border-color:#6b728059;color:#cbd5e1}.status-pill.running{background:#3b82f633;border-color:#3b82f666;color:#dbeafe}.status-pill.available,.status-pill.success{background:#22c55e33;border-color:#22c55e66;color:#dcfce7}.status-pill.pc-idle{background:#6b728033;border-color:#6b728059;color:#cbd5e1}.status-pill.pc-busy{background:#f59e0b2e;border-color:#f59e0b59;color:#fde68a}.status-pill.pc-running{background:#22c55e33;border-color:#22c55e66;color:#dcfce7}.status-pill.busy,.status-pill.cancelled,.status-pill.failed,.status-pill.offline{background:#ef444433;border-color:#ef444466;color:#fee2e2}.status-pill.cancelling{background:#f59e0b2e;border-color:#f59e0b59;color:#fde68a}.status-pill.default{background:#6b728033;border-color:#6b728059;color:#d1d5db}:root[data-theme=light] .status-pill.queued{background:#64748b24;border-color:#64748b59;color:#475569}:root[data-theme=light] .status-pill.running{background:#3b82f624;border-color:#3b82f657;color:#1d4ed8}:root[data-theme=light] .status-pill.available,:root[data-theme=light] .status-pill.success{background:#22c55e24;border-color:#22c55e57;color:#166534}:root[data-theme=light] .status-pill.pc-idle{background:#64748b24;border-color:#64748b59;color:#475569}:root[data-theme=light] .status-pill.pc-busy{background:#f59e0b24;border-color:#f59e0b57;color:#b45309}:root[data-theme=light] .status-pill.pc-running{background:#22c55e24;border-color:#22c55e57;color:#166534}:root[data-theme=light] .status-pill.busy,:root[data-theme=light] .status-pill.cancelled,:root[data-theme=light] .status-pill.failed,:root[data-theme=light] .status-pill.offline{background:#ef444424;border-color:#ef444457;color:#b91c1c}:root[data-theme=light] .status-pill.cancelling{background:#f59e0b24;border-color:#f59e0b57;color:#b45309}:root[data-theme=light] .status-pill.default{background:#64748b24;border-color:#64748b57;color:#475569}.pagination{align-items:center;color:#9ca3af;color:var(--text-secondary);display:flex;font-size:12px;gap:10px;justify-content:flex-end;margin-top:10px}.overlay{align-items:flex-start;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#080c169e;display:flex;inset:0;justify-content:center;overflow-y:auto;position:fixed;z-index:10000}.modal,.overlay{padding:16px;padding:var(--space-lg)}.modal{background:#1a273a;background:var(--panel-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-card);box-shadow:0 20px 50px #00000073;max-height:90vh;overflow:auto;width:min(980px,96vw)}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px;margin-bottom:var(--space-sm)}.modal-header h3{font-size:16px;font-weight:600;margin:0}.auth-screen{display:grid;min-height:100vh;padding:16px;padding:var(--space-lg);place-items:center}.auth-card{background:#1a273a;background:var(--panel-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-card);box-shadow:0 10px 24px #040a163d;box-shadow:var(--shadow-soft);padding:20px;text-align:center;width:min(420px,94vw)}.auth-title{font-size:20px;font-weight:600;margin:0 0 6px}.auth-subtitle{color:#9ca3af;color:var(--text-secondary);font-size:13px;margin:0 0 14px}.auth-error{color:#fca5a5;font-size:13px;margin-bottom:10px}.auth-login{gap:8px;width:100%}.auth-login,.ms-logo{align-items:center;display:inline-flex;justify-content:center}.ms-logo{line-height:0}.uploadjob-root{padding:0}.uploadjob-title{font-size:16px;font-weight:600;margin:0 0 12px}.uploadjob-row{align-items:center;display:flex;gap:10px;margin-bottom:10px}.admin-route-toggle{align-items:center;display:inline-flex;gap:8px;margin-right:10px}.admin-route-toggle .btn.active{background:#3b82f62e;border-color:#3b82f673;color:#dbeafe}.admin-page{padding:14px 2px 2px}.admin-panel-card{grid-gap:16px;display:grid;gap:16px;padding:18px}.admin-panel-header{grid-gap:4px;display:grid;gap:4px}.admin-panel-subtitle{color:#9ca3af;color:var(--text-secondary);font-size:13px;margin:0}.admin-agents-card,.admin-release-card{background:color-mix(in srgb,#1a273a 92%,#7c9bc2 8%);background:color-mix(in srgb,var(--panel-bg) 92%,#7c9bc2 8%);border:1px solid #32465f;border:1px solid var(--border);border-radius:12px;padding:14px}.admin-card-title{font-size:14px;font-weight:700;margin-bottom:10px}.admin-release-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.admin-release-dropzone{align-items:center;border-radius:8px;display:inline-flex;height:36px;min-height:36px;overflow:hidden;padding:6px 10px;text-align:left}.admin-release-dropzone strong{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-file-input,.admin-input{background:var(--surface);border:1px solid #32465f;border:1px solid var(--border);border-radius:8px;color:#e5e7eb;color:var(--text-primary);min-height:36px;padding:6px 10px}.admin-input{min-width:240px}.admin-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-specs-cell{color:#9ca3af;color:var(--text-secondary);line-height:1.35;white-space:normal}.admin-empty{opacity:.72;padding:16px 10px}.uploadjob-label{color:#9ca3af;color:var(--text-secondary);font-size:13px;font-weight:600;min-width:84px}.uploadjob-select{padding:8px 10px;width:170px}.uploadjob-input{margin-bottom:10px;padding:10px 12px;width:100%}.uploadjob-run-count{padding:8px 10px;width:120px}.uploadjob-row-agents{align-items:flex-start}.uploadjob-row-agents .uploadjob-label{padding-top:10px}.uploadjob-agent-field{flex:1 1;min-width:0}.uploadjob-agent-picker{background:#1c2a3f;background:var(--control-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-control);margin-bottom:0;overflow:hidden;padding:0}.uploadjob-agent-summary{align-items:center;cursor:pointer;display:flex;justify-content:space-between;list-style:none;min-height:40px;padding:8px 34px 8px 12px;position:relative}.uploadjob-agent-summary::-webkit-details-marker{display:none}.uploadjob-agent-summary:after{border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid #9ca3af;border-top:6px solid var(--text-secondary);content:"";height:0;position:absolute;right:12px;top:50%;transform:translateY(-35%);transition:transform .16s ease;width:0}.uploadjob-agent-picker[open] .uploadjob-agent-summary:after{transform:translateY(-35%) rotate(180deg)}.uploadjob-agent-summary-content{align-items:center;display:flex;flex-wrap:wrap;gap:6px;min-width:0}.uploadjob-agent-summary-default{color:#9ca3af;color:var(--text-secondary);font-size:13px}.uploadjob-agent-chip{background:#3b82f624;border:1px solid #32465f;border:1px solid var(--border);border-radius:999px;color:#e5e7eb;color:var(--text-primary);font-size:12px;line-height:1.2;max-width:220px;overflow:hidden;padding:3px 8px;text-overflow:ellipsis;white-space:nowrap}.uploadjob-agent-chip-more{background:#22324b;background:var(--neutral-light)}.uploadjob-agent-panel{background:#141e302e;border-top:1px solid #32465f;border-top:1px solid var(--border);max-height:220px;overflow-y:auto;padding:10px 12px}.uploadjob-agent-actions{display:flex;gap:8px;margin-bottom:10px}.uploadjob-agent-list{grid-gap:8px;display:grid;gap:8px}.uploadjob-agent-option{align-items:center;color:#e5e7eb;color:var(--text-primary);display:flex;font-size:13px;gap:8px}.uploadjob-agent-option input{accent-color:#4e6d96}.uploadjob-agent-empty{color:#9ca3af;color:var(--text-secondary);font-size:12px}.uploadjob-section-title{color:#9ca3af;color:var(--text-secondary);font-size:13px;font-weight:600;margin:0 0 8px}.uploadjob-command-row{align-items:center;border-bottom:1px solid #32465f;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;padding:4px 0 12px}.uploadjob-readonly{background:#22324b;background:var(--neutral-light);padding:9px 12px}.uploadjob-command-name{padding:9px 12px;width:100px}.uploadjob-command-cmd{padding:9px 12px;width:180px}.uploadjob-command-args{flex:1 1;min-width:240px;padding:9px 12px}.uploadjob-template-cmd{padding:9px 12px;width:190px}.uploadjob-template-args{flex:1 1;min-width:240px;padding:9px 12px}.uploadjob-help-wrap{flex-shrink:0;position:relative}.uploadjob-help-btn{border-radius:50%;font-weight:700;height:28px;line-height:28px;min-width:28px;padding:0;text-align:center;width:28px}.uploadjob-help-btn:active,.uploadjob-help-btn:hover{box-shadow:none;transform:none}.uploadjob-tooltip{background:#1a273a;background:var(--panel-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 24px #040a163d;box-shadow:var(--shadow-soft);color:#e5e7eb;color:var(--text-primary);font-size:12px;line-height:1.4;padding:10px;position:absolute;right:0;top:34px;white-space:normal;width:min(420px,86vw);z-index:10001}.uploadjob-dropzones{display:flex;flex-wrap:wrap;gap:10px}.uploadjob-divider{border-top:1px solid #32465f;border-top:1px solid var(--border);margin:14px 0 12px}.uploadjob-dropzone{background:#0000;border:2px dashed #32465f;border:2px dashed var(--border);border-radius:10px;color:#9ca3af;color:var(--text-secondary);cursor:pointer;flex:1 1;min-width:220px;padding:16px;padding:var(--space-lg);text-align:center;transition:border-color .18s ease,background .18s ease}.uploadjob-dropzone:hover{border-color:#4e6d96}.uploadjob-dropzone.is-filled{background:#3b82f61a;color:#e5e7eb;color:var(--text-primary)}.uploadjob-actions{margin-top:12px}.uploadjob-message{color:#ef4444;color:var(--brand-red);font-size:13px;margin-top:10px}.uploadjob-popup{-webkit-overflow-scrolling:touch;background:#1a273a;background:var(--panel-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 24px #040a163d;box-shadow:var(--shadow-soft);margin:auto 0;max-height:calc(100dvh - 32px);max-height:calc(100dvh - var(--space-lg)*2);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:16px;padding:var(--space-lg);width:min(980px,96vw)}.joblogs-root{width:100%}.toast-stack{grid-gap:12px;bottom:18px;display:grid;gap:12px;position:fixed;right:18px;z-index:20000}.toast-item{grid-gap:12px;align-items:start;border:1px solid #0000;border-radius:8px;box-shadow:0 10px 20px #02081459;color:#f8fafc;display:grid;font-size:13px;gap:12px;grid-template-columns:32px 1fr auto;max-width:430px;min-width:320px;opacity:1;overflow:hidden;padding:12px;position:relative;transform:translateY(0);transition:opacity .22s ease,transform .22s ease}.toast-item:not(.closing){animation:toast-fade-in .2s ease}.toast-item.closing{opacity:0;transform:translateY(8px)}.toast-item.success{background:#47a353;border-color:#65be71}.toast-item.error{background:#cd4146;border-color:#db6267}.toast-item.info{background:#2b6cb0;border-color:#4f86c6}.toast-icon{align-items:center;background:#ffffffe0;border-radius:50%;color:#141820cc;display:inline-flex;height:30px;justify-content:center;width:30px}.toast-content{min-width:0}.toast-title{font-size:20px;font-weight:700;line-height:1.1;margin-bottom:2px}.toast-message{color:#f8fafcf2;font-size:14px;font-weight:500;line-height:1.35}.toast-close{background:#0000;border:none;color:#f8fafcf5;cursor:pointer;font-size:24px;font-weight:700;line-height:1;margin-top:-2px;padding:0}.toast-close:hover{opacity:.82}.toast-spinner{animation:toast-spinner-rotate .8s linear infinite;border:2px solid #1e293b42;border-radius:50%;border-top-color:#1e293be6;height:18px;width:18px}.toast-timer{animation:toast-timer linear forwards;animation-duration:5s;animation-duration:var(--toast-ttl,5s);background:#ffffff42;bottom:0;height:4px;left:0;position:absolute;right:0;transform-origin:left center}@keyframes toast-timer{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes toast-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-spinner-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:760px){.toast-stack{bottom:10px;left:10px;right:10px}.toast-item{gap:10px;max-width:none;min-width:0;padding:12px}.toast-title{font-size:18px}.toast-message{font-size:13px}}.joblogs-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.joblogs-label{color:#9ca3af;color:var(--text-secondary);font-size:12px;font-weight:500}.joblogs-select{font-size:12px;max-width:340px;min-width:170px;padding:7px 10px}.joblogs-terminal-shell{background:#121c2c;background:var(--terminal-bg);border:1px solid #32465f;border:1px solid var(--border);border-radius:10px;box-shadow:inset 0 1px 0 #ffffff05;overflow:hidden}.joblogs-terminal{height:500px;padding:0;width:100%}.xterm,.xterm .xterm-viewport{background:#121c2c!important;background:var(--terminal-bg)!important}@media (max-width:1180px){.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.content-grid{grid-template-columns:1fr}}@media (max-width:860px){.top-nav{grid-template-columns:1fr;height:auto;padding:12px}.jobs-header-tools{justify-content:stretch}.jobs-search-input{width:100%}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.dashboard-root,.panel{padding:8px;padding:var(--space-sm)}.stats-grid{grid-template-columns:1fr}}.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{border:0;height:0;left:-9999em;margin:0;opacity:0;overflow:hidden;padding:0;position:absolute;resize:none;top:0;white-space:nowrap;width:0;z-index:-5}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;bottom:0;cursor:default;left:0;overflow-y:scroll;position:absolute;right:0;top:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{left:0;position:absolute;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;left:-9999em;line-height:normal;position:absolute;top:0;visibility:hidden}.xterm.enable-mouse-events{cursor:default}.xterm .xterm-cursor-pointer,.xterm.xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility,.xterm .xterm-message{bottom:0;color:#0000;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:10}.xterm .live-region{height:1px;left:-9999px;overflow:hidden;position:absolute;width:1px}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:double underline;text-decoration:double underline}.xterm-underline-3{-webkit-text-decoration:wavy underline;text-decoration:wavy underline}.xterm-underline-4{-webkit-text-decoration:dotted underline;text-decoration:dotted underline}.xterm-underline-5{-webkit-text-decoration:dashed underline;text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{position:absolute;z-index:6}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{pointer-events:none;position:absolute;right:0;top:0;z-index:8}.xterm-decoration-top{position:relative;z-index:2}