@font-face { font-family: 'Open Sans'; src: url('branding/OpenSans-Regular.ttf') format('truetype'); font-weight: 400; }
@font-face { font-family: 'Open Sans'; src: url('branding/OpenSans-Medium.ttf') format('truetype'); font-weight: 500; }
@font-face { font-family: 'Open Sans'; src: url('branding/OpenSans-SemiBold.ttf') format('truetype'); font-weight: 600; }
@font-face { font-family: 'Open Sans'; src: url('branding/OpenSans-ExtraBold.ttf') format('truetype'); font-weight: 800; }
* { margin: 0; padding: 0; box-sizing: border-box; }

:root {
  /* Backgrounds */
  --bg-base: #0b1a2e;
  --bg-surface: #0f2035;
  --bg-deep: #091423;
  --bg-deeper: #071428;
  --bg-header: #0a1525;
  --bg-header-alt: #0c1a2d;
  --bg-overlay: rgba(0,0,0,0.15);
  --bg-overlay-heavy: rgba(0,0,0,0.2);
  --bg-overlay-heavier: rgba(0,0,0,0.3);
  --bg-elevated: rgba(255,255,255,0.04);
  --bg-elevated-more: rgba(255,255,255,0.06);
  --bg-elevated-subtle: rgba(255,255,255,0.02);
  --bg-elevated-mid: rgba(255,255,255,0.05);
  --bg-hover: rgba(77,184,219,0.1);
  --bg-active: rgba(77,184,219,0.15);
  --bg-glass: rgba(11,26,46,0.9);
  --bg-glass-heavy: rgba(11,26,46,0.95);
  --bg-glass-strong: rgba(11,26,46,0.92);

  /* Text */
  --text-primary: #fff;
  --text-body: #c8d6e5;
  --text-value: #e8f0f8;
  --text-muted: #5a7a95;
  --text-faint: #4a6080;
  --text-label: #8a9cb0;
  --text-section: #8aa0b8;
  --text-meta: #8899aa;

  /* Accent */
  --accent: #4db8db;
  --accent-light: #63c9e8;
  --accent-hover: #6ecfef;
  --accent-dark: #1a3a6a;
  --accent-panel: #3a7ca8;
  --accent-subtle: #5a9cbf;

  /* Borders */
  --border-subtle: rgba(255,255,255,0.06);
  --border-light: rgba(255,255,255,0.1);
  --border-medium: rgba(255,255,255,0.12);
  --border-strong: rgba(255,255,255,0.08);
  --border-accent: rgba(77,184,219,0.3);

  /* Shadows */
  --shadow-soft: rgba(0,0,0,0.4);
  --shadow-heavy: rgba(0,0,0,0.5);
  --shadow-medium: rgba(0,0,0,0.3);

  /* Semantic */
  --color-good: #2ecc71;
  --color-bad: #e74c3c;
  --color-gold: #f1c40f;
  --color-warn: #f39c12;
  --color-cad-new: #2980b9;
  --adj-pos: #5ec8ec;
  --adj-neg: #8b9fe0;
  --adj-pos-print: #1a5490;
  --adj-neg-print: #6b5ba8;

  /* Subject/section */
  --section-border: rgba(99,201,232,0.18);
  --section-shadow: rgba(0,0,0,0.5);
  --subject-bg: rgba(77,184,219,0.06);
  --subject-border: rgba(77,184,219,0.28);
  --comp-glow: rgba(77,184,219,0.35);
  --result-bg: rgba(241,196,15,0.11);
  --result-border: rgba(241,196,15,0.5);
  --result-glow: rgba(241,196,15,0.08);
}

body.theme-light {
  /* Backgrounds */
  --bg-base: #f5f7fa;
  --bg-surface: #edf1f5;
  --bg-deep: #e2e8f0;
  --bg-deeper: #dce3ec;
  --bg-header: #e8edf3;
  --bg-header-alt: #edf1f6;
  --bg-overlay: rgba(0,0,0,0.04);
  --bg-overlay-heavy: rgba(0,0,0,0.06);
  --bg-overlay-heavier: rgba(0,0,0,0.08);
  --bg-elevated: rgba(0,0,0,0.03);
  --bg-elevated-more: rgba(0,0,0,0.05);
  --bg-elevated-subtle: rgba(0,0,0,0.015);
  --bg-elevated-mid: rgba(0,0,0,0.04);
  --bg-hover: rgba(26,106,160,0.08);
  --bg-active: rgba(26,106,160,0.12);
  --bg-glass: rgba(245,247,250,0.95);
  --bg-glass-heavy: rgba(245,247,250,0.97);
  --bg-glass-strong: rgba(245,247,250,0.95);

  /* Text */
  --text-primary: #1a2a3a;
  --text-body: #2d3e50;
  --text-value: #1e3048;
  --text-muted: #6b829a;
  --text-faint: #94a3b8;
  --text-label: #5a6d82;
  --text-section: #4a6078;
  --text-meta: #7a8a9a;

  /* Accent */
  --accent: #1a8ab8;
  --accent-light: #2a9ac8;
  --accent-hover: #1580ad;
  --accent-dark: #e8f0f8;
  --accent-panel: #2a7a9f;
  --accent-subtle: #3a8ab5;

  /* Borders */
  --border-subtle: rgba(0,0,0,0.07);
  --border-light: rgba(0,0,0,0.12);
  --border-medium: rgba(0,0,0,0.15);
  --border-strong: rgba(0,0,0,0.1);
  --border-accent: rgba(26,138,184,0.35);

  /* Shadows */
  --shadow-soft: rgba(0,0,0,0.1);
  --shadow-heavy: rgba(0,0,0,0.15);
  --shadow-medium: rgba(0,0,0,0.08);

  /* Semantic */
  --color-good: #1a9f55;
  --color-bad: #d63031;
  --color-gold: #1a5a8a;
  --color-warn: #d48800;
  --color-cad-new: #1f6491;
  --adj-pos: #1a7a9f;
  --adj-neg: #6b4fb8;
  --adj-pos-print: #1a5490;
  --adj-neg-print: #6b5ba8;

  /* Subject/section */
  --section-border: rgba(26,138,184,0.25);
  --section-shadow: rgba(0,0,0,0.08);
  --subject-bg: rgba(26,138,184,0.06);
  --subject-border: rgba(26,138,184,0.25);
  --comp-glow: rgba(26,138,184,0.2);
  --result-bg: rgba(26,90,138,0.07);
  --result-border: rgba(26,90,138,0.25);
  --result-glow: rgba(26,90,138,0.05);
}

