/* ZSX "Glass Cockpit" reskin — Phase 1 (ui/v1 design system applied to the
   live app as a pure override layer; no IDs/JS touched; rollback = remove link) */
:root{
  --bg-0:#070d1a;--bg-1:#0b1424;--glass:rgba(19,32,58,.78);--glass-hi:rgba(32,50,84,.8);
  --glass-brd:rgba(120,160,220,.18);--ink:#e8eefb;--ink-2:#9fb2d2;--ink-3:#5c6f92;
  --cyan:#2fd6e8;--cyan-soft:rgba(47,214,232,.14);--amber:#ffb547;--green:#3ddc97;
}
/* Base */
body,.foreflight-app{background:radial-gradient(1200px 700px at 75% -10%,#14264a 0%,var(--bg-0) 60%)!important;color:var(--ink)!important}
/* Sidebar -> glass rail */
.ff-sidebar{background:rgba(11,20,36,.9)!important;backdrop-filter:blur(16px);border-right:1px solid var(--glass-brd)!important;box-shadow:0 0 40px rgba(3,8,20,.6)!important}
.ff-nav-item{border-radius:12px!important;margin:2px 8px!important;color:var(--ink-2)!important;border:1px solid transparent!important}
.ff-nav-item:hover{background:var(--glass-hi)!important;color:var(--ink)!important}
.ff-nav-item.active{background:var(--cyan-soft)!important;color:var(--cyan)!important;border-color:rgba(47,214,232,.35)!important;box-shadow:inset 0 1px 0 rgba(47,214,232,.25),0 4px 14px rgba(47,214,232,.12)!important}
/* Panels: chart picker, control panels */
.ff-control-panel,.ff-chart-toggle{background:var(--glass)!important;backdrop-filter:blur(18px) saturate(1.3);border:1px solid var(--glass-brd)!important;border-top-color:rgba(160,200,255,.28)!important;border-radius:18px!important;box-shadow:0 14px 40px rgba(0,0,0,.5)!important;color:var(--ink)!important}
.ff-chart-section-header{color:var(--ink)!important}
.ff-chart-section-header:hover{background:var(--glass-hi)!important}
.ff-chart-section,.ff-chart-section+.ff-chart-section{border-color:var(--glass-brd)!important}
.ff-region-item{color:var(--ink-2)!important;border-radius:8px!important}
.ff-region-item:hover{background:var(--glass-hi)!important;color:var(--ink)!important}
.ff-chart-mini-btn{background:var(--glass-hi)!important;border:1px solid var(--glass-brd)!important;color:var(--ink)!important;border-radius:8px!important}
.ff-chart-mini-btn:hover{background:var(--cyan-soft)!important;border-color:rgba(47,214,232,.4)!important;color:var(--cyan)!important}
.ff-chart-count{color:var(--ink-3)!important}
/* Airport hub panel */
.apt-panel{background:rgba(11,20,36,.92)!important;backdrop-filter:blur(20px);border-left:1px solid var(--glass-brd)!important;box-shadow:-14px 0 50px rgba(3,8,20,.7)!important;color:var(--ink)!important}
.apt-panel-header,.apt-panel-tabs,.apt-panel-footer{border-color:var(--glass-brd)!important}
.apt-panel-code{color:var(--cyan)!important;font-family:ui-monospace,Menlo,monospace;text-shadow:0 0 18px rgba(47,214,232,.35)}
.apt-panel-name,.apt-row-label,.apt-note,.apt-rwy-sub,.apt-freq-note{color:var(--ink-2)!important}
.apt-tab{color:var(--ink-2)!important}
.apt-tab:hover{color:var(--ink)!important}
.apt-tab.active{color:var(--cyan)!important;border-bottom-color:var(--cyan)!important;background:var(--glass-hi)!important;border-radius:8px 8px 0 0}
.apt-row,.apt-freq-row,.apt-remark{border-color:rgba(120,160,220,.1)!important}
.apt-freq-val{color:var(--cyan)!important;font-family:ui-monospace,Menlo,monospace}
.apt-rwy-card{background:rgba(9,17,32,.55)!important;border:1px solid var(--glass-brd)!important}
.apt-rwy-end{border-color:rgba(120,160,220,.12)!important}
.apt-wx-block{background:rgba(6,12,24,.7)!important;border:1px solid var(--glass-brd)!important;color:var(--ink-2)!important}
.apt-action-btn{background:var(--glass-hi)!important;border:1px solid var(--glass-brd)!important;color:var(--ink)!important;border-radius:9px!important}
.apt-action-btn:hover{background:linear-gradient(160deg,#18b6c9,#0d8fa5)!important;border-color:rgba(47,214,232,.5)!important;color:#fff!important}
.apt-section-header{color:var(--ink-3)!important}
/* Modals (plates, admin) */
.ff-modal{background:rgba(4,8,18,.7)!important;backdrop-filter:blur(6px)}
.ff-modal-content{background:rgba(13,23,42,.95)!important;border:1px solid var(--glass-brd)!important;border-radius:18px!important;color:var(--ink)!important;box-shadow:0 24px 70px rgba(0,0,0,.65)!important}
.ff-modal-header{border-color:var(--glass-brd)!important}
.ff-modal-close{color:var(--ink-2)!important}
.plate-item{color:var(--ink)!important}
.plate-item:hover{background:var(--glass-hi)!important;color:var(--cyan)!important}
.plates-group-header{color:var(--ink-3)!important;border-color:var(--glass-brd)!important}
/* Search + inputs (any input inside our surfaces) */
.ff-modal-content input,.ff-modal-content select,.apt-panel input,#admin-modal input,#admin-modal select{background:rgba(6,12,24,.7)!important;border:1px solid var(--glass-brd)!important;color:var(--ink)!important;border-radius:8px!important}
.search-result-item{border-radius:10px}
.search-result-item:hover{background:var(--glass-hi)!important}
.search-result-code{color:var(--cyan)!important}
.search-no-results{color:var(--ink-2)!important}
/* Admin table */
#admin-users table th{color:var(--ink-3)!important}
#admin-users table td{border-color:rgba(120,160,220,.1)!important}
/* Leaflet chrome */
.leaflet-control-zoom a,.leaflet-control-attribution{background:var(--glass)!important;color:var(--ink)!important;border-color:var(--glass-brd)!important}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:rgba(13,23,42,.96)!important;color:var(--ink)!important;border:1px solid var(--glass-brd)}
.leaflet-popup-content-wrapper h3{color:var(--cyan)!important}
/* Scrollbars */
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:rgba(120,160,220,.25);border-radius:9px}::-webkit-scrollbar-track{background:transparent}
/* Touch targets (tablet/phone) */
@media (pointer:coarse){.ff-nav-item,.apt-tab,.apt-action-btn,.ff-chart-mini-btn,.ff-chart-section-header{min-height:44px}}
/* Phone: chart picker + panel become sheets */
@media (max-width:600px){
  .apt-panel{width:100vw!important;max-width:100vw!important;border-radius:22px 22px 0 0;top:auto!important;height:70vh}
  .ff-control-panel,.ff-chart-toggle{max-width:92vw}
}

/* --- Phase 1b: structural match to ui/v1 --- */
/* Wide sidebar -> narrow icon rail (ui/v1 map-home) */
.ff-sidebar{width:86px!important;min-width:86px!important}
.ff-sidebar .ff-logo-content,.ff-sidebar .ff-ai-response{display:none!important}
.ff-sidebar::before{content:"ZSX";display:block;text-align:center;margin:14px 0 6px;font-weight:800;font-size:19px;letter-spacing:.1em;background:linear-gradient(120deg,#2fd6e8,#7ee8f5);-webkit-background-clip:text;background-clip:text;color:transparent}
.ff-nav-item{flex-direction:column!important;gap:3px!important;padding:9px 4px!important;margin:3px 8px!important;text-align:center;justify-content:center!important}
.ff-nav-item i{font-size:18px!important;margin:0!important}
.ff-nav-item span{font-size:9px!important;display:block!important;white-space:nowrap;overflow:hidden;max-width:66px}
.ff-sidebar-toggle{display:none!important}
/* user badge fits the rail */
.ff-sidebar [id*="user"],.ff-user-role{font-size:8.5px!important;text-align:center}
#admin-open-btn{font-size:10px!important;padding:5px 2px!important}
/* Checkboxes -> ui/v1 toggle switches */
.ff-region-item input[type=checkbox]{appearance:none;-webkit-appearance:none;width:34px;height:19px;border-radius:999px;background:rgba(6,12,24,.7);border:1px solid var(--glass-brd);position:relative;cursor:pointer;flex:0 0 34px;margin-left:auto!important;order:2}
.ff-region-item{justify-content:space-between}
.ff-region-item input[type=checkbox]::after{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:var(--ink-3);transition:all .15s}
.ff-region-item input[type=checkbox]:checked{background:var(--cyan-soft);border-color:rgba(47,214,232,.5)}
.ff-region-item input[type=checkbox]:checked::after{left:17px;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}
/* Typography closer to ui/v1 */
body,.foreflight-app,button,input,select{font-family:'Inter',-apple-system,'Segoe UI',sans-serif!important}
/* Freq/data values in mono like the design */
.apt-row-value{font-family:ui-monospace,Menlo,monospace}

/* --- Phase 2: floating map surface (ui/v1 map-home) --- */
.zsx-topbar{position:absolute;top:14px;left:14px;z-index:600;display:flex;gap:10px}
.zsx-search-pill{display:flex;align-items:center;gap:10px;padding:11px 16px;min-width:320px;cursor:pointer;
  background:var(--glass);backdrop-filter:blur(18px);border:1px solid var(--glass-brd);border-top-color:rgba(160,200,255,.28);
  border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.45);font-size:13px;color:var(--ink)}
.zsx-search-pill:hover{border-color:rgba(47,214,232,.4)}
.zsx-dim{color:var(--ink-2)}
.zsx-kbd{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--ink-3);border:1px solid var(--glass-brd);border-radius:6px;padding:2px 6px;margin-left:auto}
.zsx-3d-btn{position:absolute;top:14px;right:14px;z-index:600;padding:11px 16px;font-weight:700;font-size:13px;cursor:pointer;color:var(--ink);
  background:var(--glass);backdrop-filter:blur(18px);border:1px solid var(--glass-brd);border-top-color:rgba(160,200,255,.28);border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.45)}
.zsx-3d-btn:hover{color:var(--cyan);border-color:rgba(47,214,232,.45)}
.zsx-status{position:absolute;bottom:16px;left:14px;z-index:600;display:flex;gap:8px}
.zsx-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-size:11px;font-weight:600;color:var(--ink-2);
  background:var(--glass);backdrop-filter:blur(14px);border:1px solid var(--glass-brd)}
