
/* --- Mobile Specific Overrides (Consolidated) --- */
@media (max-width: 768px) {
    #login-screen {
        align-items: flex-start !important;
        overflow-y: auto !important;
        padding: 70px 12px 18px !important;
    }

    #lang-switcher {
        position: fixed !important;
        top: 8px !important;
        right: 8px !important;
        left: 8px !important;
        display: grid !important;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 6px !important;
    }

    #lang-switcher button {
        padding: 6px 4px !important;
        font-size: 0.78rem !important;
        border-radius: 8px !important;
    }

    .welcome-shell {
        width: 100% !important;
        gap: 14px !important;
    }

    .welcome-panel,
    .paid-access-box {
        padding: 16px !important;
        border-radius: 14px !important;
    }

    .welcome-panel h1 {
        font-size: 1.32rem !important;
        line-height: 1.25 !important;
    }

    .welcome-subtitle {
        font-size: 0.92rem !important;
        line-height: 1.45 !important;
    }

    .welcome-test-icon-img {
        width: 34px !important;
        height: 34px !important;
    }

    .welcome-test-title {
        font-size: 0.95rem !important;
    }

    .welcome-test-desc {
        font-size: 0.82rem !important;
    }

    .terms-consent-row {
        font-size: 0.78rem !important;
    }

    .terms-error {
        font-size: 0.76rem !important;
    }

    .legal-footer {
        left: 8px !important;
        right: 8px !important;
        transform: none !important;
        justify-content: center !important;
        border-radius: 10px !important;
        font-size: 0.72rem !important;
        gap: 6px !important;
        padding: 6px 8px !important;
    }

    /* General Container Padding */
    /* Dashboard Grid - 2 Columns for Mobile */
    #dashboard {
        padding: 10px !important;
        display: grid;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
        align-content: start !important;
        overflow-x: hidden !important; /* Prevent horizontal scroll */
    }

    .dashboard-card {
        min-width: 0 !important; /* Allow shrinking */
        width: auto !important;
        padding: 15px !important;
        margin: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: flex-start !important;
        min-height: 140px !important;
    }

    .card-icon {
        font-size: 2.5rem !important;
        margin-bottom: 8px !important;
    }

    .card-icon-img {
        width: 42px !important;
        height: 42px !important;
    }

    .card-title {
        font-size: 0.95rem !important;
        margin-bottom: 5px !important;
        line-height: 1.2 !important;
    }

    .card-desc {
        font-size: 0.75rem !important;
        line-height: 1.2 !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    body.grammar-mobile-overlay-open {
        overflow: hidden !important;
    }

    body.grammar-mobile-overlay-open #main-container,
    body.grammar-mobile-overlay-open #fixed-back-btn,
    body.grammar-mobile-overlay-open #content-header,
    body.grammar-mobile-overlay-open img[alt="Logo"] {
        visibility: hidden !important;
    }

    #grammar-mobile-overlay {
        display: none;
        position: fixed;
        inset: 0;
        z-index: 3000;
        background: #ffffff;
    }

    #grammar-mobile-overlay.open {
        display: flex !important;
        flex-direction: column;
    }

    .grammar-mobile-overlay-header {
        position: sticky;
        top: 0;
        z-index: 2;
        display: flex;
        flex-direction: column;
        gap: 8px;
        padding: 14px 16px 12px 16px;
        background: #ffffff;
        border-bottom: 1px solid #e5e7eb;
    }

    .grammar-mobile-back-btn {
        align-self: flex-start;
        background: none;
        border: none;
        color: #2563eb;
        font-weight: 700;
        font-size: 1rem;
        padding: 0;
        cursor: pointer;
    }

    .grammar-mobile-overlay-title {
        font-size: 1rem;
        font-weight: 700;
        color: #0f172a;
    }

    .grammar-mobile-overlay-body {
        flex: 1 1 auto;
        overflow-y: auto;
        padding: 16px 16px 120px 16px;
        box-sizing: border-box;
    }

    /* Full-screen mobile activity for opened sections */
    #main-container.mobile-activity-active {
        position: fixed;
        inset: 0;
        z-index: 900;
        background: #ffffff;
        overflow: hidden;
        height: 100vh;
        height: 100dvh;
    }

    #main-container.mobile-activity-active #content-header {
        display: flex !important;
        align-items: center;
        gap: 12px;
        padding: 16px 16px 12px 16px !important;
        background: #ffffff;
        border-bottom: 1px solid #e5e7eb;
        position: sticky;
        top: 0;
        z-index: 5;
    }

    #main-container.mobile-activity-active #content-header h2 {
        font-size: 1rem !important;
        line-height: 1.2 !important;
    }

    #main-container.mobile-activity-active #fixed-back-btn,
    #main-container.mobile-activity-active img[alt="Logo"] {
        display: none !important;
    }

    #main-container.mobile-activity-active #text-viewer,
    #main-container.mobile-activity-active #question-viewer,
    #main-container.mobile-activity-active #custom-test-container,
    #main-container.mobile-activity-active #admin-container {
        display: block;
        flex: 1 1 auto;
        min-height: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        border-radius: 0 !important;
        overflow-y: auto !important;
        box-sizing: border-box;
        padding: 14px !important;
    }

    #main-container.mobile-activity-active #text-viewer.grammar-viewer {
        display: flex !important;
        flex-direction: column;
        flex: 1 1 auto !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow-x: hidden !important;
        overflow-y: hidden !important;
        min-height: 0 !important;
    }

    /* Restored Missing Rules */
    #text-viewer, #admin-container, #custom-test-container {
        padding: 15px !important;
    }

    /* Custom Test Container - Mobile Scrolling & Spacing */
    #custom-test-container {
        padding-bottom: 140px !important; /* Space for fixed elements */
        overflow-y: auto !important;
        max-height: 100vh; /* Safety net */
    }

    /* Question Viewer - Critical Fix for Fixed Bottom Elements */
    #question-viewer {
        padding: 10px;
        padding-bottom: 140px !important; /* Extra space for fixed buttons/logo */
        justify-content: flex-start !important; /* Prevent vertical centering clipping */
        display: block !important; /* Allow normal flow */
        overflow-y: auto !important;
    }

    .question-container {
        padding-bottom: 40px;
        max-width: 100%;
    }

    .question-card {
        padding: 16px !important;
        border-radius: 12px !important;
    }

    .delf-exercise-card {
        padding: 12px !important;
        border-radius: 10px !important;
    }

    .delf-reading {
        font-size: 0.98rem !important;
        line-height: 1.45 !important;
    }

    .delf-question-title {
        font-size: 0.9rem !important;
    }

    /* Buttons - Mobile Optimization */
    /* Target specific actionable buttons to avoid breaking fixed UI elements */
    .question-container button, 
    .login-box button, 
    .controls-container button,
    .option-btn {
        width: 100% !important;
        margin-bottom: 12px !important;
        margin-right: 0 !important;
        padding: 16px !important; /* Larger touch target */
        font-size: 1.1rem !important;
        height: auto !important;
    }

    /* Controls Layout */
    .controls-container {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 15px !important;
        margin-top: 30px !important;
    }

    .controls-left, .controls-right {
        flex-direction: column !important;
        width: 100% !important;
        gap: 10px !important;
    }

    /* Fix Header Layout */
    .question-container > div:first-child > div {
        flex-wrap: wrap;
        gap: 10px;
    }

    /* Option Buttons */
    .option-btn {
        padding: 20px !important;
    }

    /* Admin Panel */
    #admin-container button {
        width: 100% !important;
        margin-bottom: 10px;
    }

    /* Grammar Section - Mobile Layout (Activity Style) */
    .grammar-container {
        flex-direction: column !important;
        height: 100% !important;
        min-height: 0 !important;
        overflow: hidden !important;
        position: relative;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        flex: 1 1 auto !important;
    }

    .grammar-sidebar {
        width: 100% !important;
        flex: 1 1 auto !important;
        min-height: 0 !important;
        height: 100% !important;
        max-height: none !important;
        border-right: none !important;
        border-bottom: none !important;
        display: block; /* Default visible */
        padding-bottom: 20px;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
    }

    .grammar-sidebar.mobile-hidden {
        display: none !important;
    }

    .grammar-content {
        width: 100% !important;
        padding: 15px !important;
        padding-bottom: 100px !important;
        overflow: visible !important;
        display: none; /* Default hidden on mobile */
    }

    .grammar-content.mobile-visible {
        display: block !important;
        min-height: 80vh; /* Ensure it takes up space */
    }

    .grammar-container.mobile-content-open {
        position: fixed !important;
        inset: 0 !important;
        z-index: 1200 !important;
        background: #ffffff !important;
        margin: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
    }

    .grammar-container.mobile-content-open .grammar-content {
        display: block !important;
        position: absolute !important;
        inset: 0 !important;
        z-index: 1 !important;
        width: 100% !important;
        min-height: 100% !important;
        padding: 16px 16px 120px 16px !important;
        background: #ffffff !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        overflow-y: auto !important;
    }

    .grammar-container.mobile-content-open .grammar-sidebar {
        display: none !important;
    }

    .grammar-container.mobile-content-open #grammar-mobile-header {
        display: block !important;
        position: sticky;
        top: 0;
        background: #ffffff;
        z-index: 2;
        padding-top: 4px;
    }

    #text-viewer.mobile-grammar-open {
        overflow: hidden !important;
        padding: 0 !important;
    }

    .sidebar-header {
        border-bottom: none !important;
    }

    .nav-group {
        border-bottom: none !important;
    }

    .sub-item-btn {
        border-bottom: none !important;
    }

    .grammar-sidebar h3 {
        border-bottom: none !important;
    }
}

