/* ==========================================================================
   24개사 비교기 — 1:1 맞춤 설계 (custom-plan.js · sim-analysis.js)
   simulator.css 의 --sp-* 색을 그대로 씁니다. 창(dialog)은 구역 밖이라 색을 따로 정합니다.
   ========================================================================== */

/* ---------- 공통 버튼 · 입력 ---------- */
.cp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 42px;
  padding: 0 1rem;
  border: 1px solid var(--cp-border, var(--sp-border-2, #E5E7EB));
  border-radius: 11px;
  background: var(--cp-surface, var(--sp-surface, #fff));
  color: var(--cp-text, var(--sp-text, #111827));
  font: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 150ms ease, transform 150ms ease, background-color 150ms ease;
}
.cp-btn:hover { border-color: var(--sp-orange-400, #FB923C); }
.cp-btn:active { transform: scale(0.98); }
.cp-btn:disabled { opacity: 0.45; cursor: not-allowed; }
.cp-btn.is-busy { cursor: progress; opacity: 0.7; }
.cp-btn-orange {
  border-color: #EA580C;
  background: linear-gradient(to top, #F97316, #FB923C 50%, #EA580C);
  color: #fff;
  box-shadow: 0 6px 14px -6px rgba(234, 88, 12, 0.55);
}
.cp-btn-orange:hover { border-color: #C2410C; }
.cp-btn-dark {
  border-color: #404040;
  background: linear-gradient(to top, #171717, #525252);
  color: #fff;
}
[data-theme="dark"] .cp-btn-dark { border-color: #E5E5E5; background: linear-gradient(to top, #FAFAFA, #D4D4D4); color: #111; }
.cp-btn-block { width: 100%; }

.cp-link-btn {
  padding: 0.25rem 0;
  border: 0;
  background: none;
  color: var(--sp-orange-700, #C2410C);
  font: inherit;
  font-size: 0.8rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.cp-input {
  width: 100%;
  min-height: 42px;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--cp-border, var(--sp-border-2, #E5E7EB));
  border-radius: 10px;
  background: var(--cp-surface, var(--sp-surface, #fff));
  color: var(--cp-text, var(--sp-text, #111827));
  font: inherit;
  font-size: 0.95rem;
}
.cp-input:focus { outline: 3px solid rgba(249, 115, 22, 0.35); outline-offset: 1px; border-color: #F97316; }
.cp-input-money { text-align: right; font-variant-numeric: tabular-nums; }
.cp-input:disabled { opacity: 0.5; }

.cp-range { width: 100%; margin: 0.6rem 0 0.2rem; accent-color: #F97316; }
.cp-hint { margin: 0.35rem 0 0.9rem; font-size: 0.8rem; line-height: 1.55; color: var(--sp-muted, #71717A); word-break: keep-all; }

.cp-chip-row { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.5rem; }
.cp-chip {
  min-height: 34px;
  padding: 0 0.8rem;
  border: 1px solid var(--sp-border-2, #E5E7EB);
  border-radius: 999px;
  background: var(--sp-surface, #fff);
  color: var(--sp-text-2, #4B5563);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
}
.cp-chip:hover { border-color: #FB923C; }
.cp-chip.active { background: #F97316; border-color: #EA580C; color: #fff; }

.cp-check { display: flex; align-items: center; gap: 0.5rem; margin: 0.75rem 0; font-size: 0.85rem; font-weight: 600; color: var(--sp-text, #111827); cursor: pointer; }
.cp-check input { width: 18px; height: 18px; accent-color: #F97316; }

/* ---------- 사이드바: 고객 카드 ---------- */
#section-simulator .cp-customer-card { display: flex; flex-direction: column; align-items: stretch; gap: 0.85rem; margin-bottom: 1rem; padding: 1rem; }
.cp-customer-extra { margin-top: 0.35rem; font-size: 0.78rem; line-height: 1.5; color: var(--sp-text-2, #4B5563); word-break: keep-all; }
.cp-customer-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 0.35rem; }
.cp-customer-actions .cp-btn { width: 100%; }

/* ---------- 사이드바: 예산 ---------- */
.cp-budget-box {
  margin: 0 0 1.25rem;
  padding: 1rem;
  border: 1px solid var(--sp-border, #E5E5E5);
  border-radius: 14px;
  background: linear-gradient(180deg, var(--sp-popular-bg, #FFF7ED), var(--sp-surface, #fff) 70%);
  transition: border-color 200ms ease;
}
.cp-budget-box.is-ok { border-color: #16A34A; }
.cp-budget-box.is-over { border-color: #F97316; }
.cp-budget-head { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.5rem; }
.cp-budget-title { font-size: 0.95rem; font-weight: 800; color: var(--sp-text, #111827); }
.cp-budget-status { padding: 0.2rem 0.6rem; border-radius: 999px; background: var(--sp-surface-2, #FAFAFA); font-size: 0.75rem; font-weight: 700; color: var(--sp-text-2, #4B5563); white-space: nowrap; }
.cp-budget-box.is-ok .cp-budget-status { background: #DCFCE7; color: #166534; }
.cp-budget-box.is-over .cp-budget-status { background: #FFEDD5; color: #9A3412; }
.cp-budget-input-row { display: flex; align-items: center; gap: 0.5rem; }
.cp-budget-input-row .cp-input { font-size: 1.15rem; font-weight: 800; }
.cp-unit { font-weight: 700; color: var(--sp-text-2, #4B5563); }
.cp-budget-report { margin: 0.75rem 0 0; padding: 0.75rem; border-radius: 10px; background: var(--sp-surface-2, #FAFAFA); font-size: 0.8rem; line-height: 1.6; color: var(--sp-text, #111827); word-break: keep-all; }
.cp-budget-report ul { margin: 0.4rem 0; padding-left: 1.1rem; }

/* ---------- 사이드바: 나이 · 만기 · 운전 ---------- */
.cp-age-row { display: flex; align-items: center; gap: 0.5rem; }
.cp-step {
  flex: 0 0 44px;
  height: 44px;
  border: 1px solid var(--sp-border-2, #E5E7EB);
  border-radius: 10px;
  background: var(--sp-surface-2, #FAFAFA);
  color: var(--sp-text, #111827);
  font-size: 1.2rem;
  font-weight: 700;
  cursor: pointer;
}
.cp-step:hover { border-color: #FB923C; }
.cp-age-field { flex: 1; display: flex; align-items: center; gap: 0.4rem; }
.cp-age-field .cp-input { text-align: center; font-size: 1.15rem; font-weight: 800; }
.cp-age-field span { font-weight: 700; color: var(--sp-text-2, #4B5563); }
#section-simulator .cp-age-quick { margin-top: 0.4rem; }

.cp-seg { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px; border: 1px solid var(--sp-border-2, #E5E7EB); border-radius: 12px; background: var(--sp-surface-2, #FAFAFA); margin-bottom: 0.5rem; }
.cp-seg-btn {
  flex: 1 1 auto;
  min-height: 38px;
  padding: 0 0.6rem;
  border: 0;
  border-radius: 9px;
  background: none;
  color: var(--sp-muted, #71717A);
  font: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
}
.cp-seg-btn:hover { color: var(--sp-text, #111827); }
.cp-seg-btn.active { background: linear-gradient(to top, #F97316, #FB923C 50%, #EA580C); color: #fff; box-shadow: 0 1px 2px rgba(234, 88, 12, 0.6); }
.cp-seg.is-disabled .cp-seg-btn { opacity: 0.4; cursor: not-allowed; }
.cp-seg.is-disabled .cp-seg-btn.active { background: var(--sp-border-2, #E5E7EB); color: var(--sp-text-2, #4B5563); box-shadow: none; }
#section-simulator .cp-uw-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* ---------- 사이드바: 특약 도구 · 목록 ---------- */
.cp-rider-tools { display: grid; gap: 0.5rem; margin: 0.5rem 0 0.75rem; }
.cp-rider-tool-row { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.cp-tool-btn {
  min-height: 34px;
  padding: 0 0.7rem;
  border: 1px solid var(--cp-border, var(--sp-border-2, #E5E7EB));
  border-radius: 8px;
  background: var(--cp-surface, var(--sp-surface, #fff));
  color: var(--cp-text2, var(--sp-text-2, #4B5563));
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}
.cp-tool-btn:hover { border-color: #FB923C; color: var(--cp-text, var(--sp-text, #111827)); }
.cp-tool-btn[aria-pressed="true"] { background: #111827; border-color: #111827; color: #fff; }
.cp-tool-btn.is-danger:hover { border-color: #DC2626; color: #DC2626; }

#section-simulator .category-header {
  width: 100%;
  border: 0;
  background: none;
  font: inherit;
  text-align: left;
  color: inherit;
  cursor: pointer;
}
#section-simulator .category-count.has-active { background: #FFEDD5; color: #9A3412; }
#section-simulator .amount-stepper { display: flex; align-items: center; gap: 0.5rem; }
#section-simulator .btn-step {
  width: 30px;
  height: 30px;
  border: 1px solid var(--sp-border-2, #E5E7EB);
  border-radius: 8px;
  background: var(--sp-surface, #fff);
  color: var(--sp-text, #111827);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
}
#section-simulator .btn-step:disabled { opacity: 0.35; cursor: not-allowed; }
#section-simulator .amount-value { min-width: 5.5rem; text-align: center; font-weight: 800; font-variant-numeric: tabular-nums; }
.rider-price-hint { margin-top: 0.35rem; font-size: 0.76rem; font-weight: 700; color: #C2410C; }
.rider-price-hint:empty { display: none; }
[data-theme="dark"] .rider-price-hint { color: #FDBA74; }
#section-simulator .rider-badge-sector { background: #EEF2FF; color: #3730A3; }
.rider-empty { padding: 1.5rem 1rem; text-align: center; font-size: 0.85rem; color: var(--sp-muted, #71717A); }

/* ---------- 결과: 위쪽 버튼 · 카드 ---------- */
.cp-result-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.75rem; }
.sp-budget-badge { display: inline-flex; margin-top: 0.5rem; padding: 0.3rem 0.7rem; border-radius: 999px; font-size: 0.78rem; font-weight: 800; }
.sp-budget-badge.is-ok { background: #DCFCE7; color: #166534; }
.sp-budget-badge.is-over { background: #FEE2E2; color: #991B1B; }
.sp-missing-note { margin: 0.5rem 0 0; font-size: 0.75rem; line-height: 1.5; color: var(--sp-muted, #71717A); }
.sp-sa-link {
  width: 100%;
  margin-top: 0.5rem;
  min-height: 40px;
  border: 1px dashed var(--sp-orange-400, #FB923C);
  border-radius: 12px;
  background: var(--sp-orange-50, #FFF7ED);
  color: var(--sp-orange-700, #C2410C);
  font: inherit;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
}
.sp-sa-link:hover { border-style: solid; }
.sp-breakdown { margin-top: 0.75rem; border-top: 1px solid var(--sp-border, #E5E5E5); padding-top: 0.6rem; }
.sp-breakdown summary { cursor: pointer; font-size: 0.85rem; font-weight: 700; color: var(--sp-text, #111827); }
#section-simulator .sp-rider-list-priced li { display: flex; align-items: baseline; justify-content: space-between; gap: 0.5rem; }
.sp-rl-name small { display: block; font-size: 0.72rem; color: var(--sp-muted, #71717A); }
.sp-rl-price { flex: 0 0 auto; font-weight: 800; font-variant-numeric: tabular-nums; }
.sp-empty-state {
  grid-column: 1 / -1;
  display: grid;
  gap: 0.4rem;
  padding: 2.5rem 1.5rem;
  border: 1px dashed var(--sp-border-2, #E5E7EB);
  border-radius: 16px;
  background: var(--sp-surface, #fff);
  text-align: center;
  color: var(--sp-text-2, #4B5563);
  word-break: keep-all;
}
.sp-empty-state strong { font-size: 1.05rem; color: var(--sp-text, #111827); }

/* ---------- 창 (고객 상세 · 보장분석표) ---------- */
.cp-dialog {
  --cp-surface: #FFFFFF;
  --cp-surface2: #F8FAFC;
  --cp-border: #E2E8F0;
  --cp-text: #0F172A;
  --cp-text2: #475569;
  --cp-muted: #64748B;
  width: min(760px, calc(100vw - 24px));
  max-width: none;
  max-height: calc(100dvh - 24px);
  margin: auto; /* 사이트 공통 스타일이 margin 을 0 으로 바꿔 창이 왼쪽 위에 붙는 것을 막습니다 */
  padding: 0;
  border: 0;
  border-radius: 20px;
  background: var(--cp-surface);
  color: var(--cp-text);
  box-shadow: 0 30px 80px -20px rgba(15, 23, 42, 0.45);
}
.cp-dialog-wide { width: min(1180px, calc(100vw - 24px)); }
[data-theme="dark"] .cp-dialog {
  --cp-surface: #18181B;
  --cp-surface2: #232326;
  --cp-border: #3F3F46;
  --cp-text: #F4F4F5;
  --cp-text2: #D4D4D8;
  --cp-muted: #A1A1AA;
}
.cp-dialog::backdrop { background: rgba(15, 23, 42, 0.55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.cp-dialog-inner { display: flex; flex-direction: column; max-height: calc(100dvh - 24px); margin: 0; }
.cp-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.4rem 1.5rem 1rem; border-bottom: 1px solid var(--cp-border); }
.cp-kicker { margin: 0 0 0.25rem; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.04em; color: #EA580C; }
.cp-dialog-title { margin: 0; font-size: 1.4rem; font-weight: 800; letter-spacing: -0.02em; color: var(--cp-text); }
.cp-dialog-sub { margin: 0.35rem 0 0; font-size: 0.88rem; line-height: 1.55; color: var(--cp-text2); word-break: keep-all; }
.cp-close { flex: 0 0 40px; height: 40px; border: 1px solid var(--cp-border); border-radius: 12px; background: var(--cp-surface2); color: var(--cp-text); font-size: 1.4rem; line-height: 1; cursor: pointer; }
.cp-dialog-body { flex: 1; overflow: auto; padding: 1rem 1.5rem 1.25rem; }
.cp-dialog-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.9rem 1.5rem; border-top: 1px solid var(--cp-border); background: var(--cp-surface2); border-radius: 0 0 20px 20px; }
.cp-foot-status { flex: 1 1 200px; margin: 0; font-size: 0.82rem; font-weight: 600; color: var(--cp-text2); }
.cp-foot-btns { display: flex; flex-wrap: wrap; gap: 0.5rem; }

.cp-privacy { margin: 0 0 1rem; padding: 0.7rem 0.9rem; border-radius: 10px; background: #F0FDF4; color: #166534; font-size: 0.8rem; line-height: 1.55; word-break: keep-all; }
[data-theme="dark"] .cp-privacy { background: #052E16; color: #BBF7D0; }
.cp-fs { margin: 0 0 1rem; padding: 1rem; border: 1px solid var(--cp-border); border-radius: 14px; }
.cp-fs > legend { padding: 0 0.4rem; font-size: 0.95rem; font-weight: 800; color: var(--cp-text); }
.cp-fs-desc { margin: 0.25rem 0 0.5rem; font-size: 0.82rem; color: var(--cp-text2); word-break: keep-all; }
.cp-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.cp-field { display: grid; gap: 0.35rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.cp-field > span, .cp-field > legend { font-size: 0.82rem; font-weight: 700; color: var(--cp-text2); padding: 0; }
.cp-with-unit { display: flex; align-items: center; gap: 0.4rem; }
.cp-with-unit em { font-style: normal; font-weight: 700; color: var(--cp-muted); }
.cp-radio-field .cp-seg { margin: 0; }
.cp-seg-radio { flex: 1; position: relative; }
.cp-seg-radio input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.cp-seg-radio span { display: flex; align-items: center; justify-content: center; min-height: 36px; border-radius: 9px; font-size: 0.88rem; font-weight: 700; color: var(--cp-muted); }
.cp-seg-radio input:checked + span { background: linear-gradient(to top, #F97316, #FB923C 50%, #EA580C); color: #fff; }
.cp-seg-radio input:focus-visible + span { outline: 3px solid rgba(249, 115, 22, 0.45); }
.cp-dialog .cp-seg { background: var(--cp-surface2); border-color: var(--cp-border); }
.cp-age-info { margin: 0.6rem 0 0; font-size: 0.85rem; line-height: 1.6; color: var(--cp-text2); }
.cp-warn { font-style: normal; font-weight: 700; color: #C2410C; }
.cp-grid .cp-bmi { display: block; align-self: end; margin: 0 0 0.6rem; font-size: 0.85rem; color: var(--cp-text2); }
.cp-job-line { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.75rem; padding: 0.75rem 0.9rem; border-radius: 12px; background: var(--cp-surface2); }
.cp-job-line strong { display: block; font-size: 0.95rem; }
.cp-job-line small { font-size: 0.78rem; color: var(--cp-muted); }
.cp-chip-group { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 0.5rem; }
.cp-chip-check { position: relative; }
.cp-chip-check input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.cp-chip-check span { display: inline-flex; align-items: center; min-height: 34px; padding: 0 0.8rem; border: 1px solid var(--cp-border); border-radius: 999px; font-size: 0.82rem; font-weight: 600; color: var(--cp-text2); }
.cp-chip-check input:checked + span { background: #FFF7ED; border-color: #F97316; color: #9A3412; font-weight: 800; }
.cp-chip-check input:checked + span::before { content: '✓ '; white-space: pre; }
.cp-chip-check input:focus-visible + span { outline: 3px solid rgba(249, 115, 22, 0.45); }
[data-theme="dark"] .cp-chip-check input:checked + span { background: #431407; color: #FED7AA; }
.cp-suggest { margin: 0.25rem 0 0.75rem; font-size: 0.82rem; line-height: 1.6; color: var(--cp-text); word-break: keep-all; }
.cp-suggest:empty { display: none; }
.cp-textarea { min-height: 96px; resize: vertical; line-height: 1.6; }

/* ---------- 보장분석표 만들기 ---------- */
.sa-step { margin-bottom: 1.25rem; }
.sa-step-title { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 0.5rem; font-size: 1rem; font-weight: 800; color: var(--cp-text); }
.sa-step-title > span { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #F97316; color: #fff; font-size: 0.85rem; }
.sa-step-title small { margin-left: auto; font-size: 0.8rem; font-weight: 700; color: var(--cp-muted); }
.sa-company-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 0.4rem; margin-top: 0.6rem; max-height: 260px; overflow: auto; padding: 2px; }
.sa-co { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0.65rem; border: 1px solid var(--cp-border); border-radius: 10px; font-size: 0.82rem; cursor: pointer; }
.sa-co input { width: 17px; height: 17px; accent-color: #F97316; }
.sa-co.is-on { border-color: #F97316; background: #FFF7ED; }
[data-theme="dark"] .sa-co.is-on { background: #431407; }
.sa-co.is-full { opacity: 0.45; cursor: not-allowed; }
.sa-co-name { flex: 1; min-width: 0; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sa-co-name small { display: block; font-weight: 600; color: var(--cp-muted); }
.sa-co-price { font-weight: 800; font-variant-numeric: tabular-nums; }
.sa-assign-scroll { overflow: auto; border: 1px solid var(--cp-border); border-radius: 12px; }
.sa-assign-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; }
.sa-assign-table th, .sa-assign-table td { padding: 0.45rem 0.6rem; border-bottom: 1px solid var(--cp-border); text-align: center; white-space: nowrap; }
.sa-assign-table thead th { position: sticky; top: 0; background: var(--cp-surface2); font-weight: 800; }
.sa-assign-table tbody th { text-align: left; font-weight: 700; white-space: normal; min-width: 160px; }
.sa-assign-table tbody th small { display: block; font-weight: 600; color: var(--cp-muted); }
.sa-assign-table td.is-on { background: #FFF7ED; font-weight: 800; }
[data-theme="dark"] .sa-assign-table td.is-on { background: #431407; }
.sa-assign-table td.is-na { color: var(--cp-muted); }
.sa-assign-table label { display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer; }
.sa-assign-table input { accent-color: #F97316; }
.sa-preview-wrap { overflow: auto; border: 1px solid var(--cp-border); border-radius: 12px; background: #fff; padding: 8px; }

/* PDF 용 인쇄판 (화면 밖) */
.sa-print { position: absolute; left: -30000px; top: 0; width: 1400px; }
.sa-print .sa-page { width: 1400px; padding: 28px 32px; background: #fff; }

/* 보장분석표 모양 (analysis.css 와 같은 모양, 이 페이지에서만 씁니다) */
.sa-preview-wrap .as-sheet, .sa-print .as-sheet { min-width: 980px; padding: 8px; background: #fff; color: #111; font-family: 'Pretendard', 'Noto Sans KR', 'Malgun Gothic', sans-serif; }
.sa-preview-wrap .as-top, .sa-print .as-top { display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; gap: 1rem; margin-bottom: 10px; }
.sa-preview-wrap .as-brand, .sa-print .as-brand { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 14px; font-weight: 700; color: #F37321; }
.sa-preview-wrap .as-dot, .sa-print .as-dot { width: 22px; height: 22px; border: 3px solid #F37321; border-radius: 50%; box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 6px #FBB07A; }
.sa-preview-wrap .as-title, .sa-print .as-title { margin: 0; font-size: 30px; font-weight: 800; text-decoration: underline; text-underline-offset: 6px; color: #111; letter-spacing: 0.02em; }
.sa-preview-wrap .as-right, .sa-print .as-right { margin: 0; text-align: right; font-size: 13px; font-weight: 700; color: #333; }
.sa-preview-wrap .as-table, .sa-print .as-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 13px; }
.sa-preview-wrap .as-table th, .sa-preview-wrap .as-table td,
.sa-print .as-table th, .sa-print .as-table td { border: 1px solid #7F7F7F; padding: 6px; text-align: center; vertical-align: middle; line-height: 1.35; word-break: keep-all; overflow-wrap: anywhere; color: #111; }
.sa-preview-wrap .as-table th, .sa-print .as-table th { font-weight: 700; }
.sa-preview-wrap .c-g, .sa-print .c-g { width: 70px; }
.sa-preview-wrap .c-s, .sa-print .c-s { width: 100px; }
.sa-preview-wrap .c-t, .sa-print .c-t { width: 170px; }
.sa-preview-wrap .as-corner, .sa-print .as-corner { background: #DCE6F1; }
.sa-preview-wrap .as-band, .sa-print .as-band { background: #D9D9D9; font-size: 15px; height: 44px; }
.sa-preview-wrap .as-cust, .sa-print .as-cust { background: #DCE6F1; font-size: 11.5px; font-weight: 600; line-height: 1.55; }
.sa-preview-wrap .as-ph, .sa-print .as-ph { background: #B4C6E7; height: 52px; }
.sa-preview-wrap .as-ph small, .sa-print .as-ph small { display: block; margin-top: 2px; font-size: 11px; font-weight: 500; color: #333; }
.sa-preview-wrap .as-ph.is-new, .sa-print .as-ph.is-new { background: #FFE699; }
.sa-preview-wrap .as-g, .sa-print .as-g { font-size: 16px; background: #fff; }
.sa-preview-wrap .as-s, .sa-preview-wrap .as-single, .sa-print .as-s, .sa-print .as-single { font-size: 14px; background: #fff; }
.sa-preview-wrap .as-r td, .sa-print .as-r td { height: 34px; }
.sa-preview-wrap .as-r.is-tall td, .sa-print .as-r.is-tall td { height: 52px; }
.sa-preview-wrap .sa-cell, .sa-print .sa-cell { font-size: 12px; font-weight: 600; }
.sa-preview-wrap .sa-line, .sa-print .sa-line { display: block; white-space: nowrap; }
.sa-preview-wrap .sa-line b, .sa-print .sa-line b { font-weight: 700; color: #333; }
.sa-preview-wrap .as-tv, .sa-print .as-tv { font-weight: 800; }
.sa-preview-wrap .as-prem th, .sa-preview-wrap .as-prem td, .sa-print .as-prem th, .sa-print .as-prem td { background: #DCE6F1; font-weight: 800; height: 36px; }
.sa-preview-wrap .as-prem small, .sa-print .as-prem small { display: block; font-size: 10.5px; font-weight: 600; }
.sa-preview-wrap .as-red, .sa-print .as-red { color: #E00000 !important; }
.sa-preview-wrap .as-note th, .sa-print .as-note th { background: #EBF1DE; height: 72px; }
.sa-preview-wrap .as-note td, .sa-print .as-note td { background: #E2EFDA; font-size: 12px; }
.sa-preview-wrap .as-status th, .sa-preview-wrap .as-status td, .sa-print .as-status th, .sa-print .as-status td { background: #DCE6F1; height: 32px; }
.sa-preview-wrap .as-status td.is-new, .sa-print .as-status td.is-new { background: #FFE699; font-weight: 800; }
.sa-preview-wrap .as-foot, .sa-print .as-foot { margin: 6px 0 0; text-align: center; font-size: 13px; font-weight: 800; color: #111; }
.sa-preview-wrap .sa-unplaced, .sa-print .sa-unplaced { margin: 6px 0 0; font-size: 12px; font-weight: 700; color: #B91C1C; }

/* ---------- 직업 찾기 창 ---------- */
.job-result-count { margin: 0.5rem 0 0; font-size: 0.8rem; font-weight: 600; color: var(--text-muted, #64748B); }
.job-alias-note, .job-more-note { margin: 0.25rem 0 0.75rem; padding: 0.6rem 0.8rem; border-radius: 10px; background: #FFF7ED; color: #9A3412; font-size: 0.82rem; font-weight: 700; }
.job-more-note { background: #F1F5F9; color: #334155; }
.job-empty { padding: 1.5rem 1rem 0.5rem; text-align: center; }
.job-empty p { margin: 0 0 0.25rem; font-weight: 700; }
.job-empty span { font-size: 0.82rem; color: var(--text-muted, #64748B); }
.job-manual-box { display: grid; gap: 0.4rem; margin: 1rem 0 0.5rem; padding: 1rem; border: 1px dashed #CBD5E1; border-radius: 12px; }
.job-manual-box > span { font-size: 0.8rem; line-height: 1.55; color: var(--text-muted, #64748B); word-break: keep-all; }
.job-manual-row { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.job-manual-row input, .job-manual-row select { flex: 1 1 140px; min-height: 40px; padding: 0 0.6rem; border: 1px solid #CBD5E1; border-radius: 9px; font: inherit; }
.job-item-card:focus-visible { outline: 3px solid rgba(249, 115, 22, 0.5); outline-offset: 2px; }

/* ---------- 좁은 화면 ---------- */
@media (max-width: 640px) {
  .cp-grid { grid-template-columns: 1fr; }
  .cp-dialog { width: 100vw; max-height: 100dvh; border-radius: 0; }
  .cp-dialog-inner { max-height: 100dvh; }
  .cp-dialog-foot { border-radius: 0; }
  .cp-dialog-head, .cp-dialog-body, .cp-dialog-foot { padding-left: 1rem; padding-right: 1rem; }
  .cp-foot-btns { width: 100%; }
  .cp-foot-btns .cp-btn { flex: 1 1 45%; }
  .cp-result-actions .cp-btn { flex: 1 1 100%; }
  .sa-company-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .cp-btn, .cp-budget-box { transition: none; }
}
