
/* ===== county availability map ===== */
.tm{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:18px;margin-top:22px;align-items:start}
@media(max-width:900px){.tm{grid-template-columns:1fr}}
.tm-map{padding:16px}
.tm-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tm-bar input{flex:1 1 220px;min-width:0}
.tm-key{display:flex;gap:16px;flex-wrap:wrap;margin:12px 2px 10px;font-size:13px;color:#cdd6ff}
.tm-key span{display:inline-flex;align-items:center;gap:7px}
.tm-key .k{width:12px;height:12px;border-radius:3px;border:1px solid;display:inline-block}
.tm-key .k.open{border-color:#7fb2ff;background:rgba(88,120,255,.25)}
.tm-key .k.taken{border-color:#ff5cc0;background:rgba(255,70,170,.55)}
.tm-key .k.sel{border-color:#fff;background:rgba(120,220,255,.7)}
.tm-stage{position:relative;aspect-ratio:975/610;border-radius:14px;overflow:hidden;border:1px solid rgba(127,178,255,.3);
  background:
   linear-gradient(rgba(127,178,255,.07) 1px,transparent 1px) 0 0/32px 32px,
   linear-gradient(90deg,rgba(127,178,255,.07) 1px,transparent 1px) 0 0/32px 32px,
   radial-gradient(120% 90% at 20% 10%,rgba(60,110,255,.28),transparent 60%),
   radial-gradient(100% 90% at 90% 100%,rgba(190,70,255,.26),transparent 60%),
   #070a24;
  box-shadow:inset 0 0 60px rgba(70,110,255,.15),0 0 30px rgba(90,80,255,.18)}
#tmSvg{display:block;width:100%;height:100%;cursor:pointer;touch-action:manipulation}
#tmSvg .c{vector-effect:non-scaling-stroke;stroke-width:.5px;stroke:rgba(140,180,255,.34);transition:fill .15s,opacity .3s}
#tmSvg .c.open{fill:rgba(88,120,255,.17)}
#tmSvg .c.open:hover{fill:rgba(150,110,255,.6);stroke:#cbb6ff}
#tmSvg .c.taken{fill:rgba(255,70,170,.55);stroke:#ff8bd3}
#tmSvg .c.taken:hover{fill:rgba(255,70,170,.75)}
#tmSvg .c.sel{fill:rgba(110,225,255,.72);stroke:#fff;stroke-width:1.4px}
#tmSvg .c.taken.sel{fill:rgba(255,70,170,.85)}
#tmSvg .c.off{opacity:.22}
#tmSvg .sb{fill:none;stroke:rgba(200,180,255,.5);stroke-width:.8px;vector-effect:non-scaling-stroke;pointer-events:none}
#tmSvg .ob{fill:none;stroke:#7fb2ff;stroke-width:1.1px;vector-effect:non-scaling-stroke;pointer-events:none;opacity:.9}
#tmSvg .ping{fill:none;stroke:#ff5cc0;stroke-width:1.2px;vector-effect:non-scaling-stroke;pointer-events:none;transform-box:fill-box;transform-origin:center;animation:tmping 2.2s ease-out infinite}
#tmSvg .pingdot{fill:#ffd0ec;pointer-events:none}
@keyframes tmping{0%{transform:scale(.4);opacity:1}100%{transform:scale(2.6);opacity:0}}
@media(prefers-reduced-motion:reduce){#tmSvg .ping{animation:none}}
.tm-tip{position:absolute;z-index:3;pointer-events:none;background:rgba(8,10,34,.94);border:1px solid rgba(127,178,255,.5);border-radius:10px;padding:7px 10px;font-size:13px;color:#fff;display:flex;flex-direction:column;gap:2px;white-space:nowrap}
.tm-tip[hidden]{display:none}
.tm-tip .o{color:#8fb8ff;font-size:12px}.tm-tip .t{color:#ff8bd3;font-size:12px}
.tm-load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;color:#cdd6ff;font-size:14px}
.tm-load[hidden]{display:none}
.tm-panel{padding:20px}
.tm-h{display:block;font-size:22px;line-height:1.2;color:#fff;margin-bottom:8px}
.tm-badge{display:inline-block;border:1px solid;border-radius:999px;padding:3px 12px;font-size:13px;margin-bottom:10px;background:transparent}
.tm-badge.open{color:#8fb8ff;border-color:#7fb2ff}
.tm-badge.taken{color:#ff8bd3;border-color:#ff5cc0}
.tm-steps{margin-top:14px;padding-left:18px}
