/* 建筑招标信息插件前台样式 —— 全部限定在 .bidi-app 作用域内，防主题样式互相干扰 */
.bidi-app {
  --bidi-primary: #16418c;
  --bidi-primary-dark: #0e2d63;
  --bidi-accent: #e63946;
  --bidi-card: #ffffff;
  --bidi-text: #1c2333;
  --bidi-muted: #6b7590;
  --bidi-line: #e3e8f2;
  --bidi-tag-red: #fdeaea;
  --bidi-tag-green: #e8f6ee;
  --bidi-tag-blue: #eaf0fb;
  --bidi-radius: 10px;

  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  color: var(--bidi-text);
  line-height: 1.6;
  text-align: left;
  container-type: inline-size;
  max-width: 1240px;
  margin: 0 auto;
  padding: 24px 0 40px;
}
.bidi-app * { margin: 0; padding: 0; box-sizing: border-box; }
.bidi-app a { text-decoration: none; color: inherit; }
.bidi-app ul, .bidi-app ol { list-style: none; }
.bidi-app button { font-family: inherit; }

/* ===== 加载 / 空状态 ===== */
.bidi-app .bidi-loading { text-align: center; padding: 60px 0; color: var(--bidi-muted); font-size: 14px; }
.bidi-app .bidi-empty { text-align: center; padding: 70px 20px; color: var(--bidi-muted); background: var(--bidi-card); border: 1px dashed var(--bidi-line); border-radius: var(--bidi-radius); }

