/* Health v2 (Labs, health_v2): the grouped checklist on a project's Health tab. Drawn by web/health-v2.js.
   Colours come ONLY from the app's custom properties (index.html :root) and color-mix tints of them, so the
   whole panel follows the theme, including dark mode. No literal colours here. Every status pill carries
   words as well as colour (WCAG 1.4.1). Sized for a 13-inch screen (about 1440px wide). */
.hv2{max-width:1060px}
.hv2-panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px 10px}
.hv2-head{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}
.hv2-headtxt{flex:1 1 360px;min-width:0}
.hv2-title{margin:0 0 4px;font-size:17px;font-weight:700;color:var(--fg)}
.hv2-meta{margin:0;font-size:13.5px;color:var(--muted);overflow-wrap:break-word}
.hv2-meta strong{color:var(--fg);font-weight:600}
.hv2-runall{flex:none}
.hv2-runall[disabled],.hv2-run[disabled]{opacity:.55;cursor:default}
.hv2-tiers{margin:12px 0 2px;font-size:12.5px;line-height:1.5;color:var(--muted)}
.hv2-msg{margin:10px 0 0;font-size:13px;color:var(--fg);background:color-mix(in srgb,var(--amber--bg,var(--amber)) 10%,transparent);border:1px solid color-mix(in srgb,var(--amber--ln,var(--amber)) 35%,transparent);border-radius:9px;padding:8px 11px}
.hv2-msg[hidden]{display:none}
.hv2-group{margin-top:18px}
.hv2-glabel{margin:0 0 4px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.hv2-rows{list-style:none;margin:0;padding:0}
.hv2-row{border-top:1px solid var(--line-2)}
.hv2-line{display:flex;align-items:center;gap:8px}
.hv2-toggle{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:10px 4px;background:none;border:0;color:var(--fg);font:inherit;text-align:left;cursor:pointer;border-radius:8px}
.hv2-toggle:hover{background:color-mix(in srgb,var(--fg) 4%,transparent)}
.hv2-ic{flex:none;width:16px;height:16px;color:var(--muted)}
.hv2-name{font-size:14px;font-weight:600;color:var(--fg);min-width:0;overflow-wrap:break-word}
.hv2-tier{flex:none;font-size:11px;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:1px 6px}
.hv2-spacer{flex:1}
.hv2-chev{flex:none;width:14px;height:14px;color:var(--muted);transition:transform .15s ease;transform:rotate(-90deg)}
.hv2-toggle[aria-expanded="true"] .hv2-chev{transform:none}
.hv2-skipped{margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}
.hv2-skipped-toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 4px;background:none;border:0;color:var(--muted);font:inherit;font-size:13px;cursor:pointer;border-radius:8px}
.hv2-skipped-toggle:hover{color:var(--fg);background:color-mix(in srgb,var(--fg) 4%,transparent)}
.hv2-skipped-toggle[aria-expanded="true"] .hv2-chev{transform:none}
.hv2-skipped-body{padding:2px 4px 4px 28px;font-size:13px;color:var(--muted)}
.hv2-skipped-body p{margin:4px 0 6px}
.hv2-skipped-body ul{margin:0;padding-left:18px;columns:2;column-gap:24px}
.hv2-skipped-body li{margin:0;padding:2px 0;break-inside:avoid}
.hv2-run{flex:none;font-size:12.5px;padding:5px 11px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--fg);cursor:pointer;font-weight:600}
.hv2-run:hover{background:var(--bg)}

