/* 전사 현황판(hq.js) — 스마트강원 관제 무대(gangwon.css)·의정중계(council.css)의 패널을 그대로 쓰고 여기서는 고유 모양만 */
.hq-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--c); box-shadow: 0 0 8px var(--c); margin-right: 7px; flex: none; vertical-align: 0; }
.hq .ge td.bad, .hq .ge td .bad, .hq em.bad { color: #ff6d84; font-style: normal; } .hq b.warn { color: #ffc53d; }

/* 첫 화면 배치 */
.hq-main { height: 100%; display: grid; grid-template-columns: 430px minmax(0, 1fr) 430px; gap: 16px; }
.hq-main .gm-col { position: static; width: auto; }
.hq-center { display: flex; flex-direction: column; gap: 12px; min-height: 0; }
.hq-center .gm-kpis { position: static; gap: 8px; }
.hq .gmk { flex: 1; min-width: 0; grid-template-columns: 38px auto; padding: 7px 10px 7px 8px; column-gap: 8px; }
.hq .gmk .ic { width: 36px; height: 36px; } .hq .gmk .ic svg { width: 20px; height: 20px; }
.hq .gmk b { font-size: 26px; } .hq .gmk > span:last-child { font-size: 12px; white-space: nowrap; }

/* 사업 신호등 */
.hq-sig { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.hq-sig div { padding: 8px 10px; border-top: 3px solid var(--c); background: color-mix(in srgb, var(--c) 12%, transparent); text-align: center; }
.hq-sig b { display: block; font-family: var(--num); font-size: 30px; color: #fff; } .hq-sig span { font-size: 12.5px; color: #b6d2ee; }
.hq-prh, .hq-pr { display: grid; grid-template-columns: 18px minmax(0, 1fr) 46px 34px; gap: 6px; align-items: center; }
.hq-prh { font-size: 11.5px; color: #6f95bd; padding: 0 8px; } .hq-prh span:nth-child(n+3) { text-align: right; }
.hq-prl { flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 3px; }
.hq-pr { padding: 6px 8px; border-radius: 3px; text-decoration: none; }
.hq-pr:hover { background: rgba(70, 200, 255, .12); }
.hq-pr .n { min-width: 0; } .hq-pr .n b { display: block; font-size: 13.5px; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hq-pr .n small { display: block; font-size: 11.5px; color: #7f9cbc; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hq-pr .t, .hq-pr .f { text-align: right; font-family: var(--num); font-size: 15px; color: #dcecff; } .hq-pr .f.bad { color: #ff8a9c; }

/* 사업 지도 */
.hq-center > .gp-panel.grow .gp-body { position: relative; }
.hq-map { flex: 1; min-height: 0; display: flex; } .hq-map svg { width: 100%; height: 100%; }
/* 가운데 패널: 입자 구체 ↔ 지도 */
.hq-cv { flex: 1; min-height: 0; display: flex; position: relative; }
.hq-cv[data-mode="orb"] .hq-map, .hq-cv[data-mode="orb"] .gm-tip, .hq-cv[data-mode="map"] .hq-orb { display: none; }
.hq-orb { flex: 1; width: 100%; height: 100%; min-height: 0; display: block; }
.hq-sw { position: absolute; top: 0; right: 0; z-index: 2; display: flex; border: 1px solid rgba(70, 227, 255, .35); border-radius: 6px; overflow: hidden; }
.hq-sw button { background: rgba(8, 28, 56, .7); color: #8fb3d6; border: 0; padding: 4px 12px; font: inherit; font-size: 12px; cursor: pointer; }
.hq-sw button + button { border-left: 1px solid rgba(70, 227, 255, .25); }
.hq-sw button.on { background: rgba(45, 212, 191, .18); color: #e6fffa; font-weight: 700; }
.hq-gw .gw-sgg path.none { fill: rgba(20, 50, 90, .25); stroke: rgba(127, 220, 255, .35); }
.hq-gw .gw-nodes .node:not(.st-주의):not(.st-집중) .dot { opacity: .5; }
.hq-badge circle { fill: #0b2448; stroke: #46e3ff; stroke-width: 1.5; }
.hq-badge text { fill: #fff; font: 700 14px var(--num); pointer-events: none; }
#hq-tip dl { grid-template-columns: auto auto; } #hq-tip dt { color: #dcecff; display: flex; align-items: center; } #hq-tip dd { font-size: 13px; }

/* 이번 주 */
.hq-week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; height: 120px; }
.hq-week > div { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.hq-week .b { position: relative; flex: 1; width: 30px; background: rgba(120, 180, 255, .08); }
.hq-week .b i { position: absolute; left: 0; right: 0; bottom: 0; background: linear-gradient(0deg, rgba(60, 200, 255, .25), #3cc8ff); }
.hq-week .b i.d { background: linear-gradient(0deg, rgba(46, 230, 166, .3), #2ee6a6); }
.hq-week b { font-family: var(--num); font-size: 16px; color: #fff; } .hq-week small { font-size: 11.5px; color: #8fb4d8; }

/* 인원별 오늘 진행 */
.hq-st { display: flex; flex-direction: column; gap: 4px; overflow-y: auto; }
.hq-sr { display: grid; grid-template-columns: 96px 1fr 44px 24px; gap: 8px; align-items: center; padding: 4px 6px; text-decoration: none; border-radius: 3px; }
.hq-sr:hover { background: rgba(70, 200, 255, .1); }
.hq-sr .n { font-size: 13.5px; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .hq-sr .n small { margin-left: 5px; font-size: 11px; color: #7f9cbc; }
.hq-sr .bar { display: flex; height: 10px; background: rgba(120, 180, 255, .08); }
.hq-sr .bar i.done { background: #2ee6a6; } .hq-sr .bar i.doing { background: #ffc53d; } .hq-sr .bar i.wait { background: #3cc8ff; opacity: .55; }
.hq-sr .v { text-align: right; font-family: var(--num); font-size: 14px; color: #dcecff; }
.hq-sr .l em { font-style: normal; display: inline-block; min-width: 20px; padding: 0 5px; border-radius: 9px; background: #ff4d6a; color: #fff; font: 700 11px/18px var(--num); text-align: center; }

/* 사업 현황 표 */
.hq-pt tbody tr { cursor: pointer; }
.hq-pt td:first-child { white-space: nowrap; }

/* 인원·기본 배치표 */
.hq-mx-wrap { flex: 1; }
.hq-mx { width: auto; min-width: 100%; }
.hq-mx th, .hq-mx td { text-align: center; padding: 6px 4px; }
.hq-mx thead th { position: sticky; top: 0; z-index: 2; background: #0d2a52; min-width: 54px; }
.hq-mx thead tr.sum th { top: 44px; background: #0a2142; }
.hq-mx thead th span { display: block; color: #fff; font-size: 13px; } .hq-mx thead th small { display: block; font-size: 10.5px; color: #8fb4d8; font-weight: 500; }
.hq-mx thead tr.sum b { display: block; font-family: var(--num); font-size: 16px; color: #fff; }
.hq-mx .pn { position: sticky; left: 0; z-index: 1; text-align: left; background: #0b2448; min-width: 300px; max-width: 360px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hq-mx thead .pn { z-index: 3; }
.hq-mx .pnc { display: flex; align-items: center; min-width: 0; }
.hq-mx .pn a { color: #dcecff; text-decoration: none; overflow: hidden; text-overflow: ellipsis; } .hq-mx .pn a:hover { color: #46e3ff; }
.hq-mx td.cell { font-weight: 700; font-size: 13px; color: #fff; border-left: 1px solid rgba(70, 180, 255, .08); }
.hq-mx td.cell.can { cursor: pointer; } .hq-mx td.cell.can:hover { outline: 1px solid #46e3ff; outline-offset: -1px; }
.hq-mx td.r-PM { background: rgba(155, 123, 255, .35); } .hq-mx td.r-정 { background: rgba(46, 230, 166, .35); }
.hq-mx td.r-부 { background: rgba(60, 200, 255, .3); } .hq-mx td.r-지원 { background: rgba(120, 180, 255, .12); color: #b6d2ee; }

/* 사업 상세 */
.hq-de { grid-template-columns: 420px minmax(0, 1fr) 380px; }
.hq-big { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; padding: 10px 12px; background: rgba(40, 120, 220, .12); }
.hq-big b { font-size: 22px; color: #fff; } .hq-big span { flex-basis: 100%; font-size: 13px; color: #b6d2ee; }
.hq-kv { display: grid; grid-template-columns: 110px 1fr; gap: 7px 10px; margin: 0; font-size: 13.5px; overflow-y: auto; }
.hq-kv dt { color: #8fb4d8; } .hq-kv dd { margin: 0; color: #e6f2ff; }
.hq-dk { grid-template-columns: repeat(6, 1fr); }
