/* CIWM 前台「商业计划书」解锁下载弹窗（批 6）
   纯静态资源，零依赖；静态站页面按需引入即可。
   命名统一前缀 .bp- ，避免与站点样式冲突。 */

.bp-modal {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15, 23, 42, .55);
  backdrop-filter: blur(2px);
}

.bp-modal[hidden] { display: none; }

.bp-card {
  width: 100%;
  max-width: 560px;
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, .28);
  font: 14px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  color: #1f2937;
}

.bp-head {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 18px 20px 14px;
  border-bottom: 1px solid #eef2f7;
}

.bp-head h3 { margin: 0; font-size: 17px; font-weight: 600; }
.bp-head p { margin: 4px 0 0; font-size: 12.5px; color: #6b7280; }
.bp-head-main { flex: 1 1 auto; min-width: 0; }

.bp-x {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 8px;
  background: #f3f4f6;
  color: #4b5563;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}

.bp-x:hover { background: #e5e7eb; }

.bp-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 16px 20px; }
.bp-foot {
  flex: 0 0 auto;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 12px 20px;
  border-top: 1px solid #eef2f7;
  background: #fafbfc;
}

.bp-field { margin-bottom: 12px; }
.bp-field label { display: block; margin-bottom: 5px; font-size: 12.5px; color: #4b5563; }
.bp-field .bp-req { color: #dc2626; }
.bp-field input,
.bp-field textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 9px 11px;
  border: 1px solid #d8dee9;
  border-radius: 8px;
  font: inherit;
  font-size: 13.5px;
  color: #1f2937;
  background: #fff;
}
.bp-field input:focus,
.bp-field textarea:focus { outline: none; border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37, 99, 235, .12); }
.bp-hint { margin: 6px 0 0; font-size: 12px; color: #9ca3af; }

.bp-row2 { display: flex; gap: 10px; }
.bp-row2 > * { flex: 1 1 0; min-width: 0; }

.bp-sep {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 16px 0 12px;
  font-size: 12px;
  color: #9ca3af;
}
.bp-sep::before,
.bp-sep::after { content: ""; flex: 1 1 auto; height: 1px; background: #eef2f7; }

.bp-btn {
  padding: 9px 16px;
  border: 1px solid transparent;
  border-radius: 8px;
  font: inherit;
  font-size: 13.5px;
  font-weight: 500;
  cursor: pointer;
  background: #2563eb;
  color: #fff;
}
.bp-btn:hover { background: #1d4ed8; }
.bp-btn[disabled] { opacity: .55; cursor: not-allowed; }
.bp-btn-ghost { background: #fff; border-color: #d8dee9; color: #374151; }
.bp-btn-ghost:hover { background: #f3f4f6; }
.bp-btn-sm { padding: 6px 12px; font-size: 12.5px; }

.bp-alert {
  margin-bottom: 12px;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 13px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #b91c1c;
}
.bp-alert[data-tone="info"] { background: #eff6ff; border-color: #bfdbfe; color: #1d4ed8; }
.bp-alert[data-tone="ok"] { background: #f0fdf4; border-color: #bbf7d0; color: #15803d; }

.bp-files { margin: 0; padding: 0; list-style: none; }
.bp-file {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 0;
  border-top: 1px solid #f1f5f9;
}
.bp-file:first-child { border-top: 0; }
.bp-file-main { flex: 1 1 auto; min-width: 0; }
.bp-file-t { font-size: 13.5px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bp-file-m { margin-top: 3px; font-size: 12px; color: #9ca3af; }
.bp-file-lock {
  flex: 0 0 auto;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 12px;
  background: #f3f4f6;
  color: #6b7280;
}

.bp-empty { padding: 22px 0; text-align: center; color: #9ca3af; font-size: 13px; }

@media (max-width: 560px) {
  .bp-modal { padding: 0; align-items: flex-end; }
  .bp-card { max-width: none; max-height: 92vh; border-radius: 14px 14px 0 0; }
  .bp-row2 { flex-direction: column; gap: 0; }
}
