:root {
    /* Light Theme (Default) */
    --body-bg: #f0f2f5;
    --card-bg: #ffffff;
    --text-primary: #2c3e50;
    --text-secondary: #7f8c8d;
    --text-headings: #34495e;
    --accent-color: #3498db;
    --accent-color-darker: #2980b9;
    --green-increase: #27ae60;
    --red-decrease: #c0392b;
    --border-color: #e0e0e0;
    --shadow-color: rgba(0, 0, 0, 0.1);
    --shadow-hover-color: rgba(0, 0, 0, 0.15);
    --font-family-main: 'Open Sans', sans-serif;
    --font-size-base: 16px;
    --tooltip-bg: color-mix(in srgb, var(--text-primary) 85%, transparent); /* Added for tooltip */
    --tooltip-text: var(--card-bg); /* Added for tooltip */


    /* Transitions */
    --transition-speed: 0.2s;
    --transition-timing: ease-in-out;

    /* Scrollbar */
    --scrollbar-track-bg: var(--body-bg);
    --scrollbar-thumb-bg: #bdc3c7;
    --scrollbar-thumb-hover-bg: #95a5a6;
}

[data-theme="dark"] {
    --body-bg: #1a1a2e; /* Dark blue/purple */
    --card-bg: #24243e;  /* Slightly lighter dark blue/purple */
    --text-primary: #e0e0e0; /* Light grey for primary text */
    --text-secondary: #a0a0b0; /* Medium grey for secondary text */
    --text-headings: #f0f0f0; /* Very light grey for headings */
    --accent-color: #4ecca3; /* Teal/Mint for accent */
    --accent-color-darker: #3ba383;
    --green-increase: #2ecc71; /* Brighter green */
    --red-decrease: #e74c3c;   /* Brighter red */
    --border-color: #3a3a5a; /* Darker border */
    --shadow-color: rgba(0, 0, 0, 0.2);
    --shadow-hover-color: rgba(0, 0, 0, 0.3);
    --tooltip-bg: color-mix(in srgb, var(--text-primary) 85%, transparent); /* Dark theme tooltip */
    --tooltip-text: var(--card-bg); /* Dark theme tooltip */


    /* Scrollbar Dark */
    --scrollbar-track-bg: var(--body-bg);
    --scrollbar-thumb-bg: #4a4a6a;
    --scrollbar-thumb-hover-bg: #6a6a8a;
}

/* Custom Scrollbars */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
::-webkit-scrollbar-track {
    background: var(--scrollbar-track-bg);
}
::-webkit-scrollbar-thumb {
    background: var(--scrollbar-thumb-bg);
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: var(--scrollbar-thumb-hover-bg);
}

body {
    font-family: var(--font-family-main);
    font-size: var(--font-size-base);
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 100vh;
    background-color: var(--body-bg);
    /* Subtle Background Gradient */
    background-image: linear-gradient(180deg, var(--body-bg) 0%, color-mix(in srgb, var(--body-bg) 95%, black) 100%);
    margin: 0;
    padding: 20px;
    color: var(--text-primary);
    box-sizing: border-box;
    transition: background-color var(--transition-speed) var(--transition-timing), color var(--transition-speed) var(--transition-timing);
}

.app-header {
    width: 100%;
    max-width: 1200px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    padding: 0 10px;
}

.app-header h1 {
    color: var(--text-headings);
    font-weight: 700;
    font-size: 2em;
    text-align: center; /* It was center in your provided full CSS */
}
.app-header h1 i {
    margin-right: 10px;
    color: var(--accent-color);
}

/* Header Controls */
.app-header .controls {
    display: flex;
    gap: 10px;
    align-items: center;
}
.app-header .controls button { /* General styling for control buttons */
    background-color: var(--card-bg);
    color: var(--accent-color);
    border: 1px solid var(--border-color);
    padding: 8px 12px;
    font-size: 1em;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color var(--transition-speed) var(--transition-timing), color var(--transition-speed) var(--transition-timing), border-color var(--transition-speed) var(--transition-timing);
}
.app-header .controls button:hover {
    background-color: var(--accent-color);
    color: var(--card-bg);
    border-color: var(--accent-color);
}
.app-header .controls button i {
    font-size: 1.2em;
}

