/* XMap stylesheet: four sections, one shared control layout.
 * 01 COMMON: components, state rules and shared responsive sizing.
 * 02 NATIVE: mobile=1 / xmap_mobile.php, independent of viewport width.
 * 03 WEB: shared browser account behavior and wide browser layout.
 * 04 WEB MINI: compact browser differences; inherits WEB behavior.
 * Before adding CSS, find the existing component and edit that rule.
 * Right/left dock geometry belongs only to COMMON. Never duplicate it per mode.
 * Readiness hides controls until settings are applied; JS does not rebuild docks.
 */
/* 01 COMMON — all map modes */
@font-face  {
    font-family:"Material Symbols Outlined";
    font-style:normal;
    font-weight:400;
    font-display:block;
    src:url("mobile-controls/material-symbols-outlined.ttf?v=1") format("truetype");
}
:where(.material-symbols-outlined) {
    font-family:"Material Symbols Outlined";
    font-weight:300;
    font-style:normal;
    font-size:24px;
    line-height:1;
    letter-spacing:normal;
    text-transform:none;
    display:inline-block;
    white-space:nowrap;
    word-wrap:normal;
    direction:ltr;
    font-feature-settings:"liga";
    font-variation-settings:"FILL" 0,"wght" 300,"GRAD" 0,"opsz" 48;
}
/* Theme and the single safe bottom inset used by both docks. */
:root {
    --xmap-controls-bottom:max(8px,env(safe-area-inset-bottom,0px));
    --panel:#101827;
    --panel2:#162235;
    --line:#2b3950;
    --text:#f8fafc;
    --muted:#a7b2c4;
    --accent:#f59e0b;
    --ok:#10b981;
    --bad:#ef4444;
}
* {
    box-sizing:border-box;
}
html,
body {
    width:100%;
    height:100%;
    margin:0;
    overflow:hidden;
    background:#cfd4dc;
    color:var(--text);
    font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}
