/* ========================================
   Bondwood Benchmarking — Shared Styles
   All dashboard pages include this file.
   ======================================== */

:root {
--accent-color: #0728eb;
--accent-color-hover: #0728eb;
--accent-color-light: rgba(7, 40, 235, 0.15);
--accent-text-color: #ffffff;
--card-header-bg: #000000;
--card-header-text: #ffffff;
--checkbox-color: #034694;
--checkbox-color-hover: #034694;
--banner-bg: #000000;
--banner-accent-bg: #0728eb;
--banner-text: #ffffff;
--banner-text-sub: rgba(255,255,255,0.8);
--hamburger-color: #ffffff;
}

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

body {
font-family: 'Inter', sans-serif;
background: #f5f5f5;
min-height: 100vh;
padding: 1rem;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

.container {
width: 100%;
}

.card {
background: white;
border-radius: 10px;
border: 1px solid #e0e0e0;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
padding: 1rem;
margin-bottom: 1rem;
position: relative;
z-index: 1;
}

h1 {
font-family: 'Outfit', sans-serif;
font-size: 2rem;
font-weight: 700;
color: #000000;
margin-bottom: 0.5rem;
}

h2 {
font-family: 'Outfit', sans-serif;
font-size: 1.5rem;
font-weight: 700;
color: #000000;
margin-bottom: 1rem;
}

h3 {
font-family: 'Outfit', sans-serif;
font-weight: 700;
}

.subtitle {
color: #555555;
margin-bottom: 1rem;
}

#dashboardViewLabel {
color: #000000;
}

/* Dimension Grid - 3 columns for Expenditures */
.dimension-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1rem;
margin-bottom: 1rem;
}

.dimension-section {
background: white;
border: 1px solid #e0e0e0;
border-radius: 10px;
overflow: hidden;
}

.dimension-section h3 {
font-size: 0.875rem;
font-weight: 700;
color: var(--card-header-text);
background: var(--card-header-bg);
padding: 0.75rem 1rem;
margin: 0;
display: flex;
align-items: center;
justify-content: space-between;
}

.dimension-section h3 span {
color: var(--card-header-text) !important;
}

.dimension-section h3 .selection-count {
font-size: 0.7rem;
font-weight: 400;
opacity: 0.8;
color: var(--card-header-text) !important;
}

.dimensions-card {
background: white;
border: 1px solid #e0e0e0;
border-radius: 10px;
overflow: hidden;
margin-bottom: 1rem;
}

.dimensions-card-body {
display: block;
padding: 1rem;
}

.dimensions-card-body.collapsed {
display: none;
}

.dimensions-card-body .dimension-grid {
display: grid;
}

.dimension-header {
padding: 0.75rem 1rem;
background: #f5f5f5;

}

.dimension-list {
max-height: 340px;
overflow-y: auto;
padding: 0.5rem 0.75rem;
}

.dimension-checkbox {
display: flex;
align-items: center;
margin-bottom: 0.5rem;
cursor: pointer;
font-size: 0.875rem;
font-weight: 400;
}

.dimension-checkbox:last-child {
margin-bottom: 0;
}

.dimension-checkbox input {
margin-right: 0.5rem;
width: 18px;
height: 18px;
cursor: pointer;
}

.dimension-header-controls {
padding: 0.75rem 1rem;
background: #f5f5f5;

}

/* Expandable groups */
.dimension-group {
margin-bottom: 0.5rem;
}

.group-header {
display: flex;
align-items: center;
margin-bottom: 0.25rem;
font-weight: 500;
}

.expand-btn {
background: none;
border: none;
cursor: pointer;
padding: 0;
margin-right: 0.5rem;
font-size: 0.875rem;
color: var(--accent-color);
font-weight: 700;
width: 20px;
text-align: center;
}

.expand-btn:hover {
color: #000000;
}

.group-checkbox-wrapper {
display: flex;
align-items: center;
cursor: pointer;
}

.group-checkbox-wrapper input {
margin-right: 0.5rem;
width: 18px;
height: 18px;
cursor: pointer;
}

.group-items {
margin-left: 2rem;
    }

.group-items.expanded {
display: block;
}

.dimension-group-items {
display: none !important;
padding-left: 2.5rem;
margin-top: 0.15rem;
margin-bottom: 0.25rem;
}

.dimension-group-items.expanded {
display: block !important;
}

.dimension-group {
margin-bottom: 0.1rem;
}

.dimension-group-header {
display: flex;
align-items: center;
padding: 0.25rem 0.25rem;
gap: 0.25rem;
}

.dimension-group-toggle {
color: var(--accent-color);
font-weight: 700;
font-size: 0.8rem;
min-width: 24px;
user-select: none;
cursor: pointer;
}

.dimension-group-toggle:hover {
color: var(--accent-color-hover);
}

.dimension-group-checkbox {
margin: 0 0.35rem 0 0;
cursor: pointer;
appearance: none;
-webkit-appearance: none;
width: 16px;
height: 16px;
border: 1.5px solid #888;
border-radius: 50%;
background: white;
position: relative;
flex-shrink: 0;
}

.dimension-group-checkbox:checked {
background: var(--accent-color);
border-color: var(--accent-color);
}

.dimension-group-checkbox:checked::after {
content: '';
position: absolute;
left: 50%;
top: 45%;
width: 3px;
height: 6px;
border: solid white;
border-width: 0 1.5px 1.5px 0;
transform: translate(-50%, -50%) rotate(45deg);
}

.dimension-group-checkbox:indeterminate {
background: #dc3545;
border-color: #dc3545;
}

.dimension-group-label {
font-size: 0.875rem;
font-weight: 400;
color: #000000;
cursor: pointer;
}

.dimension-group-label:hover {
color: var(--accent-color);
}

.dimension-group-count {
font-weight: 400;
color: #000000;
}

.dimension-group-item {
display: flex;
align-items: flex-start;
padding: 0.15rem 0;
gap: 0.5rem;
}

.dimension-group-item input[type="checkbox"] {
margin-top: 1px;
flex-shrink: 0;
}

.dimension-group-item label {
font-size: 0.8rem;
font-weight: 400;
color: #000000;
cursor: pointer;
line-height: 1.3;
}

.dimension-code {
font-weight: 400;
}

/* Dark mode for dimension groups */
body.dark-mode .dimension-group-label,
body.dark-mode .dimension-group-count,
body.dark-mode .dimension-group-item label,
body.dark-mode .dimension-code {
color: #e5e5e5;
}

body.dark-mode .dimension-group-toggle:hover {
color: var(--accent-color);
opacity: 0.8;
}

body.dark-mode .dimension-group-label:hover {
color: var(--accent-color);
}

body.dark-mode .dimension-group-checkbox {
background: #2a2a2a;
border-color: #666;
}

body.dark-mode .dimension-group-checkbox:checked {
background: var(--accent-color);
border-color: var(--accent-color);
}

body.dark-mode .dimension-group-checkbox:indeterminate {
background: #dc3545;
border-color: #dc3545;
}

/* Brand Selector */
.brand-selector-wrapper {
    /* Hidden by default; shown unless ?brand=N is used */
align-items: center;
gap: 0.5rem;
}

.brand-selector-wrapper.active {
display: flex;
}

.brand-selector-wrapper label {
font-size: 0.75rem;
font-weight: 600;
color: #555555;
margin-bottom: 0;
white-space: nowrap;
}

#brandSelector {
padding: 0.4rem 0.6rem;
font-size: 0.8rem;
border: 1px solid #e0e0e0;
border-radius: 6px;
background: white;
color: #000000;
min-width: 180px;
cursor: pointer;
}

#brandSelector:focus {
outline: none;
border-color: var(--accent-color);
}

body.dark-mode .brand-selector-wrapper label {
color: #a0a0a0;
}

body.dark-mode #brandSelector {
background: #1a1a1a;
border-color: #404040;
color: #e5e5e5;
}

/* Dark mode toggle */
.theme-toggle {
background: white;
border: 1px solid #e0e0e0;
border-radius: 50%;
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
transition: all 0.3s ease;
flex-shrink: 0;
}

.theme-toggle:hover {
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

.theme-toggle svg {
width: 16px;
height: 16px;
fill: #000000;
}

/* Banner Logo Styles */
.bondwood-logo {
height: 120px;
max-height: 120px;
width: auto;
flex-shrink: 0;
margin-top: -45px;
margin-bottom: -45px;
object-fit: contain;
object-position: center;
}

.menu-logo-wrap {
    text-align: center;
    padding: 0 0 2.25rem !important;
    margin-top: -0.5rem;
    border-bottom: none !important;
    border: none !important;
    margin-bottom: 0;
}

.menu-logo {
    max-height: 80px;
    max-width: 100%;
    width: auto;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

/* Labels and Selects */
label {
display: block;
font-weight: 600;
font-size: 0.875rem;
color: #000000;
margin-bottom: 0.5rem;
}

select {
width: 100%;
padding: 0.75rem 1rem;
border: 1px solid #e0e0e0;
border-radius: 8px;
font-size: 1rem;
font-family: 'Inter', sans-serif;
background: white;
color: #000000;
}

select:focus {
outline: none;
border-color: var(--accent-color);
box-shadow: 0 0 0 3px var(--accent-color-light);
}

/* Custom Checkbox Styling - Red when checked */
input[type="checkbox"] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
width: 18px;
height: 18px;
border: 1.5px solid #d1d5db;
border-radius: 50%;
background: white;
cursor: pointer;
position: relative;
flex-shrink: 0;
}

input[type="checkbox"]:checked {
background: var(--checkbox-color);
border-color: var(--checkbox-color);
}

input[type="checkbox"]:checked::after {
content: '';
position: absolute;
left: 50%;
top: 45%;
width: 4px;
height: 8px;
border: solid white;
border-width: 0 1.5px 1.5px 0;
transform: translate(-50%, -50%) rotate(45deg);
}

input[type="checkbox"]:hover {
border-color: #9ca3af;
}

input[type="checkbox"]:checked:hover {
background: var(--checkbox-color-hover);
border-color: var(--checkbox-color-hover);
}

/* Dark mode checkbox adjustments */
body.dark-mode input[type="checkbox"] {
background: #2a2d30;
border-color: #404040;
}

body.dark-mode input[type="checkbox"]:checked {
background: var(--checkbox-color);
border-color: var(--checkbox-color);
}

body.dark-mode input[type="checkbox"]:hover {
border-color: #6b7280;
}

/* Stats Grid */
.stats-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 1rem;
padding: 1rem;
}

