:root{color:#1b2a36;background:linear-gradient(135deg,#f5f9ff,#e6f4ff 60%,#d9f0ea);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh}.page{min-height:100vh;padding:8px}.hero{width:min(760px,100%);margin:8px auto 14px;text-align:center}.card{width:min(760px,100%);margin:0 auto;background:#fffffff0;border:1px solid rgba(202,220,234,.9);border-radius:10px;padding:12px;box-shadow:0 8px 20px #0a2d5014}.hero-title{margin:0;font-size:clamp(26px,6vw,34px);line-height:1.15;letter-spacing:.02em;font-weight:800;background:linear-gradient(130deg,#0f4c81,#1868a5 45%,#2d9a74);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 6px 20px rgba(24,104,165,.15)}.hero-subtitle{margin:4px 0 8px;font-size:12px;color:#5f7386;letter-spacing:.16em;text-transform:uppercase}.hero-line{width:116px;height:3px;margin:0 auto;border-radius:999px;background:linear-gradient(90deg,#1868a533,#1868a5eb,#2d9a7433)}.desc{margin:10px 0 6px;color:#4a6275}.progress{color:#1f7a5b;font-weight:600;margin-bottom:16px}.name-box{display:block;margin-bottom:10px}.name-box span{display:block;margin-bottom:8px;font-weight:600}input{width:100%;border:1px solid #c7d8e6;border-radius:4px;height:40px;padding:0 12px;font-size:15px;background:#fcfeff}.q-block,.group-block{padding:10px;border:1px solid #e0ecf5;border-radius:8px;margin-bottom:8px;background:#fff}.form-card{width:min(760px,100%);margin:0 auto 12px;background:#fff;border:1px solid #d8e8f4;border-radius:12px;padding:14px 14px 6px;box-shadow:0 4px 12px #0a2d500f}.result-card{width:min(760px,100%);margin:0 auto 12px;padding:4px 0 6px}.section-label{width:min(760px,100%);margin:16px auto 6px;padding:8px 16px;font-size:15px;font-weight:700;color:#1868a5;letter-spacing:.06em;text-align:center;background:linear-gradient(90deg,#1868a50f,#1868a51f,#1868a50f);border-left:3px solid #1868a5;border-right:3px solid #1868a5;border-radius:6px}.q-desc{margin:0 0 10px;font-size:13px;color:#5a748a;line-height:1.5;padding-bottom:8px;border-bottom:1px solid #eaf2f9}.group-sub-item{padding:10px 0}.group-sub-item+.group-sub-item{border-top:1px solid #e7eef5}.group-title{margin:0 0 6px;font-size:14px;line-height:1.5;color:#2d4052;font-weight:700}.q-title{margin:0 0 8px;font-size:14px;line-height:1.4}.q-block .q-title{font-weight:700;color:#2d4052}.ops{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.op-btn{border:1px solid #95b3c9;background:#f9fcff;color:#204763;border-radius:4px;min-height:34px;padding:7px 9px;text-align:left;line-height:1.3}.op-btn.active{background:#2c84c6;border-color:#2c84c6;color:#fff}.msg{font-size:14px;margin:12px 0 0}.msg.error{color:#cf2e2e}.msg.success{color:#107058}.thank-box{display:flex;flex-direction:column;align-items:center;padding:10px 0 12px;text-align:center}.thank-title{margin:0;font-size:20px;font-weight:700;color:#1a3f5c}.score-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:12px}.score-item{background:#fff;border:1px solid #cfe0ec;border-radius:10px;padding:10px 12px;box-shadow:0 4px 10px #0a2d500f}.score-item-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.score-label{color:#2f4356;font-size:13px;font-weight:600}.score-value{color:#0f5a86;font-weight:700;font-size:14px}.score-level{display:inline-block;margin-top:6px;color:#1f7a5b;font-size:12px;font-weight:700;background:#e9f7f0;border:1px solid #bde3d1;border-radius:999px;padding:2px 8px;white-space:nowrap}.score-desc{margin:6px 0 0;color:#4d6477;font-size:12px;line-height:1.45}.score-note{margin:12px 0 0;color:#4f6578;font-size:12px;line-height:1.45;background:#ffffffb3;border:1px solid rgba(199,219,233,.85);border-radius:10px;padding:10px 12px}.submit{width:100%;margin-top:12px;height:42px;border:none;border-radius:6px;background:linear-gradient(90deg,#1868a5,#269965);color:#fff;font-size:16px;font-weight:600}.submit:disabled{opacity:.6}@media(min-width:768px){.page{padding:18px}.hero{margin:12px auto 18px}.card{padding:18px}.ops{grid-template-columns:repeat(3,minmax(0,1fr))}.score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
