/* ask.css — ask.quickfindapp.com 站点样式（严格 CSP：零行内 style、零内联脚本）
 *
 * 设计令牌不再在这里定义：ask 站与其它子站共用 tokens.css / site.css / v4-skin.css /
 * ui.css / footer.css 五份真源（见 _tools/sync_shared_css.js 的 SITE_SUBSET）。
 * 本文件只放 ask 站独有的组件：二级导航、问答状态机、来源抽屉、反馈表单、知识详情。
 *
 * 之所以删掉原来那份 :root / [data-theme="dark"] 令牌副本：同一批 --qf-* 变量在
 * tokens.css 里已有一份且取值相同，两份并存只会在改真源时静默分叉 —— ask 站会停在
 * 旧配色而其它子站已经换了。 */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--qf-bg);
  color: var(--qf-text);
  font-size: 15px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--qf-primary); text-decoration: none; }
a:hover { color: var(--qf-primary-hover); text-decoration: underline; }
button { font: inherit; cursor: pointer; }

/* ---------- 二级导航（与支持中心 .supnav 同视觉：底部品牌色描边标当前页） ---------- */
.qa-subnav { background: var(--qf-surface); border-bottom: 1px solid var(--qf-border); position: relative; z-index: 5; }
.qa-subnav-in { max-width: 920px; margin: 0 auto; padding: 0 24px; }
.qa-subnav-list { display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.qa-subnav-list::-webkit-scrollbar { display: none; }
.qa-subnav-link {
  display: inline-flex; align-items: center; height: 44px; padding: 0 14px;
  font-size: 14px; font-weight: 600; color: var(--qf-text-muted);
  white-space: nowrap; border-bottom: 2px solid transparent;
  transition: color .16s ease, border-color .16s ease;
}
.qa-subnav-link:hover { color: var(--qf-primary); text-decoration: none; }
.qa-subnav-item.is-current .qa-subnav-link { color: var(--qf-primary); border-bottom-color: var(--qf-primary); }
[data-theme="dark"] .qa-subnav { background: var(--qf-surface); }

/* ---------- 页面骨架 ---------- */
.qa-shell { max-width: 920px; margin: 0 auto; padding: 24px 24px 160px; }
.qa-page { max-width: 920px; margin: 0 auto; padding: 24px 24px 96px; }
.qa-content { padding-top: 4px; }
.qa-question { display: flex; gap: 10px; align-items: flex-start; margin: 6px 0 18px; }
.qa-question-label { flex: none; color: var(--qf-text-muted); font-size: 13px; padding-top: 3px; }
.qa-question-text { font-weight: 600; font-size: 16px; }
[data-qa-state="idle"] .qa-question { display: none; }
[data-qa-state="idle"] #qa-live { display: none; }
.qa-view-idle { display: none; }
[data-qa-state="idle"] .qa-view-idle { display: block; }

/* ---------- 页头标题（反馈 / 详情页共用） ---------- */
.qa-page-head { margin: 8px 0 22px; }
.qa-page-head h1 { font-size: 26px; line-height: 1.35; margin: 0 0 8px; letter-spacing: -.01em; }
.qa-page-head p { margin: 0; color: var(--qf-text-muted); font-size: 14.5px; }
.qa-kicker { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; letter-spacing: .04em; color: var(--qf-primary); text-transform: uppercase; margin-bottom: 6px; }
.qa-breadcrumb { max-width: 920px; margin: 18px auto 0; padding: 0 24px; color: var(--qf-text-muted); font-size: 13px; }
.qa-breadcrumb a { color: var(--qf-text-muted); }
.qa-breadcrumb a:hover { color: var(--qf-primary); }
.qa-breadcrumb-sep { margin: 0 6px; }

/* ---------- 空状态 ---------- */
.qa-hero { background: var(--qf-card); border: 1px solid var(--qf-border); border-radius: var(--qf-radius-md); padding: 30px 32px; }
.qa-hero h1 { font-size: 24px; line-height: 1.4; margin: 0 0 8px; }
.qa-hero p { color: var(--qf-text-muted); margin: 0 0 20px; }
.qa-scope-note { border-left: 3px solid var(--qf-primary); background: var(--qf-info-soft); border-radius: 0 var(--qf-radius-sm) var(--qf-radius-sm) 0; padding: 12px 16px; font-size: 14px; color: var(--qf-text-muted); }
.qa-chips-title { margin: 24px 0 10px; font-size: 14px; font-weight: 600; }
.qa-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.qa-chip { border: 1px solid var(--qf-border); background: var(--qf-card); color: var(--qf-text); border-radius: var(--qf-radius-full); padding: 8px 16px; font-size: 14px; }
.qa-chip:hover { border-color: var(--qf-primary); color: var(--qf-primary); }

/* ---------- 语义条 / 骨架 ---------- */
.qa-statebar { border-left: 3px solid var(--qf-primary); background: var(--qf-info-soft); padding: 11px 16px; border-radius: 0 var(--qf-radius-sm) var(--qf-radius-sm) 0; font-size: 14px; margin: 0 0 18px; }
.qa-skeleton-wrap { background: var(--qf-card); border: 1px solid var(--qf-border); border-radius: var(--qf-radius-md); padding: 22px 24px; margin-bottom: 16px; }
.qa-skeleton { height: 13px; border-radius: var(--qf-radius-sm); background: var(--qf-surface-hover); margin: 0 0 12px; }
.qa-skeleton.w90 { width: 90%; } .qa-skeleton.w72 { width: 72%; } .qa-skeleton.w55 { width: 55%; }
.qa-skeleton.w40 { width: 40%; } .qa-skeleton.w28 { width: 28%; }
.qa-skeleton-title { height: 9px; border-radius: var(--qf-radius-sm); background: var(--qf-surface-hover); width: 120px; margin: 0 0 14px; }
.qa-skeleton-sources { display: grid; gap: 10px; }
.qa-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; align-items: center; }
.qa-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 10px 22px;
  border: 1px solid var(--qf-border); background: var(--qf-surface); color: var(--qf-text);
  border-radius: var(--qf-radius-md);
  font-size: 14px; font-weight: 600; line-height: 1.4;
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.qa-btn:hover { border-color: var(--qf-primary); color: var(--qf-primary); }
.qa-btn:active { transform: translateY(1px); }
.qa-btn-primary { background: var(--qf-brand-grad); border-color: transparent; color: var(--qf-on-primary); }
.qa-btn-primary:hover { color: var(--qf-on-primary); transform: translateY(-1px); }
.qa-btn-primary:active { transform: translateY(0); }
.qa-btn:disabled { opacity: .62; cursor: not-allowed; transform: none; }
.qa-linkbtn { color: var(--qf-primary); font-size: 14px; background: none; border: 0; padding: 9px 4px; }
.qa-linkbtn:hover { color: var(--qf-primary-hover); text-decoration: underline; }

