/* === MAX LEVEL RED/BLACK THEME === */

/* 1. Import Font & Define Variables */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');

:root {
    --primary-red: #e63946;
    --dark-red: #c02d3a;
    --light-red-hover: #ff5c6b;
    --bg-dark: #121212;
    --bg-medium: #1f1f1f;
    --bg-light: #2b2b2b;
    --text-light: #f0f0f0;
    --text-medium: #aaa;
    --text-dark: #1a1a1a;
    --accent-green: #2a9d8f;
    --accent-yellow: #fca311;
    --accent-purple: #9b59b6;
    --border-color: #333;
    --shadow-light: rgba(230, 57, 70, 0.2);
    --shadow-medium: rgba(230, 57, 70, 0.4);
    --shadow-dark: rgba(0, 0, 0, 0.7);
    --font-main: 'Poppins', sans-serif;
    --transition-speed: 0.3s;
}

/* --- Light Theme Variables --- */
body.light-theme {
    --bg-dark: #f4f7f6;
    --bg-medium: #ffffff;
    --bg-light: #f9f9f9;
    --text-light: #222222;
    --text-medium: #555555;
    --text-dark: #ffffff;
    --border-color: #dddddd;
    --shadow-light: rgba(0, 0, 0, 0.1);
    --shadow-medium: rgba(0, 0, 0, 0.2);
    --shadow-dark: rgba(0, 0, 0, 0.4);
    --primary-red: #c0392b;
    --dark-red: #a93226;
    --light-red-hover: #e74c3c;
    --accent-yellow: #f39c12;
    --accent-green: #27ae60;
    --accent-purple: #8e44ad;
}

/* 2. Global Styles & Resets */
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
    font-family: var(--font-main);
    background: var(--bg-dark);
    color: var(--text-light);
    line-height: 1.7;
    overflow-x: hidden;
    transition: background-color var(--transition-speed) ease, color var(--transition-speed) ease;
}
.container { width: 90%; max-width: 1200px; margin: 30px auto; padding: 0 15px; }
h1, h2, h3, h4 { color: var(--text-light); font-weight: 600; margin-bottom: 0.8em; transition: color var(--transition-speed) ease;}
h1 { font-size: 2.5em; text-align: center; }
h2 { font-size: 1.8em; border-bottom: 3px solid var(--primary-red); padding-bottom: 10px; margin-bottom: 30px; transition: border-color var(--transition-speed) ease;}
h3 { font-size: 1.4em; color: var(--primary-red); transition: color var(--transition-speed) ease;}
h4 { font-size: 1.1em; }
a { color: var(--primary-red); text-decoration: none; transition: color var(--transition-speed) ease; }
a:hover { color: var(--light-red-hover); }
p { margin-bottom: 1em; }
hr.section-divider { margin: 40px 0 10px; border: 0; border-top: 1px solid var(--border-color); transition: border-color var(--transition-speed) ease;}
small { font-size: 0.85em; color: var(--text-medium); transition: color var(--transition-speed) ease;}