/* Status pills: words always, colour as a second cue. */
.hv2-pill{flex:none;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;border-radius:999px;padding:3px 10px;white-space:nowrap;border:1px solid transparent}
.hv2-pill--passed{color:var(--green--fg,var(--green));background:color-mix(in srgb,var(--green--bg,var(--green)) 12%,transparent)}
.hv2-pill--issues{color:var(--danger--fg,var(--danger));background:color-mix(in srgb,var(--danger--bg,var(--danger)) 11%,transparent)}
.hv2-pill--notes{color:var(--fg);background:color-mix(in srgb,var(--muted) 14%,transparent)}
.hv2-pill--notrun{color:var(--muted);border-color:var(--line);background:transparent}
.hv2-pill--error{color:var(--amber--fg,var(--amber));border-color:color-mix(in srgb,var(--amber--ln,var(--amber)) 45%,transparent);background:color-mix(in srgb,var(--amber--bg,var(--amber)) 8%,transparent)}
.hv2-pill--plan{color:var(--muted);background:color-mix(in srgb,var(--muted) 10%,transparent)}
.hv2-pill--running,.hv2-pill--checking{color:var(--accent--fg,var(--accent));background:var(--accent-soft)}

/* Findings, inline under the row. */
.hv2-body{padding:2px 4px 14px 30px}
.hv2-body[hidden]{display:none}
.hv2-summary{margin:0 0 8px;font-size:13px;color:var(--muted);line-height:1.45}
.hv2-reason{color:var(--fg)}
.hv2-flist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.hv2-f{border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;background:var(--card)}
.hv2-ftop{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.hv2-sev{flex:none;font-size:11px;font-weight:700;border-radius:6px;padding:1px 7px}
.hv2-sev--fix{color:var(--k-fg-b91c1c,#b91c1c);background:color-mix(in srgb,var(--danger--bg,var(--danger)) 10%,transparent)}
.hv2-sev--note{color:var(--muted);background:color-mix(in srgb,var(--muted) 12%,transparent)}
.hv2-sev--check{color:var(--k-fg-92400e,#92400e);background:color-mix(in srgb,var(--amber--bg,var(--amber)) 12%,transparent)}
.hv2-beta{flex:none;font-size:10.5px;font-weight:700;border-radius:6px;padding:1px 6px;color:var(--k-fg-1d4ed8,#1d4ed8);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.hv2-betanote{margin:0 0 8px;font-size:12.5px;color:var(--muted)}
.hv2-guidance{margin:4px 0 0;font-size:13px;color:var(--muted)}
.hv2-ftitle{font-size:13.5px;font-weight:600;color:var(--fg);min-width:0;overflow-wrap:break-word}
.hv2-page{font-size:11.5px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:0 6px}
.hv2-ref{margin:6px 0 0;font-size:12.5px;color:var(--fg);overflow-wrap:anywhere}
.hv2-ref code,.hv2-sugg code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;background:color-mix(in srgb,var(--fg) 6%,transparent);border-radius:5px;padding:1px 5px;white-space:pre-wrap}
.hv2-fix{margin:6px 0 0;font-size:12.5px;color:var(--muted);line-height:1.5}
.hv2-sugg{margin:8px 0 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--fg);background:color-mix(in srgb,var(--green--bg,var(--green)) 7%,transparent);border:1px solid color-mix(in srgb,var(--green--ln,var(--green)) 22%,transparent);border-radius:8px;padding:6px 9px}
.hv2-sugg-label{font-weight:700;color:var(--green--fg,var(--green))}
.hv2-sugg-text{min-width:0;overflow-wrap:anywhere}
.hv2-arrow{color:var(--muted)}
.hv2-copy,.hv2-approve{flex:none;margin-left:auto;font-size:12px;font-weight:600;padding:3px 10px;border-radius:7px;border:1px solid var(--line);background:var(--card);color:var(--fg);cursor:pointer}
.hv2-approve{margin-left:0}
.hv2-actions{margin:8px 0 0;display:flex;gap:8px}
.hv2-copy:hover,.hv2-approve:hover{background:var(--bg)}
.hv2-more{margin:8px 0 0;font-size:12.5px;color:var(--muted)}
.hv2-locale{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:12.5px;color:var(--muted)}
.hv2-locale select{font:inherit;font-size:12.5px;padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--fg)}
.hv2-err{font-size:13.5px;color:var(--fg);padding:6px 0}
@media (max-width:720px){
  .hv2-panel{padding:16px 14px 8px}
  .hv2-tier{display:none}
  .hv2-body{padding-left:8px}
}
