:root {
  --navy-950: #a0542c; --navy-900: #8f4823; --navy-800: #d0703f; --navy-100: #fbeadf;
  --navy: #d97642; --navy-h: #bc5a2e; --navy-tint: #fbeadf;
  --ink: #211f1c; --muted: #6e6a62; --paper: #fcfbf9; --card: #ffffff; --soft: #f0ede7;
  --line: #e8e4dc; --line-strong: #dad4c8; --gold: #8a6a1f; --gold-soft: #fbf5e8;
  --green: #157347; --green-soft: #e4f5eb; --amber: #9a5b00; --amber-soft: #fcf0dc;
  --red: #b42318; --red-soft: #fbeae8; --blue: #1d4ed8; --blue-soft: #e5edfb;
  --st-draft: #4b5563; --st-draft-bg: #f1f2f4;
  --st-review: #1d4ed8; --st-review-bg: #e5edfb;
  --st-reject: #b42318; --st-reject-bg: #fbeae8;
  --st-run: #157347; --st-run-bg: #e4f5eb;
  --st-due: #9a5b00; --st-due-bg: #fcf0dc;
  --st-closed: #475467; --st-closed-bg: #edf0f4;
  --st-done: #5a40c8; --st-done-bg: #eee9fb;
  --st-report: #0e7490; --st-report-bg: #e0f5f9;
  --serif: "Forefind Han Sans","PingFang SC", "Microsoft YaHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC", -apple-system, "Segoe UI", sans-serif; /* 2026-10-16 标题改常用中文字体（原 Georgia 英文优先+宋体回退混排不协调） */
  --shadow: 0 1px 2px rgba(33, 31, 28, .04); --radius: 10px; --topbar: 60px;
}
* { box-sizing: border-box; }
html { background: var(--paper); }
body { margin: 0; color: var(--ink); background: var(--paper); font: 14px/1.65 "Forefind Han Sans",-apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; -webkit-font-smoothing: antialiased; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: var(--navy); text-decoration: none; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .48; }
:focus-visible { outline: 2px solid rgba(217, 118, 66, .32); outline-offset: 2px; }
[hidden] { display: none !important; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.serif { font-family: "Forefind Han Sans",var(--serif); }
.mobile-only, .mobile-filters, .mobile-design-head { display: none; }

.topbar { height: var(--topbar); padding: 0 max(24px, calc((100vw - 1180px)/2)); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: var(--paper); position: sticky; top: 0; z-index: 40; } /* 内容与 page-shell(1080) 同宽对齐（2026-09-23，对齐广场形态） */
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); }
.brand .logo { width: 26px; height: 26px; object-fit: contain; }
.brand-name { font-family: "Forefind Han Sans",var(--serif); font-size: 16px; font-weight: 600; letter-spacing: 1.5px; color: var(--ink); }
.brand-name b { font-weight: 600; font-size: 12px; letter-spacing: .4px; color: var(--muted); }
.topbar-right { position: relative; display: flex; align-items: center; gap: 10px; }
.slogan { margin-right: 10px; font-family: "Forefind Han Sans",var(--serif); color: var(--navy); font-size: 12px; letter-spacing: 2px; white-space: nowrap; }
/* 界面契约 §0.3.7：固定文案禁句中截断——短语内 nowrap，换行只能发生在短语之间（标点边界） */
.phrase { white-space: nowrap; display: inline-block; }
.foot span { white-space: nowrap; }
.icon-btn, .avatar-btn, .balance-chip { border: 1px solid var(--line); background: var(--card); color: var(--navy); }
.icon-btn { position: relative; width: 36px; height: 36px; border-radius: 8px; }
.avatar-btn { width: 36px; height: 36px; border-radius: 50%; background: var(--navy); border-color: var(--navy); color: #f4f6fa; font-weight: 600; }
.balance-chip { border-radius: 999px; padding: 7px 12px; font-size: 13px; font-weight: 500; }
.icon-btn:hover, .balance-chip:hover { border-color: var(--navy); }
.notice-dot { position: absolute; right: 5px; top: 5px; width: 8px; height: 8px; border-radius: 50%; background: #c2402a; box-shadow: 0 0 0 2px var(--paper); }
.popover { position: absolute; right: 0; top: 48px; width: 320px; padding: 8px; background: var(--card); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 24px rgba(33, 31, 28, .08); z-index: 50; }
.account-menu { width: 190px; }
.popover button { width: 100%; padding: 9px 12px; border: 0; border-radius: 7px; background: transparent; color: var(--ink); text-align: left; }
.popover button:hover { background: var(--soft); }
.popover-head { display: flex; align-items: center; justify-content: space-between; padding: 8px 10px 10px; color: var(--muted); font-size: 13px; border-bottom: 1px solid var(--line); }
.popover-head button { width: auto; padding: 2px 5px; color: var(--navy); font-size: 12px; }
.notice-item { display: grid !important; grid-template-columns: 32px 1fr; gap: 9px; }
.notice-items { max-height: 380px; overflow-y: auto; }
.notice-item.unread { background: var(--navy-tint); }
.notice-item span:last-child { display: flex; flex-direction: column; }
.notice-item b, .notice-item small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.notice-item small { color: var(--muted); }
.notice-icon { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; color: var(--navy); background: var(--navy-tint); font-size: 12px; }
.notice-empty { margin: 0; padding: 24px 12px; color: var(--muted); text-align: center; }
.popover-foot { padding: 8px 10px 3px; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 11px; border-top: 1px solid var(--line); }
.popover-foot button { width: auto; padding: 3px 0; color: var(--navy); font-size: 11px; }

main { min-height: calc(100vh - var(--topbar) - 48px); }
.foot { min-height: 48px; padding: 14px 32px; border-top: 1px solid var(--line); color: var(--muted); background: var(--soft); font-size: 11px; ;display:flex;align-items:center;justify-content:center;gap:18px; } /* 底部文字居中（2026-09-23） */
.page-shell { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 40px 0 72px; } /* 与调研广场同宽（2026-09-23） */
.eyebrow, .section-kicker { color: var(--muted); font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.back-link { display: inline-flex; margin-bottom: 24px; color: var(--muted); font-size: 13px; }
.back-link:hover { color: var(--navy); }
.subtle { color: var(--muted); }
.page-heading, .manage-head, .result-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 28px; }
.page-heading h1, .page-heading h2, .manage-head h1, .result-head h1 { margin: 4px 0 4px; color: var(--ink); font: 600 clamp(24px, 2.6vw, 32px)/1.25 "Forefind Han Sans",var(--serif); letter-spacing: 1px; }
.page-heading p { margin: 0; color: var(--muted); }
.head-actions { display: flex; gap: 10px; }

.btn { display: inline-flex; justify-content: center; align-items: center; gap: 7px; border: 1px solid var(--navy); border-radius: 8px; padding: 9px 16px; color: #f4f6fa; background: var(--navy); font-weight: 600; transition: background-color .18s ease, border-color .18s ease; }
.btn:hover:not(:disabled) { background: var(--navy-h); border-color: var(--navy-h); }
.btn.secondary { color: var(--navy); background: var(--card); border-color: var(--line-strong); }
.btn.secondary:hover:not(:disabled) { background: var(--navy-tint); border-color: var(--navy); }
.btn.danger { background: var(--red); border-color: var(--red); }
.btn.danger:hover:not(:disabled) { background: #992015; border-color: #992015; }
.btn.danger-ghost { color: var(--red); background: var(--card); border-color: #efcbc5; }
.btn.small { padding: 7px 12px; font-size: 13px; }
.btn.block { width: 100%; }
.text-action { padding: 2px 4px; color: var(--navy); background: none; border: 0; font-size: 13px; }
.danger-text { color: var(--red); }
.panel { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.panel-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.panel-title h2 { margin: 3px 0 0; color: var(--ink); font-family: "Forefind Han Sans",var(--serif); font-size: 19px; font-weight: 600; letter-spacing: .5px; }
.panel-title > span { color: var(--muted); font-size: 12px; }

/* 消息中心 */
.messages-page { max-width: 100%; } /* 随 page-shell(1180)（2026-09-23 三端同宽） */
.message-tabs { display: flex; gap: 6px; margin: 0 0 14px; }
.message-tabs button { padding: 7px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: var(--card); }
.message-tabs button[aria-selected="true"] { color: #f4f6fa; background: var(--navy); border-color: var(--navy); }
.message-panel { overflow: hidden; }
.message-list { display: grid; }
.message-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; border-bottom: 1px solid var(--line); }
.message-card:last-child { border-bottom: 0; }
.message-card.unread { background: linear-gradient(90deg, var(--navy-tint), rgba(237,241,246,.18)); }
.message-card.unread::before { content: ""; position: absolute; left: 0; top: 22px; width: 3px; height: 28px; border-radius: 0 3px 3px 0; background: var(--navy); }
.message-open { min-width: 0; padding: 18px 20px; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; border: 0; color: var(--ink); background: transparent; text-align: left; }
.message-open:hover { background: rgba(217,118,66,.05); }
.message-copy { min-width: 0; display: grid; gap: 2px; }
.message-meta { display: flex; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 11px; }
.message-meta b { color: var(--navy); }
.message-copy > strong { font-size: 14px; }
.message-copy > small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.message-copy > em { margin-top: 4px; color: var(--navy); font-size: 11px; font-style: normal; }
.message-delete { margin-right: 16px; padding: 6px 9px; border: 0; color: var(--muted); background: transparent; font-size: 12px; }
.message-delete:hover { color: var(--red); }
.message-panel .empty-state { padding: 48px 24px; text-align: center; }
.channel-rules { margin-top: 18px; padding: 22px; }
.channel-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 18px; }
.channel-grid > div { padding: 12px; display: grid; gap: 2px; border-radius: 8px; background: var(--soft); }
.channel-grid span, .channel-rules > p { color: var(--muted); font-size: 12px; }
.channel-rules > p { margin: 14px 0 0; }

/* 个人中心 */
.profile-page { max-width: 100%; } /* 随 page-shell(1180)（2026-09-23 三端同宽） */
.profile-tabs { display: flex; gap: 4px; margin: -8px 0 18px; padding: 4px; overflow-x: auto; border-radius: 10px; background: var(--soft); }
.profile-tabs button { flex: 1 0 auto; padding: 8px 13px; border: 0; border-radius: 7px; color: var(--muted); background: transparent; white-space: nowrap; }
.profile-tabs button[aria-current="page"] { color: var(--navy); background: var(--card); box-shadow: var(--shadow); font-weight: 600; }
.profile-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.profile-section, .consent-panel, .answer-history { padding: 24px; }
.profile-section .panel-title, .consent-panel .panel-title, .answer-history .panel-title { margin-bottom: 20px; }
.profile-section textarea { width: 100%; resize: vertical; border: 1px solid var(--line-strong); border-radius: 8px; padding: 10px 12px; color: var(--ink); background: var(--card); }
.consent-list { display: grid; gap: 0; border-top: 1px solid var(--line); }
.consent-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--line); }
.consent-list strong { margin-right: 9px; }.consent-list p { margin: 5px 0 2px; color: var(--muted); }.consent-list small { color: var(--muted); }
.consent-history { margin-top: 24px; }.consent-history h3 { font: 600 17px "Forefind Han Sans",var(--serif); }
.consent-history p { display: grid; grid-template-columns: 140px 1fr; margin: 0; padding: 7px 0; border-bottom: 1px dashed var(--line); }.consent-history time { color: var(--muted); }
.answer-history-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 17px 0; border-top: 1px solid var(--line); }
.answer-history-row > div:first-child { display: grid; }.answer-history-row > div:first-child > span { color: var(--navy); }.answer-history-row small { color: var(--muted); }
.answer-review { grid-column: 1 / -1; padding: 14px; display: grid; gap: 9px; border-radius: 8px; background: var(--soft); }
.answer-review > div { display: grid; gap: 2px; }.answer-review > div span { color: var(--muted); }.answer-review p { margin: 4px 0 0; }.answer-review p strong { margin-right: 8px; }
.dsar-list { margin-top: 20px; border-top: 1px solid var(--line); }.dsar-list p { display: grid; margin: 0; padding: 10px 0; border-bottom: 1px solid var(--line); }.dsar-list span { color: var(--muted); font-size: 12px; }
.closure-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-bottom: 16px; }.closure-summary span { padding: 10px; border-radius: 8px; background: var(--soft); color: var(--muted); font-size: 11px; }.closure-summary b { display: block; color: var(--ink); font-size: 15px; }
.closure-card ul { padding-left: 20px; color: var(--red); }.closure-card > p { color: var(--muted); }
progress { width: 100%; height: 6px; overflow: hidden; border: 0; border-radius: 999px; background: var(--soft); }
progress::-webkit-progress-bar { background: var(--soft); }
progress::-webkit-progress-value { background: var(--navy); border-radius: 999px; }
progress::-moz-progress-bar { background: var(--navy); }

/* 登录 */
.login-wrap { min-height: calc(100vh - var(--topbar) - 48px); display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(440px, .85fr); }
.login-hero { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: center; padding: clamp(52px, 7vw, 108px); color: #fbf5ea; background: var(--navy-950); }
.login-hero::after { content: ""; position: absolute; width: 480px; height: 480px; right: -210px; bottom: -250px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.02), 0 0 0 150px rgba(255,255,255,.014); }
.hero-logo { width: 64px; height: 64px; padding: 8px; object-fit: contain; border-radius: 12px; border: 1px solid rgba(255,255,255,.28); background: #fff; margin-bottom: 32px; }
.login-hero .eyebrow { color: rgba(251,245,234,.62); }
.login-hero h1 { max-width: 640px; margin: 10px 0 16px; font: 600 clamp(32px, 4.4vw, 56px)/1.18 "Forefind Han Sans",var(--serif); letter-spacing: 1px; }
.login-hero > p { max-width: 590px; margin: 0; color: #f3e3cf; font-size: 16px; }
.value-steps { margin: 48px 0 0; padding: 0; display: flex; gap: 28px; counter-reset: steps; list-style: none; }
.value-steps li { counter-increment: steps; max-width: 150px; color: #efdcc5; font-size: 13px; }
.value-steps li::before { content: "0" counter(steps); display: block; margin-bottom: 6px; color: rgba(244,246,250,.58); font-size: 11px; letter-spacing: .08em; }
.login-panel { display: grid; place-items: center; padding: 48px; background: var(--paper); }
.login-card { width: min(410px, 100%); }
.login-card h2 { margin: 5px 0 4px; color: var(--ink); font: 600 30px/1.25 "Forefind Han Sans",var(--serif); letter-spacing: .5px; }
.login-card > .subtle { margin: 0 0 28px; font-size: 13px; }
.legal-page { max-width: 880px; padding-top: 42px; padding-bottom: 64px; }
.legal-card { margin-top: 18px; padding: clamp(28px, 5vw, 58px); }
.legal-card h1 { margin: 8px 0 4px; color: var(--ink); font: 600 clamp(28px, 4.4vw, 42px)/1.2 "Forefind Han Sans",var(--serif); letter-spacing: 1px; }
.legal-card h2 { margin: 30px 0 8px; color: var(--ink); font-size: 18px; }
.legal-card p { color: var(--muted); line-height: 1.8; }
.legal-date { margin-top: 0; font-size: 13px; }
.legal-contact { margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--line); }
.field { display: flex; flex-direction: column; gap: 6px; margin: 0 0 16px; }
.field > span, fieldset legend { color: var(--ink); font-size: 13px; font-weight: 600; }
.field small { min-height: 16px; color: var(--muted); font-size: 11px; }
.field input, .field select, .composer textarea { width: 100%; border: 1px solid var(--line-strong); border-radius: 8px; padding: 11px 12px; color: var(--ink); background: var(--card); }
.field input:focus, .composer textarea:focus { border-color: var(--navy); outline: 2px solid rgba(217,118,66,.14); }
.phone-input, .suffix-input { display: flex; align-items: center; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--card); }
.phone-input:focus-within, .suffix-input:focus-within { border-color: var(--navy); outline: 2px solid rgba(217,118,66,.14); }
.phone-input b, .suffix-input b { padding: 0 12px; color: var(--muted); font-size: 13px; }
.phone-input input, .suffix-input input { border: 0; outline: 0 !important; box-shadow: none; }
.field-error, .form-message.error { color: var(--red) !important; }
.form-message { min-height: 22px; color: var(--muted); font-size: 12px; }
.form-message.success { color: var(--green); }

/* 工作台 */
.workbench-shell { display: grid; grid-template-columns: 210px 1fr; gap: 48px; }
.workbench-nav { position: sticky; top: calc(var(--topbar) + 28px); height: fit-content; }
.workbench-nav h1 { margin: 4px 0 24px; color: var(--ink); font: 600 24px/1.3 "Forefind Han Sans",var(--serif); letter-spacing: 1px; }
.workbench-nav nav { display: flex; flex-direction: column; gap: 4px; }
.filter-btn { display: flex; align-items: center; justify-content: space-between; padding: 8px 11px; border: 0; border-radius: 8px; color: var(--muted); background: transparent; text-align: left; }
.filter-btn b { min-width: 24px; padding: 1px 7px; border-radius: 999px; background: var(--soft); color: var(--muted); font-size: 11px; text-align: center; }
.filter-btn:hover, .filter-btn.active { color: var(--ink); background: var(--soft); }
.filter-btn.active { font-weight: 600; }
.survey-list { display: grid; gap: 10px; }
.survey-card { padding: 20px 24px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); transition: background-color .18s; }
.survey-card:hover { background: var(--soft); }
.survey-card-top { display: flex; justify-content: space-between; gap: 20px; align-items: center; }
.card-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 7px; }
.survey-card h3 { margin: 8px 0 0; color: var(--ink); font-size: 16.5px; font-weight: 600; }
.survey-meta { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 11px; color: var(--muted); font-size: 12px; }
.survey-meta span + span::before { content: "·"; margin-right: 16px; }
.status-badge { display: inline-flex; padding: 2px 9px; border-radius: 999px; color: var(--navy); background: var(--navy-tint); font-size: 12.5px; font-weight: 500; letter-spacing: .3px; }
.status-badge.draft { color: var(--st-draft); background: var(--st-draft-bg); }
.status-badge.pending { color: var(--st-review); background: var(--st-review-bg); }
.status-badge.finalized { color: var(--st-due); background: var(--st-due-bg); }
.status-badge.active { color: var(--st-run); background: var(--st-run-bg); }
.status-badge.completed { color: var(--st-done); background: var(--st-done-bg); }
.status-badge.report { color: var(--st-report); background: var(--st-report-bg); }
.status-badge.rejected, .status-badge.revoked { color: var(--st-reject); background: var(--st-reject-bg); }
.status-badge.expired { color: var(--st-due); background: var(--st-due-bg); }
.status-badge.closed, .status-badge.muted { color: var(--st-closed); background: var(--st-closed-bg); }
.quota-compact { margin-top: 16px; }
.quota-compact > div { display: flex; justify-content: space-between; margin-bottom: 6px; color: var(--muted); font-size: 12px; }
.draft-hint { margin: 14px 0 0; color: var(--muted); font-size: 13px; }
.empty-state { padding: 80px 22px; border: 1px dashed var(--line-strong); border-radius: var(--radius); text-align: center; color: var(--muted); background: transparent; }
.empty-state h3 { margin: 10px 0 6px; color: var(--ink); font-family: "Forefind Han Sans",var(--serif); font-size: 19px; font-weight: 600; letter-spacing: 1px; }
.empty-state p { margin: 0 0 18px; }
.empty-mark { width: 46px; height: 46px; margin: auto; display: grid; place-items: center; border-radius: 50%; color: var(--muted); background: var(--soft); font-size: 20px; }
.inline-alert { padding: 9px 11px; border-radius: 6px; font-size: 12px; }
.inline-alert.error { color: var(--red); background: var(--red-soft); }
.inline-alert.warning { color: var(--amber); background: var(--amber-soft); }