.stat-card {
background: transparent;
padding: 0.5rem;
text-align: center;
}

/* Add subtle separators between stat cards */
.stats-grid .stat-card:not(:last-child) {
border-right: 1px solid #e0e0e0;
}

.stat-label {
font-size: 0.875rem;
font-weight: 600;
color: #555555;
margin-bottom: 0.5rem;
}

.stat-value {
font-family: 'Outfit', sans-serif;
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 0.25rem;
}

.stat-value.blue { color: #000000; }
.stat-value.green { color: #000000; }
.stat-value.orange { color: #000000; }

/* Shimmer pulse for stat values showing placeholder dashes */
@keyframes statShimmer {
0%, 100% { opacity: 1; }
50% { opacity: 0.3; }
}

.stat-value.loading-shimmer {
animation: statShimmer 1.4s ease-in-out infinite;
}

.pct-change-badge {
display: inline-flex;
align-items: center;
font-size: 0.7rem;
font-weight: 600;
padding: 0.15rem 0.4rem;
border-radius: 4px;
margin-left: 0.4rem;
margin-bottom: 0.25rem;
vertical-align: middle;
}
.pct-change-badge.positive {
background: #2a6d51;
color: #ffffff;
}
.pct-change-badge.negative {
background: #fa0510;
color: #ffffff;
}
body.dark-mode .pct-change-badge.positive {
background: #2a6d51;
color: #ffffff;
}
body.dark-mode .pct-change-badge.negative {
background: #fa0510;
color: #ffffff;
}

.stat-detail {
font-size: 0.75rem;
color: #555555;
}

/* Chart */
.chart-container {
position: relative;
height: 400px;
margin-bottom: 1rem;
display: flex;
justify-content: flex-start;
}

.chart-wrapper {
position: relative;
height: 100%;
min-width: 200px;
}

/* Smooth fade-in when chart renders */
.chart-wrapper canvas {
opacity: 0;
transition: opacity 0.2s ease-in;
}

.chart-wrapper canvas.chart-ready {
opacity: 1;
}

/* Table */
table {
width: 100%;
border-collapse: collapse;
table-layout: fixed;
}

th {
font-weight: 600;
color: #000000;
padding: 0.75rem 1rem;
text-align: left;
border-bottom: 2px solid #e0e0e0;
}

th.right { text-align: right; }

th.sortable {
cursor: pointer;
user-select: none;
white-space: normal;
word-wrap: break-word;
}

th.sortable.right {
padding-left: 1rem;
}

th.sortable:hover {
background: #f0f0f0;
}

.sort-indicator {
display: inline-block;
margin-left: 0.25rem;
font-size: 0.7rem;
color: #888;
opacity: 0;
vertical-align: middle;
}

.sort-indicator.asc,
.sort-indicator.desc {
opacity: 1;
}

.sort-indicator.asc::after {
content: '▲';
}

.sort-indicator.desc::after {
content: '▼';
}

td {
padding: 0.75rem 1rem;
color: #000000;
border-bottom: 1px solid #ebebeb;
}

#tableCard td {
padding: 10px 8px;
font-size: 14px;
}

#tableCard th {
padding: 10px 8px;
font-size: 12px;
}

td.right { text-align: right; }

tr:hover {
background: var(--row-hover-color, #f5f5f5);
}

.positive { color: #16a34a; font-weight: 500; white-space: nowrap; }
.negative { color: #dc2626; font-weight: 500; white-space: nowrap; }

/* Toggle Table Button */
#toggleTableBtn {
padding: 0.4rem 0.8rem;
background: #f5f5f5;
color: #333333;
border: 1px solid #e0e0e0;
border-radius: 6px;
cursor: pointer;
font-family: 'Inter', sans-serif;
font-size: 0.8rem;
font-weight: 500;
}

#toggleTableBtn:hover {
background: #e5e5e5;
}

/* Detailed Data Table - Scrollable wrapper with sticky headers */
.table-scroll-wrapper {
max-height: 600px;
overflow-y: auto;
border-radius: 0 0 10px 10px;
border: none;
border-top: 1px solid #e0e0e0;
margin: 0 -1rem -1rem -1rem;
}

.table-scroll-wrapper table {
border-collapse: separate;
border-spacing: 0;
}

.table-scroll-wrapper thead {
position: sticky;
top: 0;
z-index: 10;
}

.table-scroll-wrapper thead th {
background: #f8f8f8;
border-bottom: 2px solid #e0e0e0;
}

.table-scroll-wrapper tbody tr:last-child td {
border-bottom: none;
}

body.dark-mode .table-scroll-wrapper {
border-top-color: #404040;
}

body.dark-mode .table-scroll-wrapper thead th {
background: #1a1a1a;
border-bottom-color: #404040;
}

/* AMSD Average Section */
.amsd-average-section {
background: #eef1ff;
border: 1px solid #0728eb;
padding: 0.75rem 1rem;
}

.amsd-average-checkbox {
display: flex;
align-items: center;
font-weight: 600;
color: #0520b8;
cursor: pointer;
font-size: 0.875rem;
}

.amsd-average-checkbox input {
margin-right: 0.5rem;
width: 18px;
height: 18px;
cursor: pointer;
}

/* Note */
.note {
background: #f5f5f5;
border: 1px solid #e0e0e0;
border-radius: 8px;
padding: 1rem;
color: #333333;
font-size: 0.875rem;
}

/* Districts Card */
.districts-card {
background: white;
border-radius: 10px;
border: 1px solid #e0e0e0;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
margin-bottom: 0.7rem;
overflow: hidden;
}

.districts-card-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0.75rem 1rem;
background: var(--card-header-bg);
cursor: pointer;
user-select: none;
}

.districts-card-header h3 {
font-family: 'Outfit', sans-serif;
font-size: 0.875rem;
font-weight: 700;
color: var(--card-header-text);
margin: 0;
}

.districts-card-header span {
color: var(--card-header-text) !important;
}

.districts-card-header > div > span {
color: var(--card-header-text) !important;
}

.districts-card-header .toggle-icon,
.card .toggle-icon {
color: var(--card-header-text);
font-size: 0.875rem;
transition: transform 0.2s ease;
margin-right: 6px;
}

/* Fix card toggle icons for Light Mode visibility */
#chartCollapseToggle,
#tableCollapseToggle,
#heatmapCollapseToggle,
#sparkChartCollapseToggle,
#countyToggleIcon,
.card .toggle-icon {
color: #000000 !important;
}

.districts-card-header .toggle-icon.collapsed,
.card .toggle-icon.collapsed {
transform: rotate(-90deg);
}

/* Dark mode: card toggle icons should be white */
body.dark-mode #chartCollapseToggle,
body.dark-mode #tableCollapseToggle,
body.dark-mode #heatmapCollapseToggle,
body.dark-mode #sparkChartCollapseToggle,
body.dark-mode #countyToggleIcon,
body.dark-mode .card .toggle-icon {
color: #ffffff !important;
}

/* Card collapse toggle button */
.card-collapse-toggle {
background: none;
border: none;
cursor: pointer;
padding: 0.25rem;
font-size: 0.875rem;
color: #555555;
transition: transform 0.2s ease;
display: flex;
align-items: center;
justify-content: center;
}

.card-collapse-toggle:hover {
color: #000000;
}

.card-collapse-toggle.collapsed {
transform: rotate(-90deg);
}

body.dark-mode .card-collapse-toggle {
color: #aaaaaa;
}

body.dark-mode .card-collapse-toggle:hover {
color: #ffffff;
}

.card-body-collapsible {
display: block;
}

.card-body-collapsible.collapsed {
display: none;
}

.districts-card-header .selection-count {
font-size: 0.75rem;
font-weight: 400;
color: var(--accent-text-color, #000000) !important;
opacity: 0.7;
margin-left: 0.5rem;
}

.districts-card-body {
display: block;
}

.districts-card-body.collapsed {
display: none;
}

.districts-grid {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 0 1rem;
padding: 0.75rem 1rem;
max-height: 350px;
overflow-y: auto;
overflow-x: hidden;
}

.districts-grid .dimension-checkbox {
margin-bottom: 0;
padding: 0.1rem 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

/* County filters grid - 5 columns with vertical flow */
.county-filters-grid {
display: grid;
grid-template-columns: repeat(5, 1fr);
grid-auto-flow: column;
grid-template-rows: repeat(18, auto);
gap: 0.2rem 1rem;
padding: 0.5rem 0;
}

.county-filters-grid .dimension-checkbox {
margin-bottom: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

/* Focus District List */
#focusDistrictList {
background: white;
}

#focusDistrictToggle {
color: #000000;
}

/* Focus Search Input */
.focus-search-input {
border: 1px solid #e0e0e0;
background: white;
color: #000000;
}

.focus-search-input:focus {
outline: none;
border-color: var(--accent-color);
}

.deselect-all-btn {
font-size: 0.7rem;
padding: 0.25rem 0.5rem;
background: white;
border: 1px solid #e0e0e0;
border-radius: 4px;
cursor: pointer;
color: #000000;
}

/* Responsive */
@media (max-width: 1200px) {
.dimension-grid {
    grid-template-columns: repeat(2, 1fr);
}
.districts-grid {
    grid-template-columns: repeat(4, 1fr);
}
.county-filters-grid {
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(22, auto);
}
}

@media (max-width: 900px) {
.dimension-grid {
    grid-template-columns: 1fr;
}
.districts-grid {
    grid-template-columns: repeat(3, 1fr);
}
.county-filters-grid {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(29, auto);
}
}

@media (max-width: 768px) {
.stats-grid {
    grid-template-columns: 1fr;
}
body { overflow-x: hidden; }
.banner-sticky { padding: 0.75rem 0.75rem 0 0.75rem; }
.banner-accent { margin: 0 -0.75rem; }
.banner-left { min-width: 0; }
}

@media (max-width: 600px) {
.districts-grid {
    grid-template-columns: repeat(2, 1fr);
}
.county-filters-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(44, auto);
}
}

/* ========================================
   DARK MODE STYLES
   ======================================== */
body.dark-mode {
background: #121517;
color: #e5e5e5;
}

body.dark-mode .theme-toggle {
background: #121517;
border-color: #404040;
color: #e5e5e5;
}

body.dark-mode .theme-toggle svg {
fill: #5b7aff;
}

body.dark-mode .ownership-text {
color: #a0a0a0;
}

body.dark-mode .card {
background: #1a1a1a;
border-color: #404040;
color: #e5e5e5;
}

body.dark-mode h1,
body.dark-mode h2,
body.dark-mode h3 {
color: #e5e5e5;
}

body.dark-mode .banner-title {
color: var(--banner-text, #ffffff) !important;
}

body.dark-mode .subtitle {
color: #a0a0a0;
}

body.dark-mode .dimension-section {
background: #1a1a1a;
border-color: #404040;
}

body.dark-mode .dimension-section h3 {
background: var(--card-header-bg);
color: var(--card-header-text);
}

body.dark-mode .dimension-section h3 span {
color: var(--card-header-text) !important;
}

body.dark-mode .dimension-section h3 .selection-count {
color: var(--card-header-text) !important;
}

body.dark-mode .dimensions-card {
background: #1a1a1a;
border-color: #404040;
}

body.dark-mode .dimensions-card-body {
background: #1a1a1a;
}

body.dark-mode .dimension-header {
background: #1a1a1a;
border-color: #404040;
}

body.dark-mode .dimension-header label,
body.dark-mode .dimension-header span {
color: #ffffff;
}

body.dark-mode .dimension-header-controls {
background: #1a1a1a;
border-color: #404040;
}

body.dark-mode .dimension-header-controls label,
body.dark-mode .dimension-header-controls span {
color: #ffffff;
}

body.dark-mode .dimension-checkbox span {
color: #e5e5e5;
}

body.dark-mode #individualFundBalancesList,
@media (max-width: 1200px) {
.fund-balance-ufars-grid {
    columns: 3;
}
}

@media (max-width: 900px) {
.fund-balance-ufars-grid {
    columns: 2;
}
}

@media (max-width: 600px) {
.fund-balance-ufars-grid {
    columns: 1;
}
}

body.dark-mode select {
background: #1a1a1a !important;
border-color: #404040 !important;
color: #e5e5e5 !important;
}

body.dark-mode input[type="number"] {
background: #1a1a1a !important;
border-color: #404040 !important;
color: #e5e5e5 !important;
}

body.dark-mode input[type="number"]::placeholder {
color: #666 !important;
}

body.dark-mode .value-range-clear-btn {
background: #1a1a1a !important;
border-color: #404040 !important;
color: #e5e5e5 !important;
}

body.dark-mode #oeDetailYear {
background: #1a1a1a !important;
border-color: #404040 !important;
color: #e5e5e5 !important;
}

body.dark-mode #oeDetailYearSelector label,
body.dark-mode .stat-card {
background: transparent;
}

body.dark-mode .stats-grid .stat-card:not(:last-child) {
border-right-color: #404040;
}

body.dark-mode .stat-label {
color: #ffffff;
}

body.dark-mode .stat-value.blue {
color: #ffffff;
}

body.dark-mode .stat-value.green {
color: #ffffff;
}

body.dark-mode .stat-value.orange {
color: #ffffff;
}

body.dark-mode .stat-detail {
color: #ffffff;
}

body.dark-mode th {
color: #e5e5e5;
border-color: #404040;
}

body.dark-mode th.sortable:hover {
background: #333;
}

body.dark-mode td {
color: #e5e5e5;
border-color: #404040;
}

body.dark-mode tr:hover {
background: var(--row-hover-color-dark, #252525);
}

body.dark-mode label {
color: #e5e5e5;
}

body.dark-mode label[for="sortOrderSelect"] {
color: #ffffff !important;
}

body.dark-mode .expand-btn {
color: var(--accent-color);
}

body.dark-mode .expand-btn:hover {
color: var(--accent-color);
opacity: 0.8;
}

body.dark-mode a {
color: var(--accent-color);
}

body.dark-mode .positive {
color: #4ade80;
}

body.dark-mode .negative {
color: #f87171;
}

body.dark-mode .note {
background: #1a1a1a;
border-color: #404040;
color: #e5e5e5;
}

body.dark-mode .amsd-average-section {
background: #1a1a1a;
border-color: var(--accent-color);
}

body.dark-mode .amsd-average-checkbox {
color: #ffffff;
}

body.dark-mode .districts-card {
background: #1a1a1a;
border-color: #404040;
}

body.dark-mode .districts-card-header {
background: var(--card-header-bg);
}

body.dark-mode .districts-card-header span {
color: var(--card-header-text) !important;
}

body.dark-mode .districts-card-header .selection-count {
color: var(--card-header-text) !important;
opacity: 0.7;
}

body.dark-mode .districts-card-body > div:first-child {
background: #1a1a1a !important;
border-color: #404040 !important;
}

body.dark-mode .districts-card-body > div:nth-child(2):not(.card-panel-footer) {
background: #252525 !important;
border-color: #404040 !important;
}

body.dark-mode .districts-card-body > .card-panel-footer {
background: #1a1a1a !important;
border: none !important;
}

body.dark-mode .districts-card-body > div:first-child label,
body.dark-mode .districts-card-body > div:first-child span {
color: #ffffff !important;
}

body.dark-mode #countyFiltersWrapper {
background: #1a1a1a !important;
border-top-color: #404040 !important;
}

body.dark-mode #countyToggleHeader span {
color: #ffffff !important;
}

