/* style.css */
:root {
    /* Define color palette for easier changes */
    --bg-light: #f4f7f6; /* Light background */
    --text-dark: #2c3e50; /* Dark text for light backgrounds */
    --text-light: #ecf0f1; /* Light text for dark backgrounds */
    --card-bg: #ffffff; /* White card background */
    --card-border: #e0e0e0;
    --card-shadow: rgba(0, 0, 0, 0.1);
    --primary-accent: #3498db; /* Blue */
    --secondary-accent: #f39c12; /* Orange */
    --positive-accent: #2ecc71; /* Green */
    --negative-accent: #e74c3c; /* Red */
    --neutral-accent: #95a5a6; /* Grey */
    --dark-ui-bg: rgba(44, 62, 80, 0.9); /* Darker bg for popups/buttons */
    --selected-glow: #f1c40f; /* Gold/Yellow for selection */
    --breakpoint-mobile: 768px; /* Screen width for mobile styles */
}

body {
    margin: 0;
    overflow-x: hidden;
    font-family: 'Inter', sans-serif;
    background-color: var(--bg-light);
    color: var(--text-dark);
    line-height: 1.5;
}

/* --- Wrapper Style --- */
#reel-builder-wrapper {
    position: relative; /* Establishes positioning context */
    min-height: 500px; /* Example: adjust as needed to contain elements */
    /* Optional: border for debugging */
    /* border: 1px dashed blue; */
}


/* --- General UI Elements --- */
.ui-element {
    position: absolute; /* Positioned relative to the nearest positioned ancestor (now the wrapper or overlay) */
    background-color: var(--dark-ui-bg);
    color: var(--text-light);
    padding: 10px 15px;
    border-radius: 6px;
    box-shadow: 0 2px 4px var(--card-shadow);
    text-align: center;
    pointer-events: auto;
    font-size: 1rem;
    z-index: 2;
}

/* --- Top Bar Elements --- */
#level-indicator {
    top: 15px;
    left: 15px;
    background-color: var(--primary-accent);
}

.top-right-controls {
    position: absolute; /* Position relative to the wrapper */
    top: 15px;
    right: 15px;
    display: flex;
    gap: 10px;
    z-index: 12; /* Above popups */
    pointer-events: none;
}

.icon-button {
    background-color: var(--dark-ui-bg);
    color: var(--text-light);
    border: none;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    font-size: 20px;
    line-height: 40px;
    text-align: center;
    cursor: pointer;
    transition: background-color 0.2s ease;
    pointer-events: auto; /* Buttons ARE clickable */
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}
.icon-button:hover { background-color: rgba(69, 90, 100, 0.95); }

/* --- Score and Win Streak (Stacked Right) --- */
#score-display {
    position: absolute; /* Position relative to the wrapper */
    top: 65px;
    right: 15px;
    background-color: var(--primary-accent);
    width: auto;
    min-width: 90px;
    text-align: right;
    z-index: 11; /* Below controls */
    padding: 8px 12px;
    font-size: 0.95rem;
}

#win-streak {
    position: absolute; /* Position relative to the wrapper */
    top: 110px;
    right: 15px;
    background-color: var(--secondary-accent);
    width: auto;
    min-width: 90px;
    text-align: right;
    z-index: 11; /* Below controls */
    padding: 8px 12px;
    font-size: 0.95rem;
}

/* --- Center Content --- */
#brand-request {
    position: relative; /* Normal flow within ui-overlay */
    top: auto;
    left: auto;
    transform: none;
    width: 90%;
    max-width: 700px;
    margin: 0 auto 20px auto; /* Top margin handled by overlay padding */
    background-color: var(--card-bg);
    color: var(--text-dark);
    border: 1px solid var(--card-border);
    font-size: 1.1em;
    padding: 12px 20px;
    border-radius: 8px;
    z-index: 1;
    display: none; /* JS controls */
    text-align: center;
}

.brand-request-label { font-size: 0.9em; font-weight: bold; color: var(--primary-accent); margin-bottom: 5px; display: block; }
#brand-request-text { font-size: 1em; line-height: 1.4; }

/* --- Bottom Bar Elements --- */