.app-header .controls .refresh-all-btn {
    background-color: var(--accent-color) !important; 
    color: var(--card-bg) !important; 
    border-color: var(--accent-color) !important;
    /* Keep other refresh-all-btn specific styles like padding, font-weight from earlier */
    padding: 10px 18px;
    font-weight: 600;
}
[data-theme="dark"] .app-header .controls .refresh-all-btn {
    color: var(--body-bg) !important; 
}
.app-header .controls .refresh-all-btn:hover {
    background-color: var(--accent-color-darker) !important;
}
.app-header .controls .refresh-all-btn:disabled {
    background-color: color-mix(in srgb, var(--text-secondary) 50%, transparent) !important;
    cursor: not-allowed;
}


/* Grid Layout for Main Container */
.main-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 25px;
    width: 100%;
    max-width: 1200px;
}

.price-card {
    background-color: var(--card-bg);
    padding: 20px 25px;
    border-radius: 12px;
    box-shadow: 0 4px 12px var(--shadow-color);
    text-align: center;
    width: auto; 
    min-height: 280px; /* From your earlier CSS */
    display: flex;
    flex-direction: column;
    transition: transform var(--transition-speed) var(--transition-timing), 
                box-shadow var(--transition-speed) var(--transition-timing),
                background-color var(--transition-speed) var(--transition-timing);
    border: 1px solid transparent; 
    position: relative; /* For absolute positioning of close button */
}
.price-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 16px var(--shadow-hover-color);
}
.price-card:focus-within, 
.price-card .refresh-btn:focus { 
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent-color) 30%, transparent);
}

.price-card .card-header-controls {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 10px;
}
.price-card .card-header-controls h1 {
    color: var(--text-headings);
    margin-top: 0;
    padding-bottom: 0; /* Removed from h1 as border is on parent */
    margin-bottom: 0;  /* Removed from h1 */
    font-size: 1.3em;
    font-weight: 600;
    border-bottom: none; /* Removed from h1 */
    flex-grow: 1;       /* Allows title to take space */
    text-align: center; /* As per your last full CSS */
}
.price-card .card-header-controls h1 i {
    margin-right: 8px;
    color: var(--accent-color);
}

.price-card .price-display {
    font-size: 2.2em;
    font-weight: 700;
    margin-bottom: 15px;
    color: var(--text-primary); /* Default color */
    position: relative;
    min-height: 1.5em;
    text-align: center; /* As per your last full CSS */
    display: flex; 
    justify-content: center; 
    align-items: baseline; 
}
.price-card .price-display .value {
    display: inline-block;
    color: var(--text-primary); 
    transition: color var(--transition-speed) var(--transition-timing), opacity 0.15s var(--transition-timing); /* Combined transitions */
}
.price-card .price-display .value.increase { color: var(--green-increase); }
.price-card .price-display .value.decrease { color: var(--red-decrease); }
.price-card .price-display .value.neutral { color: var(--text-primary); }

.price-card .price-display .unit {
    font-size: 0.5em; 
    font-weight: normal;
    color: var(--text-secondary); 
    margin-left: 2px;
    align-self: center; /* For flex alignment */
}
.price-updating { /* For number fade animation */
    opacity: 0.5;
    /* transition is on .value */
}

