@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--bg-workspace: #73737b;--bg-window: #aeaaae;--bg-panel: #c6c3c6;--bg-input: #dedede;--bg-selected: #316ac5;--bg-button: #c6c3c6;--bg-button-pressed: #9c9a9c;--bevel-light: #ffffff;--bevel-mid: #dedede;--bevel-dark: #848284;--bevel-shadow: #525052;--text-primary: #000000;--text-secondary: #424242;--text-disabled: #848284;--text-inverse: #ffffff;--text-link: #0000cc;--status-success: #2e7d32;--status-running: #1565c0;--status-queued: #6a6a6a;--status-failed: #c62828;--status-warning: #ef6c00;--space-xs: 2px;--space-sm: 4px;--space-md: 8px;--space-lg: 12px;--space-xl: 16px;--font-mono: "IBM Plex Mono", "Courier New", monospace;--font-size-sm: 11px;--font-size-md: 12px;--font-size-lg: 14px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font-mono);font-size:var(--font-size-md);color:var(--text-primary);background:var(--bg-workspace);line-height:1.4;-webkit-font-smoothing:none;-moz-osx-font-smoothing:unset}.bevel-raised{border:2px solid;border-color:var(--bevel-light) var(--bevel-shadow) var(--bevel-shadow) var(--bevel-light);box-shadow:inset 1px 1px 0 var(--bevel-mid),inset -1px -1px 0 var(--bevel-dark)}.bevel-sunken{border:2px solid;border-color:var(--bevel-shadow) var(--bevel-light) var(--bevel-light) var(--bevel-shadow);box-shadow:inset 1px 1px 0 var(--bevel-dark),inset -1px -1px 0 var(--bevel-mid)}.bevel-groove{border:2px solid;border-color:var(--bevel-dark) var(--bevel-light) var(--bevel-light) var(--bevel-dark)}.bevel-ridge{border:2px solid;border-color:var(--bevel-light) var(--bevel-dark) var(--bevel-dark) var(--bevel-light)}.window{background:var(--bg-window);display:flex;flex-direction:column}.window-title{background:linear-gradient(to bottom,#9c9a9c,#848284);padding:var(--space-sm) var(--space-md);display:flex;align-items:center;gap:var(--space-md);border-bottom:1px solid var(--bevel-shadow);-webkit-user-select:none;user-select:none}.window-title.active{background:linear-gradient(to bottom,#316ac5,#1e4a8c);color:var(--text-inverse)}.window-title-text{font-weight:600;font-size:var(--font-size-md);flex:1;text-transform:uppercase;letter-spacing:1px}.window-controls{display:flex;gap:var(--space-xs)}.window-btn{width:16px;height:16px;background:var(--bg-button);display:flex;align-items:center;justify-content:center;font-size:10px;cursor:pointer}.window-btn:active{background:var(--bg-button-pressed)}.window-content{flex:1;overflow:auto;background:var(--bg-panel)}.panel{background:var(--bg-panel);padding:var(--space-md)}.panel-header{font-weight:600;font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--bevel-dark)}.frame{background:var(--bg-panel);padding:var(--space-md);padding-top:var(--space-xl);margin:var(--space-sm);margin-top:calc(var(--space-sm) + .5em)}.frame-label{position:absolute;top:-.6em;left:var(--space-md);background:var(--bg-panel);padding:0 var(--space-sm);font-size:var(--font-size-sm);font-weight:500}.frame.bevel-groove{position:relative}.btn{font-family:var(--font-mono);font-size:var(--font-size-md);padding:var(--space-sm) var(--space-lg);background:var(--bg-button);color:var(--text-primary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-width:80px;text-transform:uppercase;font-weight:500;letter-spacing:.5px}.btn:hover{background:var(--bevel-mid)}.btn:active,.btn.active{background:var(--bg-button-pressed);border-color:var(--bevel-shadow) var(--bevel-light) var(--bevel-light) var(--bevel-shadow);box-shadow:inset 1px 1px 0 var(--bevel-dark),inset -1px -1px 0 var(--bevel-mid)}.btn:disabled{color:var(--text-disabled);cursor:not-allowed}.btn-primary{background:var(--bg-selected);color:var(--text-inverse);border-color:#4a7fd4 var(--bevel-shadow) var(--bevel-shadow) #4a7fd4}.btn-primary:hover{background:#4080d0}.btn-danger{background:#c62828;color:var(--text-inverse);border-color:#e05050 var(--bevel-shadow) var(--bevel-shadow) #e05050}.btn-small{padding:var(--space-xs) var(--space-md);min-width:60px;font-size:var(--font-size-sm)}.input{font-family:var(--font-mono);font-size:var(--font-size-md);padding:var(--space-sm) var(--space-md);background:var(--bg-input);color:var(--text-primary);width:100%}.input:focus{outline:none;background:#fff}.input:disabled{background:var(--bg-panel);color:var(--text-disabled)}.input-inline{background:transparent;border:none;box-shadow:none;padding:var(--space-xs)}.input-inline:focus{background:var(--bg-input)}.label{font-size:var(--font-size-sm);font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:var(--space-xs);display:block}.field{margin-bottom:var(--space-md)}.checkbox{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer}.checkbox-box{width:14px;height:14px;background:var(--bg-input);display:flex;align-items:center;justify-content:center;font-size:10px}.checkbox-box.checked:after{content:"X";font-weight:700}.table-container{overflow:auto;background:var(--bg-input)}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.table th{background:var(--bg-button);padding:var(--space-sm) var(--space-md);text-align:left;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--bevel-dark);position:sticky;top:0;white-space:nowrap}.table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--bevel-mid);vertical-align:middle}.table tr:hover td{background:#316ac51a}.table tr.selected td{background:#e6d96e;color:var(--text-primary)}.table-clickable tr{cursor:pointer}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table th.sortable:hover{background:var(--bevel-mid)}.table th.sorted{background:var(--bevel-mid);color:#316ac5}.status{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);font-size:var(--font-size-sm);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-dot{width:8px;height:8px;border-radius:0}.status-queued{color:var(--status-queued)}.status-queued .status-dot{background:var(--status-queued)}.status-claimed{color:var(--status-warning)}.status-claimed .status-dot{background:var(--status-warning)}.status-running{color:var(--status-running)}.status-running .status-dot{background:var(--status-running);animation:blink 1s infinite}.status-succeeded{color:var(--status-success)}.status-succeeded .status-dot{background:var(--status-success)}.status-failed{color:var(--status-failed)}.status-failed .status-dot{background:var(--status-failed)}.status-canceled{color:var(--text-disabled)}.status-canceled .status-dot{background:var(--text-disabled)}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.toggle{display:inline-flex;align-items:center;gap:var(--space-sm);cursor:pointer}.toggle-track{width:36px;height:18px;background:var(--bg-button-pressed);position:relative;box-sizing:border-box}.toggle-track.active{background:var(--status-success)}.toggle-thumb{position:absolute;width:10px;height:10px;background:var(--bg-button);top:50%;left:2px;transform:translateY(-50%);transition:left .1s;box-sizing:border-box}.toggle-track.active .toggle-thumb{left:calc(100% - 14px)}.tabs{display:flex;background:var(--bg-window);padding:var(--space-sm) var(--space-sm) 0;gap:2px}.tab{padding:var(--space-sm) var(--space-lg);background:var(--bg-button-pressed);cursor:pointer;font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.5px;border:2px solid;border-color:var(--bevel-light) var(--bevel-shadow) transparent var(--bevel-light);border-bottom:none;position:relative;top:2px}.tab:hover{background:var(--bg-button)}.tab.active{background:var(--bg-panel);border-color:var(--bevel-light) var(--bevel-shadow) var(--bg-panel) var(--bevel-light);z-index:1}.tab-content{background:var(--bg-panel);border-top:2px solid var(--bevel-light)}.toolbar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);background:var(--bg-window);border-bottom:1px solid var(--bevel-dark)}.toolbar-separator{width:2px;height:20px;margin:0 var(--space-sm)}.toolbar-spacer{flex:1}.statusbar{display:flex;align-items:center;padding:var(--space-xs) var(--space-md);background:var(--bg-window);border-top:1px solid var(--bevel-light);font-size:var(--font-size-sm);gap:var(--space-lg)}.statusbar-section{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);background:var(--bg-panel)}.statusbar-section:first-child{flex:1}::-webkit-scrollbar{width:16px;height:16px}::-webkit-scrollbar-track{background:var(--bg-window);border:1px solid var(--bevel-dark)}::-webkit-scrollbar-thumb{background:var(--bg-button);border:2px solid;border-color:var(--bevel-light) var(--bevel-shadow) var(--bevel-shadow) var(--bevel-light)}::-webkit-scrollbar-thumb:hover{background:var(--bevel-mid)}::-webkit-scrollbar-button{background:var(--bg-button);border:2px solid;border-color:var(--bevel-light) var(--bevel-shadow) var(--bevel-shadow) var(--bevel-light);height:16px;width:16px}::-webkit-scrollbar-corner{background:var(--bg-window)}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.p-sm{padding:var(--space-sm)}.p-lg{padding:var(--space-lg)}.m-sm{margin:var(--space-sm)}.m-md{margin:var(--space-md)}.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:10px}.text-muted{color:var(--text-secondary)}.text-error{color:var(--status-failed)}.text-success{color:var(--status-success)}.text-right{text-align:right}.font-bold{font-weight:600}.uppercase{text-transform:uppercase}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.led{width:10px;height:6px;background:#400;border:1px solid #000}.led.on{background:red;box-shadow:0 0 4px red}.led.green.on{background:#0f0;box-shadow:0 0 4px #0f0}.json-editor{position:relative;font-family:var(--font-mono);font-size:11px;line-height:1.4;background:var(--bg-panel)}.json-highlight{position:absolute;top:0;left:0;right:0;bottom:0;padding:var(--space-sm);margin:0;overflow:auto;pointer-events:none;white-space:pre-wrap;word-wrap:break-word;color:var(--text-primary)}.json-textarea{display:block;width:100%;padding:var(--space-sm);margin:0;border:none;background:transparent;color:transparent;caret-color:var(--text-primary);font:inherit;line-height:inherit;resize:vertical;white-space:pre-wrap;word-wrap:break-word;outline:none}.json-string{color:#234b8a}.json-number{color:#1a6e1a}.json-keyword{color:#c60}.json-error{position:absolute;bottom:var(--space-xs);right:var(--space-sm);font-size:10px;color:var(--status-failed);background:var(--bg-panel);padding:2px 6px}.editable{cursor:text;padding:var(--space-xs);border:1px dashed transparent}.editable:hover{border-color:var(--bevel-dark);background:#ffffff4d}.editable:focus-within{border:1px solid var(--bg-selected);background:var(--bg-input)}.editable input{background:transparent;border:none;outline:none;font:inherit;color:inherit;width:100%}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal,.modal-content{background:var(--bg-window);min-width:300px;max-width:90vw;max-height:90vh;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;padding:var(--space-sm) var(--space-md);background:linear-gradient(to bottom,#316ac5,#1e4a8c);color:var(--text-inverse)}.modal-title{flex:1;font-weight:600;text-transform:uppercase;letter-spacing:1px}.modal-close{background:var(--bg-button);border:2px solid;border-color:var(--bevel-light) var(--bevel-shadow) var(--bevel-shadow) var(--bevel-light);width:20px;height:20px;font-size:10px;cursor:pointer;color:var(--text-primary);display:flex;align-items:center;justify-content:center}.modal-close:hover{background:var(--bevel-mid)}.modal-body{padding:var(--space-lg);background:var(--bg-panel);overflow:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md);background:var(--bg-window);border-top:1px solid var(--bevel-dark)}.infra-sections{display:flex;flex-direction:column;gap:var(--space-sm)}.infra-section{padding:var(--space-sm) var(--space-md);background:var(--bg-input);border:1px solid var(--bevel-dark)}.infra-section-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);margin-bottom:var(--space-xs)}.infra-grid{display:grid;grid-template-columns:70px 1fr;gap:2px var(--space-sm);font-size:var(--font-size-sm)}.infra-label{color:var(--text-secondary)}.infra-value{color:var(--text-primary);word-break:break-all}.stats-row{display:flex;gap:var(--space-sm)}.stat-box-sm{display:flex;flex-direction:column;align-items:center;padding:var(--space-xs) var(--space-md);background:var(--bg-panel);border:1px solid var(--bevel-dark);min-width:50px}.stat-value-sm{font-size:14px;font-weight:600}.stat-label-sm{font-size:8px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.text-green{color:var(--status-success)}.text-blue{color:var(--status-running)}.text-red{color:var(--status-failed)}.text-orange{color:var(--status-warning)}.p-md{padding:var(--space-md)}.text-center{text-align:center}.led.blue.on{background:#0af;box-shadow:0 0 4px #0af}.led.orange.on{background:#f90;box-shadow:0 0 4px #f90}.versions-list{display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-sm)}.version-row{display:flex;justify-content:space-between;gap:var(--space-md)}.version-name{color:var(--text-secondary)}.version-info{color:var(--text-primary)}.logs-modal{width:700px;max-width:90vw;height:500px;max-height:80vh}.logs-body{flex:1;overflow:hidden;display:flex;flex-direction:column}.logs-unavailable{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:var(--space-xl);text-align:center}.logs-container{display:flex;flex-direction:column;height:100%}.logs-header{display:flex;justify-content:space-between;padding:var(--space-xs) var(--space-sm);background:var(--bg-window);border-bottom:1px solid var(--bevel-dark)}.logs-content{flex:1;overflow:auto;background:#1a1a1a;font-family:var(--font-mono);font-size:10px;line-height:1.4;padding:var(--space-sm)}.log-entry{display:flex;gap:var(--space-sm);padding:1px 0}.log-time{color:#666;flex-shrink:0}.log-message{color:#0f0;word-break:break-all}.log-error .log-message{color:#ff6b6b}.log-warning .log-message{color:orange}.log-debug .log-message{color:#666}.config-modal{width:auto;max-width:90vw;max-height:80vh}.config-modal .modal-body{padding:0}.config-json{background:#1a1a1a;color:#0f0;font-family:var(--font-mono);font-size:11px;line-height:1.5;padding:var(--space-md);margin:0;overflow:auto;white-space:pre;max-height:60vh;min-width:400px}.toast{position:fixed;bottom:var(--space-lg);right:var(--space-lg);padding:var(--space-md) var(--space-lg);background:var(--bg-panel);z-index:1001;animation:slideIn .2s ease-out}.toast-error{border-left:4px solid var(--status-failed)}.toast-success{border-left:4px solid var(--status-success)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.cron-display{font-family:var(--font-mono);background:var(--bg-input);padding:var(--space-sm) var(--space-md);display:inline-block}
