/*
Theme Name: 3KDEX Child
Template: blocksy
Description: 3KDEX(3kdex.com) 도감 프론트 — Blocksy 자식 테마. 인물·회차·세력 목록/상세.
Version: 0.7.0
Text Domain: 3kdex
*/

/* ===== 인물 목록 ===== */
.kdex-filter { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 24px; padding:16px; border:1px solid var(--theme-border-color,#e0e0e0); border-radius:10px; align-items:center; }
.kdex-filter select, .kdex-filter input[type=search] { padding:8px 12px; border:1px solid #ccc; border-radius:6px; min-width:140px; }
.kdex-filter button { padding:8px 18px; border:0; border-radius:6px; background:#8a2f2f; color:#fff; cursor:pointer; }
.kdex-filter .kdex-count { margin-left:auto; opacity:.7; font-size:.9em; }

.kdex-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:16px; margin:0; padding:0; list-style:none; }
.kdex-card { border:1px solid var(--theme-border-color,#e0e0e0); border-radius:12px; padding:18px; transition:box-shadow .15s; }
.kdex-card:hover { box-shadow:0 4px 14px rgba(0,0,0,.08); }
.kdex-card a { text-decoration:none; color:inherit; display:block; }
.kdex-card .kdex-name { font-size:1.15em; font-weight:700; margin:0 0 2px; }
.kdex-card .kdex-hanja { opacity:.6; font-size:.92em; margin:0 0 10px; }
.kdex-badges { display:flex; flex-wrap:wrap; gap:6px; }
.kdex-badge { font-size:.78em; padding:3px 9px; border-radius:20px; background:#f0f0f0; }
.kdex-badge.f-wei { background:#e8eefc; color:#1d4ed8; }
.kdex-badge.f-shu { background:#e9f7ec; color:#15803d; }
.kdex-badge.f-wu  { background:#fdeeee; color:#b91c1c; }
.kdex-badge.a-both { background:#f5eeda; color:#92700c; }

/* ===== 인물 상세 ===== */
.kdex-profile { display:grid; grid-template-columns:1fr; gap:20px; margin-bottom:32px; }
@media (min-width:768px){ .kdex-profile { grid-template-columns:2fr 3fr; } }
.kdex-profile-card { border:1px solid var(--theme-border-color,#e0e0e0); border-radius:12px; padding:22px; }
.kdex-profile-card h3 { margin-top:0; font-size:1em; opacity:.6; letter-spacing:.05em; }
.kdex-profile-card table { width:100%; border-collapse:collapse; }
.kdex-profile-card th { text-align:left; padding:7px 10px 7px 0; width:34%; opacity:.65; font-weight:600; vertical-align:top; }
.kdex-profile-card td { padding:7px 0; }
.kdex-names-list span { display:inline-block; margin:0 8px 6px 0; padding:3px 10px; background:#f5f5f5; border-radius:6px; font-size:.9em; }
.kdex-chapters a { display:inline-block; margin:0 6px 6px 0; padding:4px 10px; border:1px solid #ddd; border-radius:6px; font-size:.85em; text-decoration:none; }

@media (prefers-color-scheme: dark) {
  .kdex-filter, .kdex-card, .kdex-profile-card { border-color:#3a4150; }
  .kdex-badge { background:#2a2f3a; }
  .kdex-names-list span { background:#2a2f3a; }
}

/* ===== 회차 리딩 ===== */
.kdex-ch-type { display:inline-block; margin:0 0 6px; }
.kdex-chapter h1 { margin:.1em 0; }
.kdex-ch-couplet { font-size:1.1em; opacity:.75; margin:.2em 0 1em; }
.kdex-ch-stats { display:flex; gap:16px; flex-wrap:wrap; padding:12px 0; border-top:1px solid var(--theme-border-color,#e0e0e0); border-bottom:1px solid var(--theme-border-color,#e0e0e0); font-size:.9em; opacity:.85; margin-bottom:20px; }
.kdex-chapter h3 { margin:22px 0 10px; }
a.kdex-badge { text-decoration:none; }
a.kdex-badge:hover { background:#8a2f2f; color:#fff; }
.kdex-reading-placeholder { margin-top:24px; padding:18px; border:1px dashed var(--theme-border-color,#ccc); border-radius:10px; opacity:.7; font-size:.92em; }
.kdex-ch-nav { display:flex; margin-top:32px; padding-top:16px; border-top:1px solid var(--theme-border-color,#e0e0e0); gap:12px; }
.kdex-ch-nav a { text-decoration:none; padding:8px 12px; border:1px solid var(--theme-border-color,#e0e0e0); border-radius:8px; }

.kdex-reading-tabs { display:flex; gap:8px; margin:16px 0 24px; }
.kdex-reading-tabs a { padding:10px 18px; border:1px solid var(--theme-border-color,#e0e0e0); border-radius:8px; text-decoration:none; }
.kdex-reading-tabs a.active { background:#8a2f2f; color:#fff; border-color:#8a2f2f; }
.kdex-reading-list { margin:0; padding:0; list-style:none; counter-reset:none; }
.kdex-reading-list li { border-bottom:1px solid var(--theme-border-color,#eee); }
.kdex-reading-list a { display:flex; align-items:baseline; gap:12px; padding:12px 6px; text-decoration:none; }
.kdex-reading-list a:hover { background:rgba(138,47,47,.05); }
.kdex-rl-title { font-weight:600; min-width:130px; }
.kdex-rl-sub { opacity:.6; font-size:.9em; flex:1; }
.kdex-rl-meta { opacity:.5; font-size:.82em; white-space:nowrap; }

/* ===== 세력 ===== */
.kdex-fgroup { margin:34px 0 14px; font-size:1.25em; border-left:4px solid #8a2f2f; padding-left:10px; }
.kdex-fgroup small { opacity:.55; font-weight:400; font-size:.75em; }

/* ===== 확인 상태(review) — 정의서 06 ===== */
.kdex-rv { display:inline-block; margin-left:6px; padding:1px 7px; border-radius:10px; font-size:.72em; font-weight:600; vertical-align:middle; }
.kdex-rv-draft { background:#fff4d6; color:#8a6100; border:1px dashed #d9a400; }
.kdex-rv-disputed { background:#f3e8ff; color:#6b21a8; }
.kdex-badge.is-draft { background:transparent; border:1px dashed #b8b8b8; opacity:.8; }
.kdex-rv-legend { font-size:.85em; opacity:.7; margin:4px 0 10px; }
@media (prefers-color-scheme: dark) {
  .kdex-rv-draft { background:#3a3016; color:#f2c94c; border-color:#8a6d1a; }
  .kdex-badge.is-draft { border-color:#5a6170; }
}

/* 특이사항 — 정의서 07 */
.kdex-remark { font-size:.9em; line-height:1.5; }
