:root{color-scheme:dark;--bg:#10151b;--surface:#1b242d;--line:#34404a;--text:#edf2f5;--muted:#aab7c2;--accent:#c9ad7a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,sans-serif}a{color:var(--accent)}.shell{max-width:1100px;margin:auto;padding:1.25rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}.brand{font-weight:750;letter-spacing:.05em}.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.25rem;margin:1.5rem 0}.muted{color:var(--muted)}.crumbs{font-size:.875rem;color:var(--muted);margin-top:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem 1rem;border-radius:10px;border:1px solid var(--line);background:var(--accent);color:#15191e;font-weight:700;cursor:pointer}.btn:focus-visible,a:focus-visible{outline:3px solid #fff;outline-offset:3px}@media(min-width:700px){.shell{padding:2rem}.panel{padding:2rem}}
/* v0.9: compact touch navigation shared across all player pages. */
.mainnav{display:flex;gap:.45rem;overflow-x:auto;overscroll-behavior-x:contain;padding:.65rem .7rem;scrollbar-width:thin;position:sticky;top:0;z-index:50;background:#10151b;border-bottom:1px solid #354252}
.mainnav a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:44px;padding:.55rem .8rem;border:1px solid #354252;border-radius:10px;color:#f1f5f9;text-decoration:none;font-size:.92rem;white-space:nowrap}
.mainnav a:focus-visible,.mainnav a:hover{outline:2px solid #7dd3fc;outline-offset:1px;background:#273749}
@media(max-width:680px){.mainnav{margin:0 -.65rem}.mainnav a{font-size:.88rem}}

/* Immersive mobile map and compact fixed game chrome */
.topbar{position:sticky;top:0;z-index:1100;background:var(--bg);padding:.55rem .75rem;min-height:52px}
.wallet-badge{font-variant-numeric:tabular-nums;font-weight:750;white-space:nowrap;padding:.35rem .7rem;border:1px solid var(--line);border-radius:999px;background:#223029;color:#e9d8a7}
.mainnav{top:52px;z-index:1090}
.action-pin{background:transparent;border:0}
.action-pin span{display:grid;place-items:center;width:38px;height:38px;background:#1c2833;border:2px solid #c9ad7a;border-radius:12px;box-shadow:0 3px 10px #0009;font-size:21px}
.leaflet-popup-content-wrapper{background:#1b242d;color:#edf2f5;border:1px solid #c9ad7a;max-width:calc(100vw - 50px)}
.leaflet-popup-content{min-width:170px;max-width:min(280px,calc(100vw - 85px))}
.leaflet-popup-content button{min-height:40px;margin:.25rem .35rem .25rem 0;border-radius:8px;padding:.35rem .6rem}
.leaflet-popup-tip{background:#1b242d}
.map-page{height:100dvh;overflow:hidden}
.map-page .shell{height:100dvh;max-width:none;padding:0;display:flex;flex-direction:column}
.map-page .topbar,.map-page .mainnav{flex-shrink:0}
.map-page .crumbs,.map-page main>h1{display:none}
.map-page main{position:relative;min-height:0;flex:1;display:flex;flex-direction:column}
.map-page .map-layout{flex:1;min-height:0;position:relative}
.map-page #game-map{position:absolute;inset:0;background:#202b35}
.map-page .map-status{position:absolute;left:12px;right:12px;bottom:18px;z-index:900;pointer-events:none;display:flex;gap:8px;align-items:center;justify-content:center}
.map-page #gps-status{display:block;max-width:100%;padding:7px 12px;border:1px solid #506173;border-radius:999px;background:#10151be8;color:#edf2f5;font-size:12px;text-align:center}
.map-page #locate-player:not([hidden]){pointer-events:auto}
.map-page main>.panel{display:none}
.map-page main>.panel:last-child{display:none}
@media(max-width:680px){
  .map-page .mainnav{margin:0;padding:.3rem .45rem;min-height:51px}
  .map-page .mainnav a{min-height:39px;padding:.3rem .6rem}
  .map-page .topbar{min-height:52px}
}

/* Release-oriented interface */
.brand{display:inline-flex;align-items:center;gap:.65rem;color:#f6f0e6;text-decoration:none;font-weight:850;font-size:1.05rem;letter-spacing:.015em}
.brand-mark{display:grid;place-items:center;width:36px;height:36px;background:linear-gradient(140deg,#d6b67e,#8d6637);border-radius:10px;color:#10151b;font-family:Georgia,serif;font-size:24px}
.brand-accent{color:var(--accent)}
.wallet-badge{display:flex;align-items:center;gap:.5rem}
.wallet-label{color:#b8c7bf;font-size:.74rem;font-weight:500}
.hero-panel{background:linear-gradient(125deg,#263541,#121a21 65%,#3b3023);padding:clamp(1.5rem,4vw,3rem);border-color:#6e6049}
.hero-panel h2{font-size:clamp(1.5rem,4vw,2.4rem);line-height:1.15;margin:.6rem 0}
.eyebrow{font-size:.75rem;letter-spacing:.17em;color:#d5b77c;font-weight:800}
.transaction-list{display:grid;gap:.45rem}
.transaction-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;background:#121a21;border:1px solid #354252;border-radius:10px}
.transaction-row small{display:block;color:var(--muted);font-size:.8rem;margin-top:.2rem}
.positive{color:#84d9a0}.negative{color:#f0a3a3}
.help-tip{display:inline-grid;place-items:center;position:relative;vertical-align:middle;width:26px;height:26px;border:1px solid #8d9ba6;border-radius:50%;font-size:15px;cursor:help;color:#e2d1a8}
.help-tip-content{display:none;position:absolute;z-index:100;top:calc(100% + 8px);left:0;width:min(290px,80vw);padding:12px;background:#2b3945;color:#fff;font-size:.85rem;line-height:1.5;border:1px solid #a7a3a0;border-radius:9px;box-shadow:0 8px 20px #0009;text-align:left}
.help-tip:hover .help-tip-content,.help-tip:focus .help-tip-content,.help-tip:focus-within .help-tip-content{display:block}
.action-pin span{color:#f6d39a;font-size:18px}
@media(max-width:420px){.wallet-label{font-size:.65rem}.brand{font-size:.92rem}.brand-mark{width:30px;height:30px;font-size:21px}}

.world-pin.dealer span{color:#78c9fa;border-color:#3487bc}
.world-pin.warehouse span{color:#e5b971;border-color:#ac813c}
.world-pin.club span{color:#e2a4f4;border-color:#9b5fb3}
.world-pin.restaurant span{color:#9cdda5;border-color:#4b9c61}
.world-pin.fuel span{color:#e0ad82;border-color:#a77b58}
.world-pin.store span{color:#9bc9d2;border-color:#5d929a}
.world-pin.location-cluster .world-cluster-icons{display:flex;align-items:center;justify-content:center;gap:1px;width:48px;height:38px;padding:3px;background:#1c2833;border:2px solid #b8c2b8;border-radius:12px;box-shadow:0 3px 10px #0009}
.world-pin.location-cluster .world-cluster-glyph{display:grid;place-items:center;width:auto;height:auto;background:transparent;border:0;box-shadow:none;font-size:13px}
.world-pin.location-cluster .world-cluster-glyph.fuel{color:#e0ad82}
.world-pin.location-cluster .world-cluster-glyph.store{color:#9bc9d2}
.world-pin.location-cluster .world-cluster-glyph.dealer{color:#78c9fa}
.world-pin.location-cluster .world-cluster-glyph.warehouse{color:#e5b971}
.world-pin.location-cluster .world-cluster-glyph.club{color:#e2a4f4}
.world-pin.location-cluster .world-cluster-glyph.restaurant{color:#9cdda5}
.world-pin.location-cluster .world-cluster-count{position:absolute;top:-5px;right:-5px;width:18px;height:18px;background:#c9ad7a;color:#17202a;border:1px solid #17202a;border-radius:50%;font-size:11px;font-weight:700;line-height:16px;text-align:center}
.world-location-entry{padding:.45rem 0;border-top:1px solid #59636b}
.world-location-entry p{margin:.35rem 0}

.mission-hero{background:linear-gradient(120deg,#2d3034,#142029 70%,#332a1f);border-color:#796144}
.mission-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-top:1.2rem}
.mission-stats>div{padding:.8rem;background:#101820bb;border:1px solid #445160;border-radius:12px}
.mission-stats strong{display:block;font-size:1.5rem;color:#e9cb91}
.mission-stats small{display:block;color:#bbc7d0;font-size:.76rem}
.mission-card{background:linear-gradient(135deg,#1b2730,#151e27);border:1px solid #3d4e5b;border-radius:14px;padding:1.15rem;margin:1rem 0}
.mission-card h3{font-size:1.15rem;margin:.8rem 0 .4rem}
.mission-card-top{display:flex;gap:.5rem;justify-content:space-between;align-items:center;flex-wrap:wrap}
.mission-type{font-size:.76rem;color:#eac98f;text-transform:uppercase;letter-spacing:.09em}
.mission-state{font-size:.76rem;background:#293845;color:#e5ebee;border-radius:20px;padding:.35rem .6rem}
.mission-route{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;padding:.75rem;background:#101921;border-radius:9px;margin:.9rem 0}
.mission-route span:nth-child(2){color:#e3b972;font-weight:800}
.mission-reward{font-weight:750;color:#a8dfb5}
.mission-stage{padding-top:.75rem;border-top:1px solid #384755}
.mission-stage-status{display:block;margin-top:.5rem;color:#e6c78b}
.mission-empty{border:1px dashed #576574;border-radius:12px;padding:1.5rem;color:#c8d1d8}
.mission-history{display:grid;gap:.5rem}
.mission-history>div{display:flex;justify-content:space-between;gap:1rem;padding:.75rem;border-bottom:1px solid #374550}
.mission-history small{color:#aab8c3}
@media(max-width:480px){.mission-stats{gap:.35rem}.mission-stats>div{padding:.6rem}.mission-stats strong{font-size:1.25rem}.mission-stats small{font-size:.65rem}.mission-history>div{flex-direction:column;gap:.25rem}}

/* Touch-first navigation without a horizontally scrolling tab strip. */
.mainnav{display:block;overflow:visible;overscroll-behavior:initial}
.mainnav-links{display:flex;flex-wrap:wrap;gap:.45rem}
.mainnav-toggle{display:none}
@media(max-width:680px){
  .mainnav{position:sticky;margin:0 -.65rem;padding:.35rem .75rem;overflow:visible}
  .mainnav-toggle{display:flex;align-items:center;gap:.65rem;width:100%;min-height:44px;padding:.55rem .8rem;border:1px solid #354252;border-radius:10px;background:#1b242d;color:#f1f5f9;font:inherit;font-weight:700;text-align:left}
  .mainnav-toggle::after{content:"";margin-left:auto;border:solid currentColor;border-width:0 2px 2px 0;padding:4px;transform:rotate(45deg);transition:transform .15s}
  .mainnav.is-open .mainnav-toggle::after{transform:rotate(225deg)}
  .mainnav-links{display:none;position:absolute;top:100%;left:0;right:0;z-index:1200;max-height:min(70dvh,520px);overflow-y:auto;padding:.65rem;background:#151d25;border:1px solid #354252;border-radius:0 0 12px 12px;box-shadow:0 12px 28px #000b;flex-direction:column}
  .mainnav.is-open .mainnav-links{display:flex}
  .mainnav-links a{width:100%;min-height:44px}
  .map-page .mainnav{padding:.35rem .75rem;min-height:0}
  .map-page .mainnav-links{position:absolute}
}
.action-pin.pickup span{background:#24303a;border-color:#74889a;color:#b9c9d5}
.action-pin.delivery span{background:#26332f;border-color:#799386;color:#c0d1c6}
.action-pin.robbery span{background:#352e31;border-color:#987d84;color:#d6b9bf}
.action-pin.business span{background:#353228;border-color:#9c8d69;color:#ded0aa}
.action-pin.other span{background:#2b3035;border-color:#78818a;color:#c3c9ce}
.world-pin.dealer span{color:#a6cce0;border-color:#607f91}
.world-pin.warehouse span{color:#d2bd94;border-color:#897753}
.world-pin.club span{color:#cfb3d6;border-color:#856d8c}
.world-pin.restaurant span{color:#b9d1bc;border-color:#708d74}
.help-tip-content.is-positioned{position:fixed;z-index:2000;margin:0;width:min(290px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;box-shadow:0 10px 28px #000c}
@media(max-width:680px){.help-tip{font-size:14px;width:24px;height:24px}.help-tip-content{left:0;width:min(290px,calc(100vw - 24px));max-width:calc(100vw - 24px)}}

.mainnav-logout{min-height:44px;padding:.55rem .8rem;border:1px solid #5c4848;border-radius:10px;background:#332628;color:#e6c2c2;font:inherit;font-weight:700;cursor:pointer}
.mainnav-logout:hover{background:#473135}
@media(max-width:680px){.mainnav-logout{width:100%;text-align:left}}

/* Compact marker for genuinely co-located venues and actions */
.world-pin.location-cluster .world-cluster-icons{width:44px;height:34px;gap:5px;padding:2px;border-radius:11px}
.world-pin.location-cluster .world-cluster-glyph{font-size:14px}
.world-pin.location-cluster .world-cluster-glyph.pickup{color:#b9c9d5}
.map-overlap-tooltip{pointer-events:auto;max-width:min(300px,calc(100vw - 32px));white-space:normal;background:#1b242d;color:#edf2f5;border:1px solid #c9ad7a;border-radius:9px;box-shadow:0 6px 18px #0009;padding:6px}
.map-overlap-tooltip:before{border-top-color:#c9ad7a}
.map-overlap-tooltip .map-overlap-entry+.map-overlap-entry{border-top:1px solid #59636b}
.map-overlap-choice{display:block;width:100%;min-height:38px;padding:.45rem .65rem;border:0;border-radius:6px;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}
.map-overlap-choice:hover,.map-overlap-choice:focus{background:#34424b}
@media(max-width:680px){.map-overlap-tooltip{max-width:calc(100vw - 32px)}}
