/* Static CCH viewer — styling ported from the portal's v2 UI (?ui=v2):
   css/front/v2-panel.css, application-overlay.css (splash), OLLegend.css and
   application.css, adapted from OpenLayers/Bootstrap to Leaflet + plain CSS. */

/* ------------------------------------------------------------ base */
* { box-sizing: border-box; }
html, body {
	height: 100%; margin: 0; padding: 0; overflow: hidden;
	min-width: 320px;
	font-family: Frutiger, "Frutiger Linotype", Univers, Calibri, "Gill Sans", "Gill Sans MT", "Myriad Pro", Myriad, "DejaVu Sans Condensed", "Liberation Sans", "Nimbus Sans L", Tahoma, Geneva, "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 14px; line-height: 1.42857;
	color: #666;
}
a { color: #337ab7; text-decoration: none; }
a:hover, a:focus { color: #23527c; text-decoration: underline; }
button { font-family: inherit; }
img { vertical-align: middle; }
.hidden { display: none !important; }

/* Bootstrap-ish buttons used by the v2 markup */
.btn {
	display: inline-block; padding: 6px 12px; margin: 0; font-size: 14px; font-weight: 400;
	line-height: 1.42857; text-align: center; white-space: nowrap; vertical-align: middle;
	cursor: pointer; border: 1px solid transparent; border-radius: 4px; user-select: none;
}
.btn-default { color: #333; background: #fff; border-color: #ccc; }
.btn-default:hover { background: #e6e6e6; border-color: #adadad; }
.btn-primary { color: #fff; background: #337ab7; border-color: #2e6da4; }
.btn-primary:hover { background: #286090; border-color: #204d74; }

/* ------------------------------------------------------------ layout */
#content-column.cch-v2 {
	display: flex; height: 100%; padding: 0; position: relative;
}
#content-column.cch-v2 #map {
	flex: 1 1 auto; width: auto; height: 100%; position: relative; z-index: 0;
	background: #b3c9d9;
}
/* Hard-fixed width: without min-width 0/overflow hidden, long nowrap labels in
   deep branches force the flex item wider than its basis. */
#cch-v2-panel {
	flex: 0 0 400px; width: 400px; min-width: 400px; max-width: 400px;
	overflow: hidden; height: 100%; display: flex; flex-direction: column;
	background: #fff; border-right: 1px solid rgba(0, 0, 0, 0.12); font-size: 15px;
}
/* Panel header: logo + site title */
#cch-v2-header {
	display: flex; align-items: center; gap: 10px; flex: 0 0 auto;
	padding: 8px 10px; background: #00264c;
}
#cch-v2-header-logo { height: 36px; }
#cch-v2-site-title {
	color: #fff; font-size: 18px; font-weight: 700; line-height: 1.2; text-decoration: none;
	white-space: nowrap; flex: 1 1 auto; min-width: 0; overflow: hidden;
}
#cch-v2-site-title:hover { color: #fff; text-decoration: none; }

/* Help: floating control on the top-right of the map */
#cch-v2-help { position: absolute; top: 10px; right: 10px; z-index: 20; }
#cch-v2-help > a {
	display: block; width: 34px; height: 34px; text-align: center; line-height: 34px;
	font-size: 19px; color: #00264c; background: #fff; border-radius: 50%;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}
#cch-v2-help > a:hover { color: #00264c; background: #f0f4f8; text-decoration: none; }
.dropdown-menu {
	position: absolute; top: 100%; right: 0; margin: 4px 0 0; padding: 5px 0; min-width: 190px;
	list-style: none; background: #fff; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 4px;
	box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); font-size: 14px;
}
.dropdown-menu > li > a { display: block; padding: 3px 20px; white-space: nowrap; color: #333; }
.dropdown-menu > li > a:hover { background: #f5f5f5; text-decoration: none; }
.dropdown-menu .fa { width: 16px; color: #00264c; }

/* ------------------------------------------------------------ tabs */
#cch-v2-tabs { display: flex; flex: 0 0 auto; border-bottom: 1px solid rgba(0, 0, 0, 0.12); }
.cch-v2-tab {
	flex: 1 1 0; padding: 8px 4px; border: none; background: #f5f5f5; color: #444;
	font-size: 15px; cursor: pointer; transition: background 0.15s ease, transform 0.15s ease;
}
.cch-v2-tab-bump { transform: scale(1.15); background: #cfe0f2; color: #00264c; }
.cch-v2-tab:hover { background: #e8e8e8; }
.cch-v2-tab-active { background: #fff; font-weight: 700; box-shadow: inset 0 -2px 0 #00264c; }
.cch-v2-basket-count {
	display: inline-block; min-width: 16px; padding: 0 4px; margin-left: 2px; border-radius: 8px;
	background: #00264c; color: #fff; font-size: 11px;
}
.cch-v2-pane { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; }
#cch-v2-tree-scroll {
	flex: 1 1 auto; overflow-y: auto; overflow-x: hidden; min-height: 0; padding: 6px 0;
	scrollbar-gutter: stable;
}

/* ------------------------------------------------------------ tree */
#cch-v2-tree, #cch-v2-tree ul { list-style: none; margin: 0; padding: 0; }
#cch-v2-tree ul { padding-left: 18px; }
.cch-v2-row {
	display: flex; align-items: center; padding: 3px 8px 3px 4px; border-radius: 4px;
	transition: background 0.15s ease; -webkit-user-select: none; user-select: none;
}
.cch-v2-row:hover { background: #f0f4f8; }
.cch-v2-row-selected, .cch-v2-row-selected:hover { background: #dce8f5; }
.cch-v2-caret {
	flex: 0 0 22px; border: none; background: none; color: #555; padding: 2px; cursor: pointer;
	font-size: 17px; line-height: 1;
}
.cch-v2-caret .fa { transition: transform 0.15s ease; }
.cch-v2-caret-open .fa { transform: rotate(90deg); }
.cch-v2-caret-leaf { color: #999; }
.cch-v2-row-label {
	flex: 1 1 auto; padding: 2px 4px; cursor: pointer; white-space: normal; overflow-wrap: break-word;
	min-width: 0; line-height: 1.35; font-size: 16px; outline: none;
}
.cch-v2-row-label:focus-visible { text-decoration: underline; }
#cch-v2-tree > li > .cch-v2-row > .cch-v2-row-label { font-size: 20px; }
.cch-v2-check {
	flex: 0 0 28px; border: none; background: none; color: #999; cursor: pointer; padding: 2px;
	font-size: 16px; line-height: 1;
}
.cch-v2-check:hover { color: #00264c; }
.cch-v2-check-on { color: #00264c; }
.cch-v2-check-partial { color: #5b87b5; }
.cch-v2-row-flash { background: #ffe9a8 !important; }

/* Top-level row badges (Active storm / New) — inline INSIDE the label */
.cch-v2-storm-badge {
	display: inline-block; background: #b95d00; color: #fff; font-size: 10px; font-weight: 700;
	text-transform: uppercase; letter-spacing: 0.03em; border-radius: 3px; padding: 1px 6px;
	margin-left: 6px; white-space: nowrap; vertical-align: 2px;
}
.cch-v2-new-badge { background: #2a6496; }

/* Inline detail card, tucked under its row */
.cch-v2-detail-inner { margin: 2px 8px 8px 26px; padding: 4px 8px 6px 4px; overflow: hidden; }
.cch-v2-detail-thumb {
	float: right; width: 96px; max-height: 96px; margin: 0 0 6px 8px;
	border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 4px; cursor: pointer;
}
.cch-v2-detail-text { font-size: 14px; white-space: normal; }
.cch-v2-detail-text img { max-width: 100%; }
.cch-v2-detail-actions { clear: both; margin-top: 6px; display: flex; flex-wrap: wrap; gap: 4px; }
.cch-v2-detail-btn {
	border: none; background: none; border-radius: 4px; padding: 3px 8px; color: #2a6496;
	font-size: 12px; cursor: pointer; transition: background 0.15s ease;
}
.cch-v2-detail-btn:hover { background: #f0f4f8; }
.cch-v2-detail-btn:disabled { color: #aaa; cursor: default; background: none; }
.cch-v2-detail-show { min-width: 112px; text-align: center; }
.cch-v2-detail-show-on { background: #dce8f5; color: #00264c; font-weight: 700; }
.cch-v2-detail-show-on:hover { background: #cfe0f2; }

/* ------------------------------------------------------------ info panel */
#cch-v2-info {
	position: absolute; top: 0; bottom: 0; left: 400px; width: 400px; z-index: 25;
	display: flex; flex-direction: column; background: #fff;
	border-right: 1px solid rgba(0, 0, 0, 0.15); box-shadow: 3px 0 10px rgba(0, 0, 0, 0.2);
	font-size: 15px;
}
#cch-v2-info-header {
	flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between;
	padding: 8px 10px; border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
.cch-v2-info-page-link { font-size: 13px; }
.cch-v2-info-close {
	border: none; background: none; color: #888; font-size: 20px; line-height: 1; padding: 2px 8px; cursor: pointer;
}
.cch-v2-info-close:hover { color: #333; }
.cch-v2-info-title { flex: 0 0 auto; font-size: 18px; font-weight: 700; padding: 10px 12px 6px; white-space: normal; }
.cch-v2-info-body { flex: 1 1 auto; overflow-y: auto; min-height: 0; padding: 0 12px 14px; scrollbar-gutter: stable; }
.cch-v2-info-thumb {
	float: right; width: 140px; max-width: 45%; margin: 0 0 8px 10px;
	border: 1px solid rgba(0, 0, 0, 0.12); border-radius: 4px; cursor: pointer;
}
.cch-v2-info-text { font-size: 14px; white-space: normal; }
.cch-v2-info-text img { max-width: 100%; }
.cch-v2-info-actions { clear: both; display: flex; align-items: center; gap: 6px; margin: 10px 0 2px; }
.cch-v2-info-heading { font-weight: 700; margin: 12px 0 4px; }
.cch-v2-info-link { padding: 2px 0; overflow-wrap: break-word; font-size: 13px; }
.cch-v2-info-facts { font-size: 13px; }
.cch-v2-info-facts div { padding: 1px 0; }
.cch-v2-info-factkey { display: inline-block; min-width: 72px; color: #888; }
.cch-v2-info-legend img { display: block; max-width: 100%; margin: 4px 0; }

/* ------------------------------------------------------------ search tab */
#cch-v2-search-bar { display: flex; gap: 6px; padding: 10px; border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
#cch-v2-search-input {
	flex: 1 1 auto; min-width: 0; padding: 5px 8px; border: 1px solid rgba(0, 0, 0, 0.25); border-radius: 4px;
	font: inherit; font-size: 14px; color: #555;
}
#cch-v2-search-clear { flex: 0 0 auto; border: none; background: none; color: #888; padding: 4px 6px; cursor: pointer; }
#cch-v2-search-clear:hover { color: #333; }
#cch-v2-search-results { flex: 1 1 auto; overflow-y: auto; min-height: 0; padding: 6px 0; scrollbar-gutter: stable; }
.cch-v2-search-heading { font-weight: 700; padding: 8px 10px 4px; color: #555; }
.cch-v2-result { padding: 5px 10px; cursor: pointer; transition: background 0.15s ease; }
.cch-v2-result:hover { background: #f0f4f8; }
.cch-v2-result .fa { color: #00264c; width: 16px; }
.cch-v2-result-open { font-weight: 700; }
.cch-v2-show-more { color: #2a6496; font-style: italic; }
#cch-v2-search-tools { display: flex; align-items: center; gap: 8px; padding: 2px 10px 0; }
.cch-v2-search-area-on { background: #dce8f5; color: #00264c; }
#cch-v2-search-area-hint { font-size: 12px; color: #777; }
.cch-v2-search-empty { padding: 4px 10px 8px; color: #888; font-size: 13px; }

/* Inline info expansion (search results + basket rows) */
.cch-v2-expand { padding: 4px 10px 8px 26px; overflow: hidden; }
.cch-v2-expand-text { font-size: 14px; white-space: normal; }
.cch-v2-expand-actions { clear: both; margin-top: 6px; display: flex; flex-wrap: wrap; gap: 4px; }

/* ------------------------------------------------------------ basket tab */
#cch-v2-basket-list { flex: 1 1 auto; overflow-y: auto; min-height: 0; padding: 6px 0; scrollbar-gutter: stable; }
.cch-v2-basket-empty { padding: 14px 12px; color: #777; }
.cch-v2-recent-heading {
	margin-top: 14px; padding: 6px 10px 2px; border-top: 1px solid rgba(0, 0, 0, 0.08); color: #888;
	font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em;
}
.cch-v2-recent-row .cch-v2-basket-label { color: #666; cursor: default; }
.cch-v2-basket-row { display: flex; align-items: center; padding: 4px 8px; -webkit-user-select: none; user-select: none; }
.cch-v2-basket-row:hover { background: #f0f4f8; }
.cch-v2-basket-caret { flex: 0 0 18px; text-align: center; color: #888; cursor: pointer; }
.cch-v2-basket-caret .fa { transition: transform 0.15s ease; }
.cch-v2-basket-caret-open .fa { transform: rotate(90deg); }
.cch-v2-basket-handle { flex: 0 0 22px; color: #bbb; cursor: grab; padding: 2px; }
.cch-v2-basket-handle:hover { color: #00264c; }
.cch-v2-basket-item.cch-v2-dragging { opacity: 0.4; }
.cch-v2-basket-item.cch-v2-dragover { box-shadow: inset 0 2px 0 #2a6496; }
.cch-v2-basket-label { flex: 1 1 auto; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cch-v2-basket-btn { flex: 0 0 28px; border: none; background: none; color: #777; cursor: pointer; padding: 3px; font-size: 15px; }
.cch-v2-basket-btn:hover { color: #00264c; }
#cch-v2-basket-footer { flex: 0 0 auto; padding: 8px 10px; border-top: 1px solid rgba(0, 0, 0, 0.08); }
#cch-v2-basket-footer .btn { margin-right: 6px; font-size: 13px; }

/* ------------------------------------------------------------ map: Leaflet controls restyled like the portal's OL controls */
.leaflet-container { font: inherit; }
.leaflet-top .leaflet-control { margin-top: 7px; }
.leaflet-left .leaflet-control { margin-left: 7px; }
.leaflet-bottom .leaflet-control { margin-bottom: 8px; }
/* Zoom (+ zoom-to-location appended into the same bar) — OL .ol-zoom look */
.leaflet-control-zoom.leaflet-bar {
	border: none; border-radius: 4px; padding: 2px; background: rgba(255, 255, 255, 0.4); box-shadow: none;
}
.leaflet-control-zoom.leaflet-bar a, .leaflet-control-zoom.leaflet-bar a:hover {
	display: block; width: 19px; height: 19px; line-height: 19px; margin: 1px; padding: 0;
	border: none; border-radius: 2px; background: rgba(0, 51, 102, 0.7); color: #fff;
	font: 700 16px/19px "Helvetica Neue", Helvetica, Arial, sans-serif; text-align: center;
}
.leaflet-control-zoom.leaflet-bar a:hover, .leaflet-control-zoom.leaflet-bar a:focus { background: rgba(0, 51, 102, 0.9); }
.leaflet-control-zoom.leaflet-bar a.leaflet-disabled { background: rgba(0, 51, 102, 0.35); color: rgba(255, 255, 255, 0.6); }
.leaflet-control-zoom.leaflet-bar a.cch-zoom-to-location { padding: 0; overflow: hidden; }
.leaflet-control-zoom.leaflet-bar a.cch-zoom-to-location img { width: 19px; height: 19px; display: block; }
/* Scale line — OL .ol-scale-line look */
.leaflet-control-scale { }
.leaflet-control-scale-line {
	border: 1px solid #d3d3d3; border-top: none; color: #d3d3d3; font-size: 10px; text-align: center;
	background: rgba(0, 60, 136, 0.3); padding: 2px 5px 1px; box-shadow: none; line-height: 1.1;
	text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
}
.leaflet-control-scale-line:not(:first-child) { display: none; }
/* Our footbar replaces the Leaflet attribution control */
.leaflet-control-attribution { display: none; }
/* Identify popup — the portal's #feature-identification-popup chrome */
.leaflet-popup-content-wrapper {
	border-radius: 6px; border: 1px solid #ccc; box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4); color: #333;
}
.leaflet-popup-tip { box-shadow: none; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; }
.gfi-popup .leaflet-popup-content { margin: 10px 12px; font-size: 13px; line-height: 1.4; }
.gfi-box { min-width: 240px; }
.gfi-head { font-weight: 700; color: #00264c; margin-bottom: 4px; }
.gfi-row { display: flex; align-items: center; gap: 10px; padding: 3px 0; border-top: 1px solid #eee; }
.gfi-title { flex: 1 1 auto; min-width: 0; }
.gfi-link { flex: 0 0 auto; font-size: 12px; white-space: nowrap; }
.gfi-note { font-size: 11px; color: #7b8fa3; margin: 6px 0 0; }
.hoverbox { pointer-events: none; }
.leaflet-container a.leaflet-popup-close-button { color: #888; }

/* Basemap switcher: bottom-left card over the map */
/* Inside #map, Leaflet's panes/controls sit at z-index 400–1000: our widgets go above */
#cch-v2-basemaps {
	position: absolute; left: 12px; bottom: 44px; z-index: 1005; display: flex; align-items: flex-end; gap: 6px;
}
.cch-v2-basemap-card {
	border: 2px solid #fff; border-radius: 8px; background: #fff; padding: 0; cursor: pointer;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35); overflow: hidden; position: relative; width: 72px; height: 72px;
}
.cch-v2-basemap-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cch-v2-basemap-card span {
	position: absolute; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.55); color: #fff;
	font-size: 11px; font-weight: 700; padding: 2px 4px; text-align: center;
}
.cch-v2-basemap-card:hover { border-color: #cfe0f2; }
.cch-v2-basemap-active { border-color: #2a6496; }
.cch-v2-basemaps-row {
	display: flex; align-items: flex-end; gap: 6px; background: rgba(255, 255, 255, 0.92);
	border-radius: 10px; padding: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}
.cch-v2-basemaps-collapsed .cch-v2-basemaps-row { display: none; }
.cch-v2-basemap-places { font-size: 12px; font-weight: 400; margin: 0 2px 2px 4px; white-space: nowrap; cursor: pointer; align-self: center; }

/* Map legend (OLLegend.css): dark strip at the bottom-right with a light inner box */
.cchMapLegend { position: absolute; bottom: 0.5rem; right: 0; z-index: 1005; max-width: 300px; width: 35%; }
.cchMapLegendElement { border-radius: 6px 0 0 6px; padding: 10px 5px 10px 35px; background: rgba(0, 51, 102, 0.7); }
.cchMapLegendMinimizeButton, .cchMapLegendMaximizeButton {
	cursor: pointer; width: 30px; height: 30px; line-height: 30px; text-align: center; color: #fff;
	font-size: 16px; background: rgba(0, 51, 102, 0.7); border-radius: 4px;
}
.cchMapLegendMinimizeButton:hover, .cchMapLegendMaximizeButton:hover { background: #003366; }
.cchMapLegendMaximizeButton { position: absolute; right: 0; bottom: 0; }
.cchMapLegendMinimizeButton { position: absolute; left: 4px; top: 4px; z-index: 1; }
#cchMapLegendInnerContainer {
	background-color: #f5f5f5; height: fit-content; max-height: 60vh; min-height: 20vh; overflow-y: auto; padding: 4px;
}
.cch-legend-block { padding: 2px 2px 6px; }
.cch-legend-block + .cch-legend-block { border-top: 1px solid #e3e3e3; margin-top: 4px; }
.cch-legend-caption { font-size: 13px; font-weight: 600; color: #444; margin: 2px 0; }
.cch-legend-block > img { display: block; max-width: 100%; margin: 2px 0 0 4px; }
.cch-legend-tables table { display: inline-table; width: 100%; border-collapse: collapse; color: #333; }
.cch-legend-tables table > caption { display: table-caption; caption-side: top; text-align: left; font-size: 13px; font-weight: 600; padding: 4px 4px 2px; }
.cch-legend-tables table th, .cch-legend-tables table td { width: auto; padding: 1px 4px; }
.cch-legend-tables table thead td { font-size: 0.75em; padding-bottom: 0; }
.cch-legend-tables table tbody tr td { vertical-align: middle; font-size: 0.75em; }
.cch-legend-tables table tbody tr td.categorical_legend_color_entry { vertical-align: middle; text-align: right; }
.cch-legend-tables table tbody tr td.discrete_legend_color_entry { text-align: right; }
.cch-legend-tables table tbody .continuous_legend_color_ramp { width: 20%; min-width: 20px; max-width: 40px; }
.cch-legend-tables table tbody .continuous_legend_text_cell { font-size: 1.25em; white-space: pre-line; line-height: 1.2; }
.cch-legend-tables table tbody .continuous_legend { table-layout: fixed; }
.cch-legend-tables table tbody .continuous_legend_text_table td { padding: 0 6px; }
.cch-legend-tables table tbody .discrete_legend_text_cell { font-size: 0.75em; }
.cch-legend-tables table tbody td:first-child { text-align: left; }
.cch-legend-tables table tbody td:first-child span {
	height: 10px; border: 1px solid #e3e3e3; display: inline-block; margin-left: 5px; margin-right: 5px; width: 15px;
}
.cch-legend-tables table tbody td:first-child span.legend-symbol-point { width: 10px; border-radius: 50%; border: none; }
.cch-legend-tables table tbody td:first-child span.legend-symbol-line { height: 3px; border: none; margin-top: 3px; margin-bottom: 3px; }

/* Right-click map context menu */
#cch-v2-mapmenu {
	position: fixed; z-index: 3000; min-width: 220px; background: #fff; border: 1px solid rgba(0, 0, 0, 0.15);
	border-radius: 6px; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2); padding: 4px 0;
}
.cch-v2-mapmenu-item {
	display: block; width: 100%; border: none; background: none; text-align: left; padding: 7px 14px;
	font-size: 13px; color: #333; cursor: pointer;
}
.cch-v2-mapmenu-item:hover { background: #f0f4f8; }
.cch-v2-mapmenu-item .fa { width: 16px; color: #2a6496; }

/* Bottom-right attribution/footer strip (13px tall, 10px text) */
#cch-v2-footbar {
	position: absolute; right: 0; bottom: 0; height: 13px; line-height: 13px; z-index: 21;
	background: rgba(255, 255, 255, 0.9); font-size: 10px; color: #555; padding: 0 8px;
	border-top-left-radius: 4px; white-space: nowrap;
}
#cch-v2-footbar a, #cch-v2-footbar span { color: #555; margin-left: 8px; }
#cch-v2-footbar span { margin-left: 0; }
#cch-v2-footbar a:hover, #cch-v2-footbar a:focus { color: #00264c; text-decoration: underline; outline: none; }

/* Service-outage banner */
#svc-banner {
	position: absolute; top: 12px; left: 50%; transform: translateX(-50%); z-index: 1300;
	display: flex; align-items: center; gap: 10px; max-width: min(560px, 92vw); padding: 9px 14px;
	background: #fff4e0; border: 1px solid #e0a437; border-radius: 6px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25); font-size: 13px; color: #6b4a08;
}
#svc-banner button { border: none; background: none; font-size: 18px; color: #ab8434; cursor: pointer; }
#svc-banner button:hover { color: #6b4a08; }

/* ------------------------------------------------------------ modals (share) */
.cch-v2-modal {
	position: fixed; inset: 0; z-index: 4000; background: rgba(0, 0, 0, 0.4);
	display: flex; align-items: center; justify-content: center;
}
.cch-v2-modal-box {
	position: relative; width: 480px; max-width: 92vw; background: #fff; border-radius: 8px;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.35); padding: 12px 14px;
}
.cch-v2-modal-head { font-size: 16px; font-weight: 700; margin-bottom: 4px; padding-right: 24px; color: #333; }
.cch-v2-modal-hint { font-size: 12px; color: #777; margin-bottom: 8px; }
.cch-v2-modal-close {
	position: absolute; top: 8px; right: 10px; border: none; background: none; color: #888; font-size: 20px; line-height: 1; cursor: pointer;
}
.cch-v2-modal-close:hover { color: #333; }
.cch-v2-share-row { display: flex; align-items: center; gap: 8px; }
#cch-v2-share-url {
	flex: 1; min-width: 0; height: 34px; padding: 6px 8px; font: inherit; font-size: 13px; color: #555;
	border: 1px solid #ccc; border-radius: 4px;
}
.cch-v2-modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }

/* ------------------------------------------------------------ welcome splash */
#cch-welcome-splash {
	position: fixed; top: 0; left: 0; width: 100%; height: 100%;
	background: linear-gradient(160deg, #00264c 0%, #14507e 60%, #5b87b5 100%);
	z-index: 10000; display: flex; align-items: flex-start; justify-content: center;
	overflow-y: auto; font-size: 16px; padding: 4vh 16px;
}
#cch-splash-card {
	background: #fff; border-radius: 8px; box-shadow: 0 12px 40px rgba(0, 10, 25, 0.4);
	max-width: 640px; width: 100%; margin: auto; padding: 24px 44px 16px; text-align: center;
}
#cch-splash-logo-wrapper { margin-bottom: 14px; }
#cch-splash-logo-wrapper img { height: 48px; }
#cch-splash-header h2 { font-size: 1.45rem; font-weight: 500; margin: 0 0 4px; color: #00264c; }
.cch-splash-subtitle {
	font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.12em; color: #5b87b5; margin-bottom: 10px;
}
.cch-splash-description { font-size: 0.92rem; line-height: 1.5; color: #444; margin: 0 auto; }
.cch-splash-note { font-size: 0.82rem; color: #666; margin-top: 8px; }
#cch-splash-button-wrapper { padding: 18px 0 2px; }
#cch-splash-button-wrapper input[type=button] {
	margin: 6px 8px; padding: 10px 24px; font: inherit; font-size: 1rem; border-radius: 4px; cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}
#cch-splash-divein-button { background: #00264c; color: #fff; border: 1px solid #00264c; }
#cch-splash-divein-button:hover, #cch-splash-divein-button:focus { background: #14507e; border-color: #14507e; }
#cch-splash-help-button { background: #fff; color: #00264c; border: 1px solid #9db4c9; }
#cch-splash-help-button:hover, #cch-splash-help-button:focus { background: #f0f4f8; border-color: #00264c; }
#cch-splash-footer {
	margin-top: 16px; border-top: 1px solid #e1e8ef; padding: 12px 8px 0; font-size: 0.72rem; line-height: 1.45; color: #666;
}
#cch-splash-footer h4 { font-size: 0.72rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.08em; color: #556; margin: 0 0 8px; }
#cch-splash-footer p { margin: 0 0 6px; }
#cch-splash-footer a { color: #2a6496; }
#cch-splash-footer input[type=button] {
	margin-top: 6px; padding: 4px 8px; font: inherit; font-size: 0.78rem; color: #2a6496; background: none; border: none;
	text-decoration: underline; cursor: pointer;
}
#cch-splash-footer input[type=button]:hover { color: #00264c; }

/* ------------------------------------------------------------ small screens: stack map above panel */
@media (max-width: 991px) {
	#content-column.cch-v2 { flex-direction: column; }
	#content-column.cch-v2 #map { height: 55%; }
	#cch-v2-panel {
		flex: 1 1 auto; width: auto; min-width: 0; max-width: none; height: 45%;
		border-right: none; border-top: 1px solid rgba(0, 0, 0, 0.12); order: 2;
	}
	#cch-v2-info { left: 0; width: 100%; }
}
@media (max-width: 600px) {
	#cch-welcome-splash { padding: 0; }
	#cch-splash-card { border-radius: 0; padding: 28px 20px 18px; }
	#cch-splash-header h2 { font-size: 1.35rem; }
}