body.mobile-mode #main-container.mobile-activity-active #text-viewer.grammar-viewer {
    display: flex !important;
    flex-direction: column;
    flex: 1 1 auto !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    min-height: 0 !important;
}

body.mobile-mode .grammar-container {
    flex-direction: column !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    position: relative;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    flex: 1 1 auto !important;
}

body.mobile-mode .grammar-sidebar {
    width: 100% !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: 100% !important;
    max-height: none !important;
    border-right: none !important;
    border-bottom: none !important;
    display: block;
    padding-bottom: 20px;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 360px) {
    #login-screen {
        padding: 74px 8px 14px !important;
    }

    #lang-switcher {
        gap: 4px !important;
    }

    #lang-switcher button {
        font-size: 0.7rem !important;
        padding: 6px 2px !important;
    }

    .welcome-panel,
    .paid-access-box,
    .login-box {
        padding: 12px !important;
    }

    .welcome-panel h1 {
        font-size: 1.16rem !important;
    }

    .welcome-subtitle {
        font-size: 0.84rem !important;
    }

    #dashboard {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }

    .dashboard-card {
        min-height: 120px !important;
        padding: 12px !important;
    }

    .card-title {
        font-size: 0.88rem !important;
    }

    .card-desc {
        font-size: 0.7rem !important;
    }

    #main-container.mobile-activity-active #content-header {
        padding: 12px 10px 10px !important;
    }

    #main-container.mobile-activity-active #content-header h2 {
        font-size: 0.92rem !important;
    }
}
