/* ov.css — overwatch */
.ow { height: 520px; }
.ow [data-ov="map"] { position: absolute; inset: 0; background: #050608; }
.ow .leaflet-control-attribution { background: rgba(5,6,8,.7); color: #8f887b; font: 9px/1.4 var(--t-mono); }
.ow .leaflet-control-attribution a { color: #b3ac9e; }
.ow .leaflet-control-scale-line { background: rgba(5,6,8,.6); color: #ece8de; border-color: #ece8de; font: 9px var(--t-mono); }
.ow .leaflet-control-zoom a { background: rgba(5,6,8,.85); color: #ece8de; border-color: rgba(236,232,222,.2); border-radius: 0 !important; }
.ow-hud { position: absolute; z-index: 600; font: 500 10px/1.5 var(--t-mono); letter-spacing: .12em; color: #ece8de; text-shadow: 0 1px 6px #000; pointer-events: none; text-transform: uppercase; }
.ow-hud.bl { left: 12px; bottom: 34px; } .ow-hud.tl2 { left: 12px; top: 28px; color: #e0283f; }
.ov-ac i { position: absolute; left: 1px; top: 0; width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-bottom: 14px solid #fff; filter: drop-shadow(0 0 2px #000); }
.ov-ac span, .ov-sv span, .ov-cam span, .ov-lbl span { position: absolute; left: 14px; top: -3px; white-space: nowrap; font: 500 9px/1.25 var(--t-mono); color: #fff; text-shadow: 0 1px 3px #000, 0 0 2px #000; letter-spacing: .04em; }
.ov-sv span { color: #8fc0d2; left: 6px; top: -4px; }
.ov-cam i { position: absolute; inset: 0; background: #7fd1a8; box-shadow: 0 0 0 1px #000; }
.ov-cam span { color: #7fd1a8; left: 10px; top: -2px; font-size: 8.5px; }
.ov-lbl span { color: #ffb3b9; left: 8px; }
.ov-lbl.fresh span { color: #fff; background: #e0283f; padding: 1px 3px; text-shadow: none; animation: ovblink 1s steps(2) 6; }
@keyframes ovblink { 50% { opacity: .2; } }
.ov-tag { pointer-events: none; }
.ov-tag b, .ov-tag span { display: block; white-space: nowrap; font: 500 9px/1.35 var(--t-mono); color: #fff; letter-spacing: .06em; text-shadow: 0 1px 3px #000; }
.ov-tag b { color: #e0283f; font-weight: 600; }
.ov-tag { width: auto !important; height: auto !important; background: rgba(5,6,8,.72); padding: 5px 7px; border-left: 2px solid #e0283f; }
[data-ov="layers"] { margin-top: 12px; border: 1px solid var(--t-hair2); background: rgba(17,17,21,.72); padding: 12px 14px; }
.ov-pre { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; padding-bottom: 10px; border-bottom: 1px solid var(--t-hair); }
.ov-k { font: 500 10px/1 var(--t-mono); letter-spacing: .2em; text-transform: uppercase; color: #e0283f; margin-right: 4px; }
.ov-pre button { background: none; border: 0; padding: 0; min-height: 36px; color: var(--t-muted); font: 500 11px/1 var(--t-mono); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; border-bottom: 1px solid transparent; }
.ov-pre button[aria-pressed="true"], .ov-pre button:hover { color: var(--t-ink); border-bottom-color: #e0283f; }
.ov-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 18px; margin-top: 8px; }
@media (min-width: 900px) { .ov-groups { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.ov-groups fieldset { border: 0; margin: 0; padding: 6px 0; min-width: 0; }
.ov-groups legend { font: 500 9.5px/1 var(--t-mono); letter-spacing: .2em; color: var(--t-dim); padding: 0 0 6px; }
.ov-groups label { display: flex; align-items: center; gap: 8px; min-height: 32px; font: 12px/1.25 var(--t-mono); color: var(--t-ink); cursor: pointer; }
.ov-groups input { appearance: none; -webkit-appearance: none; width: 13px; height: 13px; border: 1px solid var(--t-muted); margin: 0; flex: none; background: transparent; }
.ov-groups input:checked { background: #e0283f; border-color: #e0283f; box-shadow: inset 0 0 0 2px #0b0b0d; }
.ov-groups label span { flex: 1 1 auto; min-width: 0; }
.ov-groups label b { font: 500 10px/1 var(--t-mono); color: var(--t-dim); }
.grid-ow { display: grid; gap: 18px; margin-top: 18px; }
@media (min-width: 900px) { .grid-ow { grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); } .ow { height: 680px; } }
[data-ov="tele"], [data-ov="idx"] { margin: 0; }
[data-ov="tele"] > div { display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--t-hair); }
[data-ov="tele"] dt, [data-ov="idx"] dt { font: 500 9.5px/1.5 var(--t-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--t-dim); }
[data-ov="tele"] dd { margin: 0; font: 500 12px/1.4 var(--t-mono); color: var(--t-ink); overflow-wrap: anywhere; }
[data-ov="idx"] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--t-hair2); border-bottom: 1px solid var(--t-hair2); }
[data-ov="idx"] > div { padding: 9px 8px 9px 0; }
[data-ov="idx"] dd { margin: 4px 0 0; font: 500 12px/1 var(--t-mono); color: var(--t-muted); }
[data-ov="idx"] dd b { font: 500 26px/1 var(--t-display); color: var(--t-ink); margin-right: 4px; }
.ov-hist { display: flex; align-items: flex-end; gap: 2px; height: 56px; margin-top: 12px; }
.ov-hist i { flex: 1; background: rgba(241,239,233,.45); min-height: 2px; }
.ov-hist i.now { background: #e0283f; }
.ov-hax { display: flex; justify-content: space-between; font: 9px/1 var(--t-mono); letter-spacing: .14em; color: var(--t-dim); margin-top: 5px; }
.ov-tbl { width: 100%; border-collapse: collapse; margin-top: 12px; font: 11.5px/1.3 var(--t-mono); font-variant-numeric: tabular-nums; }
.ov-tbl th { text-align: left; font-weight: 500; font-size: 9px; letter-spacing: .14em; text-transform: uppercase; color: var(--t-dim); padding: 0 8px 7px 0; border-bottom: 1px solid var(--t-hair2); white-space: nowrap; }
.ov-tbl td { padding: 7px 8px 7px 0; border-bottom: 1px solid var(--t-hair); color: var(--t-ink); white-space: nowrap; }
.ov-tbl tr.fresh td { background: rgba(224,40,63,.14); }
.st { font-size: 9.5px; letter-spacing: .1em; padding: 2px 4px; border: 1px solid currentColor; }
.st-open { color: #ff5a66; } .st-monitoring { color: #e8a04a; } .st-contained { color: #8f887b; } .st-referred { color: #a98ee6; }
.ov-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 640px) { .ov-tbl .hide-s { display: none; } }
[data-ov="log"] { list-style: none; margin: 12px 0 0; padding: 0; font: 11px/1.45 var(--t-mono); color: var(--t-muted); }
[data-ov="log"] li { padding: 5px 0; border-bottom: 1px solid var(--t-hair); }
[data-ov="log"] li[data-k="new"] { color: #ff8a93; }
[data-ov="log"] time { color: var(--t-dim); margin-right: 10px; }
.grid-ow, .grid-aw, .grid-asc, .grid-loc, .grid-cmp { grid-template-columns: minmax(0, 1fr); }
.grid-ow > *, .grid-aw > *, .grid-asc > *, .grid-loc > *, .grid-cmp > * { min-width: 0; }
@media (min-width: 900px) { .grid-ow { grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); } .grid-aw { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr); } .grid-asc { grid-template-columns: repeat(2, minmax(0, 1fr)); } .grid-loc { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) 260px; } .grid-cmp { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 1fr); } }
@media (max-width: 640px) {
  .ov-cam span { display: none; }
  .ov-cam i { width: 5px; height: 5px; }
  .ow { height: 560px; }
  .ow .gev-hud.tl { right: 90px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .ow-hud.tl2 { top: 30px; }
  .ov-ac span { font-size: 8px; }
}
