/**
 * OZARK ORACLE - Arkansas Timeline Map Styles
 * Page-specific CSS for arkansas_timeline_map.html
 *
 * LAYOUT (Desktop 1024px+):
 *   - Nav: fixed top, 48px tall
 *   - Left sidebar: fixed, 380px wide, controls + filters + POI
 *   - Right sidebar: fixed, 360px wide, scrollable STORYLINE
 *   - Map: fills remaining space between sidebars
 *   - Controls bar: fixed bottom, full width, ~56px tall
 *
 * LAYOUT (Mobile <1024px):
 *   - Both sidebars collapse to overlay drawers
 *   - Map fills viewport
 *   - Controls bar at bottom
 *
 * Requires: quantum-theme.css + stylesheet-resource-map.css loaded first
 */

/* === LAYOUT VARIABLES === */
:root {
    --nav-height: 48px;
    --controls-height: 46px;
    --sidebar-left-width: 380px;
    --sidebar-right-width: 360px;
    --sidebar-top: var(--nav-height);
    --sidebar-bottom: var(--controls-height);
    --sidebar-bg: rgba(0, 0, 0, 0.92);
    --panel-border: #d4af37;
}

/* === MAP OVERRIDE — offset from BOTH sidebars === */
@media (min-width: 1024px) {
    #map {
        left: var(--sidebar-left-width) !important;
        right: var(--sidebar-right-width) !important;
        top: var(--nav-height) !important;
        bottom: var(--controls-height) !important;
        width: auto !important;
        height: auto !important;
    }
}

/* === LEFT SIDEBAR (ALL INFO LOCKED LEFT) === */
.sidebar-left {
    position: fixed;
    top: var(--nav-height);
    left: 0;
    bottom: var(--controls-height);
    width: var(--sidebar-left-width);
    z-index: 1000;
    background: var(--sidebar-bg);
    border-right: 2px solid var(--panel-border);
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
}

/* === RIGHT SIDEBAR (STORYLINE) === */
.sidebar-right {
    position: fixed;
    top: var(--nav-height);
    right: 0;
    bottom: var(--controls-height);
    width: var(--sidebar-right-width);
    z-index: 1000;
    background: var(--sidebar-bg);
    border-left: 2px solid var(--panel-border);
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
}

.sidebar-right .story-header {
    padding: 10px 15px;
    border-bottom: 1px solid rgba(212,175,55,0.3);
    flex-shrink: 0;
}

.sidebar-right .story-header .title {
    color: #d4af37;
    font-size: var(--text-md);
    font-weight: bold;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin: 0;
}

.sidebar-right .story-header .subtitle {
    color: #aaa;
    font-size: var(--text-xs);
    margin-top: 4px;
}

.story-events {
    flex: 1;
    overflow-y: auto;
    padding: 0;
}

.story-event {
    padding: 10px 15px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    cursor: pointer;
    transition: background 0.2s;
}

.story-event:hover {
    background: rgba(212,175,55,0.08);
}

.story-event.active {
    background: rgba(212,175,55,0.15);
    border-left: 3px solid #d4af37;
}

.story-event-year {
    color: #d4af37;
    font-size: var(--text-xs);
    font-weight: bold;
    letter-spacing: 1px;
}

.story-event-name {
    color: #fff;
    font-size: var(--text-sm);
    font-weight: bold;
    margin: 2px 0;
    line-height: 1.3;
}

.story-event-cat {
    display: inline-block;
    font-size: var(--text-2xs);
    padding: 1px 6px;
    border-radius: 3px;
    color: #000;
    font-weight: bold;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin: 3px 0;
}

