:root {
  --bundle-blue: #0758e8;
  --bundle-blue-2: #004de6;
  --bundle-ink: #111827;
  --bundle-muted: #667085;
  --bundle-line: #dbe1ea;
  --bundle-soft: #f5f7fa;
  --bundle-panel: #ffffff;
}

.bundle_product_banner {
  background: #f7f8fb;
}

.bundle_product_banner .common_wrap {
  min-width: 0;
}

.bundle_banner_page {
  box-sizing: border-box;
  min-height: calc(100vh - 64px);
  padding: 22px 28px 48px;
  background:
    radial-gradient(circle at 80% 3%, rgba(62, 107, 255, .06), transparent 26%),
    #f7f8fb;
  color: var(--bundle-ink);
}

.bundle_banner_page *,
.bundle_banner_page *::before,
.bundle_banner_page *::after {
  box-sizing: border-box;
}

.bundle_banner_page [hidden] { display: none !important; }

.bundle_banner_switch_header {
  position: sticky;
  top: 60px;
  z-index: 90;
  display: flex;
  width: calc(100% + 56px);
  min-height: 64px;
  align-items: center;
  gap: 8px;
  margin: -22px -28px 22px;
  padding: 14px 24px;
  border-bottom: 1px solid rgba(226, 231, 240, .82);
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.bundle_banner_switch_close { display: inline-flex; width: 32px; height: 32px; flex: 0 0 auto; align-items: center; justify-content: center; border-radius: 50%; color: #22242a; text-decoration: none; }
.bundle_banner_switch_close:hover { background: #f4f4f5; }
.bundle_banner_switch_close svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.bundle_banner_switch_title { flex: 0 0 auto; color: #0e0e12; font-size: 15px; font-weight: 500; }

.bundle_breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: 1500px;
  margin: 0 auto 16px;
  color: #647084;
  font-size: 14px;
}

.bundle_breadcrumb a,
.bundle_breadcrumb strong {
  color: inherit;
  text-decoration: none;
}

.bundle_breadcrumb strong { color: var(--bundle-ink); }
.bundle_breadcrumb svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.6; }
.bundle_breadcrumb > a:first-child { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; }
.bundle_breadcrumb > a:first-child:hover { background: #edf1f7; color: var(--bundle-ink); }

.bundle_page_heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  max-width: 1500px;
  margin: 0 auto 20px;
}

.bundle_page_eyebrow {
  margin: 0 0 5px;
  color: var(--bundle-blue);
  font-size: 12px;
  font-weight: 800;
}

.bundle_page_heading h1 { margin: 0; font-size: clamp(25px, 2vw, 34px); line-height: 1.25; letter-spacing: -.035em; }
.bundle_page_heading p:last-child { margin: 7px 0 0; color: var(--bundle-muted); font-size: 14px; }

.bundle_ai_banner_link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid #cfd7e5;
  border-radius: 10px;
  background: #fff;
  color: #344054;
  font-size: 13px;
  font-weight: 750;
  text-decoration: none;
  transition: .18s ease;
}

.bundle_ai_banner_link:hover { border-color: var(--bundle-blue); color: var(--bundle-blue); transform: translateY(-1px); }

/* 저장된 작업을 비우고 새로 시작하는 버튼 */
.bundle_new_work_btn { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 7px; min-height: 40px; padding: 0 14px; border: 1px solid #cfd7e5; border-radius: 10px; background: #fff; color: #344054; font-size: 13px; font-weight: 750; cursor: pointer; transition: .18s ease; }
.bundle_new_work_btn:hover { border-color: var(--bundle-blue); color: var(--bundle-blue); transform: translateY(-1px); }
.bundle_new_work_btn svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.bundle_ai_banner_link svg { width: 17px; height: 17px; stroke: currentColor; stroke-width: 1.5; }

.bundle_editor_layout {
  display: grid;
  grid-template-columns: minmax(540px, .92fr) minmax(560px, 1.08fr);
  align-items: start;
  gap: 16px;
  max-width: 1500px;
  margin: 0 auto;
}

.bundle_editor_controls { display: grid; gap: 14px; }

.bundle_panel,
.bundle_preview_panel {
  border: 1px solid var(--bundle-line);
  border-radius: 14px;
  background: var(--bundle-panel);
  box-shadow: 0 4px 18px rgba(20, 32, 56, .035);
}

.bundle_panel { padding: 18px; }
.bundle_preview_panel { position: sticky; top: 78px; padding: 18px; }

.bundle_panel_heading,
.bundle_panel_heading > div,
.bundle_panel_heading_inline {
  display: flex;
  align-items: center;
}

.bundle_panel_heading { justify-content: space-between; margin-bottom: 14px; }
.bundle_panel_heading > div { gap: 9px; }
.bundle_panel_heading h2 { margin: 0; font-size: 18px; line-height: 1.3; letter-spacing: -.02em; }
.bundle_step { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 8px; background: #101828; color: #fff; font-size: 11px; font-weight: 800; }
.bundle_count,
.bundle_optional { padding: 5px 9px; border-radius: 999px; background: #f1f4f8; color: #687386; font-size: 11px; font-weight: 750; }
.bundle_panel_description { margin: -6px 0 13px 33px; color: var(--bundle-muted); font-size: 12px; line-height: 1.55; }

.bundle_mode_cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.bundle_mode_card {
  position: relative;
  display: flex;
  min-height: 150px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1px solid #cfd7e3;
  border-radius: 13px;
  background: #fff;
  color: var(--bundle-ink);
  cursor: pointer;
  transition: .18s ease;
}
.bundle_mode_card:hover { border-color: #8db3ff; transform: translateY(-1px); }
.bundle_mode_card.is_active { border: 2px solid var(--bundle-blue); background: linear-gradient(145deg, #fff 30%, #f1f6ff); box-shadow: 0 5px 18px rgba(0, 84, 230, .09); }
.bundle_mode_card strong { margin-top: 12px; font-size: 17px; }
.bundle_mode_card small { margin-top: 6px; color: var(--bundle-muted); font-size: 12px; }
.bundle_check { position: absolute; top: 10px; right: 10px; display: none; width: 23px; height: 23px; place-items: center; border-radius: 50%; background: var(--bundle-blue); color: #fff; }
.bundle_mode_card.is_active .bundle_check { display: grid; }
.bundle_check svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 2; }
.bundle_mode_icon { display: grid; width: 54px; height: 45px; color: #9aa4b4; }
.bundle_mode_card.is_active .bundle_mode_icon { color: var(--bundle-blue); }
.bundle_grid_icon { grid-template-columns: 1fr 1fr; gap: 5px; }
.bundle_grid_icon i { border-radius: 4px; background: currentColor; opacity: .78; }
.bundle_cutout_icon svg { width: 56px; height: 56px; overflow: visible; }
.bundle_cutout_icon rect { fill: #e5e9f0; stroke: #b8c1cf; stroke-width: 1.3; stroke-dasharray: 3 3; }
.bundle_cutout_icon path:first-of-type { fill: currentColor; opacity: .78; }
.bundle_cutout_icon path:last-of-type { stroke: #fff; stroke-width: 1.4; }

.bundle_url_row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: start; gap: 9px; }
.bundle_url_row textarea,
.bundle_field_grid input,
.bundle_logo_row select,
.bundle_custom_size_fields input {
  width: 100%;
  min-height: 42px;
  border: 1px solid #d4dbe6;
  border-radius: 9px;
  background: #fff;
  color: var(--bundle-ink);
  font: inherit;
  font-size: 13px;
  outline: none;
  transition: .18s ease;
}
.bundle_url_row textarea,
.bundle_field_grid input { padding: 0 13px; }
.bundle_url_row textarea { min-height: 42px; max-height: 112px; padding-top: 10px; padding-bottom: 10px; resize: vertical; line-height: 20px; }
.bundle_url_row textarea:focus,
.bundle_field_grid input:focus,
.bundle_custom_size_fields input:focus,
.bundle_logo_row select:focus { border-color: var(--bundle-blue); box-shadow: 0 0 0 3px rgba(7, 88, 232, .1); }
.bundle_url_row textarea::placeholder,
.bundle_field_grid input::placeholder { color: #98a2b3; }
.bundle_url_hint { margin: 6px 0 0; color: #98a2b3; font-size: 10px; }

.bundle_btn { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 6px; padding: 0 15px; border-radius: 9px; font-size: 13px; font-weight: 750; cursor: pointer; transition: .18s ease; }
.bundle_btn svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.bundle_btn_primary { border: 1px solid var(--bundle-blue); background: var(--bundle-blue); color: #fff; }
.bundle_btn_primary:hover { background: #004acb; }
.bundle_btn_outline { border: 1px solid #a7c2ff; background: #fff; color: var(--bundle-blue); }
.bundle_btn_outline:hover { background: #f3f7ff; }

.bundle_asset_empty { display: flex; min-height: 102px; margin-top: 13px; align-items: center; justify-content: center; flex-direction: column; border: 1px dashed #cbd4e2; border-radius: 11px; background: #fafbfc; color: #98a2b3; text-align: center; }
.bundle_asset_empty svg { width: 28px; height: 28px; margin-bottom: 7px; stroke: currentColor; stroke-width: 1.4; }
.bundle_asset_empty strong { color: #657084; font-size: 12px; }
.bundle_asset_empty span { margin-top: 3px; font-size: 11px; }

.bundle_asset_list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-top: 13px; }
.bundle_asset_card { position: relative; overflow: hidden; aspect-ratio: 1 / 1; border: 1px solid #d9dfe8; border-radius: 9px; background: #f5f6f8; cursor: grab; transition: .16s ease; }
.bundle_asset_card:hover,
.bundle_asset_card.is_selected { border-color: var(--bundle-blue); box-shadow: 0 0 0 2px rgba(7, 88, 232, .11); }
.bundle_asset_card.is_dragging { opacity: .45; }
.bundle_asset_card img { width: 100%; height: 100%; object-fit: contain; }
.bundle_asset_drag { position: absolute; left: 5px; bottom: 5px; display: grid; width: 21px; height: 21px; place-items: center; border-radius: 6px; background: rgba(17, 24, 39, .66); color: #fff; font-size: 12px; }
.bundle_asset_primary,
.bundle_asset_remove { position: absolute; display: grid; width: 23px; height: 23px; place-items: center; border: 0; border-radius: 50%; cursor: pointer; }
.bundle_asset_primary { top: 5px; left: 5px; background: rgba(255,255,255,.91); color: #9ca3af; }
.bundle_asset_primary.is_active { background: var(--bundle-blue); color: #fff; }
.bundle_asset_primary svg { width: 13px; height: 13px; fill: currentColor; }
.bundle_asset_remove { top: 5px; right: 5px; background: rgba(17,24,39,.72); color: #fff; font-size: 17px; }

.bundle_inline_status { min-height: 16px; margin: 7px 0 0; color: #d92d20; font-size: 11px; }
.bundle_inline_status.is_success { color: #039855; }

.bundle_template_grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.bundle_template { position: relative; min-height: 106px; border: 1px solid #d5dce7; border-radius: 10px; background: #fff; color: #667085; cursor: pointer; }
.bundle_template.is_active { border: 2px solid var(--bundle-blue); background: #f6f9ff; color: var(--bundle-blue); }
.bundle_template:disabled { opacity: .38; cursor: not-allowed; }
.bundle_template strong { display: block; margin-top: 8px; font-size: 12px; }
.bundle_template_shape { display: grid; width: 70px; height: 42px; margin: 0 auto; gap: 4px; }
.bundle_template_shape i { display: block; border-radius: 3px; background: currentColor; opacity: .48; }
.bundle_template_shape.columns-2 { grid-template-columns: repeat(2, 1fr); }
.bundle_template_shape.columns-3 { grid-template-columns: repeat(3, 1fr); }
.bundle_template_shape.columns-4 { grid-template-columns: repeat(4, 1fr); }
.bundle_template_shape.grid-2x2 { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); }
.bundle_template_shape.emphasis-5 { grid-template-columns: 1.7fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
.bundle_template_shape.emphasis-5 i:first-child { grid-row: 1 / 3; }

.bundle_setting_row { display: grid; grid-template-columns: 94px minmax(0, 1fr) 72px; align-items: center; gap: 12px; min-height: 50px; margin-top: 10px; border-top: 1px solid #edf0f4; padding-top: 10px; font-size: 12px; }
.bundle_setting_row > label,
.bundle_setting_row > span:first-child { color: #344054; font-weight: 700; }
.bundle_setting_row input[type="range"] { width: 100%; accent-color: var(--bundle-blue); }
.bundle_setting_row output { display: grid; min-height: 34px; place-items: center; border: 1px solid #d9dfe8; border-radius: 8px; color: #344054; font-variant-numeric: tabular-nums; }
.bundle_color_row { grid-template-columns: 72px minmax(0, 1fr); }
.bundle_color_swatches { display: flex; flex-wrap: wrap; gap: 12px; }
.bundle_color_swatches button,
.bundle_custom_color { position: relative; display: grid; width: 34px; height: 34px; place-items: center; overflow: hidden; border: 1px solid #d7dee8; border-radius: 7px; background: var(--swatch); cursor: pointer; }
.bundle_color_swatches button.is_active { border: 2px solid var(--bundle-blue); box-shadow: 0 0 0 2px #fff inset; }
.bundle_custom_color input { position: absolute; inset: -8px; width: 50px; height: 50px; opacity: 0; cursor: pointer; }
.bundle_custom_color span { color: #667085; font-size: 18px; }
.bundle_fit_row,
.bundle_text_position_row,
.bundle_layer_row { grid-template-columns: 94px minmax(0, 1fr); }
.bundle_segmented { display: inline-flex; width: max-content; overflow: hidden; border: 1px solid #d5dce7; border-radius: 8px; }
.bundle_segmented button { min-height: 34px; padding: 0 14px; border: 0; border-right: 1px solid #d5dce7; background: #fff; color: #667085; font-size: 12px; font-weight: 700; cursor: pointer; }
.bundle_segmented button:last-child { border-right: 0; }
.bundle_segmented button.is_active { background: #eff5ff; color: var(--bundle-blue); }
.bundle_segmented button:disabled { color: #b5bdc9; cursor: not-allowed; }
.bundle_layer_order_wrap { display: flex; min-width: 0; align-items: center; gap: 9px; }
.bundle_layer_order_wrap small { color: #98a2b3; font-size: 10px; white-space: nowrap; }

.bundle_toggle_row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 11px 12px; border: 1px solid #e0e5ed; border-radius: 10px; }
.bundle_toggle_row strong { display: block; font-size: 13px; }
.bundle_toggle_row span { display: block; margin-top: 3px; color: var(--bundle-muted); font-size: 11px; }
.bundle_switch { position: relative; flex: 0 0 auto; }
.bundle_switch input { position: absolute; opacity: 0; pointer-events: none; }
.bundle_switch span { display: block; width: 42px; height: 24px; margin: 0; border-radius: 999px; background: #cbd2dc; cursor: pointer; transition: .18s ease; }
.bundle_switch span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.16); transition: .18s ease; }
.bundle_switch input:checked + span { background: var(--bundle-blue); }
.bundle_switch input:checked + span::after { transform: translateX(18px); }
.bundle_subject_mode { margin-top: 10px; padding: 13px; border: 1px solid #e0e5ed; border-radius: 12px; background: #fafbfc; }
.bundle_subject_mode_heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.bundle_subject_mode_heading strong { color: #344054; font-size: 13px; }
.bundle_subject_mode_heading span { color: #667085; font-size: 10px; }
.bundle_subject_mode_options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.bundle_subject_mode_options button { display: grid; min-width: 0; min-height: 82px; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 14px; border: 1px solid #d8dfe9; border-radius: 11px; background: #fff; color: #667085; text-align: left; cursor: pointer; transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease; }
.bundle_subject_mode_options button:hover:not(:disabled) { border-color: #a9c5ff; background: #f7faff; }
.bundle_subject_mode_options button.is_active { border-color: var(--bundle-blue); background: #f1f6ff; color: var(--bundle-blue); box-shadow: inset 0 0 0 1px var(--bundle-blue); }
.bundle_subject_mode_options button:disabled { opacity: .42; cursor: not-allowed; }
.bundle_subject_mode_icon { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 11px; background: #f1f5fb; color: #667085; }
.bundle_subject_mode_options button.is_active .bundle_subject_mode_icon { background: #dceaff; color: var(--bundle-blue); }
.bundle_subject_mode_icon svg { width: 21px; height: 21px; stroke: currentColor; stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; }
.bundle_subject_mode_copy { display: flex; min-width: 0; align-items: flex-start; flex-direction: column; gap: 3px; }
.bundle_subject_mode_options strong { color: #344054; font-size: 11px; line-height: 1.35; }
.bundle_subject_mode_options button.is_active strong { color: var(--bundle-blue); }
.bundle_subject_mode_options small { color: #667085; font-size: 9px; line-height: 1.45; word-break: keep-all; }
.bundle_subject_mode_check { display: grid; width: 22px; height: 22px; place-items: center; border: 1px solid #d8dfe9; border-radius: 50%; color: transparent; }
.bundle_subject_mode_check svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.bundle_subject_mode_options button.is_active .bundle_subject_mode_check { border-color: var(--bundle-blue); background: var(--bundle-blue); color: #fff; }
.bundle_model_framing { margin-top: 10px; padding-top: 10px; border-top: 1px dashed #d8dfe9; }
.bundle_model_framing[hidden] { display: none; }
.bundle_model_framing_heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.bundle_model_framing_heading strong { color: #344054; font-size: 12px; }
.bundle_model_framing_heading span { color: #667085; font-size: 9px; }
.bundle_model_framing_options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 8px; }
/* border 두께를 바꾸면 버튼 높이가 2px 출렁이고, transition:all 이 그 두께를 애니메이션해서
   선택을 옮기는 동안 행 높이가 미세하게 떨린다. 두께는 1px로 고정하고 안쪽 그림자로 굵어 보이게만 한다. */
.bundle_model_framing_options button { display: flex; min-width: 0; flex-direction: column; gap: 3px; padding: 9px 10px; border: 1px solid #d8dfe9; border-radius: 9px; background: #fff; text-align: left; cursor: pointer; transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease; }
.bundle_model_framing_options button:hover:not(:disabled) { border-color: #a9c5ff; background: #f7faff; }
.bundle_model_framing_options button:disabled { cursor: not-allowed; }
/* 제품만 사용 모드에서는 인물이 없어 적용 대상이 없다. 숨기면 패널 높이가 출렁이므로 자리는 그대로 두고 흐리게만 처리한다. */
.bundle_panel_heading_actions { display: flex; align-items: center; gap: 8px; }
.bundle_reset_images { display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; border: 1px solid #d8dfe9; border-radius: 999px; background: #fff; color: #667085; font-size: 11px; font-weight: 650; cursor: pointer; transition: border-color .16s ease, background-color .16s ease, color .16s ease; }
.bundle_reset_images svg { width: 13px; height: 13px; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.bundle_reset_images:hover:not(:disabled) { border-color: #f0a9a9; background: #fff5f5; color: #c0392b; }
.bundle_reset_images:disabled { opacity: .4; cursor: not-allowed; }
.bundle_model_framing.is_disabled { opacity: .45; }
/* 결과가 나온 뒤에는 리사이징만 하므로 합성 대상·프레이밍 설정을 통째로 잠근다. */
.bundle_subject_mode.is_locked .bundle_subject_mode_options,
.bundle_subject_mode.is_locked .bundle_model_framing { opacity: .45; pointer-events: none; }
.bundle_model_framing.is_disabled .bundle_model_framing_options { pointer-events: none; }
.bundle_model_framing_options button.is_active { border-color: var(--bundle-blue); background: #edf4ff; box-shadow: inset 0 0 0 1px var(--bundle-blue), 0 0 0 3px rgba(7, 88, 232, .08); }
.bundle_model_framing_options strong { color: #344054; font-size: 11px; line-height: 1.35; }
.bundle_model_framing_options button.is_active strong { color: var(--bundle-blue); }
.bundle_model_framing_options small { color: #667085; font-size: 9px; line-height: 1.45; word-break: keep-all; }
.bundle_subject_mode_help { display: flex; align-items: flex-start; gap: 7px; margin: 9px 0 0; padding: 9px 10px; border-radius: 8px; background: #edf4ff; color: #365f9e; font-size: 9px; line-height: 1.5; }
.bundle_subject_mode_help svg { width: 15px; height: 15px; flex: 0 0 auto; stroke: var(--bundle-blue); stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; }
.bundle_export_subject_mode { margin-top: 13px; background: #f7faff; border-color: #d7e3fb; }
.bundle_export_subject_mode + .bundle_export_actions { margin-top: 8px; }
.bundle_selected_product { margin-top: 10px; padding: 10px 12px; border-radius: 9px; background: #f5f7fa; color: #667085; font-size: 11px; }
.bundle_layer_control { margin-top: 10px; padding-top: 10px; border-top: 1px solid #edf0f4; }
.bundle_layer_heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.bundle_layer_heading > span { color: #344054; font-size: 12px; font-weight: 700; }
.bundle_layer_heading small { color: #667085; font-size: 9px; font-variant-numeric: tabular-nums; }
.bundle_layer_buttons { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-top: 8px; }
.bundle_layer_buttons button { display: flex; min-width: 0; min-height: 48px; align-items: center; justify-content: center; flex-direction: column; gap: 3px; padding: 5px 3px; border: 1px solid #d5dce7; border-radius: 8px; background: #fff; color: #475467; font-size: 9px; font-weight: 700; cursor: pointer; transition: border-color .16s ease, background .16s ease, color .16s ease; }
.bundle_layer_buttons button:hover:not(:disabled) { border-color: #9fbbf5; background: #f4f7ff; color: var(--bundle-blue); }
.bundle_layer_buttons button:disabled { opacity: .4; cursor: not-allowed; }
.bundle_layer_buttons svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }
.bundle_additional_request { margin-top: 10px; overflow: hidden; border: 1px solid #e0e5ed; border-radius: 10px; background: #fff; }
.bundle_additional_request summary { display: flex; min-height: 46px; align-items: center; justify-content: space-between; gap: 12px; padding: 0 12px; color: #344054; cursor: pointer; list-style: none; }
.bundle_additional_request summary::-webkit-details-marker { display: none; }
.bundle_additional_request_title { display: flex; align-items: center; gap: 8px; }
.bundle_additional_request_title > svg { width: 18px; height: 18px; stroke: var(--bundle-blue); stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }
.bundle_additional_request_title > span { display: flex; align-items: center; gap: 6px; }
.bundle_additional_request_title strong { font-size: 12px; }
.bundle_additional_request_title small { padding: 2px 6px; border-radius: 999px; background: #eef4ff; color: var(--bundle-blue); font-size: 9px; font-weight: 750; }
.bundle_additional_request_chevron { width: 18px; height: 18px; stroke: #98a2b3; stroke-width: 1.7; transition: transform .18s ease; }
.bundle_additional_request[open] .bundle_additional_request_chevron { transform: rotate(180deg); }
.bundle_additional_request_body { padding: 0 12px 12px; }
.bundle_additional_request textarea { display: block; width: 100%; min-height: 76px; resize: vertical; border: 1px solid #d4dbe6; border-radius: 9px; padding: 10px 11px; background: #fff; color: var(--bundle-ink); font: inherit; font-size: 12px; line-height: 1.5; outline: none; transition: .18s ease; }
.bundle_additional_request textarea:focus { border-color: var(--bundle-blue); box-shadow: 0 0 0 3px rgba(7, 88, 232, .1); }
.bundle_additional_request textarea::placeholder { color: #98a2b3; }
.bundle_additional_request_body > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 6px; color: #98a2b3; font-size: 9px; }
.bundle_additional_request output { flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.bundle_hint { display: flex; align-items: center; gap: 6px; margin: 11px 0 0; padding: 9px 10px; border-radius: 8px; background: #f6f8fb; color: #667085; font-size: 11px; }
.bundle_hint svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 1.4; }

.bundle_field_grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.bundle_field_grid label { color: #344054; font-size: 11px; font-weight: 700; }
.bundle_field_grid input { display: block; margin-top: 6px; font-weight: 400; }
.bundle_logo_row { display: grid; grid-template-columns: 72px minmax(0, 1fr) minmax(120px, 160px) auto auto; align-items: center; gap: 8px; min-height: 50px; margin-top: 10px; padding-top: 10px; border-top: 1px solid #edf0f4; font-size: 12px; }
.bundle_logo_row > span:first-child { color: #344054; font-weight: 700; }
.bundle_logo_upload { display: flex; min-width: 0; min-height: 39px; align-items: center; justify-content: center; gap: 7px; overflow: hidden; padding: 0 10px; border: 1px dashed #aab6c8; border-radius: 8px; background: #fff; color: #475467; font-weight: 700; cursor: pointer; }
.bundle_logo_upload svg { width: 17px; height: 17px; flex: 0 0 auto; stroke: currentColor; stroke-width: 1.6; }
.bundle_logo_upload #bundleLogoLabel { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bundle_logo_row select { min-height: 39px; padding: 0 10px; }
.bundle_logo_color_modes { display: inline-flex; min-height: 36px; overflow: hidden; border: 1px solid #d5dce7; border-radius: 8px; background: #fff; }
.bundle_logo_color_modes button { min-width: 42px; padding: 0 8px; border: 0; border-left: 1px solid #e4e7ec; background: transparent; color: #667085; font-size: 10px; font-weight: 700; cursor: pointer; }
.bundle_logo_color_modes button:first-child { border-left: 0; }
.bundle_logo_color_modes button.is_active { background: #eaf1ff; color: var(--bundle-blue); box-shadow: inset 0 0 0 1px rgba(7, 88, 232, .14); }
.bundle_logo_color_modes button:disabled { cursor: not-allowed; }
.bundle_logo_color_modes[aria-disabled="true"] { opacity: .45; }
.bundle_icon_button { width: 32px; height: 32px; border: 0; border-radius: 7px; background: #f2f4f7; color: #667085; font-size: 18px; cursor: pointer; }

.bundle_preview_header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.bundle_preview_header > div:first-child { min-width: 0; }
.bundle_preview_header h2 { margin: 0; font-size: 19px; letter-spacing: -.02em; white-space: nowrap; word-break: keep-all; }
.bundle_preview_header > div > span { display: inline-flex; max-width: 100%; margin-top: 7px; padding: 5px 9px; border: 1px solid #a9c5ff; border-radius: 7px; color: var(--bundle-blue); font-size: 11px; font-weight: 750; white-space: nowrap; word-break: keep-all; }
.bundle_preview_actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
.bundle_preview_action { display: inline-flex; min-height: 34px; align-items: center; justify-content: center; gap: 5px; padding: 0 10px; border: 1px solid #a9c5ff; border-radius: 8px; background: #f5f8ff; color: var(--bundle-blue); font-size: 10px; font-weight: 750; cursor: pointer; }
.bundle_preview_action:hover { background: #eaf1ff; }
.bundle_preview_action:disabled { opacity: .48; cursor: wait; }
.bundle_preview_action[hidden] { display: none; }
.bundle_preview_action_muted { border-color: #d5dce7; background: #fff; color: #667085; }
.bundle_preview_action_muted:hover { background: #f5f7fa; }
.bundle_preview_action svg { width: 15px; height: 15px; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.bundle_safe_toggle { display: inline-flex; align-items: center; gap: 6px; color: #667085; font-size: 11px; cursor: pointer; }
.bundle_safe_toggle[hidden] { display: none; }
.bundle_safe_toggle input { accent-color: var(--bundle-blue); }

.bundle_canvas_shell { position: relative; display: grid; width: 100%; min-height: 400px; place-items: center; overflow: hidden; border-radius: 10px; background: repeating-conic-gradient(#f0f2f5 0 25%, #fff 0 50%) 50% / 18px 18px; }
.bundle_canvas_shell canvas { display: block; width: auto; height: auto; max-width: 100%; max-height: 610px; object-fit: contain; background: #fff; touch-action: none; }
.bundle_canvas_shell.is_cutout canvas { cursor: pointer; }
.bundle_canvas_shell.is_dragging canvas { cursor: grabbing; }
.bundle_canvas_shell.is_resizing canvas { cursor: nwse-resize; }
.bundle_composite_edit_hint { display: flex; align-items: flex-start; gap: 7px; margin: 9px 2px 0; color: #667085; font-size: 12px; line-height: 1.5; }
.bundle_composite_edit_hint[hidden] { display: none; }
.bundle_composite_edit_hint svg { width: 16px; height: 16px; flex: 0 0 auto; margin-top: 1px; stroke: #0758e8; stroke-width: 1.5; }
.bundle_canvas_select_all { flex: 0 0 auto; }
.bundle_canvas_select_all[hidden] { display: none; }
.bundle_canvas_select_all[aria-pressed="true"] { border-color: var(--bundle-blue); background: var(--bundle-blue); color: #fff; }
.bundle_canvas_layer_toolbar { position: absolute; z-index: 5; display: flex; min-height: 44px; align-items: center; gap: 3px; padding: 4px; border: 1px solid rgba(204, 216, 235, .95); border-radius: 10px; background: rgba(255,255,255,.96); box-shadow: 0 8px 24px rgba(15, 23, 42, .16); backdrop-filter: blur(10px); }
.bundle_canvas_layer_toolbar[hidden] { display: none; }
.bundle_canvas_layer_status { display: grid; min-width: 35px; min-height: 32px; place-items: center; padding: 0 5px; border-right: 1px solid #e4e9f1; color: #667085; font-size: 9px; font-weight: 750; font-variant-numeric: tabular-nums; }
.bundle_canvas_layer_toolbar button { display: flex; min-width: 41px; min-height: 34px; align-items: center; justify-content: center; flex-direction: column; gap: 1px; padding: 2px 4px; border: 0; border-radius: 6px; background: transparent; color: #475467; font-size: 8px; font-weight: 750; cursor: pointer; }
.bundle_canvas_layer_toolbar button:hover:not(:disabled) { background: #edf4ff; color: var(--bundle-blue); }
.bundle_canvas_layer_toolbar button:active:not(:disabled) { transform: translateY(1px); }
.bundle_canvas_layer_toolbar button:disabled { color: #c5ccd6; cursor: not-allowed; }
.bundle_canvas_layer_toolbar svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.bundle_canvas_empty { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; flex-direction: column; background: rgba(248, 250, 252, .96); color: #98a2b3; text-align: center; }
.bundle_canvas_empty[hidden] { display: none; }
.bundle_canvas_empty svg { width: 52px; height: 52px; margin-bottom: 12px; stroke: currentColor; stroke-width: 1.3; }
.bundle_canvas_empty strong { color: #667085; font-size: 14px; }
.bundle_canvas_empty span { margin-top: 5px; font-size: 11px; }
.bundle_canvas_generation_error { position: absolute; inset: 0; z-index: 7; display: flex; align-items: center; justify-content: center; flex-direction: column; padding: 28px; background: rgba(255, 255, 255, .88); color: #667085; text-align: center; backdrop-filter: blur(4px); }
.bundle_canvas_generation_error[hidden] { display: none; }
.bundle_canvas_generation_error svg { width: 38px; height: 38px; margin-bottom: 10px; stroke: #d92d20; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.bundle_canvas_generation_error strong { color: #b42318; font-size: 14px; }
.bundle_canvas_generation_error span { max-width: 420px; margin-top: 6px; color: #475467; font-size: 11px; }
.bundle_canvas_generation_error small { max-width: 460px; margin-top: 5px; color: #98a2b3; font-size: 10px; }

.bundle_result_gallery { margin-top: 12px; padding: 12px; border: 1px solid #dce3ed; border-radius: 10px; background: #fafcff; }
.bundle_result_gallery[hidden] { display: none; }
.bundle_result_gallery_header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.bundle_result_gallery_header > div { display: flex; align-items: baseline; gap: 8px; }
.bundle_result_gallery_header strong { color: #1f2937; font-size: 13px; }
.bundle_result_gallery_header span { color: #98a2b3; font-size: 10px; }
.bundle_result_gallery_header em { color: var(--bundle-blue); font-size: 10px; font-style: normal; font-weight: 750; }
.bundle_result_gallery_grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.bundle_result_card { min-width: 0; padding: 8px; border: 1px solid #d7dee8; border-radius: 8px; background: #fff; cursor: pointer; text-align: left; }
.bundle_result_card.is_active { border: 2px solid var(--bundle-blue); background: #f3f7ff; box-shadow: 0 0 0 3px rgba(7, 88, 232, .08); }
.bundle_result_card.is_canvas_derived:not(.is_active) { border-style: dashed; background: #fbfcff; }
.bundle_result_card canvas { display: block; width: 100%; height: 112px; border-radius: 6px; background: #f1f3f6; object-fit: contain; }
.bundle_result_card_copy { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 7px; }
.bundle_result_card_copy strong { color: #344054; font-size: 10px; }
.bundle_result_card_copy span { color: #667085; font-size: 9px; }
/* 결과가 나온 뒤에는 합성 설정을 잠근다. 값을 바꿔도 기존 결과에 반영되지 않기 때문. */
.bundle_panel.is_locked .bundle_toggle_row,
.bundle_panel.is_locked .bundle_selected_product,
.bundle_panel.is_locked .bundle_setting_row,
.bundle_panel.is_locked .bundle_additional_request { opacity: .45; pointer-events: none; }
/* 설정을 바꾸면 아래 생성 버튼이 "다시 생성"으로 바뀌므로, 결과 카드에서 언제든 내려받을 수 있게 한다. */
.bundle_result_card { position: relative; }
.bundle_result_card_download { position: absolute; bottom: 14px; right: 14px; display: inline-flex; width: 26px; height: 26px; align-items: center; justify-content: center; padding: 0; border: 1px solid #d7dee8; border-radius: 7px; background: rgba(255, 255, 255, .92); color: #475467; cursor: pointer; transition: border-color .16s ease, background-color .16s ease, color .16s ease; }
.bundle_result_card_download svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.bundle_result_card_download:hover:not(:disabled) { border-color: var(--bundle-blue); background: #fff; color: var(--bundle-blue); }
.bundle_result_card_download:disabled { opacity: .45; cursor: wait; }

.bundle_output_header { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin: 16px 0 10px; }
.bundle_output_header[hidden],
.bundle_output_specs[hidden] { display: none; }
.bundle_output_header h3 { margin: 0; font-size: 15px; }
.bundle_output_header p { margin: 3px 0 0; color: #98a2b3; font-size: 10px; }
.bundle_output_header > span { color: var(--bundle-blue); font-size: 11px; font-weight: 750; }
.bundle_output_specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.bundle_output_specs.is_grid_specs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bundle_spec_card { position: relative; min-width: 0; padding: 10px; border: 1px solid #d8dfe9; border-radius: 10px; background: #fff; cursor: pointer; transition: .16s ease; }
.bundle_spec_card.is_selected { border-color: #a9b9cf; background: #fbfcfe; }
.bundle_spec_card.is_primary { border: 2px solid var(--bundle-blue); background: #f1f6ff; }
.bundle_output_specs.is_grid_specs .bundle_spec_card.is_selected { border: 2px solid var(--bundle-blue); background: #f7faff; }
.bundle_spec_card.is_active { box-shadow: 0 0 0 3px rgba(7, 88, 232, .1); }
.bundle_spec_card.is_failed { border-color: #fda29b; background: #fff8f7; }
.bundle_spec_card.is_failed::after { content: "재생성 필요"; position: absolute; right: 34px; top: 10px; padding: 2px 5px; border-radius: 999px; background: #fee4e2; color: #b42318; font-size: 8px; font-weight: 750; }
.bundle_spec_card strong { display: block; padding-right: 26px; color: #344054; font-size: 11px; font-variant-numeric: tabular-nums; }
.bundle_spec_card small { display: block; margin-top: 3px; color: #98a2b3; font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bundle_spec_thumb { position: relative; display: grid; height: 64px; margin-top: 8px; padding: 6px; place-items: center; overflow: hidden; border-radius: 6px; background: #f0f2f5; }
.bundle_spec_preview { display: block; width: auto; height: auto; max-width: 100%; max-height: 52px; border: 1px solid #d1d7e0; border-radius: 4px; background: #fff; object-fit: contain; }
.bundle_spec_check { position: absolute; top: 8px; right: 8px; display: grid; width: 20px; height: 20px; place-items: center; border: 1px solid #cdd5df; border-radius: 6px; background: #fff; }
.bundle_spec_check input { width: 13px; height: 13px; margin: 0; accent-color: var(--bundle-blue); }
.bundle_spec_remove { position: absolute; right: 7px; bottom: 7px; display: grid; width: 22px; height: 22px; place-items: center; border: 0; border-radius: 6px; background: rgba(17,24,39,.72); color: #fff; cursor: pointer; }

.bundle_custom_size { margin-top: 10px; padding: 11px; border: 1px solid #e0e5ed; border-radius: 10px; background: #fafbfc; }
.bundle_custom_size_header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.bundle_custom_size_header > div { display: flex; align-items: center; gap: 7px; }
.bundle_custom_size_header strong { font-size: 12px; }
.bundle_custom_size_header span { color: #98a2b3; font-size: 10px; }
.bundle_lock_ratio { display: flex; align-items: center; gap: 5px; color: #667085; font-size: 10px; }
.bundle_lock_ratio input { accent-color: var(--bundle-blue); }
.bundle_generation_choice { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
.bundle_generation_choice[hidden] { display: none; }
.bundle_generation_choice button { display: flex; min-height: 39px; align-items: center; justify-content: center; gap: 5px; padding: 7px 9px; border: 1px solid #d7dee8; border-radius: 8px; background: #fff; color: #667085; cursor: pointer; }
.bundle_generation_choice button strong { color: #344054; font-size: 10px; }
.bundle_generation_choice button span { font-size: 9px; }
.bundle_generation_choice button.is_active { border: 2px solid var(--bundle-blue); background: #f1f6ff; color: var(--bundle-blue); }
.bundle_generation_choice button.is_active strong { color: var(--bundle-blue); }
.bundle_generation_choice button:disabled { opacity: .5; cursor: not-allowed; }
.bundle_custom_size.is_choice_locked .bundle_generation_choice { opacity: .64; }
.bundle_custom_size_fields { display: grid; grid-template-columns: minmax(90px, 1fr) auto minmax(90px, 1fr) auto; align-items: end; gap: 8px; margin-top: 9px; }
.bundle_custom_size_fields label { position: relative; color: #667085; font-size: 9px; }
.bundle_custom_size_fields input { min-height: 38px; margin-top: 4px; padding: 0 28px 0 10px; font-size: 12px; }
.bundle_custom_size_fields label span { position: absolute; right: 9px; bottom: 12px; color: #98a2b3; }
.bundle_custom_size_fields > span { padding-bottom: 11px; color: #98a2b3; }
.bundle_custom_size_fields .bundle_btn { min-height: 38px; }
.bundle_output_pair_help { margin: 9px 0 0; padding: 9px 11px; border-radius: 7px; background: #eef5ff; color: #315b94; font-size: 10px; line-height: 1.5; }
.bundle_output_pair_help[hidden] { display: none; }

.bundle_export_actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; margin-top: 13px; }
.bundle_export_button { display: flex; width: 100%; min-height: 56px; margin-top: 0; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 10px; background: linear-gradient(120deg, #0758e8, #0045d9); color: #fff; font-size: 15px; font-weight: 800; cursor: pointer; box-shadow: 0 8px 20px rgba(7, 88, 232, .18); transition: .18s ease; }
.bundle_download_button { border: 1px solid #a9c5ff; background: #fff; color: #0758e8; box-shadow: none; }
.bundle_download_button:hover:not(:disabled) { background: #f2f6ff; filter: none; }
.bundle_export_button:hover:not(:disabled) { transform: translateY(-1px); filter: brightness(1.04); }
.bundle_export_button:disabled { background: #cbd2dc; box-shadow: none; cursor: not-allowed; }
.bundle_download_button:disabled { border-color: #cbd2dc; background: #cbd2dc; color: #fff; }
.bundle_download_button:not(:disabled) { border-color: #a9c5ff; background: #fff; color: #0758e8; box-shadow: none; }
.bundle_export_button.is_generating { background: linear-gradient(120deg, #0758e8, #6549e8); color: #fff; }
.bundle_export_button[hidden] { display: none; }
.bundle_export_actions.is_single { grid-template-columns: 1fr; }
.bundle_export_button svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.bundle_export_notice { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 10px 0 0; color: #667085; font-size: 10px; }
.bundle_export_notice svg { width: 15px; height: 15px; stroke: currentColor; stroke-width: 1.4; }

body.bundle_is_generating { overflow: hidden; }
.bundle_generation_blocker { position: fixed; inset: 0; z-index: 10000; display: grid; padding: 24px; place-items: center; background: rgba(15, 23, 42, .52); backdrop-filter: blur(4px); cursor: wait; }
.bundle_generation_blocker[hidden] { display: none; }
.bundle_generation_blocker_card { display: flex; width: min(420px, calc(100vw - 40px)); min-height: 210px; align-items: center; justify-content: center; flex-direction: column; padding: 30px 28px; border: 1px solid rgba(255, 255, 255, .72); border-radius: 18px; background: rgba(255, 255, 255, .97); color: #475467; text-align: center; box-shadow: 0 24px 70px rgba(15, 23, 42, .28); }
.bundle_generation_blocker_card > .aix_blossom_loader { margin: 0 0 18px; }
.bundle_generation_blocker strong { color: #1d2939; font-size: 16px; line-height: 1.45; word-break: keep-all; }
.bundle_generation_blocker_card > span:not(.aix_blossom_loader) { margin-top: 9px; font-size: 12px; }
.bundle_generation_blocker small { margin-top: 6px; color: #98a2b3; font-size: 10px; }

.bundle_confirm_dialog { width: min(430px, calc(100vw - 32px)); margin: auto; padding: 24px; border: 0; border-radius: 16px; background: #fff; color: #1d2939; box-shadow: 0 24px 70px rgba(15, 23, 42, .28); text-align: center; }
.bundle_confirm_dialog::backdrop { background: rgba(15, 23, 42, .48); backdrop-filter: blur(3px); }
.bundle_confirm_dialog_icon { display: grid; width: 48px; height: 48px; margin: 0 auto 13px; place-items: center; border-radius: 14px; background: #eef4ff; color: var(--bundle-blue); }
.bundle_confirm_dialog_icon svg { width: 25px; height: 25px; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.bundle_confirm_dialog h2 { margin: 0; font-size: 18px; letter-spacing: -.02em; }
.bundle_confirm_dialog p { margin: 9px 0 0; color: #667085; font-size: 12px; line-height: 1.55; word-break: keep-all; }
.bundle_confirm_dialog_actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 20px; }
.bundle_confirm_dialog_actions .bundle_btn { min-height: 42px; }

.conversation_banner_mode_tabs { display: inline-flex; align-items: center; gap: 3px; margin-left: 12px; padding: 3px; border: 1px solid #dbe1ea; border-radius: 9px; background: #f4f6f9; }
.conversation_banner_mode_tabs a { display: inline-flex; min-height: 30px; align-items: center; padding: 0 11px; border-radius: 6px; color: #667085; font-size: 11px; font-weight: 750; text-decoration: none; }
.conversation_banner_mode_tabs a.is_active { background: #fff; color: var(--bundle-blue); box-shadow: 0 1px 4px rgba(16,24,40,.08); }

/* 전체 화면 가독성 보강: 작은 라벨과 설명을 한 단계 키우고 줄간격을 확보한다. */
.bundle_banner_page { font-size: 17px; }
.bundle_banner_switch_title { font-size: 17px; }
.bundle_panel_heading h2 { font-size: 20px; }
.bundle_preview_header h2 { font-size: 21px; }
.bundle_output_header h3 { font-size: 17px; }
.bundle_export_button { min-height: 64px; font-size: 18px; }
.bundle_page_eyebrow,
.bundle_panel_description,
.bundle_mode_card small,
.bundle_asset_empty strong,
.bundle_setting_row,
.bundle_toggle_row span,
.bundle_additional_request textarea,
.bundle_logo_row,
.bundle_confirm_dialog p { font-size: 14px; }
.bundle_ai_banner_link,
.bundle_btn,
.bundle_toggle_row strong,
.bundle_subject_mode_heading strong,
.bundle_result_gallery_header strong { font-size: 15px; }
.bundle_optional,
.bundle_asset_empty span,
.bundle_inline_status,
.bundle_template strong,
.bundle_selected_product,
.bundle_hint,
.bundle_field_grid label,
.bundle_preview_header > div > span,
.bundle_safe_toggle,
.bundle_canvas_empty span,
.bundle_canvas_generation_error span,
.bundle_output_header > span,
.conversation_banner_mode_tabs a { font-size: 13px; }
.bundle_url_hint,
.bundle_layer_order_wrap small,
.bundle_subject_mode_heading span,
.bundle_layer_heading small,
.bundle_additional_request_title small,
.bundle_additional_request_body > div,
.bundle_logo_color_modes button,
.bundle_preview_action,
.bundle_canvas_generation_error small,
.bundle_result_gallery_header span,
.bundle_result_gallery_header em,
.bundle_output_header p,
.bundle_export_notice,
.bundle_generation_blocker small { font-size: 12px; }
.bundle_subject_mode_options strong { font-size: 14px; }
.bundle_subject_mode_options small { font-size: 12px; }
.bundle_subject_mode_help,
.bundle_canvas_layer_status,
.bundle_canvas_layer_toolbar button,
.bundle_result_card_copy span,
.bundle_spec_card small,
.bundle_custom_size_fields label { font-size: 11px; }
.bundle_layer_heading > span,
.bundle_additional_request_title strong,
.bundle_result_card_copy strong,
.bundle_spec_card strong,
.bundle_custom_size_header span,
.bundle_lock_ratio,
.bundle_output_pair_help { font-size: 13px; }
.bundle_generation_choice button span { font-size: 12px; }
.bundle_custom_size_header strong,
.bundle_generation_choice button strong { font-size: 14px; }
.bundle_custom_size_fields input { font-size: 15px; }
.bundle_generation_choice button { min-height: 44px; }
.bundle_preview_action { min-height: 40px; padding-inline: 14px; font-size: 14px; }
.bundle_preview_header > div > span { padding: 7px 11px; font-size: 14px; }
.bundle_safe_toggle { font-size: 14px; }
.bundle_subject_mode { padding: 16px; }
.bundle_subject_mode_heading strong,
.bundle_model_framing_heading strong { font-size: 16px; }
.bundle_subject_mode_heading span,
.bundle_model_framing_heading span { font-size: 13px; }
.bundle_subject_mode_options button { min-height: 82px; padding: 14px; }
.bundle_subject_mode_options strong,
.bundle_model_framing_options strong { font-size: 15px; }
.bundle_subject_mode_options small,
.bundle_model_framing_options small { font-size: 13px; }
.bundle_model_framing_options button { min-height: 72px; padding: 12px 14px; }
.bundle_subject_mode_help { padding: 11px 12px; font-size: 13px; }
.bundle_export_notice { font-size: 13px; }
.bundle_canvas_layer_status,
.bundle_canvas_layer_toolbar button { font-size: 12px; }
.bundle_subject_mode_help,
.bundle_output_pair_help { line-height: 1.6; }

.bundle_banner_page.dark { --bundle-ink: #f5f7fb; --bundle-muted: #a7b0bf; --bundle-line: #344054; --bundle-soft: #1d2634; --bundle-panel: #18212e; background: #101722; color: var(--bundle-ink); }
.bundle_banner_page.dark .bundle_banner_switch_header { border-color: rgba(58, 70, 87, .9); background: rgba(16, 23, 34, .94); }
.bundle_banner_page.dark .bundle_new_work_btn { border-color: #3a4657; background: #18212e; color: #edf1f7; }
.bundle_banner_page.dark .bundle_new_work_btn:hover { border-color: #8cb4ff; color: #8cb4ff; }
.bundle_banner_page.dark .bundle_banner_switch_close,
.bundle_banner_page.dark .bundle_banner_switch_title { color: #edf1f7; }
.bundle_banner_page.dark .bundle_banner_switch_close:hover { background: #202b3a; }
.bundle_banner_page.dark .conversation_banner_mode_tabs { border-color: #3a4657; background: #202b3a; }
.bundle_banner_page.dark .conversation_banner_mode_tabs a { color: #aeb8c7; }
.bundle_banner_page.dark .conversation_banner_mode_tabs a.is_active { background: #182941; color: #8cb4ff; box-shadow: 0 1px 4px rgba(0, 0, 0, .22); }
.bundle_banner_page.dark .bundle_panel,
.bundle_banner_page.dark .bundle_preview_panel,
.bundle_banner_page.dark .bundle_ai_banner_link,
.bundle_banner_page.dark .bundle_mode_card,
.bundle_banner_page.dark .bundle_template,
.bundle_banner_page.dark input,
.bundle_banner_page.dark select,
.bundle_banner_page.dark .bundle_segmented button,
.bundle_banner_page.dark .bundle_logo_upload,
.bundle_banner_page.dark .bundle_spec_card { background: #18212e; color: #edf1f7; border-color: #3a4657; }
.bundle_banner_page.dark .bundle_mode_card.is_active,
.bundle_banner_page.dark .bundle_template.is_active,
.bundle_banner_page.dark .bundle_spec_card.is_selected { background: #162238; border-color: #60718b; }
.bundle_banner_page.dark .bundle_spec_card.is_primary { background: #182941; border-color: #4d8cff; }
.bundle_banner_page.dark .bundle_output_specs.is_grid_specs .bundle_spec_card.is_selected { background: #182941; border-color: #4d8cff; }
.bundle_banner_page.dark .bundle_spec_card.is_active { box-shadow: 0 0 0 3px rgba(77, 140, 255, .16); }
.bundle_banner_page.dark .bundle_asset_empty,
.bundle_banner_page.dark .bundle_selected_product,
.bundle_banner_page.dark .bundle_subject_mode,
.bundle_banner_page.dark .bundle_hint,
.bundle_banner_page.dark .bundle_custom_size { background: #131b27; border-color: #344054; }
.bundle_banner_page.dark .bundle_output_pair_help { background: #182941; color: #a9c7f5; }
.bundle_banner_page.dark .bundle_generation_choice button { background: #162238; border-color: #475467; color: #98a2b3; }
.bundle_banner_page.dark .bundle_generation_choice button strong { color: #e4e7ec; }
.bundle_banner_page.dark .bundle_generation_choice button.is_active { background: #182941; border-color: #4d8cff; color: #7fb0ff; }
.bundle_banner_page.dark .bundle_generation_choice button.is_active strong { color: #7fb0ff; }
.bundle_banner_page.dark .bundle_result_gallery { background: #131b27; border-color: #344054; }
.bundle_banner_page.dark .bundle_result_gallery_header strong,
.bundle_banner_page.dark .bundle_result_card_copy strong { color: #f2f4f7; }
.bundle_banner_page.dark .bundle_result_card { background: #162238; border-color: #475467; }
.bundle_banner_page.dark .bundle_result_card.is_active { background: #182941; border-color: #4d8cff; }
.bundle_banner_page.dark .bundle_additional_request,
.bundle_banner_page.dark .bundle_additional_request textarea,
.bundle_banner_page.dark .bundle_url_row textarea { background: #18212e; color: #edf1f7; border-color: #3a4657; }
.bundle_banner_page.dark .bundle_preview_action { background: #182941; color: #8cb4ff; border-color: #45669a; }
.bundle_banner_page.dark .bundle_preview_action_muted { background: #18212e; color: #c4ccd7; border-color: #3a4657; }
.bundle_banner_page.dark .bundle_composite_edit_hint { color: #aeb8c7; }
.bundle_banner_page.dark .bundle_download_button { background: #182941; color: #8cb4ff; border-color: #45669a; }
.bundle_banner_page.dark .bundle_download_button:disabled { background: #475467; color: #fff; border-color: #475467; }
.bundle_banner_page.dark .bundle_additional_request summary { color: #edf1f7; }
.bundle_banner_page.dark .bundle_layer_control { border-color: #2d3949; }
.bundle_banner_page.dark .bundle_layer_heading > span { color: #d8dee8; }
.bundle_banner_page.dark .bundle_layer_buttons button { background: #18212e; color: #c4ccd7; border-color: #3a4657; }
.bundle_banner_page.dark .bundle_layer_buttons button:hover:not(:disabled) { background: #182941; color: #8cb4ff; border-color: #45669a; }
.bundle_banner_page.dark .bundle_subject_mode_options button { background: #18212e; color: #c4ccd7; border-color: #3a4657; }
.bundle_banner_page.dark .bundle_subject_mode_options button.is_active { background: #182941; color: #8cb4ff; border-color: #4d8cff; }
.bundle_banner_page.dark .bundle_subject_mode_options strong { color: #edf1f7; }
.bundle_banner_page.dark .bundle_subject_mode_options button.is_active strong { color: #8cb4ff; }
.bundle_banner_page.dark .bundle_subject_mode_icon { background: #202b3a; color: #aeb8c7; }
.bundle_banner_page.dark .bundle_subject_mode_options button.is_active .bundle_subject_mode_icon { background: #203c68; color: #8cb4ff; }
.bundle_banner_page.dark .bundle_subject_mode_check { border-color: #536074; }
.bundle_banner_page.dark .bundle_subject_mode_options button.is_active .bundle_subject_mode_check { border-color: #4d8cff; background: #4d8cff; color: #fff; }
.bundle_banner_page.dark .bundle_subject_mode_help { background: #182941; color: #b8cff7; }
.bundle_banner_page.dark .bundle_canvas_empty { background: rgba(19, 27, 39, .96); }
.bundle_banner_page.dark .bundle_canvas_generation_error { background: rgba(19, 27, 39, .9); }
.bundle_banner_page.dark .bundle_canvas_generation_error span { color: #d8dee8; }
.bundle_banner_page.dark .bundle_spec_card.is_failed { border-color: #f97066; background: #2b1b20; }
.bundle_banner_page.dark .bundle_canvas_layer_toolbar { background: rgba(24, 33, 46, .96); border-color: #46546a; box-shadow: 0 8px 24px rgba(0, 0, 0, .32); }
.bundle_banner_page.dark .bundle_canvas_select_all { background: rgba(24, 33, 46, .96); color: #8cb4ff; border-color: #45669a; }
.bundle_banner_page.dark .bundle_canvas_select_all[aria-pressed="true"] { background: #2864d7; color: #fff; border-color: #5b91ff; }
.bundle_banner_page.dark .bundle_canvas_layer_status { color: #c4ccd7; border-color: #3a4657; }
.bundle_banner_page.dark .bundle_canvas_layer_toolbar button { color: #c4ccd7; }
.bundle_banner_page.dark .bundle_canvas_layer_toolbar button:hover:not(:disabled) { background: #182941; color: #8cb4ff; }
.bundle_banner_page.dark .bundle_custom_size_fields input { color: #fff; }
.bundle_banner_page.dark .bundle_setting_row,
.bundle_banner_page.dark .bundle_logo_row { border-color: #2d3949; }
.bundle_banner_page.dark .bundle_logo_color_modes { background: #18212e; border-color: #3a4657; }
.bundle_banner_page.dark .bundle_logo_color_modes button { color: #c4ccd7; border-color: #3a4657; }
.bundle_banner_page.dark .bundle_logo_color_modes button.is_active { background: #182941; color: #8cb4ff; }
.bundle_banner_page.dark ~ .bundle_confirm_dialog,
.bundle_confirm_dialog:where(.dark) { background: #18212e; color: #edf1f7; }
.bundle_banner_page.dark ~ .bundle_confirm_dialog p { color: #aeb8c7; }
.bundle_banner_page.dark ~ .bundle_confirm_dialog .bundle_btn_outline { background: #18212e; color: #c4ccd7; border-color: #3a4657; }
.bundle_banner_page.dark ~ .bundle_generation_blocker .bundle_generation_blocker_card { border-color: #46546a; background: rgba(24, 33, 46, .98); color: #c4ccd7; }
.bundle_banner_page.dark ~ .bundle_generation_blocker strong { color: #f5f7fb; }
.bundle_banner_page.dark .bundle_setting_row > label,
.bundle_banner_page.dark .bundle_setting_row > span:first-child,
.bundle_banner_page.dark .bundle_logo_row > span:first-child,
.bundle_banner_page.dark .bundle_field_grid label { color: #d8dee8; }

@media (max-width: 1180px) {
  .bundle_editor_layout { grid-template-columns: 1fr; }
  .bundle_preview_panel { position: static; }
}

@media (max-width: 720px) {
  .bundle_banner_page { padding: 16px 12px 36px; }
  .bundle_banner_switch_header { width: calc(100% + 24px); min-height: 58px; margin: -16px -12px 18px; padding: 12px 16px; }
  .bundle_page_heading { align-items: flex-start; flex-direction: column; }
  .bundle_mode_cards,
  .bundle_field_grid { grid-template-columns: 1fr; }
  .bundle_url_row { grid-template-columns: 1fr 1fr; }
  .bundle_url_row textarea { grid-column: 1 / -1; }
  .bundle_asset_list { grid-template-columns: repeat(3, 1fr); }
  .bundle_template_grid,
  .bundle_output_specs,
  .bundle_output_specs.is_grid_specs { grid-template-columns: 1fr 1fr; }
  .bundle_custom_size_fields { grid-template-columns: 1fr auto 1fr; }
  .bundle_custom_size_fields .bundle_btn { grid-column: 1 / -1; }
  .bundle_result_gallery_grid { grid-template-columns: 1fr; }
  .bundle_logo_row { grid-template-columns: 72px 1fr auto auto; }
  .bundle_logo_upload { grid-column: 2 / 5; }
  .bundle_logo_row select { grid-column: 2 / 3; }
  .bundle_setting_row { grid-template-columns: 78px minmax(0, 1fr) 58px; }
  .bundle_preview_header { flex-direction: column; }
  .bundle_preview_actions { width: 100%; justify-content: flex-start; flex-wrap: wrap; }
  .bundle_canvas_shell { min-height: 300px; }
  .bundle_export_actions { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .bundle_template_grid,
  .bundle_output_specs,
  .bundle_output_specs.is_grid_specs { grid-template-columns: 1fr; }
  .bundle_subject_mode_options { grid-template-columns: 1fr; }
  .bundle_layer_buttons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bundle_panel,
  .bundle_preview_panel { padding: 14px; }
}