input {
    font:inherit;
}
button {
    font:inherit;
    cursor:pointer;
}
.hidden {
    display:none!important;
}
#map {
    position:fixed;
    inset:0;
    width:100vw;
    height:100vh;
    background:#cfd4dc;
}
.btn.is-loading {
    opacity:.78;
    cursor:wait;
}
.btn.is-loading:before {
    content:"";
    display:inline-block;
    width:12px;
    height:12px;
    margin-right:7px;
    vertical-align:-2px;
    border:2px solid currentColor;
    border-right-color:transparent;
    border-radius:50%;
    animation:xmap-spin .7s linear infinite;
}
@keyframes xmap-spin {
    to {
        transform:rotate(360deg);
    }
}
.xmap-map-ui #authOpenBtn,
.xmap-map-ui #logoutBtn,
.xmap-map-ui #infoToggleBtn,
.xmap-map-ui #legendToggleBtn,
.xmap-map-ui #debugToggleBtn,
.xmap-map-ui #mobileMenuBtn,
.xmap-map-ui #collapsedPanelRestore,
.xmap-map-ui #authPanel,
.xmap-map-ui #infoPanel,
.xmap-map-ui .debug,
.xmap-map-ui .mobile-data-load-actions {
    display:none!important;
}
.xmap-map-ui .left-panel {
    display:none!important;
}
.xmap-map-ui .left-panel.open {
    display:block!important;
}
.mobile-find-card {
    display:grid;
    gap:9px;
    width:100%;
    padding:10px;
    border:1px solid #334155;
    border-radius:10px;
    background:#101827;
    color:#f8fafc;
}
.mobile-find-card-heading {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:8px;
    min-width:0;
}
.mobile-find-card-heading b {
    min-width:0;
    font-size:15px;
    line-height:1.25;
    overflow-wrap:anywhere;
}
.mobile-find-card-visibility {
    flex:0 0 auto;
    padding:3px 7px;
    border:1px solid #334155;
    border-radius:999px;
    color:#cbd5e1;
    font-size:10px;
    line-height:1.2;
}
.mobile-find-card-body {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    align-items:stretch;
}
.mobile-find-card img {
    width:86px;
    height:74px;
    object-fit:cover;
    border-radius:7px;
    background:#0b111b;
}
.mobile-find-card-placeholder {
    width:86px;
    height:74px;
    object-fit:cover;
    border-radius:7px;
    background:#0b111b;
    display:grid;
    place-items:center;
    font-size:28px;
}
.mobile-find-card-copy {
    display:grid;
    align-content:start;
    gap:5px;
    min-width:0;
}
.mobile-find-card-copy small {
    color:#a7b2c4;
    font-size:11px;
    line-height:1.35;
    overflow-wrap:anywhere;
}
.mobile-find-card-description {
    display:-webkit-box;
    overflow:hidden;
    color:#dbe4f0;
    font-size:12px;
    line-height:1.4;
    overflow-wrap:anywhere;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
}
.mobile-own-find-row {
    min-width:0;
}
.mobile-find-card-main {
    display:grid;
    grid-template-columns:86px minmax(0,1fr);
    gap:10px;
    align-items:start;
    width:100%;
    min-width:0;
    padding:0;
    border:0;
    background:none;
    color:inherit;
    text-align:left;
}
.mobile-find-card-tools {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
}
.mobile-find-card-tool {
    min-width:38px;
    min-height:34px;
    border:1px solid #334155;
    border-radius:8px;
    background:#182335;
    color:#f8fafc;
}
.mobile-find-card-tool.delete {
    color:#fca5a5;
}
.mobile-community-find-actions {
    display:flex;
    align-items:center;
    gap:3px;
    margin:3px 0 0;
    padding:2px 4px;
}
.mobile-community-find-actions .community-action {
    padding:5px 7px;
}
.mobile-community-find-actions .community-like-icon {
    width:21px;
    height:21px;
    flex:0 0 21px;
}
.mobile-find-comments {
    padding:0 8px 8px;
}
.mobile-my-logs-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    padding-bottom:10px;
    border-bottom:1px solid var(--line);
}
.mobile-my-logs-head h2 {
    margin:0 0 4px;
    font-size:18px;
}
body.mobile-my-logs-open .mobile-my-logs-panel:not(.hidden) {
    z-index:230!important;
}
body.custom-maps-panel-open #mobileAdminModeSwitch,
body.custom-maps-panel-open #webAdminPanelLink,
body.custom-maps-panel-open #webMapDebugQuickBtn,
body.mobile-my-finds-open #mobileAdminModeSwitch,
body.mobile-my-finds-open #webAdminPanelLink,
body.mobile-my-finds-open #webMapDebugQuickBtn,
body.mobile-my-logs-open #mobileAdminModeSwitch,
body.mobile-my-logs-open #webAdminPanelLink,
body.mobile-my-logs-open #webMapDebugQuickBtn {
    display:none!important;
}
body.mobile-my-finds-open #customMapsVisibilityControls,
body.mobile-my-finds-open #mapZoomTech,
body.mobile-my-logs-open #customMapsVisibilityControls,
body.mobile-my-logs-open #mapZoomTech,
body.custom-maps-panel-open #mapZoomTech,
body.custom-maps-panel-open #customMapsVisibilityControls {
    display:none!important;
}
body.mobile-my-logs-detail-open .map-bottom-tools,
body.mobile-my-logs-detail-open .left-panel,
body.mobile-my-logs-detail-open #mobileMenuBtn,
body.mobile-my-logs-detail-open #collapsedPanelRestore,
body.mobile-my-logs-detail-open #mobileAdminModeSwitch,
body.mobile-my-logs-detail-open .community-top-btn,
body.mobile-my-logs-detail-open #mobileButtonLegend,
body.mobile-my-logs-detail-open #customMapsVisibilityControls,
body.mobile-my-logs-detail-open #mapZoomTech {
    display:none!important;
}
.mobile-log-session input {
    width:20px;
    height:20px;
    flex:0 0 20px;
    margin:1px 0 0;
    accent-color:#f59e0b;
}
.mobile-my-logs-session-body {
    display:grid;
    gap:2px;
    flex:1;
    min-width:0;
}
.mobile-log-session-meta {
    color:#a7b2c4;
    font-size:12px;
    line-height:1.35;
}
.mobile-log-session {
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:10px;
    border:1px solid #334155;
    border-radius:10px;
    background:#101827;
    cursor:default;
}
.mobile-log-session-open {
    display:grid;
    gap:4px;
    flex:1;
    min-width:0;
    padding:0;
    border:0;
    background:transparent;
    color:inherit;
    text-align:left;
    font:inherit;
    touch-action:manipulation;
}
.mobile-log-session-open:active {
    color:#fde68a;
}
.mobile-my-logs-edit-card label {
    display:grid;
    gap:6px;
    margin:4px 0;
    color:#cbd5e1;
    font-size:13px;
}
.mobile-my-logs-edit-card label.mobile-my-logs-public-toggle {
    display:flex;
    align-items:flex-start;
    gap:9px;
}
.mobile-my-logs-public-hint {
    font-size:12px;
    color:#a7b2c4;
    line-height:1.4;
}
body.mobile-my-logs-route-open .mobile-my-logs-panel {
    display:none!important;
}
.mobile-my-logs-route-bar {
    display:none;
}
body.mobile-my-logs-route-open .mobile-my-logs-route-bar {
    position:fixed;
    display:flex;
    align-items:center;
    gap:10px;
    left:12px;
    right:12px;
    bottom:calc(12px + env(safe-area-inset-bottom));
    z-index:510;
    padding:10px;
    border:1px solid #334155;
    border-radius:14px;
    background:rgba(8,13,21,.97);
    box-shadow:0 8px 26px #0009;
    pointer-events:auto;
}
.mobile-my-logs-route-info {
    display:grid;
    gap:3px;
    flex:1;
    min-width:0;
}
.mobile-my-logs-route-info b {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.mobile-my-logs-route-info span {
    color:#a7b2c4;
    font-size:11px;
}
.mobile-my-logs-route-bar .btn {
    min-height:42px;
    white-space:nowrap;
}
.mobile-my-logs-delete {
    background:#991b1b!important;
    border-color:#ef4444!important;
    color:#fff!important;
}
.mobile-my-logs-edit {
    position:fixed;
    inset:auto 10px calc(8px + env(safe-area-inset-bottom));
    z-index:12000;
    display:grid;
    justify-items:center;
    padding:0;
    background:transparent;
    pointer-events:none;
}
.mobile-my-logs-edit.hidden {
    display:none;
}
.mobile-my-logs-edit-card {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:10px;
    width:min(100%,620px);
    max-height:min(48dvh,380px);
    box-sizing:border-box;
    overflow:auto;
    padding:13px;
    background:rgba(8,13,21,.96);
    border:1px solid #475569;
    border-radius:14px;
    color:#f8fafc;
    box-shadow:0 8px 24px #0008;
    pointer-events:auto;
}
.mobile-my-logs-preview-meta {
    color:#a7b2c4;
    font-size:12px;
}
.mobile-my-logs-edit-card h3 {
    margin:0;
}
.mobile-my-logs-edit-card>label {
    display:grid;
    gap:6px;
    color:#cbd5e1;
    font-size:13px;
}
.mobile-my-logs-edit-card input[type=text],
.mobile-my-logs-edit-card select {
    font:inherit;
    width:100%;
    box-sizing:border-box;
    padding:9px;
    border:1px solid #475569;
    border-radius:9px;
    background:#111827;
    color:#fff;
}
.mobile-my-logs-title-row {
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
}
.mobile-my-logs-title-row strong {
    flex:1;
    min-width:0;
    white-space:normal;
    overflow-wrap:anywhere;
    line-height:1.3;
}

.mobile-my-logs-title-edit {
    min-height:36px;
    padding:5px 10px;
    flex:0 0 auto;
}
.mobile-my-logs-public-toggle {
    display:flex!important;
    grid-template-columns:20px 1fr;
    align-items:flex-start;
}
.mobile-my-logs-public-toggle input {
    flex:0 0 20px;
    margin-top:3px;
    width:18px;
    height:18px;
    accent-color:#f59e0b;
}
.mobile-my-logs-edit-error {
    padding:9px;
    border:1px solid #ef4444;
    border-radius:8px;
    background:#450a0a;
    color:#fecaca;
    font-size:13px;
}
.mobile-my-logs-edit-error.hidden {
    display:none;
}
.mobile-my-logs-edit-actions {
    margin-top:8px;
    position:sticky;
    bottom:0;
    padding-top:8px;
    background:rgba(8,13,21,.98);
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    justify-content:flex-end;
}
.mobile-my-logs-edit-actions .btn {
    min-height:44px;
    flex:1;
    padding:9px 8px;
    font-size:13px;
}
.mobile-log-visibility {
    font-weight:750;
    font-size:11px;
    color:#cbd5e1;
}
.mobile-log-visibility.is-public {
    color:#86efac;
}
.xmap-confirm-overlay {
    position:fixed;
    inset:0;
    z-index:10000;
    display:grid;
    place-items:center;
    padding:24px;
    background:rgba(0,0,0,.68);
}
.xmap-confirm-overlay.hidden {
    display:none;
}
.xmap-confirm-card {
    width:min(100%,420px);
    padding:20px;
    border:1px solid #475569;
    border-radius:16px;
    background:#111827;
    color:#f8fafc;
    box-shadow:0 20px 60px #0009;
}
.xmap-confirm-card h2 {
    margin:0 0 12px;
    font-size:19px;
}
.xmap-confirm-card p {
    margin:0;
    color:#cbd5e1;
    line-height:1.5;
}
.xmap-confirm-card footer {
    display:flex;
    justify-content:flex-end;
    gap:10px;
    margin-top:20px;
}
.xmap-confirm-card .btn.danger {
    background:#991b1b;
    border-color:#ef4444;
    color:#fff;
}
html.xmap-mode-web:not(.xmap-mode-web-mini) body.xmap-map-ui #customMapsPanel:not(.hidden):not(.map-editor-active) {
    left:12px!important;
    right:76px!important;
    top:10px!important;
    bottom:10px!important;
    width:auto!important;
    max-height:none!important;
    z-index:210;
    border-radius:14px;
}
.xmap-map-ui #mapZoomTech {
    left:auto!important;
    right:12px!important;
    top:10px!important;
    bottom:auto!important;
}
.mobile-saved-map-item {
    display:flex;
    align-items:center;
    gap:7px;
    width:100%;
    padding:9px 10px;
    border:1px solid #334155;
    border-radius:9px;
    background:#101827;
    color:#f8fafc;
    text-align:left;
    font-weight:750;
}
.mobile-saved-map-item:active {
    background:#1d2b40;
}
.mobile-saved-map-meta {
    display:block;
    margin-top:2px;
    color:#94a3b8;
    font-size:11px;
    font-weight:500;
}
.mobile-saved-map-edit {
    width:40px;
    height:40px;
    flex:0 0 40px;
    padding:0;
    font-size:22px;
    line-height:1;
}
.xmap-map-ui .find-panel #findUseMyLocationBtn {
    display:block;
    width:100%;
    background:#fbbf24;
    border-color:#fbbf24;
    color:#171006;
    font-weight:800;
}
.xmap-map-ui .left-panel-account .left-panel-user {
    display:none!important;
}
.brand {
    display:flex;
    align-items:center;
    gap:10px;
    font-weight:900;
}
.brand small {
    display:block;
    color:var(--muted);
    font-size:12px;
}
.top-actions {
    margin-left:auto;
    display:flex;
    align-items:center;
    gap:8px;
}
.btn {
    border:1px solid var(--line);
    background:#1a2638;
    color:var(--text);
    border-radius:10px;
    padding:9px 12px;
    font-weight:750;
}
.btn.primary {
    background:var(--accent);
    border-color:var(--accent);
    color:#171006;
}
.btn.ghost {
    background:#101827;
}
.btn.danger {
    background:#7f1d1d;
    border-color:#ef4444;
    color:#fff;
}
.btn.small {
    padding:7px 9px;
    font-size:12px;
}
.panel {
    position:fixed;
    z-index:15;
    background:rgba(16,24,39,.94);
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 20px 55px rgba(0,0,0,.35);
}
.left-panel {
    left:16px;
    top:8px;
    bottom:8px;
    width:340px;
    overflow:auto;
    padding:14px;
}
.left-panel-account .brand {
    display:none;
}
.left-panel-account .top-actions {
    margin-left:auto;
}
.left-panel-user {
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
    font-weight:800;
}
.left-panel-user img {
    width:32px;
    height:32px;
    border-radius:50%;
    object-fit:cover;
    border:2px solid #fff;
    background:#0c1422;
}
.left-panel-user span {
    max-width:120px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.left-panel.collapsed>:not(.left-panel-collapse) {
    display:none;
}
.left-panel.collapsed .left-panel-collapse {
    margin:0 auto;
}
.left-panel.guest-mode .account-required {
    display:none;
}
.card {
    background:rgba(22,34,53,.82);
    border:1px solid var(--line);
    border-radius:12px;
    padding:13px;
    margin-bottom:12px;
}
.card h3 {
    margin:0 0 9px;
    font-size:16px;
}
.muted {
    color:var(--muted);
    font-size:13px;
    line-height:1.45;
}
.metrics {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    margin-top:11px;
}
.metric {
    background:#0c1422;
    border:1px solid var(--line);
    border-radius:10px;
    padding:9px;
}
.metric span {
    display:block;
    color:var(--muted);
    font-size:11px;
}
.metric b {
    display:block;
    font-size:18px;
    margin-top:3px;
}
.layers label {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:7px 0;
    font-size:14px;
}
.route-links {
    max-height:260px;
    overflow-y:auto;
}
.route-link {
    display:block;
    padding:8px 6px;
    border-top:1px solid var(--line);
    color:var(--text);
    cursor:pointer;
}
.route-link:hover {
    background:rgba(14,165,233,.12);
}
.public-route-row {
    display:grid;
    grid-template-columns:auto 1fr;
    gap:8px;
    align-items:start;
}
.public-route-row>input {
    margin-top:4px;
}
.public-route-row.route-highlight {
    background:rgba(250,204,21,.16);
    box-shadow:inset 3px 0 #facc15;
}
.public-route-row .public-route-open {
    min-width:0;
}
.auth-panel {
    right:16px;
    top:74px;
    width:380px;
    max-width:calc(100vw - 32px);
    padding:16px;
}
.auth-panel h2,
.find-panel h2 {
    margin:0 0 6px;
}
.google-box {
    border:1px solid var(--line);
    background:#0c1422;
    border-radius:12px;
    padding:11px;
    margin-top:12px;
}
.google-box .btn {
    width:100%;
    margin-bottom:7px;
}
.field {
    display:grid;
    gap:5px;
    margin-top:10px;
}
.field label {
    font-size:12px;
    color:var(--muted);
}
.field input,
.field select {
    width:100%;
    border:1px solid var(--line);
    border-radius:10px;
    background:#0c1422;
    color:var(--text);
    padding:10px 11px;
    outline:none;
}
.field textarea {
    width:100%;
    border:1px solid var(--line);
    border-radius:10px;
    background:#0c1422;
    color:var(--text);
    padding:10px 11px;
    outline:none;
    min-height:86px;
    resize:vertical;
}
.field input:focus,
.field textarea:focus,
.field select:focus {
    border-color:var(--accent);
}
.find-panel {
    right:16px;
    top:74px;
    width:380px;
    max-width:calc(100vw - 32px);
    padding:16px;
    bottom:18px;
    overflow-x:hidden;
    overflow-y:auto;
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.find-panel-scroll {
    flex:1;
    min-height:0;
    overflow:auto;
    padding-right:2px;
}
.find-actions {
    display:block;
    flex:0 0 auto;
    background:rgba(16,24,39,.99);
    border-top:1px solid var(--line);
    padding:8px 0 2px;
}
.find-actions-buttons {
    display:flex;
    justify-content:space-between;
    gap:8px;
}
.coord-box {
    background:#0c1422;
    border:1px solid var(--line);
    border-radius:10px;
    padding:9px;
    color:var(--muted);
    font-size:12px;
    margin-top:10px;
}
.debug.open {
    display:block;
}
.debug-head {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:6px;
}
.debug-lines div {
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    word-break:break-word;
    border-bottom:1px solid rgba(148,163,184,.12);
    padding:2px 0;
}
/* Messages share one flow, centered in the space left by the action dock. */
#xmapMessageStack {
    position:fixed;top:64px;left:12px;right:var(--xmap-message-right,100px);
    z-index:94;max-width:360px;margin:0 auto;display:flex;
    flex-direction:column;align-items:stretch;gap:8px;pointer-events:none;
}
#xmapMessageStack .toast {
    position:static;inset:auto;max-width:100%;box-sizing:border-box;
    background:#101827;color:#f8fafc;border:1px solid var(--line);
    border-radius:12px;padding:10px 12px;box-shadow:0 18px 45px rgba(0,0,0,.35);
    font-size:13px;line-height:1.45;text-align:center;overflow-wrap:anywhere;
}
.toast.ok {border-color:rgba(16,185,129,.55);}
.toast.error {border-color:rgba(239,68,68,.55);}
#xmapMessageStack #xmapOfflineStatus {
    position:static;inset:auto;transform:none;max-width:100%;box-sizing:border-box;
    overflow-wrap:anywhere;
}
.map-boot {
    position:fixed;
    left:0;
    right:0;
    top:0;
    bottom:0;
    z-index:10;
    display:grid;
    place-items:center;
    background:rgba(12,20,34,.38);
    color:#f8fafc;
    pointer-events:none;
}
.auth-pending .map-boot {
    background:rgba(12,20,34,.18);
}
.map-boot.hidden {
    display:none;
}
.native-app-starting #mapBoot {
    display:grid!important;
}
.map-boot-inner {
    display:grid;
    justify-items:center;
    gap:12px;
    font-weight:750;
    text-shadow:0 1px 4px #000;
}
.map-boot-spinner {
    width:42px;
    height:42px;
    border:4px solid rgba(51,65,85,.85);
    border-top-color:var(--accent);
    border-radius:50%;
    animation:xmap-spin .75s linear infinite;
}
.ol-overlay-container {
    z-index:50;
}
.ol-popup {
    position:absolute;
    background:#fff;
    color:#111;
    box-shadow:0 2px 14px rgba(0,0,0,.25);
    padding:10px;
    border-radius:8px;
    border:1px solid #ccc;
    min-width:220px;
    max-width:min(560px,72vw);
    max-height:calc(100vh - 150px);
    overflow:auto;
}
.profile-popover-head {
    display:flex;
    align-items:center;
    gap:10px;
}
.profile-popover-avatar {
    width:54px;
    height:54px;
    border-radius:50%;
    object-fit:cover;
    border:2px solid #fff;
    background:#1e293b;
}
.profile-popover-name {
    font-weight:900;
    font-size:17px;
}
.profile-popover-meta {
    color:#94a3b8;
    font-size:12px;
    margin-top:3px;
}
.profile-popover-actions {
    display:flex;
    justify-content:flex-end;
    gap:7px;
    margin-top:12px;
}
.ol-popup.popup-community-card {
    padding:0;
    background:#0b1018;
    color:#f8fafc;
    border:1px solid #263244;
    border-radius:12px;
    overflow:auto;
    width:min(340px,calc(100vw - 32px));
    max-width:min(340px,calc(100vw - 32px));
    box-shadow:0 18px 45px rgba(0,0,0,.48);
}
.popup-community-card .popup-photo {
    width:100%;
    max-width:none;
    height:220px;
    margin:0;
    border-radius:0;
    object-fit:cover;
}
.popup-community-card .popup-avatar {
    left:10px;
    top:10px;
    width:38px;
    height:38px;
    border:2px solid #fff;
}
.popup-community-card .popup-community-body {
    padding:10px 12px 12px;
}
.popup-community-card .popup-community-title {
    display:block;
    font-size:16px;
    line-height:1.2;
    margin-bottom:6px;
}
.popup-community-card .popup-community-meta {
    color:#cbd5e1;
    line-height:1.45;
}
.popup-community-card .popup-actions {
    margin-top:9px;
}
.popup-community-card .popup-actions .btn {
    background:#101827;
    color:#f8fafc;
    border-color:#334155;
}
.popup-community-card .muted {
    color:#94a3b8;
}
.active-find-pulse {
    position:relative;
    z-index:120!important;
    width:34px;
    height:34px;
    border-radius:50%;
    pointer-events:none;
    background:radial-gradient(circle,rgba(250,204,21,.78) 0 18%,rgba(250,204,21,.35) 32%,rgba(250,204,21,.12) 55%,transparent 72%);
    box-shadow:0 0 0 2px rgba(255,255,255,.9),0 0 16px rgba(250,204,21,.85);
    animation:active-find-pulse 1.45s ease-out infinite;
}
.active-find-pulse.hidden {
    display:none;
}
@keyframes active-find-pulse {
    0%,100% {
        transform:scale(.72);
        opacity:.7;
    }
    50% {
        transform:scale(1.32);
        opacity:1;
    }
}
@media (max-width:900px) {
    .active-find-pulse {
        width:25.5px;
        height:25.5px;
    }
}
.popup-photo-wrap {
    position:relative;
}
.popup-avatar {
    position:absolute;
    left:8px;
    top:8px;
    width:38px;
    height:38px;
    border-radius:50%;
    object-fit:cover;
    border:2px solid #fff;
    box-shadow:0 2px 8px rgba(0,0,0,.3);
    z-index:2;
    cursor:zoom-in;
}
.popup-avatar-large {
    width:min(220px,38vw);
    height:min(220px,38vw);
    border-radius:50%;
    object-fit:cover;
    display:block;
    margin:0 auto 10px;
    cursor:zoom-out;
}
.popup-photo {
    width:260px;
    max-width:70vw;
    height:160px;
    object-fit:cover;
    border-radius:7px;
    display:block;
    margin:0 0 8px;
    cursor:zoom-in;
}
.popup-photo.expanded {
    width:100%;
    height:auto;
    max-height:var(--popup-photo-max-h,calc(100vh - 360px));
    object-fit:contain;
    cursor:zoom-out;
}
.popup-actions {
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    margin-top:9px;
}
.ol-popup .popup-actions [data-popup-rate],
.ol-popup .popup-actions [data-popup-comment],
.ol-popup .rating-line,
.ol-popup #popupComments {
    display:none!important;
}
.popup-actions .btn {
    color:#111;
    background:#f8fafc;
    border-color:#cbd5e1;
}
.popup-comments {
    margin-top:10px;
    max-height:190px;
    overflow-y:auto;
    overflow-x:hidden;
    border-top:1px solid #e2e8f0;
    padding-top:8px;
}
.popup-comment {
    display:block;
    margin-bottom:10px;
    padding-bottom:9px;
    border-bottom:1px solid #edf2f7;
    font-size:12px;
    color:#334155;
}
.popup-comment:last-child {
    border-bottom:0;
    margin-bottom:0;
}
.comment-author {
    width:58px;
    text-align:center;
    margin-bottom:6px;
}
.comment-author img {
    width:42px;
    height:42px;
    border-radius:50%;
    object-fit:cover;
    display:block;
    margin:0 auto 3px;
    cursor:zoom-in;
}
.comment-name {
    display:block;
    font-weight:800;
    color:#111;
    overflow-wrap:anywhere;
    line-height:1.15;
}
.comment-date {
    display:block;
    color:#64748b;
    font-size:11px;
    margin-top:3px;
}
.comment-text {
    display:block;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    word-break:break-word;
    line-height:1.35;
    color:#1f2937;
}
.media-viewer {
    position:fixed;
    inset:0;
    z-index:90;
    display:grid;
    place-items:center;
    padding:70px 18px 28px;
    background:rgba(2,6,12,.58);
}
.media-card {
    background:#fff;
    color:#111;
    border-radius:10px;
    box-shadow:0 18px 60px rgba(0,0,0,.42);
    width:min(760px,calc(100vw - 36px));
    max-height:calc(100vh - 98px);
    overflow:auto;
    padding:10px;
}
.media-card img {
    display:block;
    width:100%;
    max-height:calc(100vh - 310px);
    object-fit:contain;
    border-radius:7px;
    background:#111;
}
.media-card img.avatar-full {
    width:min(260px,70vw);
    height:min(260px,70vw);
    object-fit:cover;
    border-radius:50%;
    margin:0 auto 10px;
}
.media-close {
    position:absolute;
    right:18px;
    top:70px;
}
.mobile-find-confirm {
    display:none;
}
.range2 input {
    position:absolute;
    inset:0;
    width:100%;
    margin:0;
    pointer-events:none;
    appearance:none;
    background:transparent;
}
.range2 input::-webkit-slider-runnable-track {
    background:transparent;
}
.range2 input::-moz-range-track {
    background:transparent;
}
.mobile-menu-btn {
    display:none;
}
.data-card,
.vdi-card {
    display:none;
}
.photo-list {
    display:grid;
    gap:8px;
    margin-top:8px;
}
.photo-row {
    display:flex;
    align-items:center;
    gap:8px;
    background:#0c1422;
    border:1px solid var(--line);
    border-radius:10px;
    padding:7px;
}
.photo-row img {
    width:56px;
    height:42px;
    object-fit:cover;
    border-radius:6px;
}
.profile-avatar {
    width:54px;
    height:54px;
    border-radius:50%;
    object-fit:cover;
    border:2px solid var(--line);
    background:#0c1422;
}
@media (max-width:900px) {
    .brand small {
        display:none;
    }
    .debug-toggle {
        right:12px;
        bottom:72px;
    }
    .mobile-menu-btn {
        display:inline-flex;
        position:fixed;
        left:12px;
        top:12px;
        z-index:35;
    }
    .mobile-find-confirm {
        position:fixed;
        left:12px;
        right:12px;
        bottom:12px;
        z-index:31;
        gap:8px;
    }
    .mobile-find-confirm.show {
        display:flex;
    }
    .mobile-find-confirm .btn {
        flex:1;
        padding:13px 12px;
    }
    .left-panel {
        display:none;
        left:10px;
        right:10px;
        top:10px;
        bottom:auto;
        width:auto;
        max-height:calc(100vh - 20px);
        overflow:auto;
        padding:10px;
    }
    .left-panel.open {
        display:block;
    }
    .left-panel .data-card,
.left-panel .vdi-card {
        display:none;
    }
    .auth-panel {
        left:10px;
        right:10px;
        top:68px;
        width:auto;
        max-height:calc(100vh - 112px);
        overflow:auto;
        padding-bottom:80px;
    }
    .find-panel {
        left:10px;
        right:10px;
        top:68px;
        bottom:10px;
        width:auto;
        height:calc(100vh - 78px);
        max-height:none;
        overflow:hidden;
        padding-bottom:0;
    }
    .top-actions {
        gap:6px;
    }
    .media-viewer {
        padding:62px 10px 72px;
    }
    .media-card {
        width:calc(100vw - 20px);
        max-height:calc(100vh - 134px);
    }
    .media-card img {
        max-height:calc(100vh - 360px);
    }
    .media-close {
        top:64px;
        right:12px;
    }
}
.profile-popover {
    position:fixed;
    z-index:88;
    width:min(320px,calc(100vw - 32px));
    max-height:calc(100vh - 24px);
    overflow:auto;
    padding:14px;
    background:#0b1018;
    color:#f8fafc;
    border:1px solid #263244;
    border-radius:12px;
    box-shadow:0 18px 45px rgba(0,0,0,.48);
    left:8px;
    top:8px;
}
.range2 {
    position:relative;
    height:24px;
    margin:2px 0 4px;
    background:#f1f5f9;
}
.range2:before {
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:10px;
    height:5px;
    border-radius:5px;
    background:transparent;
}
.range2 input::-webkit-slider-thumb {
    appearance:none;
    pointer-events:auto;
    cursor:pointer;
    width:15px;
    height:15px;
    border-radius:2px;
    background:#6b7280;
    border:0;
}
.range2 input::-moz-range-thumb {
    pointer-events:auto;
    cursor:pointer;
    width:15px;
    height:15px;
    border-radius:2px;
    background:#6b7280;
    border:0;
}
.debug-toggle {
    left:376px;
    bottom:18px;
    z-index:16;
    position:static;
}
.legend-title {
    font-weight:850;
    color:#fff;
}
.legend-item {
    display:inline-flex;
    align-items:center;
    gap:5px;
}
.legend-dot {
    display:inline-block;
    width:12px;
    height:12px;
    border:1px solid rgba(255,255,255,.75);
    border-radius:50%;
    flex:0 0 auto;
}
.legend-line {
    display:inline-block;
    width:22px;
    height:4px;
    border-radius:3px;
    flex:0 0 auto;
}
.info-panel {
    left:376px;
    right:16px;
    top:74px;
    bottom:18px;
    z-index:45;
    padding:20px;
    overflow:auto;
    background:rgba(16,24,39,.97);
}
.info-panel h2 {
    margin:0 0 5px;
}
.info-panel h3 {
    margin:18px 0 7px;
    color:#f8fafc;
}
.info-panel p {
    margin:6px 0;
    color:var(--muted);
    line-height:1.45;
}
.info-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.info-box {
    padding:11px;
    border:1px solid var(--line);
    border-radius:10px;
    background:rgba(22,34,53,.82);
}
.info-box b {
    display:block;
    margin-bottom:4px;
}
.info-legend {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}
.info-legend .legend-item {
    padding:7px 9px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#0c1422;
}
.info-close {
    position:sticky;
    top:0;
    float:right;
    margin-left:10px;
}
.info-panel .muted {
    font-size:13px;
}
@media (max-width:900px) {
    .map-legend {
        left:10px;
        right:10px;
        bottom:116px;
        max-height:56px;
    }
    .info-panel {
        left:10px;
        right:10px;
        top:68px;
        bottom:60px;
        padding:14px;
    }
    .info-grid,
.info-legend {
        grid-template-columns:1fr;
    }
}
/* Community feed shell; mode sections define only its screen placement. */
.community-panel {
    right:16px;
    top:12px;
    bottom:18px;
    width:min(590px,calc(100vw - 32px));
    z-index:86;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    padding:0;
    background:rgba(8,13,21,.985);
    border-radius:16px;
    transform:translateX(calc(100% + 32px));
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:transform .24s ease,opacity .2s ease,visibility 0s linear .24s;
}
.community-panel.open {
    z-index:200;
    transform:translateX(0);
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition-delay:0s;
}
.community-panel.community-panel-suspended {
    transform:translateX(calc(100% + 32px))!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
}
.community-head-copy {
    min-width:0;
    flex:1 1 100%;
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
    gap:4px 10px;
}
.community-head-copy .muted {
    flex:1 1 160px;
}
.community-head h2 {
    margin:0;
    font-size:21px;
}
.community-head .muted {
    font-size:12px;
}
.community-feed {
    flex:1;
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    scrollbar-color:#475569 transparent;
    overscroll-behavior-y:contain;
}
.community-feed:before {
    content:"";
    position:sticky;
    top:9px;
    z-index:20;
    display:block;
    width:32px;
    height:32px;
    margin:0 auto -32px;
    border:3px solid #334155;
    border-top-color:#f59e0b;
    border-radius:50%;
    background:rgba(8,13,21,.92);
    opacity:0;
    pointer-events:none;
    transform:translateY(calc(var(--community-pull,0px)*.5)) rotate(var(--community-pull-rotation,0deg));
    transition:opacity .12s ease,transform .18s cubic-bezier(.2,.8,.2,1);
}
.community-feed.is-pulling:before {
    opacity:1;
}
.community-feed.is-refreshing:before {
    opacity:1;
    animation:xmap-spin .72s linear infinite;
}
.community-card {
    position:relative;
    border-bottom:1px solid #263244;
    background:#0b1018;
    color:#f8fafc;
}
.community-card.community-pull-stretch {
    z-index:2;
    transform:translate3d(0,var(--community-pull-offset,0px),0) scaleY(var(--community-pull-scale,1));
    transform-origin:top center;
    transition:none;
}
.community-feed:not(.is-pulling) .community-card.community-pull-stretch {
    transition:transform .24s cubic-bezier(.2,.8,.2,1);
}
.community-author {
    display:flex;
    align-items:center;
    gap:10px;
    padding:13px 14px;
}
.community-avatar {
    width:42px;
    height:42px;
    border-radius:50%;
    object-fit:cover;
    background:#1e293b;
    border:1px solid #475569;
    flex:0 0 auto;
}
.community-avatar-fallback {
    display:grid;
    place-items:center;
    font-weight:900;
    color:#111827;
    background:#f59e0b;
}
.community-author-copy {
    min-width:0;
    flex:1;
}
.community-author-name {
    font-weight:850;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.community-author-meta {
    margin-top:2px;
    color:#94a3b8;
    font-size:12px;
}
.community-follow {
    padding:7px 12px;
    border:0;
    border-radius:8px;
    background:#2b3038;
    color:#fff;
    font-weight:800;
}
.community-follow.active {
    background:transparent;
    color:#a7b2c4;
    border:1px solid #39475a;
}
.community-more {
    width:36px;
    height:36px;
    padding:0;
    border:0;
    background:transparent;
    color:#fff;
    font-size:22px;
    line-height:1;
}
.community-more-menu {
    position:absolute;
    z-index:8;
    right:12px;
    top:58px;
    width:220px;
    padding:6px;
    background:#252a31;
    border:1px solid #3a414b;
    border-radius:13px;
    box-shadow:0 16px 45px rgba(0,0,0,.48);
}
.community-more-menu button {
    display:block;
    width:100%;
    padding:11px;
    border:0;
    border-radius:8px;
    background:transparent;
    color:#f8fafc;
    text-align:left;
}
.community-more-menu button:hover {
    background:#343a43;
}
.community-media {
    position:relative;
    width:100%;
    background:#02060c;
    overflow:hidden;
}
.community-media img {
    display:block;
    width:100%;
    max-height:62vh;
    aspect-ratio:1/1;
    object-fit:cover;
}
.community-media-placeholder {
    display:grid;
    place-items:center;
    min-height:280px;
    padding:28px;
    color:#94a3b8;
    background:radial-gradient(circle at 50% 45%,#182536 0,#0b111b 56%,#05080d 100%);
}
.community-find-placeholder {
    font-size:76px;
    filter:drop-shadow(0 8px 18px rgba(245,158,11,.2));
}
.community-route-preview-sheet {
    position:fixed;
    left:10px;
    right:10px;
    bottom:calc(8px + env(safe-area-inset-bottom));
    z-index:4200;
    display:grid;
    grid-template-rows:auto minmax(100px,1fr) auto auto;
    gap:8px;
    height:min(48vh,430px);
    min-height:240px;
    max-height:min(48vh,430px);
    padding:10px 12px;
    background:rgba(8,13,21,.97);
    border:1px solid #475569;
    border-radius:16px;
    color:#f8fafc;
    box-shadow:0 10px 30px #0009;
    overflow:auto;
}
.community-route-preview-sheet.hidden {
    display:none;
}
.community-route-preview-sheet header {
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}
.community-route-preview-sheet header strong {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    flex:1;
}
.community-route-preview-map {
    min-height:100px;
    border-radius:10px;
    background:linear-gradient(145deg,#111d19,#07100d 65%,#0b1018);
    overflow:hidden;
}
.community-route-preview-map svg {
    width:100%;
    height:100%;
    min-height:100px;
}
.community-route-preview-map path {
    fill:none;
    stroke:#22c55e;
    stroke-width:8;
    stroke-linecap:round;
    stroke-linejoin:round;
    filter:drop-shadow(0 0 7px rgba(34,197,94,.48));
}
.community-route-preview-map circle {
    fill:#f59e0b;
    stroke:#fff;
    stroke-width:3;
}
.community-route-preview-meta {
    display:grid;
    gap:3px;
    color:#cbd5e1;
    font-size:12px;
}
.community-route-preview-actions {
    display:flex;
    align-items:center;
    gap:5px;
    overflow-x:auto;
}
.community-route-preview-actions .community-action {
    white-space:nowrap;
}
.community-route-preview-open #mapZoomTech {
    display:none!important;
}
.community-route-media {
    display:grid;
    align-content:center;
    gap:14px;
    min-height:330px;
    padding:34px;
    background:linear-gradient(145deg,#111d19,#07100d 60%,#0b1018);
    isolation:isolate;
}
.community-route-media:before {
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    opacity:.16;
    background-image:linear-gradient(#4ade8020 1px,transparent 1px),linear-gradient(90deg,#4ade8020 1px,transparent 1px);
    background-size:28px 28px;
}
.community-route-map {
    position:absolute;
    inset:12px;
    width:calc(100% - 24px);
    height:calc(100% - 24px);
}
.community-route-facts {
    position:absolute;
    left:12px;
    bottom:12px;
    max-width:calc(100% - 24px);
    padding:6px 9px;
    border:1px solid #ffffff33;
    border-radius:7px;
    background:#07100de8;
    color:#f8fafc;
    font-size:12px;
    font-weight:700;
    line-height:1.3;
    text-align:left;
}
.community-route-media .community-route-map {
    position:absolute;
    left:12px;
    top:12px;
    width:calc(100% - 24px);
    height:calc(100% - 24px);
}
.community-route-media .community-route-title {
    position:absolute;
    left:14px;
    top:12px;
    padding:4px 8px;
    border-radius:7px;
    background:#07100dcc;
    font-size:15px;
    text-align:left;
    max-width:calc(100% - 28px);
}
.community-route-map path {
    fill:none;
    stroke:#22c55e;
    stroke-width:8;
    stroke-linecap:round;
    stroke-linejoin:round;
    filter:drop-shadow(0 0 7px rgba(34,197,94,.48));
}
.community-route-map circle {
    fill:#f59e0b;
    stroke:#fff;
    stroke-width:3;
}
.community-route-title {
    position:absolute;
    left:14px;
    top:12px;
    padding:4px 8px;
    border-radius:7px;
    background:#07100dcc;
    max-width:calc(100% - 28px);
    font-size:25px;
    font-weight:900;
    text-align:center;
}
.community-dots {
    position:absolute;
    left:50%;
    bottom:10px;
    display:flex;
    gap:5px;
    transform:translateX(-50%);
}
.community-dot {
    width:6px;
    height:6px;
    border-radius:50%;
    background:#6b7280;
}
.community-dot.active {
    background:#3b82f6;
}
.community-actions {
    display:flex;
    align-items:center;
    gap:2px;
    padding:10px 10px 4px;
}
.community-action {
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:7px 8px;
    border:0;
    border-radius:8px;
    background:transparent;
    color:#f8fafc;
    font-weight:750;
}
.community-action:hover {
    background:#18202c;
}
.community-action.active {
    color:#f6c453;
}
.community-action.repost.active {
    color:#34d399;
}
.community-action.save {
    margin-left:auto;
}
.community-action-icon {
    font-size:21px;
    line-height:1;
}
.community-like-icon {
    display:block;
    width:26px;
    height:26px;
    object-fit:contain;
}
.community-like-icon.is-active {
    mix-blend-mode:screen;
}
.community-caption {
    padding:2px 14px 13px;
    line-height:1.42;
}
.popup-find-details {
    padding:12px 14px 8px;
}
.popup-find-heading {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
}
.popup-find-heading h3 {
    min-width:0;
    margin:0;
    font-size:18px;
    line-height:1.25;
    overflow-wrap:anywhere;
}
.popup-find-heading>span {
    flex:0 0 auto;
    padding:4px 8px;
    border:1px solid #334155;
    border-radius:999px;
    background:#111927;
    color:#cbd5e1;
    font-size:11px;
}
.popup-find-description {
    margin:8px 0 0;
    color:#e2e8f0;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
}
.popup-community-card .community-actions {
    flex-wrap:wrap;
    padding-top:8px;
    border-top:1px solid #263244;
}
.popup-community-card .community-action:disabled {
    opacity:.48;
    cursor:not-allowed;
}
.ol-popup.popup-community-card #popupComments {
    display:block!important;
}
.popup-community-card .popup-comments {
    margin:0 14px 14px;
    max-height:180px;
    border-top-color:#263244;
}
.popup-community-card .popup-comment {
    color:#cbd5e1;
    border-bottom-color:#263244;
}
.popup-community-card .comment-name,
.popup-community-card .comment-date {
    color:#94a3b8;
}
.community-caption-author {
    font-weight:850;
    margin-right:6px;
}
.community-source-meta {
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:8px;
    color:#a7b2c4;
    font-size:12px;
}
.community-source-meta span {
    padding:4px 7px;
    border:1px solid #2b3950;
    border-radius:999px;
    background:#111927;
}
.community-comments {
    padding:0 14px 14px;
}
.community-comments-list {
    display:grid;
    gap:10px;
    padding:10px 0;
    border-top:1px solid #263244;
}
.community-comment {
    display:grid;
    grid-template-columns:30px 1fr;
    gap:8px;
    font-size:13px;
}
.community-comment .community-avatar {
    width:30px;
    height:30px;
}
.community-comment-text {
    min-width:0;
    line-height:1.35;
    overflow-wrap:anywhere;
}
.community-comment-time {
    display:block;
    margin-top:2px;
    color:#7f8da3;
    font-size:11px;
}
.community-comment-form {
    display:flex;
    gap:7px;
}
.community-comment-form input {
    min-width:0;
    flex:1;
    padding:9px 10px;
    border:1px solid #2b3950;
    border-radius:9px;
    background:#101827;
    color:#f8fafc;
}
.community-comment-form button {
    padding:8px 10px;
}
.community-status {
    display:grid;
    place-items:center;
    gap:10px;
    min-height:240px;
    padding:28px;
    color:#a7b2c4;
    text-align:center;
}
.community-status-spinner {
    width:34px;
    height:34px;
    border:3px solid #334155;
    border-top-color:#f59e0b;
    border-radius:50%;
    animation:xmap-spin .75s linear infinite;
}
@media (max-width:900px) {
    .community-head {
        padding:10px 12px;
    }
    .community-media img {
        max-height:56vh;
    }
    .community-route-media {
        min-height:280px;
        padding:24px;
    }
    .community-actions {
        overflow-x:auto;
    }
    .community-action {
        white-space:nowrap;
    }
    .community-action-label {
        display:none;
    }
    .community-action.save .community-action-label {
        display:inline;
        font-size:12px;
    }
}
.community-photo-nav {
    position:absolute;
    top:50%;
    z-index:2;
    width:34px;
    height:34px;
    padding:0;
    border:1px solid rgba(255,255,255,.8);
    border-radius:50%;
    background:rgba(8,13,21,.72);
    color:#fff;
    font-size:24px;
    line-height:26px;
    transform:translateY(-50%);
}
.community-photo-prev {
    left:10px;
}
.community-photo-next {
    right:10px;
}
.community-photo-nav:hover {
    background:rgba(245,158,11,.9);
    color:#111;
}
.community-media[data-community-media] {
    cursor:pointer;
}
.community-media[data-community-media]:hover {
    outline:2px solid rgba(245,158,11,.72);
    outline-offset:-2px;
}
.community-profile-trigger {
    cursor:pointer;
}
.community-profile-trigger:hover {
    color:#f59e0b;
}
.popup-community-card .community-action-label {
    display:none;
}
.popup-community-card .community-action.save .community-action-label {
    display:inline;
}
.popup-community-card .community-action {
    padding:7px 9px;
}
.mobile-community-icon {
    display:none;
}
.auth-pending .left-panel {
    display:none!important;
}
#googleCustomBtn.google-custom-btn {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:100%;
    min-height:40px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    color:#f8fafc;
    font-weight:800;
    font-size:14px;
    box-shadow:none;
}
#googleCustomBtn.google-custom-btn:hover {
    background:transparent;
    border-color:transparent;
}
#googleCustomBtn iframe {
    max-width:100%;
}
.google-custom-logo {
    display:block;
    width:22px;
    height:22px;
    flex:0 0 22px;
}
.left-panel.guest-mode {
    bottom:auto;
    overflow:hidden;
    height:64px!important;
}
.logged-out .auth-panel {
    left:16px;
    right:auto;
    width:340px;
    top:76px;
}
@media (max-width:900px) {
    .logged-out .auth-panel {
        left:10px;
        right:10px;
        width:auto;
        top:76px;
    }
}
.logged-out .left-panel.guest-mode #leftPanelToggle {
    display:none!important;
}
.logged-out .left-panel.guest-mode #authOpenBtn {
    display:block;
    margin:0;
    white-space:nowrap;
}
.logged-out .left-panel.guest-mode {
    left:16px!important;
    top:8px!important;
    width:auto!important;
    height:auto!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    overflow:visible!important;
}
.logged-out .left-panel.guest-mode .left-panel-account {
    justify-content:flex-start;
    border:0;
    background:transparent!important;
    box-shadow:none!important;
    margin:0!important;
    padding:0!important;
}
.logged-out .left-panel.guest-mode .left-panel-account .top-actions {
    margin:0!important;
}
@media (min-width:901px) {
}
.left-panel-account {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:10px;
    border-bottom:1px solid var(--line);
    position:sticky;
    top:-14px;
    z-index:6;
    margin:-14px -14px 10px;
    padding:10px 14px;
    background:rgba(16,24,39,.985);
    box-shadow:0 8px 12px rgba(7,12,20,.28);
}
@media (max-width:900px) {
    .left-panel-account {
        top:-10px;
        margin:-10px -10px 10px;
        padding:10px;
    }
    .left-panel-collapse {
        top:52px;
    }
}
.left-panel-collapse {
    display:block;
    border:1px solid var(--line);
    border-radius:8px;
    color:var(--text);
    font-weight:900;
    top:52px;
    z-index:7;
    background:#101827;
    position:static;
    margin:0;
    width:32px;
    height:28px;
    padding:0;
}
.left-panel.collapsed>:not(.left-panel-account) {
    display:none;
}
.left-panel.collapsed .left-panel-account {
    margin:0;
    padding:0;
    border:0;
    justify-content:center;
}
.left-panel.collapsed .left-panel-account>:not(.top-actions),
.left-panel.collapsed .left-panel-account .top-actions>:not(#leftPanelToggle) {
    display:none;
}
.left-panel.collapsed .left-panel-account .top-actions {
    margin:0;
}
@media (min-width:901px) {
    .left-panel {
        top:8px;
        bottom:64px;
    }
    .left-panel.collapsed {
        top:8px;
        bottom:auto;
        height:44px;
        width:44px;
    }
    .map-legend {
        left:376px;
        right:16px;
        bottom:8px;
    }
    .info-panel {
        left:376px;
        right:16px;
        top:8px;
        bottom:64px;
    }
}
@media (max-width:900px) {
    .left-panel.collapsed {
        top:10px;
        bottom:auto;
        height:44px;
        width:44px;
        max-height:none;
    }
}
.left-panel.collapsed .left-panel-account .top-actions #leftPanelToggle {
    display:flex!important;
    align-items:center;
    justify-content:center;
    visibility:visible;
    opacity:1;
    color:#fff;
    line-height:1;
    font-size:0;
}
@media (max-width:900px) {
}
.map-legend {
    position:fixed;
    left:376px;
    right:16px;
    bottom:56px;
    z-index:16;
    display:flex;
    align-items:center;
    gap:12px;
    overflow-x:auto;
    overflow-y:hidden;
    white-space:nowrap;
    background:rgba(16,24,39,.96);
    border:1px solid var(--line);
    border-radius:10px;
    box-shadow:0 12px 28px rgba(0,0,0,.3);
    font-size:12px;
    color:var(--text);
    padding:7px 12px;
    height:46px!important;
    min-height:46px!important;
}
.debug {
    display:none;
    left:376px!important;
    right:16px!important;
    top:8px!important;
    bottom:64px!important;
    width:auto!important;
    height:auto!important;
    max-height:none!important;
    padding:20px!important;
}
.debug-lines {
    font-family:Consolas,monospace;
    color:#c1cee0;
    font-size:12px;
    line-height:1.35;
    overflow:auto;
    height:calc(100vh - 150px)!important;
    max-height:none!important;
}
@media (max-width:900px) {
    .debug {
        width:auto;
        height:35vh;
        max-height:none;
        left:10px!important;
        right:10px!important;
        top:68px!important;
        bottom:60px!important;
        padding:14px!important;
    }
    .debug-lines {
        max-height:none;
        height:calc(100vh - 190px)!important;
    }
}
.left-panel-collapse #leftPanelToggleIcon {
    display:inline-block!important;
    color:#fff!important;
    font-size:20px!important;
    line-height:1!important;
    font-weight:900!important;
}
.left-panel.collapsed .left-panel-collapse #leftPanelToggleIcon {
    font-size:26px!important;
}
.left-panel.collapsed .left-panel-account .top-actions #leftPanelToggle::after {
    font-size:28px!important;
    line-height:24px!important;
    color:#fff!important;
    font-weight:900!important;
    content:none!important;
    display:none!important;
}
.collapsed-panel-restore {
    display:none;
    position:fixed;
    left:24px;
    top:8px;
    z-index:40;
    width:40px;
    height:40px;
    padding:0;
    border:1px solid #334155;
    border-radius:12px;
    background:#172235;
    color:#fff;
    font-size:27px;
    font-weight:900;
    line-height:1;
    align-items:center;
    justify-content:center;
    box-shadow:0 8px 20px rgba(0,0,0,.35);
}
body.left-panel-is-collapsed .collapsed-panel-restore {
    display:flex;
}
.left-panel.collapsed {
    width:44px;
    padding:7px;
    overflow:hidden;
    display:none!important;
}
.community-profile-summary {
    display:none;
    align-items:center;
    gap:8px;
    min-width:0;
    flex:1;
}
.community-profile-summary-avatar {
    width:38px;
    height:38px;
    border-radius:50%;
    object-fit:cover;
    background:#1e293b;
    border:1px solid #475569;
    flex:0 0 auto;
}
.community-profile-summary-copy {
    min-width:0;
}
.community-profile-summary-name {
    font-weight:850;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.community-profile-summary-stats {
    color:#a7b2c4;
    font-size:11px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.community-profile-reset {
    display:none;
}
.community-profile-reset.show {
    display:inline-flex;
}
.community-head {
    position:sticky;
    top:0;
    z-index:6;
    display:flex;
    align-items:center;
    gap:10px;
    padding:13px 14px;
    background:rgba(8,13,21,.98);
    border-bottom:1px solid var(--line);
    flex-wrap:wrap;
}
.community-profile-actions {
    display:flex;
    align-items:center;
    justify-content:flex-start;
    flex-wrap:wrap;
    gap:8px;
    margin-left:0;
    margin-right:auto;
    order:0;
}
.community-profile-summary.show {
    display:flex;
    order:0;
    flex:1 1 auto;
}
.community-head>#communityProfileSummaryStats {
    display:none;
    order:2;
    flex:0 0 100%;
    padding-left:46px;
    white-space:normal;
    overflow:visible;
}
.community-head>#communityProfileSummary.show~#communityProfileSummaryStats {
    display:block;
}
.custom-maps-panel {
    right:16px;
    top:74px;
    bottom:18px;
    width:min(430px,calc(100vw - 32px));
    z-index:84;
    overflow:auto;
    padding:14px;
    background:rgba(8,13,21,.98);
    border-radius:16px;
}
.custom-maps-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    border-bottom:1px solid var(--line);
    padding-bottom:12px;
}
.custom-maps-head h2 {
    margin:0 0 3px;
}
.custom-map-thumb {
    width:74px;
    height:58px;
    border-radius:7px;
    object-fit:cover;
    background:#0b111b;
}
.custom-map-name {
    font-weight:800;
}
.custom-map-meta {
    color:var(--muted);
    font-size:11px;
    margin-top:3px;
}
/* Saved-map editor: shared controls and form fields. */
.custom-map-editor {
    display:grid;
    gap:10px;
    margin-top:12px;
    padding-top:12px;
    border-top:1px solid var(--line);
}
.custom-map-editor-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}
.custom-map-editor-head h3 {
    margin:0;
}
.custom-map-editor-toggle {
    width:40px;
    height:34px;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid #475569;
    border-radius:10px;
    background:#172235;
    color:#f8fafc;
    font-size:21px;
    line-height:1;
    touch-action:manipulation;
}
.custom-map-editor-details {
    display:grid;
    gap:10px;
}
.custom-map-editor.is-collapsed .custom-map-editor-details {
    display:none;
}
.custom-map-editor label {
    display:grid;
    gap:5px;
    color:#cbd5e1;
    font-size:12px;
}
.custom-map-editor input[type=text],
.custom-map-editor textarea {
    width:100%;
    box-sizing:border-box;
    border:1px solid #334155;
    border-radius:8px;
    background:#0f1726;
    color:#fff;
    padding:9px;
}
.custom-map-editor-hint {
    color:#a7b2c4;
    font-size:12px;
    line-height:1.4;
}
.custom-map-opacity {
    display:grid;
    grid-template-columns:auto minmax(40px,1fr) auto auto;
    align-items:center;
    gap:8px;
    color:#cbd5e1;
    font-size:12px;
}
.custom-map-scale {
    display:grid;
    align-items:center;
    gap:8px;
    color:#cbd5e1;
    font-size:12px;
    grid-template-columns:auto minmax(40px,1fr) auto auto;
}
.custom-map-square {
    font-size:20px;
    line-height:1;
}
.custom-map-scale input {
    accent-color:#38bdf8;
}
.custom-map-rotation {
    display:flex;
    align-items:center;
    gap:8px;
    color:#cbd5e1;
    font-size:12px;
}
.custom-map-rotate-step {
    width:36px;
    height:36px;
    flex:0 0 36px;
    padding:0;
    display:grid;
    place-items:center;
    border:1px solid #475569;
    border-radius:50%;
    background:#172235;
    color:#f8fafc;
    font-size:20px;
    line-height:1;
}
.custom-map-rotation input {
    width:84px;
    min-width:60px;
    padding:7px 8px;
    border:1px solid #334155;
    border-radius:8px;
    background:#0f1726;
    color:#fff;
    text-align:center;
}
.custom-map-rotation .btn {
    min-height:34px;
    padding:6px 12px;
}
.custom-map-opacity input {
    accent-color:#f59e0b;
}
.custom-map-editor-other-opacity {
    display:grid;
    gap:6px;
}
.custom-map-editor-other-opacity.hidden {
    display:none;
}
.custom-map-editor-other-opacity .custom-map-opacity-other {
    grid-template-columns:minmax(100px,1fr) minmax(50px,2fr) auto;
    gap:8px;
    margin:0;
}
.custom-map-opacity-other label {
    display:grid;
    gap:3px;
    min-width:0;
}
.custom-map-opacity-other label span {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#cbd5e1;
    font-size:11px;
}
.custom-map-opacity-other input {
    width:100%;
    min-width:0;
    accent-color:#f59e0b;
}
.custom-map-undo {
    width:36px;
    height:36px;
    padding:0;
    border:1px solid #475569;
    border-radius:50%;
    background:#172235;
    color:#f8fafc;
    font-size:24px;
    line-height:1;
    display:grid;
    place-items:center;
    touch-action:manipulation;
}
.custom-map-undo:disabled {
    opacity:.4;
    cursor:default;
}
.custom-map-coords {
    color:#94a3b8;
    font-size:11px;
    line-height:1.4;
}
.custom-map-editor-actions {
    display:flex;
    justify-content:flex-end;
    gap:8px;
}
.xmap-map-ui #customMapsBtn {
    display:none!important;
}
.xmap-map-ui #customMapsPanel.map-editor-active .custom-maps-head,
.xmap-map-ui #customMapsPanel.map-editor-active #customMapsList {
    display:none!important;
}
.xmap-map-ui #customMapsPanel.map-editor-active .custom-map-editor {
    margin-top:0;
    padding-top:0;
    gap:7px;
}
.xmap-map-ui #customMapsPanel.map-editor-active .custom-map-editor-hint {
    font-size:11px;
    line-height:1.3;
}
.xmap-map-ui #customMapsPanel.map-editor-active .custom-map-editor-actions button {
    min-height:42px;
    flex:1;
}
.xmap-map-ui #customMapsPanel.map-editor-active:not(.hidden) {
    top:auto!important;
    bottom:8px!important;
    left:8px!important;
    right:8px!important;
    width:auto!important;
    overflow:auto!important;
    padding:10px!important;
    z-index:220!important;
    max-height:min(42vh,360px)!important;
}
.xmap-map-ui #customMapsPanel.map-editor-active .custom-map-editor-actions {
    position:sticky;
    bottom:-10px;
    margin:0 -10px -10px;
    padding:8px 10px calc(8px + env(safe-area-inset-bottom));
    background:rgba(8,13,21,.98);
    border-top:1px solid var(--line);
    z-index:2;
}
.xmap-map-ui #customMapsPanel.map-editor-active .custom-map-file-row {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px;
}
.xmap-map-ui #customMapsPanel.map-editor-active .custom-map-file-name {
    flex-basis:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
