/* ④ 리포트 구성 › 🧩 페이지 배치 — 템플릿 편집기(왼쪽 선반 · 가운데 행 격자 · 오른쪽 설정). 장 탭·선반 기본 모양은 admin.css의 rc-/rl- 규칙. */
.rc-layout { grid-template-columns: minmax(220px, 260px) minmax(0, 1fr) minmax(280px, 360px); }
/* 1440px 이하: 왼쪽 칸 하나를 선반·설정이 번갈아 쓴다(캔바처럼) — 캔버스 폭을 지킨다 */
@media (max-width: 1440px) {
  .rc-layout { grid-template-columns: minmax(220px, 250px) minmax(0, 1fr); }
  .rc-layout > .rc-canvas { grid-column: 2; grid-row: 1; }
  .rc-layout > .rl-shelf, .rc-layout > .rc-inspector { grid-column: 1; grid-row: 1; }
  .rc-layout:not(.is-inspecting) > .rc-inspector, .rc-layout.is-inspecting > .rl-shelf { display: none; }
  .rc-layout.is-inspecting { grid-template-columns: minmax(280px, 340px) minmax(0, 1fr); } /* 설정 + 👁 박스 미리보기가 읽히는 폭 */
}
/* 모바일: 선반은 높이를 묶고, 설정은 아래에서 올라오는 시트 — 아래쪽 블록을 눌러도 바로 보인다 */
@media (max-width: 900px) {
  .rc-layout { grid-template-columns: minmax(0, 1fr); }
  .rc-layout > .rl-shelf, .rc-layout > .rc-inspector, .rc-layout > .rc-canvas { grid-column: 1; grid-row: auto; }
  .rc-layout > .rl-shelf { max-height: 52vh; overflow-y: auto; }
  .rc-layout.is-inspecting > .rl-shelf { display: flex; }
  .rc-layout.is-inspecting { grid-template-columns: minmax(0, 1fr); }
  /* 패널의 backdrop-filter는 fixed 자식의 기준 상자가 된다 — 시트가 화면 아래에 붙도록 여는 동안만 끈다 */
  .panel:has(> .rc-layout.is-inspecting) { backdrop-filter: none; -webkit-backdrop-filter: none; }
  .rc-layout.is-inspecting > .rc-inspector {
    position: fixed; left: 8px; right: 8px; bottom: 8px; top: auto; z-index: 60; max-height: 62vh; overflow-y: auto;
    background: var(--bg-card, #1c1234); box-shadow: 0 -12px 32px rgba(0, 0, 0, 0.45);
  }
  html[data-theme="light"] .rc-layout.is-inspecting > .rc-inspector { box-shadow: 0 -10px 28px rgba(53, 32, 62, 0.18); }
}
@media (max-width: 640px) {
  .rc-templates { flex-wrap: wrap; }
  .rc-templates > .rc-template-list { order: 3; flex: 1 1 100%; }
  .rc-templates > .rc-undo { margin-left: auto; }
  .rc-block-text em { display: none; }
}

/* 📐 칸 나눔 아이콘 — 템플릿 모양 그대로 작게 */
.rc-lay { display: inline-grid; gap: 2px; width: 44px; height: 30px; padding: 2px; border-radius: 5px; background: color-mix(in srgb, var(--bg-card-inner) 60%, transparent); vertical-align: middle; }
.rc-lay i { border-radius: 2px; background: color-mix(in srgb, var(--neon-cyan) 45%, transparent); }
.rc-lay.is-mini { width: 30px; height: 18px; gap: 1px; padding: 1px; }

/* 장 템플릿 줄(레퍼런스: 블로그 레이아웃 설정의 상단 템플릿 줄) */
.rc-templates { display: flex; align-items: center; gap: 6px; margin: 0 0 12px; padding: 8px; border: 1px solid var(--border-box-purple); border-radius: 12px; background: color-mix(in srgb, var(--bg-card-inner) 55%, transparent); }
.rc-template-list { flex: 1; min-width: 0; display: flex; align-items: stretch; gap: 4px; overflow-x: auto; scrollbar-width: thin; }
.rc-templates-label { flex: none; align-self: center; padding: 0 6px; font-size: 10.5pt; font-weight: 800; color: var(--text-pure); white-space: nowrap; }
.rc-template { flex: none; display: flex; flex-direction: column; align-items: center; gap: 4px; width: 78px; padding: 6px 4px; border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--text-sub); font: inherit; font-size: 9.5pt; cursor: pointer; }
.rc-template:hover { border-color: var(--neon-cyan); color: var(--text-pure); }
.rc-template-rows { display: flex; flex-direction: column; gap: 2px; }
.rc-undo { flex: none; min-height: 32px; padding: 4px 12px; border: 1px solid var(--border-box-purple); border-radius: var(--radius-pill); background: transparent; color: var(--text-sub); font: inherit; font-size: 10pt; font-weight: 700; cursor: pointer; white-space: nowrap; }
.rc-undo:hover:not(:disabled) { border-color: var(--neon-cyan); color: var(--text-pure); }
.rc-undo:disabled { opacity: 0.4; cursor: default; }
.rc-template-rows .rc-lay { width: 40px; height: 11px; }

