.practical a{color:var(--blue);text-decoration:none}.return-link{display:inline-flex;align-items:center;min-height:44px;font-size:14px;margin-bottom:17px}.practical .brand-logo{background:#254b95}.practical #case-nav{display:grid;gap:8px}.case-nav-item{text-align:left;padding:11px;border-radius:10px;line-height:1.6;color:var(--muted);font-size:13px}.case-nav-item span{display:block;font-size:12px;color:#7c8a9f}.case-nav-item.active{background:#edf3ff;color:var(--blue);font-weight:600}.practical #main{max-width:1070px}.module-title{font-size:14px;font-weight:700;color:#52617c}.mobile-return{display:none}.module-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:21px}.module-heading h1{font-size:27px}.module-heading p{font-size:14px;color:var(--muted);line-height:1.9;margin-top:8px}.module-id{font-size:12px;color:var(--blue);font-weight:700;letter-spacing:1px;margin-bottom:8px}.module-counter{white-space:nowrap;text-align:right;font-size:13px;color:var(--muted);padding-top:8px}.module-counter b{font-size:31px;line-height:1.2;color:#17233d}.module-counter span{display:block;margin-top:7px}.resume-card{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#edf3ff;border:1px solid #d5e2ff;border-radius:13px;padding:19px 22px;margin-bottom:19px}.resume-card strong{display:block;font-size:16px}.resume-card p{font-size:13px;color:var(--muted);margin-top:8px;line-height:1.7}.home-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.home-tools span{font-size:13px;color:var(--muted)}.case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.case-tile{padding:23px;background:#fff;border:1px solid var(--line);border-radius:15px;min-width:0}.case-tile:last-child:nth-child(odd){grid-column:1 / -1}.case-topline{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:var(--muted);margin-bottom:14px}.case-number{font-weight:700;font-size:15px;color:var(--blue);font-variant-numeric:tabular-nums}.case-tile h2{font-size:19px;line-height:1.65;margin-bottom:15px}.case-parts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.part-link{text-align:left;border:1px solid var(--line);padding:10px 12px;border-radius:9px;font-size:14px;line-height:1.65;min-height:68px}.part-link b{display:block;font-weight:500}.part-link small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.part-link.mastered{background:#f0f9f4;border-color:#a9d1ba}.part-link.mastered small{color:var(--green)}.part-link.review{background:#fff9eb;border-color:#e9d69d}.part-link.review small{color:#856218}.part-link:disabled{opacity:.45}.case-progress{display:flex;gap:7px;align-items:center;margin-top:17px;color:var(--muted);font-size:12px}.case-progress i{width:20px;height:5px;background:#e6ebf3;border-radius:3px}.case-progress i.mastered{background:var(--green)}.case-progress i.review{background:#bb8c25}.reader-heading{display:flex;align-items:center;gap:14px;justify-content:space-between;margin-bottom:17px}.reader-heading h1{font-size:23px;line-height:1.55}.reader-heading .eyeline{font-size:12px;color:var(--muted);margin-bottom:7px}.reader-heading .secondary{flex-shrink:0}.case-context,.prompt-block,.study-answer{background:white;border:1px solid var(--line);border-radius:14px;margin-bottom:17px;padding:21px 24px}.case-context summary{font-size:14px;font-weight:600;cursor:pointer;min-height:44px;display:flex;justify-content:space-between;align-items:center;gap:12px}.case-context summary:after{content:'展开 / 收起';font-size:12px;font-weight:400;color:var(--muted);white-space:nowrap}.case-context p{font-size:16px;color:#485a77;line-height:1.95;margin-top:10px;overflow-wrap:anywhere}.prompt-meta{font-size:13px;color:var(--muted);display:flex;justify-content:space-between;gap:10px;align-items:center}.prompt-block h2{font-size:var(--stem);font-weight:500;line-height:1.9;margin-top:15px;overflow-wrap:anywhere}.prompt-block{scroll-margin-top:15px}.sub-navigation{display:flex;gap:8px;margin-top:17px;flex-wrap:wrap}.sub-navigation button{border:1px solid var(--line);border-radius:7px;font-size:13px;padding:8px 11px}.sub-navigation button.active{background:#edf3ff;color:var(--blue);border-color:#c0d4ff}.reader-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px;flex-wrap:wrap}.reader-controls .segmented{min-width:0}.reader-controls .segment{padding:9px 14px}.self-check{border:1px solid #bbcced;background:#fff;color:var(--blue);border-radius:9px;padding:10px 14px;font-size:14px}.self-check.on{background:#edf3ff}.answer-caption{font-size:12px;line-height:1.9;color:var(--muted);margin-bottom:20px}.outline-section+.outline-section{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.outline-section h3{display:flex;align-items:flex-start;gap:11px;font-size:17px;line-height:1.7}.outline-section h3 .step{min-width:25px;height:25px;margin-top:2px;border-radius:6px;background:#edf3ff;color:var(--blue);font-size:12px;display:grid;place-items:center}.outline-section ul{padding-left:22px;margin:12px 0 0}.outline-section li{font-size:var(--option);line-height:1.95;padding-left:2px;overflow-wrap:anywhere;margin-top:8px}.original-text p{font-size:var(--option);line-height:1.95;margin:0 0 14px;overflow-wrap:anywhere}.original-text p.original-heading{font-weight:700;margin-top:22px;font-size:calc(var(--option) + 1px)}.original-text p:first-child{margin-top:0}.source-note{padding:15px 17px;border-radius:9px;background:#fff8e8;border:1px solid #ecdcb7;color:#785e2c;font-size:13px;line-height:1.95;margin-top:21px;overflow-wrap:anywhere}.source-note strong{display:block}.rubric-list{display:grid;gap:14px}.rubric-item{padding:16px;border:1px solid var(--line);border-radius:10px}.rubric-top{display:flex;align-items:center;justify-content:space-between;font-size:14px;color:var(--muted);margin-bottom:10px}.rubric-top strong{font-size:16px;color:var(--blue)}.rubric-item p{font-size:var(--option);line-height:1.9;overflow-wrap:anywhere}.rubric-total{padding-top:16px;margin-top:19px;border-top:1px solid var(--line);color:var(--muted);font-size:14px}.source-links{border-top:1px solid var(--line);margin-top:24px;padding-top:15px}.source-links summary{min-height:44px;cursor:pointer;font-size:13px;color:var(--muted);display:flex;align-items:center}.source-buttons{display:flex;gap:8px;flex-wrap:wrap}.source-buttons button{font-size:13px;text-align:left;border:1px solid var(--line);border-radius:8px;padding:9px 12px}.hidden-answer{text-align:center;padding:35px 16px}.hidden-answer .memory-icon{width:44px;height:44px;margin:0 auto 14px;border-radius:11px;background:#edf3ff;color:var(--blue);display:grid;place-items:center;font-size:25px}.hidden-answer h3{font-size:18px}.hidden-answer p{font-size:14px;color:var(--muted);line-height:1.9;margin:11px 0 20px}.status-section{border:1px solid var(--line);border-radius:13px;background:white;padding:19px 22px;margin-bottom:16px}.status-heading{font-size:14px;font-weight:700;margin-bottom:12px;display:flex;justify-content:space-between;gap:10px}.status-heading small{font-weight:400;font-size:12px;color:var(--muted)}.status-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.status-button{border:1px solid var(--line);border-radius:9px;font-size:14px;padding:10px 7px}.status-button[aria-pressed=true]{color:var(--blue);background:#edf3ff;border-color:#adc7fc}.status-button[data-status=mastered][aria-pressed=true]{color:var(--green);background:#edf9f1;border-color:#acd6bc}.status-button[data-status=review][aria-pressed=true]{color:#86631b;background:#fff8e8;border-color:#e7d29d}.practical .actionbar{border-top:0;padding:10px 0;margin-top:5px}.practical .actionbar .primary{min-width:130px}.queue-label{font-size:13px;color:var(--muted);text-align:center}.practical #main.reader{padding-bottom:35px}.backup-subtext{font-size:13px;line-height:1.9;color:var(--muted);margin-top:16px}.source-doc-title{font-size:13px;line-height:1.8;color:var(--muted);margin-bottom:18px;overflow-wrap:anywhere}.source-document p{font-size:15px;line-height:1.9;margin-bottom:10px;overflow-wrap:anywhere}.module-lock{max-width:660px;margin:30px auto}.module-lock a{display:inline-flex;align-items:center;justify-content:center;color:white;margin-top:22px}.practical .empty .primary{color:white;display:inline-flex;align-items:center;justify-content:center;min-height:44px}.module-intro-label{font-size:12px;color:var(--muted);line-height:1.8;margin-top:20px}
@media(max-width:1100px){.case-grid{grid-template-columns:1fr}.case-tile:last-child:nth-child(odd){grid-column:auto}}
@media(max-width:850px){.mobile-return{display:inline-flex;margin:0}.module-title{margin-right:auto}.practical #main{padding-bottom:35px}.practical #main.reader{padding-bottom:calc(115px + env(safe-area-inset-bottom))}.module-heading h1{font-size:23px}.module-heading{gap:12px}.module-heading p{font-size:13px}.module-counter b{font-size:27px}.case-grid{gap:13px}.case-tile{padding:19px}.case-tile h2{font-size:18px}.resume-card{padding:17px;gap:12px}.resume-card .primary{padding:10px 13px;flex-shrink:0}.resume-card strong{font-size:15px}.case-context,.prompt-block,.study-answer{padding:17px 19px}.reader-heading h1{font-size:21px}.reader-heading .secondary{padding:10px 13px}.reader-controls{gap:9px}.reader-controls .segmented{flex:1;display:grid;grid-template-columns:repeat(3,1fr)}.reader-controls .segment{font-size:13px;padding:8px 6px}.self-check{width:100%}.practical .actionbar{bottom:0;border-top:1px solid var(--line);padding:11px 15px calc(11px + env(safe-area-inset-bottom));margin:0}.practical .actionbar .primary{min-width:0}.practical #toast{bottom:calc(90px + env(safe-area-inset-bottom))}.status-section{padding:17px}.queue-label{min-width:36px;font-size:12px}.source-note{padding:13px;font-size:13px}.outline-section li{line-height:1.9}.original-text p{line-height:1.9}.status-heading{flex-wrap:wrap}}
@media(max-width:360px){.module-heading h1{font-size:21px}.module-counter b{font-size:25px}.case-parts{gap:7px}.part-link{padding:10px 8px;font-size:13px}.case-context,.prompt-block,.study-answer{padding:16px}.resume-card{flex-wrap:wrap}.resume-card .primary{width:100%}.reader-heading h1{font-size:19px}.status-button{font-size:13px}.home-tools{flex-wrap:wrap}}
.practical{--blue:#2864cf;--green:#25724b;--red:#b23b51;--line:#dfe5ef;--muted:#62718a;background:#f4f6fa}
.practical .main{min-width:0}.practical #sidebar{overflow-y:auto;max-height:100dvh;position:sticky;top:0;align-self:start}.home-button{width:100%;margin-bottom:16px}.module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.module-card{text-align:left;border:1px solid var(--line);border-radius:16px;background:white;padding:24px;min-width:0;transition:border-color .15s}.module-card:hover{border-color:#93b4ed}.module-card h2{font-size:21px;line-height:1.5;margin:12px 0}.module-card p{font-size:13px;color:var(--muted);margin:10px 0 18px}.module-bottom{display:flex;justify-content:space-between;gap:10px;margin-top:16px;font-size:13px;color:var(--muted)}.module-bottom b{color:var(--blue);font-weight:500}.side-case{text-align:left;font-size:12px;line-height:1.7;padding:10px 10px 10px 23px;color:var(--muted);border-left:2px solid #e4eaf3;overflow-wrap:anywhere}.side-case[aria-current]{border-color:var(--blue);color:var(--blue);background:#edf3ff}.resume-inline{width:100%;text-align:left;padding:15px;border:1px solid #c8d9f5;background:#edf3ff;border-radius:10px;line-height:1.7;margin-bottom:20px;color:var(--blue)}.filter-form{display:grid;grid-template-columns:minmax(0,1fr) 140px auto;align-items:end;gap:12px;margin:20px 0}.filter-form label{font-size:13px;color:var(--muted);display:grid;gap:8px;min-width:0}.filter-form input,.filter-form select{width:100%;min-width:0;min-height:44px}.practical .case-parts{grid-template-columns:1fr}.practical .part-link{display:flex;justify-content:space-between;align-items:center;gap:12px}.practical .part-link>small{flex-shrink:0}.practical .reader-heading p{font-size:13px;color:var(--muted);margin-top:8px}.practical .task-text{font-size:var(--stem);line-height:1.95;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:15px}.practical .case-context p{white-space:pre-wrap}.practical .case-context{padding-top:10px;padding-bottom:10px}.practical .sub-navigation{margin-bottom:18px}.source-paragraph{font-size:var(--option);line-height:1.95;margin:0 0 14px;white-space:pre-wrap;overflow-wrap:anywhere}.source-path{font-size:12px;line-height:1.8;overflow-wrap:anywhere;color:var(--muted);padding:12px 0}.source-path li{margin:7px 0}.source-links>p{font-size:13px;line-height:1.8}.source-button{border:1px solid var(--line);border-radius:8px;padding:10px;margin:5px 5px 5px 0;text-align:left;font-size:13px}.reference{border:1px solid var(--line);border-radius:10px;padding:0 16px;margin:14px 0;min-width:0}.reference>summary{min-height:52px;cursor:pointer;font-size:15px;padding:14px 0;overflow-wrap:anywhere}.reference>summary span{font-size:12px;color:var(--muted);margin-left:8px}.material>summary{font-size:13px!important;font-weight:400;overflow-wrap:anywhere}.material>summary:after{content:''}.material{border-top:1px solid var(--line)}.practical .code-block{margin:16px 0;min-width:0;border:1px solid #d8e1ef;border-radius:10px;overflow:hidden;background:#f6f8fc}.code-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:4px 12px;background:#eaf0f8;color:#4b5f7b;font-size:12px}.code-heading button{font-size:12px;color:var(--blue);padding:9px;min-height:44px}.code-block pre,.output-block{max-width:100%;overflow:auto;white-space:pre;font-family:Consolas,"Cascadia Mono",monospace;font-size:14px;line-height:1.8;tab-size:4;padding:16px;margin:0;overscroll-behavior-x:contain}.large .code-block pre,.large .output-block{font-size:17px}.output-block{background:#f4f6fa;border:1px solid var(--line);border-radius:8px;margin:14px 0;max-height:480px}.practical figure{margin:20px 0;min-width:0}.image-open{display:block;width:100%;padding:0;border:1px solid var(--line);background:#f6f8fc;border-radius:9px;overflow:hidden}.practical img{display:block;max-width:100%;height:auto;margin:auto}.practical figcaption{font-size:12px;color:var(--muted);line-height:1.8;margin-top:8px}.table-scroll{overflow:auto;max-width:100%;margin:16px 0;border:1px solid var(--line);border-radius:8px}.table-scroll table{border-collapse:collapse;width:100%;font-size:var(--option);line-height:1.8}.table-scroll td{border:1px solid var(--line);padding:10px;vertical-align:top;min-width:95px}.table-scroll p:last-child{margin-bottom:0}.table-scroll td:first-child{background:#f8faff}.practical #tools:has(.code-block),.practical #tools:has(.full-image),.practical #tools:has(table){max-width:960px}.practical #study-answer{scroll-margin-top:14px;min-width:0}.practical .reader-controls{margin-top:20px}.exam-locked #sidebar{display:none}.practical .module-lock{padding:28px}.practical button:focus-visible,.practical summary:focus-visible,.practical pre:focus-visible{outline:3px solid #81a9ed;outline-offset:3px}.practical .source-note p{margin-top:8px}.practical .loading{padding:35px}.practical .outline-section li{white-space:pre-wrap}.practical .module-grid .progress{height:5px;background:#e8edf5;border-radius:8px;overflow:hidden}.practical .module-grid .progress i{display:block;height:100%;background:var(--blue)}
@media(max-width:850px){.module-grid{gap:12px}.module-card{padding:18px}.module-card h2{font-size:19px}.practical .case-grid{grid-template-columns:1fr}.filter-form{grid-template-columns:minmax(0,1fr) 120px}.filter-form>label:first-child{grid-column:1/-1}.filter-form>.primary{width:100%}.practical .module-heading{align-items:center}.practical .module-heading h1{font-size:23px}.practical .module-counter{display:none}.practical .table-scroll td{min-width:100px;padding:9px}.practical .reference{padding:0 10px}.practical .code-block pre{padding:12px}.practical .task-text{font-size:var(--stem)}.practical .source-paragraph{line-height:1.9}.practical .reader-heading{align-items:flex-start}.practical .reader-heading h1{font-size:20px}.module-card .case-topline{gap:5px;font-size:11px}.module-bottom{font-size:12px}.practical #main.reader{padding-bottom:calc(125px + env(safe-area-inset-bottom))}}
@media(max-width:600px){.module-grid{grid-template-columns:1fr}.module-card h2{font-size:20px}.module-card{padding:18px 20px}.module-card .case-topline{margin-bottom:6px}.module-card p{margin-bottom:14px}.practical .module-heading h1{font-size:23px}.practical .case-context summary{font-size:13px}.practical .case-context summary:after{font-size:11px}.practical .prompt-meta{flex-wrap:wrap}.practical .table-scroll .source-paragraph{font-size:16px}.large .table-scroll .source-paragraph{font-size:19px}}
.study-mode{display:flex;gap:8px;margin:15px 0}.study-mode button{min-height:44px;border:1px solid var(--line);border-radius:9px;padding:9px 13px;color:var(--muted);font-size:14px}.study-mode button[aria-pressed=true]{background:#eaf1ff;border-color:#a9c4f3;color:var(--blue);font-weight:600}.fill-exercise{background:white;border:1px solid var(--line);border-radius:14px;padding:24px;margin:18px 0;min-width:0}.fill-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.fill-heading h2{font-size:21px}.fill-heading>span{font-size:13px;color:var(--muted);white-space:nowrap}.fill-fields{display:grid;gap:18px;margin-top:20px}.fill-field{margin:12px 0 20px;min-width:0;break-inside:avoid}.fill-field label{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:#385170;margin-bottom:10px}.blank-number{display:inline-grid;place-items:center;min-width:26px;height:26px;border-radius:7px;color:var(--blue);background:#edf3ff;font-size:13px}.fill-field textarea{display:block;width:100%;min-width:0;min-height:72px;resize:vertical;box-sizing:border-box;padding:13px;font-family:inherit;font-size:var(--option);line-height:1.8;color:#17233d;background:#f9fbff;border:1px solid #aec5eb;border-radius:9px;scroll-margin:80px 0 140px}.fill-field textarea:focus{outline:3px solid #bed4f8;border-color:var(--blue);background:#fff}.code-fill textarea{font-family:Consolas,monospace;font-size:15px;white-space:pre-wrap;overflow-wrap:anywhere}.large .code-fill textarea{font-size:18px}.fill-context{font-size:var(--option);white-space:pre-wrap;line-height:1.95;overflow-wrap:anywhere}.blank-answer{margin-top:11px;background:#edf8f1;border-left:3px solid var(--green);border-radius:8px;padding:14px;scroll-margin:80px 0 140px}.blank-answer strong{display:block;color:var(--green);font-size:14px;margin-bottom:9px}.blank-answer p{font-size:var(--option);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9}.blank-answer small{display:block;color:var(--muted);font-size:12px;margin-top:11px;line-height:1.7}.code-fill .blank-answer p{font-family:Consolas,monospace;font-size:15px}.large .code-fill .blank-answer p{font-size:18px}.exercise-code{max-height:480px;overflow:auto;max-width:100%;background:#f4f7fc;padding:16px;border:1px solid var(--line);border-radius:10px;font:14px/2 Consolas,monospace;white-space:pre;tab-size:4}.exercise-code .code-hole{font:inherit;min-height:32px;color:#1559bc;background:#e0ebff;border:1px dashed #88ade4;padding:1px 5px;border-radius:5px}.gap-context{overflow:auto;max-width:100%;font:13px/1.8 Consolas,monospace;background:#f4f6fa;color:#53647c;border-radius:7px;padding:10px;margin:0 0 9px}.draft-hint{font-size:12px;line-height:1.8;color:var(--muted);margin-top:15px}.full-reference-title{font-size:19px;margin-bottom:20px}.practical .reader-controls .segmented[hidden]{display:none}.practical .actionbar .reveal-action{flex:1;min-width:120px;background:#2864cf;margin-left:0}.practical .actionbar:has(.reveal-action)>:last-child{background:#edf3ff;color:var(--blue);min-width:90px;flex:0}.practical .actionbar:has(.reveal-action) .queue-label{font-size:12px}.practical .actionbar:has(.reveal-action) .compact-prev{order:-1}.practical [hidden]{display:none!important}
@media(max-width:850px){.fill-exercise{padding:18px}.practical .actionbar:has(.reveal-action){gap:7px}.practical .actionbar:has(.reveal-action) .compact-prev{padding:10px 8px;font-size:12px}.practical .actionbar:has(.reveal-action) .reveal-action{min-width:0;font-size:14px;padding:10px}.practical .actionbar:has(.reveal-action)>:last-child{min-width:70px;padding:10px 8px;font-size:13px}.practical .actionbar:has(.reveal-action) .queue-label{display:none}.study-mode button{flex:1;padding:10px 6px;font-size:13px}.fill-field textarea{font-size:17px}.large .fill-field textarea{font-size:20px}.fill-heading h2{font-size:20px}.exercise-code{max-height:350px;font-size:13px;padding:12px}.fill-field{margin-bottom:24px}.fill-context{line-height:1.9}}