body.custom-map-editing .panel:not(#customMapsPanel),
body.custom-map-editing .left-panel,
body.custom-map-editing .map-bottom-tools,
body.custom-map-editing #mobileMenuBtn,
body.custom-map-editing #collapsedPanelRestore,
body.custom-map-editing #mobileSavedMapsPanel,
body.custom-map-editing #mobileButtonLegend,
body.custom-map-editing #mobileAdminModeSwitch,
body.custom-map-editing #customMapsBtn,
body.custom-map-editing #customMapsVisibilityControls,
body.custom-map-editing #customMapViewing,
body.custom-map-editing #mapZoomTech,
body.custom-map-editing #routeModal,
body.custom-map-editing #mobileFindChoice,
body.custom-map-editing #findPanel,
body.custom-map-editing #popup,
body.custom-map-editing #mediaViewer,
body.custom-map-editing .community-top-btn {
    display:none!important;
}
/* Live opacity rows; wide browser positioning is the only mode override. */
.custom-maps-visibility {
    position:fixed;
    top:48px;
    left:10px;
    transform:none;
    width:auto;
    max-height:calc(100vh - 120px);
    overflow:auto;
    z-index:270;
    display:grid;
    gap:5px;
    color:#cbd5e1;
    font-size:11px;
    pointer-events:none;
    right:10px;
}
.custom-maps-visibility.hidden {
    display:none;
}
.custom-map-visibility-row {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto auto;
    align-items:center;
    gap:6px;
    padding:5px 7px;
    border:1px solid #334155;
    border-radius:8px;
    background:rgba(16,24,39,.92);
    box-shadow:0 4px 12px rgba(0,0,0,.22);
    pointer-events:auto;
}
.custom-map-visibility-row label {
    display:grid;
    gap:1px;
    min-width:0;
}
.custom-map-visibility-row label span {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.custom-map-visibility-row input {
    accent-color:#f59e0b;
    width:100%;
    height:14px;
}
.custom-map-visibility-row output {
    font-size:10px;
    white-space:nowrap;
}
.custom-map-visibility-row button {
    padding:2px 6px;
    font-size:11px;
}
.custom-map-order-handle {
    width:24px;
    height:30px;
    padding:0;
    border:0;
    background:transparent;
    color:#94a3b8;
    font-size:21px;
    line-height:1;
    cursor:grab;
    touch-action:none;
}
.custom-map-order-handle:active {
    cursor:grabbing;
}
.custom-map-order-row.is-dragging {
    opacity:.45;
}
.custom-map-order-row.is-drop-target {
    outline:2px solid #fbbf24;
    outline-offset:1px;
}
.custom-map-drag-ghost {
    position:fixed;
    z-index:9999;
    pointer-events:none;
    opacity:.92;
    transform:rotate(2deg) scale(1.02);
    box-shadow:0 16px 34px rgba(0,0,0,.48);
    background:#172235;
    border:2px solid #fbbf24;
    border-radius:10px;
}
@media (min-width:901px) {
    #mapZoomTech {
        left:auto!important;
        right:10px!important;
    }
}
.custom-map-row>label {
    display:flex;
    justify-content:center;
    align-self:flex-start;
    position:absolute;
    left:8px;
    top:8px;
    z-index:2;
}
.custom-map-row .custom-map-thumb {
    align-self:center;
    width:min(100%,260px);
    height:140px;
    object-fit:contain;
    cursor:pointer;
    border:1px solid #334155;
    border-radius:10px;
}
.custom-map-row>div {
    text-align:center;
}
.custom-map-edit-icon {
    width:42px;
    height:42px;
    flex:0 0 42px;
    padding:0;
    font-size:22px;
    line-height:1;
}
.custom-map-row {
    grid-template-columns:24px 74px minmax(0,1fr) auto;
    padding:8px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#101827;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:8px;
    text-align:center;
    position:relative;
    padding-bottom:48px!important;
}
.custom-map-row>.custom-map-order-handle {
    position:absolute;
    left:8px;
    top:8px;
    z-index:3;
}
.custom-map-row .custom-map-edit-icon {
    position:static;
    right:auto;
    top:auto;
}
.custom-map-order-controls {
    display:flex;
    align-items:center;
    gap:4px;
    white-space:nowrap;
}
.custom-map-row>.custom-map-order-controls {
    position:absolute;
    right:8px;
    bottom:8px;
}
.custom-map-order-controls label {
    display:grid;
    place-items:center;
    width:32px;
    height:32px;
    margin:0;
    padding:0;
}
.custom-map-order-controls .custom-map-edit-icon,
.custom-map-order-controls .mobile-saved-map-edit {
    width:30px;
    height:30px;
    flex:0 0 30px;
    padding:0;
    font-size:18px;
    line-height:1;
}
.custom-map-order-controls input {
    width:20px;
    height:20px;
    margin:0;
    accent-color:#f59e0b;
}
.custom-map-order-controls button {
    display:grid;
    place-items:center;
    width:30px;
    height:30px;
    padding:0;
    border:1px solid #475569;
    border-radius:8px;
    background:#172235;
    color:#f8fafc;
    font-size:18px;
    font-weight:800;
    line-height:1;
    touch-action:manipulation;
}
.custom-map-order-controls button:active {
    background:#334155;
}
.custom-map-saved-row {
    display:flex;
    align-items:center;
    gap:6px;
    padding:6px 4px;
    border:1px solid #334155;
    border-radius:9px;
    background:#101827;
}
.custom-map-saved-open {
    flex:1;
    min-width:0;
    text-align:left;
    white-space:normal;
}
.mobile-saved-map-item .custom-map-order-handle {
    align-self:flex-start;
    flex:0 0 24px;
}
.mobile-saved-map-open {
    display:flex;
    flex:1;
    min-width:0;
    align-items:center;
    gap:7px;
    border:0;
    background:transparent;
    color:inherit;
    text-align:left;
    padding:0;
    font:inherit;
}
.mobile-saved-map-item .custom-map-order-controls {
    align-self:flex-end;
    margin-left:auto;
}
.mobile-saved-map-item .mobile-saved-map-edit {
    align-self:center;
    flex:0 0 30px;
}
.mobile-saved-map-item .mobile-saved-map-visibility {
    display:grid;
    place-items:center;
    flex:0 0 34px;
    width:34px;
    height:34px;
    border:1px solid #475569;
    border-radius:8px;
    background:#0b1220;
}
.mobile-saved-map-item .mobile-saved-map-visibility input {
    width:20px;
    height:20px;
    margin:0;
    accent-color:#f59e0b;
}
.community-top-btn {
    position:absolute;
    right:16px;
    bottom:18px;
    z-index:8;
    width:42px;
    height:42px;
    padding:0;
    border:1px solid rgba(255,255,255,.28);
    border-radius:50%;
    background:rgba(15,23,42,.94);
    color:#f8fafc;
    font-size:25px;
    line-height:1;
    box-shadow:0 6px 18px rgba(0,0,0,.38);
    display:grid;
    place-items:center;
}
.community-top-btn:hover {
    background:#f59e0b;
    color:#111827;
}
.community-top-btn.hidden {
    display:none;
}
@media (max-width:900px) {
    .community-top-btn {
        right:14px;
        bottom:18px;
    }
}
.community-deleted-panel {
    position:absolute;
    inset:0;
    z-index:12;
    display:flex;
    flex-direction:column;
    gap:12px;
    padding:14px;
    background:rgba(8,13,21,.98);
    overflow:auto;
}
.community-deleted-panel.hidden {
    display:none;
}
.community-deleted-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding-bottom:12px;
    border-bottom:1px solid var(--line);
}
.community-deleted-head h3 {
    margin:0 0 3px;
}
.community-deleted-list {
    display:grid;
    gap:8px;
}
.community-deleted-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 12px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#101827;
}
.community-deleted-row-copy {
    min-width:0;
}
.community-deleted-row-title {
    font-weight:800;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.community-deleted-row-meta {
    margin-top:3px;
    color:var(--muted);
    font-size:12px;
}
.community-deleted-row .btn {
    flex:0 0 auto;
}
@media (max-width:900px) {
    .community-deleted-row {
        align-items:flex-start;
    }
    .community-deleted-row-copy {
        max-width:calc(100% - 100px);
    }
}
.community-coin-outline {
    display:inline-block;
    width:25px;
    height:25px;
    object-fit:contain;
    vertical-align:-5px;
}
.community-action:disabled {
    cursor:default;
    opacity:1;
    color:#a7b2c4;
}
.community-action:disabled .community-coin-outline {
    opacity:1;
}
/* Shared ruler endpoints, independent unit grids; zero is fixed left and the sole resize grip sits right. */
body.custom-map-editing .xmap-draggable-scale-line { z-index:2300!important; }
body.custom-map-editing .xmap-draggable-scale-line .ol-scale-step-text { filter:drop-shadow(0 1px 2px #000) drop-shadow(0 -1px 2px #000); }
.xmap-map-ui .xmap-draggable-scale-line {
    display:grid!important;
    position:fixed!important;
    grid-auto-flow:row;
    gap:8px;
    width:max-content;
    min-width:0;
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
    z-index:41!important;
    transform:none;
    transform-origin:top left;
    pointer-events:auto!important;
    touch-action:none;
    cursor:grab;
}
.xmap-map-ui .xmap-draggable-scale-line:active { cursor:grabbing; }
.xmap-map-ui .xmap-scale-measure-source { display:none!important; }
.xmap-map-ui .xmap-unit-ruler {
    position:relative;
    box-sizing:border-box;
    height:45px;
    margin:0 9px;
    color:#f8fafc;
    font:600 10px/1.1 Inter,system-ui,sans-serif;
    user-select:none;
}
.xmap-map-ui .xmap-unit-ruler-bar {
    position:absolute;
    inset:15px 0 auto;
    height:16px;
}
.xmap-map-ui .xmap-unit-ruler-segment {
    position:absolute;
    top:0;
    height:15px;
    box-sizing:border-box;
    border:1px solid #000;
}
.xmap-map-ui .xmap-unit-ruler-segment.is-white { background:#fff; }
.xmap-map-ui .xmap-unit-ruler-segment.is-gray { background:#888; }
.xmap-map-ui .xmap-unit-ruler-tick {
    position:absolute;
    top:0;
    width:2px;
    height:15px;
    background:#000;
    pointer-events:none;
}
.xmap-map-ui .xmap-unit-ruler-tick::before,
.xmap-map-ui .xmap-unit-ruler-tick::after {
    position:absolute;
    left:0;
    width:2px;
    height:4px;
    background:#000;
    content:"";
}
.xmap-map-ui .xmap-unit-ruler-tick::before { top:-4px; }
.xmap-map-ui .xmap-unit-ruler-tick::after { bottom:-4px; }
.xmap-map-ui .xmap-unit-ruler-tick.is-edge { height:17px; }
.xmap-map-ui .xmap-unit-ruler-labels {
    position:absolute;
    inset:32px 0 auto;
    height:12px;
    pointer-events:none;
}
.xmap-map-ui .xmap-unit-ruler-unit {
    position:absolute;
    top:0;
    left:0;
    white-space:nowrap;
    color:#f8fafc;
    font-size:10px;
    font-weight:750;
    text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000,0 1px 2px #000;
}
.xmap-map-ui .xmap-unit-ruler-mark {
    position:absolute;
    top:0;
    transform:translateX(-50%);
    white-space:nowrap;
    font-size:10px;
    font-weight:750;
    color:#f8fafc;
    text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000,0 1px 2px #000;
}
.xmap-map-ui .xmap-unit-ruler-mark.is-start { transform:none; }
.xmap-map-ui .xmap-unit-ruler-mark.is-end { transform:translateX(-100%); }
.xmap-map-ui .xmap-unit-ruler-total {
    position:absolute;
    top:0;
    right:0;
    white-space:nowrap;
    color:#f8fafc;
    font-size:10px;
    font-weight:750;
    text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000,0 1px 2px #000;
}
.xmap-map-ui .xmap-ruler-resize-handle {
    position:absolute;
    top:50%;
    z-index:2;
    display:grid;
    width:16px;
    height:25px;
    min-width:16px;
    min-height:25px;
    place-items:center;
    padding:0;
    transform:translateY(-50%);
    border:1px solid rgba(203,213,225,.9);
    border-radius:6px;
    background:#172337;
    box-shadow:0 2px 7px rgba(0,0,0,.4);
    color:#f8fafc;
    font-size:15px;
    font-weight:800;
    line-height:1;
    cursor:ew-resize;
    touch-action:none;
}
.xmap-map-ui .xmap-ruler-resize-handle.is-right { right:0; }
.xmap-map-ui .xmap-scale-line-hidden { display:none!important; }
#mobileUiDebugBtn {
    display:none!important;
}
@media (max-width:900px) {
    .xmap-map-ui #mobileButtonLegend span {
        display:inline-flex;
        align-items:center;
        gap:2px;
    }
    .xmap-map-ui.mobile-find-mode .map-bottom-tools,
.xmap-map-ui.mobile-find-mode .ol-rotate {
        display:none!important;
    }
    .xmap-map-ui.mobile-find-mode #mobileButtonLegend {
        display:none!important;
    }
    .xmap-map-ui #mobileButtonLegend {
        position:fixed;
        left:10px;
        right:82px;
        bottom:10px;
        z-index:39;
        gap:7px;
        align-items:center;
        justify-content:center;
        padding:6px 7px;
        border:1px solid rgba(255,255,255,.28);
        border-radius:9px;
        background:rgba(15,23,42,.86);
        color:#f8fafc;
        font:10px/1.15 Inter,Arial,sans-serif;
        white-space:nowrap;
        pointer-events:none;
        display:none!important;
    }
    .xmap-map-ui .ol-rotate {
        top:auto!important;
        right:auto!important;
        left:8px!important;
        bottom:218px!important;
        width:68px;
        height:70px;
        z-index:41;
    }
    .xmap-map-ui .ol-rotate button {
        width:40px;
        height:40px;
        margin:0;
        border:0!important;
        border-radius:50%;
        background:#fff!important;
        color:#1a73e8!important;
        font-size:0!important;
        box-shadow:0 2px 8px rgba(0,0,0,.32);
    }
    .xmap-map-ui .ol-rotate button:before {
        content:"explore";
        display:flex;
        align-items:center;
        justify-content:center;
        width:40px;
        height:40px;
        border:0;
        border-radius:0;
        font-family:"Material Symbols Outlined";
        font-size:31px;
        line-height:1;
        font-weight:500;
        -webkit-text-stroke:.35px currentColor;
        font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 200,"opsz" 48;
    }
    .xmap-map-ui .ol-rotate:after {
        display:none;
    }
    .xmap-map-ui.mobile-find-mode .left-panel,
.xmap-map-ui.mobile-find-mode .mobile-menu-btn {
        display:none!important;
    }
}
.mobile-find-choice {
    display:none;
    position:fixed;
    left:12px;
    right:12px;
    top:62px;
    z-index:34;
    padding:8px;
    background:rgba(16,24,39,.96);
    border:1px solid var(--line);
    border-radius:12px;
    box-shadow:0 10px 24px #0006;
}
.mobile-find-choice .choice-buttons {
    display:flex;
    gap:8px;
}
.mobile-find-choice .btn {
    flex:1;
    min-height:48px;
    background:#fbbf24;
    border-color:#fbbf24;
    color:#171006;
    font-weight:850;
}
.mobile-find-choice .btn.ghost {
    background:#263449;
    border-color:#64748b;
    color:#f8fafc;
}
.mobile-find-choice .muted {
    text-align:center;
    margin-top:4px;
}
body.mobile-find-choice-mode .mobile-find-choice {
    display:block!important;
}
.popup-photo-thumbs {
    display:flex;
    gap:6px;
    overflow-x:auto;
    padding:7px 2px 2px;
}
.popup-photo-thumb {
    width:48px;
    height:40px;
    flex:0 0 48px;
    padding:0;
    border:2px solid #334155;
    border-radius:6px;
    background:#0b111b;
    overflow:hidden;
}
.popup-photo-thumb.active {
    border-color:#f59e0b;
}
.popup-photo-thumb img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
@media (max-width:900px) {
    .xmap-map-ui .popup-community-card .community-media {
        height:min(30vh,240px);
        min-height:160px;
        display:flex;
        align-items:center;
        justify-content:center;
    }
    .xmap-map-ui .popup-community-card .community-media .popup-photo {
        width:100%;
        height:100%;
        max-height:none;
        aspect-ratio:auto;
        object-fit:contain;
    }
    .xmap-map-ui .popup-community-card .popup-photo-wrap {
        width:100%;
        height:100%;
        display:flex;
        align-items:center;
        justify-content:center;
    }
    .xmap-map-ui .popup-community-card .popup-photo-thumbs {
        position:absolute;
        left:8px;
        right:8px;
        bottom:6px;
        z-index:3;
        padding:4px;
        background:rgba(2,6,12,.72);
        border-radius:8px;
    }
    .xmap-map-ui .ol-popup:not(.popup-community-card) .popup-photo-wrap {
        width:100%;
        height:min(30vh,240px);
        display:flex;
        align-items:center;
        justify-content:center;
        background:#02060c;
    }
    .xmap-map-ui .ol-popup:not(.popup-community-card) .popup-photo {
        width:100%;
        height:100%;
        max-width:none;
        object-fit:contain;
    }
    .xmap-map-ui .ol-popup.popup-community-card {
        max-height:calc(100vh - 20px);
        box-sizing:border-box;
        left:auto!important;
        right:auto!important;
        width:calc(100vw - 20px)!important;
        max-width:calc(100vw - 20px)!important;
        margin-top:0!important;
    }
}
.xmap-map-ui.mobile-overlay-mode .map-bottom-tools {
    display:none!important;
}
@media (min-width:901px) {
    .xmap-map-ui #mapZoomTech {
        display:block!important;
        left:auto!important;
        right:12px!important;
        top:10px!important;
        bottom:auto!important;
    }
    .xmap-map-ui .ol-rotate {
        top:auto!important;
        right:auto!important;
        left:10px!important;
        bottom:10px!important;
        width:40px;
        height:40px;
        z-index:41;
    }
    .xmap-map-ui .ol-rotate button {
        width:40px;
        height:40px;
        margin:0;
        border:0!important;
        border-radius:50%;
        background:#fff!important;
        color:#1a73e8!important;
        font-size:0!important;
        box-shadow:0 2px 8px rgba(0,0,0,.32);
    }
    .xmap-map-ui .ol-rotate button:before {
        content:"explore";
        display:flex;
        align-items:center;
        justify-content:center;
        width:40px;
        height:40px;
        font-family:"Material Symbols Outlined";
        font-size:31px;
        line-height:1;
        font-weight:500;
        font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 200,"opsz" 48;
    }
    .xmap-map-ui .ol-rotate:after {
        display:none;
    }
}
body.xmap-map-ui .account-settings-toggle {
    display:none;
    width:30px;
    height:30px;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.3);
    border-radius:8px;
    background:#263449;
    color:#fff;
    font-size:20px;
    line-height:1;
    cursor:pointer;
}
body.xmap-map-ui:not(.logged-out) .account-settings-toggle {
    display:inline-flex!important;
}
body.xmap-map-ui .account-settings-menu {
    position:absolute;
    left:0;
    top:calc(100% + 8px);
    width:min(310px,calc(100vw - 24px));
    max-height:calc(100dvh - 24px);
    overflow:auto;
    display:grid;
    gap:7px;
    padding:13px;
    border:1px solid rgba(255,255,255,.25);
    border-radius:12px;
    background:rgba(15,23,42,.97);
    color:#f8fafc;
    box-shadow:0 8px 24px rgba(0,0,0,.4);
    z-index:270;
    font-size:13px;
}
body.xmap-map-ui .account-settings-menu.hidden {
    display:none!important;
}
body.xmap-map-ui .account-settings-menu label {
    font-weight:700;
    margin-top:3px;
}
body.xmap-map-ui .account-settings-menu label small {
    font-weight:400;
    color:#cbd5e1;
}
/* Shared account setting: select the measurement rows shown on the map ruler. */
body.xmap-map-ui .account-settings-ruler {
    min-width:0;
    margin-top:3px;
    padding:0 9px 8px;
    border:1px solid rgba(148,163,184,.35);
    border-radius:8px;
    background:rgba(30,41,59,.58);
}
html.xmap-native-ruler-settings body.xmap-map-ui .account-settings-ruler { display:none!important; }
body.xmap-map-ui .account-settings-ruler summary {
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:36px;
    margin:0;
    font-weight:800;
    cursor:pointer;
    list-style:none;
}
body.xmap-map-ui .account-settings-ruler summary::-webkit-details-marker { display:none; }
body.xmap-map-ui .account-settings-ruler summary::after { content:'⌄'; color:#cbd5e1; font-size:16px; }
body.xmap-map-ui .account-settings-ruler[open] summary::after { content:'⌃'; }
body.xmap-map-ui .account-settings-ruler-options {
    display:grid;
    gap:7px;
    min-width:0;
    margin:0;
    padding:7px 0 0;
    border:0;
    border-top:1px solid rgba(148,163,184,.25);
}
body.xmap-map-ui .account-settings-ruler-options .account-settings-choice { align-items:center; margin:0; }
body.xmap-map-ui .account-settings-ruler-options input[type=checkbox] {
    flex:0 0 16px;
    width:16px;
    min-height:16px;
    margin:0;
    accent-color:#f59e0b;
}
body.xmap-map-ui .account-settings-ruler-options small { color:#cbd5e1; font-size:11px; font-weight:400; }
body.xmap-map-ui .account-settings-menu input:not([type=radio]):not([type=checkbox]),
body.xmap-map-ui .account-settings-menu select {
    width:100%;
    min-height:36px;
    padding:7px 9px;
    border:1px solid #64748b;
    border-radius:7px;
    background:#fff;
    color:#111827;
    box-sizing:border-box;
}
body.xmap-map-ui .account-settings-menu input[type=file] {
    font-size:11px;
}
body.xmap-map-ui .account-settings-choice-group {
    display:grid;
    gap:7px;
    min-width:0;
    margin:4px 0 0;
    padding:0;
    border:0;
}
body.xmap-map-ui .account-settings-choice-group legend {
    margin-bottom:6px;
    font-weight:800;
}
body.xmap-map-ui .account-settings-choice {
    display:flex;
    align-items:flex-start;
    gap:8px;
    min-width:0;
    font-weight:600;
}
body.xmap-map-ui .account-settings-choice input[type=radio],
body.xmap-map-ui .account-settings-avatar-choice input[type=radio] {
    flex:0 0 auto;
    width:16px;
    min-height:16px;
    margin:2px 0 0;
    accent-color:#f59e0b;
}
body.xmap-map-ui .account-settings-avatar-choices {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}
body.xmap-map-ui .account-settings-avatar-choice {
    display:grid;
    justify-items:center;
    gap:6px;
    min-width:0;
    padding:9px 6px;
    border:1px solid #64748b;
    border-radius:9px;
    background:#0b1220;
    color:#f8fafc;
    font-weight:700;
    cursor:pointer;
}
body.xmap-map-ui .account-settings-avatar-choice:has(input:checked) {
    border-color:#f59e0b;
    box-shadow:0 0 0 1px #f59e0b;
}
body.xmap-map-ui .account-settings-avatar-choice img {
    width:58px;
    height:58px;
    border:1px solid #94a3b8;
    border-radius:50%;
    background:linear-gradient(135deg,#334155,#0f172a);
    object-fit:cover;
}
body.xmap-map-ui .account-settings-admin {
    display:grid;
    gap:7px;
    margin-top:5px;
    padding-top:10px;
    border-top:1px solid #475569;
}
body.xmap-map-ui .account-settings-admin.hidden {
    display:none!important;
}
body.xmap-map-ui .admin-settings-mode {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin:0;
    padding:8px 9px;
    border:1px solid #475569;
    border-radius:8px;
    background:#0b1220;
}
body.xmap-map-ui .admin-settings-mode input[type=checkbox] {
    width:20px;
    min-height:20px;
    margin:0;
    padding:0;
    border:0;
    background:transparent;
    accent-color:#f59e0b;
}
body.xmap-map-ui .account-settings-admin button {
    width:100%;
    text-align:left;
}
body.xmap-map-ui .account-settings-actions {
    display:flex;
    justify-content:space-between;
    gap:8px;
    margin-top:5px;
}
body.xmap-map-ui .account-settings-ugc {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    margin-top:5px;
    padding-top:10px;
    border-top:1px solid #475569;
}
body.community-panel-open .left-panel,
body.community-panel-open #authPanel:not(.hidden),
body.custom-maps-panel-open .left-panel,
body.custom-maps-panel-open #authPanel:not(.hidden),
body.mobile-my-finds-open .left-panel,
body.mobile-my-finds-open #authPanel:not(.hidden),
body.mobile-my-logs-open .left-panel,
body.mobile-my-logs-open #authPanel:not(.hidden) {
    display:none!important;
}
body.community-panel-open .map-bottom-tools {
    display:none!important;
}
body.community-panel-open #customMapsVisibilityControls,
body.community-panel-open #customMapsPanel,
body.community-panel-open #customMapViewing,
body.community-panel-open #mapZoomTech {
    display:none!important;
}
.xmap-map-ui .mobile-map-controls-hidden {
    display:none!important;
}
@media (max-width:900px) {
    .xmap-map-ui #mapZoomTech {
        display:block!important;
        left:auto!important;
        right:12px!important;
        top:10px!important;
        bottom:auto!important;
    }
}
.xmap-map-ui.auth-pending #mapZoomTech {
    display:none!important;
}
.media-community-actions {
    margin:10px 0 8px;
    padding:8px 0 0;
    border-top:1px solid #cbd5e1;
    flex-wrap:wrap;
}
.media-community-actions .community-action {
    color:#111827;
}
.media-community-actions .community-action:hover {
    background:#e2e8f0;
}
.media-community-actions .community-action.active {
    color:#b45309;
}
.media-community-actions .media-place-action {
    margin-left:auto;
    background:#fbbf24;
    color:#171006;
    font-weight:850;
}
.media-community-actions .media-place-action:hover {
    background:#f59e0b;
}
.media-card.community-media-viewer-card .media-community-actions .community-action {
    color:#f8fafc;
}
.media-card.community-media-viewer-card .media-community-actions .community-action:hover {
    background:#18202c;
}
.media-card.community-media-viewer-card .media-community-actions .media-place-action {
    color:#171006;
    background:#fbbf24;
}
@media (max-width:900px) {
    .media-community-actions {
        gap:4px;
        overflow-x:auto;
        flex-wrap:nowrap;
    }
    .media-community-actions .media-place-action {
        margin-left:0;
    }
}
.media-card.community-media-viewer-card {
    background:#0b1018;
    color:#f8fafc;
    border:1px solid #263244;
    width:min(390px,calc(100vw - 32px));
    height:min(680px,calc(100vh - 140px));
    max-height:none;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    padding:10px;
}
.community-media-zoom-frame {
    position:relative;
    flex:0 0 330px;
    height:330px;
    overflow:hidden;
    background:#02060c;
    border-radius:7px;
    display:flex;
    align-items:center;
    justify-content:center;
}
.community-media-zoom-frame img {
    display:block;
    width:100%;
    height:100%;
    max-height:none!important;
    object-fit:contain;
    border-radius:0;
    transform-origin:0 0;
    will-change:transform;
    cursor:zoom-in;
}
.media-card.community-media-viewer-card .popup-actions {
    flex:0 0 auto;
}
.media-card.community-media-viewer-card .popup-photo-thumbs {
    flex:0 0 auto;
}
.media-card.community-media-viewer-card .media-community-actions {
    border-top-color:#263244;
    flex:0 0 auto;
    margin-top:auto;
}
@media (max-width:900px) {
    .media-card.community-media-viewer-card {
        width:calc(100vw - 20px);
        height:calc(100vh - 134px);
    }
    .community-media-zoom-frame {
        flex-basis:min(46vh,360px);
        height:min(46vh,360px);
    }
}
.community-media-viewer-head {
    display:flex;
    align-items:center;
    gap:9px;
    flex:0 0 auto;
    padding:2px 0 9px;
    margin:0 0 9px;
    border-bottom:1px solid #263244;
}
.community-media-viewer-head .community-avatar {
    width:34px;
    height:34px;
}
.community-media-viewer-head .community-author-copy {
    min-width:0;
}
.community-media-viewer-head .community-author-name {
    font-size:14px;
}
.community-media-viewer-head .community-author-meta {
    font-size:11px;
}
.community-media-viewer-head .community-follow {
    padding:5px 8px;
    font-size:11px;
    white-space:nowrap;
}
.community-media-viewer-head .community-more {
    width:30px;
    height:30px;
    font-size:24px;
}
.community-media-viewer-head .community-more:hover {
    background:#18202c;
    border-radius:7px;
}
.popup-community-card .popup-photo-wrap {
    margin:0;
    background:#02060c;
    overflow:hidden;
}
.popup-community-card .popup-photo[data-popup-image] {
    will-change:transform;
    transform-origin:0 0;
}
@keyframes xmap-photo-slide-next {
    from {
        opacity:.35;
        transform:translateX(12px);
    }
    to {
        opacity:1;
        transform:translateX(0);
    }
}
@keyframes xmap-photo-slide-prev {
    from {
        opacity:.35;
        transform:translateX(-12px);
    }
    to {
        opacity:1;
        transform:translateX(0);
    }
}
.xmap-photo-slide-next {
    animation:xmap-photo-slide-next .22s ease-out both;
}
.xmap-photo-slide-prev {
    animation:xmap-photo-slide-prev .22s ease-out both;
}
@media (max-width:900px) {
    .xmap-map-ui.mobile-find-mode #findPanel {
        position:fixed!important;
        left:12px!important;
        right:12px!important;
        top:10px!important;
        bottom:10px!important;
        width:auto!important;
        height:auto!important;
        max-width:none!important;
        max-height:none!important;
        margin:0!important;
        transform:none!important;
        box-sizing:border-box;
        padding:12px!important;
        border-radius:14px!important;
    }
    .xmap-map-ui.mobile-find-mode #mapZoomTech {
        display:none!important;
    }
    .xmap-map-ui.mobile-find-mode #findPanel .find-actions {
        margin-bottom:2px;
        border-radius:8px 8px 10px 10px;
    }
    .xmap-map-ui.mobile-find-mode #findPanel .find-panel-scroll {
        padding-right:0!important;
        scrollbar-width:none;
        -ms-overflow-style:none;
    }
    .xmap-map-ui.mobile-find-mode #findPanel .find-panel-scroll::-webkit-scrollbar {
        width:0!important;
        height:0!important;
        display:none!important;
    }
}
.mobile-my-logs-panel {
    position:fixed;
    left:12px;
    right:76px;
    top:10px;
    bottom:10px;
    width:auto;
    max-height:none;
    z-index:230;
    padding:12px;
    background:rgba(8,13,21,.98);
    border:1px solid #334155;
    border-radius:14px;
    color:#f8fafc;
    box-shadow:0 12px 28px #0008;
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.mobile-my-finds-panel {
    position:fixed;
    left:12px;
    right:76px;
    top:10px;
    bottom:10px;
    z-index:230;
    padding:12px;
    background:rgba(8,13,21,.98);
    border:1px solid #334155;
    border-radius:14px;
    color:#f8fafc;
    box-shadow:0 12px 28px #0008;
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.mobile-my-finds-panel .mobile-my-finds-head,
.mobile-my-logs-panel .mobile-my-logs-head,
.custom-maps-panel .custom-maps-head {
    position:sticky;
    top:0;
    z-index:5;
    flex:0 0 auto;
    background:rgba(8,13,21,.99);
    padding-top:4px;
}
.mobile-my-finds-list {
    display:grid;
    gap:9px;
    margin-top:10px;
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding-bottom:8px;
}
.mobile-my-logs-list {
    display:grid;
    gap:8px;
    margin-top:10px;
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding-bottom:8px;
}
/* Keep own routes primary; collections must not squeeze them out of the panel. */
.mobile-my-logs-list { align-content:start; }
#mobileMyRouteCollections { flex:0 0 auto; max-height:40%; overflow-y:auto; overscroll-behavior:contain; }
#mobileMyRouteCollections[hidden] { display:none; }
.mobile-route-collection { margin-top:8px; border-top:1px solid var(--line); }
.mobile-route-collection > summary { cursor:pointer; padding:10px 0; font-weight:700; }
.mobile-route-collection > summary span { color:#94a3b8; font-weight:400; }
.mobile-route-collection-items { display:grid; gap:8px; padding-bottom:8px; }
.mobile-route-collection .mobile-find-card-main { width:100%; text-align:left; }

.mobile-my-finds-head {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:7px;
    padding-bottom:9px;
    border-bottom:1px solid var(--line);
}
.mobile-my-finds-title {
    min-width:0;
}
.mobile-my-finds-title h2 {
    margin:0 0 3px;
    font-size:18px;
}
.mobile-my-finds-title .muted {
    font-size:11px;
    line-height:1.3;
}
.mobile-my-finds-filters {
    grid-column:1/-1;
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:12px;
    padding-top:2px;
}
.mobile-my-finds-filters label {
    display:flex;
    align-items:center;
    gap:4px;
    color:#e2e8f0;
    font-size:12px;
    white-space:nowrap;
    cursor:pointer;
}
.mobile-my-finds-filters input {
    width:17px;
    height:17px;
    margin:0;
    accent-color:#f59e0b;
}
.mobile-find-section {
    display:grid;
    gap:8px;
}
.mobile-find-section-head {
    margin:4px 0 0;
    padding-top:10px;
    border-top:1px solid #475569;
    color:#f8fafc;
    font-size:15px;
    font-weight:800;
}
.mobile-find-section-empty {
    padding:4px 2px 8px;
    color:#94a3b8;
    font-size:12px;
}
.custom-maps-panel:not(.map-editor-active) {
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.custom-maps-list {
    display:grid;
    gap:8px;
    margin-top:12px;
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    align-content:start;
    overscroll-behavior:contain;
}
.custom-map-add-first {
    width:100%;
    order:-1;
}
.mobile-saved-maps-head {
    position:sticky;
    top:0;
    z-index:5;
    flex:0 0 auto;
    background:rgba(8,13,21,.99);
    padding-top:4px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:4px 0 10px;
    border-bottom:1px solid var(--line);
}
.mobile-saved-maps-head b {
    font-size:18px;
}
.mobile-saved-map-list {
    display:grid;
    gap:6px;
    margin-top:8px;
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    align-content:start;
}
.mobile-saved-map-list>[data-mobile-map-add] {
    order:-1;
}
html.xmap-mode-web:not(.xmap-mode-web-mini) body.xmap-map-ui #mobileSavedMapsPanel:not(.hidden) {
    position:fixed;
    left:12px;
    right:76px;
    top:10px;
    bottom:10px;
    z-index:210;
    max-height:none;
    padding:10px;
    background:rgba(8,13,21,.96);
    border:1px solid #334155;
    border-radius:12px;
    box-shadow:0 12px 28px rgba(0,0,0,.38);
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
}
.xmap-map-ui #customMapsPanel:not(.hidden):not(.map-editor-active) {
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
}
#debugToggleBtn {
    display:none!important;
}
#debugPanel {
    display:none!important;
}
body.xmap-map-ui.custom-maps-panel-open #mobileAdminModeSwitch,
body.xmap-map-ui.custom-maps-panel-open #webAdminPanelLink,
body.xmap-map-ui.mobile-my-finds-open #mobileAdminModeSwitch,
body.xmap-map-ui.mobile-my-finds-open #webAdminPanelLink,
body.xmap-map-ui.mobile-my-logs-open #mobileAdminModeSwitch,
body.xmap-map-ui.mobile-my-logs-open #webAdminPanelLink {
    display:none!important;
}
.xmap-media-zoom {
    transform:translate(var(--xmap-zoom-x, 0px), var(--xmap-zoom-y, 0px)) scale(var(--xmap-zoom-scale, 1));
    transform-origin:0 0;
    will-change:transform;
}
.popup-community-card .popup-photo.xmap-media-zoom {
    cursor:zoom-in;
}
.popup-community-card .popup-photo.xmap-media-zoom.is-zoomed {
    cursor:zoom-out;
}
.community-media-zoom-frame img.xmap-media-zoom {
    cursor:zoom-in;
}
.community-media-zoom-frame img.xmap-media-zoom.is-zoomed {
    cursor:zoom-out;
}
.xmap-inline-styles .xmap-u-align-center {
    align-items:center;
}
.xmap-inline-styles .xmap-u-align-self-center {
    align-self:center;
}
.xmap-inline-styles .xmap-u-background-0284c7 {
    background:#0284c7;
}
.xmap-inline-styles .xmap-u-background-0b111b {
    background:#0b111b;
}
.xmap-inline-styles .xmap-u-background-10b981 {
    background:#10b981;
}
.xmap-inline-styles .xmap-u-background-16a34a {
    background:#16a34a;
}
.xmap-inline-styles .xmap-u-background-84cc16 {
    background:#84cc16;
}
.xmap-inline-styles .xmap-u-background-991b1b {
    background:#991b1b;
}
.xmap-inline-styles .xmap-u-background-dc2626 {
    background:#dc2626;
}
.xmap-inline-styles .xmap-u-background-eab308 {
    background:#eab308;
}
.xmap-inline-styles .xmap-u-background-ef4444 {
    background:#ef4444;
}
.xmap-inline-styles .xmap-u-background-f59e0b {
    background:#f59e0b;
}
.xmap-inline-styles .xmap-u-background-f97316 {
    background:#f97316;
}
.xmap-inline-styles .xmap-u-background-facc15 {
    background:#facc15;
}
.xmap-inline-styles .xmap-u-background-navy-alpha-78 {
    background:rgba(15,23,42,.78);
}
.xmap-inline-styles .xmap-u-border-1px-solid-line {
    border:1px solid var(--line);
}
.xmap-inline-styles .xmap-u-border-1px-solid-rgba-255-255-255-28 {
    border:1px solid rgba(255,255,255,.28);
}
.xmap-inline-styles .xmap-u-border-top-0 {
    border-top:0;
}
.xmap-inline-styles .xmap-u-border-top-1px-solid-line {
    border-top:1px solid var(--line);
}
.xmap-inline-styles .xmap-u-bottom-18px {
    bottom:18px;
}
.xmap-inline-styles .xmap-u-box-sizing-border-box {
    box-sizing:border-box;
}
.xmap-inline-styles .xmap-u-color-334155 {
    color:#334155;
}
.xmap-inline-styles .xmap-u-color-cbd5e1 {
    color:#cbd5e1;
}
.xmap-inline-styles .xmap-u-color-f8fafc {
    color:#f8fafc;
}
.xmap-inline-styles .xmap-u-color-muted {
    color:var(--muted);
}
.xmap-inline-styles .xmap-u-cursor-pointer {
    cursor:pointer;
}
.xmap-inline-styles .xmap-u-display-block {
    display:block;
}
.xmap-inline-styles .xmap-u-display-flex {
    display:flex;
}
.xmap-inline-styles .xmap-u-display-grid {
    display:grid;
}
.xmap-inline-styles .xmap-u-display-none {
    display:none;
}
.xmap-inline-styles .xmap-u-flex-1 {
    flex:1;
}
.xmap-inline-styles .xmap-u-flex-wrap-wrap {
    flex-wrap:wrap;
}
.xmap-inline-styles .xmap-u-font-11px-1-2-monospace {
    font:11px/1.2 monospace;
}
.xmap-inline-styles .xmap-u-font-mono-12-14 {
    font:12px/1.4 Consolas,monospace;
}
.xmap-inline-styles .xmap-u-font-mono-12-145 {
    font:12px/1.45 Consolas,monospace;
}
.xmap-inline-styles .xmap-u-font-size-11px {
    font-size:11px;
}
.xmap-inline-styles .xmap-u-font-size-12px {
    font-size:12px;
}
.xmap-inline-styles .xmap-u-font-size-22px {
    font-size:22px;
}
.xmap-inline-styles .xmap-u-font-size-42px {
    font-size:42px;
}
.xmap-inline-styles .xmap-u-font-weight-800 {
    font-weight:800;
}
.xmap-inline-styles .xmap-u-gap-10px {
    gap:10px;
}
.xmap-inline-styles .xmap-u-gap-6px {
    gap:6px;
}
.xmap-inline-styles .xmap-u-gap-7px {
    gap:7px;
}
.xmap-inline-styles .xmap-u-gap-8px {
    gap:8px;
}
.xmap-inline-styles .xmap-u-gap-9px {
    gap:9px;
}
.xmap-inline-styles .xmap-u-grid-columns-content-auto {
    grid-template-columns:minmax(0,1fr) auto;
}
.xmap-inline-styles .xmap-u-grid-columns-equal-columns {
    grid-template-columns:1fr 1fr;
}
.xmap-inline-styles .xmap-u-height-150px {
    height:150px;
}
.xmap-inline-styles .xmap-u-justify-flex-end {
    justify-content:flex-end;
}
.xmap-inline-styles .xmap-u-justify-space-between {
    justify-content:space-between;
}
.xmap-inline-styles .xmap-u-left-10px {
    left:10px;
}
.xmap-inline-styles .xmap-u-left-50pct {
    left:50%;
}
.xmap-inline-styles .xmap-u-left-auto {
    left:auto;
}
.xmap-inline-styles .xmap-u-margin-0 {
    margin:0;
}
.xmap-inline-styles .xmap-u-margin-10px-0-0 {
    margin:10px 0 0;
}
.xmap-inline-styles .xmap-u-margin-5px-0 {
    margin:5px 0;
}
.xmap-inline-styles .xmap-u-max-height-calc-100vh-150px {
    max-height:calc(100vh - 150px);
}
.xmap-inline-styles .xmap-u-max-height-none {
    max-height:none;
}
.xmap-inline-styles .xmap-u-max-width-340px {
    max-width:340px;
}
.xmap-inline-styles .xmap-u-mb-6px {
    margin-bottom:6px;
}
.xmap-inline-styles .xmap-u-mb-7px {
    margin-bottom:7px;
}
.xmap-inline-styles .xmap-u-mb-8px {
    margin-bottom:8px;
}
.xmap-inline-styles .xmap-u-min-height-20px {
    min-height:20px;
}
.xmap-inline-styles .xmap-u-min-width-0 {
    min-width:0;
}
.xmap-inline-styles .xmap-u-mt-0 {
    margin-top:0;
}
.xmap-inline-styles .xmap-u-mt-10px {
    margin-top:10px;
}
.xmap-inline-styles .xmap-u-mt-12px {
    margin-top:12px;
}
.xmap-inline-styles .xmap-u-mt-5px {
    margin-top:5px;
}
.xmap-inline-styles .xmap-u-mt-6px {
    margin-top:6px;
}
.xmap-inline-styles .xmap-u-mt-7px {
    margin-top:7px;
}
.xmap-inline-styles .xmap-u-mt-8px {
    margin-top:8px;
}
.xmap-inline-styles .xmap-u-mt-9px {
    margin-top:9px;
}
.xmap-inline-styles .xmap-u-object-fit-contain {
    object-fit:contain;
}
.xmap-inline-styles .xmap-u-overflow-auto {
    overflow:auto;
}
.xmap-inline-styles .xmap-u-padding-10px {
    padding:10px;
}
.xmap-inline-styles .xmap-u-padding-10px-12px-4px {
    padding:10px 12px 4px;
}
.xmap-inline-styles .xmap-u-padding-14px {
    padding:14px;
}
.xmap-inline-styles .xmap-u-padding-16px {
    padding:16px;
}
.xmap-inline-styles .xmap-u-padding-4px-7px {
    padding:4px 7px;
}
.xmap-inline-styles .xmap-u-padding-7px-8px {
    padding:7px 8px;
}
.xmap-inline-styles .xmap-u-padding-8px-0 {
    padding:8px 0;
}
.xmap-inline-styles .xmap-u-padding-top-0 {
    padding-top:0;
}
.xmap-inline-styles .xmap-u-padding-top-10px {
    padding-top:10px;
}
.xmap-inline-styles .xmap-u-padding-top-9px {
    padding-top:9px;
}
.xmap-inline-styles .xmap-u-pointer-events-none {
    pointer-events:none;
}
.xmap-inline-styles .xmap-u-position-fixed {
    position:fixed;
}
.xmap-inline-styles .xmap-u-radius-5px {
    border-radius:5px;
}
.xmap-inline-styles .xmap-u-radius-8px {
    border-radius:8px;
}
.xmap-inline-styles .xmap-u-radius-9px {
    border-radius:9px;
}
.xmap-inline-styles .xmap-u-right-10px {
    right:10px;
}
.xmap-inline-styles .xmap-u-right-16px {
    right:16px;
}
.xmap-inline-styles .xmap-u-top-10px {
    top:10px;
}
.xmap-inline-styles .xmap-u-top-155px {
    top:155px;
}
.xmap-inline-styles .xmap-u-top-74px {
    top:74px;
}
.xmap-inline-styles .xmap-u-top-76px {
    top:76px;
}
.xmap-inline-styles .xmap-u-transform-center-x {
    transform:translateX(-50%);
}
.xmap-inline-styles .xmap-u-transform-none {
    transform:none;
}
.xmap-inline-styles .xmap-u-white-space-pre-wrap {
    white-space:pre-wrap;
}
.xmap-inline-styles .xmap-u-width-full {
    width:100%;
}
.xmap-inline-styles .xmap-u-width-min-520px-calc-100vw-28px {
    width:min(520px,calc(100vw - 28px));
}
.xmap-inline-styles .xmap-u-word-break-break-word {
    word-break:break-word;
}
.xmap-inline-styles .xmap-u-z-18 {
    z-index:18;
}
.xmap-inline-styles .xmap-u-z-230 {
    z-index:230;
}
.xmap-inline-styles .xmap-u-z-84 {
    z-index:84;
}
.xmap-inline-styles .xmap-u-z-85 {
    z-index:85;
}
/* First paint: reveal controls only after account and map preferences are applied. */
body.data-pending:not(.map-controls-ready) #customMapsVisibilityControls,
body.data-pending:not(.map-controls-ready) .xmap-right-action-dock,
body.data-pending:not(.map-controls-ready) .xmap-left-control-dock,
body.data-pending .left-panel {
    visibility:hidden!important;
}
body.xmap-map-ui .map-bottom-tools {
    display:none!important;
}
#xmapStartDock {
    position:fixed;
    bottom:var(--xmap-controls-bottom);
    left:calc(50% - 80px);
    width:160px;
    z-index:91;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
}
#xmapLocationWarning {
    position:fixed;
    z-index:24;
    top:42px;
    left:8px;
    padding:4px 8px;
    border-radius:10px;
    background:rgba(15,23,42,.9);
    color:#fbbf24;
    font:600 11px/1.3 system-ui,sans-serif;
    pointer-events:none;
}
#xmapLocationWarning[hidden] {display:none;}
#xmapOfflineStatus {
    position:fixed;top:46px;left:50%;transform:translateX(-50%);z-index:92;
    max-width:calc(100vw - 24px);padding:5px 8px;border-radius:8px;
    background:rgba(15,23,42,.92);color:#fbbf24;font:600 11px/1.3 Arial,sans-serif;text-align:center;
}
#xmapOfflineStatus[hidden] {display:none;}
.xmap-offline-copy-status {grid-column:1/-1;color:#93c5fd;font-size:10px;}
.xmap-offline-note {font-size:12px;line-height:1.4;color:#94a3b8;margin:8px 0;}
#mobileStartBtn {
    width:100%;
    min-height:0;
    box-sizing:border-box;
    border:1px solid #93c5fd;
    border-radius:28px;
    padding:4px 8px;
    background:#1976d2;
    color:#fff;
    font:700 11px/1.2 Inter,Arial,sans-serif;
    box-shadow:0 3px 12px #0005;
    cursor:pointer;
}
#mobileStartBtn.is-start-set {background:#1256a1;border-color:#fbbf24;}
#mobileStartBtn.is-start-pending {opacity:.7;}
#xmapNavigationBtn {
    width:100%;min-height:36px;padding:5px 7px;box-sizing:border-box;
    border:1px solid #93c5fd;border-radius:18px;background:rgba(15,23,42,.9);
    color:#fff;font:700 11px/1.3 Arial,sans-serif;box-shadow:0 2px 8px #0005;cursor:pointer;
}
#xmapNavigationBtn.is-active {background:#1976d2;border-color:#fff;}
#xmapNavigationBtn[hidden],#xmapNavigationStatus[hidden] {display:none;}
#xmapNavigationStatus {max-width:100%;padding:2px 4px;border-radius:5px;background:rgba(15,23,42,.9);color:#fff;font:10px/1.3 Arial,sans-serif;text-align:center;}
#xmapReturnGuide {
    width:100%;
    border:0;
    padding:0;
    background:transparent;
    color:#1a73e8;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:4px;
    cursor:pointer;
}
#xmapReturnGuide[hidden] {display:none;}
#xmapReturnGuide .xmap-return-circle {
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 2px 8px rgba(0,0,0,.32);
}
#xmapReturnGuide svg {width:30px;height:30px;}
#xmapReturnGuide .xmap-return-dot {position:absolute;width:12px;height:12px;border-radius:50%;background:currentColor;}
#xmapReturnGuide .xmap-return-dot[hidden] {display:none;}
#xmapReturnGuide b,
#xmapReturnGuide small {max-width:100%;padding:2px 4px;border-radius:5px;background:rgba(15,23,42,.88);color:#fff;box-sizing:border-box;}
#xmapReturnGuide b {font:700 12px/1.2 Arial,sans-serif;}
#xmapReturnGuide small {font:10px/1.3 Arial,sans-serif;}
body.data-pending:not(.map-controls-ready) #xmapStartDock,
body.custom-map-editing #xmapStartDock,
body.find-panel-open #xmapStartDock {display:none;}
/* Shared right dock: width of longest caption, one center axis, anchored bottom-right. */
.xmap-right-action-dock {
    position:fixed;
    right:0;
    bottom:var(--xmap-controls-bottom);
    z-index:90;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
    width:max-content;
    max-width:calc(100vw - 8px);
    padding:12px 0 0;
    box-sizing:border-box;
    max-height:calc(100dvh - 24px);
    overflow-y:auto;
    overflow-x:hidden;
    scrollbar-width:none;
    pointer-events:none;
}
.xmap-right-action-dock .mobile-control-button {
    position:relative!important;
    inset:auto!important;
    display:flex!important;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    width:max-content!important;
    min-width:0!important;
    max-width:calc(100vw - 8px)!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    color:#1a73e8!important;
    box-shadow:none;
    overflow:visible;
    pointer-events:auto;
}
.xmap-right-action-dock .mobile-control-button.hidden {
    display:none!important;
}
.xmap-right-action-dock .mobile-control-content {
    position:relative;
    display:flex!important;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    width:max-content;
    max-width:calc(100vw - 8px);
    height:auto;
    text-align:center;
}
.xmap-right-action-dock .mobile-control-content>.material-symbols-outlined,
.xmap-right-action-dock .mobile-control-content>.mobile-location-on-icon,
.xmap-right-action-dock .mobile-control-content>.mobile-automation-icon {
    box-sizing:border-box;
    display:flex;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    margin:0;
    padding:5px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 2px 8px rgba(0,0,0,.32);
    color:inherit;
    font-size:30px;
    line-height:1;
}
.xmap-right-action-dock .mobile-control-content>.mobile-location-on-icon {
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.xmap-right-action-dock .mobile-location-on-icon circle {
    fill:currentColor;
}
.xmap-right-action-dock .mobile-control-content>span:last-child {
    position:static;
    display:block!important;
    width:max-content;
    max-width:calc(100vw - 8px);
    transform:none;
    padding:1px 4px;
    border-radius:5px;
    background:rgba(15,23,42,.88);
    color:#fff;
    font-size:9px;
    font-weight:800;
    line-height:11px;
    text-align:center;
    white-space:nowrap;
    text-shadow:0 1px 2px #000;
}
.xmap-right-action-dock #communityToggleBtn .desktop-community-label,
.xmap-right-action-dock #communityToggleBtn .mobile-community-icon {
    display:none!important;
}
.xmap-right-action-dock #mobileLogBtn.is-logging {
    color:#dc2626!important;
    outline:0!important;
    animation:none;
}
.xmap-right-action-dock #mobileLogBtn.is-logging .material-symbols-outlined {
    animation:xmap-recording-pulse 1.1s ease-in-out infinite;
}
@keyframes xmap-recording-pulse {
    0%,100% {
        transform:scale(1);
        box-shadow:0 2px 8px rgba(0,0,0,.32),0 0 0 0 rgba(239,68,68,.45);
    }
    50% {
        transform:scale(1.12);
        box-shadow:0 2px 8px rgba(0,0,0,.32),0 0 0 6px rgba(239,68,68,0);
    }
}
@media (prefers-reduced-motion:reduce) {
    .xmap-right-action-dock #mobileLogBtn.is-logging .material-symbols-outlined {
        animation:none;
    }
}
/* Shared lower-left dock: layer switches and map/satellite switch. */
.xmap-left-control-dock {
    position:fixed;
    left:max(10px,env(safe-area-inset-left));
    bottom:var(--xmap-controls-bottom);
    z-index:40;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
    max-width:calc(100vw - 90px);
    max-height:calc(100dvh - 24px);
    pointer-events:none;
}
#mobileOverlaySwitches {
    display:flex;
    position:relative;
    inset:auto;
    z-index:auto;
    flex-direction:column;
    gap:8px;
    width:max-content;
    min-width:0;
    max-width:100%;
    max-height:calc(100dvh - 110px);
    overflow-y:auto;
    padding:10px 8px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:10px;
    background:rgba(15,23,42,.9);
    color:#f8fafc;
    font:11px/1 Inter,Arial,sans-serif;
    box-shadow:0 5px 16px rgba(0,0,0,.28);
    box-sizing:border-box;
    pointer-events:auto;
}
#mobileOverlaySwitchesTitle {
    display:block!important;
    font-size:12px;
    font-weight:800;
    line-height:1.1;
}
#mobileOverlaySwitches label {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:6px;
    min-width:0;
    white-space:nowrap;
}
#mobileOverlaySwitches input {
    appearance:none;
    position:relative;
    width:30px;
    height:17px;
    margin:0;
    border:0;
    border-radius:999px;
    outline:0;
    background:#475569;
    cursor:pointer;
}
#mobileOverlaySwitches input:before {
    content:"";
    position:absolute;
    top:2px;
    left:2px;
    width:13px;
    height:13px;
    border-radius:50%;
    background:#f8fafc;
    transition:transform .16s ease;
}
#mobileOverlaySwitches input:checked,
#mobileBaseLayerSwitch input:checked {
    background:#f59e0b;
}
#mobileOverlaySwitches input:checked:before {
    transform:translateX(13px);
}
#mobileBaseLayerSwitch {
    box-sizing:border-box;
    display:flex;
    position:relative;
    inset:auto;
    z-index:auto;
    align-items:center;
    gap:6px;
    padding:6px 8px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:999px;
    background:rgba(15,23,42,.9);
    color:#f8fafc;
    font:11px/1 Inter,Arial,sans-serif;
    box-shadow:0 5px 16px rgba(0,0,0,.28);
    pointer-events:auto;
}
#mobileBaseLayerSwitch input {
    appearance:none;
    position:relative;
    width:34px;
    height:18px;
    margin:0;
    border:0;
    border-radius:999px;
    outline:0;
    background:#475569;
    cursor:pointer;
}
#mobileBaseLayerSwitch input:before {
    content:"";
    position:absolute;
    top:2px;
    left:2px;
    width:14px;
    height:14px;
    border-radius:50%;
    background:#f8fafc;
    transition:transform .16s ease;
}
#mobileBaseLayerSwitch input:checked:before {
    transform:translateX(16px);
}
#mobileButtonLegend {
    display:none!important;
}
body.community-panel-open .xmap-right-action-dock,
body.custom-map-editing .xmap-right-action-dock {
    display:none!important;
}
.xmap-map-ui #mobileSavedMapsPanel:not(.hidden),
.xmap-map-ui #customMapsPanel:not(.hidden) {
    z-index:260!important;
    pointer-events:auto;
}
/* Shared control visibility. Apply state to the dock, never rebuild its buttons. */
body.mobile-find-mode .xmap-right-action-dock,
body.mobile-my-logs-detail-open .xmap-right-action-dock {
    display:none!important;
}
body.mobile-find-mode .xmap-left-control-dock,
body.mobile-my-logs-detail-open .xmap-left-control-dock,
body.mobile-my-finds-open .xmap-left-control-dock,
body.mobile-my-logs-open .xmap-left-control-dock,
body.custom-maps-panel-open .xmap-left-control-dock,
body.custom-map-editing .xmap-left-control-dock {
    display:none!important;
}
body.mobile-overlay-mode .xmap-right-action-dock .mobile-control-button:not(#communityToggleBtn):not(#mobileLocateBtn) {
    display:none!important;
}
.mobile-location-follow-dot {
    display:none;
}
#mobileLocateBtn.is-following .mobile-location-follow-dot {
    display:block;
    position:absolute;
    top:3px;
    right:3px;
    width:7px;
    height:7px;
    border:1px solid white;
    border-radius:50%;
    background:#22c55e;
}
/* 02 NATIVE — WebView only */
html.xmap-mode-native body.mobile-my-finds-open #mobileScreenLockToggle,
html.xmap-mode-native body.mobile-my-finds-open #mobileScreenLockOverlay,
html.xmap-mode-native body.mobile-my-logs-open #mobileScreenLockToggle,
html.xmap-mode-native body.mobile-my-logs-open #mobileScreenLockOverlay,
html.xmap-mode-native body.custom-maps-panel-open #mobileScreenLockToggle,
html.xmap-mode-native body.custom-maps-panel-open #mobileScreenLockOverlay {
    display:none!important;
}
html.xmap-mode-native body.mobile-my-logs-detail-open #mobileScreenLockToggle {
    display:none!important;
}
html.xmap-mode-native .community-route-preview-open #mobileScreenLockToggle,
html.xmap-mode-native .community-route-preview-open #mobileScreenLockOverlay {
    display:none!important;
}
html.xmap-mode-native body.custom-map-editing #mobileScreenLockToggle,
html.xmap-mode-native body.custom-map-editing #mobileScreenLockOverlay {
    display:none!important;
}
html.xmap-mode-native #mobileScreenLockToggle {
    display:none;
}
html.xmap-mode-native #mobileScreenLockOverlay {
    display:none;
}
html.xmap-mode-native .xmap-map-ui #mobileScreenLockToggle {
    display:flex;
    position:fixed;
    left:10px;
    top:10px;
    z-index:260;
    align-items:center;
    gap:7px;
    height:28px;
    padding:4px 8px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:8px;
    background:rgba(15,23,42,.9);
    color:#f8fafc;
    font:700 11px/1 Inter,Arial,sans-serif;
    box-shadow:0 4px 12px rgba(0,0,0,.28);
    cursor:pointer;
    user-select:none;
}
html.xmap-mode-native .xmap-map-ui #mobileScreenLockToggle input {
    position:absolute;
    width:1px;
    height:1px;
    opacity:0;
    pointer-events:none;
}
html.xmap-mode-native .xmap-map-ui #mobileScreenLockToggle .screen-lock-switch {
    position:relative;
    width:28px;
    height:16px;
    border-radius:10px;
    background:#475569;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);
    transition:background .15s ease;
}
html.xmap-mode-native .xmap-map-ui #mobileScreenLockToggle .screen-lock-switch:after {
    content:"";
    position:absolute;
    top:3px;
    left:3px;
    width:10px;
    height:10px;
    border-radius:50%;
    background:#f8fafc;
    transition:transform .15s ease;
}
html.xmap-mode-native .xmap-map-ui #mobileScreenLockToggle.is-checked .screen-lock-switch {
    background:#f59e0b;
}
html.xmap-mode-native .xmap-map-ui #mobileScreenLockToggle.is-checked .screen-lock-switch:after {
    transform:translateX(12px);
    background:#111827;
}
html.xmap-mode-native .xmap-map-ui #mobileScreenLockOverlay.active {
    display:block;
    position:fixed;
    inset:0;
    z-index:250;
    background:transparent;
    touch-action:none;
    cursor:not-allowed;
}
html.xmap-mode-native .xmap-map-ui.mobile-screen-locked #mobileScreenLockToggle {
    background:#92400e;
    border-color:#fbbf24;
}
html.xmap-mode-native body.xmap-map-ui #mobileAccountBadge {
    position:fixed;
    left:50%;
    top:8px;
    z-index:24;
    max-width:min(72vw,360px);
    padding:6px 12px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    transform:translateX(-50%);
    border:1px solid rgba(134,239,172,.55);
    border-radius:18px;
    background:rgba(8,20,18,.9);
    color:#dcfce7;
    font:700 12px/1.2 system-ui,sans-serif;
    box-shadow:0 3px 12px rgba(0,0,0,.3);
    pointer-events:none;
}
html.xmap-mode-native body.xmap-map-ui #mobileAccountBadge.hidden {
    display:none!important;
}
html.xmap-mode-native body.community-panel-open #mobileScreenLockToggle,
html.xmap-mode-native body.community-panel-open #mobileScreenLockOverlay {
    display:none!important;
}
html.xmap-mode-native .xmap-map-ui:not(.mobile-find-mode):not(.community-panel-open) #mobileScreenLockToggle:not(.mobile-map-controls-hidden) {
    display:flex!important;
}
html.xmap-mode-native .xmap-map-ui.auth-pending #mobileScreenLockToggle {
    display:none!important;
}
/* Phone WebViews already sit inside the native system-bar insets. */
@media (max-width:599px) {
    html.xmap-mode-native { --xmap-controls-bottom:4px; }
}
/* 03 WEB — browser behavior and wide layout */
html.xmap-mode-web .xmap-map-ui #authPanel:not(.hidden) {
    display:block!important;
}
html.xmap-mode-web:not(.xmap-mode-web-mini) body.xmap-map-ui .custom-map-visibility-row label span {
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
}
html.xmap-mode-web #findPanel #findUseMyLocationBtn,
html.xmap-mode-web body.xmap-map-ui .find-panel #findUseMyLocationBtn,
html.xmap-mode-web #mobileFindChoice #mobileUseLocationBtn,
html.xmap-mode-web:not(.xmap-web-device-mobile) #findCameraBtn {
    display:none!important;
}
html.xmap-mode-web body.xmap-map-ui .left-panel {
    display:block!important;
    position:fixed!important;
    left:10px!important;
    top:10px!important;
    right:auto!important;
    bottom:auto!important;
    width:max-content!important;
    height:auto!important;
    max-width:min(360px,calc(100vw - 100px))!important;
    max-height:none!important;
    overflow:visible!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    z-index:260!important;
}
html.xmap-mode-web body.xmap-map-ui .left-panel.guest-mode {
    width:max-content!important;
    height:auto!important;
    max-width:min(360px,calc(100vw - 100px))!important;
    padding:0!important;
    overflow:visible!important;
}
html.xmap-mode-web body.xmap-map-ui .left-panel>:not(.left-panel-account) {
    display:none!important;
}
html.xmap-mode-web body.xmap-map-ui .left-panel-account {
    position:static!important;
    display:flex!important;
    align-items:center;
    justify-content:flex-start!important;
    gap:8px;
    margin:0!important;
    padding:6px 8px!important;
    border:1px solid rgba(255,255,255,.28)!important;
    border-radius:12px!important;
    background:rgba(15,23,42,.94)!important;
    box-shadow:0 5px 16px rgba(0,0,0,.3)!important;
}
html.xmap-mode-web body.xmap-map-ui.logged-out .left-panel.guest-mode .left-panel-account {
    margin:0!important;
    padding:6px 8px!important;
    border:1px solid rgba(255,255,255,.28)!important;
    border-radius:12px!important;
    background:rgba(15,23,42,.94)!important;
    box-shadow:0 5px 16px rgba(0,0,0,.3)!important;
}
html.xmap-mode-web body.xmap-map-ui .left-panel-account .brand,
html.xmap-mode-web body.xmap-map-ui #leftPanelToggle {
    display:none!important;
}
html.xmap-mode-web body.xmap-map-ui .left-panel-account .top-actions {
    display:flex!important;
    align-items:center;
    gap:6px;
    margin:0!important;
}
html.xmap-mode-web body.xmap-map-ui .left-panel-user:not(.hidden) {
    display:flex!important;
    align-items:center;
    gap:7px;
    max-width:min(220px,calc(100vw - 190px));
    font-size:13px;
}
html.xmap-mode-web body.xmap-map-ui .left-panel-user img {
    width:32px;
    height:32px;
    flex:0 0 32px;
}
html.xmap-mode-web body.xmap-map-ui .left-panel-user span {
    max-width:min(180px,calc(100vw - 230px));
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
html.xmap-mode-web body.xmap-map-ui.logged-out #authOpenBtn {
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    min-height:36px;
    margin:0!important;
    padding:7px 12px!important;
    white-space:nowrap;
}
html.xmap-mode-web body.xmap-map-ui:not(.logged-out) #authOpenBtn {
    display:none!important;
}
html.xmap-mode-web body.xmap-map-ui #logoutBtn:not(.hidden) {
    display:inline-flex!important;
    min-height:32px;
    margin:0!important;
    padding:6px 9px!important;
}
html.xmap-mode-web:not(.xmap-mode-web-mini) body.xmap-map-ui .custom-maps-visibility {
    left:50%;
    right:auto;
    top:38px;
    width:25vw;
    max-width:calc(100vw - 32px);
    transform:translateX(-50%);
}
html.xmap-mode-web:not(.xmap-mode-web-mini) body.xmap-map-ui.custom-maps-panel-open .left-panel,
html.xmap-mode-web:not(.xmap-mode-web-mini) body.xmap-map-ui.mobile-my-finds-open .left-panel,
html.xmap-mode-web:not(.xmap-mode-web-mini) body.xmap-map-ui.mobile-my-logs-open .left-panel {
    display:none!important;
}
html.xmap-mode-web body.custom-maps-panel-open .left-panel,
html.xmap-mode-web body.custom-maps-panel-open #authPanel:not(.hidden),
html.xmap-mode-web body.mobile-my-finds-open .left-panel,
html.xmap-mode-web body.mobile-my-finds-open #authPanel:not(.hidden),
html.xmap-mode-web body.mobile-my-logs-open .left-panel,
html.xmap-mode-web body.mobile-my-logs-open #authPanel:not(.hidden),
html.xmap-mode-web body.find-panel-open .left-panel,
html.xmap-mode-web body.find-panel-open #authPanel:not(.hidden) {
    display:none!important;
}
body.find-panel-open .xmap-right-action-dock,
body.find-panel-open #mobileOverlaySwitches,
body.find-panel-open #mobileBaseLayerSwitch {
    display:none!important;
}
html.xmap-mode-web body.xmap-map-ui.custom-maps-panel-open #mobileAdminModeSwitch,
html.xmap-mode-web body.xmap-map-ui.custom-maps-panel-open #webAdminPanelLink,
html.xmap-mode-web body.xmap-map-ui.mobile-my-finds-open #mobileAdminModeSwitch,
html.xmap-mode-web body.xmap-map-ui.mobile-my-finds-open #webAdminPanelLink,
html.xmap-mode-web body.xmap-map-ui.mobile-my-logs-open #mobileAdminModeSwitch,
html.xmap-mode-web body.xmap-map-ui.mobile-my-logs-open #webAdminPanelLink {
    display:none!important;
}
html.xmap-mode-web:not(.xmap-mode-web-mini) body.community-panel-open .community-panel {
    top:12px;
    right:16px;
    bottom:18px;
    width:min(590px,calc(100vw - 408px));
    max-width:62vw;
}
html.xmap-mode-web:not(.xmap-mode-web-mini) body.community-panel-open .left-panel {
    display:block!important;
}
html.xmap-mode-web .xmap-right-action-dock .xmap-native-action {
    display:none!important;
}
/* WEB — the profile menu begins below the account bar, so reserve space for both edges. */
html.xmap-mode-web body.xmap-map-ui .account-settings-menu:not(.hidden) {
    max-height:calc(100dvh - 88px);
    overflow-y:auto;
    overscroll-behavior:contain;
}
/* WEB — the map editor is a bottom sheet in both wide and compact browsers. */
html.xmap-mode-web body.xmap-map-ui #customMapsPanel.map-editor-active:not(.hidden) {
    top:auto!important;
    right:auto!important;
    bottom:calc(var(--xmap-controls-bottom,8px) + 16px)!important;
    left:50%!important;
    width:min(840px,calc(100vw - 32px))!important;
    max-width:calc(100vw - 32px)!important;
    max-height:min(72vh,680px)!important;
    margin:0!important;
    padding:10px!important;
    overflow:auto!important;
    transform:translateX(-50%);
    z-index:220!important;
}
html.xmap-mode-web body.xmap-map-ui #customMapsPanel.map-editor-active .custom-map-editor-actions {
    bottom:0;
}
/* Native tools never appear in either browser layout. */
html.xmap-mode-web #mobileScreenLockToggle,
html.xmap-mode-web #mobileScreenLockOverlay,
html.xmap-mode-web #mobileAccountBadge { display:none!important; }