.marker-cluster-small, .marker-cluster-medium, .marker-cluster-large { background: none !important; }
.marker-cluster div { background: none !important; }
body { font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; height: 100vh; overflow: hidden; display: flex; color: var(--text-body); background: var(--bg-base); }
body.resizing, body.resizing * { user-select: none !important; -webkit-user-select: none !important; cursor: col-resize !important; }
body.resizing-v, body.resizing-v * { user-select: none !important; -webkit-user-select: none !important; cursor: ns-resize !important; }

/* Map-only mode (pop-out window) */
body.maponly #sidebar-wrap, body.maponly #comp-bar, body.maponly #detail-strip-wrap,
body.maponly #comp-list-wrap, body.maponly #bottom-panel, body.maponly #bottom-resize,
body.maponly #detail-strip-resize, body.maponly #comp-list-resize,
body.maponly #view-toggle, body.maponly #btn-popout { display: none !important; }
body.maponly #map-wrap { flex: 1 !important; display: block !important; }

/* Sidebar */
#sidebar-wrap { display: flex; flex-shrink: 0; position: relative; z-index: 1000; transition: margin-left 0.25s ease; }
#sidebar-wrap.collapsed { margin-left: -250px; }
#sidebar-toggle { position: absolute; top: 200px; right: -20px; z-index: 1001; background: var(--bg-glass-heavy); border: 1px solid var(--border-light); border-left: none; color: var(--text-muted); width: 20px; height: 48px; cursor: pointer; font-size: 12px; display: flex; align-items: center; justify-content: center; border-radius: 0 6px 6px 0; transition: all 0.15s; }
#sidebar-toggle:hover { color: var(--text-primary); background: var(--bg-active); border-color: var(--border-accent); }
#sidebar { width: 250px; min-width: 200px; background: linear-gradient(180deg, var(--bg-base) 0%, var(--bg-surface) 100%); color: var(--text-body); display: flex; flex-direction: column; overflow-y: auto; flex: 1; }
#sidebar-resize { width: 3px; background: transparent; cursor: ew-resize; flex-shrink: 0; transition: background 0.15s; position: relative; }
#sidebar-resize::before { content: ''; position: absolute; top: 0; bottom: 0; left: -4px; right: -4px; }
#sidebar-resize:hover { background: var(--accent); }
#hover-panel-resize { position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: transparent; cursor: ew-resize; z-index: 2; transition: background 0.15s; }
#hover-panel-resize::before { content: ''; position: absolute; top: 0; bottom: 0; left: -4px; right: -4px; }
#hover-panel-resize:hover { background: var(--accent); }
#sidebar h1 { font-size: 13px; padding: 10px 16px; background: linear-gradient(135deg, #071428 0%, #0d1f38 100%); color: #fff; border-bottom: 1px solid var(--border-strong); font-weight: 600; letter-spacing: 0.3px; }
#sidebar h1 span { color: #4db8db; font-weight: 800; }

