/**
 * 温州房产房源查询 /tools/wzfc
 * 整屏工具箱布局（左侧导航保留，右侧栏已隐藏），沿用站点主题变量，极简风
 */

.wf-page {
    --wf-line: var(--border-color);
    --wf-tint: color-mix(in srgb, var(--accent) 12%, transparent);
    padding: 14px 2px 40px;
    color: var(--text-primary);
}

/* ---------------- Hero ---------------- */
.wf-hero {
    display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
    padding: 18px; margin-bottom: 12px;
    border: 1px solid var(--wf-line); border-radius: var(--radius);
    background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 12%, transparent), transparent 60%);
}
.wf-hero-icon {
    flex: 0 0 auto; width: 52px; height: 52px; display: flex; align-items: center; justify-content: center;
    font-size: 26px; border-radius: 14px; background: var(--wf-tint);
    border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
}
.wf-hero-text { flex: 1 1 260px; min-width: 0; }
.wf-hero-text h1 { font-size: 20px; line-height: 1.3; margin-bottom: 4px; }
.wf-hero-text p { font-size: 13px; color: var(--text-secondary); }
.wf-hero-stat { font-size: 12.5px; color: var(--text-secondary); text-align: right; line-height: 1.8; }
.wf-hero-stat b { color: var(--accent); font-weight: 600; }

/* ---------------- 说明条 ---------------- */
.wf-notice {
    display: flex; gap: 8px; margin-bottom: 12px;
    padding: 10px 12px; font-size: 12.5px; line-height: 1.75;
    color: var(--text-secondary);
    border: 1px dashed var(--wf-line); border-radius: var(--radius-sm); background: var(--bg-secondary);
}
.wf-notice-ic { flex: 0 0 auto; color: var(--accent); }
.wf-notice a { color: var(--accent); }