/* ===== LIVE 滚动条 ===== */
.bidi-app .bidi-ticker { background: var(--bidi-card); border-radius: var(--bidi-radius); box-shadow: 0 6px 22px rgba(14, 45, 99, .10); overflow: hidden; margin-bottom: 18px; border: 1px solid var(--bidi-line); }
.bidi-app .bidi-ticker-head { display: flex; align-items: center; gap: 10px; padding: 12px 18px; border-bottom: 1px solid var(--bidi-line); background: linear-gradient(90deg, #fbfcfe, #f4f7fc); }
.bidi-app .bidi-live { background: var(--bidi-accent); color: #fff; font-size: 12px; padding: 2px 10px; border-radius: 20px; font-weight: 600; letter-spacing: 1px; }
.bidi-app .bidi-ticker-title { font-size: 14px; font-weight: 600; color: var(--bidi-primary-dark); }
.bidi-app .bidi-ticker-hint { margin-left: auto; font-size: 12px; color: var(--bidi-muted); }
.bidi-app .bidi-ticker-body { height: 268px; overflow: hidden; position: relative; }
.bidi-app .bidi-ticker-track { animation: bidiScrollUp 36s linear infinite; }
.bidi-app .bidi-ticker:hover .bidi-ticker-track { animation-play-state: paused; }
@keyframes bidiScrollUp { 0% { transform: translateY(0); } 100% { transform: translateY(-50%); } }
@media (prefers-reduced-motion: reduce) { .bidi-app .bidi-ticker-track { animation: none; } }
.bidi-app .bidi-ticker-item { display: flex; align-items: center; gap: 12px; padding: 11px 18px; border-bottom: 1px dashed var(--bidi-line); cursor: pointer; transition: background .15s; }
.bidi-app .bidi-ticker-item:hover { background: #f5f8fd; }
.bidi-app .bidi-ticker-time { font-size: 12px; color: var(--bidi-muted); white-space: nowrap; min-width: 104px; }
.bidi-app .bidi-ticker-text { font-size: 14px; color: var(--bidi-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bidi-app .bidi-ticker-item:hover .bidi-ticker-text { color: var(--bidi-primary); }

/* ===== 标签 ===== */
.bidi-app .bidi-tag { font-size: 11px; padding: 1px 8px; border-radius: 4px; white-space: nowrap; display: inline-block; }
.bidi-app .bidi-tag-zbgg { background: var(--bidi-tag-red); color: var(--bidi-accent); }
.bidi-app .bidi-tag-zbjg { background: var(--bidi-tag-green); color: #1a7f4b; }
.bidi-app .bidi-tag-other { background: var(--bidi-tag-blue); color: var(--bidi-primary); }

/* ===== 筛选区 ===== */
.bidi-app .bidi-toolbar { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; background: var(--bidi-card); border: 1px solid var(--bidi-line); border-radius: var(--bidi-radius); padding: 14px 16px; margin-bottom: 16px; }
.bidi-app .bidi-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.bidi-app .bidi-chip { font-size: 13px; padding: 5px 14px; border-radius: 20px; border: 1px solid var(--bidi-line); background: #fff; cursor: pointer; color: var(--bidi-muted); transition: all .15s; line-height: 1.5; }
.bidi-app .bidi-chip:hover { border-color: var(--bidi-primary); color: var(--bidi-primary); }
.bidi-app .bidi-chip.on { background: var(--bidi-primary); border-color: var(--bidi-primary); color: #fff !important; font-weight: 600; }
.bidi-app .bidi-select, .bidi-app .bidi-search { font-size: 13px; padding: 6px 12px; border: 1px solid var(--bidi-line); border-radius: 8px; background: #fff; color: var(--bidi-text); outline: none; line-height: 1.5; max-width: 100%; }
.bidi-app .bidi-select:focus, .bidi-app .bidi-search:focus { border-color: var(--bidi-primary); }
.bidi-app .bidi-search { flex: 1; min-width: 160px; }
.bidi-app .bidi-count { font-size: 12px; color: var(--bidi-muted); margin-left: auto; white-space: nowrap; }

/* ===== 列表 ===== */
.bidi-app .bidi-list { display: flex; flex-direction: column; gap: 12px; }
.bidi-app .bidi-item { background: var(--bidi-card); border: 1px solid var(--bidi-line); border-radius: var(--bidi-radius); padding: 18px 20px; cursor: pointer; transition: all .18s; position: relative; overflow: hidden; }
.bidi-app .bidi-item::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--bidi-primary); opacity: 0; transition: opacity .18s; }
.bidi-app .bidi-item:hover { border-color: #c4d2ee; box-shadow: 0 6px 20px rgba(22, 65, 140, .10); transform: translateY(-1px); }
.bidi-app .bidi-item:hover::before { opacity: 1; }
.bidi-app .bidi-item-top { display: flex; gap: 8px; align-items: flex-start; flex-wrap: wrap; }
.bidi-app .bidi-item-title { font-size: 16px; font-weight: 600; color: var(--bidi-text); flex: 1; min-width: 200px; line-height: 1.5 !important; }
.bidi-app .bidi-item:hover .bidi-item-title { color: var(--bidi-primary); }
.bidi-app .bidi-item-summary { font-size: 13px; color: var(--bidi-muted); margin-top: 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bidi-app .bidi-item-meta { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 10px; font-size: 12px; color: var(--bidi-muted); }
.bidi-app .bidi-item-meta b { color: #4a5573; font-weight: 600; }
.bidi-app .bidi-more { display: block; margin: 20px auto 0; background: #fff; border: 1px solid var(--bidi-primary); color: var(--bidi-primary); font-size: 14px; padding: 9px 38px; border-radius: 24px; cursor: pointer; transition: all .15s; }
.bidi-app .bidi-more:hover { background: var(--bidi-primary); color: #fff; }

/* ===== 页脚说明 ===== */
.bidi-app .bidi-foot { padding: 20px 0 0; color: var(--bidi-muted); font-size: 12px; text-align: center; }
.bidi-app .bidi-foot a { color: var(--bidi-primary); }
.bidi-app .bidi-foot a:hover { text-decoration: underline; }

/* ===== 详情视图 ===== */
.bidi-app .bidi-back { display: inline-block; margin-bottom: 14px; font-size: 13px; color: var(--bidi-primary); border: 1px solid var(--bidi-line); background: #fff; padding: 6px 16px; border-radius: 20px; cursor: pointer; transition: all .15s; }
.bidi-app .bidi-back:hover { border-color: var(--bidi-primary); }
.bidi-app .bidi-card { background: var(--bidi-card); border-radius: var(--bidi-radius); box-shadow: 0 6px 22px rgba(14, 45, 99, .10); padding: 30px 34px; margin-bottom: 14px; border: 1px solid var(--bidi-line); }
.bidi-app .bidi-detail-title { font-size: 21px; font-weight: 700; color: var(--bidi-primary-dark); flex: 1; min-width: 220px; line-height: 1.5 !important; margin: 0 !important; }
.bidi-app .bidi-title-row { display: flex; gap: 12px; align-items: flex-start; flex-wrap: wrap; }
.bidi-app .bidi-detail-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px 24px; margin-top: 18px; padding-top: 18px; border-top: 1px dashed var(--bidi-line); }
.bidi-app .bidi-detail-meta div { font-size: 13px; color: var(--bidi-muted); }
.bidi-app .bidi-detail-meta b { display: block; color: var(--bidi-text); font-weight: 600; margin-top: 2px; }
.bidi-app .bidi-keyinfo { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-top: 20px; }
.bidi-app .bidi-ki { background: linear-gradient(180deg, #f7faff, #f0f5fc); border: 1px solid #dde7f6; border-radius: 8px; padding: 12px 16px; }
.bidi-app .bidi-ki-k { font-size: 12px; color: var(--bidi-muted); }
.bidi-app .bidi-ki-v { font-size: 15px; font-weight: 700; color: var(--bidi-primary-dark); margin-top: 3px; word-break: break-all; }
.bidi-app .bidi-ki.hot .bidi-ki-v { color: var(--bidi-accent); }
.bidi-app .bidi-ki.time .bidi-ki-v { color: var(--bidi-primary); font-size: 14px; }
.bidi-app .bidi-content { font-size: 15px; white-space: pre-wrap; word-break: break-word; color: #2a3245; }
.bidi-app .bidi-actions { display: flex; gap: 12px; margin-top: 22px; flex-wrap: wrap; }
.bidi-app .bidi-btn { font-size: 14px; padding: 10px 26px; border-radius: 24px; cursor: pointer; transition: all .15s; display: inline-block; }
.bidi-app .bidi-btn-primary { background: var(--bidi-primary); color: #fff !important; }
.bidi-app .bidi-btn-primary:hover { background: var(--bidi-primary-dark); }
.bidi-app .bidi-src { font-size: 12px; color: var(--bidi-muted); margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--bidi-line); }
.bidi-app .bidi-src a { color: var(--bidi-primary); }
.bidi-app .bidi-content-title { font-weight: 700; color: var(--bidi-primary-dark); margin-bottom: 14px; font-size: 16px; }

/* ===== 响应式 ===== */
@container (max-width: 640px) {
  .bidi-app .bidi-ticker-body { height: 220px; }
  .bidi-app .bidi-count { margin-left: 0; width: 100%; }
  .bidi-app .bidi-card { padding: 22px 18px; }
  .bidi-app .bidi-detail-title { font-size: 18px; }
}
@media (max-width: 640px) {
  .bidi-app { padding: 14px 0 30px; }
}
