/* frontend.css —— 前台公众端（问卷填写、主体信息、首页、邀请、报告查看）专用样式。
   由 app.css 自动拆分而来；仅前台布局加载。 */
.enterprise-block{padding-bottom:24px}
.progress-wrap{margin:8px 0 26px}
.progress-label{display:flex;justify-content:space-between;color:var(--muted);font-size:13px}
.progress{height:8px;background:var(--surface-muted);border-radius:99px;overflow:hidden;margin-top:7px}
.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary-gradient-start),var(--primary-gradient-end));transition:.2s}
.page-heading{border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:22px}
.page-heading span{color:var(--primary);font-size:12px;font-weight:800}
.page-heading h2{margin:4px 0 0}
.question{padding:0 0 22px;margin-bottom:22px;border-bottom:1px solid var(--line-soft)}
.question[hidden],.question-page[hidden],[hidden]{display:none!important}
.question-label{display:block;font-weight:700;margin-bottom:5px}
.question-label b,.field b{color:var(--danger)}
.question-help,.code-help,small{color:var(--muted);font-size:12px}
.choice-list{display:grid;gap:8px}
.subchoices{margin-left:26px;display:grid;gap:7px}
.child-choice{background:var(--surface-subtle)}
.location-row input{flex:1}
.form-grid.compact{grid-template-columns:repeat(3,1fr)}
@media(max-width:800px){.location-row{display:grid}}
/* 主体信息、条件编辑、报告布局与报告链接 */
.subject-hero{max-width:900px;margin-left:auto;margin-right:auto}
.step-indicator{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0;box-sizing:border-box}
.step-indicator span{padding:7px 12px;border-radius:999px;background:var(--surface-muted);color:var(--muted);font-size:13px}
.step-indicator .active{background:var(--primary-soft);color:var(--primary-dark);font-weight:700}
.subject-step-indicator{width:100%;max-width:900px;margin:18px auto}
.subject-step-indicator span{flex:1;text-align:center;white-space:nowrap}
.subject-form,.subject-page-alert{width:100%;max-width:900px;margin-left:auto;margin-right:auto;box-sizing:border-box}
.subject-form-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
.subject-field{min-width:0;margin:0}
.subject-field>label{display:block;margin-bottom:7px}
.subject-field input,.subject-field select,.subject-field textarea{width:100%;box-sizing:border-box}
.subject-form-actions{margin-top:22px}
.subject-summary-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin-bottom:18px;border:1px solid var(--primary-border-soft);border-radius:12px;background:var(--primary-softer)}
.subject-summary-bar p{margin:3px 0;color:var(--muted-strong)}
/* 主体类型使用直观的二选一卡片，避免普通用户在下拉框中寻找。 */
.subject-type-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.subject-type-option{display:flex;align-items:flex-start;gap:11px;padding:15px;border:1px solid var(--control-border);border-radius:12px;background:var(--surface);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.subject-type-option:hover{border-color:var(--primary-border);background:var(--primary-softer)}
.subject-type-option:has(input:checked),.subject-type-option.is-selected{border-color:var(--primary-border);background:var(--primary-softer);box-shadow:0 0 0 2px rgba(99,102,241,.12)}
.subject-type-option input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--primary);flex:0 0 auto}
.subject-type-option span{display:grid;gap:5px;min-width:0}
.subject-type-option strong{font-size:15px;line-height:1.45}
.subject-type-option small{line-height:1.55}
@media(max-width:640px){.subject-type-options{grid-template-columns:1fr}}
@media(max-width:640px){.subject-step-indicator{gap:5px;margin:14px auto}.subject-step-indicator span{padding:7px 5px;font-size:12px}.subject-form{padding:16px}.subject-type-options{grid-template-columns:1fr}.subject-form-actions .button{width:100%}}
.subchoices{margin:.35rem 0 .75rem 1.25rem;padding-left:.8rem;border-left:2px solid var(--primary-border-soft)}
@media(max-width:768px){.survey-fill-page .subject-summary-bar{display:none}.survey-fill-page .survey-intro .eyebrow,.survey-fill-page .survey-intro p{display:none}.survey-fill-page .survey-intro{padding-bottom:12px}}
/* Invitation administration and public entry */
.hp-field{position:absolute;left:-10000px;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
/* 2026-08-11 report answer, subject and invitation UI */
.question-help{font-size:14px;line-height:1.65;margin:6px 0 12px;color:var(--muted)}
.subject-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.subject-field{border:1px solid var(--line);border-radius:10px;padding:13px;background:var(--surface-soft)}
.subject-field span{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}
.subject-field strong{display:block;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:768px){.subject-fields{grid-template-columns:1fr}}
.report-risks-section{display:grid;gap:14px}.report-risks-section>h2{margin-bottom:0}.question-risk-card{border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--surface)}.question-risk-card h3{margin:0 0 6px;color:var(--ink)}.question-risk-description,.risk-source{color:var(--muted);white-space:pre-line}.question-risk-answer{display:grid;gap:4px;padding:10px 12px;margin:10px 0;border-radius:9px;background:var(--surface-soft)}.question-risk-answer small{color:var(--muted)}.no-risk{color:var(--success);font-weight:700}.comprehensive-risks{border-top:1px solid var(--line);padding-top:14px}
.report-contact-block{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:24px;margin:18px 0;border:1px solid var(--primary-border-soft);border-radius:16px;background:linear-gradient(145deg,var(--surface),var(--primary-softer));box-shadow:0 12px 30px rgba(16,24,40,.06)}.report-contact-kicker{display:block;color:var(--primary);font-size:12px;font-weight:850;letter-spacing:.14em}.report-contact-copy h2{margin:6px 0 14px;color:var(--ink)}.report-contact-row{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;padding:7px 0;border-bottom:1px solid var(--line-soft)}.report-contact-row span{color:var(--muted);font-size:13px}.report-contact-row strong{overflow-wrap:anywhere}.report-contact-extra{margin:14px 0 0;color:var(--muted-strong);white-space:pre-line}.report-contact-qr{text-align:center}.report-contact-qr img{display:block;width:148px;height:148px;object-fit:contain;padding:6px;border:1px solid var(--line);border-radius:12px;background:#fff}.report-contact-qr small{display:block;margin-top:6px;color:var(--muted)}@media(max-width:680px){.report-contact-block{grid-template-columns:1fr}.report-contact-qr{justify-self:center}.report-contact-row{grid-template-columns:78px 1fr}}