/* Submit Button (Positioned in Flow) */
#submit-button {
    /* REMOVED: position: fixed, bottom, left, transform */
    display: none; /* Controlled by JS */
    margin: 30px auto 20px auto; /* Top margin, auto L/R for centering, bottom margin */
    padding: 12px 25px;
    font-size: 1.2em;
    font-weight: bold;
    cursor: pointer;
    background-color: var(--positive-accent);
    color: var(--text-light);
    border: none;
    border-radius: 8px;
    transition: background-color 0.3s ease, transform 0.1s ease;
    z-index: 3; /* Needs to be high enough to be clickable */
    pointer-events: auto;
    /* Ensure it behaves like a block for margin:auto centering */
    display: block; /* Make it block to respect auto margins */
    width: fit-content; /* Size based on content */
    /* Hide initially - JS will change display to 'block' when needed */
    display: none;
}
#submit-button:hover:not(.disabled) { background-color: #27ae60; }
#submit-button:active:not(.disabled) { transform: scale(0.98); } /* Simpler active transform */
#submit-button.disabled { background-color: var(--neutral-accent); cursor: not-allowed; }

/* Feedback Area (Positioned in Flow) */
#feedback-area {
    position: relative; /* Position relative to flow */
    /* REMOVED: position: fixed, bottom, left, transform */
    width: 80%;
    max-width: 400px;
    margin: -10px auto 20px auto; /* Negative top margin to pull closer to button, auto L/R, bottom margin */
    font-size: 1.1em;
    background-color: rgba(241, 196, 15, 0.9);
    color: var(--text-dark);
    border: 1px solid #f39c12;
    border-radius: 6px;
    display: none; /* JS controls */
    z-index: 2; /* Below button if overlap occurs */
    padding: 10px 15px;
    text-align: center;
}

/* --- Game Containers --- */
/* No #game-container styling */

#ui-overlay {
    position: relative; /* Container for brand request and cards */
    width: 100%;
    min-height: 500px; /* Minimum height for content */
    pointer-events: none; /* Allow clicks through overlay itself */
    z-index: 1;
    padding-top: 160px; /* Padding to clear absolute positioned top elements */
    padding-bottom: 40px; /* Reduced bottom padding */
    box-sizing: border-box;
}


/* --- Card Container (Universal) --- */
#mobile-card-container { display: block; width: 100%; max-width: 500px; margin: 0 auto; padding: 0 15px; box-sizing: border-box; pointer-events: auto; }
.mobile-row-container { margin-bottom: 25px; }
.mobile-row-title { font-weight: bold; font-size: 1.1em; color: var(--primary-accent); margin-bottom: 10px; text-align: center; }
.mobile-card { background-color: var(--card-bg); color: var(--text-dark); border: 1px solid var(--card-border); border-radius: 8px; padding: 15px; margin-bottom: 10px; cursor: pointer; transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease; box-shadow: 0 1px 3px var(--card-shadow); pointer-events: auto; text-align: center; }
.mobile-card:hover { border-color: var(--primary-accent); box-shadow: 0 3px 6px rgba(52, 152, 219, 0.3); }
.mobile-card.selected { border-color: var(--selected-glow); box-shadow: 0 0 10px rgba(241, 196, 15, 0.6); background-color: #fffbeb; font-weight: bold; }

/* --- Popups --- */
/* Popups remain fixed to viewport */
.popup-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.7); display: none; flex-direction: column; justify-content: center; align-items: center; z-index: 10; padding: 20px; box-sizing: border-box; text-align: center; color: var(--text-light); }
.popup-content { background-color: var(--dark-ui-bg); padding: 30px; border-radius: 10px; box-shadow: 0 5px 15px rgba(0,0,0,0.5); max-width: 500px; width: 90%; pointer-events: auto; }
.game-over-content { max-height: 90vh; overflow-y: auto; }
.popup-content h1, .popup-content h2 { color: var(--selected-glow); margin-top: 0; }
.popup-content p { margin-bottom: 20px; font-size: 1.1em; }