/* Community panel geometry: native and compact web use the same full-screen view. */
html.xmap-mode-native .community-panel,
html.xmap-mode-web-mini .community-panel {
    inset:0;
    width:100vw;
    height:100dvh;
    max-width:none;
    max-height:none;
    padding-top:env(safe-area-inset-top,0px);
    border:0;
    border-radius:0;
}
html.xmap-mode-native .community-panel.open,
html.xmap-mode-web-mini .community-panel.open {
    transform:translateX(0);
}
html.xmap-mode-native body.community-panel-open .community-panel,
html.xmap-mode-web-mini body.community-panel-open .community-panel {
    z-index:400;
}
html.xmap-mode-native body.community-panel-open .left-panel,
html.xmap-mode-web-mini body.community-panel-open .left-panel,
html.xmap-mode-web-mini body.community-panel-open #authPanel:not(.hidden) {
    display:none!important;
}

/* 04 WEB MINI — compact browser differences */

/* My Finds shares a full-screen panel in all modes; other lists remain WebView/mini-only. */
html.xmap-mode-native body.xmap-map-ui #mobileMyFindsPanel:not(.hidden),
html.xmap-mode-web-mini body.xmap-map-ui #mobileMyFindsPanel:not(.hidden),
html.xmap-mode-web:not(.xmap-mode-web-mini) body.xmap-map-ui #mobileMyFindsPanel:not(.hidden),
html.xmap-mode-native body.xmap-map-ui #mobileMyLogsPanel:not(.hidden),
html.xmap-mode-web-mini body.xmap-map-ui #mobileMyLogsPanel:not(.hidden),
html.xmap-mode-native body.xmap-map-ui #mobileSavedMapsPanel:not(.hidden),
html.xmap-mode-web-mini body.xmap-map-ui #mobileSavedMapsPanel:not(.hidden),
html.xmap-mode-native body.xmap-map-ui #customMapsPanel:not(.hidden):not(.map-editor-active),
html.xmap-mode-web-mini body.xmap-map-ui #customMapsPanel:not(.hidden):not(.map-editor-active) {
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:auto!important;
    min-width:0!important;
    min-height:0!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    padding:calc(12px + env(safe-area-inset-top,0px)) 12px calc(12px + env(safe-area-inset-bottom,0px))!important;
    border:0!important;
    border-radius:0!important;
    background:rgba(8,13,21,.99)!important;
    box-shadow:none!important;
    z-index:400!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    overflow:hidden!important;
    overscroll-behavior:contain;
}
html.xmap-mode-native body.xmap-map-ui #mobileMyFindsList,
html.xmap-mode-web-mini body.xmap-map-ui #mobileMyFindsList,
html.xmap-mode-web:not(.xmap-mode-web-mini) body.xmap-map-ui #mobileMyFindsList,
html.xmap-mode-native body.xmap-map-ui #mobileMyLogsList,
html.xmap-mode-web-mini body.xmap-map-ui #mobileMyLogsList,
html.xmap-mode-native body.xmap-map-ui #mobileSavedMapsList,
html.xmap-mode-web-mini body.xmap-map-ui #mobileSavedMapsList,
html.xmap-mode-native body.xmap-map-ui #customMapsList,
html.xmap-mode-web-mini body.xmap-map-ui #customMapsList {
    flex:1 1 auto;
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
}
html.xmap-mode-native body.mobile-my-logs-route-open #mobileMyLogsPanel,
html.xmap-mode-web-mini body.mobile-my-logs-route-open #mobileMyLogsPanel {
    display:none!important;
}


