/* ART:READY 전형 지도 (2026-10-04) — 다이얼·우표 지도 공통 스타일. Tailwind 재빌드와 무관한 순수 CSS. */
.kgm{position:relative;width:100%;background:#fbf3e7;border:1px solid rgba(26,26,26,.12);border-radius:16px;overflow:hidden;
  background-image:radial-gradient(rgba(26,26,26,.055) 1px,transparent 1px);background-size:14px 14px}
.kgm svg{display:block;max-width:100%;height:auto;margin:0 auto;font-family:"IBM Plex Sans KR",system-ui,sans-serif;touch-action:manipulation}
.kgm .kgm-serif{font-family:"Noto Serif Display","Hahmlet",Georgia,serif;font-style:italic}
.kgm .kgm-mono{font-family:"IBM Plex Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}
.kgm path.kgm-arc{cursor:pointer;transition:opacity .25s}
.kgm path.kgm-arc.is-dim{opacity:.18}
.kgm path.kgm-ticket{stroke:#fbf3e7;stroke-width:1}
.kgm path.kgm-ticket.is-staged{stroke-dasharray:2 2;stroke:#fbf3e7}
.kgm text{pointer-events:none;user-select:none}
.kgm .kgm-dept-label{font-size:11px;font-weight:600;fill:#1a1a1a;letter-spacing:-.01em}
.kgm .kgm-ticket-label{font-size:9.5px;font-weight:600;fill:#fff}
.kgm .kgm-center{cursor:pointer}
.kgm .kgm-center-name{font-size:15px;font-weight:800;fill:#fbf3e7;letter-spacing:-.02em}
.kgm .kgm-center-sub{font-size:10px;fill:rgba(251,243,231,.72)}
.kgm .kgm-band{font-size:11px;font-weight:800;letter-spacing:.1em;fill:#1a1a1a;paint-order:stroke;stroke:#fbf3e7;stroke-width:4px;stroke-linejoin:round}
.kgm .kgm-band-line{fill:none;stroke:rgba(26,26,26,.18);stroke-dasharray:3 4}
.kgm .kgm-region{font-size:34px;fill:rgba(26,26,26,.07);font-weight:800}
.kgm .kgm-region-hull{fill:rgba(26,26,26,.025);stroke:rgba(26,26,26,.12);stroke-dasharray:4 5}
.kgm g.kgm-stamp{cursor:pointer;transition:opacity .25s}
.kgm g.kgm-stamp.is-dim{opacity:.16}
.kgm g.kgm-stamp circle.kgm-stamp-bg{fill:#fffdf8;stroke:#1a1a1a;stroke-width:1.2}
.kgm g.kgm-stamp:hover circle.kgm-stamp-bg{stroke-width:2}
.kgm .kgm-stamp-name{font-size:11px;font-weight:700;fill:#1a1a1a;text-anchor:middle}
.kgm .kgm-stamp-sub{font-size:9px;fill:rgba(26,26,26,.6);text-anchor:middle}
.kgm .kgm-stamp-n{font-size:9px;fill:rgba(26,26,26,.55);text-anchor:middle}

/* 말풍선(티켓 카드) */
.kgm-tip{position:absolute;z-index:5;max-width:min(320px,86vw);padding:12px 14px 12px;background:#fffdf8;color:#1a1a1a;border:1px solid #1a1a1a;
  border-radius:12px 12px 12px 2px;box-shadow:4px 4px 0 #1a1a1a;font-size:12.5px;line-height:1.5;pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .12s,transform .12s}
.kgm-tip.is-on{opacity:1;transform:none}
.kgm-tip .kgm-tip-k{display:inline-block;font-size:10px;letter-spacing:.12em;color:#b72119;text-transform:uppercase;margin-bottom:2px}
.kgm-tip .kgm-tip-t{font-weight:800;font-size:14px;letter-spacing:-.02em;margin:0 0 4px}
.kgm-tip .kgm-tip-row{display:flex;gap:8px;justify-content:space-between;border-top:1px dashed rgba(26,26,26,.18);padding-top:4px;margin-top:4px}
.kgm-tip .kgm-tip-row b{font-family:inherit;font-variant-numeric:tabular-nums;font-weight:700;text-align:right;min-width:0;overflow-wrap:anywhere;word-break:keep-all}/* 2026-10-06: 한글이 코드 글꼴로 띄엄띄엄·상자 밖으로 넘치던 것 → 본문 글꼴, 줄바꿈 허용 */
.kgm-tip .kgm-tip-row span:first-child{flex-shrink:0}
.kgm-tip .kgm-tip-row span:first-child{color:rgba(26,26,26,.62)}
.kgm-tip .kgm-tip-note{margin-top:6px;font-size:11px;color:rgba(26,26,26,.6)}

/* 범례 */
.kgm-legend{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:10px;font-size:12px;color:rgba(26,26,26,.75)}
.kgm-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.kgm-legend .kgm-legend-sep{width:1px;height:14px;background:rgba(26,26,26,.18)}
.kgm-legend .kgm-legend-ring{width:10px;height:10px;border-radius:50%;border:3px solid #b72119;background:#fff;box-sizing:border-box}

/* 전형 상세 패널(다이얼에서 티켓을 눌렀을 때) */
.kgm-detail{margin-top:14px;padding:16px 18px;background:#fffdf8;border:1px solid #1a1a1a;border-radius:14px;box-shadow:5px 5px 0 #1a1a1a}
.kgm-detail h3{margin:0 0 2px;font-size:17px;font-weight:800;letter-spacing:-.02em}
.kgm-detail .kgm-detail-sub{font-size:12.5px;color:rgba(26,26,26,.65);margin-bottom:10px}
.kgm-detail dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;margin:0;font-size:13px}
.kgm-detail dt{color:rgba(26,26,26,.6);white-space:nowrap}
.kgm-detail dd{margin:0;font-family:inherit;font-variant-numeric:tabular-nums;font-size:13.5px;line-height:1.6;overflow-wrap:anywhere;word-break:keep-all}
.kgm-detail .kgm-detail-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.kgm-detail .kgm-detail-acts a,.kgm-detail .kgm-detail-acts button{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid #1a1a1a;background:#fff;color:#1a1a1a;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer}
.kgm-detail .kgm-detail-acts .is-pri{background:#1a1a1a;color:#fbf3e7}

/* 지도 위 안내·빈 상태 */
.kgm-hint{position:absolute;left:12px;bottom:10px;font-size:11px;color:rgba(26,26,26,.55);background:rgba(251,243,231,.85);padding:4px 8px;border-radius:999px;pointer-events:none}
.kgm-empty{padding:48px 16px;text-align:center;color:rgba(26,26,26,.6);font-size:14px}
@media (max-width:640px){
  .kgm .kgm-dept-label{font-size:10px}
  .kgm .kgm-center-name{font-size:13px}
  .kgm .kgm-region{font-size:22px}
  .kgm-detail dl{grid-template-columns:1fr}
  .kgm-detail dt{margin-top:6px}
}
@media (prefers-reduced-motion:reduce){.kgm path.kgm-arc,.kgm g.kgm-stamp,.kgm-tip{transition:none}}
.kgm-tip .kgm-tip-hint{color:#1638e8;font-weight:700}
