.interests-workbench { grid-template-columns: minmax(0, 1fr); gap: 16px; }
.interests-workbench > .top-flow { flex-wrap: wrap; white-space: normal; }
.interests-workbench .interests-card { min-width: 0; padding: 0 28px 28px; }
.interests-card > .composer-head { padding: 22px 0 20px; }
.interests-stack { display: grid; gap: 16px; }
.interests-section { padding: 18px; gap: 16px; min-width: 0; }
.interests-section-head { display: flex; align-items: center; gap: 12px; }
.interests-section h2 { margin: 0; font-size: 16px; font-weight: 900; line-height: 1.4; }
.interests-section-head p { margin: 4px 0 0; font-size: 14px; font-weight: 500; color: var(--muted); }
.interests-icon, .interests-empty-icon { display: inline-grid; place-items: center; flex: none; width: 38px; height: 38px; border-radius: 10px; border: 1px solid #cfe8d8; background: #edf7f1; color: var(--primary); }
.interests-workbench svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.interests-empty { display: flex; flex-direction: column; align-items: center; padding: 36px 16px; border: 1px solid #dce3ea; border-radius: 14px; background: #f8fafc; text-align: center; }
.interests-empty-icon { margin-bottom: 14px; color: #64748b; background: white; border-color: #e7e9ee; }
.interests-empty strong { font-size: 14px; font-weight: 900; color: #41454d; }
.interests-empty p { margin: 6px 0 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.interests-table-head { justify-content: space-between; }
.interests-status { color: #64748b; font-size: 14px; font-weight: 700; }
.interests-table-wrap { border: 1px solid #e7e9ee; border-radius: 10px; overflow: hidden; }
.interests-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 14px; }
.interests-table th { background: #f8fafc; color: #41454d; text-align: left; padding: 13px 14px; font-weight: 900; border-bottom: 1px solid #e7e9ee; }
.interests-table td { text-align: center; color: var(--muted); padding: 32px 14px; }
@media (max-width: 720px) {
  .interests-workbench { padding: 12px; }
  .interests-workbench .interests-card { padding: 0 16px 16px; }
  .interests-section { padding: 14px; }
}
/* 기존 메시지 화면의 카드·초록 강조·회색 보조색을 유지합니다. */
.holdings { background: linear-gradient(115deg,#f9fcfa,#fff 65%); }
.interests-section-head .subtle-badge { margin-left: auto; }
.subtle-badge { display: inline-flex; align-items: center; width: fit-content; border: 1px solid #e2e9e5; background:#f7faf8; color:#6c8073; border-radius:6px; padding:5px 8px; font-size: 14px; font-weight:600; white-space:nowrap; }
.metric-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.metric { min-width:0; padding:18px 14px; border:1px solid #e0e9e3; background:#fff; border-radius:12px; }
.metric > span { display:block; font-size: 14px; font-weight:700; color:#6f8176; }
.metric strong { display:block; margin:8px 0; color:#155d39; font-size:clamp(18px,1.65vw,28px); letter-spacing:-.8px; font-weight:850; line-height:1.3; overflow-wrap:anywhere; }
.metric strong small { font-size: 14px; font-weight:600; margin-left:3px; }
.metric em { display:block; font-style:normal; font-size: 14px; color:#8b9790; }
.data-note { margin:0; font-size: 14px; color:#8a948e; line-height:1.6; }
.relationship-strip { display:flex; justify-content:space-around; align-items:center; gap:10px; padding:16px; border:1px solid #e7ece8; border-radius:12px; background:#f9fafb; }
.relationship-strip > span { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.relationship-strip b { font-size: 14px; color:#46564b; }
.relationship-strip small { font-size: 14px; color:#919b95; }
.relationship-strip i { color:#bdc9c1; font-style:normal; }
.relationship-strip .relationship-end b { color:var(--primary); }
.explore-topline { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:12px; }
.explore-topline h2 { margin:0; font-size:19px; font-weight:800; }
.explore-topline p { margin:5px 0 0; font-size: 14px; color:var(--muted); }
.targeting-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:18px; align-items:start; }
.target-charts { display:grid; gap:12px; min-width:0; }
.targeting-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.targeting-tabs button { display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:78px; padding:13px 16px; border:1px solid #dce4df; border-radius:12px; background:#fff; color:#536158; font-family:var(--font-main); text-align:left; cursor:pointer; transition:background .16s,border-color .16s,box-shadow .16s,transform .16s; }
.targeting-tabs button:hover { transform:translateY(-1px); border-color:#a9cdb6; box-shadow:0 6px 16px #254c330d; }
.targeting-tabs button[aria-selected="true"] { border-color:#45a26b; background:linear-gradient(120deg,#eff9f3,#fff); color:#08733e; box-shadow:0 4px 14px #1a7c4614,inset 0 0 0 1px #b8dcc5; }
.targeting-tab-icon { display:grid; width:44px; height:44px; place-items:center; border-radius:11px; background:#f0f3f1; color:#68766d; font-size:21px; font-weight:900; }
.targeting-tabs button[aria-selected="true"] .targeting-tab-icon { background:#168550; color:#fff; }
.targeting-tabs button strong { display:block; color:#252b27; font-size:16px; font-weight:900; line-height:1.3; }
.targeting-tabs button small { display:block; margin-top:4px; color:#78847c; font-size:13px; font-weight:600; line-height:1.35; }
.targeting-tabs button em { padding:5px 8px; border-radius:999px; background:#f0f3f1; color:#7b867f; font-size:12px; font-style:normal; font-weight:800; white-space:nowrap; }
.targeting-tabs button[aria-selected="true"] em { background:#dcf2e5; color:#08733e; }
.targeting-tabs button:focus-visible { outline:2px solid #168550; outline-offset:2px; }
[data-targeting-panel][hidden] { display:none!important; }
.exploration { min-width:0; display:grid; gap:18px; }
.step-number { display:grid; place-items:center; width:30px; height:30px; flex:none; border-radius:9px; background:#edf7f1; color:var(--primary); font-size: 14px; font-weight:900; }
.cloud-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.cloud-card { border:1px solid #e5ebe7; border-radius:12px; min-width:0; overflow:hidden; background:#fff; }
.cloud-card header { display:flex; justify-content:space-between; gap:8px; padding:16px 16px 0; align-items:center; }
.source-label { font-size: 14px; font-weight:700; color:#14824a; }
.cloud-card h3 { font-size: 14px; font-weight:800; margin:4px 0 0; }
.source-dot { width:8px; height:8px; border-radius:50%; background:#34946a; flex:none; }
.external-cloud .source-label { color:#587e86; }
.external-cloud .source-dot { background:#73969d; }
.cloud-card > p { padding:0 16px; color:#8b9690; font-size: 14px; margin:7px 0 0; }
.word-cloud { min-height:240px; display:flex; flex-wrap:wrap; justify-content:center; align-content:center; align-items:center; gap:5px 9px; padding:20px 14px; }
.word-cloud button { border:1px solid transparent; background:transparent; border-radius:7px; padding:3px 4px; cursor:pointer; line-height:1.25; font-weight:750; letter-spacing:-.5px; max-width:100%; overflow-wrap:anywhere; transition:background .15s; }
.word-cloud button:hover { background:#f1f7f3; }
.word-cloud button[aria-pressed="true"] { background:#e5f2e9; border-color:#91bfa1; color:#075b31 !important; }
.cloud-card footer { padding:10px 12px; border-top:1px solid #edf0ee; text-align:center; font-size: 14px; color:#91a097; background:#fbfcfb; }
.chart-legend { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; color:#8b978f; font-size: 14px; }
.chart-legend i { display:inline-block; width:8px; height:8px; background:#d8ecdf; border:1px solid #91bfa1; border-radius:2px; margin-right:5px; }
.tree-navigation { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 12px; border:1px solid #e4ebe6; border-radius:9px; background:#f8faf9; }
.tree-navigation nav { display:flex; align-items:center; flex-wrap:wrap; gap:7px; font-size: 14px; color:#9aa59e; }
.tree-navigation > div { display:flex; gap:6px; flex:none; }
.tree-navigation button { border:1px solid #dfe7e1; background:#fff; color:#50745d; border-radius:6px; padding:6px 8px; font-size: 14px; cursor:pointer; }
.tree-navigation nav button { background:transparent; border:0; padding:3px; font-weight:700; }
.tree-depth-badge { margin-left:5px; padding:4px 8px; border:1px solid #cde4d5; border-radius:999px; background:#edf8f1; color:#0f7441; font-size:13px; font-weight:800; white-space:nowrap; }
.tree-navigation button:disabled { opacity:.4; cursor:default; }
.product-treemap { position:relative; height:210px; border-radius:10px; overflow:hidden; background:#f8faf9; }
.tree-tile { position:absolute; border:2px solid white; border-radius:8px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:10px; color:#23583a; cursor:pointer; text-align:center; overflow:hidden; }
.tree-tile:hover { filter:brightness(.96); }
.tree-tile[aria-pressed="true"] { box-shadow:inset 0 0 0 2px #116e3c; }
.tree-tile strong { font-size:14px; font-weight:800; line-height:1.3; overflow-wrap:anywhere; }
.tree-tile span { font-size: 14px; font-weight:600; }
.tree-tile small { margin-top:2px; font-size: 14px; opacity:.7; }
.tree-detail { display:flex; justify-content:space-between; gap:12px; font-size: 14px; color:#859389; line-height:1.6; }
.tree-detail > span:last-child { flex:none; }
.category-details summary { font-size: 14px; color:#61756a; cursor:pointer; padding:5px 0; }
.category-details .interests-table-wrap { margin-top:10px; }
.category-details .interests-table th { font-size: 14px; padding:10px; }
.category-details .interests-table td { font-size: 14px; padding:10px; text-align:left; border-bottom:1px solid #edf0ee; }
.category-details button { border:0; color:var(--primary); background:#edf7f1; padding:5px 8px; font-size: 14px; border-radius:5px; cursor:pointer; }
.target-summary { position:sticky; top:16px; border:1px solid #cfe1d5; border-radius:14px; background:#fff; padding:18px; box-shadow:0 4px 16px #254c3305; }
.target-summary-head { display:flex; align-items:center; gap:8px; }
.target-summary h2 { margin:0; font-size:15px; font-weight:850; }
.target-combination-note { margin:12px 0 0; padding:10px 11px; border-radius:8px; background:#f1f7f3; color:#52705e; font-size:13px; font-weight:650; line-height:1.45; }
.clear-target { margin-left:auto; border:0; background:transparent; padding:0; font-size: 14px; color:#8c9890; cursor:pointer; }
.target-demo { display:block; margin:16px 0 0; font-size: 14px; color:#8a968e; }
.target-number { display:grid; gap:5px; margin-top:18px; }
.target-number > span { font-size: 14px; color:#738578; }
.target-number strong { font-size:40px; line-height:1.2; color:#0d6b38; font-weight:850; letter-spacing:-1px; }
.target-number small { color:#86968c; font-size: 14px; }
.target-meter { height:5px; background:#edf2ee; border-radius:4px; margin:13px 0 22px; overflow:hidden; }
.target-meter span { display:block; width:0; height:100%; background:#56a574; transition:width .2s; }
.match-options { padding:0; margin:0 0 20px; border:0; display:flex; flex-wrap:wrap; gap:8px; }
.match-options legend { font-size: 14px; font-weight:700; margin-bottom:10px; }
.match-options label { display:flex; align-items:center; gap:4px; font-size: 14px; }
.match-options input { accent-color:var(--primary); margin:0; }
.match-options small { font-size: 14px; color:#9aa69e; }
.selected-heading { display:flex; justify-content:space-between; font-size: 14px; margin-bottom:10px; }
.selected-heading span { color:#8d9a91; }
.selected-conditions { display:flex; flex-wrap:wrap; gap:6px; min-height:62px; }
.selection-empty { margin:0; width:100%; padding:14px; text-align:center; border:1px dashed #dce6df; border-radius:8px; color:#9aa79e; font-size: 14px; line-height:1.7; }
.condition-chip { border:1px solid #d9e8de; background:#f0f7f2; border-radius:8px; color:#386349; font-size:14px; font-weight:700; padding:7px 9px; cursor:pointer; max-width:100%; overflow-wrap:anywhere; text-align:left; }
.condition-chip.is-internal { border-color:#b9dec7; background:#eaf7ee; color:#17633d; }
.condition-chip.is-external { border-color:#c5d9ee; background:#eef5fc; color:#315f8f; }
.condition-chip.is-category { border-color:#e5d6bd; background:#faf4e9; color:#765b2c; }
.condition-chip span { margin-left:6px; opacity:.6; }
.match-description { font-size: 14px; color:#829087; line-height:1.6; margin:10px 0 20px; }
.target-save { border-top:1px solid #e8eee9; padding-top:16px; }
.target-save label { display:block; font-size: 14px; font-weight:700; margin-bottom:8px; }
.target-name { width:100%; min-width:0; padding:10px; border:1px solid #dee7e1; border-radius:7px; font-size: 14px; }
.save-target { width:100%; padding:12px 8px; background:var(--primary); color:white; border:0; border-radius:8px; font-size: 14px; font-weight:700; margin-top:10px; cursor:pointer; }
.save-target:disabled { background:#e8eeea; color:#9aa89e; cursor:not-allowed; }
.save-status { font-size: 14px; line-height:1.6; color:#65806d; margin:8px 0 0; }
.target-footnote { font-size: 14px; color:#98a39b; line-height:1.7; margin:16px 0 0; }
.interests-workbench button:focus-visible, .interests-workbench input:focus-visible, .category-details summary:focus-visible { outline:2px solid #0d6b38; outline-offset:3px; }
@media(min-width:1700px) { .word-cloud { min-height:270px; } .product-treemap { height:238px; } }
@media(max-width:1150px) { .metric-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .metric strong { font-size:24px; } .targeting-layout { grid-template-columns:minmax(0,1fr) 250px; gap:14px; } .cloud-grid { grid-template-columns:1fr; } .word-cloud { min-height:210px; } .relationship-strip small { display:none; } }
@media(max-width:800px) { .targeting-layout { grid-template-columns:1fr; } .target-summary { position:static; } .cloud-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .interests-card .composer-title { font-size:22px; } .targeting-tabs { grid-template-columns:1fr; } }
@media(max-width:540px) { .cloud-grid { grid-template-columns:1fr; } .metric { padding:14px 10px; } .metric strong { font-size:21px; } .metric em { font-size: 14px; } .relationship-strip { gap:5px; padding:12px 8px; } .relationship-strip b { font-size: 14px; } .explore-topline { align-items:start; flex-direction:column; } .explore-topline h2 { font-size:17px; } .interests-section-head { gap:8px; flex-wrap:wrap; } .interests-section-head .subtle-badge { margin-left:0; } .tree-navigation { flex-wrap:wrap; } .product-treemap { height:231px; } .tree-tile { padding:6px; } .tree-tile strong { font-size: 14px; } .tree-tile span { font-size: 14px; } .tree-tile small { display:none; } .tree-detail { flex-direction:column; gap:3px; } }

.scope-explanation { font-size: 14px; color:#819087; line-height:1.7; margin:0 0 20px; }
.selected-conditions { align-items:flex-start; align-content:flex-start; min-height:44px; }
.word-cloud { max-width:360px; margin-inline:auto; width:100%; }
.target-summary { padding:16px; }
.target-demo { margin-top:12px; }
.target-number { margin-top:14px; }
.target-meter { margin:10px 0 16px; }
.match-options { margin-bottom:16px; }
.match-description { margin:8px 0 14px; }
.target-footnote { margin-top:12px; }
@media(max-width:540px) { .metric strong { font-size:16px; letter-spacing:-.6px; white-space:nowrap; overflow-wrap:normal; } }
/* 보유현황: 첨부 기준의 컬러 카드와 중앙 정렬 */
.holdings { background:#fff; }
.metric-grid { grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; }
.metric { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; min-height:96px; padding:12px 6px; border:0; border-radius:14px; box-shadow:0 4px 7px #273d4410; }
.metric > span { font-size:18px; font-weight:750; line-height:1.35; letter-spacing:-.25px; color:inherit; word-break:keep-all; }
.metric strong { margin:8px 0 0; font-size:clamp(16px,1.7vw,28px); color:inherit; letter-spacing:-.5px; white-space:nowrap; }
.metric:nth-child(1) { background:linear-gradient(135deg,#eef5ff,#deebff); color:#224293; }
.metric:nth-child(1) > span { color:#2463ff; }
.metric:nth-child(2) { background:linear-gradient(135deg,#fbf5ff,#f2e8ff); color:#601c8c; }
.metric:nth-child(2) > span { color:#9b38ff; }
.metric:nth-child(3) { background:linear-gradient(135deg,#fffbea,#fff3c4); color:#7a5300; }
.metric:nth-child(3) > span { color:#d99a00; }
.metric:nth-child(4) { background:linear-gradient(135deg,#fff8ee,#ffeed6); color:#8c3418; }
.metric:nth-child(4) > span { color:#f45a12; }
.metric:nth-child(5) { background:linear-gradient(135deg,#fff2f3,#ffe2e4); color:#8a1b20; }
.metric:nth-child(5) > span { color:#fa3037; }
.metric:nth-child(6) { background:linear-gradient(135deg,#ecfbfa,#d7f5f2); color:#0d5b57; }
.metric:nth-child(6) > span { color:#0f9e94; }
.metric:nth-child(7) { background:linear-gradient(135deg,#effdf4,#ddfce8); color:#175631; }
.metric:nth-child(7) > span { color:#0aad43; }
.cloud-card header { padding-bottom:4px; }
.target-number { margin-top:20px; }
.selected-conditions:empty,.save-status:empty,.tree-detail:empty { display:none; }
.save-status { display:block; }
.tree-detail { margin:0; }
@media(max-width:1150px) { .metric strong { font-size:26px; } }
@media(max-width:540px) { .metric-grid { gap:10px; } .metric { min-height:106px; padding:14px 6px; } .metric > span { font-size:16px; } .metric strong { font-size:16px; letter-spacing:-.6px; } }
.cloud-grid .word-cloud { min-height:252px; padding:12px 12px; }
/* 트리맵 진입: 바깥에서 모이며 서로 가볍게 부딪히는 효과 */
.tree-tile.is-entering { animation:tree-tile-collide 1.1s cubic-bezier(.3,.7,.4,1) both; }
@keyframes tree-tile-collide {
  0% { opacity:0; transform:translate(var(--dx),var(--dy)) scale(.92); }
  55% { opacity:1; transform:translate(calc(var(--dx) * -.12),calc(var(--dy) * -.12)) scale(1.02); }
  78% { transform:translate(calc(var(--dx) * .04),calc(var(--dy) * .04)) scale(.995); }
  100% { opacity:1; transform:none; }
}
/* 바깥 영역의 이중 테두리를 없애고 안쪽 카드 테두리만 남깁니다. */
.message-workbench.interests-workbench { border:0; border-radius:0; padding-top:0; }
/* 바깥 배경을 메인 화면 배경(#f5f6f8)과 같게 해 카드 둘레의 색 다른 사각형을 없앱니다. */
body, .message-workbench.interests-workbench { background:#f5f6f8; }
/* 제목 아래 설명: 실시간 AI 추천 세그먼트 화면과 같은 스타일 */
.interests-subtitle { margin:7px 0 0; color:#5f6875; font-size:16px; font-weight:700; line-height:1.5; }
/* 상단 지표: AI 추천 세그먼트 요약 카드처럼 한 장의 연한 카드 안에 구분선으로 나눈 미니멀 스타일 */
.interests-section.holdings { padding:16px 18px; border:1px solid #dce5ef; border-radius:12px; background:#f7faff; box-shadow:none; }
.holdings .metric-grid { gap:0; }
.holdings .metric, .holdings .metric:nth-child(n) { align-items:flex-start; justify-content:center; min-height:0; padding:0 18px; border:0; border-radius:0; background:none; box-shadow:none; color:#20242b; text-align:left; }
.holdings .metric:first-child { padding-left:0; }
.holdings .metric + .metric { border-left:1px solid #dce5ef; }
.holdings .metric > span, .holdings .metric:nth-child(n) > span { color:#718096; font-size:16px; font-weight:650; line-height:1.3; letter-spacing:0; }
.holdings .metric strong { margin:5px 0 0; color:#20242b; font-size:clamp(17px,1.55vw,24px); font-weight:850; line-height:1.2; letter-spacing:-.03em; }
@media(max-width:1150px) { .holdings .metric:nth-child(n) { padding:10px 14px; border-left:0; } }
/* 상단 지표: 가운데 정렬 + 지표별 은은한 포인트 컬러(점·라벨·숫자 톤) */
.holdings .metric, .holdings .metric:nth-child(n) { align-items:center; text-align:center; }
.holdings .metric:first-child { padding-left:18px; }
.holdings .metric:nth-child(1) { --accent:#3f73f0; --ink:#1e3a8a; }
.holdings .metric:nth-child(2) { --accent:#8b5cf6; --ink:#4c1d95; }
.holdings .metric:nth-child(3) { --accent:#d99a00; --ink:#7a5300; }
.holdings .metric:nth-child(4) { --accent:#f0702c; --ink:#8c3418; }
.holdings .metric:nth-child(5) { --accent:#e5484d; --ink:#8a1b20; }
.holdings .metric:nth-child(6) { --accent:#10a86a; --ink:#0d5b3a; }
.holdings .metric:nth-child(n) > span { display:inline-flex; align-items:center; gap:6px; color:var(--accent); }
.holdings .metric > span::before { content:''; width:7px; height:7px; border-radius:50%; background:var(--accent); opacity:.85; }
.holdings .metric strong { color:var(--ink); }
/* 보유 데이터: 지표 카드 개수와 상관없이 한 줄에 같은 폭으로 나눕니다(카드를 빼도 왼쪽으로 쏠리지 않게). */
.holdings .metric-grid { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); }
@media(max-width:760px) { .holdings .metric-grid { grid-auto-flow:row; grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:540px) { .holdings .metric-grid { grid-template-columns:1fr; } }
/* 보유 데이터 지표 숫자 1.5배(17~24px → 25.5~36px) */
.holdings .metric strong { font-size:clamp(25.5px,2.33vw,36px); }
/* 실시간 관심사 타겟팅: 지표 5개 한 줄 */
.metric-grid.is-five { grid-template-columns:repeat(5,minmax(0,1fr)); }
/* 보유 데이터: 예상 고객 타겟 카드 없이 차트를 전체 폭으로 */
html[data-page="holdings"] .targeting-layout { grid-template-columns:minmax(0,1fr); }
/* 보유 데이터: 관심사 카드 하나를 전체 폭으로 */
.unified-targeting .cloud-grid.is-merged { grid-template-columns:minmax(0,1fr); }
/* 카테고리 표 맨 위 요약 한 줄(합계 · 중복 제외 · 평균) */
.category-details .interests-table tr.is-summary td { background:#f6fcf9; font-weight:800; border-bottom:2px solid #d5ece0; }
.category-details .interests-table tr.is-summary td small { margin-right:6px; color:#7a8a80; font-size:12px; font-weight:650; }
/* 카테고리 표: 숫자 칸(관심사 수 · 관심 유저 수 · 증감 2개)은 제목과 함께 오른쪽 정렬 */
.category-details .interests-table th:nth-child(n+2):nth-child(-n+5),
.category-details .interests-table td:nth-child(n+2):nth-child(-n+5) { text-align:right; font-variant-numeric:tabular-nums; }
/* 보유 데이터: 트리맵에서 고른 분류의 하위 상품 목록(CDP 실데이터) */
.product-list { display:grid; gap:10px; }
.product-list-head { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 12px; }
.product-list-head h3 { margin:0; font-size:16px; font-weight:850; color:#20242b; }
.product-list-head span { font-size:14px; color:#64796c; }
#product-list-total { margin-left:auto; font-weight:750; }
.product-list .interests-table-wrap { max-height:420px; overflow-y:auto; overscroll-behavior:contain; }
.product-table thead th { position:sticky; top:0; z-index:1; padding:10px; font-size:14px; }
.product-table td { padding:10px; border-bottom:1px solid #edf0ee; color:#3d4650; font-size:14px; text-align:left; overflow-wrap:anywhere; }
.product-table td small { display:block; margin-bottom:2px; color:#8a948e; font-size:12px; }
.product-table td.product-empty { padding:28px 14px; color:var(--muted); text-align:center; }
.product-pagination { display:flex; justify-content:center; align-items:center; gap:10px; color:#52705e; font-size:14px; }
.product-pagination:empty { display:none; }
.product-pagination button { padding:6px 10px; border:1px solid #dfe7e1; border-radius:6px; background:#fff; color:#50745d; font-size:14px; cursor:pointer; }
.product-pagination button:disabled { opacity:.4; cursor:default; }

/* CDP 에이전트: 화면의 숫자·태그·차트를 눌러 대화창에 묻기 */
.ai-ask{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px;border:1px solid #cfe9da;border-radius:999px;background:#f1faf5;color:#0d713e;font:inherit;font-size:12.5px;font-weight:800;line-height:1;cursor:pointer;white-space:nowrap;transition:background .16s ease,border-color .16s ease}
.ai-ask:hover{border-color:#16a34a;background:#e3f5ea}
.ai-ask.is-icon{width:26px;justify-content:center;margin-left:6px;padding:0}
.treemap-tooltip .ai-ask{margin-top:10px;width:100%;justify-content:center;height:30px}
.product-list .ai-ask,.target-summary-head .ai-ask{margin-left:8px}
.crm-chart h3+.ai-ask{margin-left:8px;vertical-align:middle}
.crm-chart figcaption{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.profile-identity .ai-ask{margin-left:auto}
.composer-title+.ai-ask,.crm-head .ai-ask{margin-left:10px;vertical-align:middle}
.crm-head .crm-date{margin-left:auto}
.metric.is-askable,.crm-tile.is-askable{cursor:pointer}
.metric.is-askable:focus-visible,.crm-tile.is-askable:focus-visible{outline:2px solid #16a34a;outline-offset:2px}

/* 보유 데이터: 상품 분류 표 | 상품 목록 표를 5:5로 나란히. 두 표 상자의 높이를 420px로 똑같이 고정하고,
   왼쪽 표는 반쪽 폭 안에 들어가게(가로로 넘치면 세로 스크롤바가 가려짐) 고정 폭 열 + 두 줄 머리글로 맞춥니다. 좁은 화면(1280px 이하)은 위아래로 */
.category-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; align-items:start; }
.category-split .category-details { display:grid; gap:10px; min-width:0; }
.category-split .category-details .interests-table-wrap { margin-top:0; overflow-x:hidden; }
.category-split .category-details .interests-table-wrap, .category-split .product-list .interests-table-wrap { box-sizing:border-box; height:420px; max-height:420px; overflow-y:auto; }
.category-split .category-details .interests-table { width:100%; table-layout:fixed; }
.category-split .category-details .interests-table th:nth-child(1) { width:19%; }
.category-split .category-details .interests-table th:nth-child(2), .category-split .category-details .interests-table th:nth-child(3) { width:17%; }
.category-split .category-details .interests-table th:nth-child(4), .category-split .category-details .interests-table th:nth-child(5) { width:14%; }
.category-split .category-details .interests-table th:nth-child(6) { width:19%; padding-left:12px; }
.category-split .category-details .interests-table th { padding:8px 6px; font-size:13px; white-space:normal; word-break:keep-all; line-height:1.3; }
.category-split .category-details .interests-table td { padding:9px 6px; font-size:13.5px; white-space:nowrap; }
.category-split .category-details .interests-table td:first-child { white-space:normal; word-break:keep-all; overflow-wrap:anywhere; }
.category-split .category-details .interests-table tr.is-summary td { white-space:nowrap; font-size:13px; line-height:1.35; }
.category-split .category-details .interests-table tr.is-summary td:first-child { white-space:normal; }
.category-split .category-details .interests-table tr.is-summary td small { display:block; margin:0; }   /* ‘합계·중복 제외·평균’ 라벨은 숫자 위 줄로(옆 칸과 겹침 방지) */
.category-split .category-details .interests-table tr.is-summary td.trend-up, .category-split .category-details .interests-table tr.is-summary td.trend-down { white-space:nowrap; }
.category-split .category-details .interests-table td:last-child { white-space:normal; }
.category-split .category-details .interests-table td:last-child { white-space:nowrap; padding-left:12px; }
.category-split .category-details .interests-table td:last-child button { padding:4px 7px; font-size:13px; }
@media(max-width:1280px) { .category-split { grid-template-columns:minmax(0,1fr); } }
/* 증감 머리글: 나란히 배치일 때 ‘증감’ / ‘(전일 대비)’ 두 줄로 깔끔하게 */
.category-split .category-details .interests-table .th-sub { display:block; white-space:nowrap; font-size:12px; font-weight:700; color:#7a8a80; }
@media(max-width:1280px) { .category-split .category-details .interests-table .th-sub { display:inline; font-size:inherit; font-weight:inherit; color:inherit; } }
/* 상품 목록: 상품 코드 | 상품명(×N) | 상품 속성 태그 (+ 값이 있을 때만 가격·브랜드·쇼핑몰) */
.product-table { width:100%; table-layout:fixed; }
.product-table th:nth-child(1) { width:24%; }
.product-table th:nth-child(3) { width:30%; }
.product-table td { vertical-align:middle; }
.product-table td.product-code { color:#8a948e; font-size:12.5px; font-variant-numeric:tabular-nums; word-break:break-all; }
.product-table td.product-code small { display:block; margin:2px 0 0; color:#a0aaa4; font-size:11.5px; }
.product-table td.product-name { color:#2f3842; line-height:1.45; }
.product-same { display:inline-block; margin-left:6px; padding:0 6px; border-radius:999px; background:#eef1ff; color:#4b5bd1; font-size:12px; font-weight:800; line-height:20px; vertical-align:1px; }
.product-table td.product-detail { line-height:1.9; }
.product-table td.product-detail.is-empty { color:#c0c7c2; }
.product-tag { display:inline-block; margin:0 4px 0 0; padding:0 7px; border-radius:6px; background:#f1f4f2; color:#4f5f55; font-size:12px; font-weight:750; line-height:22px; white-space:nowrap; }
.product-tag.is-promo, .product-tag.is-discount, .product-tag.is-bundle { background:#fff1ec; color:#c2410c; }
.product-tag.is-volume, .product-tag.is-count, .product-tag.is-size { background:#edf7f1; color:#137d3a; }
.product-tag.is-price { background:#eef1ff; color:#3446b8; }