/* Hide the account menu while a community find thumbnail covers the feed. */
html.xmap-mode-web-mini body.web-mini-community-find-preview-open .left-panel,
html.xmap-mode-web-mini body.web-mini-community-find-preview-open #authPanel:not(.hidden) {
    display:none!important;
}

/* Info is a full WebView dialog, above map controls and other panels. */
html body #infoPanel.app-info-panel {
    position:fixed!important;inset:0!important;transform:none!important;
    width:100%!important;height:100vh!important;height:100dvh!important;max-width:none!important;max-height:none!important;
    z-index:10000!important;box-sizing:border-box;border:0;border-radius:0;
    display:flex!important;flex-direction:column;overflow:hidden;margin:0;
    padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
    background:#f4f7fb;color:#15243b;
}
html body #infoPanel.app-info-panel.hidden {display:none!important;}
.app-info-header {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;background:#fff;border-bottom:1px solid #dce4ef;flex-shrink:0;}
.app-info-actions {display:flex;flex-shrink:0;gap:6px;}
#appInfoRefresh {min-height:44px;color:#174b88;border:1px solid #bdcfe2;background:#eef5ff;}
.app-info-scroll {display:flex;gap:10px;justify-content:space-between;padding:8px 16px;flex-shrink:0;background:#fff;border-top:1px solid #dce4ef;}
.app-info-scroll button {min-height:44px;flex:1;border:1px solid #bdcfe2;border-radius:10px;background:#eef5ff;color:#174b88;font:inherit;cursor:pointer;}
#infoPanel .app-info-header h2 {margin:0;font-size:22px;color:#15243b;}
#infoPanel .app-info-header p {margin:6px 0 0;font-size:13px;color:#52647c;}
#infoPanel #infoCloseBtn {position:static;flex-shrink:0;color:#174b88;border:1px solid #bdcfe2;background:#eef5ff;min-height:44px;}
.app-info-tools {display:flex;align-items:center;gap:18px;padding:14px 22px;background:#fff;flex-shrink:0;border-bottom:1px solid #dce4ef;}
.app-info-tabs {display:flex;gap:8px;}
.app-info-tabs button {min-height:44px;padding:10px 18px;border:1px solid #cbd9e8;border-radius:12px;background:#f0f5fb;color:#174b88;font-family:inherit;font-weight:700;font-size:15px;line-height:1.3;cursor:pointer;}
.app-info-tabs button[aria-selected="true"] {background:#176bd4;border-color:#176bd4;color:#fff;}
.app-info-search {display:flex;align-items:center;gap:10px;flex:1;color:#52647c;font-size:13px;}
#infoPanel input {width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid #bdcfe2;border-radius:12px;background:#fff;color:#15243b;font-size:16px;box-sizing:border-box;}
.app-info-content {flex:1;min-height:0;overflow-y:scroll;overscroll-behavior:contain;touch-action:pan-y;padding:20px max(18px,calc((100vw - 980px)/2));-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#7a9bc5 #e6eef8;}
.app-info-content::-webkit-scrollbar {width:7px;}
.app-info-content::-webkit-scrollbar-track {background:#e6eef8;}
.app-info-content::-webkit-scrollbar-thumb {background:#7a9bc5;border-radius:8px;}
.app-info-card {padding:18px 20px;margin:0 0 12px;background:#fff;border:1px solid #dce4ef;border-radius:16px;box-shadow:0 3px 12px #14263c06;}
#infoPanel .app-info-card h3 {display:flex;align-items:center;gap:12px;margin:0 0 10px;font-size:18px;color:#15243b;line-height:1.4;}
.app-info-icon {font-size:25px;flex-shrink:0;}
#infoPanel .app-info-card p {margin:0;color:#35475e;font-size:16px;line-height:1.65;overflow-wrap:anywhere;}
body.app-info-open {overflow:hidden;}
body.app-info-open .xmap-right-action-dock,body.app-info-open #xmapStartDock {visibility:hidden;}
@media(max-width:600px) {
    .app-info-header {padding:14px 12px;align-items:flex-start;flex-wrap:wrap;}
    #infoPanel .app-info-header h2 {font-size:18px;}
    .app-info-tools {padding:10px 12px;flex-direction:column;align-items:stretch;gap:10px;}
    .app-info-tabs button {flex:1;}
    .app-info-search {flex-direction:column;align-items:stretch;gap:5px;}
    .app-info-content {padding:12px;}
    .app-info-card {padding:16px;}
}

/* Selected logs actions stay visible while the list scrolls. */
.mobile-my-logs-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex:0 0 auto;padding:9px 0;border-bottom:1px solid var(--line);}
.mobile-my-logs-bulk>span:first-child{flex:1 1 auto;font-size:13px;}
.mobile-my-logs-bulk .btn{white-space:normal;max-width:100%;}
#mobileMyLogsBulkHint{flex-basis:100%;font-size:11px;}
body.mobile-my-logs-route-open .mobile-my-logs-bulk{display:none;}

.find-owner-palette{display:flex;flex-wrap:wrap;gap:9px;margin:8px 0}.find-owner-color{width:36px;height:36px;border:2px solid #cbd5e1;border-radius:50%;color:#111827;font-size:20px;cursor:pointer;flex:none}.find-owner-color[aria-pressed="true"]{outline:3px solid #f8fafc;outline-offset:2px}.find-owner-color:focus-visible{outline:3px solid #087ff5;outline-offset:3px}

/* Start-marker delete choice stays on its own row on narrow phones. */
.xmap-confirm-card footer.has-extra {flex-wrap:wrap;}
#xmapConfirmExtraBtn:not([hidden]) {flex-basis:100%;}


/* Let the community feed reclaim the header space while browsing forward. */
#communityPanel .community-head {
    position:absolute;
    inset:0 0 auto;
    flex-shrink:0;
    transform:translate3d(0,calc(-1 * var(--community-head-offset, 0px)),0);
    will-change:transform;
}
#communityPanel .community-head-copy .muted,
#communityPanel .community-profile-summary-stats,
#communityPanel .community-profile-actions>button:not(#communityCloseBtn):not(#communityProfileResetBtn) {
    display:none!important;
}
#communityPanel .community-head {
    min-height:54px;
    flex-wrap:wrap;
    padding:9px 12px 9px 14px;
}
#communityPanel .community-head-copy { flex:1 1 auto; }
#communityPanel .community-profile-actions {
    flex:0 0 auto;
    margin:0;
}
#communityPanel .community-refresh-counter {
    width:48px;
    padding:5px;
    border-radius:999px;
}
#communityPanel .community-refresh-counter:disabled { opacity:.55; }
#communityPanel .community-feed {
    padding-top:var(--community-head-height, 180px);
    box-sizing:border-box;
}
#communityPanel.community-head-collapsed .community-head {
    pointer-events:none;
}

/* Reading a find owns the screen. A blank-map tap closes the preview and
   restores the same docks, without changing any layer/settings preferences. */
body.xmap-map-ui.map-content-open .xmap-left-control-dock,
body.xmap-map-ui.map-content-open .xmap-right-action-dock,
body.xmap-map-ui.map-content-open #mapZoomTech,
body.xmap-map-ui.map-content-open #mobileAccountBadge,
body.xmap-map-ui.map-content-open #mobileScreenLockToggle,
body.xmap-map-ui.map-content-open #mobileScreenLockOverlay,
body.xmap-map-ui.map-content-open #xmapStartDock,
body.xmap-map-ui.map-content-open #mobileMenuBtn,
body.xmap-map-ui.map-content-open #collapsedPanelRestore,
body.xmap-map-ui.map-content-open .ol-zoom {
    display:none!important;
}
body.xmap-map-ui.map-content-open .ol-attribution {
    top:auto!important;
    bottom:3px!important;
    right:3px!important;
    left:auto!important;
    max-width:calc(100% - 6px);
    font-size:9px;
}

/* Route signal data: hidden until availability is confirmed; part of the existing dock. */
#routeSignalBar {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;padding:8px;border:1px solid #475569;border-radius:12px;background:#0f172af2;color:#f8fafc;box-sizing:border-box;max-width:100%;}
#routeSignalBar[hidden] {display:none!important;}
#routeSignalBar small {grid-column:1/-1;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-size:11px;}
#routeSignalBar small:first-child {white-space:nowrap;}
#routeSignalBar small:empty {display:none;}
#routeSignalBar button {min-height:36px;white-space:normal;line-height:1.2;}
#routeSignalBar > button:nth-child(3) {padding:4px 10px;}
.route-signal-admin-item {display:block;width:100%;margin-top:5px;white-space:normal;text-align:left;}
.xmap-mode-native #routeSignalBar {padding:5px;font-size:11px;}

.find-cluster-members {display:grid;gap:6px;max-height:48vh;overflow:auto;margin-top:6px;}
.find-cluster-members button {display:flex;align-items:center;gap:10px;text-align:left;white-space:normal;min-height:48px;}
.find-cluster-members img {width:48px;height:48px;object-fit:cover;border-radius:50%;flex:none;}

.xmap-mode-native .community-route-preview-sheet,.xmap-mode-web-mini .community-route-preview-sheet {height:min(38vh,320px);max-height:min(38vh,320px);}
/* Independent VDI point and aura visibility; both remain transient route data. */
#routeSignalBar .route-signal-opacity,.route-signal-sheet-controls {grid-column:1/-1;background:#0f172ae8;border:1px solid #475569;border-radius:9px;padding:6px 8px;width:210px;max-width:100%;box-sizing:border-box;color:#f8fafc;}
#routeSignalBar .route-signal-opacity[hidden],.route-signal-sheet-controls[hidden] {display:none!important;}
.route-signal-opacity label {display:grid;grid-template-columns:1fr 36px;gap:0 5px;font-size:11px;line-height:1.2;}
.route-signal-opacity label span {grid-column:1/-1;}
.route-signal-opacity input {min-width:0;width:100%;height:22px;margin:0;accent-color:#f59e0b;touch-action:pan-y;}
.route-signal-opacity output {align-self:center;text-align:right;font-size:11px;}
#popup:has(.find-cluster-members) {background:#0f172a;color:#f8fafc;border:1px solid #475569;}
.active-find-pulse {background-size:cover;background-position:center;border-radius:50%;box-shadow:0 0 0 3px #fff,0 0 16px #facc15;}
.active-find-pulse:not(.hidden) {width:48px;height:48px;animation:active-find-selected 1.6s ease-in-out infinite;}
@keyframes active-find-selected {0%,100%{transform:scale(.95);box-shadow:0 0 0 3px #fff,0 0 0 5px #facc1570;opacity:1;}50%{transform:scale(1.1);box-shadow:0 0 0 3px #fff,0 0 0 13px #facc1530;opacity:1;}}
@media (prefers-reduced-motion:reduce){.active-find-pulse:not(.hidden){animation:none;}}

/* Two independently reachable VDI thumbs on the same track. */
.route-signal-opacity .route-signal-vdi {grid-template-columns:1fr;}
.route-signal-opacity .route-signal-vdi output {grid-column:1/-1;}
.route-signal-opacity .route-signal-vdi-range {position:relative;height:24px;min-width:0;}
.route-signal-opacity .route-signal-vdi-range input {position:absolute;inset:0;margin:0;width:100%;appearance:none;background:transparent;pointer-events:none;}
.route-signal-opacity .route-signal-vdi-range:before {content:"";position:absolute;left:0;right:0;top:10px;height:4px;border-radius:4px;background:#64748b;}
.route-signal-opacity .route-signal-vdi-range input::-webkit-slider-thumb {appearance:none;pointer-events:auto;width:15px;height:15px;border-radius:50%;background:#f59e0b;cursor:pointer;}
.route-signal-opacity .route-signal-vdi-range input::-moz-range-thumb {pointer-events:auto;width:15px;height:15px;border:0;border-radius:50%;background:#f59e0b;cursor:pointer;}
.route-signal-opacity .route-signal-vdi-range input::-moz-range-track {background:transparent;}

.community-route-signal-badges {position:absolute;right:10px;top:10px;display:flex;gap:6px;pointer-events:none;z-index:2;}
.community-route-signal-badges span {display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#0f172ae8;color:#e2e8f0;border:1px solid #64748b;}
.community-route-signal-badges svg {width:20px;height:20px;}

/* VDI actions stay beside the route heading; controls scroll independently of the thumbnail. */
#routeSignalBar {grid-template-columns:minmax(0,1fr) auto auto;}
#routeSignalBar > small:first-child {grid-column:1;grid-row:1;align-self:center;}
#routeSignalBar > button:first-of-type {grid-column:2;grid-row:1;}
#routeSignalBar > button:nth-child(3) {grid-column:3;grid-row:1;}
#routeSignalBar .route-signal-opacity {width:100%;max-height:min(32dvh,260px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;}
#routeSignalBar.route-signal-header {display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:5px;flex:0 0 auto;max-width:60%;padding:0;border:0;box-shadow:none;background:transparent;}
#routeSignalBar.route-signal-header > small {display:none;}
#routeSignalBar.route-signal-header[data-error="true"] > small:last-of-type {display:block;flex-basis:100%;color:#fecaca;}
#routeSignalBar.route-signal-header button {min-height:30px;max-width:100px;padding:4px 7px;font-size:11px;}
#routeSignalBar.route-signal-header > button:nth-child(3) {width:30px;}
.route-signal-sheet-controls {width:100%;min-height:0;max-height:180px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;}
.community-route-preview-sheet.route-signals-open {height:min(70dvh,520px);max-height:min(70dvh,520px);grid-template-rows:auto minmax(60px,1fr) minmax(80px,1.2fr) auto auto;}
#popup:has(.route-signal-popup-header:not([hidden])) {max-height:calc(100dvh - 36px - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;}
#popup:has(.route-signal-popup-header:not([hidden])) .community-caption > b {display:none;}
#routeSignalBar.route-signal-popup-header > small:first-child {font-size:13px;font-weight:700;}
#popup:has(.route-signal-popup-header:not([hidden])) [data-route-popup-close] {display:none;}

.route-signal-opacity {scrollbar-width:thin;scrollbar-color:#64748b #0f172a;}
.route-signal-opacity::-webkit-scrollbar {width:6px;}
.route-signal-opacity::-webkit-scrollbar-track {background:#0f172a;}
.route-signal-opacity::-webkit-scrollbar-thumb {background:#64748b;border-radius:6px;}

/* Short, transient like feedback; no element intercepts map/feed gestures. */
.community-feedback-flight {position:fixed;left:0;top:0;width:48px;height:48px;z-index:2147483646;pointer-events:none;border-radius:50%;background:radial-gradient(circle,#fff4b7 10%,#facc1566 45%,transparent 72%);box-shadow:0 0 10px #facc1566;will-change:transform;}
.community-feedback-flight img,.community-feedback-flight svg {position:absolute;inset:0;width:100%;height:100%;object-fit:contain;}
.community-feedback-flight img {mix-blend-mode:screen;}
.community-feedback-flight.coin-loaded svg {display:none;}
.community-feedback-spark {position:fixed;width:6px;height:6px;z-index:12000;pointer-events:none;background:#facc15;box-shadow:0 0 6px #fff4b7;border-radius:1px;}
.community-feedback-notice {position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:12001;pointer-events:none;max-width:calc(100vw - 32px);box-sizing:border-box;padding:8px 13px;border:1px solid #eab30880;border-radius:12px;background:#0f172aef;color:#fff7d6;font-size:13px;line-height:1.3;text-align:center;animation:community-feedback-notice 1.2s ease both;}
@keyframes community-feedback-notice {0%{opacity:0;transform:translate(-50%,6px)}15%,80%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-3px)}}
.community-action[aria-disabled="true"] {opacity:.65;cursor:default;}
@media (prefers-reduced-motion:reduce){.community-feedback-notice{animation:none;}.community-feedback-flight,.community-feedback-spark{display:none;}}

/* A viewport overlay escapes cards, sheets and their overflow clipping. */
.community-feedback-layer {display:block;position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;overflow:visible;background:transparent;pointer-events:none;z-index:2147483646;}
.community-feedback-layer::backdrop {background:transparent;pointer-events:none;}
.community-feedback-halo {position:fixed;width:48px;height:48px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#fff8c180 10%,#facc1570 35%,#eab30838 52%,transparent 72%);box-shadow:0 0 12px #facc1544;}

.community-action-icon:has(.community-like-icon.is-active) {mix-blend-mode:screen;}

/* Compact find preview in every shared map/WebView; card remains top anchored. */
.xmap-map-ui .popup-community-card .community-media{height:176px;min-height:0;}
@media(max-width:900px){.xmap-map-ui .popup-community-card .community-media{height:min(24vh,192px);min-height:128px;}}
.xmap-map-ui .popup-community-card .community-media .popup-photo{width:80%;height:100%;max-height:100%;aspect-ratio:auto;object-fit:contain;margin:auto;}
.popup-community-card .popup-photo-wrap{display:flex;height:100%;justify-content:center;align-items:center;}
.popup-find-expansion>summary{list-style:none;cursor:pointer;text-align:center;font-size:24px;line-height:28px;}
.popup-find-expansion>summary::-webkit-details-marker{display:none;}
.popup-find-expansion[open]>summary span{display:inline-block;transform:rotate(180deg);}
.popup-find-expansion:not([open]) .popup-find-expanded{display:none;}
.popup-community-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;}
.popup-community-footer:empty{display:none;}
.popup-community-return{margin-left:auto;text-align:right;}
.popup-community-media,.community-media-zoom-frame,[data-community-media]{touch-action:manipulation;}