body.dark-mode #countyToggleIcon {
color: #ffffff !important;
}

body.dark-mode #countySearch.focus-search-input {
background-color: #1a1a1a !important;
border: 1px solid #333333 !important;
box-shadow: none !important;
color: #e5e5e5 !important;
}

body.dark-mode #districtSortOrder {
background: #1a1a1a !important;
border-color: #404040 !important;
color: #e5e5e5 !important;
}

body.dark-mode label[for="districtSortOrder"] {
color: #e5e5e5 !important;
}

body.dark-mode #focusDistrictList {
background: #1a1a1a;
border-color: #404040;
}

body.dark-mode #focusDistrictListContainer {
border-color: #1a1a1a;
background: #1a1a1a;
}

body.dark-mode #focusDistrictListContainer > div {
background: #1a1a1a !important;
border-color: #1a1a1a !important;
}

body.dark-mode #focusDistrictSearch.focus-search-input,
body.dark-mode #districtSearch.focus-search-input,
body.dark-mode #tableSearch.focus-search-input,
body.dark-mode #heatmapSearch.focus-search-input,
body.dark-mode #sparkChartSearch.focus-search-input,
body.dark-mode #focusDistrictSearch.focus-search-input::placeholder,
body.dark-mode #districtSearch.focus-search-input::placeholder,
body.dark-mode #tableSearch.focus-search-input::placeholder,
body.dark-mode #heatmapSearch.focus-search-input::placeholder,
body.dark-mode #sparkChartSearch.focus-search-input::placeholder,
body.dark-mode #focusDistrictSearch.focus-search-input:focus,
body.dark-mode #districtSearch.focus-search-input:focus,
body.dark-mode #tableSearch.focus-search-input:focus,
body.dark-mode #heatmapSearch.focus-search-input:focus,
body.dark-mode #sparkChartSearch.focus-search-input:focus,
body.dark-mode .deselect-all-btn {
background: #1a1a1a;
border-color: #333333;
color: #ffffff;
}

body.dark-mode #focusDistrictToggle {
color: #ffffff;
}

body.dark-mode #dashboardViewLabel {
color: #ffffff !important;
}

body.dark-mode #basisSelector label {
color: #ffffff !important;
}

body.dark-mode #basis {
background: #333333;
color: #ffffff;
border-color: #555555;
}

/* Filters Card Styles */
#filtersCardBody label {
line-height: 1;
margin: 0;
display: flex;
align-items: center;
}

/* Filters Card Dark Mode */
body.dark-mode #filtersCardBody {
background: #1a1a1a;
}

body.dark-mode #filtersCardBody label {
color: #e5e5e5 !important;
}

body.dark-mode #filtersCardBody select,
body.dark-mode #filtersCardBody input[type="number"] {
background: #1a1a1a !important;
color: #ffffff !important;
border-color: #404040 !important;
}

body.dark-mode #filtersCardBody .bw-cs-trigger {
background: #1a1a1a !important;
color: #ffffff !important;
border-color: #404040 !important;
}

body.dark-mode #filtersCardBody span {
color: #999999 !important;
}

body.dark-mode #filtersCardBody .value-range-clear-btn {
background: #1a1a1a !important;
color: #ffffff !important;
border-color: #404040 !important;
}

body.dark-mode #focusDistrictCount {
color: #a0a0a0;
}

body.dark-mode label[style*="District Focus Mode"],
body.dark-mode label:has(#districtFocusMode) span,
body.dark-mode #districtFocusModeLabel {
color: #ffffff !important;
}

body.dark-mode #groupByCohortLabel {
color: #ffffff !important;
}

/* Single District Selector Styles */
#singleDistrictSelector label {
color: #000000;
}

body.dark-mode #singleDistrictSelector label {
color: #ffffff !important;
}