/* ---------------- 搜索 / 筛选 ---------------- */
.wf-search { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.wf-input, .wf-select {
    height: 34px; box-sizing: border-box; font-family: inherit; font-size: 13.5px;
    color: var(--text-primary); background: var(--bg-primary);
    border: 1px solid var(--wf-line); border-radius: 8px; padding: 0 10px;
}
.wf-input { flex: 1 1 260px; min-width: 0; }
.wf-input:focus, .wf-select:focus { outline: none; border-color: var(--accent); }
.wf-btn {
    height: 34px; padding: 0 13px; font-size: 13px; font-family: inherit;
    color: var(--text-primary); background: var(--bg-primary);
    border: 1px solid var(--wf-line); border-radius: 8px; cursor: pointer;
    transition: background .15s, border-color .15s;
}
.wf-btn:hover { background: var(--wf-tint); border-color: color-mix(in srgb, var(--accent) 34%, transparent); }
.wf-btn-pri { color: #fff; background: var(--accent); border-color: var(--accent); }
.wf-btn-pri:hover { background: color-mix(in srgb, var(--accent) 86%, #000); border-color: color-mix(in srgb, var(--accent) 86%, #000); }

.wf-filters { margin-bottom: 12px; }
.wf-frow { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 5px 0; }
.wf-flabel { flex: 0 0 auto; font-size: 12.5px; color: var(--text-secondary); }
.wf-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.wf-chip {
    padding: 3px 10px; font-size: 12.5px; font-family: inherit; cursor: pointer; line-height: 1.5;
    color: var(--text-secondary); background: transparent; white-space: nowrap;
    border: 1px solid var(--wf-line); border-radius: 999px;
}
.wf-chip:hover { border-color: color-mix(in srgb, var(--accent) 34%, transparent); }
.wf-chip.is-active { color: var(--accent); background: var(--wf-tint); border-color: color-mix(in srgb, var(--accent) 34%, transparent); }
.wf-chip i { font-style: normal; opacity: .65; margin-left: 3px; }

/* ---------------- Tabs ---------------- */
.wf-tabs {
    display: flex; gap: 2px; border-bottom: 1px solid var(--wf-line); margin-bottom: 12px;
    overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
}
.wf-tabs::-webkit-scrollbar { display: none; }
.wf-tab {
    flex: 0 0 auto; padding: 8px 14px; font-size: 13.5px; font-family: inherit;
    color: var(--text-secondary); background: transparent; border: 0; scroll-snap-align: start;
    border-bottom: 2px solid transparent; cursor: pointer; white-space: nowrap;
}
.wf-tab.is-active { color: var(--accent); font-weight: 600; border-bottom-color: var(--accent); }

/* ---------------- 列表 ---------------- */
.wf-head { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin-bottom: 8px; }
.wf-count { font-size: 12.5px; color: var(--text-secondary); line-height: 1.7; }
.wf-count b { color: var(--accent); }
/* 房源列表顶部：来自某项目的筛选提示 */
.wf-ptip {
    display: inline-flex; align-items: center; gap: 6px; margin-left: 10px;
    padding: 2px 10px; font-size: 12.5px; cursor: pointer;
    color: var(--accent); background: var(--wf-tint);
    border: 1px solid color-mix(in srgb, var(--accent) 34%, transparent); border-radius: 999px;
}
.wf-ptip[hidden] { display: none !important; }
.wf-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--wf-line); border-radius: var(--radius); }
.wf-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.wf-table th, .wf-table td { padding: 9px 10px; border-bottom: 1px solid var(--wf-line); text-align: left; vertical-align: top; }
.wf-table th { font-size: 12.5px; color: var(--text-secondary); font-weight: 600; background: var(--bg-secondary); white-space: nowrap; }
.wf-table tbody tr:last-child td { border-bottom: 0; }
.wf-table tbody tr:hover { background: var(--wf-tint); }
.wf-td-area { white-space: nowrap; }
.wf-td-addr { min-width: 220px; word-break: break-all; }
.wf-td-dev { color: var(--text-secondary); font-size: 12.5px; }
.wf-tag {
    display: inline-block; padding: 1px 8px; font-size: 12px; border-radius: 6px;
    color: var(--text-secondary); background: var(--bg-secondary); border: 1px solid var(--wf-line); white-space: nowrap;
}
.wf-link { display: inline-block; color: var(--accent); cursor: pointer; white-space: nowrap; }
.wf-link + .wf-link { margin-left: 8px; }
.wf-empty { padding: 30px 14px; text-align: center; font-size: 13px; color: var(--text-secondary); }

/* ---------------- 分页 ---------------- */
.wf-pager { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; justify-content: center; margin-top: 14px; }
.wf-pg {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 34px; height: 32px; padding: 0 10px; font-size: 13px; font-family: inherit;
    color: var(--text-primary); background: var(--bg-primary);
    border: 1px solid var(--wf-line); border-radius: 8px; cursor: pointer;
}
.wf-pg:hover:not(:disabled) { background: var(--wf-tint); }
.wf-pg.is-active { color: #fff; background: var(--accent); border-color: var(--accent); }
.wf-pg:disabled { opacity: .45; cursor: default; }
.wf-pg-dots { padding: 0 2px; color: var(--text-secondary); }

/* ---------------- 统计 ---------------- */
.wf-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.wf-kpi { padding: 12px; border: 1px solid var(--wf-line); border-radius: var(--radius); background: var(--bg-secondary); }
.wf-kpi b { display: block; font-size: 22px; line-height: 1.35; color: var(--accent); }
.wf-kpi span { font-size: 12px; color: var(--text-secondary); }
.wf-sub-t { margin: 18px 0 8px; font-size: 13.5px; font-weight: 600; }
.wf-bar { display: flex; align-items: center; gap: 8px; font-size: 13px; padding: 4px 0; }
.wf-bar > i {
    flex: 0 0 auto; width: 110px; font-style: normal; color: var(--text-secondary);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.wf-bar > em {
    flex: 1 1 auto; height: 8px; border-radius: 999px; overflow: hidden;
    background: var(--bg-secondary); border: 1px solid var(--wf-line);
}
.wf-bar > em > s { display: block; height: 100%; background: var(--accent); text-decoration: none; }
.wf-bar > b { flex: 0 0 auto; font-size: 12.5px; font-weight: 500; }
.wf-bar > u { flex: 0 0 auto; width: 120px; font-size: 12px; color: var(--text-secondary); text-decoration: none; text-align: right; }

/* ---------------- 来源 ---------------- */
.wf-src {
    margin-top: 16px; padding: 11px 13px; font-size: 12.5px; line-height: 1.8;
    color: var(--text-secondary); border: 1px dashed var(--wf-line);
    border-radius: var(--radius); background: var(--bg-secondary);
}
.wf-src a { color: var(--accent); }

/* ---------------- 抽屉 ---------------- */
.wf-mask { position: fixed; inset: 0; z-index: 100000; background: rgba(0, 0, 0, .42); }
.wf-mask[hidden] { display: none !important; }
.wf-drawer {
    position: fixed; top: 0; right: 0; bottom: 0; z-index: 100001;
    width: min(440px, 92vw); overflow: auto;
    background: var(--bg-primary); border-left: 1px solid var(--wf-line);
    padding: 18px; box-sizing: border-box;
}
.wf-drawer[hidden] { display: none !important; }
.wf-dw-head { display: flex; align-items: center; margin-bottom: 12px; }
.wf-dw-head h3 { font-size: 16px; font-weight: 600; }
.wf-dw-close { margin-left: auto; width: 30px; height: 30px; cursor: pointer; color: var(--text-secondary); background: transparent; border: 1px solid var(--wf-line); border-radius: 8px; }
.wf-dw-row { display: flex; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--wf-line); font-size: 13.5px; }
.wf-dw-row > b { flex: 0 0 78px; font-weight: 500; color: var(--text-secondary); }
.wf-dw-row > div { flex: 1 1 auto; min-width: 0; word-break: break-all; }
/* 抽屉内的项目小表 */
.wf-dw-tab { width: 100%; border-collapse: collapse; font-size: 13px; margin-top: 2px; }
.wf-dw-tab td { padding: 6px 4px; border-bottom: 1px solid var(--wf-line); }
.wf-dw-tab .wf-dw-date { color: var(--text-secondary); white-space: nowrap; width: 108px; }
.wf-dw-acts { display: flex; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
.wf-dw-note { margin-top: 14px; font-size: 12px; line-height: 1.8; color: var(--text-secondary); }

/* ---------------- Toast ---------------- */
.wf-toast {
    position: fixed; left: 50%; bottom: 40px; transform: translateX(-50%);
    z-index: 100002; padding: 9px 16px; font-size: 13.5px;
    color: #fff; background: rgba(30, 30, 30, .92); border-radius: 999px; pointer-events: none;
}
.wf-toast[hidden] { display: none !important; }

/* ---------------- 响应式 ----------------
   三档：桌面 ≥1025 / 平板 641–1024 / 手机 ≤640 */

/* ===== 平板：留白收窄、表格更紧凑、抽屉适度加宽 ===== */
@media (max-width: 1024px) {
    .wf-hero { padding: 16px; gap: 12px; }
    .wf-hero-icon { width: 46px; height: 46px; font-size: 23px; border-radius: 12px; }
    .wf-hero-text h1 { font-size: 19px; }
    .wf-hero-stat {
        flex: 1 1 100%; margin-top: 2px; padding-top: 9px; text-align: left;
        border-top: 1px dashed var(--wf-line); line-height: 1.75;
    }
    .wf-table { font-size: 13px; }
    .wf-table th, .wf-table td { padding: 8px 9px; }
    .wf-td-addr { min-width: 170px; }
    .wf-nt-table .wf-nt-td-title { min-width: 200px; }
    .wf-kpis { grid-template-columns: repeat(auto-fit, minmax(158px, 1fr)); }
    .wf-drawer { width: min(460px, 88vw); }
    .wf-phones { grid-template-columns: repeat(auto-fill, minmax(268px, 1fr)); gap: 12px; }
}

/* ===== 手机：单列布局 + 数据表卡片化 ===== */
@media (max-width: 640px) {
    .wf-page { padding: 10px 0 30px; }

    /* 头部说明 */
    .wf-hero { padding: 14px; gap: 11px; border-radius: var(--radius-sm); }
    .wf-hero-icon { width: 42px; height: 42px; font-size: 21px; border-radius: 11px; }
    .wf-hero-text h1 { font-size: 17.5px; }
    .wf-hero-text p { font-size: 12.5px; line-height: 1.65; }
    .wf-hero-stat { font-size: 12px; line-height: 1.7; }
    .wf-notice { padding: 9px 11px; font-size: 12px; line-height: 1.75; }

    /* 搜索：输入框独占一行 + 按钮三等分一行 */
    .wf-search { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
    .wf-search .wf-input { grid-column: 1 / -1; }
    .wf-search .wf-btn { width: 100%; padding: 0 6px; }
    .wf-input, .wf-select { font-size: 16px; height: 42px; }
    .wf-btn { height: 42px; font-size: 13.5px; }

    /* 筛选：下拉一行两个 */
    .wf-filters { margin-bottom: 10px; }
    .wf-frow { padding: 3px 0; gap: 6px; }
    .wf-flabel { font-size: 12px; }
    .wf-chip { padding: 4px 11px; font-size: 12.5px; }
    .wf-select { flex: 1 1 128px; min-width: 0; }

    /* 标签页：横滑吸附 + 右缘渐隐提示还有更多 */
    .wf-tabs {
        margin-bottom: 10px;
        -webkit-mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 18px), transparent 100%);
        mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 18px), transparent 100%);
    }
    .wf-tab { padding: 9px 12px; font-size: 13px; }

    /* 列表头 */
    .wf-head { gap: 5px 8px; }
    .wf-ptip { margin-left: 0; }
    .wf-head .wf-select { flex: 1 1 140px; min-width: 0; }
    .wf-head .wf-btn { flex: 1 1 100%; }

    /* ---- 数据表 → 卡片（市场交易宽表除外） ---- */
    .wf-table:not(.wf-mkt-table) { display: block; width: 100%; }
    .wf-table:not(.wf-mkt-table) thead { display: none; }
    .wf-table:not(.wf-mkt-table) tbody { display: block; }
    .wf-table:not(.wf-mkt-table) tbody tr {
        display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 10px;
        padding: 11px 12px; margin-bottom: 8px;
        border: 1px solid var(--wf-line); border-radius: var(--radius-sm);
        background: var(--bg-secondary);
    }
    .wf-table:not(.wf-mkt-table) tbody tr:last-child { margin-bottom: 0; }
    .wf-table:not(.wf-mkt-table) tbody tr:hover { background: var(--bg-secondary); }
    .wf-table:not(.wf-mkt-table) tbody td {
        display: flex; align-items: flex-start; gap: 7px; min-width: 0;
        padding: 3px 0; border: 0; font-size: 13px; line-height: 1.6;
    }
    .wf-table:not(.wf-mkt-table) tbody td::before {
        flex: 0 0 auto; font-size: 12px; color: var(--text-secondary); line-height: 1.75;
    }
    .wf-table:not(.wf-mkt-table) tbody td .wf-link { padding: 3px 0; font-size: 13.5px; }
    /* 卡片本身已有边框，去掉外层圆角容器 */
    #wfPaneList .wf-table-wrap,
    #wfPaneProj .wf-table-wrap,
    #wfPaneCorp .wf-table-wrap,
    #wfPaneNotice .wf-table-wrap { border: 0; border-radius: 0; overflow: visible; }

    /* 主字段作为卡片标题，占满整行 */
    #wfPaneList td.wf-td-addr,
    #wfPaneProj td.wf-td-name,
    #wfPaneCorp td.wf-td-name,
    #wfPaneNotice td.wf-nt-td-title {
        display: block; grid-column: 1 / -1; order: -3;
        padding: 0 0 6px; font-size: 14.5px; font-weight: 600; line-height: 1.55;
        min-width: 0; white-space: normal; word-break: break-word;
    }
    #wfPaneNotice td.wf-nt-td-title .wf-link { font-size: 14.5px; }
    #wfPaneNotice td.wf-nt-td-period { white-space: normal; word-break: break-word; font-size: 12.5px; }

    /* 短字段：两列并排（order 控制排列顺序） */
    #wfPaneList td:nth-child(3) { order: -2; }    /* 建筑面积 */
    #wfPaneList td:nth-child(1) { order: -1; }    /* 地区 */
    #wfPaneProj td:nth-child(5) { order: -2; }    /* 开盘日期 */
    #wfPaneProj td:nth-child(6) { order: -1; }    /* 地区 */
    #wfPaneCorp td:nth-child(3) { order: -2; }    /* 法人代表 */
    #wfPaneCorp td:nth-child(6) { order: -1; }    /* 联系电话 */
    #wfPaneNotice td:nth-child(5) { order: -2; }  /* 公告日期 */
    #wfPaneNotice td:nth-child(4) { order: -1; }  /* 地区 */
    #wfPaneNotice td:nth-child(3) { order: 1; }   /* 类型 */
    #wfPaneNotice td:nth-child(6) { order: 2; }   /* 公示期 */

    /* 长字段占满整行 */
    #wfPaneList td:nth-child(4),
    #wfPaneList td:nth-child(5),
    #wfPaneProj td:nth-child(2),
    #wfPaneProj td:nth-child(4),
    #wfPaneCorp td:nth-child(4),
    #wfPaneCorp td:nth-child(5) { grid-column: 1 / -1; }

    /* 隐藏无意义的序号列 */
    #wfPaneProj td:nth-child(1),
    #wfPaneCorp td:nth-child(1),
    #wfPaneNotice td:nth-child(1) { display: none !important; }

    /* 字段名（卡片内标签） */
    #wfPaneList td:nth-child(1)::before { content: '地区'; }
    #wfPaneList td:nth-child(3)::before { content: '建筑面积'; }
    #wfPaneList td:nth-child(4)::before { content: '设计用途'; }
    #wfPaneList td:nth-child(5)::before { content: '开发单位'; }
    #wfPaneProj td:nth-child(2)::before { content: '预售证号'; }
    #wfPaneProj td:nth-child(4)::before { content: '项目地址'; }
    #wfPaneProj td:nth-child(5)::before { content: '开盘日期'; }
    #wfPaneProj td:nth-child(6)::before { content: '地区'; }
    #wfPaneCorp td:nth-child(3)::before { content: '法人代表'; }
    #wfPaneCorp td:nth-child(4)::before { content: '营业执照'; }
    #wfPaneCorp td:nth-child(5)::before { content: '公司地址'; }
    #wfPaneCorp td:nth-child(6)::before { content: '联系电话'; }
    #wfPaneNotice td:nth-child(3)::before { content: '类型'; }
    #wfPaneNotice td:nth-child(4)::before { content: '地区'; }
    #wfPaneNotice td:nth-child(5)::before { content: '公告日期'; }
    #wfPaneNotice td:nth-child(6)::before { content: '公示期'; }
    /* 标签列宽对齐：并排字段窄、整行字段宽 */
    #wfPaneList td:nth-child(1)::before,
    #wfPaneList td:nth-child(3)::before,
    #wfPaneProj td:nth-child(5)::before,
    #wfPaneProj td:nth-child(6)::before,
    #wfPaneCorp td:nth-child(3)::before,
    #wfPaneCorp td:nth-child(6)::before,
    #wfPaneNotice td:nth-child(3)::before,
    #wfPaneNotice td:nth-child(4)::before,
    #wfPaneNotice td:nth-child(5)::before,
    #wfPaneNotice td:nth-child(6)::before { flex: 0 0 52px; }
    #wfPaneList td:nth-child(4)::before,
    #wfPaneList td:nth-child(5)::before,
    #wfPaneProj td:nth-child(2)::before,
    #wfPaneProj td:nth-child(4)::before,
    #wfPaneCorp td:nth-child(4)::before,
    #wfPaneCorp td:nth-child(5)::before { flex: 0 0 62px; }

    /* 操作行固定在卡片底部 */
    #wfPaneList td:last-child,
    #wfPaneProj td:last-child,
    #wfPaneCorp td:last-child,
    #wfPaneNotice td:last-child {
        grid-column: 1 / -1; order: 9; justify-content: flex-end; gap: 16px;
        margin-top: 7px; padding: 8px 0 0; border-top: 1px dashed var(--wf-line);
    }

    /* 分页：放大触控区，「上一页 / 下一页」收成箭头 */
    .wf-pager { gap: 5px; margin-top: 12px; }
    .wf-pg { min-width: 36px; height: 36px; padding: 0 9px; font-size: 13px; }
    .wf-pg:first-child, .wf-pg:last-child { font-size: 0; padding: 0; }
    .wf-pg:first-child::before { content: '‹'; font-size: 18px; line-height: 1; }
    .wf-pg:last-child::before { content: '›'; font-size: 18px; line-height: 1; }

    /* 统计：双列 KPI + 标签/数值/条形三行式条形图 */
    .wf-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .wf-kpi { padding: 10px 11px; }
    .wf-kpi b { font-size: 19px; }
    .wf-sub-t { margin: 15px 0 7px; font-size: 13px; }
    .wf-bar {
        display: grid; grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas: 'lb val' 'bar bar'; gap: 1px 8px; padding: 5px 0;
    }
    .wf-bar > i { grid-area: lb; width: auto; max-width: none; font-size: 12.5px; }
    .wf-bar > em { grid-area: bar; height: 7px; }
    .wf-bar > b { grid-area: val; font-size: 12.5px; }
    .wf-bar > u { display: none; }

    /* 来源与免责 */
    .wf-src { padding: 10px 11px; font-size: 12px; line-height: 1.85; border-radius: var(--radius-sm); }

    /* 抽屉：整屏宽 + 触控友好 */
    .wf-drawer, .wf-drawer.wf-drawer-wide {
        width: 100%; padding: 14px 14px calc(16px + env(safe-area-inset-bottom, 0px));
    }
    .wf-dw-head { margin-bottom: 10px; }
    .wf-dw-head h3 { font-size: 15.5px; padding-right: 6px; }
    .wf-dw-row { gap: 8px; font-size: 13px; padding: 7px 0; }
    .wf-dw-row > b { flex: 0 0 70px; }
    .wf-dw-acts { gap: 8px; margin-top: 14px; }
    .wf-dw-acts .wf-btn { flex: 1 1 auto; }
    .wf-dw-note { font-size: 11.5px; }

    /* 提示条 */
    .wf-toast { bottom: 24px; max-width: 88vw; padding: 9px 14px; font-size: 13px; text-align: center; }
}

