:root {
  --tro-navy: #233145;
  --tro-navy-deep: #182536;
  --tro-ink: #142033;
  --tro-muted: #788698;
  --tro-line: #dfe6ee;
  --tro-orange: #ff9600;
  --tro-orange-ink: #9f5e00;
  --tro-yellow: #ffd814;
  --tro-bg: #eef2f6;
  --tro-panel: #ffffff;

  /* 全站按钮令牌：颜色来自品牌橙，几何与交互状态由按钮系统共用。 */
  --poa-button-height: 44px;
  --poa-button-compact-height: 44px;
  --poa-button-radius: 9px;
  --poa-button-compact-radius: 8px;
  --poa-button-accent: #ff9900;
  --poa-button-accent-hover: #ed8900;
  --poa-button-ink: #fff;
  --poa-button-orange-text: #a85a00;
  --poa-button-border: #efb15e;
  --poa-button-focus: rgba(255, 153, 0, .3);
}

body { background: var(--tro-bg); color: var(--tro-ink); }
.app-shell { min-height: 100vh; display: block; background: var(--tro-bg); }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 232px; height: 100vh; min-height: 100vh; max-height: 100vh; flex-basis: auto; overflow-y: auto; padding: 18px 12px 16px; background: linear-gradient(180deg, var(--tro-navy) 0%, var(--tro-navy-deep) 100%); border-right: 0; color: #e9eef5; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.18) transparent; }
.brand-lockup { padding: 4px 10px 20px; }
.brand-lockup { position: relative; }
.brand-image-lockup { display: block; width: 100%; overflow: hidden; border-radius: 15px; background: #fff; box-shadow: 0 6px 14px rgba(5,13,24,.2); }
.brand-image-lockup img { display: block; width: 100%; height: auto; }
.brand-lockup .mobile-close { position: absolute; top: 8px; right: 2px; z-index: 2; }
.brand-lockup .mobile-close:hover { color: var(--tro-orange-ink); background: rgba(255,255,255,.85); border-radius: 50%; }
.brand-mark { background: #fff; box-shadow: none; border-radius: 10px; overflow: hidden; }
.brand-mark-image img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.brand-name { color: #fff; letter-spacing: .08em; }
.brand-caption { color: #58697f; }
.workspace-switcher { margin: 0 2px 20px; color: #eef3f8; background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.12); }
.workspace-switcher i { color: #58697f; }
.workspace-dot { background: var(--tro-orange); box-shadow: 0 0 0 3px rgba(255,150,0,.16); }
.nav-label { color: #41505f; }
.nav-item { height: 50px; min-height: 50px; margin: 3px 0; padding: 0 14px; color: #b8c3d1; border-radius: 8px; text-decoration: none; font-family: 'Noto Sans SC', 'Microsoft YaHei', sans-serif; font-size: 15px; font-weight: 600; line-height: 1.4; }
.nav-item i { width: 18px; color: #41505f; font-size: 18px; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.08); }
.nav-item:hover i { color: var(--tro-orange-ink); }
.nav-item.active { color: #182536; background: linear-gradient(90deg, #ffd814 0%, #ffad1b 100%); box-shadow: 0 5px 14px rgba(0,0,0,.14); }
.nav-item.active i { color: #182536; }
.nav-group { margin: 0; }
.nav-group > .nav-item { position: relative; }
.sub-nav { display: flex; flex-direction: column; gap: 5px; padding: 8px 0 12px 29px; }
.sub-nav-item { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 14px; border-radius: 7px; color: #57697f; font-family: 'Noto Sans SC', 'Microsoft YaHei', sans-serif; font-size: 15px; font-weight: 600; line-height: 1.4; text-decoration: none; }
.sub-nav-item > i { width: 17px; color: #41505f; font-size: 15px; text-align: center; }
.sub-nav-item:hover { color: #fff; background: rgba(255,255,255,.06); }
.sub-nav-item.active { color: #ffc13b; background: rgba(255,185,48,.1); }
.sub-nav-item.active > i { color: #ffae1a; }
.qa-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); gap: 14px; align-items: start; }
.qa-layout--ask-hidden { grid-template-columns: minmax(0, 1fr); }
.qa-list-panel, .qa-ask-panel { border: 1px solid #e4e3df; border-radius: 9px; background: #fff; box-shadow: 0 3px 10px rgba(29,34,38,.035); }
/* 左侧列表卡片跟随整行高度（右栏留言表单更高时，空数据状态下两块卡片等高） */
.qa-list-panel { display: flex; flex-direction: column; align-self: stretch; padding: 22px 24px 8px; }
.qa-panel-heading { padding-bottom: 16px; border-bottom: 1px solid #eeece8; }
.qa-filter-label { color: #41505f; font-size: 10px; white-space: nowrap; }
.qa-filter-label i { margin-right: 5px; color: var(--tro-orange-ink); }
.qa-list { display: flex; flex-direction: column; }
.qa-item { border-bottom: 1px solid #efeee9; }
.qa-item:last-child { border-bottom: 0; }
.qa-item summary { display: flex; align-items: center; gap: 12px; min-height: 63px; color: #3d4853; font-size: 13px; font-weight: 700; cursor: pointer; list-style: none; }
.qa-item summary::-webkit-details-marker { display: none; }
.qa-item summary > i { margin-left: auto; color: #776545; font-size: 11px; transition: transform .18s; }
.qa-item[open] summary > i { transform: rotate(180deg); color: var(--tro-orange-ink); }
.qa-index { flex: 0 0 auto; color: #8c5e20; font: 700 13px 'DM Sans'; }
.qa-answer { padding: 0 25px 18px 39px; color: #41505f; font-size: 11px; line-height: 1.8; }
.qa-answer p { margin: 0; white-space: pre-wrap; }
/* 列表状态容器：只负责布局（flex:1 → 在等高卡片里居中），
   加载/空/失败的样子由全站统一组件 .poa-state（css/empty-state.css）负责 */
.qa-list-state { display: flex; flex: 1; flex-direction: column; justify-content: center; }
.qa-list-state[hidden] { display: none; }
.qa-tip { display: flex; gap: 7px; margin-top: 11px; padding: 9px 10px; border-radius: 6px; color: #866033; background: #fff8ec; font-size: 10px; line-height: 1.6; }
.qa-tip i { padding-top: 2px; color: var(--tro-orange-ink); }
.qa-ask-panel { position: sticky; top: 78px; padding: 24px 22px 20px; border-top: 3px solid var(--tro-orange); }
.qa-ask-icon { width: 38px; height: 38px; display: grid; place-items: center; margin-bottom: 15px; border-radius: 10px; color: var(--tro-orange-ink); background: #fff0dc; font-size: 15px; }
.qa-ask-panel h2 { margin: 8px 0 8px; font-size: 19px; line-height: 1.35; }
.qa-ask-panel > p { margin: 0; color: #41505f; font-size: 11px; line-height: 1.75; }
.qa-message-form { display: flex; flex-direction: column; gap: 11px; margin-top: 18px; }
.qa-message-form label { display: flex; flex-direction: column; gap: 6px; color: #41505f; font-size: 10px; font-weight: 700; }
.qa-message-form input, .qa-message-form textarea { width: 100%; padding: 9px 10px; border: 1px solid #e3e4e2; border-radius: 6px; outline: 0; color: var(--tro-ink); background: #fcfdfd; font-size: 11px; line-height: 1.55; resize: vertical; }
.qa-message-form input { height: 36px; }
.qa-message-form input:focus, .qa-message-form textarea:focus { border-color: #eeb76f; box-shadow: 0 0 0 3px #fff1dd; }
/* 必填未通过时的高亮（原生 required 与 JS 兜底都会用到） */
.qa-message-form .qa-field-invalid { border-color: #cf5138; box-shadow: 0 0 0 3px #fdece8; }
.qa-message-form .primary-action { margin-top: 2px; }
/* 必填 / 选填标记：必填走浅红胶囊，选填走浅灰胶囊（和上传区「选填」口径一致） */
.qa-field-label { display: inline-flex; align-items: center; color: #41505f; font-size: 10px; font-weight: 700; }
.qa-field-flag { margin-left: 5px; padding: 1px 5px; border-radius: 3px; font-size: 9px; font-style: normal; font-weight: 700; line-height: 1.5; }
.qa-field-flag.is-required { color: #a8351f; background: #fdece8; }
.qa-field-flag.is-optional { color: #64748b; background: #f1f4f8; }
.qa-message-form .primary-action:disabled { opacity: .72; cursor: progress; }
/* 平台 / 地区 / 违规类型：外层 qa-select-shell 负责边框与 36px 高度，
   和上面 input 的规格一致；custom-select.js 增强后由 .poa-select-trigger 填满这层壳。 */
.qa-select-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.qa-select-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.qa-select-label { color: #41505f; font-size: 10px; font-weight: 700; }
.qa-select-shell { position: relative; height: 36px; border: 1px solid #e3e4e2; border-radius: 6px; background: #fcfdfd; }
.qa-select-shell > select { width: 100%; height: 100%; padding: 0 10px; border: 0; outline: 0; color: var(--tro-ink); background: transparent; font-size: 11px; }
.qa-select-shell .poa-select-trigger { padding: 0 10px; font-size: 11px; font-weight: 400; }
.qa-select-shell .poa-select.is-placeholder .poa-select-label { color: #6d7a89; }
.qa-select-shell:focus-within { border-color: #eeb76f; box-shadow: 0 0 0 3px #fff1dd; }
/* 未选择时的错误态：要比聚焦态更靠后，否则会被上面的 :focus-within 覆盖 */
.qa-select-shell.qa-field-invalid,
.qa-select-shell.qa-field-invalid:focus-within { border-color: #cf5138; box-shadow: 0 0 0 3px #fdece8; }
/* 接口连不上时的表单内提示（选项加载失败 / 提交失败） */
.qa-select-hint { display: flex; gap: 7px; margin: 0; padding: 8px 10px; border: 1px solid #f3d8b8; border-radius: 6px; color: #8a4b16; background: #fff6ec; font-size: 10px; font-weight: 400; line-height: 1.65; }
.qa-select-hint i { padding-top: 2px; color: #b3611a; }
.qa-select-hint[hidden] { display: none; }
.qa-submit-success { display: flex; align-items: flex-start; gap: 9px; padding: 10px 11px; border: 1px solid #cfe6d7; border-radius: 7px; color: #315f43; background: #f2faf5; }
.qa-submit-success[hidden] { display: none; }
.qa-submit-success > i { margin-top: 2px; color: #3f8058; font-size: 14px; }
.qa-submit-success strong, .qa-submit-success span { display: block; }
.qa-submit-success strong { font-size: 11px; }
.qa-submit-success span { margin-top: 2px; color: #4d6857; font-size: 9px; font-weight: 400; line-height: 1.55; }
@media (max-width: 620px) {
  .qa-select-row { grid-template-columns: 1fr; }
}
.qa-privacy { display: block; margin-top: 13px; color: #41505f; font-size: 9px; }
.qa-privacy i { margin-right: 4px; color: #467154; }
.policy-feature { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr); min-height: 300px; margin-bottom: 18px; overflow: hidden; border: 1px solid #dfe6ee; border-radius: 9px; background: #fff; box-shadow: 0 3px 10px rgba(29,34,38,.035); }
.policy-feature-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 30px 34px; }
.policy-feature-kicker { display: inline-flex; align-items: center; gap: 7px; color: var(--tro-orange-ink); font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.policy-feature-kicker i { font-size: 11px; }
.policy-feature-copy h2 { margin: 12px 0 9px; color: var(--tro-ink); font-size: 25px; line-height: 1.25; letter-spacing: -.02em; }
.policy-feature-copy p { max-width: 560px; margin: 0; color: #41505f; font-size: 12px; line-height: 1.85; }
.policy-feature-points { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 17px; }
.policy-feature-points span { color: #41505f; font-size: 10px; }
.policy-feature-points i { margin-right: 5px; color: #427153; }
.policy-feature-copy .text-action { margin-top: 19px; }
.policy-feature-meta { display: flex; flex-direction: column; justify-content: center; padding: 32px 34px; color: #fff; background: linear-gradient(145deg, #172b3d, #223d58); }
.policy-feature-meta-kicker { color: #ffbd58; font: 800 10px/1.2 "DM Sans", sans-serif; letter-spacing: .16em; }
.policy-feature-meta > strong { margin-top: 15px; font-size: 22px; }
.policy-feature-meta > p { margin: 9px 0 22px; color: #c6d0d8; font-size: 11px; line-height: 1.75; }
.policy-feature-meta dl { display: grid; gap: 8px; margin: 0; }
.policy-feature-meta dl div { display: flex; justify-content: space-between; gap: 15px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.12); border-radius: 6px; background: rgba(255,255,255,.055); }
.policy-feature-meta dt { color: #bfcbd6; font-size: 10px; }
.policy-feature-meta dd { margin: 0; color: #fff; font-size: 10px; font-weight: 700; }
.policy-feature-meta dd i { margin-right: 5px; color: #8ed1a4; }
.policy-feature-source { display: inline-flex; align-items: center; gap: 7px; margin-top: 19px; color: #ffbd58; font-size: 10px; font-weight: 700; }
.policy-stream-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 26px 0 14px; }
.policy-stream-heading h2 { margin: 0; color: var(--tro-ink); font-size: 19px; letter-spacing: -.02em; }
.policy-stream-heading p { margin: 5px 0 0; color: #41505f; font-size: 11px; line-height: 1.6; }
.policy-stream-updated { display: inline-flex; align-items: center; gap: 7px; padding-bottom: 2px; color: #41505f; font-size: 10px; white-space: nowrap; }
.policy-stream-updated i { color: var(--tro-orange-ink); }
.policy-toolbar { justify-content: flex-end; margin-bottom: 16px; }
.policy-card { min-height: 250px; padding: 0; overflow: hidden; }
.policy-card-copy { display: flex; min-width: 0; height: 100%; flex-direction: column; align-items: flex-start; padding: 24px 23px 21px 25px; }
.policy-card h3 { line-height: 1.45; }
.policy-card p { min-height: 38px; }
.policy-card-copy .text-action { margin-top: auto; }
.violet-label { color: #6d62a4; background: #efedfb; }
.rose-label { color: #a25269; background: #fbecef; }
.policy-card[hidden] { display: none; }
.policy-card-actions { display: flex; align-items: center; gap: 14px; margin-top: auto; padding-top: 16px; }
.policy-card-actions .policy-read { display: inline-flex; align-items: center; gap: 6px; }
.policy-card-actions .policy-source-link { display: inline-flex; align-items: center; gap: 5px; color: #687581; font-size: 10px; font-weight: 600; }
.policy-reader-shell { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 32px; visibility: hidden; opacity: 0; transition: opacity .22s ease, visibility .22s ease; }
.policy-reader-shell.open { visibility: visible; opacity: 1; }
.policy-reader-open { overflow: hidden; }
.policy-reader-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(12,20,29,.72); cursor: pointer; }
.policy-reader { position: relative; z-index: 1; display: flex; flex-direction: column; width: min(960px, 100%); height: min(820px, calc(100vh - 64px)); padding: 34px 38px 24px; overflow: hidden auto; border-top: 4px solid var(--tro-orange); border-radius: 8px; background: #fff; box-shadow: 0 24px 70px rgba(12,20,29,.28); transform: translateY(18px) scale(.98); transition: transform .26s ease; }
.policy-reader-shell.open .policy-reader { transform: translateY(0) scale(1); }
.policy-reader-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid #efeee9; }
.policy-reader-kicker { color: var(--tro-orange-ink); font: 700 10px "DM Sans", sans-serif; letter-spacing: .14em; }
.policy-reader-header h2 { margin: 12px 0 7px; color: var(--tro-ink); font-size: 25px; line-height: 1.35; }
.policy-reader-header p { margin: 0; color: #687581; font-size: 10px; line-height: 1.6; }
.policy-reader-close { display: grid; flex: 0 0 auto; width: 34px; height: 34px; place-items: center; border: 1px solid #e6e3dc; border-radius: 7px; color: #4d5b67; background: #fff; }
.policy-reader-close:hover { border-color: #edb66e; color: var(--orange-deep); }
.policy-reader-mode { display: inline-flex; align-self: flex-start; gap: 3px; margin: 18px 0 4px; padding: 3px; border: 1px solid #ece7df; border-radius: 8px; background: #faf8f4; }
.policy-reader-mode button { min-height: 29px; padding: 0 12px; border: 0; border-radius: 6px; color: #687581; background: transparent; font-size: 11px; font-weight: 600; cursor: pointer; }
.policy-reader-mode button:hover { color: var(--orange-deep); background: #fff4e5; }
.policy-reader-mode button.is-active { color: #fff; background: var(--tro-orange); box-shadow: 0 2px 6px rgba(242,140,24,.22); }
.policy-reader-body { color: #41505f; font-size: 12px; line-height: 1.85; }
.policy-reader-body h2, .policy-reader-body h3, .policy-reader-body h4 { margin: 25px 0 9px; color: #303c47; line-height: 1.45; }
.policy-reader-body h2 { font-size: 18px; }
.policy-reader-body h3 { font-size: 15px; }
.policy-reader-body h4 { font-size: 13px; }
.policy-reader-body p { margin: 12px 0; }
.policy-reader-body ul { margin: 10px 0 16px; padding-left: 20px; }
.policy-reader-body li { margin: 7px 0; }
.policy-reader-body a { color: var(--orange-deep); font-weight: 600; }
.policy-reader-body code { padding: 2px 4px; border-radius: 3px; background: #f4f0e9; font-size: .9em; }
.policy-reader-intro { margin: 22px 0 4px; padding: 14px 15px; border: 1px solid #efe3d1; border-radius: 7px; background: #fffaf2; }
.policy-reader-intro strong { color: #87551e; font-size: 11px; }
.policy-reader-intro p { margin: 7px 0; color: #5b6874; font-size: 11px; }
.policy-reader-intro > div { display: flex; flex-wrap: wrap; gap: 7px 15px; }
.policy-reader-intro span { color: #5b6874; font-size: 10px; }
.policy-reader-intro span i { margin-right: 4px; color: #4d875d; }
.policy-reader-language-note { margin: 18px 0 12px; padding: 10px 12px; border-left: 3px solid var(--tro-orange); color: #687581; background: #fffaf2; font-size: 11px; }
.policy-reader-empty { padding: 24px 0; color: #687581; }
.policy-reader-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 26px; padding-top: 17px; border-top: 1px solid #efeee9; color: #77818a; font-size: 10px; }
.policy-reader-footer a { color: var(--orange-deep); font-weight: 700; }
.image-lightbox-panel { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; width: min(1120px, 100%); height: min(840px, 100%); padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; transform: scale(.96); transition: transform .2s ease; }
.image-lightbox.open .image-lightbox-panel { transform: scale(1); }
.image-lightbox-panel img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 5px; }
.image-lightbox-close { position: absolute; top: 10px; right: 10px; z-index: 2; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; color: #fff; background: rgba(20,31,43,.75); cursor: pointer; transition: color .16s ease, border-color .16s ease, background .16s ease, transform .2s ease; }
.image-lightbox-close:hover, .image-lightbox-close:focus-visible { color: #ffd48b; border-color: rgba(255,212,139,.65); }
.image-lightbox-close:focus-visible { outline: 2px solid #ffd48b; outline-offset: 2px; }
@media (min-width: 1500px) {
  .image-lightbox-close { right: -128px; }
}
@media (max-width: 760px) {
  .image-lightbox-close { top: calc(50% + min(180px, 45vw)); right: auto; left: 50%; transform: translateX(-50%); }
}
.policy-empty { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 180px; border: 1px dashed #e1ddd5; border-radius: 9px; color: #41505f; background: rgba(255,255,255,.62); text-align: center; }
.policy-empty i { margin-bottom: 10px; color: #d0c7b9; font-size: 22px; }
.policy-empty strong { color: #41505f; font-size: 12px; }
.policy-empty span { margin-top: 6px; font-size: 10px; }
.qa-upload-field { margin-top: 1px; }
.qa-upload-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 7px; color: #41505f; font-size: 10px; font-weight: 700; }
.qa-upload-heading em { color: #41505f; font-size: 9px; font-style: normal; font-weight: 400; }
.qa-upload-heading small { color: #41505f; font-size: 9px; font-weight: 500; }
.qa-upload-zone { display: flex; align-items: center; gap: 8px; min-height: 45px; padding: 8px 10px; border: 1px dashed #e8c486; border-radius: 6px; color: #75654f; background: #fffaf2; cursor: pointer; transition: border-color .18s, background .18s; }
.qa-upload-zone:hover { border-color: var(--tro-orange); background: #fff5e5; }
.qa-upload-zone > i { color: var(--tro-orange-ink); font-size: 14px; }
.qa-upload-zone span { font-size: 10px; font-weight: 700; }
.qa-upload-zone small { margin-left: auto; color: #74654e; font-size: 9px; font-weight: 400; }
.qa-image-preview { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.qa-image-item { position: relative; width: 54px; height: 54px; overflow: hidden; border: 1px solid #e5e3dc; border-radius: 6px; background: #f4f5f5; }
.qa-image-item img { display: block; width: 100%; height: 100%; object-fit: cover; }
.qa-image-remove { position: absolute; top: 3px; right: 3px; width: 17px; height: 17px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: rgba(24,37,54,.72); font-size: 8px; }
.qa-image-remove:hover { background: var(--tro-orange); }
.qa-upload-copy { display: flex; gap: 5px; margin: 7px 0 0; color: #41505f; font-size: 9px; line-height: 1.55; }
.qa-upload-copy i { padding-top: 2px; color: #806334; }
.nav-count { color: #41505f; background: rgba(255,255,255,.12); }
.nav-item.active .nav-count { color: #5f4600; background: rgba(255,255,255,.44); }
.sidebar-status { margin: 22px 2px 0; padding: 12px; border: 1px solid rgba(255,255,255,.12); border-radius: 7px; background: rgba(255,255,255,.06); }
.sidebar-status-head, .sidebar-status-row, .sidebar-status-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.sidebar-status-head { color: #aebaca; font-size: 10px; }
.sidebar-status-head strong { color: #8bd6aa; font-size: 9px; font-weight: 700; }
.sidebar-status-row { margin-top: 10px; color: #e9eef5; font-size: 11px; }
.sidebar-status-row b { color: #fff; font: 700 19px 'DM Sans'; }
.sidebar-progress { height: 4px; margin-top: 8px; overflow: hidden; border-radius: 99px; background: rgba(255,255,255,.12); }
.sidebar-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #ffbf39, #ff8d00); }
.sidebar-status-foot { margin-top: 7px; color: #41505f; font-size: 9px; }
.sidebar-bottom { position: sticky; bottom: 0; flex: 0 0 auto; margin-top: auto; padding-top: 14px; background: linear-gradient(180deg, rgba(24,37,54,0), var(--tro-navy-deep) 16%); }
.help-card { margin: 0 2px 10px; color: #eef3f8; background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.12); }
.help-card strong { color: #fff; }
.help-card span { color: #58697d; }
.help-card>i { color: #57697e; }
/* 二维码卡片样式统一在 css/sidebar-refresh.css 的 .sidebar-qr 中维护 */
.help-icon { background: rgba(255,150,0,.16); color: var(--tro-orange-ink); }
.main-area { min-height: 100vh; margin-left: 232px; }
.topbar { height: 62px; padding: 0 20px; background: #fff; border-bottom-color: #dfe6ee; }
.main-area > #sharedTopbar {
  position: sticky;
  top: 0;
  z-index: 18;
}
.main-area > #sharedTopbar .topbar.shared-topbar {
  position: relative;
  top: auto;
  z-index: auto;
}
.main-area > .topbar:not(.shared-topbar) { display: none; }
/* 顶层页面也保留公共顶栏，桌面端需要在右上角显示全站搜索入口。 */
body[data-page="home"] .main-area > #sharedTopbar { display: none; }
.crumbs { color: #41505f; }
.crumbs strong { color: var(--tro-ink); }
.global-search { width: 260px; height: 34px; border-color: #dfe6ee; border-radius: 6px; background: #f8fafc; }
.site-search-button { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 110px; height: 36px; padding: 0 15px; border: 1px solid #ff8a21; border-radius: 8px; color: #fff; background: linear-gradient(135deg, #ff7a2f 0%, #ff9e2f 100%); font-size: 12px; font-weight: 800; text-shadow: none; box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 5px 13px rgba(255,112,32,.3); transition: transform .2s ease, box-shadow .2s ease, filter .2s ease; }
.site-search-button::before, .dash-cta::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(115deg, transparent 22%, rgba(255,255,255,.4) 48%, transparent 74%); transform: translateX(-145%); animation: poa-button-shimmer 3.8s ease-in-out infinite; }
.site-search-button > *, .dash-cta > * { position: relative; z-index: 1; }
.site-search-button:hover { color: #fff; background: linear-gradient(135deg, #ff7126 0%, #ff9824 100%); box-shadow: inset 0 1px 0 rgba(255,255,255,.34), 0 9px 18px rgba(255,112,32,.38); transform: translateY(-2px) scale(1.01); filter: saturate(1.08); }
.site-search-button:active, .dash-cta:active { transform: translateY(0) scale(.98); box-shadow: inset 0 2px 4px rgba(135,52,0,.22), 0 3px 8px rgba(255,112,32,.22); }
.site-search-button:focus-visible { outline: 2px solid #1f6feb; outline-offset: 2px; }
.site-search-button i { font-size: 11px; }
.content { width: 100%; max-width: none; padding: 18px 18px 0; }
#sharedFooter { margin-left: -18px; margin-right: -18px; }
.poa-dashboard { padding-bottom: 0; }
.dashboard-intro { margin: 0 0 12px; padding: 18px 20px; background: #fff; border: 1px solid var(--tro-line); border-top: 4px solid var(--tro-orange); border-radius: 8px; box-shadow: 0 2px 8px rgba(19,32,51,.04); }
.dashboard-intro h1 { margin: 4px 0 6px; color: var(--tro-ink); font-size: clamp(25px, 2.4vw, 32px); letter-spacing: 0; }
.dashboard-intro p { color: #41505f; }
.eyebrow { color: #41505f; letter-spacing: .12em; }
.eyebrow-line { background: var(--tro-orange); }
.dashboard-intro-actions { gap: 12px; }
.dash-cta { position: relative; isolation: isolate; overflow: hidden; height: 40px; padding: 0 18px; border: 1px solid #ff8a21; border-radius: 8px; color: #fff; background: linear-gradient(135deg, #ff7a2f 0%, #ff9e2f 100%); font-size: 12px; font-weight: 800; text-shadow: 0 1px 2px rgba(133,55,0,.22); box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 6px 15px rgba(255,112,32,.34); transition: transform .2s ease, box-shadow .2s ease, filter .2s ease; }
.dash-cta:hover { color: #fff; background: linear-gradient(135deg, #ff7126 0%, #ff9824 100%); box-shadow: inset 0 1px 0 rgba(255,255,255,.34), 0 10px 20px rgba(255,112,32,.42); transform: translateY(-2px) scale(1.01); filter: saturate(1.08); }
.dash-cta i { transition: transform .2s ease; }
.dash-cta:hover i { transform: translateX(4px); }
.primary-action:not(.dash-cta) { background: linear-gradient(180deg, #ffd814 0%, #ffb100 60%, #ff9600 100%); color: #fff; box-shadow: 0 3px 8px rgba(213,126,0,.22); }
.primary-action:not(.dash-cta):hover { background: linear-gradient(180deg, #f7ca00 0%, #f0ad00 60%, #ed8a00 100%); }

@keyframes poa-button-shimmer {
  0%, 58% { transform: translateX(-145%); }
  78%, 100% { transform: translateX(145%); }
}
@media (prefers-reduced-motion: reduce) {
  .site-search-button::before, .dash-cta::before { animation: none; }
  .site-search-button, .dash-cta, .dash-cta i { transition: none; }
}
.home-tool-entries { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-bottom: 10px; }
.home-tool-entry { position: relative; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 13px; min-height: 82px; overflow: hidden; padding: 13px 15px; border: 1px solid var(--tro-line); border-left: 4px solid var(--tro-orange); border-radius: 8px; background: #fff; color: var(--tro-ink); text-decoration: none; box-shadow: 0 2px 7px rgba(19,32,51,.04); transition: border-color .18s; }
.home-tool-entry.ip-entry { border-left-color: #4f82ad; }
.home-tool-entry:hover { border-color: #f0a22f; }
.home-tool-entry.ip-entry:hover { border-color: #75a0c3; }
.home-tool-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; color: #9b5600; background: #fff0d7; font-size: 15px; }
.ip-entry .home-tool-icon { color: #3b6b94; background: #e8f1f8; }
.home-tool-copy { min-width: 0; }
.home-tool-copy small, .home-tool-copy strong, .home-tool-copy em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-tool-copy small { color: #7d6343; font: 800 9px 'DM Sans'; letter-spacing: .12em; }
.ip-entry .home-tool-copy small { color: #506a81; }
.home-tool-copy strong { margin-top: 4px; color: #17263a; font-size: 15px; font-weight: 900; }
.home-tool-copy em { margin-top: 4px; color: #536a80; font-size: 10px; font-style: normal; }
.home-tool-action { display: inline-flex; align-items: center; gap: 7px; min-height: 30px; padding: 0 10px; border-radius: 5px; color: #5f4600; background: #fff2bf; font-size: 10px; font-weight: 800; white-space: nowrap; }
.ip-entry .home-tool-action { color: #315f87; background: #eaf2f9; }
.home-tool-action i { font-size: 9px; }
.home-stats { grid-template-columns: repeat(3,minmax(0,1fr)) 1.65fr; }
.home-stats article { min-height: 72px; }
.home-stats .metric-note { display:flex; align-items:center; }
.home-stats .metric-note > span:first-child { margin-top:0; width:40px; height:40px; display:grid; place-items:center; flex:0 0 40px; border:0; border-radius:11px; color:#b3611a; background:linear-gradient(160deg,#fff8ef,#ffe9c9); box-shadow:0 6px 14px -8px rgba(197,105,0,.55), inset 0 1px 0 #fff; }
.home-stats .metric-note>i:last-child { margin-left:auto; color:#816238; }
.home-flow-panel { margin-bottom:10px; padding-bottom:15px; }
.home-flow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:12px; }
.home-flow-step { display:flex; align-items:center; gap:10px; min-width:0; padding:11px 12px; border:1px solid #e1e7ee; border-radius:7px; background:#fbfcfe; color:#223349; text-decoration:none; transition:border-color .18s,background .18s,transform .18s; }
.home-flow-step:hover { border-color:#ffb74a; background:#fffaf0; transform:translateY(-1px); }
.home-flow-number { color:#8f5d15; font:800 11px 'DM Sans'; letter-spacing:.06em; }
.home-flow-step span:nth-child(2) { min-width:0; flex:1; }
.home-flow-step strong,.home-flow-step small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.home-flow-step strong { font-size:11px; }
.home-flow-step small { margin-top:4px; color:#41505f; font-size:9px; }
.home-flow-step>i { color:#796445; font-size:9px; }
.dashboard-stats { gap: 8px; margin-bottom: 10px; }
.dashboard-stats article, .dashboard-panel { border-color: var(--tro-line); border-radius: 8px; box-shadow: 0 2px 7px rgba(19,32,51,.04); }
.dashboard-stats article { min-height: 72px; padding: 11px 13px; }
.home-stats .dash-stat-icon { width:40px; height:40px; display:grid; place-items:center; line-height:1; flex:0 0 40px; border:0; border-radius:11px; }
.home-stats .dash-stat-icon svg, .home-stats .metric-note > span:first-child svg { width:20px; height:20px; display:block; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.home-stats .dash-stat-icon.orange { color:#c26500; background:linear-gradient(160deg,#fff7ec,#ffe8c6); box-shadow:0 6px 14px -8px rgba(197,105,0,.6), inset 0 1px 0 #fff; }
.home-stats .dash-stat-icon.blue { color:#3672a6; background:linear-gradient(160deg,#f2f8fd,#e0edfa); box-shadow:0 6px 14px -8px rgba(54,114,166,.55), inset 0 1px 0 #fff; }
.home-stats .dash-stat-icon.green { color:#2f7a54; background:linear-gradient(160deg,#f0faf4,#ddf0e5); box-shadow:0 6px 14px -8px rgba(47,122,84,.55), inset 0 1px 0 #fff; }
.service-matrix .matrix-icon { border-radius:9px; box-shadow:inset 0 1px 0 rgba(255,255,255,.9); }
.service-matrix .matrix-icon.orange { background:linear-gradient(160deg,#fff7ec,#ffe8c6); }
.service-matrix .matrix-icon.blue { background:linear-gradient(160deg,#f2f8fd,#e0edfa); }
.service-matrix .matrix-icon.green { background:linear-gradient(160deg,#f0faf4,#ddf0e5); }
.service-matrix .matrix-icon.purple { background:linear-gradient(160deg,#f7f4fd,#ece5f8); }
.dashboard-grid { gap: 10px; margin-bottom: 10px; }
.dashboard-panel { padding: 14px 16px; }
.dashboard-panel-head h2 { color: #122033; font-size: 15px; font-weight: 900; }
.dashboard-panel-head p { color: #41505f; }
.dashboard-search-tabs { margin-top: 12px; padding: 3px; background: #f0f3f7; }
.dashboard-search-tab { color: #41505f; }
.dashboard-search-tab.active { color: #122033; background: #fff; box-shadow: 0 1px 3px rgba(15,32,51,.12); }
.dashboard-search-tab i { color: var(--tro-orange-ink); }
.dashboard-search-box { margin-top: 10px; height: 40px; border-color: #ccd6e2; }
.dashboard-search-box:focus-within { border-color: var(--tro-orange); box-shadow: 0 0 0 3px rgba(255,150,0,.12); }
.dashboard-search-box button { color: #111c2b; background: linear-gradient(180deg, #ffd814, #ffab00); }
.search-suggestions { color: #41505f; }
.search-suggestions button { border: 1px solid #d7e1ec; background: #f7faff; color: #476782; }
.priority-item { padding: 9px 0; }
.priority-item small { color: #41505f; }
.recent-cases-panel, .update-panel { min-height: 180px; }
.matrix-panel { padding-bottom: 13px; }
.matrix-panel .text-action { text-decoration: none; }
.service-matrix { gap: 6px; margin-top: 11px; }
.service-matrix>button { border-color: #e1e7ee; border-radius: 6px; padding: 9px; background: #fbfcfe; }
.service-matrix>button:hover { border-color: #ffb74a; background: #fffaf0; }
.knowledge-feed-item small { color: #41505f; }
.service-matrix small { color: #41505f; }

.tro-case-panel { margin: 0 0 10px; }
.tro-table-wrap { margin-top: 10px; overflow-x: auto; border: 1px solid #dfe6ee; border-radius: 6px; }
.tro-table { width: 100%; min-width: 780px; border-collapse: collapse; font-size: 11px; }
.tro-table th { padding: 9px 10px; text-align: left; color: rgba(255,255,255,.94); background: linear-gradient(180deg, #26384d, #1a293c); font-size: 10px; font-weight: 800; }
.tro-table td { padding: 8px 10px; height: 38px; color: #405064; border-bottom: 1px solid #edf1f5; white-space: nowrap; }
.tro-table tr:last-child td { border-bottom: 0; }
.tro-table tbody tr:hover { background: #f8fbff; }
.tro-table td strong { color: #246aac; }
.tro-table td small { display: inline-block; margin-left: 7px; color: #41505f; font-size: 9px; }
.progress-track { display: inline-block; width: 78px; height: 5px; overflow: hidden; vertical-align: middle; border-radius: 99px; background: #e8edf2; }
.progress-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #ffb52f, #ff7900); }
.dashboard-lower-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
.tro-list-panel { min-height: 190px; }
.tro-feed-list { margin-top: 8px; }
.tro-feed-item { width: 100%; display: flex; align-items: center; gap: 9px; padding: 8px 0; border-bottom: 1px solid #edf1f5; text-align: left; }
.tro-feed-item:last-child { border-bottom: 0; }
.tro-feed-item:hover strong { color: #9e5400; }
.tro-thumb { width: 34px; height: 34px; flex: 0 0 auto; overflow: hidden; display: grid; place-items: center; border-radius: 6px; background: #eef2f7; }
.tro-thumb img { width: 100%; height: 100%; object-fit: cover; }
.tro-feed-item div { min-width: 0; flex: 1; }
.tro-feed-item strong, .tro-feed-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tro-feed-item strong { color: #253246; font-size: 11px; }
.tro-feed-item small { margin-top: 3px; color: #41505f; font-size: 9px; }
.risk-pill { padding: 3px 6px; border-radius: 4px; font-size: 9px; white-space: nowrap; }
.risk-pill.high { color: #b34136; background: #fde8e4; }
.risk-pill.medium { color: #8b5e25; background: #fff0d9; }
.risk-pill.low { color: #307451; background: #e7f4eb; }
.tro-date { width: 34px; flex: 0 0 auto; color: #935b0e; font: 700 10px 'DM Sans'; }
.article-feed>i { color: #5a697a; font-size: 9px; }
.footer-bar { margin-top: 10px; background: linear-gradient(180deg, #233145 0%, #182536 100%); color: rgba(239,245,252,.9); }
.footer-shell { min-height: 82px; padding: 12px 18px; display: grid; grid-template-columns: auto minmax(0,1fr) auto auto auto; align-items: center; gap: 18px; }
.footer-brand { display: flex; align-items: center; gap: 10px; }
.footer-mark { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 8px; background: rgba(255,255,255,.1); overflow: hidden; }
.footer-mark img { width: 30px; height: 30px; object-fit: contain; }
.footer-brand strong { display: block; color: #fff; font: 800 17px 'DM Sans'; letter-spacing: .04em; }
.footer-brand span { display: block; margin-top: 3px; color: #58697f; font-size: 10px; }
.footer-links { display: flex; flex-direction: column; gap: 5px; }
.footer-nav { display: flex; flex-wrap: wrap; gap: 12px; font-size: 11px; }
.footer-nav a, .footer-links-right a { color: rgba(239,245,252,.85); text-decoration: none; }
.footer-links small { color: #41505f; font-size: 9px; }
.footer-contact { display: flex; align-items: center; gap: 10px; padding-left: 16px; border-left: 1px solid rgba(255,255,255,.12); color: #bdc8d6; font-size: 10px; white-space: nowrap; }
.footer-contact strong { color: #fff; font-size: 11px; }
.footer-contact i { color: var(--tro-orange-ink); margin-right: 3px; }
.footer-links-right { display: flex; gap: 12px; color: #58697f; font-size: 10px; white-space: nowrap; }
.back-top { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; color: #fff; background: rgba(255,255,255,.05); }
.back-top:hover { border-color: var(--tro-orange); color: var(--tro-orange-ink); }
.detail-drawer, .reading-drawer { border-left: 4px solid var(--tro-orange); }
.service-placeholder-page { min-height: calc(100vh - 62px); display: flex; flex-direction: column; }
.service-placeholder-card { min-height: 260px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 34px 20px; border: 1px dashed #cbd6e2; border-radius: 8px; background: #fff; text-align: center; }
.service-placeholder-card > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; color: #9b5600; background: #fff0d7; font-size: 17px; }
.service-placeholder-card h2 { margin: 15px 0 7px; color: #17263a; font-size: 17px; }
.service-placeholder-card p { max-width: 520px; margin: 0; color: #41505f; font-size: 11px; line-height: 1.75; }
.service-placeholder-card a { display: inline-flex; align-items: center; gap: 7px; margin-top: 18px; color: #9e5400; font-size: 11px; font-weight: 800; text-decoration: none; }
.service-placeholder-page #sharedFooter { margin-top: auto; }
.blank-page { min-height: calc(100vh - 62px); display: flex; flex-direction: column; }
.blank-page #sharedFooter { margin-top: auto; }

/* TRO-style public footer: information-rich, three-column support area. */
.site-footer { position: relative; margin-top: 28px; overflow: hidden; border-top: 4px solid #293b50; background: var(--sidebar-bg, #111820); color: var(--sidebar-text, #d7dde5); }
.site-footer::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px); background-size: 32px 32px; opacity: .45; }
.site-footer > * { position: relative; z-index: 1; }
.site-footer .footer-inner { width: 100%; max-width: 1600px; margin: 0 auto; padding: 28px 22px 18px; }
.site-footer .footer-main-grid { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(180px,.8fr) minmax(0,1.5fr); gap: 30px; align-items: start; }
.site-footer .footer-brand-logo { display: block; width: 180px; margin-bottom: 12px; }
.site-footer .footer-logo-shell { overflow: hidden; padding: 7px 9px; border-radius: 15px; background: #f8fafc; box-shadow: 0 6px 14px rgba(15,23,42,.12); }
.site-footer .footer-brand-logo img { display: block; width: 100%; height: auto; }
.site-footer .footer-topic-grid { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 11px; }
.site-footer .footer-topic-grid span { display: inline-flex; min-height: 23px; align-items: center; padding: 2px 9px; border: 1px solid rgba(255,255,255,.12); border-radius: 999px; background: rgba(255,255,255,.06); color: var(--sidebar-text, #d7dde5); font-size: 10px; white-space: nowrap; }
.site-footer .footer-brand-description { margin: 0; color: var(--sidebar-text, #d7dde5); font-size: 11px; line-height: 1.7; }
.site-footer .footer-section-heading { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,.1); }
.site-footer .footer-section-heading.centered { justify-content: flex-start; }
.site-footer .footer-section-heading > span { width: 4px; height: 13px; border-radius: 999px; background: linear-gradient(180deg, #fbbf24, #f97316); }
.site-footer .footer-section-heading h3 { margin: 0; color: var(--sidebar-text, #d7dde5); font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.site-footer .footer-quick-links-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px 15px; }
.site-footer .footer-quick-links-grid a { color: var(--sidebar-text, #d7dde5); font-size: 11px; text-decoration: none; }
.site-footer .footer-quick-links-grid a:hover, .site-footer a:hover { color: #fbbf24; }
.site-footer .footer-contact-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px 22px; }
.site-footer .footer-contact-item { display: flex; align-items: center; gap: 8px; min-width: 0; }
.site-footer .footer-contact-icon { width: 30px; height: 30px; display: grid; place-items: center; flex: 0 0 30px; border-radius: 7px; color: #fcd34d; background: rgba(255,255,255,.06); }
.site-footer .footer-contact-icon i { font-size: 11px; }
.site-footer .footer-contact-item b, .site-footer .footer-contact-item span { display: block; overflow-wrap: anywhere; }
.site-footer .footer-contact-item b { color: var(--sidebar-text, #d7dde5); font-size: 10px; }
.site-footer .footer-contact-item span { margin-top: 2px; color: var(--sidebar-text, #d7dde5); font-size: 10px; line-height: 1.35; }
.site-footer .footer-bottom { margin-top: 22px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.12); }
/* 版权行已并入 .footer-legal-links（底部栏两行：友情链接 / 版权+备案信息），
   .footer-meta-links 保留在规则里，兼容可能仍在用它的旧页面。 */
.site-footer .footer-meta-links, .site-footer .footer-friend-links, .site-footer .footer-legal-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 5px 10px; color: var(--sidebar-text, #d7dde5); font-size: 10px; line-height: 1.5; }
.site-footer .footer-friend-links, .site-footer .footer-legal-links { margin-top: 9px; }
/* 版权 + 备案信息行条目多（9 段），间距收到 7px 后 1440 宽也能单行排完 */
.site-footer .footer-legal-links { gap: 5px 7px; }
.site-footer a { color: var(--sidebar-text, #d7dde5); text-decoration: none; }
/* 法律行里三个占位项（隐私政策 / 服务条款 / 免责声明）：做成按钮，有 hover 与点击反馈，
   但页面还没建所以点击不跳转。hover/按下的颜色与友情链接保持一致（.site-footer a:hover）。 */
.site-footer .footer-legal-action {
  appearance: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 3px;
  color: inherit;
  background: none;
  font: inherit;
  line-height: inherit;
  cursor: pointer;
  transition: color .16s ease;
}
.site-footer .footer-legal-action:hover,
.site-footer .footer-legal-action:active,
.site-footer .footer-legal-action.is-clicked { color: #fbbf24; }
.site-footer .footer-legal-action:focus-visible { outline: 2px solid #fbbf24; outline-offset: 2px; }

@media (max-width: 1000px) {
  .sidebar { width: 214px; }
  .main-area { margin-left: 214px; }
  .content { padding: 14px 16px 0; }
  #sharedFooter { margin-left: -16px; margin-right: -16px; }
  .dashboard-lower-grid { grid-template-columns: 1fr; }
  .footer-shell { grid-template-columns: 1fr 1fr; }
  .footer-contact { padding-left: 0; border-left: 0; }
  /* 页脚三段栅格在 761~1000 会被压扁：侧边栏在 761px 恢复成固定 214px，
     可用宽度只剩 512~776px，「联系支持」每格文案宽掉到 25~98px（768 档每行 2~3 字、13 行）。
     这里把收单列的断点从 760 提到 1000，与上面的侧边栏断点对齐。 */
  .site-footer .footer-main-grid { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 760px) {
  .sidebar { width: 264px; flex-basis: 264px; }
  .main-area { margin-left: 0; }
  .topbar { height: 58px; padding: 0 14px; }
  body[data-page="home"] .main-area > #sharedTopbar { display: block; }
  .global-search { width: 34px; padding: 0; justify-content: center; border: 0; background: transparent; }
  .global-search input { display: none; }
  .site-search-button { min-width: 34px; width: 34px; padding: 0; }
  .site-search-button span { display: none; }
  .content { padding: 12px 10px 0; }
  #sharedFooter { margin-left: -10px; margin-right: -10px; }
  .dashboard-intro { padding: 15px; }
  .dashboard-intro-actions { justify-content: space-between; margin-top: 13px; }
  .home-tool-entries { grid-template-columns: 1fr; }
  .home-tool-entry { min-height: 76px; padding: 11px 12px; }
  .home-tool-action { padding: 0 8px; }
  .dashboard-stats { grid-template-columns: repeat(2,1fr); }
  .home-stats { grid-template-columns: repeat(2,1fr); }
  .home-stats .metric-note { grid-column:1/-1; }
  .home-flow { grid-template-columns:1fr; }
  .dashboard-panel { padding: 13px; }
  .tro-table { min-width: 720px; }
  .footer-shell { grid-template-columns: 1fr; gap: 10px; }
  .footer-links-right { white-space: normal; }
  .site-footer { margin-top: 20px; }
  .site-footer .footer-inner { padding: 20px 14px 14px; }
  .site-footer .footer-brand-logo { width: 150px; }
  .site-footer .footer-brand-description { font-size: 11px; }
  .site-footer .footer-contact-grid { gap: 8px; }
  .site-footer .footer-meta-links, .site-footer .footer-friend-links, .site-footer .footer-legal-links { justify-content: center; text-align: center; font-size: 9px; }
}

/* Final contrast pass for supporting copy across all POA pages. */
.dashboard-intro p,
.module-intro p,
.section-heading p,
.tool-panel-head p,
.panel-title-row p,
.dashboard-panel-head p,
.card-body p,
.policy-card p,
.ip-tool-card p,
.reserved-banner p,
.knowledge-main-head p,
.article-row p,
.about-columns p,
.service-flow-intro,
.service-flow li p,
.advantage-grid p,
.service-case-preview .section-heading p,
.service-case-row span small,
.services-hero p,
.cases-filter-head p,
.case-summary,
.case-sort,
.case-empty,
.service-placeholder-card p,
.qa-answer,
.qa-ask-panel > p,
.qa-upload-zone,
.qa-upload-zone small,
.policy-feature-copy p,
.policy-feature-points span,
.policy-stream-heading p,
.result-placeholder p,
.reading-body,
.detail-section-card > p,
.detail-list li,
.success-case,
.success-case small,
.types-disclaimer,
.types-status,
  .type-group-head p,
  .types-empty span {
  color: var(--poa-module-copy-color, #41505f) !important;
}
.home-tool-copy em,
.home-flow-step small,
.search-suggestions,
.search-suggestions button,
.priority-item small,
.knowledge-feed-item small,
.service-matrix small,
.tro-feed-item small,
.tro-table td small,
.risk-record small,
.result-ready-head > div span,
.risk-score span,
.risk-score small,
.dashboard-stats span,
.dashboard-stats small,
.metric span,
.metric small,
.knowledge-menu-label,
.knowledge-menu-item span,
.article-kicker,
.article-meta,
.policy-stream-updated,
.term-hint,
.detail-empty,
.section-caption,
.platform-card small,
.services-hero-note small,
.upload-zone span:not(.upload-icon),
.upload-zone em,
.or-divider,
.cases-result-count,
.cases-insights small,
.case-fact dt,
.case-pagination,
.qa-filter-label,
.qa-privacy,
.qa-upload-heading em,
.qa-upload-heading small,
.qa-upload-copy,
.detail-meta-item span,
.case-card-footer {
  color: var(--poa-caption-color, #41505f) !important;
}
.global-search input::placeholder,
.dashboard-search-box input::placeholder,
.types-search input::placeholder,
.policy-search input::placeholder,
.knowledge-search input::placeholder {
  color: #41505f !important;
  opacity: 1;
}
/* 成功案例页筛选输入框：空态提示与公共下拉框占位色保持一致 */
.case-search-field input::placeholder {
  color: #8b95a1 !important;
  opacity: 1;
}
.types-status.error { color: #a24f3e !important; }
@media (min-width: 761px) and (max-height: 760px) {
  .sidebar-status { display: none; }
  .sidebar-bottom { margin-top: 12px; }
  /* .sidebar-qr 紧凑模式见 css/sidebar-refresh.css */
}
@media (max-width: 900px) {
  .qa-layout { grid-template-columns: 1fr; }
  .qa-ask-panel { position: static; }
  .policy-feature { grid-template-columns: 1fr; height: auto; min-height: 0; }
  .policy-feature-visual { height: 220px; min-height: 220px; }
}
@media (max-width: 760px) {
  .qa-list-panel { padding: 18px 16px 5px; }
  .policy-toolbar .policy-search { margin-top: 0; }
  .qa-item summary { min-height: 58px; font-size: 12px; }
  .qa-answer { padding-left: 31px; padding-right: 8px; }
  .qa-ask-panel { padding: 21px 18px 18px; }
  .qa-upload-zone { flex-wrap: wrap; }
  .qa-upload-zone small { width: 100%; margin-left: 22px; }
  .policy-feature-copy { padding: 23px 20px 24px; }
  .policy-feature-copy h2 { font-size: 21px; }
  .policy-feature-visual { height: 185px; min-height: 185px; }
  .policy-visual-overlay { top: 21px; left: 22px; }
  .policy-visual-overlay strong { font-size: 23px; }
  .policy-card { grid-template-columns: minmax(0, 1fr) minmax(112px, 36%); min-height: 188px; }
  .policy-card-copy { padding: 19px 0 17px 16px; }
  .policy-stream-heading { display: block; margin-top: 23px; }
  .policy-stream-updated { margin-top: 9px; }
}

/* --------------------------------------------------------------------------
   图标光学对齐 / Optical icon alignment
   --------------------------------------------------------------------------
   Font Awesome 的字形墨迹在其 1em 行盒里偏上（实测 11–17px 字号偏上 0.75–1.8px），
   与中文文本同行时看起来没有水平对齐。这里统一向下微调 1.25px，让图标与文字视觉居中
   （实测各字号残差 < 0.5px）。
   使用 translate 属性而不是 transform：既能与各处 ::hover 的 transform 动画叠加，
   也不会覆盖 .case-search-field > i 的绝对定位；旋转中的加载图标不参与微调。
   -------------------------------------------------------------------------- */
i.fa-solid:not(.fa-spin),
i.fa-regular:not(.fa-spin),
i.fa-brands:not(.fa-spin) {
  translate: 0 1.25px;
}

/* --------------------------------------------------------------------------
   统一行动按钮 / Unified action buttons
   --------------------------------------------------------------------------
   全站带箭头的行动按钮统一使用顶栏「全站搜索」按钮（.site-search-button）的样式：
   橙色渐变底、白色粗体字、8px 圆角、1px 橙色描边、内高光 + 外投影、悬停上浮。
   覆盖：首页工具入口按钮、仪表盘检索按钮、各模块表单提交按钮、服务页主按钮。
   橙色行动条（.service-contact-cta）上的按钮需要深色底保持对比度，单独还原。
   -------------------------------------------------------------------------- */

/* A. 小尺寸行内行动按钮 —— 与参考按钮完全同规格 */
.home-tool-action,
.ip-entry .home-tool-action,
.dashboard-search-box button,
a.services-hero-primary {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  height: 36px;
  min-height: 36px;
  padding: 0 15px;
  border: 1px solid #ff8a21;
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(135deg, #ff7a2f 0%, #ff9e2f 100%);
  font-size: 12px;
  font-weight: 800;
  text-shadow: 0 1px 2px rgba(133,55,0,.22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 5px 13px rgba(255,112,32,.3);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease, color .2s ease, background .2s ease;
}
.dashboard-search-box button { align-self: center; margin: 0 3px 0 0; border-radius: 8px; }
.home-tool-action i,
.dashboard-search-box button i,
a.services-hero-primary i { font-size: 11px; }

/* B. 模块表单提交类主按钮 —— 同一套橙色主按钮识别色 */
.primary-action:not(.dash-cta) {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid #ff8a21;
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(135deg, #ff7a2f 0%, #ff9e2f 100%);
  font-weight: 800;
  text-shadow: 0 1px 2px rgba(133,55,0,.22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 6px 15px rgba(255,112,32,.34);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease, color .2s ease, background .2s ease;
}

/* C. 悬停 / 按下 */
.home-tool-action:hover,
.ip-entry .home-tool-action:hover,
.dashboard-search-box button:hover,
a.services-hero-primary:hover {
  color: #fff;
  background: linear-gradient(135deg, #ff7126 0%, #ff9824 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), 0 9px 18px rgba(255,112,32,.38);
  transform: translateY(-2px) scale(1.01);
  filter: saturate(1.08);
}
.primary-action:not(.dash-cta):hover {
  color: #fff;
  background: linear-gradient(135deg, #ff7126 0%, #ff9824 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), 0 10px 20px rgba(255,112,32,.42);
  transform: translateY(-2px) scale(1.01);
  filter: saturate(1.08);
}
.home-tool-action:active,
.ip-entry .home-tool-action:active,
.dashboard-search-box button:active,
a.services-hero-primary:active,
.primary-action:not(.dash-cta):active {
  transform: translateY(0) scale(.98);
  box-shadow: inset 0 2px 4px rgba(135,52,0,.22), 0 3px 8px rgba(255,112,32,.22);
}

/* D. 与参考按钮一致的高光扫过动效 */
.home-tool-action::before,
.dashboard-search-box button::before,
a.services-hero-primary::before,
.primary-action:not(.dash-cta)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 22%, rgba(255,255,255,.4) 48%, transparent 74%);
  transform: translateX(-145%);
  animation: poa-button-shimmer 3.8s ease-in-out infinite;
}

/* E. 橙色行动条上的按钮还原为深色底，避免与底色同色 */
.service-contact-cta a.primary-action {
  border: 0;
  color: #fff;
  background: #17293d;
  text-shadow: none;
  box-shadow: none;
}
.service-contact-cta a.primary-action:hover {
  color: #fff;
  background: #263e57;
  box-shadow: none;
  transform: none;
  filter: none;
}
.service-contact-cta a.primary-action::before { display: none; }

@media (prefers-reduced-motion: reduce) {
  .home-tool-action::before,
  .dashboard-search-box button::before,
  a.services-hero-primary::before,
  .primary-action:not(.dash-cta)::before { animation: none; }
  .home-tool-action,
  .dashboard-search-box button,
  a.services-hero-primary,
  .primary-action:not(.dash-cta) { transition: none; }
}

/* F. 同一页面多个高光按钮错开扫光节奏
   原来所有按钮都是 3.8s / delay 0 的 poa-button-shimmer，同一页面会整版同时闪。
   这里为每个按钮指定不同的周期与负延迟（首帧相位错开），周期不同后也不会再重新同步。
   命中同一元素的多条规则故意放在一起，后写的优先级更高。 */
.primary-action:not(.dash-cta)::before { animation-duration: 5.6s; animation-delay: -1.3s; }
.dashboard-search-box button::before { animation-duration: 4.2s; animation-delay: -2.6s; }
a.services-hero-primary::before { animation-duration: 5s; animation-delay: -3.7s; }
.site-search-button::before { animation-duration: 6.4s; animation-delay: -4.4s; }
.dash-cta::before { animation-duration: 4.6s; animation-delay: -1.9s; }
.home-tool-entries > .home-tool-entry:nth-child(1) .home-tool-action::before { animation-duration: 3.8s; animation-delay: -.6s; }
.home-tool-entries > .home-tool-entry:nth-child(2) .home-tool-action::before { animation-duration: 5.4s; animation-delay: -3.1s; }
.ip-tool-grid > .ip-tool-card:nth-child(1) .ip-check::before { animation-duration: 3.8s; animation-delay: -.4s; }
.ip-tool-grid > .ip-tool-card:nth-child(2) .ip-check::before { animation-duration: 4.8s; animation-delay: -2.2s; }
.ip-tool-grid > .ip-tool-card:nth-child(3) .ip-check::before { animation-duration: 5.8s; animation-delay: -4s; }

body[data-page="policy"] .policy-toolbar { justify-content: space-between; flex-wrap: wrap; }
.policy-marketplace-filter {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  width: min(250px, 100%);
  height: 36px;
  padding: 0 11px;
  border: 1px solid #e4e3df;
  border-radius: 7px;
  color: #41505f;
  background: #fff;
}
.policy-marketplace-filter:focus-within { border-color: #eeb76f; box-shadow: 0 0 0 3px #fff1dd; }
.policy-marketplace-filter i { color: var(--tro-orange-ink); }
.policy-marketplace-filter.is-enhanced { padding-right: 0; }
.policy-marketplace-filter.is-enhanced > .poa-select-trigger { flex: 1; min-width: 0; width: auto; }
.policy-marketplace-filter select {
  min-width: 0;
  width: 100%;
  border: 0;
  outline: 0;
  color: var(--tro-ink);
  background: transparent;
  font-size: 11px;
}
.policy-card { min-height: 250px; }
.policy-card-copy { padding-right: 23px; }
.policy-card h3 { margin-bottom: 4px; }
.policy-card-original {
  display: block;
  min-height: 13px;
  margin-bottom: 9px;
  color: #75808a;
  font-size: 9px;
  line-height: 1.45;
}
.policy-card p { min-height: 0; }
.policy-card-market {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 11px;
  color: #5b6874;
  font-size: 9px;
  font-weight: 600;
}
.policy-card-market i { color: var(--tro-orange-ink); }
.policy-card-copy .policy-source-link { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 15px; }
.policy-feature-copy .policy-source-link { display: inline-flex; align-items: center; gap: 7px; }
.policy-grid > .poa-state,
.policy-grid > .policy-state-fallback { grid-column: 1 / -1; }
.policy-state-fallback { margin: 0; padding: 30px; text-align: center; color: #41505f; }

@media (max-width: 760px) {
  .policy-marketplace-filter { width: 100%; }
  .policy-feature-meta { padding: 23px 20px 24px; }
  .policy-feature-meta > strong { font-size: 19px; }
  .policy-card { min-height: 0; }
  .policy-card-copy { padding: 19px 16px 17px; }
  .policy-card-original { display: none; }
  .policy-card p { font-size: 10px; line-height: 1.65; }
  .policy-card-market { margin-top: 8px; }
  .policy-card-actions { flex-wrap: wrap; gap: 9px 14px; padding-top: 12px; }
  .policy-card-actions .policy-source-link { padding-top: 0; }
  .policy-reader-shell { padding: 10px; }
  .policy-reader { width: 100%; height: calc(100vh - 20px); padding: 26px 20px 20px; }
  .policy-reader-header h2 { font-size: 21px; }
  .policy-reader-footer { align-items: flex-start; flex-direction: column; }
}