/* District Select Dropdown */
body.dark-mode #sdSelectTrigger {
background: #111 !important; color: #fff !important; border-color: rgba(255,255,255,0.08) !important;
}
body.dark-mode #sdSelectTrigger span[style*="color:#999"] { color: #888 !important; }
body.dark-mode #sdDropdown {
background: #1a1a1a !important; border-color: rgba(255,255,255,0.12) !important;
}
body.dark-mode #sdSearchInput {
background: #111 !important; color: #fff !important; border-color: rgba(255,255,255,0.1) !important;
}
body.dark-mode #sdSearchInput::placeholder { color: #555 !important; }
.sd-opt {
padding: 8px 12px; cursor: pointer; font-size: 0.82rem; font-family: inherit;
display: flex; align-items: center; gap: 8px; transition: background 0.1s;
}
.sd-opt:hover { background: #f0f0f0; }
.sd-opt.sd-hl { background: #e8ecff; }
.sd-opt.sd-sel { font-weight: 600; background: rgba(7,40,235,0.08); }
.sd-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; border: 1px solid rgba(0,0,0,0.1); }
.sd-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sd-num { font-size: 0.72rem; opacity: 0.4; flex-shrink: 0; font-variant-numeric: tabular-nums; }
body.dark-mode .sd-opt { color: #fff; }
body.dark-mode .sd-opt:hover { background: #333 !important; }
body.dark-mode .sd-opt.sd-hl { background: rgba(7,40,235,0.2) !important; }
body.dark-mode .sd-opt.sd-sel { background: rgba(7,40,235,0.15) !important; }
body.dark-mode .sd-dot { border-color: rgba(255,255,255,0.15); }
#sdSelectLabel { display: flex; align-items: center; gap: 6px; }

/* Open Enrollment Detail Styles */
#singleDistrictSelector {
z-index: 2; /* Higher than .card default so dropdown overlaps the OE detail card below */
}
/* Shadow on frozen column to show scroll depth */
#admDetailTable td:first-child::after,
body.dark-mode #admDetailTable td:first-child::after,
.csa-mode-btn.csa-mode-active[data-mode="adm-detail"],
.csa-mode-btn.csa-mode-active[data-mode="cohort"],
.csa-mode-btn.csa-mode-active[data-mode="grade"],
.csa-mode-btn.csa-mode-active[data-mode="year"],
body.dark-mode .csa-mode-btn.csa-mode-active[data-mode="adm-detail"],
body.dark-mode .csa-mode-btn.csa-mode-active[data-mode="cohort"],
body.dark-mode .csa-mode-btn.csa-mode-active[data-mode="grade"],
body.dark-mode .csa-mode-btn.csa-mode-active[data-mode="year"],
.oe-district-name {
color: #000000;
}

body.dark-mode .oe-district-name {
color: #ffffff;
}

.dimension-more-link {
color: var(--accent-color);
cursor: pointer;
font-weight: 500;
}

.dimension-more-link:hover {
text-decoration: underline;
}

body.dark-mode .dimension-more-link {
color: var(--accent-color);
}

body.dark-mode #dimensionDetails {
background: #1a1a1a !important;
border-color: #404040 !important;
}

body.dark-mode #dimensionDetailsText {
color: #e5e5e5 !important;
}

/* Heatmap visual */
.heatmap-wrap{
overflow: auto;
border-radius: 0 0 10px 10px;
border: none;
border-top: 1px solid #e0e0e0;
margin: 0 -1rem -1rem -1rem;
}

body.dark-mode .heatmap-wrap {
border-top-color: rgba(255,255,255,0.06);
}

.heatmap-grid{
display: grid;
width: 100%;
}

.hm-cell{
border: 1px solid rgba(0,0,0,0.06);
padding: 10px 8px;
font-size: 14px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
white-space: nowrap;
font-weight: 500;
background: #ffffff;
cursor: default;
overflow: hidden;
min-width: 0;
}

.hm-header{
position: sticky;
top: 0;
z-index: 1000;
font-weight: 800;
white-space: normal;
word-wrap: break-word;
overflow-wrap: break-word;
line-height: 1.3;
padding: 8px 6px;
cursor: pointer;
user-select: none;
transition: background-color 0.2s;
}

.hm-header:hover {
background-color: var(--accent-color-light);
}

.hm-header.sorted {
}

.hm-header .sort-indicator {
margin-left: 0.25rem;
font-size: 0.6rem;
display: inline-block;
position: static;
opacity: 1;
transform: none;
}

/* Column header text truncation */
.hm-header-text { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.hm-header { white-space: nowrap; overflow: hidden; word-wrap: normal; overflow-wrap: normal; }
.spark-chart-header { white-space: nowrap; }

.hm-corner{
position: sticky;
left: 0;
top: 0;
z-index: 1001;
justify-content: flex-start;
padding-left: 12px;
min-width: 260px;
max-width: none;
border-top-left-radius: 5px;
box-shadow: 2px 0 4px rgba(0,0,0,0.15);
}

.hm-rowhead{
position: sticky;
left: 0;
z-index: 10;
justify-content: flex-start;
padding-left: 12px;
font-weight: 400;
white-space: normal;
min-width: 260px;
box-shadow: 2px 0 4px rgba(0,0,0,0.15);
}

/* District color dot indicator */
.hm-dot {
display: inline-block;
width: 6px;
height: 6px;
border-radius: 50%;
margin-right: 5px;
vertical-align: middle;
flex-shrink: 0;
}

.hm-header{ color:#000000; }
.hm-rowhead{ color:#000000; background:#ffffff !important; }
.hm-corner{ color:#000000; background:#ffffff !important; }

/* Dark mode styles for heatmap */
body.dark-mode .hm-cell {
border-color: rgba(255,255,255,0.06);
background: #1a1a1a;
}

body.dark-mode .hm-header {
color: #e5e5e5 !important;
background: #1a1a1a !important;
}

body.dark-mode .hm-corner {
color: #ffffff !important;
background: #1a1a1a !important;
}

body.dark-mode .hm-rowhead {
color: #e5e5e5 !important;
background: #1a1a1a !important;
}

body.dark-mode #objectRankHeatmapMeta {
color: #a0a0a0;
}

body.dark-mode #objectRankHeatmapCard .card {
background: #1a1a1a;
}

body.dark-mode #heatmapDimensionSelector,
body.dark-mode #heatmapRankBy,
body.dark-mode #comparisonGroup,
body.dark-mode #comparisonGroupTiles,
body.dark-mode #comparisonGroupTable,
body.dark-mode #comparisonGroupChart,
body.dark-mode #heatmapRowSort,
body.dark-mode #heatmapColSort {
background: #1a1a1a !important;
border-color: #404040 !important;
color: #e5e5e5 !important;
}

.rank-basis-label {
color: #555555;
}

.rank-basis-select {
padding: 0.25rem 0.5rem;
font-size: 0.8rem;
border: 1px solid #e0e0e0;
border-radius: 6px;
background: white;
color: #000000;
cursor: pointer;
height: auto;
line-height: 1.2;
}

body.dark-mode .rank-basis-label {
color: #aaaaaa;
}

body.dark-mode .rank-basis-select {
background: #1a1a1a !important;
border-color: #404040 !important;
color: #e5e5e5 !important;
}

body.dark-mode #toggleHeatmapBtn {
background: #333 !important;
border-color: #404040 !important;
color: #e5e5e5 !important;
}

body.dark-mode #toggleSparkChartBtn {
background: #333 !important;
border-color: #404040 !important;
color: #e5e5e5 !important;
}

body.dark-mode #toggleTableBtn {
background: #333;
border-color: #404040;
color: #e5e5e5;
}

body.dark-mode #toggleTableBtn:hover {
background: #444;
}

body.dark-mode #objectRankHeatmapCard h2 {
color: #e5e5e5;
}

body.dark-mode #objectRankHeatmapCard div[style*="color: #555555"] {
color: #a0a0a0 !important;
}

body.dark-mode #objectRankHeatmapCard label[style*="color: #555555"] {
color: #a0a0a0 !important;
}

/* Column filter buttons */
.column-filter-btn {
background: none;
border: none;
cursor: pointer;
padding: 2px 4px;
margin-left: 4px;
font-size: 0.7rem;
color: #888;
border-radius: 3px;
transition: all 0.2s;
}

.column-filter-btn:hover {
background: rgba(0, 0, 0, 0.1);
color: #000;
}

.column-filter-btn.active {
background: var(--accent-color);
color: var(--accent-text-color);
}

body.dark-mode .column-filter-btn {
color: #888;
}

body.dark-mode .column-filter-btn:hover {
background: rgba(255, 255, 255, 0.1);
color: #e5e5e5;
}

body.dark-mode .column-filter-btn.active {
background: var(--accent-color);
color: var(--accent-text-color);
}

.hm-header.sortable,
.hm-rowhead.sortable {
cursor: pointer;
user-select: none;
}

.hm-header.sortable:hover,
.hm-rowhead.sortable:hover {
opacity: 0.8;
}

.hm-sort-indicator {
font-size: 0.7rem;
margin-left: 4px;
opacity: 0.6;
}

/* Custom instant tooltip */
.hm-tooltip {
position: fixed;
background: rgba(255, 255, 255, 0.98);
color: #111111;
border-radius: 8px;
font-size: 12px;
font-weight: 500;
line-height: 1.4;
pointer-events: none;
z-index: 10000;
opacity: 0;
transition: opacity 0.1s ease;
max-width: 320px;
min-width: 200px;
box-shadow: 0 8px 24px rgba(0,0,0,0.15);
border: none;
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
overflow: hidden;
--tt-text: #1a1a1a;
--tt-sec: #444;
--tt-dim: #666;
--tt-muted: #888;
--tt-green: #16a34a;
--tt-red: #dc2626;
--tt-blue: #2563eb;
--tt-bdr: rgba(0,0,0,0.08);
--tt-bg-sub: rgba(0,0,0,0.03);
}

