/* ================================================================
   사업포털 통합 CSS  biz/assets/css/biz.css  v3
   ▶ 기본 서체: Pretendard(var(--fs-body))
   ▶ 모든 font-size는 CSS 변수 --biz-fs-* 체계로 통일
   ================================================================ */

/* ── 1. 전역 CSS 변수 ─────────────────────────────────────────── */
:root {
  /* 폰트 패밀리 */
  --biz-font: 'NanumGothic', 'Nanum Gothic', '나눔고딕', NanumGothic,
              'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;

  /* 폰트 크기 스케일 (14px 베이스) */
  --biz-fs:     14px;   /* ★ 기본 본문 */

  /* 폰트 굵기 */
  --biz-fw-n: 400;
  --biz-fw-m: 600;
  --biz-fw-b: 700;
  --biz-fw-xb:800;

  /* 라인 높이 */
  --biz-lh:     1.6;
  --biz-lh-sm:  1.4;
  --biz-lh-lg:  1.75;

  /* 색상 팔레트 */
  --biz-c-body:    #1e293b;
  --biz-c-muted:   #64748b;
  --biz-c-faint:   #94a3b8;
  --biz-c-border:  #e2e8f0;
  --biz-c-border2: #cbd5e1;
  --biz-c-bg:      #f8fafc;
  --biz-c-bg2:     #f1f5f9;
  --biz-c-white:   #ffffff;
  --biz-c-primary: #2563eb;
  --biz-c-success: #16a34a;
  --biz-c-danger:  #dc2626;
  --biz-c-warn:    #d97706;

  /* 간격 */
  --biz-sp-xs: 4px;
  --biz-sp-sm: 8px;
  --biz-sp-md: 12px;
  --biz-sp-lg: 16px;
  --biz-sp-xl: 24px;
  --biz-sp-2xl:32px;

  /* 반경 */
  --biz-r-sm:  6px;
  --biz-r-md:  10px;
  --biz-r-lg:  14px;
  --biz-r-xl:  18px;
  --biz-r-full:9999px;

  /* ── 타이포그래피 스케일 (PROJECT_RULES.md 원칙3 / layout.css --fs-* 공통 참조) ── */
  --biz-fs-xs: var(--fs-xs, 12px);   /* 12px — 배지 전용 */
  --biz-fs-sm: var(--fs-sm, 14px);   /* 14px — 메타·날짜·보조텍스트 최솟값 */
  --biz-fs-base: var(--fs-base, 16px);   /* 16px — 본문 기본 */
  --biz-fs-md: var(--fs-md, 17px);   /* 17px — 강조 본문·버튼·폼 */
  --biz-fs-lg: var(--fs-lg, 18px);   /* 18px — 카드 제목·섹션명 */
  --biz-fs-xl: var(--fs-xl, 20px);   /* 20px — 서브 헤더 */
  --biz-fs-2xl: var(--fs-2xl, 24px);   /* 24px — 페이지 제목 */
  --biz-fs-3xl: var(--fs-3xl, 28px);   /* 28px — 섹션 대제목 */
  --biz-fs-hero: var(--fs-hero, 32px);   /* 32px — 히어로 제목 */
}

/* ── 2. 폰트 적용 — .biz-wrap 내부로 범위 한정 (2026-07-11 수정)
   ★ .sector-wrap.s5 * 전역 선택자 제거 — 다른 포털과의 충돌 방지
   ★ !important 제거 — Pretendard GOV 전역 스택과 공존
   --------------------------------------------------------------- */
.biz-wrap,
.biz-content,
.biz-modal,
.biz-modal-overlay {
  font-family: var(--biz-font);
  font-size:   var(--biz-fs);
  line-height: var(--biz-lh);
  color:       var(--biz-c-body);
}
.biz-wrap *,
.biz-content *,
.biz-modal *,
.biz-modal-overlay * {
  font-family: var(--biz-font);
  box-sizing:  border-box;
}

/* ── 3. 배경·래퍼 ─────────────────────────────────────────────── */
.sector-wrap.s5 { background: var(--biz-c-bg); }
.biz-wrap,
.biz-content {
  width: 100%;
  padding: var(--biz-sp-xl) 0 64px;
}

/* ── 4. 히어로 배너 ───────────────────────────────────────────── */
.biz-hero {
  background: var(--cat-color, #2563eb);
  color: #fff;
  border-radius: var(--biz-r-xl);
  padding: 28px var(--biz-sp-2xl);
  margin-bottom: var(--biz-sp-xl);
  display: flex;
  align-items: center;
  gap: var(--biz-sp-lg);
}
.biz-hero-icon {
  width: 52px; height: 52px; flex-shrink: 0;
  background: rgba(255,255,255,.18);
  border-radius: var(--biz-r-lg);
  display: flex; align-items: center; justify-content: center;
  font-size:var(--biz-fs-2xl);
}
.biz-hero h1 {
  font-size:   var(--biz-fs-3xl);
  font-weight: var(--biz-fw-xb);
  line-height: var(--biz-lh-sm);
  margin: 0 0 4px;
}
.biz-hero p {
  font-size: var(--biz-fs);
  margin: 0;
  opacity: .85;
}

/* ── 5. 페이지 헤더 ───────────────────────────────────────────── */
.biz-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--biz-sp-xl);
  gap: var(--biz-sp-sm);
  flex-wrap: wrap;
}
.biz-page-header h2 {
  font-size:   var(--biz-fs-2xl);
  font-weight: var(--biz-fw-xb);
  color: var(--biz-c-body);
  margin: 0;
  line-height: var(--biz-lh-sm);
}

/* ── 6. 섹션 타이틀 ───────────────────────────────────────────── */
.biz-section-title {
  display: flex;
  align-items: center;
  gap: var(--biz-sp-sm);
  font-size:   var(--biz-fs-xl);
  font-weight: var(--biz-fw-b);
  color: var(--biz-c-body);
  margin-bottom: var(--biz-sp-lg);
}
.biz-section-title i { color: var(--cat-color, var(--biz-c-primary)); }

/* ── 7. 카드 ──────────────────────────────────────────────────── */
.biz-grid  { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px,1fr)); gap: var(--biz-sp-lg); }
.biz-grid2 { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); gap: var(--biz-sp-md); }
.biz-card {
  background: var(--biz-c-white);
  border: 1px solid var(--biz-c-border);
  border-radius: var(--biz-r-lg);
  padding: 18px var(--biz-sp-xl);
  transition: box-shadow .2s, transform .18s;
  cursor: pointer;
}
.biz-card:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,.10);
  transform: translateY(-2px);
}
.biz-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: var(--biz-sp-sm);
}
.biz-card-title {
  font-size:   var(--biz-fs-lg);
  font-weight: var(--biz-fw-b);
  color: var(--biz-c-body);
  line-height: var(--biz-lh-sm);
}
.biz-card-meta {
  display: flex;
  align-items: center;
  gap: var(--biz-sp-xs);
  flex-wrap: wrap;
  font-size: var(--biz-fs-sm);
  color: var(--biz-c-muted);
  margin-top: var(--biz-sp-sm);
}
.biz-card-price {
  font-size:   var(--biz-fs);
  font-weight: var(--biz-fw-xb);
  color: var(--biz-c-primary);
  margin-top: var(--biz-sp-sm);
}
.biz-card-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: var(--biz-sp-md);
  padding-top: var(--biz-sp-md);
  border-top: 1px solid var(--biz-c-bg2);
}

/* ── 8. 카테고리 Nav ──────────────────────────────────────────── */
.biz-cat-nav {
  display: flex;
  gap: var(--biz-sp-sm);
  flex-wrap: wrap;
  margin-bottom: var(--biz-sp-xl);
}
.biz-cat-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 14px;
  border-radius: var(--biz-r-full);
  border: 1.5px solid var(--biz-c-border);
  background: var(--biz-c-white);
  font-size:   var(--biz-fs);
  font-weight: var(--biz-fw-m);
  color: var(--biz-c-muted);
  cursor: pointer;
  text-decoration: none;
  transition: border-color .18s, color .18s, background .18s;
  line-height: 1;
}
.biz-cat-btn.active,
.biz-cat-btn:hover {
  border-color: var(--cat-color, var(--biz-c-primary));
  color:        var(--cat-color, var(--biz-c-primary));
  background:   var(--cat-bg, #eff6ff);
}

/* ── 9. 필터 바 ───────────────────────────────────────────────── */
.biz-filter {
  background: var(--biz-c-white);
  border: 1px solid var(--biz-c-border);
  border-radius: var(--biz-r-lg);
  padding: 14px var(--biz-sp-xl);
  margin-bottom: var(--biz-sp-xl);
  display: flex;
  gap: var(--biz-sp-md);
  flex-wrap: wrap;
  align-items: center;
}
.biz-filter input,
.biz-filter select {
  flex: 1;
  min-width: 130px;
  padding: 8px 11px;
  border: 1px solid var(--biz-c-border);
  border-radius: var(--biz-r-sm);
  font-size: var(--biz-fs);
  font-family: var(--biz-font);
  color: var(--biz-c-body);
  background: var(--biz-c-white);
  line-height: var(--biz-lh-sm);
}
.biz-filter input:focus,
.biz-filter select:focus {
  outline: none;
  border-color: var(--biz-c-primary);
  box-shadow: 0 0 0 3px #dbeafe;
}

/* ── 10. 폼 ──────────────────────────────────────────────────── */
.biz-form-box {
  background: var(--biz-c-white);
  border: 1px solid var(--biz-c-border);
  border-radius: var(--biz-r-xl);
  padding: 26px var(--biz-sp-xl);
}
.biz-field { margin-bottom: 16px; }
.biz-label {
  display: block;
  font-size:   var(--biz-fs);
  font-weight: var(--biz-fw-m);
  color: #374151;
  margin-bottom: 5px;
}
.biz-label .req { color: var(--biz-c-danger); margin-left: 2px; }
.biz-input {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--biz-c-border);
  border-radius: var(--biz-r-sm);
  font-size:   var(--biz-fs);
  font-family: var(--biz-font);
  color: var(--biz-c-body);
  background: var(--biz-c-white);
  line-height: var(--biz-lh-sm);
  transition: border-color .15s, box-shadow .15s;
}
.biz-input:focus {
  outline: none;
  border-color: var(--biz-c-primary);
  box-shadow: 0 0 0 3px #dbeafe;
}
.biz-input.error { border-color: var(--biz-c-danger); }
.biz-textarea {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--biz-c-border);
  border-radius: var(--biz-r-sm);
  font-size:   var(--biz-fs);
  font-family: var(--biz-font);
  color: var(--biz-c-body);
  background: var(--biz-c-white);
  min-height: 100px;
  resize: vertical;
  line-height: var(--biz-lh);
  transition: border-color .15s, box-shadow .15s;
}
.biz-textarea:focus {
  outline: none;
  border-color: var(--biz-c-primary);
  box-shadow: 0 0 0 3px #dbeafe;
}
.biz-select {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--biz-c-border);
  border-radius: var(--biz-r-sm);
  font-size:   var(--biz-fs);
  font-family: var(--biz-font);
  color: var(--biz-c-body);
  background: var(--biz-c-white);
  appearance: none;
  line-height: var(--biz-lh-sm);
  transition: border-color .15s, box-shadow .15s;
}
.biz-select:focus {
  outline: none;
  border-color: var(--biz-c-primary);
  box-shadow: 0 0 0 3px #dbeafe;
}
.biz-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--biz-sp-md); }
.biz-row3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: var(--biz-sp-md); }
.biz-hint {
  font-size: var(--biz-fs-sm);
  color: var(--biz-c-faint);
  margin-top: 3px;
  line-height: var(--biz-lh-sm);
}
.biz-err {
  font-size: var(--biz-fs-sm);
  color: var(--biz-c-danger);
  margin-top: 3px;
  display: none;
  line-height: var(--biz-lh-sm);
}