/* ---------------- 市场交易（Count1.jsp：月度 + 年度累计） ---------------- */
.wf-mkt-note { margin-top: 10px; font-size: 12.5px; line-height: 1.7; color: var(--text-secondary); }
.wf-mkt-note a { color: var(--accent); }
.wf-mkt-table th .wf-th-unit { display: block; font-weight: 400; font-size: 11px; color: var(--text-secondary); margin-top: 2px; }
.wf-mkt-table .wf-td-num, .wf-mkt-table .wf-td-area { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.wf-mkt-table tbody tr:hover { background: var(--wf-tint); }
.wf-mkt-total { background: color-mix(in srgb, var(--accent) 7%, transparent); }
.wf-mkt-total td { font-weight: 600; border-top: 2px solid color-mix(in srgb, var(--accent) 45%, transparent); }
.wf-mkt-total .wf-tag b { color: var(--accent); }
@media (max-width: 640px) {
    /* 市场交易为动态多列宽表：保留表格并横滑，首列冻结便于对照 */
    .wf-mkt-table { font-size: 12.5px; min-width: 520px; }
    .wf-mkt-table th, .wf-mkt-table td { padding: 7px 8px; }
    .wf-mkt-table th:first-child, .wf-mkt-table td:first-child {
        position: sticky; left: 0; z-index: 1; background: var(--bg-primary);
        box-shadow: 1px 0 0 var(--wf-line);
    }
    .wf-mkt-table thead th:first-child { background: var(--bg-secondary); }
    .wf-mkt-table tr.wf-mkt-total td:first-child {
        background: color-mix(in srgb, var(--accent) 7%, var(--bg-primary));
    }
}

/* ---------------- 投诉 / 咨询电话 ---------------- */
.wf-phones { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.wf-phone-group { border: 1px solid var(--wf-line); border-radius: var(--radius); background: var(--bg-secondary); padding: 12px 14px; }
.wf-phone-region { margin: 0 0 8px; font-size: 14px; font-weight: 600; color: var(--accent); }
.wf-phone-list { list-style: none; margin: 0; padding: 0; }
.wf-phone-row { display: flex; flex-direction: column; gap: 2px; padding: 7px 0; border-bottom: 1px solid var(--wf-line); }
.wf-phone-row:last-child { border-bottom: 0; }
.wf-phone-dept { font-size: 13px; color: var(--text-secondary); line-height: 1.5; }
.wf-phone-nums { font-size: 14px; }
.wf-phone-num { color: var(--accent); font-weight: 600; text-decoration: none; font-variant-numeric: tabular-nums; }
.wf-phone-num:hover { text-decoration: underline; }
@media (max-width: 640px) {
    .wf-phones { grid-template-columns: 1fr; }
}

/* ---------------- 公告公示（RollList.jsp 全量公告 + 官网正文快照） ---------------- */
.wf-nt-table td:first-child { color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.wf-nt-table .wf-nt-td-title { min-width: 260px; }
.wf-nt-ex { margin-top: 4px; font-size: 12.5px; line-height: 1.6; color: var(--text-secondary); word-break: break-word; }
.wf-nt-td-period { white-space: nowrap; font-size: 12.5px; color: var(--text-secondary); }

/* 公告正文含大量官网表格，详情抽屉加宽以便阅读 */
.wf-drawer.wf-drawer-wide { width: min(760px, 96vw); }
@media (max-width: 1024px) { .wf-drawer.wf-drawer-wide { width: min(680px, 94vw); } }
.wf-nt-dt-head { padding-bottom: 12px; border-bottom: 1px solid var(--wf-line); }
.wf-nt-dt-title { margin: 0; font-size: 16px; line-height: 1.6; font-weight: 600; word-break: break-word; }
.wf-nt-dt-meta { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin-top: 9px; }
.wf-nt-mi { font-size: 12.5px; color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.wf-nt-body { margin-top: 14px; font-size: 13.5px; line-height: 1.9; word-break: break-word; }
.wf-nt-body > div { margin: 0 0 6px; }
.wf-nt-body p { margin: 8px 0; }
.wf-nt-body h1 { font-size: 17px; margin: 14px 0 8px; }
.wf-nt-body h2 { font-size: 15.5px; margin: 13px 0 7px; }
.wf-nt-body strong { font-weight: 600; }
.wf-nt-body table { width: 100%; border-collapse: collapse; margin: 10px 0; font-size: .93em; }
.wf-nt-body td, .wf-nt-body th { border: 1px solid var(--wf-line); padding: 5px 7px; vertical-align: top; }
.wf-nt-body img { max-width: 100%; height: auto; }
.wf-nt-body a { color: var(--accent); }
/* 官网 Word 粘贴残留的空命名空间标签（<o:p>）不渲染 */
.wf-nt-body o\:p { display: none; }
@media (max-width: 640px) {
    /* 公告表同样卡片化，不再隐藏类型 / 公示期等信息，全部字段保留可读 */
    .wf-nt-ex { font-size: 12px; line-height: 1.6; }
    .wf-nt-dt-title { font-size: 15.5px; }
    .wf-nt-dt-meta { gap: 5px 9px; margin-top: 8px; }
    .wf-nt-body { font-size: 14px; line-height: 1.85; }
    .wf-nt-body table { font-size: .88em; }
    .wf-nt-body td, .wf-nt-body th { padding: 4px 6px; }
    .wf-nt-body h1 { font-size: 16px; }
    .wf-nt-body h2 { font-size: 14.5px; }
}

/* 公告列表手机端：公告日期保留（第 5 列），公示期信息量最低故收起（第 6 列） */
@media (max-width: 640px) {
    .wf-table.wf-nt-table td:nth-child(5) { display: table-cell; }
    .wf-table.wf-nt-table td:nth-child(6) { display: none; }
}

/* ---------------- 销售项目详情（官网详情页快照：概况 / 分类价格 / 销售情况 / 楼栋清单） ---------------- */
.wf-dw-head h3 { min-width: 0; word-break: break-word; }
.wf-pd { margin: 6px 0 4px; }
.wf-pd-sec { margin-top: 16px; }
.wf-pd-t { padding-bottom: 7px; font-size: 13px; font-weight: 600; color: var(--text-secondary); border-bottom: 1px solid var(--wf-line); }
.wf-pd-info { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.wf-pd-i { display: flex; gap: 8px; padding: 7px 0; font-size: 13px; border-bottom: 1px dashed var(--wf-line); }
.wf-pd-i > b { flex: 0 0 82px; font-weight: 500; color: var(--text-secondary); }
.wf-pd-i > span { flex: 1 1 auto; min-width: 0; word-break: break-all; }
.wf-pd-pic { display: block; margin-top: 10px; overflow: hidden; border: 1px solid var(--wf-line); border-radius: var(--radius-sm); }
.wf-pd-pic img { display: block; width: 100%; height: auto; }
.wf-pd-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.wf-pd-tab { width: 100%; min-width: 460px; margin-top: 4px; border-collapse: collapse; font-size: 12.5px; }
.wf-pd-tab th { padding: 7px 6px; text-align: left; font-weight: 600; color: var(--text-secondary); white-space: nowrap; border-bottom: 1px solid var(--wf-line); }
.wf-pd-tab td { padding: 7px 6px; vertical-align: top; border-bottom: 1px dashed var(--wf-line); }
.wf-pd-tab tbody tr:last-child td { border-bottom: 0; }
.wf-pd-tab .wf-pd-n { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.wf-pd-tab .wf-pd-addr { word-break: break-all; }
.wf-pd-stat { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.wf-pd-s { padding: 8px 10px; border: 1px solid var(--wf-line); border-radius: var(--radius-sm); }
.wf-pd-s > b { display: block; font-size: 15px; font-variant-numeric: tabular-nums; }
.wf-pd-s > span { display: block; margin-top: 2px; font-size: 12px; color: var(--text-secondary); }
.wf-pd-s > i { display: block; font-size: 11.5px; font-style: normal; color: var(--text-secondary); }
.wf-pd-links { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 16px; font-size: 13px; }
@media (max-width: 640px) {
    .wf-pd { margin: 4px 0 2px; }
    .wf-pd-sec { margin-top: 14px; }
    .wf-pd-info { grid-template-columns: 1fr; }
    .wf-pd-i { padding: 6px 0; }
    .wf-pd-i > b { flex: 0 0 74px; }
    .wf-pd-tab { min-width: 400px; font-size: 12px; }
    .wf-pd-tab th, .wf-pd-tab td { padding: 6px 6px; }
    .wf-pd-stat { gap: 7px; }
    .wf-pd-s { padding: 7px 9px; }
    .wf-pd-links { gap: 12px; margin-top: 14px; }
}

/* ---------------- 《销售方案》公示原文（官网 Word 导出的公示正文，按需展开） ---------------- */
/* 列表里的「方案」小徽标（与 .wf-tag 同风格，但标记“站内已收录方案原文”） */
.wf-mini {
    display: inline-block; margin-left: 6px; padding: 0 6px;
    font-size: 11px; font-style: normal; line-height: 17px; vertical-align: 1px;
    color: var(--text-secondary); background: var(--bg-secondary);
    border: 1px solid var(--wf-line); border-radius: 5px; white-space: nowrap;
}
.wf-mini-plan { color: var(--accent); border-color: var(--accent); }
.wf-plan-head { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline; margin-top: 10px; font-size: 13px; }
.wf-plan-head > b { font-weight: 600; }
.wf-plan-meta { font-size: 12px; color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.wf-plan-acts { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 10px; }
/* 正文最长可达数十万字（含摇号名单等附表），限定高度并独立滚动，便于随时收起 */
.wf-plan-box {
    max-height: 70vh; margin-top: 10px; padding: 12px 14px; overflow: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--wf-line); border-radius: var(--radius-sm); background: var(--bg-secondary);
}
.wf-plan-box[hidden] { display: none !important; }
.wf-plan-doc { font-size: 13.5px; line-height: 1.85; word-break: break-word; }
.wf-plan-doc p { margin: 7px 0; }
.wf-plan-doc > div { margin: 0 0 4px; }
.wf-plan-doc br + br { line-height: 1.2; }
.wf-plan-doc h1 { margin: 12px 0 8px; font-size: 16px; }
.wf-plan-doc h2 { margin: 12px 0 7px; font-size: 15px; }
.wf-plan-doc h3, .wf-plan-doc h4, .wf-plan-doc h5, .wf-plan-doc h6 { margin: 10px 0 6px; font-size: 14px; }
.wf-plan-doc b, .wf-plan-doc strong { font-weight: 600; }
.wf-plan-doc ul, .wf-plan-doc ol { margin: 7px 0; padding-left: 22px; }
.wf-plan-doc li { margin: 3px 0; }
.wf-plan-doc hr { margin: 12px 0; border: 0; border-top: 1px dashed var(--wf-line); }
.wf-plan-doc a { color: var(--accent); }
.wf-plan-doc img { max-width: 100%; height: auto; }
.wf-plan-doc table { width: 100%; margin: 10px 0; border-collapse: collapse; font-size: 12.5px; }
.wf-plan-doc th, .wf-plan-doc td {
    padding: 5px 7px; vertical-align: top; word-break: break-all;
    border: 1px solid var(--wf-line);
}
.wf-plan-doc th { font-weight: 600; color: var(--text-secondary); background: var(--bg-primary); white-space: nowrap; }
.wf-plan-src {
    display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline;
    margin: 12px 0 0; padding-top: 9px; font-size: 12px; color: var(--text-secondary);
    border-top: 1px dashed var(--wf-line);
}
@media (max-width: 640px) {
    .wf-mini { margin-left: 4px; font-size: 10.5px; }
    .wf-plan-head { margin-top: 8px; }
    .wf-plan-acts { gap: 8px; }
    .wf-plan-box { max-height: 66vh; padding: 10px 11px; }
    .wf-plan-doc { font-size: 13.5px; line-height: 1.8; }
    .wf-plan-doc table { font-size: 12px; }
    .wf-plan-doc th, .wf-plan-doc td { padding: 4px 5px; }
}

/* ---------------- 界面设置（极简齿轮按钮 + 弹窗） ---------------- */
.wf-gear {
    flex: 0 0 auto;
    width: 36px; height: 36px; margin-left: 10px;
    border: 1px solid var(--wf-line, #e6e8ee); border-radius: 10px;
    background: var(--bg-primary, #fff); color: var(--text-secondary, #555);
    font-size: 18px; line-height: 1; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    transition: border-color .15s, color .15s, background .15s;
}
.wf-gear:hover { border-color: var(--accent, #136ce9); color: var(--accent, #136ce9); }
.wf-gear[hidden] { display: none; }

/* 标签重排后隐藏的标签 */
.wf-tab-hidden { display: none !important; }

/* 设置弹窗（复用 .wf-mask 的固定定位与 hidden 规则） */
.wf-set-mask { display: flex; align-items: center; justify-content: center; padding: 16px; }
.wf-set-modal {
    width: min(440px, 94vw); max-height: 88vh; overflow: auto;
    background: var(--bg-primary, #fff); color: var(--text-primary, #222);
    border-radius: 14px; padding: 18px 20px; box-shadow: 0 16px 48px rgba(0, 0, 0, .28);
}
.wf-set-head { display: flex; align-items: center; justify-content: space-between; }
.wf-set-head h3 { margin: 0; font-size: 17px; }
.wf-set-x {
    border: 0; background: transparent; font-size: 18px; line-height: 1;
    color: var(--text-secondary, #888); cursor: pointer; padding: 4px 6px; border-radius: 8px;
}
.wf-set-x:hover { background: var(--bg-secondary, #f3f4f7); }
.wf-set-tip { margin: 8px 0 14px; color: var(--text-secondary, #8a94a6); font-size: 12.5px; line-height: 1.6; }

.wf-set-list { display: flex; flex-direction: column; gap: 6px; max-height: 46vh; overflow: auto; }
.wf-set-row {
    display: flex; align-items: center; gap: 8px;
    padding: 7px 10px; border: 1px solid var(--wf-line, #edeff3); border-radius: 9px;
    background: var(--bg-secondary, #fafbfc);
}
.wf-set-grip { color: #c2c7d0; font-size: 14px; cursor: grab; user-select: none; }
.wf-set-up, .wf-set-down {
    width: 28px; height: 28px; border-radius: 7px;
    border: 1px solid var(--wf-line, #edeff3); background: var(--bg-primary, #fff);
    color: var(--text-primary, #333); cursor: pointer; font-size: 14px; line-height: 1;
}
.wf-set-up:hover:not(:disabled), .wf-set-down:hover:not(:disabled) {
    border-color: var(--accent, #136ce9); color: var(--accent, #136ce9);
}
.wf-set-up:disabled, .wf-set-down:disabled { opacity: .35; cursor: default; }
.wf-set-show {
    display: flex; align-items: center; gap: 4px; margin-left: 2px;
    font-size: 13px; color: var(--text-secondary, #555); cursor: pointer; white-space: nowrap;
}
.wf-set-name { margin-left: auto; font-weight: 600; font-size: 14px; }

.wf-set-field { display: flex; align-items: center; gap: 10px; margin-top: 16px; }
.wf-set-field label { font-size: 13px; color: var(--text-secondary, #555); white-space: nowrap; }
.wf-set-field .wf-select { flex: 1; min-width: 0; }
.wf-set-spacer { flex: 1; }
.wf-set-foot { display: flex; align-items: center; gap: 8px; margin-top: 18px; }

@media (max-width: 640px) {
    .wf-gear { width: 34px; height: 34px; margin-left: 8px; }
    .wf-set-modal { width: 94vw; padding: 16px 16px; }
    .wf-set-name { font-size: 13.5px; }
}