.loader {
    display: none;
    border: 4px solid color-mix(in srgb, var(--accent-color) 20%, transparent);
    border-top: 4px solid var(--accent-color);
    border-radius: 50%;
    width: 24px;
    height: 24px;
    animation: spin 1s linear infinite;
    margin: 0 auto 5px auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.price-card.loading .price-display .value,
.price-card.loading .price-display .unit {
    opacity: 0.3;
}
.price-card.loading .loader {
    display: block;
}
@keyframes spin {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}
[data-theme="dark"] .loader { /* Ensure themed loader */
    border: 4px solid color-mix(in srgb, var(--accent-color) 20%, transparent);
    border-top: 4px solid var(--accent-color);
}

.price-card .change-display {
    font-size: 1.05em;
    margin-bottom: 15px;
    font-weight: 600;
}
.price-card .change-display span.increase { color: var(--green-increase); }
.price-card .change-display span.decrease { color: var(--red-decrease); }
.price-card .change-display span.neutral { color: var(--text-secondary); }

.percentage-change {
    font-size: 0.85em;
    margin-left: 5px;
    font-weight: normal;
}
.percentage-change.increase { color: var(--green-increase); }
.percentage-change.decrease { color: var(--red-decrease); }
.percentage-change.neutral { color: var(--text-secondary); }

.refresh-btn {
    background-color: transparent;
    color: var(--accent-color);
    border: 1px solid var(--accent-color);
    padding: 8px 12px;
    font-size: 1.2em;
    border-radius: 50%;
    cursor: pointer;
    transition: background-color var(--transition-speed) var(--transition-timing), color var(--transition-speed) var(--transition-timing), border-color var(--transition-speed) var(--transition-timing);
    margin: 0 auto 15px auto;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.refresh-btn:hover {
    background-color: var(--accent-color);
    color: var(--card-bg);
}
.refresh-btn:disabled {
    color: color-mix(in srgb, var(--text-secondary) 50%, transparent);
    border-color: color-mix(in srgb, var(--text-secondary) 50%, transparent);
    background-color: transparent;
    cursor: not-allowed;
}
.refresh-btn:disabled i.fa-sync-alt.fa-spin { color: var(--text-secondary); }

/* --- MODIFIED TIMESTAMP AND HIGH/LOW --- */
.price-card .timestamp {
    font-size: 0.8em;
    color: var(--text-secondary);
    margin-top: auto;      /* Pushes towards bottom if content above is short */
    padding-bottom: 10px;  /* Space between text and new border */
    margin-bottom: 10px;   /* Space between new border and H/L display */
    border-bottom: 1px dashed var(--border-color); /* MOVED BORDER HERE */
    /* border-top: none; /* Ensure no top border if it was ever here */
}

.price-card .error { /* Error message positioning if timestamp is directly above */
    color: var(--red-decrease);
    margin-top: 10px; /* Space from timestamp's border OR from other content if timestamp not visible */
    font-weight: 600;
    font-size: 0.9em;
    min-height: 1.2em;
}

.high-low-display {
    font-size: 0.85em;
    color: var(--text-secondary);
    margin-top: 0; /* Reset as separation is handled by timestamp's bottom margin */
    padding-top: 0; /* Reset as separation is handled by timestamp's bottom margin */
    /* border-top: 1px solid var(--border-color); /* REMOVED THIS LINE */
    text-align: center; 
}
.high-low-display .label {
    font-weight: 600;
    margin-right: 8px;
}
.high-low-display .high-value,
.high-low-display .low-value {
    margin: 0 5px;
}
.high-low-display .high-value { color: var(--green-increase); }
.high-low-display .low-value { color: var(--red-decrease); }
/* --- END MODIFIED TIMESTAMP AND HIGH/LOW --- */


/* NEW Indicator Display Styles */
.indicator-container {
    display: flex;
    flex-direction: row; /* Align indicators horizontally */
    flex-wrap: wrap; /* Allow disclaimer to wrap */
    justify-content: center; /* Was space-evenly, now center */
    align-items: flex-start; /* Align items to the top */
    padding: 8px 0;
    margin-top: 10px;
    margin-bottom: 5px; 
    border-top: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    font-size: 0.85em;
}

.indicator-item {
    display: flex;
    flex-direction: column; 
    align-items: center;
    text-align: center;
    padding: 0 5px;
    margin: 0 10px 8px 10px; /* Add horizontal margin, keep bottom margin for disclaimer */
    flex-grow: 0; /* Was 1, now 0 to prevent undue expansion */
    /* min-width: 120px; /* Removed */
}

.indicator-label { 
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: 3px; /* Space between label and value */
    font-size: 0.9em; /* Slightly smaller label */
}

.indicator-text { 
    font-weight: bold;
    font-size: 1em;
    padding: 2px 4px;
    border-radius: 3px;
    min-width: 50px; /* Ensure a minimum width for text like N/A */
    display: inline-block;
}

.indicator-text.increase { 
    color: var(--green-increase); 
    /* background-color: color-mix(in srgb, var(--green-increase) 15%, transparent); */
}
.indicator-text.decrease { 
    color: var(--red-decrease); 
    /* background-color: color-mix(in srgb, var(--red-decrease) 15%, transparent); */
}
.indicator-text.neutral { 
    color: var(--text-secondary); 
    /* background-color: color-mix(in srgb, var(--text-secondary) 15%, transparent); */
}
.indicator-text.error {
    color: var(--red-decrease);
    font-style: italic;
}

/* Refined Trend Disclaimer Style (Method 1) */
.trend-disclaimer {
    display: block; 
    font-size: 0.75em; 
    color: var(--text-secondary);
    opacity: 0.8;
    line-height: 1.3;
    font-style: italic; 
    max-width: 95%; /* Allow it to be a bit wider */
    margin: 8px auto 0 auto; /* Adjusted top margin */
    text-align: center;
    flex-basis: 100%; /* Make disclaimer take full width to wrap to next line */
}

/* Flash Animations */
@keyframes flashGreen {
    0% { background-color: color-mix(in srgb, var(--green-increase) 30%, var(--card-bg)); }
    70% { background-color: color-mix(in srgb, var(--green-increase) 30%, var(--card-bg)); }
    100% { background-color: var(--card-bg); }
}
@keyframes flashRed {
    0% { background-color: color-mix(in srgb, var(--red-decrease) 30%, var(--card-bg)); }
    70% { background-color: color-mix(in srgb, var(--red-decrease) 30%, var(--card-bg)); }
    100% { background-color: var(--card-bg); }
}
.price-card.flash-increase { animation: flashGreen 0.7s ease-out; }
.price-card.flash-decrease { animation: flashRed 0.7s ease-out; }

/* Compact View Styles */
.main-container.compact-view .price-card {
    min-height: auto;
    padding: 10px 12px;
    border-radius: 8px; 
    display: flex; 
    flex-direction: column;
    justify-content: flex-start; 
    align-items: center; 
}
/* Card Header in Compact View */
.main-container.compact-view .price-card .card-header-controls {
    margin-bottom: 5px;
    padding-bottom: 0;
    border-bottom: none; /* No line under title in compact view */
    width: 100%; /* Ensure it takes full width to align items properly */
    justify-content: center; /* Center title and X button group */
    position: relative; /* For absolute positioning of close button if needed, or relative for flex children */
}
.main-container.compact-view .price-card .card-header-controls h1 {
    font-size: 1em; 
    text-align: center; 
    flex-grow: 1; /* Allow title to take available space to help centering with button */
    margin: 0; /* Reset margins for h1 inside this flex container */
}
.main-container.compact-view .price-card .card-header-controls h1 i {
    margin-right: 4px; /* Slightly less margin in compact */
}
/* Close Button in Compact View (as child of card-header-controls) */
.main-container.compact-view .close-card-btn {
    font-size: 0.9em; /* Slightly smaller in compact view */
    padding: 2px 4px;
    margin-left: auto; /* Pushes it to the right if card-header-controls is flex */
    color: var(--text-secondary); /* Ensure visibility */
}
/* If using the compact-card-close-wrapper: */
.main-container.compact-view .compact-card-close-wrapper {
    margin-left: auto; /* Pushes wrapper to the right */
}


.main-container.compact-view .price-card .price-display {
    font-size: 2em; 
    font-weight: 700;
    margin-bottom: 3px; 
    text-align: center; 
}
.main-container.compact-view .price-card .price-display .unit {
    font-size: 0.4em; 
    margin-left: 3px;
}
.main-container.compact-view .price-card .change-display {
    font-size: 0.9em; 
    margin-bottom: 0; 
    text-align: center; 
}
.main-container.compact-view .price-card .percentage-change {
    font-size: 0.85em; 
}
/* HIDE ELEMENTS IN COMPACT VIEW (Minimal approach) */
.main-container.compact-view .sparkline-chart-container,
.main-container.compact-view .refresh-btn,
.main-container.compact-view .high-low-display,
.main-container.compact-view .price-card .timestamp,
.main-container.compact-view .price-card .error,
.main-container.compact-view .price-card .loader { 
    display: none !important; 
}


/* Tooltip Styles */
.tooltip {
    position: relative;
    display: inline-block;
}
.tooltip .tooltiptext {
    visibility: hidden;
    min-width: 120px;
    background-color: var(--tooltip-bg);
    color: var(--tooltip-text);
    text-align: center;
    border-radius: 6px;
    padding: 5px 8px;
    position: absolute;
    z-index: 100; /* Ensure above other elements */
    bottom: calc(125% - 6px);
    left: 50%;
    margin-left: -60px; /* Half of min-width */
    opacity: 0;
    transition: opacity 0.3s, visibility 0.3s;
    font-size: 0.8rem;
    box-shadow: 0 1px 3px var(--shadow-color);
}
.tooltip:hover .tooltiptext {
    visibility: visible;
    opacity: 1;
}

/* Sparkline Chart Styles */
.sparkline-chart-container {
    width: 100%;
    height: 50px;
    margin: 10px 0 15px 0; /* Adjusted bottom margin */
    position: relative;
}
.sparkline {
    width: 100%;
    height: 100%;
}
.apexcharts-tooltip { /* Styles for ApexCharts tooltips */
    background: var(--card-bg) !important;
    color: var(--text-primary) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: 0 2px 5px var(--shadow-color) !important;
}
.apexcharts-tooltip .apexcharts-tooltip-title {
    background: var(--body-bg) !important;
    color: var(--text-headings) !important;
    border-bottom: 1px solid var(--border-color) !important;
}

/* Responsive adjustments */
@media (max-width: 600px) {
    .app-header {
        flex-direction: column;
        gap: 15px;
        margin-bottom: 20px;
    }
    .app-header h1 {
        font-size: 1.8em;
    }
    .app-header .controls {
        flex-wrap: wrap;
        justify-content: center;
    }
    .price-card {
        width: 90%; 
        min-height: auto;
        padding: 15px;
    }
    .price-card .price-display {
        font-size: 1.8em;
    }
    .main-container {
        gap: 15px;
    }
}

/* Settings Panel Styles */
.settings-panel {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.95);
    background-color: var(--card-bg);
    padding: 25px 30px;
    border-radius: 12px;
    box-shadow: 0 10px 30px var(--shadow-color); /* Use variable */
    z-index: 1001;
    width: 90%;
    max-width: 450px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s var(--transition-timing), transform 0.3s var(--transition-timing), visibility 0s linear 0.3s;
}
.settings-panel.visible {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, -50%) scale(1);
    transition-delay: 0s, 0s, 0s;
}
.settings-panel h2 {
    margin-top: 0;
    margin-bottom: 20px;
    color: var(--text-headings);
    text-align: center;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 15px;
}
.settings-section { margin-bottom: 20px; }
.settings-section h3 { font-size: 1.1em; color: var(--text-primary); margin-bottom: 10px; }
.settings-section label { display: block; margin-bottom: 8px; color: var(--text-primary); cursor: pointer; }
.settings-section input[type="checkbox"] { margin-right: 8px; accent-color: var(--accent-color); }
.settings-section select {
    width: 100%; padding: 8px 10px; border-radius: 6px; border: 1px solid var(--border-color);
    background-color: var(--body-bg); color: var(--text-primary); font-size: 0.95em;
}
.settings-section select:focus { outline: 2px solid var(--accent-color); border-color: var(--accent-color); }
#close-settings-btn {
    display: block; width: 100%; padding: 10px 15px; background-color: var(--accent-color);
    color: var(--card-bg); border: none; border-radius: 6px; font-size: 1em;
    font-weight: 600; cursor: pointer; transition: background-color var(--transition-speed) var(--transition-timing);
}
#close-settings-btn:hover { background-color: var(--accent-color-darker); }
#alert-setup-container { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 15px; }
#alert-setup-container select,
#alert-setup-container input[type="number"] {
    padding: 8px 10px; border-radius: 6px; border: 1px solid var(--border-color);
    background-color: var(--body-bg); color: var(--text-primary); font-size: 0.9em; flex-grow: 1;
}
#alert-setup-container input[type="number"] { min-width: 80px; }
#alert-setup-container select:focus,
#alert-setup-container input[type="number"]:focus { outline: 2px solid var(--accent-color); border-color: var(--accent-color); }
#add-alert-btn {
    background-color: var(--accent-color); color: var(--card-bg); border: none;
    padding: 9px 12px; border-radius: 6px; cursor: pointer;
    transition: background-color var(--transition-speed); font-size: 0.9em;
}
#add-alert-btn:hover { background-color: var(--accent-color-darker); }
#active-alerts-list {
    margin-top: 15px; max-height: 150px; overflow-y: auto;
    border: 1px solid var(--border-color); border-radius: 6px; padding: 5px;
}
.active-alert {
    display: flex; justify-content: space-between; align-items: center;
    padding: 8px 10px; background-color: color-mix(in srgb, var(--body-bg) 50%, var(--card-bg));
    color: var(--text-primary); border-radius: 4px; margin-bottom: 5px; font-size: 0.9em;
}
.active-alert:last-child { margin-bottom: 0; }
.active-alert span { flex-grow: 1; }
.remove-alert-btn {
    background: transparent; border: none; color: var(--red-decrease);
    cursor: pointer; font-size: 1.1em; padding: 2px 5px;
}
.remove-alert-btn:hover { color: color-mix(in srgb, var(--red-decrease) 70%, black); }

