@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap');
:root{font-family:'Be Vietnam Pro',system-ui,-apple-system,sans-serif;color:#172743;background:#f4f6fa;font-synthesis:none;--blue:#3c5bec;--navy:#14223d;--muted:#69768b;--line:#e4e8f0;--green:#168367;--red:#bd4355}*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.6}button,select,input{font:inherit}button,a,select,label.answer{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #91a5ff;outline-offset:4px}button{transition:background .15s,box-shadow .15s,transform .15s}button:not(:disabled):active{transform:translateY(1px)}.sidebar{position:fixed;inset:0 auto 0 0;width:274px;background:var(--navy);color:#b8c4db;display:flex;flex-direction:column;padding:31px 20px 20px;z-index:2}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 31px;color:#fff;font-weight:700;font-size:20px;line-height:1.5}.brand-icon{width:42px;height:44px;display:grid;place-items:center;background:#4b68f4;border-radius:12px;color:#fff;font-size:28px;letter-spacing:-3px;padding-right:4px}.brand small{display:block;font-size:10px;letter-spacing:2.2px;color:#879cbd;margin-top:2px}.sidebar-heading{font-size:11px;font-weight:600;letter-spacing:1.5px;display:flex;justify-content:space-between;padding:0 12px 15px;color:#8b9bb7}.sidebar-heading span{letter-spacing:0;color:#c6d2e6}#topics{overflow:auto;scrollbar-width:thin;scrollbar-color:#344361 transparent;flex:1}.topic-button{display:flex;align-items:flex-start;gap:11px;width:100%;background:transparent;border:0;color:inherit;text-align:left;border-radius:8px;padding:11px 12px;font-size:13px;line-height:1.55;margin:2px 0}.topic-button:hover{background:#203354;color:#fff}.topic-button.active{background:#304775;color:#fff}.topic-number{font-size:11px;min-width:20px;color:#7f95b9;margin-top:2px;font-weight:600}.active .topic-number{color:#a8bdff}.topic-button.all{font-size:14px;font-weight:600;padding-top:13px;padding-bottom:13px;margin-bottom:15px}.topic-button.all.active{background:var(--blue)}.topic-button.all .topic-number{color:#fff;font-size:18px;line-height:1.2}.topic-button .topic-total{margin-left:auto;color:#bdcae3;font-size:12px;min-width:25px;text-align:right}.sidebar-note{display:flex;align-items:center;gap:10px;border-top:1px solid #2b3b55;margin-top:15px;padding:20px 10px 0;font-size:12px}.sidebar-note small{display:block;font-size:11px;color:#8194b2;margin-top:3px}.book-icon{font-size:27px;color:#7189b1}main{margin-left:274px}.topbar{height:78px;padding:0 48px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.breadcrumb{font-size:11px;font-weight:600;letter-spacing:1.5px;color:#71809a}.breadcrumb span{color:#c9d0dd;margin:0 18px}.source-badge{font-size:12px;color:#64728a;display:flex;align-items:center;gap:8px}.source-badge i{display:inline-block;width:7px;height:7px;background:#5975ef;border-radius:2px}.workspace{padding:33px 48px 24px;max-width:1570px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}.eyebrow{font-size:10px;letter-spacing:1.8px;color:#7784a0;font-weight:600;margin:0 0 8px}h1{font-size:32px;line-height:1.35;letter-spacing:-1.2px;font-weight:700;margin:0 0 8px}.page-heading p:not(.eyebrow){font-size:14px;color:var(--muted);margin:0}.bank-stat{text-align:right;line-height:1.35}.bank-stat strong{display:block;font-size:30px;letter-spacing:-1px}.bank-stat span{font-size:12px;color:var(--muted)}.setup{display:flex;gap:22px;align-items:flex-end;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 22px;margin-bottom:27px;box-shadow:0 3px 5px #14223d02}.field-label,.setup label{display:block;color:#77839a;font-size:12px;margin-bottom:8px;font-weight:500}.segmented{display:flex;background:#f0f3f8;padding:4px;border-radius:7px}.segmented button{white-space:nowrap;border:0;background:transparent;color:#748198;font-size:13px;font-weight:600;padding:8px 15px;border-radius:5px;line-height:1.5}.segmented button.active{background:#fff;color:var(--blue);box-shadow:0 1px 4px #14223d12}select{padding:10px 32px 10px 13px;border:1px solid #dfe4ee;border-radius:7px;background:#fff;color:#34405a;font-size:14px;min-height:44px}.selection-note{flex:1;min-width:80px;padding-bottom:2px;line-height:1.5}.selection-note strong{display:block;font-size:13px;font-weight:500}.selection-note span{font-size:11px;color:#8993a7}.button{padding:12px 18px;border-radius:7px;border:1px solid transparent;font-size:13px;font-weight:600;line-height:1.5;min-height:44px;white-space:nowrap}.primary{background:var(--blue);color:#fff;box-shadow:0 3px 6px #3c5bec14}.primary:not(:disabled):hover{background:#2847db}.secondary{background:#fff;border-color:#dce2ee;color:#48556d}.secondary:hover{background:#f3f5fa}.text-button{border:0;background:transparent;color:var(--muted);padding:8px 0;font-size:13px;min-height:44px}.study-layout{display:grid;grid-template-columns:minmax(0,1fr) 258px;gap:24px;align-items:start}.question-card{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;padding:27px 30px 0;box-shadow:0 7px 18px #20335403;scroll-margin-top:18px}.question-card:focus{outline:none}.question-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.topic-tag{background:#eef2ff;border-radius:5px;color:#5265c2;font-size:11px;font-weight:600;padding:5px 10px;line-height:1.6}.question-index{font-size:12px;color:#8390a5;white-space:nowrap}.question-card h2{font-size:21px;line-height:1.65;font-weight:600;letter-spacing:-.4px;margin:0 0 8px}.answer-hint{font-size:12px;color:#8d97a8;margin:0 0 22px}.answers{display:grid;gap:11px}.answer{border:1px solid #e1e6ef;border-radius:8px;display:flex;align-items:center;gap:14px;min-height:65px;padding:13px 16px;cursor:pointer;color:#465570;position:relative;font-size:15px;line-height:1.6;background:#fff}.answer:hover{border-color:#9eaff7;background:#f9faff}.answer input{position:absolute;opacity:0;pointer-events:none}.answer:has(input:focus-visible){outline:3px solid #91a5ff;outline-offset:2px}.letter{border:1px solid #e1e6ef;border-radius:7px;display:grid;place-items:center;min-width:31px;height:31px;font-size:12px;font-weight:600;color:#74809a;flex-shrink:0}.answer.selected{background:#f0f3ff;border-color:#5975f1;color:#25397f}.selected .letter{background:var(--blue);border-color:var(--blue);color:#fff}.answer.correct{background:#edf9f3;border-color:#67b497;color:#1d6653}.correct .letter{background:#168367;border-color:#168367;color:#fff}.answer.incorrect{background:#fff2f4;border-color:#df8b99;color:#9e3e4d}.incorrect .letter{background:var(--red);border-color:var(--red);color:#fff}.answer:has(input:disabled){cursor:default}.answer-mark{margin-left:auto;font-size:13px;white-space:nowrap}.question-footer{border-top:1px solid #edf0f5;margin-top:27px;padding:19px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}.question-footer>span{font-size:11px;line-height:1.7;color:#8590a2;max-width:215px}.question-actions{display:flex;gap:12px;align-items:center}.explanation{border-radius:8px;background:#f2f8f6;margin-top:22px;padding:17px 20px;border-left:3px solid #248d70}.explanation.wrong{background:#fff7f4;border-left-color:#d77b5b}.explanation strong{color:#25725a;font-size:14px}.explanation.wrong strong{color:#b15440}.explanation p{font-size:14px;line-height:1.8;color:#485b61;margin:8px 0}.source-ref{font-size:12px;color:#4c66c9;text-decoration:underline;text-underline-offset:3px}.session-panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 20px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:24px}.panel-heading h2{font-size:14px;font-weight:600;margin:0}.mini-badge{font-size:10px;border:1px solid #e1e6ee;color:#8290a7;border-radius:5px;padding:3px 6px;white-space:nowrap}.progress-label{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#8390a3;margin-bottom:10px}.progress-label strong{font-size:13px;color:#44516b;font-weight:500}.progress-track{height:5px;background:#edf0f7;border-radius:6px;overflow:hidden}.progress-track span{height:100%;display:block;background:var(--blue);transition:width .3s}.question-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:23px 0 18px;max-height:245px;overflow:auto}.question-dot{border:1px solid #e4e8f0;background:#fafbfc;aspect-ratio:1;border-radius:6px;color:#8b95a8;font-size:12px;min-height:32px}.question-dot.answered{background:#eaf0ff;border-color:#cdd8fc;color:var(--blue)}.question-dot.correct{background:#e4f4ed;border-color:#c4e6d8;color:#16765a}.question-dot.incorrect{background:#fdecef;border-color:#edcbd2;color:#b8485b}.question-dot.current{outline:2px solid var(--blue);outline-offset:2px;font-weight:700;color:var(--blue)}.grid-legend{font-size:10px;color:#8490a5;display:flex;gap:12px;margin:0 0 21px}.grid-legend span{display:flex;gap:5px;align-items:center}.legend-box{width:8px;height:8px;background:#dbe5fd;border-radius:2px}.legend-box.pending{background:#f6f7fa;border:1px solid #dfe4ed}.session-panel>.button{width:100%}.session-help{font-size:11px;line-height:1.8;color:#8390a4;margin:17px 0 0}.sources{border-top:1px solid #e0e6ef;margin-top:30px;padding-top:23px;display:flex;justify-content:space-between;gap:40px;color:#8390a2}.sources strong{font-size:12px;color:#63718c;font-weight:500}.sources p{font-size:11px;line-height:1.8;max-width:560px;margin:5px 0}.source-links{min-width:200px;display:flex;flex-direction:column;gap:7px}.source-links a{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#667aa0}.source-links a:hover{color:var(--blue)}.source-links a span{color:#95a2b8}.mobile-topic{display:none}.results-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:13px;padding:30px;margin-bottom:24px}.result-score{display:flex;gap:25px;align-items:center}.score-ring{width:116px;height:116px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--blue) var(--score),#e9eef9 0)}.score-ring>div{width:96px;height:96px;border-radius:50%;display:grid;align-content:center;justify-items:center;background:#fff;line-height:1.4}.score-ring strong{font-size:30px;letter-spacing:-1px}.score-ring small{font-size:11px;color:#8190a8}.result-score h2{margin:0 0 8px;font-size:23px}.result-score p{font-size:13px;color:var(--muted);margin:0}.result-stats{display:flex;gap:22px;margin-top:15px}.result-stats span{font-size:12px}.result-stats strong{font-size:18px;font-weight:600;margin-right:5px}.result-stats .good{color:var(--green)}.result-stats .bad{color:var(--red)}.result-actions{display:flex;flex-direction:column;gap:10px}.review-top{display:flex;justify-content:space-between;align-items:center;margin:26px 0 16px}.review-top h2{font-size:18px;margin:0}.review-filter{font-size:13px;display:flex;align-items:center;gap:8px}.review-filter input{accent-color:var(--blue);width:17px;height:17px}.review-card{background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:13px;padding:21px 24px}.review-card h3{font-size:16px;line-height:1.75;font-weight:500;margin:10px 0}.review-meta{display:flex;justify-content:space-between;font-size:11px;color:#8591a8}.review-status{color:var(--green)}.review-status.wrong{color:var(--red)}.review-status.blank{color:#9f781b}.review-answer{font-size:13px;line-height:1.8;margin:4px 0;color:#52637f}.review-answer.right{color:#168367}.review-explanation{font-size:13px;line-height:1.8;color:#6e7c91;border-top:1px solid #eef1f6;padding-top:13px;margin:13px 0 8px}.empty-review{padding:35px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:14px}dialog{border:0;border-radius:14px;box-shadow:0 20px 80px #14223d25;padding:30px;max-width:470px;width:calc(100% - 36px);color:#172743}dialog::backdrop{background:#101d3b70;backdrop-filter:blur(3px)}dialog h2{font-size:22px;margin:0 0 10px}dialog p{font-size:14px;color:var(--muted);line-height:1.8;margin:0 0 25px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.skip-link{position:fixed;top:-70px;left:20px;background:#fff;color:var(--blue);padding:12px;z-index:10}.skip-link:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1600px){.workspace{padding-top:45px}.question-card{padding:33px 36px 0}.question-card h2{font-size:24px}.answer{min-height:74px}.study-layout{grid-template-columns:minmax(0,1fr) 280px}.setup{margin-bottom:30px}}
@media(max-width:1250px){.sidebar{width:242px;padding-left:13px;padding-right:13px}main{margin-left:242px}.workspace{padding:28px}.topbar{padding:0 28px}.study-layout{grid-template-columns:minmax(0,1fr) 220px;gap:18px}.setup{gap:16px}.selection-note{display:none}.setup>.button{margin-left:auto}.question-card{padding:23px 23px 0}.question-footer>span{display:none}.question-footer{justify-content:flex-end}.session-panel{padding:20px 15px}.panel-heading{flex-wrap:wrap}.segmented button{padding:8px 12px}.sources{gap:20px}}
@media(max-width:980px){.sidebar{width:220px}main{margin-left:220px}.workspace{padding:25px 22px}.topbar{padding:0 22px;height:66px}.study-layout{grid-template-columns:1fr}.session-panel{padding:20px;display:grid;grid-template-columns:1fr auto;gap:0 30px}.panel-heading{margin-bottom:10px}.progress-label{grid-row:2}.progress-track{grid-row:3;margin-bottom:0}.question-grid{grid-column:1/-1;grid-template-columns:repeat(10,1fr);margin:20px 0 12px;max-height:150px}.question-dot{max-height:40px}.grid-legend{grid-column:1;margin-bottom:0}.session-panel>.button{grid-column:2;grid-row:1/4;align-self:center}.session-help{grid-column:1/-1;margin-top:12px}.setup{padding:16px;gap:12px}.setup>.button{font-size:12px;padding:12px}.sources{flex-direction:column;gap:15px}.source-links{flex-direction:row;gap:25px}.source-links a{gap:12px}.page-heading h1{font-size:28px}.bank-stat strong{font-size:25px}.results-heading{flex-direction:column;align-items:stretch}.result-actions{flex-direction:row}.breadcrumb{font-size:10px}.source-badge{font-size:11px}}
@media(max-width:740px){.sidebar{display:none}main{margin:0}.workspace{padding:24px 18px}.topbar{height:58px;padding:0 20px}.breadcrumb{letter-spacing:1px;font-size:10px}.breadcrumb span{margin:0 10px}.source-badge{font-size:10px}.page-heading{margin-bottom:22px;gap:15px}.eyebrow{font-size:9px;letter-spacing:1.4px}h1{font-size:27px!important}.page-heading p:not(.eyebrow){font-size:12px}.bank-stat strong{font-size:26px}.bank-stat span{font-size:10px;white-space:nowrap}.mobile-topic{display:block;flex-basis:100%}.mobile-topic select{width:100%}.setup{flex-wrap:wrap;padding:16px;gap:14px;margin-bottom:20px}.setup>.button{flex:1;min-width:130px;margin-left:0}.mode-field{flex:1}.segmented button{flex:1;padding:8px 11px;font-size:12px}.count-field select{font-size:13px;min-width:90px}.setup label,.field-label{font-size:11px}.question-card{padding:20px 18px 0;border-radius:10px}.question-meta{gap:12px;margin-bottom:20px}.topic-tag{font-size:10px;max-width:75%}.question-index{font-size:11px}.question-card h2{font-size:19px;line-height:1.7}.answer{padding:13px 12px;gap:12px;font-size:14px;min-height:65px}.letter{min-width:29px;height:29px}.question-footer{padding:16px 0}.question-actions{width:100%;justify-content:space-between}.question-actions .button{font-size:12px;padding:12px 14px}.question-grid{gap:7px;grid-template-columns:repeat(10,1fr)}.question-dot{min-height:28px;font-size:10px}.session-panel{padding:18px;gap:0 20px}.session-panel .button{font-size:12px;padding:10px 12px}.explanation{padding:15px}.explanation p{font-size:13px}.source-links{flex-direction:column;gap:8px}.source-links a{justify-content:flex-start}.sources{margin-top:24px;padding-top:20px}.result-score{gap:18px}.score-ring{width:90px;height:90px}.score-ring>div{width:74px;height:74px}.score-ring strong{font-size:24px}.result-score h2{font-size:20px}.results-heading{padding:22px 18px}.result-stats{gap:12px}.result-stats span{font-size:10px}.result-stats strong{font-size:15px}.result-actions{flex-wrap:wrap}.review-top{align-items:flex-start;gap:12px}.review-top h2{font-size:16px}.review-filter{font-size:12px}.review-card{padding:18px}.review-meta{gap:15px}.answer-mark{font-size:11px}.review-card h3{font-size:15px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.answer input{inset:0;width:100%;height:100%;margin:0;pointer-events:auto;cursor:pointer}.answer input:disabled{cursor:default}
.topic-button{font-size:14px}.brand small{font-size:12px;letter-spacing:1.3px}.sidebar-heading{font-size:12px;letter-spacing:.8px}.sidebar-note,.sidebar-note small{font-size:12px}.breadcrumb,.source-badge,.eyebrow{font-size:12px;letter-spacing:.6px}.field-label,.setup label,.segmented button,.button,.text-button,.selection-note strong,.progress-label,.panel-heading h2,.review-filter{font-size:14px}.selection-note span,.question-footer>span,.topic-tag,.answer-hint,.mini-badge,.grid-legend,.session-help,.sources p,.source-links a,.review-meta{font-size:12px}.answer{font-size:16px}.page-heading p:not(.eyebrow){font-size:14px}.review-answer,.review-explanation{font-size:14px}@media(max-width:740px){.eyebrow{display:none}.breadcrumb{font-size:10px}.source-badge{font-size:12px}.setup>.button,.segmented button,.setup label,.field-label,.question-actions .button,.session-panel .button{font-size:14px}.bank-stat span,.topic-tag,.question-index,.review-filter{font-size:12px}.answer{font-size:16px}.question-grid{grid-template-columns:repeat(5,1fr)}.question-dot{font-size:13px;min-height:36px}.grid-legend{flex-wrap:wrap}.result-stats span{font-size:12px}}
