/* Patches: rules dropped by CSS parser in shell.css. Loaded after shell.css to guarantee application. */

.tkpi{display:grid;grid-template-columns:1fr;gap:14px;margin:8px 0 0}
.tk-group{border:1px solid var(--line);border-radius:10px;padding:16px 20px;background:var(--panel)}
.tk-hdr{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--tx3);font-weight:700;margin-bottom:10px;display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.tk-hdr > span{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--tx3);font-weight:500;text-transform:none}
.tk-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px}
.tk{border-left:2px solid var(--line);padding-left:12px;min-width:0}
.tk b{display:block;font-family:var(--disp);font-size:26px;font-weight:500;letter-spacing:-.02em;color:var(--tx);line-height:1.1;margin-bottom:2px}
.tk span{font-family:var(--mono);font-size:11px;color:var(--tx2);letter-spacing:.02em;line-height:1.35;display:block}
.tk.e1{border-left-color:var(--e1)}
.tk.e1 b{color:var(--e1)}
.tk.e2{border-left-color:var(--e2)}
.tk.e2 b{color:var(--e2)}
.tk.acc{border-left-color:var(--acc)}
.tk.acc b{color:var(--acc)}
.tk .spark{display:block;margin-top:6px;width:60px;height:16px;color:var(--tx3);opacity:.75}
.tk.e1 .spark{color:var(--e1)}
.tk.e2 .spark{color:var(--e2)}
.tk.acc .spark{color:var(--acc)}
.tk-foot{font-family:var(--mono);font-size:10.5px;color:var(--tx3);letter-spacing:.02em;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line);line-height:1.5}

