/* ===== v9: UPDATE / FIX IT / MAP KEY buttons, update banner, troubleshoot list, map key. Tactical HUD style (loads after tactical.css). ===== */
/* left map edge, vertically centred: clear of the right button column, the search bar + wind chip (top),
   the zoom/scale controls (bottom-left) and the wind-slider / heat bars (bottom) at 412x915 and 390x844 */
#helpbtns{position:absolute;z-index:500;left:10px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:8px}
.fab.hfab{position:relative;width:54px;height:54px;background:#0e110fd9}
.fab.hfab svg{color:var(--pri);display:block}
.fab.hfab small{font-size:9.5px;letter-spacing:.06em;margin-top:3px;white-space:nowrap}
.fab.hfab .updot{display:none;position:absolute;top:4px;right:4px;width:10px;height:10px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 2px #0e110f,0 0 8px var(--acc)}
.fab.hfab.has-upd{border-color:var(--acc)}
.fab.hfab.has-upd .updot{display:block}
@media (max-height:560px){#helpbtns{flex-direction:row;top:auto;bottom:10px;left:96px;transform:none}}

/* "New version ready" banner */
#updbanner{position:fixed;z-index:1900;top:calc(env(safe-area-inset-top) + 8px);left:10px;right:10px;display:flex;gap:6px;max-width:520px;margin:0 auto;
  background:#0e110ff2;border:1px solid var(--acc);border-radius:2px;box-shadow:0 0 0 1px #000,0 6px 20px #000c,0 0 14px #f2b13433}
#updbanner[hidden]{display:none}
#updbanner .ub-go{flex:1;display:flex;align-items:center;gap:10px;min-height:52px;padding:6px 12px;background:transparent;border:0;color:var(--fg);text-align:left;font-family:var(--cond)}
#updbanner .ub-go svg{color:var(--acc);flex:none}
#updbanner .ub-go b{display:block;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--acc)}
#updbanner .ub-go small{display:block;font-family:var(--mono);color:var(--mut);font-size:.78em}
#updbanner .ub-x{width:52px;background:transparent;border:0;border-left:1px solid var(--line2);color:var(--tan);font-size:28px}

/* update sheet */
.hud b.hver{font-size:1.15em;word-break:break-all;color:var(--acc)}
.upstat{margin:10px 0;padding:10px 12px;border:1px solid var(--line2);border-left:4px solid var(--line2);background:var(--bg2);font-family:var(--cond);font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.upstat.ok{border-color:var(--good);color:var(--good)}
.upstat.busy{border-color:var(--acc);color:var(--acc)}
.upstat.warn{border-color:var(--acc);color:#ffd28a}
.upstat.bad{border-color:var(--bad);color:#ffb3aa}
.btn svg{width:18px;height:18px;vertical-align:-3px;margin-right:4px}

/* troubleshoot list */
.ts-list{border:1px solid var(--line);background:var(--card)}
.ts-row{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border-bottom:1px solid var(--line)}
.ts-row:last-child{border-bottom:0}
.ts-row b{display:block;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.78em;color:var(--tan)}
.ts-row span{display:block;font-family:var(--mono);font-size:.82em;line-height:1.35;word-break:break-word;color:var(--fg)}
.ts-st{flex:none;width:24px;height:24px;margin-top:2px;border:1px solid currentColor;display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:700;font-size:14px;color:var(--mut)}
.ts-row.ok .ts-st{color:var(--good)}.ts-row.warn .ts-st{color:var(--acc)}.ts-row.bad .ts-st{color:var(--bad)}
.ts-row.bad span{color:#ffb3aa}.ts-row.warn span{color:#ffd28a}
.ts-act .btn{flex:1 1 30%;min-width:110px}
details.fix{padding:0 12px}
details.fix summary{min-height:48px}
details.fix p{margin:6px 0 10px;font-size:.92em}
#ts-text{width:100%;min-height:180px;font-size:12px}

/* map key */
.mk-jump{position:sticky;top:-14px;z-index:3;display:flex;flex-wrap:wrap;gap:6px;padding:8px 0;margin:0 0 4px;background:var(--bg)}
.mk-jump .btn{flex:1 1 auto;min-width:0;padding:6px 8px;min-height:40px;font-size:.78em}
.mk-note p{margin:4px 0;font-size:.92em}
.mk-list{border:1px solid var(--line);background:var(--card)}
.mk-row{display:flex;gap:12px;align-items:center;padding:9px 10px;border-bottom:1px solid var(--line)}
.mk-row:last-child{border-bottom:0}
.mk-row b{font-family:var(--cond);font-weight:700;letter-spacing:.03em;color:var(--fg)}
.mk-row p{margin:2px 0 0;font-size:.86em;line-height:1.35;color:var(--mut)}
.mk-sw{flex:none;width:96px;min-height:40px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px;padding:4px;
  background:#1a2216;border:1px solid var(--line2);background-image:linear-gradient(135deg,#ffffff05 25%,transparent 25% 50%,#ffffff05 50% 75%,transparent 75%);background-size:10px 10px}
.mk-svg{display:block;overflow:visible}
.mk-stack{display:flex;flex-direction:column;gap:0}
.mk-stack .mk-svg{height:9px}
.mk-html{display:flex;flex-wrap:wrap;gap:4px;align-items:center;justify-content:center}
.mk-sw .spin{transform:none;font-size:11px}
.mk-lz{background:transparent!important;display:flex;gap:6px;align-items:center}
.mk-lz .spin{position:relative}
.mk-sw .cbstand{position:relative;transform:none;gap:2px}
.mk-sw .cbstand b{font-size:9px}
.mk-sw .cbstand em{font-size:8px}
.mk-sw .parkpin{transform:none}
.mk-sw .stag{font-size:.62em;padding:0 6px;line-height:1.5}
.mk-sw .wstn-lab{font-size:8px;padding:1px 3px}
.mk-wind{display:flex;flex-direction:column;align-items:center;gap:2px}
.mk-wg{transform:none}
.mk-rate{font-family:var(--mono);font-size:10px;border:1px solid;padding:0 3px;background:#0b0f0ce0}
.mk-chip{font-family:var(--cond);font-size:8.5px;letter-spacing:.04em;color:var(--fg);border:1px solid var(--pri);padding:2px 4px;background:#0e110fe6;text-align:center}
.mk-chip b{font-family:var(--mono);color:var(--acc);font-weight:400}
.mk-seg{margin:0;gap:3px}.mk-seg button{min-height:24px;padding:0 8px;font-size:11px;pointer-events:none}
.mk-heat{display:flex;width:86px;height:16px;border:1px solid var(--line2);background:#2a3324}
.mk-heat i{flex:1;mix-blend-mode:screen;opacity:.85}
.mk-sight{display:inline-block;min-width:22px;height:22px;padding:0 3px;border:2px solid #fff;border-radius:50%;color:#fff;font:800 11px/18px system-ui;text-align:center;box-shadow:0 1px 3px #000a}
.mk-clu{min-width:30px;height:30px;line-height:24px;border-width:3px}
.mk-sglow{display:inline-block;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle,#ff3b00 0 22%,#ff3b0055 36%,#ffae0033 60%,transparent 72%)}
.mk-hill{display:block;width:80px;height:30px;background:linear-gradient(115deg,#20271d 0 20%,#7d8676 32%,#2a3127 44%,#9aa293 58%,#323a2e 70%,#717a69 84%,#262d22)}
.mk-topo{background:repeating-radial-gradient(ellipse at 40% 70%,transparent 0 6px,#b07a4a88 6px 7px),linear-gradient(115deg,#3a4434,#8e9886 40%,#3a4434 60%,#7d8676)}
.mk-ret{transform:none;width:22px;height:22px}
.mk-pin{transform:none}.mk-pin span{font-size:9px}
.mk-op{transform:none;font-size:10px}
.mk-cs{transform:none;width:22px;height:22px;font-size:11px;line-height:17px;border-width:2px;display:inline-block}
.mk-cl{transform:none;width:18px;height:18px;font-size:11px;line-height:14px;display:inline-block}
.mk-kd{display:inline-block;width:9px;height:9px;border-radius:50%;border:1px solid #fff}
.mk-grp{display:inline-flex;align-items:center;gap:2px;font-family:var(--mono);font-size:10px;color:var(--fg)}
.mk-grp .dot{width:10px;height:10px;border-width:1px}
.mk-fold{font-size:20px;color:var(--pri);border:1px solid var(--pri);padding:0 8px}
.mk-off{font-family:var(--mono);font-size:10px;color:var(--mut);border:1px dashed var(--line2);padding:2px 4px}
@media (max-width:380px){.mk-sw{width:84px}}

/* ===== Help panel ===== */
.hp-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:6px 0 12px}
.hp-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-height:84px;padding:8px 4px;background:var(--card);border:1px solid var(--line2);border-radius:2px;color:var(--fg);font-family:var(--cond)}
.hp-tile svg{color:var(--pri);width:26px;height:26px}
.hp-tile b{text-transform:uppercase;letter-spacing:.08em;font-size:.8em}
.hp-tile small{font-family:var(--mono);color:var(--mut);font-size:.62em;word-break:break-all;text-align:center}
.hp-tile:active{border-color:var(--pri)}
.hp-tile .updot{display:none;position:absolute;top:6px;right:6px;width:10px;height:10px;border-radius:50%;background:var(--acc);box-shadow:0 0 8px var(--acc)}
.hp-tile.has-upd{border-color:var(--acc)}.hp-tile.has-upd .updot{display:block}
.hp-tabs{position:sticky;top:-14px;z-index:3;background:var(--bg);padding:6px 0}
.hp-steps{list-style:none;counter-reset:st;padding:0;margin:8px 0}
.hp-steps li{counter-increment:st;position:relative;padding:8px 10px 8px 46px;margin:6px 0;border:1px solid var(--line);background:var(--card)}
.hp-steps li::before{content:counter(st,decimal-leading-zero);position:absolute;left:8px;top:8px;width:30px;font-family:var(--mono);color:var(--acc);font-size:1.05em}
.hp-steps b{font-family:var(--cond);text-transform:uppercase;letter-spacing:.08em;color:var(--tan);font-size:.88em}
.hp-steps p{margin:3px 0 0;font-size:.9em;line-height:1.38}
.hp-faq summary{font-size:.86em;letter-spacing:.06em;line-height:1.25;padding:6px 0}
.hp-vid video{display:block;width:100%;max-width:412px;height:auto;margin:0 auto;background:#000;border:1px solid var(--line2);aspect-ratio:412/915;max-height:70vh;object-fit:contain}
/* v10 map key: facing chevrons + corridor stand */
.mk-face{display:inline-block;width:18px;height:26px;margin-right:4px;vertical-align:middle}
.mk-face svg{width:16px;height:24px;filter:drop-shadow(0 0 1px #000)}
.mk-cs{display:inline-block;position:relative;width:52px;height:56px}
.mk-cs .cstd{left:26px;top:38px}

.mk-gps{display:block;font:10px/1.25 var(--mono,monospace);color:#fff;background:#0e110f;border:1px solid #4fc3f7;border-left:3px solid #4fc3f7;padding:2px 4px;text-align:left}.mk-gps b{font-family:var(--cond,system-ui);color:#eef1e4}