/* 행 · 칸 · 블록 */
.rc-row { margin-bottom: 12px; padding: 8px; border: 1px solid var(--border-box-purple); border-radius: 14px; background: color-mix(in srgb, var(--bg-card-inner) 45%, transparent); }
.rc-row.is-selected { border-color: var(--neon-pink); box-shadow: 0 0 0 1px color-mix(in srgb, var(--neon-pink) 40%, transparent); }
.rc-row-head { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
.rc-row-pick { flex: 1; display: inline-flex; align-items: center; gap: 8px; min-height: 30px; padding: 2px 8px; border: 1px dashed transparent; border-radius: 8px; background: transparent; color: var(--text-sub); font: inherit; font-size: 10.5pt; font-weight: 700; text-align: left; cursor: pointer; }
.rc-row-pick:hover { border-color: var(--neon-cyan); color: var(--text-pure); }
.rc-row-grid { display: grid; gap: 8px; }
.rc-cell { display: flex; flex-direction: column; gap: 6px; min-width: 0; min-height: 70px; padding: 6px; border: 1px dashed color-mix(in srgb, var(--border-box-purple) 80%, transparent); border-radius: 10px; cursor: pointer; }
.rc-cell.is-target { border-color: var(--neon-lime); background: color-mix(in srgb, var(--neon-lime) 7%, transparent); }
.rc-cell.is-dragover { border-color: var(--neon-cyan); border-style: solid; background: color-mix(in srgb, var(--neon-cyan) 10%, transparent); }
.rc-cell-drop { margin-top: auto; padding: 4px; border-radius: 6px; text-align: center; font-size: 9.5pt; color: var(--text-muted); }
.rc-block { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 7px 8px; border: 1px solid var(--border-box-purple); border-radius: 10px; background: var(--bg-card-inner); cursor: grab; }
.rc-block:hover { border-color: var(--neon-cyan); }
.rc-block.is-selected { border-color: var(--neon-pink); background: color-mix(in srgb, var(--neon-pink) 14%, var(--bg-card-inner)); }
.rc-block.is-accept { border-color: var(--neon-lime); box-shadow: 0 0 0 2px color-mix(in srgb, var(--neon-lime) 35%, transparent); cursor: copy; }
.rc-block:focus-visible, .rc-cell:focus-visible, .rc-frame:focus-visible, .rc-item:focus-visible { outline: 2px solid var(--neon-cyan); outline-offset: 2px; }
.rc-item.is-disabled { cursor: not-allowed; opacity: .58; }
.rc-widget-status { flex: none; color: var(--text-muted); font-size: 11px; }
.rc-block-emoji { flex: none; font-size: 18px; }
.rc-block-thumb { flex: none; width: 46px; height: 32px; object-fit: cover; border-radius: 5px; background: #0d0620; }
.rc-block-text { display: flex; flex-direction: column; min-width: 0; }
.rc-block-text strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10.5pt; color: var(--text-pure); }
.rc-block-text em { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-style: normal; font-size: 9.5pt; color: var(--text-muted); }
.rc-block.is-unavailable { border-color: var(--neon-yellow, #e8c069); }
.rc-block.is-unavailable .rc-block-text em { color: var(--neon-yellow, #e8c069); }
.rc-row-add { width: 100%; min-height: 40px; border: 1px dashed var(--border-box-purple); border-radius: 12px; background: transparent; color: var(--text-sub); font: inherit; font-weight: 700; cursor: pointer; }
.rc-row-add:hover { border-color: var(--neon-cyan); color: var(--text-pure); }
.rc-row-add small { font-weight: 500; color: var(--text-muted); }

/* 📈 그래프 선반 — 캔바 템플릿 목록처럼 썸네일 2열 */
.rc-gtabs { display: flex; flex-wrap: wrap; gap: 4px; }
.rc-gtab { padding: 3px 8px; border: 1px solid var(--border-box-purple); border-radius: var(--radius-pill); background: transparent; color: var(--text-sub); font: inherit; font-size: 9.5pt; cursor: pointer; }
.rc-gtab.is-active { border-color: var(--neon-pink); color: var(--text-pure); background: color-mix(in srgb, var(--neon-pink) 14%, transparent); }
.rc-gfilter-label { display: flex; align-items: center; gap: 6px; margin: 6px 0; font-size: 10pt; color: var(--text-sub); }
.rc-gfilter { width: auto; min-width: 190px; min-height: 32px; padding-top: 3px; padding-bottom: 3px; }
.rc-ggrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.rc-gcard { position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--border-box-purple); border-radius: 10px; background: #0d0620; cursor: grab; }
.rc-gcard:hover { border-color: var(--neon-cyan); }
.rc-gcard.is-disabled { cursor: default; opacity: 0.55; }
.rc-gcard img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.rc-gmeta { display: flex; flex-direction: column; gap: 2px; padding: 5px 6px 6px; }
.rc-gmeta strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9.5pt; color: #ece8f5; }
.rc-gbadge { font-style: normal; font-size: 8.5pt; color: #6dd2c4; }
.rc-gbadge.is-sample { color: #a59bbd; }
.rc-gbadge.is-off { color: #e8c069; }
.rc-gcard .rc-add { position: absolute; top: 4px; right: 4px; min-height: 24px; padding: 0 8px; border-color: #6dd2c4; background: rgba(13, 6, 32, 0.85); color: #fff; }
.rc-gcard .rc-add:hover, .rc-gcard .rc-add:focus-visible { background: #6dd2c4; color: #0d0620; }

/* 오른쪽 설정 */
.rc-inspector { position: sticky; top: 12px; align-self: start; display: flex; flex-direction: column; gap: 8px; max-height: calc(100vh - 140px); overflow-y: auto; padding: 10px; border: 1px solid var(--border-box-purple); border-radius: 14px; background: color-mix(in srgb, var(--bg-card-inner) 70%, transparent); }
.rc-insp-close { position: relative; z-index: 1; align-self: flex-end; margin: -2px 0 -34px; } /* 설정 패널은 세로 flex — 오른쪽 위에 붙이고 제목 줄과 겹쳐 앉힌다 */
.rc-insp-close + .rc-insp-head { padding-right: 40px; }
.rc-insp-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 11pt; font-weight: 800; color: var(--text-pure); }
.rc-insp-head span { font-size: 9.5pt; font-weight: 600; color: var(--text-muted); }
.rc-insp-label { display: flex; flex-direction: column; gap: 4px; font-size: 10pt; font-weight: 700; color: var(--text-sub); }
.rc-insp-graph { margin: 0; display: flex; flex-direction: column; gap: 4px; }
.rc-insp-graph img { width: 100%; border-radius: 8px; background: #0d0620; }
.rc-insp-graph figcaption { font-size: 10pt; color: var(--text-sub); }
.rc-insp-graph small { color: var(--text-muted); }
.rc-insp-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.rc-warn { margin: 0; font-size: 10pt; color: var(--neon-yellow, #ffe066); }
.rc-layout-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.rc-layout-opt { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 6px 4px; border: 1px solid var(--border-box-purple); border-radius: 10px; background: transparent; color: var(--text-sub); font: inherit; font-size: 8.5pt; line-height: 1.25; text-align: center; cursor: pointer; }
.rc-layout-opt:hover { border-color: var(--neon-cyan); }
.rc-layout-opt.is-active { border-color: var(--neon-lime); background: color-mix(in srgb, var(--neon-lime) 16%, transparent); color: var(--text-pure); }
.rc-layout-opt.is-active .rc-lay i { background: var(--neon-lime); }
.rc-layout-custom { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 10pt; color: var(--text-sub); }

/* 👁 박스 미리보기 — 설정 아래 고정 창. iframe은 고객 폭(390·1096)으로 그리고 칸 폭에 맞춰 줄여 고른 블록만 잘라 보인다 */
.rc-insp-body { display: flex; flex-direction: column; gap: 8px; }
.rc-live { display: flex; flex-direction: column; gap: 6px; padding-top: 10px; border-top: 1px dashed var(--border-box-purple); }
.rc-live-head { display: flex; align-items: center; gap: 6px; font-size: 11pt; color: var(--text-pure); }
.rc-live-scope { flex: 1; min-width: 0; font-size: 9.5pt; color: var(--text-muted); }
.rc-live-bar { display: flex; flex-wrap: wrap; gap: 6px; }
.rc-live-seg { display: inline-flex; border: 1px solid var(--border-box-purple); border-radius: var(--radius-pill, 999px); overflow: hidden; }
.rc-live-btn { min-height: 28px; padding: 2px 10px; border: 0; background: transparent; color: var(--text-sub); font: inherit; font-size: 10pt; cursor: pointer; }
.rc-live-btn.is-active { background: color-mix(in srgb, var(--neon-cyan) 22%, transparent); color: var(--text-pure); font-weight: 700; }
.rc-live-btn:focus-visible { outline: 2px solid var(--neon-cyan); outline-offset: -2px; }
.rc-live-note { margin: 0; font-size: 9.5pt; line-height: 1.45; color: var(--text-muted); }
.rc-live-stage { position: relative; overflow: hidden; min-height: 40px; border: 1px solid var(--border-box-purple); border-radius: 10px; background: color-mix(in srgb, var(--bg-card-inner) 80%, transparent); }
.rc-live-stage.is-empty { min-height: 0; border-style: dashed; }
.rc-live-frame { position: absolute; left: 0; top: 0; border: 0; transform-origin: 0 0; pointer-events: none; background: transparent; }

/* 🎯 상품 선택 · 조건 미충족 버튼(눌러서 안내받는 흐린 버튼) */
.rc-product-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin: 4px 0 8px; }
.rc-product-bar label { font-size: 10.5pt; font-weight: 700; color: var(--text-pure); }

/* 🟢 LIVE 상태 토글 — OFF 왼쪽, ON 오른쪽 */
.rc-live-switch { position: relative; isolation: isolate; display: grid; grid-template-columns: 1fr 1fr; align-items: center; width: 88px; height: 34px; flex: none; padding: 3px; box-sizing: border-box; border: 1px solid var(--border-box-purple); border-radius: 999px; background: color-mix(in srgb, var(--bg-card-inner) 85%, transparent); color: var(--text-sub); cursor: pointer; }
.rc-switch-label { z-index: 1; text-align: center; font-size: 9pt; line-height: 1; font-weight: 800; pointer-events: none; }
.rc-switch-thumb { position: absolute; z-index: 0; top: 3px; bottom: 3px; left: 3px; width: calc(50% - 3px); border-radius: 999px; background: #c62d61; box-shadow: inset 0 0 0 1px #ff9ec8; transition: transform .18s ease, background-color .18s ease; }
.rc-live-switch[aria-checked="true"] .rc-switch-thumb { transform: translateX(100%); background: #12a150; box-shadow: inset 0 0 0 1px #5be39a; }
.rc-live-switch[aria-checked="false"] .rc-switch-off, .rc-live-switch[aria-checked="true"] .rc-switch-on { color: #fff; }
.rc-live-switch:hover:not(:disabled) { border-color: var(--neon-cyan); }
.rc-live-switch:focus-visible { outline: 2px solid var(--neon-cyan); outline-offset: 2px; }
.rc-live-switch:disabled { opacity: .55; cursor: not-allowed; }
@media (prefers-reduced-motion: reduce) { .rc-switch-thumb { transition: none; } }
.rc-gate-list { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 4px; font-size: 11pt; }
