:root{font-family:DM Sans,PingFang SC,Microsoft YaHei,sans-serif;color:#252b37;background:#f4f6fa;font-synthesis:none;text-rendering:optimizeLegibility;font-optical-sizing:auto;font-weight:400;font-size:15px;font-kerning:normal}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(ellipse at 76% 12%,#eaf1ff 0,transparent 29%),#f4f6fa}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.topbar{height:72px;background:#fff;border-bottom:1px solid #e9edf4;display:flex;align-items:center;justify-content:space-between;padding:0 max(30px,calc((100vw - 1230px)/2));position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#25324a;font-size:17px;font-weight:700;letter-spacing:.02em}.brand-mark{display:grid;place-items:center;width:34px;height:34px;background:#3d71d2;color:#fff;border-radius:11px;font-family:"Noto Serif SC",serif;font-size:18px;box-shadow:0 4px 10px #3d71d233}.topbar-right{display:flex;align-items:center;gap:25px}.top-note{color:#919bad;font-size:13px}.upload-button,.primary-button{border:0;color:#fff;background:#3b70d1;border-radius:11px;font-weight:600;transition:background .18s,transform .18s}.upload-button{padding:11px 18px;box-shadow:0 4px 11px #3d71d22a}.upload-button:hover,.primary-button:hover{background:#2f60ba;transform:translateY(-1px)}.shell{max-width:1230px;margin:0 auto;padding:48px 30px 26px}.intro{display:flex;justify-content:space-between;align-items:center;min-height:148px;margin:0 0 31px;padding:0 14px;position:relative;overflow:hidden}.eyebrow,.section-label{margin:0;color:#7290bd;font-size:11px;letter-spacing:.13em;font-weight:700}.intro h1{font-family:"Noto Serif SC",serif;font-size:clamp(27px,3vw,36px);letter-spacing:.035em;color:#253653;margin:13px 0 10px;font-weight:600}.subheading{color:#848da0;margin:0;font-size:14px}.intro-decoration{position:absolute;right:16px;top:-18px;display:flex;gap:3px;color:#d7e3f6;font-family:"Noto Serif SC",serif;font-weight:700;font-size:103px;letter-spacing:.05em;transform:rotate(-8deg);-webkit-user-select:none;user-select:none}.intro-decoration span:nth-child(2){padding-top:35px;color:#e5eaf5}.intro-decoration span:nth-child(3){padding-top:8px;color:#dfe9f8}.workspace{display:grid;grid-template-columns:275px minmax(0,1fr);gap:24px;align-items:start}.sidebar,.practice-area{background:#fff;border:1px solid #e9edf4;border-radius:19px;box-shadow:0 10px 32px #243a5a08}.sidebar{padding:21px 15px 17px}.side-heading{display:flex;align-items:end;justify-content:space-between;padding:0 8px 18px}.side-heading h2{font-size:18px;margin:5px 0 0;color:#283650}.book-total{color:#98a2b4;font-size:12px;padding-bottom:2px}.book-list{display:grid;gap:6px}.book-row{position:relative}.book-select{width:100%;border:0;border-radius:12px;background:transparent;padding:11px 10px;display:flex;align-items:center;gap:10px;text-align:left;color:#384355;transition:background .15s}.book-select:hover{background:#f6f8fc}.book-row.selected .book-select{background:#edf3ff;color:#315fae}.book-icon{height:35px;width:35px;flex:0 0 35px;display:grid;place-items:center;background:#f0f3f8;color:#70819c;border-radius:10px;font-family:"Noto Serif SC",serif;font-size:16px;font-weight:650}.selected .book-icon{background:#dfeaff;color:#3c70c8}.book-info{display:grid;gap:4px;min-width:0}.book-info strong{font-size:13px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-info small{font-size:11px;color:#9aa3b2}.row-chevron{margin-left:auto;color:#a4afbf;font-size:20px}.delete-book{position:absolute;right:8px;top:4px;width:21px;height:21px;display:grid;place-items:center;background:#fff;border:1px solid #ebeff4;border-radius:50%;color:#a5adba;font-size:16px;line-height:1;padding:0;opacity:0}.book-row:hover .delete-book,.delete-book:focus{opacity:1}.delete-book:hover{color:#c55858;border-color:#f0caca}.import-card{width:100%;margin-top:17px;padding:12px 11px;display:flex;align-items:center;gap:10px;text-align:left;background:#f8faff;border:1px dashed #cedcf4;border-radius:13px;color:#4e6c9e;transition:background .15s,border .15s}.import-card:hover{background:#f0f5ff;border-color:#89a9e2}.upload-icon{width:33px;height:33px;background:#e8effd;color:#4c78c7;display:grid;place-items:center;border-radius:10px;font-size:19px}.import-card>span:nth-child(2){display:grid;gap:4px}.import-card strong{font-size:12px}.import-card small{font-size:10px;color:#99a7bd}.import-arrow{margin-left:auto;color:#6e8fca;font-size:17px}.privacy-note{display:flex;align-items:center;gap:7px;color:#9ca6b5;font-size:10px;line-height:1.5;margin:16px 3px 0}.privacy-note span{color:#75a189}.practice-area{padding:26px 30px 29px;min-height:576px}.practice-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:17px}.practice-heading h2{margin:6px 0 0;color:#2b3b57;font-family:"Noto Serif SC",serif;font-size:22px;font-weight:600}.question-count{color:#a3acba;font-size:14px}.question-count strong{font-size:19px;color:#5479bb;font-weight:700}.progress-track{height:5px;background:#edf0f5;border-radius:5px;overflow:hidden;margin-bottom:20px}.progress-track span{height:100%;display:block;background:linear-gradient(90deg,#6d94dd,#4777d3);border-radius:inherit;transition:width .3s}.question-card{border:1px solid #edf0f4;border-radius:16px;padding:22px 24px 17px;background:linear-gradient(140deg,#fff 70%,#fbfcff)}.question-meta{display:flex;justify-content:space-between;align-items:center}.category-pill{display:inline-flex;align-items:center;gap:7px;background:#eef4ff;color:#6482b4;border-radius:30px;padding:7px 11px;font-size:11px}.category-pill i{height:5px;width:5px;border-radius:50%;background:#7395d5}.question-index{font-size:10px;letter-spacing:.12em;color:#adb5c2}.sentence{font-family:"Noto Serif SC",serif;font-size:clamp(24px,3.4vw,34px);font-weight:600;letter-spacing:.045em;line-height:1.5;margin:22px 0 10px;color:#202a3b;min-height:50px}.sentence mark{background:transparent;color:#d96779;border-bottom:2px solid #f3c5ce;padding:0 1px}.source-line{font-size:12px;color:#9aa4b3;margin:0 0 21px}.source-line span{color:#6587c0}.source-line b{font-size:17px;font-weight:400;margin-left:5px;color:#6587c0}.question-card h3{font-size:16px;color:#303848;margin:0 0 15px;font-weight:650}.question-card h3 span{color:#c35a6c}.options{display:grid;gap:9px}.option{border:1px solid #e8ebf0;background:#fff;min-height:53px;padding:9px 12px;display:flex;align-items:center;gap:12px;border-radius:12px;text-align:left;color:#3b414c;font-size:14px;transition:all .16s}.option:hover:not(:disabled){border-color:#a8bee8;background:#fafdff;transform:translateY(-1px)}.option:disabled{cursor:default}.option-letter{width:29px;height:29px;display:grid;place-items:center;flex:0 0 29px;background:#f0f4fc;border-radius:50%;color:#4c79c5;font-weight:700;font-size:12px}.option.correct{border-color:#9acbb0;background:#f4fbf6}.option.correct .option-letter{color:#30805a;background:#e3f5e9}.option.wrong{border-color:#e4a2a2;background:#fff7f7}.option.wrong .option-letter{color:#c15353;background:#fbe7e7}.result-mark{margin-left:auto;color:#31815a;font-size:18px}.feedback{margin:12px 2px 0;font-size:12px}.feedback.good{color:#37805b}.feedback.bad{color:#be5555}.question-controls{display:flex;align-items:center;justify-content:space-between;margin-top:16px}.keyboard-hint{font-size:11px;color:#a5adba}.next-button{border:0;background:#3e72ce;color:#fff;border-radius:10px;padding:10px 15px;font-size:12px;font-weight:600;transition:.18s}.next-button span{margin-left:12px;font-size:15px}.next-button:hover:not(:disabled){background:#305fb6;transform:translateY(-1px)}.next-button:disabled{background:#a9b8d2;opacity:.65}.study-answer{border:1px solid #e9edf4;border-radius:12px;background:#fafbfe;padding:17px}.study-answer>p{font-size:13px;color:#8a95a7;margin:0 0 13px}.reveal-button{border:1px solid #dbe5f7;background:#f1f5fd;color:#4f75b6;border-radius:9px;padding:10px 14px;font-size:12px}.reveal-button span{margin-left:12px}.revealed-answer{display:grid;gap:8px}.revealed-answer small{color:#8e9aab;font-size:11px}.revealed-answer strong{font-family:"Noto Serif SC",serif;color:#344a6d;font-size:18px}.self-check{display:flex;gap:8px;margin-top:6px}.self-check button{border:1px solid #dbe5f7;background:#fff;color:#5478b5;border-radius:8px;padding:8px 12px;font-size:11px}.self-check button:first-child{border-color:#b9dfc8;color:#37805b}.completion{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;min-height:520px}.completion-icon{height:54px;width:54px;display:grid;place-items:center;border-radius:50%;background:#e9f7ee;color:#32805b;font-size:26px;margin-bottom:17px}.completion h2{font-family:"Noto Serif SC",serif;font-size:26px;color:#2d3f5d;margin:10px 0}.completion>p:not(.section-label){color:#8591a3}.completion>p strong{color:#3a70c9;font-size:22px}.primary-button{padding:11px 17px;font-size:12px}.primary-button span{margin-left:12px}.completion .primary-button{margin-top:11px}.notice{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#eef5ff;color:#4f70a9;border:1px solid #dce8fb;border-radius:10px;padding:10px 13px;margin-bottom:16px;font-size:12px}.notice button,.modal-close{border:0;background:transparent;color:inherit;font-size:20px;line-height:1;padding:0 3px}.site-footer{display:flex;justify-content:space-between;color:#a5adbb;font-size:10px;padding:18px 4px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#1d2a3c91;display:grid;place-items:center;padding:22px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.import-modal{display:flex;flex-direction:column;width:min(100%,980px);max-height:min(90vh,900px);background:#fff;border-radius:18px;padding:26px;box-shadow:0 25px 90px #101f3a42}.modal-head{display:flex;align-items:center;justify-content:space-between}.modal-head h2{margin:6px 0 0;font-family:"Noto Serif SC",serif;color:#293957;font-size:21px}.modal-close{color:#8490a1;font-size:26px}.modal-copy{color:#7e899a;font-size:12px;line-height:1.7;margin:13px 0 17px}.title-field{display:grid;gap:7px;font-size:11px;font-weight:600;color:#56657e;margin-bottom:15px}.title-field input,.review-row input{border:1px solid #e3e8ef;border-radius:8px;outline:0;color:#364154;background:#fff}.title-field input{padding:10px 11px;font-size:13px}.title-field input:focus,.review-row input:focus{border-color:#8babdf;box-shadow:0 0 0 3px #e9f0ff}.review-table{overflow:auto;border:1px solid #e9edf3;border-radius:10px;flex:1;min-height:120px}.review-header,.review-row{display:grid;grid-template-columns:1.5fr .8fr 1.2fr;gap:9px;align-items:center;min-width:600px;padding:8px 10px}.review-header{position:sticky;top:0;background:#f7f9fc;color:#8390a3;font-size:10px;border-bottom:1px solid #ebeff4}.review-row+.review-row{border-top:1px solid #f0f2f6}.review-row input{width:100%;padding:8px;font-size:11px}.modal-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:16px;color:#929cac;font-size:10px}.modal-actions .primary-button:disabled{opacity:.48;cursor:not-allowed;transform:none}@media(max-width:850px){.shell{padding:32px 20px 20px}.workspace{grid-template-columns:230px minmax(0,1fr);gap:15px}.practice-area{padding:22px 19px}.sidebar{padding-inline:11px}.intro-decoration{right:0;font-size:83px}}@media(max-width:650px){.topbar{height:62px;padding:0 16px}.top-note{display:none}.upload-button{padding:9px 12px;font-size:12px}.brand{font-size:15px}.brand-mark{width:31px;height:31px}.shell{padding:27px 13px 15px}.intro{min-height:123px;margin-bottom:20px;padding:0 4px}.intro h1{font-size:24px;max-width:300px;line-height:1.45}.subheading{max-width:270px;font-size:12px;line-height:1.7}.intro-decoration{right:-11px;top:0;font-size:57px;opacity:.66}.workspace{grid-template-columns:1fr;gap:13px}.sidebar{padding:13px;border-radius:15px}.side-heading{align-items:center;padding:0 4px 11px}.side-heading h2{font-size:15px}.side-heading .section-label{font-size:9px}.book-list{display:flex;overflow:auto;gap:7px;padding-bottom:3px;scrollbar-width:thin}.book-row{flex:0 0 auto;min-width:155px}.book-select{padding:8px;gap:7px}.book-icon{width:30px;height:30px;flex-basis:30px;font-size:14px}.book-info strong{font-size:11px;max-width:112px}.book-info small{font-size:9px}.row-chevron{font-size:16px}.delete-book{opacity:1;right:3px;top:0;width:18px;height:18px}.import-card{margin-top:9px;padding:9px}.import-card .upload-icon{width:29px;height:29px}.privacy-note{font-size:9px;margin-top:9px}.practice-area{min-height:0;padding:18px 13px;border-radius:15px}.practice-heading h2{font-size:18px}.practice-heading .section-label{font-size:9px}.question-count{font-size:12px}.question-count strong{font-size:17px}.question-card{padding:16px 13px 13px;border-radius:13px}.sentence{font-size:26px;margin:19px 0 8px}.source-line{margin-bottom:17px}.question-card h3{font-size:14px}.option{min-height:48px;padding:8px 9px;font-size:12px}.option-letter{height:26px;width:26px;flex-basis:26px}.question-controls{margin-top:13px}.keyboard-hint{font-size:9px}.next-button{padding:9px 11px;font-size:11px}.site-footer{padding:14px 3px}.modal-backdrop{padding:10px}.import-modal{padding:18px 13px;border-radius:14px;max-height:92vh}.modal-head h2{font-size:17px}.modal-copy{font-size:11px}.review-header,.review-row{grid-template-columns:1.2fr .75fr 1fr;gap:6px;padding:7px;min-width:500px}.review-row input{font-size:10px;padding:7px}.modal-actions{align-items:flex-end;font-size:9px}.modal-actions .primary-button{white-space:nowrap;padding:10px 12px}}.review-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 1px 8px;color:#66758d;font-size:10px}.review-toolbar button{border:1px solid #dce6f8;border-radius:7px;background:#f5f8fe;color:#5277b8;padding:6px 9px;font-size:10px}.review-header,.review-row{grid-template-columns:1.5fr .8fr 1.2fr 24px}.remove-row{border:0;background:transparent;color:#9ba7b6;font-size:18px;padding:3px}.remove-row:hover{color:#c45555}@media(max-width:650px){.review-header,.review-row{grid-template-columns:1.2fr .75fr 1fr 22px}}.control-actions{display:flex;align-items:center;gap:8px}.previous-button,.secondary-button{border:1px solid #dfe5ef;background:#fff;color:#738098;border-radius:10px;padding:9px 12px;font-size:11px;transition:.18s}.previous-button:hover:not(:disabled),.secondary-button:hover{border-color:#a9bee5;color:#4d73b8;background:#f8faff}.previous-button:disabled{opacity:.4}.completion .secondary-button{margin-top:3px}.completion .primary-button{margin-top:9px}@media(max-width:650px){.control-actions{gap:6px}.previous-button{padding:9px 10px;font-size:10px}.question-controls .keyboard-hint{max-width:100px;line-height:1.5}}html,body,#root{max-width:100%;overflow-x:clip}.workspace>*{min-width:0}.intro>div:first-child,.book-select,.option{min-width:0}.sentence,.option>span:last-child,.subheading{overflow-wrap:anywhere}@media(max-width:980px){.shell{padding:34px 22px 22px}.workspace{grid-template-columns:minmax(0,1fr);gap:16px}.sidebar{padding:18px}.book-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.book-row{min-width:0}.book-select{padding:10px 9px}.practice-area{min-height:0}.intro{min-height:126px;margin-bottom:22px}.intro-decoration{right:8px;top:2px;font-size:74px;opacity:.48}}@media(max-width:650px){.shell{padding:24px 12px 16px}.topbar{padding:0 12px}.intro{display:block;min-height:auto;margin:4px 0 18px;padding:12px 4px}.intro-decoration{display:none}.intro h1{max-width:none;margin:9px 0 7px;font-size:clamp(22px,7vw,27px);line-height:1.42}.subheading{max-width:none;font-size:12px;line-height:1.65}.sidebar{padding:13px 11px}.book-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;padding:0;gap:7px}.book-row{min-width:0}.book-select{height:100%;padding:8px 7px;gap:7px}.book-info{min-width:0}.book-info strong{max-width:none}.row-chevron{display:none}.delete-book{opacity:1;right:3px;top:3px}.import-card{margin-top:11px}.privacy-note{margin-left:2px}.practice-area{padding:16px 11px}.question-card{padding:15px 12px}.question-meta{gap:8px}.question-index{white-space:nowrap;letter-spacing:.08em}.sentence{font-size:clamp(23px,8vw,29px);min-height:0}.option{align-items:flex-start;line-height:1.55}.option-letter{margin-top:1px}.question-controls{gap:9px}.keyboard-hint{display:none}.control-actions{margin-left:auto}.site-footer{gap:12px;line-height:1.5}}@media(max-width:390px){.brand{gap:7px;font-size:14px}.brand-mark{width:28px;height:28px;font-size:15px}.upload-button{padding:8px 9px;font-size:11px}.book-icon{width:27px;height:27px;flex-basis:27px;font-size:13px}.book-info small{display:none}.book-info{gap:0}.book-select{min-height:45px}.previous-button,.next-button{padding:8px}.next-button span{margin-left:6px}}
