:root{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Microsoft YaHei,sans-serif;--app-bg: #f0f0f0;--window-bg: #ffffff;--border-color: #d0d0d0;--divider-color: #e0e0e0;--toolbar-bg: #f5f5f5;--toolbar-border: #c0c0c0;--titlebar-bg: #2c3e50;--titlebar-text: #ffffff;--accent-blue: #0078d4;--accent-blue-hover: #005a9e;--primary-blue: #0078d4;--text-primary: #1f1f1f;--text-secondary: #707070;--text-disabled: #a0a0a0;--success: #107c10;--warning: #f7630c;--error: #d13438;--control-border: #8a8a8a;--control-bg: #ffffff;--control-hover-bg: #e5f3ff}html,body,#root{height:100%;margin:0;background:var(--app-bg);font-size:12px}.ant-card{border-radius:0!important;box-shadow:none!important;border:1px solid var(--border-color)!important;background:var(--window-bg)!important}.ant-card:hover{box-shadow:none!important}.ant-card-head{background:var(--toolbar-bg)!important;border-bottom:1px solid var(--toolbar-border)!important;font-weight:600;font-size:12px;padding:8px 16px;min-height:36px}.ant-btn{border-radius:0!important;font-weight:400;font-size:12px;height:23px;padding:0 12px;line-height:21px;box-shadow:none!important;transition:all .1s ease}.ant-btn-primary{background:#0078d4!important;border:1px solid #0078d4!important;color:#fff!important}.ant-btn-primary:hover:not(:disabled){background:#005a9e!important;border-color:#005a9e!important}.ant-btn-primary:active:not(:disabled){background:#004578!important;border-color:#004578!important}.ant-btn-default{border:1px solid #adadad!important;color:#1f1f1f!important;background:linear-gradient(to bottom,#fff,#f0f0f0)!important}.ant-btn-default:hover:not(:disabled){background:linear-gradient(to bottom,#e5f3ff,#cce8ff)!important;border-color:#7eb4ea!important}.ant-btn-default:active:not(:disabled){background:linear-gradient(to bottom,#cce8ff,#99d1ff)!important}.ant-btn-lg{height:26px;font-size:12px;padding:0 14px}.ant-btn-sm{height:21px;font-size:11px;padding:0 10px}.ant-input,.ant-input-password input,.ant-select-selector,.ant-picker{border-radius:0!important;border:1px solid #ababab!important;font-size:12px;height:23px!important;line-height:21px!important;padding:1px 6px!important;background:#fff}.ant-input-password{border-radius:0!important;border:1px solid #ababab!important;padding:0!important}.ant-input-affix-wrapper{border-radius:0!important;border:1px solid #ababab!important;padding:0 6px 0 0!important;height:23px!important;background:#fff}.ant-input-affix-wrapper .ant-input{border:none!important;box-shadow:none!important;height:21px!important;padding-right:0!important}.ant-input-affix-wrapper:hover{border-color:#7eb4ea!important}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus-within{border-color:#0078d4!important;box-shadow:inset 0 0 0 1px #0078d44d!important}.ant-input-affix-wrapper-focused .ant-input,.ant-input-affix-wrapper:focus-within .ant-input{border:none!important;box-shadow:none!important}.ant-select-single,.ant-select-single .ant-select-selector{height:23px!important}.ant-select-single .ant-select-arrow,.ant-select-single .ant-select-clear{top:50%!important;margin-top:0!important;transform:translateY(-50%)}.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder,.ant-select-single .ant-select-selector .ant-select-selection-search-input{line-height:21px!important}.ant-input:hover,.ant-input-password:hover{border-color:#7eb4ea!important}.ant-input:focus,.ant-input-password:focus,.ant-input-focused,.ant-input-password-focused,.ant-select-focused .ant-select-selector,.ant-picker-focused{border-color:#0078d4!important;box-shadow:inset 0 0 0 1px #0078d44d!important;outline:none}.ant-input-password-icon{color:#555}.ant-form-item-label>label{font-size:12px;color:var(--text-primary);font-weight:400}.ant-form-item{margin-bottom:16px}.ant-table{font-size:12px}.ant-table-thead>tr>th{background:var(--toolbar-bg)!important;border-bottom:1px solid var(--toolbar-border)!important;font-weight:600;font-size:12px;padding:8px 12px}.ant-table-tbody>tr>td{padding:6px 12px;border-bottom:1px solid var(--divider-color)}.ant-table-tbody>tr:hover>td{background:var(--control-hover-bg)!important}.ant-list-item{border-bottom:1px solid var(--divider-color)!important;padding:8px 12px!important}.ant-list-item:hover{background:var(--control-hover-bg)!important}.ant-list-item-meta-title{color:var(--text-primary)!important;font-weight:400;font-size:13px}.ant-list-item-meta-description{color:var(--text-secondary)!important;font-size:12px}.ant-radio-button-wrapper{border-radius:0!important}.ant-radio-button-wrapper-checked{background:var(--primary-blue)!important;border-color:var(--primary-blue)!important}.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-radio-wrapper:hover .ant-radio-inner{border-color:var(--primary-blue)!important}.ant-checkbox-checked .ant-checkbox-inner,.ant-radio-checked .ant-radio-inner{background-color:var(--primary-blue)!important;border-color:var(--primary-blue)!important}.ant-tag{border-radius:0!important;padding:4px 12px!important;font-weight:500}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--gray-100)}::-webkit-scrollbar-thumb{background:var(--gray-300);transition:background .3s ease}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.ant-table{border-radius:0!important}.ant-table-thead>tr>th{background:var(--gray-50)!important;color:var(--gray-700)!important;font-weight:600;border-bottom:2px solid var(--gray-200)!important}.ant-table-tbody>tr:hover>td{background:var(--gray-50)!important}.ant-message-notice-content{border-radius:0!important;box-shadow:0 3px 9px #0003!important}.ant-modal-content{border-radius:0!important;border:1px solid #adadad!important;box-shadow:0 3px 9px #0003!important;padding:0!important}.ant-modal-header{background:linear-gradient(to bottom,#fff,#f9f9f9)!important;border-bottom:1px solid #e5e5e5!important;padding:10px 12px!important;border-radius:0!important}.ant-modal-title{font-size:12px!important;font-weight:600!important;color:#1f1f1f!important}.ant-modal-body{padding:16px 12px!important;font-size:12px!important}.ant-modal-footer{padding:8px 12px!important;border-top:1px solid #e5e5e5!important;background:#f5f5f5!important;border-radius:0!important}.ant-modal-footer .ant-btn{margin-left:6px!important}.ant-modal-confirm-body{display:flex;gap:12px}.ant-modal-confirm-body .anticon{font-size:20px;color:#f59e0b}.ant-modal-confirm-title{font-size:13px!important;font-weight:600!important;color:#1f1f1f!important}.ant-modal-confirm-content{font-size:12px!important;color:#1f1f1f!important;margin-top:4px}.exam-room-container{height:100vh;display:flex;flex-direction:column;background:var(--gray-50)}.exam-room-header{background:var(--primary-deep-blue);color:#fff;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-md);border-bottom:3px solid var(--primary-blue)}.exam-room-header-title{font-size:18px;font-weight:600;margin:0}.exam-room-timer{font-size:24px;font-weight:700;color:#fbbf24;font-family:Courier New,monospace}.exam-room-content{flex:1;overflow:auto;padding:24px}.exam-room-sidebar{background:#fff;border-left:2px solid var(--gray-200);padding:16px;width:280px;overflow-y:auto}.exam-room-footer{background:#fff;border-top:2px solid var(--gray-200);padding:16px 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 -2px 8px #0000000d}.question-nav-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}.question-nav-item{padding:12px;text-align:center;background:#fff;border:2px solid var(--gray-200);cursor:pointer;transition:all .3s ease;font-weight:600}.question-nav-item:hover{border-color:var(--primary-blue);background:var(--gray-50)}.question-nav-item.current{background:var(--primary-blue);color:#fff;border-color:var(--primary-blue)}.question-nav-item.answered{background:var(--gray-100);border-color:var(--gray-300)}.question-card{background:#fff;border:2px solid var(--gray-200);padding:32px;margin-bottom:24px;box-shadow:var(--shadow-md)}.question-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--gray-200)}.question-card-number{font-size:16px;font-weight:600;color:var(--primary-blue)}.question-card-type{background:var(--gray-100);padding:4px 16px;font-size:13px;font-weight:600;color:var(--gray-700)}.question-card-content{font-size:16px;line-height:1.8;color:var(--gray-900);margin-bottom:24px}.question-options{display:flex;flex-direction:column;gap:12px}.question-option{padding:16px 20px;border:2px solid var(--gray-200);background:#fff;cursor:pointer;transition:all .3s ease}.question-option:hover{border-color:var(--primary-blue);background:var(--gray-50)}.question-option.selected{border-color:var(--primary-blue);background:#2563eb1a;font-weight:600}.stat-box{background:var(--gray-50);border:2px solid var(--gray-200);padding:20px;margin-bottom:16px}.stat-box-title{font-size:13px;color:var(--gray-600);font-weight:600;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.stat-box-value{font-size:32px;font-weight:700;color:var(--gray-900)}.stat-box-unit{font-size:14px;color:var(--gray-500);margin-left:8px}:root{--ielts-blue: #0b4fa8;--ielts-blue-2: #0a3f86;--ielts-bg: #f2f5fa;--ielts-panel: #ffffff;--ielts-border: #e6e9f0;--ielts-text: #1b1f2a;--ielts-muted: #6b7280;--ielts-danger: #b42318}html,body,#root{height:100%;margin:0;background:var(--ielts-bg);color:var(--ielts-text)}.ielts-shell{height:100%;display:grid;grid-template-rows:56px 1fr 56px}.ielts-topbar{background:linear-gradient(90deg,var(--ielts-blue),var(--ielts-blue-2));color:#fff;display:flex;align-items:center;padding:8px 16px;gap:16px}.ielts-topbar .title{font-weight:600}.ielts-topbar .meta{color:#ffffffd9;font-size:12px}.ielts-topbar .spacer{flex:1}.ielts-timer{background:#ffffff1f;border:1px solid rgba(255,255,255,.22);padding:6px 10px;border-radius:8px;font-variant-numeric:tabular-nums;font-weight:600}.ielts-main{display:grid;grid-template-columns:400px 1fr;gap:12px;padding:12px;min-height:0}.ielts-panel{background:var(--ielts-panel);border:1px solid var(--ielts-border);border-radius:10px;min-height:0}.ielts-nav{padding:12px;display:flex;flex-direction:column;gap:10px;min-height:0}.ielts-nav .legend{display:flex;gap:10px;font-size:12px;color:var(--ielts-muted)}.ielts-nav .grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding-right:4px;max-height:200px;overflow:auto}.ielts-nav .question-detail{flex:1;overflow:auto;padding-right:4px;border-top:1px solid var(--ielts-border);padding-top:10px;min-height:0}.ielts-nav .question-detail .qd-title{font-size:14px;font-weight:600;margin-bottom:8px;color:var(--ielts-text)}.ielts-nav .question-detail .qd-content{font-size:13px;line-height:1.7;margin-bottom:12px;color:var(--ielts-text)}.ielts-nav .question-detail .qd-meta{margin-bottom:10px;padding:6px 10px;background:#f0f5ff;border-radius:4px;font-size:12px;display:flex;gap:12px;flex-wrap:wrap}.ielts-nav .question-detail .qd-negative{margin-bottom:12px}.ielts-nav .question-detail .qd-negative ul{margin:6px 0 0;padding-left:18px}.ielts-nav .question-detail .qd-negative li{font-size:12px;color:#cf1322;margin-bottom:3px}.qbtn{height:34px;border-radius:8px;border:1px solid var(--ielts-border);background:#fff;cursor:pointer;font-weight:600}.qbtn.answered{background:#e8f3ff;border-color:#91caff;color:#0958d9}.qbtn.current{outline:2px solid var(--ielts-blue);outline-offset:1px}.ielts-content{padding:16px;overflow:auto}.ielts-bottom{background:#fff;border-top:1px solid var(--ielts-border);display:flex;align-items:center;padding:0 12px;gap:10px}.ielts-bottom .spacer{flex:1}.exam-practical-tabs{height:100%}.exam-practical-tabs .ant-tabs-content-holder{overflow:hidden}.exam-practical-tabs .ant-tabs-content,.exam-practical-tabs .ant-tabs-tabpane{height:100%}.question-timer{display:flex;align-items:center;gap:4px;padding:4px 12px;border-radius:6px;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;background:#ffffff26;color:#fff;margin-right:8px;white-space:nowrap}.question-timer-warning{background:#faad14e6;color:#fff}.question-timer-danger{background:#ff4d4fe6;color:#fff;animation:questionTimerBlink 1s ease-in-out infinite}@keyframes questionTimerBlink{0%,to{opacity:1}50%{opacity:.5}}.qbtn.expired{background:#f5f5f5;border-color:#d9d9d9;color:#bfbfbf;cursor:not-allowed}.qbtn.expired.current{outline-color:#d9d9d9}
