:root{--bg: #f5f7fb;--panel: #ffffff;--text: #0f172a;--muted: #475569;--border: #d8dee9;--primary: #0f766e;--danger: #b91c1c}*{box-sizing:border-box}body{margin:0;font-family:IBM Plex Sans,Noto Sans,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(circle at top right,#d6f4ef 0%,var(--bg) 45%)}.layout{max-width:1200px;margin:24px auto;padding:0 16px;display:grid;grid-template-columns:1fr;gap:16px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:0 8px 24px #0f172a0f}h1,h2,h3{margin:0 0 8px}p{margin:8px 0;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.auth-row{margin:8px 0 12px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px dashed var(--border);border-radius:10px;background:#f8fbff}.auth-actions{display:flex;gap:8px}.input-row{grid-column:1 / -1;display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:10px;border:1px dashed var(--border);border-radius:12px;background:#f9fcff}.source-inline{grid-column:1 / -1;display:grid;grid-template-columns:minmax(180px,260px) minmax(320px,1fr);gap:10px;align-items:end}.source-type-field,.source-value-field{min-width:0}.source-type-field select,.source-value-field input{width:100%}.compact-field{min-width:160px}.compact-field.grow{flex:1 1 360px}.compact-field.narrow{width:170px}label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:var(--text)}input,select,button{font:inherit;border-radius:10px;border:1px solid var(--border);padding:10px 12px}button{cursor:pointer;background:#fff}.ghost-btn{background:#fff;border:1px solid var(--border)}.danger-btn{background:#fff;color:var(--danger);border:1px solid #fecaca}.actions{display:flex;align-items:end;gap:8px}.actions button[type=submit]{background:var(--primary);color:#fff;border:none}.checkbox{flex-direction:row;align-items:center;gap:8px;margin-top:24px}.job-list{display:grid;grid-template-columns:1fr;gap:10px}.card{border:1px solid var(--border);border-radius:12px;padding:12px;background:#fff}.job-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.job-header-main{min-width:0}.job-header-main h3{overflow-wrap:anywhere}.job-header-main p{margin:4px 0 0}.job-header-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.job-expanded-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.job-expanded-head p{margin:8px 0;overflow-wrap:anywhere}.job-detail-table-wrap{margin:8px 0 10px;border:1px solid var(--border);border-radius:10px;overflow-x:auto;background:#fbfdff}.job-detail-table{width:100%;min-width:720px;border-collapse:collapse;table-layout:fixed}.job-detail-table th,.job-detail-table td{padding:8px 10px;border-top:1px solid var(--border);vertical-align:top;font-size:13px}.job-detail-table tr:first-child th,.job-detail-table tr:first-child td{border-top:none}.job-detail-table th{width:16%;background:#f3f8fc;color:#0f172a;text-align:left;font-weight:700}.job-detail-table td{width:34%;color:#334155;overflow-wrap:anywhere}.job-detail-table .summary-cell{white-space:pre-wrap}.badge{padding:3px 8px;border-radius:999px;font-size:12px;text-transform:uppercase;font-weight:700}.badge.pending,.badge.running{background:#fef3c7;color:#92400e}.badge.succeeded{background:#dcfce7;color:#166534}.badge.failed{background:#fee2e2;color:#991b1b}.blocked{color:#991b1b;font-weight:600}.outputs{display:grid;gap:6px}.video-embed{margin:10px 0 12px}.job-video-player{width:100%;max-width:420px;aspect-ratio:9 / 16;border-radius:12px;background:#020617;border:1px solid var(--border)}.outputs a{color:#1d4ed8;text-decoration:none}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:block;overflow-wrap:anywhere;color:#1f2937}.publish-box{margin-top:10px;display:grid;gap:8px;border-top:1px dashed var(--border);padding-top:10px}.publish-result{white-space:pre-wrap;background:#f8fafc;color:#0f172a;border:1px solid var(--border);border-radius:8px;padding:10px;overflow-x:auto;max-height:220px}.error-box{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-width:100%;background:#fef2f2;color:var(--danger);border:1px solid #fecaca;border-radius:8px;padding:10px;overflow-x:auto}@media (max-width: 640px){.layout{margin:12px auto;padding:0 10px}.source-inline{grid-template-columns:1fr}.input-row{flex-direction:column;align-items:stretch}.compact-field,.compact-field.narrow,.compact-field.grow{width:100%;min-width:0;flex:none}.job-header{flex-direction:column}.auth-row{flex-direction:column;align-items:stretch}.job-header-actions{width:100%}.job-detail-table{min-width:0}}
