/* OK2ZIL Signály – vzhled navazuje na šablonu Green Hill Web (proměnné --ghw-*), funguje i bez ní */
.ok2s {
	--s-ink: var(--ghw-ink, #202321);
	--s-text: var(--ghw-text, #2B2F2A);
	--s-muted: var(--ghw-muted, #6B705F);
	--s-acc: var(--ghw-olive, #505A38);
	--s-acc-dark: var(--ghw-olive-dark, #3A4229);
	--s-tint: var(--ghw-tint, #E9EBE0);
	--s-tint-2: var(--ghw-tint-2, #F0F1EA);
	--s-line: var(--ghw-line, #E0E2D6);
	--s-card: var(--ghw-card, #FFFFFF);
	--s-rust: #A4552F;
	--s-blue: #2F6F8F;
	--s-sea: #EEF0E8;
	--s-halo: #fff;
	color: var(--s-text);
	font-variant-numeric: tabular-nums;
}
.ok2s *, .ok2s *::before, .ok2s *::after { box-sizing: border-box; }
.ok2s-filter { background: var(--s-tint); border-radius: 14px; padding: 16px 18px 14px; margin: 0 0 22px; display: grid; gap: 12px; }
.ok2s-more > summary { margin: 0; }
.ok2s-more[open] > summary { margin: 0 0 10px; }
.ok2s-seg { display: inline-flex; flex-wrap: wrap; background: var(--s-card); border: 1px solid var(--s-line); border-radius: 999px; padding: 3px; gap: 2px; justify-self: start; }
.ok2s-seg__o { margin: 0; cursor: pointer; }
.ok2s-seg__o input { position: absolute; opacity: 0; pointer-events: none; }
.ok2s-seg__o span { display: block; padding: 7px 16px; border-radius: 999px; font-size: .95rem; color: var(--s-text); white-space: nowrap; }
.ok2s-seg__o input:checked + span { background: var(--s-acc); color: #fff; }
.ok2s-seg__o input:focus-visible + span { outline: 2px solid var(--s-acc-dark); outline-offset: 1px; }
.ok2s-fgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.ok2s-filter label { display: flex; flex-direction: column; gap: 4px; font-size: .8rem; color: var(--s-muted); text-transform: uppercase; letter-spacing: .03em; }
.ok2s-filter .ok2s-seg__o { text-transform: none; letter-spacing: 0; font-size: inherit; flex-direction: row; color: inherit; gap: 0; }
.ok2s-filter select, .ok2s-filter input[type=text], .ok2s-filter input[type=date], .ok2s-filter input[type=number], .ok2s-filter input[type=datetime-local] { width: 100%; font-size: 1rem; padding: 8px 10px; border: 1px solid var(--s-line); border-radius: 10px; background: var(--s-card); color: var(--s-ink); text-transform: none; letter-spacing: 0; }
.ok2s-more > summary { cursor: pointer; font-size: .9rem; color: var(--s-acc-dark); margin: 0 0 10px; list-style: none; }
.ok2s-more > summary::before { content: "+ "; font-weight: 700; }
.ok2s-more[open] > summary::before { content: "− "; }
.ok2s-more > summary::-webkit-details-marker { display: none; }
.ok2s-factions { display: flex; align-items: center; gap: 14px; }
.ok2s-filter button { font-size: 1rem; padding: 9px 22px; border: 0; border-radius: 10px; background: var(--s-acc); color: #fff; cursor: pointer; }
.ok2s-filter button:hover { background: var(--s-acc-dark); }
.ok2s-lead { font-size: 1.05rem; margin: 0 0 8px; }
.ok2s-h { margin: 30px 0 12px; }
.ok2s-h2 { margin: 20px 0 8px; font-size: 1rem; color: var(--s-ink); }
.ok2s-empty { background: var(--s-tint-2); border-radius: 12px; padding: 18px 20px; margin: 0 0 16px; }
.ok2s-note { font-size: .82rem; color: var(--s-muted); margin: 6px 0 0; line-height: 1.4; }
.ok2s-map { margin: 0; }
.ok2s-map__box { position: relative; border-radius: 12px; overflow: hidden; }
.ok2s-map__svg { width: 100%; height: auto; display: block; max-height: 560px; touch-action: none; cursor: grab; }
.ok2s-map__svg.is-drag { cursor: grabbing; }
.ok2s-map__sea { fill: var(--s-sea); }
.ok2s-map__line { fill: none; stroke-opacity: .5; stroke-linecap: round; stroke-width: 1.3px; vector-effect: non-scaling-stroke; }
.ok2s-map__line.is-tx { stroke: var(--s-rust); }
.ok2s-map__line.is-rx { stroke: var(--s-blue); }
.ok2s-map__dot { stroke: #fff; stroke-width: 1px; vector-effect: non-scaling-stroke; fill-opacity: .95; }
.ok2s-map__dot.is-tx { fill: var(--s-rust); }
.ok2s-map__dot.is-rx { fill: var(--s-blue); }
.ok2s-map__dot.is-home { fill: var(--s-ink); stroke-width: 1.5px; }
.ok2s-map__ctl { position: absolute; top: 10px; right: 10px; display: flex; flex-direction: column; gap: 4px; }
.ok2s-map__ctl button { width: 34px; height: 34px; border: 1px solid var(--s-line); border-radius: 8px; background: var(--s-card); color: var(--s-ink); font-size: 1.2rem; line-height: 1; cursor: pointer; padding: 0; }
.ok2s-map__ctl button:hover { background: var(--s-tint); }
.ok2s-key { display: inline-flex; align-items: center; gap: 5px; margin-right: 14px; }
.ok2s-sw { display: inline-block; width: 11px; height: 11px; border-radius: 50%; }
.ok2s-sw.is-home { background: var(--s-ink); } .ok2s-sw.is-tx { background: var(--s-rust); } .ok2s-sw.is-rx { background: var(--s-blue); }
.ok2s-tx { color: var(--s-rust); font-weight: 600; } .ok2s-rx { color: var(--s-blue); font-weight: 600; }
.ok2s-reset { margin-left: 4px; font-size: .9rem; color: var(--s-acc); }
.ok2s-recs { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.ok2s-rec { background: var(--s-card); border: 1px solid var(--s-line); border-radius: 14px; padding: 14px 16px; }
.ok2s-rec__t { font-size: .8rem; color: var(--s-muted); text-transform: uppercase; letter-spacing: .04em; }
.ok2s-rec__v { font-size: 1.6rem; font-weight: 700; color: var(--s-acc-dark); margin: 2px 0 4px; }
.ok2s-rec__d { font-size: .88rem; line-height: 1.4; }
.ok2s-bar { display: grid; grid-template-columns: 90px 1fr minmax(90px, auto); gap: 10px; align-items: center; margin: 4px 0; font-size: .92rem; }
.ok2s-bar__t { background: var(--s-tint-2); border-radius: 6px; height: 14px; overflow: hidden; }
.ok2s-bar__t span { display: block; height: 100%; background: var(--s-acc); border-radius: 6px; }
.ok2s-bar__v { color: var(--s-muted); font-size: .85rem; }
.ok2s-cols { display: grid; grid-template-columns: repeat(24, 1fr); gap: 3px; height: 130px; align-items: end; }
.ok2s-col { display: flex; flex-direction: column; justify-content: flex-end; height: 100%; text-align: center; }
.ok2s-col__b { display: block; background: var(--s-acc); border-radius: 4px 4px 0 0; min-height: 0; }
.ok2s-col__l { font-size: .72rem; color: var(--s-muted); height: 1.1em; }
.ok2s-col { position: relative; }
.ok2s-col__b { margin-bottom: 0; }
.ok2s-tablewrap { overflow-x: auto; }
.ok2s-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.ok2s-table th { text-align: left; background: var(--s-tint); color: var(--s-ink); padding: 8px 10px; white-space: nowrap; }
.ok2s-table td { padding: 7px 10px; border-bottom: 1px solid var(--s-line); white-space: nowrap; }
.ok2s-table tbody tr:nth-child(even) { background: var(--s-tint-2); }
@media (max-width: 600px) { .ok2s-bar { grid-template-columns: 70px 1fr; } .ok2s-bar__v { grid-column: 2; } }
.ok2s-map__lbl { font-family: inherit; font-weight: 600; fill: var(--s-ink); paint-order: stroke; stroke: var(--s-halo, #fff); stroke-linejoin: round; pointer-events: none; }
.ok2s-map__lbl.is-tx { fill: #7d3d1e; } .ok2s-map__lbl.is-rx { fill: #1f526b; }
.ok2s-map__lbl[hidden], .ok2s-map__lbl.is-off { display: none; }
.ok2s-map__ctl button.is-on { background: var(--s-tint); font-size: .85rem; }
.ok2s-map__dot.is-both { fill: url(#ok2s-both); }
.ok2s-sw.is-both { background: linear-gradient(var(--s-rust) 50%, var(--s-blue) 50%); }
.ok2s-map__lbl.is-both { fill: var(--s-ink); }
.ok2s-map__lbl.is-pick { font-weight: 700; }
.ok2s-map__pickbg { fill: var(--s-card, #fff); stroke: var(--s-line); pointer-events: none; filter: drop-shadow(0 1px 2px rgba(0,0,0,.25)); }
.ok2s-map__lbl.is-pick { stroke: none; }
.ok2s-lmap { height: 520px; border-radius: 12px; z-index: 0; }
.ok2s-lmap .ok2s-ltip { display: none; background: rgba(255,255,255,.92); border: 0; box-shadow: none; font-weight: 600; font-size: 11px; padding: 1px 5px; color: var(--s-ink, #202321); }
.ok2s-lmap .ok2s-ltip::before { display: none; }
.ok2s-lmap--labels .ok2s-ltip { display: block; }
@media (max-width: 600px) { .ok2s-lmap { height: 400px; } }

.ok2s-pager { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 0; align-items: center; }
.ok2s-pager a, .ok2s-pager .is-cur { min-width: 34px; padding: 6px 10px; text-align: center; border-radius: 8px; border: 1px solid var(--s-line); text-decoration: none; color: var(--s-acc-dark); background: var(--s-card); }
.ok2s-pager .is-cur { background: var(--s-acc); color: #fff; border-color: var(--s-acc); }
.ok2s-pager__gap { color: var(--s-muted); }
@media (max-width: 600px) { .ok2s-seg { width: 100%; flex-wrap: nowrap; } .ok2s-seg__o { flex: 1 1 0; } .ok2s-seg__o span { text-align: center; padding: 8px 6px; } .ok2s-seg__o small { display: none; } }
.ok2s-filter label.ok2s-check { flex-direction: row; align-items: center; gap: 8px; text-transform: none; letter-spacing: 0; font-size: .95rem; color: var(--s-text); grid-column: 1 / -1; }
.ok2s-map__dot.is-hid { display: none; }
.ok2s-map__cl { stroke: #fff; cursor: pointer; fill-opacity: .95; }
.ok2s-map__cl.is-tx { fill: var(--s-rust); } .ok2s-map__cl.is-rx { fill: var(--s-blue); } .ok2s-map__cl.is-mix { fill: var(--s-acc-dark); }
.ok2s-map__clt { fill: #fff; font-weight: 700; text-anchor: middle; pointer-events: none; font-family: inherit; }
.ok2s-nolines .ok2s-map__line, .ok2s-nolines .leaflet-overlay-pane path.ok2s-ll { display: none; }
.ok2s-lcl span { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; color: #fff; font-weight: 700; font-size: 12px; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.3); cursor: pointer; }
.ok2s-lcl .is-tx { background: var(--s-rust, #A4552F); } .ok2s-lcl .is-rx { background: var(--s-blue, #2F6F8F); } .ok2s-lcl .is-mix { background: var(--s-acc-dark, #3A4229); }
.ok2s-lmap .ok2s-linesbtn { width: 30px; height: 30px; line-height: 28px; text-align: center; font-size: 16px; background: #fff; color: #333; display: block; text-decoration: none; cursor: pointer; }
.ok2s-lmap .ok2s-linesbtn.is-off { color: #aaa; }
.ok2s-lhome span { display: block; width: 16px; height: 16px; border-radius: 50%; background: #202321; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.4); }

.ok2s-msg { background: #e4efdc; border: 1px solid #b9d3a6; color: #2f4a1f; border-radius: 10px; padding: 10px 14px; margin: 0 0 14px; }
.ok2s-msg.is-err { background: #f6e0dc; border-color: #dba79d; color: #7a2a1d; }
.ok2s-fgrid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 700px) { .ok2s-fgrid--3 { grid-template-columns: 1fr; } }
.ok2s-hint { font-size: .78rem; color: var(--s-muted); text-transform: none; letter-spacing: 0; }
.ok2s-btn2 { background: var(--s-card) !important; color: var(--s-acc-dark) !important; border: 1px solid var(--s-line) !important; }
.ok2s-filter button.ok2s-btn2:hover { background: var(--s-tint-2) !important; }
.ok2s-link { background: none !important; border: 0 !important; color: #A4552F !important; text-decoration: underline; cursor: pointer; padding: 0 !important; font-size: inherit !important; }
.ok2s-act { white-space: nowrap; }
tr[data-k] { cursor: pointer; } tr[data-k]:hover { background: var(--s-tint) !important; }
.ok2s-lane-wrap { margin-top: 12px; }
.ok2s-lane { height: 14px; border-radius: 7px; background: var(--s-tint-2); position: relative; margin: 6px 0 2px; overflow: hidden; }
.ok2s-lane i { position: absolute; top: 0; bottom: 0; opacity: .92; }
.ok2s-flag { font-size: 1.1rem; }
.ok2s-dxcc { margin-top: 14px; background: var(--s-card); border: 1px solid var(--s-line); border-radius: 14px; padding: 14px 18px; }
.ok2s-dxcc > summary { cursor: pointer; font-weight: 600; color: var(--s-ink); margin: 0; }
.ok2s-dxcc[open] > summary { margin-bottom: 10px; }

.ok2s-fgrid--2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 700px) { .ok2s-fgrid--2 { grid-template-columns: 1fr; } }
.ok2s-od__row { display: flex; gap: 8px; }
.ok2s-od__row input { flex: 1 1 auto; min-width: 0; }
.ok2s-od__row .ok2s-now { flex: 0 0 auto; }

/* ---- tmavý režim webu (html[data-ghw-theme="dark"], volba z webu nebo systému) ---- */
html[data-ghw-theme="dark"] .ok2s { --s-sea: #1C2118; --s-halo: #161814; --s-rust: #D9825A; --s-blue: #6FA6C2; }
html[data-ghw-theme="dark"] .ok2s-map__svg image { filter: brightness(.5) saturate(.85); }
html[data-ghw-theme="dark"] .ok2s-map__lbl.is-tx { fill: #EBA989; }
html[data-ghw-theme="dark"] .ok2s-map__lbl.is-rx { fill: #A5CDE3; }
html[data-ghw-theme="dark"] .ok2s-map__pickbg { filter: drop-shadow(0 1px 3px rgba(0,0,0,.7)); }
html[data-ghw-theme="dark"] .ok2s-msg { background: #23361A; border-color: #3E5A2D; color: #D6EBC7; }
html[data-ghw-theme="dark"] .ok2s-msg.is-err { background: #4A1712; border-color: #7A2A1D; color: #FFD9D4; }
html[data-ghw-theme="dark"] .ok2s-lmap .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) brightness(.82) contrast(.92) saturate(.55); }
html[data-ghw-theme="dark"] .ok2s-lmap.leaflet-container { background: #1C2118; }
html[data-ghw-theme="dark"] .ok2s-lmap .ok2s-ltip { background: rgba(31,34,28,.92); color: var(--s-ink); }
html[data-ghw-theme="dark"] .ok2s-link { color: #EBA989 !important; }
html[data-ghw-theme="dark"] .ok2s-map__cl.is-mix { fill: #4F5C34; }

/* šablona zakulacuje všechny obrázky (14 px); u dlaždic Leafletu to v rozích mezi čtyřmi dlaždicemi dělá světlé „hvězdičky“ (mezera + mix-blend plus-lighter) */
.ok2s-lmap img, .ok2s-lmap .leaflet-tile { border-radius: 0 !important; box-shadow: none !important; }
html[data-ghw-theme="dark"] .ok2s-lmap img { filter: none; } /* šablona ztmavuje obrázky, u dlaždic to dělá vrstva dlaždic */

/* spojení s protistanicí: TX / RX / TX+RX (barvy jako na mapě) */
.ok2s-pill { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 3px 11px; font-size: .82rem; font-weight: 600; white-space: nowrap; }
.ok2s-pill i { width: 11px; height: 11px; border-radius: 50%; display: inline-block; flex: 0 0 auto; }
.ok2s-pill.is-tx { background: #F3E2DA; color: #8a3f1d; } .ok2s-pill.is-tx i { background: #A4552F; }
.ok2s-pill.is-rx { background: #DDEAF1; color: #1f526b; } .ok2s-pill.is-rx i { background: #2F6F8F; }
.ok2s-pill.is-both { background: #E4E8D6; color: #3A4229; } .ok2s-pill.is-both i { background: linear-gradient(#A4552F 50%, #2F6F8F 50%); }
html[data-ghw-theme="dark"] .ok2s-pill.is-tx { background: #3A241A; color: #EBA989; }
html[data-ghw-theme="dark"] .ok2s-pill.is-rx { background: #1B2D38; color: #A5CDE3; }
html[data-ghw-theme="dark"] .ok2s-pill.is-both { background: #2A3022; color: #D4D7CA; }
.ok2s-chips { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; }
.ok2s-chip { border: 1px solid var(--s-line); background: var(--s-card); color: var(--s-text); border-radius: 999px; padding: 6px 14px; font: inherit; font-size: .9rem; cursor: pointer; }
.ok2s-chip.on { background: var(--s-acc); border-color: var(--s-acc); color: #fff; }
table[data-chipped] tr.is-off { display: none; }

.ok2s-filter input.is-suggest, .ok2s-filter select.is-suggest { background: #F1F6E3; border-color: #B7C48B; }
html[data-ghw-theme="dark"] .ok2s-filter input.is-suggest { background: #26301C; border-color: #4F5C34; }
.ok2s-btnlink { display: inline-block; background: var(--s-acc); color: #fff !important; text-decoration: none; padding: 8px 14px; border-radius: 10px; font-size: .92rem; white-space: nowrap; }
.ok2s-btnlink:hover { background: var(--s-acc-dark); }
.ok2s-gapform { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 0 0 12px; }
.ok2s-gapform select { font-size: .95rem; padding: 6px 10px; border: 1px solid var(--s-line); border-radius: 8px; background: var(--s-card); color: var(--s-ink); }
.ok2s-list { margin: 0 0 12px 18px; padding: 0; }

.ok2s-crit { display: flex; gap: 14px 18px; flex-wrap: wrap; align-items: center; margin: 0 0 12px; font-size: .95rem; }
.ok2s-crit label { display: flex; gap: 6px; align-items: center; }
.ok2s-crit input[type=number] { width: 64px; padding: 5px 8px; border: 1px solid var(--s-line); border-radius: 8px; font-size: .95rem; background: var(--s-card); color: var(--s-ink); }
.ok2s-crit select { font-size: .95rem; padding: 5px 8px; border: 1px solid var(--s-line); border-radius: 8px; background: var(--s-card); color: var(--s-ink); }
.ok2s-day td { background: var(--s-tint); font-weight: 600; color: var(--s-ink); }
.ok2s-day .ok2s-hint { font-weight: 400; }
.ok2s-warn { display: inline-block; background: #fdecc8; color: #7a5b10; border-radius: 999px; padding: 1px 9px; font-size: .75rem; font-weight: 600; margin-left: 4px; white-space: nowrap; }
html[data-ghw-theme="dark"] .ok2s-warn { background: #3d3114; color: #f3d98a; }
.ok2s-mg { display: block; font-size: .78rem; color: var(--s-acc); text-decoration: underline; margin-top: 5px; white-space: nowrap; }
.ok2s-mg.is-off { color: var(--s-muted); opacity: .5; text-decoration: none; }

.ok2s-rcards { display: none; }
.ok2s-dup { display: inline-block; background: #f6e0dc; color: #7a2a1d; border-radius: 999px; padding: 1px 9px; font-size: .75rem; font-weight: 600; margin-left: 6px; white-space: nowrap; }
html[data-ghw-theme="dark"] .ok2s-dup { background: #4A1712; color: #FFD9D4; }
.ok2s-btnlink--sm { padding: 5px 11px; font-size: .85rem; }
tr.is-dup td { background: rgba(179,38,30,.07); }
.ok2s-rcard { background: var(--s-card); border: 1px solid var(--s-line); border-radius: 14px; padding: 12px 14px; margin: 0 0 10px; }
.ok2s-rcard.is-dup { border-color: #dba79d; }
.ok2s-rcard__t { font-weight: 700; color: var(--s-ink); }
.ok2s-rcard__s { font-size: .9rem; color: var(--s-muted); margin: 3px 0 9px; }
.ok2s-rcard__r { display: flex; gap: 10px; align-items: center; }
.ok2s-rcard__n { margin-left: auto; font-size: .85rem; color: var(--s-muted); }
@media (max-width: 700px) { .ok2s-reclist-table { display: none; } .ok2s-rcards { display: block; } .ok2s-blocks thead { display: none; } .ok2s-blocks, .ok2s-blocks tbody, .ok2s-blocks tr, .ok2s-blocks td { display: block; width: 100%; } .ok2s-blocks tr { background: var(--s-card); border: 1px solid var(--s-line); border-radius: 14px; padding: 10px 12px; margin: 0 0 10px; } .ok2s-blocks tr.ok2s-day { background: transparent; border: 0; padding: 6px 0; margin: 12px 0 4px; } .ok2s-blocks td { padding: 3px 0; border: 0; white-space: normal; } .ok2s-blocks td[data-l]::before { content: attr(data-l) ": "; font-size: .78rem; color: var(--s-muted); text-transform: uppercase; letter-spacing: .03em; margin-right: 4px; } .ok2s-blocks tr.ok2s-day td { background: transparent; } }

.ok2s-stg { background: #B3261E; color: #fff; font-weight: 700; letter-spacing: .06em; text-align: center; padding: 7px 12px; font-size: .9rem; border-radius: 8px; margin: 0 0 16px; }
.ok2s-stg small { font-weight: 400; letter-spacing: 0; opacity: .92; margin-left: 8px; }

.ok2s-mgrow { display: flex; gap: 6px; margin-top: 7px; flex-wrap: nowrap; }
.ok2s-pillbtn { display: inline-block; border: 1px solid var(--s-line); border-radius: 999px; padding: 3px 10px; font-size: .78rem; color: var(--s-acc-dark); background: var(--s-card); text-decoration: none; white-space: nowrap; line-height: 1.3; }
a.ok2s-pillbtn:hover { background: var(--s-tint); }
.ok2s-pillbtn.is-off { opacity: .45; cursor: default; }
button.ok2s-btn2 { font: inherit; font-size: .92rem; padding: 8px 14px; border: 1px solid var(--s-line) !important; border-radius: 10px; background: var(--s-card) !important; color: var(--s-acc-dark) !important; cursor: pointer; }
button.ok2s-btn2:hover { background: var(--s-tint) !important; }
.ok2s-susp > summary { color: #8a3f1d; }
html[data-ghw-theme="dark"] .ok2s-susp > summary { color: #EBA989; }

/* balóny (telemetrie): fialový kosočtverec, dráha, bublina, tabulka */
.ok2s { --s-bal: #7B4FA3; --s-bal-soft: #F3ECFA; --s-bal-line: #CDB6E6; }
html[data-ghw-theme="dark"] .ok2s { --s-bal: #B68AE0; --s-bal-soft: #2A2236; --s-bal-line: #5B4380; }
.ok2s-map__bal { fill: var(--s-bal); stroke: #fff; stroke-width: 1.5px; vector-effect: non-scaling-stroke; cursor: pointer; }
html[data-ghw-theme="dark"] .ok2s-map__bal { stroke: #161814; }
.ok2s-map__bal.is-old { opacity: .5; }
.ok2s-map__trk { fill: none; stroke: var(--s-bal); stroke-width: 1.6px; stroke-dasharray: 5 4; vector-effect: non-scaling-stroke; opacity: .85; pointer-events: none; }
.ok2s-map__lbl.is-bal { fill: #5B3A85; }
html[data-ghw-theme="dark"] .ok2s-map__lbl.is-bal { fill: #D0B3F0; }
.ok2s-swd { display: inline-block; width: 11px; height: 11px; transform: rotate(45deg); margin-right: 6px; vertical-align: -1px; background: var(--s-bal); }
.ok2s-balsym { display: inline-block; width: 9px; height: 9px; transform: rotate(45deg); background: var(--s-bal); margin: 0 5px 1px 1px; }
.ok2s-balsym.is-dim { opacity: .45; }
.ok2s-bal > summary { color: #5B3A85; }
html[data-ghw-theme="dark"] .ok2s-bal > summary { color: #D0B3F0; }
.ok2s-bpop, .ok2s-bal-popup .leaflet-popup-content-wrapper { background: var(--s-bal-soft); border: 1px solid var(--s-bal-line); color: var(--s-text, #2B2F2A); }
.ok2s-bpop { position: absolute; z-index: 5; border-radius: 12px; padding: 10px 28px 10px 13px; font-size: .84rem; line-height: 1.45; width: 230px; box-shadow: 0 2px 10px rgba(0,0,0,.3); }
.ok2s-bpop h5, .ok2s-bal-popup h5 { margin: 0 0 4px; font-size: .95rem; color: #5B3A85; }
html[data-ghw-theme="dark"] .ok2s-bpop h5, html[data-ghw-theme="dark"] .ok2s-bal-popup h5 { color: #D0B3F0; }
.ok2s-bpop table, .ok2s-bal-popup table { border-collapse: collapse; width: 100%; }
.ok2s-bpop td, .ok2s-bal-popup td { padding: 1px 0; }
.ok2s-bpop td:first-child, .ok2s-bal-popup td:first-child { color: #7a6a92; width: 42%; }
html[data-ghw-theme="dark"] .ok2s-bpop td:first-child, html[data-ghw-theme="dark"] .ok2s-bal-popup td:first-child { color: #A593C0; }
.ok2s-bpop .t, .ok2s-bal-popup .t { font-size: .74rem; opacity: .8; margin-top: 5px; }
.ok2s-bpop__x { position: absolute; top: 4px; right: 6px; border: 0; background: none; font-size: 1.2rem; line-height: 1; cursor: pointer; color: inherit; }
.ok2s-bal-popup .leaflet-popup-tip { background: var(--s-bal-soft); }
.ok2s-bal-popup .leaflet-popup-content { margin: 10px 14px; }
.ok2s-ldiamond { display: block; width: 13px; height: 13px; margin: 1.5px; background: #7B4FA3; border: 1.5px solid #fff; transform: rotate(45deg); box-shadow: 0 1px 3px rgba(0,0,0,.4); }
html[data-ghw-theme="dark"] .ok2s-ldiamond { background: #B68AE0; border-color: #161814; }
.ok2s-ltip-bal { color: #5B3A85 !important; }
html[data-ghw-theme="dark"] .ok2s-ltip-bal { color: #D0B3F0 !important; }
tr.ok2s-bal-un td { opacity: .75; }
