:root{--ink:#17383c;--muted:#657778;--teal:#146f69;--teal-dark:#105953;--border:#dbe6e3;--paper:#fff;--bg:#f3f6f2;--accent:#edf4e4}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;line-height:1.7}a{color:var(--teal);text-underline-offset:4px}a:hover{color:var(--teal-dark)}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #d4a748;outline-offset:3px}.site-header{max-width:1160px;margin:auto;padding:27px 36px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);gap:20px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:21px;font-weight:750;color:var(--ink)}.brand small{font-size:12px;color:var(--muted);margin-left:8px;font-weight:500}.brand-mark{display:grid;place-items:center;background:var(--teal);color:#fff;width:36px;height:36px;border-radius:11px;font-family:Georgia,serif;font-size:25px}nav{display:flex;gap:20px;align-items:center;font-size:14px}nav form{margin:0}.page{max-width:1088px;margin:0 auto;padding:46px 0 60px;min-height:70vh}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(28px,4vw,42px);line-height:1.28;letter-spacing:-.03em;margin-bottom:20px}h2{font-size:23px;line-height:1.4;margin-bottom:18px}h3{font-size:17px}.welcome{display:flex;justify-content:space-between;align-items:center;padding:16px 0 40px;gap:35px}.eyebrow,.section-number{font-size:12px;letter-spacing:.14em;color:var(--teal);font-weight:700;margin-bottom:18px}.lead{font-size:17px;color:var(--muted);line-height:1.9;margin-bottom:0}.welcome-symbol{background:var(--accent);width:230px;min-width:200px;height:200px;border-radius:40px 40px 100px 40px;color:#aec39a;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:88px;line-height:1.2;transform:rotate(-3deg)}.welcome-symbol span{font-family:system-ui,sans-serif;font-size:12px;letter-spacing:.15em;color:#5d7456;margin-top:8px}.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.card{background:var(--paper);border:1px solid var(--border);padding:32px;border-radius:20px;margin-bottom:24px;box-shadow:0 5px 18px #15363303}.soft{background:#f9fbf7}.muted,.hint{color:var(--muted)}.hint{font-size:13px;line-height:1.7;margin:12px 0 18px}label{display:block;font-size:14px;font-weight:650;margin-bottom:8px}input:not([type=hidden]),textarea{width:100%;border:1px solid #c6d6d2;border-radius:9px;background:white;color:var(--ink);padding:13px 15px;resize:vertical}input[type=file]{font-size:14px;padding:14px 0;border:0;background:transparent}input:focus,textarea:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px #146f6914}.code-input{letter-spacing:.08em;font-size:20px}.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;min-height:46px;padding:11px 22px;border-radius:9px;font-weight:650;font-size:14px;border:1px solid transparent;text-decoration:none;cursor:pointer;white-space:nowrap}.primary{background:var(--teal);color:white}.primary:hover{background:var(--teal-dark);color:white}.secondary{background:white;color:var(--teal);border-color:#bdd0ca}.secondary:hover{background:#f3f7f2}.full{width:100%;justify-content:space-between}.text-button{background:none;border:none;color:var(--teal);cursor:pointer;padding:0;font-size:14px}.assignment{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 0;text-decoration:none;border-top:1px solid var(--border);font-weight:650}.assignment small{display:block;font-weight:400;color:var(--muted);font-size:12px;margin-top:4px}.notice{padding:18px 22px;background:#eaf2ee;border:1px solid #d2e2d8;border-radius:12px;margin-bottom:24px;font-size:14px}.notice p:last-child{margin-bottom:0}.error{background:#fff0ed;border-color:#efccc6;color:#934739}.success{border-left:4px solid var(--teal)}.narrow{max-width:480px;margin:12px auto}.start-card{max-width:850px;margin:auto;padding:40px}.facts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);margin:30px 0;gap:20px;padding-top:24px}.facts span,.facts strong{display:block}.facts span{font-size:12px;color:var(--muted);margin-bottom:6px}.facts strong{font-size:16px}.exam-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:28px}.exam-heading h1{font-size:32px;margin-bottom:0}.exam-heading .eyebrow{margin-bottom:12px}.timer{text-align:center;padding:15px 24px;background:var(--paper);border:1px solid var(--border);border-radius:14px;min-width:145px;font-variant-numeric:tabular-nums}.timer span,.timer small{display:block;font-size:11px;color:var(--muted)}.timer strong{display:block;font-size:28px;line-height:1.4}.timer.urgent{background:#fff0ed;border-color:#e8b0a7;color:#a0493a}.question{padding:28px 32px}.question header{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-bottom:18px}.question-number{font-family:Georgia,serif;font-size:26px;color:#94aba4}.problem-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;margin:18px 0 25px;font-size:17px}.problem-body .katex{font-size:1.12em}.problem-body .katex-display{overflow-x:auto;overflow-y:hidden}.question textarea{background:#fafcf9}.original-answer{white-space:pre-wrap;overflow-wrap:anywhere;background:#f3f7f3;border-radius:8px;padding:15px;font:16px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace}.file-row{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border-top:1px solid var(--border);padding:13px 0;overflow-wrap:anywhere}.file-row small{color:var(--muted);font-size:12px;flex-shrink:0}.upload-box{padding:20px;background:#f6f9f3;border:1px dashed #a9c0b8;border-radius:12px;margin-top:20px}.upload-box span{font-size:12px;display:block;font-weight:400;color:var(--muted)}.submit-bar{display:flex;justify-content:space-between;gap:22px;align-items:center;border-radius:16px;padding:22px;background:#e5eee6;margin-bottom:24px}.submit-bar strong,.submit-bar small{display:block}.submit-bar strong{font-size:14px}.submit-bar small{font-size:12px;color:var(--muted);margin-top:4px}.actions{display:flex;gap:10px}.score{font-size:36px;font-weight:700;margin-bottom:0}.score span{font-size:20px;font-weight:400}.teacher-record details{border-top:1px solid var(--border);padding:15px 0}.teacher-record summary{cursor:pointer;font-weight:650}footer{max-width:1088px;margin:auto;border-top:1px solid var(--border);padding:25px 0 35px;color:var(--muted);font-size:12px;display:flex;justify-content:space-between;gap:20px}@media(max-width:1160px){.page,footer{margin-left:30px;margin-right:30px}}@media(max-width:700px){.site-header{padding:20px}.brand small{display:none}nav{gap:12px}.page{padding-top:30px;margin:0 18px}.welcome-symbol{display:none}.welcome{padding:0 4px 28px}.entry-grid{grid-template-columns:1fr;gap:0}.card,.start-card{padding:24px;border-radius:16px}.facts{gap:18px 10px}.facts strong{font-size:14px}.exam-heading{align-items:flex-start;gap:15px}.exam-heading h1{font-size:25px}.timer{min-width:115px;padding:12px}.timer strong{font-size:23px}.question{padding:20px}.problem-body{font-size:16px}.submit-bar{flex-direction:column;align-items:stretch;padding:20px}.actions{display:grid;grid-template-columns:1fr 1fr}.file-row{flex-direction:column;gap:3px}footer{margin:0 18px;padding-top:22px}.button{padding:10px 16px}.teacher-record .exam-heading{flex-wrap:wrap}}
