html,body{margin:0;padding:0;min-height:100vh}#root{min-height:100vh;width:100%}:root{--bg-color: #000;--text-color: #fff;--accent-color: #ccc;--border-color: #444;--font-family: "Courier New", Courier, monospace;--glass-bg: rgba(17, 17, 17, .8);--glass-border: rgba(68, 68, 68, .5);--hover-bg: rgba(68, 68, 68, .2)}*{box-sizing:border-box}body{margin:0;padding:0;background:var(--bg-color);color:var(--text-color);font-family:var(--font-family);font-size:14px;line-height:1.4}.sidebar{background:var(--glass-bg);border-right:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-height:100vh;padding:16px}.main{padding:24px;flex:1}h1,h2,h3,h4,h5,h6{font-family:var(--font-family);margin:0 0 16px;font-weight:400}h1{font-size:24px}h2{font-size:20px}h3{font-size:16px}button{background:var(--glass-bg);border:1px solid var(--accent-color);color:var(--text-color);padding:8px 16px;cursor:pointer;font-family:var(--font-family);font-size:14px;border-radius:4px;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:hidden}button:hover{background:var(--hover-bg);border-color:var(--text-color);transform:translateY(-1px);box-shadow:0 2px 8px #cccccc1a}button:active{transform:translateY(0);box-shadow:none}button:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}button.primary{background:linear-gradient(45deg,var(--accent-color),#fff);color:var(--bg-color);border-color:var(--text-color);font-weight:700}button.primary:hover{background:linear-gradient(45deg,#fff,var(--accent-color))}button.editor-button{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:6px 12px}button.editor-button.primary{font-weight:600}ul{list-style:none;padding:0;margin:0}li{margin:8px 0}.editor{background:var(--bg-color);color:var(--text-color);font-family:var(--font-family);font-size:13px;border:1px solid var(--border-color);border-radius:4px;padding:16px;min-height:400px;resize:vertical;width:100%}.editor-shell{display:flex;flex-direction:column;gap:12px}.editor-toolbar{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.editor-viewer{border:1px solid var(--border-color);border-radius:6px;background:var(--bg-color);padding:16px;max-height:60vh;overflow:auto;text-align:left}.editor-surface{position:relative;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-color);min-height:420px;max-height:65vh;overflow:hidden}.editor-highlight{pointer-events:none;font-family:var(--font-family);font-size:13px;color:var(--text-color);padding:16px;min-height:420px;max-height:65vh;overflow:auto;white-space:pre-wrap;word-break:break-word;line-height:1.5}.editor-textarea{position:absolute;inset:0;width:100%;height:100%;border:none;resize:none;background:transparent;color:transparent;text-shadow:none;caret-color:var(--text-color);font-family:var(--font-family);font-size:13px;line-height:1.5;padding:16px;white-space:pre-wrap;overflow:auto}.editor-textarea:focus{outline:none}.editor-surface:focus-within{border-color:var(--accent-color);box-shadow:0 0 0 2px #cccccc26}.editor-footer{display:flex;justify-content:space-between;font-size:11px;color:var(--accent-color);gap:12px}.editor-feedback{color:#ff7b7b}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:8px;position:relative;box-shadow:0 0 4px #0000004d;transition:all .3s ease}.status-dot.success{background:#0f0}.status-dot.running{background:#ff0}.status-dot.failed{background:red}.status-dot.pending{background:var(--accent-color);opacity:.7}.archived-badge{display:inline-block;font-size:10px;padding:2px 6px;margin-left:8px;border-radius:4px;background:var(--hover-bg);border:1px solid var(--border-color);color:var(--accent-color);vertical-align:middle}.tooltip-trigger{position:relative}.tooltip-trigger[data-tooltip]:hover:after,.tooltip-trigger[data-tooltip]:focus:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#000000d9;color:#fff;padding:6px 10px;border-radius:4px;white-space:pre-line;font-size:11px;line-height:1.4;max-width:220px;pointer-events:none;box-shadow:0 6px 16px #00000059;z-index:10}.tooltip-trigger[data-tooltip]:hover:before,.tooltip-trigger[data-tooltip]:focus:before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#000000d9;z-index:10}.task-item:hover .status-dot.success,.card:hover .status-dot.success,.output-item:hover .status-dot.success{animation:pulse-success 2s infinite}.task-item:hover .status-dot.running,.card:hover .status-dot.running,.output-item:hover .status-dot.running{animation:pulse-running 1s infinite}.task-item:hover .status-dot.failed,.card:hover .status-dot.failed,.output-item:hover .status-dot.failed{animation:pulse-failed 2s infinite}@keyframes pulse-success{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}@keyframes pulse-running{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}@keyframes pulse-failed{0%,to{opacity:1}50%{opacity:.6}}.table{width:100%;border-collapse:collapse;font-family:var(--font-family);margin:16px 0}.table th,.table td{border:1px solid var(--border-color);padding:12px 16px;text-align:left}.table th{background:var(--glass-bg);font-weight:400}.table tr:nth-child(2n){background:#1111114d}.card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;padding:16px;margin:16px 0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:2px;background:linear-gradient(90deg,transparent,var(--accent-color),transparent);opacity:0;transition:opacity .3s ease}.card:hover:before{animation:shimmer 3s infinite;opacity:1}@keyframes shimmer{0%{left:-100%}to{left:100%}}.card:hover{border-color:var(--accent-color);transform:translateY(-2px);box-shadow:0 4px 12px #4443}.task-section{margin-bottom:32px}.task-list{display:grid;gap:8px}.task-item{display:flex;align-items:center;justify-content:space-between;padding:12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:4px;cursor:pointer;transition:all .2s ease}.task-item:hover{background:var(--hover-bg);border-color:var(--accent-color)}.task-info{display:flex;align-items:center;flex:1}.task-meta{font-size:12px;color:var(--accent-color);margin-left:auto;margin-right:16px}.program-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin:16px 0}.program-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;padding:20px;cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.program-card:hover{background:var(--hover-bg);border-color:var(--accent-color);transform:translateY(-2px)}.output-list-container{max-height:320px;overflow-y:auto;padding-right:4px}.output-list-container--expanded{max-height:none}.output-list{display:flex;flex-direction:column;gap:12px}.output-item{display:flex;flex-direction:column;gap:12px;align-items:stretch;padding:12px 16px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:6px;transition:all .2s ease;word-break:break-word}.output-item__header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.output-item__title{display:flex;align-items:flex-start;gap:12px;flex:1}.output-item__badge{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;border-radius:4px;font-size:11px;font-weight:600;border:1px solid var(--border-color);background:var(--hover-bg);color:var(--text-color);text-transform:uppercase}.output-item__meta{flex:1;display:flex;flex-direction:column;gap:4px}.output-item__filename{font-size:13px;font-weight:700}.output-item__job{font-size:11px;color:var(--accent-color)}.output-item__details{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));font-size:11px;color:var(--accent-color);border-top:1px solid var(--border-color);padding-top:12px}.output-item__actions{display:flex;gap:8px;align-items:center}.output-item--compact{flex-direction:row;align-items:center;justify-content:space-between}.output-item--compact .output-item__filename{font-size:12px}.output-item--compact .output-item__actions{justify-content:flex-end}.output-error{border-color:red;background:#ff00001a}.log-controls{display:flex;flex-direction:column;gap:12px}.log-filter-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-start}.filter-group{display:flex;flex-direction:column;gap:6px;min-width:180px;flex:1}.filter-label{font-size:12px;color:var(--accent-color);text-transform:uppercase;letter-spacing:.02em}.chip-group{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid var(--border-color);background:var(--glass-bg);color:var(--text-color);padding:6px 10px;font-size:12px;border-radius:999px;cursor:pointer;transition:all .2s ease}.chip--active{border-color:var(--accent-color);background:var(--hover-bg);box-shadow:0 0 0 1px var(--accent-color)}.log-search-input{background:var(--bg-color);border:1px solid var(--border-color);color:var(--text-color);padding:8px 10px;border-radius:4px;min-width:240px;font-family:var(--font-family)}.log-search-input:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 1px var(--accent-color)}.toggle{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--text-color);cursor:pointer}.toggle input{accent-color:var(--accent-color);cursor:pointer}.toggle-group{justify-content:flex-start;align-items:flex-start;flex:0 0 260px}.helper-text{font-size:11px;color:var(--accent-color);margin-left:26px;line-height:1.4}.log-panel{display:flex;flex-direction:column;gap:12px}.log-panel__header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.log-viewer{background:var(--bg-color);border:1px solid var(--border-color);border-radius:8px;font-family:var(--font-family);font-size:12px;max-height:70vh;overflow:hidden}.log-viewer--loading,.log-viewer--empty{padding:20px;text-align:center;color:var(--accent-color)}.log-entries{overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:12px 14px;max-height:70vh}.log-entry{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:6px;padding:10px 12px;display:grid;gap:6px}.log-entry__meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--accent-color)}.log-time{color:var(--text-color);font-weight:600}.log-level{border:1px solid var(--border-color);padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.log-level-info{border-color:#3fa9f5;color:#3fa9f5}.log-level-warning{border-color:#ffb347;color:#ffb347}.log-level-error{border-color:#ff7b7b;color:#ff7b7b}.log-level-debug{border-color:#b39ddb;color:#b39ddb}.log-level-critical{border-color:#ff4081;color:#ff4081}.log-level-unknown{border-color:var(--border-color);color:var(--accent-color)}.log-source{border:1px solid var(--border-color);padding:3px 8px;border-radius:10px;background:var(--hover-bg);color:var(--text-color)}.log-message{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;color:var(--text-color)}.log-error{padding:10px 12px;border:1px solid #ff7b7b;background:#ff7b7b14;border-radius:6px;color:#ffb3b3;font-size:12px}.loading-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--glass-border);border-radius:50%;border-top-color:var(--accent-color)}.loading-spinner.active{animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-dots:after{content:"..."}.loading-dots.active:after{animation:loading-dots 1.5s infinite}.task-item:hover .loading-spinner,.card:hover .loading-spinner,button:hover .loading-spinner,button:focus .loading-spinner{animation:spin 1s ease-in-out infinite}.task-item:hover .loading-dots,.card:hover .loading-dots,button:hover .loading-dots,button:focus .loading-dots{animation:loading-dots 1.5s infinite}@keyframes loading-dots{0%,20%{color:transparent;text-shadow:.25em 0 0 transparent,.5em 0 0 transparent}40%{color:var(--text-color);text-shadow:.25em 0 0 transparent,.5em 0 0 transparent}60%{text-shadow:.25em 0 0 var(--text-color),.5em 0 0 transparent}80%,to{text-shadow:.25em 0 0 var(--text-color),.5em 0 0 var(--text-color)}}.output-item:hover{background:var(--hover-bg);transform:translate(4px)}.editor pre{background:transparent!important;margin:0!important;padding:0!important}.script-failure{margin-top:16px;padding:16px;border-radius:6px;border:1px solid rgba(255,123,123,.5);background:#ff7b7b14;display:flex;flex-direction:column;gap:12px}.script-failure__header{display:flex;align-items:center;gap:12px}.script-failure__title{display:flex;flex-direction:column;gap:4px}.script-failure__label{font-weight:700;font-size:13px}.script-failure__time{font-size:11px;color:var(--accent-color)}.script-failure__summary{margin:0;line-height:1.5;font-size:13px}.script-failure__list{margin:0;padding-left:18px;font-size:12px;color:var(--accent-color)}.script-failure__list li{margin-bottom:4px}.script-failure__actions{display:flex;justify-content:flex-end}.download-feedback{margin-bottom:12px;font-size:12px;color:#ff7b7b}@media(max-width:768px){.sidebar{width:100%!important;min-height:auto;border-right:none;border-bottom:1px solid var(--border-color)}.program-grid{grid-template-columns:1fr}.card{margin:8px 0;padding:12px}.log-filter-row,.log-panel__header{flex-direction:column;align-items:flex-start}.log-search-input{min-width:100%;width:100%}.toggle-group{align-items:flex-start;flex:1;width:100%}}
