/* Interactive coverage maps (coverage-ux.js). */
:root{--ux-a:var(--v2-a,#4f8cff);--ux-b:#22d3ee;--ux-grad:var(--v2-grad,linear-gradient(90deg,#22d3ee,#4f8cff,#a78bfa))}
.ux-card{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:18px;background:var(--card);box-shadow:var(--shadow);padding:18px 20px;margin:0 0 16px}
.ux-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--ux-grad)}
.ux-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--text);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;text-decoration:none}
.ux-chip:hover{border-color:var(--ux-a)}
.ux-chip[aria-pressed=true]{background:var(--ux-a);border-color:var(--ux-a);color:#fff}
.ux-in{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);font:inherit}
.ux-in:focus{outline:2px solid var(--ux-a);outline-offset:1px}
.ux-muted{color:var(--muted)}
.ux-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ux-cov-bar{display:grid;gap:12px}
.ux-cov-bar .ux-row label{font-weight:600;font-size:.85rem}
.ux-cov-search{max-width:320px}
.cov-map g.ux-hit rect{stroke:#f59e0b;stroke-width:3px}
.cov-map.ux-dim g[data-st]:not(.ux-hit){opacity:.35}
.ux-tip{position:fixed;z-index:70;pointer-events:none;padding:6px 10px;border-radius:10px;background:#0b1224;color:#e8eefc;font-size:.8rem;box-shadow:0 8px 24px rgba(0,0,0,.35);white-space:nowrap}
.ux-tip b{color:#a5f3fc}
.cov-pop .ux-pop-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.cov-pop .ux-pop-acts a,.cov-pop .ux-pop-acts button{font-size:.8rem;padding:5px 10px}
.ux-bar{display:inline-block;height:8px;border-radius:99px;background:var(--ux-grad);vertical-align:middle;margin-right:8px}

/* Compare categories dialog */
.ux-cmp-overlay{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(6,12,28,.55);backdrop-filter:blur(3px)}
.ux-cmp-overlay[hidden]{display:none!important}
body.ux-cmp-open{overflow:hidden}
.ux-cmp{position:relative;width:min(520px,100%);max-height:min(86vh,720px);overflow:auto;border:1px solid var(--border);border-radius:18px;background:var(--card);box-shadow:0 24px 60px rgba(0,0,0,.35);padding:0;margin:0}
.ux-cmp::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--ux-grad)}
.ux-cmp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 18px 10px;position:sticky;top:0;background:var(--card);z-index:1}
.ux-cmp-titles h2{margin:0;font-size:1.2rem;line-height:1.25}
.ux-cmp-sub{margin:6px 0 0;font-size:.88rem;color:var(--muted)}
.ux-cmp-x{flex:0 0 auto;width:36px;height:36px;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:1.4rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}
.ux-cmp-x:hover{border-color:var(--ux-a);background:color-mix(in srgb,var(--ux-a) 12%,var(--bg))}
.ux-cmp-x:focus-visible{outline:2px solid var(--ux-a);outline-offset:2px}
.ux-cmp-list{display:grid;gap:10px;padding:4px 18px 12px}
.ux-cmp-row{border:1px solid var(--border);border-radius:14px;padding:12px 14px;background:color-mix(in srgb,var(--bg) 55%,var(--card))}
.ux-cmp-row-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px}
.ux-cmp-cat{font-weight:700;font-size:.95rem}
.ux-cmp-pct{font-weight:700;font-size:.9rem;color:var(--ux-a)}
.ux-cmp-track{height:8px;border-radius:99px;background:color-mix(in srgb,var(--muted) 22%,transparent);overflow:hidden}
.ux-cmp-fill{display:block;height:100%;border-radius:99px;background:var(--ux-grad)}
.ux-cmp-row-bot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
.ux-cmp-link{font-size:.85rem;font-weight:600;color:var(--ux-a);text-decoration:none}
.ux-cmp-link:hover{text-decoration:underline}
.ux-cmp-foot{padding:8px 18px 18px;display:flex;justify-content:flex-end}
@media (prefers-reduced-motion:reduce){.ux-cmp-overlay{backdrop-filter:none}}