/* ---------- 回答与来源 ---------- */
.qa-answer { background: var(--qf-card); border: 1px solid var(--qf-border); border-radius: var(--qf-radius-md); padding: 24px 26px; }
.qa-answer h2 { font-size: 18px; margin: 0 0 14px; }
.qa-prose { margin: 0; color: var(--qf-text); font-size: 15px; line-height: 1.95; }
.qa-cite { color: var(--qf-primary); font-weight: 700; margin-left: 3px; white-space: nowrap; text-decoration: none; cursor: pointer; border-radius: 3px; }
.qa-cite:hover { text-decoration: underline; }
.qa-cite:focus-visible { outline: 2px solid var(--qf-primary); outline-offset: 2px; }
.qa-reflinks { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: baseline; }
.qa-reflinks-label { font-size: 13px; color: var(--qf-text-muted); }
.qa-reflink { display: inline-flex; align-items: center; font-size: 13px; color: var(--qf-primary); text-decoration: none; background: var(--qf-surface); border: 1px solid var(--qf-border); border-radius: var(--qf-radius-md); padding: 6px 14px; white-space: nowrap; transition: border-color .2s ease, color .2s ease, background .2s ease; }
.qa-reflink:hover { color: var(--qf-primary-hover); text-decoration: none; border-color: var(--qf-primary); background: var(--qf-surface-hover); }
.qa-sources { margin-top: 22px; }
.qa-sources h3 { font-size: 15px; margin: 0 0 12px; }
.qa-source-card { background: var(--qf-card); border: 1px solid var(--qf-border); border-radius: var(--qf-radius-md); padding: 16px 18px; margin-bottom: 10px; }
.qa-source-head { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; margin-bottom: 6px; }
.qa-source-name { font-weight: 600; font-size: 14px; }
.qa-source-id { color: var(--qf-text-muted); font-family: var(--qf-font-mono); font-size: 11px; }
.qa-source-loc { color: var(--qf-text-muted); font-family: var(--qf-font-mono); font-size: 12px; margin-bottom: 8px; word-break: break-all; }
.qa-source-quote { margin: 0 0 12px; color: var(--qf-text-muted); font-size: 13.5px; border-left: 3px solid var(--qf-border); padding-left: 12px; }
.qa-statement { color: var(--qf-text-muted); font-size: 13px; margin: 16px 0 8px; }
.qa-feedback { display: flex; gap: 10px; align-items: center; color: var(--qf-text-muted); font-size: 13px; }
.qa-feedback-note { margin-left: 6px; }

