/* Sentinel 관리 화면 style.css 에서 가져온 색 토큰과 세계지도 규칙 */
:root{
  --bg:#0b0e13; --surface:#111419; --surface2:#161a21; --surface3:#1c222b;
  --line:rgba(255,255,255,.065); --line2:rgba(255,255,255,.115);
  --hover:rgba(255,255,255,.035); --sunken:rgba(0,0,0,.22);
  --text:#e4e7ec; --text2:#99a2ae; --muted:#68717e;
  --accent:#3b74d6; --accent2:#2f9e77;
  --info:#3b74d6; --low:#7b8494; --medium:#c2952c; --high:#c96f3c; --critical:#cf5250;
  --good:#2f9e77; --warn:#c2952c; --crit:#cf5250;
  --accent-soft:rgba(59,116,214,.13);
  --ease:cubic-bezier(.4,0,.2,1);
  --radius:10px; --radius-sm:6px;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --font:"Twemoji Country Flags",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",Roboto,sans-serif;
}
.ico{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.geo-wrap{display:flex;gap:16px;align-items:stretch;flex-wrap:wrap}
.geo-map{position:relative;flex:2.4 1 460px;min-width:0;align-self:flex-start}
.geo-map svg{width:100%;height:auto;display:block;overflow:visible}
.geo-c{fill:#1d242e;stroke:var(--bg);stroke-width:.5;transition:fill .5s var(--ease),filter .2s}
.geo-c:hover,.geo-dot:hover{stroke:var(--text2);stroke-width:1}
.geo-dot{fill:transparent;stroke:none}
.geo-dot.on{stroke:var(--bg);stroke-width:.8}
.geo-c.hit,.geo-dot.hit{animation:geoHit .9s var(--ease)}
@keyframes geoHit{0%{filter:brightness(2.2) saturate(1.3)}100%{filter:none}}
.geo-arc,.geo-arc-bg{fill:none;stroke-linecap:round;pointer-events:none}
.geo-arc{stroke-width:2;filter:drop-shadow(0 0 3px currentColor)}
.geo-arc-bg{stroke-width:1;opacity:.28}
.geo-head{pointer-events:none;filter:drop-shadow(0 0 4px #fff)}
.geo-src{fill:none;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:geoRing 1.1s var(--ease) forwards;pointer-events:none}
@keyframes geoRing{0%{transform:scale(.2);opacity:1}100%{transform:scale(1.8);opacity:0}}
#geoFx g.done path{transition:opacity .7s var(--ease);opacity:0}
.geo-target text{fill:var(--text2);font-size:11px;font-weight:600;paint-order:stroke;stroke:var(--bg);stroke-width:3px}
.geo-target-core{fill:#e4e7ec}
.geo-target-ring{fill:none;stroke:#e4e7ec;stroke-width:1.2;opacity:.5;transform-box:fill-box;transform-origin:center;animation:geoIdle 2.4s ease-out infinite}
@keyframes geoIdle{0%{transform:scale(.5);opacity:.7}100%{transform:scale(2.2);opacity:0}}
.geo-target.hit .geo-target-core{animation:geoFlash .6s var(--ease)}
@keyframes geoFlash{0%{fill:#fff;r:6}100%{fill:#e4e7ec;r:3.5}}
.geo-tip{position:absolute;z-index:5;pointer-events:none;background:var(--surface3);border:1px solid var(--line2);border-radius:var(--radius-sm);padding:7px 10px;font-size:12px;line-height:1.5;white-space:nowrap;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.geo-ticker{position:absolute;left:6px;bottom:30px;display:flex;flex-direction:column;gap:3px;pointer-events:none;max-width:70%}
.geo-tick{display:flex;align-items:center;gap:6px;font-size:11px;background:rgba(11,14,19,.72);border:1px solid var(--line);border-radius:5px;padding:2px 7px;animation:geoTick .35s var(--ease);white-space:nowrap;overflow:hidden}
.geo-tick i{width:6px;height:6px;border-radius:50%;flex:none}
.geo-tick .t{color:var(--muted);font-family:var(--mono)}
.geo-tick code{font-size:10.5px;color:var(--text2)}
.geo-tick:nth-child(n+3){opacity:.55}
@keyframes geoTick{0%{opacity:0;transform:translateY(6px)}100%{opacity:1;transform:none}}
.geo-legend{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text2);margin-top:6px}
.geo-legend i{display:block;width:140px;height:7px;border-radius:4px}
.geo-side{flex:1 1 240px;min-width:0;display:flex;flex-direction:column;gap:10px}
.geo-totals{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
.geo-totals>div{display:flex;flex-direction:column}
.geo-totals .k{font-size:10.5px;color:var(--muted);letter-spacing:.04em}
.geo-totals b{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}
.geo-totals .geo-since{grid-column:1/-1;font-size:11px}
.geo-list{display:flex;flex-direction:column;gap:2px}
.geo-row{position:relative;display:grid;grid-template-columns:18px 1fr auto 42px;gap:8px;align-items:center;padding:4px 6px;font-size:12.5px;border-radius:5px}
.geo-row .rk{color:var(--muted);font-family:var(--mono);font-size:11px}
.geo-row .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.geo-row .v{font-variant-numeric:tabular-nums;font-weight:600;text-align:right}
.geo-row .pc{text-align:right;font-size:11px}
.geo-row i{position:absolute;left:0;bottom:0;height:2px;border-radius:2px;background:var(--accent);opacity:.7}
@media (prefers-reduced-motion:reduce){.geo-target-ring{animation:none}.geo-c.hit,.geo-dot.hit{animation:none}}
@media (max-width:640px){.geo-ticker{display:none}.geo-map{flex-basis:100%}}
/* 세계지도: 기간 누적 궤적 (정적) */
@keyframes geoHit{0%{filter:brightness(2.2) saturate(1.3)}100%{filter:none}}
@keyframes geoRing{0%{transform:scale(.2);opacity:1}100%{transform:scale(1.8);opacity:0}}
@keyframes geoIdle{0%{transform:scale(.5);opacity:.7}100%{transform:scale(2.2);opacity:0}}
@keyframes geoFlash{0%{fill:#fff;r:6}100%{fill:#e4e7ec;r:3.5}}
@keyframes geoTick{0%{opacity:0;transform:translateY(6px)}100%{opacity:1;transform:none}}
.muted{color:var(--muted)}
