.mobile-logo {
  display: none;
}

.bottom-sheet {
  display: none;
}

@media (hover: hover) and (pointer: fine) {
  .win-btn:hover,
  .filters button:hover,
  .map-win-links a:hover,
  .mobile-place-row:hover {
    background: var(--color-ui-2);
  }
}

@media (max-width: 900px) {
  .layout {
    display: block;
    height: 100vh;
    height: var(--app-visible-height, 100dvh);
  }

  .desktop-sidebar {
    display: none;
  }

  .map-wrap {
    height: 100vh;
    height: var(--app-visible-height, 100dvh);
  }

  .mobile-logo {
    display: flex;
    align-items: center;
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: var(--z-mobile-ui);
    padding: 8px 10px;
    background: var(--color-ui);
    border-top: 2px solid var(--color-ui-line-light);
    border-left: 2px solid var(--color-ui-line-light);
    border-right: 2px solid var(--color-ui-line-dark);
    border-bottom: 2px solid var(--color-ui-line-dark);
    box-shadow: var(--shadow-2);
  }

  .mobile-logo-img {
    display: block;
    width: 124px;
    height: auto;
  }

  .bottom-sheet {
    --sheet-open-height: 0px;
    --sheet-viewport-inset: 0px;
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: var(--z-bottom-sheet);
    height: calc(var(--app-visible-height, 100dvh) - 72px);
    max-height: calc(var(--app-visible-height, 100dvh) - 72px);
    background: var(--color-panel);
    border-top: 2px solid var(--color-line-light);
    box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);
    padding-bottom: calc(env(safe-area-inset-bottom) + var(--sheet-viewport-inset) + 14px);
    transform: translateY(calc(100% - 74px));
    transition: transform 0.22s ease;
    overflow: hidden;
  }

  .bottom-sheet[data-mode="peek"] {
    transform: translateY(calc(100% - 74px));
  }

  .bottom-sheet[data-mode="filters"],
  .bottom-sheet[data-mode="results"] {
    transform: translateY(calc(100% - var(--sheet-open-height)));
  }

  .bottom-sheet-peekbar {
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
    padding: 12px;
    background: var(--color-ui);
    border-top: 1px solid var(--color-ui-line-light);
    border-bottom: 2px solid var(--color-ui-line-dark);
    cursor: grab;
    user-select: none;
    touch-action: none;
  }

  .bottom-peek-btn {
    flex: 1;
    min-height: 46px;
    font-family: var(--font-ui);
    font-size: var(--text-ui-sm);
    line-height: 1;
  }

  .bottom-sheet-inner {
    height: calc(100% - 74px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--color-panel);
  }

  .bottom-sheet-sticky-top {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--color-panel);
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px) + var(--sheet-viewport-inset));
    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
  }

  .bottom-sheet-content {
    flex: 1;
    overflow-y: auto;
    padding: 10px 12px calc(28px + env(safe-area-inset-bottom, 0px) + var(--sheet-viewport-inset));
  }

  .mobile-filters {
    margin: 0;
  }

  .mobile-places-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-bottom: 26px;
  }

  .mobile-place-row {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    text-align: left;
    padding: 14px;
    font-size: var(--text-ui-sm);
  }

  .mobile-place-row.is-active,
  .mobile-place-row[data-active="true"] {
    background: #dfe7ff;
  }

  .mobile-place-row-name {
    font-family: var(--font-ui);
    font-weight: 400;
    line-height: 1.1;
  }

  .mobile-place-row-arrow {
    font-size: 24px;
    line-height: 1;
    color: var(--color-accent);
  }

  .gm-style .gm-style-iw-c {
    max-width: calc(100vw - 34px) !important;
  }

  .gm-style .gm-style-iw-d {
    max-height: none !important;
    overflow: visible !important;
  }

  .map-win-window {
    width: min(360px, calc(100vw - 28px));
    max-width: calc(100vw - 28px);
    max-height: min(72dvh, calc(100dvh - 108px));
  }

  .map-win-content {
    flex: 1 1 auto;
    min-height: 0;
  }

  .map-win-scroll {
    flex: 0 1 auto;
    min-height: 0;
    max-height: min(220px, 28dvh);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .map-win-image {
    aspect-ratio: 3.1 / 1;
  }

  .route-hud {
    left: 12px;
    right: 70px;
    bottom: 88px;
    width: auto;
    max-width: none;
  }

  .route-hud-shell {
    padding: 10px 10px 9px;
    gap: 10px;
  }

  .route-hud-log {
    min-height: 48px;
  }

  .route-hud-line {
    font-size: 14px;
  }

  .route-locate-btn {
    right: 12px;
    bottom: 88px;
  }

  .map-cloud-overlay--bottom .map-cloud {
    top: calc(var(--cloud-top, 0%) - 16%);
  }

  .mobile-place-row-main {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
  }

  .mobile-place-row-icon {
    width: 16px;
    height: 16px;
    display: block;
    flex: 0 0 auto;
    object-fit: contain;
  }

}