/* ---------- 状态卡 ---------- */
.qa-statecard { background: var(--qf-info-soft); border-radius: var(--qf-radius-md); padding: 26px 28px; }
.qa-statecard-error { background: var(--qf-danger-soft); }
.qa-statecard h2 { font-size: 19px; margin: 0 0 8px; }
.qa-statecard p { margin: 0 0 12px; color: var(--qf-text-muted); }
.qa-statecard .qa-h3 { font-size: 14px; font-weight: 600; margin: 18px 0 8px; }
.qa-statecard ul { margin: 0; padding-left: 20px; color: var(--qf-text-muted); font-size: 14px; }
.qa-statecard .qa-scope { font-size: 13px; }
.qa-retained { border-left: 3px solid var(--qf-primary); padding-left: 12px; color: var(--qf-text); font-size: 14px; }
.qa-public-evidence { color: var(--qf-text-muted); font-size: 13px; }

/* ---------- 常驻提问框 ---------- */
.qa-askbar { position: fixed; left: 0; right: 0; bottom: 0; background: var(--qf-surface); border-top: 1px solid var(--qf-border); padding: 14px 24px; z-index: 20; }
.qa-askbar-in { max-width: 920px; margin: 0 auto; display: flex; gap: 10px; align-items: center; }
.qa-input { flex: 1; min-width: 0; border: 1px solid var(--qf-border); border-radius: var(--qf-radius-md); padding: 12px 14px; font-size: 15px; font-family: inherit; background: var(--qf-card); color: var(--qf-text); }
.qa-input:focus { outline: 2px solid var(--qf-primary); outline-offset: 2px; }
.qa-askbar .qa-btn-primary { flex: none; padding: 12px 22px; }
.qa-askbar-hint { max-width: 920px; margin: 8px auto 0; color: var(--qf-text-muted); font-size: 12px; }
/* 固定提问框会盖住页脚最后一行：只有带提问框的页面才给页脚让位 */
body.qa-has-askbar .footer { padding-bottom: 120px; }

/* ---------- 来源抽屉 ---------- */
.qa-drawer { display: none; position: fixed; top: 0; right: 0; bottom: 0; width: 420px; max-width: 100%; background: var(--qf-card); border-left: 1px solid var(--qf-border); box-shadow: -12px 0 32px rgba(15, 23, 41, .10); z-index: 110; overflow: auto; padding: 28px 26px 120px; }
[data-qa-state="source-drawer"] .qa-drawer { display: block; }
[data-qa-state="source-drawer"] .qa-feedback { display: none; }
.qa-drawer h2 { font-size: 17px; margin: 0 0 4px; }
.qa-drawer-id { color: var(--qf-text-muted); font-family: var(--qf-font-mono); font-size: 11px; margin-bottom: 20px; }
.qa-drawer-label { color: var(--qf-text-muted); font-size: 12px; font-weight: 600; margin: 18px 0 6px; }
.qa-drawer-loc { font-family: var(--qf-font-mono); font-size: 12px; word-break: break-all; }
.qa-drawer-quote { background: var(--qf-info-soft); border-left: 3px solid var(--qf-primary); border-radius: 0 var(--qf-radius-sm) var(--qf-radius-sm) 0; padding: 14px 16px; font-size: 13.5px; margin: 0; }

