        /* --- Mobile RWD --- */
        @media (max-width: 900px) {
            .ribbon-content { 
                flex-wrap: nowrap !important; 
                overflow-x: auto !important;  
                overflow-y: hidden;
                min-height: 0;
                height: auto;
                max-height: none;
                padding-bottom: 8px !important; 
                -webkit-overflow-scrolling: touch; 
            }
            .ribbon-collapsed {
                display: none !important;
            }
            
            /* Enhanced Top Ribbon Mobile Scroll */
            .ribbon-tabs { 
                overflow-x: auto !important; 
                flex-wrap: nowrap !important;
                -webkit-overflow-scrolling: touch;
                padding-right: 50px !important; /* Leave space for hovering toggle button */
            }
            .ribbon-tabs::-webkit-scrollbar { display: none; }
            .ribbon-tab { flex-shrink: 0; }
            .right-tabs-container { flex-shrink: 0; padding-right: 5px; gap: 2px; }

            .ribbon-toggle-btn {
                display: flex !important;
                position: absolute;
                right: 0;
                bottom: 0;
                height: 31px;
                padding: 0 15px 0 35px;
                align-items: center;
                justify-content: center;
                cursor: pointer; color: white;
                opacity: 0.95; transition: opacity 0.2s;
                z-index: 10;
                background: linear-gradient(90deg, rgba(43,87,154,0) 0%, var(--word-header-bg) 35%);
            }
            body.dark-mode .ribbon-toggle-btn {
                background: linear-gradient(90deg, rgba(26,26,26,0) 0%, var(--word-header-bg) 35%);
            }
            .ribbon-toggle-btn:hover { opacity: 1; }
            
            .ribbon-group { 
                flex-shrink: 0; 
                border-right: 1px solid var(--word-border) !important; 
            }
            .ribbon-group:last-child { border-right: none !important; }
            .window-controls { display: none; }
            .zoom-slider-container { display: none; } 
            #statusLang { display: none; }
            .status-page-decor { display: none !important; }
            .status-bar-timer {
                display: inline-flex !important;
                align-items: center;
                flex-shrink: 0;
            }
            .workspace { flex-direction: column; padding: 0 !important; gap: 0 !important; overflow: hidden; }
            .page-container { flex: none; width: 100%; max-width: 100%; height: auto; margin-bottom: 0; padding-bottom: 0; border-radius: 0; }
            
            #ref-container { flex: 0 0 40%; border-bottom: none; background: var(--word-workspace); z-index: 2; height: 40%; }
            #input-container { flex: 1 1 auto; background: var(--word-page); padding-bottom: 0; }
            
            .mobile-resizer {
                display: flex;
                align-items: center;
                justify-content: center;
                height: 16px;
                background-color: var(--word-border);
                cursor: row-resize;
                z-index: 10;
                flex-shrink: 0;
                touch-action: none; /* 防止滑動畫面 */
            }
            .mobile-resizer::after {
                content: ""; width: 40px; height: 4px; background-color: #aaa; border-radius: 2px;
            }
            body.dark-mode .mobile-resizer { background-color: #222; }
            body.dark-mode .mobile-resizer::after { background-color: #555; }

            .page-title { margin: 0; padding: 6px; background: #e0e0e0; position: sticky; top: 0; z-index: 10; border-bottom: 1px solid var(--word-border); font-size: 12px; }
            body.dark-mode .page-title { background: #333; }
            .a4-page { 
                min-height: auto !important; 
                padding: 10px 15px 40px 15px !important; 
                margin: 0 !important; box-shadow: none !important; border: none !important; background: transparent !important; 
            }
            #input-container .a4-page { padding-bottom: 80px !important; }
            .document-format { font-size: 16px; line-height: 1.6; }
            .word-dialog { width: 95%; }
            .word-dialog-body { padding: 12px 14px; }
            .mobile-tab-fab { display: flex; }
            .ribbon-content {
                min-height: 0;
                align-items: flex-start;
            }
            #settingsGroup.ribbon-group {
                min-height: 0;
                height: auto;
                padding-top: 4px;
                padding-bottom: 4px;
            }
            /* 測驗設定：手機單列四欄（標籤列 + 控制列），總高度兩行；窄螢幕靠 ribbon 橫向捲動 */
            #settingsGroup .ribbon-group-content {
                max-width: none;
            }
            .ribbon-input-group--exam-settings {
                grid-template-columns: 1fr 1fr 1.15fr 1.15fr;
                grid-template-areas:
                    "lang-lbl mode-lbl tier-lbl topic-lbl"
                    "lang-ctl mode-ctl tier-ctl topic-ctl";
                row-gap: 2px;
                column-gap: 6px;
                width: clamp(480px, 92vw, 720px);
                box-sizing: border-box;
                align-items: stretch;
                align-content: start;
            }
            .ribbon-input-group--exam-settings .es-lbl {
                justify-self: start;
                text-align: left;
                padding-top: 0;
                font-size: 10px;
                line-height: 1.2;
                white-space: normal;
                word-break: keep-all;
            }
            .ribbon-input-group--exam-settings .es-ctl .ribbon-select,
            .ribbon-input-group--exam-settings .wpm-tier-face {
                font-size: 11px;
            }
            .ribbon-input-group--exam-settings .wpm-tier-face {
                padding: 0 4px;
                gap: 4px;
            }
            .ribbon-input-group--exam-settings .wpm-tier-face__lbl {
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
                min-width: 0;
            }
            .ribbon-input-group--exam-settings .es-topic-inner {
                max-width: none;
                min-width: 0;
            }
            .ribbon-input-group--exam-settings .wpm-tier-picker {
                max-width: none;
                min-width: 0;
            }
            .ribbon-input-group--exam-settings #textSelect {
                min-width: 0;
            }

            /* 成績／溫習本／關於等（.page-view）：縮頁緣；考試頁為 #view-exam.workspace 不在此列 */
            .page-view {
                padding: 10px max(8px, env(safe-area-inset-right, 0px)) 16px max(8px, env(safe-area-inset-left, 0px));
            }
            .page-view .backstage-title {
                font-size: clamp(22px, 6.2vw, 28px);
                margin-bottom: 12px;
            }
            .page-view .seo-content {
                max-width: none;
                margin-bottom: 28px;
                font-size: 16px;
                line-height: 1.75;
            }
            .page-view .seo-content h2 {
                font-size: 20px;
                margin-top: 18px;
            }
            .page-view .seo-disclaimer {
                padding: 12px;
                margin-top: 18px;
                font-size: 14px;
            }
            .page-view .result-grid {
                gap: 10px;
                margin-bottom: 18px;
            }
            .page-view .result-card {
                padding: 12px 10px;
            }
            .page-view .result-val {
                font-size: clamp(26px, 7.5vw, 32px);
            }
            .page-view .chart-container {
                padding: 8px;
                margin-bottom: 18px;
            }
            .page-view .mistake-table th,
            .page-view .mistake-table td {
                padding: 8px 6px;
            }
            .page-view .support-bmc-host {
                margin-top: 18px;
            }

            /* 溫習本：清空鈕改為右下角浮動，減輕頂部擁擠（僅顯示於 #view-dict 時） */
            #view-dict.page-view {
                padding-bottom: max(56px, calc(48px + env(safe-area-inset-bottom, 0px)));
            }
            #view-dict .dict-toolbar {
                margin-bottom: 10px;
            }
            #view-dict .dict-toolbar-right {
                width: 100%;
                justify-content: flex-start;
            }
            #view-dict .dict-clear-all-btn {
                position: fixed;
                right: max(8px, env(safe-area-inset-right, 0px));
                bottom: max(30px, calc(26px + env(safe-area-inset-bottom, 0px)));
                z-index: 70;
                margin: 0;
                box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
                border-radius: 4px;
                background: var(--word-page);
                border: 1px solid var(--word-border);
            }
            body.dark-mode #view-dict .dict-clear-all-btn {
                box-shadow: 0 4px 16px rgba(0, 0, 0, 0.45);
            }
        }

        .ribbon-tab.mock-link {
            margin-left: auto;
            margin-right: 10px;
            background-color: #D83B01;
            color: #ffffff;
            text-decoration: none;
            display: flex;
            align-items: center;
            gap: 6px;
            border-radius: 2px 2px 0 0;
            transition: background-color 0.2s;
        }
        .ribbon-tab.mock-link:hover {
            background-color: #A42600 !important;
            color: #ffffff !important;
        }
        body.dark-mode .ribbon-tab.mock-link {
            background-color: #ff6b6b;
            color: #111111;
        }
        body.dark-mode .ribbon-tab.mock-link:hover {
            background-color: #ff4c4c !important;
            color: #111111 !important;
        }
        .mock-link-close {
            margin-left: 6px;
            opacity: 0.7;
            font-size: 10px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 18px;
            height: 18px;
            border-radius: 50%;
            transition: all 0.2s;
        }
        .mock-link-close:hover {
            opacity: 1;
            background-color: rgba(0, 0, 0, 0.2);
        }
        body.dark-mode .mock-link-close:hover {
            background-color: rgba(255, 255, 255, 0.3);
        }
        .mock-text-short { display: none; }
        
