/* ===================================================================
   keywordmaster.net — v3 디자인 레이어 (2026-11-06)
   · 기능 마크업/ID는 v1 그대로, 보이는 것만 새로 입힘
   · km-v3-base.css(=v1 기능 스타일) 다음에 로드되어 덮어쓴다
   · 색은 기존 KM 블루/인디고 유지, 사진은 워커캡 생성본(/assets/v3/)
   · SEO: title·h1 은 건드리지 않음 (히어로 문구는 div/p 로만)
   =================================================================== */

body.kd-v3 {
  --v3-bg: #f5f7fc;
  --v3-card: #ffffff;
  --v3-card2: #f8fafc;
  --v3-line: #e4e9f2;
  --v3-line2: #eef2f8;
  --v3-ink: #0f172a;
  --v3-ink2: #334155;
  --v3-mute: #64748b;
  --v3-brand: #4f46e5;
  --v3-brand-d: #4338ca;
  --v3-brand-l: #eef2ff;
  --v3-blue: #2563eb;
  --v3-cyan: #06b6d4;
  --v3-ok: #10b981;
  --v3-warn: #f59e0b;
  --v3-danger: #ef4444;
  --v3-shadow: 0 1px 2px rgba(15,23,42,.04), 0 8px 24px rgba(15,23,42,.06);
  --v3-shadow-l: 0 10px 40px rgba(15,23,42,.10);
  --v3-r: 16px;
  background: var(--v3-bg) !important;
  color: var(--v3-ink);
}
body.kd-v3.theme-dark {
  --v3-bg: #0b1220;
  --v3-card: #111827;
  --v3-card2: #0f1a2b;
  --v3-line: #223049;
  --v3-line2: #1a2436;
  --v3-ink: #e8edf7;
  --v3-ink2: #cbd5e1;
  --v3-mute: #94a3b8;
  --v3-brand: #818cf8;
  --v3-brand-d: #6366f1;
  --v3-brand-l: #1e2744;
  --v3-blue: #60a5fa;
  --v3-shadow: 0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.35);
  --v3-shadow-l: 0 10px 40px rgba(0,0,0,.5);
}

body.kd-v3 { font-family: 'Pretendard Variable','Pretendard',-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',sans-serif; }

/* v1 의 옛 배경/컨테이너 제거 */
body.kd-v3 .container.my-4 { max-width: 1320px; padding: 0 20px 48px; }
body.kd-v3 #resetPanelBtn { display: none !important; }

/* ---------- 공통 조각 ---------- */
.v3-wrap { max-width: 1320px; margin: 0 auto; padding: 0 20px; }
.v3-card {
  background: var(--v3-card); border: 1px solid var(--v3-line);
  border-radius: var(--v3-r); box-shadow: var(--v3-shadow);
}
.v3-sec-head { display: flex; align-items: baseline; gap: 10px; margin: 0 0 14px; flex-wrap: wrap; }
.v3-sec-title { font-size: 20px; font-weight: 800; color: var(--v3-ink); letter-spacing: -.02em; }
.v3-sec-sub { font-size: 13.5px; color: var(--v3-mute); }

/* ---------- 상단 버전 바 ---------- */
.v3-verbar {
  max-width: 1320px; margin: 12px auto 0; padding: 9px 16px;
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  background: var(--v3-card); border: 1px solid var(--v3-line); border-radius: 12px;
  font-size: 12.5px; color: var(--v3-mute);
}
.v3-verbar b { color: var(--v3-ink2); }
.v3-verbar a.v3-verlink { color: var(--v3-brand); font-weight: 700; text-decoration: none; }
.v3-verbar a.v3-verlink:hover { text-decoration: underline; }

/* ---------- 히어로 ---------- */
.v3-hero {
  position: relative; max-width: 1320px; margin: 16px auto 0;
  background: var(--v3-card); border: 1px solid var(--v3-line);
  border-radius: 24px; overflow: hidden; box-shadow: var(--v3-shadow-l);
  display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr);
}
.v3-hero-body { padding: 38px 38px 32px; display: flex; flex-direction: column; justify-content: center; }
.v3-hero-badge {
  display: inline-flex; align-items: center; gap: 7px; align-self: flex-start;
  padding: 6px 13px; border-radius: 999px; background: var(--v3-brand-l);
  color: var(--v3-brand-d); font-size: 12px; font-weight: 800; letter-spacing: .01em; margin-bottom: 14px;
}
body.kd-v3.theme-dark .v3-hero-badge { color: #c7d2fe; }
.v3-hero-title {
  margin: 0 0 12px; font-size: 38px; line-height: 1.26; font-weight: 900;
  letter-spacing: -.035em; color: var(--v3-ink);
}
.v3-hero-title .v3-accent {
  background: linear-gradient(90deg, var(--v3-brand), var(--v3-blue));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.v3-hero-desc { margin: 0 0 22px; font-size: 15.5px; line-height: 1.75; color: var(--v3-mute); max-width: 540px; }
.v3-hero-media { position: relative; min-height: 340px; background: #0b1220; }
.v3-hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.v3-hero-media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, var(--v3-card) 0%, rgba(255,255,255,0) 28%);
}
body.kd-v3.theme-dark .v3-hero-media::after {
  background: linear-gradient(90deg, var(--v3-card) 0%, rgba(17,24,39,0) 28%);
}

/* 히어로 안 검색폼 */
body.kd-v3 #searchForm {
  display: block !important; margin: 0 !important;
}
.v3-searchrow { display: flex; gap: 10px; align-items: stretch; }
body.kd-v3 #searchForm #keywordInput {
  flex: 1 1 auto; height: 60px; min-width: 0; width: 100%;
  padding: 0 20px 0 52px; font-size: 17px; font-weight: 600;
  border: 2px solid #cfd8ec; border-radius: 15px; background: var(--v3-card) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236b7fb3' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.6-3.6'/%3E%3C/svg%3E") no-repeat 18px center;
  color: var(--v3-ink); box-shadow: none; transition: border-color .15s, box-shadow .15s;
}
body.kd-v3.theme-dark #searchForm #keywordInput { border-color: #2c3a57; }
body.kd-v3 #searchForm #keywordInput:focus {
  outline: none; border-color: var(--v3-brand);
  box-shadow: 0 0 0 4px rgba(79,70,229,.14);
}
.v3-searchbtn {
  flex: 0 0 auto; height: 60px; padding: 0 34px; border: 0; border-radius: 15px; cursor: pointer;
  background: linear-gradient(135deg, var(--v3-brand) 0%, var(--v3-blue) 100%);
  color: #fff; font-size: 17px; font-weight: 800; letter-spacing: -.01em;
  box-shadow: 0 6px 18px rgba(79,70,229,.3); transition: transform .12s, box-shadow .12s;
}
.v3-searchbtn:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(79,70,229,.38); }
.v3-searchbtn:active { transform: translateY(0); }

