:root{--ink:#172a35;--muted:#64737a;--paper:#f6f4ee;--white:#fffefa;--accent:#e56b4f;--gold:#e7b75f;--line:#d8ded9;--teal:#1f6b67}*{box-sizing:border-box}body{margin:0;background:var(--paper);font-family:"Noto Sans TC",sans-serif;color:var(--ink)}.shell{max-width:1120px;margin:auto;padding:27px 36px 42px}.topbar{display:flex;align-items:center;gap:20px}.brand{color:var(--ink);text-decoration:none;font-size:18px;font-weight:800;letter-spacing:.04em}.brand-mark{display:inline-grid;place-items:center;margin-right:8px;width:25px;height:25px;border-radius:50%;background:var(--accent);color:#fff}.class-tag{margin-left:auto;background:#e6eee9;color:#32635d;padding:7px 13px;border-radius:20px;font-size:13px}.dot{display:inline-block;width:6px;height:6px;margin-right:7px;background:#438a70;border-radius:50%}.help{border:1px solid #b4c0bd;border-radius:50%;background:transparent;color:var(--ink);width:28px;height:28px;font-weight:800}.hero{display:grid;grid-template-columns:1.45fr .8fr;gap:80px;align-items:end;padding:70px 6px 48px}.eyebrow{margin:0 0 13px;font-size:11px;font-weight:800;letter-spacing:.15em;color:var(--accent)}h1{font-size:48px;line-height:1.2;margin:0;font-weight:800;letter-spacing:-.04em}h1 em{font-family:"Playfair Display","Noto Sans TC",serif;color:var(--teal);font-style:normal}.intro{max-width:530px;line-height:1.85;color:var(--muted);font-size:15px;margin-top:20px}.speaker-card{background:var(--teal);color:white;padding:25px 28px;position:relative;box-shadow:8px 8px 0 #d9e7df}.speaker-card:before{content:"";position:absolute;right:15px;top:15px;width:45px;height:45px;border:1px solid #70a59c;border-radius:50%}.speaker-card p{margin:0;color:#abd0c8;font-size:12px;letter-spacing:.1em}.speaker-card h2{font-size:25px;margin:9px 0 3px}.speaker-card span{font-size:13px;color:#d7ebe7}.card-line{height:1px;background:#78a89f;margin:22px 0 10px}.speaker-card small{color:#b8d5cf;font-size:11px}.progress-wrap{padding:17px 0 28px;border-bottom:1px solid var(--line)}.progress-copy{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:10px}.progress-copy strong{color:var(--teal)}.progress-track{height:5px;background:#e0e4df;border-radius:10px;overflow:hidden}.progress-track div{height:100%;width:0;background:var(--accent);transition:.3s}.rubric{padding-top:4px}.rubric-head{display:flex;justify-content:space-between;padding:23px 4px 13px;color:var(--muted);font-size:12px}.criterion{display:grid;grid-template-columns:1fr 455px;align-items:center;gap:30px;border-top:1px solid var(--line);padding:23px 4px}.criterion-title{display:flex;align-items:center;gap:17px}.number{font-family:"Playfair Display",serif;font-size:18px;color:var(--accent)}h3{font-size:17px;margin:0 0 3px}h3+p{font-size:13px;color:var(--muted);margin:0}.choices{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.choices button{font-family:inherit;border:1px solid #c9d2cd;background:var(--white);padding:10px 4px 9px;color:var(--ink);cursor:pointer;transition:.18s}.choices b{display:block;font-size:15px}.choices span{font-size:10px;color:var(--muted)}.choices button:hover{border-color:var(--teal);transform:translateY(-2px)}.choices button.selected{background:var(--teal);border-color:var(--teal);color:#fff}.choices button.selected span{color:#cce5df}.reflection{display:grid;grid-template-columns:.9fr 1.15fr;gap:65px;padding:58px 7px 48px;align-items:start}.reflection h2{font-size:25px;line-height:1.48;margin:0;letter-spacing:-.02em}.field{position:relative}.field label{font-size:13px;font-weight:700}.field textarea{display:block;width:100%;height:125px;margin-top:10px;padding:14px;border:1px solid #cbd4cf;background:var(--white);resize:vertical;font-family:inherit;font-size:14px;line-height:1.7;color:var(--ink)}.field textarea:focus{outline:2px solid #aad0c3;border-color:var(--teal)}.field span{position:absolute;right:11px;bottom:10px;color:#87928e;font-size:11px}footer{border-top:1px solid var(--line);padding-top:23px;display:flex;align-items:center;justify-content:space-between}.total span{font-size:12px;color:var(--muted);display:block}.total strong{font-family:"Playfair Display","Noto Sans TC",serif;font-size:30px;color:var(--teal)}.total small{font-family:"Noto Sans TC",sans-serif;font-size:12px;color:var(--muted);font-weight:400}#submit{border:0;background:#aeb9b4;color:#fff;padding:15px 23px;font:700 15px "Noto Sans TC",sans-serif;cursor:not-allowed;transition:.2s}#submit span{margin-left:11px;font-size:18px}#submit.ready{background:var(--accent);cursor:pointer}#submit.ready:hover{background:#cc563d;transform:translateY(-2px)}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,100px);background:#183d3b;color:#fff;padding:13px 20px;border-radius:4px;font-size:14px;transition:.3s;box-shadow:0 6px 20px #0002}.toast.show{transform:translate(-50%,0)}@media(max-width:720px){.shell{padding:20px}.hero,.reflection{grid-template-columns:1fr;gap:30px;padding:48px 0 32px}h1{font-size:37px}.speaker-card{max-width:370px}.criterion{grid-template-columns:1fr;gap:18px}.choices{max-width:460px}.rubric-head span:last-child{display:none}.topbar .class-tag{display:none}footer{position:sticky;bottom:0;background:var(--paper);padding:15px 0}.reflection{padding-top:40px}.criterion{padding:21px 0}}@media(max-width:400px){.choices{gap:4px}.choices button{padding:9px 1px}.choices b{font-size:14px}}
/* Required-state cues for the student rubric. */
.progress-copy{font-size:17px!important;font-weight:700}.progress-copy strong{font-size:18px}.rubric-head{font-size:17px!important;font-weight:700}.rubric-head b{margin-left:9px;color:#bd3a2d;font-size:17px;font-weight:800}.required-note{color:#bd3a2d;font-weight:800}.section-label.section-oral{margin-top:28px;padding:13px 16px!important;border-radius:0!important;background:#5c4b8a!important;border-left-color:#433566!important;color:#fff;box-shadow:none!important}.field label{font-size:18px!important}.field label em{margin-left:9px;padding:3px 8px;border-radius:10px;background:#fff0eb;color:#bd3a2d;font-size:15px;font-style:normal;font-weight:800}