/* Overlay for Modal Effect */
.overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background-color: rgba(0, 0, 0, 0.5); z-index: 1000;
    opacity: 0; visibility: hidden;
    transition: opacity 0.3s var(--transition-timing), visibility 0s linear 0.3s;
}
.overlay.visible { opacity: 1; visibility: visible; transition-delay: 0s, 0s, 0s; }

/* Styles for hiding cards */
.price-card.hidden-card { display: none !important; }

/* SortableJS Ghost Class */
.sortable-ghost { opacity: 0.4; background: #c8ebfb; /* Consider theming or accent mix */ }
/* .sortable-chosen { } */


/* Price Ticker Styles */
.price-ticker-container {
    width: 100%;
    background-color: var(--text-primary);
    color: var(--card-bg);
    padding: 8px 0;
    overflow: hidden;
    white-space: nowrap;
    box-shadow: 0 2px 5px var(--shadow-color); /* Use variable */
    margin-bottom: 20px;
}
.price-ticker-wrap { display: inline-block; }
.price-ticker-items { display: flex; align-items: center; }
.ticker-item { display: inline-flex; align-items: baseline; padding: 0 20px; font-size: 0.9em; line-height: 1; }
.ticker-item .ticker-name { font-weight: 600; margin-right: 8px; text-transform: uppercase; opacity: 0.85; }
.ticker-item .ticker-price {
    font-weight: 600; margin-right: 8px;
    transition: color var(--transition-speed) var(--transition-timing);
}
.ticker-item .ticker-price.increase { color: var(--green-increase) !important; }
.ticker-item .ticker-price.decrease { color: var(--red-decrease) !important; }
.ticker-item .ticker-price.neutral { color: var(--card-bg) !important; opacity: 1; }
.ticker-item .ticker-change { font-size: 0.9em; font-weight: normal; }
.ticker-item .ticker-change.increase { color: var(--green-increase); }
.ticker-item .ticker-change.decrease { color: var(--red-decrease); }
.ticker-item .ticker-change.neutral { color: var(--card-bg); opacity: 0.75; }
@keyframes scrollTickerAnimation {
    0% { transform: translateX(0%); }
    100% { transform: translateX(-50%); }
}

/* Card Close Button Styles */
.close-card-btn {
    background: none;
    border: none;
    color: var(--text-secondary);
    font-size: 1.1em;
    cursor: pointer;
    padding: 2px 5px;
    line-height: 1;
    /* margin-left: 5px; /* Adjusted by moving to card-header-controls */
    /* margin-right: 5px; */
}
.close-card-btn:hover { color: var(--red-decrease); }
.close-card-btn:focus { outline: 2px solid var(--accent-color); outline-offset: 1px; color: var(--accent-color); }

/* Wrapper for close button - if needed for specific alignment within flex */
.compact-card-close-wrapper {
    margin-left: auto; /* Pushes to the right if parent is flex */
    display: flex; /* To align icon if needed */
    align-items: center;
}


/* Compact View Styles for Card Header */
.main-container.compact-view .card-header-controls {
    margin-bottom: 5px;
    padding-bottom: 0;
    align-items: center; 
    border-bottom: none; 
}
.main-container.compact-view .price-card .card-header-controls h1 {
    font-size: 1em;
    text-align: center; 
    flex-grow: 1; /* Title takes space, wrapper with button uses margin-left: auto */
    margin: 0; 
}
.main-container.compact-view .price-card .card-header-controls h1 i {
    margin-right: 4px; /* Slightly less margin for compact icon */
}
.main-container.compact-view .compact-card-close-wrapper .close-card-btn {
    font-size: 0.9em; /* Slightly smaller in compact view */
    padding: 2px 4px;
}

/* Clickable Sparkline Style */
.clickable-sparkline {
    cursor: pointer;
    transition: background-color 0.2s ease-in-out;
}
.clickable-sparkline:hover {
    background-color: color-mix(in srgb, var(--accent-color) 10%, transparent); /* Subtle hover */
}
[data-theme="dark"] .clickable-sparkline:hover {
    background-color: color-mix(in srgb, var(--accent-color) 20%, transparent);
}

/* Modal Styles */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6); /* Darker overlay */
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease-in-out, visibility 0s linear 0.3s;
}
.modal-overlay.visible {
    opacity: 1;
    visibility: visible;
    transition-delay: 0s;
}

