/* 그로스: 쿠폰·프로모션 — console.css 셸 + transfer.css 토큰 재사용 */
.cp-perf{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;}
@media(max-width:1100px){.cp-perf{grid-template-columns:repeat(2,1fr);}}
.cp-perf__c{border:1px solid var(--color-border,#E0D5CC);border-radius:12px;padding:12px 14px;background:var(--color-surface,#fff);border-top:3px solid var(--ok,#1F8A5B);}
.cp-perf__c--warn{border-top-color:var(--amber,#92660C);}
.cp-perf__v{font-size:21px;font-weight:800;letter-spacing:-.02em;}
.cp-perf__l{font-size:12px;font-weight:700;color:var(--color-text,#3D342E);margin-top:3px;}
.cp-perf__d{font-size:10.5px;color:var(--color-text-subtle,#9A8C82);margin-top:2px;}
.cp-rate{height:5px;border-radius:999px;background:var(--color-bg-subtle,#F5EEE9);overflow:hidden;margin-top:4px;width:64px;}
.cp-rate__f{height:100%;border-radius:999px;background:var(--ok,#1F8A5B);}
.cplist{display:grid;gap:11px;}
.cpc{background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:15px;padding:15px 17px;}
.cpc--hi{border-left:3px solid var(--rose,#E11D48);}
.cpc__top{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.cpc__disc{flex:0 0 auto;min-width:54px;font-size:19px;font-weight:800;letter-spacing:-.02em;color:var(--accent-text,#B23A12);text-align:center;}
.cpc__hb{flex:1;min-width:0;}
.cpc__nm{font-size:15px;font-weight:800;color:var(--color-text-strong,#15110E);}
.cpc__seller{font-size:12px;color:var(--color-text-muted,#6B5F57);margin-top:2px;}
.cpc__meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;color:var(--color-text-muted,#6B5F57);margin-bottom:10px;}
.cpc__meta i{font-size:10px;color:var(--color-text-subtle,#9A8C82);margin-right:4px;}
.cpc__act{display:flex;align-items:center;gap:9px;border-top:1px solid var(--color-divider,#EDE4DD);padding-top:12px;flex-wrap:wrap;}
.cpc__gw{font-size:11.5px;color:var(--color-text-muted,#6B5F57);display:flex;align-items:center;gap:6px;}
.cpc__gw i{color:var(--ok,#1F8A5B);}
@media(max-width:1100px){.op{grid-template-columns:var(--op-rail) 1fr;}.side{display:none;}.tm__kpis{grid-template-columns:repeat(2,1fr);}}

/* 검수 확인 모달 */
.cpm{position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.55);backdrop-filter:blur(2px);display:grid;place-items:center;padding:24px;}
.cpm__p{background:var(--color-surface,#fff);border-radius:16px;width:480px;max-width:100%;box-shadow:0 24px 60px rgba(0,0,0,.25);padding:18px 20px;}
.cpm__h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.cpm__h h3{font-size:16px;font-weight:800;margin:0;display:flex;align-items:center;gap:8px;}
.cpm__x{width:30px;height:30px;border-radius:8px;border:1px solid var(--color-border,#E0D5CC);background:var(--color-surface,#fff);color:var(--color-text-muted,#6B5F57);cursor:pointer;font-size:13px;}
.cpm__tgt{font-size:12.5px;color:var(--color-text-muted,#6B5F57);background:var(--color-bg-subtle,#F5EEE9);border-radius:10px;padding:10px 13px;margin-bottom:14px;}
.cpm__tgt b{color:var(--color-text-strong,#15110E);}
.cpm__lb{font-size:12px;font-weight:800;color:var(--color-text,#3D342E);margin-bottom:8px;}
.cpm__req{color:var(--rose,#E11D48);}
.cpm__opts{display:flex;flex-wrap:wrap;gap:7px;}
.cpm__opt{font-size:12.5px;font-weight:600;font-family:inherit;cursor:pointer;border:1px solid var(--color-border-strong,#D8CCC2);background:var(--color-surface,#fff);color:var(--color-text-muted,#6B5F57);border-radius:999px;padding:6px 12px;}
.cpm__opt--on{background:var(--op-ink,#0F172A);border-color:var(--op-ink,#0F172A);color:#fff;}
.cpm__ta{width:100%;border:1px solid var(--color-border,#E0D5CC);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:13px;color:var(--color-text,#3D342E);resize:vertical;min-height:64px;box-sizing:border-box;}
/* ⚠️ block+relative — flex는 인라인 강조 span(<b>/<code>)을 flex item으로 쪼개 세로 오정렬(crm.css .crmnote 선례). 연속 문장으로 흐르게 하고 아이콘만 절대배치. */
.cpm__note{display:block;position:relative;font-size:11.5px;color:var(--color-text-muted,#6B5F57);line-height:1.5;background:var(--color-bg-subtle,#F5EEE9);border-radius:10px;padding:10px 12px 10px 32px;margin-top:12px;}
.cpm__note > i{color:var(--ok,#1F8A5B);position:absolute;left:12px;top:11px;}
.cpm__note b{display:inline;color:var(--color-text-strong,#15110E);}
.cpm__note--ok{background:var(--ok-bg,#E5F4EC);}
.cpm__f{display:flex;align-items:center;gap:8px;margin-top:14px;}

/* ══════════════════════════════════════════════════════════════════════════
   재설계 P4 — 전상태 발급검수 board(2단 탭·enriched 카드·규칙 어시스트) + 상세 모달(패리티).
   semantic 색상은 고정 fallback(--ok/--rose/--amber), 표면/텍스트는 theme-aware(--color-*) — 기존 컨벤션 준수.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── 2단 탭 ── */
.cp-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:6px 0 4px;}
.cp-tabs--sub{margin:2px 0 4px;padding:7px 10px;background:var(--color-bg-subtle,#F5EEE9);border-radius:11px;}
.cp-tabs__lb{font-size:11.5px;font-weight:700;color:var(--color-text-muted,#6B5F57);margin-right:4px;display:inline-flex;align-items:center;gap:5px;}
.cp-tab{font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;color:var(--color-text-muted,#6B5F57);background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:999px;padding:6px 13px;display:inline-flex;align-items:center;gap:7px;}
.cp-tab:hover{border-color:var(--op-ink,#0F172A);}
.cp-tab--on{background:var(--op-ink,#0F172A);border-color:var(--op-ink,#0F172A);color:#fff;}
.cp-tab--sub{padding:5px 11px;font-size:12px;}
.cp-tab--clear{border-style:dashed;color:var(--color-text-subtle,#9A8C82);}
.cp-tab__c{font-size:11px;font-weight:800;min-width:18px;text-align:center;padding:1px 6px;border-radius:999px;background:var(--color-bg-subtle,#F5EEE9);color:var(--color-text-muted,#6B5F57);}
.cp-tab--on .cp-tab__c{background:rgba(255,255,255,.22);color:#fff;}

/* ── 상태 배지(승인/요청/거절/철회) ── */
.cp-badge{font-size:11px;font-weight:800;border-radius:7px;padding:2px 9px;white-space:nowrap;}
.cp-badge--ok{color:var(--ok,#1F8A5B);background:var(--ok-bg,#E5F4EC);}
.cp-badge--review{color:var(--amber,#92660C);background:var(--amber-bg,#FBF0D9);}
.cp-badge--warn{color:var(--rose,#E11D48);background:var(--rose-bg,#FFE4E6);}
.cp-badge--muted{color:var(--color-text-subtle,#9A8C82);background:var(--color-bg-subtle,#F5EEE9);}

/* ── 카드 좌측 상태 스트립(디자인 cpc--hi 확장) ── */
.cpc--ok{border-left:3px solid var(--ok,#1F8A5B);}
.cpc--review{border-left:3px solid var(--amber,#92660C);}
.cpc--warn{border-left:3px solid var(--rose,#E11D48);}
.cpc--muted{border-left:3px solid var(--color-border,#E0D5CC);}
.cpc__disc{font-size:16px;}

/* ── 카드 어시스트 배지(디자인 cpc__ai 대체 — AI 신뢰도 mock → 규칙 권고) ── */
.cpc__assist{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding-top:10px;border-top:1px dashed var(--color-divider,#EDE4DD);}
.cpc__assist-reason{font-size:12px;color:var(--color-text-muted,#6B5F57);line-height:1.5;flex:1;min-width:160px;}

/* 어시스트 권고 배지 3단계(카드 + 상세 패널 공용) */
.cp-assist__badge{font-size:11px;font-weight:800;border-radius:7px;padding:3px 9px;white-space:nowrap;display:inline-flex;align-items:center;gap:5px;}
.cp-assist__badge--ok{color:var(--ok,#1F8A5B);background:var(--ok-bg,#E5F4EC);}
.cp-assist__badge--review{color:var(--amber,#92660C);background:var(--amber-bg,#FBF0D9);}
.cp-assist__badge--warn{color:var(--rose,#E11D48);background:var(--rose-bg,#FFE4E6);}
.cp-assist__badge--muted{color:var(--color-text-subtle,#9A8C82);background:var(--color-bg-subtle,#F5EEE9);}

/* ── 어시스트 패널(상세 모달 + 인박스 결정 B 공용) ── */
.cp-assist{border:1px solid var(--color-border,#E0D5CC);border-radius:12px;padding:13px 15px;background:var(--color-bg-subtle,#F5EEE9);}
.cp-assist--empty{background:var(--color-surface,#fff);}
.cp-assist__head{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:11px;}
.cp-assist__tag{font-size:10.5px;font-weight:700;color:var(--color-text-subtle,#9A8C82);display:inline-flex;align-items:center;gap:5px;}
.cp-assist__signals{display:grid;gap:7px;}
.cp-sig{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 9px;padding:8px 11px;border-radius:9px;background:var(--color-surface,#fff);border-left:3px solid var(--color-border,#E0D5CC);}
.cp-sig--info{border-left-color:var(--color-text-subtle,#9A8C82);}
.cp-sig--caution{border-left-color:var(--amber,#92660C);}
.cp-sig--critical{border-left-color:var(--rose,#E11D48);}
.cp-sig__cat{font-size:10px;font-weight:800;color:var(--color-text-muted,#6B5F57);background:var(--color-bg-subtle,#F5EEE9);border-radius:5px;padding:1px 7px;white-space:nowrap;}
.cp-sig__label{font-size:12.5px;color:var(--color-text,#3D342E);line-height:1.5;flex:1;min-width:180px;}
.cp-sig__ev{font-size:11px;font-weight:800;color:var(--color-text-strong,#15110E);font-family:'JetBrains Mono',monospace;}
.cp-assist__empty{font-size:12px;color:var(--color-text-muted,#6B5F57);line-height:1.55;margin:0;}
.cp-assist__reasons{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:11px;}
.cp-assist__reasons-lb{font-size:11px;font-weight:800;color:var(--color-text-muted,#6B5F57);}
.cp-assist__reason{font-size:11px;font-weight:700;color:var(--rose,#E11D48);background:var(--rose-bg,#FFE4E6);border-radius:999px;padding:2px 9px;}
/* ⚠️ block+relative — flex가 인라인 <b>를 flex item으로 쪼개는 세로 오정렬 방지(crm.css .crmnote 선례). 아이콘만 절대배치. */
.cp-assist__note{display:block;position:relative;font-size:11px;color:var(--color-text-subtle,#9A8C82);line-height:1.5;margin:11px 0 0;padding-left:19px;}
.cp-assist__note > i{position:absolute;left:0;top:3px;}
.cp-assist__note b{display:inline;color:var(--color-text,#3D342E);}

/* ── 모달 확장(상세는 480px보다 넓게·스크롤) ── */
.cpm__p--wide{width:720px;max-height:88vh;overflow-y:auto;}
/* ── 상세 드로어(우측 슬라이드) — 구 중앙 모달에서 전환. 스크림(.cpm)을 우측 정렬 오버레이로, 패널을 전체높이 슬라이드로.
   선례: banner.css .bn-drawer / mod.css .moddrawer(스크림 inset:0 + 패널 우측 고정 + translateX 슬라이드). transition:all 미사용. ── */
.cpm--drawer{display:flex;justify-content:flex-end;align-items:stretch;padding:0;}
.cpm__p--drawer{width:min(760px,96vw);height:100vh;max-height:100vh;border-radius:16px 0 0 16px;box-shadow:-12px 0 40px rgba(0,0,0,.18);overflow-y:auto;animation:cpm-slide .24s cubic-bezier(.2,.8,.2,1);}
@keyframes cpm-slide{from{transform:translateX(40px);opacity:.5;}to{transform:none;opacity:1;}}
/* 드로어는 세로로 길어 스크롤됨 → 헤더(타이틀·닫기) sticky 고정 */
.cpm__p--drawer .cpm__h{position:sticky;top:0;z-index:1;background:var(--color-surface,#fff);padding:2px 0 10px;margin-bottom:4px;}
@media(max-width:640px){.cpm__p--drawer{width:100vw;border-radius:0;}}
.cpm__loading{text-align:center;color:var(--color-text-muted,#6B5F57);font-size:13px;padding:36px 0;}
.cpm__assist{margin-top:14px;}
.cpm__originate{margin-top:16px;padding-top:14px;border-top:1px solid var(--color-divider,#EDE4DD);}
.cpm__err{font-size:12px;font-weight:700;color:var(--rose,#E11D48);margin-top:7px;display:flex;gap:6px;align-items:center;}

/* ── 상세 본문(Gudock11 패리티 섹션) ── */
.cp-det{display:grid;gap:16px;}
.cp-det--empty{color:var(--color-text-subtle,#9A8C82);font-size:13px;text-align:center;padding:20px 0;}
.cp-det__sec{border:1px solid var(--color-border,#E0D5CC);border-radius:12px;padding:13px 15px;background:var(--color-surface,#fff);}
.cp-det__sh{font-size:13px;font-weight:800;color:var(--color-text-strong,#15110E);margin-bottom:11px;display:flex;align-items:center;gap:7px;}
.cp-det__sh i{color:var(--color-text-subtle,#9A8C82);}
.cp-det__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;}
@media(max-width:640px){.cp-det__grid{grid-template-columns:1fr;}}
.cp-det__f{display:flex;flex-direction:column;gap:3px;min-width:0;}
.cp-det__f--wide{grid-column:1 / -1;}
.cp-det__k{font-size:11px;font-weight:700;color:var(--color-text-subtle,#9A8C82);}
.cp-det__v{font-size:13px;color:var(--color-text,#3D342E);word-break:break-word;}
.cp-det__v--strong{font-weight:800;color:var(--color-text-strong,#15110E);}
.cp-det__v--accent{font-weight:800;color:var(--accent-text,#B23A12);}
.cp-det__id{font-size:11px;color:var(--color-text-subtle,#9A8C82);font-weight:600;}
.cp-det__sub{font-size:12px;color:var(--color-text-subtle,#9A8C82);}
.cp-det__hint{font-size:11.5px;color:var(--color-text-muted,#6B5F57);line-height:1.5;margin:0 0 10px;display:flex;gap:6px;align-items:flex-start;}
.cp-det__hint--muted{color:var(--color-text-subtle,#9A8C82);margin:8px 0 0;}
.cp-det__imgwrap{display:flex;flex-direction:column;gap:6px;margin-top:12px;}
.cp-det__img{max-width:220px;max-height:160px;width:auto;height:auto;object-fit:contain;border:1px solid var(--color-border,#E0D5CC);border-radius:8px;background:var(--color-surface,#FFF);}
.cp-hist{border-left:3px solid var(--color-border,#E0D5CC);padding:3px 0 3px 12px;margin-bottom:10px;}
.cp-hist--reapply{border-left-color:var(--op-ink,#0F172A);}
.cp-hist--reject{border-left-color:var(--rose,#E11D48);}
.cp-hist__top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:3px;}
.cp-hist__n{font-size:12px;font-weight:800;color:var(--color-text-strong,#15110E);}
.cp-hist__at{font-size:11px;color:var(--color-text-subtle,#9A8C82);white-space:nowrap;}
.cp-hist__reason{font-size:12.5px;color:var(--color-text,#3D342E);line-height:1.5;}
.cp-hist__actor{font-size:11px;color:var(--color-text-subtle,#9A8C82);margin-top:2px;}
.cp-det__tblwrap{overflow-x:auto;}
.cp-det__tbl{width:100%;border-collapse:collapse;font-size:12.5px;}
.cp-det__tbl th{text-align:left;font-weight:700;color:var(--color-text-subtle,#9A8C82);border-bottom:1px solid var(--color-border,#E0D5CC);padding:6px 10px;white-space:nowrap;}
.cp-det__tbl td{padding:7px 10px;border-bottom:1px solid var(--color-divider,#EDE4DD);color:var(--color-text,#3D342E);}
.cp-det__tbl-applied{font-weight:800;color:var(--accent-text,#B23A12);white-space:nowrap;}
.cp-det__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
@media(max-width:640px){.cp-det__stats{grid-template-columns:repeat(2,1fr);}}
.cp-stat{border:1px solid var(--color-border,#E0D5CC);border-radius:10px;padding:10px 12px;text-align:center;}
.cp-stat__v{font-size:17px;font-weight:800;letter-spacing:-.02em;color:var(--color-text-strong,#15110E);}
.cp-stat__l{font-size:11px;color:var(--color-text-subtle,#9A8C82);margin-top:3px;}