.zsx-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green)}
/* UTC clock -> glass chip (ui/v1 top-right pairing with 3D button) */
.ff-utc-time{background:var(--glass)!important;backdrop-filter:blur(14px);border:1px solid var(--glass-brd)!important;border-radius:999px!important;color:var(--ink)!important;box-shadow:0 6px 20px rgba(0,0,0,.4)!important}
.ff-utc-value{color:var(--cyan)!important;font-family:ui-monospace,Menlo,monospace}
/* phone: search pill narrows */
@media (max-width:600px){.zsx-search-pill{min-width:0;flex:1}.zsx-topbar{right:70px}}

/* --- Phase 3: airport panel -> ui/v1 hub look --- */
.apt-panel{width:440px!important}
.apt-panel-header{padding:18px 18px 12px!important}
.apt-panel-code{font-size:30px!important;font-weight:800!important;letter-spacing:.02em}
.apt-panel-name{font-size:13px!important;display:block;margin-top:2px}
/* rows -> card strips (design card-grid feel without touching renderers) */
.apt-panel-body{padding:14px 16px!important}
.apt-row,.apt-freq-row{background:rgba(9,17,32,.5);border:1px solid rgba(120,160,220,.1)!important;border-radius:10px;padding:9px 12px!important;margin-bottom:6px}
.apt-row{border-bottom:1px solid rgba(120,160,220,.1)!important}
.apt-freq-use{color:var(--ink)!important}
.apt-freq-val{font-size:14px!important;text-shadow:0 0 12px rgba(47,214,232,.25)}
.apt-section-header{margin:18px 0 8px!important;padding-left:2px}
.apt-section-header:first-child{margin-top:2px!important}
/* runway cards elevated like the design */
.apt-rwy-card{background:linear-gradient(160deg,rgba(27,44,77,.55),rgba(15,26,48,.55))!important;border-radius:12px!important;box-shadow:0 6px 18px rgba(0,0,0,.35),inset 0 1px 0 rgba(160,200,255,.12)!important;padding:12px 14px!important}
.apt-rwy-title{font-family:ui-monospace,Menlo,monospace;font-size:17px!important;color:var(--ink)!important}
/* remarks as quiet cards */
.apt-remark{background:rgba(9,17,32,.4);border:1px solid rgba(120,160,220,.08)!important;border-radius:9px;padding:8px 11px!important;margin-bottom:6px;color:var(--ink-2)!important}
/* footer actions: first = primary gradient */
.apt-panel-footer{padding:12px 16px!important}
.apt-panel-footer .apt-action-btn:first-child{background:linear-gradient(160deg,#18b6c9,#0d8fa5)!important;border-color:rgba(47,214,232,.5)!important;color:#fff!important;box-shadow:0 6px 18px rgba(31,180,200,.3)!important}
/* wx tab metar block mono glow */
.apt-wx-block{border-radius:10px!important;font-size:12px!important;box-shadow:inset 0 1px 0 rgba(160,200,255,.08)}
@media (max-width:600px){.apt-panel{width:100vw!important}}

/* --- Phase 4: floating AI chat window (ui/v1) --- */
.ff-chat-container{position:fixed!important;right:20px;bottom:20px;left:auto!important;top:auto!important;width:400px!important;max-width:92vw;max-height:560px;z-index:950;
  background:var(--glass)!important;backdrop-filter:blur(20px) saturate(1.3);border:1px solid var(--glass-brd)!important;border-top-color:rgba(160,200,255,.28)!important;
  border-radius:18px!important;box-shadow:0 24px 60px rgba(3,8,20,.7)!important;display:flex;flex-direction:column;overflow:hidden}
.ff-chat-container .ff-chat-header,.ff-chat-container>div:first-child{cursor:grab;user-select:none}
.ff-chat-messages{background:transparent!important;color:var(--ink)!important}
.ff-chat-input{background:rgba(6,12,24,.7)!important;border:1px solid var(--glass-brd)!important;color:var(--ink)!important;border-radius:10px!important}
.ff-chat-send{background:linear-gradient(160deg,#18b6c9,#0d8fa5)!important;border-radius:10px!important;color:#fff!important}
/* minimized -> Ask ZSX AI pill */
.ff-chat-container.zsx-min{width:auto!important;height:auto!important;max-height:none;border-radius:999px!important;cursor:pointer}
.ff-chat-container.zsx-min .ff-chat-messages,.ff-chat-container.zsx-min .ff-chat-input-container{display:none!important}
.ff-chat-container.zsx-min::after{content:"✨ Ask ZSX AI";display:block;padding:13px 20px;font-weight:700;font-size:14px;color:var(--ink)}
.ff-chat-container.zsx-min>*{display:none!important}
@media (max-width:600px){.ff-chat-container{right:0;bottom:0;width:100vw!important;max-width:100vw;border-radius:18px 18px 0 0!important}}

/* --- Phase 4b: ui/v1 parity patches --- */
.ff-nav-item.zsx-soon{opacity:.45}
.ff-nav-item.zsx-soon::after{content:"soon";font-size:8px;color:var(--amber);display:block;margin-top:1px}
.zsx-soon-card{background:var(--glass);backdrop-filter:blur(20px);border:1px solid var(--glass-brd);border-top-color:rgba(160,200,255,.28);
  border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.65);padding:34px 40px;text-align:center;color:var(--ink)}
/* Brief me = primary action (plates becomes secondary) */
#apt-brief-btn{background:linear-gradient(160deg,#18b6c9,#0d8fa5)!important;border-color:rgba(47,214,232,.5)!important;color:#fff!important;box-shadow:0 6px 18px rgba(31,180,200,.3)!important}
.apt-panel-footer .apt-action-btn:first-child{background:var(--glass-hi)!important;color:var(--ink)!important;box-shadow:none!important}
.apt-panel-footer #apt-brief-btn{background:linear-gradient(160deg,#18b6c9,#0d8fa5)!important;color:#fff!important}

/* --- Parity pass: exact ui/v1 token alignment --- */
:root{
  --glass:rgba(19,32,58,.62);--glass-hi:rgba(32,50,84,.66);           /* design values */
  --r-lg:20px;--r-md:14px;--r-sm:9px;
}
.ff-control-panel,.ff-chart-toggle{border-radius:var(--r-lg)!important;
  background:rgba(19,32,58,.62)!important;box-shadow:0 0 0 1px var(--glass-brd),0 18px 50px rgba(3,8,20,.65)!important}
.zsx-search-pill,.zsx-3d-btn{border-radius:var(--r-md)}
/* Picker header + section typography per design (.h2 / .section) */
.ff-chart-toggle-header span{font-size:15px!important;font-weight:700!important;color:var(--ink)!important}
.ff-chart-section-header{font-size:11px!important;font-weight:700!important;text-transform:uppercase!important;
  letter-spacing:.12em!important;color:var(--ink-3)!important;padding:10px 14px 6px!important}
.ff-chart-section-header:hover{color:var(--ink-2)!important;background:transparent!important}
.ff-chart-section-header i{display:none!important}       /* design has no chevrons */
.ff-chart-count{font-size:10px!important;letter-spacing:0!important;text-transform:none!important}
.ff-region-item{font-size:13px!important;color:var(--ink-2)!important;padding:7px 10px!important}
/* Modals adopt design radius + glass */
.ff-modal-content{border-radius:var(--r-lg)!important;background:rgba(19,32,58,.9)!important}
/* apt panel + chat use design glass */
.apt-panel{background:rgba(11,20,36,.86)!important}
.ff-chat-container{background:rgba(19,32,58,.85)!important;border-radius:var(--r-lg)!important}
/* headings across surfaces match design .h1/.h2 weights */
.ff-modal-header h3{font-size:15px!important;font-weight:700!important;color:var(--ink)!important}

/* --- Fix: white hover/base states on the Layers panel --- */
.ff-chart-toggle,.ff-chart-toggle:hover,.ff-chart-toggle:focus-within{
  background:rgba(19,32,58,.62)!important}
.ff-chart-toggle-content,.ff-chart-toggle-header{background:transparent!important;color:var(--ink)!important}
.ff-chart-toggle-header:hover{background:var(--glass-hi)!important}
.ff-chart-toggle-btn{color:var(--ink-2)!important}
.ff-chart-toggle-btn:hover{background:var(--glass-hi)!important;color:var(--cyan)!important}
/* same trap on other hover-white surfaces */
.ff-control-panel:hover{background:rgba(19,32,58,.62)!important}

/* --- Airport hub: centered card per ui/v1 (was right-side drawer) --- */
@media (min-width:601px){
  .apt-panel{
    left:50%!important;right:auto!important;top:50%!important;bottom:auto!important;
    transform:translate(-50%,-50%);
    width:760px!important;max-width:94vw;height:auto!important;max-height:86vh;
    border-radius:20px!important;border:1px solid var(--glass-brd)!important;
    border-top-color:rgba(160,200,255,.28)!important;
    /* huge spread shadow doubles as a dimmed backdrop like the design */
    box-shadow:0 24px 70px rgba(0,0,0,.65),0 0 0 100vmax rgba(4,8,18,.55)!important}
  .apt-panel-body{max-height:56vh;column-count:2;column-gap:14px}
  .apt-row,.apt-freq-row,.apt-rwy-card,.apt-remark,.apt-wx-block,.apt-section-header{break-inside:avoid}
  .apt-section-header{column-span:none}
  .apt-panel-code{font-size:34px!important}
}
/* phone keeps the bottom-sheet behavior (matches mobile artboards) */

/* --- Fix: user profile crushed by rail; Settings/Logout unreachable --- */
.ff-sidebar{overflow:visible!important}
.ff-user-profile{display:flex!important;flex-direction:column!important;align-items:center!important;
  gap:4px!important;padding:10px 4px!important;overflow:visible!important;border-top:1px solid var(--glass-brd)}
.ff-user-avatar{font-size:20px!important;color:var(--ink-2)!important}
.ff-user-info{text-align:center;width:100%}
.ff-user-name{font-size:9px!important;color:var(--ink-2)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:74px;margin:0 auto}
.ff-user-role{font-size:8px!important;color:var(--cyan)!important}
.ff-user-menu-btn{width:64px!important;min-height:30px!important;border-radius:8px!important;
  background:var(--glass-hi)!important;border:1px solid var(--glass-brd)!important;color:var(--ink-2)!important;cursor:pointer}
.ff-user-menu-btn:hover{color:var(--cyan)!important;border-color:rgba(47,214,232,.4)!important}
/* dropdown escapes the narrow rail: floats beside it, bottom-left */
.ff-user-dropdown{position:fixed!important;left:92px!important;bottom:14px!important;top:auto!important;right:auto!important;
  width:190px!important;z-index:1200!important;padding:6px!important;
  background:rgba(19,32,58,.96)!important;border:1px solid var(--glass-brd)!important;
  border-top-color:rgba(160,200,255,.28)!important;border-radius:14px!important;
  box-shadow:0 18px 50px rgba(3,8,20,.65)!important}
.ff-dropdown-item{display:flex!important;gap:9px!important;align-items:center!important;width:100%!important;
  text-align:left!important;padding:9px 12px!important;border:none!important;background:none!important;
  border-radius:8px!important;color:var(--ink)!important;font-size:13px!important;cursor:pointer}
.ff-dropdown-item:hover{background:var(--glass-hi)!important;color:var(--cyan)!important}
.ff-dropdown-divider{border-color:var(--glass-brd)!important;margin:4px 0!important}

/* --- Fix: Layers card overlapped the search pill/top bar --- */
.ff-chart-toggle{top:74px!important;left:14px!important}
@media (max-width:600px){.ff-chart-toggle{top:70px!important}}

/* --- Contrast pass: design glass was tuned for a dark map; live OSM tiles
   are bright, so panels need higher opacity + brighter text to stay readable --- */
:root{--ink:#f2f6ff;--ink-2:#b9c8e4;--ink-3:#8195b8}
.ff-chart-toggle,.ff-chart-toggle:hover,.ff-chart-toggle:focus-within,
.ff-control-panel,.ff-control-panel:hover{background:rgba(13,23,42,.94)!important}
.zsx-search-pill,.zsx-3d-btn,.zsx-chip,.ff-utc-time{background:rgba(13,23,42,.92)!important;color:var(--ink)!important}
.zsx-dim{color:var(--ink-2)}
.apt-panel{background:rgba(11,20,36,.97)!important}
.ff-chat-container{background:rgba(13,23,42,.95)!important}
.ff-modal-content{background:rgba(13,23,42,.97)!important}
#appr-card{background:rgba(13,23,42,.95)!important}
.ff-sidebar{background:rgba(9,16,30,.97)!important}
/* labels and values pop against the darker glass */
.ff-region-item{color:var(--ink-2)!important}
.ff-region-item:hover{color:var(--ink)!important}
.ff-chart-section-header{color:var(--ink-3)!important}
.apt-row-label,.apt-freq-note,.apt-panel-name{color:var(--ink-2)!important}
.apt-row-value{color:var(--ink)!important}
.search-result-name{color:var(--ink)!important}
.search-result-location{color:var(--ink-2)!important}

/* --- Aeronautical airport marks (ui/v1 .apt-tag / --rwy tokens) ---
   The ICAO tag floats fully ABOVE its anchor (the footprint's north edge):
   translate(-50%, -100% - gap) guarantees it never overlaps the slab. */
.zsx-apt-tag{
    position:absolute; transform:translate(-50%, calc(-100% - 9px));
    padding:2px 8px; border-radius:6px; white-space:nowrap;
    font-family:'JetBrains Mono',ui-monospace,Menlo,monospace;
    font-size:11px; font-weight:700; letter-spacing:.06em;
    color:#f2f6ff; background:rgba(17,21,28,.92);
    border:1px solid rgba(120,160,220,.16);
    box-shadow:0 2px 6px rgba(0,0,0,.5);
    pointer-events:auto; cursor:pointer;
}
.zsx-apt-tag::after{
    content:""; position:absolute; left:50%; bottom:-4px; width:6px; height:6px;
    transform:translateX(-50%) rotate(45deg); background:rgba(17,21,28,.92);
    border-right:1px solid rgba(120,160,220,.16);
    border-bottom:1px solid rgba(120,160,220,.16);
}

/* Taxiway designator badge (z>=14) — ui/v1 .twy-badge */
.zsx-twy-badge{
    position:absolute; transform:translate(-50%,-50%);
    display:inline-block; min-width:17px; padding:1px 4px; border-radius:4px;
    text-align:center; white-space:nowrap;
    font-family:'JetBrains Mono',ui-monospace,Menlo,monospace;
    font-size:10px; font-weight:700; color:#f2f6ff;
    background:rgba(17,21,28,.88); border:1px solid rgba(242,246,255,.45);
    pointer-events:none;
}

/* Surface landmark chip variants (ui/v1 .twy-badge.cat/.hs) */
.zsx-twy-badge.cat{ border-color:rgba(242,246,255,.3); color:#9fb2d2; }
.zsx-twy-badge.hs{ background:rgba(59,42,10,.92); border-color:#ffb547; color:#ffb547; }
