
:root{--bg:#f5f3ed;--paper:#fffefa;--ink:#292821;--muted:#77776b;--brown:#76543e;--gold:#c6a36e;--line:#e5e2d8;--green:#55745d}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;font-size:15px;line-height:1.8}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{border:0;background:none;color:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:36px;line-height:1.4;letter-spacing:-1px;margin-bottom:16px}h2{font-size:24px;line-height:1.5}h3{font-size:18px;margin:0 0 12px}p{margin-bottom:16px}.top{height:94px;background:rgba(255,254,250,.96);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4%;position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.brand{display:flex;gap:13px;align-items:center;font-size:20px;font-weight:700;letter-spacing:1px;line-height:1.5}.brand img{width:49px;height:51px;object-fit:contain;mix-blend-mode:multiply}.brand small{display:block;font-size:11px;font-weight:400;letter-spacing:2px;color:var(--muted)}.top nav{display:flex;gap:34px;height:100%;align-items:center}.top nav a{font-size:14px;position:relative}.top nav a.active{color:var(--brown);font-weight:700}.top nav a.active:after{content:"";position:absolute;bottom:-32px;height:3px;background:var(--brown);left:0;right:0}.quiet{border:1px solid var(--line);padding:9px 18px;border-radius:7px;font-size:13px}.shell{display:grid;grid-template-columns:242px minmax(0,1fr) 258px;gap:30px;max-width:1520px;padding:38px 35px 70px;margin:auto}.sidebar{position:sticky;top:130px;align-self:start}.course-label,.eyebrow{font-size:12px;color:var(--brown);letter-spacing:2px;font-weight:600;display:block;margin-bottom:12px}.sidebar h2{font-size:22px;margin:0 0 8px}.muted{color:var(--muted)}.small{font-size:12px}.overall{border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:17px 18px;margin:25px 0;font-size:12px}.overall strong{float:right;color:var(--brown)}.track{height:5px;border-radius:5px;background:#eae6dc;margin:14px 0 10px;overflow:hidden}.track i{height:100%;display:block;background:var(--gold);transition:width .25s}.overall small{color:var(--muted)}#chapters{display:flex;flex-direction:column;gap:6px}.chapter{display:flex;align-items:center;gap:12px;padding:13px 12px;border-radius:7px;font-size:13px;line-height:1.5}.chapter:hover{background:#eae6dc}.chapter.active{background:#e9e1d5;color:#694b36;font-weight:600}.chapter .num{display:flex;width:27px;height:27px;align-items:center;justify-content:center;flex-shrink:0;font-size:11px;border:1px solid #d9d5cb;border-radius:7px;background:var(--paper)}.chapter.done .num{background:var(--green);color:white;border-color:var(--green)}.sidebar-foot{border-top:1px solid var(--line);margin:30px 12px 0;padding-top:22px;font-size:13px}.sidebar-foot small{display:block;color:var(--muted);font-size:11px;margin:7px 0}.sidebar-foot a{font-size:12px;color:var(--brown)}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin:0 7px 2px 0}main{min-width:0}.breadcrumb{font-size:12px;color:var(--muted);margin:0 0 22px}.hero{border-radius:13px;padding:36px;background:#e9e3d6;position:relative;overflow:hidden;margin-bottom:25px}.hero:after{content:"";width:240px;height:240px;border:1px solid #c8b797;border-radius:50%;position:absolute;right:-120px;top:-70px;opacity:.65;pointer-events:none}.hero p{color:#696355;font-size:14px;max-width:590px;margin-bottom:22px}.pill{display:inline-block;font-size:11px;padding:4px 10px;border-radius:5px;background:rgba(255,255,255,.6);color:#6f6049;margin:0 7px 0 0}.section-title{display:flex;align-items:center;justify-content:space-between;margin:30px 0 16px}.section-title h2{font-size:20px;margin:0}.section-title span{font-size:12px;color:var(--muted)}.task{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:27px 28px;margin:14px 0}.task-head{display:flex;gap:13px;align-items:baseline;margin-bottom:10px}.task-head .step-no{font-family:Georgia,serif;color:#ad8d5f;font-size:22px}.task-head h3{margin:0}.task p,.task li{font-size:14px;color:#69695f}.task ol,.task ul{padding-left:22px}.task li{margin-bottom:7px}.links{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.external{font-size:12px;padding:8px 12px;border:1px solid #ddd6c9;border-radius:6px;color:var(--brown);background:#fffefa}.external:hover{background:#f0e9dd}.shot{margin:18px 0 6px}.shot img{max-width:100%;max-height:350px;object-fit:contain;display:block;border:1px solid #eee9df;border-radius:6px;background:#fff}.shot figcaption{font-size:11px;color:var(--muted);margin-top:7px}.notice{padding:15px 18px;background:#ede9df;border-radius:7px;font-size:12px;line-height:1.8;color:#70654f;margin:18px 0}.notice strong{color:#57482f}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:7px;background:var(--brown);color:#fffefa;padding:12px 20px;font-size:13px;font-weight:500;gap:7px}.button:hover{background:#604330}.button.secondary{background:var(--paper);color:var(--brown);border:1px solid #d9d0be}.button:disabled{opacity:.5;cursor:default}.actions{display:flex;justify-content:space-between;gap:12px;margin-top:25px;flex-wrap:wrap}.right{position:sticky;top:132px;align-self:start}.side-card{border:1px solid var(--line);border-radius:10px;padding:22px;background:var(--paper);margin-bottom:18px}.side-card h3{font-size:15px}.side-card p{font-size:12px;color:var(--muted)}.check{display:flex;gap:10px;align-items:flex-start;padding:10px 0;font-size:12px;cursor:pointer}.check input{accent-color:var(--green);margin-top:5px;width:15px;height:15px;flex-shrink:0}.side-card .button{width:100%;margin-top:15px}.tiny-label{font-size:10px;letter-spacing:1px;color:var(--muted)}.side-card.teacher{background:#eae3d7}.teacher h3{font-size:20px;margin:5px 0}.jump{font-size:12px;color:var(--brown)}pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font:13px/1.9 "Microsoft YaHei",sans-serif;margin:0;color:#5f584c}.prompt{border:1px solid #ded5c7;background:#f7f3eb;padding:20px;border-radius:8px;position:relative;margin:16px 0}.copy{display:block;margin-top:13px;font-size:12px;color:var(--brown);font-weight:600}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}label.field{display:block;font-size:13px;color:#615a4d;margin-bottom:17px}.field input,.field select,.field textarea{display:block;width:100%;padding:11px 12px;margin-top:7px;border:1px solid #d8d1c5;border-radius:7px;background:#fffefa;color:var(--ink);font-size:14px}.field textarea{min-height:100px;resize:vertical}.tabs{display:flex;gap:8px;margin-bottom:16px}.tab{padding:8px 16px;border-radius:6px;background:#eee9dd;font-size:13px}.tab.active{background:var(--brown);color:white}.teacher-hero{display:grid;grid-template-columns:1fr 42%;align-items:end;background:#e6dfd1;border-radius:13px;padding:30px 30px 0;overflow:hidden}.teacher-hero img{width:100%;display:block}.teacher-hero h1{font-size:46px}.teacher-hero p{font-size:14px}.credentials{list-style:none;padding:0}.credentials li{padding:16px 0;border-bottom:1px solid var(--line);font-size:14px}.update-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.update-grid .task{margin:0}footer{max-width:1450px;margin:0 auto;border-top:1px solid var(--line);padding:24px 30px;display:flex;gap:25px;font-size:11px;color:var(--muted)}footer span{flex:1}footer button{font-size:11px}dialog{border:1px solid var(--line);border-radius:16px;padding:36px;text-align:center;max-width:460px;width:calc(100% - 30px);background:var(--paper)}dialog::backdrop{background:#29211788;backdrop-filter:blur(4px)}dialog h2{font-size:24px}dialog p{font-size:13px;color:var(--muted)}.qr{width:270px;max-width:100%;display:block;margin:16px auto}.close{position:absolute;top:10px;right:12px;font-size:27px;color:#777}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);padding:12px 22px;border-radius:8px;background:#333b2e;color:#fff;font-size:13px;z-index:100;opacity:0;pointer-events:none;transition:opacity .15s}#toast.show{opacity:1}.success{background:#edf1e9;color:#416048;padding:17px;border-radius:7px;margin:15px 0;font-size:13px}.completion{text-align:center;padding:30px}.completion strong{display:block;font-size:33px;margin:15px}.mobile-label{display:none}.resource-label{font-size:12px;color:var(--muted)}
@media(min-width:1600px){.shell{gap:40px;grid-template-columns:260px minmax(0,1fr) 270px}}@media(max-width:1150px){.shell{grid-template-columns:215px minmax(0,1fr);gap:25px;padding:28px 25px}.right{grid-column:2;position:static;display:grid;grid-template-columns:1fr 1fr;gap:15px}.right .side-card{margin:0}.right .side-card:first-child{grid-column:1/-1}.top nav{gap:23px}.top{padding:0 25px}.brand{font-size:17px}.brand img{width:40px}.hero{padding:29px}h1{font-size:31px}}@media(max-width:750px){.top{height:auto;min-height:84px;padding:15px 20px;flex-wrap:wrap;gap:16px}.brand{font-size:16px}.brand img{width:36px;height:40px}.brand small{font-size:9px}.top .quiet{font-size:11px;padding:7px 11px}.top nav{order:3;width:100%;justify-content:space-around;gap:5px}.top nav a{font-size:12px}.top nav a.active:after{bottom:-9px}.shell{display:block;padding:22px 16px 40px}.sidebar{position:static}.sidebar .course-label,.sidebar h2,.sidebar>.small,.sidebar-foot{display:none}.overall{margin:0 0 15px;padding:13px 16px}.track{margin:10px 0 4px}#chapters{display:flex;flex-direction:row;overflow-x:auto;gap:7px;padding-bottom:15px;margin-bottom:20px}.chapter{min-width:158px;padding:10px;font-size:11px}.chapter .num{width:24px;height:24px}.hero{padding:25px 23px}.hero h1{font-size:27px;letter-spacing:0}.hero p{font-size:13px}.task{padding:22px 20px}.task h3{font-size:16px}.task p,.task li{font-size:13px}.right{display:block;margin-top:25px}.right .side-card{margin-bottom:15px}.breadcrumb{font-size:11px}.form-grid,.update-grid{grid-template-columns:1fr}.teacher-hero{padding:25px 20px 0;grid-template-columns:1fr 43%}.teacher-hero h1{font-size:34px}.teacher-hero p{font-size:12px}.teacher-hero .eyebrow{font-size:10px}.side-card.teacher{display:none}footer{padding:22px 18px;flex-wrap:wrap;gap:8px}footer span{flex-basis:100%}.actions .button{font-size:12px;padding:11px 14px}dialog{padding:30px 23px}.shot img{max-height:280px}}