/* Evidence tier + mechanism color legend, drop anywhere with .tlegend */
.tlegend{display:inline-flex;flex-wrap:wrap;gap:14px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--tx2);align-items:center}
.tlegend .tl{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.tlegend .tl .sw{width:11px;height:11px;border-radius:2px;background:var(--tx3);display:inline-block}
.tlegend .tl.e1 .sw{background:var(--e1)}
.tlegend .tl.e2 .sw{background:var(--e2)}
.tlegend .tl.e3 .sw{background:var(--e3)}
.tlegend .tl.acc .sw{background:var(--acc)}
.tlegend .tl b{color:var(--tx);font-weight:600}
.tlegend .tl small{color:var(--tx3);font-size:10.5px}
.tlegend .sep{color:var(--line);font-weight:400}
@media(max-width:640px){.tk-row{grid-template-columns:1fr 1fr;gap:14px}.tk b{font-size:22px}}

/* chart card header (globally shared with home/vectors/etc) */
.chartbox .chdr{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.chartbox .chdr .capt{margin:0!important;font-family:var(--sans)!important;font-size:14px!important;font-weight:700!important;letter-spacing:-.005em!important;text-transform:none!important;color:var(--tx)!important}
.chartbox .cframe{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right;flex-shrink:0}
.chartbox .cframe .fr{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:2px 8px;border-radius:4px;border:1px solid}
.chartbox .cframe .fr-fl{color:#B54708;border-color:rgba(181,71,8,.35);background:rgba(181,71,8,.06)}
.chartbox .cframe .fr-all{color:#5D7A99;border-color:rgba(93,122,153,.35);background:rgba(93,122,153,.06)}
.chartbox .cframe .fr-both{color:var(--acc);border-color:rgba(45,106,231,.35);background:rgba(45,106,231,.06)}
.chartbox .cframe .fn{font-family:var(--mono);font-size:10px;color:var(--tx3);letter-spacing:.08em;font-weight:600}
@media(max-width:640px){.chartbox .chdr{flex-direction:column;gap:6px}.chartbox .cframe{align-items:flex-start;text-align:left}}

/* hero anchor: right-side visual/stat block that fills empty dark-hero half */
.phead .heroflex{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,360px);gap:56px;align-items:end;margin-top:14px}
.phead .heroflex > .htxt{min-width:0}
.phead .heroflex > .hank{min-width:0;position:relative}
@media(max-width:960px){.phead .heroflex{grid-template-columns:1fr;gap:28px}.phead .heroflex > .hank{max-width:520px}}
.hank{font-family:var(--mono)}
.hank .hlbl{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--acc2);font-weight:700;margin-bottom:12px}
.hank .hgrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(91,138,238,.22);border:1px solid rgba(91,138,238,.32);border-radius:8px;overflow:hidden}
.hank .hgrid .hc{background:rgba(12,17,29,.62);padding:14px 14px 12px;display:flex;flex-direction:column;gap:3px;min-width:0}
.hank .hgrid .hc b{font-family:var(--mono);font-size:26px;line-height:1;letter-spacing:-.015em;color:var(--acc2);font-weight:700}
.hank .hgrid .hc .lbl{font-size:10.5px;letter-spacing:.09em;color:#D2DBEB;font-weight:600;line-height:1.35;text-transform:none}
.hank .hgrid .hc .sub{font-size:9.5px;letter-spacing:.12em;color:#8A9AB2;text-transform:uppercase;font-weight:600;margin-top:2px}
.hank .hgrid .hc.e1 b{color:#F97066}
.hank .hgrid .hc.e2 b{color:#FDB022}
.hank .hgrid .hc.ok b{color:#7FD48A}
.hank .hfoot{margin-top:10px;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#8A9AB2;font-weight:600;line-height:1.55}
.hank .hfoot .sep{color:#5B8AEE;margin:0 6px}
.hank .hmini{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:14px}
.hank .hmini .m{background:rgba(24,34,48,.5);border:1px solid rgba(91,138,238,.18);border-radius:5px;padding:7px 8px;display:flex;flex-direction:column;gap:2px}
.hank .hmini .m b{font-family:var(--mono);font-size:14px;color:var(--acc2);line-height:1;font-weight:700}
.hank .hmini .m .l{font-size:9.5px;letter-spacing:.06em;color:#8A9AB2;text-transform:uppercase;line-height:1.25;font-weight:600}
.hank .hbars{display:flex;flex-direction:column;gap:10px;margin-top:2px}
.hank .hbrow{display:grid;grid-template-columns:100px minmax(0,1fr) 32px;align-items:center;gap:10px;font-size:11px}
.hank .hbrow .hln{color:#D2DBEB;font-weight:600;letter-spacing:.02em}
.hank .hbrow .hbar{position:relative;height:8px;border-radius:2px;background:rgba(91,138,238,.14);overflow:hidden}
.hank .hbrow .hbar span{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#5B8AEE,#7AA3FC);border-radius:2px}
.hank .hbrow .hbar span.e1{background:linear-gradient(90deg,#F97066,#FDA29B)}
.hank .hbrow .hbar span.e2{background:linear-gradient(90deg,#FDB022,#FEC84B)}
.hank .hbrow .hval{color:var(--acc2);font-weight:700;text-align:right}
.hank a.hbrow.lnk{text-decoration:none;padding:6px 8px;margin:-6px -8px;border-radius:6px;transition:background .12s ease,transform .12s ease}
.hank a.hbrow.lnk:hover{background:rgba(91,138,238,.10);transform:translateX(2px)}
.hank a.hbrow.lnk:hover .hln{color:#fff}
.hank a.hbrow.lnk:hover .hval{color:#fff}
.hank a.hbrow.lnk:focus-visible{outline:2px solid var(--acc2);outline-offset:2px}

/* Copy for agents button - lives inside .nav next to the CTA */
/* Floating fallback if nav is absent */

.gl-term{border-bottom:1px dotted var(--tx3);cursor:help;text-decoration:none;color:inherit;transition:border-color .12s,color .12s}
.gl-term:hover,.gl-term:focus-visible{border-bottom-color:var(--acc);color:var(--acc);outline:none}
/* When the term is inside a <code>, keep monospace + subtle underline instead of dotted border */
code.gl-term,.gl-term code{border-bottom:1px dotted currentColor}
/* Comet-style glossary tooltip: header + body + footer, with pointer arrow */
.gl-tip{position:absolute;z-index:200;width:360px;max-width:calc(100vw - 24px);background:var(--panel);color:var(--tx);border-radius:12px;padding:0;border:1px solid var(--line);box-shadow:0 24px 60px rgba(12,17,29,.14),0 6px 16px rgba(12,17,29,.06);opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .14s ease,transform .14s ease;font-family:var(--sans);left:0;top:0;overflow:hidden}
.gl-tip.on{opacity:1;pointer-events:auto;transform:translateY(0)}
.gl-tip .gl-h{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--acc);padding:14px 16px 4px;line-height:1.4}
.gl-tip .gl-b{font-size:13.5px;line-height:1.55;color:var(--tx);padding:6px 16px 14px;font-weight:400}
.gl-tip .gl-f{font-family:var(--mono);font-size:10.5px;line-height:1.55;color:var(--tx3);padding:10px 16px 12px;border-top:1px solid var(--line);background:var(--bg2);letter-spacing:.02em;font-weight:700}
@media(max-width:520px){
  .gl-tip{max-width:calc(100vw - 24px)}
}

/* Cross-surface fixes: ensure .tk-group and .tlegend are visible on both dark hero and light body */
.tk-group{background:linear-gradient(180deg,#F8FAFC 0%,#F1F5F9 100%);border-color:#CBD5E1;box-shadow:0 1px 2px rgba(12,17,29,.04),inset 0 1px 0 rgba(255,255,255,.6)}
.tk-group .tk-hdr{color:#334155;border-bottom:1px solid rgba(203,213,225,.7);padding-bottom:8px;margin-bottom:14px}
.tk-group .tk-hdr>span{color:#64748B}
.tk-group .tk{border-left-width:3px}
.tk-group .tk-foot{color:#475569;border-top-color:rgba(203,213,225,.7)}
.tlegend{background:#F8FAFC;border-color:#CBD5E1}

/* On dark hero (.phead), invert back so it reads well */
.phead .tk-group{background:rgba(12,17,29,.55);border-color:#33455F;box-shadow:none}
.phead .tk-group .tk-hdr{color:#B9C6D8;border-bottom-color:rgba(155,180,214,.18)}
.phead .tk-group .tk-hdr>span{color:#8A9AB2}
.phead .tk-group .tk b{color:#E7EDF6}
.phead .tk-group .tk span{color:#B9C6D8}
.phead .tk-group .tk-foot{color:#8A9AB2;border-top-color:rgba(155,180,214,.18)}
.phead .tlegend{background:rgba(12,17,29,.55);border-color:#33455F;color:#B9C6D8}

/* Landscape and downloads .hank rails need to work on light body too */
/* Scope light-body overrides to <section> ancestors  -  never <header>/.phead */
section .wrap:not(.dark) .hank .hgrid{background:rgba(45,106,231,.12);border-color:rgba(45,106,231,.24)}
section .wrap:not(.dark) .hank .hgrid .hc{background:#F8FAFC}
section .wrap:not(.dark) .hank .hgrid .hc b{color:var(--acc)}
section .wrap:not(.dark) .hank .hgrid .hc .lbl{color:#334155}
section .wrap:not(.dark) .hank .hgrid .hc .sub{color:#64748B}
section .wrap:not(.dark) .hank .hlbl{color:var(--acc)}
section .wrap:not(.dark) .hank .hfoot{color:#64748B}
section .wrap:not(.dark) .hank .hfoot .sep{color:var(--acc)}
section .wrap:not(.dark) .hank .hbrow .hln{color:#334155}
section .wrap:not(.dark) .hank .hbrow .hbar{background:rgba(45,106,231,.10)}
section .wrap:not(.dark) .hank .hbrow .hval{color:var(--acc)}
section .wrap:not(.dark) .hank a.hbrow.lnk:hover{background:rgba(45,106,231,.06)}
section .wrap:not(.dark) .hank a.hbrow.lnk:hover .hln{color:#0C111D}
section .wrap:not(.dark) .hank a.hbrow.lnk:hover .hval{color:#1D57D6}
section .wrap:not(.dark) .hank .hmini .m{background:#F8FAFC;border-color:rgba(45,106,231,.14)}
section .wrap:not(.dark) .hank .hmini .m b{color:var(--acc)}
section .wrap:not(.dark) .hank .hmini .m .l{color:#64748B}

/* (i) info tooltip icon  -  used for methodology caveats without cluttering the report */
.info-tip{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:transparent;border:1.25px solid var(--acc);color:var(--acc);font-family:var(--mono);font-size:10px;font-weight:700;line-height:1;margin:0 2px 0 6px;cursor:help;vertical-align:middle;transition:background .12s ease,color .12s ease;position:relative;text-decoration:none}
.info-tip::before{content:"i";font-style:italic;transform:translateY(-.5px)}
.info-tip:hover{background:var(--acc);color:#FFF}
.info-tip:focus-visible{outline:2px solid var(--acc2);outline-offset:2px}
.info-tip[data-tip]:hover::after,.info-tip[data-tip]:focus-visible::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--panel);color:var(--tx);border:1px solid var(--line);font-family:var(--sans);font-style:normal;font-size:12px;font-weight:400;line-height:1.5;padding:10px 12px;border-radius:6px;box-shadow:0 12px 30px rgba(12,17,29,.14),0 3px 8px rgba(12,17,29,.06);white-space:normal;width:max-content;max-width:280px;pointer-events:none;z-index:100;letter-spacing:0;text-transform:none}

/* ============================================================
   Chaos Palette v2 - unified brand tokens for all charts
   ============================================================ */
:root{
  /* Semantic tiers */
  --tier-e1:#EF4E4E;      --tier-e1-soft:rgba(239,78,78,.14);
  --tier-e2:#F59E0B;      --tier-e2-soft:rgba(245,158,11,.16);
  --tier-e3:#8B5CF6;      --tier-e3-soft:rgba(139,92,246,.16);

  /* Categorical - 8 hues, one per mechanism/vector family */
  --cat-blue:#5B8AEE;     --cat-blue-soft:rgba(91,138,238,.14);
  --cat-red:#EF4E4E;      --cat-red-soft:rgba(239,78,78,.14);
  --cat-orange:#F59E0B;   --cat-orange-soft:rgba(245,158,11,.16);
  --cat-purple:#8B5CF6;   --cat-purple-soft:rgba(139,92,246,.16);
  /* brand remap: former teal/sage/coral slots now carry Chaos hues only */
  --cat-teal:#2D6AE7;     --cat-teal-soft:rgba(45,106,231,.14);
  --cat-sage:#B42318;     --cat-sage-soft:rgba(180,35,24,.14);
  --cat-coral:#B54708;    --cat-coral-soft:rgba(181,71,8,.16);
  --cat-slate:#597182;    --cat-slate-soft:rgba(89,113,130,.14);

  /* Verdict tags (Core / Adjacent / Gap / Watch) */
  --v-core:var(--cat-red);        --v-core-soft:var(--cat-red-soft);
  --v-adj:var(--cat-orange);      --v-adj-soft:var(--cat-orange-soft);
  --v-gap:var(--cat-purple);      --v-gap-soft:var(--cat-purple-soft);
  --v-watch:var(--cat-teal);      --v-watch-soft:var(--cat-teal-soft);

  /* Object-type accents (registry entity kinds) */
  --ot-protocol:var(--cat-teal);
  --ot-model:var(--cat-purple);
  --ot-harness:var(--cat-blue);
  --ot-framework:var(--cat-orange);

  /* Chart-surface neutrals */
  --ch-grid:#EEF2F7;      --ch-grid-strong:#DCE3ED;
  --ch-tx:#3D4B60;        --ch-tx-mute:#597182;
  --ch-refline:rgba(89,113,130,.55);
}
[data-theme="dark"]{
  --ch-grid:#25354B;      --ch-grid-strong:#33455F;
  --ch-tx:#B9C6D8;        --ch-tx-mute:#8298B0;
  --ch-refline:rgba(155,180,214,.4);
  /* Slightly lift saturation of soft fills on dark */
  --tier-e1-soft:rgba(249,112,102,.22);
  --tier-e2-soft:rgba(253,176,34,.22);
  --tier-e3-soft:rgba(154,127,255,.24);
  --cat-blue-soft:rgba(122,163,252,.22);
}

/* Rich chart tooltip - Comet-style header/body/footer, matches Cortex chart example */
.ck-tip{position:absolute;pointer-events:none;z-index:120;background:var(--panel);color:var(--tx);border:1px solid var(--line);border-radius:10px;box-shadow:0 20px 48px rgba(12,17,29,.14),0 4px 12px rgba(12,17,29,.06);font-family:var(--sans);font-size:12px;line-height:1.5;min-width:200px;max-width:320px;opacity:0;transform:translateY(-4px);transition:opacity .12s ease,transform .12s ease}
.ck-tip.on{opacity:1;transform:translateY(0)}
.ck-tip .ck-hdr{display:flex;align-items:center;gap:8px;padding:10px 12px 8px;border-bottom:1px solid var(--line);background:var(--bg2)}
.ck-tip .ck-hdr .ck-sw{width:10px;height:10px;border-radius:3px;background:var(--acc);flex:none}
.ck-tip .ck-hdr .ck-nm{font-family:var(--sans);font-weight:700;font-size:13px;color:var(--tx);letter-spacing:-.005em;line-height:1.3;flex:1;min-width:0}
.ck-tip .ck-body{padding:8px 12px 4px;display:flex;flex-direction:column;gap:4px}
.ck-tip .ck-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;font-family:var(--mono);font-size:11px}
.ck-tip .ck-row .ck-k{color:var(--tx3);letter-spacing:.02em;font-weight:600}
.ck-tip .ck-row .ck-v{color:var(--tx);font-weight:700}
.ck-tip .ck-row .ck-v.acc{color:var(--acc)}
.ck-tip .ck-row .ck-v.red{color:var(--e1s)}
.ck-tip .ck-row .ck-v.orange{color:var(--e2)}
.ck-tip .ck-row .ck-v.purple{color:var(--e3)}
.ck-tip .ck-foot{padding:8px 12px 10px;border-top:1px solid var(--line);margin-top:4px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--tx3);font-weight:700;background:var(--bg2)}
.ck-tip .ck-foot.lnk{color:var(--acc);cursor:pointer;pointer-events:auto}
.ck-tip .ck-foot.lnk:hover{color:var(--acc2)}

/* Chart hover halo - drawn by chart-kit plugin */
.chartbox{position:relative}
.chartbox canvas{cursor:pointer}
.chartbox canvas.no-click{cursor:default}

/* Legend swatches (chart-kit interactive legend) */
.ck-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:12px;padding:0}
.ck-legend .ck-lg{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-family:var(--mono);font-size:11px;color:var(--ch-tx);letter-spacing:.02em;background:none;border:0;padding:2px 0;transition:opacity .12s}
.ck-legend .ck-lg .ck-lg-sw{width:12px;height:12px;border-radius:3px;background:currentColor;opacity:.9}
.ck-legend .ck-lg.off{opacity:.35;text-decoration:line-through}
.ck-legend .ck-lg:hover{opacity:.75}
.ck-legend .ck-lg.off:hover{opacity:.55}

/* Card typography: bump body legibility on white surfaces */
.card h3{font-family:var(--sans);font-size:19px;font-weight:700;letter-spacing:-.01em;line-height:1.25;color:#0C111D;margin-bottom:10px}
.card p{color:#3D4B60;font-size:14.5px;line-height:1.55;font-weight:450}
.card .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;margin-bottom:12px}
.card .blist li{font-size:14.5px;color:#3D4B60;line-height:1.55}

/* Hero rank rows (top mechanism families)  -  restore legibility on dark panel */
.hank{font-family:var(--mono)}
.hank .hlbl{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--acc2);font-weight:700;margin-bottom:12px}
.hank .hbars{display:flex;flex-direction:column;gap:10px;margin-top:2px}
.hank .hbrow{display:grid;grid-template-columns:100px minmax(0,1fr) 32px;align-items:center;gap:10px;font-size:12px}
.hank .hbrow .hln{color:#F1F5FB;font-weight:600;letter-spacing:.01em;font-family:var(--sans);font-size:13px}
.hank .hbrow .hbar{position:relative;height:8px;border-radius:2px;background:rgba(91,138,238,.14);overflow:hidden}
.hank .hbrow .hbar span{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#5B8AEE,#7AA3FC);border-radius:2px}
.hank .hbrow .hbar span.e1{background:linear-gradient(90deg,#F97066,#FDA29B)}
.hank .hbrow .hbar span.e2{background:linear-gradient(90deg,#FDB022,#FEC84B)}
.hank .hbrow .hval{color:#FCFCFD;font-weight:700;text-align:right;font-family:var(--mono);font-size:13px}
.hank a.hbrow.lnk{text-decoration:none;padding:6px 8px;margin:-6px -8px;border-radius:6px;transition:background .12s ease,transform .12s ease}
.hank a.hbrow.lnk:hover{background:rgba(91,138,238,.10);transform:translateX(2px)}
.hank a.hbrow.lnk:hover .hln{color:#fff}
.hank a.hbrow.lnk:hover .hval{color:#fff}
.hank .hfoot{margin-top:14px;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#B5C3D6;font-weight:600;line-height:1.55;font-family:var(--mono)}
.hank .hfoot .sep{color:#5B8AEE;margin:0 6px}

/* ============================================================
   Registry row rhythm  -  clearer hierarchy, tier accent stripe
   Overrides styles from pages/registry.html inline <style>
   ============================================================ */

.registry-app .list{border-top:1px solid var(--line)}
.registry-app .e{border-bottom:1px solid #E9EEF5;position:relative;transition:background .12s ease}
.registry-app .e:hover{background:rgba(45,106,231,.028)}
.registry-app .e[aria-expanded=true],
.registry-app .e:has(.eh[aria-expanded=true]){background:rgba(45,106,231,.045)}

/* Tier accent stripe on the far left of each row */
.registry-app .e:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:2px;background:var(--line2);border-radius:1px;opacity:.5;transition:opacity .12s ease,background .12s ease}
.registry-app .e:hover:before{opacity:1}
.registry-app .e:has(.tag.E1):before{background:#D92D20}
.registry-app .e:has(.tag.E2):before{background:#B54708}
.registry-app .e:has(.tag.E3):before{background:#597182}

/* Row button  -  tighter grid, more room for meta */
.registry-app .eh{width:100%;background:none;border:none;text-align:left;color:inherit;font:inherit;cursor:pointer;display:grid;grid-template-columns:118px minmax(0,1fr) minmax(0,190px) 44px;gap:22px;padding:20px 4px 20px 14px;align-items:start}
.registry-app .eh > *{min-width:0}
.registry-app .eh > .entavr{min-width:0}
.registry-app .list.grid .card > .eh{grid-template-columns:minmax(0,1fr) 32px}
.registry-app .eh:hover{background:none}

/* ---- LEFT RAIL: date, ID, tier, lane ---- */
.registry-app .eh .lft{font-family:var(--mono);color:var(--tx3);line-height:1.5;display:flex;flex-direction:column;gap:0}
.registry-app .eh .lft > *{margin:0 !important}
.registry-app .eh .lft .date{color:#0C111D;font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.01em;line-height:1.3}
.registry-app .eh .lft .idn{color:#8798AC;font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.06em;line-height:1.35;margin-top:1px !important}
.registry-app .eh .lft > div:nth-child(3){margin-top:12px !important}
.registry-app .eh .lft > div:nth-child(4){margin-top:10px !important;padding-top:9px;border-top:1px solid #E9EEF5;color:#597182;font-size:10px;letter-spacing:.05em;line-height:1.4;font-weight:500;text-transform:none}

/* ---- TIER CHIP  -  larger, more presence ---- */
.registry-app .tag{display:inline-block;font-family:var(--mono);font-size:10.5px;font-weight:800;letter-spacing:.12em;padding:3px 9px;border-radius:4px;text-transform:uppercase;line-height:1.4}
.registry-app .tag.E1{background:#FEF3F2;color:#912018;border:1px solid #FDA29B}
.registry-app .tag.E2{background:#FFFAEB;color:#93370D;border:1px solid #FEC84B}
.registry-app .tag.E3{background:#F0F4F9;color:#334155;border:1px solid #B5C3D6}

/* ---- MIDDLE: title, meta, snip ---- */
.registry-app .eh .et{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-family:var(--sans);font-size:17px;font-weight:700;letter-spacing:-.012em;line-height:1.3;color:#0C111D}
.registry-app .eh .et > span:first-child{color:#0C111D}

/* Meta line  -  dark values, muted separators */
.registry-app .eh .tgt{font-family:var(--mono);font-size:12px;color:#3D4B60;margin:8px 0 0;line-height:1.55;letter-spacing:0;font-weight:500}
.registry-app .eh .tgt::first-line{font-weight:600}

/* Snip  -  readable body */
.registry-app .eh .snip{color:#3D4B60;font-family:var(--sans);font-size:14px;margin-top:9px;max-width:98ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.55;font-weight:400}

/* ---- BADGES  -  recolor to match Chaos palette ---- */
.registry-app .bdg{font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;padding:2.5px 7px;border-radius:4px;text-transform:uppercase;font-weight:800;white-space:nowrap;line-height:1.4}
.registry-app .bdg.zc{background:#FEE4E2;color:#912018;border:1px solid #F97066}
.registry-app .bdg.kev{background:#D92D20;color:#FFFFFF;border:1px solid #B42318}
.registry-app .bdg.out{background:#EDF2FD;color:#1849A9;border:1px solid #7AA3FC}
.registry-app .bdg.fam{background:#F0F4F9;color:#334155;border:1px solid #B5C3D6}
.registry-app .bdg.dis{background:#FFFAEB;color:#93370D;border:1px solid #FDB022}

/* Caret */
.registry-app .caret{font-family:var(--mono);font-size:12px;color:#8798AC;justify-self:end;padding-top:6px;letter-spacing:.05em;font-weight:600}
.registry-app .eh:hover .caret{color:#2D6AE7}
.registry-app .eh[aria-expanded=true] .caret{color:#2D6AE7}

/* Mobile: keep the left rail readable when it collapses to a chip row */
@media(max-width:760px){
  .registry-app .e:before{display:none}
  .registry-app .eh{grid-template-columns:minmax(0,1fr) 44px;gap:10px;padding-left:4px}
  .registry-app .eh .entavr{display:none !important}
  .registry-app .eh .lft{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}
  .registry-app .eh .lft > div{margin:0 !important;padding:0 !important;border:0 !important}
  .registry-app .eh .lft .date{font-size:12px}
  .registry-app .eh .lft .idn:last-of-type{color:#597182;font-size:10px;letter-spacing:.04em}
}

/* ============================================================
   Contrast fixes from full-site WCAG audit
   ============================================================ */

/* Hero footer caption on dark panel */
.phead .hank .hfoot,
header .hank .hfoot{color:#B5C3D6}
.phead .hank .hfoot .sep,
header .hank .hfoot .sep{color:#7AA3FC}

/* Mental-model Beat 3 orange chip - was rgb(243,135,68) 2.51:1 */
.registry-app .card.c .lbl,
.card .lbl[style*="F38744"]{color:#B54708 !important}

/* Legend swatch text on white - E2 amber was 2.15:1, E1 red was 3.58:1 */
.thesis-app .lg span,
.remediation-app .lg span,
.thesis-app .fr,
.remediation-app .fr{color:#334155 !important}

/* Nav on-state - was 4.33:1, bump to 5.2:1 */
.nav ul a.on,
nav ul a.on,
header .nav a.on{color:var(--acc);background:var(--atlas-tint,var(--bg2));font-weight:600}

/* Rule banner eyebrow - bump size to pass AA */
.rule .rl{font-size:12px !important;letter-spacing:.18em}

/* --hfoot caption in headers site-wide */
.hank .hfoot{color:#B5C3D6}
.hank .hfoot .sep{color:#7AA3FC}

/* Chart captions - was 10.5px mono at --tx3 which is small and dim for prose */
.chartbox .foot{font-family:var(--sans);font-size:12.5px;color:#3D4B60;margin-top:14px;line-height:1.55;font-weight:400;letter-spacing:0;text-transform:none}

/* ============================================================
   Registry row v2 - human dates, icons, structured tooltip
   ============================================================ */

/* Left rail: human-readable date atop mono ID */
.registry-app .eh .lft .date{color:#0C111D;font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:-.005em;line-height:1.3;text-transform:none}
.registry-app .eh .lft .dow{color:#8298B0;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin-top:2px;display:block}
.registry-app .eh .lft .idn{color:#8298B0;font-family:var(--mono);font-size:10px;letter-spacing:.05em;margin-top:8px}
.registry-app .eh .lft .tag{margin-top:10px !important}
.registry-app .eh .lft .lane{color:#597182;font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.02em;margin-top:10px;padding-top:9px;border-top:1px solid #E9EEF5;text-transform:none;line-height:1.35;max-width:96px}

/* Inline icons: shield, bolt, branch, target, question */
.ric{display:inline-flex;align-items:center;justify-content:center;width:11px;height:11px;flex-shrink:0}
.ric svg{width:100%;height:100%;display:block}
.registry-app .bdg{display:inline-flex;align-items:center;gap:5px;padding-top:3px;padding-bottom:3px}

/* Meta line - drop severity vector, keep tight target */
.registry-app .eh .tgt{font-family:var(--sans);font-size:12.5px;color:#3D4B60;letter-spacing:0;margin:8px 0 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;line-height:1.5}
.registry-app .eh .tgt .tgt-sep{color:#C0CBE0;font-family:var(--mono);font-size:11px;margin:0 -2px}
.registry-app .eh .tgt .tgt-vendor{color:#0C111D;font-weight:600}
.registry-app .eh .tgt .tgt-cve{font-family:var(--mono);font-size:11.5px;color:#597182;background:#F5F7FA;border:1px solid #E4EAF2;padding:1px 6px;border-radius:4px}
.registry-app .eh .tgt .tgt-cve.dis{color:#B54708;border-color:#FEDF89;background:#FFFAEB}

/* Severity chip cluster (compact) */
.svchips{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border:1px solid #E4EAF2;background:#F5F7FA;border-radius:5px;font-family:var(--mono);font-size:10px;font-weight:600;color:#597182;letter-spacing:.04em}
.svchips b{color:#0C111D;font-weight:700}
.svchips .sv-d{width:4px;height:4px;border-radius:50%;background:#CFD9E6;display:inline-block}
.svchips .sv-d.on{background:#2D6AE7}
.svchips .sv-d.on.hi{background:#D92D20}

/* Snippet body: cleaner */
.registry-app .eh .snip{color:#3D4B60;font-family:var(--sans);font-size:14px;line-height:1.55;margin-top:10px;max-width:104ch}

/* Expander button: SVG plus/minus */
.registry-app .caret{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;border:1px solid #E4EAF2;background:#FFFFFF;color:#597182;padding:0;transition:all .12s ease;font-family:var(--mono);font-size:0}
.registry-app .eh:hover .caret{border-color:#B5C3D6;color:#0C111D;background:#F5F7FA}
.registry-app .eh[aria-expanded=true] .caret{background:#2D6AE7;border-color:#2D6AE7;color:#FFFFFF}
.registry-app .caret svg{width:12px;height:12px;display:block}

/* ============================================================
   Row tooltip: Comet-style header/body/footer
   ============================================================ */
.rtip-anchor{position:relative}
.rtip{position:absolute;z-index:1000;top:calc(100% + 12px);left:0;width:380px;max-width:min(380px,calc(100vw - 48px));background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 24px 60px rgba(12,17,29,.14),0 4px 12px rgba(12,17,29,.06);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .14s ease,transform .14s ease,visibility 0s linear .14s;pointer-events:none;overflow:hidden}
.rtip.on{opacity:1;visibility:visible;transform:translateY(0);transition-delay:0s}
.rtip .rtip-hdr{padding:12px 14px 10px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--bg2),var(--panel))}
.rtip .rtip-hdr .rtip-title{color:var(--tx);font-family:var(--sans);font-size:13.5px;font-weight:700;letter-spacing:-.005em;line-height:1.35;margin:0}
.rtip .rtip-hdr .rtip-sub{color:var(--tx3);font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;margin-top:6px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rtip .rtip-hdr .rtip-sub .rtip-dot{color:var(--acc)}
.rtip .rtip-body{padding:12px 14px;display:flex;flex-direction:column;gap:9px;background:var(--panel)}
.rtip .rtip-row{display:grid;grid-template-columns:74px 1fr;gap:10px;align-items:baseline}
.rtip .rtip-row .rtip-lbl{color:var(--tx3);font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;font-weight:700;line-height:1.5}
.rtip .rtip-row .rtip-val{color:var(--tx);font-family:var(--sans);font-size:12px;line-height:1.5;letter-spacing:0}
.rtip .rtip-row .rtip-val .rtip-chip{display:inline-block;background:var(--bg2);border:1px solid var(--line);color:var(--tx2);font-family:var(--mono);font-size:10px;padding:1px 6px;border-radius:4px;margin:0 4px 3px 0;font-weight:700}
.rtip .rtip-row .rtip-val .rtip-chip.warm{background:rgba(217,45,32,.08);border-color:rgba(217,45,32,.35);color:var(--e1s)}
.rtip .rtip-row .rtip-val .rtip-chip.acc{background:rgba(45,106,231,.08);border-color:rgba(45,106,231,.35);color:var(--acc)}
.rtip .rtip-foot{padding:9px 14px;border-top:1px solid var(--line);background:var(--bg2);color:var(--tx3);font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;display:flex;gap:10px;align-items:center;justify-content:space-between}
.rtip .rtip-foot .rtip-cta{color:var(--acc);font-weight:700}

/* Registry counter grid must respect page padding */
.phead > .counters{max-width:1340px;margin-left:auto;margin-right:auto;margin-top:32px;border-left:1px solid var(--line);border-right:1px solid var(--line)}
@media(max-width:1388px){.phead > .counters{margin-left:24px;margin-right:24px}}

/* Card-as-link: pointer, subtle hover lift, no default underline */
a.card-lnk{display:block;color:inherit;text-decoration:none;position:relative;transition:transform .12s ease,box-shadow .18s ease,border-color .12s ease}
a.card-lnk:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(12,17,29,.10),0 2px 6px rgba(12,17,29,.06);border-color:var(--acc)}
a.card-lnk:hover h3{color:var(--acc)}
a.card-lnk:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
a.card-lnk .card-cta{position:absolute;top:16px;right:18px;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--tx3);transition:color .12s ease,transform .12s ease}
a.card-lnk:hover .card-cta{color:var(--acc);transform:translateX(2px)}

/* Bars: when rendered as anchor (deep-linked), give a subtle affordance */
a.bar{display:grid;color:inherit;text-decoration:none;cursor:pointer;border-radius:5px;padding:2px 4px;margin:0 -4px;transition:background .12s ease}
a.bar:hover{background:rgba(45,106,231,.06)}
a.bar:hover .k{color:var(--acc)}
a.bar:hover .v{color:var(--acc);font-weight:700}
a.bar:focus-visible{outline:2px solid var(--acc);outline-offset:2px}

/* a11y: visible keyboard focus for nav + interactive chips (audit m6) */
.nav ul a:focus-visible,.nav li.grp .drop a:focus-visible,.nav .cta:focus-visible,
.chip:focus-visible,button:focus-visible,a.hbrow:focus-visible{
  outline:2px solid var(--acc);outline-offset:2px;border-radius:6px
}

/* ==== Polish pass ==== */

/* 1. Sticky-header offset for internal anchors */
:target,section[id],h2[id],h3[id]{scroll-margin-top:96px}
@keyframes ck-target-glow{0%{box-shadow:0 0 0 2px var(--acc),0 0 0 6px rgba(45,106,231,.18)}70%{box-shadow:0 0 0 2px var(--acc),0 0 0 6px rgba(45,106,231,.10)}100%{box-shadow:0 0 0 0 transparent,0 0 0 0 transparent}}
:target{border-radius:6px;animation:ck-target-glow 1.6s ease-out .05s 1}
@media (prefers-reduced-motion:reduce){:target{animation:none}}

/* 2. Home mechanism-bar animation on first paint (transform-based, uses inline width) */
@keyframes hbar-in{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:no-preference){
  .hank .hbrow .hbar span{transform-origin:left center;animation:hbar-in .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:.15s}
  .hank .hbrow:nth-child(2) .hbar span{animation-delay:.22s}
  .hank .hbrow:nth-child(3) .hbar span{animation-delay:.29s}
  .hank .hbrow:nth-child(4) .hbar span{animation-delay:.36s}
  .hank .hbrow:nth-child(5) .hbar span{animation-delay:.43s}
  .hank .hbrow:nth-child(6) .hbar span{animation-delay:.5s}
}

/* 3. Catalogue row hover accent - subtle left-border tier tint */
.list:not(.grid) .card{position:relative;transition:background .14s ease}
.list:not(.grid) .card:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;background:transparent;border-radius:2px;transition:background .16s ease}
.list:not(.grid) .card:hover{background:rgba(45,106,231,.025)}
.list:not(.grid) .card:hover:before{background:var(--acc)}
.list:not(.grid) .card[data-tier="E1"]:hover:before{background:var(--e1)}
.list:not(.grid) .card[data-tier="E2"]:hover:before{background:var(--e2)}
.list:not(.grid) .card[data-tier="E3"]:hover:before{background:var(--e3)}

/* Mobile-only controlled hero break */
.mbr{display:none}
@media (max-width:640px){
  .mbr{display:block;width:0;height:0;line-height:0}
}

/* Landscape verdict-legend 4-cell strip */
.vlegend{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden}
.vlegend .vlcell{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-right:1px solid var(--line);position:relative}
.vlegend .vlcell:last-child{border-right:0}
.vlegend .vlcell:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--acc)}
.vlegend .vlcell.core:before{background:var(--e1)}
.vlegend .vlcell.adj:before{background:var(--e2)}
.vlegend .vlcell.gap:before{background:var(--e3)}
.vlegend .vlcell.wat:before{background:var(--acc)}
.vlegend .vlcell .tx{color:var(--tx);font-family:var(--sans);font-size:12.5px;line-height:1.4}
.vlegend .vd{display:inline-flex;align-items:center;padding:4px 10px;border-radius:5px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;align-self:flex-start;width:auto;max-width:max-content}
.vlegend .vd.core{background:#EDF2FD;color:#1D4FC4;border:1px solid #C7D7FA}
.vlegend .vd.adj{background:#FFFAEB;color:#B54708;border:1px solid #FEDF89}
.vlegend .vd.gap{background:#FEF3F2;color:#912018;border:1px solid #FECDCA}
.vlegend .vd.wat{background:#F0F4F9;color:#46586E;border:1px solid #CFD9E6}
@media(max-width:820px){.vlegend{grid-template-columns:1fr 1fr}.vlegend .vlcell:nth-child(2){border-right:0}.vlegend .vlcell:nth-child(1),.vlegend .vlcell:nth-child(2){border-bottom:1px solid var(--line)}}
@media(max-width:520px){.vlegend{grid-template-columns:1fr}.vlegend .vlcell{border-right:0;border-bottom:1px solid var(--line)}.vlegend .vlcell:last-child{border-bottom:0}}

/* Downloads: linked provenance codes */
.verpanel .vv a{color:inherit;text-decoration:none;border-bottom:1px dashed rgba(45,106,231,.35);transition:border-color .12s ease,color .12s ease}
.verpanel .vv a:hover{color:var(--acc);border-bottom-color:var(--acc)}
.verpanel .vv a code{color:inherit}
