    .daily-goal-overlay {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 9999;
        background: rgba(0, 0, 0, 0.85);
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 20px;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease, visibility 0.3s ease;
    }

    .daily-goal-overlay.show {
        opacity: 1;
        visibility: visible;
    }

    .daily-goal-overlay-content {
        background: #fdfaf3;
        border: 4px solid var(--amber-color, #f0a500);
        border-radius: 20px;
        max-width: 550px;
        width: 100%;
        max-height: 90vh;
        overflow-y: auto;
        text-align: center;
        padding: 25px 30px;
        transform: translateY(20px);
        transition: transform 0.3s ease;
        box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
    }

    .daily-goal-overlay.show .daily-goal-overlay-content {
        transform: translateY(0);
    }

    .daily-goal-overlay-image {
        width: 200px;
        height: auto;
        margin-bottom: 15px;
        border: 3px solid #ddd;
        border-radius: 8px;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    }

    .daily-goal-overlay-title {
        color: var(--primary-color, #27ae60);
        font-weight: bold;
        font-size: 1.6rem;
        margin-bottom: 10px;
    }

    .daily-goal-overlay-message {
        font-size: 1.1rem;
        margin-bottom: 15px;
    }

    .daily-goal-overlay-warning {
        background-color: #ffebee;
        border: 3px solid #f44336;
        border-radius: 10px;
        padding: 15px;
        margin-bottom: 15px;
        box-shadow: 0 4px 8px rgba(244, 67, 54, 0.3);
    }

    .daily-goal-overlay-warning p {
        margin: 0;
        color: #c62828;
        font-weight: bold;
        font-size: 0.95rem;
    }

    .daily-goal-overlay-timestamp {
        background-color: #e3f2fd;
        border: 1px solid #2196f3;
        border-radius: 8px;
        padding: 10px 15px;
        margin-bottom: 15px;
    }

    .daily-goal-overlay-breakdown {
        text-align: left;
        margin-top: 15px;
    }

    .daily-goal-overlay-btn {
        padding: 12px 30px;
        font-size: 1.1rem;
        font-weight: 600;
        margin-top: 10px;
    }

    .daily-goal-overlay-btn-container {
        margin-top: 15px;
    }

    .daily-goal-overlay-btn-container.hidden {
        display: none;
    }

    /* ===== V2.5.2: Test Zone Session Info Banner ===== */
    /* Replaces Bootstrap modal to fix mobile display issues */
    .session-info-banner {
        background: linear-gradient(135deg, #fff8e1 0%, #ffecb3 100%);
        border: 2px solid var(--amber-color, #f0a500);
        border-radius: 12px;
        padding: 15px 20px;
        margin-bottom: 20px;
        display: flex;
        align-items: flex-start;
        gap: 15px;
        animation: sessionBannerSlideDown 0.4s ease;
    }

    .session-info-banner.hidden {
        display: none;
    }

    .session-info-banner-icon {
        font-size: 2.5rem;
        color: var(--amber-color, #f0a500);
        flex-shrink: 0;
    }

    .session-info-banner-content {
        flex: 1;
    }

    .session-info-banner-title {
        font-weight: bold;
        font-size: 1.1rem;
        color: #333;
        margin-bottom: 5px;
    }

    .session-info-banner-text {
        font-size: 0.95rem;
        color: #555;
        margin-bottom: 10px;
    }

    .session-info-banner-text ul {
        margin: 8px 0 0 0;
        padding-left: 20px;
    }

    .session-info-banner-text li {
        margin-bottom: 5px;
    }

    .session-info-banner-dismiss {
        padding: 8px 20px;
        font-weight: 600;
        flex-shrink: 0;
        align-self: center;
    }

    @keyframes sessionBannerSlideDown {
        from {
            opacity: 0;
            transform: translateY(-15px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    /* Mobile adjustments for both components */
    @media (max-width: 576px) {
        .daily-goal-overlay-content {
            padding: 20px 15px;
            max-height: 95vh;
        }

        .daily-goal-overlay-image {
            width: 150px;
        }

        .daily-goal-overlay-title {
            font-size: 1.3rem;
        }

        .session-info-banner {
            flex-direction: column;
            text-align: center;
            gap: 10px;
        }

        .session-info-banner-icon {
            font-size: 2rem;
        }

        .session-info-banner-dismiss {
            align-self: center;
            width: 100%;
        }
    }

                #login-page-enrollment-code-input,
            label[for="login-page-enrollment-code-input"] {
                display: none !important;
            }

            /* IndexedDB Recovery Dialog Styles */
            .indexeddb-recovery-popup {
                background: rgba(0, 0, 0, 0.8);
                backdrop-filter: blur(5px);
                border-radius: 15px;
                padding: 30px;
                max-width: 500px;
                width: 90%;
                box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
                animation: slideInFromTop 0.3s ease-out;
            }

            .recovery-dialog-content {
                text-align: center;
                color: white;
            }

            .recovery-icon {
                margin-bottom: 20px;
            }

            .recovery-text h4 {
                color: #fff;
                margin-bottom: 15px;
                font-weight: 600;
            }

            .recovery-text p {
                color: #e0e0e0;
                margin-bottom: 15px;
                line-height: 1.5;
            }

            .recovery-text ul {
                color: #e0e0e0;
                margin: 15px 0;
                padding-left: 20px;
            }

            .recovery-text li {
                margin-bottom: 8px;
                text-align: left;
            }

            .recovery-actions {
                margin: 25px 0;
                display: flex;
                gap: 15px;
                justify-content: center;
                flex-wrap: wrap;
            }

            .recovery-actions .btn {
                min-width: 150px;
                padding: 12px 20px;
                font-weight: 500;
                border-radius: 8px;
                transition: all 0.3s ease;
            }

            .recovery-actions .btn:hover {
                transform: translateY(-2px);
                box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
            }

            .recovery-note {
                margin-top: 20px;
                padding-top: 15px;
                border-top: 1px solid rgba(255, 255, 255, 0.2);
            }

            .recovery-note small {
                color: #b0b0b0;
                font-size: 0.85rem;
            }

            @keyframes slideInFromTop {
                from {
                    opacity: 0;
                    transform: translateY(-50px);
                }

                to {
                    opacity: 1;
                    transform: translateY(0);
                }
            }

            @media (max-width: 576px) {
                .indexeddb-recovery-popup {
                    padding: 20px;
                    margin: 10px;
                }

                .recovery-actions {
                    flex-direction: column;
                    align-items: center;
                }

                .recovery-actions .btn {
                    width: 100%;
                    max-width: 250px;
                }
            }

            /* V2.3.1: Hutton Button - Test Zone deliberate answering feature */
            #hutton-button-container {
                max-width: 500px;
                margin: 0 auto;
                padding: 1.5rem;
                background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
                border-radius: 12px;
                border: 1px solid #dee2e6;
            }

            .hutton-title {
                color: #6c757d;
                font-size: 0.75rem;
                font-weight: 400;
                text-transform: uppercase;
                letter-spacing: 0.5px;
                margin-bottom: 0.75rem;
            }

            .hutton-reveal-btn {
                background: linear-gradient(135deg, #198754 0%, #157347 100%);
                border: none;
                color: white;
                padding: 0.6rem 1.5rem;
                border-radius: 8px;
                font-weight: 500;
                cursor: pointer;
                box-shadow: 0 2px 8px rgba(25, 135, 84, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2);
                transition: all 0.2s ease;
            }

            .hutton-reveal-btn:hover {
                background: linear-gradient(135deg, #157347 0%, #146c43 100%);
                box-shadow: 0 4px 12px rgba(25, 135, 84, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2);
                transform: translateY(-1px);
            }

            .hutton-reveal-btn:active {
                transform: translateY(0);
                box-shadow: 0 1px 4px rgba(25, 135, 84, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2);
            }

            #hutton-answer-input {
                border: 2px solid #0d6efd;
                border-radius: 8px;
                resize: none;
                transition: border-color 0.2s ease, box-shadow 0.2s ease;
            }

            #hutton-answer-input:focus {
                border-color: #0a58ca;
                box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
                outline: none;
            }

            #hutton-answer-input::placeholder {
                color: #6c757d;
                font-style: italic;
            }

            /* Collapsible "Your Answer" bar - shown after reveal */
            #hutton-your-answer-bar {
                max-width: 500px;
                margin: 0 auto 1rem auto;
            }

            .hutton-answer-toggle {
                background: linear-gradient(135deg, #e7f1ff 0%, #d4e5ff 100%);
                border: 1px solid #b6d4fe;
                border-radius: 8px;
                padding: 0.5rem 1rem;
                cursor: pointer;
                display: flex;
                align-items: center;
                justify-content: space-between;
                transition: all 0.2s ease;
                width: 100%;
            }

            .hutton-answer-toggle:hover {
                background: linear-gradient(135deg, #d4e5ff 0%, #c1d9ff 100%);
            }

            .hutton-answer-toggle-text {
                font-size: 0.9rem;
                color: #0d6efd;
                font-weight: 500;
            }

            .hutton-answer-toggle-icon {
                color: #0d6efd;
                transition: transform 0.2s ease;
            }

            .hutton-answer-toggle.expanded .hutton-answer-toggle-icon {
                transform: rotate(180deg);
            }

            .hutton-answer-content {
                background: #f8f9fa;
                border: 1px solid #dee2e6;
                border-top: none;
                border-radius: 0 0 8px 8px;
                padding: 0.75rem 1rem;
                margin-top: -8px;
                font-style: italic;
                color: #495057;
                white-space: pre-wrap;
                word-break: break-word;
            }

                        /* ===== Daily Review Tab Styles ===== */

            /* Row color coding */
            .daily-review-row-correct {
                background-color: rgba(40, 167, 69, 0.1) !important;
                border-left: 4px solid #28a745;
            }

            .daily-review-row-incorrect {
                background-color: rgba(220, 53, 69, 0.1) !important;
                border-left: 4px solid #dc3545;
            }

            /* Table header styling */
            #daily-review-table thead tr.daily-review-header {
                background: linear-gradient(135deg, #4a5568 0%, #2d3748 100%) !important;
            }

            #daily-review-table thead tr.daily-review-header th {
                background: transparent !important;
                color: white !important;
                text-transform: uppercase;
                font-size: 0.75rem;
                letter-spacing: 0.5px;
                font-weight: 600;
                padding: 0.85rem 0.75rem;
                border: none !important;
                vertical-align: middle;
            }

            #daily-review-table thead tr.daily-review-header th:first-child {
                border-radius: 8px 0 0 0;
            }

            #daily-review-table thead tr.daily-review-header th:last-child {
                border-radius: 0 8px 0 0;
            }

            #daily-review-table thead tr.daily-review-header th i {
                opacity: 0.8;
            }

            /* Flip card styles - 3D flip animation with dynamic height */
            .flip-card {
                background-color: transparent;
                width: 100%;
                cursor: pointer;
                perspective: 1000px;
            }

            .flip-card-inner {
                position: relative;
                width: 100%;
                transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
                transform-style: preserve-3d;
            }

            /* Front (Click to reveal button) */
            .flip-card-front {
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                color: white;
                font-weight: 500;
                border-radius: 8px;
                padding: 0.75rem 1rem;
                text-align: center;
                backface-visibility: hidden;
                -webkit-backface-visibility: hidden;
                transition: transform 0.2s ease, box-shadow 0.2s ease;
            }

            .flip-card:not(.flipped) .flip-card-front:hover {
                transform: scale(1.02);
                box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
            }

            /* Back (Answer content) - hidden by default */
            .flip-card-back {
                display: none;
                padding: 0.85rem 1rem;
                font-size: 0.9rem;
                text-align: left;
                border-radius: 8px;
                line-height: 1.6;
                word-break: break-word;
                backface-visibility: hidden;
                -webkit-backface-visibility: hidden;
            }

            .flip-card-back.correct {
                background: linear-gradient(135deg, #48bb78 0%, #38a169 100%);
                color: white;
            }

            .flip-card-back.incorrect {
                background: linear-gradient(135deg, #fc8181 0%, #e53e3e 100%);
                color: white;
            }

            /* Flipping animation state */
            .flip-card.flipping .flip-card-inner {
                transform: rotateY(90deg);
            }

            /* Flipped state - show back, hide front */
            .flip-card.flipped .flip-card-front {
                display: none;
            }

            .flip-card.flipped .flip-card-back {
                display: block;
            }

            /* Flipped + flipping (returning animation) */
            .flip-card.flipped.flipping .flip-card-inner {
                transform: rotateY(90deg);
            }

            /* Click hint on answer */
            .flip-card-back .click-hint {
                font-size: 0.7rem;
                opacity: 0.75;
                margin-top: 0.6rem;
                text-align: right;
                display: block;
                font-style: italic;
            }

            /* Filter pills container */
            .daily-review-filters-box {
                background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
                border: 1px solid #dee2e6;
                border-radius: 12px;
                padding: 1rem;
                margin-bottom: 1rem;
            }

            .daily-review-filters-box .filter-hint {
                font-size: 0.8rem;
                color: #6c757d;
                margin-bottom: 0.75rem;
                display: flex;
                align-items: center;
                gap: 0.5rem;
            }

            .daily-review-filters-box .filter-hint i {
                color: #667eea;
            }

            /* Filter pills */
            .daily-review-filter-pill {
                padding: 0.4rem 0.85rem;
                border-radius: 20px;
                font-size: 0.8rem;
                cursor: pointer;
                border: 1px solid #dee2e6;
                background: white;
                color: #495057;
                transition: all 0.2s ease;
                box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
            }

            .daily-review-filter-pill:hover {
                background: #f8f9fa;
                transform: translateY(-1px);
                box-shadow: 0 2px 5px rgba(0, 0, 0, 0.12);
            }

            .daily-review-filter-pill.active {
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                color: white;
                border-color: transparent;
                box-shadow: 0 2px 8px rgba(102, 126, 234, 0.4);
            }

            .daily-review-filter-all {
                background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
                color: white;
                border-color: transparent;
            }

            .daily-review-filter-all:hover {
                background: linear-gradient(135deg, #218838 0%, #1aa179 100%);
            }

            .pill-count {
                display: inline-block;
                background: rgba(255, 255, 255, 0.3);
                border-radius: 10px;
                padding: 0.1rem 0.4rem;
                font-size: 0.7rem;
                margin-left: 0.25rem;
            }

            /* Summary stats box */
            .daily-review-summary-box {
                background: white;
                border: 1px solid #dee2e6;
                border-radius: 12px;
                padding: 1rem 1.5rem;
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 1.5rem;
                margin-bottom: 1.25rem;
                box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
            }

            .daily-review-stat {
                display: flex;
                align-items: center;
                gap: 0.5rem;
                font-weight: 500;
            }

            .daily-review-stat-correct {
                color: #28a745;
            }

            .daily-review-stat-correct .stat-icon {
                background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
                color: white;
                width: 32px;
                height: 32px;
                border-radius: 50%;
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 0.85rem;
            }

            .daily-review-stat-incorrect {
                color: #dc3545;
            }

            .daily-review-stat-incorrect .stat-icon {
                background: linear-gradient(135deg, #dc3545 0%, #e83e8c 100%);
                color: white;
                width: 32px;
                height: 32px;
                border-radius: 50%;
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 0.85rem;
            }

            .daily-review-stat-total {
                color: #495057;
                padding-left: 1rem;
                border-left: 2px solid #dee2e6;
            }

            .daily-review-stat-total .stat-icon {
                background: linear-gradient(135deg, #6c757d 0%, #495057 100%);
                color: white;
                width: 32px;
                height: 32px;
                border-radius: 50%;
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 0.85rem;
            }

            .stat-number {
                font-size: 1.25rem;
                font-weight: 600;
            }

            .stat-label {
                font-size: 0.75rem;
                color: #6c757d;
                text-transform: uppercase;
                letter-spacing: 0.5px;
            }

            /* Controls row */
            .daily-review-controls {
                display: flex;
                justify-content: space-between;
                align-items: center;
                gap: 1rem;
                flex-wrap: wrap;
                margin-bottom: 1rem;
            }

            .daily-review-sort-dropdown {
                min-width: 180px;
            }

            .daily-review-sort-dropdown select {
                border-radius: 8px;
                border: 1px solid #dee2e6;
                padding: 0.4rem 2rem 0.4rem 0.75rem;
                font-size: 0.85rem;
                background: white;
                cursor: pointer;
            }

            /* Reveal/Hide buttons */
            .daily-review-action-btns .btn {
                border-radius: 8px;
                padding: 0.5rem 1rem;
                font-weight: 500;
                transition: all 0.2s ease;
            }

            .daily-review-action-btns .btn-reveal {
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                color: white;
                border: none;
            }

            .daily-review-action-btns .btn-reveal:hover {
                transform: translateY(-1px);
                box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
            }

            .daily-review-action-btns .btn-hide {
                background: #f8f9fa;
                color: #495057;
                border: 1px solid #dee2e6;
            }

            .daily-review-action-btns .btn-hide:hover {
                background: #e9ecef;
                transform: translateY(-1px);
            }

            /* Pill count inside filter pills */
            .daily-review-filter-pill .pill-count {
                display: inline-block;
                background: rgba(255, 255, 255, 0.3);
                padding: 0 0.4rem;
                border-radius: 10px;
                font-size: 0.7rem;
                margin-left: 0.3rem;
            }

            /* Responsive adjustments */
            .daily-review-mobile-scroll-tip {
                display: none;
            }

            @media (max-width: 768px) {
                .daily-review-mobile-scroll-tip {
                    display: block;
                    font-size: 0.85rem;
                    border-radius: 10px;
                }

                #tab-daily-review .table-responsive {
                    overflow-x: auto !important;
                    overflow-y: visible;
                    -webkit-overflow-scrolling: touch;
                }

                #tab-daily-review .table {
                    font-size: 0.8rem;
                    min-width: 760px;
                }

                #daily-review-table th,
                #daily-review-table td {
                    white-space: normal;
                    vertical-align: top;
                }

                #daily-review-table th:last-child,
                #daily-review-table td:last-child {
                    min-width: 220px;
                }

                .flip-card {
                    min-height: 45px;
                    min-width: 180px;
                }

                .flip-card-front,
                .flip-card-back {
                    padding: 0.6rem 0.8rem;
                }
            }