.modal {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.9);
    background-color: var(--card-bg);
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 5px 25px rgba(0,0,0,0.3);
    z-index: 1001;
    width: 90%;
    max-width: 700px; /* Max width for larger chart */
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out, visibility 0s linear 0.3s;
    max-height: 80vh; /* Max height */
    display: flex;
    flex-direction: column;
}
.modal.visible {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, -50%) scale(1);
    transition-delay: 0s;
}

.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 10px;
    margin-bottom: 15px;
}
.modal-header h3 {
    margin: 0;
    color: var(--text-headings);
    font-size: 1.4em;
}
.modal-close-btn {
    background: none;
    border: none;
    font-size: 1.8em;
    color: var(--text-secondary);
    cursor: pointer;
    padding: 0 5px;
    line-height: 1;
}
.modal-close-btn:hover {
    color: var(--text-primary);
}

.modal-body {
    flex-grow: 1; /* Allow body to take remaining space */
    overflow-y: auto; /* Scroll if content overflows */
}

/* Responsive modal for smaller screens */
@media (max-width: 768px) {
    .modal {
        width: 95%;
        padding: 15px;
        max-height: 90vh;
    }
    .modal-header h3 {
        font-size: 1.2em;
    }
    #detailedApexChart {
        min-height: 250px !important; /* Adjust for mobile */
    }
}

/* NEW App Footer Styles */
.app-footer {
    width: 100%;
    max-width: 1000px; /* Or match your .main-container max-width */
    text-align: center;
    padding: 20px 15px; /* Some padding */
    margin-top: 40px;  /* Space above the footer */
    border-top: 1px solid var(--border-color);
}

.app-footer p {
    margin: 0;
    font-size: 0.8em; /* Small text */
    line-height: 1.5;
    color: var(--text-secondary);
}

.app-footer strong {
    color: var(--text-primary); /* Make "Disclaimer:" stand out a bit */
}

/* Responsive footer text */
@media (max-width: 600px) {
    .app-footer p {
        font-size: 0.75em;
    }
}