.story-event-cat.cat-burn { background: #ff4444; }
.story-event-cat.cat-purge { background: #ff8800; }
.story-event-cat.cat-gerry { background: #d4af37; }
.story-event-cat.cat-governor { background: #00ff88; }
.story-event-cat.cat-ltgov { background: #66ddaa; }
.story-event-cat.cat-admin { background: #888; color: #fff; }
.story-event-cat.cat-mining { background: #00ff64; }
.story-event-cat.cat-water { background: #0088ff; color: #fff; }
.story-event-cat.cat-capture { background: #0064ff; color: #fff; }
.story-event-cat.cat-default { background: #555; color: #fff; }

.story-loading {
    padding: 15px;
    color: #888;
    text-align: center;
}

.story-event-desc {
    color: #ccc;
    font-size: var(--text-xs);
    line-height: 1.5;
    margin-top: 4px;
}

.story-event-link {
    color: #d4af37;
    font-size: var(--text-2xs);
    text-decoration: none;
    display: inline-block;
    margin-top: 4px;
}

.story-event-link:hover {
    text-decoration: underline;
}

/* Category color for genocide/burn events */
.story-event.genocide {
    border-right: 3px solid #ff4444;
}

/* === UI PANELS (shared base) === */
.ui-panel {
    padding: 12px 15px;
    pointer-events: auto;
    border-bottom: 1px solid #333;
    flex-shrink: 0;
}

/* === HEADER PANEL (inside left sidebar) === */
.header-panel {
    padding: 15px;
}

.title {
    font-size: var(--text-lg);
    font-weight: bold;
    letter-spacing: 2px;
    margin-bottom: 8px;
    color: #FFD700;

}

.subtitle {
    font-size: var(--text-xs);
    color: #888;
    margin-bottom: 10px;
    line-height: 1.4;
}

/* === ERA NARRATIVE PANEL (scrollable history inside left sidebar) === */
.era-narrative {
    flex: 1;
    overflow-y: auto;
    border-top: 2px solid #d4af37;
    padding: 0;
    min-height: 0;
}

.era-narrative-content {
    padding: 10px 15px;
}

.era-node-entry {
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid #333;
}

.era-node-entry:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

.era-node-title {
    font-size: var(--text-sm);
    font-weight: bold;
    color: #FFD700;
    margin-bottom: 3px;

}

.era-node-cat {
    font-size: var(--text-xs);
    color: #888;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 5px;

}

.era-node-desc {
    font-size: var(--text-sm);
    color: #ccc;
    line-height: 1.5;

}

.era-node-arlink {
    margin-top: 6px;
    padding: 6px 8px;
    background: rgba(255, 215, 0, 0.1);
    border-left: 3px solid #FFD700;
    font-size: var(--text-xs);
    color: #FFD700;
    line-height: 1.4;
}

.arlink-label {
    font-weight: 700;
    letter-spacing: 1px;
    color: #FFD700;
}

.era-node-link {
    display: inline-block;
    margin-top: 6px;
    color: #00FFFF;
    text-decoration: none;
    font-size: var(--text-xs);

    letter-spacing: 0.5px;
}

.era-node-link:hover {
    text-decoration: underline;
    color: #fff;
}

/* === DOCKED NODE DETAIL (when a map marker is clicked) === */
.docked-detail {
    display: none;
    padding: 15px;
    padding-top: 35px;
    position: relative;
    background: rgba(30, 20, 0, 0.5);
    border-top: 2px solid #FF6B6B;

    font-size: var(--text-sm);
    line-height: 1.5;
    color: #ccc;
    flex-shrink: 0;
    animation: flash-detail 0.4s ease;
}

.docked-detail.visible {
    display: block;
}

@keyframes flash-detail {
    0% { background: rgba(212, 175, 55, 0.3); }
    100% { background: rgba(30, 20, 0, 0.5); }
}

.docked-detail-close {
    position: absolute;
    top: 6px;
    right: 10px;
    background: none;
    border: 1px solid #555;
    color: #888;
    font-size: var(--text-lg);
    width: 26px;
    height: 26px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;

    line-height: 1;
    padding: 0;
}

.docked-detail-close:hover {
    color: #FFD700;
    border-color: #FFD700;
}

.desc-text {
    font-size: var(--text-sm);
    color: #ccc;
    line-height: 1.4;
}

/* (Old leadership-inline removed — now in POI panel on right sidebar) */

.section-header {
    font-size: var(--text-xs);

    text-transform: uppercase;
    color: #888;
    margin-top: 10px;
    border-bottom: 1px solid #333;
    padding-bottom: 3px;
}

.section-header:first-child {
    margin-top: 0;
}

/* === GEOLOGY LEGEND (inside left sidebar, at bottom) === */
.geology-legend {
    padding: 10px 15px;
    border-top: 1px solid #333;
    border-bottom: none;
    font-size: var(--text-xs);

    flex-shrink: 0;
}

.geology-legend .legend-item {
    display: flex;
    align-items: center;
    margin-bottom: 5px;
}

.color-box {
    width: 15px;
    height: 15px;
    min-width: 15px;
    margin-right: 10px;
    border: 1px solid #fff;
}

.color-box-karst { background: rgba(0, 100, 255, 0.3); }
.color-box-smackover { background: rgba(0, 255, 100, 0.3); }
.color-box-delta { background: rgba(255, 100, 0, 0.3); }

/* === NEXUS LINK BUTTON (in header and right sidebar) === */
.nexus-link-btn {
    display: block;
    text-align: center;
    text-decoration: none;

    font-size: var(--text-xs);
    color: #00FFFF;
    border: 1px solid #00FFFF;
    padding: 6px 8px;
    margin-top: 8px;
    background: transparent;
    letter-spacing: 1px;
}

.nexus-link-btn:hover {
    background: rgba(0, 255, 255, 0.15);
    color: #fff;
    text-decoration: none;
}


/* === POPUP STYLES (Leaflet popups on the map) === */
.popup-title {
    color: #d4af37;
    font-weight: bold;

    margin-bottom: 5px;
    display: block;
}

.popup-desc {
    font-size: var(--text-sm);

}

.popup-link {
    display: block;
    margin-top: 10px;
    color: #FFD700;
    text-decoration: none;
    font-size: var(--text-sm);

    border-top: 1px solid #333;
    padding-top: 5px;
}

.popup-link:hover {
    text-decoration: underline;
}

.popup-alert {
    color: #FF6B6B;
    margin-top: 5px;
}

.popup-moved {
    color: #FFD700;
    margin-top: 5px;
}

/* (Old info-panel removed — replaced by .docked-detail in left sidebar) */

/* === PEOPLE OF INTEREST PANEL (top of right sidebar) === */
.poi-panel {
    padding: 12px 15px;

    border-bottom: 1px solid #333;
    flex-shrink: 0;
}

.poi-panel .panel-title {
    font-size: var(--text-xs);
    color: #FFD700;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;

}

.poi-section {
    margin-bottom: 10px;
}

.poi-label {
    font-size: var(--text-xs);
    color: #888;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-bottom: 1px solid #333;
    padding-bottom: 2px;
    margin-bottom: 5px;

}

.poi-entry {
    font-size: var(--text-sm);
    margin-bottom: 3px;
    line-height: 1.4;
}

.poi-name {
    color: #d4af37;
    text-decoration: none;
    font-weight: bold;
}

.poi-name:hover {
    text-decoration: underline;
    color: #FFD700;
}

.poi-party {
    font-size: var(--text-sm);
    margin-left: 3px;
}

.poi-party-r { color: #CC3333; }
.poi-party-d { color: #3366CC; }

.poi-years {
    display: block;
    font-size: var(--text-xs);
    color: #666;
}

.poi-list {
    font-size: var(--text-sm);
    color: #ccc;
}

.poi-figure {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
    font-size: var(--text-sm);
}

.poi-figure-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.poi-figure-name {
    color: #ccc;
    text-decoration: none;
}

.poi-figure-name:hover {
    color: #FFD700;
    text-decoration: underline;
}

.poi-figure-cat {
    font-size: var(--text-xs);
    color: #666;
    margin-left: auto;
    white-space: nowrap;
}

/* === LAYERS PANEL (collapsible, bottom of right sidebar) === */
.layers-panel {
    padding: 0;

    border-top: 1px solid #333;
}

.layers-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: transparent;
    border: none;
    color: #888;
    padding: 8px 15px;
    cursor: pointer;

    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.layers-toggle:hover {
    color: #d4af37;
}

.layers-toggle.active {
    color: #FFD700;
}

.layers-arrow {
    font-size: var(--text-sm);
}

.layers-content {
    padding: 0 15px 10px;
}

/* === POLITICAL TOGGLE (inside layers panel) === */
.political-panel {
    padding: 10px 15px;

    border-bottom: 1px solid #333;
    flex-shrink: 0;
}

.political-panel .panel-title {
    font-size: var(--text-xs);
    color: #FFD700;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;

}

.pol-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: transparent;
    border: 1px solid #444;
    color: #ccc;
    padding: 5px 8px;
    cursor: pointer;

    font-size: var(--text-xs);
    margin-bottom: 4px;
    width: 100%;
    text-align: left;
}

.pol-toggle:hover {
    border-color: #d4af37;
    color: #d4af37;
}

.pol-toggle.active {
    background: rgba(212, 175, 55, 0.2);
    border-color: #d4af37;
    color: #FFD700;
}

.pol-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
    margin-right: 6px;
    flex-shrink: 0;
}

.pol-count {
    font-size: var(--text-sm);
    color: #666;
}

/* === DISTRICT GERRYMANDERING OVERLAY === */
.district-section {
    margin-top: 8px;
    border-top: 1px solid #444;
    padding-top: 8px;
}

.district-section .panel-title {
    font-size: var(--text-xs);
    color: #FF6B6B;
    margin-bottom: 6px;
}

.pol-dot-gerry { background: #FF6B6B; }

.js-hidden { display: none; }

.era-selector {
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
    margin-top: 4px;
}

.era-btn {
    background: transparent;
    border: 1px solid #555;
    color: #888;
    padding: 3px 6px;
    cursor: pointer;

    font-size: var(--text-xs);
    flex: 1;
    min-width: 45px;
    text-align: center;
}

.era-btn:hover {
    border-color: #d4af37;
    color: #d4af37;
}

.era-btn.active {
    background: rgba(255, 107, 107, 0.3);
    border-color: #FF6B6B;
    color: #FFD700;
}

.district-legend {
    margin-top: 6px;
    font-size: var(--text-xs);
}

.district-legend-item {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 2px;
}

.district-legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.district-legend-party {
    font-weight: bold;
}

.district-info {
    margin-top: 6px;
    font-size: var(--text-xs);
    color: #FF6B6B;
    line-height: 1.3;
}

.gerry-alert {
    color: #FF4444;
    font-weight: bold;
    font-size: var(--text-xs);
    margin-top: 4px;
}

/* === NEXUS DATABASE LAYER (inside right sidebar) === */
.nexus-toggle-section {
    margin-top: 8px;
    border-top: 1px solid #444;
    padding-top: 8px;
}

.nexus-toggle-section .panel-title {
    font-size: var(--text-xs);
    color: #00FFFF;
    margin-bottom: 6px;
}

.nexus-toggle-label {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;

    font-size: var(--text-xs);
    color: #ccc;
    padding: 5px 8px;
    border: 1px solid #444;
    background: transparent;
    width: 100%;
    margin-bottom: 4px;
}

.nexus-toggle-label:hover {
    border-color: #00FFFF;
    color: #00FFFF;
}

.nexus-toggle-label.active {
    background: rgba(0, 255, 255, 0.1);
    border-color: #00FFFF;
    color: #00FFFF;
}

.nexus-toggle-checkbox {
    accent-color: #00FFFF;
    width: 14px;
    height: 14px;
    cursor: pointer;
    flex-shrink: 0;
}

.nexus-toggle-count {
    margin-left: auto;
    font-size: var(--text-sm);
    color: #666;
}

/* === NEXUS POPUP STATUS BADGES === */
.nexus-popup-status {
    font-size: var(--text-xs);
    margin-top: 4px;
    padding: 2px 6px;
    display: inline-block;
    border: 1px solid #555;

}

.nexus-popup-status--active {
    color: #FF4444;
    border-color: #FF4444;
}

.nexus-popup-status--connected {
    color: #FFD700;
    border-color: #FFD700;
}

.nexus-popup-status--background {
    color: #888;
    border-color: #555;
}

.nexus-popup-category {
    font-size: var(--text-xs);
    color: #888;
    margin-top: 3px;
    text-transform: uppercase;
    letter-spacing: 1px;

}

.nexus-popup-note {
    font-size: var(--text-sm);
    color: #ccc;
    margin-top: 5px;
    line-height: 1.3;

}

.pol-dot-nexus {
    background: #00FFFF;
}

/* === PULSE FOR ACTIVE NODES === */
.pulse {
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 0 0 rgba(212, 175, 55, 0.4);
    animation: pulse-gold 2s infinite;
}

@keyframes pulse-gold {
    0% { box-shadow: 0 0 0 0 rgba(212, 175, 55, 0.7); }
    70% { box-shadow: 0 0 0 10px rgba(212, 175, 55, 0); }
    100% { box-shadow: 0 0 0 0 rgba(212, 175, 55, 0); }
}

/* === CONTROLS — same as resource_map.html, just above footer === */
.controls {
    z-index: 10000;
    height: var(--controls-height);
    box-sizing: border-box;
}

/* === MOBILE HUD (compact info overlay, hidden on desktop) === */
.mobile-hud {
    display: none;
}

/* =========================================================================
   RESPONSIVE: TABLET / SMALLER DESKTOP (768px - 1023px)
   ========================================================================= */
@media (max-width: 1023px) {
    .sidebar-left {
        position: fixed;
        width: 300px;
        left: 0;
        top: var(--nav-height);
        bottom: var(--controls-height);
        z-index: 1000;
        transform: translateX(-100%);
        transition: transform 0.3s ease;
        border-right: 2px solid var(--panel-border);
    }

    .sidebar-left.open {
        transform: translateX(0);
    }

    .sidebar-right {
        position: fixed;
        width: 300px;
        right: 0;
        top: var(--nav-height);
        bottom: var(--controls-height);
        z-index: 1000;
        transform: translateX(100%);
        transition: transform 0.3s ease;
        border-left: 2px solid var(--panel-border);
    }

    .sidebar-right.open {
        transform: translateX(0);
    }

    /* Toggle buttons for sidebars on tablet/mobile */
    .sidebar-toggle {
        display: flex;
        position: fixed;
        z-index: 1001;
        top: calc(var(--nav-height) + 8px);
        height: 32px;
        background: rgba(0, 0, 0, 0.9);
        border: 1px solid #d4af37;
        color: #d4af37;
        cursor: pointer;
        align-items: center;
        justify-content: center;

        font-size: var(--text-xs);
        padding: 0 10px;
        gap: 5px;
        letter-spacing: 1px;
        text-transform: uppercase;
    }

    .sidebar-toggle:hover {
        background: #d4af37;
        color: #000;
    }

    .sidebar-toggle-left {
        left: 8px;
    }

    .sidebar-toggle-left.active {
        background: #d4af37;
        color: #000;
    }

    .sidebar-toggle-right {
        right: 8px;
    }

    .sidebar-toggle-right.active {
        background: #d4af37;
        color: #000;
    }

    /* Backdrop when sidebar open */
    .sidebar-backdrop {
        display: none;
        position: fixed;
        top: var(--nav-height);
        left: 0;
        right: 0;
        bottom: var(--controls-height);
        background: rgba(0, 0, 0, 0.5);
        z-index: 999;
    }

    .sidebar-backdrop.visible {
        display: block;
    }

    /* Mobile HUD: compact year + governor on map */
    .mobile-hud {
        display: block;
        position: fixed;
        top: calc(var(--nav-height) + 8px);
        left: 50%;
        transform: translateX(-50%);
        z-index: 1000;
        background: rgba(0, 0, 0, 0.9);
        border: 1px solid #d4af37;
        padding: 4px 12px;
    
        text-align: center;
        pointer-events: none;
        max-width: calc(100vw - 180px);
    }

    .mobile-hud-year {
        font-size: var(--text-lg);
        font-weight: bold;
        color: #FFD700;
    }

    .mobile-hud-gov {
        font-size: var(--text-xs);
        color: #d4af37;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

/* Hide toggle buttons on desktop */
@media (min-width: 1024px) {
    .sidebar-toggle,
    .sidebar-backdrop,
    .mobile-hud {
        display: none !important;
    }
}

/* =========================================================================
   RESPONSIVE: MOBILE (<768px)
   ========================================================================= */
@media (max-width: 768px) {
    :root {
        --controls-height: 30px;
    }

    .sidebar-left {
        width: 85vw;
        max-width: 320px;
    }

    .sidebar-right {
        width: 85vw;
        max-width: 320px;
    }

    .header-panel .title {
        font-size: var(--text-sm);
        margin-bottom: 5px;
    }

    .header-panel .subtitle {
        font-size: var(--text-xs);
        margin-bottom: 5px;
    }

    .era-narrative {
        max-height: 200px;
    }

    .era-node-title { font-size: var(--text-sm); }
    .era-node-desc { font-size: var(--text-xs); }

    .docked-detail {
        font-size: var(--text-sm);
    }

    .poi-panel {
        padding: 8px 12px;
    }

    .poi-entry { font-size: var(--text-xs); }
    .poi-figure { font-size: var(--text-xs); }

    .layers-toggle {
        font-size: var(--text-xs);
        padding: 6px 12px;
    }

    .political-panel .panel-title {
        font-size: var(--text-xs);
        margin-bottom: 5px;
    }

    .pol-toggle {
        font-size: var(--text-xs);
        padding: 4px 6px;
        min-height: 36px;
    }

    .era-btn {
        font-size: var(--text-xs);
        padding: 2px 4px;
    }

    .district-info {
        font-size: var(--text-xs);
    }

    .nexus-toggle-label {
        font-size: var(--text-xs);
        padding: 4px 6px;
        min-height: 36px;
    }

    .nexus-link-btn {
        font-size: var(--text-xs);
        padding: 3px 6px;
        min-height: 36px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /* Controls bar: match resource_map mobile */
    .controls {
        padding: 4px 8px;
        gap: 4px;
    }

    .controls .btn {
        padding: 4px 6px;
    }

    .era-narrative {
        max-height: 180px;
    }
}

/* ===== FILTER PANEL ===== */
.filter-panel { padding: 8px 10px; }
.filter-search {
    width: 100%;
    padding: 6px 10px;
    background: rgba(0,0,0,0.5);
    border: 1px solid rgba(255,255,255,0.2);
    color: #fff;
    font-size: var(--text-sm);
    border-radius: 4px;
    margin-bottom: 8px;
    box-sizing: border-box;
}
.filter-search::placeholder { color: rgba(255,255,255,0.4); }
.filter-search:focus { outline: none; border-color: #d4af37; }
.filter-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 8px;
    max-height: 200px;
    overflow-y: auto;
    margin-bottom: 8px;
}
.filter-cat-label {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: var(--text-xs);
    color: #ccc;
    cursor: pointer;
    padding: 2px 0;
    white-space: nowrap;
}
.filter-cat-label:hover { color: #fff; }
.filter-cat-cb { width: 14px; height: 14px; cursor: pointer; margin: 0; }
.filter-cat-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}
.filter-cat-text { font-size: var(--text-xs); }
.filter-reset {
    width: 100%;
    padding: 5px;
    font-size: var(--text-xs);
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.2);
    color: #d4af37;
    cursor: pointer;
    border-radius: 3px;
}
.filter-reset:hover { background: rgba(255,255,255,0.2); }
