/* ============================================================
   付款履约记录平台 · 全局样式（基础层）
   分层策略：
   1) 本文件 = 全局基础层：重置 / 布局 / 顶部底部导航 / 通用组件 / 表单。
      由 header.php 统一引入一次，全站生效。
   2) 单页 / 单功能专有样式用"页面前缀"命名（home- / co- / submit- / admin-），
      量大时再拆成独立 css 文件按需引入（见 结构图与说明.txt）。
   ============================================================ */

/* ===== 基础 / 重置 ===== */
* { box-sizing: border-box; }
body { margin:0; font-family:-apple-system,system-ui,"PingFang SC","Microsoft YaHei",sans-serif; background:#f5f6f8; color:#222; }

/* ===== 顶部导航（header.php） ===== */
.topbar { background:#c47f12; color:#fff; padding:12px 16px; position:sticky; top:0; z-index:10; display:flex; gap:10px; align-items:center; }
.topbar h1 { font-size:17px; margin:0; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.topbar-logo { height:22px; width:auto; vertical-align:middle; margin-right:5px; }

/* 顶部菜单：桌面端 = 顶栏右侧内联；移动端 = 汉堡下拉（菜单项由 header.php 单一数据源渲染） */
.nav-inline { display:none; align-items:center; gap:8px; }
.nav-inline a { color:#fff; text-decoration:none; font-size:14px; padding:6px 10px; border-radius:6px; }
.nav-inline a.active { background:rgba(255,255,255,.20); font-weight:600; }
/* 顶栏内的幽灵按钮（退出/首页等）：白底橙字；用更高权重覆盖 .nav-inline a 的白色文字，避免白底白字看不见 */
.topbar .btn-ghost { color:#c47f12; }
.hamburger { display:block; background:none; border:none; color:#fff; font-size:22px; line-height:1; padding:4px 8px; cursor:pointer; }
.navmenu { display:none; position:absolute; top:100%; left:0; right:0; background:#fff; box-shadow:0 6px 16px rgba(0,0,0,.15); z-index:30; flex-direction:column; }
.navmenu.open { display:flex; }
.navmenu a { display:block; padding:14px 16px; color:#333; text-decoration:none; font-size:15px; border-bottom:1px solid #f0f0f0; }
.navmenu a.active { color:#c47f12; font-weight:600; }
@media(min-width:760px){ .hamburger{ display:none } .nav-inline{ display:flex } .navmenu{ display:none !important } }

/* ===== 底部导航（footer.php）：手机端显示，PC 端隐藏 ===== */
.bottomnav { position:fixed; left:0; right:0; bottom:0; height:54px; padding-bottom:env(safe-area-inset-bottom, 0px); background:#fff; border-top:1px solid #eee; display:flex; z-index:20; }
/* 图标 + 文字竖排（类 App TabBar） */
.bottomnav a { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; color:#666; text-decoration:none; }
.bottomnav a i { font-size:17px; line-height:1; }
.bottomnav a .bn-txt { font-size:11px; line-height:1.2; }
.bottomnav a.active { color:#c47f12; font-weight:600; }
/* 未读消息红点角标（与顶栏铃铛同源：unread>0 才显示） */
.bottomnav a .bn-ico { position:relative; display:inline-flex; }
.bottomnav a .bn-badge { position:absolute; top:-5px; right:-9px; background:#e53935; color:#fff; font-size:10px; line-height:1; padding:2px 4px; border-radius:10px; min-width:14px; text-align:center; }
@media(min-width:760px){ .bottomnav{ display:none } }
/* 移动端：底部导航固定悬浮 54px，所有页面正文需让出底部空间，否则最后一屏被遮（2026-10-24 修复：全局一处覆盖 admin/account/首页/企业页等全部页面）。
   用 body 底部内边距统一留白 = 导航高 54 + iPhone 安全区 + 余量；box-sizing:border-box 下导航实高即 54px。 */
@media (max-width:759px){
  body { padding-bottom: calc(54px + env(safe-area-inset-bottom, 0px) + 10px); }
}

/* ===== 站点页脚（footer.php，全站统一） ===== */
.site-footer { background:#fff; border-top:1px solid #eee; color:#666; font-size:13px; }
.site-footer .sf-inner { max-width:1140px; margin:0 auto; padding:22px 16px 28px; }
.site-footer .sf-brand { display:flex; align-items:center; gap:8px; margin-bottom:16px; flex-wrap:wrap; }
.site-footer .sf-logo { height:22px; width:auto; }
.site-footer .sf-name { font-size:16px; font-weight:700; color:#c47f12; }
.site-footer .sf-tag { color:#999; font-size:12px; }
.site-footer .sf-cols { display:flex; flex-wrap:wrap; gap:18px 28px; }
.site-footer .sf-col { flex:1 1 200px; min-width:160px; }
.site-footer .sf-col h4 { font-size:13px; color:#333; margin:0 0 6px; font-weight:600; }
.site-footer .sf-col p { margin:0; line-height:1.7; color:#888; }
.site-footer .sf-col a { color:#c47f12; text-decoration:none; }
.site-footer .sf-col a:hover { text-decoration:underline; }
.site-footer .sf-bottom { border-top:1px solid #f0f0f0; margin-top:16px; padding-top:14px; color:#aaa; font-size:12px; display:flex; flex-wrap:wrap; gap:6px 16px; justify-content:space-between; }
/* 移动端：固定底部导航(54px)会盖住页脚底部，补留白让其内容可见 */
@media(max-width:759px){ .site-footer .sf-inner{ padding-bottom:62px } }

/* 后台/用户中心：移动端底部导航会遮挡内容，补底部留白 */
@media(max-width:759px){ .admin-main{ padding-bottom:64px } }

/* ===== 布局容器 ===== */
.wrap { max-width:720px; margin:0 auto; padding:10px 12px 70px; }

/* ===== 通用组件：按钮 ===== */
.btn { background:#c47f12; color:#fff; border:none; padding:9px 14px; border-radius:6px; font-size:14px; text-decoration:none; display:inline-block; cursor:pointer; }
.btn-ghost { background:#fff; color:#c47f12; border:1px solid #c47f12; }

/* ===== 通用组件：卡片 / 标签 / 记录 ===== */
.card { background:#fff; border-radius:10px; padding:14px; margin:10px 0; box-shadow:0 1px 3px rgba(0,0,0,.06); }
.card .co { font-size:16px; font-weight:600; }
/* 企业名 / 板块标题 + 右侧操作按钮（关注、打听）同行布局，手机端自动换行不挤压 */
.co-name-row { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.co-name-row .co-name { flex:1 1 auto; min-width:0; word-break:break-word; }
.co-name-row .btn-xs { flex:0 0 auto; }
/* 打听点击反馈：占位容器（始终预留一行高度，出现文字不撑动下方内容），文字靠右（对齐标题行右侧的「打听一下」按钮） */
.inq-msg { text-align:right; font-size:12px; line-height:1.6; min-height:20px; margin-top:4px; color:#999; visibility:hidden; }
.inq-msg.show { visibility:visible; }
.inq-msg.err { color:#c0392b; }
.inq-msg.ok { color:#1a7f37; }
.tag { display:inline-block; font-size:12px; padding:2px 8px; border-radius:10px; margin-left:6px; vertical-align:middle; }
.tag-ok { background:#e6f7ec; color:#1a7f37; }
.tag-bad { background:#fde8e8; color:#c0392b; }
.tag-part { background:#fff4e0; color:#b9770e; }
.meta { color:#888; font-size:13px; margin-top:6px; line-height:1.6; }
.ac-phone-row { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:12px; padding-top:12px; border-top:1px solid #f0ece3; }
.ac-phone-label { font-size:13px; color:#555; }
.ev { color:#666; font-size:13px; margin-top:8px; }
/* 搜索结果卡片：去除按钮与记录数，整卡可点（stretched-link） */
.co-card { position:relative; cursor:pointer; transition:box-shadow .15s; }
.co-card:hover { box-shadow:0 2px 10px rgba(0,0,0,.14); }
.co-link { display:block; color:inherit; text-decoration:none; padding-right:26px; }
.co-link::after { content:''; position:absolute; inset:0; }   /* 点击区铺满整卡 */
.co-go { position:absolute; right:10px; top:50%; transform:translateY(-50%); font-size:22px; line-height:1; color:#c47f12; font-weight:700; }
/* co-intro：SEO/GEO 描述段落，仅存于 HTML 源码供搜索引擎/AI 抓取，前台对用户视觉隐藏（sr-only，非伪装） */
.co-intro { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.overdue { color:#555; font-size:12px; font-weight:400; vertical-align:middle; margin-left:6px; }

/* ===== 首页专有（index.php）—— 加 home- 前缀，避免与其它页冲突 ===== */
/* 内层表单：居中限宽（与 .wrap 同为 1140，左右 padding 也用 12 对齐左边缘；琥珀条由外层 sticky 提供，铺满整屏无白边） */
.home-search-form { max-width:1140px; margin:0 auto; padding:10px 12px; display:flex; gap:8px; align-items:center; }
.home-search-inner { width:100%; }
/* 首页品牌 Hero：琥珀品牌块 + 白盾 logo + 白字品牌词；水印 = 散落线描图标（盾牌/放大镜/文档/对勾）；搜索框吸顶在 Hero 之外 */
.home-hero { position:relative; overflow:hidden; text-align:center; padding:12px 16px; min-height:66px; display:flex; flex-direction:column; align-items:center; justify-content:center; background:#c47f12; color:#fff; }
/* PC 端抬高 hero，给散落水印留出纵深；手机端保持 66px 紧凑（屏幕空间有限） */
@media (min-width:760px){ .home-hero{ min-height:120px; } }
/* 水印：整幅铺满 hero（不再用单个居中盾牌） */
.home-hero-watermark { position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }
/* 品牌行：logo 在左、品牌词在右（左右结构） */
.home-hero-brand { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; gap:16px; }
/* hero logo：源图已换成 512×512 橙底白标（橙底与 hero 同色，视觉不变）。
   方块画布左右各约 11px 是橙色留白，用 margin-right:-11px 抵消，保持 logo 与品牌词的视觉间距仍是 16px */
.home-hero-logo { height:72px; width:auto; display:block; margin-right:-11px; }
.home-hero-slogan { display:flex; flex-direction:column; align-items:flex-start; color:#fff; line-height:1.15; }
.home-hero-slogan .hb-name { font-size:28px; font-weight:700; }
.home-hero-slogan .hb-tag { font-size:16px; font-weight:400; opacity:.92; margin-top:3px; }
/* 搜索框：移出 Hero，滚动时吸顶（logo/品牌词不吸顶）；外层整宽琥珀条铺满屏幕，PC 端左右无白边；top = 顶栏高(~46) + 间距(8) */
.home-search-sticky { position:sticky; top:54px; z-index:9; background:#c47f12; }
/* 搜索框内左侧放大镜：用 background-image（内联 SVG）实现，不改 DOM →
   首页 index.php 与 企业档案 company.php 共用 .home-search-form，一处生效两处 */
.home-search-form input { flex:1 1 auto; min-width:0; width:auto; padding:10px 10px 10px 36px; color:#222; border:1px solid #fff; border-radius:6px; font-size:15px;
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999999' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='16.5' y1='16.5' x2='21' y2='21'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:12px 50%; background-size:16px 16px; }
.home-search-form .btn { flex:0 0 auto; white-space:nowrap; background:#fff; color:#c47f12; border:1px solid #fff; }
/* 手机端 hero 高度保持 66px 紧凑（屏幕有限，不抬升；水印整幅铺满，靠低透明度保持克制） */

/* ===== 表单（submit.php 等多页通用） ===== */
form .f { margin:14px 0; }
form label { display:block; font-size:14px; margin-bottom:6px; font-weight:600; }
form input, form select, form textarea { width:100%; padding:10px; border:1px solid #ddd; border-radius:6px; font-size:15px; font-family:inherit; resize:vertical; }
.radios label { display:block; font-weight:400; padding:10px; border:1px solid #eee; border-radius:6px; margin:6px 0; }
/* 付款状态分段控件（submit.php）：横排一行，移动端不换行、极窄兜底换行 */
.seg { display:flex; gap:5px; flex-wrap:wrap; }
.seg input[type=radio] { position:absolute; opacity:0; width:0; height:0; }
.seg label { flex:1 1 auto; min-width:66px; text-align:center; padding:10px 5px; border:1px solid #ddd; border-radius:8px; background:#fff; color:#555; cursor:pointer; font-size:14px; font-weight:400; }
.seg input[type=radio]:checked + label { background:#c47f12; color:#fff; border-color:#c47f12; font-weight:600; }
.checks label { display:inline-block; font-weight:400; padding:8px 10px; border:1px solid #eee; border-radius:6px; margin:4px 4px 0 0; font-size:13px; }
/* 修改资料「开启邮件提醒」等单行勾选：勾选框 + 文字同一行（覆盖全局 form input{width:100%} 把勾选框撑成整行的问题） */
.chk { display:flex; align-items:center; gap:8px; font-weight:400; font-size:14px; margin:10px 0 2px; cursor:pointer; line-height:1.4; }
.chk input[type=checkbox] { width:auto; height:auto; flex:0 0 auto; margin:0; }
/* 证据文件行（提交页 / 详情页） */
.ev-row { display:flex; gap:8px; align-items:center; margin:6px 0; }
.ev-row input[type=file] { flex:1 1 auto; }
.ev-row select { width:auto; flex:0 0 88px; }
.ev-row .ev-del { white-space:nowrap; width:auto; height:auto; border:1px solid #ddd; background:#fff; border-radius:6px; color:#c0392b; font-size:13px; line-height:1.4; padding:8px 12px; cursor:pointer; flex:0 0 auto; }
.ev-row .ev-del:hover { background:#c0392b; color:#fff; }
.ev-note { font-size:12px; color:#999; margin-top:6px; line-height:1.5; }
@media (max-width:560px){ .ev-row { flex-wrap:wrap; } .ev-row input[type=file]{ flex:1 1 auto; min-width:0; } .ev-row select{ flex:1 1 auto; } }
#evAdd, .ev-add { margin-top:6px; }
.gate-btns { display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; }
.ev-file { margin:6px 0; }
.ev-link { color:#c47f12; text-decoration:underline; font-weight:600; margin-left:6px; }
.admin-ev { margin:8px 0; }
.admin-ev a { color:#c47f12; text-decoration:underline; }
.note { font-size:12px; color:#999; line-height:1.6; }
.alert { background:#fff4e0; color:#b9770e; padding:10px; border-radius:6px; font-size:13px; margin:10px 0; }

/* 提交页表单：标签左、控件右（所有宽度横排；标签按内容自适应宽度，标题紧贴输入框，间隙仅保留 flex 列间距） */
.submit-form .f { display:flex; flex-wrap:wrap; align-items:flex-start; gap:10px 12px; margin:12px 0; }
.submit-form .f > label { flex:0 0 auto; white-space:nowrap; text-align:left; padding-top:10px; font-size:14px; color:#444; }
.submit-form .f > input, .submit-form .f > .seg, .submit-form .f > #evRows { flex:1 1 auto; width:auto; min-width:0; }
/* 匹配反馈：从控件左缘起，占右侧整行（左缘=标签内容宽约56px + 列间距12px） */
.submit-form .f > .submit-match { flex:0 0 calc(100% - 68px); margin-left:68px; }
/* 添加证据 + 说明小字 同行（按钮右侧接说明，省高度） */
.submit-form .f > .ev-actions { display:flex; align-items:center; gap:12px; flex:0 0 auto; margin-left:68px; flex-wrap:wrap; }
.submit-form .f > .ev-actions .ev-note { flex:0 0 auto; margin:0; }
.submit-form .f.f-submit { margin-left:68px; }
/* 手机端：提交按钮加宽并居中（PC 端保持原样不动） */
@media (max-width:760px){
  .submit-form .f.f-submit { margin-left:0; display:flex; justify-content:center; }
  .submit-form .f.f-submit .btn { display:block; width:100%; text-align:center; }
}

/* ===== 异议提交页（dispute.php）：标签左 / 控件右 左右结构 ===== */
.dispute-form .f-row { display:flex; flex-wrap:wrap; align-items:flex-start; gap:10px 8px; margin:12px 0; }
.dispute-form .f-row > label { flex:0 0 68px; width:68px; padding-top:10px; font-size:14px; color:#444; font-weight:600; }
.dispute-form .f-row > input { flex:1 1 auto; min-width:0; width:auto; }
/* 异议理由：三个筛选框横排同一行（手机/电脑均不换行，框内文字自适应换行） */
.dispute-form .f-row > .radios { flex:1 1 auto; min-width:0; display:flex; flex-wrap:nowrap; gap:8px; padding-top:2px; }
.dispute-form .f-row > .radios label { flex:1 1 0; min-width:0; margin:0; padding:9px 6px; border:1px solid #ddd; border-radius:8px; font-weight:400; font-size:13px; line-height:1.3; text-align:center; }
.dispute-form .f-row > .radios input[type=radio] { width:auto; margin:0 4px 0 0; vertical-align:middle; }
/* 标题后括号内小字说明（上传区等） */
.dispute-form .f-subnote { display:inline; font-size:12px; font-weight:400; color:#999; margin-left:4px; }
/* 手机端：提交按钮占满一行并居中 */
@media (max-width:760px){ .dispute-form > button.btn[type=submit]{ display:block; width:100%; text-align:center; } }
/* 手机端：文件框与删除按钮同行。根因：全局 form input{width:100%} 使 file 框 flex-basis=整行宽，
   而 .ev-row 移动端有 flex-wrap:wrap（换行判定发生在收缩之前）→ 删除按钮必被挤到第二行。
   PC 端 .ev-row 本就 nowrap 所以正常；此处仅对 dispute-form 关闭 wrap，不影响 submit 等其它页。 */
@media (max-width:560px){ .dispute-form .ev-row { flex-wrap:nowrap; } }
/* 手机端：标题与输入框/选择框保持同一行（标签按内容自适应窄宽、控件占满剩余宽度），间距收紧给控件更多宽度 */
@media (max-width:560px){
  .dispute-form .f-row { flex-wrap:nowrap; gap:10px 6px; }
  .dispute-form .f-row > label { flex:0 0 auto; width:auto; }
}

/* ===== 提交页：企业档案自动匹配反馈（submit- 语义，作用域限本页表单内） ===== */
.submit-match { font-size:12px; line-height:1.5; margin-top:6px; }
.submit-match.has { padding:6px 8px; border-radius:6px; background:#f7f9fb; border:1px solid #eef1f4; }
.submit-match .sm-ok   { display:block; color:#1a7f37; }
.submit-match .sm-warn { display:block; color:#b9770e; margin-top:3px; }
.submit-match .sm-info { display:block; color:#888; }

/* 自制弹窗（提交前确认 / 提交后成功） */
.modal-mask { position:fixed; inset:0; background:rgba(0,0,0,.45); display:none; align-items:center; justify-content:center; z-index:9999; padding:16px; }
.modal-card { background:#fff; border-radius:12px; max-width:440px; width:100%; padding:22px 22px 18px; box-shadow:0 12px 48px rgba(0,0,0,.22); }
.modal-title { font-size:17px; font-weight:700; color:#222; margin-bottom:12px; }
.modal-body { font-size:14px; color:#444; line-height:1.7; }
.modal-body .sm-sum { margin:0 0 6px; }
.modal-body b { color:#c47f12; }
.modal-body .sm-tip { font-size:12px; color:#8a6d3b; background:#fff8ee; border:1px solid #f3e2c7; padding:9px 11px; border-radius:6px; margin:12px 0 0; }
.modal-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:18px; }

/* ===== 后台 / 用户中心 壳（admin/account 目录） ===== */
.topbar-right { margin-left:auto; display:flex; gap:8px; }
.admin-wrap { display:flex; min-height:calc(100vh - 52px); }
.account-nav { width:180px; background:#222; color:#fff; padding:14px 0; flex:0 0 auto; }
.account-nav a { position:relative; display:flex; align-items:center; gap:10px; color:#ccc; padding:12px 18px; text-decoration:none; font-size:15px; }
.account-nav a i { width:18px; text-align:center; font-size:15px; }
.account-nav a.cur { background:#c47f12; color:#fff; }   /* 当前页标记（PC 侧栏/子页；手机宫格隐藏 home，子页宫格隐藏，故宫格上不会触发） */
/* 橙底 hover 高亮：仅限真正有 hover 能力的指针设备(桌面鼠标)。触屏无 hover，避免 iOS/微信回跳后 :hover 粘滞把图标盖成橙块（2026-10-24 修复） */
@media (hover: hover) and (pointer: fine) {
  .account-nav a:hover { background:#c47f12; color:#fff; }
  .is-home .account-nav a:hover i { color:#fff; }   /* hover 时图标反转成白，橙底上才看得清 */
}
/* 未读消息数角标（PC 侧栏右侧 / 手机宫格右上，仿 App 图标角标） */
.account-nav a .nav-badge { position:absolute; top:7px; right:10px; background:#e53935; color:#fff; font-size:10px; line-height:1; padding:2px 5px; border-radius:10px; min-width:14px; text-align:center; }
.account-nav a.cur .nav-badge { background:#fff; color:#c47f12; }
.admin-main { flex:1; padding:18px; background:#f5f5f5; }

/* 回应类型：三个一级按钮同一行（已结清 / 记录不实 / 其他） */
.intent-3col { display:flex; flex-wrap:nowrap; gap:8px; flex:1 1 auto; min-width:0; }
.intent-3col label { flex:1 1 0; min-width:0; border:1px solid #c47f12; border-radius:8px; padding:11px 8px; text-align:center; cursor:pointer; background:#fff; color:#c47f12; font-weight:600; font-size:14px; line-height:1.3; transition:all .15s; white-space:nowrap; }
.intent-3col label input[type=radio] { display:none; }
.intent-3col label.sel, .intent-3col label:active { background:#c47f12; color:#fff; }
@media (max-width:560px){ .intent-3col label { padding:11px 4px; font-size:13px; } }
.account-bar { display:none; }   /* 默认(PC)隐藏，仅手机端子页显示 */
/* 修改资料页卡片：PC 居中限宽（与首页内容区一致）；手机端重排到宫格菜单下方见下方 max-width:600px 块 */
.ac-profile { max-width:520px; margin:30px auto; }
@media(max-width:600px){
  .admin-wrap { flex-direction:column; }
  /* 概览页(is-home)：导航为宫格菜单（APP 主页感，菜单增多自动换行） */
  .is-home .account-nav { width:100%; display:grid; grid-template-columns:repeat(auto-fit, minmax(58px,1fr)); gap:5px; padding:8px; background:#f5f5f5; align-content:start; }
  .is-home .account-nav a { flex-direction:column; gap:4px; padding:8px 2px; color:#333; font-size:11px; text-align:center; line-height:1.3; }
  .is-home .account-nav a i { width:auto; font-size:1.35rem; color:#c47f12; -webkit-tap-highlight-color:transparent; }   /* 图标品牌橙；去掉点按灰闪 */
  .is-home .account-nav a:active { background:#ececec; }   /* 触屏点按反馈：浅灰，不挡品牌橙图标（不用橙底，避免回跳粘滞） */
  .is-home .account-nav a.cur { background:#c47f12; color:#fff; }
  .is-home .account-nav a.cur i { color:#fff; }
  .is-home .account-nav a.nav-home { display:none; }   /* 手机端主页按钮冗余：当前已在此页，PC 端保留 */
  /* 手机端：内容区盒子消解，内部卡片升为 admin-wrap 直接 flex 项，便于重排为「欢迎/概览 → 宫格 → 统计」 */
  .admin-main { display:contents; }
  .admin-wrap.is-home { background:#f5f5f5; padding:0; }   /* 底部留白改由全局 body padding-bottom(移动端)统一处理，避免与 .is-sub/公网页重复造留白 */
  /* 重排顺序：欢迎/概览(1) → 宫格菜单(2) → 统计(3) → 趋势(4) → 天眼查额度(5) → 说明(6)
     ⚠ 铁律：.admin-main 此处 display:contents，其子卡片全部变成 .admin-wrap 的直接 flex 项，
     凡未写 order 的卡片默认 order:0 → 会排到 order:1 的「概览」之前（表现为"跑到最上面"）。
     以后在后台主页新增任何卡片，必须在此处补 order + 左右 margin，并顺延后续卡片序号。 */
  .ac-welcome, .admin-overview { order:1; margin:10px 8px; }
  .is-home .account-nav { order:2; }
  .ac-stats-block, .admin-stat-block { order:3; margin:0 8px 10px; }
  .ac-invite { order:4; margin:0 8px 10px; }   /* 账户中心「我的邀请」：紧跟统计区，未写 order 会跑到「欢迎」上面 */
  .admin-trend-card { order:4; margin:0 8px 10px; }
  .admin-tyc-quota { order:5; margin:0 8px 10px; }
  .admin-note-block { order:6; margin:0 8px 10px; }
  /* 修改资料页(is-home 子页)：内容卡片排到宫格菜单(order:2)下方，未写 order 会跑到宫格上面 */
  .is-home .ac-profile { order:3; margin:0 8px 10px; max-width:none; }
  .is-home .ac-profile > .card { margin:0; }
  /* 子页(is-sub)：隐藏宫格，改用顶部返回条，列表页保持纯净 */
  .is-sub .account-nav { display:none; }
  .is-sub .account-bar { display:flex; align-items:center; gap:10px; padding:10px 14px; background:#fff; border-bottom:1px solid #eee; position:sticky; top:54px; z-index:9; box-shadow:0 1px 3px rgba(0,0,0,.06); }   /* 置顶：滑长列表时返回条钉在橙顶栏(高54px)正下方，不随内容滚走（2026-10-24） */
  .account-bar .ab-back { color:#c47f12; text-decoration:none; font-size:14px; display:flex; align-items:center; gap:4px; white-space:nowrap; }
}
/* 我的统计（账户中心首页）：四格同一行 —— 手机 2×2、PC 一行四格；整格可点（统计即入口）。
   ⚠ 加第 5 格时把 PC 那条改成 repeat(auto-fit,minmax(180px,1fr))，否则第 5 格会掉到第二行。 */
.ac-stats { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; margin-bottom:14px; }
/* 第 5 格「我的贡献」：手机占满整行，避免 2 列出现孤格；PC(≥760) 改自适应列数，一行可容 5 格。 */
.ac-stat-contrib { grid-column: 1 / -1; }
@media(min-width:760px){ .ac-stats { grid-template-columns:repeat(auto-fit, minmax(180px,1fr)); gap:12px; } .ac-stat-contrib { grid-column: auto; } }
/* 同一套盒子同时供 <a>（跳转）与 <button>（开弹窗）使用：必须清掉两者默认样式，否则高度/字体不一致 */
.ac-stat { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
  min-height:80px; padding:14px 10px; background:#fff; border:1px solid #eee; border-radius:10px;
  text-align:center; text-decoration:none; color:inherit; font:inherit; cursor:pointer;
  -webkit-tap-highlight-color:transparent; transition:border-color .15s, background .15s; }
.ac-n { display:block; font-size:22px; font-weight:500; color:#c47f12; line-height:1.25; }
.ac-l { display:block; font-size:12px; color:#666; margin-top:4px; }
.ac-sub { display:block; font-size:11px; color:#c47f12; margin-top:3px; }
/* 可点提示：右侧居中浅灰小箭头（顶角摆放像装饰、站内白底上几乎看不见，故居中并加深）；
   PC hover 转橙 + 边框微暖，手机无 hover 靠箭头本身体现可点 + :active 反馈 */
.ac-go { position:absolute; right:10px; top:50%; transform:translateY(-50%); font-size:16px; line-height:1; color:#c8bda8; transition:color .15s; }
@media(hover:hover){
  .ac-stat:hover { border-color:#e0a94a; background:#fffdf7; }
  .ac-stat:hover .ac-go { color:#c47f12; }
}
.ac-stat:active { background:#fdf6e9; }
.ac-stat:focus-visible { outline:2px solid #c47f12; outline-offset:2px; }

/* ===== 响应式 ===== */
/* PC 画布：960 → 1140（2026-10-17）。原 960 让首页各板块偏窄、核心机制四格挤成小卡；
   放宽后四格/数据卡/打听评价双列同步变宽。max-width 只是上限，窄窗口仍按视口自适应。
   注意：.home-search-form 与 .site-footer .sf-inner 必须同为 1140，否则左边缘错位。 */
@media(min-width:760px){ .wrap{ max-width:1140px; padding-bottom:12px; } }

/* ===== 状态标签（账户中心/后台通用，ds- 后缀对应 disputes.status） ===== */
.tag { display:inline-block; padding:2px 9px; border-radius:11px; font-size:12px; background:#eee; color:#555; }
.ds-0 { background:#fde8e8; color:#b42318; }   /* 已下架 */
.ds-1 { background:#fff4e0; color:#b9770e; }   /* 待审 */
.ds-2 { background:#e0ecff; color:#1d4ed8; }   /* 转送中 */
.ds-3 { background:#ede9fe; color:#6d28d9; }   /* 反通知待决 */
.ds-4 { background:#e7f7ec; color:#15803d; }   /* 已恢复 */
.ds-5 { background:#f1f1f1; color:#666; }      /* 已驳回 */
.pr-1 { background:#e7f7ec; color:#15803d; }   /* 记录展示中 */
.pr-2 { background:#fff4e0; color:#b9770e; }   /* 记录争议中（隐去） */

/* ===== 账户中心：处理进度时间线 ===== */
.timeline { list-style:none; margin:8px 0; padding:0 0 0 14px; border-left:2px solid #e3e3e3; }
.timeline li { position:relative; padding:6px 0; font-size:13px; color:#444; }
.timeline li::before { content:''; position:absolute; left:-19px; top:11px; width:9px; height:9px; border-radius:50%; background:#c47f12; }
.t-time { color:#999; margin-right:6px; }
.t-actor { color:#c47f12; margin-left:4px; }

/* 站内通知铃铛（顶栏右侧） */
.nav-bell { position:relative; display:inline-flex; align-items:center; color:#fff; text-decoration:none; font-size:16px; margin-left:4px; }
.nav-bell .bell-badge { position:absolute; top:-6px; right:-8px; background:#e53935; color:#fff; font-size:10px; line-height:1; padding:2px 4px; border-radius:10px; min-width:14px; text-align:center; }
/* 通知列表 */
.noti-item.unread { border-left:3px solid #c47f12; cursor:pointer; }
.noti-item.unread:hover { background:#fffdf8; }
.noti-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#c47f12; margin-left:6px; vertical-align:middle; }

/* ===== 首页流水：两个竖向滚动板块（PC 左右并列 / 手机上下堆叠，均完整显示不截断） ===== */
.vticker-wrap { display:flex; flex-direction:column; gap:12px; margin:10px 0; }
/* 默认（竖排/手机）：板块按内容自适应高度，避免 flex-basis:0 在不定高列容器里把高度塌成 0 而整体消失 */
.vticker { min-width:0; background:#fff; border:1px solid #eee; border-radius:8px; overflow:hidden; display:flex; flex-direction:column; }
/* 宽屏横排时再启用等分宽度（此时 flex-basis:0 只影响宽度，高度由 stretch 撑开，安全） */
@media (min-width:768px){ .vticker-wrap { flex-direction:row; align-items:stretch; } .vticker { flex:1 1 0; } }
.vticker-head { font-size:13px; font-weight:700; color:#c47f12; background:#fff8ee; border-bottom:1px solid #f3e2c7; padding:8px 12px; display:flex; align-items:center; gap:7px; flex:0 0 auto; }
.vticker-head .dot { width:8px; height:8px; border-radius:50%; flex:0 0 auto; }
.vticker-head .dot.inq { background:#3a6ea5; }
.vticker-head .dot.mark { background:#1a7f37; }
/* 滚动模式：固定高度竖向无缝滚动，首尾渐隐 */
.vticker-view { height:242px; overflow:hidden; position:relative;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 12px,#000 calc(100% - 12px),transparent);
  mask-image:linear-gradient(180deg,transparent,#000 12px,#000 calc(100% - 12px),transparent); }
/* 静态模式（数据≤8条）：高度自适应、不滚动、不留大片空白，避免“看起来没了” */
.vticker-view.static { height:auto; max-height:242px; -webkit-mask-image:none; mask-image:none; }
.vticker-view.static .vticker-track { animation:none; }
.vticker-track { animation:vscroll 30s linear infinite; will-change:transform; }
.vticker-view:hover .vticker-track { animation-play-state:paused; }
/* 行内文字完整换行显示（不省略），避免手机端把“为 准时回款”截断误读为黑名单；收紧字距减少 PC 换行 */
.vticker-row { display:block; text-decoration:none; font-size:12.5px; line-height:1.5; padding:5px 11px; color:#666; border-bottom:1px solid #f6f6f6; word-break:break-word; }
.vticker-row:hover { background:#f0f7ff; }
.vticker-row.tk-inquiry { color:#3a6ea5; }
.vticker-row.tk-mark { color:#1a7f37; }
/* 手机端：每行做成小卡片，提升窄屏可读性 */
@media (max-width:767px){
  .vticker-row { background:#fafafa; border:1px solid #eee; border-radius:6px; margin:6px 8px; }
  /* 手机端：板块最多约 3 条，超出滚动；≤3 条仍全部展示 */
  .vticker-view { height:132px; }
  .vticker-view.static { height:auto; }
  /* 评价按钮（含提交交易记录）单行不换行、横向滚动，压低占用高度 */
  .mark-btns { flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:2px; }
  .mark-btns .mark-btn { flex:0 0 auto; white-space:nowrap; }
}
@keyframes vscroll { from { transform:translateY(0); } to { transform:translateY(-50%); } }
@media (prefers-reduced-motion: reduce) { .vticker-track { animation:none; } }

/* ===== 企业页：评价 / 打听 区块 ===== */
.mark-sum { font-size:14px; color:#444; margin-top:8px; line-height:1.8; }
.mark-sum b { color:#c47f12; }
.mark-chip { display:inline-block; font-size:12px; padding:2px 8px; border-radius:10px; background:#e7f7ec; color:#15803d; margin:2px 4px 2px 0; }
.mark-list { max-height:160px; overflow:auto; margin-top:8px; border-top:1px solid #f0f0f0; }
.mark-list .mark-row { font-size:13px; color:#555; padding:6px 0; border-bottom:1px solid #f5f5f5; }
.mark-actions { margin-top:10px; }
.mark-btns { display:flex; gap:8px; flex-wrap:wrap; margin-top:6px; }
.mark-btn { background:#fff; color:#1a7f37; border:1px solid #1a7f37; }
.mark-btn:hover { background:#e7f7ec; }
/* 提交交易记录：与主按钮（橙）一致，区别于绿色正向评价 */
.mark-submit { color:#c47f12; border-color:#c47f12; }
.mark-submit:hover { background:#fff8ee; }
/* 小号按钮（撤回评价等次要操作，文字贴合、不抢视觉）与引导小字 */
.btn-xs { padding:4px 11px; font-size:12px; line-height:1.4; border-radius:6px; }
.note-xs { font-size:12px; color:#999; margin-top:6px; line-height:1.5; }
.f-input { width:100%; max-width:320px; padding:9px 10px; border:1px solid #ddd; border-radius:6px; font-size:14px; }
.note.ok { color:#1a7f37; }
.note.err { color:#c0392b; }

/* ===== 首页容器：归零底部内边距，避免与页脚留白叠加 ===== */
/* 首页页脚 .site-footer 位于 .wrap 内。.wrap 自身有 70px 底部内边距（给内容结尾留出底部导航空间），
   与 .sf-inner 的移动端留白叠加后，会让「备案号」与固定底部导航之间出现一大段空白。
   故首页容器 padding-bottom 归零，底部空间统一由 .site-footer .sf-inner 控制。
   注：须写在文件末尾（含 PC 媒体查询）之后，才能覆盖 .wrap 的 padding-bottom。 */
.wrap-home { padding-bottom:0; }

/* ===== 用户管理：两个穿透链接同行走（手机端占满一行平分） ===== */
.user-links { display:flex; flex-wrap:wrap; gap:8px; margin-top:6px; }
.user-links .btn { flex:0 0 auto; }
/* 添加管理员弹窗输入框 */
.prom-input { flex:1 1 auto; min-width:0; padding:8px 10px; border:1px solid #ddd; border-radius:8px; font-size:14px; }

/* 用户管理：搜索框（PC 限宽不占满整行；手机端占满但留边距） */
.admin-filter { display:flex; gap:8px; max-width:420px; margin:0 0 14px; }
.admin-filter input { flex:1 1 auto; min-width:0; width:auto; }
.admin-filter .btn { flex:0 0 auto; white-space:nowrap; }

@media (max-width:759px){
  .admin-filter { max-width:none; }
}

@media (max-width:560px){
  .user-links { flex-wrap:nowrap; }
  .user-links .btn { flex:1 1 0; min-width:0; text-align:center; padding-left:6px; padding-right:6px; font-size:13px; white-space:nowrap; }
}

/* ===== 首页公益数据：已化解 N 笔 ===== */
/* ===== 首页·数据组看板（主数据=累计结清；辅数据=今日，低于阈值自动省略，靠主数据撑住不塌） ===== */
.home-stat { margin:14px 0; background:#fff; border:1px solid #f0e2cc; border-radius:12px; padding:16px 14px; }
.home-stat-inner { display:flex; align-items:baseline; justify-content:center; gap:6px; flex-wrap:wrap; text-align:center; }
.home-stat-num { font-size:30px; font-weight:800; color:#c47f12; line-height:1; }
.home-stat-label { font-size:15px; color:#333; }
.home-stat-sub { display:flex; align-items:center; justify-content:center; gap:12px; flex-wrap:wrap; margin-top:12px; background:#fdf8f0; border-radius:8px; padding:9px 12px; font-size:13px; color:#7a5a16; }
.home-stat-sub b { color:#c47f12; font-size:15px; font-weight:700; margin:0 1px; }
.home-stat-sub .dot { width:3px; height:3px; border-radius:50%; background:#d8b98a; }
@media (max-width:560px){ .home-stat-num { font-size:26px; } .home-stat-label { font-size:14px; } }

/* ===== 首页·优势组（平台核心机制：四格定值，形状永不随数据变化）
   2026-10-17 改版：竖排居中 → 横排（图标左/文字左对齐）。
   原因：PC 每格 222px 而竖排内容仅约 80px，空白占 64%，既“空”又“紧”；
   横排让文字吃掉卡片宽度，同时补足层级（标题放大+橙线、图标实底、字色加深）。 ===== */
.home-feat { margin:14px 0; background:#fff; border:1px solid #f3e6d2; border-radius:12px; padding:18px 14px 16px; box-shadow:0 1px 2px rgba(140,100,30,.04), 0 6px 18px rgba(196,127,18,.06); }
.home-feat-title { text-align:center; font-size:16px; font-weight:700; color:#2f2a22; letter-spacing:.5px; }
.home-feat-title::after { content:""; display:block; width:28px; height:2px; border-radius:2px; background:#c47f12; margin:8px auto 0; }
.home-feat-sub { text-align:center; font-size:12.5px; color:#8a8377; margin-top:7px; letter-spacing:.3px; }
.home-feat-grid { display:grid; grid-template-columns:1fr; gap:10px; margin-top:16px; }
/* 卡内：图标左、文字右；文字块 flex:1 吃满剩余宽度（PC 2×2 大卡也不在右侧留大片空白） */
.home-feat-item { display:flex; align-items:center; justify-content:flex-start; gap:14px; text-align:left; background:#fdf5e9; border:1px solid #f7ead6; border-radius:11px; padding:15px 16px; }
.home-feat-ico { width:46px; height:46px; border-radius:11px; background:#c47f12; color:#fff; flex:none; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 6px rgba(196,127,18,.20); }
.home-feat-ico svg { width:25px; height:25px; }
.home-feat-tx { min-width:0; flex:1 1 auto; }
.home-feat-h { font-size:16px; font-weight:700; color:#2f2a22; line-height:1.35; }
.home-feat-d { font-size:13.5px; color:#6b6b6b; line-height:1.6; margin-top:4px; }
@media (min-width:760px){
  .home-feat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .home-feat-item { gap:15px; padding:16px 18px; }
  .home-feat-ico { width:48px; height:48px; border-radius:12px; }
  .home-feat-ico svg { width:26px; height:26px; }
  .home-feat-h { font-size:16.5px; }
  .home-feat-d { font-size:14px; }
}
/* PC 2×2 大卡（≥760 已放大一次），≥1164 再升一档，匹配 1140 画布 */
@media (min-width:960px){
  .home-feat { padding-left:10px; padding-right:10px; }
  /* 960~1163px 窄桌面：数据组适度放大，不再单薄 */
  .home-stat { padding:18px 16px; }
  .home-stat-num { font-size:34px; }
  .home-stat-label { font-size:16px; }
  .home-stat-sub { font-size:13.5px; }
  .home-stat-sub b { font-size:16px; }
}
@media (min-width:1164px){
  .home-feat-item { gap:16px; padding:18px 22px; }
  .home-feat-ico { width:52px; height:52px; border-radius:13px; }
  .home-feat-ico svg { width:27px; height:27px; }
  .home-feat-h { font-size:17px; }
  .home-feat-d { font-size:14.5px; }
  /* ≥1164px 全桌面（画布已撑满 1140）：数据组放大到与画布匹配的重量级，撑住不塌 */
  .home-stat { padding:20px 16px; }
  .home-stat-inner { gap:8px; }
  .home-stat-num { font-size:42px; }
  .home-stat-label { font-size:18px; }
  .home-stat-sub { font-size:14px; padding:10px 14px; margin-top:14px; gap:14px; }
  .home-stat-sub b { font-size:18px; }
}

/* ===== 首页·分隔标语线（核心机制 与 交易全周期 之间过渡） ===== */
.home-divider { display:flex; align-items:center; justify-content:center; margin:22px 0; }
.home-divider::before, .home-divider::after { content:''; flex:1; height:1px; background:linear-gradient(90deg, transparent, #e8dcc6, transparent); }
.home-divider span { font-size:15px; font-weight:700; color:#c47f12; padding:0 16px; letter-spacing:2px; white-space:nowrap; }
@media (max-width:560px){ .home-divider { margin:18px 0; } .home-divider span { font-size:14px; letter-spacing:1px; padding:0 12px; } }

/* ===== 首页·交易全周期（与核心机制刻意区分：白底描边卡 + 淡黄图标 + 阶段标签；核心机制是浅黄卡 + 实底琥珀图标） ===== */
.home-cycle { margin:14px 0; background:#fcfbf8; border:1px solid #f3e9d8; border-radius:12px; padding:18px 14px 16px; box-shadow:0 1px 2px rgba(140,100,30,.04), 0 6px 18px rgba(196,127,18,.05); }
.home-cycle-title { text-align:center; font-size:16px; font-weight:700; color:#2f2a22; letter-spacing:.5px; }
.home-cycle-title::after { content:""; display:block; width:28px; height:2px; border-radius:2px; background:#c47f12; margin:8px auto 0; }
.home-cycle-sub { text-align:center; font-size:12.5px; color:#8a8377; margin-top:7px; letter-spacing:.3px; }
.home-cycle-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:16px; }
/* 卡内三段式：① 顶行=图标 + 「阶段·动作」 ② 说明独立一行（字号加大撑满卡片）
   阶段序号（01~04）仅 PC 显示，作右上角浅色水印填补右侧留白 */
.home-cycle-item { position:relative; display:flex; flex-direction:column; gap:9px; text-align:left; background:#fff; border:1px solid #ece4d6; border-radius:11px; padding:13px 13px 13px 14px; box-shadow:0 1px 2px rgba(120,90,40,.05); }
.home-cycle-num { display:none; }
.home-cycle-top { display:flex; align-items:center; gap:9px; }
.home-cycle-ico { width:36px; height:36px; border-radius:9px; background:#fdf3e2; border:1px solid #f3e3c8; color:#c47f12; flex:none; display:flex; align-items:center; justify-content:center; }
.home-cycle-ico svg { width:19px; height:19px; }
/* 手机：阶段在上、动作在下（窄卡放得下）；PC 改为同一行见下方媒体查询 */
.home-cycle-head { display:flex; flex-direction:column; align-items:flex-start; gap:2px; min-width:0; flex:1 1 auto; }
.home-cycle-tag { display:inline-block; font-size:11px; font-weight:700; color:#b3730c; background:#fdf5e9; border:1px solid #f2dfb8; border-radius:999px; padding:1px 8px; }
.home-cycle-sep { display:none; }
.home-cycle-h { font-size:15px; font-weight:700; color:#2f2a22; line-height:1.3; }
.home-cycle-d { font-size:13px; color:#6b6b6b; line-height:1.5; }
/* PC 四列（横向流程感）：阶段与动作同一行、中间中点分隔；说明加大 + 序号水印把卡片填满 */
@media (min-width:760px){
  .home-cycle-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
  .home-cycle-item { gap:10px; padding:14px 13px 14px 14px; }
  .home-cycle-d { font-size:13px; }
}
/* ≥960：卡片够宽（约 270px），阶段·动作正式改横排 */
@media (min-width:960px){
  .home-cycle { padding-left:10px; padding-right:10px; }
  .home-cycle-item { gap:11px; padding:15px 14px; }
  .home-cycle-head { flex-direction:row; align-items:center; gap:7px; }
  .home-cycle-sep { display:inline; color:#d9bb8c; font-weight:700; }
  .home-cycle-h { font-size:15.5px; white-space:nowrap; }
  .home-cycle-d { font-size:13.5px; }
  /* 卡片够宽才显示阶段序号水印（窄卡会与说明文字撞） */
  .home-cycle-num { display:block; position:absolute; right:11px; bottom:6px; font-size:26px; font-weight:800; line-height:1; color:#f4e8d3; letter-spacing:0; pointer-events:none; user-select:none; }
}
@media (min-width:1164px){
  .home-cycle-grid { gap:12px; }
  .home-cycle-item { padding:16px 16px; }
  .home-cycle-ico { width:40px; height:40px; border-radius:10px; }
  .home-cycle-ico svg { width:21px; height:21px; }
  .home-cycle-h { font-size:16px; }
  .home-cycle-d { font-size:14px; }
  .home-cycle-num { font-size:32px; right:13px; bottom:7px; }
}

/* ===== 首页·匿名投票卡片（琥珀主题，与 home-feat/home-stat 同款卡片） ===== */
.home-poll { margin:14px 0; background:#fff; border:1px solid #f3e6d2; border-radius:12px; padding:16px 14px; box-shadow:0 1px 2px rgba(140,100,30,.04), 0 6px 18px rgba(196,127,18,.06); }
.home-poll .hp-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.home-poll .hp-tag { font-size:13px; font-weight:700; color:#c47f12; }
.home-poll .hp-pill { font-size:12px; color:#854f0b; background:#fdf5e9; border:1px solid #f7ead6; border-radius:999px; padding:2px 10px; }
.home-poll .hp-q { font-size:15px; font-weight:700; color:#2f2a22; line-height:1.4; margin-bottom:12px; }
.home-poll .hp-opts { display:flex; flex-direction:column; gap:8px; }
.home-poll .hp-opt { width:100%; text-align:left; border:1px solid #e6cfa6; color:#633806; background:#fff; border-radius:9px; padding:10px 12px; font-size:14px; cursor:pointer; font-family:inherit; }
.home-poll .hp-opt:hover { background:#fdf5e9; }
.home-poll .hp-bar-row { margin-bottom:10px; }
.home-poll .hp-bar-row:last-child { margin-bottom:0; }
.home-poll .hp-bar-top { display:flex; justify-content:space-between; font-size:13px; color:#2f2a22; margin-bottom:4px; }
.home-poll .hp-pct { color:#c47f12; font-weight:700; }
.home-poll .hp-track { height:8px; background:#fdf5e9; border-radius:999px; overflow:hidden; }
.home-poll .hp-fill { height:100%; background:#c47f12; width:0; transition:width .4s ease; }
.home-poll .hp-foot { font-size:12px; color:#9a9a9a; margin-top:12px; }
/* 桌面端：选项/结果改两列，避免整宽卡片里按钮被拉成超长条（卡片左右边界仍与上下板块共线） */
@media (min-width:760px) {
  .home-poll { padding:18px 18px 16px; }
  .home-poll .hp-q { font-size:16px; }
  .home-poll .hp-opts, .home-poll .hp-bars { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 14px; }
  .home-poll .hp-opt { padding:11px 14px; font-size:14.5px; }
  .home-poll .hp-bar-row { margin-bottom:0; }
  .home-poll .hp-bar-top { font-size:13.5px; }
}

/* ===== 后台·投票管理 ===== */
.pf-field { margin-bottom:12px; }
.pf-field > label { display:block; font-size:13px; color:#666; margin-bottom:6px; }
.pf-field input[type=text], .pf-field select, .pf-field input[type=datetime-local] { width:100%; box-sizing:border-box; padding:9px 10px; border:1px solid #ddd; border-radius:8px; font-size:14px; font-family:inherit; }
.pf-row { display:flex; gap:12px; flex-wrap:wrap; }
.pf-row .pf-field { flex:1 1 160px; }
.pf-opt { margin-bottom:8px; }
.pf-opt input { width:100%; box-sizing:border-box; padding:9px 10px; border:1px solid #ddd; border-radius:8px; font-size:14px; font-family:inherit; }
.poll-list .poll-item { border:1px solid #f0e2cc; border-radius:10px; padding:12px 14px; margin-top:10px; }
.poll-item-head { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.poll-q { font-size:14px; font-weight:700; color:#2f2a22; }
.poll-badge { font-size:12px; padding:2px 9px; border-radius:999px; white-space:nowrap; }
.poll-badge.b-active { color:#c47f12; background:#fdf5e9; border:1px solid #f7ead6; }
.poll-badge.b-pending { color:#7a5a16; background:#fff7e6; border:1px solid #f0d9a8; }
.poll-badge.b-closed { color:#888; background:#f4f4f4; border:1px solid #e0e0e0; }
.poll-meta { font-size:12px; color:#999; margin-top:6px; }
.poll-actions { margin-top:10px; display:flex; gap:8px; flex-wrap:wrap; }
.poll-actions .btn { font-size:13px; }
.note.alert { color:#a33; background:#fdecec; border:1px solid #f3c0c0; border-radius:8px; padding:8px 10px; font-size:13px; }
.note.ok { color:#2f7d32; background:#eaf6ec; border:1px solid #bfe3c4; border-radius:8px; padding:8px 10px; font-size:13px; }
@media (max-width:559px){ .pf-row .pf-field { flex:1 1 100%; } }

/* ===== 公开企业档案页：争议/结清"处理进度"时间线（中性阶段指示，不暴露当事人/理由） ===== */
.path-timeline { background:#fff; border:1px solid #f0e2cc; border-radius:8px; padding:12px 10px; margin-top:10px; }
.path-timeline .pt-title { font-size:14px; font-weight:700; color:#444; margin-bottom:12px; }
.path-timeline .pt-row { display:flex; align-items:flex-start; justify-content:space-between; }
.path-timeline .pt-step { display:flex; flex-direction:column; align-items:center; flex:1; }
.path-timeline .pt-circle { width:26px; height:26px; border-radius:50%; background:#fff; border:2px solid #e0e0e0; color:#999; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; box-sizing:border-box; }
.path-timeline .pt-step.active .pt-circle,
.path-timeline .pt-step.done .pt-circle { background:#c47f12; border-color:#c47f12; color:#fff; }
.path-timeline .pt-text { font-size:12px; color:#999; text-align:center; margin-top:6px; line-height:1.3; }
.path-timeline .pt-step.active .pt-text { color:#c47f12; font-weight:700; }
.path-timeline .pt-arrow { flex:0 0 auto; color:#ddd; font-size:15px; padding-top:3px; margin:0 2px; }

/* ===== 法律文档页（用户协议 / 隐私政策） ===== */
.legal-doc { background:#fff; border:1px solid #eee; border-radius:8px; padding:18px 16px 20px; margin:14px 0; }
.legal-doc h2 { font-size:16px; color:#c47f12; margin:0 0 10px; padding-bottom:6px; border-bottom:1px solid #f0dec4; }
.legal-doc h3 { font-size:14px; color:#333; margin:16px 0 6px; }
.legal-doc p { font-size:13px; line-height:1.75; color:#444; margin:6px 0; }
.legal-doc ul, .legal-doc ol { font-size:13px; line-height:1.75; color:#444; margin:6px 0; padding-left:20px; }
.legal-doc li { margin:4px 0; }
.legal-doc strong { color:#222; }
.legal-doc a { color:#c47f12; text-decoration:none; }
.legal-doc .lp-tip { background:#faf8f4; border:1px solid #f0dec4; border-radius:6px; padding:8px 10px; font-size:12px; color:#b06a12; margin:0 0 6px; line-height:1.6; }
.site-footer .sf-bottom a { color:#c47f12; text-decoration:none; }

/* ===== 协议同意：注册勾选框 / 登录·提交·异议 提示行 ===== */
.agree-box { display:flex; align-items:flex-start; gap:8px; font-size:13px; color:#666; margin:14px 0 4px; line-height:1.6; }
.agree-box input[type=checkbox] { margin-top:3px; flex:0 0 auto; width:16px; height:16px; }
.agree-box a { color:#c47f12; text-decoration:none; }
.agree-box a:hover { text-decoration:underline; }
.legal-note { font-size:12px; color:#999; margin:14px 0 0; line-height:1.6; text-align:center; }
.legal-note a { color:#c47f12; text-decoration:none; }
.legal-note a:hover { text-decoration:underline; }
.path-timeline .pt-arrow.done { color:#c47f12; }
.path-timeline .pt-hint { font-size:10px; color:#aaa; margin-top:12px; padding-top:10px; border-top:1px dashed #eee; line-height:1.5; }
@media (max-width:560px){
  .path-timeline .pt-hint { font-size:9px; }
}

/* ===== 工商库候选（首页无本地记录时，经 tyc_proxy 核对后的可点选主体） ===== */
.tyc-cands { margin:10px 0 0; border:1px solid #f3e2c7; border-radius:8px; overflow:hidden; }
.tyc-cand { padding:9px 12px; border-bottom:1px solid #f6efe2; cursor:pointer; line-height:1.5; }
.tyc-cand:last-child { border-bottom:none; }
.tyc-cand.on, .tyc-cand:hover { background:#fff8ee; }
.tyc-cand-name { font-size:14px; font-weight:600; color:#222; }
.tyc-cand-sub { font-size:12px; color:#8a6d3b; margin-top:2px; }

/* ===== 大屏优化（≥1500px）：主栏 + 右侧栏，把两侧空白换成一列真实内容 =====
   背景：画布 1140 固定，在 1920 屏上两侧各空约 390px（占屏 ~40%），页面显空、像没做完。
   做法：不拉宽正文（拉宽会让文字行过长、2×2 卡片变扁），改为加一列右栏承载
   「匿名投票 + 最新打听/评价」，画布放开到 1560：主栏 1156（≈ 原 1140，正文几乎不变形）+ 间距 20 + 右栏 360。
   窄屏零影响：.home-main / .home-rail 默认 display:contents，不产生盒子，内容照原顺序竖向排列。 */
.home-main, .home-rail { display:contents; }

@media (min-width:1500px){
  .wrap.wrap-wide {
    max-width:1560px;
    display:grid;
    grid-template-columns:minmax(0,1fr) 360px;
    column-gap:20px;
    align-items:start;
  }
  /* 两列各自变成竖向 flex 容器（子块原有 margin 继续生效，间距无需重写） */
  .wrap.wrap-wide > .home-main,
  .wrap.wrap-wide > .home-rail { display:flex; flex-direction:column; min-width:0; }
  .wrap.wrap-wide > .home-main { grid-column:1; grid-row:1; }
  .wrap.wrap-wide > .home-rail { grid-column:2; grid-row:1; align-self:start; }
  /* 页脚横跨两栏（否则会被挤进右栏） */
  .wrap.wrap-wide > .site-footer { grid-column:1 / -1; }
  /* 搜索条：琥珀带仍满视口；内层用与 .wrap 完全同构的栅格（同宽 1560、同 12px 内边距、
     同「1fr + 360 + 20 间距」列），表单只占第 1 列 —— 这样它落在主栏轨道内。
     孔总要求：搜索框在主栏内**居中**、宽度约主栏 2/3（减约 1/3），不再与主栏等宽/靠左。 */
  .home-search-inner { max-width:1560px; margin:0 auto; padding:0 12px; display:grid; grid-template-columns:minmax(0,1fr) 360px; column-gap:20px; }
  .home-search-form { width:760px; max-width:100%; margin:0; grid-column:1; justify-self:center; }
  .site-footer .sf-inner { max-width:1560px; }

  /* 右栏：投票选项/统计条改回单列（360px 放两列太挤）；两只流水上下堆叠，高度各降一档 */
  .home-rail .home-poll .hp-opts,
  .home-rail .home-poll .hp-bars { grid-template-columns:1fr; }
  .home-rail .vticker-wrap { flex-direction:column; }
  .home-rail .vticker { flex:0 0 auto; }
  .home-rail .vticker-view { height:200px; }
  .home-rail .vticker-view.static { height:auto; max-height:200px; }
  /* 右栏首卡与主栏首卡顶部对齐（两者都是 14px 上边距，这里显式声明防回归） */
  .home-rail > .home-poll:first-child { margin-top:14px; }
}

/* 首页 footer：服务号二维码 + 站内反馈 */
/* 用 2.74:1 横版图（fuwuhao-3.png：左二维码 + 右「微信搜一搜 款立达」）。横图铺满列宽，
   消除正方形码在宽列里右侧的大片空白；同时给该列限宽，避免宽屏下横图被拉得过高。
   （.sf-col 是 flex:1 1 200px，max-width 生效后多余宽度自动分配给其余两栏，列内不产生空白） */
.site-footer .sf-col-wechat { max-width:420px; }
.site-footer .sf-wechat-qr { width:100%; height:auto; border-radius:8px; display:block; margin:4px 0 8px; }

/* 站内反馈自制弹窗（footer 文字链接触发；不原生 alert/confirm） */
.fb-overlay { position:fixed; inset:0; background:rgba(0,0,0,.45); display:none; align-items:center; justify-content:center; z-index:100; padding:16px; }
.fb-overlay.open { display:flex; }
.fb-modal { background:#fff; border-radius:14px; box-shadow:0 12px 40px rgba(0,0,0,.18); width:100%; max-width:420px; padding:20px 20px 18px; }
.fb-modal h3 { margin:0 0 4px; font-size:17px; color:#1f1f1f; font-weight:600; }
.fb-modal .fb-sub { font-size:12px; color:#999; margin:0 0 14px; line-height:1.5; }
.fb-modal label { display:block; font-size:13px; color:#333; margin:10px 0 5px; }
.fb-modal select, .fb-modal textarea, .fb-modal input[type=text] { width:100%; box-sizing:border-box; border:1px solid #ddd; border-radius:8px; padding:9px 10px; font-size:14px; font-family:inherit; color:#333; background:#fff; }
.fb-modal textarea { resize:vertical; min-height:96px; }
.fb-modal .fb-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:16px; }
.fb-modal .fb-note { font-size:11px; color:#bbb; margin-top:10px; line-height:1.5; }
.fb-modal .hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.fb-msg { font-size:13px; padding:9px 10px; border-radius:8px; margin-top:12px; display:none; }
.fb-msg.ok { display:block; background:#eaf3de; color:#27500a; }
.fb-msg.err { display:block; background:#fdeaea; color:#a32d2d; }

/* ===== 我的投诉建议（账户中心首页入口 + 只读列表弹窗，2026-10-27） =====
   设计：不做独立页面、不进导航（反馈频率极低）。入口已合并进 .ac-stats 第 3 格（整格可点），
   点开用宽版 .fb-modal 展示历史反馈与平台回复；数据只读，追问请重新提交一条。 */
.fb-modal-wide { max-width:560px; display:flex; flex-direction:column; max-height:82vh; }
.acfb-list { overflow-y:auto; -webkit-overflow-scrolling:touch; margin:0 -4px; padding:0 4px; }
.acfb-item { border:1px solid #eee; border-radius:10px; padding:11px 13px; margin-bottom:10px; }
.acfb-item.acfb-hit { border-color:#e0a94a; box-shadow:0 0 0 3px rgba(196,127,18,.12); }
.acfb-meta { display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; font-size:12px; color:#999; margin-bottom:6px; }
.acfb-type { background:#eaf3de; color:#3b6d11; padding:2px 8px; border-radius:6px; font-weight:500; }
.acfb-time { color:#aaa; }
.acfb-st { padding:2px 8px; border-radius:6px; }
.acfb-st-1 { background:#e6f1fb; color:#185fa5; }   /* 已受理 */
.acfb-st-2 { background:#f1efe8; color:#5f5e5a; }   /* 已处理（无需回复） */
.acfb-st-3 { background:#eaf3de; color:#3b6d11; }   /* 已回复 */

/* ===== 我的贡献（账户中心第 5 格 + 私密弹窗，2026-10-28） =====
   仅本人可见、无榜单。展示徽章 + 额度明细（credit_log）。 */
.acc-summ { font-size:13px; color:#555; line-height:1.85; background:#fafafa; border-radius:8px; padding:10px 12px; margin-bottom:14px; }
.acc-summ b { color:#c47f12; font-weight:600; }
.acc-badges { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.acc-badge { background:#fff4e0; color:#b9770e; border:1px solid #f0d9b0; border-radius:14px; padding:3px 11px; font-size:12px; }
.acc-badge.off { background:#f6f6f6; color:#bbb; border-color:#eee; }
.acc-log-cap { font-size:13px; font-weight:600; color:#444; margin:6px 0 8px; }
.acc-log { max-height:44vh; overflow-y:auto; -webkit-overflow-scrolling:touch; }
.acc-log-item { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; font-size:12px; color:#666; padding:8px 0; border-bottom:1px dashed #eee; }
.acc-log-item span:first-child { display:flex; flex-direction:column; gap:2px; }
.acc-log-item em { font-style:normal; color:#aaa; font-size:11px; }
.acc-log-item .n { color:#c47f12; font-weight:600; white-space:nowrap; }
.acc-log-item .n.neg { color:#c0392b; }

/* ===== 我的邀请（账户中心私密卡）：只给「复制链接」，不提供一键分享（中立铁律） ===== */
.ac-invite .aci-code-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:12px 0 8px; }
.aci-code-label { font-size:12px; color:#888; }
.aci-code { font-family:ui-monospace,Menlo,Consolas,monospace; font-size:15px; letter-spacing:1.5px; color:#c47f12;
  background:#fff7ea; border:1px dashed #f0d9b0; border-radius:6px; padding:3px 10px; }
.aci-url { width:100%; box-sizing:border-box; font-size:12px; color:#666; background:#fafafa;
  border:1px solid #eee; border-radius:8px; padding:8px 10px; margin-bottom:10px; }
.aci-stats { display:flex; flex-wrap:wrap; gap:6px 16px; font-size:13px; color:#555; margin-bottom:10px; }
.aci-stats b { color:#c47f12; font-weight:600; }
.aci-rule { font-size:12px; color:#666; line-height:1.7; background:#fafafa; border-radius:8px; padding:9px 11px; margin-bottom:8px; }
.aci-rule b { color:#c47f12; font-weight:600; }
.aci-note { font-size:11px; color:#aaa; line-height:1.6; }

/* ===== 邀请落地页（/invite.html）：中性介绍 + 单一注册 CTA ===== */
.inv-wrap { max-width:560px; margin:28px auto 40px; padding:0 16px; }
.inv-card { background:#fff; border:1px solid #eee; border-radius:14px; padding:26px 22px 22px; text-align:center;
  box-shadow:0 2px 10px rgba(0,0,0,.04); }
.inv-logo { width:56px; height:56px; }
.inv-slogan { font-size:13px; color:#c47f12; letter-spacing:2px; margin:8px 0 18px; }
.inv-h2 { font-size:19px; color:#1f1f1f; font-weight:600; margin:0 0 12px; line-height:1.5; }
.inv-p { font-size:13px; color:#555; line-height:1.85; text-align:left; margin:0 0 12px; }
.inv-p-soft { color:#999; font-size:12px; }
.inv-list { text-align:left; margin:0 0 14px; padding-left:18px; }
.inv-list li { font-size:13px; color:#555; line-height:1.8; margin-bottom:4px; }
.inv-list b { color:#333; font-weight:600; }
.inv-btn { display:block; text-align:center; margin:18px 0 10px; }
.inv-hint { font-size:12px; color:#999; margin:0; }
.inv-hint a { color:#c47f12; }
.inv-foot { font-size:11px; color:#bbb; line-height:1.6; margin-top:18px; padding-top:14px; border-top:1px solid #f3f3f3; }
/* 一次性轻提示（首页：邀请链接已复制）：顶部居中胶囊，自动淡出，不占版面 */
.kld-toast { position:fixed; left:50%; top:16px; transform:translate(-50%,-8px); z-index:9999;
  max-width:calc(100% - 32px); box-sizing:border-box; background:#3b6d11; color:#fff;
  font-size:13px; line-height:1.5; padding:9px 16px; border-radius:999px;
  box-shadow:0 4px 16px rgba(0,0,0,.18); opacity:0; pointer-events:none;
  transition:opacity .28s ease, transform .28s ease; }
.kld-toast.show { opacity:1; transform:translate(-50%,0); }
.acfb-txt { font-size:13.5px; color:#333; line-height:1.7; white-space:pre-wrap; word-break:break-word; }
.acfb-noreply { font-size:12px; color:#bbb; margin-top:8px; }
.acfb-reply { margin-top:9px; background:#fff8ec; border-left:3px solid #c47f12; border-radius:0 8px 8px 0; padding:8px 11px; }
.acfb-reply-cap { font-size:12px; color:#b9770e; font-weight:600; margin-bottom:4px; }
.acfb-reply-time { font-weight:400; color:#c9a06a; margin-left:8px; }
.acfb-reply-body { font-size:13.5px; color:#4a3a1e; line-height:1.7; white-space:pre-wrap; word-break:break-word; }
.acfb-empty { font-size:13px; color:#999; line-height:1.7; padding:8px 2px 4px; }
@media(max-width:600px){
  .fb-modal-wide { max-height:86vh; }
}

/* ===== 登录 / 注册页（auth- 前缀，专用样式） ===== */
.auth-wrap { max-width:420px; margin:0 auto; padding:26px 16px 84px; }
.auth-brand { text-align:center; margin:8px 0 22px; }
.auth-brand .ab-logo { height:100px; width:auto; }
.auth-brand .ab-slogan { font-size:13px; color:#a98a52; margin-top:10px; letter-spacing:2px; }
.auth-card { background:#fff; border:1px solid #f0e2cc; border-radius:14px; padding:22px 20px 24px; box-shadow:0 4px 18px rgba(196,127,18,.08); }
.auth-card .co { font-size:19px; font-weight:700; color:#2f2a22; margin-bottom:4px; }
.auth-card .co-sub { font-size:12.5px; color:#999; margin-bottom:18px; line-height:1.5; }
/* 错误提示：沿用站内 alert 观感，但独立 class 便于在卡片内定位 */
.auth-alert { background:#fff4e0; color:#b9770e; padding:10px 12px; border-radius:8px; font-size:13px; margin:0 0 16px; line-height:1.5; }
.auth-note { font-size:12px; color:#999; line-height:1.6; margin:0 0 16px; }
/* 字段：大点触区 + 聚焦琥珀描边（覆盖全局 form input 的朴素描边） */
.auth-field { margin-bottom:14px; }
.auth-field label { display:block; font-size:13px; color:#555; font-weight:600; margin-bottom:6px; }
.auth-field input { width:100%; box-sizing:border-box; padding:12px 13px; border:1px solid #e3e3e3; border-radius:9px; font-size:15px; font-family:inherit; background:#fafafa; color:#222; transition:border-color .15s, box-shadow .15s, background .15s; }
.auth-field input::placeholder { color:#aaa; }
.auth-field input:focus { outline:none; border-color:#c47f12; background:#fff; box-shadow:0 0 0 3px rgba(196,127,18,.13); }
/* 主按钮：整行橙色块（覆盖全局 .btn 内联尺寸） */
.auth-btn { display:block; width:100%; box-sizing:border-box; background:#c47f12; color:#fff; border:none; padding:13px; border-radius:9px; font-size:15px; font-weight:600; cursor:pointer; margin-top:8px; transition:background .15s; }
.auth-btn:hover { background:#b3720f; }
/* 切换 / 法务提示 */
.auth-switch { text-align:center; font-size:13px; color:#888; margin:18px 0 0; }
.auth-switch a { color:#c47f12; text-decoration:none; font-weight:600; }
.auth-foot { text-align:center; font-size:12px; color:#999; margin:16px 0 0; line-height:1.6; }
.auth-foot a { color:#c47f12; text-decoration:none; }
.auth-foot a:hover { text-decoration:underline; }
/* 大屏：卡片上方留出呼吸感（不顶着顶栏） */
@media (min-width:760px){ .auth-wrap { padding-top:40px; } }