body.dark-mode .hm-tooltip {
background: rgba(24, 24, 28, 0.96);
color: #ffffff;
border: none;
box-shadow: 0 8px 24px rgba(0,0,0,0.5);
--tt-text: #fff;
--tt-sec: #ccc;
--tt-dim: #999;
--tt-muted: #777;
--tt-green: #22c55e;
--tt-red: #ef4444;
--tt-blue: #4d6aff;
--tt-bdr: rgba(255,255,255,0.08);
--tt-bg-sub: rgba(255,255,255,0.03);
}

.hm-tooltip.visible {
opacity: 1;
}

/* Custom Cohort Modal */
.cohort-modal-overlay {
    position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
z-index: 10000;
justify-content: center;
align-items: center;
}

.cohort-modal-overlay.visible {
display: flex;
}

.cohort-modal {
background: white;
border-radius: 12px;
padding: 1.5rem;
width: 90%;
max-width: 400px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

body.dark-mode .cohort-modal {
background: #1e1e1e;
color: #e0e0e0;
}

.cohort-modal h3 {
margin: 0 0 1rem 0;
font-size: 1.1rem;
}

.cohort-modal input[type="text"] {
width: 100%;
padding: 0.75rem;
border: 1px solid #e0e0e0;
border-radius: 8px;
font-size: 1rem;
margin-bottom: 1rem;
box-sizing: border-box;
}

body.dark-mode .cohort-modal input[type="text"] {
background: #2a2a2a;
border-color: #444;
color: #e0e0e0;
}

.cohort-modal-buttons {
display: flex;
gap: 0.75rem;
justify-content: flex-end;
}

.cohort-modal-buttons button {
padding: 0.5rem 1rem;
border-radius: 6px;
font-size: 0.875rem;
cursor: pointer;
border: 1px solid #e0e0e0;
}

.cohort-modal-buttons .save-btn {
background: #0728eb;
color: #ffffff;
border: none;
}

.cohort-modal-buttons .cancel-btn {
background: #f5f5f5;
color: #333;
}

body.dark-mode .cohort-modal-buttons .cancel-btn {
background: #333;
color: #e0e0e0;
border-color: #444;
}

/* Custom Cohort Checkboxes */
.custom-cohorts-container {
margin-top: 0.5rem;
padding-top: 0.5rem;
border-top: 1px dashed #ccc;
}

body.dark-mode .custom-cohorts-container {
border-top-color: #444;
}

.custom-cohort-item {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 0.25rem;
}

.custom-cohort-item label {
flex: 1;
}

.custom-cohort-delete {
background: none;
border: none;
color: #999;
cursor: pointer;
font-size: 1rem;
padding: 0 0.25rem;
line-height: 1;
}

.custom-cohort-delete:hover {
color: #e74c3c;
}

/* Save Cohort Button */
.save-cohort-btn {
padding: 0.4rem 0.75rem;
font-size: 0.75rem;
background: var(--accent-color, #000000);
color: var(--accent-text-color, #ffffff);
border: none;
border-radius: 4px;
cursor: pointer;
    white-space: nowrap;
}

.save-cohort-btn.visible {
display: inline-block;
}

.save-cohort-btn:hover {
opacity: 0.9;
}

.save-filter-btn {
padding: 0.4rem 0.75rem;
font-size: 0.75rem;
background: var(--accent-color, #000000);
color: var(--accent-text-color, #ffffff);
border: none;
border-radius: 4px;
cursor: pointer;
white-space: nowrap;
}

.save-filter-btn:hover {
opacity: 0.9;
}

.delete-filter-btn {
padding: 0.4rem 0.6rem;
font-size: 0.75rem;
background: #e74c3c;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
white-space: nowrap;
}

.delete-filter-btn:hover {
opacity: 0.9;
}

.delete-filter-btn:disabled {
background: #ccc;
color: #333;
cursor: not-allowed;
}

/* Saved Filter Modal */
.filter-modal-overlay {
    position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
z-index: 10000;
justify-content: center;
align-items: center;
}

.filter-modal-overlay.visible {
display: flex;
}

.filter-modal {
background: white;
border-radius: 12px;
padding: 1.5rem;
width: 90%;
max-width: 400px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

body.dark-mode .filter-modal {
background: #1e1e1e;
color: #e0e0e0;
}

.filter-modal h3 {
margin: 0 0 0.5rem 0;
font-size: 1.1rem;
}

.filter-modal p {
margin: 0 0 1rem 0;
font-size: 0.85rem;
color: #666;
}

body.dark-mode .filter-modal p {
color: #999;
}

.filter-modal input[type="text"] {
width: 100%;
padding: 0.75rem;
border: 1px solid #e0e0e0;
border-radius: 8px;
font-size: 1rem;
margin-bottom: 1rem;
box-sizing: border-box;
}

body.dark-mode .filter-modal input[type="text"] {
background: #2a2a2a;
border-color: #444;
color: #e0e0e0;
}

.filter-modal-buttons {
display: flex;
gap: 0.75rem;
justify-content: flex-end;
}

.filter-modal-buttons button {
padding: 0.5rem 1rem;
border-radius: 6px;
font-size: 0.875rem;
cursor: pointer;
border: 1px solid #e0e0e0;
}

.filter-modal-buttons .save-btn {
background: #0728eb;
color: #ffffff;
border: none;
}

.filter-modal-buttons .cancel-btn {
background: #f5f5f5;
color: #333;
}

body.dark-mode .filter-modal-buttons .cancel-btn {
background: #333;
color: #e0e0e0;
border-color: #444;
}

/* Hamburger Menu Styles */
#hamburgerBtn {
color: #ffffff;
}

body.dark-mode #hamburgerBtn {
color: #ffffff;
}

/* Hamburger to X icon animation */
#hamburgerIcon line {
transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
transform-origin: center;
}

#hamburgerBtn.active #hamburgerIcon line:nth-child(1) {
transform: translateY(6px) rotate(45deg);
}

#hamburgerBtn.active #hamburgerIcon line:nth-child(2) {
opacity: 0;
}

#hamburgerBtn.active #hamburgerIcon line:nth-child(3) {
transform: translateY(-6px) rotate(-45deg);
}

.hamburger-menu-item {
background: none;
border: none;
color: #ffffff;
font-size: 1rem;
padding: 0.75rem 1rem;
text-align: left;
cursor: pointer;
border-radius: 6px;
transition: background 0.2s;
font-family: 'Inter', sans-serif;
display: flex;
align-items: center;
gap: 0.5rem;
}
.hamburger-menu-item svg {
width: 18px;
height: 18px;
flex-shrink: 0;
}

.hamburger-menu-item:hover {
background: var(--menu-highlight-hover, rgba(255,255,255,0.15));
}

.hamburger-menu-item.active {
background: var(--menu-highlight-active, rgba(255,255,255,0.3));
font-weight: 600;
}

#hamburgerMenu.dark-text .hamburger-menu-item:hover {
background: var(--menu-highlight-hover, rgba(0,0,0,0.1));
}

#hamburgerMenu.dark-text .hamburger-menu-item.active {
background: var(--menu-highlight-active, rgba(0,0,0,0.2));
}

#hamburgerMenu.dark-text .hamburger-menu-item,
#hamburgerMenu.dark-text h3,
#hamburgerMenu.dark-text div {
color: #000000 !important;
}

#hamburgerMenu.dark-text #hamburgerCloseBtn {
color: #000000 !important;
}

#hamburgerMenu.dark-text select {
color: #000000 !important;
background: rgba(0,0,0,0.1) !important;
border-color: rgba(0,0,0,0.3) !important;
}

#hamburgerMenu.dark-text select option {
background: #ffffff;
color: #000000;
}

#hamburgerMenu.open {
transform: translateX(0) !important;
}

/* ========================================
   SPARK CHART STYLES
   ======================================== */
.spark-chart-grid {
display: grid;
width: 100%;
gap: 0;
}

.spark-chart-header {
position: sticky;
top: 0;
z-index: 1000;
font-weight: 800;
font-size: 12px;
white-space: normal;
line-height: 1.3;
padding: 8px 6px;
cursor: pointer;
user-select: none;
transition: background-color 0.2s;
border: 1px solid #e0e0e0;
background: #ffffff;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
color: #000000;
overflow: hidden;
min-width: 0;
}

.spark-chart-header:hover {
background-color: var(--accent-color-light);
}

.spark-chart-header.sorted {
}

body.dark-mode .spark-chart-header {
background: #1a1a1a;
border-color: #404040;
color: #e5e5e5;
}

body.dark-mode .spark-chart-header.sorted {
background: #1a1a1a;
}

.spark-chart-corner {
position: sticky;
left: 0;
top: 0;
z-index: 1001;
justify-content: flex-start;
padding-left: 12px;
background: #ffffff;
border-top-left-radius: 5px;
box-shadow: 2px 0 4px rgba(0,0,0,0.15);
min-width: 260px;
max-width: none;
}

body.dark-mode .spark-chart-corner {
background: #1a1a1a;
}

.spark-chart-rowhead {
position: sticky;
left: 0;
z-index: 10;
justify-content: flex-start;
padding-left: 12px;
font-weight: 400;
font-size: 12px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
border: 1px solid rgba(0,0,0,0.06);
background: #ffffff;
display: flex;
align-items: center;
color: #000000;
cursor: pointer;
min-width: 260px;
box-shadow: 2px 0 4px rgba(0,0,0,0.15);
}

.spark-chart-rowhead:hover {
color: var(--accent-color);
}

body.dark-mode .spark-chart-rowhead {
background: #1a1a1a;
border-color: rgba(255,255,255,0.06);
color: #e5e5e5;
}

.spark-chart-cell {
border: 1px solid rgba(0,0,0,0.06);
background: transparent;
display: flex;
align-items: center;
padding: 0;
overflow: hidden;
min-width: 0;
}
.spark-chart-cell svg { flex: 1; min-width: 0; }

.spark-chart-cell-nodata {
background: #f5f5f5;
}

