/* One rule for everything clickable on a card (Owen, 12 September 2026); see tile-link.js.
   .tile        the whole clickable area (a card, a header, a list row, a table row)
   .tile-link   the one real <a> inside it; its ::after covers the tile
   Anything else interactive inside a tile sits above the overlay and keeps its own click. */
@media screen{
.tile{position:relative}
.tile-link{color:inherit;text-decoration:none}
.tile-link::after{content:'';position:absolute;inset:0;border-radius:inherit;z-index:0}
.tile-link:focus-visible{outline:none}
.tile:has(>*>.tile-link:focus-visible,>.tile-link:focus-visible,>*>*>.tile-link:focus-visible){outline:2px solid #6499bb;outline-offset:1px}
.tile :is(a,button,input,select,summary,label,textarea):not(.tile-link){position:relative;z-index:1}
.tile:hover{background:var(--hv2-soft,#eef3ef)}
.tile:hover .tile-link{text-decoration:underline;text-underline-offset:3px}
/* A table row is a tile too: the class name's link covers the row. */
tr.tile{cursor:pointer}
tr.tile:hover>td{background:var(--hv2-soft,#eef3ef)}
tr.tile:has(.tile-link:focus-visible)>td{background:#e6f1fa}
tr.tile:has(.tile-link:focus-visible){outline:2px solid #6499bb;outline-offset:-2px}
/* The decorative "All classes ›" cue in a header is not a second target. */
.tile-more{pointer-events:none}
.tile-more .navigation-chevron,.tile .navigation-chevron{pointer-events:none}
}
@media print{.tile-link::after{display:none}}