/* Search */
#search-box { padding: 8px 14px; background: var(--bg-overlay); border-bottom: 1px solid var(--border-subtle); }
#search-input { width: 100%; padding: 8px 12px; border: 1px solid var(--border-light); border-radius: 8px; background: var(--bg-elevated-mid); color: var(--text-primary); font-size: 13px; transition: border-color 0.2s, box-shadow 0.2s; }
#search-input:focus { outline: none; border-color: rgba(77,184,219,0.5); box-shadow: 0 0 0 3px rgba(77,184,219,0.1); }
#search-input::placeholder { color: var(--text-faint); }
#search-results { max-height: 250px; overflow-y: auto; background: var(--bg-base); border-bottom: 1px solid var(--border-subtle); display: none; }
.search-result { padding: 10px 18px; cursor: pointer; font-size: 13px; border-bottom: 1px solid var(--bg-elevated); transition: background 0.15s; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.search-result:hover { background: var(--bg-hover); }
.search-result .sr-text { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.search-result .sr-subj { flex-shrink: 0; padding: 3px 8px; font-size: 10px; font-weight: 600; letter-spacing: 0.5px; background: var(--bg-active); color: var(--accent); border: 1px solid var(--border-accent); border-radius: 4px; cursor: pointer; transition: all 0.15s; }
.search-result .sr-subj:hover { background: var(--accent); color: var(--bg-base); }

/* Panels */
.panel { padding: 8px 14px; border-bottom: 1px solid var(--border-subtle); }
.panel h3 { font-size: 10px; color: var(--accent); margin-bottom: 4px; text-transform: uppercase; letter-spacing: 1.5px; font-weight: 700; }
.pL { font-size: 9px; color: #888; text-transform: uppercase; }
.pV { font-size: 12px; color: var(--text-primary); margin-bottom: 1px; font-weight: 600; }
.pR { display: flex; gap: 8px; }
.pR > div { flex: 1; }
#subject-panel, #comp-controls { display: none; }
#subject-panel.active, #comp-controls.active { display: block; }
#subject-panel { background: var(--subject-bg); border-left: 3px solid var(--accent); }
#comp-controls { background: rgba(77,184,219,0.04); border-left: 3px solid var(--border-accent); }

/* Subject panel — hero treatment */
.subj-addr { font-size: 17px; font-weight: 700; color: var(--text-primary); letter-spacing: 0.1px; line-height: 1.2; margin: 2px 0 6px; }
.subj-meta { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 10px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.9px; font-weight: 600; margin-bottom: 10px; }
.subj-meta b { color: var(--text-label); font-weight: 700; margin-left: 4px; letter-spacing: 0.3px; }
.subj-meta .subj-meta-sep { color: #2a3e55; }
.subj-kpi { background: linear-gradient(135deg, rgba(77,184,219,0.16) 0%, rgba(77,184,219,0.04) 100%); border: 1px solid var(--subject-border); border-radius: 8px; padding: 9px 12px; margin-bottom: 10px; box-shadow: inset 0 1px 0 var(--bg-elevated); }
.subj-kpi-label { font-size: 9px; color: var(--accent); text-transform: uppercase; letter-spacing: 1.4px; font-weight: 700; margin-bottom: 2px; }
.subj-kpi-value { font-size: 22px; font-weight: 800; color: var(--text-primary); line-height: 1.1; letter-spacing: -0.4px; }
.subj-kpi-sub { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 5px; font-size: 11px; color: var(--text-label); font-weight: 500; }
.subj-kpi-sub b { color: var(--text-value); font-weight: 700; }
.subj-stats { display: flex; flex-direction: column; margin-bottom: 2px; }
.subj-stats .subj-row { display: flex; justify-content: space-between; align-items: baseline; padding: 4px 2px; font-size: 12px; border-bottom: 1px dashed var(--bg-elevated-mid); }
.subj-stats .subj-row:last-child { border-bottom: none; }
.subj-stats .subj-lbl { color: var(--text-muted); font-weight: 500; }
.subj-stats .subj-val { color: var(--text-value); font-weight: 600; letter-spacing: 0.1px; }
#btn-clear-subject { width: 100%; padding: 7px 12px; font-size: 10px; letter-spacing: 1px; }
.fR { display: flex; gap: 6px; margin-bottom: 4px; align-items: center; }
.fR label { font-size: 13px; color: #7a9ab5; min-width: 80px; font-weight: 500; }
.fR input { flex: 1; padding: 4px 8px; background: var(--bg-elevated-mid); border: 1px solid var(--border-light); color: var(--text-primary); border-radius: 6px; font-size: 13px; max-width: 80px; transition: border-color 0.2s; }
.fR input:focus { outline: none; border-color: rgba(77,184,219,0.5); }
.f-toggle { width: 14px; height: 14px; margin-left: 6px; flex-shrink: 0; cursor: pointer; order: 1; }
.fR:has(.f-toggle:not(:checked)) input[type="number"] { opacity: 0.35; }
.fR input[type=checkbox] { max-width: 18px; flex: none; accent-color: var(--accent); }
.btn { padding: 8px 16px; border: none; border-radius: 6px; cursor: pointer; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; transition: all 0.2s; }
.btn-primary { background: linear-gradient(135deg, #2980b9 0%, #3498db 100%); color: #fff; box-shadow: 0 2px 8px rgba(41,128,185,0.3); }
.btn-primary:hover { background: linear-gradient(135deg, #3498db 0%, #5dade2 100%); box-shadow: 0 4px 12px rgba(41,128,185,0.4); }
.btn-success { background: linear-gradient(135deg, #1a6fa0 0%, #2980b9 100%); color: #fff; box-shadow: 0 2px 8px rgba(26,111,160,0.3); }
.btn-success:hover { background: linear-gradient(135deg, #2980b9 0%, #3498db 100%); }
.btn-outline { background: var(--bg-elevated); border: 1px solid var(--border-medium); color: var(--text-meta); border-radius: 6px; }
.btn-outline:hover { border-color: rgba(255,255,255,0.25); color: var(--text-primary); background: var(--border-strong); }

.preset-caption { font-size: 9px; font-weight: 800; color: var(--text-section); letter-spacing: 1.6px; text-transform: uppercase; margin-bottom: 5px; display: flex; align-items: baseline; gap: 8px; }
.preset-caption-sub { font-size: 8px; font-weight: 600; color: var(--text-muted); letter-spacing: 0.8px; text-transform: none; }
.preset-btn { display: flex !important; flex-direction: column; align-items: center; gap: 1px; line-height: 1.1; cursor: pointer; transition: all 0.15s ease; }
.preset-btn .preset-name { font-size: 12px; font-weight: 700; letter-spacing: 0.3px; }
.preset-btn .preset-nums { font-size: 9px; font-weight: 500; opacity: 0.65; letter-spacing: 0.3px; }
.preset-btn.preset-btn-mw .preset-name { font-size: 9px; }
.preset-btn.preset-btn-mw .preset-nums { font-size: 7px; }
.preset-btn.active { background: rgba(99,201,232,0.15); border-color: var(--accent-light); color: var(--text-value); box-shadow: 0 0 0 1px rgba(99,201,232,0.25), 0 2px 8px rgba(99,201,232,0.12); }
.preset-btn.active .preset-name { color: var(--accent-light); }
.preset-btn.active .preset-nums { opacity: 0.9; color: #8ab8d0; }

/* Property popup in sidebar */
#property-popup { display: none; padding: 14px 18px; background: var(--bg-overlay); border-bottom: 1px solid var(--border-subtle); }
#property-popup.active { display: block; }
#property-popup h3 { color: var(--accent); }
.popup-actions { margin-top: 8px; display: flex; gap: 6px; align-items: center; }
.sv-link { font-size: 12px; color: var(--accent); text-decoration: none; margin-left: 8px; font-weight: 500; }
.sv-link:hover { text-decoration: underline; color: var(--accent-hover); }

#main-area { flex: 1; display: flex; flex-direction: column; overflow: hidden; min-width: 0; }

/* Comp chip bar */
#comp-bar { background: linear-gradient(90deg, var(--bg-deeper) 0%, var(--bg-surface) 100%); border-bottom: 1px solid var(--border-subtle); display: none; min-height: 42px; align-items: center; flex-shrink: 0; }
#comp-bar.active { display: flex; }
#comp-bar-label { font-size: 10px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 1.5px; padding: 0 16px; white-space: nowrap; font-weight: 700; }
#comp-chips { display: flex; gap: 6px; overflow-x: auto; padding: 6px 8px; flex: 1; }
.chip { display: flex; align-items: center; gap: 6px; background: var(--bg-elevated-more); border: 1px solid var(--border-light); border-radius: 6px; padding: 5px 12px; font-size: 12px; color: #e0e0e0; white-space: nowrap; cursor: pointer; flex-shrink: 0; transition: all 0.15s; }
.chip:hover { background: rgba(77,184,219,0.12); border-color: var(--border-accent); }
.chip .cN { color: var(--accent); font-weight: 800; margin-right: 2px; }
.chip .cX { color: var(--text-muted); font-weight: 700; font-size: 14px; margin-left: 6px; cursor: pointer; transition: color 0.15s; }
.chip .cX:hover { color: #ef5350; }

/* Map */
#map-wrap { flex: 1; position: relative; overflow: hidden; }
#map { width: 100%; height: 100%; }
.leaflet-top.leaflet-right { right: 350px; top: 46px; transition: right 0.15s; }
.leaflet-control-zoom, .leaflet-control-layers { transform: scale(0.67); transform-origin: top right; }
.leaflet-control-zoom { transform-origin: top left; }
#loading { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); background: var(--bg-glass-heavy); color: var(--text-primary); padding: 20px 32px; border-radius: 12px; font-size: 15px; z-index: 2000; display: none; border: 1px solid var(--border-strong); box-shadow: 0 8px 32px var(--shadow-soft); }
#loading.active { display: block; }
#status-bar { position: absolute; bottom: 12px; left: 12px; background: var(--bg-glass); color: var(--text-meta); padding: 6px 14px; border-radius: 8px; font-size: 12px; z-index: 1000; border: 1px solid var(--border-subtle); backdrop-filter: blur(8px); }

/* Map search widget */
#map-search-widget { position: absolute; bottom: 50px; left: 12px; z-index: 1001; width: 260px; }
#map-search-toggle { background: var(--bg-glass-strong); border: 1px solid var(--border-light); color: var(--accent-subtle); padding: 6px 12px; border-radius: 8px; cursor: pointer; font-size: 11px; font-weight: 600; transition: all 0.15s; display: flex; align-items: center; gap: 6px; backdrop-filter: blur(8px); }
#map-search-toggle:hover { color: var(--text-primary); border-color: var(--border-accent); }
#map-search-body { display: none; background: var(--bg-glass-heavy); border: 1px solid var(--border-light); border-radius: 8px; padding: 10px; margin-top: 4px; backdrop-filter: blur(8px); }
#map-search-body.open { display: block; }
#map-search-body .mf-row { display: flex; align-items: center; gap: 4px; margin: 3px 0; font-size: 11px; }
#map-search-body .mf-row label { color: var(--text-muted); font-size: 10px; min-width: 55px; font-weight: 600; }
#map-search-body .mf-row input[type="number"] { flex: 1; max-width: 60px; padding: 3px 6px; background: var(--bg-elevated-mid); border: 1px solid var(--border-light); color: var(--text-primary); border-radius: 4px; font-size: 11px; }
#map-search-body .mf-row input[type="checkbox"] { accent-color: var(--accent); cursor: pointer; }
#map-search-input { width: 100%; padding: 6px 10px; border: 1px solid var(--border-light); border-radius: 6px; background: var(--bg-elevated-mid); color: var(--text-primary); font-size: 12px; margin-bottom: 6px; }
#map-search-input:focus { outline: none; border-color: rgba(77,184,219,0.5); }
#map-search-input::placeholder { color: var(--text-faint); }
#map-search-results { max-height: 150px; overflow-y: auto; margin-bottom: 6px; }
#map-search-results .msr { padding: 4px 8px; cursor: pointer; font-size: 11px; color: var(--text-body); border-radius: 4px; transition: background 0.1s; }
#map-search-results .msr:hover { background: var(--bg-active); }
#map-filter-count { font-size: 10px; color: var(--text-muted); margin-top: 4px; }

/* Bottom grid panel */
#bottom-panel { background: linear-gradient(180deg, var(--bg-base) 0%, var(--bg-surface) 100%); border-top: 1px solid var(--border-strong); display: none; flex-direction: column; overflow: hidden; flex-shrink: 0; }
#bottom-panel.active { display: flex; }
#bottom-resize { height: 3px; background: transparent; cursor: ns-resize; flex-shrink: 0; transition: background 0.15s; position: relative; }
#bottom-resize::before { content: ''; position: absolute; left: 0; right: 0; top: -4px; bottom: -4px; }
#bottom-resize:hover { background: var(--accent); }
#grid-bar { display: flex; align-items: center; justify-content: space-between; padding: 4px 14px; background: var(--bg-overlay); border-bottom: 1px solid var(--border-subtle); flex-shrink: 0; }
#grid-bar-left { display: flex; align-items: center; gap: 16px; }
#grid-bar-left h3 { font-size: 13px; color: var(--accent); text-transform: uppercase; letter-spacing: 1.5px; margin: 0; font-weight: 700; }
.tab-bar { display: flex; gap: 2px; }
.tab-btn, .mode-btn { padding: 6px 14px; background: var(--bg-elevated); color: var(--text-muted); border: 1px solid var(--border-strong); cursor: pointer; font-size: 11px; font-weight: 600; text-transform: uppercase; border-radius: 6px; transition: all 0.15s; }
.tab-btn.active, .mode-btn.active { color: var(--text-primary); background: var(--bg-active); border-color: var(--border-accent); }
.tab-btn:hover { color: var(--text-body); }
#grid-scroll { flex: 1; overflow: auto; }

/* TCAD Grid */
.tg { border-collapse: collapse; font-size: 12px; white-space: nowrap; }
.tg th, .tg td { padding: 2px 10px; border: 1px solid var(--border-subtle); font-size: 12px; line-height: 1.3; }
.tg th { background: var(--bg-header); color: var(--text-muted); text-align: left; font-weight: 600; font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; position: sticky; left: 0; z-index: 2; min-width: 140px; border-right: 2px solid rgba(77,184,219,0.2); }
.tg .hdr-row th, .tg .hdr-row td { position: sticky; top: 0; z-index: 3; }
.tg .hdr-row th { z-index: 4; }
.tg .sc { background: rgba(77,184,219,0.08); color: var(--text-value); min-width: 140px; }
.tg .cc { color: var(--text-body); min-width: 140px; }
.tg tr.sec-row:nth-child(odd) td.cc { background: var(--bg-elevated-subtle); }
.tg tr.sec-row:nth-child(even) td.cc { background: var(--bg-elevated-mid); }
.tg tr.sec-row:nth-child(odd) td.sc { background: rgba(77,184,219,0.06); }
.tg tr.sec-row:nth-child(even) td.sc { background: rgba(77,184,219,0.10); }
.tg tr.sec-row:nth-child(odd) th { background: var(--bg-header); }
.tg tr.sec-row:nth-child(even) th { background: var(--bg-header-alt); }
.tg .av { color: var(--color-warn); font-weight: 700; font-size: 11px; float: right; margin-left: 12px; }
.tg .ap { color: var(--adj-pos); }
.tg .an { color: var(--adj-neg); }
.tg .sh { background: var(--bg-deep); color: var(--text-section); font-size: 10px; text-transform: uppercase; letter-spacing: 1.8px; padding: 5px 10px; font-weight: 800; cursor: pointer; user-select: none; border-top: 2px solid var(--section-border); border-bottom: 1px solid var(--section-shadow); box-shadow: inset 0 -1px 0 rgba(255,255,255,0.03); }
.tg .sh:hover { background: rgba(77,184,219,0.14); }
.tg .sh .sh-arrow { display: inline-block; transition: transform 0.2s; font-size: 9px; margin-right: 4px; }
.tg .sh.collapsed .sh-arrow { transform: rotate(-90deg); }
.tg tr.results-row th { color: var(--color-gold); font-weight: 800; font-size: 13px; letter-spacing: 0.4px; text-transform: none; border-top: 2px solid var(--result-border); padding-top: 8px; padding-bottom: 8px; }
.tg tr.results-row td { border-top: 2px solid var(--result-border); padding-top: 8px; padding-bottom: 8px; }
.tg .iv { font-weight: 800; font-size: 19px; color: var(--color-gold); line-height: 1.15; }
.tg .iv .iv-delta { display: block; font-size: 10px; font-weight: 700; margin-top: 2px; letter-spacing: 0.3px; opacity: 0.95; }
.tg .iv .iv-delta.good { color: var(--color-good); }
.tg .iv .iv-delta.bad { color: var(--color-bad); }
.tg tr.netadj-row th { background: linear-gradient(180deg, #17283f 0%, #0f1f35 100%); color: var(--text-body); font-weight: 700; font-size: 12px; letter-spacing: 0.3px; padding-top: 5px; padding-bottom: 5px; border-right: 1px solid var(--border-strong); }
.tg tr.netadj-row td { background: rgba(255,255,255,0.035); border-top: 1px solid var(--border-medium); padding-top: 5px; padding-bottom: 5px; }
.tg .na { font-weight: 700; font-size: 14px; }

#btn-fullscreen { background: var(--bg-glass); border: 1px solid var(--border-strong); color: var(--text-muted); padding: 6px 12px; border-radius: 8px; cursor: pointer; font-size: 11px; font-weight: 600; transition: all 0.15s; white-space: nowrap; }
#btn-fullscreen:hover { color: var(--text-primary); border-color: rgba(255,255,255,0.2); }

/* Panel maximize */
.btn-maximize { background: none; border: 1px solid var(--border-light); color: var(--text-muted); cursor: pointer; font-size: 10px; padding: 2px 8px; border-radius: 4px; transition: all 0.15s; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; }
.btn-maximize:hover { color: var(--text-primary); border-color: rgba(255,255,255,0.25); }
body.panel-maximized #map-wrap, body.panel-maximized #hover-panel, body.panel-maximized #comp-bar { display: none !important; }
body.panel-maximized #detail-strip-wrap.active,
body.panel-maximized #comp-list-wrap.active,
body.panel-maximized #bottom-panel.active { flex: 1; height: auto !important; }
body.panel-maximized #detail-strip-wrap #detail-strip,
body.panel-maximized #comp-list-wrap #comp-list,
body.panel-maximized #bottom-panel #grid-scroll { flex: 1; }

/* View toggle */
#view-toggle { position: absolute; top: 7px; left: 54px; z-index: 1001; display: flex; gap: 2px; background: var(--bg-glass); border-radius: 8px; padding: 3px; border: 1px solid var(--border-strong); }
.vt-btn { padding: 6px 14px; background: transparent; color: var(--text-muted); border: none; cursor: pointer; font-size: 11px; font-weight: 600; text-transform: uppercase; border-radius: 6px; transition: all 0.15s; }
.vt-btn.active { color: var(--text-primary); background: rgba(77,184,219,0.2); }
.vt-btn:hover { color: var(--text-body); }

/* Detail strip view — horizontal scroll of TCAD detail columns */
#detail-strip-wrap { display: none; background: linear-gradient(180deg, var(--bg-base) 0%, var(--bg-surface) 100%); flex-direction: column; flex-shrink: 0; overflow: hidden; }
#detail-strip-wrap.active { display: flex; }
#detail-strip-placeholder { display: flex; align-items: center; justify-content: center; flex: 1; color: var(--text-muted); font-size: 13px; font-weight: 500; letter-spacing: 0.3px; }
#detail-strip-resize { height: 3px; background: transparent; cursor: ns-resize; flex-shrink: 0; transition: background 0.15s; position: relative; }
#detail-strip-resize::before { content: ''; position: absolute; top: -4px; bottom: -4px; left: 0; right: 0; }
#detail-strip-resize:hover { background: var(--accent); }
#detail-strip-bar { display: flex; align-items: center; justify-content: space-between; padding: 4px 14px; background: var(--bg-overlay-heavier); border-bottom: 1px solid var(--border-subtle); flex-shrink: 0; }
#detail-strip-bar span { font-size: 12px; color: var(--text-muted); }
#detail-strip { overflow-x: auto; overflow-y: auto; flex: 1; cursor: grab; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.2) transparent; }
#ds-zoom-wrap { display: flex; align-items: stretch; min-height: 100%; }
.ds-col { min-width: var(--ds-col-w, 200px); max-width: var(--ds-col-w, 240px); flex-shrink: 0; border-right: 1px solid var(--border-subtle); display: flex; flex-direction: column; font-size: 13px; }
.ds-col.ds-subject { position: sticky; left: 0; z-index: 2; background: var(--bg-base); min-width: 145px; max-width: 145px; border-top: 3px solid var(--accent); }
.ds-col.ds-subject.ds-subject-wide { min-width: 180px; max-width: 180px; }
.ds-col.ds-subject.ds-subject-wide .ds-body { overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.15) transparent; }
.ds-col.ds-subject .ds-row .ds-val { color: var(--text-value); }
.ds-col .ds-hdr { padding: 5px 10px; font-weight: 700; font-size: 12px; text-align: center; color: var(--accent-panel); background: var(--bg-overlay-heavy); border-bottom: 1px solid var(--border-subtle); overflow: hidden; flex-shrink: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 38px; }
.ds-col .ds-hdr .ds-hdr-line1 { font-size: 12px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.ds-col .ds-hdr .ds-hdr-line2 { font-size: 10px; color: var(--text-muted); font-weight: 600; letter-spacing: 0.3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.ds-col.ds-subject .ds-hdr { color: var(--accent-subtle); }
.ds-col .ds-body { flex: 1; overflow: hidden; }
.ds-row { display: flex; justify-content: space-between; padding: 3px 10px; border-bottom: 1px solid rgba(255,255,255,0.03); gap: 6px; height: 22px; align-items: center; box-sizing: border-box; }
.ds-row:nth-child(even) { background: var(--bg-elevated-subtle); }
.ds-row .ds-lbl { color: var(--text-muted); font-size: 10px; text-transform: uppercase; flex-shrink: 0; white-space: nowrap; }
.ds-row .ds-val { color: var(--text-body); font-weight: 600; text-align: right; white-space: nowrap; display: flex; align-items: center; gap: 4px; flex-direction: row-reverse; }
.ds-row .ds-adj { font-weight: 700; font-size: 11px; }
.ds-row .ds-adj.pos { color: var(--adj-pos); }
.ds-row .ds-adj.neg { color: var(--adj-neg); }
.ds-section { padding: 5px 10px; color: var(--text-section); font-size: 9px; text-transform: uppercase; letter-spacing: 1.6px; font-weight: 800; background: var(--bg-deep); border-top: 2px solid var(--section-border); border-bottom: 1px solid var(--section-shadow); box-shadow: inset 0 -1px 0 rgba(255,255,255,0.03); flex-shrink: 0; height: 26px; display: flex; align-items: center; box-sizing: border-box; }
.ds-col .ds-actions { padding: 8px 10px; flex-shrink: 0; }
.ds-col .ds-actions button { width: 100%; padding: 5px; border: none; border-radius: 5px; cursor: pointer; font-size: 10px; font-weight: 600; text-transform: uppercase; }
.ds-col.is-comp { border-top: 3px solid; box-shadow: 0 0 14px var(--comp-glow), inset 0 0 20px rgba(77,184,219,0.08); background: var(--subject-bg); }
.ds-col.is-comp .ds-hdr { color: var(--text-primary); }
.ds-col.ineligible { opacity: 0.5; }
.ds-col.ineligible .ds-hdr::after { content: ' (ineligible)'; font-size: 8px; color: var(--color-bad); font-weight: 400; }
.ds-result-row { height: auto !important; min-height: 32px; padding: 6px 10px !important; background: var(--result-bg); border-top: 2px solid var(--result-border) !important; }
.ds-result-row .ds-lbl { font-size: 11px !important; font-weight: 800; color: var(--text-primary); letter-spacing: 0.4px; }
.ds-result-row .ds-val { color: var(--color-gold); font-weight: 800; font-size: 16px; flex-direction: column; align-items: flex-end; gap: 0; }
.ds-result-row .iv-delta { font-size: 10px; font-weight: 700; margin-top: 1px; opacity: 0.95; letter-spacing: 0.3px; }
.ds-result-row .iv-delta.good { color: var(--color-good); }
.ds-result-row .iv-delta.bad { color: var(--color-bad); }
.ds-netadj-row { height: auto !important; min-height: 26px; padding: 4px 10px !important; background: rgba(255,255,255,0.025); border-top: 1px solid var(--border-medium) !important; }
.ds-netadj-row .ds-lbl { font-weight: 700; color: var(--text-body); }
.ds-netadj-row .ds-val { font-weight: 700; font-size: 13px; }

/* Median widget — elevated prominence */
#ds-live-median, #cl-live-median, #grid-median { background: var(--result-bg) !important; border-color: var(--result-border) !important; box-shadow: 0 0 10px var(--result-glow); }
.med-pct { font-size: 11px; font-weight: 800; opacity: 0.9; margin-left: 2px; }

/* CAD Comp badge */
.cad-badge { display: inline-block; background: var(--border-light); color: var(--text-primary); font-size: 8px; font-weight: 700; padding: 1px 5px; border-radius: 3px; letter-spacing: 0.5px; vertical-align: middle; margin-left: 4px; border: 1px solid rgba(255,255,255,0.25); }

/* Comp list view — horizontal card strip below map */
#comp-list-wrap { display: none; background: linear-gradient(180deg, var(--bg-base) 0%, var(--bg-surface) 100%); flex-direction: column; flex-shrink: 0; overflow: hidden; }
#comp-list-wrap.active { display: flex; }
#comp-list-resize { height: 3px; background: transparent; cursor: ns-resize; flex-shrink: 0; transition: background 0.15s; position: relative; }
#comp-list-resize::before { content: ''; position: absolute; top: -4px; bottom: -4px; left: 0; right: 0; }
#comp-list-resize:hover { background: var(--accent); }
#comp-list-bar { display: flex; align-items: center; justify-content: space-between; padding: 4px 14px; background: var(--bg-overlay-heavier); border-bottom: 1px solid var(--border-subtle); flex-shrink: 0; }
#comp-list-count { font-size: 12px; color: var(--text-muted); }
#comp-list-median { font-size: 12px; color: var(--text-muted); }
#comp-list-median .med-val { color: #00ff88; font-weight: 600; margin-left: 4px; }
#comp-list-median .med-diff { font-weight: 500; margin-left: 6px; font-size: 11px; }
#comp-list-median .med-diff.pos { color: #00ff88; }
#comp-list-median .med-diff.neg { color: #ff6b6b; }
#comp-list { overflow-y: auto; overflow-x: auto; padding: 6px 12px; flex: 1; }
.cl-table { width: 100%; border-collapse: separate; border-spacing: 0 4px; font-size: 12px; }
.cl-table th { position: sticky; top: 0; z-index: 2; background: var(--bg-deep); color: var(--text-muted); font-size: 10px; text-transform: uppercase; letter-spacing: 0.8px; font-weight: 700; padding: 6px 10px; cursor: pointer; user-select: none; white-space: nowrap; border-bottom: 2px solid var(--section-border); transition: color 0.15s; }
.cl-table th:hover { color: var(--accent); }
.cl-table th.cl-sort-active { color: var(--accent); }
.cl-table th .cl-sort-arrow { font-size: 8px; margin-left: 3px; opacity: 0.5; }
.cl-table th.cl-sort-active .cl-sort-arrow { opacity: 1; }
.cl-row { cursor: pointer; transition: all 0.15s; }
.cl-row td { padding: 6px 10px; background: var(--bg-elevated); border-top: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle); white-space: nowrap; color: var(--text-body); font-weight: 500; }
.cl-row td:first-child { border-left: 4px solid var(--rank-color, var(--accent)); border-radius: 6px 0 0 6px; }
.cl-row td:last-child { border-radius: 0 6px 6px 0; }
.cl-row:hover td { background: var(--bg-hover); }
.cl-row.is-comp td { background: var(--subject-bg); border-color: var(--border-accent); }
.cl-row.is-comp td:first-child { border-left-width: 4px; }
.cl-row .cl-rank { font-weight: 800; font-size: 13px; }
.cl-row .cl-addr { font-weight: 700; color: var(--text-primary); max-width: 220px; overflow: hidden; text-overflow: ellipsis; }
.cl-row .cl-val { font-weight: 600; }
.cl-row .cl-ind { font-weight: 800; color: var(--color-gold); font-size: 13px; }
.cl-row .cl-delta { font-weight: 700; font-size: 11px; }
.cl-row .cl-delta.good { color: var(--color-good); }
.cl-row .cl-delta.bad { color: var(--color-bad); }
.cl-row .cl-score-cell { font-weight: 800; color: var(--accent-light); }
.cl-row .cl-comp-tag { display: inline-block; background: rgba(0,255,136,0.15); color: var(--color-good); font-size: 8px; font-weight: 700; padding: 1px 5px; border-radius: 3px; letter-spacing: 0.5px; margin-left: 4px; }
.cl-row .cad-badge { margin-left: 4px; }

/* Map labels */
.nbrhd-label { background: var(--bg-glass) !important; border: 1px solid var(--border-accent) !important; color: var(--text-primary) !important; font-size: 12px !important; font-weight: 600 !important; padding: 4px 10px !important; border-radius: 6px !important; pointer-events: none !important; }
.leaflet-tooltip-pane { pointer-events: none !important; }
.leaflet-tooltip { pointer-events: none !important; }

/* Map popups */
.prop-popup .leaflet-popup-content-wrapper { background: linear-gradient(135deg, var(--bg-base) 0%, var(--bg-surface) 100%); color: var(--text-body); border: 1px solid var(--border-light); border-radius: 10px; box-shadow: 0 8px 32px var(--shadow-heavy); }
.prop-popup .leaflet-popup-tip-container { display: none; }
.prop-popup .leaflet-popup-content { margin: 12px 16px; font-size: 13px; line-height: 1.7; min-width: 290px; }
.pp-addr { font-size: 17px; font-weight: 700; color: var(--text-primary); margin-bottom: 8px; }
.pp-row { display: flex; justify-content: space-between; align-items: baseline; padding: 2px 0; gap: 10px; }
.pp-row .pp-lbl { flex: 0 0 auto; }
.pp-row .pp-val { flex: 0 0 auto; text-align: right; }
.pp-lbl { color: var(--text-muted); font-weight: 500; }
.pp-val { color: var(--text-value); font-weight: 600; }
/* Hover panel tier hierarchy */
.pp-row.pp-tier1 { padding: 1px 0; line-height: 1.45; }
.pp-row.pp-tier1 .pp-lbl { color: var(--text-value); font-weight: 700; font-size: 14px; }
.pp-row.pp-tier1 .pp-val { color: var(--text-primary); font-weight: 800; font-size: 16px; }
.pp-row.pp-tier3 { padding: 1px 0; }
.pp-row.pp-tier3 .pp-lbl { color: var(--text-faint); font-size: 11px; font-weight: 500; }
.pp-row.pp-tier3 .pp-val { color: var(--text-label); font-size: 12px; font-weight: 500; }
#hover-panel.narrow .pp-adj, #hover-panel.narrow .pp-adj-section { display: none; }
.pp-sale { background: var(--result-glow); border-left: 3px solid var(--color-gold); padding: 6px 10px; margin: 6px 0; border-radius: 4px; }
.pp-sale .pp-val { color: var(--color-gold); }
.pp-link { color: var(--accent); text-decoration: none; font-size: 12px; font-weight: 500; }
.pp-link:hover { text-decoration: underline; color: var(--accent-hover); }
.pp-score { display: inline-block; background: rgba(99,201,232,0.16); padding: 2px 9px; border-radius: 4px; font-weight: 800; font-size: 12px; color: var(--accent-light); border: 1px solid rgba(99,201,232,0.3); }
.pp-actions { margin-top: 8px; display: flex; gap: 8px; }
.pp-btn { padding: 7px 16px; border: none; border-radius: 6px; cursor: pointer; font-size: 12px; font-weight: 600; text-transform: uppercase; transition: all 0.15s; }
.pp-btn-comp { background: linear-gradient(135deg, #1a6fa0 0%, #2980b9 100%); color: #fff; box-shadow: 0 2px 8px rgba(26,111,160,0.3); }
.pp-btn-comp:hover { background: linear-gradient(135deg, #2980b9 0%, #3498db 100%); }
.pp-btn-subj { background: linear-gradient(135deg, #2980b9 0%, #3498db 100%); color: #fff; }
.pp-btn-subj:hover { background: linear-gradient(135deg, #3498db 0%, #5dade2 100%); }
.pp-subj { color: var(--text-faint); font-size: 10px; font-weight: 400; text-align: right; }

/* Hover detail panel — docked right side of map.
   Collapse uses flex-basis (driven by JS inline style), NOT margin-right and
   NOT width alone. Verified empirically:
     - margin-right:-320 on .collapsed: Chromium leaves computed at 0, no effect
     - width:0 on .collapsed: computed stays 320 because flex-basis:auto
       falls back to width but flex-shrink:0 + min-content rules keep size
     - flex-basis:0 inline: finally yields the space; main-area actually
       expands from 1347 to 1666 on a 1920 viewport
   JS manages the flex-basis inline so it coexists cleanly with the resize
   drag handle (which writes width via inline style too). */
#hover-panel { position: relative; flex-shrink: 0; width: 320px; min-width: 0; z-index: 1000; background: linear-gradient(135deg, var(--bg-base) 0%, var(--bg-surface) 100%); border-left: 1px solid var(--border-light); box-shadow: -4px 0 20px var(--shadow-soft); opacity: 1; pointer-events: auto; overflow: hidden; transition: flex-basis 0.25s ease, width 0.25s ease, opacity 0.2s ease, border-left-color 0.25s; display: flex; flex-direction: column; }
#hover-panel.collapsed { border-left-color: transparent; }
#hover-panel-toggle { position: fixed; top: 200px; right: 320px; z-index: 1002; background: var(--bg-glass-heavy); border: 1px solid var(--border-light); border-right: none; color: var(--text-muted); width: 20px; height: 48px; cursor: pointer; font-size: 12px; display: flex; align-items: center; justify-content: center; border-radius: 6px 0 0 6px; transition: right 0.25s ease, color 0.15s; }
#hover-panel-toggle:hover { color: var(--text-primary); }
#hover-panel-header { display: flex; align-items: center; justify-content: space-between; padding: 8px 16px; background: var(--bg-overlay-heavy); border-bottom: 1px solid var(--border-subtle); flex-shrink: 0; }
#hover-panel-header span { font-size: 10px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 1.5px; font-weight: 700; }
#hover-panel-placeholder { display: flex; align-items: center; justify-content: center; flex: 1; color: var(--text-muted); font-size: 13px; font-weight: 500; padding: 20px; text-align: center; line-height: 1.6; }
#hover-panel-scroll { flex: 1; overflow-y: auto; overflow-x: hidden; padding: 18px; scrollbar-width: none; font-size: 14px; line-height: 1.8; color: var(--text-body); }
#hover-panel-scroll::-webkit-scrollbar { display: none; }
#hover-panel-fade { position: relative; flex: 1; overflow: hidden; display: flex; flex-direction: column; }
#hover-panel-fade::before, #hover-panel-fade::after { content: ''; position: absolute; left: 0; right: 0; height: 30px; pointer-events: none; z-index: 1; opacity: 0; transition: opacity 0.2s; }
#hover-panel-fade::before { top: 0; background: linear-gradient(to bottom, var(--bg-base) 0%, transparent 100%); }
#hover-panel-fade::after { bottom: 0; background: linear-gradient(to top, var(--bg-surface) 0%, transparent 100%); }
#hover-panel-fade.fade-top::before { opacity: 1; }
#hover-panel-fade.fade-bottom::after { opacity: 1; }

/* Theme toggle button */
#theme-toggle { background: none; border: 1px solid rgba(255,255,255,0.15); color: rgba(255,255,255,0.6); cursor: pointer; font-size: 14px; padding: 2px 6px; border-radius: 4px; transition: all 0.15s; line-height: 1; margin-left: auto; }
#theme-toggle:hover { color: #fff; border-color: rgba(255,255,255,0.3); }
body.theme-light #theme-toggle { border-color: rgba(0,0,0,0.2); color: rgba(0,0,0,0.5); }
body.theme-light #theme-toggle:hover { color: rgba(0,0,0,0.8); border-color: rgba(0,0,0,0.4); }

/* Light theme overrides */
body.theme-light #hover-panel-fade::before { background: linear-gradient(to bottom, var(--bg-base) 0%, transparent 100%); }
body.theme-light #hover-panel-fade::after { background: linear-gradient(to top, var(--bg-surface) 0%, transparent 100%); }
body.theme-light .prop-popup .leaflet-popup-content-wrapper { background: var(--bg-base); }
body.theme-light #sidebar h1 { background: linear-gradient(135deg, #e8eef5 0%, #f0f4f8 100%); color: #1a2a3a; }
body.theme-light #sidebar h1 span { color: #1a8ab8; }
body.theme-light #sidebar h1 .h1-subtitle { color: #4a8aaa; }
body.theme-light .nbrhd-label { background: var(--bg-glass) !important; color: var(--text-primary) !important; }
body.theme-light #search-input { color: var(--text-primary); }
body.theme-light #map-search-input { color: var(--text-primary); }
body.theme-light .fR input { color: var(--text-primary); }
body.theme-light #map-search-body .mf-row input[type="number"] { color: var(--text-primary); }
body.theme-light .chip { color: var(--text-body); }
body.theme-light .ds-col.ds-subject { background: var(--bg-base); }
body.theme-light .tg th { background: var(--bg-header); }
body.theme-light .tg tr.sec-row:nth-child(odd) th { background: var(--bg-header); }
body.theme-light .tg tr.sec-row:nth-child(even) th { background: var(--bg-header-alt); }
body.theme-light .leaflet-control-zoom a { background: var(--bg-base) !important; color: var(--text-primary) !important; border-color: var(--border-light) !important; }

/* Light mode: override inline hard-coded colors for readability */
body.theme-light #ds-median-val, body.theme-light #cl-median-val, body.theme-light #s-med { color: var(--color-gold) !important; }
body.theme-light #ds-subj-val, body.theme-light #cl-subj-val, body.theme-light #s-subj-val { color: var(--text-body) !important; }
body.theme-light #ds-median-count, body.theme-light #cl-median-count { color: var(--text-value) !important; }
body.theme-light #comp-list-median .med-val { color: var(--color-good); }
body.theme-light #comp-list-median .med-diff.pos { color: var(--color-good); }
body.theme-light #comp-list-median .med-diff.neg { color: var(--color-bad); }
body.theme-light .cl-comp-badge { background: rgba(26,159,85,0.12); color: var(--color-good); border-color: rgba(26,159,85,0.3); }
body.theme-light .cl-rank { color: var(--accent); }
body.theme-light .cl-addr { color: var(--text-primary); }
body.theme-light .cl-score { color: var(--accent); background: rgba(26,138,184,0.1); border-color: rgba(26,138,184,0.25); }
body.theme-light .pp-addr { color: var(--text-primary); }
body.theme-light .pp-val { color: var(--text-value); }
body.theme-light .pp-row.pp-tier1 .pp-lbl { color: var(--text-value); }
body.theme-light .pp-row.pp-tier1 .pp-val { color: var(--text-primary); }
body.theme-light .pp-row.pp-tier3 .pp-lbl { color: var(--text-muted); }
body.theme-light .pp-row.pp-tier3 .pp-val { color: var(--text-label); }
body.theme-light .pp-sale .pp-val { color: var(--color-gold); }
body.theme-light .subj-addr { color: var(--text-primary); }
body.theme-light .subj-kpi-value { color: var(--text-primary); }
body.theme-light .subj-kpi-sub b { color: var(--text-value); }
body.theme-light .subj-stats .subj-val { color: var(--text-value); }
body.theme-light .pV { color: var(--text-primary); }
body.theme-light .tg .iv { color: var(--color-gold); }
body.theme-light .tg .av { color: var(--color-warn); }
/* Light-mode overrides for inline-styled map overlay controls */
body.theme-light #zoom-ctrl { background: rgba(255,255,255,0.92) !important; border-color: rgba(0,0,0,0.12) !important; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
body.theme-light #zoom-ctrl span { color: var(--text-body) !important; }
body.theme-light #btn-popout { background: rgba(255,255,255,0.92) !important; border-color: rgba(0,0,0,0.12) !important; color: var(--accent) !important; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
body.theme-light #btn-popout:hover { background: #fff !important; border-color: var(--accent) !important; }
body.theme-light #comp-sort { background: var(--bg-surface) !important; border-color: var(--border-light) !important; color: var(--text-primary) !important; }
/* Also cover the mini zoom widgets inside the search-and-filters panels */
body.theme-light .mw-zoom, body.theme-light [id^="mw-zoom-ctrl"] { background: rgba(255,255,255,0.92) !important; border-color: rgba(0,0,0,0.12) !important; }
body.theme-light #top-controls span { color: var(--text-body) !important; }
