:root{--font-title:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg-primary:#f8fafb;--bg-secondary:#fff;--bg-tertiary:#ebf0f4;--text-primary:#10192d;--text-secondary:#536179;--border-color:#e1e7ef;--primary:#0c6179;--primary-hover:#084354;--primary-light:#e8f8fd;--primary-alpha:#0c617926;--secondary:#f5930a;--secondary-hover:#c47608;--secondary-light:#fef4e7;--success:#157f3c;--success-light:#e9fbf0;--danger:#ce1212;--danger-light:#fdecec;--shadow-sm:0 2px 8px #0000000a;--shadow-md:0 8px 30px #0000000f, 0 1px 3px #00000005;--shadow-lg:0 20px 50px #0000001a;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--glass-bg:#ffffffbf;--glass-border:#fff6;--glass-blur:16px;--transition-speed:.3s}body.dark-theme{--bg-primary:#05080f;--bg-secondary:#0b111e;--bg-tertiary:#10192d;--text-primary:#f8fafc;--text-secondary:#94a3b8;--border-color:#141f38;--primary:#109fc6;--primary-hover:#12b5e2;--primary-light:#052d39;--primary-alpha:#109fc640;--secondary:#faa52e;--secondary-hover:#fbba60;--secondary-light:#462902;--success:#20ac53;--success-light:#082b15;--danger:#ed2c2c;--danger-light:#380505;--shadow-sm:0 2px 8px #0003;--shadow-md:0 8px 30px #0000004d, 0 1px 3px #0000001a;--shadow-lg:0 20px 50px #00000073;--glass-bg:#0f172abf;--glass-border:#ffffff0d}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;transition:background-color var(--transition-speed), color var(--transition-speed);-webkit-font-smoothing:antialiased;flex-direction:column;line-height:1.6;display:flex;overflow-x:hidden}#root,.app-shell{flex-direction:column;flex:1;width:100%;min-height:100vh;display:flex}.app-main{flex-direction:column;flex:1 1 0;width:100%;min-height:0;display:flex;overflow:hidden auto}#test-view,.test-workspace{flex-direction:column;flex:1 1 0;width:100%;min-height:0;display:flex;overflow:hidden}.test-footer{flex:none}body.reading-mode,body.reading-mode #root,body.reading-mode .app-shell,body.in-test,body.in-test #root,body.in-test .app-shell{height:100vh;max-height:100vh;overflow:hidden}body.reading-mode .app-main,body.reading-mode #test-view,body.reading-mode .test-workspace,body.in-test .app-main,body.in-test #test-view,body.in-test .test-workspace{flex:1 1 0;height:100%;min-height:0;overflow:hidden}#test-view.view-panel{flex-direction:column;flex:1 1 0;width:100%;min-height:0;display:flex;overflow:hidden}#dashboard-view.view-panel,#test-select-view.view-panel{flex:none;height:auto;min-height:min-content;overflow:visible}h1,h2,h3,h4,h5,h6{font-family:var(--font-title);letter-spacing:-.02em;font-weight:700}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.app-header{z-index:100;background-color:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--glass-border);box-shadow:var(--shadow-sm);transition:background-color var(--transition-speed);justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:sticky;top:0}.logo-container{cursor:pointer;align-items:center;gap:.5rem;display:flex}.logo-icon{background-color:var(--primary);color:#fff;border-radius:var(--radius-sm);width:36px;height:36px;box-shadow:0 4px 12px var(--primary-alpha);justify-content:center;align-items:center;display:flex}.logo-text{font-family:var(--font-title);letter-spacing:-.03em;color:var(--text-primary);font-size:1.5rem;font-weight:800}.logo-highlight{color:var(--primary)}.test-state-bar{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:99px;align-items:center;gap:1.5rem;padding:.35rem 1rem;animation:.3s cubic-bezier(.16,1,.3,1) slideDown;display:flex}.test-title-badge{align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;display:flex}.mode-badge{text-transform:uppercase;background-color:var(--secondary-light);color:var(--secondary);border-radius:4px;padding:.15rem .5rem;font-size:.75rem;font-weight:700}.test-timer-container{color:var(--danger);align-items:center;gap:.4rem;font-family:monospace;font-size:1.1rem;font-weight:700;display:flex}.timer-icon{animation:2s infinite pulse}.header-actions{align-items:center;gap:.75rem;display:flex}.btn{font-family:var(--font-body);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-speed) cubic-bezier(.215, .61, .355, 1);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.9rem;font-weight:600;display:inline-flex}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-hover);box-shadow:0 4px 12px var(--primary-alpha);transform:translateY(-1px)}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:hover{background-color:var(--border-color)}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover{background-color:#a40e0e}.btn-full-width{width:100%}.icon-btn{border:1px solid var(--border-color);background-color:var(--bg-secondary);width:40px;height:40px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-speed);border-radius:50%;justify-content:center;align-items:center;display:flex}.icon-btn:hover{background-color:var(--bg-tertiary)}.icon-btn.btn-secondary{border-radius:99px;gap:.5rem;width:auto;padding:0 1rem;font-size:.85rem;font-weight:500}.hidden{display:none!important}.app-main{flex-direction:column;flex:1;display:flex}.view-panel{opacity:0;width:100%;max-width:1200px;margin:0 auto;padding:2.5rem 2rem;transition:opacity .3s;display:none}.view-panel.active{opacity:1;display:block}.dashboard-hero{text-align:center;max-width:800px;margin:0 auto 3rem}.dashboard-hero h1{font-family:var(--font-title);color:var(--text-primary);margin-bottom:1rem;font-size:3rem;font-weight:850;line-height:1.15}.accent-text{background:linear-gradient(135deg, var(--primary), var(--secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text}.hero-subtitle{color:var(--text-secondary);font-size:1.15rem;font-weight:400}.metrics-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:3rem;display:grid}.metric-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);text-align:center;box-shadow:var(--shadow-sm);transition:all var(--transition-speed);padding:1.5rem}.metric-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.metric-value{font-family:var(--font-title);color:var(--primary);font-size:2.25rem;font-weight:800}.metric-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-top:.25rem;font-size:.85rem;font-weight:500}.test-modules-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2rem;display:grid}.module-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform .4s cubic-bezier(.165, .84, .44, 1), box-shadow .4s, border-color var(--transition-speed);flex-direction:column;padding:2rem;display:flex;position:relative;overflow:hidden}.module-card:before{content:"";background-color:var(--primary);transform-origin:0;width:100%;height:4px;transition:transform .4s;position:absolute;top:0;left:0;transform:scaleX(.2)}.module-card:hover{box-shadow:var(--shadow-lg);border-color:var(--primary-alpha);transform:translateY(-6px)}.module-card:hover:before{transform:scaleX(1)}.module-icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:54px;height:54px;margin-bottom:1.5rem;transition:transform .4s;display:flex}.module-card:hover .module-icon{transform:scale(1.1)rotate(2deg)}.listening .module-icon{color:#0586c7;background-color:#e6f6fe}.listening:before{background-color:#0586c7}body.dark-theme .listening .module-icon{color:#38b9fa;background-color:#02324b}.reading .module-icon{color:#950bda;background-color:#f8ebfe}.reading:before{background-color:#950bda}body.dark-theme .reading .module-icon{color:#c155f6;background-color:#32024b}.writing .module-icon{color:#09aa59;background-color:#e6fef2}.writing:before{background-color:#09aa59}body.dark-theme .writing .module-icon{color:#25f48c;background-color:#023c1f}.speaking .module-icon{color:#da3f0b;background-color:#feece6}.speaking:before{background-color:#da3f0b}body.dark-theme .speaking .module-icon{color:#f56b3d;background-color:#4b1402}.module-card h2{margin-bottom:.75rem;font-size:1.35rem}.module-card p{color:var(--text-secondary);flex-grow:1;margin-bottom:1.5rem;font-size:.9rem}.module-metadata{color:var(--text-secondary);background-color:var(--bg-tertiary);border-radius:var(--radius-sm);gap:1rem;width:fit-content;margin-bottom:1.5rem;padding:.5rem 1rem;font-size:.8rem;font-weight:600;display:flex}.module-actions{grid-template-columns:1fr 1.2fr;gap:.5rem;display:grid}#test-view{flex-direction:column;flex:1;max-width:100%;height:calc(100vh - 73px);min-height:0;padding:0;display:flex;overflow:hidden}#test-view.hidden{display:none!important}#test-view.active{opacity:1;display:flex}.test-workspace{flex:1 1 0;min-height:0;display:flex;position:relative;overflow:hidden}.pane-left,.pane-right{flex-direction:column;height:100%;padding:2rem;display:flex;overflow-y:auto}.pane-left{border-right:1px solid var(--border-color);background-color:var(--bg-secondary);flex:1}.pane-right{background-color:var(--bg-primary);flex:1}.pane-title{color:var(--primary);border-bottom:2px solid var(--border-color);margin-bottom:1.25rem;padding-bottom:.5rem;font-size:1.5rem}.pane-passage-content{color:var(--text-primary);font-size:1.05rem;line-height:1.75}.pane-passage-content p{margin-bottom:1.5rem}.highlighted{color:#000;background-color:#ffea80cc;border-radius:2px}body.dark-theme .highlighted{color:#fff;background-color:#998000cc}.question-group{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:1.5rem;padding:1.5rem;position:relative}.question-group.flagged{border-color:var(--secondary);border-left:4px solid var(--secondary)}.question-num{background:var(--bg-tertiary);color:var(--text-secondary);border-radius:99px;padding:.2rem .6rem;font-size:.85rem;font-weight:700;position:absolute;top:1rem;right:1rem}.question-text{margin-bottom:1rem;padding-right:2rem;font-size:1rem;font-weight:600}.options-list{flex-direction:column;gap:.65rem;display:flex}.option-item{border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;background-color:var(--bg-primary);align-items:flex-start;gap:.75rem;padding:.75rem 1rem;transition:all .2s;display:flex}.option-item:hover{background-color:var(--bg-tertiary);border-color:var(--text-secondary)}.option-item input[type=radio],.option-item input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px;margin-top:.25rem}.option-item.selected{border-color:var(--primary);background-color:var(--primary-light)}.text-input-field{border:1px solid var(--border-color);border-radius:var(--radius-sm);background-color:var(--bg-primary);width:100%;color:var(--text-primary);padding:.75rem 1rem;font-family:inherit;font-size:.95rem;transition:border-color .2s}.text-input-field:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-alpha);outline:none}.listening-control-box{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-direction:column;gap:1rem;margin-bottom:2rem;padding:1.5rem;display:flex}.audio-player-ui{align-items:center;gap:1rem;width:100%;display:flex}.audio-progress-bar{background-color:var(--bg-tertiary);cursor:pointer;border-radius:99px;flex-grow:1;height:6px;position:relative}.audio-progress-filled{background-color:var(--primary);border-radius:99px;width:0%;height:100%}.audio-timer-digits{color:var(--text-secondary);min-width:80px;font-family:monospace;font-size:.85rem}.audio-speed-selector{border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-primary);cursor:pointer;padding:.35rem .75rem;font-size:.8rem;font-weight:600}.writing-container{flex-direction:column;gap:1.5rem;height:100%;display:flex}.writing-header-tab{border-bottom:1px solid var(--border-color);display:flex}.tab-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.75rem 1.5rem;font-size:.9rem;font-weight:600}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.writing-editor-box{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-direction:column;flex-grow:1;padding:1.5rem;display:flex}.writing-editor-box textarea{resize:none;width:100%;min-height:250px;color:var(--text-primary);background-color:#0000;border:none;flex-grow:1;font-family:inherit;font-size:1.05rem;line-height:1.6}.writing-editor-box textarea:focus{outline:none}.editor-footer{border-top:1px solid var(--border-color);color:var(--text-secondary);justify-content:space-between;align-items:center;margin-top:1rem;padding-top:.75rem;font-size:.85rem;display:flex}.word-count-badge{background-color:var(--bg-tertiary);color:var(--text-secondary);border-radius:99px;padding:.25rem .75rem;font-weight:700}.word-count-badge.success-limit{background-color:var(--success-light);color:var(--success)}.svg-chart-container{background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-color);justify-content:center;align-items:center;margin-bottom:1.5rem;padding:1.5rem;display:flex}.chart-grid-line{stroke:var(--border-color);stroke-dasharray:4}.chart-bar{fill:var(--primary);transition:height var(--transition-speed), y var(--transition-speed)}.chart-bar:hover{fill:var(--secondary)}.chart-axis{stroke:var(--text-secondary);stroke-width:1.5px}.chart-text{fill:var(--text-secondary);font-size:10px;font-family:var(--font-body)}.speaking-simulation-grid{grid-template-columns:1fr 1fr;gap:2rem;height:100%;display:grid}.speaking-examiner-panel{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:3rem;display:flex}.avatar-sphere{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;width:120px;height:120px;box-shadow:0 8px 30px var(--primary-alpha);border-radius:50%;justify-content:center;align-items:center;margin-bottom:2rem;display:flex;position:relative}.avatar-sphere:after{content:"";border:2px dashed var(--primary);opacity:.4;border-radius:50%;width:calc(100% + 12px);height:calc(100% + 12px);animation:20s linear infinite rotateClockwise;position:absolute}.avatar-sphere.speaking:after{border-color:var(--secondary);animation:1.5s infinite pulseScale}.examiner-prompt-text{max-width:450px;min-height:80px;margin-bottom:2rem;font-size:1.25rem;font-weight:600}.speaking-user-panel{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-direction:column;justify-content:space-between;padding:2rem;display:flex}.speaking-status-header{justify-content:space-between;align-items:center;display:flex}.status-indicator{text-transform:uppercase;align-items:center;gap:.5rem;font-size:.85rem;font-weight:700;display:inline-flex}.indicator-dot{background-color:var(--text-secondary);border-radius:50%;width:10px;height:10px}.status-indicator.recording .indicator-dot{background-color:var(--danger);animation:1s infinite alternate pulse}.status-indicator.listening .indicator-dot{background-color:var(--primary)}.audio-visualizer-container{background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-color);flex-grow:1;justify-content:center;align-items:center;height:120px;margin:1.5rem 0;display:flex;overflow:hidden}.audio-visualizer-container canvas{width:100%;height:100%}.speaking-timer-display{text-align:center;margin-bottom:1.5rem;font-family:monospace;font-size:2.5rem;font-weight:700}.speaking-actions{justify-content:center;gap:1rem;display:flex}.recordings-history-box{background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-color);max-height:150px;margin-top:1.5rem;padding:1rem;overflow-y:auto}.recording-track-item{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:.5rem 0;display:flex}.recording-track-item:last-child{border-bottom:none}.recording-track-item span{font-size:.85rem;font-weight:600}.track-playback-controls{gap:.5rem;display:flex}.test-footer{background-color:var(--bg-secondary);border-top:1px solid var(--border-color);z-index:50;justify-content:space-between;align-items:center;height:70px;padding:0 2rem;display:flex;box-shadow:0 -4px 12px #00000005}.footer-left,.footer-right{align-items:center;gap:.75rem;display:flex}.footer-center{align-items:center;gap:.4rem;max-width:50%;padding:.5rem 0;display:flex;overflow-x:auto}.q-dot{border:1px solid var(--border-color);background-color:var(--bg-secondary);width:32px;height:32px;color:var(--text-primary);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:600;transition:all .2s;display:flex;position:relative}.q-dot:hover{background-color:var(--bg-tertiary);border-color:var(--text-secondary)}.q-dot.active{background-color:var(--primary);color:#fff;border-color:var(--primary)}.q-dot.answered{background-color:var(--primary-alpha);border-color:var(--primary)}.q-dot.flagged:after{content:"";background-color:var(--secondary);border:2px solid var(--bg-secondary);border-radius:50%;width:10px;height:10px;position:absolute;top:-2px;right:-2px}.custom-dialog-backdrop{z-index:1000;-webkit-backdrop-filter:blur(4px);background:#00000073;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}body.dark-theme .custom-dialog-backdrop{background:#000000bf}.custom-dialog-backdrop:has(.drawer-dialog){justify-content:flex-end;align-items:stretch;padding:0}.custom-dialog{border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-lg);outline:none;width:90%;max-width:500px;margin:auto;padding:0;animation:.3s cubic-bezier(.34,1.56,.64,1) zoomIn}.custom-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006}body.dark-theme .custom-dialog::backdrop{background:#000000b3}.large-dialog{max-width:800px}.dialog-form{flex-direction:column;display:flex}.dialog-header{border-bottom:1px solid var(--border-color);color:var(--primary);padding:1.5rem 2rem;font-size:1.35rem}.dialog-body{max-height:60vh;padding:2rem;overflow-y:auto}.dialog-footer{border-top:1px solid var(--border-color);background-color:var(--bg-tertiary);justify-content:flex-end;gap:.75rem;padding:1.25rem 2rem;display:flex}.instruction-box{background-color:var(--bg-primary);border-left:4px solid var(--primary);border-radius:var(--radius-sm);margin-bottom:1.5rem;padding:1rem;font-size:.95rem}.instruction-box ul{margin-top:.5rem;padding-left:1.25rem}.mode-summary{grid-template-columns:1fr 1fr;gap:1rem;font-size:.85rem;display:grid}.summary-item{background-color:var(--bg-tertiary);border-radius:var(--radius-sm);flex-direction:column;padding:.75rem;display:flex}.summary-item strong{color:var(--text-secondary);text-transform:uppercase;font-size:.75rem}.warning-text{color:var(--danger);background-color:var(--danger-light);border-radius:var(--radius-sm);border:1px solid var(--danger);margin-top:1rem;padding:.75rem;font-size:.85rem}.drawer-dialog{border-left:1px solid var(--border-color);border-radius:0;max-width:420px;height:100vh;max-height:100vh;margin-top:0;margin-bottom:0;margin-right:0;animation:.3s cubic-bezier(.16,1,.3,1) slideRight}.drawer-content{flex-direction:column;height:100%;display:flex}.drawer-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.drawer-body{background-color:var(--bg-primary);flex-grow:1;padding:1.5rem;overflow-y:auto}.drawer-footer{border-top:1px solid var(--border-color);background-color:var(--bg-secondary);padding:1.5rem}.history-item{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);flex-direction:column;gap:.25rem;margin-bottom:1rem;padding:1rem;display:flex}.history-item-top{justify-content:space-between;align-items:center;display:flex}.history-section-title{font-size:.95rem;font-weight:700}.history-score{font-family:var(--font-title);color:var(--primary);font-size:1.2rem;font-weight:800}.history-score.pending{color:#92600a;background:#fde9c8;border-radius:999px;padding:.2rem .6rem;font-size:.8rem;font-weight:700}.scorecard-badge.pending{color:#92600a;background:#fff7ec;border-color:#e0a64b;justify-content:center;align-items:center;display:flex}.scorecard-badge.pending .scorecard-num{color:#92600a}.history-item-meta{color:var(--text-secondary);justify-content:space-between;font-size:.8rem;display:flex}.scorecard-summary{grid-template-columns:1fr 2fr;align-items:center;gap:2rem;margin-bottom:2rem;display:grid}.scorecard-badge{background:linear-gradient(135deg, var(--primary-light), var(--primary-alpha));border:2px solid var(--primary);border-radius:var(--radius-md);text-align:center;padding:2rem}.scorecard-num{font-family:var(--font-title);color:var(--primary);font-size:4rem;font-weight:900;line-height:1}.scorecard-label{text-transform:uppercase;color:var(--text-secondary);letter-spacing:.05em;margin-top:.5rem;font-size:.85rem;font-weight:700}.scorecard-meta-table{border-collapse:collapse;width:100%}.scorecard-meta-table td{border-bottom:1px solid var(--border-color);padding:.75rem 0}.scorecard-meta-table tr:last-child td{border-bottom:none}.scorecard-meta-table td.label{color:var(--text-secondary);font-weight:500}.scorecard-meta-table td.value{text-align:right;font-weight:700}.results-review-section{flex-direction:column;gap:1.25rem;display:flex}.review-item{border:1px solid var(--border-color);border-radius:var(--radius-sm);background-color:var(--bg-secondary);padding:1.25rem}.review-item.correct{border-left:4px solid var(--success)}.review-item.incorrect{border-left:4px solid var(--danger)}.review-q-text{margin-bottom:.75rem;font-weight:600}.review-answer-line{margin-bottom:.4rem;font-size:.9rem}.review-answer-line strong{color:var(--text-secondary)}.correct-ans-highlight,.user-ans-highlight.correct{color:var(--success);font-weight:600}.user-ans-highlight.incorrect{color:var(--danger);font-weight:600}.review-explanation{background-color:var(--bg-primary);border-radius:var(--radius-sm);border-left:2px dashed var(--text-secondary);margin-top:.75rem;padding:.75rem 1rem;font-size:.85rem}@keyframes zoomIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes pulse{0%{opacity:1;transform:scale(1)}to{opacity:.7;transform:scale(1.05)}}@keyframes pulseScale{0%{opacity:.4;transform:scale(1)}50%{opacity:.1;transform:scale(1.08)}to{opacity:.4;transform:scale(1)}}@keyframes rotateClockwise{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=768px){.app-header{padding:1rem}.test-state-bar{gap:.5rem;padding:.2rem .6rem}.header-actions span{display:none}.view-panel{padding:1.5rem 1rem}.dashboard-hero h1{font-size:2.25rem}.metrics-grid{grid-template-columns:1fr;gap:1rem}.test-workspace{flex-direction:column}.pane-left{border-right:none;border-bottom:1px solid var(--border-color);height:50%}.pane-right{height:50%}.speaking-simulation-grid{grid-template-columns:1fr;gap:1rem}.test-footer{padding:0 1rem}.footer-center{max-width:40%}}body.in-test .app-header{color:#44403c;background:#fff;border-bottom:1px solid #e7e5e4;box-shadow:0 2px 5px #00000014}body.in-test .logo-text{color:#1c1917}body.in-test .logo-icon{background:#059669;box-shadow:0 4px 12px #05966940}body.in-test .header-actions .icon-btn{color:#57534e}body.in-test .test-state-bar{gap:1rem}body.in-test .test-title-badge{flex-direction:column;align-items:flex-start;gap:.1rem}body.in-test #state-test-name{color:#1c1917;font-weight:700}body.in-test .mode-badge{color:#059669;background:#f5f5f4;border:1px solid #e7e5e4}body.in-test .test-timer-container{background:0 0;border:none}body.in-test #test-timer{letter-spacing:.5px;color:#292524;font-size:1.35rem;font-weight:800}.insp-wrap{width:100%;height:100%;display:flex;overflow:hidden}.insp-passage{-webkit-user-select:text;user-select:text;background:#fff;border-right:1px solid #e7e5e4;height:100%;padding:1.5rem 1.75rem;overflow-y:auto}.insp-section-box{background:#f5f5f4;border:1px solid #d6d3d1;border-radius:6px;margin-bottom:1.1rem;padding:.6rem 1rem;box-shadow:0 1px 2px #0000000a}.insp-section-box h2{color:#1c1917;letter-spacing:.4px;margin:0 0 .15rem;font-size:1rem;font-weight:800}.insp-section-box p{color:#78716c;margin:0;font-size:.8rem}.insp-passage h1{color:#1c1917;margin:0 0 .5rem;font-size:1.35rem;font-weight:800}.insp-passage .lead{color:#57534e;margin-bottom:.75rem;font-style:italic}.insp-passage p{color:#292524;margin:0 0 .9rem;font-size:.97rem;line-height:1.75}.insp-divider{cursor:col-resize;background:#f5f5f4;border-left:1px solid #e7e5e4;border-right:1px solid #e7e5e4;flex:0 0 10px;justify-content:center;align-items:center;width:10px;height:100%;transition:background .15s;display:flex}.insp-divider:hover{background:#059669}.insp-divider span{background:#a8a29e;border-radius:2px;width:2px;height:2rem}.insp-divider:hover span{background:#fff}.insp-questions{background:#fafaf9;height:100%;padding:1.5rem 1.75rem;overflow-y:auto}.insp-questions-inner{flex-direction:column;gap:1.25rem;max-width:48rem;margin:0 auto;padding-bottom:4rem;display:flex}.insp-instr{background:#e7e5e4;border-left:4px solid #44403c;border-radius:0 6px 6px 0;padding:.85rem 1rem;font-size:.875rem}.insp-instr h4{color:#1c1917;margin:0;font-weight:800}.insp-instr p{color:#292524;margin:.3rem 0 0}.insp-instr .legend{margin-top:.5rem;font-size:.8rem}.insp-instr .legend div{margin:.1rem 0}.insp-card{background:#fff;border:1px solid #e7e5e4;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.9rem;padding:.9rem 1rem;transition:border-color .15s,box-shadow .15s;display:flex}.insp-card.active{border-color:#059669;box-shadow:0 0 0 1px #05966933}.insp-card .qstem{gap:.5rem;font-size:.9rem;display:flex}.insp-card .qnum{color:#a8a29e;flex:none;font-weight:800}.insp-card .qtext{color:#292524;margin:0;font-weight:500}.insp-seg{background:#f5f5f4;border:1px solid #e7e5e4;border-radius:6px;flex:none;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.insp-seg label{text-transform:uppercase;cursor:pointer;text-align:center;color:#57534e;white-space:nowrap;background:#fff;border:1px solid #e7e5e4;border-radius:4px;padding:.4rem .7rem;font-size:.72rem;font-weight:800;transition:all .12s}.insp-seg label:hover{background:#f5f5f4}.insp-seg label.sel{color:#fff;background:#059669;border-color:#059669}.insp-seg input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.insp-note{background:#fff;border:1px solid #e7e5e4;border-radius:8px;padding:1.1rem 1.25rem;font-size:.92rem;line-height:2.1}.insp-note h3{color:#1c1917;border-bottom:1px solid #e7e5e4;margin:0 0 .75rem;padding-bottom:.5rem;font-weight:800}.insp-note .nrow.active{background:#0596690f;border-radius:4px}.insp-note .qnum{color:#a8a29e;margin-right:.4rem;font-weight:800}.insp-blank{text-align:center;color:#1c1917;background:#fafaf9;border:none;border-bottom:2px solid #d6d3d1;outline:none;width:150px;margin:0 .45rem;padding:.1rem .5rem;font-weight:700;transition:border-color .15s}.insp-blank:focus{border-bottom-color:#059669}body.in-test .test-footer{background:#f4f4f4;border-top:1px solid #d6d3d1;flex-wrap:wrap;align-items:center;row-gap:.6rem;padding:.6rem 1.25rem}.insp-parttabs{background:#e7e5e4;border:1px solid #d6d3d1;border-radius:6px;gap:3px;padding:3px;display:inline-flex}.insp-parttab{color:#57534e;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.35rem 1rem;font-size:.8rem;font-weight:800;transition:all .12s}.insp-parttab.active{color:#1c1917;background:#fff;box-shadow:0 1px 2px #0000001a}.insp-parttab:not(.active):hover{color:#1c1917}body.in-test .footer-left{gap:.5rem}body.in-test .footer-center{flex-wrap:nowrap;order:3;justify-content:flex-start;gap:6px;width:100%;padding:2px 0;overflow-x:auto}body.in-test .q-dot{color:#44403c;background:#fff;border:1px solid #d6d3d1;border-radius:4px;flex:none;width:34px;height:34px;font-weight:700;position:relative}body.in-test .q-dot:hover{background:#fafaf9;border-color:#a8a29e}body.in-test .q-dot.active{color:#065f46;background:#ecfdf5;border-color:#059669;box-shadow:0 0 0 2px #0596694d}body.in-test .q-dot.answered{color:#065f46;background:#fff;border-color:#059669}body.in-test .q-dot.answered:before{content:"";background:#059669;border-radius:50%;width:4px;height:4px;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}body.in-test #submit-test-btn{background:#059669}body.in-test #submit-test-btn:hover{background:#047857}body.reading-mode .app-header,body.reading-mode .test-footer{display:none!important}body.reading-mode .app-main{height:100vh;overflow:hidden}body.reading-mode #test-view.active{flex-direction:column;height:100vh;display:flex;overflow:hidden}body.reading-mode .test-workspace{background:#fff;flex:1 1 0;height:100%;min-height:0;margin:0;padding:0;display:flex;overflow:hidden}.rd-root{color:#1a1a1a;background:#fff;flex-direction:column;flex:1 1 0;width:100%;height:100%;min-height:0;font-family:Arial,Helvetica,Helvetica Neue,sans-serif;display:flex;position:relative;overflow:hidden}.rd-header{border-bottom:1px solid #cfcfcf;flex:none;justify-content:space-between;align-items:center;padding:.85rem 1.5rem;display:flex;box-shadow:0 3px 4px -3px #0000001f}.rd-brand{align-items:center;gap:2.25rem;display:flex}.rd-logo{color:#e2001a;letter-spacing:-1px;font-family:Arial,Helvetica,sans-serif;font-size:2rem;font-weight:800;line-height:1}.rd-logo sup{font-size:.7rem;font-weight:700;top:-.9em}.rd-logo-img{width:auto;height:1.9rem;display:block}.rd-taker{color:#1a1a1a;font-size:1.05rem;font-weight:700}.rd-tools{color:#555;align-items:center;gap:1.5rem;display:flex}.rd-tools svg{cursor:pointer}.rd-tools svg:hover{color:#1a1a1a}.rd-partbanner{background:#ececec;border:1px solid #d9d9d9;border-radius:5px;flex:none;margin:1rem 1.25rem 0;padding:.85rem 1.25rem}.rd-part-title{color:#1a1a1a;font-size:1.05rem;font-weight:700}.rd-part-sub{color:#1a1a1a;margin-top:.25rem;font-size:1rem}.rd-body{flex:1 1 0;width:100%;min-height:0;display:flex;position:relative;overflow:hidden}.rd-passage{-webkit-user-select:text;user-select:text;box-sizing:border-box;min-width:0;height:100%;min-height:0;padding:1.25rem 1.75rem 2rem;overflow-y:auto!important}.rd-passage h1{color:#1a1a1a;margin:.5rem 0 1rem;font-size:1.4rem;font-weight:800}.rd-passage p{color:#1a1a1a;margin:0 0 1rem;font-size:1.05rem;line-height:1.65}.rd-divider{cursor:col-resize;z-index:10;touch-action:none;-webkit-user-select:none;user-select:none;background:#cdcdcd;flex:0 0 4px;width:4px;height:100%;position:relative}.rd-divider:after{content:"";cursor:col-resize;z-index:10;position:absolute;inset:0 -6px}.rd-handle{cursor:col-resize;color:#444;z-index:25;touch-action:none;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #c4c4c4;border-radius:4px;justify-content:center;align-items:center;width:38px;height:34px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 1px 3px #0000001f}.rd-handle:hover{background:#f3f3f3}.rd-handle svg{pointer-events:none}.rd-questions{box-sizing:border-box;min-width:0;height:100%;min-height:0;padding:1.25rem 1.75rem 2rem;overflow-y:auto!important}.rd-qgroup-title{color:#1a1a1a;margin:0 0 .6rem;font-size:1.1rem;font-weight:800}.rd-qgroup-instr{color:#1a1a1a;margin:0 0 1.4rem;font-size:1rem;line-height:1.5}.rd-q{margin-bottom:1.6rem}.rd-qhead{align-items:flex-start;gap:.6rem;margin-bottom:.65rem;display:flex}.rd-qnum{color:#1a1a1a;flex:none;justify-content:center;align-items:center;min-width:24px;height:26px;padding:0 5px;font-size:.95rem;font-weight:700;display:inline-flex}.rd-qnum.sel{border:2px solid #2f6fb0;border-radius:3px}.rd-qtext{color:#1a1a1a;padding-top:1px;font-size:1.02rem;line-height:1.5}.rd-opts{flex-direction:column;gap:.7rem;padding-left:.15rem;display:flex}.rd-opt{cursor:pointer;color:#1a1a1a;align-items:center;gap:.6rem;font-size:1.02rem;display:flex}.rd-opt input{appearance:none;cursor:pointer;border:1.5px solid #8a8a8a;border-radius:50%;flex:none;width:18px;height:18px;margin:0;position:relative}.rd-opt input:checked{border-color:#1a1a1a}.rd-opt input:checked:after{content:"";background:#1a1a1a;border-radius:50%;position:absolute;inset:3px}.rd-blank{text-align:center;color:#1a1a1a;z-index:2;background:#fff;border:1px solid #b8b8b8;border-bottom:2px solid #2f6fb0;border-radius:3px;outline:none;width:140px;margin:0 .4rem;padding:.15rem .5rem;font-family:inherit;font-size:.95rem;font-weight:700;transition:all .15s;position:relative;cursor:text!important;pointer-events:auto!important;-webkit-user-select:text!important;user-select:text!important}.rd-blank:hover{border-color:#666}.rd-blank:focus{background:#fbfdff;border-color:#2f6fb0;box-shadow:0 0 0 2px #2f6fb040}.rd-passage::-webkit-scrollbar{width:10px;height:10px}.rd-questions::-webkit-scrollbar{width:10px;height:10px}.ls-body::-webkit-scrollbar{width:10px;height:10px}.rd-passage::-webkit-scrollbar-track{background:#f1f3f5}.rd-questions::-webkit-scrollbar-track{background:#f1f3f5}.ls-body::-webkit-scrollbar-track{background:#f1f3f5}.rd-passage::-webkit-scrollbar-thumb{background:#b0b8c1;border:2px solid #f1f3f5;border-radius:5px}.rd-questions::-webkit-scrollbar-thumb{background:#b0b8c1;border:2px solid #f1f3f5;border-radius:5px}.ls-body::-webkit-scrollbar-thumb{background:#b0b8c1;border:2px solid #f1f3f5;border-radius:5px}.rd-passage::-webkit-scrollbar-thumb:hover{background:#7a828a}.rd-questions::-webkit-scrollbar-thumb:hover{background:#7a828a}.ls-body::-webkit-scrollbar-thumb:hover{background:#7a828a}.rd-floatnav{z-index:30;gap:.55rem;display:flex;position:absolute;bottom:5.2rem;right:1.25rem}.rd-nav{cursor:pointer;border:none;border-radius:3px;justify-content:center;align-items:center;width:54px;height:48px;display:flex;box-shadow:0 2px 5px #0000002e}.rd-nav-back{color:#1a1a1a;background:#d4d4d4}.rd-nav-back:hover{background:#c6c6c6}.rd-nav-next{color:#fff;background:#1a1a1a}.rd-nav-next:hover{background:#000}.rd-footer{background:#fff;border-top:1px solid #cfcfcf;flex:none;align-items:center;gap:1.5rem;padding:.55rem 1.25rem;display:flex;box-shadow:0 -2px 6px -3px #0000001a}.rd-foot-part{align-items:center;gap:.85rem;display:flex}.rd-foot-label{color:#1a1a1a;cursor:pointer;white-space:nowrap;font-size:1rem;font-weight:700}.rd-foot-count{color:#6b6b6b;font-size:.95rem}.rd-foot-part.inactive{cursor:pointer}.rd-foot-part.inactive:hover .rd-foot-label{text-decoration:underline}.rd-foot-sep{flex:1}.rd-palette{align-items:flex-end;gap:.55rem;padding-bottom:2px;display:flex;overflow-x:auto}.rd-pnum{cursor:pointer;flex-direction:column;flex:none;align-items:center;gap:3px;display:flex}.rd-pdash{background:#cfcfcf;border-radius:1px;width:16px;height:3px}.rd-pnum.answered .rd-pdash{background:#4a4a4a}.rd-pnum-label{color:#1a1a1a;justify-content:center;align-items:center;min-width:22px;height:24px;padding:0 4px;font-size:.95rem;display:inline-flex}.rd-pnum.current .rd-pnum-label{border:2px solid #2f6fb0;border-radius:3px;font-weight:700}.rd-submit{cursor:pointer;color:#1a1a1a;background:#d4d4d4;border:1px solid #bcbcbc;border-radius:3px;flex:none;justify-content:center;align-items:center;width:46px;height:38px;display:flex}.rd-submit:hover{background:#c6c6c6}.rd-tool-btn{color:inherit;cursor:pointer;align-items:center;display:inline-flex}.xt-overlay{z-index:4000;background:#1414148c;justify-content:center;align-items:flex-start;padding:3.5rem 1rem;display:flex;position:fixed;inset:0}.xt-modal{color:#1a1a1a;background:#fff;border-radius:8px;width:min(640px,96vw);font-family:Arial,Helvetica,Helvetica Neue,sans-serif;overflow:hidden;box-shadow:0 18px 60px #00000059}.xt-modal-head{border-bottom:1px solid #e2e2e2;justify-content:center;align-items:center;min-height:56px;padding:1rem 1.25rem;display:flex;position:relative}.xt-modal-title{font-size:1.15rem;font-weight:700}.xt-back{color:#2f6fb0;cursor:pointer;background:0 0;border:none;align-items:center;gap:2px;padding:4px;font-size:1rem;font-weight:600;display:inline-flex;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.xt-back svg{transform:rotate(180deg)}.xt-close{cursor:pointer;color:#555;background:0 0;border:none;padding:4px;font-size:1.2rem;line-height:1;position:absolute;top:50%;right:.9rem;transform:translateY(-50%)}.xt-close:hover{color:#1a1a1a}.xt-panel{max-height:70vh;padding:.65rem 0;overflow-y:auto}.xt-row{cursor:pointer;color:#1a1a1a;text-align:left;background:0 0;border:none;border-bottom:1px solid #ececec;align-items:center;gap:.9rem;width:100%;padding:1rem 1.4rem;font-size:1.05rem;display:flex}.xt-row:last-child{border-bottom:none}.xt-row:hover{background:#f5f5f5}.xt-row-ic{color:#555;display:inline-flex}.xt-row-label{flex:1}.xt-row-chev{color:#999;display:inline-flex}.xt-choice{cursor:pointer;color:#1a1a1a;text-align:left;background:0 0;border:none;border-bottom:1px solid #ececec;align-items:center;gap:.9rem;width:100%;padding:1rem 1.4rem;font-size:1.05rem;display:flex}.xt-choice:last-child{border-bottom:none}.xt-choice:hover{background:#f5f5f5}.xt-choice-tick{color:#1f8a3b;width:22px;display:inline-flex}.xt-choice.sel{font-weight:700}.xt-instr{padding:.4rem 1.4rem 1.2rem}.xt-instr p{color:#1a1a1a;margin:0 0 .9rem;font-size:1rem;line-height:1.6}.xt-panel-contrast .xt-choice[data-mode=bw] .xt-choice-label{color:#111;background:#fff}.xt-panel-contrast .xt-choice[data-mode=wb] .xt-choice-label{color:#fff;background:#111}.xt-panel-contrast .xt-choice[data-mode=yb] .xt-choice-label{color:#ffe100;background:#111}.xt-panel-contrast .xt-choice-label{border:1px solid #cfcfcf;border-radius:3px;padding:3px 10px}body.contrast-wb .xt-modal,body.contrast-yb .xt-modal{background:#141414}body.contrast-wb .xt-modal-head,body.contrast-yb .xt-modal-head,body.contrast-wb .xt-row,body.contrast-yb .xt-row,body.contrast-wb .xt-choice,body.contrast-yb .xt-choice{border-color:#3a3a3a}body.contrast-wb .xt-modal-title,body.contrast-wb .xt-row,body.contrast-wb .xt-choice,body.contrast-wb .xt-instr p,body.contrast-wb .xt-close{color:#f2f2f2}body.contrast-yb .xt-modal-title,body.contrast-yb .xt-row,body.contrast-yb .xt-choice,body.contrast-yb .xt-instr p,body.contrast-yb .xt-close{color:#ffe100}body.contrast-wb .xt-row:hover,body.contrast-wb .xt-choice:hover,body.contrast-yb .xt-row:hover,body.contrast-yb .xt-choice:hover{background:#242424}body.contrast-wb .rd-root{color:#f2f2f2;background:#0d0d0d}body.contrast-wb .rd-header,body.contrast-wb .rd-footer{box-shadow:none;background:#0d0d0d;border-color:#4a4a4a}body.contrast-wb .rd-partbanner{background:#1f1f1f;border-color:#4a4a4a}body.contrast-wb .rd-tools{color:#d0d0d0}body.contrast-wb .rd-divider{background:#4a4a4a}body.contrast-wb .rd-handle{color:#f2f2f2;background:#1f1f1f;border-color:#5a5a5a}body.contrast-wb .rd-root h1,body.contrast-wb .rd-root h2,body.contrast-wb .rd-root h3,body.contrast-wb .rd-root p,body.contrast-wb .rd-root span,body.contrast-wb .rd-root label,body.contrast-wb .rd-root li,body.contrast-wb .rd-root td,body.contrast-wb .rd-root th,body.contrast-wb .rd-root .rd-qtext,body.contrast-wb .rd-root .rd-taker,body.contrast-wb .rd-root .rd-part-title,body.contrast-wb .rd-root .rd-part-sub,body.contrast-wb .rd-root .rd-qgroup-title,body.contrast-wb .rd-root .rd-qgroup-instr,body.contrast-wb .rd-root .rd-foot-label,body.contrast-wb .rd-root .rd-pnum-label,body.contrast-wb .rd-root .rd-foot-count{color:#f2f2f2}body.contrast-wb .rd-blank,body.contrast-wb .rd-select,body.contrast-wb .rd-select-sm,body.contrast-wb .wr-textarea,body.contrast-wb .ls-box,body.contrast-wb .ls-select{color:#fff;background:#1f1f1f;border-color:#6a6a6a}body.contrast-wb .rd-opt input,body.contrast-wb .ls-block input[type=radio]{border-color:#cfcfcf}body.contrast-wb .rd-opt input:checked{border-color:#fff}body.contrast-wb .rd-opt input:checked:after{background:#fff}body.contrast-wb .rd-pdash{background:#5a5a5a}body.contrast-wb .rd-pnum.answered .rd-pdash{background:#f2f2f2}body.contrast-wb .rd-phrase,body.contrast-wb .ls-optbox,body.contrast-wb .ls-note{background:#1f1f1f;border-color:#4a4a4a}body.contrast-wb .highlighted{color:#fff;background:#7a5f00}body.contrast-yb .rd-root{color:#ffe100;background:#000}body.contrast-yb .rd-header,body.contrast-yb .rd-footer{box-shadow:none;background:#000;border-color:#6b5d00}body.contrast-yb .rd-partbanner{background:#1a1600;border-color:#6b5d00}body.contrast-yb .rd-tools{color:#ffe100}body.contrast-yb .rd-divider{background:#6b5d00}body.contrast-yb .rd-handle{color:#ffe100;background:#1a1600;border-color:#6b5d00}body.contrast-yb .rd-root h1,body.contrast-yb .rd-root h2,body.contrast-yb .rd-root h3,body.contrast-yb .rd-root p,body.contrast-yb .rd-root span,body.contrast-yb .rd-root label,body.contrast-yb .rd-root li,body.contrast-yb .rd-root td,body.contrast-yb .rd-root th,body.contrast-yb .rd-root .rd-qtext,body.contrast-yb .rd-root .rd-taker,body.contrast-yb .rd-root .rd-part-title,body.contrast-yb .rd-root .rd-part-sub,body.contrast-yb .rd-root .rd-qgroup-title,body.contrast-yb .rd-root .rd-qgroup-instr,body.contrast-yb .rd-root .rd-foot-label,body.contrast-yb .rd-root .rd-pnum-label,body.contrast-yb .rd-root .rd-foot-count{color:#ffe100}body.contrast-yb .rd-blank,body.contrast-yb .rd-select,body.contrast-yb .rd-select-sm,body.contrast-yb .wr-textarea,body.contrast-yb .ls-box,body.contrast-yb .ls-select{color:#ffe100;background:#1a1600;border-color:#6b5d00}body.contrast-yb .rd-opt input,body.contrast-yb .ls-block input[type=radio],body.contrast-yb .rd-opt input:checked{border-color:#ffe100}body.contrast-yb .rd-opt input:checked:after{background:#ffe100}body.contrast-yb .rd-pdash{background:#6b5d00}body.contrast-yb .rd-pnum.answered .rd-pdash{background:#ffe100}body.contrast-yb .rd-phrase,body.contrast-yb .ls-optbox,body.contrast-yb .ls-note{background:#1a1600;border-color:#6b5d00}body.contrast-yb .highlighted{color:#000;background:#ffe100}body.tsize-large .rd-passage,body.tsize-large .rd-questions,body.tsize-large .ls-body,body.tsize-large .rd-partbanner{zoom:1.15}body.tsize-xlarge .rd-passage,body.tsize-xlarge .rd-questions,body.tsize-xlarge .ls-body,body.tsize-xlarge .rd-partbanner{zoom:1.3}.rd-flaggable{padding-right:28px;position:relative}.rd-flag{cursor:pointer;color:#a9a9a9;background:0 0;border:none;padding:2px;line-height:0;position:absolute;top:0;right:0}.rd-flag:hover,.rd-flag.on{color:#e2001a}.rd-flag.on svg{fill:#e2001a}.rd-pnum{position:relative}.rd-pnum.flagged:after{content:"";clip-path:polygon(0 0,100% 0,100% 100%,50% 72%,0 100%);background:#e2001a;width:7px;height:9px;position:absolute;top:-3px;right:1px}body.contrast-wb .rd-flag,body.contrast-yb .rd-flag{color:#8a8a8a}body.contrast-wb .rd-flag:hover,body.contrast-wb .rd-flag.on,body.contrast-yb .rd-flag:hover,body.contrast-yb .rd-flag.on{color:#ff5b5b}body.contrast-wb .rd-flag.on svg,body.contrast-yb .rd-flag.on svg{fill:#ff5b5b}body.contrast-wb .rd-pnum.flagged:after,body.contrast-yb .rd-pnum.flagged:after{background:#ff5b5b}.xt-selpop{z-index:4200;color:#fff;background:#2b2b2b;border-radius:7px;gap:2px;padding:3px;display:flex;position:fixed;box-shadow:0 5px 16px #00000059}.xt-selpop-btn{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;padding:6px 11px;font-family:inherit;font-size:.9rem;display:inline-flex}.xt-selpop-btn:hover{background:#ffffff29}.xt-noted{color:inherit;cursor:pointer;background:#bfe9fb;border-bottom:2px solid #37a0c9}body.contrast-wb .xt-noted,body.contrast-yb .xt-noted{color:#fff;background:#14556b;border-bottom-color:#58c0e0}.xt-notes-panel{z-index:4100;color:#1a1a1a;background:#fff;border-left:1px solid #d0d0d0;flex-direction:column;width:320px;height:100vh;font-family:Arial,Helvetica,Helvetica Neue,sans-serif;display:flex;position:fixed;top:0;right:0;box-shadow:-5px 0 18px #00000024}.xt-notes-head{border-bottom:1px solid #e2e2e2;justify-content:space-between;align-items:center;padding:1rem 1.1rem;display:flex}.xt-notes-title{font-size:1.05rem;font-weight:700}.xt-notes-close{cursor:pointer;color:#555;background:0 0;border:none;font-size:1.15rem;line-height:1}.xt-notes-close:hover{color:#1a1a1a}.xt-notes-list{flex:1;padding:.8rem;overflow-y:auto}.xt-notes-empty{color:#8a8a8a;text-align:center;padding:2.4rem 1rem;font-size:.95rem;line-height:1.55}.xt-note{background:#f5f9fc;border:1px solid #dde8ef;border-radius:6px;margin-bottom:.8rem;padding:.7rem}.xt-note-quote{color:#37729a;border-left:3px solid #9cc9e0;max-height:4.6em;margin-bottom:.55rem;padding-left:.55rem;font-size:.82rem;font-style:italic;line-height:1.35;overflow:hidden}.xt-note-body{resize:vertical;color:#1a1a1a;border:1px solid #cfd8dd;border-radius:4px;width:100%;min-height:64px;padding:.45rem;font-family:inherit;font-size:.92rem}.xt-note-del{color:#c0392b;cursor:pointer;background:0 0;border:none;margin-top:.4rem;padding:2px 0;font-size:.85rem}.xt-note-del:hover{text-decoration:underline}body.xt-notes-open .rd-root{width:calc(100% - 320px)}body.contrast-wb .xt-notes-panel,body.contrast-yb .xt-notes-panel{background:#141414;border-left-color:#3a3a3a}body.contrast-wb .xt-notes-head,body.contrast-yb .xt-notes-head{border-bottom-color:#3a3a3a}body.contrast-wb .xt-note,body.contrast-yb .xt-note{background:#1f1f1f;border-color:#3a3a3a}body.contrast-wb .xt-note-body,body.contrast-yb .xt-note-body{color:#f2f2f2;background:#0d0d0d;border-color:#4a4a4a}body.contrast-wb .xt-notes-title,body.contrast-wb .xt-notes-close{color:#f2f2f2}body.contrast-yb .xt-notes-title,body.contrast-yb .xt-notes-close{color:#ffe100}body.reading-mode #test-view{opacity:1;flex-direction:column;max-width:none;height:100vh;margin:0;padding:0;display:flex;overflow:hidden}.rd-intro{color:#444;margin:0 0 1rem;font-size:1rem;font-style:italic;line-height:1.5}.rd-passage p .rd-para{color:#1a1a1a;margin-right:.6rem;font-weight:800}.rd-footnote{color:#555;border-top:1px solid #ddd;margin-top:.8rem;padding-top:.6rem;font-size:.85rem}.rd-q-match{align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.rd-q-match .rd-qtext{flex:1}.rd-select{color:#1a1a1a;cursor:pointer;background:#fff;border:1px solid #8a8a8a;border-radius:4px;flex:none;min-width:64px;padding:.35rem .5rem;font-size:1rem;font-weight:700}.rd-select:focus{border-color:#2f6fb0;outline:none;box-shadow:0 0 0 2px #2f6fb033}.rd-multi-prompt{margin-bottom:.8rem;font-weight:600}.rd-checkopts{flex-direction:column;gap:.55rem;display:flex}.rd-checkopt{cursor:pointer;color:#1a1a1a;border:1px solid #e2e2e2;border-radius:6px;align-items:flex-start;gap:.6rem;padding:.5rem .65rem;font-size:1.02rem;transition:all .12s;display:flex}.rd-checkopt:hover{background:#f7f7f7}.rd-checkopt.sel{background:#eef4fb;border-color:#2f6fb0}.rd-checkopt input{appearance:none;cursor:pointer;border:1.5px solid #8a8a8a;border-radius:4px;flex:none;width:18px;height:18px;margin:2px 0 0;position:relative}.rd-checkopt input:checked{background:#2f6fb0;border-color:#2f6fb0}.rd-checkopt input:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:10px;position:absolute;top:1px;left:5px;transform:rotate(45deg)}.rd-cletter{min-width:1.1rem;font-weight:800}.review-item.partial{background:#c9881f0f;border-left:4px solid #c9881f}.rd-opt .rd-cletter{min-width:1.1rem;font-weight:800}.rd-summary{background:#fff;border:1px solid #e2e2e2;border-radius:8px;margin-bottom:1rem;padding:1.1rem 1.25rem}.rd-summary-heading{text-align:center;color:#1a1a1a;border-bottom:1px solid #e7e5e4;margin-bottom:.8rem;padding-bottom:.6rem;font-size:1.05rem;font-weight:800}.rd-summary-text{color:#1a1a1a;font-size:1.02rem;line-height:2.1}.rd-sumblank{align-items:center;gap:4px;margin:0 2px;display:inline-flex}.rd-sumnum{color:#2f6fb0;font-weight:800}.rd-select-sm{min-width:56px;padding:.15rem .35rem}.rd-phrase-list{background:#fafafa;border:1px solid #d6d3d1;border-radius:8px;grid-template-columns:repeat(3,1fr);gap:.4rem 1rem;padding:1rem 1.25rem;display:grid}.rd-phrase{color:#1a1a1a;gap:.5rem;font-size:.97rem;display:flex}@media (width<=1100px){.rd-phrase-list{grid-template-columns:repeat(2,1fr)}}.rd-header{gap:1rem}.rd-brand{flex:1 1 0}.rd-tools{flex:1 1 0;justify-content:flex-end}.rd-timer{text-align:center;white-space:nowrap;color:#1a1a1a;letter-spacing:.3px;flex:none;font-family:Arial,Helvetica,sans-serif;font-size:1.35rem;font-weight:800}.rd-timer.danger{color:#e11d48;animation:1s ease-in-out infinite rd-timer-pulse}@keyframes rd-timer-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (width<=820px){.rd-timer{font-size:1.05rem}}.module-type-badge{background:var(--primary-light);color:var(--primary);border:1px solid var(--primary-alpha);border-radius:99px;margin-left:.5rem;padding:.2rem .7rem;font-size:.8rem;font-weight:700;display:inline-block}.back-tests-btn{margin-bottom:1rem}.test-select-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.25rem;display:grid}.test-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--transition-speed), box-shadow var(--transition-speed);flex-direction:column;gap:.85rem;padding:1.5rem;display:flex}.test-card.ready:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.test-card.locked,.test-card.soon{opacity:.75}.test-card-top{justify-content:space-between;align-items:center;display:flex}.test-card-num{font-family:var(--font-title);color:var(--text-primary);font-size:1.35rem;font-weight:800}.test-card-flag{text-transform:uppercase;letter-spacing:.5px;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:5px;padding:.2rem .55rem;font-size:.68rem;font-weight:800}.test-card-flag.active{background:var(--success-light);color:var(--success)}.test-card-flag.locked{background:var(--danger-light);color:var(--danger)}.test-card-note{color:var(--text-secondary);flex:1;font-size:.85rem}.test-card-btn{width:100%}.test-card-btn:disabled{opacity:.6;cursor:not-allowed}.ls-root{position:relative}.ls-headblock{flex-direction:column;gap:1px;display:flex}.ls-audio-status{color:#555;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;display:inline-flex}.ls-audio-status svg{color:#1a1a1a}.ls-audio-status.danger{color:#e11d48;animation:1s ease-in-out infinite rd-timer-pulse}.ls-body{background:#fff;flex:1;min-height:0;overflow-y:auto}.ls-col{max-width:880px;margin:0 auto;padding:1.25rem 1.75rem 3rem}.ls-note{color:#1a1a1a;font-size:1.05rem;line-height:2}.ls-note .ls-note-title{margin:0 0 .75rem;font-size:1.1rem;font-weight:800}.ls-note .ls-sub{margin:1rem 0 .25rem;font-weight:800}.ls-note p{margin:.15rem 0}.ls-box{color:#1a1a1a;text-align:center;vertical-align:middle;background:#fff;border:1px solid #8a8a8a;border-radius:3px;outline:none;min-width:130px;margin:0 .3rem;padding:.3rem .6rem;font-size:1rem;font-weight:700;display:inline-block}.ls-box:focus{border-color:#2f6fb0;box-shadow:0 0 0 2px #2f6fb040}.ls-box::placeholder,.rd-blank::placeholder{color:#1a1a1a;opacity:1;text-align:center;font-weight:700}.ls-overlay{z-index:50;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);text-align:center;color:#fff;background:#282828c7;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ls-overlay-inner{flex-direction:column;align-items:center;gap:1.25rem;max-width:760px;padding:2rem;display:flex}.ls-headphones{color:#fff}.ls-overlay-text{margin:0;font-size:1.25rem;line-height:1.6}.ls-play-btn{color:#fff;cursor:pointer;background:#1a1a1a;border:none;border-radius:5px;align-items:center;gap:.6rem;padding:.7rem 1.6rem;font-size:1.05rem;font-weight:700;display:inline-flex}.ls-play-btn:hover{background:#000}.ls-play-btn:disabled{opacity:.5;cursor:not-allowed}.ls-play-btn:disabled:hover{background:#1a1a1a}.ls-prep{color:#ffffffd9;align-items:center;gap:.55rem;font-size:.95rem;font-weight:600;display:inline-flex}.ls-prep.ready{color:#86efac}.ls-prep.ready .ls-spinner{display:none}.ls-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:15px;height:15px;animation:.8s linear infinite ls-spin}@keyframes ls-spin{to{transform:rotate(360deg)}}.ls-block{margin-bottom:2rem}.ls-qheading{text-align:center;color:#1a1a1a;margin:.5rem 0 1rem;font-size:1.1rem;font-weight:800}.ls-note .ls-indent{padding-left:1.5rem}.ls-map-img{border:1px solid #d6d3d1;border-radius:6px;max-width:100%;height:auto;margin:0 auto 1.25rem;display:block}.ls-maprows{flex-direction:column;gap:.6rem;max-width:520px;display:flex}.ls-maprows .rd-q-match{margin-bottom:0}.ls-select{color:#1a1a1a;cursor:pointer;background:#fff;border:1px solid #8a8a8a;border-radius:4px;flex:none;min-width:64px;padding:.35rem .5rem;font-size:1rem;font-weight:700}.ls-select:focus{border-color:#2f6fb0;outline:none;box-shadow:0 0 0 2px #2f6fb033}.ls-optbox{background:#fafafa;border:1px solid #d6d3d1;border-radius:8px;margin:.75rem 0 1rem;padding:.5rem .5rem .75rem}.ls-optbox-title{text-align:center;padding:.4rem;font-weight:800}.wr-promptlead{color:#1a1a1a;margin:0 0 .85rem;font-size:1.05rem;line-height:1.6}.wr-promptbox{color:#1a1a1a;background:#fff;border:1px solid #555;border-radius:2px;margin:0 0 1rem;padding:1rem 1.25rem;font-size:1.05rem;font-style:italic;font-weight:700;line-height:1.6}.wr-chart{max-width:640px;margin:1rem 0 .5rem}.wr-editor{flex-direction:column;height:100%;min-height:0;display:flex}.wr-editor-head{color:#6b6b6b;flex:none;justify-content:space-between;align-items:center;padding:0 .2rem .55rem;font-size:.92rem;display:flex}.wr-textarea{resize:none;color:#1a1a1a;background:#fff;border:1px solid #8a8a8a;border-radius:4px;outline:none;flex:auto;width:100%;min-height:260px;padding:1rem 1.1rem;font-family:Arial,Helvetica,sans-serif;font-size:1.05rem;line-height:1.6}.wr-textarea:focus{border-color:#2f6fb0;box-shadow:0 0 0 2px #2f6fb033}.wr-wordcount{color:#fff;background:#2f6fb0;border-radius:999px;padding:.2rem .7rem;font-size:.9rem;font-weight:800}.wr-wordcount.ok{background:#1f7a3d}.sp-col{max-width:760px;margin:0 auto}.sp-examiner{background:#f3f4f6;border:1px solid #e0e0e0;border-radius:8px;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:.9rem 1.1rem;display:flex}.sp-avatar{color:#fff;background:#2f6fb0;border-radius:50%;flex:none;justify-content:center;align-items:center;width:60px;height:60px;transition:transform .2s,box-shadow .2s;display:flex}.sp-avatar.speaking{transform:scale(1.04);box-shadow:0 0 0 6px #2f6fb02e}.sp-examiner-meta{flex:auto}.sp-examiner-name{color:#1a1a1a;font-weight:800}.sp-status{color:#555;margin-top:2px;font-size:.95rem}.rd-textbtn{color:#1a1a1a;cursor:pointer;background:#fff;border:1px solid #b8b8b8;border-radius:5px;align-items:center;gap:.4rem;padding:.5rem .8rem;font-size:.92rem;font-weight:600;display:inline-flex}.rd-textbtn:hover{background:#f3f3f3}.sp-question-box,.sp-cuecard{background:#fff;border:1px solid #d6d3d1;border-radius:8px;margin-bottom:1.25rem;padding:1.1rem 1.25rem}.sp-examiner-q{color:#1a1a1a;margin:0;font-size:1.15rem;line-height:1.55}.sp-cue-topic{color:#1a1a1a;margin:.25rem 0 .75rem;font-size:1.2rem;font-weight:800}.sp-cue-sub{margin:0 0 .35rem;font-weight:700}.sp-cue-list{color:#333;margin:0;padding-left:1.3rem;line-height:1.7}.sp-recorder{flex-direction:column;align-items:center;gap:1rem;margin:1.5rem 0 2rem;display:flex}.sp-timer{color:#1a1a1a;font-variant-numeric:tabular-nums;font-size:2.6rem;font-weight:800}.sp-timer.danger{color:#d32030}.rd-bigbtn{color:#fff;cursor:pointer;background:#2f6fb0;border:none;border-radius:6px;align-items:center;gap:.5rem;padding:.85rem 1.8rem;font-size:1.05rem;font-weight:700;transition:background .15s;display:inline-flex}.rd-bigbtn:hover{background:#285f97}.rd-bigbtn.recording{background:#d32030}.rd-bigbtn.recording:hover{background:#b71c2c}.sp-history{border-top:1px solid #e0e0e0;padding-top:1rem}.sp-history-title{text-transform:uppercase;letter-spacing:.04em;color:#6b6b6b;margin:0 0 .6rem;font-size:.85rem}.sp-empty{color:#888;font-size:.9rem;font-style:italic}.sp-track{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 0;display:flex}.sp-track-label{color:#333;font-size:.92rem;overflow:hidden}.sp-track-label span{color:#666}.sp-track audio{flex:none;height:32px}.auth-page{background:linear-gradient(135deg,#0c6179,#182543);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-shell{width:100%;max-width:420px}.auth-card{background:var(--bg-secondary,#fff);border-radius:18px;padding:2.5rem 2.25rem;box-shadow:0 25px 60px #0000004d}.auth-brand{text-align:center;margin-bottom:1.75rem}.auth-logo{font-family:var(--font-title,sans-serif);letter-spacing:-.03em;color:var(--text-primary,#0f172a);font-size:1.9rem;font-weight:800}.auth-logo-accent{color:var(--primary,#0e7490)}.auth-tagline{color:var(--text-secondary,#64748b);margin-top:.35rem;font-size:.95rem}.auth-form{flex-direction:column;gap:1.1rem;display:flex}.auth-field{flex-direction:column;gap:.4rem;display:flex}.auth-field span{color:var(--text-secondary,#475569);font-size:.85rem;font-weight:600}.auth-field input{border:1px solid var(--border-color,#e2e8f0);background:var(--bg-primary,#f8fafc);color:var(--text-primary,#0f172a);border-radius:10px;padding:.75rem .9rem;font-size:1rem;transition:border-color .15s,box-shadow .15s}.auth-field input:focus{border-color:var(--primary,#0e7490);box-shadow:0 0 0 3px var(--primary-alpha,#0e749026);outline:none}.auth-submit{width:100%;margin-top:.25rem;padding:.8rem;font-size:1rem}.auth-error{background:var(--danger-light,#fef2f2);color:var(--danger,#dc2626);border:1px solid var(--danger,#dc2626);border-radius:8px;padding:.6rem .8rem;font-size:.875rem;font-weight:500}.auth-foot{text-align:center;color:var(--text-secondary,#94a3b8);margin-top:1.5rem;font-size:.8rem}.candidate-badge{color:var(--text-secondary,#475569);align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;display:inline-flex}.candidate-badge .who{color:var(--text-primary,#0f172a)}.admin-header{background:var(--bg-secondary,#fff);border-bottom:1px solid var(--border-color,#e2e8f0);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;padding:1rem 1.75rem;display:flex}.admin-brand{align-items:center;gap:.75rem;display:flex}.admin-tag{text-transform:uppercase;letter-spacing:.5px;background:var(--primary,#0e7490);color:#fff;border-radius:4px;padding:.15rem .5rem;font-size:.7rem;font-weight:800}.admin-account{align-items:center;gap:1rem;display:flex}.admin-tabs{background:var(--bg-secondary,#fff);border-bottom:1px solid var(--border-color,#e2e8f0);gap:.25rem;padding:0 1.75rem;display:flex}.admin-tab{cursor:pointer;color:var(--text-secondary,#64748b);background:0 0;border:none;border-bottom:3px solid #0000;padding:.85rem 1.25rem;font-size:.95rem;font-weight:600}.admin-tab.active{color:var(--primary,#0e7490);border-bottom-color:var(--primary,#0e7490)}.admin-main{flex-direction:column;gap:1.5rem;max-width:1100px;margin:0 auto;padding:1.75rem;display:flex}.admin-panel{flex-direction:column;gap:1.5rem;display:none}.admin-panel.active{display:flex}.admin-card{background:var(--bg-secondary,#fff);border:1px solid var(--border-color,#e2e8f0);box-shadow:var(--shadow-sm);border-radius:14px;padding:1.5rem}.admin-card h2{margin-bottom:1rem;font-size:1.1rem}.admin-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.admin-card-head h2{margin-bottom:0}.admin-form-row{flex-wrap:wrap;gap:.6rem;display:flex}.admin-form-row input{border:1px solid var(--border-color,#e2e8f0);background:var(--bg-primary,#f8fafc);min-width:150px;color:var(--text-primary);border-radius:8px;flex:1;padding:.6rem .8rem;font-size:.95rem}.admin-form-row input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-alpha);outline:none}.admin-search,.admin-filters select{border:1px solid var(--border-color,#e2e8f0);background:var(--bg-primary,#f8fafc);color:var(--text-primary);border-radius:8px;padding:.5rem .75rem;font-size:.9rem}.admin-filters{flex-wrap:wrap;gap:.5rem;display:flex}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.92rem}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:var(--text-secondary,#64748b);border-bottom:2px solid var(--border-color,#e2e8f0);padding:.65rem .75rem;font-size:.78rem}.admin-table td{border-bottom:1px solid var(--border-color,#eef2f7);vertical-align:top;padding:.75rem}.admin-table tr:hover td{background:var(--bg-primary,#f8fafc)}.ta-right{text-align:right}.admin-table .muted{color:var(--text-secondary,#94a3b8);font-size:.82rem}.admin-table .cap{text-transform:capitalize}.admin-empty{text-align:center;color:var(--text-secondary,#94a3b8);padding:1.5rem}.btn-mini{border:1px solid var(--border-color,#e2e8f0);background:var(--bg-secondary,#fff);color:var(--text-primary);cursor:pointer;border-radius:6px;margin-left:.35rem;padding:.35rem .7rem;font-size:.8rem;font-weight:600}.btn-mini:hover{background:var(--bg-tertiary,#f1f5f9)}.btn-mini.danger{color:var(--danger,#dc2626);border-color:var(--danger,#dc2626)}.btn-mini.danger:hover{background:var(--danger-light,#fef2f2)}.admin-msg{border-radius:8px;margin-top:.9rem;padding:.6rem .8rem;font-size:.88rem;font-weight:500}.admin-msg.success{background:var(--success-light,#f0fdf4);color:var(--success,#16a34a);border:1px solid var(--success,#16a34a)}.admin-msg.error{background:var(--danger-light,#fef2f2);color:var(--danger,#dc2626);border:1px solid var(--danger,#dc2626)}.admin-msg.info{background:var(--primary-light);color:var(--primary)}.result-meta{background:var(--bg-primary,#f8fafc);border-radius:10px;grid-template-columns:repeat(2,1fr);gap:.5rem 1.5rem;padding:1rem 1.25rem;font-size:.92rem;display:grid}@media (width<=600px){.result-meta{grid-template-columns:1fr}}.admin-form-options{align-items:flex-end;margin-top:.75rem}.admin-inline-field{flex-direction:column;gap:.35rem;display:flex}.admin-inline-field>span{color:var(--text-secondary,#64748b);text-transform:uppercase;letter-spacing:.4px;font-size:.78rem;font-weight:700}.admin-inline-field select{border:1px solid var(--border-color,#e2e8f0);background:var(--bg-primary,#f8fafc);color:var(--text-primary);border-radius:8px;padding:.6rem .8rem;font-size:.95rem}.admin-test-checks{flex-wrap:wrap;gap:.75rem;padding:.4rem 0;display:flex}.admin-test-checks label{cursor:pointer;align-items:center;gap:.3rem;font-size:.9rem;display:inline-flex}.type-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:5px;padding:.15rem .5rem;font-size:.72rem;font-weight:800}.type-badge.academic{background:var(--primary-light);color:var(--primary)}.type-badge.general{background:var(--secondary-light,#fef3c7);color:var(--secondary-hover,#b45309)}.test-pills{gap:.25rem;display:inline-flex}.test-pill{background:var(--bg-tertiary,#f1f5f9);width:22px;height:22px;color:var(--text-secondary,#94a3b8);border:1px solid var(--border-color,#e2e8f0);border-radius:5px;justify-content:center;align-items:center;font-size:.78rem;font-weight:700;display:inline-flex}.test-pill.on{background:var(--primary,#0e7490);color:#fff;border-color:var(--primary,#0e7490)}.status-pill{letter-spacing:.02em;vertical-align:middle;border-radius:999px;padding:.15rem .55rem;font-size:.72rem;font-weight:800;display:inline-block}.status-pill.pending{color:#92600a;background:#fde9c8}.status-pill.graded{color:#1f7a3d;background:#d8f3e0}.btn-mini.primary{background:var(--primary,#0e7490);color:#fff;border-color:var(--primary,#0e7490)}.btn-mini.primary:hover{filter:brightness(.94);background:var(--primary,#0e7490)}.wr-exam{flex-direction:column;gap:1rem;margin-top:1rem;display:flex}.wr-exam-task{border:1px solid var(--border-color,#e2e8f0);border-radius:8px;overflow:hidden}.wr-exam-head{background:var(--bg-tertiary,#f1f5f9);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem .85rem;font-size:.95rem;display:flex}.wr-exam-text{white-space:pre-wrap;word-break:break-word;color:var(--text-primary,#0f172a);background:#fff;max-height:320px;margin:0;padding:.85rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9rem;line-height:1.55;overflow-y:auto}.wr-grade{border:1px solid var(--border-color,#e2e8f0);background:var(--bg-secondary,#f8fafc);border-radius:10px;margin-top:1.5rem;padding:1.1rem 1.25rem}.wr-grade-title{margin:0 0 .35rem;font-size:1.05rem}.wr-grade-row{margin-bottom:.85rem}.wr-grade label{margin-bottom:.75rem;font-size:.9rem;font-weight:700;display:block}.wr-grade select,.wr-grade textarea{border:1px solid var(--border-color,#cbd5e1);width:100%;max-width:220px;font:inherit;border-radius:6px;margin-top:.35rem;padding:.5rem .6rem;display:block}.wr-grade-notes textarea{resize:vertical;max-width:100%}.wr-grade-actions{justify-content:flex-end;align-items:center;gap:1rem;margin-top:.5rem;display:flex}.wr-grade-actions .admin-msg{margin:0}
