:root{--green:#186354;--dark:#173e35;--paper:#fff;--bg:#f6f5f0;--muted:#77847d;--line:#e3e7df;--orange:#dd744c;--soft:#e8efe8;--ink:#243c33}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:15px}button,input,select,textarea{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:44px;border:0;background:none;color:inherit;border-radius:12px;padding:10px 17px;touch-action:manipulation}button:hover{filter:brightness(.96)}button:focus-visible,a:focus-visible{outline:3px solid #d99c58;outline-offset:3px}button:disabled{opacity:.4;cursor:default}a{color:var(--green)}.topbar{height:91px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px;padding:0 4vw;background:#fafaf7}.brand{display:flex;align-items:center;text-align:left;gap:12px;font-weight:700;font-size:20px;padding:0;white-space:nowrap}.logo{background:var(--green);color:#f7ebc9;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-family:serif;font-size:25px}.brand small{display:block;font-weight:400;font-size:10px;color:var(--muted);letter-spacing:2px;margin-top:4px}nav{display:flex;gap:4px}.nav{color:#768379;font-size:14px}.nav.active{background:var(--soft);color:var(--green);font-weight:600}.save{margin-left:auto;font-size:11px;color:var(--muted);white-space:nowrap}.save::before{content:'';display:inline-block;width:6px;height:6px;border-radius:100%;background:#6c9a70;margin-right:7px}main{max-width:1380px;margin:auto;padding:34px 4vw 48px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--green);font-weight:700}.hero{display:grid;grid-template-columns:1fr 290px;gap:30px;align-items:center;margin-bottom:28px}.hero h1{font-family:serif;font-size:36px;letter-spacing:1px;margin:14px 0;font-weight:600}.hero p{color:var(--muted);line-height:1.9;margin:0;font-size:14px}.hero-card{background:#efe9d8;min-height:146px;border-radius:22px;padding:25px;position:relative;overflow:hidden}.hero-card::after{content:'✦';position:absolute;font-size:104px;right:8px;bottom:-28px;color:#d6c9a6;transform:rotate(12deg)}.hero-card b{display:block;font-family:serif;font-size:27px;margin:9px 0}.hero-card small{font-size:12px;color:#7e755c}.daystrip{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin:18px 0 26px}.day{background:#fff;border:1px solid var(--line);border-radius:16px;text-align:left;padding:13px 16px;min-height:100px}.day small{display:block;font-size:11px;color:var(--muted)}.day b{font-size:23px;font-weight:500;display:block;margin:8px 0}.day span{font-size:10px;color:var(--muted)}.day.selected{background:var(--green);color:#fff;border-color:var(--green)}.day.selected small,.day.selected span{color:#c5d8cf}.section-title{display:flex;justify-content:space-between;align-items:center;margin:24px 0 15px}.section-title h2{font-size:18px;font-weight:600;margin:0}.section-title small{color:var(--muted);font-size:11px}.subject-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:18px}.subject{border-radius:21px;background:#fff;border:1px solid var(--line);padding:26px;min-height:260px;display:flex;flex-direction:column;align-items:flex-start}.subject.featured{background:#e8efe8;border-color:#d8e3d8}.subject .badge{font-size:10px;color:var(--green);padding:5px 9px;background:#fff;border-radius:6px}.subject .subject-icon{font-size:32px;font-family:serif;margin:18px 0 4px;color:var(--green)}.subject h3{font-size:22px;margin:8px 0}.subject p{color:var(--muted);font-size:12px;line-height:1.9;margin:0 0 18px}.subject .bottom{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:auto}.primary{background:var(--green);color:white;font-weight:600;border-radius:10px}.secondary{border:1px solid #d5ded5;background:#fff;color:var(--green);border-radius:10px}.quiet{color:var(--muted);font-size:12px}.progress{height:5px;background:#dde5db;border-radius:99px;overflow:hidden;flex:1;margin-right:20px}.progress i{display:block;height:100%;background:var(--green)}.help-row{display:flex;gap:20px;margin-top:22px}.help-card{flex:1;border-top:1px solid #dfe3db;padding:20px 0;display:flex;gap:14px;align-items:flex-start;font-size:12px;line-height:1.8;color:var(--muted)}.help-card strong{display:block;color:#3f5347;font-size:13px}.help-card .num{color:#aabaad;font:25px Georgia}.workspace-head{display:flex;align-items:center;gap:15px;margin-bottom:22px}.workspace-head h1{font-size:24px;margin:0}.workspace-head .subtitle{font-size:12px;color:var(--muted);margin-top:5px}.workspace{display:grid;grid-template-columns:190px minmax(0,1fr);gap:22px}.question-nav{background:white;border:1px solid var(--line);border-radius:18px;padding:16px;height:fit-content;max-height:calc(100vh - 180px);overflow:auto;position:sticky;top:15px}.question-nav h3{font-size:12px;margin:16px 0 9px;color:#67776a}.question-nav h3:first-child{margin-top:0}.qgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.qdot{padding:0;border-radius:9px;min-height:35px;border:1px solid #e6e8e2;font-size:12px}.qdot.current{background:var(--green);color:#fff;border-color:var(--green)}.qdot.done{background:#e8f0e6;color:var(--green)}.qdot.wrong{background:#f9e6dd;color:#a44b29}.qdot.pending{background:#f8f1df;color:#8c7846}.qdot.current{outline:2px solid var(--green);outline-offset:2px}.legend{font-size:10px;line-height:1.9;color:var(--muted);margin-top:16px}.question-panel{min-width:0;background:white;border:1px solid var(--line);border-radius:20px;padding:25px 28px}.question-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px;margin-bottom:20px}.pill{padding:5px 9px;border-radius:6px;background:var(--soft);color:var(--green);font-size:11px}.prompt{font-size:20px;line-height:1.75;font-weight:500;margin:16px 0 22px;white-space:pre-wrap}.passage{background:#f7f7f2;border:1px solid #eceee6;border-radius:12px;padding:18px 22px;line-height:1.9;font-size:16px;margin-bottom:20px;max-height:280px;overflow:auto}.passage h3{font-size:13px;margin:0 0 10px;color:var(--green)}.listen{background:#edf2ec;border:1px solid #dbe4d8;border-radius:14px;padding:18px;margin:14px 0}.listen .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.listen p{margin:10px 0 0;font-size:11px;color:#6c7b6e;line-height:1.8}.listen label{font-size:11px;display:flex;gap:5px;align-items:center}.listen select{max-width:190px;border:1px solid #d9e1d5;background:white;padding:8px;border-radius:8px}.answer-tabs{display:flex;gap:3px;margin-bottom:12px}.answer-tabs button{font-size:12px;min-height:36px;padding:7px 13px;color:var(--muted)}.answer-tabs .selected{background:#edf2ea;color:var(--green);font-weight:600}.tools{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:8px;background:#f8f9f5;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0}.tools button{min-width:38px;min-height:38px;padding:7px;font-size:12px}.tools .selected{background:#e1ebe1;color:var(--green)}.tools .spacer{flex:1}.tools label{font-size:11px;display:flex;align-items:center;gap:5px}.tools input{accent-color:var(--green)}.canvas-wrap{border:1px solid #dce2d6;border-radius:0 0 12px 12px;overflow:hidden;background:#fffdf8;position:relative}.canvas-wrap canvas{width:100%;height:350px;display:block;touch-action:none;user-select:none;-webkit-user-select:none;background-image:linear-gradient(#e7e9df 1px,transparent 1px),linear-gradient(90deg,#e7e9df 1px,transparent 1px);background-size:26px 26px}.canvas-wrap.long canvas{height:550px}.canvas-hint{position:absolute;top:20px;left:22px;color:#a4ad9f;font-size:14px;pointer-events:none}.field{display:block;width:100%;padding:16px;border:1px solid #dce2d6;border-radius:10px;color:var(--ink);background:#fffefa;font-size:18px;min-height:90px;line-height:1.8;resize:vertical}.option{display:flex;gap:14px;align-items:center;border:1px solid var(--line);border-radius:11px;width:100%;text-align:left;margin:10px 0;padding:14px}.option.selected{background:#eaf1e7;border-color:var(--green)}.option i{width:20px;height:20px;border:1px solid #b4c3b2;border-radius:50%;flex-shrink:0}.option.selected i{border:6px solid var(--green)}.question-footer{display:flex;gap:12px;align-items:center;margin-top:22px;padding-top:17px;border-top:1px solid var(--line)}.question-footer .right{margin-left:auto;display:flex;gap:9px}.feedback{padding:16px 18px;border-radius:11px;background:#edf4e8;line-height:1.8;margin:17px 0 0;font-size:13px;white-space:pre-wrap}.feedback.bad{background:#fbece3}.feedback.pending{background:#faf5e4}.note{font-size:11px;color:var(--muted);line-height:1.8;margin-top:14px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:25px 0}.stat{border:1px solid var(--line);border-radius:16px;background:white;padding:20px}.stat b{font-size:30px;display:block;margin:8px 0}.stat small{color:var(--muted)}.list-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;margin:16px 0}.list-card h3{margin:0 0 12px;font-size:16px}.record-row{border-top:1px solid var(--line);padding:15px 0;display:flex;gap:18px;align-items:center}.record-row .body{flex:1;line-height:1.8}.record-row small{display:block;color:var(--muted);font-size:11px}.record-row p{margin:3px 0;font-size:13px}.empty{padding:70px 25px;text-align:center;background:#fff;border:1px dashed #cbd7c6;border-radius:20px;color:var(--muted)}.empty h2{color:var(--dark)}.gate{max-width:510px;margin:50px auto;background:white;padding:35px;border:1px solid var(--line);border-radius:20px}.gate h1{font-size:24px}.gate p{color:var(--muted);font-size:13px;line-height:1.9}.gate input{width:100%;border:1px solid #cad5c7;border-radius:10px;padding:14px;margin:10px 0 18px;font-size:20px;letter-spacing:8px}.gate button{width:100%}.review-answer{font-size:14px;white-space:pre-wrap;line-height:1.8;background:#f8f8f3;padding:15px;border-radius:10px}.review-canvas{width:100%;height:230px;background:#fffdf7;border:1px solid var(--line);border-radius:10px}.review-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.danger{color:#a64d37;border:1px solid #e7cbbf;background:#fff7f3}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:16px 0}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--dark);color:white;border-radius:12px;box-shadow:0 4px 30px #1232;padding:14px 24px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:100;font-size:13px;max-width:90vw}#toast.visible{opacity:1}dialog{border:1px solid var(--line);border-radius:20px;max-width:600px;width:90%;padding:30px;line-height:1.8;color:var(--ink)}dialog::backdrop{background:#133c3566}dialog h2{font-size:21px}.error{color:#a64530}.loading{padding:80px;text-align:center;color:var(--muted)}.date-label{margin-left:auto;color:var(--muted);font-size:12px}.microlabel{font-size:10px;color:#889580}.parent-tabs{display:flex;gap:8px;flex-wrap:wrap}.parent-tabs .active{background:var(--green);color:#fff}.review-summary{display:flex;justify-content:space-between;align-items:center}.print-links{display:flex;gap:20px;flex-wrap:wrap;font-size:13px;margin:14px 0}.text-button{padding:0;min-height:30px;color:var(--green);text-decoration:underline;font-size:12px}
@media(min-width:1450px){main{padding-left:35px;padding-right:35px}}@media(max-width:1020px){.topbar{padding:0 25px;gap:18px}.save{font-size:10px}.brand{font-size:18px}main{padding:28px 25px}.hero{grid-template-columns:1fr 240px}.workspace{grid-template-columns:145px 1fr;gap:15px}.question-panel{padding:22px}.question-nav{padding:12px}.subject{padding:22px}.day{padding:12px}.qgrid{grid-template-columns:repeat(3,1fr)}}@media(max-width:750px){.topbar{height:auto;min-height:110px;padding:16px 18px;flex-wrap:wrap;gap:12px}.brand{font-size:18px}.brand small{display:none}nav{margin-left:auto}.nav{font-size:12px;padding:8px 10px}.save{width:100%;text-align:right}main{padding:22px 16px}.hero{grid-template-columns:1fr}.hero h1{font-size:30px}.hero-card{display:none}.daystrip{gap:6px}.day{padding:10px 7px;min-height:90px}.day b{font-size:19px}.day small{font-size:9px}.day span{font-size:8px}.subject-grid{grid-template-columns:1fr}.subject{min-height:200px}.subject .subject-icon{margin-top:5px}.help-row{display:block}.workspace{grid-template-columns:1fr}.question-nav{position:static;max-height:140px;overflow:auto;display:flex;gap:14px}.question-nav .group{min-width:105px}.question-nav h3{margin-top:0}.qgrid{grid-template-columns:repeat(5,32px)}.question-nav .legend{display:none}.question-panel{padding:18px}.prompt{font-size:18px}.canvas-wrap canvas{height:330px}.canvas-wrap.long canvas{height:500px}.workspace-head h1{font-size:20px}.stats{grid-template-columns:repeat(2,1fr)}.record-row{flex-wrap:wrap}.record-row .body{min-width:70%}.question-footer{gap:5px}.question-footer button{padding:10px}.tools label{font-size:10px}.date-label{display:none}.passage{font-size:15px;padding:14px}}