/* ---------- 移动端 390 ---------- */
@media (max-width: 640px) {
  .qa-subnav-in { padding: 0 16px; }
  .qa-breadcrumb { padding: 0 16px; margin-top: 14px; }
  .qa-shell { padding: 18px 16px 190px; }
  .qa-page { padding: 18px 16px 64px; }
  .qa-page-head h1 { font-size: 22px; }
  .qa-hero { padding: 22px 20px; }
  .qa-hero h1 { font-size: 21px; }
  .qa-answer { padding: 20px 18px; }
  .qa-statecard { padding: 20px 18px; }
  .qa-source-card { padding: 14px 14px; }
  .qa-askbar { padding: 12px 16px; }
  .qa-askbar .qa-btn-primary { padding: 12px 14px; }
  .qa-drawer { width: 100%; padding: 22px 18px 130px; }
}

/* ---------- 回答译文（受控翻译通道） ---------- */
.qa-prose-wrap { margin: 0; }
.qa-translated-label { font-size: 12px; font-weight: 600; color: var(--qf-text-muted); margin: 0 0 8px; padding-left: 10px; border-left: 3px solid var(--qf-primary); }
.qa-prose-translated { color: var(--qf-text); font-size: 15px; line-height: 1.95; background: var(--qf-info-soft); border-radius: 0 var(--qf-radius-sm) var(--qf-radius-sm) 0; padding: 4px 0 4px 12px; }
.qa-prose-original { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--qf-border); }
.qa-prose-original .qa-prose { color: var(--qf-text-muted); }
.qa-translate-note { color: var(--qf-warning); font-size: 13.5px; background: var(--qf-warning-soft); border-radius: var(--qf-radius-sm); padding: 10px 14px; }

/* =====================================================================
   站点外壳补充件（与共享 chrome 配套）
   ===================================================================== */

