:root{--bg-app: #f2f3f5;--bg-surface: #ffffff;--bg-header: #e4e7eb;--bg-footer: #e4e7eb;--bg-card: #ffffff;--bg-muted: #f8f9fa;--bg-highlight: #fff275;--bg-highlight-active: #ffe100;--text-main: #1f2429;--text-secondary: #586069;--text-muted: #6a737d;--text-inverse: #ffffff;--border-color: #d1d5da;--border-dark: #24292e;--ielts-red: #e31837;--ielts-red-hover: #b8142d;--ielts-navy: #003366;--ielts-blue: #0366d6;--ielts-yellow: #f1c40f;--ielts-green: #28a745;--ielts-gold: #c59b27;--status-answered: #000000;--status-unanswered: #6c757d;--status-review: #ffc107;--status-active: #0366d6;--header-height: 64px;--footer-height: 68px;--font-base: 15px;--font-passage: 16px;--font-heading: 20px;--line-height-passage: 1.7;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 12px rgba(0,0,0,.12);--shadow-lg: 0 10px 25px rgba(0,0,0,.18)}body.theme-black-on-white{--bg-app: #ffffff;--bg-surface: #ffffff;--bg-header: #ffffff;--bg-footer: #ffffff;--bg-card: #ffffff;--bg-muted: #f0f0f0;--bg-highlight: #ffff55;--bg-highlight-active: #ffff00;--text-main: #000000;--text-secondary: #000000;--text-muted: #333333;--border-color: #000000;--border-dark: #000000;--ielts-red: #000000;--ielts-blue: #000000}body.theme-white-on-black{--bg-app: #0d0e11;--bg-surface: #17181c;--bg-header: #131417;--bg-footer: #131417;--bg-card: #1f2026;--bg-muted: #282a33;--bg-highlight: #5c5500;--bg-highlight-active: #807700;--text-main: #ffffff;--text-secondary: #d0d2d6;--text-muted: #9aa0a6;--border-color: #3b3e4a;--border-dark: #5c6070;--ielts-red: #ff4d6a;--ielts-blue: #58a6ff}body.theme-yellow-on-black{--bg-app: #000000;--bg-surface: #0a0a0a;--bg-header: #000000;--bg-footer: #000000;--bg-card: #121212;--bg-muted: #1e1e1e;--bg-highlight: #4d4400;--bg-highlight-active: #736700;--text-main: #ffff00;--text-secondary: #ffff55;--text-muted: #d4d400;--border-color: #ffff00;--border-dark: #ffff00;--ielts-red: #ffff00;--ielts-blue: #ffff00}body.font-size-standard{--font-base: 15px;--font-passage: 16px;--font-heading: 20px}body.font-size-large{--font-base: 18px;--font-passage: 19px;--font-heading: 23px}body.font-size-xlarge{--font-base: 21px;--font-passage: 22px;--font-heading: 26px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;font-family:Arial,Helvetica Neue,Helvetica,Segoe UI,sans-serif;font-size:var(--font-base);color:var(--text-main);background-color:var(--bg-app);-webkit-font-smoothing:antialiased;-webkit-user-select:text;user-select:text}#root{width:100%;height:100%;display:flex;flex-direction:column}button{font-family:inherit;cursor:pointer;border:none;background:none;font-size:inherit;color:inherit;transition:all .15s ease}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}.ielts-header{height:var(--header-height);background-color:var(--bg-header);border-bottom:2px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 20px;flex-shrink:0;z-index:100}.ielts-header-left{display:flex;align-items:center;gap:16px}.ielts-badge-logo{background-color:var(--ielts-red);color:#fff;font-weight:700;font-size:16px;letter-spacing:.5px;padding:4px 10px;border-radius:3px;display:flex;align-items:center;gap:6px}.candidate-info-block{display:flex;flex-direction:column;line-height:1.2}.candidate-name{font-weight:700;font-size:14px;color:var(--text-main)}.candidate-id{font-size:12px;color:var(--text-secondary)}.ielts-header-center{display:flex;align-items:center;gap:12px}.ielts-timer-box{background-color:var(--bg-card);border:1px solid var(--border-color);padding:6px 14px;border-radius:4px;display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--text-main)}.ielts-timer-box.timer-warning{border-color:var(--ielts-red);color:var(--ielts-red);animation:pulse-warning 1s infinite alternate}@keyframes pulse-warning{0%{box-shadow:0 0 2px var(--ielts-red)}to{box-shadow:0 0 10px var(--ielts-red)}}.timer-toggle-btn{font-size:12px;text-decoration:underline;color:var(--ielts-blue);padding:2px 4px;cursor:pointer}.ielts-header-right{display:flex;align-items:center;gap:10px}.header-action-btn{display:flex;align-items:center;gap:6px;background-color:var(--bg-card);border:1px solid var(--border-color);padding:6px 12px;border-radius:4px;font-size:13px;font-weight:600;color:var(--text-main)}.header-action-btn:hover{background-color:var(--bg-muted)}.header-action-btn.finish-test-btn{background-color:var(--ielts-red);color:#fff;border-color:var(--ielts-red)}.header-action-btn.finish-test-btn:hover{background-color:var(--ielts-red-hover)}.ielts-bottom-bar{height:var(--footer-height);background-color:var(--bg-footer);border-top:2px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 16px;flex-shrink:0;z-index:100}.bottom-section-tabs{display:flex;align-items:center;gap:6px}.section-tab-btn{padding:6px 12px;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;font-size:13px;font-weight:700;color:var(--text-secondary)}.section-tab-btn.active{background-color:var(--text-main);color:var(--bg-surface);border-color:var(--text-main)}.bottom-questions-scroll{display:flex;align-items:center;gap:6px;overflow-x:auto;padding:4px 8px;max-width:65vw}.question-nav-btn{min-width:34px;height:34px;padding:0 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:3px;font-size:13px;font-weight:600;color:var(--text-secondary);position:relative;transition:all .1s ease}.question-nav-btn.answered{color:var(--text-main);border-color:var(--text-main);font-weight:700;text-decoration:underline;border-bottom:3px solid var(--text-main)}.question-nav-btn.flagged{border-color:var(--status-review);background-color:#ffc10726}.question-nav-btn.flagged:after{content:"★";position:absolute;top:-4px;right:-2px;font-size:9px;color:var(--status-review)}.question-nav-btn.active{outline:2px solid var(--ielts-blue);background-color:var(--bg-muted);box-shadow:0 0 6px #0366d666}.bottom-nav-actions{display:flex;align-items:center;gap:12px}.review-checkbox-wrapper{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.arrow-nav-btn{width:36px;height:36px;border-radius:4px;background-color:var(--bg-card);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700}.arrow-nav-btn:hover:not(:disabled){background-color:var(--bg-muted)}.arrow-nav-btn:disabled{opacity:.4;cursor:not-allowed}.exam-split-container{display:flex;flex:1;height:calc(100vh - var(--header-height) - var(--footer-height));width:100%;overflow:hidden;position:relative}.exam-pane{height:100%;overflow-y:auto;padding:24px 30px;background-color:var(--bg-surface)}.exam-pane.passage-pane{flex:1;border-right:1px solid var(--border-color)}.exam-pane.question-pane{flex:1;background-color:var(--bg-muted)}.split-resizer{width:10px;background-color:var(--bg-header);border-left:1px solid var(--border-color);border-right:1px solid var(--border-color);cursor:col-resize;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;flex-shrink:0}.split-resizer:hover,.split-resizer.dragging{background-color:var(--border-color)}.split-handle-lines{width:3px;height:30px;border-left:1px solid var(--text-secondary);border-right:1px solid var(--text-secondary)}.passage-header{margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.passage-title{font-size:var(--font-heading);font-weight:700;color:var(--text-main);margin-bottom:4px}.passage-subtitle{font-size:calc(var(--font-base) * .95);font-style:italic;color:var(--text-secondary)}.passage-body{font-size:var(--font-passage);line-height:var(--line-height-passage);color:var(--text-main)}.passage-paragraph{margin-bottom:18px;text-align:justify;position:relative}.paragraph-label{font-weight:700;margin-right:8px;display:inline-block}.ielts-highlight{background-color:var(--bg-highlight);color:#000;border-radius:2px;cursor:pointer}.ielts-highlight.active{background-color:var(--bg-highlight-active);outline:1px solid #c49a00}.selection-toolbar{position:fixed;z-index:1000;background-color:var(--border-dark);color:#fff;border-radius:4px;box-shadow:var(--shadow-md);display:flex;align-items:center;gap:2px;padding:4px;font-size:13px}.selection-toolbar-btn{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:3px;color:#fff;font-size:12px;font-weight:600}.selection-toolbar-btn:hover{background-color:#fff3}.question-group-wrapper{margin-bottom:28px}.question-group-instructions{background-color:var(--bg-surface);border:1px solid var(--border-color);border-left:4px solid var(--ielts-red);padding:12px 16px;border-radius:4px;margin-bottom:16px;font-size:calc(var(--font-base) * .95);line-height:1.5;color:var(--text-main)}.question-group-instructions strong{color:var(--text-main)}.question-card{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:6px;padding:16px 20px;margin-bottom:16px;box-shadow:var(--shadow-sm);transition:border-color .15s ease}.question-card.active{border-color:var(--ielts-blue);box-shadow:0 0 0 1px var(--ielts-blue)}.question-prompt{font-size:var(--font-base);font-weight:600;line-height:1.5;margin-bottom:14px;color:var(--text-main);display:flex;align-items:flex-start;gap:8px}.question-num-badge{background-color:var(--bg-header);border:1px solid var(--border-color);color:var(--text-main);font-weight:700;padding:2px 8px;border-radius:3px;font-size:13px;flex-shrink:0}.options-list{display:flex;flex-direction:column;gap:8px}.option-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all .15s ease}.option-item:hover{background-color:var(--bg-muted);border-color:var(--text-secondary)}.option-item.selected{background-color:#0366d614;border-color:var(--ielts-blue);font-weight:600}.option-letter-badge{width:26px;height:26px;border-radius:50%;background-color:var(--bg-header);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.option-item.selected .option-letter-badge{background-color:var(--ielts-blue);color:#fff;border-color:var(--ielts-blue)}.tfng-container{display:flex;gap:10px;flex-wrap:wrap}.tfng-btn{flex:1;min-width:120px;padding:10px 16px;text-align:center;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;font-size:14px;font-weight:700;color:var(--text-secondary)}.tfng-btn:hover{background-color:var(--bg-muted)}.tfng-btn.selected{background-color:var(--text-main);color:var(--bg-surface);border-color:var(--text-main)}.inline-fill-input{border:1px solid var(--border-color);background-color:var(--bg-card);padding:6px 12px;border-radius:4px;font-size:var(--font-base);color:var(--text-main);font-weight:600;width:240px;margin:0 4px;outline:none}.inline-fill-input:focus{border-color:var(--ielts-blue);box-shadow:0 0 0 2px #0366d633}.matching-select{border:1px solid var(--border-color);background-color:var(--bg-card);padding:8px 12px;border-radius:4px;font-size:14px;font-weight:600;color:var(--text-main);width:100%;outline:none;cursor:pointer}.matching-select:focus{border-color:var(--ielts-blue)}.listening-audio-card{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:6px;padding:18px 22px;margin-bottom:20px;display:flex;flex-direction:column;gap:12px}.audio-status-row{display:flex;align-items:center;justify-content:space-between}.audio-part-label{font-size:16px;font-weight:700;color:var(--text-main);display:flex;align-items:center;gap:8px}.audio-progress-bar-container{width:100%;height:8px;background-color:var(--bg-muted);border-radius:4px;overflow:hidden;border:1px solid var(--border-color)}.audio-progress-fill{height:100%;background-color:var(--ielts-red);transition:width .2s linear}.audio-time-label{font-size:12px;color:var(--text-secondary);font-weight:600}.writing-editor-wrapper{display:flex;flex-direction:column;height:100%;background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:6px;overflow:hidden}.writing-editor-header{padding:10px 16px;background-color:var(--bg-header);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.word-count-badge{font-size:14px;font-weight:700;color:var(--text-main)}.word-count-badge.met{color:var(--ielts-green)}.writing-textarea{flex:1;padding:18px 20px;font-family:Arial,sans-serif;font-size:var(--font-passage);line-height:1.6;border:none;outline:none;resize:none;background-color:var(--bg-surface);color:var(--text-main)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-dialog{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:8px;max-width:600px;width:90%;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.modal-header{padding:16px 22px;background-color:var(--bg-header);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:18px;font-weight:700;color:var(--text-main)}.modal-body{padding:22px;font-size:14px;line-height:1.6;color:var(--text-main)}.modal-footer{padding:14px 22px;background-color:var(--bg-muted);border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:flex-end;gap:10px}.modal-btn{padding:8px 18px;border-radius:4px;font-weight:700;font-size:14px}.modal-btn.btn-primary{background-color:var(--ielts-red);color:#fff}.modal-btn.btn-secondary{background-color:var(--bg-card);border:1px solid var(--border-color);color:var(--text-main)}.result-container{max-width:960px;margin:30px auto;background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:8px;padding:32px;box-shadow:var(--shadow-md);overflow-y:auto;max-height:90vh}.result-header-card{text-align:center;padding:24px;background:linear-gradient(135deg,var(--bg-header) 0%,var(--bg-muted) 100%);border:1px solid var(--border-color);border-radius:8px;margin-bottom:28px}.band-score-circle{width:110px;height:110px;border-radius:50%;background-color:var(--ielts-red);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:12px auto;box-shadow:0 4px 15px #e3183766}.band-number{font-size:38px;font-weight:800;line-height:1}.band-label{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.result-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:28px}.stat-box{background-color:var(--bg-muted);border:1px solid var(--border-color);padding:16px;border-radius:6px;text-align:center}.stat-val{font-size:22px;font-weight:700;color:var(--text-main)}.stat-lbl{font-size:12px;color:var(--text-secondary);text-transform:uppercase;margin-top:4px}.review-table-card{border:1px solid var(--border-color);border-radius:6px;overflow:hidden;margin-bottom:24px}.review-row{display:flex;align-items:flex-start;padding:12px 16px;border-bottom:1px solid var(--border-color);font-size:13px;gap:14px}.review-row:last-child{border-bottom:none}.review-row.correct{background-color:#28a7450d}.review-row.incorrect{background-color:#e318370d}@media (max-width: 900px){.exam-split-container{flex-direction:column}.split-resizer{display:none}.exam-pane.passage-pane{height:45%;border-right:none;border-bottom:2px solid var(--border-color)}.exam-pane.question-pane{height:55%}.bottom-questions-scroll{max-width:45vw}}