/* 对话设计 */
.design-shell { width: min(1180px, calc(100% - 48px)); margin: 0 auto; min-height: calc(100vh - var(--topbar)); display: grid; grid-template-columns: minmax(360px, 1fr) 440px; background: var(--paper); } /* 2026-10-15 两栏化+1180 对齐；同日业主调比：左聊天收窄/右设定区加宽 */
.draft-panel { padding: 24px 20px; overflow-y: auto; max-height: calc(100vh - var(--topbar)); }
.history-strip { flex: none; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 10px 18px; border-top: 1px solid var(--line); background: var(--soft); font-size: 13px; }
.history-strip .hs-meta { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.history-strip .hs-meta b { font-family: "Forefind Han Sans",var(--serif); font-size: 14px; font-weight: 600; letter-spacing: .3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 320px; }
.history-strip .hs-meta small { color: var(--muted, #8a94a3); font-size: 12px; }
.history-strip .hs-ver { font-size: 12px; color: var(--muted, #8a94a3); white-space: nowrap; }
.history-strip .history-status { margin-left: auto; }
.history-item { display: flex; flex-direction: column; gap: 2px; padding: 10px; margin-bottom: 8px; border-radius: 8px; font-size: 13px; }
.history-item small { color: var(--muted); }
.history-item.active { background: var(--navy-tint); }
.history-status { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.chat-panel { min-width: 0; display: flex; flex-direction: column; height: calc(100vh - var(--topbar)); background: var(--paper); }
.topic-boundary { padding: 7px 18px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 12px; text-align: center; background: var(--paper); } /* 2026-10-15 业主：大一号 */
.system-alert { display: flex; gap: 10px; padding: 10px 18px; color: var(--red); background: var(--red-soft); font-size: 12px; }
.chat-stream { flex: 1; overflow-y: auto; padding: 28px clamp(18px, 4vw, 54px); }
.chat-turn { display: flex; margin-bottom: 16px; }
.chat-turn.user { justify-content: flex-end; }
.chat-bubble { max-width: min(78%, 680px); padding: 12px 16px; white-space: pre-wrap; border: 1px solid var(--line); border-radius: 10px 10px 10px 3px; color: var(--ink); background: var(--card); }
.chat-turn.user .chat-bubble { color: #f4f6fa; background: var(--navy); border-color: var(--navy); border-radius: 10px 10px 3px 10px; }
.chat-bubble .ai-badge { display: flex; margin-top: 9px; }
.ai-badge { display: inline-flex; width: fit-content; padding: 2px 8px; border: 1px solid #e6d9b4; border-radius: 999px; color: var(--gold); background: var(--gold-soft); font-size: 10.5px; font-weight: 600; letter-spacing: .3px; }
.composer { padding: 12px clamp(18px, 3.3vw, 44px) 16px; border-top: 1px solid var(--line); background: var(--paper); }
.quick-actions { display: flex; gap: 7px; overflow-x: auto; margin-bottom: 8px; }
.quick-actions button { padding: 4px 10px; white-space: nowrap; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: var(--card); font-size: 11.5px; }
.quick-actions button:hover { border-color: var(--navy); color: var(--navy); }
.composer textarea { resize: none; min-height: 78px; }
.composer textarea:disabled { background: var(--soft); }
.composer-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; gap: 14px; }
.composer-foot span { color: var(--muted); font-size: 11px; }
.draft-panel { border-left: 1px solid var(--line); background: var(--soft); }
.draft-head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 14px; }
.draft-head h2 { margin: 3px 0 0; font-family: "Forefind Han Sans",var(--serif); font-size: 17px; font-weight: 600; letter-spacing: .5px; }
.draft-head h2 span { color: var(--muted); font-size: 12px; font-weight: 500; }
.draft-empty { padding: 44px 18px; border: 1px dashed var(--line); border-radius: 10px; color: var(--muted); text-align: center; font-size: 13px; }
.question-card { margin-bottom: 10px; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: var(--card); }
.question-card header { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 11px; }
.question-card header .ai-badge { margin-left: auto; }
.question-type { padding: 1px 7px; border: 1px solid var(--line); border-radius: 5px; color: var(--muted); background: transparent; }
.question-card > p { margin: 9px 0; color: var(--ink); font-size: 13.5px; font-weight: 500; }
.question-card ul { margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 5px; list-style: none; }
.question-card li, .open-preview { padding: 3px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: var(--card); font-size: 11px; }
.question-card footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 9px; padding-top: 7px; border-top: 1px solid var(--line); }
.question-card.locked { background: var(--paper); }
.lock-line { margin-top: 8px; color: var(--muted); font-size: 10px; }
.finalize-card, .settings-card { margin-top: 16px; padding: 16px; border: 1px solid #efc9b2; border-radius: 10px; background: var(--navy-tint); }
.finalize-card h3, .settings-card h3 { margin: 3px 0 6px; font-family: "Forefind Han Sans",var(--serif); font-weight: 600; letter-spacing: .5px; }
.finalize-card p { color: var(--muted); font-size: 12px; }
.locked-banner { margin: 14px 0; padding: 10px; border-radius: 6px; color: var(--amber); background: var(--amber-soft); font-size: 11px; }
.settings-card { background: var(--card); }
.settings-card fieldset { margin: 15px 0; padding: 0; border: 0; }
.settings-card legend { margin-bottom: 7px; }
.segmented { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.segmented input { position: absolute; opacity: 0; }
.segmented span { display: flex; flex-direction: column; padding: 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); cursor: pointer; }
.segmented small { color: var(--muted); font-size: 9px; }
.segmented input:checked + span { border-color: var(--navy); box-shadow: inset 0 0 0 1px var(--navy); background: var(--navy-tint); }
.form-grid.two { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.quota-editor { padding-top: 12px !important; border-top: 1px solid var(--line) !important; }
.quota-editor > p { margin: -2px 0 8px; color: var(--muted); font-size: 11px; }
.quota-tags { display: flex; gap: 5px; margin-bottom: 10px; }
.quota-tags span { padding: 3px 7px; border-radius: 999px; color: var(--navy); background: var(--navy-tint); font-size: 10px; }
.capacity-ok { display: flex; gap: 8px; padding: 9px; border-radius: 8px; color: var(--green); background: var(--green-soft); }
.capacity-ok div { display: flex; flex-direction: column; }
.capacity-ok small { color: var(--green); font-size: 10px; }
.estimate-box { display: flex; flex-direction: column; padding: 10px; border-radius: 8px; color: var(--green); background: var(--green-soft); font-size: 11px; }
.estimate-box b { font-size: 13px; }
.settings-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.typing { display: flex; gap: 4px; }
.typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--muted); animation: pulse 1s infinite alternate; }
.typing i:nth-child(2) { animation-delay: .2s; }.typing i:nth-child(3) { animation-delay: .4s; }
.error-bubble { display: flex; flex-direction: column; color: var(--red); border-color: #efcbc5; }
@keyframes pulse { to { opacity: .25; transform: translateY(-2px); } }

/* 进行中管理 */
.heading-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 10px; color: var(--muted); font-size: 12px; }
.review-wait { display: flex; align-items: center; gap: 24px; padding: 38px; }
.review-wait h2 { margin: 0 0 6px; font-family: "Forefind Han Sans",var(--serif); font-weight: 600; letter-spacing: .5px; }
.review-wait p { margin: 0 0 18px; color: var(--muted); }
.state-illustration { width: 72px; height: 72px; display: grid; place-items: center; border-radius: 50%; background: var(--amber-soft); font-size: 30px; }
.manage-grid { display: grid; grid-template-columns: 1.35fr .65fr; gap: 14px; }
.progress-panel, .countdown-panel { padding: 22px; }
.progress-panel .panel-title > b { color: var(--navy); font-size: 26px; }
.progress-panel > p, .countdown-panel > p { margin: 9px 0 0; color: var(--muted); font-size: 12px; }
.countdown-panel { color: #fbf5ea; background: var(--navy-950); border-color: var(--navy-950); }
.countdown-panel .section-kicker { color: rgba(244,246,250,.58); }
.countdown-panel h2 { margin: 5px 0; font: 600 24px/1.25 "Forefind Han Sans",var(--serif); letter-spacing: .5px; }
.countdown-panel > p { color: #c9d4e0; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 14px 0; }
.metric-grid article { padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: var(--card); }
.metric-grid span { display: block; color: var(--muted); font-size: 11px; }
.metric-grid b { display: block; margin-top: 5px; color: var(--ink); font-size: 22px; }
.quota-panel { padding: 22px; }
.quota-toggle { border: 0; color: var(--navy); background: transparent; }
.quota-layers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 18px; }
.quota-layers article { padding: 13px; border: 1px solid var(--line); border-radius: 8px; }
.quota-layers article > div { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 8px; font-size: 12px; }
.quota-layers small { display: block; margin-top: 5px; color: var(--muted); font-size: 10px; }
.completion-panel { margin-top: 14px; padding: 22px; border-color: #ead3a7; background: var(--st-due-bg); }
.completion-panel.attention { border-color: #efcbc5; background: var(--red-soft); }
.completion-panel h2 { margin: 5px 0; }
.completion-panel p { color: var(--muted); }
.danger-zone { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 22px; padding: 18px 0; border-top: 1px solid var(--line); }
.danger-zone p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.danger-zone > div:last-child { display: flex; gap: 8px; }

/* 结果 */
.sample-summary { display: grid; grid-template-columns: auto auto; gap: 3px 14px; padding: 14px 17px; border: 1px solid var(--line); border-radius: 10px; background: var(--card); font-size: 12px; }
.sample-summary small { grid-column: 1 / -1; color: var(--muted); }
.result-tabs { display: flex; gap: 24px; border-bottom: 1px solid var(--line); }
.result-tabs button { padding: 11px 2px; border: 0; border-bottom: 2px solid transparent; color: var(--muted); background: none; font-weight: 500; }
.result-tabs button.active { color: var(--ink); border-bottom-color: var(--navy); }
#resultContent { min-height: 360px; padding-top: 22px; }
.result-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 16px; }
.funnel { color: var(--muted); font-size: 12px; text-align: right; }
.funnel small { display: block; font-size: 10px; }
.result-questions { display: grid; gap: 12px; }
.result-card { padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); }
.result-card header { display: flex; flex-direction: column; gap: 4px; margin-bottom: 16px; }
.result-card header span { color: var(--muted); font-size: 11px; }
.result-card header b { font-size: 15px; }
.series > b { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 9px; color: var(--muted); font-size: 11px; }
.bar-row { display: grid; grid-template-columns: minmax(110px, .7fr) minmax(160px, 2fr) 90px; gap: 10px; align-items: center; margin: 7px 0; font-size: 12px; }
.bar-row > div { height: 8px; border-radius: 999px; background: var(--soft); overflow: hidden; }
.bar-row i { display: block; height: 100%; border-radius: 999px; background: var(--navy); }
.bar-row strong { color: var(--muted); text-align: right; font-weight: 500; }
.scale-mean { display: flex; justify-content: space-between; margin-top: 12px; padding: 10px 12px; border-radius: 8px; color: var(--muted); background: var(--navy-tint); font-size: 12px; }
.scale-mean b { color: var(--ink); }
.representative { margin-top: 13px; padding-top: 12px; border-top: 1px solid var(--line); }
.representative > b { color: var(--muted); font-size: 11px; }
.representative blockquote { margin: 7px 0 0; padding-left: 10px; border-left: 2px solid var(--line-strong); color: var(--ink); font-size: 12px; line-height: 1.55; }
.comment-list { display: grid; gap: 10px; }
.comment-list article { display: grid; grid-template-columns: 38px 1fr; gap: 12px; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: var(--card); }
.comment-avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: var(--navy); background: var(--navy-tint); font-size: 11px; font-weight: 600; }
.comment-list header { display: flex; justify-content: space-between; color: var(--muted); font-size: 11px; }
.comment-list header b { color: var(--ink); }
.comment-list p { margin: 7px 0; }
.mood { font-size: 18px; }
.report-layout { display: grid; grid-template-columns: 1fr .85fr; gap: 14px; }
.report-card, .disclosure { padding: 26px; }
.report-status-line { display: flex; justify-content: space-between; color: var(--muted); font-size: 11px; }
.report-card h2, .disclosure h2 { margin: 16px 0 6px; }
.report-card p, .disclosure p, .disclosure li { color: var(--muted); font-size: 13px; }
.disclosure { color: #f7ebd9; background: var(--navy-950); border-color: var(--navy-950); }
.disclosure h2 { color: #fff; }
.disclosure p, .disclosure li { color: #c9d4e0; }
/* V1.25 单一合并池：评论中性头像、图表脚注与报告全文阅读排版（serif 标题+分隔线） */
.comment-avatar--neutral { color: var(--muted); background: var(--soft); }
.chart-note { margin: 2px 0 0; color: var(--muted); font-size: 11px; }
.agent-preview { overflow-x: auto; padding: 24px; }
.agent-preview-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.agent-preview table { width: 100%; border-collapse: collapse; text-align: left; }
.agent-preview caption { text-align: left; padding: 12px 0; color: var(--muted); }
.agent-preview th, .agent-preview td { padding: 12px; border-bottom: 1px solid var(--soft); }
@media (max-width: 680px) {
  .agent-preview { padding: 16px; }
  .agent-preview th, .agent-preview td { padding: 10px 6px; }
}
.report-doc-title { margin: 14px 0 4px; font-family: "Forefind Han Sans",var(--serif); font-size: 23px; font-weight: 600; letter-spacing: 1px; color: var(--ink); }
.report-section { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--line); }
.report-section h3 { margin: 0 0 9px; font-family: "Forefind Han Sans",var(--serif); font-size: 16px; font-weight: 600; letter-spacing: .5px; color: var(--ink); }
.report-question { margin-top: 15px; }
.report-question h4 { margin: 0 0 8px; color: var(--ink); font-size: 13.5px; }
.report-analysis { margin: 9px 0 0; color: var(--muted); font-size: 13px; }
.disclosure-ai { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 4px; }

/* 钱包 */
.balance-grid { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.balance-grid article { min-height: 150px; display: flex; flex-direction: column; justify-content: flex-end; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); }
.balance-grid article:first-child { color: #fbf5ea; background: var(--navy-950); border-color: var(--navy-950); }
.balance-grid span { color: var(--muted); font-size: 12px; }
.balance-grid article:first-child span, .balance-grid article:first-child small { color: #c9d4e0; }
.balance-grid b { margin-top: 10px; font: 600 32px/1.1 "Forefind Han Sans",var(--serif); }
.balance-grid small { margin-top: 6px; color: var(--muted); font-size: 10px; }
.balance-grid article.negative { border-color: #efcbc5; background: var(--red-soft); }
.ledger { padding: 22px; }
.ledger-list { margin-top: 15px; }
.ledger-list article { display: grid; grid-template-columns: 86px 1fr auto; gap: 13px; align-items: center; padding: 13px 0; border-top: 1px solid var(--line); }
.ledger-list article > div { display: flex; flex-direction: column; }
.ledger-list small { color: var(--muted); font-size: 11px; }
.ledger-kind { width: fit-content; padding: 3px 7px; border-radius: 6px; color: var(--navy); background: var(--navy-tint); font-size: 10px; font-weight: 600; }
.ledger-kind.out { color: var(--amber); background: var(--amber-soft); }
.ledger-kind.return { color: var(--green); background: var(--green-soft); }
.negative-amount { color: var(--red); }
.ledger-note { margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.amount-presets { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin: 12px 0; }
.amount-presets button { padding: 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); }

/* 反馈、模态与加载 */
.toast-region { position: fixed; right: 22px; top: 80px; z-index: 100; display: grid; gap: 8px; pointer-events: none; }
.toast { max-width: 380px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: var(--card); box-shadow: 0 8px 24px rgba(33,31,28,.08); opacity: 0; transform: translateY(-7px); transition: .2s; }
.toast.show { opacity: 1; transform: translateY(0); }
.toast.success { border-color: #bfe0cd; color: var(--green); }.toast.error { border-color: #efcbc5; color: var(--red); }
.modal-backdrop { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 18px; background: rgba(33, 31, 28, .38); }
.modal { position: relative; width: min(500px, 100%); max-height: calc(100vh - 36px); overflow-y: auto; padding: 26px; border: 1px solid var(--line); border-radius: 10px; background: var(--card); box-shadow: 0 8px 24px rgba(33,31,28,.08); }
.modal h2 { margin: 5px 0 10px; color: var(--ink); font-family: "Forefind Han Sans",var(--serif); font-weight: 600; letter-spacing: .5px; }
.modal-body { color: var(--muted); }
.modal-x { position: absolute; right: 14px; top: 12px; width: 34px; height: 34px; border: 0; border-radius: 8px; color: var(--muted); background: var(--soft); font-size: 20px; }
.modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; }
.confirm-check { display: flex; gap: 8px; align-items: flex-start; padding: 10px; border-radius: 8px; background: var(--soft); font-size: 12px; }
.confirm-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.confirm-summary span { padding: 10px; border-radius: 8px; background: var(--soft); font-size: 11px; }
.confirm-summary b { display: block; margin-top: 3px; color: var(--ink); font-size: 16px; }
.page-loading { min-height: 60vh; display: grid; place-content: center; justify-items: center; color: var(--muted); }
.page-loading span { width: 28px; height: 28px; border: 3px solid var(--line); border-top-color: var(--navy); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.fatal-state { min-height: 60vh; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 24px; text-align: center; }
.fatal-state > div { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; color: var(--red); background: var(--red-soft); font-weight: 800; }
.fatal-state h1 { margin: 14px 0 3px; }.fatal-state p { color: var(--muted); }.fatal-state a { margin-top: 12px; }

@media (max-width: 1180px) {
  .design-shell { width: calc(100% - 28px); grid-template-columns: minmax(320px, 1fr) 380px; }
  .draft-panel { padding: 20px 15px; }
  .slogan { display: none; }
}

@media (max-width: 900px) {
  .login-wrap { grid-template-columns: 1fr; }
  .login-hero { min-height: 360px; padding: 52px; }
  .value-steps { margin-top: 30px; }
  .login-panel { padding: 46px 24px; }
  .design-shell { width: calc(100% - 28px); grid-template-columns: minmax(0, 1fr); }
  .history-strip { display: none; }
  .chat-panel { height: calc(100vh - var(--topbar)); }
  .mobile-design-head { min-height: 48px; display: grid; grid-template-columns: 32px 1fr auto; align-items: center; gap: 8px; padding: 7px 12px; border-bottom: 1px solid var(--line); background: var(--card); }
  .mobile-design-head button { border: 0; color: var(--navy); background: none; font-size: 11px; }
  .draft-panel { position: fixed; inset: var(--topbar) 0 0 0; z-index: 60; max-height: none; transform: translateY(102%); transition: transform .25s ease; border: 0; border-top: 1px solid var(--line); }
  .draft-panel.open { transform: translateY(0); }
  .mobile-only { display: inline-grid; place-items: center; }
  .workbench-shell { grid-template-columns: 1fr; }
  .workbench-nav { display: none; }
  .mobile-filters { display: flex; gap: 7px; margin-bottom: 14px; overflow-x: auto; padding-bottom: 4px; }
  .chip-button { flex: 0 0 auto; padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: var(--card); font-size: 12px; }
  .chip-button.active { color: #f4f6fa; background: var(--navy); border-color: var(--navy); }
}

@media (max-width: 620px) {
  :root { --topbar: 58px; }
  .topbar { padding: 0 14px; }
  .brand .logo { width: 24px; height: 24px; }
  .brand-name { font-size: 14px; }.brand-name b { display: none; }
  .balance-chip { display: none !important; }
  .notice-menu { position: fixed; left: 12px; right: 12px; top: 62px; width: auto; }
  .foot { padding: 12px 16px; }
  .page-shell { width: calc(100% - 28px); padding: 22px 0 48px; }
  .page-heading, .manage-head, .result-head { align-items: flex-start; flex-direction: column; margin-bottom: 20px; }
  .page-heading .btn, .head-actions { width: 100%; }.head-actions .btn { flex: 1; }
  .login-hero { min-height: 250px; padding: 34px 24px; }
  .hero-logo { width: 52px; height: 52px; margin-bottom: 18px; }
  .login-hero h1 { font-size: 30px; }
  .login-hero > p { font-size: 14px; }
  .value-steps { display: none; }
  .login-panel { padding: 32px 20px 48px; }
  .survey-card { padding: 16px 18px; }
  .survey-card-top { align-items: flex-start; }.survey-card h3 { font-size: 15px; }.survey-meta { gap: 7px; }
  .card-actions { flex: 0 0 auto; }
  .survey-meta span + span::before { margin-right: 7px; }
  .chat-stream { padding: 18px 12px; }
  .chat-bubble { max-width: 88%; }
  .composer { padding: 9px 12px 12px; }
  .form-grid.two, .settings-actions { grid-template-columns: 1fr; }
  .segmented { grid-template-columns: 1fr; }
  .manage-grid, .report-layout, .balance-grid { grid-template-columns: 1fr; }
  .metric-grid { grid-template-columns: 1fr 1fr; }
  .quota-layers { grid-template-columns: 1fr; }
  .quota-panel .panel-title { display: grid; grid-template-columns: 1fr auto; align-items: center; }
  .quota-panel .panel-title > span { grid-column: 1 / -1; grid-row: 2; margin-top: 5px; }
  .completion-panel { position: sticky; bottom: 10px; z-index: 20; box-shadow: 0 8px 24px rgba(33,31,28,.12); }
  .danger-zone { align-items: flex-start; flex-direction: column; }
  .danger-zone > div:last-child { width: 100%; }.danger-zone .btn { flex: 1; }
  .result-tabs { overflow-x: auto; }.result-tabs button { white-space: nowrap; }
  .result-toolbar { align-items: flex-start; flex-direction: column; }
  .funnel { text-align: left; }
  .bar-row { grid-template-columns: 90px 1fr; }.bar-row strong { grid-column: 2; margin-top: -5px; }
  .sample-summary { width: 100%; }
  .ledger-list article { grid-template-columns: 76px 1fr; }.ledger-list article > strong { grid-column: 2; }
  .message-card { grid-template-columns: minmax(0, 1fr) auto; }
  .message-open { padding: 16px 10px 16px 16px; grid-template-columns: 30px minmax(0, 1fr); gap: 9px; }
  .message-delete { margin-right: 8px; }
  .message-meta { display: grid; gap: 0; }.message-meta time { font-size: 10px; }
  .channel-grid { grid-template-columns: 1fr 1fr; }
  .profile-columns { grid-template-columns: 1fr; }
  .profile-section, .consent-panel, .answer-history { padding: 18px; }
  .consent-list article { grid-template-columns: 1fr; gap: 9px; }.consent-list article .btn { justify-self: start; }
  .consent-history p { grid-template-columns: 1fr; }
  .closure-summary { grid-template-columns: 1fr; }
  .modal-backdrop { align-items: end; padding: 0; }
  .modal { width: 100%; max-height: calc(100vh - 58px); padding: 26px 20px max(24px, env(safe-area-inset-bottom)); border-radius: 12px 12px 0 0; }
  .toast-region { left: 14px; right: 14px; top: 70px; }.toast { max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}





/* 登录（V1.11 三模式已抽共享组件 auth-form.js/.css；结构交互与 Helper 弹窗同构，色彩随宿主映射） */
:root {
  --auth-accent: var(--navy);
  --auth-accent-hover: var(--navy-h);
  --auth-accent-soft: var(--navy-tint);
  --auth-on-accent: #f4f6fa;
  --auth-panel-bg: var(--card);
  --auth-ink: var(--ink);
  --auth-muted: var(--muted);
  --auth-line: var(--line-strong);
  --auth-danger: var(--red);
}

/* 定稿后自动展示设定表单的高亮动效（业主指令 2026-08-26） */
.highlight-pulse { animation: settings-pulse 2s ease-in-out 3; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(217,118,66,.14); }
@keyframes settings-pulse { 0%,100% { border-color: #efc9b2; box-shadow: none; } 50% { border-color: var(--accent, #d97642); box-shadow: 0 0 0 3px rgba(217,118,66,.14); } }
.btn-pulse { animation: btn-pulse 1.5s ease-in-out 4; }
@keyframes btn-pulse { 0%,100% { box-shadow: none; } 50% { box-shadow: 0 0 0 4px rgba(217,118,66,.2); } }
.settings-guide { font-size: 12px; color: var(--muted); margin: 10px 0 6px; text-align: center; }
.settings-actions { gap: 10px; }

/* 工作台卡片：finalized 状态的「待完成设定」提示 */
.meta-warn { color: var(--amber, #b54708); font-size: 11px; font-weight: 600; }

/* 右侧面板双 Tab：问卷草稿 / 调研设定 */
.draft-tabs { display: flex; gap: 0; margin-bottom: 14px; border-bottom: 2px solid var(--line); }
.draft-tab { flex: 1; padding: 8px 0 10px; border: 0; background: none; font-size: 13px; font-weight: 500; color: var(--muted); border-bottom: 2px solid transparent; margin-bottom: -2px; cursor: pointer; }
.draft-tab.active { color: var(--accent, #d97642); border-bottom-color: var(--accent, #d97642); font-weight: 600; }
.draft-tab:disabled { color: var(--muted); opacity: .4; cursor: not-allowed; }
.draft-tabpanel { min-height: 200px; }

/* 快捷操作行「定稿」按钮：特殊底色突出（区别于普通快捷按钮） */
.quick-finalize {
  margin-left: auto;
  padding: 6px 14px;
  border: 1px solid var(--accent, #d97642);
  border-radius: 6px;
  background: var(--accent, #d97642);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
}
.quick-finalize:hover { opacity: .88; }
.quick-finalize:disabled { opacity: .4; cursor: not-allowed; }
.report-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
/* K-PROTOTYPE-START: V1-C-A-1.html */
:root{
    --paper:#FCFBF9; --surface:#FFFFFF; --ink:#211F1C; --ink2:#6E6A62; --ink3:#767166;
    --line:#E8E4DC; --line2:#F0EDE7;
    --navy:#D97642; --navy-h:#BC5A2E; --navy-tint:#FBEADF;
    --warn:#B25E09; --warn-bg:#FCF0DC;
    --danger:#C2402A;
    --st-draft:#4B5563; --st-draft-bg:#F1F2F4;
    --st-review:#1D4ED8; --st-review-bg:#E5EDFB;
    --st-reject:#B42318; --st-reject-bg:#FBEAE8;
    --st-run:#157347; --st-run-bg:#E4F5EB;
    --st-due:#9A5B00; --st-due-bg:#FCF0DC;
    --st-closed:#475467; --st-closed-bg:#EDF0F4;
    --st-done:#5A40C8; --st-done-bg:#EEE9FB;
    --st-report:#0E7490; --st-report-bg:#E0F5F9;
  }

:focus-visible{outline:2px solid var(--navy);outline-offset:3px;border-radius:4px}
button:not(:disabled):active,.btn:not(:disabled):active{transform:translateY(1px)}
button:disabled{cursor:not-allowed}
[hidden]{display:none!important}
.num,.metric-grid b,.value,.badge,.chip,.chart-row b,.sample-summary,.hbar,.hero-strip{font-variant-numeric:tabular-nums}
input,textarea,select{max-width:100%}
[role=dialog]{max-height:calc(100dvh - 32px);overflow:auto}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:620px){.foot{display:flex;flex-wrap:wrap;gap:4px}.foot span{white-space:normal}.head-actions,.report-actions{flex-wrap:wrap}.page-shell{min-width:0}}

:root{--muted:var(--ink2);--card:var(--surface);--soft:var(--line2)}
/* K-PROTOTYPE-END */

/* 兑换大模型使用费：功能未设计置灰待开放（2026-09-22 业主指令） */
.exchange-pending{display:inline-flex;align-items:center;gap:7px}
.exchange-pending small{font-size:12px;color:var(--muted)}

/* topbar 布局统一（2026-09-22 业主指令：与调研广场一致——左brand+slogan、中主导航、右账户区） */
.topbar-left{display:inline-flex;align-items:center;gap:14px;min-width:0}
.main-nav{display:flex;align-items:center;gap:4px}
.main-nav a{padding:6px 13px;border-radius:999px;color:var(--muted,#6e6a62);font-size:14px;white-space:nowrap}
.main-nav a:hover{color:var(--ink,#211f1c);background:rgba(0,0,0,.04)}
.main-nav a.active{color:#fff;background:var(--navy,#d97642);font-weight:600}
@media(max-width:820px){.main-nav a{padding:5px 9px;font-size:13px}.topbar-left{gap:8px}}

/* topbar 右区统一（2026-09-23）：Avatar+昵称整体按钮 */
.avatar-btn { width: auto; min-width: 36px; padding: 0 10px 0 3px; gap: 7px; display: inline-flex; align-items: center; border-radius: 999px; }
.avatar-nick { max-width: 8em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 500; }

/* profile tab 内容形态（2026-09-23）：积分/消息 tab 与账户一致的面板结构 */
.tab-head { margin-bottom: 6px; }
.wallet-tab .balance-grid { margin: 14px 0; }

/* topbar 移动端收纳（2026-09-23）：三端统一布局后 390px 防溢出 */
@media (max-width: 620px) {
  .topbar { padding: 0 12px; }
  .brand-name { font-size: 14px; }
  .main-nav { gap: 2px; }
  .main-nav a { padding: 5px 7px; font-size: 12px; }
  .avatar-nick { display: none; }
  .avatar-btn { padding: 0 4px 0 3px; }
  .balance-chip { padding: 5px 8px; font-size: 12px; }
  .slogan { display: none; }
}

/* topbar 微调（2026-09-23）：通知→消息文字按钮 / avatar 圆容器包图不包字 */
.notice-text-btn { width: auto; padding: 0 10px; gap: 5px; display: inline-flex; align-items: center; font-size: 13px; }
.av-circ { display: block; width: 26px; height: 26px; border-radius: 50%; overflow: hidden; flex: 0 0 26px; border: 1px solid var(--line); background: var(--soft); }
.av-circ img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* ---------- topbar 账户按钮统一终版（2026-09-23，三端同规格：白底胶囊+26px圆容器包图+外置昵称） ---------- */
.avatar-btn { display: inline-flex; align-items: center; gap: 7px; width: auto; min-width: 36px; height: 34px; padding: 0 12px 0 4px; background: #fff; color: #3D3327; border: 1px solid #e8e4dc; border-radius: 999px; cursor: pointer; }
.avatar-btn:hover { border-color: #d97642; }
.av-circ { display: block; width: 26px; height: 26px; border-radius: 50%; overflow: hidden; flex: 0 0 26px; background: #f0ede7; }
.av-circ img { display: block; width: 100%; height: 100%; object-fit: cover; }
.avatar-nick { max-width: 8em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 500; color: #3D3327; }

/* 终版规则的移动端收缩（2026-09-23：防止覆盖 620 断点导致 390px 溢出） */
@media (max-width: 620px) {
  .avatar-btn { padding: 0 6px 0 3px; gap: 5px; height: 32px; }
  .avatar-nick { display: none; }
  .balance-chip { padding: 5px 8px; font-size: 12px; }
}

/* ---------- topbar 终态对齐广场（2026-09-23）：nav 紧跟品牌靠左 / brand 字体规格统一 / 右区不换行 ---------- */
.topbar { justify-content: flex-start; gap: 20px; }
.topbar .main-nav { margin-left: 6px; }
.topbar .topbar-right { margin-left: auto; flex-wrap: nowrap; }
.brand-name { font-family: "Forefind Han Sans",-apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; font-size: 17px; font-weight: 600; letter-spacing: .5px; color: var(--ink); }
.brand-name b { font-weight: 600; font-size: 17px; letter-spacing: .5px; color: var(--ink); }
.topbar-left { flex-wrap: nowrap; }
@media (max-width: 620px) { .topbar { gap: 10px; } .topbar .main-nav { margin-left: 0; } }

/* ---------- brand 终态统一（2026-09-23）：字体/颜色三端一致（陶土品牌色）+ Logo 统一大一号 32px ---------- */
.brand, .brand-name, .brand-name b { font-family: "Forefind Han Sans",-apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; font-size: 17px; font-weight: 600; letter-spacing: .5px; color: #d97642; }
.brand img, .brand .logo { width: 32px; height: 32px; object-fit: contain; }
.brand { gap: 10px; }

/* 2026-10-15 设定卡必填星与提交原因提示 */
.req-star { color:#B42318; font-style:normal; margin-left:2px; font-weight:700; }
.submit-reason { margin:8px 0 0; font-size:12px; color:#B42318; min-height:16px; }
.pool-floor-warn { display:block; margin-top:4px; color:#B42318; font-size:12px; }

/* 2026-10-15 人群维度条件控件（出生年/性别/地区可填写选择） */
.quota-dim-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:7px 0; border-bottom:1px dashed var(--line,#e2e6ec); }
.quota-dim-row:last-child { border-bottom:0; }
.quota-dim { display:inline-flex; align-items:center; gap:6px; min-width:88px; margin:0; cursor:pointer; }
.quota-cond { display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--ink,#1b2432); }
.quota-cond input[type=number] { width:88px; padding:5px 8px; }
.quota-opt { display:inline-flex; align-items:center; gap:4px; margin:0 6px 0 0; cursor:pointer; }
.quota-cond-input { flex:1; min-width:240px; }

/* 2026-10-15 三维度分行 + 未勾选禁用态 */
.quota-tags { display:flex; flex-direction:column; gap:4px; }
.quota-dim-row .quota-cond:has(input:disabled), .quota-dim-row .quota-cond:disabled, .quota-dim-row input:disabled { opacity:.45; }
.quota-dim-row:has(input[name="quotaDim"]:not(:checked)) .quota-cond, .quota-dim-row:has(input[name="quotaDim"]:not(:checked)) .quota-cond-input { opacity:.45; }

/* 2026-10-16 整体调研目标编辑区：输入框与卡片左右对齐；取消/保存按钮组靠右 */
.goal-edit { margin-top:8px; }
.goal-edit textarea { display:block; width:100%; box-sizing:border-box; margin:0; }
.goal-edit-foot { display:flex; align-items:center; gap:10px; margin-top:8px; }
.goal-edit-foot .char-count { margin-right:auto; color:var(--muted,#8a94a3); font-size:12px; }
.goal-edit-foot .btn.small { margin-left:0; }

/* 2026-10-16 话题边界条最左返回工作台 */
.topic-boundary { position:relative; }
.topic-boundary .tb-back { position:absolute; left:14px; top:50%; transform:translateY(-50%); font-size:12px; color:var(--navy,#1e3e6e); }

/* 2026-10-16 信息条对调：顶部=会话信息+返回；底部=话题文字；右栏=调研名称+问卷草稿 */
.session-bar { position:relative; display:flex; align-items:center; gap:14px; padding:7px 18px; border-bottom:1px solid var(--line); background:var(--paper); font-size:12px; color:var(--muted); }
.session-bar .sb-session { flex:1; text-align:center; }
.session-bar .history-status { flex:none; }
.session-bar .tb-back { font-size:12px; color:var(--navy,#1e3e6e); flex:none; }
.topic-boundary.tb-bottom { border-bottom:0; border-top:1px solid var(--line); padding:8px 18px; text-align:center; }
.draft-title-row { display:flex; align-items:baseline; gap:10px; min-width:0; }
.draft-survey-name { margin:3px 0 0; font-family:"Forefind Han Sans",var(--serif); font-size:17px; font-weight:600; letter-spacing:.5px; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:160px; } /* 与 .draft-head h2 同款 */

/* 2026-10-16 会话信息一行组；话题文字并入输入框行 */
.session-bar .sb-mid { flex:1; display:inline-flex; align-items:center; justify-content:flex-end; gap:8px; white-space:nowrap; overflow:hidden; } /* 2026-10-16 会话信息+状态整体居右 */
.composer-foot { justify-content:flex-start; }
.composer-foot .composer-topic { flex:1; font-size:12px; font-weight:600; color:var(--ink,#1b2432); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.composer-foot .composer-kbd { flex:none; }

/* Questionnaire design public notes; shared by formal and Trial. */
.design-notes{margin:12px 0;padding:10px 12px;border:1px solid var(--line,#ddd);border-radius:8px;font-size:12px;line-height:1.7;overflow-wrap:anywhere}.design-notes summary{cursor:pointer;font-weight:600}.design-notes ul{padding-left:20px;margin:8px 0 0}.design-notes li+li{margin-top:5px}

.goal-title{margin:0;font-size:14px;font-weight:600;line-height:1.5}.question-version{font-size:13px;color:var(--muted)}