.qa-visually-hidden {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Skip link: first Tab stop, visible only when focused. */
.qa-skip {
  position: absolute; left: 16px; top: -48px; z-index: 200;
  padding: 10px 16px; border-radius: var(--qf-radius-sm);
  background: var(--qf-primary); color: var(--qf-on-primary); font-size: 14px; font-weight: 600;
  transition: top .16s ease;
}
.qa-skip:focus { top: 12px; color: var(--qf-on-primary); text-decoration: none; }

/* Recent questions */
.qa-recent { margin-top: 22px; }
.qa-recent .qa-chips-title { display: flex; align-items: center; gap: 12px; }
.qa-chip-recent { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qa-linkbtn { border: 0; background: none; color: var(--qf-primary); font-size: 12px; padding: 0; }
.qa-linkbtn:hover { text-decoration: underline; }

/* Keyboard hint */
.qa-kbd {
  display: inline-block; margin-left: 10px; padding: 1px 7px;
  border: 1px solid var(--qf-border); border-bottom-width: 2px; border-radius: 6px;
  background: var(--qf-surface); font-family: var(--qf-font-mono); font-size: 11px;
  color: var(--qf-text-muted);
}

/* Elevation + motion on the answer surfaces (reduced-motion respected below). */
.qa-answer, .qa-source-card, .qa-statecard, .qa-hero { transition: box-shadow .18s ease, border-color .18s ease; }
.qa-answer:hover, .qa-source-card:hover { border-color: color-mix(in srgb, var(--qf-primary) 28%, var(--qf-border)); }
.qa-answer { box-shadow: var(--qf-shadow-sm); }

/* Consistent focus treatment for every interactive element. */
.qa-shell a:focus-visible, .qa-shell button:focus-visible,
.qa-page a:focus-visible, .qa-page button:focus-visible,
.qa-subnav a:focus-visible,
.header a:focus-visible, .header button:focus-visible,
.footer a:focus-visible, .footer button:focus-visible {
  outline: none; box-shadow: var(--qf-focus-ring); border-radius: var(--qf-radius-sm);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* ---------- 反馈表单 ---------- */
.qa-card { background: var(--qf-card); border: 1px solid var(--qf-border); border-radius: var(--qf-radius-md); padding: 26px 28px; box-shadow: var(--qf-shadow-sm); }
.qa-field { margin: 0 0 20px; border: 0; padding: 0; }
.qa-field > label, .qa-field > legend { display: block; font-size: 14px; font-weight: 600; margin-bottom: 8px; padding: 0; }
.qa-field-hint { display: block; color: var(--qf-text-muted); font-size: 12.5px; font-weight: 400; margin-top: 6px; }
.qa-required { color: var(--qf-danger); margin-left: 2px; }
.qa-textinput, .qa-textarea, .qa-select {
  width: 100%; border: 1px solid var(--qf-border); border-radius: var(--qf-radius-md);
  padding: 11px 14px; font-size: 15px; font-family: inherit; line-height: 1.6;
  background: var(--qf-card); color: var(--qf-text);
}
.qa-textarea { min-height: 180px; resize: vertical; }
.qa-textinput:focus, .qa-textarea:focus, .qa-select:focus { outline: 2px solid var(--qf-primary); outline-offset: 2px; }
.qa-textinput[aria-invalid="true"], .qa-textarea[aria-invalid="true"] { border-color: var(--qf-danger); }
.qa-radio-row { display: flex; flex-wrap: wrap; gap: 8px; }
.qa-radio {
  position: relative; display: inline-flex; align-items: center; gap: 8px;
  border: 1px solid var(--qf-border); background: var(--qf-surface); color: var(--qf-text);
  border-radius: var(--qf-radius-full); padding: 9px 16px; font-size: 14px; cursor: pointer;
}
.qa-radio input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.qa-radio:has(input:checked) { border-color: var(--qf-primary); background: var(--qf-info-soft); color: var(--qf-primary-text); font-weight: 600; }
.qa-radio:has(input:focus-visible) { outline: none; box-shadow: var(--qf-focus-ring); }
.qa-field-error { display: block; color: var(--qf-danger); font-size: 13px; margin-top: 6px; }
.qa-field-error:empty { display: none; }
.qa-form-foot { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 4px; }
.qa-form-status { margin: 0 0 16px; border-radius: var(--qf-radius-md); padding: 14px 16px; font-size: 14px; }
.qa-form-status[hidden] { display: none; }
.qa-form-status.is-ok { background: var(--qf-info-soft); border-left: 3px solid var(--qf-primary); }
.qa-form-status.is-error { background: var(--qf-danger-soft); border-left: 3px solid var(--qf-danger); }
.qa-form-status b { display: block; margin-bottom: 4px; }
.qa-counter { margin-left: auto; color: var(--qf-text-muted); font-size: 12.5px; }
.qa-count-mismatch { color: var(--qf-danger); }
.qa-aside { margin-top: 22px; color: var(--qf-text-muted); font-size: 13.5px; }
.qa-aside a { color: var(--qf-primary); }

/* ---------- 知识详情 ---------- */
.qa-doc-head { margin: 8px 0 18px; }
.qa-doc-head h1 { font-size: 26px; line-height: 1.35; margin: 6px 0 10px; letter-spacing: -.01em; }
.qa-doc-meta { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; color: var(--qf-text-muted); font-size: 13px; }
.qa-tag { display: inline-flex; align-items: center; border: 1px solid var(--qf-border); border-radius: var(--qf-radius-full); padding: 2px 10px; font-size: 12px; color: var(--qf-text-muted); background: var(--qf-surface); }
.qa-doc-body { background: var(--qf-card); border: 1px solid var(--qf-border); border-radius: var(--qf-radius-md); padding: 24px 26px; box-shadow: var(--qf-shadow-sm); }
.qa-doc-body h2 { font-size: 16px; margin: 0 0 12px; }
.qa-doc-quote { margin: 0; padding: 16px 18px; background: var(--qf-info-soft); border-left: 3px solid var(--qf-primary); border-radius: 0 var(--qf-radius-sm) var(--qf-radius-sm) 0; white-space: pre-wrap; font-size: 14px; line-height: 1.9; overflow-wrap: anywhere; }
.qa-doc-source { margin: 0; display: grid; gap: 6px; font-size: 13.5px; }
.qa-doc-source dt { color: var(--qf-text-muted); font-size: 12px; font-weight: 600; }
.qa-doc-source dd { margin: 0 0 8px; font-family: var(--qf-font-mono); font-size: 12.5px; word-break: break-all; }
.qa-doc-questions { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.qa-doc-questions a { display: block; border: 1px solid var(--qf-border); border-radius: var(--qf-radius-md); padding: 11px 14px; font-size: 14px; color: var(--qf-text); text-decoration: none; transition: border-color .16s ease, color .16s ease, background .16s ease; }
.qa-doc-questions a:hover { border-color: var(--qf-primary); color: var(--qf-primary); background: var(--qf-surface-hover); text-decoration: none; }
.qa-doc-section { margin-top: 22px; }
.qa-doc-section > h2 { font-size: 15px; margin: 0 0 12px; }
.qa-doc-related { display: grid; gap: 10px; }
.qa-doc-related a { display: block; border: 1px solid var(--qf-border); border-radius: var(--qf-radius-md); padding: 13px 16px; background: var(--qf-card); text-decoration: none; }
.qa-doc-related a:hover { border-color: var(--qf-primary); text-decoration: none; }
.qa-doc-related b { display: block; font-size: 14px; color: var(--qf-text); font-weight: 600; }
.qa-doc-related span { display: block; color: var(--qf-text-muted); font-size: 12.5px; margin-top: 2px; }
.qa-doc-nav { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }

@media (max-width: 640px) {
  .qa-card { padding: 20px 18px; }
  .qa-doc-body { padding: 20px 18px; }
  .qa-doc-head h1 { font-size: 21px; }
}

/* 404 page */
.qa-404 { padding-top: 64px; }

/* ---------- 站头账号入口 ----------
 * 类名与共享 nav-session.js 一致（.qf-login-link / .qf-register-link / .qf-account），
 * 但基础样式必须落在本站样式表里：nav-session.js 是靠 <style> 注入上色的，
 * ask 的 CSP 是 style-src 'self'，注入会被整块拦掉 —— 那时按钮只剩裸链接。
 * .qf-login-link 的基础规则 site.css 里已经有，这里只补缺的那条。 */
.qf-register-link {
  font-size: 14px; font-weight: 600; color: #fff;
  background: var(--primary); padding: 8px 16px;
  border: 1px solid transparent; border-radius: 999px;
  white-space: nowrap; text-decoration: none;
}
.qf-register-link:hover { filter: brightness(.92); color: #fff; }

.qf-account-chip {
  display: inline-flex; align-items: center; gap: 8px; max-width: 220px;
  padding: 4px 12px 4px 4px; border: 1px solid var(--line); border-radius: 999px;
  background: var(--card); color: var(--ink); font-size: 13px; font-weight: 600;
  text-decoration: none;
}
.qf-account-chip:hover { border-color: var(--primary); color: var(--primary); }
.qf-account-avatar {
  flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--brand-grad); color: #fff; font-size: 13px; line-height: 1;
}
.qf-account-email { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* 窄屏先丢「邮箱文本」，最窄再丢「注册」：登录入口任何宽度都不消失。
 * 390 宽下实际可用约 366px，语言三键（44 触控地板）就占 132。 */
@media (max-width: 639px) {
  .qf-account-email { display: none; }
  .qf-account-chip { padding: 3px; }
}
@media (max-width: 479px) {
  .header .qf-register-link { display: none; }
  .header .qf-login-link { padding: 0 10px; font-size: 12px; }
}
