/* 智联同城 · PC 端样式（M12，ThinkPHP 模板 + jQuery 原生）
/* M52 骨架屏（首页首屏加载占位） */
.zltc-skeleton { background: linear-gradient(90deg, #f0f0f0 25%, #e8e8e8 37%, #f0f0f0 63%); background-size: 400% 100%; animation: zltc-sk 1.4s ease infinite; border-radius: 8px; height: 180px; }
@keyframes zltc-sk { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
   主题变量：桂红/桂黄（默认）；切换行政区由 zltc-core.js 动态应用 --zltc-primary 等 */
:root {
  --zltc-red: #C0392B;      /* 桂红 */
  --zltc-yellow: #E8A317;   /* 桂黄 */
  --zltc-primary: var(--color-primary);
  --zltc-accent: var(--color-accent);
  --zltc-bg: #f7f5f2;
  --zltc-text: #333;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font: 15px/1.7 "PingFang SC", "Microsoft YaHei", sans-serif; color: var(--zltc-text); background: var(--zltc-bg); }
a { color: var(--zltc-primary); text-decoration: none; }
img { max-width: 100%; }

/* 顶部导航 */
.zltc-header { background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.06); position: sticky; top: 0; z-index: 100; }
.zltc-topbar { max-width: 1200px; margin: 0 auto; padding: 10px 16px; display: flex; align-items: center; gap: 14px; }
.zltc-logo { font-size: 20px; font-weight: bold; color: var(--zltc-primary); white-space: nowrap; }
.zltc-logo small { font-size: 11px; color: #999; display: block; line-height: 1; }
.zltc-search { flex: 1; display: flex; gap: 6px; max-width: 420px; }
.zltc-search input { flex: 1; padding: 8px 12px; border: 1px solid #ddd; border-radius: 4px 0 0 4px; outline: none; }
.zltc-search button { padding: 8px 16px; background: var(--zltc-primary); color: #fff; border: none; border-radius: 0 4px 4px 0; cursor: pointer; }
.zltc-nav { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.zltc-nav a { color: #555; font-size: 14px; }
.zltc-nav a:hover { color: var(--zltc-primary); }
.zltc-user { display: flex; gap: 8px; align-items: center; }
.zltc-btn { padding: 7px 16px; border-radius: 4px; border: 1px solid var(--zltc-primary); color: var(--zltc-primary); background: #fff; cursor: pointer; font-size: 14px; }
.zltc-btn.primary { background: var(--zltc-primary); color: #fff; }
.zltc-btn.block { display: block; width: 100%; }
.zltc-btn.sm { padding: 4px 10px; font-size: 13px; }

/* 语言切换 */
.zltc-lang { display: flex; border: 1px solid var(--zltc-primary); border-radius: 4px; overflow: hidden; }
.zltc-lang a { padding: 5px 10px; font-size: 13px; color: var(--zltc-primary); background: #fff; }
.zltc-lang a.active { background: var(--zltc-primary); color: #fff; }

/* 行政区选择 */
.zltc-region { position: relative; }
.zltc-region-current { padding: 6px 12px; border: 1px solid #ddd; border-radius: 4px; cursor: pointer; background: #fff; font-size: 14px; }
.zltc-region-panel { position: absolute; top: 38px; left: 0; background: #fff; border: 1px solid #e5e5e5; border-radius: 6px; box-shadow: 0 6px 20px rgba(0,0,0,.12); z-index: 200; padding: 12px; display: none; min-width: 320px; }
.zltc-region-col { display: inline-block; vertical-align: top; max-height: 300px; overflow-y: auto; padding: 0 10px; border-right: 1px solid #eee; }
.zltc-region-col:last-child { border-right: none; }
.zltc-region-col a { display: block; padding: 3px 8px; color: #555; font-size: 13px; white-space: nowrap; }
.zltc-region-col a.active { color: var(--zltc-primary); font-weight: bold; }
.zltc-region-col h5 { font-size: 13px; margin-bottom: 4px; color: #888; }

/* 主体布局 */
.zltc-main { max-width: 1200px; margin: 20px auto; padding: 0 16px; min-height: 60vh; }
.zltc-crumb { font-size: 13px; color: #999; margin-bottom: 12px; }

/* Banner */
.zltc-banner { border-radius: 8px; overflow: hidden; margin-bottom: 18px; }
.zltc-banner img { width: 100%; height: 260px; object-fit: cover; display: block; }

/* 功能入口 */
.zltc-modules { display: grid; grid-template-columns: repeat(8, 1fr); gap: 12px; margin-bottom: 20px; }
.zltc-module { background: #fff; border-radius: 8px; padding: 14px 8px; text-align: center; color: #555; transition: all .15s; }
.zltc-module:hover { color: var(--zltc-primary); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.08); }
.zltc-module .icon { font-size: 24px; }

/* 区块标题 */
.zltc-section-title { font-size: 18px; font-weight: bold; margin: 22px 0 12px; padding-left: 10px; border-left: 4px solid var(--zltc-primary); }

/* 商品卡片（双商品池统一组件） */
.zltc-goods-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.zltc-goods-card { background: #fff; border-radius: 8px; overflow: hidden; cursor: pointer; transition: all .15s; display: block; color: inherit; }
.zltc-goods-card:hover { box-shadow: 0 6px 18px rgba(0,0,0,.1); transform: translateY(-2px); }
.zltc-goods-card .cover { height: 150px; background: #f0eee9 center/cover no-repeat; position: relative; }
.zltc-goods-card .source-tag { position: absolute; top: 8px; left: 8px; font-size: 11px; padding: 2px 8px; border-radius: 10px; color: #fff; }
.source-merchant { background: var(--zltc-primary); }
.source-ota { background: #e67e22; }
.zltc-goods-card .info { padding: 10px 12px; }
.zltc-goods-card .title { font-size: 14px; height: 40px; overflow: hidden; }
.zltc-goods-card .price { color: var(--zltc-primary); font-weight: bold; font-size: 17px; margin-top: 6px; }
.zltc-goods-card .price small { font-size: 12px; font-weight: normal; color: #999; margin-left: 6px; }

/* 信息流/列表 */
.zltc-list { background: #fff; border-radius: 8px; overflow: hidden; }
.zltc-list-item { display: flex; gap: 14px; padding: 14px 16px; border-bottom: 1px solid #f2f0ec; }
.zltc-list-item:hover { background: #faf8f5; }
.zltc-list-item .thumb { width: 110px; height: 74px; border-radius: 6px; background: #f0eee9 center/cover no-repeat; flex-shrink: 0; }
.zltc-list-item .body { flex: 1; min-width: 0; }
.zltc-list-item .title { font-size: 15px; font-weight: bold; color: #333; }
.zltc-list-item .meta { font-size: 12px; color: #999; margin-top: 4px; }
.zltc-list-item .desc { font-size: 13px; color: #777; margin-top: 4px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }

/* 表格与表单 */
.zltc-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 8px; overflow: hidden; }
.zltc-table th, .zltc-table td { padding: 10px 12px; border-bottom: 1px solid #f2f0ec; font-size: 14px; text-align: left; }
.zltc-table th { background: #faf8f5; color: #666; }
.zltc-form { background: #fff; border-radius: 8px; padding: 20px; max-width: 560px; }
.zltc-field { margin-bottom: 14px; }
.zltc-field label { display: block; font-size: 14px; color: #555; margin-bottom: 5px; }
.zltc-field input, .zltc-field select, .zltc-field textarea { width: 100%; padding: 9px 12px; border: 1px solid #ddd; border-radius: 4px; font-size: 14px; outline: none; }
.zltc-field input:focus { border-color: var(--zltc-primary); }
.zltc-field .err { color: #d9534f; font-size: 12px; margin-top: 4px; display: none; }

/* 标签 */
.zltc-tag { display: inline-block; font-size: 12px; padding: 1px 8px; border-radius: 10px; }
.zltc-tag.merchant { background: #fdf0ef; color: var(--zltc-primary); }
.zltc-tag.ota { background: #fef3e7; color: #e67e22; }
.zltc-tag.green { background: #e8f7ee; color: #1e9e50; }
.zltc-tag.gray { background: #f0f1f3; color: #888; }
.zltc-tag.red { background: #fdf0ef; color: #d9534f; }

/* 状态页签 */
.zltc-tabs { display: flex; gap: 4px; margin-bottom: 14px; }
.zltc-tabs a { padding: 7px 16px; background: #fff; border-radius: 4px; color: #555; font-size: 14px; }
.zltc-tabs a.active { background: var(--zltc-primary); color: #fff; }

/* AI 行程卡片 */
.zltc-trip-card { background: #fff; border-radius: 8px; padding: 16px; margin-bottom: 14px; }
.zltc-trip-card h3 { color: var(--zltc-primary); margin-bottom: 8px; }
.zltc-trip-day { background: #faf8f5; border-radius: 6px; padding: 10px 14px; margin-bottom: 10px; }
.zltc-trip-day b { color: var(--zltc-accent); }
.zltc-train-item { border-left: 3px solid var(--zltc-yellow); padding: 8px 12px; background: #fdfaf3; margin-bottom: 8px; border-radius: 0 6px 6px 0; }

/* 免责声明 */
.zltc-disclaimer { font-size: 12px; color: #999; margin: 14px 0; padding: 10px 14px; background: #faf8f5; border-radius: 6px; }

/* 弹窗/提示 */
.zltc-modal { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 500; display: none; }
.zltc-modal-body { width: 480px; max-width: 92vw; margin: 10vh auto; background: #fff; border-radius: 8px; overflow: hidden; }
.zltc-modal-head { padding: 12px 16px; border-bottom: 1px solid #eee; font-weight: bold; }
.zltc-modal-content { padding: 16px; max-height: 60vh; overflow: auto; }
.zltc-toast { position: fixed; top: 80px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,.75); color: #fff; padding: 8px 20px; border-radius: 20px; z-index: 600; display: none; font-size: 14px; }

/* 空态/加载 */
.zltc-empty { text-align: center; color: #999; padding: 40px 0; }
.zltc-loading { text-align: center; color: #999; padding: 20px 0; }

/* 分页 */
.zltc-pager { text-align: center; margin: 16px 0; }
.zltc-pager a { display: inline-block; padding: 5px 12px; border: 1px solid #ddd; border-radius: 4px; margin: 0 4px; color: #555; }
.zltc-pager a.disabled { color: #ccc; cursor: not-allowed; }

/* 页脚 */
.zltc-footer { background: #fff; border-top: 1px solid #eee; margin-top: 30px; padding: 20px 16px; text-align: center; font-size: 12px; color: #999; }

/* 主题装饰：壮锦纹样边角（默认 zhuangjin） */
.zltc-decor { height: 6px; background: linear-gradient(90deg, var(--zltc-red), var(--zltc-yellow), #2e7d32, #2c3e50, var(--zltc-red)); }
.zltc-decor.mango { background: linear-gradient(90deg, #C0392B, #E8A317, #f39c12); }
.zltc-decor.red { background: linear-gradient(90deg, #7b241c, #C0392B); }

/* ============ M16 AI 对话会话持久化（PC 侧边栏 + 消息流） ============ */
.ai-session-sidebar { width: 260px; flex-shrink: 0; background: #fff; border: 1px solid #eee; border-radius: 8px; overflow: hidden; }
.ai-session-head { padding: 10px 12px; border-bottom: 1px solid #eee; display: flex; gap: 6px; }
.ai-session-list { max-height: 420px; overflow-y: auto; }
.ai-session-item { padding: 10px 12px; border-bottom: 1px solid #f5f5f5; cursor: pointer; position: relative; }
.ai-session-item:hover { background: #faf8f5; }
.ai-session-item.active { background: #fdf3e7; border-left: 3px solid var(--zltc-accent, #E8A317); }
.ai-session-item .t { font-size: 14px; color: #333; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding-right: 20px; }
.ai-session-item .m { font-size: 12px; color: #999; margin-top: 4px; }
.ai-session-item .del { position: absolute; right: 8px; top: 10px; color: #ccc; }
.ai-session-item .del:hover { color: #C0392B; }
.ai-session-foot { padding: 8px 12px; border-top: 1px solid #f5f5f5; display: flex; gap: 8px; }
.ai-chat-area { margin-top: 12px; max-height: 560px; overflow-y: auto; }
.ai-chat-msg { margin-bottom: 12px; }
.ai-chat-msg-user { text-align: right; }
.ai-chat-msg-user .bubble { display: inline-block; max-width: 80%; background: var(--zltc-accent, #E8A317); color: #fff; padding: 8px 14px; border-radius: 12px 12px 0 12px; text-align: left; font-size: 14px; }
.ai-chat-msg-ai .bubble { display: inline-block; max-width: 92%; background: #faf8f5; border: 1px solid #eee; padding: 10px 14px; border-radius: 0 12px 12px 12px; font-size: 14px; color: #333; }
.ai-chat-msg-ai .zltc-trip-card { margin-top: 8px; }

/* ============ M17 AI 来源分级标签（①平台自有 ②爬虫采集 ③第三方API ④AI生成） ============ */
.source-spider { background: #E69F00; }
.source-api { background: #0072B2; }
.source-llm { background: #8E44AD; }

/* ============================================================================
   M62 壮文排版适配（旧桂红主题页面同样生效；lang-zhuang 作用域）
   ============================================================================ */
.lang-zhuang .ai-chat-msg .bubble,
.lang-zhuang .zltc-card,
.lang-zhuang .zltc-list-item,
.lang-zhuang .zltc-disclaimer,
.lang-zhuang .h5-tag { line-height: 1.8; word-break: break-word; }

/* ============================================================================
   M72 v2 视觉覆盖（PC 旧主题页面体系层升级：类名不变，视觉对齐 v2 规范）
   ============================================================================ */
.zltc-btn { border-radius: 8px; height: 40px; padding: 0 20px; transition: all .15s ease; border-color: var(--zltc-primary, #2E8B57); }
.zltc-btn:hover { background: #E8F5EE; }
.zltc-btn.sm { height: 32px; padding: 0 14px; }
.zltc-card { border-radius: 12px; box-shadow: 0 2px 12px rgba(46, 139, 87, 0.08); }
.zltc-list-item { border-bottom-color: #E5EDE8; }
.zltc-list-item:hover { background: #F2F6F3; }
.zltc-list-item .title { color: #1F2922; }
.zltc-list-item .meta { color: #8A9992; }
.zltc-tag { border-radius: 12px; }
.zltc-empty { color: #8A9992; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 40px 16px; }
.zltc-empty::before { content: ''; width: 120px; height: 90px; opacity: .55; background: url('/static/images/patterns/huashan.svg') center/contain no-repeat; }
.zltc-disclaimer { color: #8A9992; }

/* ============================================================================
   M73 空态体验统一（三层状态机：加载铜鼓转圈 / 空态花山 / 失败可重试）
   ============================================================================ */
.zltc-loading { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 24px 0; color: #8A9992; }
.zltc-loading::before {
  content: ''; width: 26px; height: 26px; border-radius: 50%;
  border: 2px solid #E8F5EE; border-top-color: #2E8B57;
  animation: zltc-rotate .9s linear infinite;
}
@keyframes zltc-rotate { to { transform: rotate(360deg); } }
.zltc-v2-empty { min-height: 200px; }
.zltc-v2-retry { margin-top: 4px; }

/* ==================== M133 适老大字模式（body.large-font 作用域） ==================== */
/* 壮乡老年用户场景：正文 14→17px、卡片标题/价格/重要信息同步放大、行高 1.8、
   按钮触摸目标 ≥44px；仅作用 .large-font，标准模式零影响 */
body.large-font { font-size: 17px; }
body.large-font .zltc-card, body.large-font .m122-card { font-size: 17px; line-height: 1.8; }
body.large-font .zltc-card .title, body.large-font .infoCard-title { font-size: 20px !important; }
body.large-font .price, body.large-font .zltc-price { font-size: 22px !important; }
body.large-font a, body.large-font button { font-size: 17px; }
body.large-font .btn, body.large-font .zltc-v2-btn, body.large-font button { min-height: 44px; }
body.large-font input, body.large-font textarea, body.large-font select { font-size: 17px; min-height: 44px; }
body.large-font .sx-tag { font-size: 15px; padding: 4px 12px; }
