:root{--bg-base: #0a0a0f;--bg-surface: #12121a;--bg-elevated: #1a1a24;--bg-hover: #22222e;--text-primary: #e0e0e0;--text-muted: #6b6b7a;--text-dim: #4a4a58;--status-success: #22c55e;--status-running: #f59e0b;--status-error: #ef4444;--status-pending: #6b7280;--accent: #3b82f6;--accent-hover: #2563eb;--border: #2a2a3a;--border-focus: #3b82f6;--font-display: "JetBrains Mono", monospace;--font-body: "IBM Plex Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:var(--font-body);font-size:14px;background:var(--bg-base);color:var(--text-primary);line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}.app{min-height:100%;display:flex;flex-direction:column}.header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--bg-surface);border-bottom:1px solid var(--border)}.logo{font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:2px;color:var(--text-primary)}.nav{display:flex;gap:16px;align-items:center}.nav-link{color:var(--text-muted);font-size:13px;transition:color .15s}.nav-link:hover{color:var(--text-primary)}.main{flex:1;padding:24px;max-width:1200px;margin:0 auto;width:100%}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-title{font-family:var(--font-display);font-size:16px;font-weight:500;color:var(--text-primary)}.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;font-family:var(--font-body);font-size:13px;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text-primary);cursor:pointer;transition:all .15s}.btn:hover{background:var(--bg-hover)}.btn-primary{background:var(--accent);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{border-color:var(--status-error);color:var(--status-error)}.btn-danger:hover{background:var(--status-error);color:#fff}.btn-sm{padding:4px 10px;font-size:12px}.job-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.job-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:16px;transition:all .15s;cursor:pointer;animation:fadeIn .3s ease-out;animation-fill-mode:both}.job-card:hover{background:var(--bg-hover);border-color:var(--border-focus)}.job-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px}.job-card-title{display:flex;align-items:center;gap:8px}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.success{background:var(--status-success)}.status-dot.running{background:var(--status-running);animation:pulse 2s ease-in-out infinite}.status-dot.error{background:var(--status-error)}.status-dot.pending{background:var(--status-pending)}.job-id{font-family:var(--font-display);font-size:13px;font-weight:500;color:var(--text-primary)}.job-type{font-size:11px;padding:2px 8px;border-radius:3px;background:var(--bg-elevated);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.job-name{font-size:14px;color:var(--text-muted);margin-bottom:12px}.job-meta{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-dim)}.job-last-run{display:flex;align-items:center;gap:6px}.job-duration{display:flex;align-items:center;gap:4px}.job-card:nth-child(1){animation-delay:0ms}.job-card:nth-child(2){animation-delay:50ms}.job-card:nth-child(3){animation-delay:.1s}.job-card:nth-child(4){animation-delay:.15s}.job-card:nth-child(5){animation-delay:.2s}.job-card:nth-child(6){animation-delay:.25s}.job-card:nth-child(7){animation-delay:.3s}.job-card:nth-child(8){animation-delay:.35s}.job-card:nth-child(9){animation-delay:.4s}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.job-detail{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:24px}.job-detail-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}.job-detail-title{display:flex;align-items:center;gap:12px}.job-detail-id{font-family:var(--font-display);font-size:18px;font-weight:700}.job-detail-name{font-size:14px;color:var(--text-muted);margin-top:4px}.job-actions{display:flex;gap:8px}.job-config{margin-bottom:24px}.config-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.config-item{background:var(--bg-elevated);padding:12px;border-radius:4px}.config-label{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.config-value{font-family:var(--font-display);font-size:13px;color:var(--text-primary);word-break:break-all}.section-title{font-family:var(--font-display);font-size:14px;font-weight:500;margin-bottom:12px;color:var(--text-muted)}.runs-table{width:100%;border-collapse:collapse}.runs-table th,.runs-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}.runs-table th{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim)}.runs-table tr:hover{background:var(--bg-hover)}.runs-table .run-id{font-family:var(--font-display);font-size:12px}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:3px;font-size:11px;font-weight:500;text-transform:uppercase}.status-badge.success{background:#22c55e26;color:var(--status-success)}.status-badge.running{background:#f59e0b26;color:var(--status-running)}.status-badge.error,.status-badge.timeout{background:#ef444426;color:var(--status-error)}.log-output{background:var(--bg-base);border:1px solid var(--border);border-radius:4px;padding:16px;font-family:var(--font-display);font-size:12px;line-height:1.6;overflow-x:auto;max-height:400px;overflow-y:auto}.log-line{display:flex;gap:16px}.log-line-number{color:var(--text-dim);-webkit-user-select:none;user-select:none;min-width:32px;text-align:right}.log-line-content{flex:1;white-space:pre-wrap;word-break:break-all}.log-stderr{color:var(--status-error)}.health-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.health-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:16px}.health-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.health-service{font-family:var(--font-display);font-size:14px;font-weight:500}.health-url{font-size:12px;color:var(--text-dim);word-break:break-all}.health-meta{display:flex;align-items:center;justify-content:space-between;margin-top:12px;font-size:12px;color:var(--text-muted)}.back-link{display:inline-flex;align-items:center;gap:6px;margin-bottom:16px;font-size:13px;color:var(--text-muted)}.back-link:hover{color:var(--text-primary)}.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted)}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.3}.loading{display:flex;align-items:center;justify-content:center;padding:48px;color:var(--text-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease-out}.modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;width:90%;max-width:600px;max-height:90vh;overflow:auto;animation:modalIn .2s ease-out}@keyframes modalIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-title{font-family:var(--font-display);font-size:16px;font-weight:500}.modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:20px;padding:4px}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:20px}.disabled{opacity:.5}.section-divider{height:1px;background:var(--border);margin:32px 0}.tool-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:16px}.tool-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.tool-name{font-family:var(--font-display);font-size:14px;font-weight:500;color:var(--text-primary)}.tool-desc{font-size:13px;color:var(--text-muted);margin-top:2px}.tool-result{margin-top:12px;padding:10px 12px;border-radius:4px;font-size:13px}.tool-result.success{background:#22c55e1a;color:var(--status-success)}.tool-result.error{background:#ef44441a;color:var(--status-error)}.btn.loading{opacity:.7;cursor:wait}.page-desc{color:var(--text-muted);font-size:13px;margin-bottom:24px}.document-list{display:flex;flex-direction:column;gap:8px}.document-card{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:12px 16px}.document-info{flex:1;min-width:0}.document-title{font-family:var(--font-display);font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.document-meta{font-size:12px;color:var(--text-dim);margin-top:2px}.document-tree{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;overflow:hidden}.document-node{border-bottom:1px solid var(--border)}.document-node:last-child{border-bottom:none}.document-row{display:flex;align-items:center;gap:8px;padding:10px 12px}.document-row:hover{background:var(--bg-hover)}.expand-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0;width:16px;font-size:10px}.expand-btn:hover{color:var(--text-primary)}.expand-placeholder{width:16px}.document-children{border-top:1px solid var(--border)}@media(max-width:640px){.header{flex-direction:column;gap:12px}.job-grid{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start;gap:12px}.main{padding:16px}}