/* ── 11. 버튼 ────────────────────────────────────────────────── */
.biz-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 9px 18px;
  border-radius: var(--biz-r-md);
  font-size:   var(--biz-fs);
  font-weight: var(--biz-fw-m);
  font-family: var(--biz-font);
  cursor: pointer;
  border: 1px solid transparent;
  text-decoration: none;
  line-height: 1;
  transition: background .15s, border-color .15s, box-shadow .15s, opacity .15s;
  white-space: nowrap;
}
.biz-btn-primary   { background: var(--biz-c-primary); color: #fff; border-color: var(--biz-c-primary); }
.biz-btn-primary:hover { background: #1d4ed8; border-color: #1d4ed8; }
.biz-btn-success   { background: var(--biz-c-success); color: #fff; border-color: var(--biz-c-success); }
.biz-btn-success:hover { background: #15803d; border-color: #15803d; }
.biz-btn-danger    { background: var(--biz-c-danger);  color: #fff; border-color: var(--biz-c-danger); }
.biz-btn-danger:hover  { background: #b91c1c; border-color: #b91c1c; }
.biz-btn-outline   {
  background: var(--biz-c-white);
  border-color: var(--biz-c-border2);
  color: #374151;
}
.biz-btn-outline:hover { border-color: var(--biz-c-primary); color: var(--biz-c-primary); }
.biz-btn-sm  { padding: 5px 12px; font-size: var(--biz-fs-sm); border-radius: var(--biz-r-sm); }
.biz-btn-lg  { padding: 12px 26px; font-size: var(--biz-fs-lg); border-radius: var(--biz-r-lg); }
.biz-btn-block { width: 100%; justify-content: center; }
.biz-btn:disabled,
.biz-btn[disabled] { opacity: .5; cursor: not-allowed; }

/* ── 12. 배지 ────────────────────────────────────────────────── */
.biz-badge {
  display: inline-block;
  padding: 2px 9px;
  border-radius: var(--biz-r-full);
  font-size:   var(--biz-fs-xs);
  font-weight: var(--biz-fw-b);
  line-height: 1.5;
  vertical-align: middle;
}

/* Bootstrap 연동 badge 보완 — .biz-wrap 내부로 한정 (2026-07-11: 전역 오염 방지) */
.biz-wrap .badge-info,
.biz-content .badge-info      { background-color: #0dcaf0; color: #000; }
.biz-wrap .badge-success,
.biz-content .badge-success    { background-color: #198754; color: #fff; }
.biz-wrap .badge-danger,
.biz-content .badge-danger     { background-color: #dc3545; color: #fff; }
.biz-wrap .badge-warning,
.biz-content .badge-warning    { background-color: #ffc107; color: #000; }
.biz-wrap .badge-secondary,
.biz-content .badge-secondary  { background-color: #6c757d; color: #fff; }
.biz-wrap .badge-dark,
.biz-content .badge-dark       { background-color: #212529; color: #fff; }
.biz-wrap .badge-primary,
.biz-content .badge-primary    { background-color: #0d6efd; color: #fff; }

/* ── 13. 탭 ──────────────────────────────────────────────────── */
.biz-tabs {
  display: flex;
  border-bottom: 2px solid var(--biz-c-border);
  margin-bottom: var(--biz-sp-xl);
  gap: 0;
}
.biz-tab {
  padding: 9px 18px;
  font-size:   var(--biz-fs);
  font-weight: var(--biz-fw-m);
  color: var(--biz-c-faint);
  cursor: pointer;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  transition: color .15s, border-color .15s;
  line-height: 1.4;
}
.biz-tab.active { color: var(--biz-c-primary); border-bottom-color: var(--biz-c-primary); }

/* ── 14. 상세 레이아웃 ───────────────────────────────────────── */
.biz-detail-layout { display: grid; grid-template-columns: 1fr 340px; gap: var(--biz-sp-xl); }
/* 게시판 목록: 사이드바(160px) 왼쪽 배치 */
.biz-detail-layout.bd-layout { grid-template-columns: 160px 1fr; }
.biz-main-content { flex: 1; min-width: 0; }
.biz-sidebar { position: sticky; top: 80px; }
.biz-sidebar-card {
  background: var(--biz-c-white);
  border: 1px solid var(--biz-c-border);
  border-radius: var(--biz-r-lg);
  padding: 18px var(--biz-sp-xl);
  margin-bottom: var(--biz-sp-lg);
}

/* ── 15. 스텝 ────────────────────────────────────────────────── */
.biz-steps { display: flex; gap: 0; margin-bottom: var(--biz-sp-2xl); }
.biz-step  { flex: 1; text-align: center; position: relative; }
.biz-step::after {
  content: ''; position: absolute; top: 18px; right: -50%;
  width: 100%; height: 2px; background: var(--biz-c-border); z-index: 0;
}
.biz-step:last-child::after { display: none; }
.biz-step-circle {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--biz-c-bg2);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 8px;
  font-size: var(--biz-fs);
  font-weight: var(--biz-fw-b);
  color: var(--biz-c-faint);
  position: relative; z-index: 1;
  transition: background .2s, color .2s;
}
.biz-step.done .biz-step-circle   { background: var(--biz-c-success); color: #fff; }
.biz-step.active .biz-step-circle { background: var(--biz-c-primary); color: #fff; box-shadow: 0 0 0 4px #dbeafe; }
.biz-step-label { font-size: var(--biz-fs-xs); color: var(--biz-c-faint); line-height: var(--biz-lh-sm); }
.biz-step.done .biz-step-label,
.biz-step.active .biz-step-label { color: var(--biz-c-body); font-weight: var(--biz-fw-m); }

/* ── 16. 빈 상태 ─────────────────────────────────────────────── */
.biz-empty {
  text-align: center;
  padding: 60px var(--biz-sp-xl);
  color: var(--biz-c-faint);
}
.biz-empty i   { font-size: var(--biz-fs-icon); margin-bottom: var(--biz-sp-lg); display: block; }
.biz-empty p   { font-size: var(--biz-fs); margin: 0 0 18px; }
.empty-state   { text-align: center; padding: 60px var(--biz-sp-xl); color: var(--biz-c-faint); }

/* ── 17. 알림 ────────────────────────────────────────────────── */
.biz-alert {
  padding: 11px var(--biz-sp-lg);
  border-radius: var(--biz-r-md);
  font-size: var(--biz-fs);
  margin-bottom: var(--biz-sp-lg);
  display: flex;
  gap: var(--biz-sp-sm);
  align-items: flex-start;
  line-height: var(--biz-lh);
}
.biz-alert-info    { background: #dbeafe; color: #1d4ed8; }
.biz-alert-success { background: #dcfce7; color: #15803d; }
.biz-alert-warning { background: #fef3c7; color: #b45309; }
.biz-alert-danger  { background: #fee2e2; color: #b91c1c; }

/* ── 18. 평점 ────────────────────────────────────────────────── */
.biz-stars { display: inline-flex; gap: 1px; }
.biz-stars .fa-star,
.biz-stars .fa-star-half-alt { color: #f59e0b; font-size: var(--biz-fs-xs); }
.biz-stars .fa-star.empty,
.far.fa-star { color: #d1d5db; font-size: var(--biz-fs-xs); }

/* ── 19. 타임라인 ────────────────────────────────────────────── */
.biz-timeline { position: relative; padding-left: 28px; }
.biz-timeline::before {
  content: ''; position: absolute; left: 9px; top: 0; bottom: 0;
  width: 2px; background: var(--biz-c-border);
}
.biz-tl-item { position: relative; margin-bottom: 18px; }
.biz-tl-dot  {
  width: 18px; height: 18px; border-radius: 50%;
  background: var(--biz-c-primary); border: 3px solid #fff;
  box-shadow: 0 0 0 2px var(--biz-c-primary);
  position: absolute; left: -28px; top: 2px;
}
.biz-tl-dot.done { background: var(--biz-c-success); box-shadow: 0 0 0 2px var(--biz-c-success); }
.biz-tl-body { background: var(--biz-c-bg); border-radius: var(--biz-r-md); padding: 11px var(--biz-sp-md); }
.biz-tl-date { font-size: var(--biz-fs-xs); color: var(--biz-c-faint); margin-bottom: 3px; }
.biz-tl-text { font-size: var(--biz-fs); color: #374151; }

/* ── 20. 달력 ────────────────────────────────────────────────── */
.biz-cal { width: 100%; border-collapse: collapse; }
.biz-cal th {
  background: var(--biz-c-bg);
  padding: 9px;
  text-align: center;
  font-size: var(--biz-fs);
  font-weight: var(--biz-fw-b);
  color: #374151;
  border: 1px solid var(--biz-c-border);
}
.biz-cal td {
  padding: 6px;
  text-align: center;
  border: 1px solid var(--biz-c-border);
  vertical-align: top;
  min-height: 56px;
  cursor: pointer;
  font-size: var(--biz-fs);
  transition: background .12s;
}
.biz-cal td:hover  { background: #eff6ff; }
.biz-cal .today    { background: #dbeafe; }
.biz-cal .disabled { background: #f9fafb; color: #d1d5db; cursor: default; }
.biz-cal .has-slot { background: #ecfdf5; }
.biz-cal .full     { background: #fee2e2; }

/* ── 21. 모달 ────────────────────────────────────────────────── */
.biz-modal-overlay {
  display: none;
  position: fixed; inset: 0;
  background: rgba(0,0,0,.48);
  z-index: 9000;
  align-items: center;
  justify-content: center;
}
.biz-modal-overlay.open { display: flex; }
.biz-modal {
  background: var(--biz-c-white);
  border-radius: var(--biz-r-xl);
  width: 90%;
  max-width: 640px;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 20px 60px rgba(0,0,0,.22);
}
.biz-modal-header {
  padding: 18px var(--biz-sp-xl) 13px;
  border-bottom: 1px solid var(--biz-c-border);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.biz-modal-title {
  font-size:   var(--biz-fs-lg);
  font-weight: var(--biz-fw-b);
  color: var(--biz-c-body);
  line-height: var(--biz-lh-sm);
}
.biz-modal-close {
  background: none; border: none;
  font-size: var(--biz-fs-xl); color: var(--biz-c-faint);
  cursor: pointer; padding: 4px;
  line-height: 1;
}
.biz-modal-close:hover { color: var(--biz-c-body); }
.biz-modal-body { padding: 18px var(--biz-sp-xl); }
.biz-modal-foot {
  padding: 13px var(--biz-sp-xl) 18px;
  border-top: 1px solid var(--biz-c-border);
  display: flex;
  gap: var(--biz-sp-sm);
  justify-content: flex-end;
}

/* ── 22. 로딩 ────────────────────────────────────────────────── */
.biz-loading {
  display: flex; align-items: center; justify-content: center;
  gap: var(--biz-sp-sm); padding: 40px;
  color: var(--biz-c-faint);
  font-size: var(--biz-fs);
}
.biz-spinner {
  width: 24px; height: 24px;
  border: 3px solid var(--biz-c-border);
  border-top-color: var(--biz-c-primary);
  border-radius: 50%;
  animation: biz-spin .8s linear infinite;
}
@keyframes biz-spin { to { transform: rotate(360deg); } }

/* ── 23. 프로필 카드 ─────────────────────────────────────────── */
.biz-provider-card {
  display: flex; gap: var(--biz-sp-md);
  align-items: flex-start;
  padding: var(--biz-sp-lg);
  background: var(--biz-c-bg);
  border-radius: var(--biz-r-lg);
  border: 1.5px solid var(--biz-c-border);
}
.biz-avatar {
  width: 50px; height: 50px; border-radius: 50%;
  background: var(--biz-c-border);
  display: flex; align-items: center; justify-content: center;
  font-size:var(--biz-fs-2xl); color: var(--biz-c-faint);
  flex-shrink: 0; overflow: hidden;
}
.biz-avatar img { width: 100%; height: 100%; object-fit: cover; }
.biz-provider-name {
  font-size:   var(--biz-fs);
  font-weight: var(--biz-fw-b);
  color: var(--biz-c-body);
}
.biz-provider-meta {
  font-size: var(--biz-fs-sm);
  color: var(--biz-c-muted);
  margin-top: 2px;
  line-height: var(--biz-lh);
}
.biz-verify-badge {
  display: inline-flex; align-items: center; gap: 3px;
  padding: 2px 8px;
  background: #dcfce7; color: var(--biz-c-success);
  border-radius: var(--biz-r-full);
  font-size: var(--biz-fs-xs);
  font-weight: var(--biz-fw-b);
}

/* ── 24. 파일 업로드 ─────────────────────────────────────────── */
.biz-file-zone {
  border: 2px dashed var(--biz-c-border2);
  border-radius: var(--biz-r-lg);
  padding: 28px;
  text-align: center;
  cursor: pointer;
  transition: border-color .18s, background .18s;
  font-size: var(--biz-fs);
}
.biz-file-zone:hover,
.biz-file-zone.drag { border-color: var(--biz-c-primary); background: #eff6ff; }
.biz-file-zone i { font-size:var(--biz-fs-hero); color: var(--biz-c-faint); margin-bottom: 8px; display: block; }
.biz-file-list { margin-top: 10px; display: flex; flex-direction: column; gap: 5px; }
.biz-file-item {
  display: flex; align-items: center; justify-content: space-between;
  padding: 7px 11px;
  background: var(--biz-c-bg);
  border-radius: var(--biz-r-sm);
  font-size: var(--biz-fs);
}
.biz-file-del { background: none; border: none; color: var(--biz-c-danger); cursor: pointer; font-size: var(--biz-fs-base); }

/* ── 25. 입찰 비교 테이블 ────────────────────────────────────── */
.biz-compare-table { width: 100%; border-collapse: collapse; }
.biz-compare-table th {
  background: var(--biz-c-bg);
  padding: 11px;
  text-align: center;
  font-size: var(--biz-fs);
  font-weight: var(--biz-fw-b);
  border: 1px solid var(--biz-c-border);
}
.biz-compare-table td {
  padding: 11px;
  text-align: center;
  border: 1px solid var(--biz-c-border);
  font-size: var(--biz-fs);
}
.biz-compare-table tr:hover td { background: #fafcff; }
.biz-compare-best { background: #ecfdf5 !important; font-weight: var(--biz-fw-b); color: var(--biz-c-success); }

/* ── 26. 입찰 카드 ───────────────────────────────────────────── */
.bid-card { transition: box-shadow .18s; }
.bid-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,.09); }

/* ── 27. 목록형 테이블 (biz_list_common) ────────────────────── */
.biz-tbl {
  width: 100%;
  border-collapse: collapse;
  background: var(--biz-c-white);
}
.biz-tbl thead th {
  background: var(--biz-c-bg);
  color: #475569;
  font-size:   var(--biz-fs);
  font-weight: var(--biz-fw-m);
  padding: 10px var(--biz-sp-md);
  border-bottom: 2px solid var(--biz-c-border);
  white-space: nowrap;
  text-align: left;
}
.biz-tbl tbody tr {
  border-bottom: 1px solid var(--biz-c-bg2);
  transition: background .13s;
}
.biz-tbl tbody tr:hover { background: #f8faff; }
.biz-tbl td {
  padding: 10px var(--biz-sp-md);
  vertical-align: middle;
  font-size: var(--biz-fs);
  color: var(--biz-c-body);
}
.biz-tbl td.td-title { max-width: 260px; }
.biz-tbl td.td-title a {
  color: var(--biz-c-body);
  font-weight: var(--biz-fw-m);
  font-size: var(--biz-fs);
  text-decoration: none;
  line-height: var(--biz-lh-sm);
  display: block;
}
.biz-tbl td.td-title a:hover { color: var(--biz-c-primary); }
.biz-tbl td.td-meta {
  font-size: var(--biz-fs-sm);
  color: var(--biz-c-muted);
  white-space: nowrap;
}
.biz-tbl td.td-actions { white-space: nowrap; }

/* 입찰 상태 pill */
.biz-pill {
  display: inline-flex; align-items: center; gap: 3px;
  font-size: var(--biz-fs-xs);
  font-weight: var(--biz-fw-b);
  padding: 2px 8px;
  border-radius: var(--biz-r-full);
  vertical-align: middle;
  line-height: 1.5;
}
.biz-pill-bid   { background: #dbeafe; color: #1d4ed8; border: 1px solid #bfdbfe; }
.biz-pill-ok    { background: #dcfce7; color: #15803d; border: 1px solid #bbf7d0; }
.biz-pill-mine  { background: #fef3c7; color: #92400e; border: 1px solid #fde68a; }
.biz-pill-lock  { background: var(--biz-c-bg2); color: var(--biz-c-faint); border: 1px solid var(--biz-c-border); }

/* ── 28. 통계 바 ─────────────────────────────────────────────── */
.biz-stat-bar {
  display: flex;
  align-items: center;
  gap: var(--biz-sp-lg);
  margin-bottom: var(--biz-sp-md);
  flex-wrap: wrap;
}
.biz-stat-bar .total-cnt {
  font-size: var(--biz-fs);
  color: var(--biz-c-muted);
}
.biz-stat-bar .total-cnt strong { color: var(--biz-c-body); font-weight: var(--biz-fw-b); }
.biz-stat-bar .legend { display: flex; gap: var(--biz-sp-sm); flex-wrap: wrap; margin-left: auto; }
.biz-stat-bar .cost-note {
  font-size: var(--biz-fs);
  color: var(--biz-c-faint);
  align-self: center;
}

/* ── 29. 포인트 확인 모달 전용 ───────────────────────────────── */
#pointConfirmModal .point-cost-box {
  background: linear-gradient(135deg,#eff6ff,#dbeafe);
  border: 1.5px solid #93c5fd;
  border-radius: var(--biz-r-lg);
  padding: 16px;
  text-align: center;
  margin: 14px 0;
}
#pointConfirmModal .point-cost-num {
  font-size:var(--biz-fs-3xl);
  font-weight: var(--biz-fw-xb);
  color: #1d4ed8;
  letter-spacing: -1px;
  line-height: 1.2;
}
#pointConfirmModal .point-balance-row {
  display: grid; grid-template-columns: 1fr 1fr; gap: var(--biz-sp-sm); margin-top: 10px;
}
#pointConfirmModal .balance-card {
  background: var(--biz-c-white);
  border-radius: var(--biz-r-sm);
  padding: 9px;
  border: 1px solid var(--biz-c-border);
  text-align: center;
}
#pointConfirmModal .balance-card .label {
  font-size: var(--biz-fs-xs);
  color: var(--biz-c-muted);
  line-height: var(--biz-lh-sm);
}
#pointConfirmModal .balance-card .val {
  font-size: var(--biz-fs-xl);
  font-weight: var(--biz-fw-b);
  color: var(--biz-c-body);
  margin-top: 2px;
}
#pointConfirmModal .balance-card.after .val { color: var(--biz-c-success); }
#pointConfirmModal .balance-card.after.danger .val { color: var(--biz-c-danger); }

/* ── 30. Bootstrap 보완 유틸리티 ─────────────────────────────── */
.btn-xs { padding: 2px 8px; font-size: var(--biz-fs-xs); border-radius: 3px; }

/* Flex */
.d-flex        { display: flex !important; }
.d-none        { display: none !important; }
.d-block       { display: block !important; }
.d-inline-flex { display: inline-flex !important; }
.flex-grow-1   { flex-grow: 1 !important; }
.flex-shrink-0 { flex-shrink: 0 !important; }
.flex-wrap     { flex-wrap: wrap !important; }
.align-items-center     { align-items: center !important; }
.align-items-start      { align-items: flex-start !important; }
.justify-content-between{ justify-content: space-between !important; }
.justify-content-center { justify-content: center !important; }
.justify-content-end    { justify-content: flex-end !important; }
.gap-1 { gap: .25rem !important; }
.gap-2 { gap: .5rem  !important; }
.gap-3 { gap: 1rem   !important; }

/* 여백 */
.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}
.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}
.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}
.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}
.mx-auto{margin-left:auto!important;margin-right:auto!important}
.p-0{padding:0!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}
.py-3{padding-top:1rem!important;padding-bottom:1rem!important}
.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}
.px-3{padding-left:1rem!important;padding-right:1rem!important}

/* 텍스트 */
.text-muted  { color: #6c757d !important; }
.text-primary{ color: #0d6efd !important; }
.text-success{ color: #198754 !important; }
.text-danger { color: #dc3545 !important; }
.text-warning{ color: #ffc107 !important; }
.text-dark   { color: #212529 !important; }
.text-white  { color: #fff    !important; }
.text-center { text-align: center !important; }
.text-end    { text-align: right  !important; }
.text-truncate{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.text-nowrap { white-space: nowrap !important; }
.text-decoration-none{ text-decoration: none !important; }
.fw-bold    { font-weight: 700 !important; }
.fw-semibold{ font-weight: 600 !important; }
.fw-normal  { font-weight: 400 !important; }
.fs-4{ font-size: 1.5rem  !important; }
.fs-5{ font-size: 1.25rem !important; }
.fs-6{ font-size: 1rem    !important; }
.small{ font-size: .875em !important; }

/* 그리드 */
.row { display:flex; flex-wrap:wrap; margin-right:-.75rem; margin-left:-.75rem; }
.row.g-3{ --bs-gutter-x:1rem;  --bs-gutter-y:1rem;  margin:calc(-.5*1rem) calc(-.5*1rem); }
.row.g-4{ --bs-gutter-x:1.5rem;--bs-gutter-y:1.5rem;margin:calc(-.5*1.5rem) calc(-.5*1.5rem); }
.row.g-3>*{ padding:calc(.5*1rem); }
.row.g-4>*{ padding:calc(.5*1.5rem); }
.col     { flex:1 0 0%; min-width:0; padding-right:.75rem; padding-left:.75rem; }
.col-12  { flex:0 0 auto; width:100%;    padding-right:.75rem; padding-left:.75rem; }
.col-6   { flex:0 0 auto; width:50%;     padding-right:.75rem; padding-left:.75rem; }
.col-4   { flex:0 0 auto; width:33.333%; padding-right:.75rem; padding-left:.75rem; }
.col-3   { flex:0 0 auto; width:25%;     padding-right:.75rem; padding-left:.75rem; }
@media(min-width:768px){
  .col-md-3{ flex:0 0 auto; width:25%;     padding-right:.75rem; padding-left:.75rem; }
  .col-md-4{ flex:0 0 auto; width:33.333%; padding-right:.75rem; padding-left:.75rem; }
  .col-md-8{ flex:0 0 auto; width:66.666%; padding-right:.75rem; padding-left:.75rem; }
  .col-md-9{ flex:0 0 auto; width:75%;     padding-right:.75rem; padding-left:.75rem; }
  .row-cols-md-2>*{ flex:0 0 auto; width:50%; }
}
.row-cols-1>*{ flex:0 0 auto; width:100%; }
.h-100{ height:100% !important; }
.w-100{ width:100%  !important; }

/* ── 카드 — .biz-wrap 내부 한정 (2026-07-11: 전역 .card 재정의 제거) */
.biz-wrap .card          { background:#fff; border:1px solid #dee2e6; border-radius:.5rem; }
.biz-wrap .card-body     { padding:1rem; font-size: var(--biz-fs); }
.biz-wrap .card-header   { padding:.6rem 1rem; background:#f8f9fa; border-bottom:1px solid #dee2e6; font-size: var(--biz-fs); font-weight: var(--biz-fw-m); }
.biz-wrap .card.shadow-sm{ box-shadow:0 .125rem .25rem rgba(0,0,0,.075); }
.biz-wrap .card.border-warning{ border-color:#ffc107; }
.biz-wrap .card.border-success{ border-color:#198754; }

/* ── 배지 — .biz-wrap 내부 한정 (2026-07-11: 전역 .badge 재정의 제거) */
.biz-wrap .badge{ display:inline-block; padding:.3em .6em; font-size:var(--biz-fs-xs); font-weight:700; line-height:1; color:#fff; text-align:center; white-space:nowrap; vertical-align:baseline; border-radius:.375rem; }
.biz-wrap .bg-primary  { background-color:#0d6efd; }
.biz-wrap .bg-success  { background-color:#198754; }
.biz-wrap .bg-danger   { background-color:#dc3545; }
.biz-wrap .bg-warning  { background-color:#ffc107; color:#000; }
.biz-wrap .bg-info     { background-color:#0dcaf0; color:#000; }
.biz-wrap .bg-secondary{ background-color:#6c757d; }
.biz-wrap .bg-dark     { background-color:#212529; }
.biz-wrap .bg-light    { background-color:#f8f9fa; color:#212529; }

/* ── 버튼 — .biz-wrap 내부 한정 (2026-07-11: 전역 .btn 재정의 제거) */
.biz-wrap .btn{ display:inline-block; font-weight:400; font-family:var(--biz-font); line-height:1.5; text-align:center; cursor:pointer; border:1px solid transparent; padding:.375rem .75rem; font-size:var(--biz-fs); border-radius:.375rem; transition:.15s; text-decoration:none; }
.biz-wrap .btn-sm{ padding:.25rem .5rem; font-size:var(--biz-fs-sm); border-radius:.25rem; }
.biz-wrap .btn-primary  { background:#0d6efd; border-color:#0d6efd; color:#fff; }
.biz-wrap .btn-primary:hover{ background:#0b5ed7; color:#fff; }
.biz-wrap .btn-success  { background:#198754; border-color:#198754; color:#fff; }
.biz-wrap .btn-success:hover{ background:#157347; color:#fff; }
.biz-wrap .btn-danger   { background:#dc3545; border-color:#dc3545; color:#fff; }
.biz-wrap .btn-danger:hover { background:#bb2d3b; color:#fff; }
.biz-wrap .btn-warning  { background:#ffc107; border-color:#ffc107; color:#000; }
.biz-wrap .btn-secondary{ background:#6c757d; border-color:#6c757d; color:#fff; }
.biz-wrap .btn-outline-primary  { border-color:#0d6efd; color:#0d6efd; background:transparent; }
.biz-wrap .btn-outline-primary:hover{ background:#0d6efd; color:#fff; }
.biz-wrap .btn-outline-secondary{ border-color:#6c757d; color:#6c757d; background:transparent; }
.biz-wrap .btn-outline-secondary:hover{ background:#6c757d; color:#fff; }
.biz-wrap .btn-outline-danger{ border-color:#dc3545; color:#dc3545; background:transparent; }
.biz-wrap .btn-outline-danger:hover{ background:#dc3545; color:#fff; }
.biz-wrap .btn-outline-success{ border-color:#198754; color:#198754; background:transparent; }
.biz-wrap .btn-outline-success:hover{ background:#198754; color:#fff; }
.biz-wrap .btn-close{ background:transparent; border:0; cursor:pointer; opacity:.5; font-size:1.25rem; }
.biz-wrap .btn-close:hover{ opacity:1; }

/* ── 폼 — .biz-wrap 내부 한정 */
.biz-wrap .form-control{ display:block; width:100%; padding:.35rem .7rem; font-size:var(--biz-fs); font-family:var(--biz-font); line-height:1.5; color:#212529; background:#fff; border:1px solid #ced4da; border-radius:.375rem; box-sizing:border-box; transition:.15s; }
.biz-wrap .form-control:focus{ border-color:#86b7fe; outline:0; box-shadow:0 0 0 .25rem rgba(13,110,253,.25); }
.biz-wrap .form-control-sm{ padding:.2rem .45rem; font-size:var(--biz-fs-sm); border-radius:.25rem; }
.biz-wrap .form-select{ display:block; width:100%; padding:.35rem 2.25rem .35rem .7rem; font-size:var(--biz-fs); font-family:var(--biz-font); color:#212529; background:#fff; border:1px solid #ced4da; border-radius:.375rem; box-sizing:border-box; appearance:none; }
.biz-wrap .form-select-sm{ padding:.2rem .45rem; font-size:var(--biz-fs-sm); }
.biz-wrap .form-check{ display:block; min-height:1.5rem; padding-left:1.5em; }
.form-check-input{ float:left; margin-left:-1.5em; }
.form-check-label{ cursor:pointer; font-size:var(--biz-fs); }
.form-label{ margin-bottom:.4rem; font-weight:600; font-size:var(--biz-fs); }

/* 테이블 */
.table{ width:100%; border-collapse:collapse; font-size:var(--biz-fs); }
.table th,.table td{ padding:.45rem .6rem; border-bottom:1px solid #dee2e6; vertical-align:middle; }
.table thead th{ background:#f8f9fa; font-weight:600; border-bottom:2px solid #dee2e6; }
.table-hover tbody tr:hover{ background:#f5f5f5; }
.table-sm th,.table-sm td{ padding:.2rem .45rem; }
.table-responsive{ overflow-x:auto; }

/* 내비 탭 */
.nav{ display:flex; flex-wrap:wrap; padding-left:0; list-style:none; }
.nav-tabs{ border-bottom:1px solid #dee2e6; }
.nav-tabs .nav-link{ border:1px solid transparent; border-top-left-radius:.375rem; border-top-right-radius:.375rem; margin-bottom:-1px; color:#6c757d; padding:.45rem 1rem; text-decoration:none; cursor:pointer; display:block; font-size:var(--biz-fs); }
.nav-tabs .nav-link:hover{ border-color:#e9ecef #e9ecef #dee2e6; color:#343a40; }
.nav-tabs .nav-link.active{ color:#495057; background:#fff; border-color:#dee2e6 #dee2e6 #fff; }
.nav-item{ margin:0; }

/* 리스트 그룹 */
.list-group{ display:flex; flex-direction:column; padding-left:0; margin:0; border-radius:.375rem; overflow:hidden; }
.list-group-item{ position:relative; display:block; padding:.45rem 1rem; background:#fff; border:1px solid rgba(0,0,0,.125); margin-top:-1px; font-size:var(--biz-fs); }
.list-group-item:first-child{ border-top-left-radius:.375rem; border-top-right-radius:.375rem; margin-top:0; }
.list-group-item:last-child{ border-bottom-left-radius:.375rem; border-bottom-right-radius:.375rem; }
.list-group-flush .list-group-item{ border-right:0; border-left:0; border-radius:0; }
.list-group-item-action{ text-decoration:none; color:#212529; cursor:pointer; font-size:var(--biz-fs); }
.list-group-item-action:hover{ background:#f8f9fa; }
.list-group-item.active{ background:#0d6efd; border-color:#0d6efd; color:#fff; }

/* 페이지네이션 */
.pagination{ display:flex; padding-left:0; list-style:none; border-radius:.375rem; }
.page-item .page-link{ position:relative; display:block; padding:.35rem .7rem; font-size:var(--biz-fs); color:#0d6efd; background:#fff; border:1px solid #dee2e6; margin-left:-1px; text-decoration:none; }
.page-item.active .page-link{ background:#0d6efd; border-color:#0d6efd; color:#fff; z-index:3; }
.page-item:first-child .page-link{ border-top-left-radius:.375rem; border-bottom-left-radius:.375rem; }
.page-item:last-child  .page-link{ border-top-right-radius:.375rem; border-bottom-right-radius:.375rem; }
.pagination-sm .page-link{ padding:.2rem .45rem; font-size:var(--biz-fs-sm); }

/* 알림/토스트 */
.alert{ padding:.9rem 1rem; margin-bottom:1rem; border:1px solid transparent; border-radius:.375rem; font-size:var(--biz-fs); line-height:var(--biz-lh); }
.alert-warning{ color:#664d03; background:#fff3cd; border-color:#ffecb5; }
.alert-danger { color:#842029; background:#f8d7da; border-color:#f5c2c7; }
.alert-success{ color:#0f5132; background:#d1e7dd; border-color:#badbcc; }
.alert-info   { color:#055160; background:#cff4fc; border-color:#b6effb; }

/* 모달 */
.modal{ display:none; position:fixed; top:0; left:0; width:100%; height:100%; z-index:1055; overflow-y:auto; }
.modal.fade.show{ display:block; }
.modal-dialog{ position:relative; margin:.5rem auto; pointer-events:none; max-width:500px; }
.modal-content{ position:relative; background:#fff; border:1px solid rgba(0,0,0,.2); border-radius:.5rem; pointer-events:auto; font-size:var(--biz-fs); }
.modal-header{ display:flex; align-items:center; justify-content:space-between; padding:1rem; border-bottom:1px solid #dee2e6; }
.modal-title { font-size:var(--biz-fs-lg); font-weight:600; margin:0; }
.modal-body  { padding:1rem; font-size:var(--biz-fs); }
.modal-footer{ display:flex; align-items:center; justify-content:flex-end; padding:.75rem; border-top:1px solid #dee2e6; gap:.5rem; }
.modal-backdrop{ position:fixed; top:0; left:0; width:100%; height:100%; background:#000; z-index:1050; }
.modal-backdrop.fade.show{ opacity:.5; }
.collapse{ display:none; }
.collapse.show{ display:block; }

/* 기타 유틸 */
.rounded-circle{ border-radius:50% !important; }
.rounded       { border-radius:.375rem !important; }
.shadow-sm{ box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important; }
.border   { border:1px solid #dee2e6 !important; }
.bg-white { background:#fff !important; }
.bg-light { background:#f8f9fa !important; }
.p-2{ padding:.5rem !important; }
.flex-column{ flex-direction:column !important; }

/* ── 31. 반응형 ──────────────────────────────────────────────── */
@media (max-width: 768px) {
  .biz-wrap,
  .biz-content { padding: var(--biz-sp-lg) 0 48px; }
  .biz-detail-layout { grid-template-columns: 1fr; }
  .biz-sidebar { position: static; }
  .biz-row2,
  .biz-row3 { grid-template-columns: 1fr; }
  .biz-hero { padding: 20px var(--biz-sp-lg); }
  .biz-hero h1 { font-size: var(--biz-fs-2xl); }
  .biz-grid { grid-template-columns: 1fr; }
  .biz-steps { flex-wrap: wrap; gap: var(--biz-sp-sm); }
  .biz-step::after { display: none; }
  .biz-page-header { flex-direction: column; align-items: flex-start; }
  .biz-tbl thead th.hide-sm,
  .biz-tbl td.hide-sm { display: none; }
  .biz-tbl td.td-title { max-width: 160px; }
}

/* ── 32. 다크모드 ────────────────────────────────────────────── */
html[data-theme="dark"] .sector-wrap.s5 { background: #0f172a; }
html[data-theme="dark"] .biz-card,
html[data-theme="dark"] .biz-form-box,
html[data-theme="dark"] .biz-sidebar-card { background: #1e293b; border-color: #334155; color: #e2e8f0; }
html[data-theme="dark"] .biz-card-title,
html[data-theme="dark"] .biz-page-header h2 { color: #f1f5f9; }
html[data-theme="dark"] .biz-filter { background: #1e293b; border-color: #334155; }
html[data-theme="dark"] .biz-filter input,
html[data-theme="dark"] .biz-filter select { background: #0f172a; border-color: #334155; color: #e2e8f0; }
html[data-theme="dark"] .biz-tbl thead th { background: #1e293b; color: #cbd5e1; }
html[data-theme="dark"] .biz-tbl tbody tr:hover { background: #1e293b; }
html[data-theme="dark"] .biz-tbl td { color: #e2e8f0; }
html[data-theme="dark"] .biz-hero { opacity: .92; }

/* ── 33. 폼 레이아웃 유틸리티 ─────────────────────────────────── */
/* 의뢰 등록 폼 */
.biz-back-row    { margin-bottom: var(--biz-sp-lg); }
.biz-form-center { max-width: 720px; margin: 0 auto; }
.biz-cat-icon    {
  color: #fff;
  width: 36px; height: 36px;
  border-radius: var(--biz-r-md);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

/* 체크박스 래퍼 */
.biz-check-label {
  display: flex; align-items: center;
  gap: var(--biz-sp-sm);
  cursor: pointer;
}
.biz-check {
  width: 16px; height: 16px;
  cursor: pointer;
  accent-color: var(--biz-c-primary);
}
.biz-check-text { font-size: var(--biz-fs); color: #374151; }

/* 폼 하단 버튼 행 */
.biz-form-actions {
  display: flex;
  gap: var(--biz-sp-sm);
}
.biz-btn-flex  { flex: 1; justify-content: center; }
.biz-btn-flex2 { flex: 2; justify-content: center; }

/* 필드 하단 여백 변형 */
.biz-field-row { margin: 0 0 14px; }

/* 여백 유틸 */
.biz-mb-sm { margin-bottom: var(--biz-sp-sm) !important; }
.biz-mb-md { margin-bottom: var(--biz-sp-md) !important; }
.biz-mb-lg { margin-bottom: var(--biz-sp-lg) !important; }
.biz-mb-xl { margin-bottom: var(--biz-sp-xl) !important; }

/* 가시성 유틸 */
.biz-hidden { display: none !important; }

/* ── 34. 게시판 전용 CSS ──────────────────────────────────────── */
.bd-wrap { max-width: 840px; margin: 0 auto; padding: 24px 16px 48px; }

/* 게시판 목록 헤더 (검색바 + 글쓰기 버튼) */
.bd-list-toolbar {
  display: flex;
  gap: var(--biz-sp-sm);
  margin-bottom: var(--biz-sp-lg);
  align-items: center;
  flex-wrap: wrap;
}
.bd-list-toolbar .biz-input { max-width: 280px; }
.bd-list-toolbar .bd-write-btn { margin-left: auto; }

/* 사이드바 카드 (카테고리 필터) */
.bd-sidebar { width: 160px; flex-shrink: 0; }
.bd-sidebar-card {
  background: var(--biz-c-white);
  border: 1px solid var(--biz-c-border);
  border-radius: var(--biz-r-lg);
  overflow: hidden;
  margin-bottom: var(--biz-sp-md);
}
.bd-sidebar-head {
  padding: 10px 14px;
  background: var(--biz-c-bg);
  font-size: var(--biz-fs);
  font-weight: var(--biz-fw-b);
  color: var(--biz-c-faint);
}
.bd-sidebar-link {
  display: block;
  padding: 10px 14px;
  font-size: var(--biz-fs);
  text-decoration: none;
  color: #374151;
  border-bottom: 1px solid var(--biz-c-bg2);
  transition: background .1s;
}
.bd-sidebar-link.active,
.bd-sidebar-link:hover { background: #eff6ff; color: var(--biz-c-primary); }
.bd-sidebar-link.active { font-weight: var(--biz-fw-b); }
.bd-sidebar-link-sm { padding: 8px 14px; }

/* 게시글 목록 */
.bd-list-box {
  background: var(--biz-c-white);
  border: 1px solid var(--biz-c-border);
  border-radius: var(--biz-r-lg);
  overflow: hidden;
}
.bd-list-row {
  display: flex;
  align-items: center;
  gap: var(--biz-sp-md);
  padding: 14px var(--biz-sp-lg);
  border-bottom: 1px solid var(--biz-c-bg2);
  cursor: pointer;
  transition: background .1s;
}
.bd-list-row:last-child { border-bottom: none; }
.bd-list-row:hover { background: var(--biz-c-bg); }
.bd-list-row.even { background: #fafcff; }
.bd-list-row.even:hover { background: var(--biz-c-bg); }

/* 배지 셀 */
.bd-badge-cell { flex-shrink: 0; }

/* 게시글 제목 셀 */
.bd-title-cell { flex: 1; min-width: 0; }
.bd-title-text {
  font-size: var(--biz-fs);
  font-weight: var(--biz-fw-m);
  color: var(--biz-c-body);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bd-title-reply {
  color: var(--biz-c-primary);
  font-size: var(--biz-fs);
  margin-left: var(--biz-sp-xs);
}
.bd-meta-text {
  font-size: var(--biz-fs);
  color: var(--biz-c-faint);
  margin-top: 2px;
}

/* 게시글 우측 메타 */
.bd-meta-cell {
  display: flex;
  align-items: center;
  gap: var(--biz-sp-sm);
  flex-shrink: 0;
}
.bd-view-count { font-size: var(--biz-fs); color: var(--biz-c-faint); }
.bd-secret-icon { font-size: var(--biz-fs); color: var(--biz-c-faint); }

/* 페이지네이션 */
.bd-pagination {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: var(--biz-sp-xl);
  flex-wrap: wrap;
}

/* 알림 배너 (비밀글 접근 등) */
.bd-alert-warn {
  padding: 12px var(--biz-sp-lg);
  background: #fef3c7;
  border: 1.5px solid #fde68a;
  border-radius: var(--biz-r-md);
  margin-bottom: 14px;
  font-size: var(--biz-fs);
  color: #92400e;
  display: flex;
  align-items: center;
  gap: var(--biz-sp-sm);
}

/* ── 35. 게시글 상세 CSS ──────────────────────────────────────── */
.bd-header {
  background: var(--biz-c-white);
  border: 1.5px solid var(--biz-c-border);
  border-radius: var(--biz-r-xl);
  padding: var(--biz-sp-xl);
  margin-bottom: var(--biz-sp-lg);
}
.bd-header-badges {
  display: flex;
  gap: var(--biz-sp-sm);
  margin-bottom: var(--biz-sp-md);
  flex-wrap: wrap;
}
.bd-title {
  font-size: var(--biz-fs-2xl);
  font-weight: var(--biz-fw-xb);
  color: var(--biz-c-body);
  margin: 0 0 14px;
  line-height: var(--biz-lh-sm);
}
.bd-author-row {
  display: flex;
  align-items: center;
  gap: var(--biz-sp-lg);
  flex-wrap: wrap;
}
.bd-author-info { display: flex; align-items: center; gap: var(--biz-sp-sm); }
.bd-avatar {
  width: 32px; height: 32px; border-radius: 50%;
  object-fit: cover;
  border: 1.5px solid var(--biz-c-border);
}
.bd-avatar-fallback {
  width: 32px; height: 32px; border-radius: 50%;
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  display: flex; align-items: center; justify-content: center;
  color: #fff;
  font-size: var(--biz-fs);
  font-weight: var(--biz-fw-b);
}
.bd-author-name {
  font-size: var(--biz-fs);
  font-weight: var(--biz-fw-m);
  color: #374151;
}
.bd-date-text,
.bd-view-text { font-size: var(--biz-fs); color: var(--biz-c-faint); }
.bd-reply-text {
  font-size: var(--biz-fs);
  color: var(--biz-c-primary);
  font-weight: var(--biz-fw-b);
}
.bd-edit-edited { margin-left: 6px; font-size: var(--biz-fs); }
.bd-action-row {
  display: flex;
  gap: var(--biz-sp-sm);
  margin-top: var(--biz-sp-lg);
  padding-top: 14px;
  border-top: 1px solid var(--biz-c-bg2);
}
.biz-btn-danger-soft {
  background: #fee2e2;
  color: var(--biz-c-danger);
  border: 1px solid #fca5a5;
}
.biz-btn-danger-soft:hover { background: #fecaca; }

/* 게시글 본문 */
.bd-body {
  background: var(--biz-c-white);
  border: 1.5px solid var(--biz-c-border);
  border-radius: var(--biz-r-xl);
  padding: 28px;
  margin-bottom: var(--biz-sp-lg);
  line-height: 1.9;
  font-size: var(--biz-fs-lg);
  color: var(--biz-c-body);
  white-space: pre-wrap;
  word-break: break-word;
}

/* 이전/다음 글 네비 */
.bd-nav {
  background: var(--biz-c-white);
  border: 1.5px solid var(--biz-c-border);
  border-radius: var(--biz-r-xl);
  overflow: hidden;
  margin-bottom: var(--biz-sp-lg);
}
.bd-nav-row {
  display: flex;
  align-items: center;
  gap: var(--biz-sp-md);
  padding: 12px 18px;
  border-bottom: 1px solid var(--biz-c-bg2);
  font-size: var(--biz-fs);
}
.bd-nav-row:last-child { border-bottom: none; }
.bd-nav-label {
  flex-shrink: 0;
  width: 40px;
  font-size: var(--biz-fs-sm);
  font-weight: var(--biz-fw-b);
  color: var(--biz-c-faint);
}
.bd-nav-link {
  flex: 1;
  color: #374151;
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--biz-fs);
}
.bd-nav-link:hover { color: var(--biz-c-primary); }

/* 하단 버튼 */
.bd-foot-actions {
  display: flex;
  justify-content: center;
  gap: var(--biz-sp-sm);
  margin-top: var(--biz-sp-sm);
}

/* 수정 버튼 (목록에서 행 내) */
.bd-row-btn {
  padding: 2px var(--biz-sp-sm);
  font-size: var(--biz-fs);
}

/* ── 36. 마이페이지 공통 CSS ──────────────────────────────────── */
/* 탭 카운트 배지 */
.biz-tab-count {
  margin-left: var(--biz-sp-xs);
  background: var(--biz-c-border);
  color: #374151;
  padding: 1px 7px;
  border-radius: 20px;
  font-size: var(--biz-fs);
}
/* 탭 우측 정렬 버튼 */
.biz-tab-extra {
  margin-left: auto;
  align-self: center;
}

/* 의뢰/계약/예약 카드 */
.biz-card-content {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--biz-sp-md);
}
.biz-card-left  { flex: 1; min-width: 0; }
.biz-card-right {
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-end;
  flex-shrink: 0;
}
.biz-card-badges {
  display: flex;
  align-items: center;
  gap: var(--biz-sp-sm);
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.biz-card-title-row {
  font-size: var(--biz-fs);
  font-weight: var(--biz-fw-b);
  color: var(--biz-c-body);
}
.biz-card-meta-row {
  font-size: var(--biz-fs);
  color: var(--biz-c-faint);
  margin-top: 4px;
}
.biz-card-price-row {
  font-size: var(--biz-fs);
  color: var(--biz-c-primary);
  font-weight: var(--biz-fw-b);
  margin-top: 4px;
}
.biz-card-muted {
  font-size: var(--biz-fs);
  color: var(--biz-c-muted);
  margin-top: 2px;
}

/* 카드 내 행 + 버튼 (biz-card 패딩 보정) */
.biz-card-p { padding: var(--biz-sp-lg); }
.biz-card-ps { padding: 14px; }

/* 카드 리스트 (세로 스택) */
.biz-card-list {
  display: flex;
  flex-direction: column;
  gap: var(--biz-sp-md);
}
.biz-card-list-sm {
  display: flex;
  flex-direction: column;
  gap: var(--biz-sp-sm);
}

/* 버튼 - 파란 소프트 */
.biz-btn-blue-soft {
  background: #eff6ff;
  color: var(--biz-c-primary);
  border: 1px solid #bfdbfe;
}
.biz-btn-blue-soft:hover { background: #dbeafe; }

/* 프로필 카드 아이콘 */
.biz-profile-icon {
  width: 36px; height: 36px;
  border-radius: var(--biz-r-md);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex-shrink: 0;
}

/* 히어로 헤더 내 정산 통계 */
.biz-hero-stats {
  text-align: right;
  flex-shrink: 0;
}
.biz-hero-stats-label {
  font-size: var(--biz-fs);
  opacity: .8;
}
.biz-hero-stats-value {
  font-size: var(--biz-fs-2xl);
  font-weight: var(--biz-fw-xb);
}

/* 정산 통계 요약 카드 */
.biz-stat-summary {
  background: var(--biz-c-bg);
  border-radius: var(--biz-r-lg);
  padding: var(--biz-sp-lg) var(--biz-sp-xl);
  margin-bottom: var(--biz-sp-xl);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--biz-sp-lg);
}
.biz-stat-item { text-align: center; }
.biz-stat-label { font-size: var(--biz-fs); color: var(--biz-c-faint); }
.biz-stat-value {
  font-size: var(--biz-fs-2xl);
  font-weight: var(--biz-fw-xb);
  margin-top: 2px;
}
.biz-stat-value.green   { color: var(--biz-c-success); }
.biz-stat-value.blue    { color: var(--biz-c-primary); }
.biz-stat-value.amber   { color: var(--biz-c-warn); }

/* 의뢰 등록 빠른버튼 행 */
.biz-quick-btns {
  display: flex;
  justify-content: flex-end;
  margin-bottom: var(--biz-sp-lg);
  gap: var(--biz-sp-sm);
  flex-wrap: wrap;
}

/* 프로필 섹션 헤더 */
.biz-section-action {
  display: flex;
  justify-content: flex-end;
  margin-bottom: var(--biz-sp-lg);
}

/* 히어로 내부 레이아웃 */
.biz-hero-inner {
  display: flex;
  align-items: center;
  gap: 14px;
}
.biz-hero-inner-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 14px;
}
.biz-hero-icon {
  width: 52px; height: 52px;
  background: rgba(255,255,255,.2);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--biz-fs-xl);
  flex-shrink: 0;
}
.biz-hero-verified {
  background: rgba(255,255,255,.3);
  padding: 2px var(--biz-sp-sm);
  border-radius: 20px;
  font-size: var(--biz-fs);
  font-weight: var(--biz-fw-b);
}

/* ══════════════════════════════════════════════════════════════════
   37. 서브메뉴 리스트 · 디테일 공통 레이아웃 (재구현 v2)
   ══════════════════════════════════════════════════════════════════ */

/* ── 37-A. 래퍼 & 컨테이너 ─────────────────────────────────────── */
/* 리스트용: 최대 너비를 넓게 */
.blc-wrap {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 32px 24px 64px;
  box-sizing: border-box;
}
/* 디테일용 */
.bdc-wrap {
  width: 100%;
  max-width: 1060px;
  margin: 0 auto;
  padding: 32px 24px 64px;
  box-sizing: border-box;
}

/* ── 37-B. 히어로 배너 (넓은 버전) ─────────────────────────────── */
.blc-hero {
  background: var(--cat-color, #2563eb);
  color: #fff;
  border-radius: 18px;
  padding: 28px 36px;
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  gap: 20px;
}
.blc-hero-icon {
  width: 56px; height: 56px; flex-shrink: 0;
  background: rgba(255,255,255,.18);
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  font-size: var(--biz-fs-2xl);
}
.blc-hero h1 {
  font-size:var(--biz-fs-2xl);
  font-weight: 800;
  line-height: 1.3;
  margin: 0 0 4px;
}
.blc-hero p { font-size: var(--biz-fs-sm); margin: 0; opacity: .85; }

/* ── 37-C. 카테고리 NAV (스크롤 가능) ────────────────────────── */
.blc-cat-nav {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
  margin-bottom: 20px;
  scrollbar-width: none;
}
.blc-cat-nav::-webkit-scrollbar { display: none; }
.blc-cat-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border: 1.5px solid #e2e8f0;
  border-radius: 999px;
  background: #fff;
  font-size: var(--biz-fs-sm);
  font-weight: 600;
  color: #475569;
  white-space: nowrap;
  cursor: pointer;
  transition: all .18s;
  text-decoration: none;
  flex-shrink: 0;
}
.blc-cat-btn:hover {
  border-color: var(--cat-color, #2563eb);
  color: var(--cat-color, #2563eb);
  background: var(--cat-bg, #eff6ff);
}
.blc-cat-btn.active {
  background: var(--cat-color, #2563eb);
  border-color: var(--cat-color, #2563eb);
  color: #fff;
}

/* ── 37-D. 필터 바 ───────────────────────────────────────────── */
.blc-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  background: #fff;
  border: 1.5px solid #e2e8f0;
  border-radius: 14px;
  padding: 14px 18px;
  margin-bottom: 16px;
}
.blc-filter input,
.blc-filter select {
  height: 38px;
  padding: 0 12px;
  border: 1.5px solid #e2e8f0;
  border-radius: 8px;
  font-size: var(--biz-fs-sm);
  font-family: var(--biz-font);
  color: var(--biz-c-body);
  background: #f8faff;
  outline: none;
  transition: border-color .15s;
  min-width: 140px;
}
.blc-filter input:focus,
.blc-filter select:focus { border-color: var(--biz-c-primary); background: #fff; }

/* ── 37-E. 통계 바 ───────────────────────────────────────────── */
.blc-stat {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 14px;
  font-size: var(--biz-fs-sm);
  color: var(--biz-c-muted);
}
.blc-stat strong { color: var(--biz-c-body); font-weight: 700; }
.blc-stat .legend { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-left: auto; }
.blc-cost-note { font-size: var(--biz-fs-sm); color: #92400e; }

/* ── 37-F. 카드형 리스트 그리드 ──────────────────────────────── */
.blc-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-bottom: 24px;
}

/* 요청 카드 */
.blc-card {
  background: #fff;
  border: 1.5px solid #e8eef6;
  border-radius: 14px;
  padding: 18px 22px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0 20px;
  align-items: start;
  transition: box-shadow .18s, border-color .18s, transform .15s;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}
.blc-card:hover {
  box-shadow: 0 4px 20px rgba(37,99,235,.1);
  border-color: #bfdbfe;
  transform: translateY(-1px);
}
/* 마감 임박 카드 강조 */
.blc-card.deadline-urgent { border-color: #fca5a5; background: #fff9f9; }
.blc-card.deadline-soon   { border-color: #fcd34d; }

/* 카드 왼쪽: 분야 아이콘 */
.blc-card-icon {
  width: 48px; height: 48px; flex-shrink: 0;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: var(--biz-fs-lg);
  margin-top: 2px;
}

/* 카드 중앙: 본문 */
.blc-card-body { min-width: 0; }

.blc-card-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
  margin-bottom: 6px;
}
.blc-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 9px;
  border-radius: 999px;
  font-size: var(--biz-fs-xs);
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
}

/* 제목 */
.blc-card-title {
  font-size: var(--biz-fs-base);
  font-weight: 700;
  color: var(--biz-c-body);
  line-height: 1.45;
  margin: 0 0 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 메타 행 */
.blc-card-meta {
  display: flex;
  flex-wrap: nowrap;
  gap: 16px;
  font-size: var(--biz-fs-sm);
  color: var(--biz-c-muted);
  align-items: center;
}
.blc-card-meta .sep { color: #e2e8f0; }
.blc-meta-item {
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}
.blc-meta-item i { font-size:var(--biz-fs-xs); }
.blc-meta-em { font-weight: 600; color: var(--biz-c-body); }
.blc-meta-danger { color: #dc2626; font-weight: 700; }
.blc-meta-warn   { color: #d97706; font-weight: 700; }

/* 카드 오른쪽: 액션 버튼 */
.blc-card-actions {
  display: flex;
  flex-direction: column;
  gap: 7px;
  align-items: flex-end;
  flex-shrink: 0;
}
.blc-bid-count {
  font-size: var(--biz-fs-sm);
  font-weight: 700;
  color: #2563eb;
  white-space: nowrap;
}

/* ── 37-G. 페이지네이션 ──────────────────────────────────────── */
.blc-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  margin-top: 28px;
  flex-wrap: wrap;
}

/* ── 37-H. 빈 상태 ───────────────────────────────────────────── */
.blc-empty {
  text-align: center;
  padding: 56px 24px;
  background: #fff;
  border: 1.5px dashed #e2e8f0;
  border-radius: 16px;
}
.blc-empty i { font-size:var(--biz-fs-hero); color: #cbd5e1; margin-bottom: 12px; }
.blc-empty p { font-size: var(--biz-fs-base); color: var(--biz-c-muted); margin: 0 0 16px; }

/* ══════════════════════════════════════════════════════════════════
   38. 디테일 페이지 레이아웃 (재구현 v2)
   ══════════════════════════════════════════════════════════════════ */

/* ── 38-A. 2컬럼 레이아웃 ────────────────────────────────────── */
.bdc-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 28px;
  align-items: start;
}

/* ── 38-B. 메인 컬럼 카드 ────────────────────────────────────── */
.bdc-card {
  background: #fff;
  border: 1.5px solid #e8eef6;
  border-radius: 16px;
  overflow: hidden;
}
.bdc-card + .bdc-card { margin-top: 20px; }

/* 카드 헤더 */
.bdc-card-head {
  padding: 20px 28px 16px;
  border-bottom: 1.5px solid #f1f5f9;
}

/* 분야 배지 + 제목 */
.bdc-cat-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 14px;
  border-radius: 999px;
  font-size: var(--biz-fs-sm);
  font-weight: 700;
  margin-bottom: 10px;
}
.bdc-title {
  font-size: var(--biz-fs-xl);
  font-weight: 800;
  color: var(--biz-c-body);
  line-height: 1.45;
  margin: 0;
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* 상태 배지 (우측 정렬용) */
.bdc-head-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.bdc-head-left { flex: 1; min-width: 0; }
.bdc-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 5px 16px;
  border-radius: 999px;
  font-size: var(--biz-fs-sm);
  font-weight: 700;
  white-space: nowrap;
  flex-shrink: 0;
}

/* ── 38-C. 메타 그리드 ───────────────────────────────────────── */
.bdc-meta-grid {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  overflow-x: auto;
}
.bdc-meta-item {
  flex: 1 1 auto;
  min-width: 0;
  padding: 14px 20px;
  border-right: 1px solid #f1f5f9;
  border-bottom: 1px solid #f1f5f9;
  white-space: nowrap;
}
.bdc-meta-item:last-child { border-right: none; }
.bdc-meta-label {
  font-size: var(--biz-fs-xs);
  font-weight: 600;
  color: var(--biz-c-muted);
  text-transform: uppercase;
  letter-spacing: .4px;
  margin-bottom: 5px;
  white-space: nowrap;
}
.bdc-meta-val {
  font-size: var(--biz-fs-base);
  font-weight: 700;
  color: var(--biz-c-body);
  line-height: 1.4;
  white-space: nowrap;
}
.bdc-meta-val.primary { color: var(--biz-c-primary); }
.bdc-meta-val.danger  { color: #dc2626; }
.bdc-meta-val.warn    { color: #d97706; }

/* ── 38-D. 본문 영역 ─────────────────────────────────────────── */
.bdc-body {
  padding: 24px 28px;
}
.bdc-section-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--biz-fs-base);
  font-weight: 700;
  color: var(--biz-c-body);
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1.5px solid #f1f5f9;
}
.bdc-req-text {
  font-size: var(--biz-fs-base);
  line-height: 1.9;
  color: var(--biz-c-body);
  white-space: pre-wrap;
  word-break: break-word;
}

/* 주소 박스 */
.bdc-addr {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: 16px;
  padding: 12px 16px;
  background: #f8faff;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  font-size: var(--biz-fs-sm);
  color: var(--biz-c-body);
}
.bdc-addr i { color: #ef4444; margin-top: 2px; flex-shrink: 0; }

/* 첨부 파일 */
.bdc-file-list { display: flex; flex-direction: column; gap: 8px; }
.bdc-file-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  background: #f8faff;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  gap: 10px;
  font-size: var(--biz-fs-sm);
}
.bdc-file-name {
  display: flex;
  align-items: center;
  gap: 7px;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--biz-c-body);
}

/* 의뢰자 액션 버튼 바 */
.bdc-client-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  padding: 18px 28px;
  border-top: 1.5px solid #f1f5f9;
  background: #fafcff;
}

/* ── 38-E. 입찰 현황 카드 ────────────────────────────────────── */
.bdc-bids-head {
  padding: 18px 28px 14px;
  border-bottom: 1.5px solid #f1f5f9;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.bdc-bids-title {
  font-size: var(--biz-fs-base);
  font-weight: 700;
  color: var(--biz-c-body);
  display: flex;
  align-items: center;
  gap: 8px;
}
.bdc-bids-count {
  font-size: var(--biz-fs-sm);
  font-weight: 600;
  color: #2563eb;
  background: #dbeafe;
  padding: 2px 10px;
  border-radius: 999px;
}

/* 비공개 안내 박스 */
.bdc-hidden-box {
  text-align: center;
  padding: 32px 24px;
  margin: 0;
}
.bdc-hidden-box i { font-size: var(--biz-fs-hero); color: #94a3b8; margin-bottom: 10px; }
.bdc-hidden-title { font-size: var(--biz-fs-base); font-weight: 700; color: var(--biz-c-body); margin: 0 0 6px; }
.bdc-hidden-sub   { font-size: var(--biz-fs-sm); color: var(--biz-c-muted); margin: 0 0 12px; }
.bdc-hidden-chip  {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 16px;
  background: #dbeafe; border-radius: 999px;
  font-size: var(--biz-fs-sm); font-weight: 600; color: #1d4ed8;
}

/* 개별 입찰 카드 */
.bdc-bid-card {
  padding: 20px 28px;
  border-bottom: 1px solid #f1f5f9;
}
.bdc-bid-card:last-child { border-bottom: none; }
.bdc-bid-card.mine {
  background: linear-gradient(135deg, #f0f9ff, #eff6ff55);
}
.bdc-bid-card.selected {
  background: linear-gradient(135deg, #f0fdf4, #dcfce755);
}

.bdc-bid-provider {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 14px;
}
.bdc-bid-avatar {
  width: 44px; height: 44px; flex-shrink: 0;
  border-radius: 10px;
  background: #e2e8f0;
  border: 1.5px solid #e2e8f0;
  display: flex; align-items: center; justify-content: center;
  font-size: var(--biz-fs-lg); color: #64748b;
  overflow: hidden;
}
.bdc-bid-avatar img { width: 100%; height: 100%; object-fit: cover; }
.bdc-bid-name-row { flex: 1; min-width: 0; }
.bdc-bid-name {
  font-size: var(--biz-fs-base);
  font-weight: 700;
  color: var(--biz-c-body);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.bdc-bid-meta { font-size: var(--biz-fs-sm); color: var(--biz-c-muted); margin-top: 3px; }

/* 입찰 수치 그리드 */
.bdc-bid-nums {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  margin: 12px 0;
  background: #f8faff;
  border-radius: 10px;
  padding: 10px 4px;
}
.bdc-bid-num-item {
  flex: 1;
  text-align: center;
  padding: 4px 8px;
  border-right: 1px solid #e8eef6;
}
.bdc-bid-num-item:last-child { border-right: none; }
.bdc-bid-num-label {
  font-size:var(--biz-fs-xs);
  color: var(--biz-c-muted);
  font-weight: 600;
  margin-bottom: 4px;
  white-space: nowrap;
}
.bdc-bid-num-val {
  font-size: var(--biz-fs-base);
  font-weight: 800;
  color: var(--biz-c-body);
  white-space: nowrap;
}
.bdc-bid-num-val.primary { color: var(--biz-c-primary); }

/* 입찰 메시지 */
.bdc-bid-msg {
  font-size: var(--biz-fs-sm);
  line-height: 1.7;
  color: #374151;
  margin: 10px 0;
  padding: 12px 14px;
  background: #fafcff;
  border-radius: 9px;
  border-left: 3px solid #bfdbfe;
}

/* ── 38-F. 우측 사이드바 ─────────────────────────────────────── */
.bdc-sidebar {
  position: sticky;
  top: 80px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.bdc-side-card {
  background: #fff;
  border: 1.5px solid #e8eef6;
  border-radius: 16px;
  overflow: hidden;
}

/* 사이드 카드 헤더 */
.bdc-side-head {
  padding: 14px 20px 12px;
  border-bottom: 1px solid #f1f5f9;
  font-size: var(--biz-fs-sm);
  font-weight: 700;
  color: var(--biz-c-body);
  display: flex;
  align-items: center;
  gap: 8px;
}
/* 사이드 카드 본문 */
.bdc-side-body { padding: 18px 20px; }

/* 포인트 배너 */
.bdc-point-banner {
  margin: 0 0 14px;
  padding: 12px 16px;
  border-radius: 10px;
}
.bdc-point-banner.ok    { background: #fffbeb; border: 1.5px solid #fde68a; }
.bdc-point-banner.warn  { background: #fff1f2; border: 1.5px solid #fecdd3; }
.bdc-point-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--biz-fs-sm);
  margin-top: 5px;
  gap: 8px;
  flex-wrap: nowrap;
  white-space: nowrap;
}

/* 입찰 완료 정보 */
.bdc-mybid-info {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 14px;
}
.bdc-mybid-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--biz-fs-sm);
  gap: 8px;
  flex-wrap: nowrap;
}
.bdc-mybid-row .label { color: var(--biz-c-muted); white-space: nowrap; flex-shrink: 0; }
.bdc-mybid-row .val   { font-weight: 700; white-space: nowrap; text-align: right; }

/* 요약 정보 리스트 */
.bdc-info-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bdc-info-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--biz-fs-sm);
  padding: 7px 0;
  border-bottom: 1px solid #f8faff;
  gap: 8px;
  flex-wrap: nowrap;
}
.bdc-info-row:last-child { border-bottom: none; }
.bdc-info-row .k { color: var(--biz-c-muted); font-size: var(--biz-fs-sm); white-space: nowrap; flex-shrink: 0; }
.bdc-info-row .v { font-weight: 600; color: var(--biz-c-body); white-space: nowrap; text-align: right; }

/* 업종 불일치 경고 */
.bdc-warn-card {
  border-color: #fed7aa !important;
  background: linear-gradient(135deg, #fff7ed, #ffedd5) !important;
}
.bdc-warn-head {
  color: #c2410c;
  font-size: var(--biz-fs-sm);
  font-weight: 700;
}

/* ── 38-G. 뒤로가기 행 ───────────────────────────────────────── */
.bdc-back-row {
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.bdc-breadcrumb {
  font-size: var(--biz-fs-sm);
  color: var(--biz-c-muted);
  display: flex;
  align-items: center;
  gap: 6px;
}
.bdc-breadcrumb a { color: var(--biz-c-muted); text-decoration: none; }
.bdc-breadcrumb a:hover { color: var(--biz-c-primary); }
.bdc-breadcrumb .sep { font-size:var(--biz-fs-xs); }

/* ── 38-H. 반응형 ────────────────────────────────────────────── */
@media (max-width: 900px) {
  .bdc-layout { grid-template-columns: 1fr; }
  .bdc-sidebar { position: static; }
  .bdc-bid-nums { flex-wrap: nowrap; }
}
@media (max-width: 768px) {
  .blc-wrap, .bdc-wrap { padding: 20px 14px 48px; }
  .blc-hero { padding: 20px 20px; }
  .blc-hero h1 { font-size: var(--biz-fs-lg); }
  .blc-card { grid-template-columns: 1fr; }
  .blc-card-icon { display: none; }
  .blc-card-actions { flex-direction: row; justify-content: flex-start; }
  .bdc-meta-grid { flex-wrap: wrap; }
  .bdc-meta-item { flex: 1 1 45%; min-width: 130px; padding: 12px 16px; white-space: nowrap; }
  .bdc-card-head, .bdc-body, .bdc-client-actions, .bdc-bid-card, .bdc-bids-head { padding-left: 18px; padding-right: 18px; }
  .bdc-title { font-size: var(--biz-fs-md); }
  .blc-card-meta { gap: 10px; flex-wrap: wrap; }
}
