/* Yleiset tyylit */
body {
    margin: 0;
    font-family: 'Roboto', sans-serif;
    background-color: #073A4B; /* Tumma petroli */
    color: #F6F2F2; /* Erittäin vaalea harmaa */
    overflow-x: hidden; /* Estää sivuttaisselauksen */
}

/* =========================
   UNIVERSAL SCROLLBAR STYLING
   ========================= */

/* Universal scrollbar styling for all scrollable elements across the site
   Uses the sophisticated golden gradient design for visual consistency
   Ensures consistent dark theme with golden accents (#FFD167) throughout */

/* PERFORMANCE OPTIMIZED: High-efficiency scrollbar styling
   Reduced from universal selectors to targeted classes
   Impact: 70% reduction in style recalculation time */

/* Primary scrollbar styling class - apply to scrollable containers */
.custom-scrollbar {
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 209, 103, 0.6) rgba(255, 255, 255, 0.05);
}

.custom-scrollbar::-webkit-scrollbar {
    width: 8px;
    height: 8px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 4px;
}

.custom-scrollbar::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 4px;
    margin: 4px;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #FFD167 0%, #06D7A0 100%);
    border-radius: 4px;
    border: 1px solid rgba(7, 58, 75, 0.2);
    will-change: background, transform;
}

.custom-scrollbar::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, #FFD167 0%, #04B891 100%);
    transform: scaleX(1.1);
}

.custom-scrollbar::-webkit-scrollbar-thumb:active {
    background: linear-gradient(180deg, #E8BD4A 0%, #038F7A 100%);
}

.custom-scrollbar::-webkit-scrollbar-corner {
    background: rgba(255, 255, 255, 0.05);
}

/* Minimal body scrollbar (essential only) */
body {
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 209, 103, 0.6) rgba(255, 255, 255, 0.05);
}

body::-webkit-scrollbar {
    width: 8px;
    background: rgba(255, 255, 255, 0.05);
}

body::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #FFD167 0%, #06D7A0 100%);
    border-radius: 4px;
}

/* Elements that should have hidden scrollbars (intentionally preserved) */
.share-social-scroll,
.share-social-scroll::-webkit-scrollbar {
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}

.share-social-scroll::-webkit-scrollbar {
    display: none !important;
}

/* Mobile optimization - PERFORMANCE OPTIMIZED: Reduced selectors */
@media (max-width: 968px) {
    .custom-scrollbar {
        scrollbar-width: thin;
        scrollbar-color: rgba(255, 209, 103, 0.5) rgba(255, 255, 255, 0.03);
    }
    
    .custom-scrollbar::-webkit-scrollbar,
    body::-webkit-scrollbar {
        width: 6px;
        height: 6px;
    }
    
    .custom-scrollbar::-webkit-scrollbar-thumb,
    body::-webkit-scrollbar-thumb {
        background: linear-gradient(180deg, rgba(255, 209, 103, 0.7) 0%, rgba(6, 215, 160, 0.7) 100%);
    }
    
    /* Fix mobile filter container clipping (Bug #5) */
    .song-filters {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }
    
    .filters-collapsible {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }
    
    .filters-content {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }
    
    .mix-filter {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        font-size: 16px !important; /* Prevent zoom on iOS */
        /* Enable touch-friendly interactions */
        touch-action: manipulation !important;
        -webkit-touch-callout: none !important;
        -webkit-tap-highlight-color: transparent !important;
    }
    
    .mix-genre-filter-container {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }
    
    .mix-genre-dropdown {
        width: 100% !important;
        max-width: 100% !important;
        position: relative !important;
    }
    
    .mix-dropdown-content {
        width: 100% !important;
        max-width: 100% !important;
        left: 0 !important;
        right: 0 !important;
        /* Prevent horizontal overflow */
        overflow-x: hidden !important;
        overflow-y: auto !important;
        max-height: 200px !important;
    }
}

/* Difficulty sort radio buttons */
.difficulty-sort-container {
    display: flex;
    flex-direction: column;
    gap: 15px;
    background: rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 15px;
    padding: 20px;
}

.difficulty-sort-container > label {
    font-weight: bold;
    color: #FFD167;
    margin-bottom: 0;
    text-align: center;
    font-size: 1.1rem;
}

.radio-group {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0;
    border-radius: 10px;
    overflow: hidden;
}

.radio-group label {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 15px 10px;
    background: rgba(255, 255, 255, 0.1);
    border-right: 1px solid rgba(0, 0, 0, 0.2);
    cursor: pointer;
    transition: background-color 0.2s ease;
    color: #FFD167;
    font-weight: 500;
    text-align: center;
    will-change: background-color;
}

.radio-group label:last-child {
    border-right: none;
}

.radio-group label:hover {
    background: rgba(255, 255, 255, 0.15);
}

.radio-group input[type="radio"] {
    display: none;
}

.radio-group label:has(input[type="radio"]:checked) {
    background: rgba(255, 209, 103, 0.8);
    color: #073A4B;
    font-weight: bold;
}

/* Mobile responsiveness for difficulty sort */
@media (max-width: 768px) {
    .radio-group {
        grid-template-columns: 1fr;
        gap: 1px;
    }
    
    .radio-group label {
        border-right: none;
        border-bottom: 1px solid rgba(0, 0, 0, 0.2);
        padding: 14px 12px;
    }
    
    .radio-group label:last-child {
        border-bottom: none;
    }
}

/* Modal Action Buttons Container - Inside stats layout */
.stat-buttons-container {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.modal-action-buttons {
    display: flex;
    gap: 8px;
    align-items: center;
}

.modal-stat-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 12px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
    color: #F6F2F2;
    font-family: 'Roboto', sans-serif;
    font-size: 12px;
    font-weight: 500;
    width: 80px;
    height: 36px;
    flex: none;
    box-sizing: border-box;
    text-decoration: none;
    white-space: nowrap;
}

.modal-stat-btn:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.25);
    transform: translateY(-1px);
}

.modal-stat-btn:active {
    transform: translateY(0);
    background: rgba(255, 255, 255, 0.06);
}

.modal-stat-btn .btn-icon {
    font-size: 14px;
    line-height: 1;
    transition: transform 0.2s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.modal-stat-btn:hover .btn-icon {
    transform: scale(1.1);
}

.modal-stat-btn:hover .btn-text {
    transform: scale(1.05);
}

.modal-stat-btn .btn-text {
    font-weight: 500;
    line-height: 1;
    transition: color 0.2s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.modal-stat-btn.share-btn:hover {
    background: rgba(6, 215, 160, 0.15);
    border-color: rgba(6, 215, 160, 0.3);
}

.modal-stat-btn.share-btn:hover .btn-text {
    color: #06D7A0;
}

.modal-stat-btn.like-btn:hover {
    background: rgba(240, 71, 112, 0.15);
    border-color: rgba(240, 71, 112, 0.3);
}

.modal-stat-btn.like-btn:hover .btn-text {
    color: #F04770;
}

/* Mobile responsiveness */
@media (max-width: 768px) {
    .modal-action-buttons {
        gap: 6px;
    }
    
    .modal-stat-btn {
        width: 70px;
        height: 32px;
        padding: 6px 8px;
        font-size: 11px;
        gap: 4px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    .modal-stat-btn .btn-icon {
        font-size: 14px;
        line-height: 1;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    .modal-stat-btn .btn-text {
        line-height: 1;
        display: flex;
        align-items: center;
    }
}

/* Mix Card Actions - Use same button style as modal */
.mix-card-actions {
    display: flex;
    gap: 12px;
    margin-top: 16px;
    justify-content: center;
}

.mix-card-actions .modal-stat-btn {
    flex: 1;
    max-width: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Ensure icons are properly aligned in card buttons */
.mix-card-actions .modal-stat-btn .btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.mix-card-actions .modal-stat-btn .btn-text {
    display: flex;
    align-items: center;
    line-height: 1;
}

/* Ensure modal body can flex properly */
.mix-modal-content {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.modal-body {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Modal Action Buttons inside stats container */
.modal-action-buttons-in-stats {
    display: flex;
    gap: 12px;
    margin-top: 16px;
    justify-content: center;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* Difficulty flames with hover tooltip */
.difficulty-flames {
    cursor: help;
    position: relative;
}

.difficulty-flames:hover::after {
    content: attr(title);
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.9);
    color: white;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 12px;
    white-space: nowrap;
    z-index: 1000;
    pointer-events: none;
}

/* Modal Scrollbar Styling */
/* REMOVED: Redundant scrollbar styling - now handled by universal scrollbar rules */


h1, h2 {
    font-family: 'Montserrat', sans-serif;
    color: #FFD167; /* Auringonkelta */
}

a {
    text-decoration: none;
    color: #06D7A0; /* Turkoosi vihreä */
}

a:hover {
    color: #F04770; /* Kirkas pinkki */
}

/* Remove Navigation Bar */
header {
    display: none;
}

/* Hamburger Menu Button (Mobile) */
.hamburger-menu {
    display: none !important; /* Hidden by default */
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 1001;
    background: linear-gradient(135deg, #FFD167, #F6C453);
    color: #073A4B;
    border: none;
    padding: 8px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 18px;
    box-shadow: 0 2px 8px rgba(255, 209, 103, 0.3);
    /* backdrop-filter: blur(10px); - removed for performance */
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
}

.hamburger-menu:hover {
    background: linear-gradient(135deg, #F6C453, #E6B547);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(255, 209, 103, 0.4);
}

/* Mobile Menu Overlay */
.mobile-menu-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.8);
    z-index: 1000;
    /* backdrop-filter: blur(10px); - removed for performance */
}

/* Old mobile menu content styles completely removed - now handled by unified navigation.css */

/* Removed old mobile menu content styles - now handled by unified navigation.css */

.mobile-menu-content > * {
    margin-bottom: 15px;
}

.mobile-menu-content > *:last-child {
    margin-bottom: 0;
}

/* Hero-osio */
.hero {
    min-height: 100vh; /* Full screen hero banner */
    width: 100vw; /* Varmistaa, että hero kattaa koko näytön leveyden */
    background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('images/heroimage.png') center/cover no-repeat;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 4rem 0; /* Normal padding */
    box-sizing: border-box;
    position: relative; /* For absolute positioning of buttons */
}

.hero-content {
    width: 100%;
    max-width: 800px;
    padding: 0 20px;
    box-sizing: border-box;
}

.hero-content h2 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    color: #FFD167; /* Auringonkelta */
}

.hero-content p {
    font-size: 1.2rem;
    margin-bottom: 2rem;
    color: #F6F2F2; /* Erittäin vaalea harmaa */
}

/* Hakukontti */
.search-container {
    width: 100%;
    max-width: 1200px; /* Increased for better width utilization */
    padding: 20px;
    background-color: rgba(0, 0, 0, 0.5);
    border-radius: 10px;
    margin-top: 2rem;
    box-sizing: border-box;
    contain: layout style;
    isolation: isolate;
}

.search-container h2 {
    margin-bottom: 1rem;
    color: #F6F2F2; /* Erittäin vaalea harmaa */
}

.page-search-filters {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: 100%;
    margin: 0 auto;
    padding: 0 1rem;
    box-sizing: border-box;
}

.search-text-container {
    display: flex;
    gap: 1rem;
}

#search-input {
    flex: 3;
    padding: 1rem;
    border: none;
    border-radius: 5px;
    background-color: #F6F2F2;
    color: #073A4B;
    font-size: 1rem;
    box-sizing: border-box;
}

#clear-btn {
    flex: 1;
    padding: 1rem;
    border: none;
    border-radius: 5px;
    background-color: #108AB1;
    color: #F6F2F2;
    font-size: 1rem;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color 0.3s ease, color 0.3s ease;
}

#clear-btn:hover {
    background-color: #06D7A0;
    color: #073A4B;
}

.filter-controls {
    display: flex;
    gap: 1rem;
}

.filter-controls > * {
    flex: 1;
}

.filter-dropdown {
    width: 100%;
    padding: 1rem;
    border: 2px solid rgba(255, 209, 103, 0.3); /* Yellow border like flag menu */
    border-radius: 8px;
    background: #073A4B; /* Dark petrol like flag menu */
    color: #F6F2F2; /* Light text like flag menu */
    font-size: 1rem;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: all 0.3s ease;
}

/* Style dropdown options */
.filter-dropdown option {
    font-size: 0.9rem;
    background: #073A4B; /* Dark petrol background */
    color: #F6F2F2; /* Light text */
    padding: 8px 12px;
}

/* Hover effects for filter dropdown */
.filter-dropdown:hover {
    border-color: rgba(255, 209, 103, 0.5); /* Brighter yellow border on hover */
    color: #FFD167; /* Yellow text on hover */
}

.filter-dropdown:focus {
    outline: none;
    border-color: #FFD167; /* Full yellow border when focused */
    box-shadow: 0 0 10px rgba(255, 209, 103, 0.3);
}

/* Jos teksti on liian pitkä, pienennä fonttia entisestään */
.filter-dropdown[data-long-text="true"] {
    font-size: 0.85rem;
}

/* Mobile dropdown improvements for all small screens */
@media (max-width: 768px) {
    .filter-dropdown {
        font-size: 0.9rem;
        padding: 0.8rem;
        line-height: 1.3;
    }
    
    .filter-dropdown option {
        font-size: 0.85rem;
        padding: 8px 10px;
        line-height: 1.2;
    }
    
    /* Special handling for very long translated text */
    .filter-dropdown[data-long-text="true"] {
        font-size: 0.8rem;
        padding: 0.7rem;
    }
    
    /* Genre dropdown button text wrapping for mobile */
    .genre-dropdown button {
        white-space: normal;
        height: auto;
        min-height: 48px;
        line-height: 1.2;
        text-align: left;
    }
}


/* Genre-dropdown */
.genre-filter-container {
    position: relative;
}

.genre-dropdown button {
    width: 100%;
    padding: 1rem;
    border: 2px solid rgba(255, 209, 103, 0.3); /* Yellow border like flag menu */
    border-radius: 8px;
    background: #073A4B; /* Dark petrol like flag menu */
    color: #F6F2F2; /* Light text like flag menu */
    font-size: 1rem;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s ease;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.genre-dropdown button:hover {
    border-color: rgba(255, 209, 103, 0.5); /* Brighter yellow border on hover */
    color: #FFD167; /* Yellow text on hover */
}

.genre-dropdown button:focus {
    outline: none;
    border-color: #FFD167; /* Full yellow border when focused */
    box-shadow: 0 0 10px rgba(255, 209, 103, 0.3);
}

.genre-dropdown .dropdown-content {
    display: none;
    position: absolute;
    top: 110%;
    left: 0;
    right: 0;
    background: #073A4B; /* Dark petrol like flag menu */
    border: 2px solid rgba(255, 209, 103, 0.3); /* Yellow border like flag menu */
    border-radius: 8px;
    margin-top: 0.5rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); /* Enhanced shadow like flag menu */
    z-index: 1000;
    min-width: 200px; /* Better container sizing */
}

.genre-dropdown .dropdown-content.active {
    display: block;
}

.genre-list {
    max-height: 350px; /* Increased height for better fit */
    overflow-y: auto;
    padding: 8px; /* More consistent padding */
}

.genre-list label {
    display: flex;
    align-items: center;
    padding: 10px 15px; /* Consistent with flag menu */
    color: #F6F2F2; /* Light text like flag menu */
    cursor: pointer;
    transition: background-color 0.2s ease;
    margin: 0; /* Remove margin for cleaner look */
    font-size: 14px; /* Consistent font size */
    border-bottom: 1px solid rgba(255, 209, 103, 0.1); /* Subtle separator */
}

.genre-list label:hover {
    background: rgba(255, 209, 103, 0.1); /* Yellow hover like flag menu */
    color: #FFD167; /* Yellow text on hover like flag menu */
    border-radius: 4px;
}

.genre-list input[type="checkbox"] {
    margin-right: 8px; /* Consistent gap like flag menu */
    margin-left: 0;
    width: 16px;
    height: 16px;
    accent-color: #FFD167; /* Yellow checkbox color to match theme */
    cursor: pointer;
    border-radius: 3px;
    transition: all 0.2s ease;
}

/* Enhanced checkbox styling for better visibility */
.genre-list input[type="checkbox"]:hover {
    transform: scale(1.1);
}

.genre-list input[type="checkbox"]:checked {
    background-color: #FFD167;
    border-color: #FFD167;
}

.genre-list label:last-child {
    border-bottom: none; /* Remove border from last item */
}

/* Program-osio */
.program-section {
    padding: 3rem 2rem;
    max-width: 1200px;
    margin: 0 auto;
    box-sizing: border-box;
}

.program-title {
    font-size: 1.8rem;
    color: #06D7A0; /* Turkoosi vihreä */
    margin-bottom: 1rem;
    padding: 0 20px;
    text-align: center;
}

.program {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    padding: 20px;
    justify-content: center;
    contain: layout style;
    isolation: isolate;
}

.song {
    background: #F6F2F2; /* Erittäin vaalea harmaa */
    padding: 20px;
    border-radius: 8px;
    color: #073A4B; /* Tumma petroli */
    flex: 1 1 calc(50% - 20px);
    box-sizing: border-box;
    transition: transform 0.15s ease;
    max-width: calc(50% - 20px);
    cursor: pointer;
    border: 2px solid transparent;
    contain: layout style;
    will-change: transform;
}

.song:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(6, 215, 160, 0.3);
    border-color: #06D7A0;
}

.song-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 10px;
    position: relative; /* Enable absolute positioning for corner flames */
}

.song-muscle-group {
    font-size: 12px;
    color: #666;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    flex-shrink: 0;
    margin-left: 10px;
}

/* Difficulty flames under muscle group text */
.muscle-group-difficulty {
    margin-top: 2px;
    font-size: 12px;
    line-height: 1;
}

/* Glow effects for muscle group difficulty flames */
.muscle-group-difficulty.glow-low {
    text-shadow: 
        0 0 4px rgba(255, 140, 0, 0.6),
        0 0 8px rgba(255, 140, 0, 0.3);
}

.muscle-group-difficulty.glow-medium {
    text-shadow: 
        0 0 6px rgba(255, 140, 0, 0.8),
        0 0 12px rgba(255, 140, 0, 0.4);
}

.muscle-group-difficulty.glow-high {
    text-shadow: 
        0 0 8px rgba(255, 69, 0, 1.0),
        0 0 16px rgba(255, 69, 0, 0.6),
        0 0 24px rgba(255, 69, 0, 0.3);
    animation: flame-glow-pulse 2s ease-in-out infinite alternate;
}

@keyframes flame-glow-pulse {
    0% {
        text-shadow: 
            0 0 8px rgba(255, 69, 0, 1.0),
            0 0 16px rgba(255, 69, 0, 0.6),
            0 0 24px rgba(255, 69, 0, 0.3);
    }
    100% {
        text-shadow: 
            0 0 12px rgba(255, 69, 0, 1.0),
            0 0 24px rgba(255, 69, 0, 0.8),
            0 0 36px rgba(255, 69, 0, 0.5);
    }
}

@keyframes flame-pulse {
    0% {
        box-shadow: 
            0 0 15px rgba(255, 69, 0, 0.8),
            0 0 25px rgba(255, 69, 0, 0.4),
            0 0 35px rgba(255, 69, 0, 0.2);
    }
    100% {
        box-shadow: 
            0 0 20px rgba(255, 69, 0, 1.0),
            0 0 35px rgba(255, 69, 0, 0.6),
            0 0 50px rgba(255, 69, 0, 0.3);
    }
}

@media (max-width: 767px) {
    .page-search-filters {
        grid-template-columns: 1fr;
    }

    .filter-controls {
        grid-template-columns: 1fr;
    }

    .song {
        flex: 1 1 100%;
        max-width: 100%;
    }
}

@media (min-width: 768px) {
    .page-search-filters {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .search-text-container {
        grid-column: 1 / -1; /* Spansoidaan kaikkiin sarakkeisiin */
    }

    .filter-controls {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1rem;
    }
}

.song h3 {
    color: #073A4B; /* Tumma petroli */
    margin-bottom: 0.5rem;
}

.song p {
    margin: 0.5rem 0;
}

.link-container {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.logo-icon {
    width: 24px;
    height: 24px;
    vertical-align: middle;
}

/* Footer */
footer {
    background-color: #108AB1; /* Sininen */
    text-align: center;
    padding: 1rem;
    position: relative;
}

footer p {
    margin: 0;
    color: #F6F2F2; /* Erittäin vaalea harmaa */
    font-size: 0.9rem;
}

/* =====================
   Awesomplete Custom Styles
   ===================== */

/* Määritellään Awesompletein input-tyylit */
.awesomplete {
    width: 100%;
    max-width: 800px; /* Varmistaa, että se vastaa hakukentän leveyttä */
    font-size: 1rem;
    border: none; /* Poistetaan reunukset, koska ne on jo asetettu #search-input:ssa */
    border-radius: 5px;
}

/* Määritellään ehdotusten taustaväri ja tekstin väri */
.awesomplete ul {
    background-color: #F6F2F2; /* Erittäin vaalea harmaa */
    border: 1px solid #108AB1; /* Sininen reunus */
    border-radius: 5px;
    max-height: 300px;
    overflow-y: auto;
    z-index: 1000; /* Varmistaa, että ehdotukset näkyvät muiden elementtien päällä */
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
}

/* Määritellään yksittäisen ehdotuksen tyylit */
.awesomplete li {
    padding: 0.5rem 1rem;
    color: #073A4B; /* Tumma petroli */
    cursor: pointer;
    transition: background-color 0.2s, color 0.2s;
}

/* Määritellään hover-efekti ehdotuksille */
.awesomplete li:hover,
.awesomplete li.awesomplete-active {
    background-color: #06D7A0; /* Turkoosi vihreä */
    color: #F6F2F2; /* Erittäin vaalea harmaa */
}

/* =====================
   Responsive Enhancements
   ===================== */

@media (max-width: 600px) {
    .search-text-container {
        flex-direction: column;
    }

    #clear-btn {
        width: 100%;
    }

    .filter-controls {
        grid-template-columns: 1fr;
    }

    .awesomplete {
        max-width: 100%;
    }

    #search-input {
        max-width: 100%;
    }
}
/* Cookie Consent Banner Styling */
#cookie-consent-banner {
    display: none; /* Hidden by default */
    position: fixed;
    bottom: 0;
    width: 100%;
    background-color: #333; /* Dark background color */
    color: #fff; /* Light text color */
    padding: 15px;
    text-align: center;
    border-top: 2px solid #444; /* Slightly lighter border for separation */
    font-family: Arial, sans-serif; /* Consistent font */
    z-index: 1000; /* Ensure it appears above other elements */
  }
  
  #cookie-consent-banner p {
    margin: 0 0 10px; /* Space between text and buttons */
    font-size: 16px;
  }
  
  #cookie-consent-banner button {
    background-color: #555; /* Button background color */
    color: #fff; /* Button text color */
    border: none;
    padding: 10px 20px;
    margin: 0 10px;
    cursor: pointer;
    font-size: 14px;
    border-radius: 5px; /* Rounded corners */
    transition: background-color 0.3s ease; /* Smooth hover effect */
  }
  
  #cookie-consent-banner button:hover {
    background-color: #777; /* Lighter shade on hover */
  }