/* --- Level Results / Stats Summary / Buttons etc --- */
.level-results-container { margin: 20px 0; text-align: left; background-color: rgba(255, 255, 255, 0.1); padding: 15px; border-radius: 6px; }
.level-results-container h3 { margin-top: 0; margin-bottom: 10px; color: var(--secondary-accent); text-align: center; font-size: 1.1em; }
#level-results-list { list-style: none; padding: 0; margin: 0; }
#level-results-list li { padding: 5px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.2); font-size: 0.95em; }
#level-results-list li:last-child { border-bottom: none; }
.stars { color: var(--selected-glow); font-weight: bold; margin-left: 5px; }
.perfect-badge { display: inline-block; background-color: var(--selected-glow); color: var(--text-dark); padding: 1px 5px; border-radius: 3px; font-size: 0.8em; margin-left: 8px; vertical-align: middle; }
.stats-summary { margin: 25px 0; border-top: 1px solid rgba(255, 255, 255, 0.3); padding-top: 20px; text-align: center; }
.final-score-para { margin-bottom: 20px !important; }
.final-score-para strong { display: block; font-size: 1.1em; color: var(--text-light); margin-bottom: 5px;}
.final-score-value { font-size: 2em; font-weight: bold; color: var(--selected-glow); display: block; }
.stats-summary p:not(.final-score-para) { margin: 8px auto; font-size: 1em; max-width: 350px; display: flex; justify-content: space-between; align-items: center; }
.stats-summary p:not(.final-score-para) em { color: var(--neutral-accent); font-style: normal; text-align: left; }
.stats-summary p:not(.final-score-para) span { font-weight: bold; color: var(--text-light); text-align: right; }
.game-over-buttons { margin-top: 20px; display: flex; justify-content: center; gap: 15px; flex-wrap: wrap; }
#landing-screen { /* JS controls */ } #instructions-screen { /* JS controls */ } #settings-popup { /* JS controls, z-index: 11 */ } #bonus-round { /* JS controls */ } #game-over-screen { /* JS controls */ }
#start-game-button, #reset-game-button, #close-settings-button, #play-again-button, #start-first-reel-button, #share-twitter-button { padding: 12px 25px; font-size: 1.1em; border: none; border-radius: 6px; cursor: pointer; transition: background-color 0.3s ease; margin: 10px 5px; color: var(--text-light); }
#start-game-button { background-color: var(--positive-accent); } #start-game-button:hover { background-color: #27ae60; }
#start-first-reel-button { background-color: var(--positive-accent); margin-top: 20px; } #start-first-reel-button:hover { background-color: #27ae60; }
#reset-game-button { background-color: var(--negative-accent); } #reset-game-button:hover { background-color: #c0392b; }
#close-settings-button { background-color: var(--neutral-accent); } #close-settings-button:hover { background-color: #7f8c8d; }
#play-again-button { background-color: var(--positive-accent); } #play-again-button:hover { background-color: #27ae60; }
#share-twitter-button { background-color: #1DA1F2; } #share-twitter-button:hover { background-color: #0c85d0; }

/* --- Settings --- */
#settings-popup label { display: block; margin: 15px 0 5px 0; font-size: 1.1em; }
#volume-slider { width: 80%; cursor: pointer; margin-bottom: 15px; }
#settings-popup { z-index: 11; } /* Below top controls */

/* --- Bonus --- */
.bonus-option { background-color: var(--bg-light); color: var(--text-dark); padding: 12px 15px; margin: 10px 0; border-radius: 5px; cursor: pointer; border: 2px solid var(--card-border); transition: background-color 0.2s ease, border-color 0.2s ease; text-align: left; }
.bonus-option:hover { background-color: #e8f4fd; border-color: var(--primary-accent); }

/* Mobile adjustments */
@media (max-width: 768px) {
    .icon-button { width: 36px; height: 36px; line-height: 36px; font-size: 18px; }
    #score-display, #win-streak { padding: 8px 12px; font-size: 0.9rem; min-width: 80px; }
    #score-display { top: 60px; }
    #win-streak { top: 105px;}

    .game-over-content { max-height: 85vh; padding: 20px;}
    .level-results-container h3 { font-size: 1em; }
    #level-results-list li { font-size: 0.9em; }
    .stats-summary p { font-size: 0.95em; }
    .stats-summary p:not(.final-score-para) { flex-direction: column; align-items: center; margin-bottom: 12px; max-width: none;}
    .stats-summary p:not(.final-score-para) em { margin-right: 0; margin-bottom: 2px; text-align: center;}
    .stats-summary p:not(.final-score-para) span { margin-left: 0; text-align: center; }
    .game-over-buttons { gap: 10px; }
    #play-again-button, #share-twitter-button,
    #start-game-button, #reset-game-button,
    #close-settings-button, #start-first-reel-button { font-size: 1em; padding: 10px 15px;}

    .popup-content h1 { font-size: 1.8em; }
    .popup-content h2 { font-size: 1.5em; }
    .popup-content p { font-size: 1em; }

    #submit-button { font-size: 1.1em; padding: 10px 20px; margin-top: 25px;} /* Adjust mobile button margin */
    #feedback-area { font-size: 1em; width: 90%; margin-top: 15px; margin-bottom: 15px; } /* Adjust mobile feedback margin */

    #ui-overlay {
        padding-bottom: 20px; /* Reduce bottom padding on mobile */
    }
}