/* Main Quiz Container */
.simple-quiz-container-wrapper {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
    background-color: #f0f2f5;
    padding: 20px;
    border-radius: 8px;
    max-width: 700px;
    margin: 2em auto;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    position: relative;
    overflow: hidden;
}

/* Start Screen Styles */
#quiz-start-screen {
    text-align: center;
    padding: 20px;
}

.quiz-user-welcome-area {
    margin-bottom: 25px;
}
.quiz-user-welcome-area h2 {
    font-size: 2em;
    margin: 0 0 10px 0;
    color: #333;
}
.quiz-user-welcome-area p {
    font-size: 1.1em;
    color: #666;
    margin: 0;
}

.guest-form {
    margin-top: 20px;
    background: #fff;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}
.guest-form input {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 5px;
    margin-bottom: 10px;
    font-size: 1em;
    box-sizing: border-box;
}
.remember-me-label {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    font-size: 0.9em;
    color: #555;
}
.remember-me-label input {
    width: auto;
    margin-right: 8px;
    margin-bottom: 0;
}

.selection-container {
    background: #fff;
    padding: 25px;
    border-radius: 8px;
    margin-bottom: 20px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}
.selection-container h3 {
    margin: 0 0 15px 0;
    font-size: 1.5em;
    color: #333;
}

.lang-options-grid, .mode-options-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.lang-option {
    padding: 20px;
    border: 1px solid #ddd;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    text-align: center;
}
.lang-option:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    border-color: #2271b1;
}
.lang-option.active {
    background-color: #2271b1;
    color: #fff;
    border-color: #2271b1;
    font-weight: bold;
}
.lang-option.active span {
    color: #fff;
}

/* Mode Selection Cards */
.mode-option {
    padding: 28px 24px;
    border: 2px solid #e0e0e0;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.25s ease-in-out;
    text-align: left;
    position: relative;
    overflow: hidden;
}
.mode-option::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
}
.mode-option.mode-exam::before {
    background-color: #0d47a1;
}
.mode-option.mode-practice::before {
    background-color: #2e7d32;
}
.mode-option:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}
.mode-option.mode-exam:hover {
    border-color: #0d47a1;
}
.mode-option.mode-practice:hover {
    border-color: #2e7d32;
}
.mode-option.active.mode-exam {
    background: linear-gradient(135deg, #0d47a1, #1565c0);
    color: #fff;
    border-color: #0d47a1;
    box-shadow: 0 6px 20px rgba(13, 71, 161, 0.3);
}
.mode-option.active.mode-practice {
    background: linear-gradient(135deg, #2e7d32, #43a047);
    color: #fff;
    border-color: #2e7d32;
    box-shadow: 0 6px 20px rgba(46, 125, 50, 0.3);
}
.mode-option.active h4,
.mode-option.active p,
.mode-option.active .mode-features li {
    color: #fff;
}
.mode-icon {
    font-size: 2.2em;
    margin-bottom: 12px;
}
.mode-option h4 {
    margin: 0 0 8px 0;
    font-size: 1.3em;
    font-weight: 700;
    color: #333;
}
.mode-option .mode-desc {
    margin: 0 0 14px 0;
    font-size: 0.92em;
    color: #555;
    line-height: 1.5;
}
.mode-features {
    list-style: none;
    padding: 0;
    margin: 0;
}
.mode-features li {
    position: relative;
    padding-left: 22px;
    margin-bottom: 6px;
    font-size: 0.88em;
    color: #555;
    line-height: 1.4;
}
.mode-features li::before {
    content: '\2713';
    position: absolute;
    left: 0;
    font-weight: bold;
}
.mode-option.mode-exam .mode-features li::before {
    color: #0d47a1;
}
.mode-option.mode-practice .mode-features li::before {
    color: #2e7d32;
}
.mode-option.active .mode-features li::before {
    color: #fff;
}

#sq-notification-area {
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 5px;
    font-weight: bold;
    background-color: #ffcdd2;
    color: #c62828;
    border: 1px solid #ef9a9a;
}
#sq-notification-area.info {
    background-color: #e1f5fe;
    color: #0277bd;
    border: 1px solid #81d4fa;
}

#start-quiz-btn {
    width: 100%;
    padding: 15px;
    font-size: 1.2em;
    font-weight: bold;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    background-color: #28a745;
    color: white;
    transition: background-color 0.2s;
}
#start-quiz-btn:hover {
    background-color: #218838;
}
#start-quiz-btn:disabled {
    background-color: #ccc;
    cursor: not-allowed;
}

@media (max-width: 600px) {
    .lang-options-grid, .mode-options-grid {
        grid-template-columns: 1fr;
    }
}