.v3-chips { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; align-items: center; }
.v3-chips-label { font-size: 12.5px; color: var(--v3-mute); margin-right: 2px; }
.v3-chip {
  padding: 6px 13px; border-radius: 999px; border: 1px solid var(--v3-line);
  background: var(--v3-card2); color: var(--v3-ink2); font-size: 13px; font-weight: 600; cursor: pointer;
  transition: all .14s;
}
.v3-chip:hover { border-color: var(--v3-brand); color: var(--v3-brand); background: var(--v3-brand-l); }

.v3-hero-meta {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--v3-line2);
  font-size: 12.5px; color: var(--v3-mute);
}
.v3-hero-meta .v3-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--v3-ok); display: inline-block; margin-right: 5px; }
.v3-filtertoggle {
  margin-left: auto; display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 15px; border-radius: 10px; border: 1px solid var(--v3-line);
  background: var(--v3-card2); color: var(--v3-ink2); font-size: 13px; font-weight: 700; cursor: pointer;
}
.v3-filtertoggle:hover { border-color: var(--v3-brand); color: var(--v3-brand); }
.v3-filtertoggle .v3-caret { transition: transform .18s; }
.v3-filtertoggle.open .v3-caret { transform: rotate(180deg); }

/* ---------- 상세 필터 ---------- */
.v3-filters { max-width: 1320px; margin: 12px auto 0; padding: 0 0; display: none; }
.v3-filters.open { display: block; }
.v3-filters-inner { padding: 20px 24px 22px; }
.v3-filter-presets { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; align-items: center; }
.v3-preset {
  padding: 8px 15px; border-radius: 10px; border: 1px solid var(--v3-line);
  background: var(--v3-card); color: var(--v3-ink2); font-size: 13px; font-weight: 700; cursor: pointer;
}
.v3-preset:hover { border-color: var(--v3-brand); color: var(--v3-brand); background: var(--v3-brand-l); }
.v3-preset.ghost { border-style: dashed; color: var(--v3-mute); }
.v3-filter-grid { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 12px 14px; }
.v3-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.v3-field > label { font-size: 11.5px; font-weight: 700; color: var(--v3-mute); letter-spacing: -.01em; }
body.kd-v3 .v3-field input.form-control {
  width: 100% !important; height: 40px; padding: 0 11px; font-size: 13.5px;
  border: 1px solid var(--v3-line); border-radius: 9px; background: var(--v3-card); color: var(--v3-ink);
}
body.kd-v3 .v3-field input.form-control:focus { outline: none; border-color: var(--v3-brand); box-shadow: 0 0 0 3px rgba(79,70,229,.12); }
.v3-filter-note {
  margin-top: 14px; padding: 10px 14px; border-radius: 10px; font-size: 12.5px; font-weight: 600;
  background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412;
}
body.kd-v3.theme-dark .v3-filter-note { background: #2a1d0f; border-color: #7c4a12; color: #fbbf24; }

/* ---------- 바로 시작(사용자 카드) ---------- */
.v3-personas { max-width: 1320px; margin: 30px auto 0; }
.v3-persona-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.v3-persona {
  position: relative; display: flex; flex-direction: column; overflow: hidden; cursor: pointer;
  background: var(--v3-card); border: 1px solid var(--v3-line); border-radius: 18px;
  box-shadow: var(--v3-shadow); text-align: left; padding: 0; transition: transform .16s, box-shadow .16s, border-color .16s;
}
.v3-persona:hover { transform: translateY(-3px); box-shadow: var(--v3-shadow-l); border-color: #c7d2fe; }
.v3-persona-photo { position: relative; aspect-ratio: 4 / 3; background: #0f172a; overflow: hidden; }
.v3-persona-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.v3-persona:hover .v3-persona-photo img { transform: scale(1.045); }
.v3-persona-tag {
  position: absolute; left: 12px; top: 12px; padding: 5px 11px; border-radius: 999px;
  background: rgba(15,23,42,.72); color: #fff; font-size: 11.5px; font-weight: 800; backdrop-filter: blur(4px);
}
.v3-persona-body { padding: 15px 16px 17px; }
.v3-persona-name { font-size: 16px; font-weight: 800; color: var(--v3-ink); margin: 0 0 5px; letter-spacing: -.02em; }
.v3-persona-desc { font-size: 13px; line-height: 1.6; color: var(--v3-mute); margin: 0 0 11px; }
.v3-persona-go { font-size: 13px; font-weight: 800; color: var(--v3-brand); display: inline-flex; align-items: center; gap: 5px; }
.v3-persona:hover .v3-persona-go { gap: 9px; }

/* ---------- 본문 2단 ---------- */
.v3-main { max-width: 1320px; margin: 30px auto 0; display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 22px; align-items: start; }
.v3-col-main { min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.v3-col-side { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 14px; }

/* 결과 카드 */
.v3-results { padding: 20px 22px 22px; }
.v3-results-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
body.kd-v3 .v3-results-head h2 { font-size: 19px !important; font-weight: 800 !important; margin: 0 !important; color: var(--v3-ink); letter-spacing: -.02em; }
.v3-results-head .v3-count { font-size: 13px; color: var(--v3-mute); font-weight: 600; }
body.kd-v3 .d-flex.align-items-center.mb-4 { margin: 0 !important; }
body.kd-v3 .d-flex.align-items-center.mb-4 img { width: 26px !important; height: 26px !important; margin-right: 8px !important; opacity: .85; }

/* 결과 툴바 */
body.kd-v3 .keyword-management-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
body.kd-v3 .keyword-mgmt-btn {
  display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border-radius: 10px;
  border: 1px solid var(--v3-line); background: var(--v3-card); color: var(--v3-ink2);
  font-size: 13px; font-weight: 700; cursor: pointer; box-shadow: none; transition: all .14s;
}
body.kd-v3 .keyword-mgmt-btn:hover { border-color: var(--v3-brand); color: var(--v3-brand); background: var(--v3-brand-l); transform: none; }
body.kd-v3 .keyword-mgmt-btn.delete:hover { border-color: var(--v3-danger); color: var(--v3-danger); background: #fef2f2; }
body.kd-v3 .col-auto.mb-3 { margin: 0 !important; }

/* 결과표 */
body.kd-v3 #filterTable { border-radius: 12px; overflow: hidden; }
body.kd-v3 #filterTable th {
  background: var(--v3-card2) !important; color: var(--v3-ink2) !important;
  font-size: 12.5px; font-weight: 800; border-bottom: 1px solid var(--v3-line) !important; padding: 11px 8px;
}
body.kd-v3 #filterTable td { font-size: 13px; padding: 10px 8px; border-bottom: 1px solid var(--v3-line2) !important; color: var(--v3-ink2); }
body.kd-v3 #filterTable tbody tr:hover td { background: var(--v3-brand-l) !important; }
body.kd-v3 .rate-legend { font-size: 12px; color: var(--v3-mute); gap: 14px; padding: 2px 0 10px; }

/* 빈 상태 */
body.kd-v3 .combiner-inline-notice {
  background: linear-gradient(135deg, #eef2ff 0%, #e0f2fe 100%) !important;
  color: var(--v3-ink) !important; border: 1px solid var(--v3-line) !important; border-radius: 14px;
  padding: 26px 20px !important; text-align: center;
}
body.kd-v3.theme-dark .combiner-inline-notice { background: linear-gradient(135deg,#182039,#0f2436) !important; color: var(--v3-ink) !important; }

/* ---------- 도구 아코디언 ---------- */
.v3-tools { display: flex; flex-direction: column; gap: 12px; }
.v3-acc { border: 1px solid var(--v3-line); border-radius: 14px; background: var(--v3-card); overflow: hidden; box-shadow: var(--v3-shadow); }
.v3-acc-head {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 15px 18px; cursor: pointer;
  background: transparent; border: 0; text-align: left; font-size: 15px; font-weight: 800; color: var(--v3-ink);
}
.v3-acc-head:hover { background: var(--v3-card2); }
.v3-acc-head .v3-acc-ico { width: 30px; height: 30px; border-radius: 9px; background: var(--v3-brand-l); color: var(--v3-brand-d); display: inline-flex; align-items: center; justify-content: center; font-size: 15px; }
.v3-acc-head .v3-acc-sub { font-size: 12.5px; font-weight: 600; color: var(--v3-mute); margin-left: 2px; }
.v3-acc-head .v3-caret { margin-left: auto; color: var(--v3-mute); transition: transform .18s; }
.v3-acc.open .v3-acc-head .v3-caret { transform: rotate(180deg); }
.v3-acc-body { display: none; padding: 4px 18px 18px; }
.v3-acc.open .v3-acc-body { display: block; }

/* 도구 안쪽 옛 스타일 정리 */
body.kd-v3 .search-settings,
body.kd-v3 .user-id-manager {
  background: var(--v3-card2) !important; border: 1px solid var(--v3-line); box-shadow: none !important;
  border-radius: 12px; padding: 14px 16px !important; margin: 0 !important; color: var(--v3-ink) !important;
}
body.kd-v3 .search-settings label,
body.kd-v3 .user-id-manager label { color: var(--v3-ink2) !important; font-size: 12.5px !important; font-weight: 700 !important; text-shadow: none !important; }
body.kd-v3 .search-engine-btn, body.kd-v3 .naver-type-btn {
  background: var(--v3-card) !important; color: var(--v3-ink2) !important; border: 1px solid var(--v3-line) !important;
  border-radius: 9px !important; font-weight: 700 !important; padding: 7px 13px !important; font-size: 13px !important;
}
body.kd-v3 .search-engine-btn.active, body.kd-v3 .naver-type-btn.active {
  background: var(--v3-brand) !important; color: #fff !important; border-color: var(--v3-brand) !important;
}
body.kd-v3 .user-id-btn {
  background: var(--v3-card) !important; color: var(--v3-ink2) !important; border: 1px solid var(--v3-line) !important;
  border-radius: 9px !important; font-weight: 700 !important; font-size: 13px !important;
}
body.kd-v3 .user-id-btn.primary { background: var(--v3-brand) !important; color: #fff !important; border-color: var(--v3-brand) !important; }

/* 커스텀 키워드 패널: v3 에서는 드래그 패널이 아니라 아코디언 안쪽 블록 */
body.kd-v3 #fixedSet {
  position: static !important; width: auto !important; left: auto !important; top: auto !important;
  cursor: default !important; z-index: auto !important;
}
body.kd-v3 #fixedSet .card { border: 0 !important; box-shadow: none !important; background: transparent !important; padding: 0 !important; }
body.kd-v3 #fixedSet .card-title { font-size: 13px; font-weight: 700; color: var(--v3-mute); display: flex; align-items: center; justify-content: space-between; }
body.kd-v3 #fixedSet.km-collapsed { display: block !important; }
body.kd-v3 #fixedSet textarea { width: 100%; border-radius: 10px; border: 1px solid var(--v3-line); font-size: 13.5px; padding: 10px 12px; }
body.kd-v3 .km-fold-btn { border: 1px solid var(--v3-line); background: var(--v3-card); border-radius: 8px; font-size: 12px; padding: 4px 10px; color: var(--v3-ink2); }

/* 키워드 조합: 인라인 모드일 때 카드 톤 맞춤 */
body.kd-v3 #keywordCombiner .card { border: 1px solid var(--v3-line) !important; border-radius: 14px !important; box-shadow: var(--v3-shadow) !important; }
body.kd-v3 #keywordCombiner .card-header { background: var(--v3-card2) !important; border-bottom: 1px solid var(--v3-line) !important; color: var(--v3-ink) !important; }
body.kd-v3 .combiner-quick-btn { border-radius: 8px !important; font-size: 12px !important; }
body.kd-v3 .combiner-textbox, body.kd-v3 .combiner-result { border-radius: 10px !important; border: 1px solid var(--v3-line) !important; font-size: 13px !important; }

/* ---------- 사이드 ---------- */
.v3-side-card { padding: 14px 16px 16px; }
.v3-side-title { font-size: 13.5px; font-weight: 800; color: var(--v3-ink); margin: 0 0 10px; display: flex; align-items: center; gap: 7px; }
.v3-side-title .v3-side-sub { font-size: 11.5px; font-weight: 600; color: var(--v3-mute); margin-left: auto; }

/* 실시간/인기/키마비키 박스 */
body.kd-v3 .trending-keywords-container { display: flex; flex-direction: column; gap: 10px; margin: 0; }
body.kd-v3 .trending-box {
  flex: none !important; min-width: 0 !important; max-width: none !important; width: 100%;
  background: var(--v3-card) !important; border: 1px solid var(--v3-line); border-radius: 13px;
  box-shadow: var(--v3-shadow); padding: 12px 13px 10px !important;
}
body.kd-v3 .trending-box.popular, body.kd-v3 .trending-box.expensive { background: var(--v3-card) !important; }
body.kd-v3 .trending-header { border-bottom: 1px solid var(--v3-line2); padding-bottom: 8px; margin-bottom: 7px; gap: 6px; }
body.kd-v3 .trending-title { color: var(--v3-ink) !important; font-size: 13px !important; font-weight: 800 !important; text-shadow: none !important; }
body.kd-v3 .trending-icon { font-size: 14px !important; }
body.kd-v3 .trending-refresh, body.kd-v3 .trending-close {
  background: transparent !important; border: 0 !important; color: var(--v3-mute) !important; font-size: 12px !important;
}
body.kd-v3 .trending-list { max-height: 210px; overflow-y: auto; }
body.kd-v3 .trending-item {
  background: transparent !important; border-bottom: 1px solid var(--v3-line2) !important; border-radius: 0 !important;
  padding: 7px 2px !important; margin: 0 !important;
}
body.kd-v3 .trending-item:last-child { border-bottom: 0 !important; }
body.kd-v3 .trending-item:hover { background: var(--v3-brand-l) !important; border-radius: 8px !important; }
body.kd-v3 .trending-keyword { color: var(--v3-ink2) !important; font-size: 12.8px !important; font-weight: 600 !important; text-shadow: none !important; }
body.kd-v3 .trending-rank { color: var(--v3-brand) !important; font-weight: 800 !important; background: transparent !important; }
body.kd-v3 .trending-count, body.kd-v3 .trending-time { color: var(--v3-mute) !important; font-size: 11px !important; }
body.kd-v3 .trending-empty { color: var(--v3-mute) !important; font-size: 12px !important; }
body.kd-v3 .platinum-badge { font-size: 9.5px !important; padding: 2px 6px !important; }

/* 검색 항목 요약: 고정 위젯 → 사이드 카드 */
body.kd-v3 .search-summary-widget {
  position: static !important; width: auto !important; top: auto !important; right: auto !important;
  background: var(--v3-card) !important; border: 1px solid var(--v3-line); border-radius: 13px;
  box-shadow: var(--v3-shadow) !important; z-index: auto !important;
}
body.kd-v3 .summary-header { background: var(--v3-card2) !important; border-bottom: 1px solid var(--v3-line); padding: 10px 13px !important; }
body.kd-v3 .summary-title { color: var(--v3-ink) !important; font-size: 13px !important; font-weight: 800 !important; }
body.kd-v3 .summary-close { color: var(--v3-mute) !important; }
body.kd-v3 .summary-grid { padding: 10px 12px 12px !important; gap: 6px !important; }
body.kd-v3 .summary-item { background: var(--v3-card2) !important; border: 1px solid var(--v3-line2) !important; border-radius: 9px !important; }
body.kd-v3 .summary-label { color: var(--v3-mute) !important; font-size: 11.5px !important; }
body.kd-v3 .summary-count { color: var(--v3-ink) !important; font-weight: 800 !important; }
body.kd-v3 .summary-minimized-icon, body.kd-v3 .combiner-minimized-icon { border-radius: 10px !important; font-size: 12px !important; }

/* 광고 */
body.kd-v3 .km-ad-strip { background: var(--v3-card) !important; border: 1px dashed var(--v3-line) !important; border-radius: 13px; padding: 12px !important; margin: 0 !important; }
body.kd-v3 .km-ad-strip-row { gap: 8px !important; }
body.kd-v3 .km-top-wide { max-width: 1320px; margin: 14px auto 0; }

/* ---------- 대량 작업실 배너 ---------- */
.v3-bulk {
  position: relative; max-width: 1320px; margin: 26px auto 0; border-radius: 20px; overflow: hidden;
  min-height: 170px; display: flex; align-items: center; border: 1px solid var(--v3-line);
  box-shadow: var(--v3-shadow);
}
.v3-bulk img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.v3-bulk::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,16,34,.92) 0%, rgba(10,16,34,.72) 45%, rgba(10,16,34,.15) 100%); }
.v3-bulk-body { position: relative; z-index: 2; padding: 26px 32px; color: #fff; max-width: 680px; }
.v3-bulk-title { font-size: 22px; font-weight: 900; letter-spacing: -.03em; margin: 0 0 7px; }
.v3-bulk-desc { font-size: 14px; line-height: 1.65; color: #cbd5e1; margin: 0 0 16px; }
.v3-bulk-btn {
  display: inline-flex; align-items: center; gap: 7px; padding: 11px 22px; border-radius: 12px;
  background: #fff; color: #1e1b4b; font-size: 14px; font-weight: 800; text-decoration: none;
}
.v3-bulk-btn:hover { background: #eef2ff; color: var(--v3-brand-d); }

/* ---------- 도움말 3단 ---------- */
.v3-help { max-width: 1320px; margin: 26px auto 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.v3-help-card { padding: 20px 22px; }
.v3-help-step { font-size: 12px; font-weight: 900; color: var(--v3-brand); letter-spacing: .08em; margin-bottom: 8px; }
.v3-help-title { font-size: 16px; font-weight: 800; color: var(--v3-ink); margin: 0 0 7px; letter-spacing: -.02em; }
.v3-help-desc { font-size: 13.5px; line-height: 1.7; color: var(--v3-mute); margin: 0; }

/* ---------- 반응형 ---------- */
@media (max-width: 1240px) {
  .v3-main { grid-template-columns: minmax(0,1fr); }
  .v3-col-side { position: static; flex-direction: row; flex-wrap: wrap; }
  .v3-col-side > * { flex: 1 1 300px; }
  body.kd-v3 .trending-keywords-container { flex-direction: row; flex-wrap: wrap; }
  body.kd-v3 .trending-box { flex: 1 1 200px !important; }
  .v3-filter-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
}
@media (max-width: 980px) {
  .v3-hero { grid-template-columns: minmax(0,1fr); }
  .v3-hero-media { min-height: 220px; order: -1; }
  .v3-hero-media::after { background: linear-gradient(0deg, var(--v3-card) 0%, rgba(255,255,255,0) 45%); }
  body.kd-v3.theme-dark .v3-hero-media::after { background: linear-gradient(0deg, var(--v3-card) 0%, rgba(17,24,39,0) 45%); }
  .v3-hero-body { padding: 24px 22px 26px; }
  .v3-hero-title { font-size: 28px; }
  .v3-persona-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .v3-help { grid-template-columns: minmax(0,1fr); }
  .v3-filter-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 640px) {
  .v3-searchrow { flex-direction: column; }
  .v3-searchbtn { width: 100%; }
  .v3-persona-grid { grid-template-columns: minmax(0,1fr); }
  .v3-filter-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .v3-hero-title { font-size: 24px; }
}

/* ===================================================================
   2) 호환 셰임 — v1 이 마크업 안에서 들고 있던 Bootstrap 최소 셰임을
      v3 에서는 여기서 제공한다(.card/.btn/.form-control).
   =================================================================== */
body.kd-v3 .card { background: var(--v3-card); border: 1px solid var(--v3-line); border-radius: 14px; box-shadow: none; color: var(--v3-ink); }
body.kd-v3 .card-body { padding: 16px 18px; }
body.kd-v3 .card-header { padding: 12px 16px; border-bottom: 1px solid var(--v3-line); }
body.kd-v3 .mb-2 { margin-bottom: 8px; }
body.kd-v3 .mb-3 { margin-bottom: 14px; }
body.kd-v3 .p-3 { padding: 14px; }
body.kd-v3 .form-control {
  padding: 9px 12px; border: 1px solid var(--v3-line); border-radius: 10px; font: inherit;
  background: var(--v3-card); color: var(--v3-ink); box-sizing: border-box; max-width: 100%;
}
body.kd-v3 .form-control:focus { outline: none; border-color: var(--v3-brand); box-shadow: 0 0 0 3px rgba(79,70,229,.12); }
body.kd-v3 textarea.form-control { vertical-align: top; }
body.kd-v3 .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 9px 16px; border-radius: 10px; border: 1px solid transparent; cursor: pointer;
  font: inherit; font-weight: 700; line-height: 1.4;
}
body.kd-v3 .btn-sm { padding: 7px 12px; font-size: 13px; border-radius: 9px; }
body.kd-v3 .btn-primary { background: var(--v3-brand); color: #fff; }
body.kd-v3 .btn-primary:hover { background: var(--v3-brand-d); }
body.kd-v3 .btn-success { background: var(--v3-ok); color: #fff; }
body.kd-v3 .btn-info { background: var(--v3-blue); color: #fff; }
body.kd-v3 .btn-warning { background: var(--v3-warn); color: #231a05; }
body.kd-v3 .btn-secondary { background: var(--v3-card2); color: var(--v3-ink2); border-color: var(--v3-line); }
body.kd-v3 .btn-outline-secondary { background: var(--v3-card); color: var(--v3-ink2); border-color: var(--v3-line); }

/* 검색줄: 전역 버튼/인풋 규칙에 밀리지 않도록 고정 */
body.kd-v3 .v3-searchrow > #keywordInput { flex: 1 1 auto !important; width: auto !important; min-width: 0 !important; }
body.kd-v3 .v3-searchrow > .v3-searchbtn { flex: 0 0 auto !important; width: auto !important; min-height: 0 !important; }
body.kd-v3 .v3-chips .v3-chip,
body.kd-v3 .v3-filter-presets .v3-preset { width: auto !important; flex: 0 0 auto !important; min-height: 0 !important; }
body.kd-v3 .v3-persona { width: auto !important; }

/* ===================================================================
   3) 다크 모드 — v1 기능 조각까지 직접 지정
      (문서가 quirks 모드라 표는 색을 상속하지 않으므로 직접 지정한다)
   =================================================================== */
body.kd-v3.theme-dark { color: var(--v3-ink); }
body.kd-v3.theme-dark .form-control,
body.kd-v3.theme-dark textarea,
body.kd-v3.theme-dark input[type="text"],
body.kd-v3.theme-dark input[type="number"] { background: var(--v3-card2) !important; color: var(--v3-ink) !important; border-color: var(--v3-line) !important; }
body.kd-v3.theme-dark input::placeholder,
body.kd-v3.theme-dark textarea::placeholder { color: #7c8aa3 !important; opacity: 1; }

body.kd-v3.theme-dark #filterTable,
body.kd-v3.theme-dark #filterTable tr,
body.kd-v3.theme-dark #filterTable td,
body.kd-v3.theme-dark #filterTable th { background: var(--v3-card) !important; color: var(--v3-ink) !important; border-color: var(--v3-line) !important; }
body.kd-v3.theme-dark #filterTable th { background: var(--v3-card2) !important; }
body.kd-v3.theme-dark #filterTable tbody tr:hover td { background: #1b2540 !important; }
body.kd-v3.theme-dark #pcArea table, body.kd-v3.theme-dark #pcArea td, body.kd-v3.theme-dark #pcArea th,
body.kd-v3.theme-dark #mobileArea table, body.kd-v3.theme-dark #mobileArea td, body.kd-v3.theme-dark #mobileArea th {
  background: var(--v3-card) !important; color: var(--v3-ink) !important; border-color: var(--v3-line) !important;
}
body.kd-v3.theme-dark .keyword-box,
body.kd-v3.theme-dark .box-container > div,
body.kd-v3.theme-dark .keyword-list-container,
body.kd-v3.theme-dark .keyword-header { background: var(--v3-card) !important; color: var(--v3-ink) !important; border-color: var(--v3-line) !important; }
body.kd-v3.theme-dark .keyword-item, body.kd-v3.theme-dark .keyword-item-text { color: var(--v3-ink2) !important; }
body.kd-v3.theme-dark .combiner-label, body.kd-v3.theme-dark .combiner-count,
body.kd-v3.theme-dark .combiner-option-label, body.kd-v3.theme-dark .combiner-option-group-title { color: var(--v3-ink2) !important; }
body.kd-v3.theme-dark .combiner-option-group { background: var(--v3-card2) !important; border-color: var(--v3-line) !important; }
body.kd-v3.theme-dark .combiner-quick-btn,
body.kd-v3.theme-dark .combiner-font-btn,
body.kd-v3.theme-dark .combiner-close-btn,
body.kd-v3.theme-dark .km-fold-btn { background: var(--v3-card2) !important; color: var(--v3-ink2) !important; border-color: var(--v3-line) !important; }
body.kd-v3.theme-dark .combiner-body .mb-3 > div { color: var(--v3-mute) !important; }
body.kd-v3.theme-dark .combiner-body .mb-3 > div strong { color: var(--v3-ink) !important; }
body.kd-v3.theme-dark .button-settings-content { background: var(--v3-card) !important; color: var(--v3-ink) !important; }
body.kd-v3.theme-dark .button-settings-header h3,
body.kd-v3.theme-dark .button-form h4,
body.kd-v3.theme-dark .button-form-group label { color: var(--v3-ink) !important; }
body.kd-v3.theme-dark .button-list-item { background: var(--v3-card2) !important; border-color: var(--v3-line) !important; color: var(--v3-ink2) !important; }
body.kd-v3.theme-dark .saved-keyword-item { background: var(--v3-card2) !important; color: var(--v3-ink2) !important; }
body.kd-v3.theme-dark .rate-legend { color: var(--v3-mute) !important; }
body.kd-v3.theme-dark .toast-msg { background: #1f2a44 !important; color: var(--v3-ink) !important; }
body.kd-v3.theme-dark .v3-chip,
body.kd-v3.theme-dark .v3-preset { background: var(--v3-card2); color: var(--v3-ink2); border-color: var(--v3-line); }
body.kd-v3.theme-dark .v3-chip:hover,
body.kd-v3.theme-dark .v3-preset:hover { background: #1e2744; color: #c7d2fe; border-color: #4f46e5; }

/* 커스텀 키워드 접힘 */
body.kd-v3 #fixedSet.km-collapsed textarea,
body.kd-v3 #fixedSet.km-collapsed #btnAddBox { display: none !important; }

/* 표가 넘칠 때 가로 스크롤(표 자체는 넓게 유지) */
body.kd-v3 .table-responsive { overflow-x: auto; border: 1px solid var(--v3-line); border-radius: 12px; }
body.kd-v3 #filterTable { min-width: 1050px; background: var(--v3-card); }
body.kd-v3 #pcArea:empty, body.kd-v3 #mobileArea:empty { display: none !important; }

/* 검색 버튼 크기(셰임 .btn 뒤에 와야 함) */
body.kd-v3 .v3-searchrow > .v3-searchbtn { padding: 0 34px !important; height: 60px; border-radius: 15px; border: 0; font-size: 17px; }

/* ===================================================================
   4) 마지막 정리 — 앞 규칙/레거시 !important 보다 뒤에 와야 하는 것들
   =================================================================== */
/* 검색 입력창 */
body.kd-v3 #searchForm #keywordInput {
  height: 60px !important; padding: 0 20px 0 52px !important; font-size: 17px !important;
  border: 2px solid #cfd8ec !important; border-radius: 15px !important; min-height: 60px !important;
}
body.kd-v3.theme-dark #searchForm #keywordInput { border-color: #2c3a57 !important; }
body.kd-v3 #searchForm #keywordInput:focus { border-color: var(--v3-brand) !important; box-shadow: 0 0 0 4px rgba(79,70,229,.14) !important; }

/* 키워드 조합: v3 에서는 떠 있는 창이 아니라 본문에 그대로 둔다 */
body.kd-v3 #keywordCombiner {
  position: static !important; width: 100% !important; max-width: none !important;
  max-height: none !important; overflow: visible !important; left: auto !important; top: auto !important;
  transform: none !important; z-index: auto !important; margin: 0 !important;
}
body.kd-v3 .combiner-inline-container { background: transparent !important; border: 0 !important; padding: 0 !important; }
body.kd-v3 .combiner-textboxes-row { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 14px !important; }
body.kd-v3 .combiner-textbox-col { min-width: 0 !important; width: auto !important; flex: none !important; }
body.kd-v3 .combiner-textbox { width: 100% !important; min-height: 130px !important; height: 130px !important; padding: 11px !important; }
body.kd-v3 .combiner-quick-btns { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
body.kd-v3 .combiner-options { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 12px !important; }
body.kd-v3 .combiner-option-group { background: var(--v3-card2) !important; border: 1px solid var(--v3-line) !important; border-radius: 10px !important; padding: 11px !important; }
body.kd-v3 .combiner-select-all-top { background: var(--v3-brand-l) !important; border: 1px solid var(--v3-line) !important; border-radius: 10px !important; padding: 9px 12px !important; margin: 10px 0 !important; }
body.kd-v3 .combiner-select-all-top label { color: var(--v3-brand-d) !important; }
body.kd-v3 .combiner-result { width: 100% !important; min-height: 110px !important; }
body.kd-v3 .combiner-footer { padding: 10px 16px !important; border-top: 1px solid var(--v3-line); }
body.kd-v3 #keywordCombiner .card-header { cursor: default !important; }

/* 최소화 아이콘 — 오른쪽 아래 작은 알약 */
body.kd-v3 .summary-minimized-icon,
body.kd-v3 .combiner-minimized-icon {
  position: fixed !important; right: 16px !important; left: auto !important; top: auto !important;
  z-index: 9990 !important; padding: 9px 14px !important; border-radius: 999px !important;
  background: var(--v3-card) !important; border: 1px solid var(--v3-line) !important;
  color: var(--v3-ink2) !important; box-shadow: var(--v3-shadow) !important; font-weight: 700 !important;
}
body.kd-v3 .summary-minimized-icon { bottom: 16px !important; }
body.kd-v3 .combiner-minimized-icon { bottom: 62px !important; }

/* 수집 박스(검색 전 안내 영역) */
body.kd-v3 .box-container { display: grid !important; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
body.kd-v3 .box-container > div { min-width: 0 !important; width: auto !important; max-width: none !important; border-radius: 12px !important; border: 1px solid var(--v3-line) !important; }
body.kd-v3 .combiner-select-all-top label,
body.kd-v3 .combiner-select-all-top label span { color: var(--v3-brand-d) !important; font-size: 13.5px !important; font-weight: 800 !important; }
body.kd-v3.theme-dark .combiner-select-all-top label,
body.kd-v3.theme-dark .combiner-select-all-top label span { color: #c7d2fe !important; }

/* /keyword/{kw} SEO 랜딩용 축소 히어로 */
.v3-hero.v3-compact { grid-template-columns: minmax(0,1fr) 300px; }
.v3-hero.v3-compact .v3-hero-body { padding: 24px 26px 22px; }
.v3-hero.v3-compact .v3-hero-title { font-size: 25px; margin-bottom: 8px; }
.v3-hero.v3-compact .v3-hero-desc { display: none; }
.v3-hero.v3-compact .v3-hero-media { min-height: 200px; }
@media (max-width: 980px) { .v3-hero.v3-compact { grid-template-columns: minmax(0,1fr); } .v3-hero.v3-compact .v3-hero-media { display: none; } }
