/* General Styles */
body {
    margin: 0;
    padding: 0;
    font-family: 'Montserrat', sans-serif;
    background-color: #2a1b3d; /* Dark purple background */
    color: #ffffff; /* White text */
    line-height: 1.6;
}

h1 {
    text-align: center;
    font-size: 2.5rem;
    margin: 20px 0;
}

a {
    color: #00d4ff; /* Light blue for links */
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

/* Timeline Styles */
#timeline {
    position: relative;
    width: 100%; /* Full container width */
    overflow-x: auto; /* Enable horizontal scrolling */
    white-space: nowrap; /* Prevent wrapping */
    padding: 20px;
}

.hourly-markers {
    display: flex;
    justify-content: space-between;
    margin-bottom: 20px;
    width: 100%; /* Match container width */
    color: #ffffff;
}

.timeline-row {
    position: relative;
    width: 100%; /* Match the full container width */
    margin-bottom: 60px;
}

.stage-header {
    position: sticky; /* Keep headers tied to their row */
    top: 0; /* Stick to the top of their row */
    width: 100%; /* Ensure the headers span the container */
    text-align: center;
    font-size: 1.5rem;
    color: white;
    background-color: #4a148c; /* Dark purple header background */
    padding: 15px 0;
    z-index: 10;
    box-sizing: border-box; /* Include padding in width */
}

.timeline-content {
    display: flex;
    position: relative;
    height: 80px; /* Set height for timeline blocks */
    margin-top: 10px; /* Space between header and timeline content */
}

.timeline-block {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    font-size: 1rem;
    color: black;
    background: white;
    border: #2a1b3d 2px solid;
    border-right: 1px solid #ccc;
    padding: 10px;
    position: absolute;
    height: 60px;
    border-radius: 5px;
}

.timeline-block.now-playing {
    background: #d81b60;
    color: white;
}

.timeline-block.now-playing .timeline-time {
    color: white;
}

.block-content {
    display: flex;
    align-items: center;
    gap: 15px;
}

.artist-image {
    width: 50px;
    height: 50px;
    border-radius: 5px;
    object-fit: cover;
}

.current-time-line {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #ffffff; /* Vertical line color */
    z-index: 20; /* Ensure line appears above content */
}

/* Responsive Design */
@media (max-width: 768px) {
    .stage-header {
        font-size: 1.2rem; /* Adjust font size for smaller screens */
        padding: 10px 0; /* Reduce padding for mobile */
    }

    #timeline {
        padding: 10px; /* Smaller padding for compact devices */
    }
}

/* General Table Styling */
table {
    width: 90%;
    margin: 20px auto;
    border-collapse: collapse;
    background-color: #3a2c55; /* Slightly lighter purple */
    border: 1px solid #5b4b82;
    box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.3);
}

table th, table td {
    padding: 15px;
    text-align: left;
    border: 1px solid #5b4b82;
}

table th {
    background-color: #5b4b82; /* Table header purple */
    color: #ffffff;
    font-weight: bold;
    text-transform: uppercase;
}

table tr:nth-child(even) {
    background-color: #4a3768;
}

table tr:hover {
    background-color: #5e4b88;
}

/* Button Styling */
button, a.button {
    display: inline-block;
    background-color: #00d4ff; /* Bright accent color */
    color: #2a1b3d; /* Dark purple for text on buttons */
    padding: 10px 20px;
    border: none;
    border-radius: 5px;
    font-size: 1rem;
    cursor: pointer;
    transition: background-color 0.3s ease;
    text-align: center;
}

button:hover, a.button:hover {
    background-color: #00a8cc;
}

.stage-label {
    position: absolute;
    top: -30px; /* Place above the artist block */
    background-color: #4a148c; /* Match the theme */
    color: white;
    font-size: 1rem;
    text-align: center;
    padding: 5px 0;
    z-index: 15; /* Ensure visibility */
    border-radius: 5px; /* Add rounded edges */
    box-sizing: border-box; /* Include padding in width */
}