:root{font-family:"Noto Sans SC","Microsoft YaHei",sans-serif;color:#20302a;background:#f7f6f1;font-size:16px}*{box-sizing:border-box}body{margin:0}header{height:70px;background:#133d34;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1120px)/2));gap:12px}.brand{font-size:24px;font-weight:700;letter-spacing:.06em}.brand span{font-size:13px;font-weight:400;margin-left:10px;color:#b9dfca}nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}button{font:inherit;cursor:pointer;border:1px solid #adc5b7;background:#fff;color:#174b3a;border-radius:8px;padding:9px 15px}nav button{background:transparent;color:white;border-color:#568274}nav button:hover{background:#29584c}.primary{background:#147a60;color:#fff;border-color:#147a60;font-weight:700}.primary:hover{background:#0e654e}button:disabled{opacity:.55;cursor:default}main{max-width:1100px;margin:0 auto;padding:34px 22px 80px}.login{max-width:480px;margin:55px auto;padding:35px;background:#fff;border-radius:16px;box-shadow:0 15px 50px #143b3020}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:#128369;font-size:13px;font-weight:700}.login h1{line-height:1.3;font-size:37px;margin:18px 0}.login p{color:#5e7067}.login form{margin-top:30px;display:grid;gap:14px}.login label{display:grid;gap:7px;color:#38554a}.login input{height:46px;border:1px solid #b8cbbf;border-radius:8px;padding:10px;font:inherit}.login .primary{margin-top:7px}.error{color:#b34230!important;min-height:20px}.hero{padding:32px 38px;background:#e4efe7;border-radius:16px;margin-bottom:28px}.hero h1{margin:8px 0 10px;font-size:34px}.hero p{margin:0;color:#526b60}.section{background:#fff;border:1px solid #e1e7e1;border-radius:14px;margin:22px 0;padding:28px;box-shadow:0 5px 22px #1c49320a}.section h2{margin:4px 0 6px}.section .sub{color:#738478;margin:0 0 22px}.note{border-left:4px solid #7dbba1;background:#f6faf6;padding:13px 18px;margin:13px 0;border-radius:0 8px 8px 0}.note h3{margin:0 0 6px;font-size:17px}.note p{margin:0;line-height:1.85}.block-title{font-weight:700;margin:26px 0 12px;font-size:19px}.question{border:1px solid #d9e4dc;border-radius:12px;padding:20px;margin:16px 0;background:#fff}.question.example{background:#f6f7ef}.qtop{display:flex;justify-content:space-between;gap:12px;align-items:center}.pill{font-size:12px;color:#1c735b;background:#e1f3ea;padding:4px 10px;border-radius:100px}.question h4{margin:8px 0;font-size:18px}.stem{line-height:1.8;white-space:pre-wrap}.options{display:grid;gap:8px;margin:16px 0}.option{display:flex;align-items:center;gap:10px;border:1px solid #e1e8e2;border-radius:8px;padding:10px 12px}.option input{accent-color:#168264}.option.correct{border-color:#258e69;background:#eff9f2}.option.wrong{border-color:#cd806f;background:#fff5f2}.answer{background:#edf5ec;border-radius:8px;padding:14px 16px;line-height:1.8;margin-top:13px}.answer p{margin:5px 0}.hint{background:#fff9df;border-radius:8px;padding:10px 14px;margin:10px 0}.actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}.status{font-size:14px;color:#547161;margin-top:10px}.status.error{color:#aa4537}.figure{max-width:100%;max-height:300px;cursor:zoom-in;border:1px solid #e0e8e2;border-radius:8px;padding:10px;background:white}.figure-wrap{margin:16px 0}.figure-wrap figcaption{font-size:13px;color:#708276}.record{border-bottom:1px solid #dce6df;padding:18px 0}.record:last-child{border-bottom:0}.record strong{font-size:17px}.muted{color:#67796e}.summary{display:flex;gap:10px;flex-wrap:wrap}.summary span{background:#ecf3ed;padding:8px 12px;border-radius:8px}.empty{padding:22px;background:#fff;border-radius:10px;color:#64796b}dialog{border:0;border-radius:12px;max-width:90vw;max-height:90vh;padding:35px;background:#fff}dialog img{max-width:80vw;max-height:75vh}dialog button{position:absolute;right:9px;top:8px;border:0;font-size:24px}@media(max-width:650px){header{height:auto;min-height:64px;padding:13px 20px;align-items:start;flex-direction:column}nav button{font-size:13px;padding:6px 9px}.section{padding:20px}.hero{padding:25px}.hero h1{font-size:27px}main{padding:20px 12px 70px}}
