/* Base Card Styles */
.card {
    color: var(--text-color);
    max-width: 800px;
    margin: 0 auto 10px;
    background-color: #ffffff;
    border: 1px;
    border-radius: 8px;
    box-shadow: 0 2px 5px #ccc;
}

.card:hover {
    color: var(--text-color);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
    border: 0px solid var(--white);
    margin: 0 auto 10px; /* Center the card horizontally with margin */
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* Card Body Padding */
.card-body {
    padding: 15px; /* Reduced padding for less whitespace */
}

/* ACCORDIAN */ 

.accordion-header button {
    font-size: 1rem; /* Adjust the font size as needed */
    color: var(--text-color);
    background-color:   var(--white);
    padding: 12px 12px;         /* Padding for button size and vertical centering */
    border-color: transparent;
    margin: 0px; /* padding around the header text within the card */
    border: 0px;
}

.accordion-header-sub {
    font-size: 1rem; /* Adjust the font size as needed */
    color: var(--text-color);
    background-color:   var(--egg-shell);
    border-color: transparent;
    margin: 0px; /* padding around the header text within the card */
    border: 0px;
}

.accordion-header button:hover {
    color: var(--text-color);
    font-size: 1rem; /* Adjust the font size as needed */
    background-color:   var(--off-white);
    padding: 12px 12px;        /* Padding for button size and vertical centering */
    border-color:  var(--white);
    border-color: transparent;
    margin: 0px; /* padding around the header text within the card */
    border: 0px;
}

/* Accordion header default style */
.accordion-button {
    background-color: #ccc; /* Default light color */
    transition: background-color 0.3s;
}

/* Accordion header active style */
.accordion-button:not(.collapsed) {
    background-color:   var(--off-white);
    color: black;
}

/* Remove bottom corners rounding on hover */
.accordion-button:hover, 
.accordion-button:not(.collapsed) {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.accordion-button:focus {
    outline: none;
    box-shadow: 0 0 0 0px var(--off-white);
}

.accordion-body {
    padding: 2px 12px;        /* Padding for button size and vertical centering */
}

.accordion-button:not(.collapsed) .metadata-icons {
    display: inline-flex; /* Or 'block' based on your design */
}

/* Icon Player Files */
.icon-wrapper-player button {
    all: unset; /* Reset all styles */
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    cursor: pointer;
    color: var(--text-color);
}

.icon-wrapper-player button i {
    pointer-events: none;
    font-size: 16px;
    color: inherit;
}

.icon-wrapper-player:hover button {
    color: var(--white);
}

/* Ensures icons inside .icon-wrapper turn white on hover */
.icon-wrapper-player:hover i {
    color: var(--white);
}

.icon-wrapper-player {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 36px; /* Match player icon for consistency */
    height: 36px;
    border-radius: 50%;
    background-color: #f0f0f0;
    margin-right: 10px;
    font-size: 18px;
    transition: background-color 0.3s ease, transform 0.3s ease;
    vertical-align: middle;
    cursor: pointer;
    border: none;
    padding: 0;
    outline: none;
}

.icon-wrapper-player i,
.icon-wrapper-player a {
    text-decoration: none;
    color: var(--text-color);
    font-size: inherit;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    line-height: 1;
    pointer-events: none; /* Prevent icon from blocking click */
}

.icon-wrapper-player:hover {
    color: var(--white);
    background-color: #007bff;
    transform: scale(1.1);
}

.icon-wrapper-player:hover a {
    color: var(--white);
}

.icon-wrapper-player.inactive,
.icon-wrapper-player.inactive:hover {
    color: var(--text-color);
    background-color: #f0f0f0;
    transform: scale(1.0);
}


/* Icon Files */
.icon-wrapper button {
    all: unset; /* Reset all styles */
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    cursor: pointer;
    color: var(--text-color);
}

.icon-wrapper button i {
    pointer-events: none;
    font-size: 16px;
    color: inherit;
}

.icon-wrapper:hover button {
    color: var(--white);
}

/* Ensures icons inside .icon-wrapper turn white on hover */
.icon-wrapper:hover i {
    color: var(--white);
}

.icon-wrapper {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 36px; /* Match player icon for consistency */
    height: 36px;
    border-radius: 50%;
    background-color: #f0f0f0;
    margin-right: 10px;
    font-size: 18px;
    transition: background-color 0.3s ease, transform 0.3s ease;
    vertical-align: middle;
    cursor: pointer;
    border: none;
    padding: 0;
    outline: none;
}

.icon-wrapper i,
.icon-wrapper a {
    text-decoration: none;
    color: var(--text-color);
    font-size: inherit;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    line-height: 1;
    pointer-events: none; /* Prevent icon from blocking click */
}

.icon-wrapper:hover {
    color: var(--white);
    background-color: #007bff;
    transform: scale(1.1);
}

.icon-wrapper:hover a {
    color: var(--white);
}

.icon-wrapper.inactive,
.icon-wrapper.inactive:hover {
    color: var(--text-color);
    background-color: #f0f0f0;
    transform: scale(1.0);
}


/* Invisible Icon */ 

.icon-invisible {
    background-color: #e0e0e0; /* Dimmed background for invisible icons */
    opacity: 0.5; /* Slight transparency */
}

.icon-invisible i {
    color: #bbb; /* Dimmed icon color */
}



/* Remove padding and margin from the <ul> and <li> elements */
.list-group-flush {
    padding: 0;
    margin: 0;
}

.list-group-flush .list-group-item {
    padding: 0.5rem 1rem; /* Adjust padding as needed */
    margin: 0; /* Remove any additional margin */
    border: none; /* Optional: Remove borders if unwanted */
}

/* Ensure the accordion-collapse and accordion-body take full width */
.accordion-collapse {
    width: 100%; /* Ensures the collapse div spans the full width */
}

.accordion-body {
    padding: 0; /* Remove default padding if needed */
    width: 100%; /* Ensure the body fills the accordion space */
}


/* Icon Container */
.icon-container {
    display: flex;
    gap: 3px; /* Space between icons */
    flex-shrink: 0; /* Prevent the icons from shrinking */
}

/* Icon Styling */
.icon-wrapper, .icon-wrapper-player {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px; /* Fixed width */
    height: 40px; /* Fixed height */
    border-radius: 50%; /* Make icons circular if needed */
    background-color: #f0f0f0; /* Background color for the circle */
    transition: background-color 0.3s ease, transform 0.3s ease;
}

/* Prevent Icons from Shrinking */
.icon-wrapper i, .icon-wrapper-player i {
    font-size: 16px; /* Ensure consistent icon size */
}

/* Tune Name Flex Behavior */
.tune-name {
    flex-grow: 1; /* Allow tune name to expand and take up remaining space */
    overflow: hidden; /* Prevent long names from breaking layout */
    text-overflow: ellipsis; /* Add ellipsis for long names */
    white-space: nowrap; /* Prevent wrapping */
    text-decoration: none;
}

/* Tune Name Flex Behavior */
.tune-name:hover {
    text-decoration: underline;
}


/* Popup styling for modal dialog */
.modal-popup {
    max-width: 90%; /* Limit the width */
    width: 90%; /* Make it responsive on smaller screens */
}

.modal-body iframe {
    width: 100%; /* Ensure iframe takes full width */
    height: 80%; /* Default height for desktop */
}

/* Responsive Adjustments */
@media (max-width: 768px) { /* For tablets */
    .modal-popup {
        max-width: 90%; /* Adjust width */
    }

    .modal-body iframe {
        height: 300px; /* Smaller height */
    }
}

@media (max-width: 480px) { /* For mobile devices */
    .modal-popup {
        max-width: 100%; /* Full-width for smaller screens */
        margin: 0; /* Remove extra margin */
    }

    .modal-body iframe {
        height: 200px; /* Smallest height */
    }
}

.custom-link {
    color: var(--text-color);
    text-decoration: none;
    transition: text-decoration 0.2s ease;
}

.custom-link:hover {
    text-decoration: underline;
}