/* 模块4补充样式；styles.css 与原模板保持一致。 */
:root { --color-text-muted: #697586; }
section[id] { scroll-margin-top: 88px; }
.hero { gap: 52px; grid-template-columns: minmax(0,1fr) minmax(420px,.95fr); }
.hero h1 { font-size: clamp(32px,3.3vw,44px); line-height: 1.3; letter-spacing: -.035em; }
.hero-note { line-height: 1.7; }
.section-heading h2 { font-size: clamp(22px,2.8vw,28px); }
.nav-wrap { gap: 24px; }.main-nav { gap: 22px; }
.section { padding-top: 80px; padding-bottom: 80px; }
.hero { padding-top: 84px; padding-bottom: 64px; }
.case-description { margin: 20px 0 24px; }.case-description dt { font-size: 13px; font-weight: 600; margin-top: 16px; }.case-description dd { margin: 5px 0 0; font-size: 14px; color: var(--color-text-secondary); line-height: 1.8; }
.demo-workspace { border-top: 1px solid var(--color-border); padding-top: 20px; }.workspace-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 8px; }.workspace-heading h4,.workspace-heading h3 { margin: 0; font-size: 16px; }
.badge-neutral { color: var(--color-text-secondary); background: var(--color-surface-muted); }.badge-warn { color: #805000; background: #fff4dc; }
.helper,.flow-detail .helper { font-size: 12px; color: var(--color-text-secondary); line-height: 1.7; margin: 8px 0 16px; }
form { display: grid; gap: 14px; }label { display: grid; gap: 6px; font-size: 12px; color: var(--color-text-secondary); font-weight: 500; min-width: 0; }
input,select,textarea { width: 100%; min-width: 0; font: inherit; font-size: 14px; color: var(--color-text); padding: 10px 12px; border: 1px solid #cbd2dc; border-radius: var(--radius-sm); background: #fff; min-height: 42px; }textarea { resize: vertical; line-height: 1.65; }input::placeholder,textarea::placeholder { color: #788394; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }form .button { justify-self: start; margin-top: 4px; }
.button-secondary { border-color: #cbd2dc; background: #fff; color: var(--color-text); }.button-secondary:hover { background: var(--color-surface-muted); }.text-button { border: 0; background: none; color: var(--color-primary); padding: 6px 0; font-size: 12px; text-align: left; }
.actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }.actions .button { font-size: 12px; min-height: 38px; padding: 0 12px; }button:disabled { cursor: not-allowed; opacity: .48; transform: none; }
.feedback { color: var(--color-primary) !important; font-size: 13px !important; white-space: pre-line; overflow-wrap: anywhere; margin-top: 12px !important; }.feedback:empty { display: none; }.feedback.error { color: var(--color-danger) !important; }
.state-line { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; font-size: 13px; }.state-line strong { font-weight: 600; }
.table-wrap { overflow: auto; margin-top: 16px; border: 1px solid var(--color-border); border-radius: 6px; }table { border-collapse: collapse; width: 100%; font-size: 12px; }th,td { padding: 9px 10px; text-align: left; border-bottom: 1px solid var(--color-border); overflow-wrap: anywhere; }th { background: #f7f8fa; font-weight: 600; }tr:last-child td { border-bottom: 0; }
.performance-layout { margin-top: 40px; }.criteria { max-width: 920px; }.criteria h3,.record-panel h3 { font-size: 18px; margin-top: 0; }
.criteria details { border-bottom: 1px solid var(--color-border); padding: 16px 0; }.criteria summary { cursor: pointer; font-size: 14px; font-weight: 600; }.criteria p { font-size: 13px; color: var(--color-text-secondary); line-height: 1.8; }.criteria .case-number { color: var(--color-primary); margin-right: 8px; }
.record-panel { padding: 28px; border: 1px solid var(--color-border); background: #fff; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); min-width: 0; }
.method-note { margin-top: 28px; font-size: 13px; color: var(--color-text-secondary); line-height: 1.8; }.method-note summary { cursor: pointer; color: var(--color-text); font-weight: 600; }.method-note p { max-width: 980px; }
.evidence-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }.activity-list { margin: 20px 0 0; padding: 0; list-style: none; max-height: 405px; overflow: auto; }.activity-list li { padding: 14px 0; border-bottom: 1px solid var(--color-border); }.activity-list time { display: block; font-size: 11px; color: var(--color-text-muted); }.activity-list strong { font-size: 13px; }.activity-list p { margin: 4px 0; font-size: 12px; overflow-wrap: anywhere; white-space: pre-line; color: var(--color-text-secondary); }.empty-state { font-size: 13px; color: var(--color-text-secondary); }
.cta-section { margin-top: 64px; }.metric-foot { line-height: 1.6; }.skip-link { position: fixed; top: -100px; left: 16px; background: white; z-index: 100; padding: 12px; }.skip-link:focus { top: 10px; }*:focus-visible { outline: 3px solid #9bacf5; outline-offset: 3px; }.toast { max-width: min(480px,calc(100% - 48px)); }
@media(max-width:1060px) { .nav-wrap { flex-wrap: wrap; gap: 12px 20px; }.main-nav { gap: 18px; }.brand-copy strong { font-size: 14px; }.header-action { padding: 0 12px; } }
@media(max-width:960px) { .hero { grid-template-columns: 1fr; gap: 40px; }.performance-layout { grid-template-columns: 1fr; }.evidence-grid { grid-template-columns: 1fr; }.main-nav { gap: 14px; }.header-action { display: none; } }
@media(max-width:680px) { .section { padding: 56px 0; }.hero { padding-top: 48px; }.hero h1 { font-size: 32px; }.nav-wrap { flex-wrap: nowrap; }.main-nav { gap: 0; }.record-panel { padding: 22px 18px; }.form-grid { grid-template-columns: 1fr; }.hero-actions { gap: 16px; flex-wrap: wrap; }.workspace-heading { flex-wrap: wrap; }.detail-meta { flex-wrap: wrap; gap: 8px; }.metrics-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }.metric-card { padding: 16px 12px; }.metric-card>strong { font-size: 25px; }.metric-label { font-size: 11px; }.metric-unit { font-size: 12px; }.panel-topline { gap: 12px; padding: 20px 18px; }.panel-topline strong { font-size: 14px; }.workflow-canvas { padding: 22px 16px; }.flow-detail h3 { font-size: 20px; }.cta-section { margin-top: 40px; }.brand-copy small { font-size: 9px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }*,*::before,*::after { transition: none !important; animation: none !important; } }

dialog { width: min(760px,calc(100% - 32px)); max-height: 88vh; overflow:auto; padding:28px; border:1px solid var(--color-border); border-radius:var(--radius-lg); color:var(--color-text); box-shadow:var(--shadow-md); }dialog::backdrop { background:rgba(31,41,51,.35); }dialog h3 { margin:0; }#export-content { font-family:ui-monospace,monospace; font-size:12px; }

.upload-panel { margin: 0 0 20px; padding: 16px 18px; border: 1px dashed #cbd2dc; border-radius: var(--radius-md); background: #fafbfc; }
.upload-panel > strong { font-size: 14px; }
.upload-panel .helper { margin-top: 6px; }
progress { width: 100%; height: 8px; accent-color: var(--color-primary); }

.zeroshot { margin-top: 40px; }
.zeroshot h4 { margin: 0; font-size: 15px; }.zs-history { margin-top: 28px; }.zs-history h4 { margin-bottom: 4px; }
.zs-legend { display: block; margin-bottom: 8px; font-size: 12px; color: var(--color-text-secondary); font-weight: 500; }
.zs-tasks { display: grid; grid-template-columns: repeat(auto-fill,minmax(190px,1fr)); gap: 8px 16px; }
label.check { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--color-text); font-weight: 400; }
label.check small { color: var(--color-text-muted); font-size: 11px; margin-left: 2px; }
input[type=checkbox] { width: auto; min-width: 0; min-height: 0; padding: 0; accent-color: var(--color-primary); flex: none; }
.zs-reuse { align-self: end; min-height: 42px; line-height: 1.5; }
.zs-result { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--color-border); }
th.num, td.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
tr.avg td { background: #f7f8fa; }
#zs-log { margin: 8px 0 0; padding: 10px 12px; max-height: 220px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; font: 12px/1.6 ui-monospace,monospace; background: var(--color-surface-muted); border-radius: var(--radius-sm); }
@media(max-width:680px) { .zs-tasks { grid-template-columns: repeat(2,minmax(0,1fr)); } }

/* ---- 三个独立模块页面（功能测试 / 性能指标 / 测试记录）：无站点头部，内容占满可用宽度 ---- */
body.embed-page { background: var(--color-bg); }
body.embed-page .section { padding: 32px 0 56px; }
.embed-shell { width: min(1600px, 100% - 48px); max-width: 100%; margin: 0 auto; box-sizing: border-box; }
@media(max-width:680px) { .embed-shell { width: min(100% - 32px, 1600px); } }