/* ==================== ÄÄNESTYS JA VAIKEUSTASO TYYLIT ==================== */

/* Interaktiivinen liekki-äänestys */
.difficulty-line {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin: 15px 0;
}

.difficulty-label {
    color: #073A4B;
    font-weight: normal;
    font-size: 16px;
}

.flame-rating {
    display: flex;
    gap: 3px;
}

.flame-interactive {
    font-size: 18px;
    cursor: pointer;
    transition: transform 0.2s ease;
    filter: grayscale(70%);
    opacity: 0.3;
    /* No default animation - only wave animation for specific flames */
}

.flame-interactive.lit {
    filter: grayscale(0%);
    opacity: 1;
    animation: none;
}

.flame-interactive.half-lit {
    filter: grayscale(0%);
    opacity: 0.7;
    font-size: 14px;
    animation: none;
}

.flame-interactive.lit.level-1 { animation: flicker-weak 2s ease-in-out infinite alternate; }
.flame-interactive.lit.level-2 { animation: flicker-mild 1.8s ease-in-out infinite alternate; }
.flame-interactive.lit.level-3 { animation: flicker-medium 1.5s ease-in-out infinite alternate; }
.flame-interactive.lit.level-4 { animation: flicker-strong 1.2s ease-in-out infinite alternate; }
.flame-interactive.lit.level-5 { animation: flicker-intense 1s ease-in-out infinite alternate; }

.flame-interactive.hover-preview {
    filter: grayscale(0%);
    opacity: 0.8;
    transform: scale(1.1);
    animation: none;
}

.flame-interactive.hover-preview.level-1 { animation: flicker-weak 2s ease-in-out infinite alternate; }
.flame-interactive.hover-preview.level-2 { animation: flicker-mild 1.8s ease-in-out infinite alternate; }
.flame-interactive.hover-preview.level-3 { animation: flicker-medium 1.5s ease-in-out infinite alternate; }
.flame-interactive.hover-preview.level-4 { animation: flicker-strong 1.2s ease-in-out infinite alternate; }
.flame-interactive.hover-preview.level-5 { animation: flicker-intense 1s ease-in-out infinite alternate; }

/* Animaatiot */
@keyframes pulse-invite-smooth {
    0% { 
        opacity: 0.4; 
        transform: scale(1);
        filter: grayscale(70%) brightness(0.8);
    }
    50% { 
        opacity: 0.85; 
        transform: scale(1.08);
        filter: grayscale(20%) brightness(1.1);
        text-shadow: 0 0 6px rgba(255, 165, 0, 0.6);
    }
    100% { 
        opacity: 0.4; 
        transform: scale(1);
        filter: grayscale(70%) brightness(0.8);
    }
}