/* Quiz Content Styles */
#quiz-main-content {
    display: none; /* Initially hidden */
}
#quiz-progress-bar-container {
    width: 100%;
    background-color: #e0e0e0;
    border-radius: 5px;
    margin-bottom: 15px;
    height: 10px;
}
#quiz-progress-bar {
    width: 0%;
    height: 10px;
    background-color: #4caf50;
    border-radius: 5px;
    transition: width 0.3s ease-in-out;
}
.quiz-header { border-bottom: 1px solid #e0e0e0; padding-bottom: 10px; margin-bottom: 20px; color: #555; display: flex; justify-content: space-between; align-items: center; }
#quiz-question-counter { margin: 0; font-size: 1em; font-weight: 600; }
#quiz-timer { font-size: 1.1em; font-weight: bold; color: #d32f2f; }
#quiz-question-area { 
    margin-bottom: 20px; 
    transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
}
#quiz-question-area.question-fade-out {
    opacity: 0;
    transform: translateY(-20px);
}
#quiz-question-area.question-fade-in {
    opacity: 1;
    transform: translateY(0);
}
#quiz-question-text { font-size: 1.5em; font-weight: 600; margin: 0 0 20px 0; color: #333; line-height: 1.4; }
#quiz-options-container .quiz-option { display: block; background: #fff; border: 1px solid #dcdcdc; border-radius: 8px; padding: 15px; margin-bottom: 10px; cursor: pointer; transition: all 0.2s ease-in-out; }
#quiz-options-container .quiz-option:hover { border-color: #2271b1; box-shadow: 0 0 5px rgba(34,113,177,0.2); }
#quiz-options-container .quiz-option.selected { border-color: #2271b1; background-color: #f0f8ff; font-weight: bold; }
#quiz-options-container input[type="radio"] { margin-right: 10px; }

/* Practice Mode Styles */
#quiz-explanation-area {
    background-color: #f9f9f9;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 15px;
    margin-top: 20px;
}
#quiz-explanation-area h4 {
    margin: 0 0 10px 0;
    color: #333;
}
.quiz-option.correct-answer-practice {
    background-color: #e8f5e9 !important;
    border-color: #4CAF50 !important;
    font-weight: bold;
}
.quiz-option.incorrect-answer-practice {
    background-color: #ffebed !important;
    border-color: #F44336 !important;
}

.quiz-button { background-color: #2271b1; color: #fff; border: none; padding: 12px 25px; font-size: 1em; font-weight: bold; border-radius: 5px; cursor: pointer; transition: background-color 0.2s; }
.quiz-button:hover { background-color: #1d5f96; }
.quiz-footer { text-align: right; }

/* Results Screen */
#quiz-results-screen { text-align: center; position: relative; z-index: 10; padding: 20px; min-height: 200px; }
#quiz-loading-spinner {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.8);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 20;
}
.spinner {
    border: 4px solid rgba(0, 0, 0, 0.1);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border-left-color: #2271b1;
    animation: spin 1s ease infinite;
}
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
#quiz-results-title { font-size: 2.5em; margin-bottom: 10px; }
#quiz-results-score { font-size: 1.5em; font-weight: bold; color: #2271b1; }
#quiz-results-message { font-size: 1.2em; margin-top: 5px; }
#quiz-results-personal-info { margin: 20px 0; padding: 15px; background-color: #e3f2fd; border-radius: 5px; color: #1e88e5; font-size: 1em; }
#quiz-results-buttons { margin-top: 20px; display: flex; justify-content: center; flex-wrap: wrap; gap: 15px; }
.quiz-button.secondary { background-color: transparent; color: #2271b1; border: 2px solid #2271b1; }
.quiz-button.secondary:hover { background-color: #e3f2fd; }
#quiz-special-offer { margin-top: 30px; padding: 20px; background: #fff; border-radius: 5px; border: 1px solid #ddd; text-align: left; }
#quiz-special-offer h4 { margin-top: 0; }

/* Answer Review Screen */
#quiz-review-screen { padding: 20px; }
#quiz-review-screen h2 { text-align: center; margin-bottom: 20px; }
.review-item { 
    background: #fff; 
    border: 1px solid #ddd; 
    border-radius: 8px; 
    margin-bottom: 15px; 
    padding: 15px;
    border-left-width: 5px;
}
.review-item.correct {
    border-left-color: #4CAF50;
}
.review-item.incorrect {
    border-left-color: #F44336;
}
.review-question a { 
    text-decoration: none; 
    color: #2271b1; 
    font-weight: bold;
    font-size: 1.1em;
}
.review-question a:hover { text-decoration: underline; }
.review-answers { margin-top: 10px; }
.review-answer { 
    margin-top: 8px; 
    font-size: 1em; 
    padding: 8px;
    border-radius: 4px;
}
.review-answer.submitted {
    background-color: #f0f0f0;
}
.review-item.incorrect .review-answer.submitted {
    background-color: #ffebed;
    color: #c62828;
}
.review-answer.correct-answer {
    background-color: #e8f5e9;
    color: #2e7d32;
    font-weight: bold;
}
.review-answer span {
    font-weight: bold;
}

/* Confetti */
#quiz-confetti-container { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; }
.confetti { position: absolute; width: 10px; height: 10px; opacity: 0; animation: confetti-fall 4s ease-out forwards; }
@keyframes confetti-fall { 0% { transform: translateY(-100px) rotateZ(0deg); opacity: 1; } 100% { transform: translateY(100vh) rotateZ(720deg); opacity: 0; } }