body.dark-mode .spark-chart-cell-nodata {
background: #2a2a2a;
}

.spark-nodata-text {
color: #6b7280;
font-size: 11px;
}

body.dark-mode .spark-chart-cell {
background: transparent;
border-color: rgba(255,255,255,0.06);
}

.spark-chart-header .sort-indicator {
margin-left: 0.25rem;
font-size: 0.6rem;
display: inline-block;
position: static;
opacity: 1;
transform: none;
}

/* .spark-row-collapsed is a marker class only - display controlled via inline styles */

.spark-chart-wrap {
overflow-x: auto;
overflow-y: auto;
max-height: 725px;
min-height: 200px;
position: relative;
border-radius: 0 0 10px 10px;
border: none;
border-top: 1px solid #e0e0e0;
margin: 0 -1rem -1rem -1rem;
}

.spark-chart-wrap.scrollable-panel-rel {
margin-top: 0;
}

body.dark-mode .spark-chart-wrap {
border-top-color: rgba(255,255,255,0.06);
}

/* SVG Sparkline */
.sparkline {
overflow: visible;
width: 100%;
height: 70px;
display: block;
}

.sparkline-line {
fill: none;
stroke: #000000;
stroke-width: 1.5;
}

body.dark-mode .sparkline-line {
stroke: #ffffff;
}

.sparkline-dot {
transition: r 0.15s;
}

.sparkline-dot:hover {
r: 5;
}

/* Spark Chart Loading Overlay */
#sparkChartLoadingOverlay {
display: none;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
min-height: 200px;
background: rgba(248, 250, 252, 0.97);
z-index: 100;
justify-content: center;
align-items: center;
flex-direction: column;
border-radius: 8px;
backdrop-filter: blur(2px);
}

body.dark-mode #sparkChartLoadingOverlay {
background: rgba(20, 20, 25, 0.97);
}

#sparkChartLoadingOverlay.visible {
display: flex;
}

#sparkChartLoadingBox {
background: white;
padding: 1.75rem 2.5rem;
border-radius: 12px;
text-align: center;
border: 1px solid #e2e8f0;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04);
}

body.dark-mode #sparkChartLoadingBox {
background: #1e1e24;
border-color: #3a3a44;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

#sparkChartLoadingTitle {
font-size: 0.95rem;
font-weight: 600;
margin-bottom: 1rem;
color: #1e293b;
letter-spacing: 0.01em;
}

body.dark-mode #sparkChartLoadingTitle {
color: #f1f5f9;
}

#sparkChartLoadingBarContainer {
width: 220px;
height: 5px;
background: #e2e8f0;
border-radius: 4px;
overflow: hidden;
}

body.dark-mode #sparkChartLoadingBarContainer {
background: #3a3a44;
}

#sparkChartLoadingProgress {
width: 0%;
height: 100%;
background: linear-gradient(90deg, #3b82f6, #60a5fa);
border-radius: 4px;
transition: width 0.3s ease-out;
}

#sparkChartLoadingStatus {
font-size: 0.8rem;
color: #64748b;
margin-top: 0.75rem;
}

body.dark-mode #sparkChartLoadingStatus {
color: #94a3b8;
}

/* Dark mode for spark chart card elements */
body.dark-mode #sparkChartCard h2 {
color: #ffffff;
}

body.dark-mode #sparkChartCard div[style*="color: #555555"] {
color: #a0a0a0 !important;
}

body.dark-mode #sparkChartCard label[style*="color: #555555"] {
color: #a0a0a0 !important;
}

body.dark-mode #sparkChartCard select {
background: #1a1a1a !important;
border-color: #404040 !important;
color: #e5e5e5 !important;
}

body.dark-mode #sparkChartMeta {
color: #a0a0a0;
}

#sparkChartCollapseToggle {
color: #000000 !important;
}

.card .toggle-icon#sparkChartCollapseToggle {
color: #000000 !important;
}

body.dark-mode #sparkChartCollapseToggle,
body.dark-mode .card .toggle-icon#sparkChartCollapseToggle {
color: #ffffff !important;
}

/* ========================================
   LOADING OVERLAY
   ======================================== */

/* Chart No-Data Message */
.chart-no-data {
    position: absolute;
    display: none;
inset: 0;
z-index: 5;
align-items: center;
justify-content: center;
font-size: 1.1rem;
color: #888;
text-align: center;
padding: 2rem;
pointer-events: none;
}

.chart-no-data.visible {
display: flex;
}

body.dark-mode .chart-no-data {
color: #777;
}

/* Loading Overlay */
.loading-overlay {
position: fixed;
inset: 0;
z-index: 100000;
display: flex;
align-items: center;
justify-content: center;
background: rgba(0, 0, 0, 0);
pointer-events: none;
opacity: 0;
transition: opacity 0.2s ease, background 0.2s ease;
}

.loading-overlay.visible {
opacity: 1;
pointer-events: auto;
background: rgba(0, 0, 0, 0.25);
}

body.dark-mode .loading-overlay.visible {
background: rgba(0, 0, 0, 0.45);
}

.loading-box {
background: #ffffff;
border-radius: 12px;
padding: 20px 28px 18px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18), 0 2px 8px rgba(0, 0, 0, 0.08);
min-width: 260px;
max-width: 320px;
text-align: center;
}

body.dark-mode .loading-box {
background: #1e1e1e;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);
}

.loading-label {
font-size: 0.82rem;
font-weight: 500;
color: #555;
margin-bottom: 12px;
letter-spacing: 0.02em;
}

body.dark-mode .loading-label {
color: #aaa;
}

.loading-track {
width: 100%;
height: 6px;
background: #e8e8e8;
border-radius: 3px;
overflow: hidden;
}

body.dark-mode .loading-track {
background: #333;
}

.loading-bar {
height: 100%;
width: 0%;
border-radius: 3px;
transition: width 0.3s ease-out;
}

.loading-bar.animating {
transition: width 3s cubic-bezier(0.1, 0.4, 0.2, 0.85);
width: 85%;
}

.loading-bar.finishing {
transition: width 0.15s ease-out;
width: 100%;
}



/* Utility & Component Classes */

.abs-top-right {
    position: absolute;
    top: 0.75rem;
    right: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    white-space: nowrap;
}

