/* 0.31.0: the coverage map (mode="coverage"). Uses the finder's palette tokens (rf.css) for the frame and text; the four
   shades are the map's own ramp (light to dark = fewer to more records), since the theme's dark palette flips the
   lightness of its greens and a token-based ramp would read backwards in dark mode. Dark mode: html[data-thc-theme="dark"]. */
.thc-rf--coverage { --thc-cov-1: #b9cfa9; --thc-cov-2: #8db07d; --thc-cov-3: #5e8a52; --thc-cov-4: #2f5a34; --thc-cov-mark-stroke: var(--thc-rf-raised); --thc-cov-none: var(--thc-rf-muted); }
html[data-thc-theme="dark"] .thc-rf--coverage { --thc-cov-1: #4f6a47; --thc-cov-2: #6f9263; --thc-cov-3: #93b587; --thc-cov-4: #c6e0b6; --thc-cov-mark-stroke: #15130f; --thc-cov-none: #45403a; }
.thc-cov__c--1 { fill: var(--thc-cov-1); background: var(--thc-cov-1); }
.thc-cov__c--2 { fill: var(--thc-cov-2); background: var(--thc-cov-2); }
.thc-cov__c--3 { fill: var(--thc-cov-3); background: var(--thc-cov-3); }
.thc-cov__c--4 { fill: var(--thc-cov-4); background: var(--thc-cov-4); }
.thc-cov { margin: 0; display: grid; gap: 1rem 1.5rem; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: start; }
.thc-cov__map { min-width: 0; position: relative; }
.thc-cov__svg { display: block; width: 100%; height: auto; background: var(--thc-rf-raised); border: 1px solid var(--thc-rf-border); border-radius: var(--thc-rf-radius); }
.thc-cov__land path { fill: var(--thc-cov-none); stroke: var(--thc-rf-raised); stroke-width: .6; }
.thc-cov__c { stroke: var(--thc-rf-raised); stroke-width: .6; cursor: pointer; transition: filter .15s; }
.thc-cov__mark { stroke: var(--thc-cov-mark-stroke); stroke-width: 1.2; cursor: pointer; }
.thc-cov__c.is-on, .thc-cov__mark.is-on, .thc-cov__c:focus-visible, .thc-cov__mark:focus-visible { filter: brightness(1.25); stroke: var(--thc-rf-text); stroke-width: 1.4; outline: none; }
.thc-cov__tip { position: absolute; left: 0; top: 0; margin: 0; padding: .35em .7em; font-size: var(--wp--preset--font-size--small, .875rem); background: var(--thc-rf-text); color: var(--thc-rf-canvas); border-radius: 6px; pointer-events: none; white-space: nowrap; transform: translate(-50%, calc(-100% - 10px)); z-index: 2; }
.thc-cov__legend { list-style: none; margin: .6rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem 1.1rem; font-size: var(--wp--preset--font-size--small, .875rem); color: var(--thc-rf-deep); }
.thc-cov__legend li { display: inline-flex; align-items: center; gap: .4em; }
.thc-cov__swatch { display: inline-block; width: .95em; height: .95em; border-radius: 3px; border: 1px solid var(--thc-rf-border); vertical-align: -.1em; margin-right: .45em; }
.thc-cov__swatch--none { background: var(--thc-cov-none); }
.thc-cov__table { width: 100%; border-collapse: collapse; font-size: var(--wp--preset--font-size--small, .875rem); background: var(--thc-rf-raised); border: 1px solid var(--thc-rf-border); border-radius: var(--thc-rf-radius); overflow: hidden; }
.thc-cov__table th, .thc-cov__table td { padding: .45em .7em; text-align: left; border-top: 1px solid var(--thc-rf-border); vertical-align: top; }
.thc-cov__table thead th { border-top: 0; background: var(--thc-rf-muted); color: var(--thc-rf-deep); font-weight: 600; }
.thc-cov__table tbody th { font-weight: 600; }
.thc-cov__table tbody tr { cursor: pointer; }
.thc-cov__table tbody tr.is-on, .thc-cov__table tbody tr:hover { background: var(--thc-rf-muted); }
.thc-cov__table tfoot th, .thc-cov__table tfoot td { font-weight: 700; border-top: 2px solid var(--thc-rf-border); }
.thc-cov__num { text-align: right !important; white-space: nowrap; font-variant-numeric: tabular-nums; }
.thc-cov__unit { display: block; font-size: .85em; color: var(--thc-rf-deep); font-weight: 400; white-space: normal; }
.thc-cov__note { grid-column: 1 / -1; font-size: var(--wp--preset--font-size--small, .875rem); color: var(--thc-rf-deep); margin: 0; }
@media (max-width: 760px) {
  .thc-cov { grid-template-columns: minmax(0, 1fr); }
  .thc-cov__table th, .thc-cov__table td { padding: .4em .5em; }
}
@media print { .thc-cov__tip { display: none !important; } }
/* 0.33.2: zoom and pan (coverage.js). Outlines keep their on-screen width at any zoom; the buttons sit at the map's bottom left, over the open South Pacific
   at every width (top right covered Japan on a phone). */
.thc-cov__svg path, .thc-cov__svg circle { vector-effect: non-scaling-stroke; }
.thc-cov__svg { touch-action: pan-y; }
.thc-cov__svg.is-zoomed { cursor: grab; }
.thc-cov__svg.is-dragging, .thc-cov__svg.is-dragging .thc-cov__c, .thc-cov__svg.is-dragging .thc-cov__mark { cursor: grabbing; }
.thc-cov__frame { position: relative; }
.thc-cov__zoom { position: absolute; bottom: .5rem; left: .5rem; display: flex; flex-direction: column; gap: .3rem; z-index: 1; }
.thc-cov__zbtn { width: 2.25rem; height: 2.25rem; padding: 0; display: inline-flex; align-items: center; justify-content: center; font: inherit; font-size: 1.25rem; line-height: 1; color: var(--thc-rf-text); background: var(--thc-rf-raised); border: 1px solid var(--thc-rf-border); border-radius: 6px; cursor: pointer; box-shadow: 0 1px 2px rgba(0, 0, 0, .12); -webkit-tap-highlight-color: transparent; }
.thc-cov__zbtn:hover:not(:disabled) { background: var(--thc-rf-muted); }
.thc-cov__zbtn:focus-visible { outline: 2px solid var(--thc-rf-text); outline-offset: 2px; }
.thc-cov__zbtn:disabled { opacity: .45; cursor: default; }
@media (pointer: coarse) { .thc-cov__zbtn { width: 2.75rem; height: 2.75rem; } }
@media (max-width: 760px) { .thc-cov__zoom { flex-direction: row; bottom: .4rem; left: .4rem; } } /* a stack would cover Hawaii on a phone */
@media print { .thc-cov__zoom { display: none !important; } }
/* 0.33.4: uncovered land has its own token. In dark mode the theme's muted color (#302c26) sat almost on the map's background (#25221d),
   so most of the world vanished (Micha, 2026-10-22); #45403a is a neutral gray clearly above the ocean and apart from the faintest green. */
