:root{color:#1f2937;background:#f6f7f9;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0}a{color:#0f766e;text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100dvh}.side-nav{background:#111827;color:#f9fafb;padding:24px 18px}.brand-mark{border:1px solid rgba(249,250,251,.2);border-radius:8px;font-weight:800;letter-spacing:0;padding:12px;width:fit-content}.side-nav nav{display:grid;gap:6px;margin-top:32px}.nav-logout{background:#374151;margin-top:24px;width:100%}.nav-logout:hover{background:#4b5563}.side-nav a,.side-nav button{background:transparent;border:0;border-radius:8px;color:#cbd5e1;font-size:14px;font-weight:700;height:auto;justify-content:flex-start;padding:10px 12px;text-align:left}.side-nav a.active,.side-nav a:hover,.side-nav button.active,.side-nav button:hover{background:#1f2937;color:#fff;text-decoration:none}.side-nav a[aria-disabled=true]{color:#64748b;cursor:default}.workspace{min-width:0;padding:28px}.login-shell{align-items:center;background:#f6f7f9;display:grid;min-height:100dvh;padding:24px}.login-panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:grid;gap:18px;margin:0 auto;max-width:420px;padding:28px;width:100%}.login-panel label{color:#475569;display:grid;font-size:12px;font-weight:800;gap:6px}.compact-state{padding:0}.page-header{align-items:end;display:flex;gap:20px;justify-content:space-between;margin:0 auto;max-width:1280px}.eyebrow{color:#0f766e;font-size:13px;font-weight:700;margin:0 0 8px}h1{font-size:30px;letter-spacing:0;line-height:1.2;margin:0}.subcopy{color:#64748b;margin:8px 0 0}.header-actions{display:flex;gap:10px}.header-actions select{min-width:180px}input{background:#fff;border:1px solid #d8dee8;border-radius:8px;color:#111827;font-size:14px;height:40px;min-width:260px;padding:0 12px}select{background:#fff;border:1px solid #d8dee8;border-radius:8px;color:#111827;font-size:14px;height:40px;padding:0 12px;width:100%}button{background:#0f766e;border:0;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:800;height:40px;padding:0 14px}button:hover{background:#115e59}button:disabled{background:#94a3b8;cursor:not-allowed}button.secondary{background:#e2e8f0;color:#334155}button.secondary:hover{background:#cbd5e1}.doc-link{align-items:center;background:#0f766e;border-radius:8px;color:#fff;display:inline-flex;font-weight:700;height:40px;padding:0 14px}.doc-link:hover{background:#115e59;text-decoration:none}.metrics-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:24px auto;max-width:1280px}.dashboard-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 auto 16px;max-width:1280px}.binding-grid{display:grid;gap:14px;grid-template-columns:320px minmax(0,1fr);margin:24px auto 0;max-width:1280px}.tool-panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:grid;gap:12px;padding:16px}.tool-panel.wide{align-content:start}.tool-panel label{color:#475569;display:grid;font-size:12px;font-weight:800;gap:6px}.tool-panel input{min-width:0;width:100%}.form-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.button-row{display:flex;gap:8px;justify-content:flex-end}.button-row.filters{flex-wrap:wrap;justify-content:flex-start;padding:12px 18px}.row-actions{display:flex;gap:8px}.row-actions button{height:32px;padding:0 10px}.metric{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px}.metric span{color:#64748b;display:block;font-size:13px;margin-bottom:8px}.metric strong{color:#111827;font-size:24px}.table-panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin:0 auto;max-width:1280px;overflow:hidden}.panel-title{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:16px 18px}.panel-title.compact{border-bottom:0;padding:0}.panel-title h2{font-size:16px;margin:0}.panel-title span{color:#64748b;font-size:13px}.segmented{background:#f1f5f9;border-radius:8px;display:flex;gap:4px;padding:4px}.segmented button{background:transparent;color:#475569;font-size:12px;height:30px;padding:0 10px}.segmented button.selected{background:#fff;color:#0f766e}.table-scroll{overflow-x:auto}.content-picker{align-self:start}.content-list{display:grid;gap:1px;max-height:620px;overflow:auto}.content-row{align-items:center;background:#fff;border-radius:0;color:#111827;display:grid;gap:12px;grid-template-columns:56px minmax(0,1fr);height:auto;justify-content:initial;padding:12px 14px;text-align:left}.content-row:hover,.content-row.selected{background:#f1f5f9;color:#111827}.content-row img,.thumb-fallback{aspect-ratio:1;background:#e2e8f0;border-radius:8px;display:block;object-fit:cover;width:56px}.content-row strong,.content-row small,.content-row em{display:block}.content-row strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content-row small{color:#64748b;font-size:12px;margin-top:4px}.content-row em{color:#0f766e;font-size:12px;font-style:normal;font-weight:800;margin-top:6px}table{border-collapse:collapse;min-width:1040px;width:100%}.compact-table{min-width:560px}th,td{border-bottom:1px solid #eef2f7;font-size:14px;padding:13px 14px;text-align:left;vertical-align:top}tr.highlight-row td{background:#fff7ed}th{background:#f8fafc;color:#475569;font-size:12px;font-weight:800}td strong{display:block;font-weight:800}.subtle{color:#64748b;display:block;margin-top:4px}.mono{color:#334155;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;max-width:260px;word-break:break-all}.title-cell{max-width:260px}.version{display:block;white-space:nowrap}.version.muted{color:#64748b;margin-top:4px}.status{background:#fef3c7;border-radius:999px;color:#92400e;display:inline-block;font-size:12px;font-weight:700;padding:5px 9px}.status.ok{background:#dcfce7;color:#166534}.stage-pill{background:#e2e8f0;color:#334155;font-size:12px;height:32px;white-space:nowrap}.stage-pill.due{background:#fef3c7;color:#92400e}.stage-pill.completed{background:#dcfce7;color:#166534}.stage-pill.running,.stage-pill.auth_required{background:#dbeafe;color:#1d4ed8}.stage-pill.skipped,.stage-pill.failed{background:#fee2e2;color:#991b1b}.state{color:#64748b;padding:28px}.state.danger{color:#b91c1c}.auth-alert{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin:24px auto 0;max-width:1280px}.chart{height:260px;width:100%}.model-message{border-bottom:1px solid #eef2f7;color:#475569;padding:14px 18px}.detail-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin:24px auto 0;max-width:1280px}.json-panel{min-height:260px}.json-panel pre{color:#334155;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.6;margin:0;max-height:460px;overflow:auto;padding:16px 18px;white-space:pre-wrap;word-break:break-word}.publication-card{display:grid;gap:0}.timeline-publication{border-bottom:1px solid #eef2f7;padding:16px 18px}.timeline-publication:last-child{border-bottom:0}.publication-head{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.publication-head strong,.publication-head span{display:block}.publication-head span{color:#64748b;font-size:12px;margin-top:4px}.timeline{display:grid;gap:10px;grid-template-columns:repeat(5,minmax(0,1fr))}.timeline-step{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;display:grid;gap:5px;min-height:118px;padding:12px}.timeline-step span{color:#0f766e;font-size:12px;font-weight:800}.timeline-step strong{color:#111827;font-size:20px}.timeline-step small,.timeline-step em{color:#64748b;font-size:12px;font-style:normal}@media (max-width: 860px){.app-shell{grid-template-columns:1fr}.side-nav{padding:16px}.side-nav nav{display:flex;margin-top:16px;overflow-x:auto}.workspace{padding:18px}.page-header{align-items:stretch;flex-direction:column}.header-actions{flex-direction:column}input{min-width:0;width:100%}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.binding-grid,.dashboard-grid,.detail-grid,.form-grid,.timeline{grid-template-columns:1fr}}