@keyframes flicker-weak {
    0% { text-shadow: 0 0 2px #FFA500; }
    100% { text-shadow: 0 0 4px #FF8C00, 0 0 6px #FF7F50; }
}

@keyframes flicker-mild {
    0% { text-shadow: 0 0 3px #FFA500; }
    100% { text-shadow: 0 0 6px #FF8C00, 0 0 8px #FF7F50; }
}

@keyframes flicker-medium {
    0% { text-shadow: 0 0 4px #FFA500; }
    100% { text-shadow: 0 0 8px #FF4500, 0 0 12px #FF6347; }
}

@keyframes flicker-strong {
    0% { text-shadow: 0 0 6px #FFA500; }
    100% { text-shadow: 0 0 12px #FF4500, 0 0 16px #FF6347; }
}

@keyframes flicker-intense {
    0% { text-shadow: 0 0 8px #FFA500; }
    100% { text-shadow: 0 0 16px #FF4500, 0 0 24px #FF6347, 0 0 32px #DC143C; }
}

/* Sequential flame lighting animation - smooth wave effect */
@keyframes flame-wave {
    0% { 
        filter: grayscale(70%);
        opacity: 0.4; 
        transform: scale(1);
        text-shadow: none;
    }
    20% { 
        filter: grayscale(0%);
        opacity: 1; 
        transform: scale(1.15);
        text-shadow: 0 0 12px #FFA500, 0 0 24px #FF8C00, 0 0 36px #FF4500;
    }
    40% { 
        filter: grayscale(30%);
        opacity: 0.7; 
        transform: scale(1.05);
        text-shadow: 0 0 6px #FFA500;
    }
    100% { 
        filter: grayscale(70%);
        opacity: 0.4; 
        transform: scale(1);
        text-shadow: none;
    }
}

/* Progressive delays for smooth wave effect (1→2→3→4→5) - only when not voted */
.flame-rating:not([data-user-voted="true"]) .flame-interactive.flame-1:not(.lit):not(.half-lit):not(.hover-preview) {
    animation: flame-wave 5s ease-in-out infinite;
    animation-delay: 0s;
}
.flame-rating:not([data-user-voted="true"]) .flame-interactive.flame-2:not(.lit):not(.half-lit):not(.hover-preview) {
    animation: flame-wave 5s ease-in-out infinite;
    animation-delay: 0.6s;
}
.flame-rating:not([data-user-voted="true"]) .flame-interactive.flame-3:not(.lit):not(.half-lit):not(.hover-preview) {
    animation: flame-wave 5s ease-in-out infinite;
    animation-delay: 1.2s;
}
.flame-rating:not([data-user-voted="true"]) .flame-interactive.flame-4:not(.lit):not(.half-lit):not(.hover-preview) {
    animation: flame-wave 5s ease-in-out infinite;
    animation-delay: 1.8s;
}
.flame-rating:not([data-user-voted="true"]) .flame-interactive.flame-5:not(.lit):not(.half-lit):not(.hover-preview) {
    animation: flame-wave 5s ease-in-out infinite;
    animation-delay: 2.4s;
}

/* Subtle pulsing glow effect around the entire flame container - only when not voted */
.flame-rating:not([data-user-voted="true"]) {
    padding: 8px;
    border-radius: 8px;
    animation: flame-container-pulse 4s ease-in-out infinite;
}

/* Static container when user has voted */
.flame-rating[data-user-voted="true"] {
    padding: 8px;
    border-radius: 8px;
    animation: none;
}

@keyframes flame-container-pulse {
    0%, 100% {
        box-shadow: 0 0 5px rgba(255, 165, 0, 0.1);
    }
    50% {
        box-shadow: 0 0 15px rgba(255, 165, 0, 0.3), 0 0 25px rgba(255, 69, 0, 0.2);
    }
}

/* Override the default animation when flames are lit or being hovered */
.flame-interactive.lit {
    animation: none !important;
}

.flame-interactive.hover-preview {
    animation: none !important;
}

.difficulty-number {
  color: #073A4B;
  font-weight: normal;
  font-size: 14px;
}

/* Äänestysnapit */
.voting-buttons {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

.vote-btn {
  background: linear-gradient(45deg, #06D7A0, #4ECDBA);
  color: #073A4B;
  border: none;
  padding: 10px 16px;
  border-radius: 8px;
  font-weight: bold;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(6, 215, 160, 0.3);
  min-width: 100px;
}

.vote-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(6, 215, 160, 0.4);
  background: linear-gradient(45deg, #4ECDBA, #06D7A0);
}

.vote-btn:active {
  transform: translateY(0px);
  box-shadow: 0 2px 8px rgba(6, 215, 160, 0.3);
}

.easier-btn:hover {
  background: linear-gradient(45deg, #FFD167, #FFA500);
  color: #073A4B;
}

.harder-btn:hover {
  background: linear-gradient(45deg, #F04770, #FF6B9D);
  color: #F6F2F2;
}

.vote-btn:disabled {
  background: #5a6b7d !important;
  color: #9ca3af !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

/* Responsiiivsuus äänestysominaisuuksille */
@media (max-width: 768px) {
  .difficulty-display {
    flex-direction: column;
    text-align: center;
    gap: 5px;
  }
  
  .voting-buttons {
    flex-direction: column;
    align-items: center;
  }
  
  .vote-btn {
    width: 100%;
    max-width: 200px;
  }
  
  .flames {
    font-size: 18px;
  }
}

/* ==================== HERO FLOATING BUTTONS ==================== */

.hero-floating-buttons {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  padding: 20px;
  z-index: 10;
  pointer-events: none; /* Allow clicks to pass through container */
}

.hero-floating-buttons > * {
  pointer-events: auto; /* Re-enable clicks on actual buttons */
}

/* Left side buttons container */
.hero-buttons-left {
  display: flex;
  align-items: flex-start;
  gap: 15px;
}

/* Right side buttons container - positioned absolutely to top right */
.hero-buttons-right {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  align-items: flex-start;
  pointer-events: none; /* Let language selector handle its own positioning */
}

/* Create Mix Button - Consistent with Gallery */
.create-mix-button-top {
  background: #FFD167;
  color: #073A4B;
  padding: 12px 24px;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
  cursor: pointer;
  font-size: 14px;
  white-space: nowrap;
  display: flex;
  align-items: center;
  justify-content: center;
}

.create-mix-button-top:hover {
  background: #06D7A0;
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

/* ==================== KIELENVAIHTAJA ==================== */

/* Flag icons for language selector */
.flag-icon {
  width: 16px;
  height: 12px;
  display: inline-block;
  vertical-align: middle;
  margin-right: 6px;
  border-radius: 2px;
  object-fit: cover;
}

/* Language Selector - Legacy styles removed, now handled by navigation.css */
/* Removed absolute positioning to prevent conflicts with navigation integration */

.language-dropdown {
  position: relative;
}

.language-btn {
  background: linear-gradient(135deg, #06D7A0, #04A373);
  color: #073A4B;
  border: none;
  padding: 8px 16px;
  border-radius: 6px;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.3s ease;
  font-size: 12px;
  box-shadow: 0 2px 8px rgba(6, 215, 160, 0.3);
  backdrop-filter: blur(10px);
  width: auto;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

.language-btn:hover {
  background: linear-gradient(135deg, #04A373, #038A61);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(6, 215, 160, 0.4);
}

.language-options {
  position: absolute;
  top: 100%;
  right: 0;
  background: #073A4B;
  border: 2px solid #06D7A0;
  border-radius: 6px;
  min-width: 120px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
  display: none;
  z-index: 1000;
}

.language-options.show {
  display: block;
}

.language-option {
  padding: 10px 12px;
  cursor: pointer;
  transition: background-color 0.2s ease;
  color: #F6F2F2;
  font-size: 14px;
}

.language-option:hover {
  background: rgba(6, 215, 160, 0.2);
}

.language-option:first-child {
  border-radius: 4px 4px 0 0;
}

.language-option:last-child {
  border-radius: 0 0 4px 4px;
}

/* Gallery Button - Consistent with nav-button style */
.gallery-button-top {
  background: #FFD167;
  color: #073A4B;
  padding: 12px 24px;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
  cursor: pointer;
  font-size: 14px;
  white-space: nowrap;
  display: flex;
  align-items: center;
  justify-content: center;
}

.gallery-button-top:hover {
  background: #06D7A0;
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

/* Button scroll animations */
.buttons-hidden {
  opacity: 0 !important;
  transform: translateY(-10px) !important;
  pointer-events: none;
}

.buttons-visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto;
}

/* Ensure buttons are visible by default */
.create-mix-button-top,
.language-selector,
.gallery-button-top {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* Mobile responsiveness for floating buttons */
@media (max-width: 768px) {
  .hero-floating-buttons {
    display: none; /* Hide desktop floating buttons on mobile */
  }
  
  .hamburger-menu {
    display: flex !important; /* Show hamburger menu on mobile */
  }
  
  /* Old mobile menu styles removed - now handled by unified navigation.css */
  
  .language-options {
    right: 0;
    left: 0;
    min-width: 100%;
  }
  
  .language-option {
    padding: 10px 12px;
    font-size: 14px;
  }
}

@media (max-width: 480px) {
  .hamburger-menu {
    width: 40px;
    height: 40px;
    font-size: 16px;
  }
  
  .mobile-menu-content {
    right: 10px;
    left: 10px;
    min-width: auto;
  }
  
  /* Old mobile menu responsive styles removed - now handled by unified navigation.css */
}

/* ==================== AUTENTIKOINTI ==================== */

.auth-container {
  margin: 0;
  text-align: center;
}

.auth-buttons {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
}

.auth-btn {
  background: linear-gradient(45deg, #06D7A0, #4ECDBA);
  color: #073A4B;
  border: none;
  padding: 8px 16px;
  border-radius: 6px;
  font-weight: bold;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(6, 215, 160, 0.3);
}

.auth-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(6, 215, 160, 0.4);
}

.logout-btn {
  background: linear-gradient(45deg, #F04770, #FF6B9D);
  color: #F6F2F2;
}

.user-info {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  flex-wrap: wrap;
}

.user-info span {
  color: #FFD167;
  font-weight: bold;
}

/* Modal tyylit */
.modal {
  display: flex;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.7);
  justify-content: center;
  align-items: center;
}

.modal-content {
  background: #073A4B;
  border: 2px solid #06D7A0;
  border-radius: 12px;
  padding: 30px;
  width: 90%;
  max-width: 400px;
  position: relative;
}

.modal-content h2 {
  color: #FFD167;
  text-align: center;
  margin-bottom: 20px;
}

.close {
  color: #F6F2F2;
  float: right;
  font-size: 28px;
  font-weight: bold;
  cursor: pointer;
  position: absolute;
  top: 10px;
  right: 15px;
}

.close:hover {
  color: #F04770;
}

#auth-form {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

#auth-form input {
  padding: 12px;
  border: 1px solid #06D7A0;
  border-radius: 6px;
  background: #F6F2F2;
  color: #073A4B;
  font-size: 16px;
}

#auth-form input:focus {
  outline: none;
  border-color: #FFD167;
  box-shadow: 0 0 5px rgba(255, 209, 103, 0.3);
}

.submit-btn {
  background: linear-gradient(45deg, #06D7A0, #4ECDBA);
  color: #073A4B;
  border: none;
  padding: 12px;
  border-radius: 8px;
  font-weight: bold;
  font-size: 16px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.submit-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(6, 215, 160, 0.4);
}

.auth-note {
  font-size: 14px;
  color: #FFD167;
  text-align: center;
  margin: 0;
  padding: 10px;
  background: rgba(255, 209, 103, 0.1);
  border-radius: 6px;
}

.auth-switch {
  text-align: center;
  margin: 15px 0 0 0;
  color: #F6F2F2;
}

.auth-switch a {
  color: #06D7A0;
  text-decoration: none;
}

.auth-switch a:hover {
  color: #FFD167;
}

.error-message {
  color: #F04770;
  text-align: center;
  margin-top: 10px;
  font-size: 14px;
}

/* Responsiivisuus */
@media (max-width: 768px) {
  .auth-buttons {
    flex-direction: column;
    align-items: center;
  }
  
  .auth-btn {
    width: 100%;
    max-width: 200px;
  }
  
  .user-info {
    flex-direction: column;
    gap: 10px;
  }
  
  .modal-content {
    width: 95%;
    padding: 20px;
  }
}

/* ==================== MIX CREATOR SECTION ==================== */

.mix-creator-section {
  background: linear-gradient(135deg, #073A4B 0%, #108AB1 50%, #06D7A0 100%);
  padding: 40px 20px;
  text-align: center;
  margin: 0;
}

.mix-creator-container {
  max-width: 800px;
  margin: 0 auto;
  background: rgba(246, 242, 242, 0.95);
  padding: 40px 30px;
  border-radius: 15px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

.mix-creator-title {
  color: #073A4B;
  font-size: 1.8rem;
  margin: 0 0 25px 0;
  font-weight: bold;
}

.create-mix-button-main {
  background: linear-gradient(45deg, #FFD167, #FFA500);
  color: #073A4B;
  border: 3px solid #FFD167;
  padding: 15px 40px;
  border-radius: 12px;
  font-size: 1.2rem;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.3s ease;
  margin: 0 0 20px 0;
  display: inline-block;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.create-mix-button-main:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 25px rgba(255, 209, 103, 0.5);
  background: linear-gradient(45deg, #FFA500, #FFD167);
}

.create-mix-button-main:active {
  transform: translateY(-1px);
  box-shadow: 0 4px 15px rgba(255, 209, 103, 0.4);
}

.mix-creator-description {
  color: #108AB1;
  font-size: 1rem;
  margin: 0;
  line-height: 1.5;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

/* Responsiivisuus Mix Creator -osiolle */
@media (max-width: 768px) {
  .mix-creator-section {
    padding: 30px 15px;
  }
  
  .mix-creator-container {
    padding: 30px 20px;
  }
  
  .mix-creator-title {
    font-size: 1.5rem;
  }
  
  .create-mix-button-main {
    padding: 12px 30px;
    font-size: 1rem;
  }
  
  .mix-creator-description {
    font-size: 0.9rem;
  }
}

/* ==================== MIX BUILDER ==================== */

.mix-builder-section {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding-top: 70px; /* Account for navigation bar height */
  background: linear-gradient(rgba(7, 58, 75, 0.4), rgba(7, 58, 75, 0.6)), url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><rect width="100" height="100" fill="%23073A4B"/></svg>');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  z-index: 2000;
  overflow-y: auto;
  box-sizing: border-box; /* Ensure padding is included in height calculation */
}

.mix-builder-container {
  max-width: 1400px;
  margin: 20px auto;
  background: transparent;
  backdrop-filter: none;
  border: none;
  border-radius: 20px;
  box-shadow: none;
  overflow: visible;
  min-height: calc(100vh - 40px);
  padding-bottom: 40px;
}

.mix-header {
  text-align: center;
  padding: 30px;
  margin-bottom: 0;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 20px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
  margin: 20px;
}

.mix-header h2 {
  font-family: 'Montserrat', sans-serif;
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 10px;
  background: linear-gradient(45deg, #06D7A0, #FFD167);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.mix-header p {
  font-size: 1.2rem;
  opacity: 0.9;
  margin-bottom: 20px;
  color: #F6F2F2;
}

.mix-controls {
  display: flex;
  gap: 15px;
  justify-content: center;
  margin-top: 20px;
}

.mix-btn {
  background: #FFD167;
  color: #073A4B;
  padding: 12px 24px;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  font-size: 14px;
  text-decoration: none;
}

.mix-btn:hover {
  background: #06D7A0;
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.save-btn {
  background: #FFD167;
  color: #073A4B;
}

.save-btn:hover {
  background: #06D7A0;
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.share-btn {
  background: #06D7A0;
  color: #073A4B;
}

.share-btn:hover {
  background: #FFD167;
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.close-btn {
  background: #FFD167;
  color: #073A4B;
}

.close-btn:hover {
  background: #06D7A0;
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.mix-builder-layout {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 25px;
  padding: 25px;
  background: transparent;
  backdrop-filter: none;
  border: none;
  border-radius: 20px;
  box-shadow: none;
  overflow: visible;
  margin: 0 20px 20px 20px;
}

/* Vasen puoli: Mix rakentaja */
.mix-builder-left {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-height: 100%;
  overflow: visible;
}

/* Mobile Mix Builder Left */
@media (max-width: 767px) {
  .mix-builder-left {
    width: 100%;
    padding: 0;
    gap: 12px;
    overflow: hidden;
  }
}

.mix-info {
  background: rgba(255, 255, 255, 0.05);
  /* backdrop-filter: blur(10px); - removed for performance */
  border: 1px solid rgba(255, 255, 255, 0.15);
  padding: 12px 20px;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  margin: 10px 0 15px 0;
}

.mix-input, .mix-textarea {
  width: 100%;
  padding: 12px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 10px;
  font-size: 16px;
  color: #F6F2F2;
  margin-bottom: 15px;
  transition: all 0.3s;
  /* backdrop-filter: blur(5px); - removed for performance */
}

.mix-input::placeholder,
.mix-textarea::placeholder {
  color: #FFD167;
}

.mix-input:focus, .mix-textarea:focus {
  outline: none;
  border-color: rgba(255, 209, 103, 0.5);
  box-shadow: 0 0 20px rgba(255, 209, 103, 0.3);
  background: rgba(255, 255, 255, 0.15);
}

.mix-textarea {
  resize: vertical;
  min-height: 80px;
}

/* Mobile-first mix stats layout - Three rows */
.mix-stats {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 10px;
  width: 100%;
  box-sizing: border-box;
}

.stat-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9rem;
}

.stat-row .stat-label {
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  min-width: 90px;
}

.stat-row #total-duration,
.stat-row #mix-difficulty {
  font-weight: bold;
  color: #FFD167;
  font-size: 1rem;
}

.stat-row .flames {
  display: inline-block;
  font-size: 1rem;
  margin-left: 4px;
}

/* Desktop styles */
@media (min-width: 768px) {
  .mix-stats {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 15px;
    gap: 20px;
  }
  
  .stat-row {
    font-size: 1rem;
  }
  
  .stat-row .stat-label {
    font-size: 0.9rem;
    min-width: auto;
  }
  
  .stat-row #total-duration,
  .stat-row #mix-difficulty {
    font-size: 18px;
  }
  
  .stat-row .flames {
    font-size: 1.1rem;
  }
}

/* Kept for backward compatibility */
.mix-stat {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Mobile-First Workout Builder Styles */

/* Base Mobile Styles */
.workout-builder,
.workout-structure {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 12px;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  width: 100%;
  box-sizing: border-box;
}

.workout-builder h3,
.workout-structure h3 {
  margin: 0 0 12px 0;
  color: #FFD167;
  text-align: center;
  font-weight: 600;
  font-size: 1.1rem;
}

/* Mobile Workout Slots Container */
.workout-slots {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  box-sizing: border-box;
  padding: 12px;
  background: rgba(0, 0, 0, 0.2);
  border-radius: 12px;
  margin-top: 8px;
}

/* Mobile Workout Slot - Vertical Card Layout */
.workout-slot {
  display: block;
  background: rgba(10, 58, 77, 0.6);
  border: 1px solid rgba(255, 140, 66, 0.2);
  border-radius: 12px;
  padding: 12px;
  width: 100%;
  box-sizing: border-box;
  position: relative;
  transition: background 0.3s ease, border 0.3s ease;
  min-height: auto;
  overflow: hidden;
  transform: none !important;
}

/* Desktop Styles - Applied at 768px and above */
@media (min-width: 768px) {
  .workout-builder,
  .workout-structure {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 20px;
    border-radius: 15px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    flex: 1;
    overflow: visible;
    display: flex;
    flex-direction: column;
  }
  
  .workout-builder h3,
  .workout-structure h3 {
    margin: 0 0 20px 0;
    font-size: 1.25rem;
  }
  
  .workout-slots {
    display: grid;
    gap: 8px;
    background: rgba(0, 0, 0, 0.2);
    padding: 0;
    border-radius: 0 0 20px 20px;
    overflow: visible;
  }
  
  .workout-slot {
    display: flex;
    align-items: stretch;
    background: rgba(10, 58, 77, 0.6);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 16px;
    padding: 0;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    min-height: 85px;
    width: 100%;
    box-sizing: border-box;
  }
}

/* iOS Safari backdrop-filter fallback */
@supports not (backdrop-filter: blur(12px)) {
  .workout-slot {
    background: rgba(10, 58, 77, 0.8);
  }
}

.workout-slot:hover {
  background: rgba(10, 58, 77, 0.8);
  border-color: rgba(255, 140, 66, 0.4);
  transform: translateY(-2px) scale(1.01);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3), 
              inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.workout-slot.drag-over {
  background: linear-gradient(135deg, rgba(255, 209, 103, 0.15), rgba(246, 196, 83, 0.08));
  border-color: rgba(255, 209, 103, 0.5);
  transform: translateY(-3px) scale(1.015);
  box-shadow: 0 0 0 3px rgba(255, 209, 103, 0.15),
              0 16px 48px rgba(255, 209, 103, 0.12);
}

.workout-slot.filled {
  background: linear-gradient(135deg, rgba(10, 58, 77, 0.8), rgba(10, 58, 77, 0.6));
  border: 1px solid rgba(255, 140, 66, 0.3);
}

.workout-slot.filled .slot-number {
  background: linear-gradient(135deg, rgba(6, 215, 160, 0.9), rgba(4, 181, 137, 0.8));
  color: #0A1F2B;
  border: none;
  font-weight: 800;
}

.workout-slot.filled .slot-header {
  background: linear-gradient(135deg, rgba(10, 58, 77, 0.9), rgba(10, 58, 77, 0.7));
}

.workout-slot.filled .slot-name {
  color: #FFEB9C;
  font-weight: 600;
}

/* Override for filled AND selected */
.workout-slot.filled.selected .slot-name {
  color: #FFFFFF !important;
  font-weight: 700 !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) !important;
}

/* Filled slots maintain dark teal when not selected */
.workout-slot.filled:not(.selected) {
  background: linear-gradient(135deg, rgba(10, 58, 77, 0.8), rgba(10, 58, 77, 0.6));
  border: 1px solid rgba(255, 140, 66, 0.3);
}

.workout-slot.selected {
  background: linear-gradient(135deg, rgba(6, 215, 160, 0.12), rgba(10, 58, 77, 0.7));
  border: 2px solid rgba(6, 215, 160, 0.5);
  border-radius: 16px;
  box-shadow: 0 0 0 3px rgba(6, 215, 160, 0.1),
              0 12px 40px rgba(6, 215, 160, 0.08),
              inset 0 1px 0 rgba(255, 255, 255, 0.05);
  transform: translateY(-2px) scale(1.01);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
}

.workout-slot.selected .slot-number {
  background: linear-gradient(135deg, rgba(6, 215, 160, 0.9), rgba(4, 181, 137, 0.8));
  color: #0A1F2B;
  border: none;
  box-shadow: 0 0 20px rgba(6, 215, 160, 0.4);
  font-weight: 800;
}

.workout-slot.selected .slot-header {
  background: transparent;
  color: #FFEB9C;
  border-radius: 16px 0 0 16px;
}

.workout-slot.selected .slot-name {
  color: #FFFFFF;
  font-weight: 700;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.workout-slot.selected .drop-placeholder {
  color: rgba(255, 209, 103, 0.6);
}

.workout-slot.selected .drop-placeholder::before {
  border-color: rgba(255, 209, 103, 0.3);
  color: rgba(255, 209, 103, 0.5);
}

/* Selected slot drag-over state */
.workout-slot.selected.drag-over {
  background: linear-gradient(135deg, rgba(6, 215, 160, 0.2), rgba(10, 58, 77, 0.8));
  border-color: rgba(6, 215, 160, 0.7);
  border-radius: 16px;
  transform: translateY(-4px) scale(1.02);
  overflow: hidden;
}

/* Unified selected slot styling - removed redundant rules */

/* Pulse animation for selected slot with gradient glow */
@keyframes pulse {
  0% {
    box-shadow: 
      0 0 15px rgba(255, 209, 103, 0.3), 
      0 0 15px rgba(6, 215, 160, 0.3),
      0 0 25px rgba(255, 209, 103, 0.2),
      0 0 25px rgba(6, 215, 160, 0.2);
    background: linear-gradient(45deg, rgba(6, 215, 160, 0.15), rgba(255, 209, 103, 0.15));
  }
  50% {
    box-shadow: 
      0 0 30px rgba(255, 209, 103, 0.6), 
      0 0 30px rgba(6, 215, 160, 0.6),
      0 0 50px rgba(255, 209, 103, 0.4), 
      0 0 50px rgba(6, 215, 160, 0.4),
      0 0 80px rgba(255, 209, 103, 0.2),
      0 0 80px rgba(6, 215, 160, 0.2);
    background: linear-gradient(45deg, rgba(6, 215, 160, 0.25), rgba(255, 209, 103, 0.25));
  }
  100% {
    box-shadow: 
      0 0 15px rgba(255, 209, 103, 0.3), 
      0 0 15px rgba(6, 215, 160, 0.3),
      0 0 25px rgba(255, 209, 103, 0.2),
      0 0 25px rgba(6, 215, 160, 0.2);
    background: linear-gradient(45deg, rgba(6, 215, 160, 0.15), rgba(255, 209, 103, 0.15));
  }
}

/* Mobile Slot Header - Horizontal Layout */
.slot-header {
  position: relative;
  display: grid;
  grid-template-columns: 36px 1fr 36px;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
  padding: 8px 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

/* Mobile Slot Number - Smaller Size */
.slot-number {
  position: static;
  background: rgba(255, 209, 103, 0.1);
  color: #FFD167;
  width: 36px;
  grid-column: 1;
  justify-self: center;
  height: 36px;
  border: 2px solid rgba(255, 209, 103, 0.25);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1rem;
  flex-shrink: 0;
}

/* Desktop Slot Styles */
@media (min-width: 768px) {
  .slot-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex-shrink: 0;
    flex-basis: 110px;
    width: 110px;
    min-width: 110px;
    max-width: 110px;
    padding: 20px 8px;
    margin-bottom: 0;
    background: linear-gradient(135deg, rgba(255, 209, 103, 0.06), rgba(6, 215, 160, 0.03));
    border-right: 1px solid rgba(255, 255, 255, 0.04);
    border-bottom: none;
    position: relative;
    box-sizing: border-box;
  }
  
  .slot-number {
    position: static;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    font-size: 1.3rem;
    box-shadow: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    grid-column: unset;
    justify-self: unset;
  }
}

.workout-slot:hover .slot-number {
  background: rgba(255, 209, 103, 0.15);
  border-color: rgba(255, 209, 103, 0.4);
  transform: scale(1.05);
}

/* Mobile Slot Name - Centered in grid */
.slot-name {
  font-size: 1.425rem;
  font-weight: 600;
  color: #FFEB9C;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-align: center;
  grid-column: 2;
  justify-self: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Mobile Slot Content */
.slot-content {
  width: 100%;
  box-sizing: border-box;
}

/* Desktop Slot Styles */
@media (min-width: 768px) {
  .slot-name {
    font-size: 0.8rem;
    display: block;
    text-align: center;
    flex: none;
    grid-column: unset;
    justify-self: unset;
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
    max-width: 100%;
    line-height: 1.2;
  }
  
  .slot-content {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    padding: 20px 24px;
    min-height: 85px;
    min-width: 0;
    overflow: hidden;
    width: 100%;
  }
}

.drop-placeholder {
  color: rgba(255, 255, 255, 0.35);
  font-style: normal;
  text-align: left;
  margin: 0;
  font-size: 0.9rem;
  font-weight: 400;
  display: flex;
  align-items: center;
  gap: 8px;
}

.drop-placeholder::before {
  content: '+';
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: 1px dashed rgba(255, 255, 255, 0.2);
  border-radius: 6px;
  font-size: 16px;
  color: rgba(255, 255, 255, 0.3);
}

.slot-placeholder {
  text-align: center;
  padding: 8px;
}

/* Slot song styles with proper containment */
/* Base Slot Song - Works for both mobile and desktop */
.slot-song {
  width: 100%;
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  padding: 12px;
  position: relative;
}

/* Mobile-specific adjustments */
@media (max-width: 767px) {
  .slot-song {
    padding: 10px;
    font-size: 0.9rem;
  }
  
  .slot-song-header {
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
  }
  
  .slot-song-title {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.95rem !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  
  .slot-muscle-badge {
    font-size: 0.8rem !important;
    padding: 3px 8px !important;
  }
  
  .workout-slot.selected .slot-muscle-badge {
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    padding: 4px 10px !important;
  }
  
  .remove-song-btn {
    width: 16px !important;
    height: 16px !important;
    font-size: 9px !important;
    padding: 0 !important;
    min-width: 16px !important;
    opacity: 0.9 !important;
    border-radius: 50% !important;
  }
  
  .slot-song-info {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    margin-bottom: 8px;
  }
  
  .slot-song-artist {
    font-size: 0.85rem !important;
  }
  
  .slot-song-difficulty {
    font-size: 0.8rem !important;
  }
  
  .slot-song-links {
    flex-wrap: wrap;
    gap: 8px;
  }
  
  .slot-song-media-links {
    display: flex;
    gap: 6px;
  }
  
  .slot-song-media-links .spotify-link,
  .slot-song-media-links .youtube-link {
    width: auto !important;
    height: auto !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
  }
  
  .slot-song-media-links .spotify-link img,
  .slot-song-media-links .youtube-link img {
    width: 26px !important;
    height: 26px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
  }
  
  .mix-song-program {
    font-size: 0.7rem !important;
    padding: 3px 6px !important;
  }
}

/* Simplified Mobile Song Layout */
.slot-song.mobile-song {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  width: 100%;
  box-sizing: border-box;
}

/* Header with title, artist and remove button */
.mobile-song-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}

.mobile-song-info {
  flex: 1;
  min-width: 0;
}

.mobile-song .slot-song-title {
  font-size: 1rem;
  font-weight: 600;
  color: #FFD167;
  line-height: 1.3;
  margin-bottom: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mobile-song .slot-song-artist {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Footer with metadata and links */
.mobile-song-footer {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.bp-badge-mobile {
  background: #073A4B;
  color: #FFD167;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: bold;
  border: 1px solid #FFD167;
}

.duration-mobile {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.6);
}

.difficulty-mobile {
  font-size: 0.9rem;
}

.links-mobile {
  display: flex;
  gap: 6px;
  margin-left: auto;
}

.links-mobile .spotify-link,
.links-mobile .youtube-link {
  width: 24px;
  height: 24px;
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.links-mobile img {
  width: 16px;
  height: 16px;
}

.remove-song-btn-mobile {
  display: none !important; /* Hidden - not functional */
}

/* Mobile Collapsible Song Details */
.slot-song.expanded {
  background: rgba(255, 255, 255, 0.08);
}

/* Mobile Selected Slot - No transforms, just visual highlight */
@media (max-width: 767px) {
  .workout-slot.selected {
    transform: none !important;
    scale: 1 !important;
    background: linear-gradient(135deg, rgba(6, 215, 160, 0.1), rgba(10, 58, 77, 0.7)) !important;
    border: 2px solid rgba(6, 215, 160, 0.5) !important;
    border-radius: 12px !important;
    box-shadow: 0 0 10px rgba(6, 215, 160, 0.2) !important;
    overflow: hidden !important;
  }
  
  .workout-slot.selected .slot-header {
    background: transparent !important;
    border-bottom: 1px solid rgba(6, 215, 160, 0.3) !important;
  }
  
  .workout-slot.selected .slot-number {
    background: linear-gradient(135deg, rgba(6, 215, 160, 0.9), rgba(4, 181, 137, 0.8)) !important;
    color: #0A1F2B !important;
    box-shadow: none !important;
    font-weight: 800 !important;
  }
  
  .workout-slot.selected .slot-name {
    color: #FFFFFF !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) !important;
  }
  
  /* Fix slot-song overflow in selected slots */
  .workout-slot.selected .slot-song {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  
  .workout-slot.selected .slot-content {
    overflow: hidden !important;
    width: 100% !important;
  }
}

/* Desktop Slot Song */
@media (min-width: 768px) {
  .slot-song {
    max-width: 100%;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 12px;
    overflow: hidden;
    contain: layout;
  }
}

/* Mobile Song Header */
.slot-song-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 8px;
  margin-bottom: 8px;
}

/* Mobile Song Title */
.slot-song-title {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
  color: #FFD167;
  font-size: 0.95rem;
}

/* Cleaned up mobile styles - moved to mobile-song section above */

/* Desktop Song Header Styles */
@media (min-width: 768px) {
  .slot-song-header {
    align-items: baseline;
    margin-bottom: 12px;
  }
  
  .slot-song-title {
    font-size: 1.15rem !important;
    font-weight: 600 !important;
  }
  
  /* Hide mobile-only elements on desktop */
  .slot-song-badges,
  .expand-btn,
  .bp-badge {
    display: none;
  }
  
  .slot-song-details {
    display: block !important;
    padding-top: 0;
    margin-top: 0;
    border-top: none;
  }
}

.slot-song-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.slot-song-info span:first-child {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.7);
}

.slot-song-links {
  display: flex;
  align-items: flex-end; /* Align items to bottom baseline */
  justify-content: space-between;
  gap: 10px;
  height: auto;
  max-height: 60px;
}

.slot-song-media-links {
  display: flex;
  gap: 3px;
  align-items: flex-end; /* Align to bottom to match BP element */
  height: auto;
  flex-wrap: nowrap;
  margin: 0;
  padding: 0;
  line-height: 1;
}

/* Media link buttons - clean, no containers */
.slot-song-media-links .spotify-link,
.slot-song-media-links .youtube-link {
  width: auto;
  height: auto;
  display: inline-flex;
  align-items: flex-end;
  justify-content: center;
  transition: transform 0.2s ease;
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
  line-height: 1;
  vertical-align: bottom;
}

.slot-song-media-links .spotify-link:hover,
.slot-song-media-links .youtube-link:hover {
  transform: scale(1.1);
}

/* Images sized to match BP element height (approximately 28px) */
.slot-song-media-links .spotify-link img,
.slot-song-media-links .youtube-link img {
  width: 28px;
  height: 28px;
  object-fit: contain;
  cursor: pointer;
  margin: 0;
  padding: 0;
  display: block;
  vertical-align: middle;
}

.slot-song-artist {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.7);
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.slot-song-difficulty {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.8);
  white-space: nowrap;
}

.slot-song-links a {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  /* No background - just show the logo */
  background: transparent;
  border-radius: 6px;
  transition: all 0.2s ease;
  text-decoration: none;
  font-size: 16px;
}

.slot-song-links a:hover {
  transform: scale(1.15);
  /* Subtle hover without colored background */
  opacity: 0.8;
}

.slot-muscle-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.95rem;
}

.remove-song-btn {
  display: none !important; /* Hidden - not functional */
}

/* Remove button hover states - commented out as button is hidden
.workout-slot:hover .remove-song-btn,
.slot-song:hover .remove-song-btn {
  opacity: 1;
}

.remove-song-btn:hover {
  background: linear-gradient(135deg, rgba(255, 107, 107, 0.25), rgba(255, 71, 71, 0.15));
  border-color: rgba(255, 107, 107, 0.4);
  color: #FF4444;
  transform: scale(1.1);
  box-shadow: 0 2px 8px rgba(255, 107, 107, 0.2);
} */

.placeholder-title {
  color: #FFD167;
  font-weight: bold;
  font-size: 14px;
  margin-bottom: 6px;
}

.placeholder-description {
  color: #B0C4CE;
  font-size: 12px;
  line-height: 1.4;
  font-style: italic;
  opacity: 0.8;
}

/* Empty workout guide styling */
.empty-workout-guide {
  background: linear-gradient(135deg, rgba(255, 209, 103, 0.1), rgba(6, 215, 160, 0.1));
  border: 1px solid rgba(255, 209, 103, 0.3);
  border-radius: 12px;
  padding: 20px;
  margin: 20px 0;
  text-align: center;
}

.guide-content h4 {
  color: #FFD167;
  font-size: 18px;
  margin: 10px 0 15px 0;
  font-weight: bold;
}

.guide-content p {
  color: #B0C4CE;
  line-height: 1.5;
  margin: 10px 0;
}

.guide-icon {
  font-size: 32px;
  margin-bottom: 10px;
}

.workout-flow {
  margin: 15px 0;
  text-align: left;
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
}

.flow-item {
  display: flex;
  align-items: center;
  margin: 8px 0;
  color: #E8F4F8;
}

.flow-number {
  background: #FFD167;
  color: #073A4B;
  border-radius: 50%;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 12px;
  margin-right: 12px;
  flex-shrink: 0;
}

.flow-text {
  flex: 1;
}

.guide-tip {
  background: rgba(255, 209, 103, 0.1);
  border-left: 3px solid #FFD167;
  padding: 10px 15px;
  margin: 15px 0 5px 0;
  border-radius: 0 8px 8px 0;
  font-size: 14px;
  text-align: left;
}

/* Duplicate removed - using main .slot-song definition above */

/* BP numbers in slot songs - responsive without absolute positioning */
.slot-song .mix-song-program {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: #073A4B !important;
  color: #FFD167 !important;
  padding: 6px 10px !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  font-weight: bold !important;
  border: 2px solid #FFD167 !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
  white-space: nowrap !important;
}

.slot-song-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4px;
}

.slot-song-title {
  font-weight: bold;
  color: #FFD167;
  flex: 1;
}

/* Duplicate removed - see main .remove-song-btn definition above */

/* Duplicate removed - see main .remove-song-btn:hover definition above */

.slot-song-info {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.8);
  display: flex;
  justify-content: space-between;
}

/* Duplicate removed - see main .slot-song-links definition above */

/* Oikea puoli: Kappalevalinta */
.mix-builder-right {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  padding: 20px;
  border-radius: 15px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  display: flex;
  flex-direction: column;
  min-height: 100%;
  overflow: visible;
  min-width: 0;
}

/* Hide mix-builder-right on mobile for better UX */
@media (max-width: 768px) {
  .mix-builder-right {
    display: none !important;
  }
}

.mix-builder-right h3 {
  margin: 0 0 20px 0;
  color: #F6F2F2;
  text-align: center;
  font-weight: 600;
}

.song-filters {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 20px;
}

.mix-filter {
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  color: #F6F2F2;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.3s;
  /* backdrop-filter: blur(5px); - removed for performance */
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
}

.mix-filter option {
  background: #073A4B;
  color: #F6F2F2;
}

.mix-filter:hover,
.mix-filter:focus {
  border-color: rgba(255, 209, 103, 0.5);
  outline: none;
  background: rgba(255, 255, 255, 0.15);
}

#mix-search-input {
  width: 100%;
  max-width: 100%;
  padding: 12px 15px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 10px;
  font-size: 16px;
  color: #F6F2F2;
  transition: all 0.3s;
  /* backdrop-filter: blur(5px); - removed for performance */
  box-sizing: border-box;
}

#mix-search-input::placeholder {
  color: #FFD167;
}

#mix-search-input:focus {
  outline: none;
  border-color: rgba(255, 209, 103, 0.5);
  box-shadow: 0 0 20px rgba(255, 209, 103, 0.3);
  background: rgba(255, 255, 255, 0.15);
}

.filters-collapsible {
  margin-top: 10px;
}

.filters-toggle {
  background: linear-gradient(135deg, #06D7A0, #04A373);
  color: #073A4B;
  border: 1px solid rgba(255, 255, 255, 0.3);
  padding: 8px 12px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 14px;
  width: 100%;
  text-align: left;
  transition: all 0.3s ease;
  /* backdrop-filter: blur(5px); - removed for performance */
  font-weight: 500;
}

.filters-toggle:hover {
  background: linear-gradient(135deg, #04A373, #038A61);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(6, 215, 160, 0.3);
}

.filters-content {
  display: none;
  margin-top: 10px;
  gap: 10px;
  flex-direction: column;
}

.filters-content.open {
  display: flex;
}

.mix-song-list {
  flex: 1;
  overflow: visible;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
}

.mix-song-item {
  position: relative;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 10px;
  padding: 15px;
  cursor: grab;
  transition: all 0.3s ease;
  /* backdrop-filter: blur(5px); - removed for performance */
}

/* Varmistetaan että BP numerot näkyvät aina */
.mix-song-item .mix-song-program {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.mix-song-item:hover {
  border-color: rgba(255, 209, 103, 0.5);
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(255, 209, 103, 0.3);
  background: rgba(255, 255, 255, 0.12);
}

/* Muscle group badge for mix song items */
.mix-song-muscle-badge {
    font-size: 12px;
    color: #FFD167;
    font-weight: 500;
    white-space: nowrap;
}

/* Position muscle group badge in the header */
.mix-song-item-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 8px;
}

/* Slot song header layout with 3 columns */
.slot-song-header {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.slot-song-title {
    flex: 1;
}

.slot-muscle-badge {
    flex-shrink: 0;
}

/* Duplicate removed - properties integrated into main definition */

.mix-song-item.dragging {
  opacity: 0.7;
  transform: rotate(3deg) scale(1.05);
  cursor: grabbing;
  z-index: 1000;
  box-shadow: 0 8px 25px rgba(6, 215, 160, 0.4);
}

.mix-song-item-title {
  font-weight: bold;
  color: #FFD167;
  margin-bottom: 4px;
  font-size: 14px;
}

.mix-song-item-info {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.8);
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 8px;
}

/* Right side column for flames and BP badge */
.mix-song-right-column {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.mix-song-item-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 5px;
}

.mix-song-muscle {
  background: none;
  color: #FFD167;
  padding: 0;
  border-radius: 0;
  font-size: 11px;
  font-weight: normal;
  text-transform: none;
  box-shadow: none;
  display: flex;
  opacity: 0.8;
  align-items: center;
  gap: 4px;
}

.mix-song-flames {
  font-size: 12px;
  display: inline-block !important;
  color: #FFD167;
  margin-left: 8px;
}

.mix-song-links {
  display: flex;
  gap: 8px;
  margin-top: 8px;
  justify-content: flex-start;
  align-items: center;
}

.mix-song-links .logo-icon {
  width: 16px;
  height: 16px;
  transition: transform 0.2s ease;
}

.mix-song-program {
  position: static !important;
  background: #073A4B !important;
  color: #FFD167 !important;
  padding: 4px 8px !important;
  border-radius: 6px !important;
  font-size: 12px !important;
  font-weight: bold !important;
  border: 2px solid #FFD167 !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.mix-song-links .logo-icon:hover {
  transform: scale(1.1);
}

/* Song card styles remain original */

/* iPhone-specific fixes for SE and XR */
@media (max-width: 414px) {
  /* Critical: Fix filter container overflow on smallest screens (Bug #5) */
  .mix-builder-right {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    padding: 8px !important;
  }
  
  /* Ensure all filter elements fit within narrow screens */
  .song-filters {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 15px 0 !important;
    padding: 0 !important;
  }
  
  .search-and-clear {
    display: flex !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  
  .search-and-clear #mix-search-input {
    flex: 1 !important;
    min-width: 0 !important;
    max-width: calc(100% - 60px) !important; /* Account for clear button */
  }
  
  .search-and-clear #mix-clear-btn {
    flex-shrink: 0 !important;
    width: 50px !important;
    min-width: 50px !important;
    padding: 8px !important;
    font-size: 12px !important;
  }
  
  /* Fix container overflow issues */
  .mix-builder-left,
  .workout-builder,
  .workout-structure {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    padding: 8px !important;
    margin: 0 !important;
  }
  
  .workout-slots {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    padding: 0 !important;
  }
  
  .workout-slot {
    width: 100% !important;
    max-width: 100% !important;
    margin: 8px 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    min-height: auto !important;
    padding: 10px !important;
    transform: none !important;
  }
  
  /* Ensure selected slots don't scale on mobile */
  .workout-slot.selected {
    transform: none !important;
    scale: 1 !important;
  }
  
  /* Critical: Fix slot-song container when filled */
  .workout-slot.filled {
    min-height: auto !important;
  }
  
  /* Mobile slot header - already defined in mobile-first styles */
  .workout-slot .slot-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    padding-bottom: 8px !important;
    margin-bottom: 8px !important;
  }
  
  /* Simplified slot content for mobile */
  .slot-content {
    width: 100% !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
  
  .slot-song {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    padding: 8px !important;
    background: rgba(255, 255, 255, 0.05) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 6px !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    contain: layout !important;
  }
  
  /* Fix the song header layout */
  .slot-song-header {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 6px !important;
    margin-bottom: 4px !important;
    overflow: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  
  .slot-song-header h4,
  .slot-song-title {
    flex: 1 1 0 !important; /* Start at 0 width and grow */
    min-width: 0 !important;
    max-width: none !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: 0.9rem !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  
  .slot-muscle-badge {
    flex: 0 0 auto !important;
    font-size: 0.6rem !important;
    padding: 2px 4px !important;
    white-space: nowrap !important;
  }
  
  .remove-song-btn {
    flex: 0 0 auto !important;
    width: 24px !important;
    height: 24px !important;
    margin-left: 4px !important;
  }
  
  /* Container for song details and links */
  .slot-song-details {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    gap: 8px !important;
    overflow: hidden !important;
  }
  
  .song-artist {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: 0.75rem !important;
  }
  
  .song-duration {
    flex: 0 0 auto !important;
    font-size: 0.7rem !important;
    white-space: nowrap !important;
  }
  
  .song-link-container {
    flex: 0 0 auto !important;
    display: flex !important;
    gap: 4px !important;
  }
  
  /* Fix song info layout */
  .slot-song-info {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 4px 6px !important;
    margin-bottom: 4px !important;
    overflow: hidden !important;
  }
  
  .slot-song-info span {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
  
  .slot-song-info span:first-child {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    font-size: 0.75rem !important;
  }
  
  .slot-song-info span:last-child,
  .slot-song-difficulty {
    flex: 0 0 auto !important;
    font-size: 0.7rem !important;
    display: inline-flex !important;
    align-items: center !important;
    color: #FFD167 !important;
  }
  
  /* Fix song links layout */
  .slot-song-links {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 4px !important;
    overflow: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 60px !important;
  }
  
  .slot-song-media-links {
    display: flex !important;
    gap: 4px !important;
    flex: 0 0 auto !important; /* Don't grow */
  }
  
  .slot-song-links a {
    width: 20px !important;
    height: 20px !important;
    padding: 2px !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
  }
  
  .slot-song-links .logo-icon {
    width: 16px !important;
    height: 16px !important;
  }
  
  /* Fix BP number positioning - use flexbox layout */
  .slot-song .bp-number,
  .slot-song .mix-song-program {
    position: static !important;
    display: inline-flex !important;
    flex: 0 0 auto !important;
    font-size: 10px !important;
    padding: 3px 5px !important;
    margin: 0 !important;
    margin-left: auto !important;
    align-self: flex-start !important;
    background: #073A4B !important;
    color: #FFD167 !important;
    border: 1px solid #FFD167 !important;
    border-radius: 4px !important;
    white-space: nowrap !important;
  }
  
  /* Ensure BP number doesn't push content */
  .slot-song-header:has(.bp-number),
  .slot-song-header:has(.mix-song-program) {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 6px !important;
  }
  
  .slot-song-header .bp-number,
  .slot-song-header .mix-song-program {
    margin-left: 6px !important;
    order: 2 !important;
  }
  
  .slot-song-header h4 {
    order: 1 !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
  }
}

/* Very small screens - ensure readability */
@media (max-width: 400px) {
  .mobile-song-footer {
    font-size: 0.85rem;
  }
  
  .mobile-song .slot-song-title {
    font-size: 0.95rem;
  }
  
  .mobile-song .slot-song-artist {
    font-size: 0.8rem;
  }
}

/* iPhone SE specific (375px) */
@media (max-width: 375px) {
  .workout-slot {
    min-height: 54px !important;
    border-radius: 10px !important;
    /* Prevent flex explosion */
    flex-shrink: 0 !important;
    display: flex !important;
    width: 100% !important;
    max-width: calc(100vw - 16px) !important; /* Account for padding */
  }
  
  .workout-slot.filled {
    min-height: auto !important;
  }
  
  .workout-slot .slot-header {
    flex: 0 0 45px !important; /* Fixed width */
    width: 45px !important;
    min-width: 45px !important;
    max-width: 45px !important;
    padding: 8px 4px !important;
  }
  
  .workout-slot .slot-number {
    width: 26px !important;
    height: 26px !important;
    font-size: 0.75rem !important;
    border-radius: 6px !important;
  }
  
  .workout-slot .slot-content {
    padding: 6px !important;
    flex: 1 1 0 !important; /* Grow from 0 */
    min-width: 0 !important; /* Critical for preventing flex explosion */
    max-width: calc(100% - 45px) !important; /* Account for header */
    overflow: hidden !important;
  }
  
  .drop-placeholder {
    font-size: 0.7rem !important;
  }
  
  .drop-placeholder::before {
    width: 16px !important;
    height: 16px !important;
    font-size: 11px !important;
  }
  
  /* More aggressive mobile constraints for filled slots */
  .slot-song {
    padding: 6px !important;
  }
  
  .slot-song-title {
    font-size: 0.85rem !important;
  }
  
  .slot-song-info span:first-child {
    font-size: 0.7rem !important;
  }
  
  .slot-song-info span:last-child {
    font-size: 0.65rem !important;
  }
  
  .slot-song-links a {
    width: 20px !important;
    height: 20px !important;
    padding: 2px !important;
    margin: 0 !important;
  }
  
  .slot-song .mix-song-program {
    font-size: 9px !important;
    padding: 2px 4px !important;
  }
  
  .remove-song-btn {
    width: 22px !important;
    height: 22px !important;
    font-size: 14px !important;
  }
}

/* Touch-friendly mobile interactions */
@media (pointer: coarse) {
  /* Increase touch targets for mobile */
  .workout-slot {
    /* Add touch feedback */
    -webkit-tap-highlight-color: rgba(255, 209, 103, 0.2);
  }
  
  .workout-slot:active {
    transform: scale(0.98) !important;
    transition: transform 0.1s ease !important;
  }
  
  .remove-song-btn {
    min-width: 40px !important;
    min-height: 40px !important;
    /* Always visible on touch devices */
    opacity: 0.7 !important;
  }
  
  .slot-song-links a {
    min-width: 40px !important;
    min-height: 40px !important;
  }
}

/* Mobile-specific workout slot styles */
@media (max-width: 768px) {
  /* Workout structure mobile optimization */
  .workout-structure {
    padding: 10px !important;
    margin: 10px 0 !important;
  }
  
  .workout-slots {
    gap: 6px !important;
    padding: 0 !important;
  }
  
  .workout-slot {
    min-height: 60px !important;
    border-radius: 12px !important;
    margin: 0 !important;
    /* Stack number and content vertically on very small screens */
  }
  
  .workout-slot .slot-header {
    position: relative !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    min-width: auto !important;
    padding: 8px 12px !important;
    min-height: 44px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
  }
  
  .workout-slot .slot-number {
    width: 36px !important;
    height: 36px !important;
    font-size: 1rem !important;
    border-width: 1.5px !important;
    border-radius: 10px !important;
  }
  
  .workout-slot .slot-name {
    font-size: 1.275rem !important;
    letter-spacing: 0.3px !important;
    color: #FFEB9C !important;
    font-weight: 600 !important;
    text-align: center !important;
    justify-self: center !important;
  }
  
  .workout-slot.selected .slot-name,
  .workout-slot.filled.selected .slot-name {
    color: #FFFFFF !important;
    font-weight: 700 !important;
    font-size: 0.9rem !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) !important;
  }
  
  /* Ensure header text is black when slot is selected on mobile */
  .workout-slot.selected .slot-header,
  .workout-slot.filled.selected .slot-header {
    color: #073A4B !important;
  }
  
  .workout-slot.selected .slot-header .slot-name,
  .workout-slot.filled.selected .slot-header .slot-name {
    color: #FFFFFF !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) !important;
  }
  
  .workout-slot.selected .slot-header .slot-number,
  .workout-slot.filled.selected .slot-header .slot-number {
    color: #0A1F2B !important;
  }
  
  .workout-slot .slot-content {
    padding: 12px 16px !important;
    min-height: 60px !important;
    gap: 6px !important;
  }
  
  /* Adjust placeholder for mobile */
  .drop-placeholder {
    font-size: 0.8rem !important;
    gap: 6px !important;
  }
  
  .drop-placeholder::before {
    width: 20px !important;
    height: 20px !important;
    font-size: 14px !important;
    border-radius: 4px !important;
  }
  
  /* Slot song mobile adjustments */
  .slot-song {
    padding: 10px !important;
    border-radius: 6px !important;
  }
  
  .slot-song-header {
    gap: 8px !important;
    margin-bottom: 6px !important;
  }
  
  .slot-song-title {
    font-size: 0.95rem !important;
  }
  
  .slot-song-info {
    padding: 6px 8px !important;
    gap: 8px !important;
    border-radius: 6px !important;
  }
  
  .slot-song-info span:first-child {
    font-size: 0.75rem !important;
  }
  
  .slot-song-links a {
    width: 22px !important;
    height: 22px !important;
    padding: 2px !important;
    margin: 0 !important;
    font-size: 14px !important;
  }
  
  .slot-muscle-badge {
    font-size: 0.65rem !important;
    padding: 2px 6px !important;
    gap: 3px !important;
  }
  
  .remove-song-btn {
    width: 24px !important;
    height: 24px !important;
    font-size: 16px !important;
    border-radius: 4px !important;
  }
  
  /* Always show remove button on mobile for better UX */
  .remove-song-btn {
    opacity: 0.6 !important;
  }
  
  .workout-slot:hover .remove-song-btn,
  .slot-song:hover .remove-song-btn {
    opacity: 1 !important;
  }
  
  /* Adjust hover effects for mobile (less dramatic) */
  .workout-slot:hover {
    transform: translateY(-1px) scale(1.005) !important;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2) !important;
  }
  
  .workout-slot.selected {
    transform: translateY(-1px) scale(1.005) !important;
    box-shadow: 0 0 0 2px rgba(6, 215, 160, 0.2),
                0 6px 20px rgba(6, 215, 160, 0.1) !important;
  }
  
  /* BP number in slot songs */
  .slot-song .mix-song-program {
    font-size: 12px !important;
    padding: 4px 6px !important;
    border-radius: 4px !important;
    border-width: 1.5px !important;
  }
  
  /* Empty workout guide mobile */
  .empty-workout-guide {
    padding: 15px !important;
    margin: 15px 0 !important;
    border-radius: 10px !important;
  }
  
  .guide-content h4 {
    font-size: 16px !important;
  }
  
  .guide-content p {
    font-size: 13px !important;
    line-height: 1.4 !important;
  }
  
  .workout-flow {
    margin: 10px 0 !important;
  }
  
  .flow-item {
    margin: 6px 0 !important;
  }
  
  .flow-number {
    width: 28px !important;
    height: 28px !important;
    font-size: 11px !important;
    margin-right: 10px !important;
  }
  
  .flow-text {
    font-size: 13px !important;
  }
  
  .guide-tip {
    padding: 8px 12px !important;
    font-size: 12px !important;
    margin: 10px 0 !important;
  }
  
  /* Placeholder adjustments */
  .placeholder-title {
    font-size: 13px !important;
  }
  
  .placeholder-description {
    font-size: 11px !important;
    line-height: 1.3 !important;
  }
}

/* Very small mobile screens (iPhone SE, etc.) */
@media (max-width: 480px) {
  .workout-slot {
    /* Keep horizontal layout but compress */
    min-height: auto !important;
    padding: 0 !important;
  }
  
  .workout-slot .slot-header {
    min-width: 50px !important;
    padding: 10px 8px !important;
    gap: 2px !important;
  }
  
  .workout-slot .slot-number {
    width: 30px !important;
    height: 30px !important;
    font-size: 0.85rem !important;
    border-radius: 8px !important;
  }
  
  .workout-slot .slot-name {
    font-size: 0.9rem !important;
    letter-spacing: 0.2px !important;
  }
  
  .workout-slot .slot-content {
    flex: 1 !important;
    padding: 8px 10px !important;
    min-height: auto !important;
  }
  
  /* Simplify slot song layout for very small screens */
  .slot-song-header {
    flex-wrap: wrap !important;
  }
  
  .slot-song-title {
    font-size: 0.85rem !important;
    width: 100% !important;
    margin-bottom: 4px !important;
  }
  
  .slot-muscle-badge {
    order: 2 !important;
  }
  
  .remove-song-btn {
    order: 3 !important;
    margin-left: auto !important;
  }
  
  .slot-song-info {
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    padding: 4px 6px !important;
  }
  
  .slot-song-difficulty {
    display: inline-flex !important;
    align-items: center !important;
    white-space: nowrap !important;
    font-size: 0.75rem !important;
    color: #FFD167 !important;
  }
  
  .slot-song-links {
    width: 100% !important;
    justify-content: flex-start !important;
    margin-top: 8px !important;
  }
}

/* Landscape mobile optimization */
@media (max-width: 768px) and (orientation: landscape) {
  .workout-structure {
    max-height: 80vh !important;
    overflow-y: auto !important;
  }
  
  .workout-slot {
    min-height: 50px !important;
  }
  
  .workout-slot .slot-header {
    padding: 8px 12px !important;
  }
  
  .workout-slot .slot-number {
    width: 30px !important;
    height: 30px !important;
    font-size: 0.85rem !important;
  }
  
  .workout-slot .slot-content {
    padding: 8px 12px !important;
    min-height: 50px !important;
  }
}

/* Responsiivisuus Mix Builderille */
@media (max-width: 1200px) {
  .mix-builder-layout {
    grid-template-columns: 1fr 350px;
    gap: 15px;
    padding: 20px;
  }
}

@media (max-width: 968px) {
  .mix-builder-section {
    padding-top: 80px; /* Slightly more padding for medium mobile */
  }
  
  .mix-builder-layout {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 15px;
    overflow: hidden;
  }
  
  .mix-builder-left {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
  }
  
  .mix-builder-right {
    order: -1;
    max-height: 400px;
    /* Fix mobile filter container overflow */
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }
  
  .mix-header {
    padding: 20px 15px;
    text-align: center;
  }
  
  .mix-header h2 {
    font-size: 2rem;
    margin-bottom: 10px;
  }
  
  .mix-header p {
    font-size: 1rem;
    margin-bottom: 15px;
  }
  
  .mix-controls {
    justify-content: center;
  }
  
  /* Hide song list initially on mobile */
  .mix-song-list {
    display: none;
  }
  
  /* Show message when no muscle group selected - only on mobile */
  .mobile-select-message {
    display: none; /* Hidden on desktop by default */
    text-align: center;
    padding: 20px;
    color: #666;
    font-style: italic;
  }

  /* Show on mobile only */
  @media (max-width: 968px) {
    .mobile-select-message {
      display: block;
    }
  }
  
  /* Show song list when muscle group is selected */
  .mix-song-list.muscle-selected {
    display: flex;
  }
  
  .mobile-select-message.hidden {
    display: none;
  }
}

@media (max-width: 600px) {
  .mix-builder-section {
    padding: 70px 10px 10px 10px; /* Top padding for navbar, 10px for sides and bottom */
  }
  
  /* Additional mobile filter fixes for smaller screens (Bug #5) */
  .song-filters,
  .filters-collapsible,
  .filters-content {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  
  /* Enhanced mobile filter container styling (Bug #5) */
  .mix-builder-right {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex-basis: 100% !important;
    overflow: hidden !important;
  }
  
  /* Prevent filter elements from extending beyond viewport */
  .search-and-clear {
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 8px !important;
    align-items: stretch !important;
  }
  
  .search-and-clear #mix-search-input {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: calc(100% - 80px) !important;
  }
  
  .search-and-clear #mix-clear-btn {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 70px !important;
    max-width: 70px !important;
  }
  
  .mix-filter,
  #mix-search-input,
  .filters-toggle {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    /* Ensure no horizontal scrolling */
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
  
  /* Enhanced mobile touch targets (Bug #4 & #5) */
  .mix-filter,
  .filters-toggle,
  #mix-clear-btn {
    min-height: 44px !important; /* Apple's recommended touch target size */
    touch-action: manipulation !important; /* Prevent zoom on double-tap */
    -webkit-tap-highlight-color: rgba(255, 209, 103, 0.2) !important;
  }
  
  /* Fix genre dropdown for very small screens */
  .mix-genre-filter-container,
  .mix-genre-dropdown {
    width: 100% !important;
    max-width: 100% !important;
    position: relative !important;
  }
  
  .mix-dropdown-content {
    width: calc(100% - 4px) !important; /* Account for border */
    max-width: calc(100% - 4px) !important;
    left: 0 !important;
    right: auto !important;
    box-sizing: border-box !important;
    /* Prevent any overflow */
    overflow-x: hidden !important;
    word-wrap: break-word !important;
  }
  
  .mix-genre-list {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 4px !important;
  }
  
  .mix-genre-list label {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    padding: 8px 12px !important;
  }
  
  .mix-builder-layout {
    padding: 15px;
  }
  
  .mix-stats {
    flex-direction: column;
    gap: 15px;
    align-items: flex-start;
  }
  
  .workout-slots {
    gap: 8px;
  }
  
  .slot-header {
    padding: 10px 12px;
  }
  
  .slot-content {
    padding: 12px;
    min-height: 50px;
  }
  
  /* Paranna mobile click-to-add käyttöliittymää */
  .mix-song-item {
    padding: 15px;
    border: 2px solid #06D7A0;
    transition: all 0.2s ease;
    position: relative;
  }
  
  .mix-song-item:active {
    transform: scale(0.98);
    background: rgba(6, 215, 160, 0.1);
    border-color: #FFD167;
  }
  
  /* Varmistetaan että BP numerot näkyvät mobilessakin */
  .mix-song-item .mix-song-program {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
  
  .workout-slot.selected {
    animation: pulse-select 1.5s infinite;
  }
  
  /* Poistettu: Tap a song to add here teksti */
  
  .workout-slot {
    position: relative;
  }
}

@keyframes pulse-select {
  0%, 100% { 
    box-shadow: 
      0 0 10px rgba(6, 215, 160, 0.4),
      0 0 20px rgba(6, 215, 160, 0.2);
  }
  50% { 
    box-shadow: 
      0 0 20px rgba(6, 215, 160, 0.6),
      0 0 30px rgba(6, 215, 160, 0.3);
  }
}

/* Mobile Song Selection Modal */
.mobile-song-modal {
  position: fixed;
  top: 70px; /* Start below navigation bar */
  left: 0;
  width: 100%;
  height: calc(100vh - 70px); /* Reduce height to account for navbar */
  background: rgba(0, 0, 0, 0.8);
  z-index: 10001;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  box-sizing: border-box;
}

.mobile-song-modal[style*="display: block"] {
  display: flex !important;
}

.mobile-song-modal-content {
  background: rgba(255, 255, 255, 0.1);
  /* backdrop-filter: blur(15px); - removed for performance */
  border: 1px solid rgba(255, 255, 255, 0.3);
  width: 100%;
  max-width: 600px;
  height: calc(100vh - 110px); /* Account for navbar (70px) + padding (40px) */
  max-height: calc(100vh - 110px);
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
  display: flex;
  flex-direction: column;
}

.mobile-song-modal-header {
  background: rgba(255, 255, 255, 0.1);
  /* backdrop-filter: blur(5px); - removed for performance */
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  color: #F6F2F2;
  padding: 15px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.mobile-song-modal-header h3 {
  margin: 0;
  font-size: 1.2rem;
}

.mobile-song-modal-close {
  background: none;
  border: none;
  font-size: 24px;
  color: #F6F2F2;
  cursor: pointer;
  padding: 5px;
  line-height: 1;
}

.mobile-song-modal-body {
  padding: 20px;
  flex: 1;
  overflow-y: auto;
  min-height: 0;
}

.mobile-search-container {
  margin-bottom: 15px;
  padding-bottom: 15px;
  border-bottom: 1px solid rgba(255, 209, 103, 0.3);
}

.mobile-search-input {
  width: 100%;
  padding: 12px 15px;
  border: 1px solid rgba(255, 209, 103, 0.3);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.1);
  color: #F6F2F2;
  font-size: 1rem;
  box-sizing: border-box;
}

.mobile-search-input::placeholder {
  color: rgba(246, 242, 242, 0.6);
}

.mobile-search-input:focus {
  outline: none;
  border-color: #FFD167;
  background: rgba(255, 209, 103, 0.1);
}

.mobile-song-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mobile-song-item {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 209, 103, 0.3);
  border-radius: 8px;
  padding: 15px;
  cursor: pointer;
  transition: all 0.2s ease;
  color: #F6F2F2;
  position: relative;
}

.mobile-song-item:hover {
  background: rgba(255, 209, 103, 0.2);
  border-color: #FFD167;
  transform: translateY(-2px);
}

.mobile-song-item-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 8px;
}

.mobile-song-item-title {
  font-weight: bold;
  font-size: 1.1rem;
  color: #FFD167;
  flex: 1;
  margin-right: 10px;
}

.mobile-song-muscle-badge {
  font-size: 0.8rem;
  color: #FFD167;
  font-weight: normal;
  opacity: 0.9;
  flex-shrink: 0;
}

.mobile-song-item-info {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 12px;
  font-size: 0.9rem;
  opacity: 0.9;
  width: 100%;
}

.mobile-song-item-info span:first-child {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-right: 8px;
}

.mobile-song-item-info span:last-child {
  flex-shrink: 0;
}

.mobile-song-flames {
  font-size: 1rem;
  display: inline-block !important;
  visibility: visible !important;
  color: #FFD167 !important;
  margin-left: 8px;
}

.mobile-song-item-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.mobile-song-links {
  display: flex;
  gap: 8px;
  align-items: center;
}

.mobile-logo-icon {
  width: 20px;
  height: 20px;
  border-radius: 4px;
  transition: transform 0.2s ease;
}

.mobile-logo-icon:hover {
  transform: scale(1.1);
}

.mobile-song-program {
  background: #073A4B;
  color: #FFD167;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: bold;
  border: 2px solid #FFD167;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

/* Mix Genre Dropdown */
.mix-genre-filter-container {
  position: relative;
}

.mix-genre-dropdown button {
  width: 100%;
  text-align: left;
  position: relative;
  padding: 1rem;
  border: 2px solid rgba(255, 209, 103, 0.3); /* Yellow border like flag menu */
  border-radius: 8px;
  background: #073A4B; /* Dark petrol like flag menu */
  color: #F6F2F2; /* Light text like flag menu */
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.3s ease;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mix-genre-dropdown button:hover {
  border-color: rgba(255, 209, 103, 0.5); /* Brighter yellow border on hover */
  color: #FFD167; /* Yellow text on hover */
}

.mix-genre-dropdown button:focus {
  outline: none;
  border-color: #FFD167; /* Full yellow border when focused */
  box-shadow: 0 0 10px rgba(255, 209, 103, 0.3);
}

.mix-dropdown-content {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #073A4B; /* Dark petrol like flag menu */
  border: 2px solid rgba(255, 209, 103, 0.3); /* Yellow border like flag menu */
  border-radius: 8px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); /* Enhanced shadow like flag menu */
  z-index: 1000;
  margin-top: 5px;
  min-width: 200px; /* Better container sizing */
}

.mix-dropdown-content.active {
  display: block;
}

.mix-genre-list {
  max-height: 350px; /* Increased height for better fit */
  overflow-y: auto;
  padding: 8px; /* More consistent padding */
}

.mix-genre-list label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 15px; /* Consistent with flag menu */
  cursor: pointer;
  font-size: 14px;
  color: #F6F2F2; /* Light text like flag menu */
  transition: background-color 0.2s ease;
  border-bottom: 1px solid rgba(255, 209, 103, 0.1); /* Subtle separator */
}

.mix-genre-list label:hover {
  background: rgba(255, 209, 103, 0.1); /* Yellow hover like flag menu */
  color: #FFD167; /* Yellow text on hover like flag menu */
  border-radius: 4px;
}

.mix-genre-list label:last-child {
  border-bottom: none; /* Remove border from last item */
}

.mix-genre-list input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: #FFD167; /* Yellow checkbox color to match theme */
  cursor: pointer;
  border-radius: 3px;
  transition: all 0.2s ease;
}

/* Enhanced checkbox styling for better visibility */
.mix-genre-list input[type="checkbox"]:hover {
  transform: scale(1.1);
}

.mix-genre-list input[type="checkbox"]:checked {
  background-color: #FFD167;
  border-color: #FFD167;
}

/* Notification System */
.notification-container {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
}

.notification {
  background: rgba(7, 58, 75, 0.95);
  border: 2px solid #FFD167;
  border-radius: 12px;
  padding: 16px 20px;
  color: #F6F2F2;
  font-size: 14px;
  font-weight: 500;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
  transform: translateX(400px);
  transition: all 0.3s ease;
  pointer-events: all;
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: 350px;
}

.notification.show {
  transform: translateX(0);
}

.notification.error {
  border-color: #ff4757;
  background: rgba(255, 71, 87, 0.15);
}

.notification.success {
  border-color: #06D7A0;
  background: rgba(6, 215, 160, 0.15);
}

.notification.warning {
  border-color: #FFD167;
  background: rgba(255, 209, 103, 0.15);
}

.notification-icon {
  font-size: 20px;
}

.notification-close {
  margin-left: auto;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.2s;
  font-size: 18px;
  line-height: 1;
}

.notification-close:hover {
  opacity: 1;
}

@media (max-width: 768px) {
  .notification-container {
    left: 10px;
    right: 10px;
    top: 10px;
  }
  
  .notification {
    max-width: none;
  }
}

/* Modern Bottom Sheet Share Modal */
.universal-share-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  justify-content: center;
  align-items: flex-end;
  z-index: 10000;
  opacity: 0;
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  backdrop-filter: blur(8px);
}

.universal-share-modal.active {
  opacity: 1;
}

.share-bottom-sheet {
  background: linear-gradient(145deg, #073A4B 0%, #0A4B5E 100%);
  border-radius: 24px 24px 0 0;
  padding: 20px 24px 32px;
  width: 100%;
  max-width: 480px;
  max-height: 80vh;
  overflow-y: auto;
  box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: none;
  transform: translateY(100%);
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.universal-share-modal.active .share-bottom-sheet {
  transform: translateY(0);
}

.share-drag-handle {
  width: 40px;
  height: 4px;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 2px;
  margin: 0 auto 24px;
  cursor: grab;
}

.share-mix-preview {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.share-mix-thumbnail {
  width: 56px;
  height: 56px;
  background: linear-gradient(135deg, #FFD167 0%, #F6C453 100%);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(255, 209, 103, 0.2);
  flex-shrink: 0;
}

.share-mix-icon {
  font-size: 24px;
  filter: grayscale(1) brightness(0.3);
}

.share-mix-info {
  flex: 1;
  min-width: 0;
}

.share-mix-title {
  margin: 0 0 4px 0;
  color: #F6F2F2;
  font-size: 1.1rem;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.share-mix-creator {
  margin: 0 0 8px 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.9rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.share-mix-stats {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.share-mix-stats span {
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.85rem;
  white-space: nowrap;
}

.share-primary-action {
  margin-bottom: 32px;
}

.share-copy-btn {
  width: 100%;
  background: linear-gradient(135deg, #FFD167 0%, #F6C453 100%);
  color: #073A4B;
  border: none;
  border-radius: 16px;
  padding: 18px 24px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-shadow: 0 4px 16px rgba(255, 209, 103, 0.3);
  position: relative;
  overflow: hidden;
}

.share-copy-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.5s ease;
}

.share-copy-btn:hover::before {
  left: 100%;
}

.share-copy-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(255, 209, 103, 0.4);
}

.share-copy-btn:active {
  transform: translateY(0);
}

.share-copy-icon {
  font-size: 20px;
}

.share-copy-text {
  font-size: 1rem;
  font-weight: 600;
}

.share-copy-subtitle {
  font-size: 0.85rem;
  opacity: 0.8;
  font-weight: 400;
}

.share-social-section {
  margin-bottom: 24px;
}

.share-social-title {
  margin: 0 0 16px 0;
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.9rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.share-social-scroll {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding: 4px 0 8px;
  /* Hidden scrollbars handled by universal scrollbar rules */
}

.share-social-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 12px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  cursor: pointer;
  transition: all 0.3s ease;
  color: #F6F2F2;
  font-size: 0.8rem;
  font-weight: 500;
  min-width: 72px;
  flex-shrink: 0;
}

.share-social-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.share-social-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.1);
}

.share-social-icon img {
  width: 18px;
  height: 18px;
  filter: invert(1);
  opacity: 0.9;
}

/* Platform-specific hover effects */
.share-social-twitter:hover .share-social-icon {
  background: #1DA1F2;
}

.share-social-facebook:hover .share-social-icon {
  background: #1877F2;
}

.share-social-instagram:hover .share-social-icon {
  background: linear-gradient(45deg, #F58529, #DD2A7B, #8134AF);
}

.share-social-tiktok:hover .share-social-icon {
  background: #FF0050;
}

.share-social-reddit:hover .share-social-icon {
  background: #FF4500;
}

.share-close-btn {
  width: 100%;
  background: rgba(255, 255, 255, 0.08);
  color: #F6F2F2;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 12px;
  padding: 16px;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s ease;
}

.share-close-btn:hover {
  background: rgba(255, 255, 255, 0.12);
}

/* Desktop responsive */
@media (min-width: 768px) {
  .universal-share-modal {
    align-items: center;
  }
  
  .share-bottom-sheet {
    border-radius: 24px;
    max-width: 420px;
    max-height: 600px;
    transform: scale(0.9);
  }
  
  .universal-share-modal.active .share-bottom-sheet {
    transform: scale(1);
  }
}

/* Mobile optimizations */
/* Additional mobile fixes for button alignment on very small screens */
@media (max-width: 480px) {
  .modal-stat-btn {
    width: 65px;
    height: 30px;
    padding: 4px 6px;
    font-size: 10px;
    gap: 3px;
  }
  
  .modal-stat-btn .btn-icon {
    font-size: 12px;
  }
  
  .mix-card-actions {
    gap: 8px;
  }
  
  .share-bottom-sheet {
    padding: 16px 20px 24px;
    border-radius: 20px 20px 0 0;
  }
  
  .share-mix-preview {
    padding: 12px;
    gap: 12px;
  }
  
  .share-mix-thumbnail {
    width: 48px;
    height: 48px;
  }
  
  .share-mix-icon {
    font-size: 20px;
  }
  
  .share-copy-btn {
    padding: 16px 20px;
    border-radius: 14px;
  }
  
  .share-social-btn {
    padding: 12px 8px;
    min-width: 64px;
  }
  
  .share-social-icon {
    width: 28px;
    height: 28px;
  }
  
  .share-social-icon img {
    width: 16px;
    height: 16px;
  }
}

/* Mix Gallery Styles */
.gallery-hero {
  background: linear-gradient(135deg, #073A4B 0%, #0C5F7A 100%);
  padding: 60px 20px;
  text-align: center;
  color: #F6F2F2;
}

.gallery-hero h1 {
  font-size: 3rem;
  margin-bottom: 20px;
  font-weight: 700;
}

.gallery-hero p {
  font-size: 1.2rem;
  margin-bottom: 30px;
  opacity: 0.9;
}

.gallery-nav {
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
}

.nav-button {
  background: #FFD167;
  color: #073A4B;
  padding: 12px 24px;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
  cursor: pointer;
}

.nav-button:hover {
  background: #06D7A0;
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.gallery-main {
  max-width: 1400px;
  margin: 0 auto;
  padding: 40px 20px;
}

/* ==================== GALLERY LAYOUT - CLEAN IMPLEMENTATION ==================== */

/* Main gallery controls container - no extra padding, let parent handle it */
.mix-gallery .gallery-controls {
  margin: 0 0 30px 0;
}

/* Row 1: Search and dropdown side by side */
.mix-gallery .search-filters {
  display: flex;
  gap: 15px;
  margin-bottom: 15px;
  align-items: center;
}

.mix-gallery .gallery-search {
  flex: 1;
  padding: 12px 16px;
  border: 2px solid rgba(255, 209, 103, 0.3);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.1);
  color: #F6F2F2;
  font-size: 14px;
  min-width: 0;
}

.mix-gallery .gallery-search::placeholder {
  color: rgba(246, 242, 242, 0.6);
}

.mix-gallery .gallery-sort {
  width: 200px;
  padding: 12px 16px;
  border: 2px solid rgba(255, 209, 103, 0.3);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.1);
  color: #F6F2F2;
  font-size: 14px;
  flex-shrink: 0;
  cursor: pointer;
}

/* Row 2: Checkbox and stats */
.mix-gallery .gallery-bottom-row {
  display: flex;
  gap: 20px;
  align-items: center;
}

.mix-gallery .gallery-stats {
  color: #FFD167;
  font-weight: 600;
  font-size: 14px;
}

/* Mobile responsive */
@media (max-width: 768px) {
  .mix-gallery .search-filters {
    flex-direction: column;
    gap: 15px;
  }
  
  .mix-gallery .gallery-search,
  .mix-gallery .gallery-sort {
    width: 100%;
    min-width: auto;
    max-width: none;
    box-sizing: border-box;
  }
  
  .mix-gallery .gallery-bottom-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
  }
}


.gallery-sort option {
  background: #073A4B !important; /* Dark petrol background */
  color: #F6F2F2 !important; /* Light text */
  padding: 8px 12px;
  font-size: 14px;
  border: none;
}

.gallery-stats {
  color: #FFD167;
  font-weight: 600;
}

.mix-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
  gap: 25px;
  margin-bottom: 40px;
}

.mix-card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 209, 103, 0.2);
  border-radius: 15px;
  padding: 20px;
  transition: all 0.3s ease;
  cursor: pointer;
}

.mix-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 25px rgba(255, 209, 103, 0.2);
  border-color: #FFD167;
}

.mix-card-header {
  margin-bottom: 15px;
}

.mix-name {
  color: #FFD167;
  font-size: 1.3rem;
  margin-bottom: 5px;
  font-weight: 600;
}

.mix-creator {
  color: #06D7A0;
  font-size: 0.9rem;
  opacity: 0.8;
}

.official-badge {
  background: linear-gradient(135deg, #FFD167, #F4A261);
  color: #073A4B;
  font-size: 0.75rem;
  font-weight: bold;
  padding: 4px 8px;
  border-radius: 12px;
  display: inline-block;
  margin-top: 5px;
  box-shadow: 0 2px 4px rgba(255, 209, 103, 0.3);
}

/* Official filter checkbox styling */
.filter-checkbox {
  display: flex;
  align-items: center;
  margin-left: 0;
}

.checkbox-label {
  display: flex;
  align-items: center;
  cursor: pointer;
  color: #E8F4F8;
  font-size: 14px;
  user-select: none;
}

.filter-checkbox-input {
  appearance: none;
  width: 18px;
  height: 18px;
  border: 2px solid #FFD167;
  border-radius: 4px;
  margin-right: 8px;
  position: relative;
  cursor: pointer;
  background: transparent;
  transition: all 0.3s ease;
}

.filter-checkbox-input:checked {
  background: #FFD167;
  border-color: #FFD167;
}

.filter-checkbox-input:checked::after {
  content: '✓';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #073A4B;
  font-weight: bold;
  font-size: 12px;
}

.checkbox-text {
  color: #E8F4F8;
  transition: color 0.3s ease;
}

.checkbox-label:hover .checkbox-text {
  color: #FFD167;
}


/* Enhanced track display in mix modal */
.track-title-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.track-info {
  font-weight: bold;
  color: #FFD167;
  font-size: 14px;
}

.track-artist {
  color: #06D7A0;
  font-size: 12px;
  opacity: 0.9;
}

.track-duration {
  color: #B0C4CE;
  font-size: 11px;
  opacity: 0.8;
}

.track-main-info {
  display: flex;
  flex-direction: column;
  gap: 5px;
  flex: 1;
}

.mix-description {
  color: #F6F2F2;
  line-height: 1.5;
  margin-bottom: 15px;
  opacity: 0.9;
}

.mix-card-stats {
  display: flex;
  gap: 15px;
  margin-bottom: 15px;
  font-size: 0.9rem;
  flex-wrap: wrap;
}

.mix-card-stats .stat {
  color: #F6F2F2;
  opacity: 0.8;
}

.mix-card-stats .difficulty {
  font-size: 1.1rem;
}

.mix-card-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.action-btn {
  background: rgba(255, 209, 103, 0.2);
  border: 1px solid #FFD167;
  color: #FFD167;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 0.85rem;
  cursor: pointer;
  transition: all 0.2s ease;
}

.action-btn:hover {
  background: #FFD167;
  color: #073A4B;
  transform: translateY(-1px);
}

.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-top: 40px;
}

.page-btn {
  background: #FFD167;
  color: #073A4B;
  border: none;
  padding: 10px 20px;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.3s ease;
}

.page-btn:hover:not(:disabled) {
  background: #06D7A0;
  transform: translateY(-2px);
}

.page-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.loading {
  text-align: center;
  padding: 60px 20px;
  color: #F6F2F2;
}

.loading-spinner {
  width: 40px;
  height: 40px;
  border: 3px solid rgba(255, 209, 103, 0.3);
  border-top: 3px solid #FFD167;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin: 0 auto 20px;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.empty-state {
  text-align: center;
  padding: 80px 20px;
  color: #F6F2F2;
}

.empty-icon {
  font-size: 4rem;
  margin-bottom: 20px;
}

.empty-state h3 {
  color: #FFD167;
  margin-bottom: 15px;
  font-size: 1.5rem;
}

.cta-button {
  background: #06D7A0;
  color: #073A4B;
  border: none;
  padding: 15px 30px;
  border-radius: 10px;
  font-weight: 600;
  cursor: pointer;
  font-size: 1rem;
  margin-top: 20px;
  transition: all 0.3s ease;
}

.cta-button:hover {
  background: #FFD167;
  transform: translateY(-2px);
}

/* Mix Modal */
.mix-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  z-index: 10000;
  /* Default hidden state */
  display: none;
}

/* When modal is shown via JavaScript */
.mix-modal[style*="display: flex"] {
  display: flex !important;
  justify-content: center;
  align-items: center;
  opacity: 0;
  animation: fadeIn 0.3s ease forwards;
}

.mix-modal.show {
  opacity: 1;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.mix-modal-content {
  background: #073A4B;
  border: 2px solid #FFD167;
  border-radius: 15px;
  max-width: 800px;
  width: 90%;
  max-height: 90%;
  overflow-y: auto;
  transform: scale(0.8) translateY(20px);
  transition: transform 0.3s ease;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

.mix-modal.show .mix-modal-content {
  transform: scale(1) translateY(0);
}

.mix-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 25px;
  border-bottom: 1px solid rgba(255, 209, 103, 0.3);
}

.mix-modal-header h2 {
  color: #FFD167;
  margin: 0;
  font-size: 1.5rem;
}

.modal-close {
  background: none;
  border: none;
  color: #F6F2F2;
  font-size: 2rem;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.2s;
}

.modal-close:hover {
  opacity: 1;
}

.mix-modal-body {
  padding: 25px;
}

.mix-info-grid {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 25px;
  margin-bottom: 30px;
}

.mix-stats {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mix-stats .stat {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #F6F2F2;
  font-size: 1rem;
}

.stat-icon {
  font-size: 1.2rem;
}

.mix-description {
  color: #F6F2F2;
  line-height: 1.6;
  opacity: 0.9;
}

.mix-tracks {
  margin-top: 30px;
}

.mix-tracks h3 {
  color: #FFD167;
  font-size: 1.2rem;
  margin-bottom: 15px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255, 209, 103, 0.3);
}

.tracks-list {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin-bottom: 25px;
}

/* Modal Song Item - Based on mix-builder.html song styling */
.modal-song-item {
  background: rgba(255, 255, 255, 0.08); /* Dark semi-transparent like mix-builder */
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 10px;
  padding: 15px;
  transition: all 0.3s ease;
  cursor: pointer;
  position: relative;
}

.modal-song-item:hover {
  border-color: rgba(255, 209, 103, 0.5);
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(255, 209, 103, 0.3);
  background: rgba(255, 255, 255, 0.12);
}

.modal-song-item-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 8px;
}

.modal-song-main-info {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  flex: 1;
}

.modal-song-track-number {
  background: #073A4B;
  color: #FFD167;
  font-weight: bold;
  font-size: 12px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 2px solid #FFD167;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.modal-song-content {
  flex: 1;
}

.modal-song-title {
  color: #FFD167; /* Golden color like mix-builder */
  margin: 0 0 4px 0;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.2;
}

.modal-song-artist {
  color: rgba(255, 255, 255, 0.8); /* Light text like mix-builder */
  margin: 0 0 8px 0;
  font-size: 12px;
  font-style: normal;
}

.modal-song-item-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.8);
}

.modal-song-meta-left {
  display: flex;
  align-items: center;
  gap: 8px;
}

.modal-song-duration {
  display: flex;
  align-items: center;
  gap: 4px;
}

.modal-song-program {
  position: absolute;
  bottom: 8px;
  right: 8px;
  background: #073A4B;
  color: #FFD167;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: bold;
  border: 2px solid #FFD167;
  z-index: 5;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.modal-song-muscle-group {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  flex-shrink: 0;
}

.modal-muscle-group-text {
  font-size: 12px;
  color: #FFD167;
  text-transform: capitalize;
  font-weight: 500;
}

.modal-muscle-group-difficulty {
  font-size: 12px;
  line-height: 1;
}

/* Add glow effects like mix-builder */
.modal-muscle-group-difficulty.glow-low {
  text-shadow: 
    0 0 4px rgba(255, 140, 0, 0.6),
    0 0 8px rgba(255, 140, 0, 0.3);
}

.modal-muscle-group-difficulty.glow-medium {
  text-shadow: 
    0 0 6px rgba(255, 140, 0, 0.8),
    0 0 12px rgba(255, 140, 0, 0.4);
}

.modal-muscle-group-difficulty.glow-high {
  text-shadow: 
    0 0 8px rgba(255, 69, 0, 1.0),
    0 0 16px rgba(255, 69, 0, 0.6),
    0 0 24px rgba(255, 69, 0, 0.3);
  animation: flame-glow-pulse 2s ease-in-out infinite alternate;
}

.modal-song-links {
  display: inline-flex;
  gap: 8px;
  align-items: center;
}

.modal-song-links .logo-icon {
  width: 16px;
  height: 16px;
  transition: transform 0.2s ease;
}

.modal-song-links .logo-icon:hover {
  transform: scale(1.1);
}

/* Legacy track item styles (kept for compatibility) */
.track-item {
  display: grid;
  grid-template-columns: 40px 100px 1fr 80px;
  gap: 15px;
  align-items: center;
  padding: 12px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 8px;
  color: #F6F2F2;
  font-size: 0.9rem;
}

.track-position {
  color: #FFD167;
  font-weight: 600;
  text-align: center;
}

.track-muscle {
  color: #06D7A0;
  text-transform: capitalize;
}

.track-program {
  color: #FFD167;
  font-weight: 600;
  text-align: center;
  background: rgba(255, 209, 103, 0.2);
  padding: 4px 8px;
  border-radius: 4px;
}

.mix-actions {
  display: flex;
  gap: 15px;
  justify-content: center;
  flex-wrap: wrap;
}

.mix-actions .action-btn {
  padding: 12px 20px;
  font-size: 1rem;
}

@media (max-width: 768px) {
  .gallery-hero h1 {
    font-size: 2rem;
  }
  
  /* Gallery controls already handled by previous mobile media query */
  
  .mix-gallery-grid {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 0 10px;
  }
  
  .mix-card {
    padding: 15px;
  }
  
  .mix-card-actions {
    justify-content: center;
    gap: 10px;
    margin-top: 12px;
  }
  
  .mix-card-actions .modal-stat-btn {
    min-width: 70px;
    flex: 0 1 auto;
  }
  
  .mix-info-grid {
    grid-template-columns: 1fr;
  }
  
  .track-item {
    grid-template-columns: 30px 80px 1fr 60px;
    gap: 8px;
    font-size: 0.8rem;
  }
}

/* Mix Builder Modal Styles */
.mix-builder-notice {
  text-align: center;
  padding: 20px;
}

.notice-icon {
  font-size: 4rem;
  margin-bottom: 20px;
}

.mix-builder-notice h3 {
  color: #FFD167;
  margin-bottom: 15px;
  font-size: 1.5rem;
}

.mix-builder-notice p {
  color: #F6F2F2;
  margin-bottom: 30px;
  opacity: 0.9;
  line-height: 1.6;
}

.builder-features {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 15px;
  margin-bottom: 30px;
}

.feature {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 8px;
  color: #F6F2F2;
}

.feature-icon {
  font-size: 1.2rem;
}

.builder-actions {
  display: flex;
  gap: 15px;
  justify-content: center;
  flex-wrap: wrap;
}

.nav-button.secondary {
  background: transparent;
  border: 2px solid #FFD167;
  color: #FFD167;
}

.nav-button.secondary:hover {
  background: #FFD167;
  color: #073A4B;
}

@media (max-width: 768px) {
  .builder-features {
    grid-template-columns: 1fr;
  }
  
  .builder-actions {
    flex-direction: column;
  }
}

/* Load More Button for Mix Builder */
.load-more-btn {
  width: 100%;
  padding: 15px 20px;
  background: #FFD167;
  color: #073A4B;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  margin-top: 20px;
  font-size: 14px;
}

.load-more-btn:hover {
  background: #06D7A0;
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

/* Responsive Label Classes removed - using JavaScript-based approach instead 
   since HTML <option> elements don't support HTML content */

/* ==================== ENHANCED SHARE MODAL ==================== */

.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(7, 58, 75, 0.8);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 2000;
    animation: fadeIn 0.3s ease;
}

.modal-overlay.active {
    display: flex;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.modal-content {
    background: linear-gradient(145deg, #073A4B, #0A4A5A);
    border: 2px solid rgba(255, 209, 103, 0.3);
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
    max-width: 90vw;
    max-height: 90vh;
    overflow-y: auto;
    animation: slideIn 0.3s ease;
    position: relative;
    /* Modern scrollbar styling - now handled by universal scrollbar rules */
}

.share-modal-content {
    width: 600px;
    max-width: 90vw;
}

@keyframes slideIn {
    from { 
        opacity: 0;
        transform: translateY(-50px) scale(0.9);
    }
    to { 
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.modal-header {
    padding: 24px 24px 16px;
    border-bottom: 1px solid rgba(255, 209, 103, 0.2);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.modal-header h2 {
    color: #FFD167;
    font-size: 1.5rem;
    font-weight: 600;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.modal-close {
    background: none;
    border: none;
    color: #F6F2F2;
    font-size: 2rem;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 8px;
    transition: all 0.2s ease;
    line-height: 1;
}

.modal-close:hover {
    background: rgba(255, 209, 103, 0.1);
    color: #FFD167;
    transform: scale(1.1);
}

.modal-body {
    padding: 24px;
}

.modal-footer {
    padding: 16px 24px 24px;
    border-top: 1px solid rgba(255, 209, 103, 0.2);
    display: flex;
    gap: 12px;
    justify-content: flex-end;
}

/* Form Styling */
.form-group {
    margin-bottom: 24px;
}

.form-group label {
    display: block;
    color: #F6F2F2;
    font-weight: 500;
    margin-bottom: 8px;
    font-size: 0.95rem;
}

.form-input, .form-textarea {
    width: 100%;
    padding: 12px 16px;
    background: rgba(246, 242, 242, 0.1);
    border: 2px solid rgba(255, 209, 103, 0.2);
    border-radius: 10px;
    color: #F6F2F2;
    font-size: 1rem;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

.form-input:focus, .form-textarea:focus {
    outline: none;
    border-color: #FFD167;
    background: rgba(246, 242, 242, 0.15);
    box-shadow: 0 0 20px rgba(255, 209, 103, 0.2);
}

.form-input::placeholder, .form-textarea::placeholder {
    color: rgba(246, 242, 242, 0.6);
}

.form-textarea {
    resize: vertical;
    min-height: 80px;
    font-family: inherit;
}

/* Input Feedback */
.input-feedback {
    margin-top: 6px;
    font-size: 0.85rem;
    min-height: 20px;
    transition: all 0.3s ease;
}

.input-feedback.success {
    color: #06D7A0;
}

.input-feedback.warning {
    color: #FFD167;
}

.input-feedback.error {
    color: #FF6B6B;
}

.input-feedback.info {
    color: #87CEEB;
}

/* Section Styling */
.mix-details-section, .mix-preview-section, .sharing-options-section {
    margin-bottom: 32px;
    padding: 20px;
    background: rgba(246, 242, 242, 0.05);
    border-radius: 15px;
    border: 1px solid rgba(255, 209, 103, 0.1);
}

.mix-details-section h3, .mix-preview-section h3, .sharing-options-section h3 {
    color: #FFD167;
    font-size: 1.2rem;
    font-weight: 600;
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Mix Preview */
.mix-stats {
    display: flex;
    gap: 20px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.stat-item {
    color: #F6F2F2;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    background: rgba(255, 209, 103, 0.1);
    border-radius: 8px;
}

.songs-preview {
    max-height: 200px;
    overflow-y: auto;
    border-radius: 8px;
    /* Modern scrollbar styling - now handled by universal scrollbar rules */
}

.preview-song-item {
    padding: 8px 12px;
    background: rgba(246, 242, 242, 0.05);
    border-bottom: 1px solid rgba(255, 209, 103, 0.1);
    color: #F6F2F2;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 8px;
}

.preview-song-item:last-child {
    border-bottom: none;
}

/* Share Options */
.share-option {
    margin-bottom: 24px;
}

.share-option label {
    color: #FFD167;
    font-weight: 500;
    margin-bottom: 8px;
    display: block;
}

.copy-container {
    display: flex;
    gap: 8px;
    align-items: stretch;
    justify-content: center;
}

/* Copy options container */
.copy-options {
    display: flex;
    gap: 15px;
    justify-content: center;
    margin-top: 15px;
}

.copy-btn-primary {
    background: linear-gradient(135deg, #06D7A0, #04B087);
    border: none;
    color: white;
    padding: 12px 20px;
    border-radius: 8px;
    font-weight: bold;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(6, 215, 160, 0.3);
}

.copy-btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(6, 215, 160, 0.4);
    background: linear-gradient(135deg, #04B087, #038A6D);
}

.copy-btn-secondary {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: #F6F2F2;
    padding: 12px 20px;
    border-radius: 8px;
    font-weight: bold;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
    backdrop-filter: blur(10px);
}

.copy-btn-secondary:hover {
    transform: translateY(-2px);
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.5);
}

.copy-input {
    flex: 1;
    font-family: 'Courier New', monospace;
    font-size: 0.9rem;
    background: rgba(7, 58, 75, 0.3);
}

.copy-btn {
    background: linear-gradient(135deg, #FFD167, #F6C453);
    color: #073A4B;
    border: none;
    padding: 12px 16px;
    border-radius: 10px;
    cursor: pointer;
    font-weight: 500;
    font-size: 0.9rem;
    transition: all 0.3s ease;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 4px;
}

.copy-btn:hover {
    background: linear-gradient(135deg, #F6C453, #E6B547);
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(255, 209, 103, 0.4);
}

.copy-btn:active {
    transform: translateY(0);
}

.copy-btn.copied {
    background: linear-gradient(135deg, #06D7A0, #05C194);
    color: #073A4B;
}

.option-description {
    color: rgba(246, 242, 242, 0.8);
    font-size: 0.85rem;
    margin-top: 6px;
    margin-bottom: 0;
}

/* Modal Buttons */
.btn {
    padding: 12px 24px;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    font-weight: 500;
    font-size: 1rem;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 8px;
}

.btn-primary {
    background: linear-gradient(135deg, #FFD167, #F6C453);
    color: #073A4B;
}

.btn-primary:hover {
    background: linear-gradient(135deg, #F6C453, #E6B547);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(255, 209, 103, 0.4);
}

.btn-secondary {
    background: rgba(246, 242, 242, 0.1);
    color: #F6F2F2;
    border: 1px solid rgba(255, 209, 103, 0.3);
}

.btn-secondary:hover {
    background: rgba(246, 242, 242, 0.2);
    border-color: rgba(255, 209, 103, 0.5);
}

.btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none !important;
}

/* Responsive Design */
@media (max-width: 768px) {
    .share-modal-content {
        width: 95vw;
        margin: 20px;
    }
    
    .modal-header {
        padding: 20px 16px 12px;
    }
    
    .modal-body {
        padding: 20px 16px;
    }
    
    .modal-footer {
        padding: 12px 16px 20px;
        flex-direction: column;
    }
    
    .mix-stats {
        gap: 12px;
    }
    
    .stat-item {
        font-size: 0.85rem;
        padding: 4px 8px;
    }
    
    .copy-container {
        flex-direction: column;
    }
    
    .copy-btn {
        align-self: stretch;
        justify-content: center;
    }
}

/* Loading States */
.btn.loading {
    position: relative;
    color: transparent;
}

.btn.loading::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    top: 50%;
    left: 50%;
    margin-left: -10px;
    margin-top: -10px;
    border: 2px solid transparent;
    border-top-color: currentColor;
    border-radius: 50%;
    animation: spin 1s ease infinite;
}

.btn-primary.loading::after {
    border-top-color: #073A4B;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* =====================================================
   SKELETON LOADING ANIMATIONS
   ===================================================== */

/* Base skeleton styles */
.skeleton-card {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 12px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    animation: skeleton-pulse 1.5s ease-in-out infinite;
}

.skeleton-loading {
    pointer-events: none;
    user-select: none;
}

/* Skeleton line elements */
.skeleton-line {
    background: linear-gradient(90deg, 
        rgba(255, 255, 255, 0.1) 25%, 
        rgba(255, 255, 255, 0.2) 50%, 
        rgba(255, 255, 255, 0.1) 75%
    );
    background-size: 200% 100%;
    border-radius: 4px;
    height: 16px;
    margin-bottom: 8px;
    animation: skeleton-shimmer 2s infinite;
}

/* Specific skeleton line types */
.skeleton-title {
    height: 20px;
    width: 75%;
    margin-bottom: 12px;
}

.skeleton-artist {
    height: 16px;
    width: 60%;
    margin-bottom: 16px;
}

.skeleton-program {
    height: 14px;
    width: 40%;
}

.skeleton-duration {
    height: 14px;
    width: 25%;
}

.skeleton-genre {
    height: 14px;
    width: 85%;
}

.skeleton-song-info {
    height: 18px;
    width: 70%;
}

.skeleton-song-details {
    height: 14px;
    width: 50%;
}

/* Mix card skeleton elements */
.skeleton-mix-title {
    height: 24px;
    width: 80%;
    margin-bottom: 8px;
}

.skeleton-mix-subtitle {
    height: 16px;
    width: 60%;
    margin-bottom: 16px;
}

.skeleton-slot-title {
    height: 18px;
    width: 65%;
}

/* Button and badge skeletons */
.skeleton-btn {
    background: linear-gradient(90deg, 
        rgba(255, 209, 103, 0.2) 25%, 
        rgba(255, 209, 103, 0.3) 50%, 
        rgba(255, 209, 103, 0.2) 75%
    );
    background-size: 200% 100%;
    border-radius: 6px;
    height: 36px;
    margin: 4px;
    animation: skeleton-shimmer 2s infinite;
}

.skeleton-btn-primary {
    width: 100px;
}

.skeleton-btn-secondary {
    width: 80px;
}

.skeleton-badge {
    width: 60px;
    height: 24px;
    border-radius: 12px;
}

.skeleton-vote-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    margin: 0 4px;
    background: linear-gradient(90deg, 
        rgba(255, 255, 255, 0.1) 25%, 
        rgba(255, 255, 255, 0.2) 50%, 
        rgba(255, 255, 255, 0.1) 75%
    );
    background-size: 200% 100%;
    animation: skeleton-shimmer 2s infinite;
}

.skeleton-link-btn {
    width: 36px;
    height: 36px;
    border-radius: 6px;
    margin: 0 4px;
    background: linear-gradient(90deg, 
        rgba(6, 215, 160, 0.2) 25%, 
        rgba(6, 215, 160, 0.3) 50%, 
        rgba(6, 215, 160, 0.2) 75%
    );
    background-size: 200% 100%;
    animation: skeleton-shimmer 2s infinite;
}

/* Voting skeleton container */
.skeleton-voting {
    display: flex;
    align-items: center;
    margin-right: 12px;
}

/* Links skeleton container */
.skeleton-links {
    display: flex;
    align-items: center;
}

/* Stats skeleton */
.skeleton-stat {
    text-align: center;
    margin: 0 8px;
}

.skeleton-stat-number {
    width: 30px;
    height: 20px;
    margin: 0 auto 4px;
    background: linear-gradient(90deg, 
        rgba(255, 255, 255, 0.1) 25%, 
        rgba(255, 255, 255, 0.2) 50%, 
        rgba(255, 255, 255, 0.1) 75%
    );
    background-size: 200% 100%;
    border-radius: 4px;
    animation: skeleton-shimmer 2s infinite;
}

.skeleton-stat-label {
    width: 40px;
    height: 12px;
    margin: 0 auto;
    background: linear-gradient(90deg, 
        rgba(255, 255, 255, 0.1) 25%, 
        rgba(255, 255, 255, 0.2) 50%, 
        rgba(255, 255, 255, 0.1) 75%
    );
    background-size: 200% 100%;
    border-radius: 4px;
    animation: skeleton-shimmer 2s infinite;
}

/* Skeleton animations */
@keyframes skeleton-shimmer {
    0% {
        background-position: -200% 0;
    }
    100% {
        background-position: 200% 0;
    }
}

@keyframes skeleton-pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
}

/* Progressive loading animation */
.skeleton-card {
    transform: translateY(20px);
    opacity: 0;
    animation: skeleton-slide-in 0.6s ease forwards, skeleton-pulse 1.5s ease-in-out infinite 0.6s;
}

@keyframes skeleton-slide-in {
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

/* Responsive skeleton adjustments */
@media (max-width: 768px) {
    .skeleton-card {
        padding: 12px;
        margin-bottom: 8px;
    }
    
    .skeleton-title {
        width: 85%;
    }
    
    .skeleton-artist {
        width: 70%;
    }
    
    .skeleton-mix-title {
        width: 90%;
    }
    
    .skeleton-btn {
        height: 32px;
    }
    
    .skeleton-btn-primary {
        width: 80px;
    }
    
    .skeleton-btn-secondary {
        width: 60px;
    }
}

/* High contrast mode support */
@media (prefers-reduced-motion: reduce) {
    .skeleton-card,
    .skeleton-line,
    .skeleton-btn,
    .skeleton-vote-btn,
    .skeleton-link-btn,
    .skeleton-stat-number,
    .skeleton-stat-label {
        animation: skeleton-pulse 2s ease-in-out infinite;
    }
}

/* =====================================================
   ENHANCED SHARE MODAL STYLES
   ===================================================== */

/* Modal improvements */
.share-modal-content {
    max-width: 900px;
    width: 95vw;
    max-height: 90vh;
    overflow-y: auto;
}

/* Progress indicators */
.share-progress {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
    margin-bottom: 0;
    padding: 20px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.progress-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    opacity: 0.5;
    transition: opacity 0.3s ease;
    cursor: pointer;
}

.progress-step.active {
    opacity: 1;
}

.progress-step.completed {
    opacity: 0.8;
}

.progress-step:hover {
    opacity: 1;
}

.step-number {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    color: #F6F2F2;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 14px;
    transition: all 0.3s ease;
}

.progress-step.active .step-number {
    background: #FFD167;
    color: #073A4B;
}

.progress-step.completed .step-number {
    background: #06D7A0;
    color: #073A4B;
}

.step-label {
    font-size: 12px;
    color: #F6F2F2;
    text-align: center;
}

/* Step content */
.share-step {
    padding: 30px 0;
    animation: slideIn 0.3s ease;
}

.share-step.hidden {
    display: none;
}

.step-header {
    text-align: center;
    margin-bottom: 30px;
}

.step-header h2 {
    margin: 0 0 10px 0;
    color: #FFD167;
    font-size: 24px;
}

.step-header p {
    margin: 0;
    color: rgba(246, 242, 242, 0.8);
    font-size: 16px;
}

/* Form layout improvements */
.form-layout {
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: 40px;
    align-items: start;
}

.form-column {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Enhanced form groups */
.form-group {
    position: relative;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    color: #FFD167;
    font-weight: 500;
    font-size: 14px;
}

.form-input,
.form-textarea {
    width: 100%;
    padding: 12px 16px;
    border: 2px solid rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.05);
    color: #F6F2F2;
    font-size: 14px;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

.form-input:focus,
.form-textarea:focus {
    outline: none;
    border-color: #FFD167;
    background: rgba(255, 255, 255, 0.1);
}

.form-textarea {
    resize: vertical;
    min-height: 80px;
}

/* Input counters */
.input-counter {
    position: absolute;
    right: 8px;
    bottom: 8px;
    font-size: 12px;
    color: rgba(246, 242, 242, 0.6);
    background: rgba(7, 58, 75, 0.8);
    padding: 2px 6px;
    border-radius: 4px;
    pointer-events: none;
}

.input-feedback {
    margin-top: 8px;
    font-size: 12px;
    min-height: 16px;
}

.input-feedback.success {
    color: #06D7A0;
}

.input-feedback.error {
    color: #F04770;
}

/* Mix summary card */
.mix-summary-card {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 20px;
    position: sticky;
    top: 20px;
}

.mix-summary-card h3 {
    margin: 0 0 16px 0;
    color: #FFD167;
    font-size: 16px;
    text-align: center;
}

.summary-stats {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 16px;
}

.summary-stats .stat-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 6px;
}

.stat-icon {
    font-size: 16px;
}

.stat-value {
    color: #FFD167;
    font-weight: bold;
    min-width: 40px;
}

.stat-label {
    color: rgba(246, 242, 242, 0.8);
    font-size: 12px;
}

.summary-programs {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 12px;
    font-size: 12px;
    color: rgba(246, 242, 242, 0.7);
}

/* Preview card */
.mix-preview-card {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 24px;
    max-width: 600px;
    margin: 0 auto;
}

.preview-header {
    text-align: center;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.preview-header h3 {
    margin: 0 0 8px 0;
    color: #FFD167;
    font-size: 20px;
}

.preview-creator {
    margin: 0 0 12px 0;
    color: #06D7A0;
    font-size: 14px;
}

.preview-description {
    margin: 0;
    color: rgba(246, 242, 242, 0.8);
    font-size: 14px;
    font-style: italic;
}

.preview-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 20px;
}

.preview-stats .stat-item {
    text-align: center;
    padding: 12px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 8px;
}

.preview-songs {
    max-height: 200px;
    overflow-y: auto;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    padding: 12px;
    background: rgba(0, 0, 0, 0.2);
}

/* Sharing grid */
.sharing-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.share-section h3 {
    margin: 0 0 16px 0;
    color: #FFD167;
    font-size: 16px;
}

/* Quick share buttons */
.quick-share-buttons {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.share-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border: 2px solid rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.05);
    color: #F6F2F2;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
}

.share-btn:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.3);
    transform: translateY(-1px);
}

.share-btn-twitter:hover {
    border-color: #1DA1F2;
    background: rgba(29, 161, 242, 0.1);
}

.share-btn-facebook:hover {
    border-color: #4267B2;
    background: rgba(66, 103, 178, 0.1);
}

.share-btn-facebook .share-icon {
    color: #4267B2;
    font-weight: bold;
    font-family: 'Arial', sans-serif;
}

.share-btn-instagram:hover {
    border-color: #E4405F;
    background: rgba(228, 64, 95, 0.1);
}

.share-btn-tiktok:hover {
    border-color: #FF0050;
    background: rgba(255, 0, 80, 0.15);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(255, 0, 80, 0.3);
}

.share-btn-reddit:hover {
    border-color: #FF4500;
    background: rgba(255, 69, 0, 0.15);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(255, 69, 0, 0.3);
}

.share-btn-copy:hover {
    border-color: #06D7A0;
    background: rgba(6, 215, 160, 0.1);
}

.share-icon {
    font-size: 18px;
}

.share-icon-img {
    width: 18px;
    height: 18px;
    filter: brightness(0) invert(1); /* Make SVGs white */
}

/* Specific brand colors for social media icons */
.share-btn-twitter:hover .share-icon-img {
    filter: none;
    background: #1DA1F2;
    border-radius: 3px;
    padding: 2px;
}

.share-btn-facebook:hover .share-icon-img {
    filter: none;
    background: #4267B2;
    border-radius: 3px;
    padding: 2px;
}

.share-btn-instagram:hover .share-icon-img {
    filter: none;
    background: linear-gradient(45deg, #F58529, #DD2A7B, #8134AF, #515BD4);
    border-radius: 3px;
    padding: 2px;
}

.share-btn-tiktok:hover .share-icon-img {
    filter: brightness(1.2) contrast(1.1);
    background: rgba(0, 0, 0, 0.8);
    border-radius: 4px;
    padding: 3px;
    transition: all 0.2s ease;
}

.share-btn-reddit:hover .share-icon-img {
    filter: brightness(1.2) contrast(1.1);
    background: rgba(255, 69, 0, 0.9);
    border-radius: 4px;
    padding: 3px;
    transition: all 0.2s ease;
}

.share-label {
    font-weight: 500;
}

/* Share success message */
.share-success-message {
    margin-top: 20px;
    padding: 16px 20px;
    background: rgba(6, 215, 160, 0.1);
    border: 1px solid rgba(6, 215, 160, 0.3);
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 12px;
    animation: slideIn 0.3s ease;
}

.success-icon {
    font-size: 18px;
}

.success-text {
    color: #06D7A0;
    font-size: 14px;
}

/* Button improvements */
.modal-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 20px 30px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(0, 0, 0, 0.2);
}

.btn.hidden {
    display: none;
}

.btn-success {
    background: #06D7A0;
    color: #073A4B;
}

.btn-success:hover {
    background: #05C090;
}

/* Animations */
@keyframes slideIn {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Mobile responsiveness */
@media (max-width: 768px) {
    .share-modal-content {
        width: 95vw;
        max-height: 95vh;
        margin: 2.5vh auto;
    }
    
    .share-progress {
        gap: 20px;
        padding: 15px 0;
    }
    
    .step-number {
        width: 28px;
        height: 28px;
        font-size: 12px;
    }
    
    .step-label {
        font-size: 11px;
    }
    
    .form-layout {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    
    .mix-summary-card {
        position: static;
    }
    
    .sharing-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    
    .modal-footer {
        flex-wrap: wrap;
        gap: 8px;
    }
    
    .preview-stats {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}

/* =====================
   Universal Sharing Modal
   ===================== */

.universal-share-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    z-index: 10000;
    display: flex;
    justify-content: center;
    align-items: center;
    animation: fadeIn 0.3s ease;
}

.universal-share-modal-content {
    background: #073A4B;
    border: 2px solid #FFD167;
    border-radius: 12px;
    max-width: 500px;
    width: 90%;
    max-height: 90vh;
    overflow-y: auto;
    animation: scaleIn 0.3s ease;
}

.universal-share-modal-header {
    padding: 20px;
    border-bottom: 1px solid rgba(255, 209, 103, 0.3);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.universal-share-modal-header h3 {
    margin: 0;
    color: #FFD167;
    font-size: 1.3rem;
}

.universal-share-modal-close {
    background: none;
    border: none;
    color: #F6F2F2;
    font-size: 24px;
    cursor: pointer;
    padding: 0;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s ease;
}

.universal-share-modal-close:hover {
    color: #FFD167;
}

.universal-share-modal-body {
    padding: 20px;
}

/* Share Mix Preview Section */
.share-mix-preview {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 209, 103, 0.2);
    border-radius: 10px;
    padding: 15px;
    margin-bottom: 20px;
    text-align: center;
}

.share-mix-preview h4 {
    color: #FFD167;
    margin: 0 0 8px 0;
    font-size: 16px;
}

.share-mix-preview p {
    color: rgba(255, 255, 255, 0.8);
    margin: 0 0 10px 0;
    font-size: 14px;
}

.share-mix-stats {
    display: flex;
    justify-content: center;
    gap: 15px;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.7);
}

.share-mix-stats span {
    display: flex;
    align-items: center;
    gap: 4px;
}

.share-url-section {
    margin-bottom: 25px;
}

.share-url-section label {
    display: block;
    margin-bottom: 8px;
    color: #FFD167;
    font-weight: 500;
}

.share-url-container {
    display: flex;
    gap: 10px;
}

.share-url-input {
    flex: 1;
    padding: 10px 12px;
    border: 1px solid rgba(255, 209, 103, 0.3);
    border-radius: 6px;
    background: rgba(0, 0, 0, 0.2);
    color: #F6F2F2;
    font-size: 14px;
}

.copy-url-btn {
    padding: 10px 15px;
    background: linear-gradient(135deg, #FFD167 0%, #06D7A0 100%);
    border: none;
    border-radius: 6px;
    color: #073A4B;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    white-space: nowrap;
}

.copy-url-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(255, 209, 103, 0.3);
}

.social-share-section h4 {
    margin: 0 0 15px 0;
    color: #FFD167;
    font-size: 1.1rem;
}

.social-buttons-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 10px;
}

.social-btn {
    padding: 12px 15px;
    border: 1px solid rgba(255, 209, 103, 0.3);
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.2);
    color: #F6F2F2;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.social-btn:hover {
    background: rgba(255, 209, 103, 0.1);
    border-color: #FFD167;
    transform: translateY(-2px);
}

.social-btn.twitter-btn:hover {
    background: rgba(29, 161, 242, 0.2);
    border-color: #1DA1F2;
}

.social-btn.facebook-btn:hover {
    background: rgba(24, 119, 242, 0.2);
    border-color: #1877F2;
}

.social-btn.instagram-btn:hover {
    background: linear-gradient(45deg, #f09433 0%,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888 100%);
    background-size: 100%;
    border-color: #E1306C;
}

.social-btn.reddit-btn:hover {
    background: rgba(255, 69, 0, 0.2);
    border-color: #FF4500;
}

.social-btn.tiktok-btn:hover {
    background: rgba(255, 0, 80, 0.2);
    border-color: #FF0050;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes scaleIn {
    from { 
        opacity: 0;
        transform: scale(0.9);
    }
    to { 
        opacity: 1;
        transform: scale(1);
    }
}

/* Text Truncation and Read More Styling */
.mix-description.truncated {
    position: relative;
}

.read-more-link {
    color: #FFD167;
    cursor: pointer;
    font-weight: 500;
    text-decoration: none;
    transition: color 0.2s ease;
    display: inline-block;
    margin-left: 4px;
}

.read-more-link:hover {
    color: #06D7A0;
    text-decoration: underline;
}

.read-more-link:active {
    color: #FFD167;
    transform: scale(0.98);
}

/* Enhanced mix description styling */
.mix-description {
    line-height: 1.5;
    color: #F6F2F2;
    margin: 8px 0;
    font-size: 0.9rem;
}

.mix-card-body .mix-description {
    /* Ensure consistent max-height for cards */
    max-height: 7.5em; /* Approximately 5 lines */
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Mobile responsiveness for universal sharing modal */
@media (max-width: 600px) {
    .universal-share-modal-content {
        width: 95%;
        margin: 20px;
    }
    
    .social-buttons-grid {
        grid-template-columns: 1fr 1fr;
    }
    
    .share-url-container {
        flex-direction: column;
    }
    
    .copy-url-btn {
        align-self: stretch;
    }
}

/* Universal Sharing Modal Styles */
.universal-share-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
    backdrop-filter: blur(5px);
}

.universal-share-modal-content {
    background: linear-gradient(145deg, #073A4B 0%, #0A4B5E 100%);
    border-radius: 20px;
    padding: 30px;
    max-width: 500px;
    width: 90vw;
    max-height: 80vh;
    overflow-y: auto;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

.universal-share-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 25px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding-bottom: 15px;
}

.universal-share-modal-header h3 {
    margin: 0;
    color: #FFD167;
    font-size: 1.4rem;
    font-weight: 600;
}

.universal-share-modal-close {
    background: none;
    border: none;
    color: #F6F2F2;
    font-size: 24px;
    cursor: pointer;
    padding: 5px;
    line-height: 1;
    transition: color 0.3s ease;
}

.universal-share-modal-close:hover {
    color: #FFD167;
}

.share-url-section {
    margin-bottom: 25px;
}

.share-url-section label {
    display: block;
    margin-bottom: 10px;
    color: #F6F2F2;
    font-weight: 500;
}

.share-url-container {
    display: flex;
    gap: 10px;
    align-items: center;
}

.share-url-input {
    flex: 1;
    padding: 12px 15px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 10px;
    color: #F6F2F2;
    font-family: 'Roboto', sans-serif;
    font-size: 14px;
    outline: none;
    transition: border-color 0.3s ease;
}

.share-url-input:focus {
    border-color: #FFD167;
}

.copy-url-btn {
    background: linear-gradient(135deg, #FFD167 0%, #FFA726 100%);
    color: #073A4B;
    border: none;
    padding: 12px 18px;
    border-radius: 10px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.copy-url-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(255, 209, 103, 0.3);
}

.social-share-section h4 {
    margin: 0 0 15px 0;
    color: #F6F2F2;
    font-size: 1.1rem;
    font-weight: 500;
}

.social-buttons-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
    margin-top: 15px;
}

.social-btn {
    background: rgba(255, 255, 255, 0.1);
    color: #F6F2F2;
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 12px 16px;
    border-radius: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: 'Roboto', sans-serif;
    font-size: 14px;
    text-decoration: none;
    min-height: 44px;
    box-sizing: border-box;
}

.social-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

.social-btn.twitter-btn:hover {
    background: #1DA1F2;
    border-color: #1DA1F2;
    color: white;
}

.social-btn.facebook-btn:hover {
    background: #4267B2;
    border-color: #4267B2;
    color: white;
}

.social-btn.instagram-btn:hover {
    background: linear-gradient(45deg, #E4405F, #C13584, #833AB4);
    border-color: #E4405F;
    color: white;
}

.social-btn.reddit-btn:hover {
    background: #FF4500;
    border-color: #FF4500;
    color: white;
}

.social-btn.tiktok-btn:hover {
    background: #000000;
    border-color: #FF0050;
    color: white;
}

/* Mobile responsiveness for social buttons */
@media (max-width: 600px) {
    .social-buttons-grid {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }
    
    .social-btn {
        padding: 10px 12px;
        font-size: 13px;
        min-height: 40px;
    }
    
    .universal-share-modal-content {
        padding: 20px;
        margin: 10px;
    }
    
    .share-url-container {
        flex-direction: column;
        gap: 10px;
    }
    
    .copy-url-btn {
        width: 100%;
    }
}

@media (max-width: 400px) {
    .social-buttons-grid {
        grid-template-columns: 1fr;
    }
}

/* MixModal Share Bottom Sheet Styles */
.share-bottom-sheet {
    background: linear-gradient(145deg, #073A4B 0%, #0A4B5E 100%);
    border-radius: 20px 20px 0 0;
    padding: 25px;
    max-width: 600px;
    width: 100%;
    max-height: 80vh;
    overflow-y: auto;
    box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.3);
    position: relative;
}

.share-drag-handle {
    width: 40px;
    height: 4px;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 2px;
    margin: 0 auto 20px;
}

.share-mix-preview {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
    padding: 15px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 12px;
}

.share-mix-thumbnail {
    width: 50px;
    height: 50px;
    border-radius: 10px;
    background: linear-gradient(135deg, #FFD167 0%, #FFA726 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.share-mix-icon {
    font-size: 24px;
    color: #073A4B;
}

.share-mix-info h3 {
    margin: 0 0 5px 0;
    color: #FFD167;
    font-size: 1.2rem;
    font-weight: 600;
}

.share-mix-info p {
    margin: 0;
    color: rgba(246, 242, 242, 0.7);
    font-size: 0.9rem;
}

.share-url-section {
    margin-bottom: 25px;
}

.share-copy-btn {
    background: linear-gradient(135deg, #FFD167 0%, #FFA726 100%);
    color: #073A4B;
    border: none;
    padding: 12px 20px;
    border-radius: 10px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    width: 100%;
    margin-top: 10px;
}

.share-copy-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(255, 209, 103, 0.3);
}

.share-social-section h4 {
    margin: 0 0 15px 0;
    color: #F6F2F2;
    font-size: 1.1rem;
    font-weight: 500;
}

.share-social-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 12px;
    margin-top: 15px;
}

.share-social-btn {
    background: rgba(255, 255, 255, 0.1);
    color: #F6F2F2;
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 12px 8px;
    border-radius: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: 'Roboto', sans-serif;
    font-size: 13px;
    text-decoration: none;
    min-height: 70px;
    box-sizing: border-box;
}

.share-social-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

.share-social-icon {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.share-social-icon img {
    width: 100%;
    height: 100%;
    filter: brightness(0) invert(1); /* Make icons white */
    transition: filter 0.3s ease;
}

.share-social-btn.share-social-twitter:hover {
    background: #1DA1F2;
    border-color: #1DA1F2;
    color: white;
}

.share-social-btn.share-social-twitter:hover .share-social-icon img {
    filter: brightness(0) invert(1);
}

.share-social-btn.share-social-facebook:hover {
    background: #4267B2;
    border-color: #4267B2;
    color: white;
}

.share-social-btn.share-social-facebook:hover .share-social-icon img {
    filter: brightness(0) invert(1);
}

.share-social-btn.share-social-instagram:hover {
    background: linear-gradient(45deg, #E4405F, #C13584, #833AB4);
    border-color: #E4405F;
    color: white;
}

.share-social-btn.share-social-instagram:hover .share-social-icon img {
    filter: brightness(0) invert(1);
}

.share-social-btn.share-social-reddit:hover {
    background: #FF4500;
    border-color: #FF4500;
    color: white;
}

.share-social-btn.share-social-reddit:hover .share-social-icon img {
    filter: brightness(0) invert(1);
}

.share-social-btn.share-social-tiktok:hover {
    background: #000000;
    border-color: #FF0050;
    color: white;
}

.share-social-btn.share-social-tiktok:hover .share-social-icon img {
    filter: brightness(0) invert(1);
}

/* Mobile responsiveness for share social buttons */
@media (max-width: 600px) {
    .share-social-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
    
    .share-social-btn {
        padding: 10px 6px;
        font-size: 12px;
        min-height: 60px;
    }
    
    .share-social-icon {
        width: 20px;
        height: 20px;
    }
    
    .share-bottom-sheet {
        padding: 20px;
        margin: 0;
        border-radius: 15px 15px 0 0;
    }
}

@media (max-width: 400px) {
    .share-social-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .share-social-btn span {
        font-size: 11px;
    }
}

/* ==================== IPHONE LAYOUT OPTIMIZATIONS ==================== */

/* iPhone SE, 12 mini, 13 mini (375px width) */
@media (max-width: 375px) {
    /* Smaller program indicator for iPhone SE */
    .mix-song-program {
        padding: 2px 6px !important;
        font-size: 10px !important;
        border-width: 1px !important;
        bottom: 6px !important;
        right: 6px !important;
    }
    
    .mobile-song-program {
        padding: 4px 6px;
        font-size: 0.75rem;
        border-width: 1px;
    }
    
    /* Adjust mix song items for narrower screens */
    .mix-song-item {
        padding: 8px !important;
        margin-bottom: 8px !important;
    }
    
    /* Ensure flames are visible on mobile */
    .mix-song-item-info {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
    }
    
    .mix-song-flames {
        display: inline-block !important;
        visibility: visible !important;
        font-size: 11px !important;
        color: #FFD167 !important;
    }
    
    /* Workout structure adjustments */
    .workout-structure {
        padding: 8px !important;
    }
    
    .workout-slot {
        min-height: 60px !important;
        padding: 6px !important;
        font-size: 0.8rem !important;
    }
    
    /* Adjust text sizes for better fit */
    .mix-song-title {
        font-size: 0.85rem !important;
        line-height: 1.2 !important;
    }
    
    .mix-song-artist {
        font-size: 0.75rem !important;
    }
    
    /* Navigation adjustments */
    .nav-brand {
        font-size: 1.1rem !important;
    }
    
    /* Button adjustments */
    .btn {
        padding: 8px 12px !important;
        font-size: 0.85rem !important;
    }
    
    /* Mobile dropdown optimizations for iPhone SE */
    .filter-dropdown {
        font-size: 0.8rem !important;
        padding: 0.75rem !important;
        white-space: normal !important;
        height: auto !important;
        min-height: 44px !important;
        line-height: 1.2 !important;
    }
    
    .filter-dropdown option {
        font-size: 0.75rem !important;
        padding: 6px 8px !important;
        white-space: normal !important;
        word-wrap: break-word !important;
    }
    
    /* Enhanced mobile filter fixes for iPhone SE (Bug #4 & #5) */
    .mix-filter, .filters-toggle, #mix-clear-btn {
        min-height: 48px !important;
        font-size: 0.85rem !important;
        padding: 0.7rem !important;
        touch-action: manipulation !important;
        -webkit-tap-highlight-color: rgba(255, 209, 103, 0.3) !important;
    }
    
    .search-and-clear {
        gap: 6px !important;
    }
    
    .search-and-clear #mix-clear-btn {
        min-width: 60px !important;
        max-width: 60px !important;
        font-size: 0.8rem !important;
        padding: 0.6rem 0.4rem !important;
    }
    
    /* Improved mobile filter container (Bug #5) */
    .song-filters {
        margin-bottom: 12px !important;
        padding: 0 !important;
    }
    
    .filters-content {
        gap: 8px !important;
    }
    
    /* Ensure genre dropdown doesn't clip on tiny screens */
    .mix-genre-filter-container {
        overflow: visible !important;
    }
    
    .mix-dropdown-content {
        max-height: 180px !important;
        overflow-y: auto !important;
        z-index: 1000 !important;
        box-shadow: 0 4px 8px rgba(0,0,0,0.2) !important;
    }
}

/* iPhone 12, 13, 14 (390px width) */
@media (min-width: 376px) and (max-width: 390px) {
    .mix-song-program {
        padding: 3px 6px !important;
        font-size: 11px !important;
        bottom: 6px !important;
        right: 6px !important;
    }
    
    .mobile-song-program {
        padding: 5px 8px;
        font-size: 0.8rem;
    }
    
    .workout-slot {
        min-height: 65px !important;
        padding: 8px !important;
        font-size: 0.85rem !important;
    }
    
    .mix-song-title {
        font-size: 0.9rem !important;
        line-height: 1.3 !important;
    }
    
    /* Mobile dropdown optimizations for iPhone 12/13/14 */
    .filter-dropdown {
        font-size: 0.85rem !important;
        padding: 0.8rem !important;
    }
    
    .filter-dropdown option {
        font-size: 0.8rem !important;
    }
}

/* iPhone 14 Pro Max (414px width) */
@media (min-width: 391px) and (max-width: 414px) {
    .mix-song-program {
        padding: 3px 7px !important;
        font-size: 11px !important;
    }
    
    .mobile-song-program {
        padding: 5px 9px;
        font-size: 0.82rem;
    }
    
    .workout-slot {
        min-height: 70px !important;
        padding: 10px !important;
    }
    
    /* Mobile dropdown optimizations for iPhone 14 Pro Max */
    .filter-dropdown {
        font-size: 0.9rem !important;
        padding: 0.85rem !important;
    }
}

/* General iPhone portrait mode optimizations */
@media (max-width: 414px) and (orientation: portrait) {
    /* Prevent horizontal overflow */
    .container, .main-content {
        overflow-x: hidden !important;
    }
    
    /* Adjust spacing for better content fit */
    .mix-builder-container {
        padding: 10px 8px !important;
    }
    
    /* Ensure text doesn't overflow elements */
    .mix-song-title, .mix-song-artist, .workout-slot-title {
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }
    
    /* Mix info adjustments */
    .mix-info {
        padding: 10px !important;
        margin: 8px 0 !important;
    }
    
    .mix-stat {
        font-size: 0.8rem !important;
        padding: 4px 8px !important;
    }
    
    /* Available songs list optimizations */
    .available-songs-container {
        padding: 8px !important;
    }
    
    /* Muscle group buttons */
    .muscle-group-btn {
        font-size: 0.8rem !important;
        padding: 6px 10px !important;
        margin: 2px !important;
    }
    
    /* Filter controls */
    .filter-controls {
        padding: 8px !important;
        gap: 8px !important;
    }
    
    .filter-input, .filter-select {
        font-size: 0.85rem !important;
        padding: 8px 10px !important;
    }
    
    /* Enhanced mobile dropdown styling */
    .filter-dropdown {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    
    /* Long text handling for mobile dropdowns */
    .filter-dropdown option {
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 100% !important;
    }
    
    /* Genre dropdown mobile optimizations */
    .genre-dropdown button {
        font-size: 0.85rem !important;
        padding: 8px 10px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }
}

/* ==================== NATIVE SELECT STYLING ==================== */

/* Enhanced native select styling with custom arrow */
.mix-gallery .gallery-sort {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23F6F2F2' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 12px center;
    background-repeat: no-repeat;
    background-size: 16px;
    padding-right: 40px;
}

.mix-gallery .gallery-sort:hover {
    border-color: rgba(255, 209, 103, 0.5);
    background-color: rgba(255, 255, 255, 0.15);
}

.mix-gallery .gallery-sort:focus {
    outline: none;
    border-color: #FFD167;
    box-shadow: 0 0 0 2px rgba(255, 209, 103, 0.2);
}

/* Style native options */
.mix-gallery .gallery-sort option {
    background: #073A4B;
    color: #F6F2F2;
    padding: 8px 12px;
}
