/**
* CSS inline del reporte HTML de run (tokens Pandi + layout).
* Extraído de html.ts para mantener el builder enfocado en model→HTML.
* PANDI_TOKENS_CSS se re-exporta desde html.ts (tests de paridad lo importan ahí).
*/
/* Tokens de artifact Pandi — inlineados por la regla de extensión autocontenida (la duplicación
* por extensión es intencional). Pineados contra el canónico
* .pi/skills/pandi-artifact-style/reference/pandi-tokens.css por el test de paridad observe/tokens. */
export const PANDI_TOKENS_CSS = `:root {
--bg: #242526;
--paper: #292A2B;
--info-bg: #2E2A33;
--raised: #31353A;
--ink: #E6E6E6;
--ink2: #BBBBBB;
--muted: #757575;
--line: #3E4250;
--line-strong: #676B79;
--accent: #FF75B5;
--accent-soft: #FF9AC1;
--link: #6FC1FF;
--info: #45A9F9;
--success: #19F9D8;
--warning: #FFCC95;
--error: #FF4B82;
--code: #19F9D8;
--purple: #BCAAFE;
--success-bg: #1E2E2B;
--error-bg: #2E1E24;
--warning-bg: #2E2A33;
}
@media (prefers-color-scheme: light) {
:root {
--bg: #ECECEC;
--paper: #F2F1F1;
--info-bg: #EDE4F8;
--raised: #E6DBCB;
--ink: #222223;
--ink2: #676B79;
--muted: #8D8D8D;
--line: #C9C9C9;
--line-strong: #676B79;
--accent: #FF0077;
--accent-soft: #FF629E;
--link: #0091FF;
--info: #0091FF;
--success: #12B69D;
--warning: #FF8400;
--error: #FF4B82;
--code: #12B69D;
--purple: #B084EB;
--success-bg: #DCEEEA;
--error-bg: #F7DCE4;
--warning-bg: #EDE4F8;
}
}`;
export const LAYOUT_CSS = `
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink);
font: 14px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
.container { max-width: 1000px; margin: 0 auto; padding: 28px 20px 60px; }
header .kicker { font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); font-weight:600; }
header h1 { margin:6px 0 2px; font-size:24px; color:var(--ink); }
header .sub { color:var(--ink2); font-size:13px; }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 4px; }
.chip { font-size:12px; color:var(--ink2); background:var(--paper); border:1px solid var(--line); border-radius:999px; padding:3px 10px; }
.monitor-panel { background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:14px; margin:18px 0; }
.monitor-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.monitor-head h2 { margin:0; }
.monitor-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(135px,1fr)); gap:10px; margin:10px 0 14px; }
.metric-card { background:var(--bg); border:1px solid var(--line); border-radius:12px; padding:10px; min-height:82px; }
.metric-label { font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.metric-value { font-size:22px; line-height:1.2; color:var(--ink); font-weight:700; margin-top:3px; }
.metric-detail { color:var(--ink2); font-size:12px; margin-top:5px; }
.meter { display:inline-block; width:70px; height:8px; border-radius:999px; background:var(--raised); border:1px solid var(--line); overflow:hidden; vertical-align:middle; margin-right:6px; }
.meter span { display:block; height:100%; background:var(--success); }
.meter.fail span { background:var(--error); }
.meter.run span { background:var(--info); }
.meter.warn span { background:var(--warning); }
.monitor-table { margin-top:8px; }
.monitor-table tr.featured td { background:var(--info-bg); }
.monitor-agent-head { display:flex; flex-wrap:wrap; gap:6px; align-items:center; color:var(--ink2); margin:4px 0 8px; }
.monitor-agent-row { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.monitor-agent-state { font-weight:700; }
.monitor-agent-state.ok { color:var(--success); }
.monitor-agent-state.run { color:var(--info); }
.monitor-agent-state.fail { color:var(--error); }
.monitor-agent-state.warn { color:var(--warning); }
.agent-chipline { display:flex; flex-wrap:wrap; gap:5px; }
.mini-chip { display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:999px; padding:2px 7px; background:var(--bg); color:var(--ink2); font-size:11.5px; white-space:nowrap; }
.mini-chip.ok { border-color:var(--success); color:var(--success); background:var(--success-bg); }
.mini-chip.warn { border-color:var(--warning); color:var(--warning); background:var(--warning-bg); }
.mini-chip.fail { border-color:var(--error); color:var(--error); background:var(--error-bg); }
.monitor-selected { display:grid; gap:5px; }
.monitor-detail-line { color:var(--ink2); }
.monitor-subtitle { margin-top:4px; color:var(--muted); font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.rpill { font-size:11px; font-weight:600; padding:3px 9px; border-radius:999px; white-space:nowrap; }
.rpill.ok { background:var(--success-bg); color:var(--success); border:1px solid var(--success); }
.rpill.run { background:var(--info-bg); color:var(--info); border:1px solid var(--info); }
.rpill.fail { background:var(--error-bg); color:var(--error); border:1px solid var(--error); }
.rpill.warn { background:var(--warning-bg); color:var(--warning); border:1px solid var(--warning); }
h2 { font-size:16px; color:var(--info); margin:28px 0 10px; }
.callout { margin:10px 0; padding:10px 14px; border-radius:10px; font-size:13.5px; border:1px solid var(--line); border-left-width:4px; background:var(--paper); color:var(--ink); }
.callout.info { background:var(--info-bg); border-color:var(--purple); }
.callout.warn { background:var(--warning-bg); border-color:var(--warning); }
.callout.error { background:var(--error-bg); border-color:var(--error); }
.opening { margin:14px 0 8px; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-left:4px solid var(--accent); border-radius:10px; padding:10px 14px; font-size:13.5px; }
table { border-collapse:collapse; width:100%; font-size:13px; }
th, td { text-align:left; padding:6px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
th { color:var(--ink2); font-weight:600; }
details { background:var(--paper); border:1px solid var(--line); border-radius:12px; margin:10px 0; }
details > summary { padding:12px 16px; cursor:pointer; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
details > summary:hover { background:var(--raised); }
details .body { border-top:1px solid var(--line); padding:14px 16px; color:var(--ink2); }
details.fail-card { border-color:var(--error); }
pre { background:var(--bg); border:1px solid var(--line); border-radius:8px; padding:10px 12px; overflow-x:auto;
font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; color:var(--ink); white-space:pre-wrap; word-break:break-word; }
pre.json-output { white-space:pre; }
.structured-output { color:var(--ink2); }
.structured-output details.raw-json { margin-top:12px; }
.timeline-list { list-style:none; margin:0; padding:4px 0 4px 20px; border-left:2px solid var(--line); }
.timeline-item { position:relative; margin:0 0 14px; padding-left:16px; }
.timeline-item::before { content:""; position:absolute; left:-26px; top:.45em; width:9px; height:9px; border-radius:999px; background:var(--paper); border:2px solid var(--accent); }
.timeline-time { display:block; color:var(--muted); font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:12px; margin-bottom:2px; }
.timeline-message { color:var(--ink); }
.timeline-details { margin-top:6px; }
.md-body { color:var(--ink2); }
.md-body p, .md-body ul, .md-body ol, .md-body blockquote, .md-body table { margin:0 0 10px; }
.md-body h1, .md-body h2, .md-body h3, .md-body h4, .md-body h5, .md-body h6 { color:var(--ink); margin:14px 0 8px; }
.md-body h1 { font-size:18px; } .md-body h2 { font-size:16px; } .md-body h3, .md-body h4, .md-body h5, .md-body h6 { font-size:14px; }
.md-body code { color:var(--code); background:var(--raised); border-radius:5px; padding:1px 5px; }
.md-body pre code { background:none; padding:0; color:var(--ink); }
.md-body blockquote { border-left:3px solid var(--accent); padding-left:12px; color:var(--ink2); }
.md-body .md-image-alt, .md-body .md-link-text { color:var(--muted); font-style:italic; }
a { color:var(--link); }
.muted { color:var(--muted); }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size:12px; }
.kv { color:var(--ink2); font-size:12.5px; }
/* mermaid.run({securityLevel:"sandbox"}) reemplaza el contenido de .mermaid por un