.action-btn {
    padding: 0.4rem 0.8rem;
    background: #f5f5f5;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 500;
    color: #000000;
    font-family: inherit;
    transition: all 0.15s;
}
.action-btn:hover { background: #e8e8e8; }

.action-btn-nowrap {
    padding: 0.4rem 0.8rem;
    background: #f5f5f5;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 500;
    white-space: nowrap;
    color: #000000;
    font-family: inherit;
    transition: all 0.15s;
}
.action-btn-nowrap:hover { background: #e8e8e8; }

body.dark-mode .action-btn,
body.dark-mode .action-btn-nowrap {
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.1);
    color: #ccc;
}
body.dark-mode .action-btn:hover,
body.dark-mode .action-btn-nowrap:hover {
    background: rgba(255,255,255,0.12);
    color: #fff;
}

.back-link {
    text-decoration: none;
    font-size: 0.875rem;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: var(--checkbox-color, #0728eb);
}

body.dark-mode .back-link {
    color: var(--checkbox-color, #0728eb);
}

.banner-accent {
    height: 5px;
    background: var(--banner-accent-bg, #0728eb);
    margin: 0 -2rem;
}

.banner-left {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.banner-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 100%;
    padding-bottom: 0.75rem;
}

.banner-sticky {
    background: var(--banner-bg, #000);
    margin: -1rem -1rem 1rem -1rem;
    padding: 0.75rem 2rem 0 2rem;
    position: sticky;
    top: 0;
    z-index: 2000;
}

.banner-title {
    line-height: 1.1 !important;
    color: var(--banner-text, #fff) !important;
    font-family: 'Outfit', sans-serif !important;
    font-weight: 800 !important;
    font-size: 1.75rem !important;
    white-space: nowrap !important;
    margin: 0.15rem 0 0 0 !important;
    padding: 0 !important;
}
@media (max-width: 768px) {
    .banner-title { font-size: 1.1rem !important; }
}

.card-expanded-body {
    padding: 0.75rem 1rem;
    background: #f9f9f9;
}

body.dark-mode .card-expanded-body {
    background: transparent;
}

.card-panel {
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    max-width: 280px;
    overflow: hidden;
}

.card-panel-footer {
    padding: 0.5rem 1rem;
    background: #f9f9f9;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

body.dark-mode .card-panel-footer {
    background: #1a1a1a !important;
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    outline: none !important;
}

.card-panel-header {
    padding: 0.4rem 0.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.card-panel-list {
    max-height: 200px;
    overflow-y: auto;
    padding: 0.5rem;
}

.card-panel-pad {
    padding: 0.5rem;
    background: #f5f5f5;
}

body.dark-mode .card-panel-pad {
    background: transparent !important;
}

.card-section-body {
    padding: 0.75rem 1rem;
    background: #f5f5f5;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.card-section-header {
    padding: 0.75rem 1rem;
}

.card-section-pad-sm {
    padding: 0.25rem 1rem 0.5rem 1rem;
}

.card-title-sm {
    font-size: 0.875rem;
    font-weight: 500;
    color: #000000;
    margin: 0;
    padding: 0;
}

.checkbox-row {
    display: flex;
    align-items: center;
    cursor: pointer;
    margin-bottom: 0.5rem;
}

.ctrl-btn-sm {
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    background: white;
    cursor: pointer;
}

.ctrl-btn-subtle {
    padding: 0.4rem 0.6rem;
    font-size: 0.75rem;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: #f5f5f5;
    color: #555;
    cursor: pointer;
    line-height: 1.4;
    font-family: 'Inter', sans-serif;
    box-sizing: border-box;
}

body.dark-mode .ctrl-btn-subtle {
    background: #1a1a1a;
    border-color: #404040;
    color: #e5e5e5;
}

.ctrl-icon {
    width: 16px;
    height: 16px;
    cursor: pointer;
}

.ctrl-input-200 {
    width: 200px;
    padding: 0.4rem 0.6rem;
    border-radius: 4px;
    font-size: 0.8rem;
    font-family: inherit;
    border: 1px solid #e0e0e0;
}

.ctrl-input-300 {
    width: 300px;
    padding: 0.4rem 0.6rem;
    border-radius: 4px;
    font-size: 0.8rem;
    font-family: inherit;
}

.ctrl-input-300-mb {
    width: 300px;
    padding: 0.4rem 0.6rem;
    border-radius: 4px;
    font-size: 0.8rem;
    font-family: inherit;
    margin-bottom: 0.5rem;
}

.ctrl-input-flex {
    flex: 1;
    max-width: 300px;
    padding: 0.4rem 0.6rem;
    border-radius: 4px;
    font-size: 0.8rem;
    font-family: inherit;
    border: 1px solid #e0e0e0;
}

.ctrl-input-full {
    width: 100%;
    padding: 0.4rem 0.6rem;
    border-radius: 4px;
    font-size: 0.8rem;
    font-family: inherit;
    border: 1px solid #e0e0e0;
}

.ctrl-select {
    padding: 0.4rem 0.6rem;
    font-size: 0.8rem;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: white;
    color: #000000;
    cursor: pointer;
}

.ctrl-select-inherit {
    padding: 0.35rem 0.5rem;
    font-size: 0.8rem;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: white;
    color: #000;
    cursor: pointer;
    font-family: inherit;
}

.ctrl-select-min {
    padding: 0.4rem 0.6rem;
    font-size: 0.8rem;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: white;
    color: #000000;
    cursor: pointer;
    min-width: 70px;
}

.ctrl-select-sm {
    padding: 0.35rem 0.5rem;
    font-size: 0.8rem;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: white;
    color: #000000;
    cursor: pointer;
}

.ctrl-select-sm-nc {
    padding: 0.35rem 0.5rem;
    font-size: 0.8rem;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: white;
    color: #000000;
}

.ctrl-select-sm-ptr {
    padding: 0.35rem 0.5rem;
    font-size: 0.8rem;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: white;
    color: #000000;
    cursor: pointer;
}

.ctrl-select-trigger {
    padding: 0.35rem 2rem 0.35rem 0.5rem;
    font-size: 0.8rem;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: white;
    color: #000;
    cursor: pointer;
    font-family: inherit;
    min-width: 240px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    position:relative;
    -webkit-appearance:none;
    line-height:1.4;
}

.ctrl-tall {
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    background: white;
    color: #000000;
    cursor: pointer;
    height: 36px;
    width: auto;
}

.ctrl-w70 {
    width: 70px;
    padding: 0.4rem 0.5rem;
    font-size: 0.8rem;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: white;
    color: #000000;
    line-height: 1.4;
    font-family: 'Inter', sans-serif;
    box-sizing: border-box;
}

.ctrl-w80 {
    width: 80px;
    padding: 0.4rem 0.5rem;
    font-size: 0.8rem;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: white;
    color: #000000;
    line-height: 1.4;
    font-family: 'Inter', sans-serif;
    box-sizing: border-box;
}

.ctrl-w80-ptr {
    width: 80px;
    padding: 0.35rem 0.5rem;
    font-size: 0.8rem;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: white;
    color: #000000;
    cursor: pointer;
}

.d-block {
    display: block;
}

.dim-col {
    width: 16.25%;
}

.dim-col-left {
    width: 16.25%;
    text-align: left;
}

.dropdown-arrow {
    position:absolute;
    right:8px;
    top:50%;
    transform:translateY(-50%);
    font-size:0.5rem;
    color:#999;
    pointer-events:none;
}

.dropdown-list {
    max-height:240px;
    overflow-y:auto;
}

.dropdown-pad {
    padding:6px;
}

.dropdown-panel {
    position:absolute;
    top:100%;
    left:0;
    width:320px;
    background:white;
    border:1px solid #e0e0e0;
    border-radius: 6px;
    z-index:1000;
    box-shadow:0 4px 12px rgba(0,0,0,0.15);
    margin-top:2px;
    overflow:hidden;
}

.dropdown-search {
    width:100%;
    padding:5px 8px;
    font-size:0.8rem;
    border:1px solid #e0e0e0;
    border-radius:4px;
    background:#f9f9f9;
    color:#000;
    font-family:inherit;
    box-sizing:border-box;
    outline:none;
}

.empty-state {
    text-align: center;
    padding: 1.5rem 0 0.5rem 0;
    color: #6b7280;
    font-size: 0.875rem;
    font-weight: 500;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.75rem;
}

.filter-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: #333;
    white-space: nowrap;
    line-height: 1;
}

.filter-row {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.filter-row-nm {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.flex-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.flex-between-mb {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.flex-between-mb-sm-gap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
    gap: 1rem;
}

.flex-between-wrap {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 0.5rem;
}

.flex-between-wrap-gap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.flex-center {
    display: flex;
    align-items: center;
}

.flex-center-gap {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.flex-center-gap-compact {
    display:flex;
    align-items:center;
    gap:0.5rem;
}

.flex-center-gap-lg {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.flex-center-gap-md {
    display:flex;
    align-items:center;
    gap: 1rem;
    flex-wrap:wrap;
}

.flex-center-gap-ptr {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
}

.flex-center-wrap {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
}

.flex-col-end {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.75rem;
}

.flex-col-gap {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.flex-col-gap-pr {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding-right: 220px;
}

.flex-gap-6 {
    display:flex;
    gap:6px;
    align-items:center;
}

.flex-hidden-gap {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.flex-no-gap {
    display:flex;
    gap:0;
}

.hamburger-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.25rem;
    margin-left: -0.5rem;
    margin-top: 0.1rem;
    color: var(--hamburger-color, #fff);
}

.hidden {
    display: none;
}

.hidden-mb-10 {
    margin-bottom:10px;
}

.hidden-relative {
    position: relative;
}

.info-panel {
    margin-top: 0.5rem;
    padding: 0.5rem 0.75rem;
    background: #f5f5f5;
    border-radius: 8px;
    border: 1px solid #e0e0e0;
}

.inline-flex-static {
    position: static;
    display: inline-flex;
}

.label-bold {
    margin-bottom: 0;
    font-weight: 600;
}

.label-bold-sm {
    font-weight: 600;
    font-size: 0.8rem;
    margin-bottom:0;
}

.mb-0 {
    margin-bottom: 0;
}

.mb-md {
    margin-bottom: 0.75rem;
}

.mb-sm {
    margin-bottom: 0.5rem;
}

.mb-xs {
    margin-bottom: 0.25rem;
}

.menu-close {
    background: none;
    border: none;
    color: #ffffff;
    cursor: pointer;
    padding: 0.25rem;
}

.menu-drawer {
    position: fixed;
    top: 0;
    left: 0;
    width: 280px;
    height: 100%;
    background: #0728eb;
    z-index: 9999;
    box-shadow: 2px 0 10px rgba(0,0,0,0.3);
    transform: translateX(-100%);
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
}

.menu-nav-list {
    margin: 0.5rem 0 0 1.5rem;
    padding: 0;
}

.menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    z-index: 9998;
}

.menu-pad {
    padding: 1.5rem;
    min-height: 100%;
}

.menu-search {
    width: 100%;
    padding: 0.5rem;
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 6px;
    font-size: 0.875rem;
    background: rgba(255,255,255,0.1);
    color: #ffffff;
}

.menu-section-gap {
    margin-bottom: 2rem;
}

.menu-title {
    color: #ffffff;
    margin: 0;
    font-size: 1.25rem;
}

.ml-sm {
    margin-left: 0.5rem;
}

.ml-sm-xs {
    margin-left: 0.5rem;
    font-size: 0.6rem;
}

.mt-md {
    margin-top: 1rem;
}

.mt-md-pt {
    margin-top: 1rem;
    padding-top: 0.75rem;
}

.pad-content {
    padding:4px 12px 12px;
}

.pos-relative {
    position:relative;
}

.scrollable-panel {
    margin-top: 1rem;
    max-height: 725px;
    overflow: auto;
}

.scrollable-panel-rel {
    margin-top: 1rem;
    max-height: 725px;
    overflow: auto;
    position: relative;
}

.section-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: #555555;
    margin: 0;
    white-space: nowrap;
}

.sidebar-heading {
    color: rgba(255,255,255,0.7);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    margin-bottom: 0.75rem;
}

.subsection-controls {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-left: 1.75rem;
    flex-wrap: wrap;
}

.subsection-label {
    color: #555555;
    font-size: 0.875rem;
    margin-left: 1.75rem;
}

.text-color-999 {
    color:#999;
}

.text-color-dark {
    color: #000000;
}

.text-desc {
    font-size: 0.875rem;
    color: #555555;
    line-height: 1.4;
    display: flex;
    gap: 0.25rem 2rem;
    flex-wrap: wrap;
}

.text-desc-sm {
    font-size: 0.875rem;
    color: #555555;
}

body.dark-mode .text-desc-sm {
    color: #a0a0a0;
}

.text-hint {
    color: #6b7280;
    font-size: 0.8rem;
    margin-left: 1.75rem;
}

.text-hint-mt {
    color: #6b7280;
    font-size: 0.8rem;
    margin-top: 0.5rem;
}

.text-md {
    font-size: 1rem;
}

.text-md-500 {
    font-size: 0.8rem;
    font-weight: 500;
}

.text-muted-md {
    font-size: 0.8rem;
    font-weight: 500;
    color: #555;
}

.text-muted-sm {
    color: #999;
    font-size: 0.8rem;
    line-height: 1;
}

.text-muted-sm-999 {
    color: #999;
    font-size: 0.8rem;
}

.text-sm {
    font-size: 0.75rem;
}

.text-sm-500 {
    font-size: 0.75rem;
    font-weight: 500;
    margin-bottom: 0;
}

.text-sm-muted {
    font-size: 0.75rem;
    color: #666;
}

.text-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.text-xs-hidden {
    font-size: 0.7rem;
    }

.text-xs-mr {
    font-size: 0.7rem;
    margin-right: 0.5rem;
}

.toggle-link {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-weight: 600;
    font-size: 0.8rem;
    color: #000000;
    gap: 0.4rem;
    white-space: nowrap;
}

.toggle-link-hidden {
    align-items: center;
    cursor: pointer;
    font-weight: 600;
    font-size: 0.8rem;
    color: #000000;
    gap: 0.4rem;
    white-space: nowrap;
}

.w-35 {
    width: 35%;
}

/* JS-generated element classes */

.empty-msg {
    text-align: center;
    padding: 2rem;
    color: #666;
}

.empty-msg-light {
    text-align: center;
    padding: 2rem;
    color: #888;
}

.empty-msg-grid {
    grid-column: 1 / -1;
    text-align: center;
    padding: 2rem;
    color: #888;
}

.empty-msg-error {
    text-align: center;
    padding: 2rem;
    color: #dc2626;
}

.hm-cell-empty {
    border: none;
    padding: 18px;
    color: #6b7280;
    justify-content: flex-start;
}

/* Active column highlight — applied to header + cells when a filter is active */
.hm-col-active {
    box-shadow: inset 0 0 0 1.5px rgba(7,40,235,0.5);
}
.hm-header.hm-col-active {
    box-shadow: inset 0 0 0 1.5px rgba(7,40,235,0.5);
    background: rgba(7,40,235,0.12) !important;
    color: #fff !important;
}
body.dark-mode .hm-col-active {
    box-shadow: inset 0 0 0 1.5px rgba(77,106,255,0.5);
}
body.dark-mode .hm-header.hm-col-active {
    box-shadow: inset 0 0 0 1.5px rgba(77,106,255,0.5);
    background: rgba(77,106,255,0.15) !important;
    color: #fff !important;
}
.spark-chart-header.hm-col-active {
    box-shadow: inset 0 0 0 1.5px rgba(7,40,235,0.5);
    background: rgba(7,40,235,0.12) !important;
    color: #fff !important;
}
.spark-chart-cell.hm-col-active {
    box-shadow: inset 0 0 0 1.5px rgba(7,40,235,0.5);
}
body.dark-mode .spark-chart-header.hm-col-active {
    box-shadow: inset 0 0 0 1.5px rgba(77,106,255,0.5);
    background: rgba(77,106,255,0.15) !important;
}
body.dark-mode .spark-chart-cell.hm-col-active {
    box-shadow: inset 0 0 0 1.5px rgba(77,106,255,0.5);
}

.text-tiny-muted {
    font-size: 0.7rem;
    color: #888;
}

.sd-no-results {
    padding: 10px;
    text-align: center;
    color: #999;
    font-size: 0.8rem;
}

.grid-single-col {
    grid-template-columns: 1fr;
}

.ptr {
    cursor: pointer;
}

.mb-10 {
    margin: 0 0 10px;
}

/* ============================================================
   Custom Select Dropdown (BondwoodCustomSelect v2)
   Replaces native <select> with cross-browser consistent styling
   ============================================================ */

.bw-cs-wrap {
    position: relative;
    display: inline-block;
    vertical-align: middle;
}

.bw-cs-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    background: #ffffff;
    color: #000000;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: 0.4rem 0.6rem;
    font-size: 0.8rem;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    user-select: none;
    -webkit-user-select: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    box-sizing: border-box;
    line-height: 1.4;
}

.bw-cs-trigger:hover {
    border-color: #c0c0c0;
}

.bw-cs-trigger:focus {
    outline: none;
    border-color: var(--accent-color, #4a90d9);
    box-shadow: 0 0 0 3px var(--accent-color-light, rgba(74, 144, 217, 0.15));
}

.bw-cs-text {
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
    min-width: 0;
}

.bw-cs-chevron {
    font-size: 0.65rem;
    color: #888;
    flex-shrink: 0;
    transition: transform 0.2s ease;
    line-height: 1;
}

.bw-cs-open .bw-cs-chevron {
    transform: rotate(180deg);
}

.bw-cs-panel {
    position: absolute;
    width: max-content;
    max-width: 400px;
    max-height: 420px;
    overflow-y: auto;
    background: #ffffff;
    color: #000000;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
    z-index: 99999;
    padding: 3px 0;
    box-sizing: border-box;
}

.bw-cs-option {
    padding: 6px 10px;
    font-size: 0.8rem;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.4;
    transition: background-color 0.1s ease;
}

.bw-cs-option:hover {
    background: #f0f0f0;
}

.bw-cs-option-sel {
    background: #e8e8e8;
    font-weight: 600;
}

.bw-cs-option-sel:hover {
    background: #e0e0e0;
}

/* Optgroup labels */
.bw-cs-group-label {
    padding: 6px 10px 3px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #888;
    cursor: default;
    user-select: none;
}

.bw-cs-group-label:not(:first-child) {
    margin-top: 4px;
    padding-top: 6px;
}

.bw-cs-option-grouped {
    padding-left: 16px;
}

/* Size variants — trigger inherits ctrl-* classes from original select */
.bw-cs-wrap:has(.ctrl-w70) { width: 70px; }
.bw-cs-wrap:has(.ctrl-w80),
.bw-cs-wrap:has(.ctrl-w80-ptr) { width: 80px; }
.bw-cs-wrap:has(.ctrl-select-min) { min-width: 70px; }
.bw-cs-wrap:has(.ctrl-select-trigger) { min-width: 240px; }
.bw-cs-wrap:has(.ctrl-tall) .bw-cs-trigger { height: 36px; }
.bw-cs-wrap:has(.menu-search) { width: 100%; }

/* ---- Dark mode ---- */

body.dark-mode .bw-cs-trigger {
    background: #1a1a1a;
    color: #ffffff;
    border-color: #404040;
}

body.dark-mode .bw-cs-trigger:hover {
    border-color: #555;
}

body.dark-mode .bw-cs-chevron {
    color: #888;
}

body.dark-mode .bw-cs-panel {
    background: #1a1a1a;
    color: #ffffff;
    border-color: #404040;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
}

body.dark-mode .bw-cs-option:hover {
    background: #2a2a2a;
}

body.dark-mode .bw-cs-option-sel {
    background: #333333;
}

body.dark-mode .bw-cs-option-sel:hover {
    background: #3a3a3a;
}

body.dark-mode .bw-cs-group-label {
    color: #777;
}

/* Hamburger menu with dark-text class */
#hamburgerMenu.dark-text .bw-cs-trigger {
    color: #000000;
    background: rgba(0, 0, 0, 0.1);
    border-color: rgba(0, 0, 0, 0.3);
}

#hamburgerMenu.dark-text .bw-cs-panel {
    background: #ffffff;
    color: #000000;
}

#hamburgerMenu.dark-text .bw-cs-group-label {
    color: #888;
}

#hamburgerMenu .bw-cs-group-label {
    color: rgba(255,255,255,0.5);
}

/* Disabled state */
.bw-cs-wrap:has(select:disabled) .bw-cs-trigger {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Scrollbar */
.bw-cs-panel::-webkit-scrollbar { width: 6px; }
.bw-cs-panel::-webkit-scrollbar-track { background: transparent; }
.bw-cs-panel::-webkit-scrollbar-thumb { background: #ccc; border-radius: 3px; }
body.dark-mode .bw-cs-panel::-webkit-scrollbar-thumb { background: #555; }

/* Brand selector dropdown — show 25 items before scrolling */
.bw-cs-panel[data-for="brandSelectorMenu"] {
max-height: 750px;
}

/* ═══ Global Stealth Scrollbar ═══ */
*::-webkit-scrollbar { width: 6px; height: 6px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb {
    background: transparent;
    border-radius: 10px;
    transition: background 0.2s;
}
/* Dark mode (default) */
*:hover::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); }
*:hover::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.18); }
*:hover::-webkit-scrollbar-thumb:active { background: rgba(255,255,255,0.25); }
* { scrollbar-width: thin; scrollbar-color: transparent transparent; }
*:hover { scrollbar-color: rgba(255,255,255,0.08) transparent; }

/* Light mode */
body:not(.dark-mode) *:hover::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.1); }
body:not(.dark-mode) *:hover::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.2); }
body:not(.dark-mode) *:hover::-webkit-scrollbar-thumb:active { background: rgba(0,0,0,0.3); }
body:not(.dark-mode) *:hover { scrollbar-color: rgba(0,0,0,0.1) transparent; }

/* PELSB table change colors */
.green-text { color: #22c55e !important; }
.red-text { color: #ef4444 !important; }

/* Zero-values warning banner */
.zero-values-warning {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    padding: 0.65rem 1rem;
    margin-bottom: 0.5rem;
    border-radius: 10px;
    background: rgba(234, 160, 48, 0.1);
    border: 1px solid rgba(234, 160, 48, 0.3);
    color: #b87a1a;
    font-size: 0.82rem;
    font-weight: 500;
    font-family: 'Outfit', sans-serif;
}
.zero-warning-icon {
    font-size: 1rem;
    line-height: 1;
}
.zero-warning-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: nowrap;
}
.zero-warning-details {
    width: 100%;
    font-size: 0.78rem;
    font-weight: 400;
    line-height: 1.6;
    margin-top: 0.25rem;
}
.zero-warning-details.collapsed {
    display: none;
}
.zero-warning-name {
    white-space: nowrap;
}
.zero-warning-toggle {
    background: none;
    border: none;
    color: #b87a1a;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
    font-family: 'Outfit', sans-serif;
}
body.dark-mode .zero-values-warning {
    background: rgba(234, 160, 48, 0.08);
    border-color: rgba(234, 160, 48, 0.25);
    color: #e8a030;
}
body.dark-mode .zero-warning-toggle {
    color: #e8a030;
}
