/* GeoAtlas PWA: install/offline chrome, dialogs, and the phone layout. */
.ga-pwa-actions{display:flex;align-items:center;gap:6px;margin-left:auto}
.ga-net-pill{display:none;align-items:center;gap:5px;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:700;letter-spacing:.02em;border:1px solid #6a5a2f;background:#3a321b;color:#f3d48b;white-space:nowrap}
.ga-net-pill.show{display:inline-flex}.ga-net-pill.queued{border-color:#2f5d6a;background:#173a44;color:#aee8e2}
.ga-net-pill i{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}
.ga-top-btn{border:1px solid #2f5268;background:#132b3d;color:#d8eef2;border-radius:9px;padding:6px 10px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;min-height:34px}
.ga-top-btn:hover{border-color:#6bd6d0}.ga-top-btn.primary{background:#6bd6d0;color:#062027;border-color:#6bd6d0}
.ga-hidden{display:none!important}
.ga-update{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;z-index:9000;background:#12293b;border:1px solid #6bd6d0;color:#eaf1f6;border-radius:12px;padding:10px 12px;display:flex;gap:10px;align-items:center;box-shadow:0 10px 30px #0008;font-size:13px}
body.ga-mobile .ga-update{bottom:76px}
/* map overlay buttons */
.ga-map-fab{position:absolute;right:12px;z-index:6;display:flex;flex-direction:column;gap:8px;bottom:118px}
.ga-fab{width:44px;height:44px;border-radius:12px;border:1px solid #2f5268;background:#0f2433ee;color:#e8f6f7;font-size:19px;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 14px #0007;touch-action:manipulation}
.ga-fab.on{background:#6bd6d0;color:#062027;border-color:#6bd6d0}
.ga-fab.busy{animation:gaPulse 1.1s infinite}
@keyframes gaPulse{50%{opacity:.45}}
.ga-legacy-me{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#2f8cff;border:3px solid #fff;box-shadow:0 0 0 6px #2f8cff44;z-index:5;pointer-events:none}
/* dialogs */
.ga-dialog{border:1px solid #315065;border-radius:16px;background:#0f2232;color:#eaf1f6;padding:0;width:min(560px,96vw);max-height:92vh;box-shadow:0 30px 80px #000a}
.ga-dialog::backdrop{background:#020a10b3}
.ga-dialog header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #263c50;position:sticky;top:0;background:#0f2232;z-index:1}
.ga-dialog header h3{margin:0;font-size:17px}.ga-dialog .ga-body{padding:14px 16px 18px;overflow:auto;max-height:calc(92vh - 60px)}
.ga-dialog label{display:block;font-size:12.5px;color:#a9c0d0;margin:10px 0 4px}
.ga-dialog input[type=text],.ga-dialog input[type=tel],.ga-dialog input[type=email],.ga-dialog select,.ga-dialog textarea{width:100%;box-sizing:border-box;background:#0b1a27;border:1px solid #2c475d;color:#eaf1f6;border-radius:9px;padding:10px;font:inherit;font-size:15px}
.ga-dialog textarea{min-height:92px;resize:vertical}
.ga-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ga-row>*{flex:1}
.ga-btn{border:1px solid #2f5268;background:#16324a;color:#e7f4f6;border-radius:10px;padding:10px 14px;font-weight:700;font-size:14px;cursor:pointer;min-height:44px}
.ga-btn.primary{background:#6bd6d0;color:#062027;border-color:#6bd6d0}.ga-btn.danger{border-color:#7a3a40;color:#f2b3b7;background:#2c171b}
.ga-btn:disabled{opacity:.5;cursor:not-allowed}
.ga-btn.small{min-height:32px;padding:5px 10px;font-size:12px}
.ga-note{font-size:12.5px;color:#93a9bc;line-height:1.45}.ga-warn{color:#f3d48b}.ga-err{color:#f2a7ab}.ga-ok{color:#9fe3b5}
.ga-stat{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}
.ga-stat div{background:#0b1a27;border:1px solid #263c50;border-radius:10px;padding:8px;text-align:center}.ga-stat b{display:block;font-size:17px}.ga-stat small{color:#93a9bc;font-size:11px}
.ga-progress{height:10px;border-radius:6px;background:#0b1a27;border:1px solid #263c50;overflow:hidden;margin:10px 0}.ga-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#3fb7b0,#aee8e2);transition:width .2s}
.ga-list{display:grid;gap:8px;margin-top:8px}
.ga-item{border:1px solid #263c50;background:#0b1a27;border-radius:11px;padding:9px 10px;display:flex;gap:10px;align-items:center}
.ga-item .grow{flex:1;min-width:0}.ga-item b{display:block;font-size:13.5px}.ga-item small{color:#93a9bc;font-size:11.5px}
.ga-item img{width:52px;height:52px;object-fit:cover;border-radius:8px;flex:none}
.ga-seg{display:flex;border:1px solid #2c475d;border-radius:10px;overflow:hidden}.ga-seg button{flex:1;background:#0b1a27;color:#a9c0d0;border:0;padding:10px;font-weight:700;cursor:pointer;min-height:42px}.ga-seg button.on{background:#1f4a5c;color:#eaf1f6}
.ga-preview{background:#0b1a27;border:1px dashed #2f5268;border-radius:10px;padding:10px;font-size:13px;line-height:1.45;word-break:break-word}
.ga-gps{background:#0b1a27;border:1px solid #263c50;border-radius:10px;padding:10px;font-size:13px}
.ga-photo-prev{max-width:100%;max-height:220px;border-radius:10px;margin-top:8px;display:block}
.ga-check{display:flex!important;gap:9px;align-items:flex-start;color:#d5e4ee!important;font-size:13px!important}.ga-check input{margin-top:3px;width:18px;height:18px;flex:none}
.ga-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:6px}.ga-table td,.ga-table th{border-bottom:1px solid #22384b;padding:5px 4px;text-align:left}
.ga-pack-box{position:absolute;border:2px dashed #f3d48b;background:#f3d48b14;pointer-events:none;z-index:4}

/* -------------------------------------------------- phone layout (<=760px) */
body.ga-mobile{--ga-top:54px;--ga-nav:62px;overscroll-behavior:none}
body.ga-mobile .topbar{height:var(--ga-top);padding:0 10px;gap:8px;position:sticky;top:0;z-index:60}
body.ga-mobile .topbar .brand span,body.ga-mobile .topbar .region-pill{display:none}
body.ga-mobile .topbar .brand .logo-small{width:34px;height:34px;font-size:16px}
body.ga-mobile #accountLabel{display:none}
body.ga-mobile .main-shell{padding-bottom:calc(var(--ga-nav) + env(safe-area-inset-bottom))}
body.ga-mobile .rail{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto!important;min-width:0!important;height:calc(var(--ga-nav) + env(safe-area-inset-bottom));padding:4px 6px env(safe-area-inset-bottom);flex-direction:row;overflow-x:auto;overflow-y:hidden;gap:2px;z-index:70;border-right:0;border-top:1px solid var(--border);background:#0b1824f2;backdrop-filter:blur(6px);scrollbar-width:none}
body.ga-mobile .rail::-webkit-scrollbar{display:none}
body.ga-mobile .rail-tab{width:64px!important;min-width:64px;min-height:52px!important;padding:4px 0;margin:0}
body.ga-mobile .rail-tab small{font-size:10px!important}
body.ga-mobile .ga-top-btn .lbl{display:none}
/* explore: full-bleed map under a bottom sheet */
body.ga-mobile.ga-explore .workspace-head,body.ga-mobile.ga-explore .ga-panel-manager,body.ga-mobile.ga-explore .ga-layout-bar,body.ga-mobile.ga-explore .map-hint,body.ga-mobile.ga-explore .ga-resize-help{display:none!important}
#gaMobileMapHost{display:none}
body.ga-mobile.ga-explore #gaMobileMapHost{display:block;position:fixed;left:0;right:0;top:var(--ga-top);bottom:calc(var(--ga-nav) + env(safe-area-inset-bottom));z-index:10;background:#273d47}
body.ga-mobile.ga-explore #gaMobileMapHost>.map-stage{position:absolute!important;inset:0;min-height:0!important;height:auto!important;border-radius:0;border:0;margin:0}
body.ga-mobile.ga-explore #gaMobileMapHost .map-zoom{top:auto;bottom:calc(var(--ga-sheet-peek) + 14px);right:12px;left:auto}
body.ga-mobile.ga-explore #gaMobileMapHost .map-zoom button{width:44px;height:44px;font-size:22px}
body.ga-mobile.ga-explore #gaMobileMapHost .ga-map-fab{bottom:calc(var(--ga-sheet-peek) + 118px)}
body.ga-mobile.ga-explore #gaMobileMapHost .maplibregl-ctrl-bottom-left,body.ga-mobile.ga-explore #gaMobileMapHost .maplibregl-ctrl-bottom-right{bottom:var(--ga-sheet-peek)}
body.ga-mobile.ga-explore #gaMobileMapHost .map-credit{bottom:calc(var(--ga-sheet-peek) + 2px)}
body.ga-mobile{--ga-sheet-peek:92px}
body.ga-mobile.ga-explore #explorePane .map-layout{position:fixed;left:0;right:0;bottom:calc(var(--ga-nav) + env(safe-area-inset-bottom));height:var(--ga-sheet-h,92px);max-height:calc(100dvh - var(--ga-top) - var(--ga-nav) - 24px);z-index:30;display:block!important;padding:0 10px 14px!important;margin:0;background:#0d1d2bf7;border-top:1px solid #315065;border-radius:18px 18px 0 0;box-shadow:0 -12px 30px #0009;overflow-y:auto;overscroll-behavior:contain;transition:height .22s ease;min-height:0!important;grid-template-columns:none!important;-webkit-overflow-scrolling:touch}
body.ga-mobile.ga-explore #explorePane .map-layout.dragging{transition:none}
body.ga-mobile.ga-explore #explorePane .map-card{min-height:0!important;display:block}
body.ga-mobile.ga-explore #explorePane .control-card{max-height:none!important;margin-top:10px}
body.ga-mobile.ga-explore .ga-sheet-handle{display:block}
.ga-sheet-handle{display:none;position:sticky;top:0;z-index:3;margin:0 -10px 6px;padding:8px 0 6px;background:#0d1d2bf7;cursor:grab;touch-action:none;text-align:center}
.ga-sheet-handle i{display:block;width:44px;height:5px;border-radius:3px;background:#4d6c82;margin:0 auto 6px}
.ga-sheet-handle span{font-size:12px;color:#a9c0d0;font-weight:700}
body.ga-mobile.ga-explore #explorePane .map-top{flex-wrap:wrap;gap:8px}
body.ga-mobile.ga-explore #explorePane .map-actions button{min-height:38px}
body.ga-mobile .ga-dialog{width:100vw;max-width:100vw;max-height:94dvh;margin:auto 0 0;border-radius:18px 18px 0 0;border-bottom:0}
body.ga-mobile .ga-dialog .ga-body{max-height:calc(94dvh - 60px)}
body.ga-mobile .ga-dialog[open]{animation:gaUp .2s ease}
@keyframes gaUp{from{transform:translateY(40px);opacity:.4}}
body.ga-mobile .maplibregl-ctrl-group button{width:40px;height:40px}
/* invites & trials */
.ga-trial-banner{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:10px 26px 0;padding:9px 14px;border:1px solid #2c5262;border-radius:11px;background:#183345;color:#d7e7ef;font-size:12.5px}
.ga-trial-banner.urgent{border-color:#a8843c;background:#3a2f17}
.ga-trial-banner a.ga-btn{text-decoration:none}
.ga-inv-scroll{max-height:260px;overflow:auto}
#gaInvAdmin{grid-column:1/-1}
.ga-inv-switches .check-row{align-items:flex-start}
body:not(.ga-mobile) .ga-invite-tab{display:none!important}
body.ga-mobile #gaInviteBtn{display:none!important}
body.ga-mobile .ga-trial-banner{margin:6px 8px 0}
