/* Tonka Explorer v2 — css/track.css (owner: track agent). Readout bar + nearest strip (DESIGN §5.10), locate states (§5.5).
   Positions (.trackbar top 8 / .nearstrip top 76 / .locate) come from app.css; this file styles the contents. */
.trackbar[hidden],.nearstrip[hidden]{display:none!important}
.trackbar .tb{position:relative;display:flex;align-items:center;gap:6px;min-height:60px;padding:6px 6px 6px 10px;border-radius:14px;background:rgba(20,35,44,.9);color:#fff;box-shadow:var(--shadow-2)}
.trackbar .cell{display:flex;flex-direction:column;justify-content:center;min-width:0;flex:1 1 auto;line-height:1}
.trackbar .cell b{display:block;font:700 22px/1 var(--font);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.trackbar .cell.spd{flex:0 0 auto;min-width:40px}
.trackbar .cell.spd b{font-size:32px}
.trackbar .cell span{display:block;font:500 10px/1.2 var(--font);color:#BFD5E4;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trackbar .tbtn{flex:none;width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.14);color:#fff;font:700 14px var(--font);display:flex;align-items:center;justify-content:center;border:0}
.trackbar .tbtn.mode{width:auto;min-width:44px;padding:0 6px;letter-spacing:0}
@media (max-width:400px){.trackbar .cell b{font-size:20px}.trackbar .tbtn.mode{font-size:13px}}   /* 390 px phones: "18 · SW 225° · 30–40 ft · Course · ×" must fit on one line */
.trackbar .tbtn.x{font-size:24px;line-height:1}
.trackbar .tbtn:active{background:rgba(255,255,255,.28)}
.trackbar .tbtn:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:none}
.trackbar.stale .cell b,.trackbar.acquiring .cell b{color:#BFD5E4;opacity:.75}
.trackbar.acquiring .cell.dep span{color:#FFD08A}
.tb-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* nearest launch / eat / fuel / dock chips (v1 K feature) */
.nearstrip{padding:2px 0 4px}
.nchip{position:relative;flex:none;height:40px;padding:0 12px 0 5px;border-radius:20px;background:var(--card);border:1px solid var(--line);font:600 13px var(--font);color:var(--ink);display:flex;align-items:center;gap:7px;box-shadow:var(--shadow-1);white-space:nowrap}
.nchip::before{content:'';position:absolute;inset:-2px}
.nchip i{width:28px;height:28px;border-radius:50%;background:var(--k,#7B3FA0);color:#fff;font:700 13px/28px var(--font);font-style:normal;text-align:center;flex:none}
.nchip em{font:500 12px var(--font);font-style:normal;color:var(--mute)}
body.focus .nearstrip{left:64px}   /* clear the north arrow (top:84, left:12) when the strip shows at low speed in course-up */

/* locate button extra state: tracking live but follow paused by a drag → tap re-centres */
.locate.live.paused{background:var(--card);color:var(--navy);border:2px solid var(--navy)}
.locate[aria-disabled="true"]{opacity:.55}

/* "+ Buoy" (mark a buoy at the GPS fix) and route follow's next-stop line (integration 2.0.5) */
.trackbar .tb{gap:4px;padding-left:8px}
.trackbar .tbtn.buoy{flex-direction:column;gap:1px;font:700 11px/1 var(--font)}
.trackbar .tbtn.buoy b{font:700 18px/.9 var(--font)}
.trackbar .tbtn.buoy[aria-expanded="true"]{background:var(--card);color:var(--navy)}
.trackbar .tbnext{display:flex;align-items:center;gap:6px;margin-top:4px;min-height:48px;padding:2px 4px 2px 12px;border-radius:12px;background:rgba(20,35,44,.9);color:#fff;box-shadow:var(--shadow-2)}
.trackbar .tbnext .nx{flex:1;min-width:0;font:700 16px/1.2 var(--font);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trackbar .tbnext .tbtn.end{width:auto;padding:0 12px;font-size:14px}
.trackbar.hasnext + .nearstrip{top:128px}
.buoypick{position:absolute;left:8px;right:8px;bottom:calc(var(--tab-h) + var(--safe-b) + 8px);z-index:1005;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-2);padding:10px 10px 12px}   /* thumb height: one-handed */
.buoypick .bp-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:2px 4px 8px}
.buoypick .bp-h b{font:700 17px var(--font);color:var(--ink)}
.buoypick .bp-h span{font:500 12px var(--font);color:var(--mute);white-space:nowrap}
.buoypick .bp-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.buoypick .bp-k{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 10px;border-radius:12px;background:var(--surf);border:1px solid var(--line);font:600 15px/1.15 var(--font);color:var(--ink);text-align:left}
.buoypick .bp-k svg{width:30px;height:30px;flex:none}
.buoypick .bp-k.bp-x{justify-content:center;background:var(--card);color:var(--navy)}
.buoypick .bp-k:active{background:#E3ECF1}