/* 3. Buttons */
.btn { display: inline-block; padding: 12px 28px; font-size: 1em; font-weight: 500; text-align: center; color: #ffffff; background: linear-gradient(145deg, var(--primary-red), var(--dark-red)); border: none; border-radius: 8px; cursor: pointer; transition: all var(--transition-speed) ease; box-shadow: 0 4px 15px var(--shadow-light); text-transform: uppercase; letter-spacing: 0.5px; }
.btn:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 7px 22px var(--shadow-medium); background: linear-gradient(145deg, var(--light-red-hover), var(--primary-red)); }
.btn:active { transform: translateY(-1px) scale(0.98); box-shadow: 0 2px 10px var(--shadow-light); }
.btn-secondary { background: linear-gradient(145deg, #444, #333); box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
.btn-secondary:hover { background: linear-gradient(145deg, #555, #444); box-shadow: 0 6px 15px rgba(0,0,0,0.5); }
.btn-warning { background: linear-gradient(145deg, var(--accent-yellow), #e8950f); box-shadow: 0 4px 15px rgba(252, 163, 17, 0.2); color: var(--text-dark); }
.btn-warning:hover { background: linear-gradient(145deg, #ffb545, var(--accent-yellow)); box-shadow: 0 6px 20px rgba(252, 163, 17, 0.4); }
.btn-danger { background: linear-gradient(145deg, var(--primary-red), var(--dark-red)); }
.btn-danger:hover { background: linear-gradient(145deg, var(--light-red-hover), var(--primary-red)); }
.btn[disabled] { opacity: 0.5; cursor: not-allowed; transform: none; box-shadow: none; }
.btn-large { padding: 15px 40px; font-size: 1.2em; }

/* 4. Navbar */
.navbar { background-color: #0d0d0d; padding: 10px 0; border-bottom: 3px solid var(--primary-red); position: sticky; top: 0; z-index: 1000; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.6); transition: background-color var(--transition-speed) ease, border-color var(--transition-speed) ease; }
.navbar .container { display: flex; justify-content: space-between; align-items: center; margin: 0 auto; }
.navbar .logo { font-size: 1.6em; font-weight: 700; color: var(--primary-red); transition: transform var(--transition-speed) ease; display: flex; align-items: center; gap: 10px; text-decoration: none; }
.navbar .logo:hover { transform: scale(1.05); }
.navbar .logo img { height: 35px; width: auto; vertical-align: middle; } /* Logo image */
.navbar nav { display: flex; align-items: center; }
.navbar nav a { color: var(--text-light); margin-left: 15px; font-size: 0.95em; font-weight: 500; padding-bottom: 8px; position: relative; white-space: nowrap; transition: color var(--transition-speed) ease; }
.navbar nav a::after { content: ''; position: absolute; width: 0; height: 3px; bottom: 0; left: 0; background-color: var(--primary-red); transition: width var(--transition-speed) ease, background-color var(--transition-speed) ease; }
.navbar nav a:hover::after, .navbar nav a.active::after { width: 100%; }
.navbar nav a.active { color: var(--primary-red); }
.admin-logout-btn { background-color: #333; padding: 5px 10px !important; border-radius: 5px; color: var(--text-light) !important; }
.admin-logout-btn:hover { background-color: #444; border-bottom: none; color: #fff !important;}
.navbar nav a.admin-logout-btn.active { border-bottom: none; }
.theme-toggle { background: none; border: 1px solid var(--border-color); color: var(--text-medium); font-size: 1.2em; padding: 4px 8px; border-radius: 5px; cursor: pointer; margin-left: 15px; transition: all var(--transition-speed) ease; vertical-align: middle; }
.theme-toggle:hover { color: var(--text-light); border-color: var(--text-light); transform: rotate(15deg); }

@media (max-width: 992px) { .navbar nav a { margin-left: 12px; font-size: 0.9em; } }
@media (max-width: 768px) { .navbar .container { flex-direction: column; align-items: flex-start;} .navbar nav { margin-top: 10px; flex-direction: column; align-items: flex-start; width: 100%;} .navbar nav a { margin-left: 0; margin-bottom: 10px; width: 100%; text-align: left; font-size: 1em; } .navbar nav a::after { left: 0; transform: none; } .navbar .logo img { height: 30px; } .navbar .logo { gap: 8px; font-size: 1.4em; } .navbar nav .theme-toggle { margin-left: 0; margin-bottom: 10px; width: auto; } }

/* 5. Auth Page & Forms */
.auth-container { max-width: 450px; background-color: var(--bg-medium); border-radius: 12px; padding: 40px; margin: 50px auto; box-shadow: 0 10px 40px var(--shadow-dark); border: 1px solid var(--border-color); text-align: center; transition: background-color var(--transition-speed) ease, border-color var(--transition-speed) ease; }
.form-tabs { display: flex; margin-bottom: 30px; border-radius: 8px; overflow: hidden; background: var(--bg-dark); transition: background-color var(--transition-speed) ease;}
.tab-link { flex: 1; padding: 15px; background: transparent; color: var(--text-light); border: none; cursor: pointer; font-size: 1.1em; font-weight: 500; transition: all var(--transition-speed) ease; }
.tab-link.active { background: var(--primary-red); color: #ffffff; }
.form-content { display: none; } .form-content.active { display: block; }
input[type="text"], input[type="email"], input[type="password"], input[type="url"], input[type="number"],
.admin-select, textarea { width: 100%; padding: 15px; margin-bottom: 18px; border: 1px solid #444; border-radius: 8px; background-color: var(--bg-light); color: var(--text-light); font-size: 1em; font-family: var(--font-main); transition: all var(--transition-speed) ease; }
input[type="text"]:focus, input[type="email"]:focus, input[type="password"]:focus, input[type="url"]:focus, input[type="number"]:focus,
.admin-select:focus, textarea:focus { outline: none; border-color: var(--primary-red); box-shadow: 0 0 12px rgba(230, 57, 70, 0.4); }
textarea { font-family: 'Consolas', 'Courier New', monospace; line-height: 1.5; }
textarea::placeholder { color: #888; font-style: italic; font-family: var(--font-main); font-size: 0.9em; white-space: pre-wrap; transition: color var(--transition-speed) ease;}
#error-message, #grant-message, #revoke-message, #details-message, #admin-message, #create-message, #delete-message, #notification-message, #reset-message, #update-message, #modal-update-message, #coupon-message { margin-top: 15px; font-weight: 500; min-height: 1.5em; transition: color var(--transition-speed) ease;}
.admin-form label { display: block; font-size: 1.0em; font-weight: 500; margin-top: 15px; margin-bottom: 8px; text-align: left;}
.admin-form .checkbox-group, .radio-group { background: var(--bg-light); padding: 20px; border-radius: 8px; transition: background-color var(--transition-speed) ease; text-align: left; }
.admin-form .checkbox-group { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.radio-group label { margin-right: 15px; display: inline-block; margin-bottom: 5px;}
.form-row { display: flex; gap: 20px; margin-bottom: 20px; flex-wrap: wrap; }
.form-group { flex: 1; min-width: 150px; text-align: left;}
input[type="number"] { -moz-appearance: textfield; appearance: textfield; }

/* 6. Cards */
.test-list, .admin-menu { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 30px; }
.test-card, .test-card-placeholder, .admin-menu-card { background: var(--bg-medium); border-radius: 12px; padding: 30px; box-shadow: 0 6px 25px rgba(0, 0, 0, 0.6); border: 1px solid var(--border-color); transition: all var(--transition-speed) ease; display: flex; flex-direction: column; }
.test-card:hover, .admin-menu-card:hover { transform: translateY(-8px) scale(1.03); border-color: var(--primary-red); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.8); }
.test-card h3, .admin-menu-card h3 { color: var(--primary-red); margin-top: 0; font-weight: 600; }
.test-card p, .admin-menu-card p { color: var(--text-medium); font-size: 0.95em; flex-grow: 1; transition: color var(--transition-speed) ease;}
.test-card .btn, .admin-menu-card .btn { margin-top: auto; }
.test-card-placeholder { border: 2px dashed #555; text-align: center; justify-content: center; }
.test-card-actions { margin-top: 15px; display: flex; gap: 10px; }
.test-card-actions .btn { flex-grow: 1; padding: 10px; font-size: 0.9em; }

/* 7. Modal */
.modal { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0, 0, 0, 0.85); animation: fadeIn 0.4s ease-out; }
.modal-content { background: var(--bg-light); color: var(--text-light); margin: 8% auto; padding: 35px; border: 1px solid var(--border-color); width: 90%; max-width: 650px; border-radius: 12px; position: relative; border-top: 6px solid var(--primary-red); box-shadow: 0 12px 50px var(--shadow-dark); animation: slideIn 0.4s ease-out; transition: background-color var(--transition-speed) ease, border-color var(--transition-speed) ease;}
.close-btn { color: var(--text-medium); position: absolute; top: 15px; right: 25px; font-size: 32px; font-weight: bold; cursor: pointer; transition: color var(--transition-speed) ease, transform var(--transition-speed) ease; }
.close-btn:hover { color: var(--text-light); transform: scale(1.2); }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideIn { from { transform: translateY(-30px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.modal-form-row { display: flex; gap: 15px; margin-bottom: 15px; align-items: flex-end; flex-wrap: wrap; }
.modal-form-group { flex: 1; min-width: 150px; }
.modal-form-group label { display: block; margin-bottom: 5px; font-weight: 500; }
#coupon-code { width: auto; flex-grow: 1; }
#apply-coupon-btn { flex-shrink: 0; padding: 10px 15px; }
.price-details { margin-top: 20px; border-top: 1px dashed var(--border-color); padding-top: 15px; font-size: 0.95em; transition: border-color var(--transition-speed) ease;}
.price-details div { margin-bottom: 5px; display: flex; justify-content: space-between; flex-wrap: wrap; }
.price-details .final-price strong { color: var(--accent-green); font-size: 1.2em; transition: color var(--transition-speed) ease;}
.discount-applied { color: var(--accent-green); font-size: 0.9em; margin-top: 5px; transition: color var(--transition-speed) ease;}
.coupon-error { color: var(--primary-red); font-size: 0.9em; margin-top: 5px; transition: color var(--transition-speed) ease;}

/* 8. Quiz Page */
.quiz-container { display: flex; gap: 25px; width: 95%; max-width: 1400px; margin: 30px auto; }
.quiz-main { flex: 3; background: var(--bg-medium); border-radius: 12px; padding: 35px; border: 1px solid var(--border-color); transition: background-color var(--transition-speed) ease, border-color var(--transition-speed) ease;}
.quiz-sidebar { flex: 1; background: var(--bg-medium); border-radius: 12px; padding: 30px; align-self: flex-start; position: sticky; top: 100px; border: 1px solid var(--border-color); transition: background-color var(--transition-speed) ease, border-color var(--transition-speed) ease;}
#timer { font-size: 2.2em; font-weight: 700; color: var(--primary-red); text-align: center; margin-bottom: 25px; transition: color var(--transition-speed) ease;}
.question-block { background: var(--bg-light); border: 1px solid #444; border-radius: 8px; padding: 25px; margin-bottom: 25px; transition: all var(--transition-speed) ease; }
.question-block:focus-within { box-shadow: 0 0 15px rgba(230, 57, 70, 0.3); }
.question-number { font-size: 0.9em; color: var(--text-medium); margin: 0; transition: color var(--transition-speed) ease;}
.question-text { font-size: 1.2em; margin: 10px 0 25px 0; font-weight: 500; }
.option { display: block; margin-bottom: 12px; padding: 15px; border: 1px solid #444; border-radius: 8px; cursor: pointer; transition: background-color var(--transition-speed), border-color var(--transition-speed); }
.option:hover { background-color: #3f3f3f; border-color: #666; }
.option input { margin-right: 12px; vertical-align: middle; } .option label { display: inline; }
.question-actions { display: flex; gap: 10px; margin-top: 20px; flex-wrap: wrap; }
.mark-btn-small { padding: 5px 12px; font-size: 0.9em; }
.btn-clear-response { padding: 5px 12px; font-size: 0.9em; background: #555; color: #fff; border: none; border-radius: 5px; cursor: pointer; transition: background-color var(--transition-speed); }
.btn-clear-response:hover { background: #666; }
.submit-button { display: flex; justify-content: center; margin-top: 30px; }
.submit-button .btn { width: 100%; font-size: 1.2em; padding: 18px; }
@media (max-width: 992px) { .quiz-container { flex-direction: column; } .quiz-sidebar { position: static; margin-top: 20px; flex: auto; } }

/* 9. Question Palette */
#question-palette { display: grid; grid-template-columns: repeat(auto-fit, minmax(38px, 1fr)); gap: 10px; margin-bottom: 25px; }
.palette-square { width: auto; height: 38px; display: flex; justify-content: center; align-items: center; border-radius: 6px; cursor: pointer; font-weight: 600; font-size: 0.9em; transition: all var(--transition-speed) ease; background-color: var(--bg-dark); border: 1px solid var(--primary-red); color: var(--text-light); position: relative; }
.palette-square:hover { transform: scale(1.1); box-shadow: 0 0 10px var(--primary-red); }
.palette-square.answered { background-color: var(--accent-green); border-color: var(--accent-green); color: white; }
.palette-square.marked-for-review { background-color: var(--accent-purple); border-color: var(--accent-purple); color: white; }
.palette-square.answered-and-marked { background-color: var(--accent-green); border-color: var(--accent-green); color: white; }
.palette-square.answered-and-marked::after { content: ''; position: absolute; top: 4px; right: 4px; width: 8px; height: 8px; border-radius: 50%; background-color: var(--accent-purple); border: 1px solid #fff; }
.palette-square.current { box-shadow: 0 0 0 3px var(--text-light); transform: scale(1.1); transition: box-shadow var(--transition-speed) ease;}
.palette-legend { font-size: 0.9em; }
.palette-legend div { display: flex; align-items: center; margin-bottom: 8px; }
.palette-legend .square { width: 18px; height: 18px; border-radius: 3px; margin-right: 10px; border: 1px solid #888; position: relative; transition: background-color var(--transition-speed) ease, border-color var(--transition-speed) ease;}
.palette-legend .not-attempted { background-color: var(--bg-dark); border-color: var(--primary-red); }
.palette-legend .answered, .palette-legend .answered-and-marked { background-color: var(--accent-green); border-color: var(--accent-green); }
.palette-legend .marked-for-review { background-color: var(--accent-purple); border-color: var(--accent-purple); }
.palette-legend .answered-and-marked::after { content: ''; position: absolute; top: 2px; right: 2px; width: 6px; height: 6px; border-radius: 50%; background-color: var(--accent-purple); border: 1px solid #fff; transition: background-color var(--transition-speed) ease;}
.sidebar-info { margin-top: 25px; font-size: 0.9em; color: var(--text-medium); border-top: 1px solid var(--border-color); padding-top: 20px; transition: color var(--transition-speed) ease, border-color var(--transition-speed) ease;}

/* 10. Results Page */
#results-modal .modal-content { max-width: 800px; margin: 5% auto; max-height: 85vh; overflow-y: auto; }
#score-display { text-align: center; margin: 25px 0 30px; }
#score-display #score { font-size: 4em; font-weight: 700; color: var(--primary-red); transition: color var(--transition-speed) ease;}
.results-buttons { display: flex; justify-content: center; gap: 15px; margin-bottom: 30px; flex-wrap: wrap; }
.result-question { background: var(--bg-medium); border: 1px solid #444; border-radius: 8px; padding: 20px; margin-bottom: 20px; transition: background-color var(--transition-speed) ease, border-color var(--transition-speed) ease;}
.result-question p { margin-top: 0; }
.correct-answer { color: var(--accent-green); font-weight: bold; transition: color var(--transition-speed) ease;}
.wrong-answer { color: var(--primary-red); font-weight: bold; text-decoration: line-through; transition: color var(--transition-speed) ease;}
#answers-explanation { border-top: 1px solid var(--border-color); padding-top: 20px; margin-top: 20px; transition: border-color var(--transition-speed) ease;}

/* 11. Test List (Landscape Cards) */
.test-list-landscape { display: flex; flex-direction: column; gap: 15px; }
.test-list-card { display: flex; align-items: center; justify-content: space-between; background: var(--bg-light); border: 1px solid var(--border-color); border-radius: 8px; padding: 20px 25px; transition: all var(--transition-speed) ease; }
.test-list-card:hover { border-color: var(--primary-red); transform: scale(1.02); box-shadow: 0 4px 15px rgba(0,0,0,0.5); }
.test-info { flex-grow: 1; margin-right: 15px; }
.test-info h4 { margin: 0 0 5px 0; color: var(--text-light); font-size: 1.2em; transition: color var(--transition-speed) ease;}
.test-info p { margin: 0; font-size: 0.9em; color: var(--text-medium); transition: color var(--transition-speed) ease;}
.test-actions { display: flex; align-items: center; gap: 15px; flex-shrink: 0; }
.btn-leaderboard { padding: 8px 15px; font-size: 0.9em; background: linear-gradient(145deg, #444, #333); box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); white-space: nowrap; }
.btn-leaderboard:hover { background: linear-gradient(145deg, #555, #444); }
.btn-play { display: flex; align-items: center; justify-content: center; width: 45px; height: 45px; font-size: 1.5em; color: var(--text-light); background: var(--accent-green); border-radius: 50%; text-decoration: none; transition: all var(--transition-speed) ease; box-shadow: 0 4px 10px rgba(42, 157, 143, 0.3); }
.btn-play:hover { background: #2fbaa8; transform: scale(1.1); box-shadow: 0 6px 15px rgba(42, 157, 143, 0.5); }
@media (max-width: 576px) { .test-list-card { flex-direction: column; align-items: flex-start; padding: 15px; } .test-info { margin-right: 0; margin-bottom: 15px; } .test-actions { width: 100%; justify-content: space-between; } }

/* 12. Admin Pages */
.admin-form-container, .admin-user-list, .legal-content, .instructions-content { background: var(--bg-medium); padding: 30px; border-radius: 8px; margin-bottom: 30px; border: 1px solid var(--border-color); transition: background-color var(--transition-speed) ease, border-color var(--transition-speed) ease;}
.admin-form .checkbox-group, .radio-group { background: var(--bg-light); padding: 20px; border-radius: 8px; transition: background-color var(--transition-speed) ease; text-align: left; }
.admin-form .checkbox-group { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.radio-group label { margin-right: 15px; display: inline-block; margin-bottom: 5px;}
.admin-table { width: 100%; border-collapse: collapse; margin-top: 20px; table-layout: fixed; }
.admin-table th, .admin-table td { padding: 15px; border-bottom: 1px solid #333; text-align: left; transition: border-color var(--transition-speed) ease; word-wrap: break-word; }
.admin-table th { background-color: var(--bg-light); color: var(--primary-red); font-weight: 600; transition: background-color var(--transition-speed) ease, color var(--transition-speed) ease;}
.admin-table tbody tr:nth-child(even) { background-color: #2f2f2f; }
.admin-table td .btn { padding: 5px 10px; font-size: 0.9em; }
.btn-revoke { padding: 3px 8px !important; font-size: 0.8em !important; margin-right: 5px; margin-bottom: 5px; }
.access-list { list-style: none; margin: 0; padding-left: 0; } .access-list li { margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px dotted var(--border-color); transition: border-color var(--transition-speed) ease;} .access-list li:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; } .status-emi { color: var(--accent-yellow); font-weight: bold; } .status-full { color: var(--accent-green); font-weight: bold; }
.multi-select-label { display: block; margin-bottom: 5px; font-weight: 500;}
.multi-select-container { border: 1px solid #444; border-radius: 8px; padding: 10px; background-color: var(--bg-light); max-height: 150px; overflow-y: auto; transition: background-color var(--transition-speed) ease, border-color var(--transition-speed) ease;}
.multi-select-container label { display: block; margin-bottom: 5px; font-weight: normal; cursor: pointer;}
.multi-select-container input { margin-right: 8px; }
.constraints-list { font-size: 0.8em; color: var(--text-medium); list-style: none; padding-left: 0; margin: 0; transition: color var(--transition-speed) ease;}
.constraints-list li { margin-bottom: 3px; }

/* 13. Leaderboard Modal Table */
#leaderboard-modal .modal-content { max-width: 700px; }
#leaderboard-content { margin-top: 20px; max-height: 60vh; overflow-y: auto; }
.leaderboard-table { width: 100%; border-collapse: collapse; margin-top: 10px; }
.leaderboard-table th, .leaderboard-table td { padding: 12px 15px; border-bottom: 1px solid #444; text-align: left; transition: border-color var(--transition-speed) ease;}
.leaderboard-table th { background-color: var(--bg-medium); color: var(--primary-red); font-weight: 600; transition: background-color var(--transition-speed) ease, color var(--transition-speed) ease;}
.leaderboard-table tbody tr:nth-child(even) { background-color: #2f2f2f; transition: background-color var(--transition-speed) ease;}
.leaderboard-table td:first-child { font-weight: bold; text-align: center; width: 60px; }

/* 14. Browser Nav (Enhanced Premium Look) */
.browser-nav { margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid var(--border-color); display: flex; align-items: center; transition: border-color var(--transition-speed) ease;}
.browser-nav button { background: linear-gradient(145deg, #555, #3a3a3a); color: var(--text-light); border: none; border-radius: 8px; padding: 8px 16px; font-size: 1.1em; font-weight: 600; cursor: pointer; margin-right: 10px; transition: all var(--transition-speed) ease; box-shadow: 0 3px 6px rgba(0,0,0,0.5); line-height: 1; }
.browser-nav button:hover { background: linear-gradient(145deg, #666, #4a4a4a); transform: translateY(-2px); box-shadow: 0 5px 10px rgba(0,0,0,0.7); }
.browser-nav button:active { transform: translateY(0px); box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.browser-nav button:disabled { opacity: 0.4; cursor: not-allowed; transform: none; box-shadow: none; background: #444; }

/* 15. Footer */
.dashboard-footer { background-color: #0d0d0d; color: var(--text-medium); padding: 30px 0; margin-top: 50px; border-top: 3px solid var(--primary-red); font-size: 0.9em; clear: both; transition: background-color var(--transition-speed) ease, border-color var(--transition-speed) ease, color var(--transition-speed) ease;}
.dashboard-footer .container { text-align: center; }
.dashboard-footer p { margin: 8px 0; }
.dashboard-footer a { color: #ccc; text-decoration: underline; transition: color var(--transition-speed) ease;}
.dashboard-footer a:hover { color: var(--primary-red); }
.footer-links { margin-bottom: 15px; }
.footer-links a { color: var(--text-medium); margin: 0 10px; text-decoration: none; }
.footer-links a:hover { color: var(--text-light); text-decoration: underline; }
.footer-divider { border: 0; border-top: 1px solid #444; margin: 15px auto; width: 80%; transition: border-color var(--transition-speed) ease;}

/* 16. Notification Page */
.notification-item { background: var(--bg-medium); border: 1px solid var(--border-color); border-left: 5px solid var(--primary-red); padding: 15px 20px; border-radius: 8px; margin-bottom: 15px; word-wrap: break-word; transition: all var(--transition-speed) ease; }
.notification-item p { margin-bottom: 5px; line-height: 1.5; }
.notification-date { font-size: 0.85em; color: var(--text-medium); text-align: right; margin-top: 8px; transition: color var(--transition-speed) ease;}
.attachment-link { display: inline-block; margin-top: 10px; font-weight: 500; text-decoration: underline; color: var(--accent-yellow); transition: color var(--transition-speed) ease; }
.attachment-link:hover { color: #ffc107; }
#notifications-list { margin-top: 20px; }

/* 17. Score Page Table & Review Modal */
.score-table td:nth-child(3), .score-table td:nth-child(4) { text-align: center; }
.score-table td:last-child { text-align: center; }
.btn-view-answers { padding: 4px 10px !important; font-size: 0.85em !important; }
#review-modal .modal-content { max-width: 800px; max-height: 85vh; overflow-y: auto; }
.review-question { background: var(--bg-medium); border: 1px solid #444; border-radius: 8px; padding: 20px; margin-bottom: 20px; transition: background-color var(--transition-speed) ease, border-color var(--transition-speed) ease;}
.review-question p { margin-top: 0; }
.review-correct-answer { color: var(--accent-green); font-weight: bold; transition: color var(--transition-speed) ease;}
#review-content { margin-top: 20px; }

/* 18. Coupon Modal Specific */
.price-display { font-size: 1.1em; font-weight: 600; color: var(--accent-yellow); margin-top: 10px; margin-bottom: 15px; }
.bundle-description, .subject-description { font-size: 0.9em; color: var(--text-medium); margin-top: 8px; margin-bottom: 15px; }

/* 19. Light Theme Specific Overrides */
body.light-theme {
    /* Variables were defined at the top */
    .navbar { background-color: #ecf0f1; border-bottom-color: var(--primary-red); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);}
    .navbar .logo { color: var(--primary-red); }
    .navbar nav a { color: #333; }
    .navbar nav a.active { color: var(--primary-red); }
    .navbar nav a::after { background-color: var(--primary-red); }
    .admin-logout-btn { background-color: #ddd; color: #333 !important;}
    .admin-logout-btn:hover { background-color: #ccc; color: #000 !important;}

    .auth-container, .test-card, .test-card-placeholder, .admin-menu-card,
    .quiz-main, .quiz-sidebar, .question-block, .result-question,
    .admin-form-container, .admin-user-list, .legal-content, .instructions-content,
    .modal-content, .notification-item, .review-question {
         background-color: var(--bg-medium); border-color: var(--border-color); box-shadow: 0 6px 20px var(--shadow-light);
    }

    input[type="text"], input[type="email"], input[type="password"], input[type="url"], input[type="number"],
    .admin-select, textarea { background-color: #ffffff; color: #333333; border: 1px solid #cccccc; }
    input[type="text"]:focus, input[type="email"]:focus, input[type="password"]:focus, input[type="url"]:focus, input[type="number"]:focus,
    .admin-select:focus, textarea:focus { border-color: var(--primary-red); box-shadow: 0 0 8px rgba(192, 57, 43, 0.3); }
    textarea::placeholder { color: #aaaaaa; }

    .admin-table th, .score-table th, .leaderboard-table th { background-color: #eeeeee; }
    .admin-table tbody tr:nth-child(even),
    .score-table tbody tr:nth-child(even),
    .leaderboard-table tbody tr:nth-child(even) { background-color: #f9f9f9; }
    .admin-form .checkbox-group, .radio-group, .multi-select-container { background: var(--bg-light); border-color: #ccc;}
    .code { background: #eee; color: #333; }

    .dashboard-footer { background-color: #ecf0f1; color: #555; border-top-color: var(--primary-red); }
    .dashboard-footer a { color: #333; }
    .dashboard-footer a:hover { color: var(--primary-red); }
    .footer-links a { color: var(--text-medium); }
    .footer-links a:hover { color: var(--text-light); }
    .footer-divider { border-top-color: #ccc; }

    .palette-square { background-color: #e0e0e0; border-color: #bdbdbd; color: var(--text-medium); }
    .palette-square.answered { background-color: var(--accent-green); border-color: var(--accent-green); color: white; }
    .palette-square.marked-for-review { background-color: var(--accent-purple); border-color: var(--accent-purple); color: white; }
    .palette-square.answered-and-marked { background-color: var(--accent-green); border-color: var(--accent-green); color: white; }
    .palette-square.answered-and-marked::after { background-color: var(--accent-purple); border: 1px solid #ccc; }
    .palette-square.current { box-shadow: 0 0 0 3px var(--primary-red); }
    .palette-legend .square { border: 1px solid #ccc; }
    .palette-legend .not-attempted { background-color: #e0e0e0; border-color: #bdbdbd; }
    .palette-legend .answered, .palette-legend .answered-and-marked { background-color: var(--accent-green); border-color: var(--accent-green); }
    .palette-legend .marked-for-review { background-color: var(--accent-purple); border-color: var(--accent-purple); }
    .palette-legend .answered-and-marked::after { border: none;}

    .option { border-color: #ddd; }
    .option:hover { background-color: #f0f0f0; border-color: #ccc; }

    .browser-nav button { background: linear-gradient(145deg, #f0f0f0, #dcdcdc); color: #444; box-shadow: 0 3px 6px rgba(0,0,0,0.1); }
    .browser-nav button:hover { background: linear-gradient(145deg, #ffffff, #e8e8e8); box-shadow: 0 5px 10px rgba(0,0,0,0.15); }
    .browser-nav button:active { box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
    .browser-nav button:disabled { background: #eee; opacity: 0.6; }

    .theme-toggle { color: var(--text-medium); border-color: var(--border-color); }
    .theme-toggle:hover { color: var(--text-light); border-color: var(--text-light); }

    .notification-item { border-left-color: var(--primary-red); }
    .attachment-link { color: var(--accent-yellow); }
    .attachment-link:hover { color: #e67e22; }

    .test-list-card:hover { box-shadow: 0 4px 15px rgba(0,0,0,0.2); }
    .btn-play:hover { box-shadow: 0 6px 15px rgba(42, 157, 143, 0.3); } /* Lighter shadow */
}

/* --- End of Styles --- */
/* --- 20. Responsive Hamburger Navbar & Mobile Styles --- */

/* The hamburger button (3 lines) */
.nav-toggle {
    display: none; /* Hide on desktop */
    background: none;
    border: 2px solid var(--border-color);
    border-radius: 5px;
    padding: 5px;
    cursor: pointer;
    z-index: 1002; /* Above the nav links, below modal */
    transition: all var(--transition-speed) ease;
}

.nav-toggle .hamburger-line {
    display: block;
    width: 25px;
    height: 3px;
    background-color: var(--text-light); /* Line color */
    margin: 5px 0;
    transition: all var(--transition-speed) ease;
}

/* Light theme support */
body.light-theme .nav-toggle {
    border-color: var(--border-color);
}
body.light-theme .nav-toggle .hamburger-line {
    background-color: var(--text-light);
}

/* The navigation links container */
.navbar nav {
    /* This ID will be added to the <nav> tag in the HTML */
    display: flex;
    align-items: center;
}

/* --- Mobile Styles --- */
/* This @media query targets all screens 992px wide or smaller */
@media (max-width: 992px) {
    
    .navbar .container {
        flex-direction: row; /* Change back to row */
        justify-content: space-between; /* Space out logo and toggle button */
        align-items: center;
        position: relative; /* Needed for menu positioning */
    }
    
    .nav-toggle {
        display: block; /* Show hamburger button */
    }

    .navbar nav {
        /* This hides the nav links and turns it into a slide-out menu */
        display: none; /* Hide nav links by default */
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
        max-width: 300px; /* Set a max width for the slide-out */
        height: 100vh; /* Full screen height */
        position: fixed; /* Fix to the viewport */
        top: 0;
        left: 0;
        background-color: #0d0d0d; /* Dark background */
        padding: 100px 30px 30px 30px; /* Padding to clear logo/toggle */
        border-right: 2px solid var(--primary-red);
        box-shadow: 5px 0px 20px rgba(0,0,0,0.5);
        transform: translateX(-100%); /* Start off-screen to the left */
        transition: transform var(--transition-speed) ease-in-out;
        margin-top: 0;
        z-index: 1001; /* Below toggle button, above main content */
    }
    
    /* Light theme style for the slide-out menu */
    body.light-theme .navbar nav {
        background-color: #ecf0f1;
        box-shadow: 5px 0px 20px rgba(0,0,0,0.2);
    }

    /* This class is added by JavaScript to show the menu */
    .navbar nav.nav-links-active {
        display: flex;
        transform: translateX(0); /* Slide in */
    }

    /* Style links in the slide-out menu */
    .navbar nav a,
    .navbar nav .theme-toggle {
        margin-left: 0;
        margin-bottom: 20px;
        width: 100%;
        font-size: 1.1em;
    }

    /* Hamburger "X" animation when active */
    .nav-toggle.nav-toggle-active .hamburger-line:nth-child(1) {
        transform: rotate(45deg) translate(5px, 6px);
    }
    .nav-toggle.nav-toggle-active .hamburger-line:nth-child(2) {
        opacity: 0;
    }
    .nav-toggle.nav-toggle-active .hamburger-line:nth-child(3) {
        transform: rotate(-45deg) translate(5px, -6px);
    }
}
