:root{--ink:#193447;--navy:#143c54;--blue:#e7f0f4;--gold:#b7883f;--paper:#fbfaf6;--line:#d7e0e1;--muted:#5e717a;--danger:#a7392b;--serif:"Noto Serif SC","Source Han Serif SC","Songti SC",SimSun,serif;--sans:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.75}button,input,select,textarea{font:inherit}a{color:var(--navy);text-underline-offset:4px}button,.btn{border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);padding:9px 14px;cursor:pointer;display:inline-block;text-decoration:none;line-height:1.5}button:hover,.btn:hover{border-color:var(--gold);background:#fffdf8}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--navy);border-color:var(--navy);color:white}.primary:hover{background:#22536b;color:white}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b7883f;outline-offset:3px}.wrap{max-width:1340px;margin:auto;padding:26px 42px 50px}.brandbar{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:15px;font-size:12px;letter-spacing:.1em}.brandbar a{text-decoration:none}.hero{display:flex;justify-content:space-between;align-items:center;padding:42px 0 28px;gap:30px}.hero h1{font-family:var(--serif);font-size:clamp(26px,3.7vw,47px);font-weight:650;line-height:1.3;letter-spacing:.015em;margin:8px 0 16px}.hero p{margin:7px 0}.hero .eyebrow{letter-spacing:.21em;color:var(--gold);font-size:11px;font-weight:700}.booktitle{font-family:var(--serif);font-size:20px}.hero-mark{font-family:var(--serif);font-size:43px;color:var(--gold);border:1px solid var(--gold);padding:10px 17px;line-height:1.2;flex-shrink:0}.tabs{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:8px;overflow:hidden;background:white}.tabs a{text-align:center;padding:15px 9px;text-decoration:none;border-right:1px solid var(--line);font-weight:600}.tabs a:last-child{border:0}.tabs a[aria-current=page]{color:white;background:var(--navy)}.summary{background:#f0f4f2;border-left:3px solid var(--gold);padding:14px 18px;margin:20px 0;color:#36525e}.row{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}.row .field{flex:1;min-width:190px}.download{padding-bottom:6px}.download .btn,.download button{font-size:13px}.small,.source-note{font-size:12px}.muted,.source-note{color:var(--muted)}#progress{margin-bottom:0}#status{border-left:3px solid var(--gold);padding:8px 12px;background:#f6f1e7;min-height:44px;overflow-wrap:anywhere}#status.error,.error{color:var(--danger)}.layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:28px;margin-top:24px}.layout aside{position:sticky;top:18px;max-height:calc(100vh - 35px);overflow:auto;padding-right:8px;align-self:start}.layout aside h2{font-family:var(--serif);font-size:20px;margin:0 0 16px}.part{border-top:1px solid var(--line);padding:10px 0}.part summary{font-size:13px;font-weight:600;cursor:pointer}.lesson-link{display:block;padding:9px 11px;font-size:12px;text-decoration:none;border-left:2px solid transparent;margin:4px 0;line-height:1.55}.lesson-link[aria-current=page]{background:var(--blue);border-left-color:var(--gold);font-weight:600}.content{min-width:0}.panel{border:1px solid var(--line);border-radius:10px;padding:25px 28px;background:white;margin-bottom:20px;box-shadow:0 6px 22px #102f3c04}.panel h2{font-family:var(--serif);font-size:25px;line-height:1.45;margin:6px 0 16px}.panel h3{font-size:17px}.eyebrow{font-size:11px;letter-spacing:.08em;color:var(--gold);font-weight:600}.prompt{font-family:var(--serif);font-size:18px;line-height:1.9;border-left:2px solid var(--gold);padding-left:15px}.field{display:block;margin:18px 0 10px;font-weight:500}.field textarea,.field select,.field input{display:block;width:100%;margin-top:7px;border:1px solid #bdccd0;border-radius:6px;background:#fff;color:var(--ink);padding:11px 12px;line-height:1.7}.field textarea{min-height:115px;resize:vertical;font-weight:400}.field textarea:disabled{background:#f1f4f3;color:#5a6f77}.field select{font-size:14px}.field input{font-weight:400}.check{display:flex;gap:9px;align-items:flex-start;margin:17px 0;font-size:13px}.check input{width:16px;height:16px;flex-shrink:0;margin-top:4px;accent-color:var(--navy)}.checkpoint{margin:24px 0 8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0}.checkpoint summary,details summary{cursor:pointer}.source-text{max-height:430px;overflow:auto;background:#f8f8f5;padding:18px;margin-top:10px;font-family:var(--serif);font-size:14px;line-height:2}.preserved{white-space:pre-wrap;overflow-wrap:anywhere;margin:15px 0;line-height:1.9}#history>details,#imported-drafts>details{padding:14px 0;border-top:1px solid var(--line)}#history summary{font-size:13px;color:var(--navy)}.notice{background:#edf3f6;border-left:3px solid #8aa9b7;padding:12px 14px;font-size:13px}.reply-text{max-height:520px;overflow:auto;padding:15px;background:#f8faf9}.chapter-picker{margin-top:0}.chapter-nav{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:18px}.chapter-nav button{font-size:12px;padding:6px 10px}#task-number{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}footer{border-top:1px solid var(--line);margin-top:32px;padding-top:22px;color:var(--muted);font-size:12px}footer p{margin:7px 0}dialog{width:min(900px,94vw);max-height:92vh;border:1px solid var(--line);border-radius:10px;padding:0;color:var(--ink)}dialog::backdrop{background:#0b233aad}.preview-inner{padding:25px}dialog h2{font-family:var(--serif);margin-top:0}#payload{white-space:pre-wrap;overflow-wrap:anywhere;max-height:40vh;overflow:auto;border:1px solid var(--line);background:#f7f8f5;padding:16px;font:12px/1.75 var(--sans)}.overview{margin:24px 0}.overview h2{font-family:var(--serif);font-size:22px}.routes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.route{background:#f2f6f5;padding:17px;border-radius:8px;border:1px solid var(--line)}.route h3{margin:0 0 8px;font-size:15px}.route p{font-size:13px;margin:5px 0}.route-links{display:flex;flex-wrap:wrap;gap:6px}.route-links a{font-size:12px}.capstone{margin-top:24px}.capstone li{margin-bottom:8px}[hidden]{display:none!important}@media(max-width:950px){.wrap{padding:22px 24px}.layout{grid-template-columns:200px minmax(0,1fr);gap:20px}.panel{padding:22px}.routes{grid-template-columns:1fr}}@media(max-width:700px){body{font-size:14px}.wrap{padding:17px 16px 36px}.hero{padding:28px 0 22px;gap:15px}.hero-mark{font-size:28px;padding:8px 11px}.booktitle{font-size:17px}.tabs a{font-size:12px;padding:12px 7px}.summary{font-size:12px;padding:12px}.layout{display:block}.layout aside{position:static;max-height:230px;margin-bottom:20px;border:1px solid var(--line);padding:14px;border-radius:8px;background:#fff}.layout aside h2{font-size:16px;margin-bottom:7px}.panel{padding:19px 17px}.panel h2{font-size:22px}.prompt{font-size:16px}.field textarea{min-height:110px}.row .field{min-width:140px}.brandbar{font-size:10px;letter-spacing:.03em}.hero h1{font-size:28px}.preview-inner{padding:18px}.download{gap:7px}.download .btn,.download button{font-size:12px;padding:7px 10px}}@media print{.wrap{max-width:none;padding:0}.layout{display:block}.layout aside,.tabs,.download,button,#dialogue-panel,dialog,.chapter-picker{display:none!important}.panel{break-inside:avoid;box-shadow:none}.hero{padding:15px 0}.hero-mark{display:none}.source-text{max-height:none}.field textarea{border-color:#ccc}.row{display:block}body{background:white}}
