/* client/styles.css */

/* Font import - moved to top as best practice */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap');

/* General styles */
body {
    font-family: 'Poppins', sans-serif;
    background-color: #0c0e1a; /* Background: Midnight Navy */
    color: #f8f1e7; /* Primary Text: Soft Cream */
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main {
    flex: 1;
    padding: 2em;
}

/* Landing page specific styles */
.hero {
    text-align: center;
    padding: 50px;
}

.hero h1 {
    font-size: 48px;
    color: #f8f1e7; /* Primary Text: Soft Cream */
}

.features {
    display: flex;
    justify-content: space-around;
    padding: 20px;
}

.feature {
    background: #1a1d2b; /* Card/Panel BG: Deep Graphite */
    padding: 20px;
    border-radius: 8px;
    width: 25%;
    text-align: center;
    color: #f8f1e7; /* Primary Text: Soft Cream */
}

/* Upload page styles */
#upload-section {
    background: #1a1d2b; /* Card/Panel BG: Deep Graphite */
    padding: 2em;
    border-radius: 8px;
    max-width: 600px;
    margin: 0 auto;
}

/* Center the heading text */
main h2 {
    text-align: center;
    margin-bottom: 1em; /* Adds space between the heading and the section below */
}


/* Playback page styles */
#controls-section {
    margin-bottom: 2em;
}

#track-player {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1em; /* Optional, keeps spacing consistent */
}

#track-player h2 {
    text-align: center;
}

/* Widget-specific body styles */
body.widget-body {
    margin: 0;
    overflow: hidden;
    background: transparent; /* For OBS overlay */
}

/* Widget-specific styles - scoped to body.widget-body */
body.widget-body vibe-track-info {
    position: absolute;
    bottom: 20px;
    left: 20px;
    width: 350px;
}

#audio-player {
    display: none;
}
.vibe-player-main {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px;
}
.state-controls {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    margin-top: 20px;
}
.state-controls button {
    background-color: #1de9b6;
    color: #000;
    padding: 8px 16px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}
.state-controls button:hover {
    background-color: #c084fc;
}

.preview-widget {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    padding: 20px;
    width: 400px;
    margin: 0 auto;
    min-height: 300px; /* Matches widget height in 'full' state, adjust as needed */
    position: relative; /* Keep if needed for other elements */
}

.controls-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    width: 100%;
    max-width: 400px; /* Matches preview-widget width for consistency */
}

.toggle-switches {
    width: 100%;
    display: flex;
    justify-content: center;
    gap: 20px;
    align-items: center;
}

.toggle-switches toggle-switch {
    width: 100px;
    height: 80px;
}

.color-customization {
    width: 100%;
}

pre {
    background-color: #1a1d2b; /* Deep Graphite */
    color: #f8f1e7; /* Soft Cream */
    padding: 10px;
    border-radius: 5px;
    font-family: monospace;
    white-space: pre-wrap;
}
#color-customization {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1em;
}