/* =============================================================
   LIVE ENFORCEMENT MAP · /enforcement/

   Page-scoped stylesheet. Namespace .igc-enf-*
   Reference: mockups/enforcement-map.html (approved).

   Layout:
     hero band (navy in both themes)
       crumbs / eyebrow / h1 + stat tiles
       cause filter chips
       map surface (d3, navy) + legend + detail strip (paper)
     grid: recent actions list | regulator temperature panel
============================================================= */

.igc-enf {
	--igc-enf-navy: #050B1A;
	--igc-enf-navy-2: #0F1E3C;
	--igc-enf-line-on-navy: rgba(148,163,184,0.14);
	--igc-enf-line-on-navy-mid: rgba(148,163,184,0.25);

	/* Surfaces below the band: dark theme defaults. */
	--igc-enf-card: var(--igc-bg-elev, #0A1426);
	--igc-enf-line: rgba(148,163,184,0.14);
	--igc-enf-text: var(--igc-text, #E2E8F0);
	--igc-enf-t2: #B8C4DA;
	--igc-enf-muted: var(--igc-text-dim, #94A3B8);
	--igc-enf-accent: #60A5FA;
	--igc-enf-soft: rgba(96,165,250,0.14);
	--igc-enf-track: rgba(148,163,184,0.18);
	--igc-enf-method-bg: rgba(255,255,255,0.03);
	--igc-enf-shadow: var(--igc-shadow-1, 0 1px 2px rgba(0,0,0,0.5), 0 2px 8px rgba(0,0,0,0.25));

	/* Paper (detail strip): dark theme defaults. */
	--igc-enf-paper: #0A1426;
	--igc-enf-paper-text: #E2E8F0;
	--igc-enf-paper-t2: #B8C4DA;
	--igc-enf-paper-muted: #94A3B8;
	--igc-enf-paper-line: rgba(148,163,184,0.16);

	--igc-enf-mono: "DM Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	--igc-enf-sans: var(--igc-font, "DM Sans", system-ui, sans-serif);

	color: var(--igc-enf-text);
	font-family: var(--igc-enf-sans);
	-webkit-font-smoothing: antialiased;
}
html.igc-light .igc-enf {
	--igc-enf-card: #FFFFFF;
	--igc-enf-line: rgba(15,30,60,0.12);
	--igc-enf-text: #0F172A;
	--igc-enf-t2: #3B4A63;
	--igc-enf-muted: #64748B;
	--igc-enf-accent: #1D4ED8;
	--igc-enf-soft: rgba(29,78,216,0.08);
	--igc-enf-track: #E2E8F0;
	--igc-enf-method-bg: #F8FAFC;
	--igc-enf-shadow: 0 1px 2px rgba(15,30,60,0.04), 0 6px 18px rgba(15,30,60,0.06);

	--igc-enf-paper: #FFFFFF;
	--igc-enf-paper-text: #0F172A;
	--igc-enf-paper-t2: #3B4A63;
	--igc-enf-paper-muted: #64748B;
	--igc-enf-paper-line: rgba(15,30,60,0.12);
}
.igc-enf a { text-decoration: none; color: inherit; }

/* ----------------------------------------------------------------
   HERO BAND
---------------------------------------------------------------- */
.igc-enf-hero {
	position: relative;
	overflow: hidden;
	padding: 2.1rem 0 0;
	color: #F1F5F9;
	background: radial-gradient(1200px 600px at 50% 0%, var(--igc-enf-navy-2), var(--igc-enf-navy) 70%);
	border-bottom: 1px solid var(--igc-enf-line-on-navy);
}
/* light-banner.css paints the same navy band in light mode; the
   gradient above keeps dark mode identical to the approved mock. */
html.igc-light .igc-enf-hero { background: radial-gradient(1200px 600px at 50% 0%, #0F1E3C, #050B1A 70%); }
.igc-enf-hero__inner { position: relative; z-index: 1; }

.igc-enf-crumbs {
	display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap;
	font-size: 14px; color: #A3B1C6; margin-bottom: 1.1rem;
}
.igc-enf-crumbs a { color: #CBD5E1; }
.igc-enf-crumbs a:hover { color: #FFFFFF; }

.igc-enf-top {
	display: flex; align-items: flex-end; justify-content: space-between;
	gap: 30px; margin-bottom: 18px;
}
.igc-enf-eyebrow {
	display: inline-flex; align-items: center; gap: 10px;
	font: 500 12px/1.3 var(--igc-enf-mono);
	letter-spacing: 0.14em; text-transform: uppercase;
	color: #CBD5E1; margin: 0 0 14px;
}
.igc-enf-eyebrow__live {
	flex: none; width: 8px; height: 8px; border-radius: 50%;
	background: #EF4444; box-shadow: 0 0 0 0 rgba(239,68,68,0.6);
	animation: igcEnfPulse 1.8s infinite;
}
@keyframes igcEnfPulse {
	0%   { box-shadow: 0 0 0 0 rgba(239,68,68,0.55); }
	70%  { box-shadow: 0 0 0 10px rgba(239,68,68,0); }
	100% { box-shadow: 0 0 0 0 rgba(239,68,68,0); }
}
.igc-enf-h1 {
	font: 800 clamp(34px, 4vw, 52px)/1.02 var(--igc-enf-sans);
	letter-spacing: -0.03em; max-width: 14ch; margin: 0; color: #FFFFFF;
}
.igc-enf-h1 em { font-style: normal; color: #93C5FD; }

/* Stat tiles */
.igc-enf-stats {
	display: flex; gap: 2px; flex: none;
	border: 1px solid rgba(148,163,184,0.18); border-radius: 14px;
	overflow: hidden; background: rgba(255,255,255,0.03);
}
.igc-enf-stat { padding: 16px 22px; border-right: 1px solid var(--igc-enf-line-on-navy); }
.igc-enf-stat:last-child { border-right: 0; }
.igc-enf-stat__l {
	font: 500 11px/1 var(--igc-enf-mono);
	letter-spacing: 0.14em; text-transform: uppercase; color: #7C8AA3; white-space: nowrap;
}
.igc-enf-stat__v {
	font: 600 26px/1 var(--igc-enf-mono);
	letter-spacing: -0.03em; margin-top: 9px; color: #FFFFFF; white-space: nowrap;
}
.igc-enf-stat__v small { font-size: 12px; color: #34D399; margin-left: 6px; letter-spacing: 0; }
.igc-enf-stat__press { font: 400 11px/1 var(--igc-enf-mono); color: #A3B1C6; margin-top: 7px; white-space: nowrap; letter-spacing: 0.02em; }

/* Filter chips */
.igc-enf-filters {
	display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 14px;
}
.igc-enf-f {
	appearance: none; -webkit-appearance: none;
	font: 500 13.5px/1 var(--igc-enf-sans); color: #CBD5E1;
	border: 1px solid var(--igc-enf-line-on-navy-mid); border-radius: 999px;
	padding: 8px 14px; display: inline-flex; align-items: center; gap: 8px;
	cursor: pointer; background: rgba(255,255,255,0.03);
	transition: background 0.15s var(--igc-ease, ease), color 0.15s, border-color 0.15s;
}
.igc-enf-f:hover { background: rgba(255,255,255,0.08); color: #FFFFFF; }
.igc-enf-f.is-on { background: #FFFFFF; color: #0F172A; border-color: #FFFFFF; }
.igc-enf-f:focus-visible { outline: 2px solid #93C5FD; outline-offset: 2px; }
.igc-enf-f__d { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.igc-enf-f__n { font: 400 11.5px/1 var(--igc-enf-mono); opacity: 0.7; }
/* Verified-only toggle (hides press-reported records) */
.igc-enf-toggle {
	appearance: none; -webkit-appearance: none;
	font: 500 13px/1 var(--igc-enf-sans); color: #A3B1C6;
	border: 1px dashed var(--igc-enf-line-on-navy-mid); border-radius: 999px;
	padding: 7px 13px; display: inline-flex; align-items: center; gap: 8px;
	cursor: pointer; background: transparent;
	transition: background 0.15s var(--igc-ease, ease), color 0.15s, border-color 0.15s;
}
.igc-enf-toggle:hover { color: #FFFFFF; border-color: #CBD5E1; }
.igc-enf-toggle:focus-visible { outline: 2px solid #93C5FD; outline-offset: 2px; }
.igc-enf-toggle__box {
	width: 12px; height: 12px; border-radius: 3px; flex: none;
	border: 1.5px solid currentColor; background: transparent; position: relative;
}
.igc-enf-toggle.is-on { color: #0F172A; background: #34D399; border: 1px solid #34D399; }
.igc-enf-toggle.is-on .igc-enf-toggle__box { background: #0F172A; border-color: #0F172A; }
.igc-enf-toggle.is-on .igc-enf-toggle__box::after {
	content: ""; position: absolute; left: 3px; top: 0.5px; width: 3px; height: 6px;
	border: solid #34D399; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.igc-enf-filters__range {
	margin-left: auto; font: 400 12.5px/1 var(--igc-enf-mono); color: #7C8AA3; letter-spacing: 0.06em;
}

/* Map surface */
.igc-enf-mapwrap {
	position: relative;
	border: 1px solid var(--igc-enf-line-on-navy);
	border-bottom: 0;
	border-radius: 18px 18px 0 0;
	background: rgba(255,255,255,0.02);
	overflow: hidden;
}
.igc-enf-map { width: 100%; height: 520px; display: block; background: transparent; }
.igc-enf-map .igc-enf-land { fill: #152546; stroke: #1E3260; stroke-width: 0.5; }
.igc-enf-map .igc-enf-graticule { fill: none; stroke: rgba(148,163,184,0.06); }
.igc-enf-map .igc-enf-mk { cursor: pointer; }
.igc-enf-map .igc-enf-mk__ring {
	fill: none; stroke-width: 1.5; opacity: 0.7;
	animation: igcEnfRing 2.2s ease-out infinite;
}
@keyframes igcEnfRing { 0% { r: 6; opacity: 0.7; } 100% { r: 26; opacity: 0; } }
.igc-enf-map .igc-enf-mk__core { stroke: #050B1A; stroke-width: 1.5; transition: stroke 0.15s, stroke-width 0.15s; }
/* Press-reported: hollow, outlined in the cause colour (custom property set inline on the group). */
.igc-enf-map .igc-enf-mk--press .igc-enf-mk__core { fill: transparent; stroke: var(--igc-enf-c, #94A3B8); stroke-width: 2; }
.igc-enf-map .igc-enf-mk:hover .igc-enf-mk__core,
.igc-enf-map .igc-enf-mk.is-active .igc-enf-mk__core { stroke: #FFFFFF; stroke-width: 2; }
.igc-enf-map .igc-enf-mk text {
	font: 500 10.5px var(--igc-enf-mono); fill: #FFFFFF;
	paint-order: stroke; stroke: #050B1A; stroke-width: 3px; stroke-linejoin: round;
	pointer-events: none;
}
.igc-enf-map__note {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
	margin: 0; font: 500 13px/1.4 var(--igc-enf-mono); color: #7C8AA3;
	background: rgba(5,11,26,0.75); border: 1px solid var(--igc-enf-line-on-navy-mid);
	border-radius: 10px; padding: 10px 14px;
}
.igc-enf-legend {
	display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px;
	padding: 10px 18px; font-size: 12.5px; color: #CBD5E1;
	border-top: 1px solid var(--igc-enf-line-on-navy);
	background: rgba(255,255,255,0.02);
}
.igc-enf-legend__c { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.igc-enf-legend i { width: 9px; height: 9px; border-radius: 50%; display: inline-block; flex: none; }
.igc-enf-legend__sz {
	margin-left: auto; color: #7C8AA3; font: 400 11px/1.4 var(--igc-enf-mono);
	display: inline-flex; align-items: center; flex-wrap: wrap; gap: 0 5px;
}
.igc-enf-legend i.igc-enf-legend__hollow { background: transparent; border: 1.5px solid #CBD5E1; width: 8px; height: 8px; }

/* Detail strip (paper) */
.igc-enf-detail {
	background: var(--igc-enf-paper);
	color: var(--igc-enf-paper-text);
	border-top: 1px solid var(--igc-enf-paper-line);
	padding: 18px 22px;
	display: grid; grid-template-columns: 230px 1fr auto; gap: 26px; align-items: center;
}
.igc-enf-detail__k {
	font: 500 11px/1.3 var(--igc-enf-mono);
	letter-spacing: 0.14em; text-transform: uppercase; color: var(--igc-enf-paper-muted);
	display: flex; justify-content: space-between; gap: 10px; margin-bottom: 10px;
}
.igc-enf-detail__amt { font: 600 30px/1 var(--igc-enf-mono); letter-spacing: -0.03em; color: var(--igc-enf-paper-text); }
.igc-enf-detail__amt small { font-size: 13px; color: var(--igc-enf-paper-muted); letter-spacing: 0; margin-left: 8px; }
.igc-enf-detail__noamt { font-size: 18px; letter-spacing: -0.01em; }
.igc-enf-detail__body h3 { font: 600 16px/1.3 var(--igc-enf-sans); margin: 0 0 5px; color: var(--igc-enf-paper-text); }
.igc-enf-detail__body p { font-size: 13.5px; color: var(--igc-enf-paper-t2); line-height: 1.5; margin: 0; }
.igc-enf-detail__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.igc-enf-detail__src { font-size: 12.5px; color: var(--igc-enf-paper-muted); text-align: right; line-height: 1.7; white-space: nowrap; }
.igc-enf-detail__src a { color: var(--igc-enf-accent); font-weight: 600; }
.igc-enf-detail__src a:hover { text-decoration: underline; }

/* Chips shared by the detail strip and the list */
.igc-enf-chip {
	display: inline-block;
	font: 500 11.5px/1 var(--igc-enf-mono);
	color: var(--igc-enf-accent); background: var(--igc-enf-soft);
	border-radius: 6px; padding: 6px 8px; white-space: nowrap;
}
.igc-enf-detail .igc-enf-chip { color: var(--igc-enf-accent); }
a.igc-enf-chip:hover { text-decoration: underline; }
.igc-enf-chip--cause { color: #FFFFFF; }
.igc-enf-detail .igc-enf-chip--cause { color: #FFFFFF; }
.igc-enf-chip--plain { color: var(--igc-enf-muted); background: var(--igc-enf-soft); }
.igc-enf-detail .igc-enf-chip--plain { color: var(--igc-enf-paper-muted); }
.igc-enf-case__cites .igc-enf-chip { font-size: 11px; padding: 5px 7px; border-radius: 5px; }
/* Press-reported tier: amber, dashed, deliberately distinct from provision chips */
.igc-enf-chip--press { color: #FBBF24; background: rgba(245,158,11,0.12); border: 1px dashed rgba(245,158,11,0.55); }
.igc-enf-detail .igc-enf-chip--press { color: #FBBF24; }
html.igc-light .igc-enf-chip--press, html.igc-light .igc-enf-detail .igc-enf-chip--press { color: #B45309; }
.igc-enf-srcnote {
	font: 400 11.5px/1.4 var(--igc-enf-mono); color: var(--igc-enf-muted);
	margin: 7px 0 0; letter-spacing: 0.01em;
}
.igc-enf-detail .igc-enf-srcnote { color: var(--igc-enf-paper-muted); }
.igc-enf-case__src { display: inline-block; margin-top: 7px; font-size: 12.5px; font-weight: 600; color: var(--igc-enf-accent); }
.igc-enf-case__src:hover { text-decoration: underline; }

/* ----------------------------------------------------------------
   BELOW THE BAND
---------------------------------------------------------------- */
.igc-enf-grid {
	display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 24px;
	padding-top: 28px; padding-bottom: 70px; align-items: start;
}
.igc-enf-panel {
	background: var(--igc-enf-card);
	border: 1px solid var(--igc-enf-line);
	border-radius: 16px;
	box-shadow: var(--igc-enf-shadow);
	overflow: hidden;
}
.igc-enf-panel__h {
	display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
	padding: 18px 22px; border-bottom: 1px solid var(--igc-enf-line);
}
.igc-enf-panel__h h2 { font: 700 17px/1.2 var(--igc-enf-sans); letter-spacing: -0.01em; margin: 0; color: var(--igc-enf-text); }
.igc-enf-panel__sub { font-size: 13px; color: var(--igc-enf-muted); }

/* Case rows */
.igc-enf-case {
	display: grid; grid-template-columns: 110px minmax(0, 1fr) 120px; gap: 16px;
	padding: 16px 22px; border-bottom: 1px solid var(--igc-enf-line); align-items: start;
	transition: background 0.15s;
}
.igc-enf-case:last-child { border-bottom: 0; }
.igc-enf-case.is-active { background: var(--igc-enf-soft); }
.igc-enf-case[hidden] { display: none; }
.igc-enf-case__when { font: 400 12px/1.5 var(--igc-enf-mono); color: var(--igc-enf-muted); }
.igc-enf-case__when b { display: block; font-weight: 500; color: var(--igc-enf-text); font-size: 13px; }
.igc-enf-case__body h4 { font: 600 15px/1.35 var(--igc-enf-sans); margin: 0; color: var(--igc-enf-text); }
.igc-enf-case__body p { font-size: 13.5px; color: var(--igc-enf-t2); line-height: 1.5; margin: 4px 0 0; }
.igc-enf-case__cites { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.igc-enf-case__amt { text-align: right; font: 600 16px/1.2 var(--igc-enf-mono); letter-spacing: -0.02em; color: var(--igc-enf-text); }
.igc-enf-case__amt small { display: block; font: 400 11px/1.3 var(--igc-enf-mono); color: var(--igc-enf-muted); margin-top: 4px; letter-spacing: 0.04em; }
.igc-enf-case__dash { color: var(--igc-enf-muted); }
.igc-enf-empty { padding: 22px; margin: 0; font-size: 13.5px; color: var(--igc-enf-muted); }

/* Feed / footer row */
.igc-enf-feed { display: flex; gap: 10px; flex-wrap: wrap; padding: 14px 22px; border-top: 1px solid var(--igc-enf-line); }
.igc-enf-feed a {
	font-size: 13px; font-weight: 600; color: var(--igc-enf-accent);
	background: var(--igc-enf-soft); border-radius: 8px; padding: 9px 12px;
	transition: background 0.15s;
}
.igc-enf-feed a:hover { text-decoration: underline; }
.igc-enf-embed { padding: 0 22px 18px; }
.igc-enf-embed code {
	display: block; font: 400 12px/1.6 var(--igc-enf-mono); color: var(--igc-enf-t2);
	background: var(--igc-enf-method-bg); border: 1px solid var(--igc-enf-line);
	border-radius: 8px; padding: 10px 12px; white-space: pre-wrap; word-break: break-all;
}

/* Temperature panel */
.igc-enf-temp { padding: 6px 0; }
.igc-enf-trow {
	display: grid; grid-template-columns: 34px minmax(0, 1fr) 90px; gap: 12px; align-items: center;
	padding: 12px 22px; border-bottom: 1px solid var(--igc-enf-line);
}
.igc-enf-trow:last-child { border-bottom: 0; }
.igc-enf-trow__flag { font-size: 20px; line-height: 1; }
.igc-enf-trow__n { font-size: 14.5px; font-weight: 600; color: var(--igc-enf-text); }
.igc-enf-trow__m { font: 400 11.5px/1.4 var(--igc-enf-mono); color: var(--igc-enf-muted); margin-top: 3px; }
.igc-enf-bar { height: 6px; border-radius: 3px; background: var(--igc-enf-track); overflow: hidden; margin-top: 6px; }
.igc-enf-bar i { display: block; height: 100%; border-radius: 3px; }
.igc-enf-trow__t { text-align: right; font: 600 18px/1 var(--igc-enf-mono); color: var(--igc-enf-text); }
.igc-enf-trow__t small {
	display: block; font: 400 10.5px/1 var(--igc-enf-mono); color: var(--igc-enf-muted);
	margin-top: 4px; letter-spacing: 0.06em; text-transform: uppercase;
}
.igc-enf-method {
	padding: 16px 22px; font-size: 13px; color: var(--igc-enf-t2); line-height: 1.55;
	border-top: 1px solid var(--igc-enf-line); background: var(--igc-enf-method-bg);
}
.igc-enf-method b { color: var(--igc-enf-text); }

/* ----------------------------------------------------------------
   RESPONSIVE
---------------------------------------------------------------- */
@media (max-width: 1080px) {
	.igc-enf-grid { grid-template-columns: 1fr; }
	.igc-enf-top { flex-direction: column; align-items: flex-start; }
	.igc-enf-stats { width: 100%; overflow-x: auto; }
	.igc-enf-stat { flex: 1 0 auto; }
}
@media (max-width: 760px) {
	.igc-enf-map { height: auto; aspect-ratio: 1224 / 620; min-height: 300px; }
	.igc-enf-legend { padding: 8px 12px; gap: 4px 12px; font-size: 12px; }
	.igc-enf-legend__sz { margin-left: 0; flex-basis: 100%; }
	.igc-enf-filters__range { display: none; }
	.igc-enf-detail { grid-template-columns: 1fr; gap: 12px; padding: 16px; }
	.igc-enf-detail__src { text-align: left; white-space: normal; }
	.igc-enf-case { grid-template-columns: 1fr; gap: 8px; padding: 14px 16px; }
	.igc-enf-case__amt { text-align: left; }
	.igc-enf-case__amt small { display: inline; margin-left: 6px; }
	.igc-enf-panel__h, .igc-enf-trow, .igc-enf-method, .igc-enf-feed { padding-left: 16px; padding-right: 16px; }
	.igc-enf-stat { padding: 12px 14px; }
	.igc-enf-stat__v { font-size: 22px; }
}

@media (prefers-reduced-motion: reduce) {
	.igc-enf-eyebrow__live, .igc-enf-map .igc-enf-mk__ring { animation: none; }
}

.igc-enf-more { display: block; width: 100%; margin: 0; padding: 0.9rem 1rem; border: 0; border-top: 1px solid var(--igc-border); background: var(--igc-bg-glass); color: var(--igc-accent); font: 600 0.9rem/1 var(--igc-font); cursor: pointer; }
.igc-enf-more:hover { background: var(--igc-accent-soft); }
.igc-enf-more[hidden] { display: none; }
