:root {--bg:#f7f7f1;--surface:#fffefb;--ink:#243533;--muted:#61736d;--line:#dbe6dc;--brand:#276c61;--brand-dark:#1a564e;--accent:#ebf3ec;--shadow:0 18px 60px rgba(36,65,51,.08)}
* {box-sizing:border-box}
html {font-size:18px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body {margin:0;background:radial-gradient(circle at 80% 3%,#e6f1e8 0%,transparent 32%),var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;line-height:1.65}
button,input,select {font:inherit}
button {cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible {outline:3px solid #e7a953;outline-offset:3px}
[hidden] {display:none!important}
.survey-shell {max-width:820px;margin:0 auto;padding:26px 20px 20px;min-height:100dvh}
.site-head {display:flex;align-items:center;gap:12px;color:#345c52;font-weight:700;font-size:.89rem;margin:0 0 42px}
.brand-mark {display:flex;align-items:center;justify-content:center;width:39px;height:39px;border-radius:13px;background:#d8ebd9;font-size:25px;color:var(--brand)}
.screen {background:var(--surface);border:1px solid #eef1e8;border-radius:28px;box-shadow:var(--shadow);padding:clamp(24px,5vw,54px);min-height:520px}
.eyebrow {color:var(--brand);font-size:.82rem;font-weight:750;letter-spacing:.08em}
h1,h2,p {margin:0}
h1 {font-size:clamp(1.8rem,5vw,2.55rem);line-height:1.36;letter-spacing:-.035em;font-weight:800;margin:15px 0 22px}
h2 {font-size:1.1rem;line-height:1.5}
p {margin-top:14px}
.lead {font-size:1.03rem;color:#526762;line-height:1.92}
.feature-row {display:flex;flex-wrap:wrap;gap:10px;margin:29px 0}
.feature-row span {background:var(--accent);border:1px solid var(--line);color:var(--brand-dark);padding:6px 14px;border-radius:100px;font-size:.84rem;font-weight:650}
.privacy-panel {background:#f4f7f2;border:1px solid #e4ebe1;border-radius:17px;padding:24px;margin:24px 0;color:#4d5e57;font-size:.88rem}
.privacy-panel h2 {color:#253f37;margin-bottom:8px}
.privacy-panel p {margin-top:10px}
.primary-btn,.ghost-btn,.text-btn {min-height:56px;border-radius:15px;font-weight:700;border:1.5px solid transparent;padding:12px 23px;transition:background .16s,border-color .16s,transform .16s}
.primary-btn {color:#fff;background:var(--brand)}
.primary-btn:hover {background:var(--brand-dark)}
.primary-btn:disabled {opacity:.45;cursor:not-allowed}
.ghost-btn {color:var(--brand-dark);background:#fff;border-color:#c6d9cc}
.ghost-btn:hover {background:#eef5ee}
.text-btn {color:#5b7068;background:transparent;font-weight:600}
.text-btn:hover {color:#143b35;background:#f5f7f4}
.hero>.primary-btn {min-width:240px;margin-top:5px}
.small-note {font-size:.8rem;color:#718078;line-height:1.7;margin-top:17px}
.footer {text-align:center;color:#84918a;font-size:.75rem;padding:30px 0 6px}
.footer a {color:inherit;text-decoration:underline;text-underline-offset:2px}
.quiz-top {display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px}
.count-label {font-size:.86rem;color:#73847b;font-variant-numeric:tabular-nums}
.progress-track {height:10px;background:#e9eee8;border-radius:20px;overflow:hidden}
.progress-fill {height:100%;background:var(--brand);width:4%;border-radius:20px;transition:width .2s ease}
.question-title {font-size:clamp(1.34rem,4.2vw,1.75rem);line-height:1.52;margin:34px 0 8px}
.hint {color:#6f8077;font-size:.88rem;margin-top:6px}
.options {display:grid;gap:13px;margin:28px 0 34px}
.option-btn {display:flex;align-items:center;gap:16px;text-align:left;width:100%;min-height:84px;padding:17px 20px;border:1.5px solid #e0e8df;border-radius:17px;background:#fff;color:#2c4039;line-height:1.6;font-size:.97rem;transition:background .13s,border-color .13s}
.option-btn:hover {border-color:#7da699;background:#f6faf6}
.option-btn.selected {border-color:var(--brand);background:#ecf5ee;box-shadow:0 0 0 1px var(--brand) inset}
.option-tag {display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;border-radius:11px;background:#edf3ee;color:#47736a;font-size:.82rem;font-weight:800}
.option-btn.selected .option-tag {background:#d0e4d7;color:#1d655c}
.checkmark {margin-left:auto;color:var(--brand);font-weight:800;font-size:1.3rem}
.quiz-actions {display:flex;align-items:center;gap:10px;justify-content:space-between;margin-top:24px}
.narrative {padding-top:55px}.big-sparkle {font-size:55px;line-height:1.2;color:var(--brand);margin-top:25px}.narrative .lead {margin-bottom:18px}
.alert {background:#fff0e8;border:1px solid #e7bba8;color:#913e29;border-radius:12px;padding:12px;font-size:.86rem}
.finish {text-align:center}.done-mark {width:66px;height:66px;display:grid;place-items:center;margin:0 auto 20px;border-radius:50%;background:#e3f2e6;color:var(--brand);font-weight:900;font-size:1.8rem}
.finish h1 {font-size:clamp(1.7rem,5vw,2.2rem)}.finish>p {font-size:.98rem;color:#52645d;line-height:1.85}.finish-subtitle {font-weight:650!important;color:#2c554c!important}
.qr-section {border:1px solid #dde9db;background:#f5f9f4;border-radius:24px;margin:32px 0 20px;padding:26px 15px}.qr-section h2 {color:var(--brand-dark);font-size:1.35rem}
.qr-holder {width:min(100%,305px);aspect-ratio:1;display:grid;place-items:center;margin:22px auto 12px;padding:13px;background:white;border:1px solid #e0e7dc;border-radius:16px}
.qr-holder img {max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;image-rendering:auto}
.qr-placeholder {width:100%;height:100%;display:grid;place-items:center;border:2px dashed #b6c9b9;color:#839888;background:#f7faf7;text-align:center;border-radius:10px;line-height:2}
.qr-purpose {font-weight:700;color:#345b51}.finish-foot {padding:12px 0 4px;color:#728077;font-size:.83rem}.finish-foot p {margin-top:8px}
@media(max-width:640px){html{font-size:17px}.survey-shell{padding:17px 13px 10px}.site-head{margin-bottom:19px;font-size:.82rem}.screen{padding:24px 18px;border-radius:22px;min-height:0}.feature-row{gap:6px}.feature-row span{font-size:.78rem;padding:5px 10px}.privacy-panel{padding:17px;margin:21px 0}.question-title{margin-top:28px}.options{margin:21px 0 28px}.option-btn{min-height:88px;padding:14px 13px;gap:11px}.option-tag{min-width:32px;height:32px}.quiz-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quiz-actions .primary-btn{grid-column:1/-1;grid-row:1}.quiz-actions button{min-height:52px;padding:9px}.narrative{padding-top:37px}.qr-section{padding:23px 12px}.qr-holder{width:min(100%,270px)}.footer{font-size:.71rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.draft-notice{margin:0 0 18px}.answer-review{margin-top:22px}.answer-review summary{cursor:pointer;min-height:48px;padding:10px;color:var(--brand-dark);font-weight:700}.review-answer{display:block;width:100%;min-height:52px;margin:8px 0;padding:14px;text-align:left;line-height:1.7;background:#f4f7f2;color:var(--ink);border:1px solid var(--line);border-radius:12px}.option-btn>span:nth-child(2){min-width:0;overflow-wrap:anywhere}.count-label{flex-shrink:0}h1:focus{outline:none}
@media(max-width:640px){html{font-size:18px}.small-note,.hint,.privacy-panel{font-size:.9rem}.quiz-top{gap:10px}.site-head>span:last-child{min-width:0}.brand-mark{flex-shrink:0}}

/* 22题大字版：不压缩长选项，保留自然换行和清晰点击区域。 */
.question-title{font-weight:650}.question-title strong,.option-btn strong{font-weight:850}
@media(max-width:640px){
  .question-title{font-size:26px;line-height:1.55;margin:28px 0 14px}
  .option-btn{font-size:20px;line-height:1.65;min-height:100px;padding:20px 16px;gap:12px;align-items:center}
  .options{gap:18px;margin:26px 0 32px}
  .quiz-actions{gap:14px;margin-top:30px}
  .quiz-actions button,.hero>.primary-btn{font-size:20px;min-height:64px;padding:14px 18px}
  .quiz-top{gap:10px}.count-label{white-space:nowrap}
  .lead{font-size:20px;line-height:1.8}.privacy-panel{font-size:18px;line-height:1.8}
  .screen{padding:28px 18px}.option-tag{flex-shrink:0}.checkmark{flex-shrink:0}
}

/* 欢迎和完成页专用样式。 */
#screen-welcome .feature-row{margin:24px 0;gap:10px}
#screen-welcome .welcome-intro{padding:22px 24px;margin:26px 0;background:#f0f5ee;border-color:#e0e9dc}
#screen-welcome .welcome-intro h2{font-size:20px;margin:0 0 10px}
#screen-welcome .welcome-intro p{font-size:18px;line-height:1.8;margin:0}
#screen-welcome #start-btn{display:block;width:100%;min-height:76px;padding:20px 24px;border-radius:22px;background:#18594e;color:#fff;font-size:24px;font-weight:800;line-height:1.4;box-shadow:0 10px 24px rgba(24,89,78,.2);margin:28px 0 0;touch-action:manipulation}
#screen-welcome #start-btn:hover{background:#10493f;box-shadow:0 12px 28px rgba(24,89,78,.25)}
#screen-welcome #start-btn:active{transform:translateY(1px)}
#screen-welcome #start-btn:focus-visible{outline:3px solid #bd7a29;outline-offset:5px}
#screen-welcome .welcome-submit-note{text-align:center;margin:16px 0 0;line-height:1.7}
#screen-welcome .privacy-details{margin-top:28px;border-top:1px solid #dfe7dc;padding-top:12px;color:#4b625a;font-size:17px}
#screen-welcome .privacy-details summary{padding:14px 0;min-height:52px;cursor:pointer;font-weight:650;line-height:1.65;touch-action:manipulation}
#screen-welcome .privacy-details summary:focus-visible{outline:3px solid #bd7a29;outline-offset:4px;border-radius:8px}
#screen-welcome .privacy-detail-body{padding:2px 0 12px;line-height:1.85}
#screen-welcome .privacy-detail-body p{margin-top:16px}
#screen-finish .done-mark{width:54px;height:54px;font-size:27px;margin-bottom:18px}
#screen-finish .finish-thanks{font-size:22px;font-weight:750;color:#345e53;margin:0;line-height:1.6}
#screen-finish .finish-subtitle{font-size:18px;margin-top:10px}
#screen-finish .qr-section{margin:30px 0 20px;padding:30px 22px 24px;background:#f1f6ef;border-color:#dce7d8}
#screen-finish #finish-title{font-size:32px;font-weight:850;line-height:1.45;letter-spacing:0;color:#174d42;margin:0;text-wrap:balance}
#screen-finish .collection-arrow{display:block;width:32px;height:32px;margin:12px auto 16px;fill:none;stroke:#3d675b;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
#screen-finish #qr-invite-title{font-size:24px;font-weight:800;line-height:1.5;color:#24584c;margin:0 0 24px}
#screen-finish .qr-holder{margin:0 auto 22px;box-shadow:0 6px 18px rgba(40,75,53,.06)}
#screen-finish .qr-section .small-note{font-size:17px;color:#4b665a;margin-top:0}
#screen-finish .finish-foot{max-width:31em;margin:0 auto;padding:4px 0 0;font-size:17px;line-height:1.85;color:#586e62}
#screen-finish .finish-foot p{margin-top:0}
#screen-finish .quiz-actions{margin-top:28px}
@media(max-width:640px){
  #screen-welcome h1{font-size:32px;line-height:1.45;margin:16px 0 20px}
  #screen-welcome .lead{font-size:19px;line-height:1.85}
  #screen-welcome .feature-row{gap:8px;margin:24px 0}
  #screen-welcome .feature-row span{font-size:14px;padding:6px 10px}
  #screen-welcome .welcome-intro{padding:20px;margin:24px 0}
  #screen-welcome #start-btn{font-size:24px;min-height:76px;border-radius:20px}
  #screen-welcome .privacy-details{font-size:17px;margin-top:26px}
  #screen-finish .qr-section{padding:26px 14px 24px;margin-top:26px;border-radius:22px}
  #screen-finish #finish-title{font-size:30px;margin-bottom:0;line-height:1.45}
  #screen-finish .qr-holder{width:min(100%,270px)}
  #screen-finish .finish-foot{font-size:17px}
  #screen-finish .quiz-actions .ghost-btn{grid-column:1/-1}
}

#screen-finish .finish-subtitle span{display:inline-block}

.nickname-wrap {margin:20px 0 12px}
.nickname-wrap label {display:block;font-weight:700;margin-bottom:8px}
.nickname-wrap input {width:100%;min-height:54px;padding:12px 14px;border:1.5px solid var(--line);border-radius:13px;background:#fff;color:var(--ink)}
.form-error {color:#a22c25;font-weight:700;margin-top:8px}
.answer-code {font-weight:800;color:var(--brand-dark);font-size:1.2rem}
