*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0f172a;color:#e2e8f0;min-height:100vh}.app{max-width:1400px;margin:0 auto;padding:24px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid #1e293b}header h1{font-size:28px;font-weight:700;color:#f8fafc}.health-badge{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:24px;font-size:14px;font-weight:500}.health-badge.healthy{background:#22c55e26;color:#22c55e}.health-badge.unhealthy{background:#ef444426;color:#ef4444}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.stat-card{background:#1e293b;border-radius:12px;padding:20px}.stat-card .label{font-size:13px;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.stat-card .value{font-size:32px;font-weight:700;color:#f8fafc}.tabs{display:flex;gap:8px;margin-bottom:24px}.tab{padding:10px 20px;border:none;background:transparent;color:#94a3b8;font-size:14px;font-weight:500;cursor:pointer;border-radius:8px;transition:all .2s}.tab:hover{background:#1e293b;color:#e2e8f0}.tab.active{background:#3b82f6;color:#fff}.pipeline-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:16px}.pipeline-card{background:#1e293b;border-radius:12px;padding:20px;transition:all .2s}.pipeline-card:hover{background:#253147}.pipeline-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.pipeline-name{font-size:16px;font-weight:600;color:#f8fafc}.pipeline-status{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.pipeline-status.enabled{background:#22c55e26;color:#22c55e}.pipeline-status.disabled{background:#ef444426;color:#ef4444}.pipeline-description{font-size:13px;color:#94a3b8;margin-bottom:16px;line-height:1.5}.pipeline-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;padding:12px;background:#0f172a;border-radius:8px}.meta-item{font-size:12px}.meta-label{color:#64748b;margin-bottom:2px}.meta-value{color:#e2e8f0;font-weight:500}.pipeline-actions{display:flex;gap:8px}.btn{padding:8px 16px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover{background:#2563eb}.btn-primary:disabled{background:#475569;cursor:not-allowed}.btn-secondary{background:#334155;color:#e2e8f0}.btn-secondary:hover{background:#475569}.btn-danger{background:#ef444426;color:#ef4444}.btn-danger:hover{background:#ef444440}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#1e293b;border-radius:16px;padding:24px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal h2{font-size:20px;font-weight:600;margin-bottom:20px;color:#f8fafc}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:500;color:#94a3b8;margin-bottom:6px}.form-group input,.form-group select{width:100%;padding:10px 12px;border:1px solid #334155;border-radius:8px;background:#0f172a;color:#e2e8f0;font-size:14px}.form-group input:focus,.form-group select:focus{outline:none;border-color:#3b82f6}.form-hint{font-size:12px;color:#64748b;margin-top:4px}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.history-table{width:100%;background:#1e293b;border-radius:12px;overflow:hidden}.history-table table{width:100%;border-collapse:collapse}.history-table th,.history-table td{padding:14px 16px;text-align:left;border-bottom:1px solid #334155}.history-table th{background:#0f172a;font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.history-table td{font-size:14px;color:#e2e8f0}.history-table tr:last-child td{border-bottom:none}.status-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.status-badge.success{background:#22c55e26;color:#22c55e}.status-badge.failed{background:#ef444426;color:#ef4444}.status-badge.running{background:#3b82f626;color:#3b82f6}.spinner{width:16px;height:16px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:60px 20px;color:#64748b}.empty-state h3{font-size:18px;margin-bottom:8px;color:#94a3b8}.cron-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.cron-preset{padding:6px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;font-size:12px;color:#94a3b8;cursor:pointer;transition:all .2s}.cron-preset:hover{border-color:#3b82f6;color:#3b82f6}.cron-preset.active{background:#3b82f626;border-color:#3b82f6;color:#3b82f6}.time-picker{display:flex;align-items:center;gap:8px}.time-picker select{width:auto;min-width:70px}.time-separator{font-size:18px;font-weight:600;color:#94a3b8}.period-select{min-width:65px!important}.schedule-preview{background:#0f172a;border:1px solid #334155;border-radius:8px;padding:12px 16px;margin-top:16px;font-size:14px;color:#e2e8f0}.schedule-preview strong{color:#94a3b8;margin-right:8px}@media (max-width: 768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.pipeline-grid{grid-template-columns:1fr}}
