/*
 * Vertex layout authority v3
 * One responsive shell. Legacy component styling remains in styles.css,* while this file exclusively owns hierarchy,positioning and responsive layout.
 */

.vertex-v3 #app{
  --v3-nav-mobile:62px;
  --v3-safe-bottom:env(safe-area-inset-bottom);
  --v3-mobile-top:max(10px,env(safe-area-inset-top));
  --v3-desktop-rail:76px;
  --v3-desktop-left:108px;
  --v3-panel-w:420px;
  --v3-gap:12px;
}/* ---------- Global navigation ownership ---------- */
.vertex-v3 #app .bottom-nav{
  position:fixed!important;
  z-index:110!important;
  margin:0!important;
  transform:none!important;
}.vertex-v3 #app .bottom-nav button{
  cursor:pointer;
}.vertex-v3 #app .bottom-nav button.selected{
  color:var(--g-ink)!important;
}.vertex-v3 #app .topbar{
  z-index:42!important;
}.vertex-v3 #app .advanced-map-tool{
  display:none!important;
}.vertex-v3 #app .map-tools{
  z-index:41!important;
}.vertex-v3 #app .place-card{
  z-index:35!important;
}.vertex-v3 #app .mountain-primary-actions{
  margin-top:8px;
}.vertex-v3 #app .contextual-compass{
  transition:opacity .15s ease;
}/* ---------- Primary destination surfaces ---------- */
.vertex-v3 #app .explore-sheet,.vertex-v3 #app .you-sheet,.vertex-v3 #app .activities-sheet,.vertex-v3 #app .activity-detail,.vertex-v3 #app .route-detail,.vertex-v3 #app .compare-sheet{
  z-index:70!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}.vertex-v3 #app .community-view{
  z-index:68!important;
}.vertex-v3 #app .weather-view{
  z-index:65!important;
}.vertex-v3 #app .record-sheet,.vertex-v3 #app .panel,.vertex-v3 #app .avalanche-sheet{
  z-index:90!important;
}/* Primary destinations are not draggable sheets. */
.vertex-v3 #app .explore-sheet>.sheet-grabber,.vertex-v3 #app .activities-sheet>.sheet-grabber,.vertex-v3 #app .activity-detail>.sheet-grabber,.vertex-v3 #app .route-detail>.sheet-grabber,.vertex-v3 #app .compare-sheet>.sheet-grabber{
  display:none!important;
}/* ---------- Routes ---------- */
.vertex-v3 #app .routes-sheet .activities-head{
  margin-bottom:10px!important;
}.vertex-v3 #app .routes-library-toolbar{
  margin-bottom:10px!important;
}.vertex-v3 #app .route-library-filters{
  position:static!important;
  top:auto!important;
  margin:0 0 10px!important;
  padding:0!important;
  background:transparent!important;
--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}.vertex-v3 #app .route-row{
  border-left:0!important;
  border-right:0!important;
  border-radius:0!important;
  background:transparent!important;
  border-top:0!important;
  border-bottom:1px solid rgba(var(--g-ink-rgb),0.063)!important;
--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}.vertex-v3 #app .route-row .route-map-toggle{
  border-color:rgba(var(--g-ink-rgb),0.086)!important;
}/* ---------- You ---------- */
.vertex-v3 #app .you-sheet{
  overflow:auto!important;
}.vertex-v3 #app .you-menu>button{
  border-radius:0!important;
  background:transparent!important;
--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}/* ---------- Community contextual use ---------- */
.vertex-v3 #app[data-section="routes"] .community-head,.vertex-v3 #app[data-section="routes"] .community-tabs,.vertex-v3 #app[data-section="routes"] .community-library-summary,.vertex-v3 #app[data-section="routes"] #communityPeople,.vertex-v3 #app[data-section="routes"] #communityProfileView{
  display:none!important;
}.vertex-v3 #app[data-section="routes"] #routesDiscoverNav{
  display:grid!important;
}.vertex-v3 #app[data-section="routes"] #communityRoutes{
  display:block!important;
}.vertex-v3 #app[data-section="you"] .community-head,.vertex-v3 #app[data-section="you"] .community-tabs,.vertex-v3 #app[data-section="you"] #communityRoutes,.vertex-v3 #app[data-section="you"] #routesDiscoverNav{
  display:none!important;
}.vertex-v3 #app[data-section="you"] #peopleContextNav{
  display:grid!important;
}.vertex-v3 #app[data-section="you"] #communityPeople:not([hidden]){
  display:block!important;
}.vertex-v3 #app .people-context-nav{
  grid-template-columns:auto 1fr auto!important;
  align-items:center;
  padding:0!important;
  border:0!important;
  background:transparent!important;
--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}.vertex-v3 #app .people-context-nav strong{
  text-align:center;
  font-size:13px;
}.vertex-v3 #app .people-context-nav button{
  min-height:36px!important;
  padding:0 10px!important;
  background:transparent!important;
  color:var(--g-ink)!important;
--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}.vertex-v3 #app .people-context-nav .context-back{
  text-align:left;
}.vertex-v3 #app .people-context-nav .context-profile-shortcut{
  text-align:right;
  color:var(--g-ink)!important;
}/* ---------- Weather ---------- */
.vertex-v3 #app .weather-head{
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr) 40px!important;
  align-items:start!important;
  gap:9px!important;
}.vertex-v3 #app .weather-head>div{
  min-width:0;
}.vertex-v3 #app .weather-head .weather-back{
  width:36px!important;
  height:36px!important;
  border:0!important;
  border-radius:50%!important;
  background:rgba(var(--g-ink-rgb),0.043)!important;
  font-size:24px!important;
}.vertex-v3 #app .weather-tabs{
  z-index:105!important;
}.vertex-v3 #app .weather-summary{
  display:none!important;
}/* ---------- Details ---------- */
.vertex-v3 #app .route-detail-actions{
  grid-template-columns:minmax(0,1fr) auto auto!important;
}.vertex-v3 #app .activity-actions{
  grid-template-columns:minmax(0,1fr) auto auto auto!important;
}.vertex-v3 #app .route-detail-menu{
  grid-template-columns:1fr!important;
}.vertex-v3 #app .community-route-card,.vertex-v3 #app .community-person-card{
  box-shadow:none!important;
}/* ---------- Tool sheets ---------- */
.vertex-v3 #app .panel{
  overflow:auto;
}.vertex-v3 #app .layer-more-group summary{
  cursor:pointer;
}.vertex-v3 #app .record-sheet{
  overflow:auto;
}.vertex-v3 #app .route-planner{
  z-index:95!important;
}/* ---------- Mobile ---------- */
@media(max-width:759px){
  .vertex-v3 #app{
    --v3-content-bottom:calc(var(--v3-nav-mobile) + var(--v3-safe-bottom));
  }

  .vertex-v3 #app .bottom-nav{
    left:0!important;
    right:0!important;
    bottom:0!important;
    width:100%!important;
    height:calc(var(--v3-nav-mobile) + var(--v3-safe-bottom))!important;
    min-height:calc(var(--v3-nav-mobile) + var(--v3-safe-bottom))!important;
    padding:2px 6px var(--v3-safe-bottom)!important;
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    align-items:center!important;
    border:0!important;
    border-top:1px solid rgba(var(--g-ink-rgb),0.071)!important;
    border-radius:0!important;
    background:rgba(var(--g-surface-rgb),0.969)!important;
    backdrop-filter:blur(22px)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
  .vertex-v3 #app .bottom-nav button{
    height:56px!important;
    min-height:56px!important;
    padding:4px 0 3px!important;
    display:flex!important;
    justify-content:center!important;
    gap:2px!important;
  }
  .vertex-v3 #app .bottom-nav small{
    font-size:8px!important;
  }

  .vertex-v3 #app .topbar{
    position:fixed!important;
    top:var(--v3-mobile-top)!important;
    left:10px!important;
    right:10px!important;
    width:auto!important;
    max-width:none!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 50px!important;
    gap:7px!important;
  }
  .vertex-v3 #app .search{
    height:50px!important;
    min-height:50px!important;
    border-radius:14px!important;
    padding:0 11px!important;
  }
  .vertex-v3 #app .round{
    width:50px!important;
    height:50px!important;
    border-radius:14px!important;
  }

  .vertex-v3 #app .map-tools{
    position:fixed!important;
    top:calc(var(--v3-mobile-top) + 62px)!important;
    right:10px!important;
    left:auto!important;
    gap:6px!important;
  }
  .vertex-v3 #app .tool{
    width:42px!important;
    height:42px!important;
    border-radius:14px!important;
  }

  .vertex-v3 #app .place-card{
    position:fixed!important;
    left:10px!important;
    right:10px!important;
    bottom:calc(var(--v3-content-bottom) + 8px)!important;
    width:auto!important;
    max-width:none!important;
    max-height:min(46vh,360px)!important;
    padding:6px 14px 12px!important;
    overflow:auto!important;
    border-radius:22px!important;
  }
  .vertex-v3 #app .place-card.collapsed{
    max-height:108px!important;
    overflow:hidden!important;
  }
  .vertex-v3 #app .place-card.collapsed .place-card-content{
    max-height:82px!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
  .vertex-v3 #app .place-card.collapsed .place-expanded-content{
    display:none!important;
  }
  .vertex-v3 #app .place-card.collapsed .place-card-title{
    margin-bottom:3px!important;
  }
  .vertex-v3 #app .place-card.collapsed .eyebrow{
    display:none!important;
  }
  .vertex-v3 #app .place-card.collapsed .resort-status{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  .vertex-v3 #app .place-card.collapsed .resort-status span:nth-child(3){
    display:none!important;
  }

  /* Destinations are screens, not floating cards. */
  .vertex-v3 #app .explore-sheet,
  .vertex-v3 #app .you-sheet,
  .vertex-v3 #app .activities-sheet,
  .vertex-v3 #app .activity-detail,
  .vertex-v3 #app .route-detail,
  .vertex-v3 #app .compare-sheet,
  .vertex-v3 #app .community-view,
  .vertex-v3 #app .weather-view{
    position:fixed!important;
    inset:0 0 var(--v3-content-bottom) 0!important;
    width:auto!important;
    height:auto!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    padding:calc(max(14px,env(safe-area-inset-top)) + 4px) 14px 22px!important;
    overflow:auto!important;
    border:0!important;
    border-radius:0!important;
    background:var(--g-surface)!important;
    box-shadow:none!important;
    transform:none!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}

  .vertex-v3 #app .community-view{
    padding-top:calc(max(14px,env(safe-area-inset-top)) + 6px)!important;
  }
  .vertex-v3 #app .weather-view{
    padding-top:calc(max(14px,env(safe-area-inset-top)) + 4px)!important;
  }

  .vertex-v3 #app .activities-head,
  .vertex-v3 #app .activity-detail-head,
  .vertex-v3 #app .route-detail-head{
    position:sticky!important;
    top:-18px!important;
    z-index:6!important;
    margin:-4px -14px 10px!important;
    padding:10px 14px 8px!important;
    background:linear-gradient(var(--g-surface) 78%,#e9eef200)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}

  .vertex-v3 #app .context-surface-nav{
    position:sticky!important;
    top:-4px!important;
    z-index:8!important;
    margin:0 0 14px!important;
    background:var(--g-surface)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}

  /* Weather sub navigation belongs below its header, not floating over the app. */
  .vertex-v3 #app .weather-tabs{
    position:static!important;
    margin:0!important;
    pointer-events:auto!important;
  }

  .vertex-v3 #app .weather-forecast{
    padding-top:46px!important;
  }
  .vertex-v3 #app .weather-map-view{
    inset:0 0 var(--v3-content-bottom) 0!important;
  }
  
  
  

  /* Tool sheets remain sheets. */
  .vertex-v3 #app .panel,
  .vertex-v3 #app .record-sheet,
  .vertex-v3 #app .avalanche-sheet{
    position:fixed!important;
    left:8px!important;
    right:8px!important;
    bottom:calc(var(--v3-content-bottom) + 8px)!important;
    top:auto!important;
    width:auto!important;
    max-width:none!important;
    max-height:min(68vh,620px)!important;
    margin:0!important;
    padding:12px 14px 16px!important;
    border:1px solid rgba(var(--g-ink-rgb),0.094)!important;
    border-radius:22px!important;
    background:rgba(var(--g-surface-rgb),0.980)!important;
    box-shadow:0 18px 60px rgba(var(--g-shadow-rgb),0.240)!important;
    backdrop-filter:blur(22px)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
  .vertex-v3 #app .route-planner,
  .vertex-v3 #app .replay-controls,
  .vertex-v3 #app .active-session{
    bottom:calc(var(--v3-content-bottom) + 8px)!important;
  }

  /* Legends never compete with the mountain dock at the bottom. */
  .vertex-v3 #app .slope-legend,
  .vertex-v3 #app .aspect-legend{
    top:calc(var(--v3-mobile-top) + 66px)!important;
    left:10px!important;
    right:60px!important;
    bottom:auto!important;
  }
  .vertex-v3 #app .sun-panel{
    top:calc(var(--v3-mobile-top) + 66px)!important;
    bottom:auto!important;
    left:10px!important;
    right:60px!important;
    width:auto!important;
    transform:none!important;
  }

  .vertex-v3 #app .app-brand-mark{
    display:none!important;
  }
}/* ---------- Desktop ---------- */
@media(min-width:760px){
  .vertex-v3 #app .bottom-nav{
    left:16px!important;
    right:auto!important;
    top:50%!important;
    bottom:auto!important;
    width:76px!important;
    height:auto!important;
    min-height:0!important;
    padding:8px 6px!important;
    transform:translateY(-50%)!important;
    display:flex!important;
    flex-direction:column!important;
    gap:4px!important;
    border:1px solid rgba(var(--g-ink-rgb),0.094)!important;
    border-radius:22px!important;
    background:rgba(var(--g-surface-rgb),0.910)!important;
    backdrop-filter:blur(22px)!important;
    box-shadow:0 12px 36px rgba(var(--g-shadow-rgb),0.212)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
  .vertex-v3 #app .bottom-nav button{
    flex:none!important;
    width:62px!important;
    min-height:58px!important;
    padding:7px 4px!important;
    border-radius:14px!important;
    justify-content:center!important;
  }
  .vertex-v3 #app .bottom-nav button.selected{
    background:rgba(var(--g-ink-rgb),0.051)!important;
  }

  .vertex-v3 #app .topbar{
    position:fixed!important;
    top:20px!important;
    left:var(--v3-desktop-left)!important;
    right:auto!important;
    width:460px!important;
    max-width:460px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 54px!important;
    gap:8px!important;
  }
  .vertex-v3 #app .search{
    height:54px!important;
    border-radius:14px!important;
  }
  .vertex-v3 #app .round{
    width:54px!important;
    height:54px!important;
    border-radius:14px!important;
  }

  .vertex-v3 #app .map-tools{
    position:fixed!important;
    right:20px!important;
    top:20px!important;
    gap:7px!important;
  }

  .vertex-v3 #app .place-card{
    position:fixed!important;
    left:var(--v3-desktop-left)!important;
    right:auto!important;
    bottom:20px!important;
    width:420px!important;
    max-width:420px!important;
    max-height:390px!important;
    overflow:auto!important;
  }

  /* Destinations become a consistent desktop side workspace. */
  .vertex-v3 #app .explore-sheet,
  .vertex-v3 #app .you-sheet,
  .vertex-v3 #app .activities-sheet,
  .vertex-v3 #app .activity-detail,
  .vertex-v3 #app .route-detail,
  .vertex-v3 #app .compare-sheet,
  .vertex-v3 #app .community-view{
    position:fixed!important;
    top:20px!important;
    bottom:20px!important;
    left:var(--v3-desktop-left)!important;
    right:auto!important;
    width:430px!important;
    height:auto!important;
    max-width:430px!important;
    max-height:none!important;
    margin:0!important;
    padding:16px!important;
    overflow:auto!important;
    border:1px solid rgba(var(--g-ink-rgb),0.094)!important;
    border-radius:22px!important;
    background:rgba(var(--g-surface-rgb),0.973)!important;
    box-shadow:0 22px 64px rgba(var(--g-shadow-rgb),0.239)!important;
    backdrop-filter:blur(24px)!important;
    transform:none!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}

  .vertex-v3 #app .weather-view{
    position:fixed!important;
    top:20px!important;
    bottom:20px!important;
    left:var(--v3-desktop-left)!important;
    right:auto!important;
    width:min(620px,calc(100vw - 148px))!important;
    max-width:620px!important;
    height:auto!important;
    margin:0!important;
    padding:18px!important;
    overflow:auto!important;
    border:1px solid rgba(var(--g-ink-rgb),0.094)!important;
    border-radius:22px!important;
    background:rgba(var(--g-surface-rgb),0.973)!important;
    box-shadow:0 22px 64px rgba(var(--g-shadow-rgb),0.239)!important;
    backdrop-filter:blur(24px)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
  .vertex-v3 #app .weather-forecast{
    padding-top:48px!important;
  }
  .vertex-v3 #app .weather-tabs{
    position:static!important;
    margin:0!important;
    pointer-events:auto!important;
  }

  /* Weather map expands to the map workspace; forecast stays a side panel. */
  .vertex-v3 #app[data-explore-view="weather-map"] .weather-view{
    inset:0!important;
    width:auto!important;
    max-width:none!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    pointer-events:none!important;
  --g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}
  .vertex-v3 #app[data-explore-view="weather-map"] .weather-tabs,
  .vertex-v3 #app[data-explore-view="weather-map"] .weather-map-view{
    pointer-events:auto!important;
  }
  
  
  

  .vertex-v3 #app .panel,
  .vertex-v3 #app .record-sheet,
  .vertex-v3 #app .avalanche-sheet{
    position:fixed!important;
    top:20px!important;
    bottom:20px!important;
    left:auto!important;
    right:20px!important;
    width:410px!important;
    max-width:410px!important;
    max-height:none!important;
    overflow:auto!important;
    border-radius:22px!important;
  }

  .vertex-v3 #app .route-planner,
  .vertex-v3 #app .replay-controls{
    bottom:20px!important;
    left:50%!important;
    right:auto!important;
    transform:translateX(-50%)!important;
  }
  .vertex-v3 #app .active-session{
    bottom:20px!important;
    left:auto!important;
    right:20px!important;
  }

  .vertex-v3 #app .slope-legend,
  .vertex-v3 #app .aspect-legend{
    left:var(--v3-desktop-left)!important;
    right:auto!important;
    bottom:20px!important;
    max-width:520px!important;
  }
  .vertex-v3 #app .sun-panel{
    left:50%!important;
    right:auto!important;
    bottom:20px!important;
    transform:translateX(-50%)!important;
  }

  .vertex-v3 #app .app-brand-mark{
    top:20px!important;
    right:88px!important;
  }
}/* Hidden always wins. */
.vertex-v3 #app [hidden]{
  display:none!important;
}/* Replay has an explicit exit plus transport controls. */
.vertex-v3 #app .replay-controls{
  grid-template-columns:38px 42px minmax(0,1fr) 44px!important;
}.vertex-v3 #app #replayExit{
  font-size:20px!important;
}.vertex-v3 #app .replay-controls span{
  left:108px!important;
}
@media(max-width:420px){.vertex-v3 #app .replay-controls{
    grid-template-columns:34px 38px minmax(0,1fr) 40px!important;
    gap:6px!important;
  }.vertex-v3 #app .replay-controls span{
    left:94px!important;
  }
}/* ---------- Context overlays: one purpose each ---------- */

/* Route detail already communicates the preview context; a second floating
   COMMUNITY badge adds noise without adding navigation. */
.vertex-v3 #app .community-preview-bar{
  display:none!important;
}/* Community map gets one explicit back/context bar. */
.vertex-v3 #app .community-map-bar{
  z-index:72!important;
  pointer-events:none!important;
}.vertex-v3 #app .community-map-bar button{
  pointer-events:auto!important;
}/* Route presence on Explore is a small contextual control,never a second dock. */
.vertex-v3 #app .map-route-chip{
  z-index:44!important;
}/* Dialogs are contextual modals; they must not inherit the destination geometry. */
.vertex-v3 #app .profile-editor-sheet,.vertex-v3 #app .community-safety-sheet,.vertex-v3 #app .powder-finder-sheet{
  z-index:120!important;
}

@media(max-width:759px){.vertex-v3 #app .community-map-bar{
    position:fixed!important;
    top:calc(var(--v3-mobile-top) + 60px)!important;
    left:10px!important;
    right:10px!important;
    width:auto!important;
    transform:none!important;
  }.vertex-v3 #app .community-map-bar span{
    max-width:calc(100vw - 120px)!important;
  }.vertex-v3 #app .map-route-chip{
    position:fixed!important;
    top:calc(var(--v3-mobile-top) + 60px)!important;
    bottom:auto!important;
    left:10px!important;
    right:auto!important;
    transform:none!important;
    max-width:calc(100vw - 70px)!important;
  }.vertex-v3 #app .profile-editor-sheet,.vertex-v3 #app .community-safety-sheet,.vertex-v3 #app .powder-finder-sheet{
    position:fixed!important;
    inset:0 0 var(--v3-content-bottom) 0!important;
    width:auto!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    padding:calc(max(14px,env(safe-area-inset-top)) + 4px) 14px 22px!important;
    overflow:auto!important;
    border:0!important;
    border-radius:0!important;
    transform:none!important;
    background:var(--g-surface)!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}.vertex-v3 #app .profile-editor-sheet .publish-route-head,.vertex-v3 #app .community-safety-sheet .publish-route-head,.vertex-v3 #app .powder-finder-sheet .publish-route-head{
    position:sticky!important;
    top:-18px!important;
    z-index:3!important;
    margin:-4px -14px 10px!important;
    padding:10px 14px 8px!important;
    background:linear-gradient(var(--g-surface) 80%,#e9eef200)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
}

@media(min-width:760px){.vertex-v3 #app .community-map-bar{
    position:fixed!important;
    top:80px!important;
    left:var(--v3-desktop-left)!important;
    right:auto!important;
    width:430px!important;
    transform:none!important;
  }.vertex-v3 #app .map-route-chip{
    position:fixed!important;
    left:50%!important;
    right:auto!important;
    bottom:20px!important;
    transform:translateX(-50%)!important;
  }.vertex-v3 #app .profile-editor-sheet,.vertex-v3 #app .community-safety-sheet{
    position:fixed!important;
    top:40px!important;
    bottom:40px!important;
    left:calc(var(--v3-desktop-left) + 20px)!important;
    right:auto!important;
    width:390px!important;
    max-width:390px!important;
    max-height:none!important;
    margin:0!important;
    overflow:auto!important;
    border-radius:22px!important;
    transform:none!important;
  }.vertex-v3 #app .powder-finder-sheet{
    position:fixed!important;
    top:40px!important;
    bottom:40px!important;
    left:calc(var(--v3-desktop-left) + 20px)!important;
    right:auto!important;
    width:560px!important;
    max-width:min(560px,calc(100vw - 170px))!important;
    max-height:none!important;
    margin:0!important;
    overflow:auto!important;
    transform:none!important;
  }
}/* =========================================================
   Vertex v4 layout authority
   Weather is one destination. Desktop is rail + map + panel.
   ========================================================= */

.vertex-v3 #app{
  --v4-rail-w:80px;
  --v4-panel-w:430px;
  --v4-panel-gap:16px;
}/* Weather owns its own Forecast / Weather map navigation. */
.vertex-v3 #app .weather-view>.weather-tabs{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  position:relative!important;
  inset:auto!important;
  transform:none!important;
  width:100%!important;
  margin:0 0 14px!important;
  padding:3px!important;
  border:1px solid rgba(var(--g-ink-rgb),0.071)!important;
  border-radius:14px!important;
  background:rgba(var(--g-ink-rgb),0.027)!important;
  pointer-events:auto!important;
}.vertex-v3 #app .weather-view>.weather-tabs button{
  min-height:36px!important;
  border:0!important;
  border-radius:10px!important;
  background:transparent!important;
  color:var(--g-muted)!important;
  font-size:10px!important;
  font-weight:600!important;
--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}.vertex-v3 #app .weather-view>.weather-tabs button.active{
  background:var(--g-raised)!important;
  color:var(--g-contrast)!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}.vertex-v3 #app .weather-view.map-active{
  overflow:hidden!important;
}.vertex-v3 #app .weather-map-view{
  position:relative!important;
  width:100%!important;
  min-height:0!important;
  overflow:hidden!important;
  background:var(--g-surface)!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}.vertex-v3 #app #weatherMapCanvas{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
}/* Powder map must visibly fail instead of appearing as a blank broken map. */
.vertex-v3 #app .powder-raster-map.map-error{
  display:grid!important;
  place-items:center!important;
  background:
    linear-gradient(135deg,var(--g-surface),var(--g-surface))!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}.vertex-v3 #app .powder-raster-map.map-error::after{
  content:"Map temporarily unavailable";
  color:var(--g-muted);
  font-size:10px;
  font-weight:600;
}/* ---------------- Mobile ---------------- */
@media(max-width:759px){
  .vertex-v3 #app .weather-view{
    display:flex!important;
    flex-direction:column!important;
    inset:0 0 var(--v3-content-bottom) 0!important;
    padding:calc(max(12px,env(safe-area-inset-top)) + 2px) 12px 14px!important;
    overflow:auto!important;
  }
  .vertex-v3 #app .weather-view[hidden]{display:none!important}
  .vertex-v3 #app .weather-head{
    flex:0 0 auto!important;
    position:sticky!important;
    top:-4px!important;
    z-index:14!important;
    margin:0 -12px 8px!important;
    padding:6px 12px 8px!important;
    background:linear-gradient(var(--g-surface) 82%,#e9eef200)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
  .vertex-v3 #app .weather-view>.weather-tabs{
    flex:0 0 auto!important;
    position:sticky!important;
    top:58px!important;
    z-index:13!important;
    background:rgba(var(--g-surface-rgb),0.918)!important;
    backdrop-filter:blur(18px)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
  .vertex-v3 #app .weather-forecast{
    padding:0!important;
    /* The base max-width + auto margins would shrink this flex item to its max-content width. */
    width:100%!important;
    min-width:0!important;
  }
  .vertex-v3 #app .weather-view.map-active{
    padding-bottom:10px!important;
  }
  .vertex-v3 #app .weather-view.map-active .weather-map-view{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:300px!important;
    margin:0!important;
    border:1px solid rgba(var(--g-ink-rgb),0.078)!important;
    border-radius:14px!important;
  }
  
  
  

  /* Forecast hierarchy: useful first, deep detail second. */
  .vertex-v3 #app .weather-summary{
    display:none!important;
  }
  .vertex-v3 #app .weather-levels{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
    margin:10px 0 12px!important;
  }
  .vertex-v3 #app .weather-level-card{
    min-width:0!important;
    padding:9px!important;
  }
  .vertex-v3 #app .weather-level-card>div{
    display:none!important;
  }
  .vertex-v3 #app .weather-level-card b{
    font-size:18px!important;
  }
  .vertex-v3 #app .weather-level-card small{
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
}/* ---------------- Desktop ---------------- */
@media(min-width:760px){
  /* Permanent desktop rail, not a floating mobile tab bar. */
  .vertex-v3 #app .bottom-nav{
    position:fixed!important;
    inset:0 auto 0 0!important;
    width:var(--v4-rail-w)!important;
    height:100dvh!important;
    min-height:100dvh!important;
    padding:88px 8px 18px!important;
    transform:none!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
    gap:6px!important;
    border:0!important;
    border-right:1px solid rgba(var(--g-ink-rgb),0.071)!important;
    border-radius:0!important;
    background:rgba(var(--g-surface-rgb),0.961)!important;
    box-shadow:none!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
  .vertex-v3 #app .bottom-nav button{
    width:64px!important;
    min-height:62px!important;
    border-radius:14px!important;
  }
  .vertex-v3 #app .bottom-nav button.selected{
    background:rgba(var(--g-ink-rgb),0.051)!important;
  }

  .vertex-v3 #app .app-brand-mark{
    top:21px!important;
    left:14px!important;
    right:auto!important;
    width:52px!important;
    opacity:.8!important;
    z-index:112!important;
  }

  .vertex-v3 #app .topbar{
    top:18px!important;
    left:calc(var(--v4-rail-w) + 18px)!important;
    width:min(460px,calc(100vw - var(--v4-rail-w) - 110px))!important;
  }
  .vertex-v3 #app .place-card{
    left:calc(var(--v4-rail-w) + 18px)!important;
    bottom:18px!important;
  }
  .vertex-v3 #app .map-tools{
    top:18px!important;
    right:18px!important;
  }

  /* One desktop side workspace. */
  .vertex-v3 #app .explore-sheet,
  .vertex-v3 #app .you-sheet,
  .vertex-v3 #app .activities-sheet,
  .vertex-v3 #app .activity-detail,
  .vertex-v3 #app .route-detail,
  .vertex-v3 #app .compare-sheet,
  .vertex-v3 #app .community-view{
    top:16px!important;
    bottom:16px!important;
    left:calc(var(--v4-rail-w) + 16px)!important;
    width:var(--v4-panel-w)!important;
    max-width:var(--v4-panel-w)!important;
    border-radius:22px!important;
  }

  /* When a destination panel is open, map-only chrome gets out of the way. */
  .vertex-v3 #app[data-h9]:not(._h) .topbar,
  .vertex-v3 #app[data-h10]:not(._h) .topbar,
  .vertex-v3 #app[data-h11]:not(._h) .topbar,
  .vertex-v3 #app[data-h12]:not(._h) .topbar,
  .vertex-v3 #app[data-h13]:not(._h) .topbar,
  .vertex-v3 #app[data-h14]:not(._h) .topbar,
  .vertex-v3 #app[data-h15]:not(._h) .topbar,
  .vertex-v3 #app[data-h16]:not(._h) .topbar{
    display:none!important;
  }
  .vertex-v3 #app[data-h9]:not(._h) .place-card,
  .vertex-v3 #app[data-h10]:not(._h) .place-card,
  .vertex-v3 #app[data-h11]:not(._h) .place-card,
  .vertex-v3 #app[data-h12]:not(._h) .place-card,
  .vertex-v3 #app[data-h13]:not(._h) .place-card,
  .vertex-v3 #app[data-h14]:not(._h) .place-card,
  .vertex-v3 #app[data-h15]:not(._h) .place-card,
  .vertex-v3 #app[data-h16]:not(._h) .place-card{
    display:none!important;
  }

  /* Forecast = focused side workspace with map still visible. */
  .vertex-v3 #app .weather-view{
    position:fixed!important;
    top:16px!important;
    bottom:16px!important;
    left:calc(var(--v4-rail-w) + 16px)!important;
    right:auto!important;
    width:520px!important;
    max-width:520px!important;
    height:auto!important;
    padding:16px!important;
    overflow:auto!important;
    border:1px solid rgba(var(--g-ink-rgb),0.094)!important;
    border-radius:22px!important;
    background:rgba(var(--g-surface-rgb),0.973)!important;
    box-shadow:0 22px 64px rgba(var(--g-shadow-rgb),0.239)!important;
    backdrop-filter:blur(24px)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
  .vertex-v3 #app .weather-forecast{
    padding:0!important;
  }

  /* Weather Map = actual map workspace to the right of the rail. */
  .vertex-v3 #app[data-explore-view="weather-map"] .weather-view{
    inset:0 0 0 var(--v4-rail-w)!important;
    width:auto!important;
    max-width:none!important;
    padding:18px!important;
    border:0!important;
    border-radius:0!important;
    background:var(--g-surface)!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
  .vertex-v3 #app[data-explore-view="weather-map"] .weather-head{
    position:absolute!important;
    z-index:14!important;
    top:18px!important;
    left:18px!important;
    width:390px!important;
    padding:10px 12px!important;
    border:1px solid rgba(var(--g-ink-rgb),0.086)!important;
    border-radius:14px!important;
    background:rgba(var(--g-surface-rgb),0.910)!important;
    backdrop-filter:blur(18px)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
  .vertex-v3 #app[data-explore-view="weather-map"] .weather-view>.weather-tabs{
    position:absolute!important;
    z-index:14!important;
    top:104px!important;
    left:18px!important;
    width:300px!important;
    margin:0!important;
    background:rgba(var(--g-surface-rgb),0.910)!important;
    backdrop-filter:blur(18px)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
  .vertex-v3 #app[data-explore-view="weather-map"] .weather-map-view{
    position:absolute!important;
    inset:0!important;
    width:auto!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
  }
  
  
  

  /* Forecast information density on desktop. */
  .vertex-v3 #app .weather-levels{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
  }
  .vertex-v3 #app .weather-level-card{
    min-width:0!important;
    padding:10px!important;
  }
  .vertex-v3 #app .weather-level-card>div span:nth-child(n+3){
    display:none!important;
  }

  /* Desktop Powder is a side workspace, not a centered modal floating over everything. */
  .vertex-v3 #app .powder-finder-sheet{
    top:16px!important;
    bottom:16px!important;
    left:calc(var(--v4-rail-w) + 16px)!important;
    right:auto!important;
    width:560px!important;
    max-width:min(560px,calc(100vw - var(--v4-rail-w) - 48px))!important;
    border-radius:22px!important;
  }
}/* =========================================================
   Vertex v5 interaction authority
   Weather controls must always sit above the weather canvas.
   ========================================================= */
.vertex-v3 #app .weather-map-view{
  isolation:isolate!important;
}.vertex-v3 #app #weatherMapCanvas{
  z-index:0!important;
  pointer-events:auto!important;
}
@media(max-width:759px){
}
@media(min-width:760px){.vertex-v3 #app[data-explore-view="weather-map"] #weatherMapCanvas{
    z-index:0!important;
  }
}/* =========================================================
   Vertex UI system v6 — compact professional scale authority
   Visual chrome is restrained; touch targets remain >= 44px.
   ========================================================= */
.vertex-v3 #app{
  --ui-hit:44px;
  --ui-control:40px;
  --ui-control-sm:34px;
  --ui-radius:11px;
  --ui-radius-sm:9px;
  --ui-radius-panel:16px;
  --ui-title:18px;
  --ui-heading:13px;
  --ui-body:11px;
  --ui-label:9px;
  --ui-meta:8.5px;
  --ui-icon:17px;
  --ui-gap:8px;
}/* ---------- Typography ---------- */
.vertex-v3 #app h1,.vertex-v3 #app .place-card h1,.vertex-v3 #app .weather-head h1{
  font-size:var(--ui-title)!important;
  line-height:1.08!important;
  letter-spacing:-.018em!important;
}.vertex-v3 #app h2,.vertex-v3 #app .activities-head h2,.vertex-v3 #app .activity-detail-head h2,.vertex-v3 #app .route-detail-head h2,.vertex-v3 #app .panel-head h2,.vertex-v3 #app .record-head h2{
  font-size:17px!important;
  line-height:1.12!important;
  letter-spacing:-.012em!important;
}.vertex-v3 #app h3{
  font-size:14px!important;
}.vertex-v3 #app .eyebrow,.vertex-v3 #app .activities-head small,.vertex-v3 #app .activity-detail-head small,.vertex-v3 #app .route-detail-head small,.vertex-v3 #app .panel-head small,.vertex-v3 #app .record-head small,.vertex-v3 #app .weather-head small,.vertex-v3 #app .weather-section-head small,.vertex-v3 #app .layer-section small{
  font-size:var(--ui-label)!important;
  letter-spacing:.12em!important;
  font-weight:600!important;
}.vertex-v3 #app p,.vertex-v3 #app .weather-head p{
  font-size:var(--ui-body)!important;
  line-height:1.42!important;
}.vertex-v3 #app button{
  letter-spacing:0!important;
}/* ---------- Shared icon / close / back controls ---------- */
.vertex-v3 #app .round,.vertex-v3 #app .tool,.vertex-v3 #app .weather-head>button,.vertex-v3 #app .panel-head>button,.vertex-v3 #app .record-head>button,.vertex-v3 #app .activities-head>button,.vertex-v3 #app .activity-detail-head>button,.vertex-v3 #app .route-detail-head>button,.vertex-v3 #app .publish-route-head>button,.vertex-v3 #app .community-map-bar>button{
  width:var(--ui-hit)!important;
  height:var(--ui-hit)!important;
  min-width:var(--ui-hit)!important;
  min-height:var(--ui-hit)!important;
  padding:0!important;
  border-radius:14px!important;
  font-size:18px!important;
  display:grid!important;
  place-items:center!important;
}.vertex-v3 #app .community-map-bar>button{
  /* "‹ Routes" is a text label, not an icon: keep the hit height but let the label set the width. */
  width:auto!important;
  padding:0 12px!important;
  font-size:12px!important;
  white-space:nowrap!important;
}.vertex-v3 #app .round,.vertex-v3 #app .tool{
  border-color:rgba(var(--g-ink-rgb),0.094)!important;
  background:rgba(var(--g-surface-rgb),0.867)!important;
  box-shadow:0 5px 16px rgba(var(--g-shadow-rgb),0.122)!important;
  backdrop-filter:blur(14px)!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}.vertex-v3 #app .tool.active{
  background:var(--g-raised)!important;
  color:var(--g-contrast)!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}/* ---------- Search ---------- */
.vertex-v3 #app .topbar{
  gap:7px!important;
}.vertex-v3 #app .search{
  height:var(--ui-hit)!important;
  min-height:var(--ui-hit)!important;
  padding:0 7px 0 11px!important;
  border-radius:14px!important;
  border-color:rgba(var(--g-ink-rgb),0.094)!important;
  box-shadow:0 5px 18px rgba(var(--g-shadow-rgb),0.122)!important;
}.vertex-v3 #app .search-icon{
  margin-right:7px!important;
  font-size:20px!important;
}.vertex-v3 #app .search input{
  font-size:13px!important;
}.vertex-v3 #app .search-submit{
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  min-height:34px!important;
  flex-basis:34px!important;
  margin-left:4px!important;
  border-radius:10px!important;
  font-size:15px!important;
}.vertex-v3 #app .search-result{
  min-height:48px!important;
  padding:8px 11px!important;
}.vertex-v3 #app .search-result b{
  font-size:11px!important;
}.vertex-v3 #app .search-result small{
  font-size:var(--ui-meta)!important;
}/* ---------- Bottom / desktop navigation ---------- */
.vertex-v3 #app .bottom-nav button{
  font-size:var(--ui-icon)!important;
  font-weight:600!important;
}.vertex-v3 #app .bottom-nav small{
  font-size:var(--ui-meta)!important;
  font-weight:600!important;
  letter-spacing:.01em!important;
}.vertex-v3 #app .bottom-nav .record span{
  width:30px!important;
  height:30px!important;
  font-size:11px!important;
}/* ---------- Tabs / segmented controls / chips ---------- */
.vertex-v3 #app .weather-view>.weather-tabs button,.vertex-v3 #app .powder-map-tabs button,.vertex-v3 #app .context-surface-nav button,.vertex-v3 #app .community-tabs button,.vertex-v3 #app .route-library-filters button{
  min-height:var(--ui-control-sm)!important;
  height:var(--ui-control-sm)!important;
  padding:0 10px!important;
  border-radius:var(--ui-radius-sm)!important;
  font-size:var(--ui-label)!important;
  font-weight:600!important;
}.vertex-v3 #app .weather-view>.weather-tabs,.vertex-v3 #app .context-surface-nav{
  gap:2px!important;
  padding:2px!important;
  border-radius:var(--ui-radius)!important;
}.vertex-v3 #app .route-library-filters{
  gap:5px!important;
}/* ---------- Layer panel ---------- */
.vertex-v3 #app .layer-row{
  min-height:52px!important;
  padding:7px 0!important;
  gap:10px!important;
}.vertex-v3 #app .layer-preview{
  width:42px!important;
  height:34px!important;
  flex:0 0 42px!important;
  border-radius:10px!important;
}.vertex-v3 #app .layer-row b{
  font-size:11px!important;
  line-height:1.2!important;
}.vertex-v3 #app .layer-row small{
  margin-top:2px!important;
  font-size:var(--ui-meta)!important;
  line-height:1.25!important;
}.vertex-v3 #app .layer-row>i{
  min-width:24px!important;
  font-size:12px!important;
}.vertex-v3 #app .layer-section{
  padding:10px 0 5px!important;
}.vertex-v3 #app .layer-more-group summary{
  min-height:38px!important;
  padding:0 2px!important;
  font-size:var(--ui-label)!important;
}/* ---------- Map place card ---------- */
.vertex-v3 #app .place-card{
  border-radius:var(--ui-radius-panel)!important;
  padding:6px 13px 11px!important;
}.vertex-v3 #app .place-card-title{
  gap:8px!important;
}.vertex-v3 #app .favorite-place{
  width:var(--ui-hit)!important;
  height:var(--ui-hit)!important;
  min-width:var(--ui-hit)!important;
  min-height:var(--ui-hit)!important;
  font-size:18px!important;
}.vertex-v3 #app .resort-status span,.vertex-v3 #app .stats span{
  padding:7px 6px!important;
}.vertex-v3 #app .resort-status b,.vertex-v3 #app .stats b{
  font-size:11px!important;
}.vertex-v3 #app .resort-status small,.vertex-v3 #app .stats small{
  font-size:var(--ui-meta)!important;
}.vertex-v3 #app .mountain-primary-actions{
  gap:6px!important;
}.vertex-v3 #app .mountain-primary-actions button{
  min-height:52px!important;
  padding:7px 9px!important;
  border-radius:10px!important;
}.vertex-v3 #app .mountain-primary-actions button>span{
  font-size:15px!important;
}.vertex-v3 #app .mountain-primary-actions button>b{
  font-size:10px!important;
}.vertex-v3 #app .mountain-primary-actions button>small{
  font-size:var(--ui-meta)!important;
}/* ---------- Lists / rows ---------- */
.vertex-v3 #app .activity-row,.vertex-v3 #app .route-row,.vertex-v3 #app .community-route-card,.vertex-v3 #app .community-person-card,.vertex-v3 #app .you-menu>button{
  min-height:56px!important;
}.vertex-v3 #app .activity-row,.vertex-v3 #app .route-row{
  padding:7px 4px!important;
}.vertex-v3 #app .activity-icon,.vertex-v3 #app .you-menu>button>span{
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  border-radius:10px!important;
  font-size:14px!important;
}.vertex-v3 #app .activity-copy b,.vertex-v3 #app .you-menu>button b,.vertex-v3 #app .community-route-card>b{
  font-size:11.5px!important;
}.vertex-v3 #app .activity-copy small,.vertex-v3 #app .activity-copy em,.vertex-v3 #app .you-menu>button small{
  font-size:var(--ui-meta)!important;
}.vertex-v3 #app .activity-arrow,.vertex-v3 #app .you-menu>button>i{
  font-size:17px!important;
}.vertex-v3 #app .community-route-card,.vertex-v3 #app .community-person-card{
  padding:10px 2px!important;
}/* ---------- Primary / secondary actions ---------- */
.vertex-v3 #app .route-detail-actions button,.vertex-v3 #app .route-detail-menu button,.vertex-v3 #app .activity-actions button,.vertex-v3 #app .record-actions button,.vertex-v3 #app .route-add-primary,.vertex-v3 #app .route-filter-toggle,.vertex-v3 #app .community-route-save-inline,.vertex-v3 #app .publish-route-actions button,.vertex-v3 #app .settings-actions button{
  min-height:40px!important;
  height:auto!important;
  padding:8px 11px!important;
  border-radius:10px!important;
  font-size:10px!important;
  font-weight:600!important;
}.vertex-v3 #app .route-detail-actions #routeDetailMore,.vertex-v3 #app .activity-actions #activityMoreButton{
  width:40px!important;
  min-width:40px!important;
  padding:0!important;
}/* ---------- Stats ---------- */
.vertex-v3 #app .activities-totals,.vertex-v3 #app .activity-detail-stats,.vertex-v3 #app .route-detail-stats{
  border-radius:10px!important;
  margin-bottom:10px!important;
}.vertex-v3 #app .activities-totals span,.vertex-v3 #app .activity-detail-stats span,.vertex-v3 #app .route-detail-stats span{
  padding:8px!important;
}.vertex-v3 #app .activities-totals b,.vertex-v3 #app .activity-detail-stats b,.vertex-v3 #app .route-detail-stats b{
  font-size:12px!important;
}.vertex-v3 #app .activities-totals small,.vertex-v3 #app .activity-detail-stats small,.vertex-v3 #app .route-detail-stats small{
  font-size:var(--ui-meta)!important;
}/* ---------- Weather ---------- */
.vertex-v3 #app .weather-now-main strong{
  font-size:30px!important;
}.vertex-v3 #app .weather-now-main b{
  font-size:12px!important;
}.vertex-v3 #app .weather-now-metrics b,.vertex-v3 #app .weather-sun b{
  font-size:11px!important;
}.vertex-v3 #app .weather-now-metrics small,.vertex-v3 #app .weather-sun small{
  font-size:var(--ui-meta)!important;
}.vertex-v3 #app .weather-level-card{
  border-radius:10px!important;
  padding:8px!important;
}.vertex-v3 #app .weather-level-card>b{
  font-size:17px!important;
}.vertex-v3 #app .weather-level-card small{
  font-size:var(--ui-meta)!important;
}.vertex-v3 #app .weather-hour-card{
  min-width:62px!important;
  padding:8px 6px!important;
}.vertex-v3 #app .weather-hour-card b{
  font-size:12px!important;
}.vertex-v3 #app .weather-hour-card small,.vertex-v3 #app .weather-hour-card span{
  font-size:var(--ui-meta)!important;
}.vertex-v3 #app .weather-days article{
  min-height:48px!important;
  padding:7px 2px!important;
  font-size:10px!important;
}.vertex-v3 #app .powder-card{
  min-height:54px!important;
  padding:9px 11px!important;
  border-radius:10px!important;
}.vertex-v3 #app .powder-card b{
  font-size:11px!important;
}.vertex-v3 #app .powder-card small,.vertex-v3 #app .powder-card span{
  font-size:var(--ui-meta)!important;
}/* ---------- Form controls / dialogs ---------- */
.vertex-v3 #app input:not([type="range"]),.vertex-v3 #app select,.vertex-v3 #app textarea{
  border-radius:10px!important;
  font-size:11px!important;
}.vertex-v3 #app select,.vertex-v3 #app input:not([type="range"]):not([type="checkbox"]):not([type="radio"]){
  min-height:40px!important;
}.vertex-v3 #app .profile-editor-sheet,.vertex-v3 #app .community-safety-sheet,.vertex-v3 #app .powder-finder-sheet,.vertex-v3 #app .panel,.vertex-v3 #app .record-sheet{
  border-radius:var(--ui-radius-panel)!important;
}/* ---------- Mobile ---------- */
@media(max-width:759px){
  .vertex-v3 #app .topbar{
    left:9px!important;
    right:9px!important;
  }
  .vertex-v3 #app .search input{
    font-size:16px!important; /* Prevent iOS input zoom. */
  }
  .vertex-v3 #app .map-tools{
    right:9px!important;
    gap:5px!important;
  }
  .vertex-v3 #app .bottom-nav{
    --v3-nav-mobile:58px;
    padding-top:1px!important;
  }
  .vertex-v3 #app .bottom-nav button{
    height:52px!important;
    min-height:52px!important;
  }
  .vertex-v3 #app .place-card{
    left:9px!important;
    right:9px!important;
  }
  .vertex-v3 #app .panel,
  .vertex-v3 #app .record-sheet,
  .vertex-v3 #app .avalanche-sheet{
    left:7px!important;
    right:7px!important;
    padding-left:12px!important;
    padding-right:12px!important;
  }
}/* ---------- Desktop ---------- */
@media(min-width:760px){
  .vertex-v3 #app{
    --v4-rail-w:72px;
    --v4-rail-half:36px;
  }
  .vertex-v3 #app .bottom-nav{
    width:var(--v4-rail-w)!important;
    padding-left:5px!important;
    padding-right:5px!important;
  }
  .vertex-v3 #app .bottom-nav button{
    width:60px!important;
    min-height:56px!important;
    height:56px!important;
  }
  .vertex-v3 #app .app-brand-mark{
    left:12px!important;
    width:46px!important;
  }
  .vertex-v3 #app .topbar{
    width:min(430px,calc(100vw - var(--v4-rail-w) - 100px))!important;
  }
  .vertex-v3 #app .explore-sheet,
  .vertex-v3 #app .you-sheet,
  .vertex-v3 #app .activities-sheet,
  .vertex-v3 #app .activity-detail,
  .vertex-v3 #app .route-detail,
  .vertex-v3 #app .compare-sheet,
  .vertex-v3 #app .community-view{
    width:410px!important;
    max-width:410px!important;
    padding:14px!important;
  }
  .vertex-v3 #app .weather-view{
    width:500px!important;
    max-width:500px!important;
    padding:14px!important;
  }
}/* =========================================================
   Vertex responsive authority v7
   Final geometry rules for mobile,tablet and desktop.
   ========================================================= */

/* Nested route dialogs belong to Route Detail,not to the viewport. */
.vertex-v3 #app .route-detail{
  position:fixed!important;
}.vertex-v3 #app .route-detail .publish-route-sheet{
  position:absolute!important;
  z-index:40!important;
  inset:0!important;
  /* The sheet fills Route Detail; keep its grid rows at content height instead of stretching inputs/buttons. */
  align-content:start!important;
  width:auto!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:14px!important;
  overflow:auto!important;
  border:0!important;
  border-radius:inherit!important;
  background:var(--g-surface)!important;
  box-shadow:none!important;
  transform:none!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}.vertex-v3 #app .route-detail .publish-route-sheet .publish-route-head{
  position:sticky!important;
  top:-14px!important;
  z-index:3!important;
  margin:-14px -14px 10px!important;
  padding:12px 14px 8px!important;
  background:linear-gradient(var(--g-surface) 82%,#e9eef200)!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}/* Map-workflow controls stay map-centric on every screen size. */
.vertex-v3 #app .route-planner,.vertex-v3 #app .replay-controls,.vertex-v3 #app .active-session{
  z-index:100!important;
  margin:0!important;
}.vertex-v3 #app .route-planner{
  max-height:min(46vh,420px)!important;
  overflow:auto!important;
}.vertex-v3 #app .replay-controls{
  max-width:none!important;
}.vertex-v3 #app .active-session{
  max-width:none!important;
}/* Contextual map overlays must never exceed the viewport. */
.vertex-v3 #app .map-route-chip,.vertex-v3 #app .community-map-bar,.vertex-v3 #app .avalanche-chip,.vertex-v3 #app .bulletin-terrain-legend{
  max-width:calc(100vw - 24px)!important;
}/* ---------- Mobile ---------- */
@media(max-width:759px){
  .vertex-v3 #app{
    --v7-edge:8px;
  }

  /* Primary destinations always occupy the usable area above nav. */
  .vertex-v3 #app .explore-sheet,
  .vertex-v3 #app .you-sheet,
  .vertex-v3 #app .activities-sheet,
  .vertex-v3 #app .activity-detail,
  .vertex-v3 #app .route-detail,
  .vertex-v3 #app .compare-sheet,
  .vertex-v3 #app .community-view,
  .vertex-v3 #app .weather-view,
  .vertex-v3 #app .profile-editor-sheet,
  .vertex-v3 #app .community-safety-sheet,
  .vertex-v3 #app .powder-finder-sheet{
    inset:0 0 var(--v3-content-bottom) 0!important;
    width:auto!important;
    max-width:none!important;
    max-height:none!important;
    border-radius:0!important;
  }

  /* Tool sheets stay docked and never hide under the nav. */
  .vertex-v3 #app .panel,
  .vertex-v3 #app .record-sheet,
  .vertex-v3 #app .avalanche-sheet{
    left:var(--v7-edge)!important;
    right:var(--v7-edge)!important;
    bottom:calc(var(--v3-content-bottom) + var(--v7-edge))!important;
    top:auto!important;
    width:auto!important;
    max-width:none!important;
    max-height:min(68vh,calc(100dvh - var(--v3-content-bottom) - 26px))!important;
  }

  .vertex-v3 #app .route-planner{
    position:fixed!important;
    left:var(--v7-edge)!important;
    right:var(--v7-edge)!important;
    bottom:calc(var(--v3-content-bottom) + var(--v7-edge))!important;
    top:auto!important;
    width:auto!important;
    max-width:none!important;
    transform:none!important;
    padding:10px!important;
    border-radius:14px!important;
  }
  .vertex-v3 #app .route-planner-actions{
    gap:5px!important;
  }
  .vertex-v3 #app .route-planner-actions button{
    min-height:40px!important;
    padding:6px 8px!important;
    font-size:9px!important;
  }

  .vertex-v3 #app .replay-controls{
    position:fixed!important;
    left:var(--v7-edge)!important;
    right:var(--v7-edge)!important;
    bottom:calc(var(--v3-content-bottom) + var(--v7-edge))!important;
    width:auto!important;
    transform:none!important;
  }

  .vertex-v3 #app .active-session{
    position:fixed!important;
    left:var(--v7-edge)!important;
    right:var(--v7-edge)!important;
    bottom:calc(var(--v3-content-bottom) + var(--v7-edge))!important;
    width:auto!important;
  }
  .vertex-v3 #app .active-session.collapsed{
    right:auto!important;
    max-width:min(280px,calc(100vw - 16px))!important;
  }

  /* The tracks bar sits under the search bar, left of the map tools column; an own-route chip moves below it. */
  .vertex-v3 #app .community-map-bar{
    left:var(--v7-edge)!important;
    right:62px!important;
    width:auto!important;
  }
  .vertex-v3 #app[data-h17]:not(._h) .map-route-chip{
    top:calc(var(--v3-mobile-top) + 140px)!important;
  }
  .vertex-v3 #app .map-route-chip{
    left:var(--v7-edge)!important;
    right:auto!important;
    max-width:calc(100vw - 64px)!important;
  }
}/* Small phones: keep content readable without allowing side overflow. */
@media(max-width:390px){
  .vertex-v3 #app .route-detail-stats,
  .vertex-v3 #app .activity-detail-stats,
  .vertex-v3 #app .activities-totals{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .vertex-v3 #app .route-detail-actions{
    grid-template-columns:minmax(0,1fr) auto!important;
  }
  .vertex-v3 #app .route-detail-actions #routeDetailMore{
    grid-column:auto!important;
  }
  .vertex-v3 #app .weather-now-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}/* Short / landscape mobile: prioritize workflow content over decorative height. */
@media(max-width:759px) and (max-height:620px){
  .vertex-v3 #app .place-card{
    max-height:96px!important;
    overflow:hidden!important;
  }
  .vertex-v3 #app .place-card .place-expanded-content{
    display:none!important;
  }
  .vertex-v3 #app .panel,
  .vertex-v3 #app .record-sheet,
  .vertex-v3 #app .avalanche-sheet{
    max-height:calc(100dvh - var(--v3-content-bottom) - 16px)!important;
  }
  .vertex-v3 #app .route-planner{
    max-height:calc(100dvh - var(--v3-content-bottom) - 16px)!important;
  }
  .vertex-v3 #app .route-planner-copy span{
    display:none!important;
  }
}/* ---------- Tablet / compact desktop ---------- */
@media(min-width:760px) and (max-width:1023px){
  .vertex-v3 #app{
    --v4-rail-w:64px;
    --v4-rail-half:32px;
    --v4-panel-w:360px;
  }

  .vertex-v3 #app .bottom-nav{
    width:64px!important;
    padding-left:3px!important;
    padding-right:3px!important;
  }
  .vertex-v3 #app .bottom-nav button{
    width:56px!important;
  }
  .vertex-v3 #app .app-brand-mark{
    left:9px!important;
    width:42px!important;
  }

  .vertex-v3 #app .topbar{
    left:calc(var(--v4-rail-w) + 12px)!important;
    width:min(370px,calc(100vw - var(--v4-rail-w) - 90px))!important;
  }

  .vertex-v3 #app .place-card{
    left:calc(var(--v4-rail-w) + 12px)!important;
    width:360px!important;
    max-width:360px!important;
  }

  .vertex-v3 #app .explore-sheet,
  .vertex-v3 #app .you-sheet,
  .vertex-v3 #app .activities-sheet,
  .vertex-v3 #app .activity-detail,
  .vertex-v3 #app .route-detail,
  .vertex-v3 #app .compare-sheet,
  .vertex-v3 #app .community-view{
    left:calc(var(--v4-rail-w) + 12px)!important;
    width:360px!important;
    max-width:360px!important;
  }

  .vertex-v3 #app .weather-view{
    left:calc(var(--v4-rail-w) + 12px)!important;
    width:430px!important;
    max-width:min(430px,calc(100vw - var(--v4-rail-w) - 24px))!important;
  }

  .vertex-v3 #app .panel,
  .vertex-v3 #app .record-sheet,
  .vertex-v3 #app .avalanche-sheet{
    right:12px!important;
    width:360px!important;
    max-width:360px!important;
  }

  .vertex-v3 #app .profile-editor-sheet,
  .vertex-v3 #app .community-safety-sheet{
    left:calc(var(--v4-rail-w) + 12px)!important;
    width:360px!important;
    max-width:360px!important;
  }

  .vertex-v3 #app .powder-finder-sheet{
    left:calc(var(--v4-rail-w) + 12px)!important;
    width:500px!important;
    max-width:calc(100vw - var(--v4-rail-w) - 24px)!important;
  }
}/* ---------- Desktop ---------- */
@media(min-width:760px){
  /* Map workflows center inside the workspace to the right of the rail. */
  .vertex-v3 #app .route-planner,
  .vertex-v3 #app .replay-controls{
    position:fixed!important;
    left:calc(50% + var(--v4-rail-half))!important;
    right:auto!important;
    bottom:18px!important;
    transform:translateX(-50%)!important;
  }
  .vertex-v3 #app .route-planner{
    width:min(680px,calc(100vw - var(--v4-rail-w) - 48px))!important;
    max-width:680px!important;
  }
  .vertex-v3 #app .replay-controls{
    width:min(620px,calc(100vw - var(--v4-rail-w) - 48px))!important;
  }

  .vertex-v3 #app .active-session{
    position:fixed!important;
    left:auto!important;
    right:18px!important;
    bottom:18px!important;
    width:min(420px,calc(100vw - var(--v4-rail-w) - 36px))!important;
  }

  /* Tool panels are one predictable right-side family. */
  .vertex-v3 #app .panel,
  .vertex-v3 #app .record-sheet,
  .vertex-v3 #app .avalanche-sheet{
    top:16px!important;
    right:16px!important;
    bottom:16px!important;
    width:390px!important;
    max-width:390px!important;
    max-height:none!important;
  }

  /* Context dialogs align with the left-side destination workspace. */
  .vertex-v3 #app .profile-editor-sheet,
  .vertex-v3 #app .community-safety-sheet{
    top:16px!important;
    bottom:16px!important;
    left:calc(var(--v4-rail-w) + 16px)!important;
    width:410px!important;
    max-width:410px!important;
    max-height:none!important;
    border-radius:14px!important;
  }

  .vertex-v3 #app .powder-finder-sheet{
    top:16px!important;
    bottom:16px!important;
    left:calc(var(--v4-rail-w) + 16px)!important;
    width:560px!important;
    max-width:min(560px,calc(100vw - var(--v4-rail-w) - 32px))!important;
    max-height:none!important;
  }

  .vertex-v3 #app .community-map-bar{
    left:calc(var(--v4-rail-w) + 16px)!important;
    width:410px!important;
    max-width:min(410px,calc(100vw - var(--v4-rail-w) - 32px))!important;
  }
}/* Large desktop: keep readable line lengths; do not stretch UI just because space exists. */
@media(min-width:1440px){
  .vertex-v3 #app .explore-sheet,
  .vertex-v3 #app .you-sheet,
  .vertex-v3 #app .activities-sheet,
  .vertex-v3 #app .activity-detail,
  .vertex-v3 #app .route-detail,
  .vertex-v3 #app .compare-sheet,
  .vertex-v3 #app .community-view{
    width:420px!important;
    max-width:420px!important;
  }
  .vertex-v3 #app .weather-view{
    width:520px!important;
    max-width:520px!important;
  }
}/* Hidden remains authoritative after every responsive rule. */
.vertex-v3 #app [hidden]{
  display:none!important;
}/* Combination-state authority: map workflows should not stack unrelated chrome. */
.vertex-v3 #app[data-h18]:not(._h) .place-card,.vertex-v3 #app[data-h18]:not(._h) .topbar,.vertex-v3 #app[data-h19]:not(._h) .place-card,.vertex-v3 #app[data-h19]:not(._h) .topbar{
  display:none!important;
}.vertex-v3 #app[data-h18]:not(._h) .map-route-chip,.vertex-v3 #app[data-h19]:not(._h) .map-route-chip{
  display:none!important;
}
@media(max-width:759px){.vertex-v3 #app[data-h20]:not(._h) .place-card{
    display:none!important;
  }
}/* Tablet rail half is explicit; desktop default is 36px. */
@media(min-width:1024px){
  .vertex-v3 #app{
    --v4-rail-half:36px;
  }
}/* Final visibility guard — nothing after this may revive hidden UI. */
.vertex-v3 #app [hidden]{
  display:none!important;
}/* =========================================================
   Vertex full QA v9 — Weather Map + place summary authority
   ========================================================= */

/* Weather Map is a clean map state: explicit return/close,no redundant cards. */
.vertex-v3 #app .weather-view.map-active>.weather-head,.vertex-v3 #app .weather-view.map-active>.weather-tabs{
  display:none!important;
}.vertex-v3 #app .weather-map-status{
  position:absolute!important;
  z-index:24!important;
  top:136px!important;
  left:12px!important;
  max-width:min(340px,calc(100% - 24px))!important;
  padding:6px 9px!important;
  border-radius:10px!important;
  background:rgba(var(--g-surface-rgb),0.875)!important;
  color:var(--g-muted)!important;
  font-size:9px!important;
  font-weight:600!important;
  pointer-events:none!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}.vertex-v3 #app .weather-map-status[data-tone="error"]{
  color:#a33429!important;
}.vertex-v3 #app .weather-map-status[hidden]{
  display:none!important;
}/* Place summary: one calm information hierarchy,not a dashboard. */
.vertex-v3 #app .place-card{
  padding:5px 12px 10px!important;
  border-radius:14px!important;
  border:1px solid rgba(var(--g-ink-rgb),0.086)!important;
  background:rgba(var(--g-surface-rgb),0.933)!important;
  box-shadow:0 12px 34px rgba(var(--g-shadow-rgb),0.180)!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}.vertex-v3 #app .place-card-handle{
  height:15px!important;
  min-height:15px!important;
  margin:0 0 2px!important;
}.vertex-v3 #app .place-card-handle span{
  width:30px!important;
  height:3px!important;
  margin:6px auto!important;
  opacity:.55!important;
}.vertex-v3 #app .place-card-title{
  align-items:center!important;
  margin-bottom:7px!important;
}.vertex-v3 #app .place-card-title .eyebrow{
  margin-bottom:3px!important;
  font-size:7.5px!important;
  letter-spacing:.12em!important;
  color:var(--g-muted)!important;
}.vertex-v3 #app .place-card-title h1{
  margin:0!important;
  font-size:17px!important;
  line-height:1.08!important;
}.vertex-v3 #app .favorite-place{
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  min-height:40px!important;
  border-radius:10px!important;
  font-size:17px!important;
  background:transparent!important;
  border-color:rgba(var(--g-ink-rgb),0.071)!important;
--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}/* Three useful glance values; no mini-cards inside the card. */
.vertex-v3 #app .resort-status{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:0!important;
  margin:0!important;
  padding:7px 0!important;
  border-top:1px solid rgba(var(--g-ink-rgb),0.051)!important;
  border-bottom:1px solid rgba(var(--g-ink-rgb),0.051)!important;
}.vertex-v3 #app .resort-status span{
  min-width:0!important;
  padding:1px 9px!important;
  border:0!important;
  border-right:1px solid rgba(var(--g-ink-rgb),0.051)!important;
  border-radius:0!important;
  background:transparent!important;
--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}.vertex-v3 #app .resort-status span:first-child{
  padding-left:0!important;
}.vertex-v3 #app .resort-status span:last-child{
  padding-right:0!important;
  border-right:0!important;
}.vertex-v3 #app .resort-status b{
  font-size:11px!important;
  font-weight:600!important;
}.vertex-v3 #app .resort-status small{
  margin-top:2px!important;
  font-size:7.5px!important;
  color:var(--g-muted)!important;
}/* Weather / Conditions are navigation rows,not oversized feature cards. */
.vertex-v3 #app .mountain-primary-actions{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:0!important;
  margin:6px 0 0!important;
}.vertex-v3 #app .mountain-primary-actions button{
  display:grid!important;
  grid-template-columns:26px minmax(0,1fr) 16px!important;
  align-items:center!important;
  gap:7px!important;
  min-height:45px!important;
  padding:5px 2px!important;
  border:0!important;
  border-bottom:1px solid rgba(var(--g-ink-rgb),0.051)!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--g-ink)!important;
  text-align:left!important;
--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}.vertex-v3 #app .mountain-primary-actions button:last-child{
  border-bottom:0!important;
}.vertex-v3 #app .mountain-primary-actions button>span:first-child{
  width:26px!important;
  height:26px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:10px!important;
  background:rgba(var(--g-ink-rgb),0.027)!important;
  font-size:13px!important;
}.vertex-v3 #app .mountain-primary-actions button>span:nth-child(2){
  min-width:0!important;
  display:grid!important;
  gap:1px!important;
}.vertex-v3 #app .mountain-primary-actions button b{
  font-size:10.5px!important;
}.vertex-v3 #app .mountain-primary-actions button small{
  font-size:7.5px!important;
  color:var(--g-muted)!important;
}.vertex-v3 #app .mountain-primary-actions button i{
  font-size:16px!important;
  font-style:normal!important;
  color:var(--g-muted)!important;
  text-align:right!important;
}/* Terrain facts are quiet metadata. */
.vertex-v3 #app .place-card .stats{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:0!important;
  margin:2px 0 0!important;
  padding-top:6px!important;
}.vertex-v3 #app .place-card .stats span{
  min-width:0!important;
  padding:2px 9px!important;
  border:0!important;
  border-right:1px solid rgba(var(--g-ink-rgb),0.047)!important;
  background:transparent!important;
--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}.vertex-v3 #app .place-card .stats span:first-child{
  padding-left:0!important;
}.vertex-v3 #app .place-card .stats span:last-child{
  border-right:0!important;
}.vertex-v3 #app .place-card .stats b{
  font-size:9.5px!important;
}.vertex-v3 #app .place-card .stats small{
  font-size:7px!important;
  color:var(--g-muted)!important;
}/* Collapsed mobile card remains useful without feeling tall. */
@media(max-width:759px){
  .vertex-v3 #app .place-card.collapsed{
    max-height:91px!important;
  }
  .vertex-v3 #app .place-card.collapsed .place-card-content{
    max-height:68px!important;
  }
  .vertex-v3 #app .place-card.collapsed .resort-status{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  .vertex-v3 #app .place-card.collapsed .resort-status span:nth-child(3){
    display:grid!important;
  }
  
}/* Powder map always has measurable geometry before SDK initialization. */
.vertex-v3 #app .powder-raster-map{
  width:100%!important;
  height:220px!important;
  min-height:220px!important;
  position:relative!important;
  isolation:isolate!important;
}
@media(max-width:620px){.vertex-v3 #app .powder-raster-map{
    height:190px!important;
    min-height:190px!important;
  }
}/* Final visibility guard. */
.vertex-v3 #app [hidden]{
  display:none!important;
}/* =========================================================
   Vertex v10 — You hierarchy + place card layout authority
   ========================================================= */

/* Place title is a real two-column layout: text can never sit under favorite. */
.vertex-v3 #app .place-card-title{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 40px!important;
  align-items:center!important;
  gap:8px!important;
}.vertex-v3 #app .place-card-title>div{
  min-width:0!important;
}.vertex-v3 #app .place-card-title h1{
  min-width:0!important;
  max-width:100%!important;
  overflow-wrap:anywhere!important;
  text-wrap:balance!important;
}.vertex-v3 #app .favorite-place{
  grid-column:2!important;
  justify-self:end!important;
  align-self:center!important;
  position:relative!important;
  inset:auto!important;
  z-index:2!important;
}/* One visual family for the complete You destination. */
.vertex-v3 #app[data-section="you"] .you-sheet,.vertex-v3 #app[data-section="you"] .activities-sheet,.vertex-v3 #app[data-section="you"] .activity-detail,.vertex-v3 #app[data-section="you"] .compare-sheet,.vertex-v3 #app[data-section="you"] .community-view{
  background:rgba(var(--g-surface-rgb),0.973)!important;
  border-color:rgba(var(--g-ink-rgb),0.078)!important;
  color:var(--g-ink)!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}.vertex-v3 #app[data-section="you"] .you-sheet,.vertex-v3 #app[data-section="you"] .activities-sheet,.vertex-v3 #app[data-section="you"] .compare-sheet,.vertex-v3 #app[data-section="you"] .community-view{
  padding:14px!important;
}/* You home: compact,calm and row-based. */
.vertex-v3 #app .you-season-summary{
  margin:2px 0 10px!important;
  padding:10px 0 12px!important;
  gap:3px!important;
}.vertex-v3 #app .you-season-summary small{
  font-size:7.5px!important;
}.vertex-v3 #app .you-season-summary b{
  font-size:14px!important;
  line-height:1.25!important;
}.vertex-v3 #app .you-season-summary span{
  font-size:8.5px!important;
}.vertex-v3 #app .you-menu{
  display:grid!important;
  gap:0!important;
}.vertex-v3 #app .you-menu>button{
  display:grid!important;
  grid-template-columns:30px minmax(0,1fr) 16px!important;
  align-items:center!important;
  gap:9px!important;
  min-height:58px!important;
  padding:7px 2px!important;
  border:0!important;
  border-bottom:1px solid rgba(var(--g-ink-rgb),0.051)!important;
  border-radius:0!important;
  background:transparent!important;
  text-align:left!important;
--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}.vertex-v3 #app .you-menu>button:last-child{
  border-bottom:0!important;
}.vertex-v3 #app .you-menu>button>span{
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  border:1px solid rgba(var(--g-ink-rgb),0.059)!important;
  border-radius:10px!important;
  background:rgba(var(--g-ink-rgb),0.020)!important;
  font-size:13px!important;
  color:var(--g-ink)!important;
}.vertex-v3 #app .you-menu>button b{
  font-size:11px!important;
}.vertex-v3 #app .you-menu>button small{
  font-size:8px!important;
  color:var(--g-muted)!important;
}.vertex-v3 #app .you-menu>button>i{
  font-size:16px!important;
  color:var(--g-muted)!important;
}/* Every child of You uses Back-left + title,never an arbitrary close placement. */
.vertex-v3 #app .you-child-head{
  display:grid!important;
  grid-template-columns:40px minmax(0,1fr)!important;
  align-items:center!important;
  gap:8px!important;
  min-height:48px!important;
  margin:0 0 10px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}.vertex-v3 #app .you-child-head>button{
  grid-column:1!important;
  grid-row:1!important;
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  min-height:40px!important;
  padding:0!important;
  border:1px solid rgba(var(--g-ink-rgb),0.063)!important;
  border-radius:10px!important;
  background:rgba(var(--g-ink-rgb),0.020)!important;
  color:var(--g-ink)!important;
  font-size:20px!important;
  display:grid!important;
  place-items:center!important;
}.vertex-v3 #app .you-child-head>div{
  grid-column:2!important;
  grid-row:1!important;
  min-width:0!important;
}.vertex-v3 #app .you-child-head small{
  display:block!important;
  margin:0 0 2px!important;
  font-size:7.5px!important;
  font-weight:600!important;
  letter-spacing:.12em!important;
  color:var(--g-muted)!important;
}.vertex-v3 #app .you-child-head h2,.vertex-v3 #app .you-child-head b{
  margin:0!important;
  font-size:15px!important;
  line-height:1.15!important;
}/* Community is only a data source when reached from You. */
.vertex-v3 #app[data-section="you"] .community-head,.vertex-v3 #app[data-section="you"] .community-tabs,.vertex-v3 #app[data-section="you"] #communityRoutes,.vertex-v3 #app[data-section="you"] #routesDiscoverNav{
  display:none!important;
}.vertex-v3 #app[data-section="you"] #peopleContextNav{
  display:none!important;
}.vertex-v3 #app[data-section="you"][data-you-view="people"] #peopleContextNav{
  display:grid!important;
}.vertex-v3 #app[data-section="you"] .people-context-nav{
  grid-template-columns:40px minmax(0,1fr) auto!important;
  min-height:48px!important;
  margin:0 0 10px!important;
  gap:8px!important;
}.vertex-v3 #app[data-section="you"] .people-context-nav .context-back{
  width:40px!important;
  min-width:40px!important;
  height:40px!important;
  padding:0!important;
  border:1px solid rgba(var(--g-ink-rgb),0.063)!important;
  border-radius:10px!important;
  background:rgba(var(--g-ink-rgb),0.020)!important;
  font-size:0!important;
  /* Icon-only like the other back buttons: centre the arrow instead of leaving it on the left edge. */
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}.vertex-v3 #app[data-section="you"] .people-context-nav .context-back::after{
  content:"‹";
  font-size:20px;
}.vertex-v3 #app[data-section="you"] .people-context-nav strong{
  text-align:left!important;
  font-size:15px!important;
}.vertex-v3 #app[data-section="you"] .people-context-nav .context-profile-shortcut{
  min-height:36px!important;
  padding:0 9px!important;
  border:1px solid rgba(var(--g-ink-rgb),0.063)!important;
  border-radius:10px!important;
  background:rgba(var(--g-ink-rgb),0.020)!important;
  font-size:9px!important;
}.vertex-v3 #app[data-section="you"] #communityPeople:not([hidden]){
  display:block!important;
}/* In the narrow You workspace,People is always one column. */
.vertex-v3 #app[data-section="you"] .community-people-discover{
  display:block!important;
  max-width:none!important;
}.vertex-v3 #app[data-section="you"] .community-my-profile-card{
  display:none!important;
}.vertex-v3 #app[data-section="you"] .community-friends-overview{
  margin-bottom:14px!important;
}.vertex-v3 #app[data-section="you"] .community-friends-block{
  padding:9px 0!important;
  border:0!important;
  border-bottom:1px solid rgba(var(--g-ink-rgb),0.051)!important;
  border-radius:0!important;
  background:transparent!important;
--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}.vertex-v3 #app[data-section="you"] .community-search{
  height:42px!important;
  border-radius:10px!important;
}.vertex-v3 #app[data-section="you"] .community-search-state{
  padding:11px 2px 8px!important;
}.vertex-v3 #app[data-section="you"] .community-people-list{
  display:grid!important;
  gap:4px!important;
}/* Profile belongs to the same You child surface. */
.vertex-v3 #app[data-section="you"] .community-profile-view{
  max-width:none!important;
  padding:0 0 18px!important;
}.vertex-v3 #app[data-section="you"] .community-profile-hero{
  margin-top:2px!important;
  padding:12px 0!important;
  border-top:1px solid rgba(var(--g-ink-rgb),0.051)!important;
  border-bottom:1px solid rgba(var(--g-ink-rgb),0.051)!important;
  /* Flat divider row: drop the base card's side borders/radius, which otherwise touch the action buttons. */
  border-left:0!important;
  border-right:0!important;
  border-radius:0!important;
  background:transparent!important;}.vertex-v3 #app[data-section="you"] .community-profile-stats{
  margin:10px 0!important;
}.vertex-v3 #app[data-section="you"] .community-section-head{
  margin-top:14px!important;
}.vertex-v3 #app[data-section="you"] .community-profile-actions button,.vertex-v3 #app[data-section="you"] .community-friend-actions button{
  min-height:38px!important;
  border-radius:10px!important;
  font-size:9px!important;
}/* Settings/edit/password become nested You views,not global floating modals. */
.vertex-v3 #app[data-section="you"] .community-view .profile-editor-sheet{
  position:absolute!important;
  z-index:40!important;
  inset:0!important;
  width:auto!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:14px!important;
  overflow:auto!important;
  border:0!important;
  border-radius:inherit!important;
  background:var(--g-surface)!important;
  box-shadow:none!important;
  transform:none!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}.vertex-v3 #app[data-section="you"] .community-view .profile-editor-sheet .you-child-head{
  position:sticky!important;
  top:-14px!important;
  z-index:4!important;
  margin:-14px -14px 10px!important;
  padding:10px 14px 8px!important;
  background:linear-gradient(var(--g-surface) 84%,#e9eef200)!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}.vertex-v3 #app[data-section="you"] .settings-section{
  padding:12px 0!important;
  border-top:1px solid rgba(var(--g-ink-rgb),0.051)!important;
}.vertex-v3 #app[data-section="you"] .settings-section:first-of-type{
  border-top:0!important;
}.vertex-v3 #app[data-section="you"] .settings-section>small{
  font-size:7.5px!important;
  letter-spacing:.12em!important;
}.vertex-v3 #app[data-section="you"] .settings-section label{
  font-size:9px!important;
}.vertex-v3 #app[data-section="you"] .settings-plan,.vertex-v3 #app[data-section="you"] .settings-toggle{
  border-radius:10px!important;
}/* Saved mountains uses the same restrained list logic. */
.vertex-v3 #app[data-section="you"] .compare-intro{
  margin:0 0 10px!important;
}.vertex-v3 #app[data-section="you"] .compare-grid{
  gap:5px!important;
}.vertex-v3 #app[data-section="you"] .compare-card{
  min-height:64px!important;
  padding:9px!important;
  border-radius:10px!important;
}/* Mobile collapsed place title is one clean line; no favorite overlap. */
@media(max-width:759px){
  .vertex-v3 #app .place-card.collapsed .place-card-title{
    grid-template-columns:minmax(0,1fr) 36px!important;
    gap:6px!important;
  }
  .vertex-v3 #app .place-card.collapsed .place-card-title h1{
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    overflow-wrap:normal!important;
  }
  .vertex-v3 #app .place-card.collapsed .favorite-place{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    min-height:36px!important;
    font-size:16px!important;
  }
}/* Final visibility authority. */
.vertex-v3 #app [hidden]{
  display:none!important;
}/* =========================================================
   Vertex v11 — responsive component authority
   ========================================================= */

.vertex-v3 #app{
  --v11-mobile-pad:12px;
  --v11-panel-pad:14px;
  --v11-desktop-panel:420px;
  --v11-desktop-weather:520px;
  --v11-desktop-wide:560px;
  --v11-card-radius:11px;
  --v11-card-gap:7px;
}/* Shared content-card language. */
.vertex-v3 #app .activity-detail-stats,.vertex-v3 #app .route-detail-stats,.vertex-v3 #app .community-profile-stats,.vertex-v3 #app .activities-totals,.vertex-v3 #app .record-stats{
  gap:1px!important;
  border-radius:var(--v11-card-radius)!important;
  overflow:hidden!important;
}.vertex-v3 #app .activity-detail-stats>span,.vertex-v3 #app .route-detail-stats>span,.vertex-v3 #app .community-profile-stats>span,.vertex-v3 #app .activities-totals>span,.vertex-v3 #app .record-stats>span{
  min-width:0!important;
}.vertex-v3 #app .community-route-card,.vertex-v3 #app .community-library-card,.vertex-v3 #app .community-my-profile-card,.vertex-v3 #app .compare-card,.vertex-v3 #app .record-choice,.vertex-v3 #app .powder-card,.vertex-v3 #app .weather-hour-card{
  border-radius:var(--v11-card-radius)!important;
}/* Long copy can never force card geometry wider than its container. */
.vertex-v3 #app .community-route-card,.vertex-v3 #app .community-library-card,.vertex-v3 #app .community-my-profile-card,.vertex-v3 #app .compare-card,.vertex-v3 #app .record-choice,.vertex-v3 #app .powder-card,.vertex-v3 #app .weather-hour-card,.vertex-v3 #app .route-detail,.vertex-v3 #app .activity-detail{
  min-width:0!important;
}.vertex-v3 #app .community-route-card *,.vertex-v3 #app .community-library-card *,.vertex-v3 #app .community-my-profile-card *,.vertex-v3 #app .compare-card *,.vertex-v3 #app .record-choice *,.vertex-v3 #app .powder-card *{
  min-width:0;
}/* Lists use one restrained vertical rhythm. */
.vertex-v3 #app .activities-list,.vertex-v3 #app .community-list,.vertex-v3 #app .community-people-list,.vertex-v3 #app .tour-route-list,.vertex-v3 #app .powder-finder-list,.vertex-v3 #app .compare-grid{
  gap:var(--v11-card-gap)!important;
}/* Action families wrap instead of overflowing. */
.vertex-v3 #app .activity-actions,.vertex-v3 #app .route-detail-actions,.vertex-v3 #app .record-actions,.vertex-v3 #app .route-planner-actions,.vertex-v3 #app .community-profile-actions,.vertex-v3 #app .community-friend-actions{
  max-width:100%!important;
}.vertex-v3 #app .activity-actions button,.vertex-v3 #app .route-detail-actions button,.vertex-v3 #app .record-actions button,.vertex-v3 #app .route-planner-actions button,.vertex-v3 #app .community-profile-actions button,.vertex-v3 #app .community-friend-actions button{
  min-width:0!important;
}/* Weather cards: content first,never fixed text columns that collide. */
.vertex-v3 #app .weather-now-main,.vertex-v3 #app .weather-overview,.vertex-v3 #app .weather-hour-card,.vertex-v3 #app .weather-days article{
  min-width:0!important;
}.vertex-v3 #app .weather-days article>*,.vertex-v3 #app .weather-hour-card>*{
  min-width:0!important;
}.vertex-v3 #app .weather-days article b,.vertex-v3 #app .weather-days article small,.vertex-v3 #app .weather-hour-card strong,.vertex-v3 #app .weather-hour-card span{
  overflow-wrap:anywhere!important;
}/* ---------- Mobile ---------- */
@media(max-width:759px){
  .vertex-v3 #app{
    --v11-card-gap:6px;
  }

  /* Destination views are true mobile screens. */
  .vertex-v3 #app .explore-sheet,
  .vertex-v3 #app .you-sheet,
  .vertex-v3 #app .activities-sheet,
  .vertex-v3 #app .activity-detail,
  .vertex-v3 #app .route-detail,
  .vertex-v3 #app .compare-sheet,
  .vertex-v3 #app .community-view,
  .vertex-v3 #app .weather-view,
  .vertex-v3 #app .powder-finder-sheet,
  .vertex-v3 #app .profile-editor-sheet,
  .vertex-v3 #app .community-safety-sheet{
    width:auto!important;
    max-width:none!important;
    border-radius:0!important;
    box-shadow:none!important;
  }

  .vertex-v3 #app .explore-sheet,
  .vertex-v3 #app .you-sheet,
  .vertex-v3 #app .activities-sheet,
  .vertex-v3 #app .activity-detail,
  .vertex-v3 #app .route-detail,
  .vertex-v3 #app .compare-sheet,
  .vertex-v3 #app .community-view,
  .vertex-v3 #app .weather-view{
    padding-left:var(--v11-mobile-pad)!important;
    padding-right:var(--v11-mobile-pad)!important;
  }

  /* Tool surfaces remain compact sheets rather than accidental full screens. */
  .vertex-v3 #app .panel,
  .vertex-v3 #app .record-sheet,
  .vertex-v3 #app .avalanche-sheet{
    left:7px!important;
    right:7px!important;
    width:auto!important;
    max-width:none!important;
    padding:12px!important;
    border-radius:14px!important;
  }

  /* Place card: compact and readable, never a desktop card squeezed narrow. */
  .vertex-v3 #app .place-card{
    left:9px!important;
    right:9px!important;
    width:auto!important;
    max-width:none!important;
    padding:5px 11px 9px!important;
  }
  .vertex-v3 #app .place-card-title h1{
    font-size:16px!important;
  }
  .vertex-v3 #app .resort-status span{
    padding-left:6px!important;
    padding-right:6px!important;
  }
  .vertex-v3 #app .resort-status b{
    font-size:10px!important;
  }
  .vertex-v3 #app .resort-status small{
    font-size:7px!important;
  }

  /* Weather: stack metrics/cards for thumb-width readability. */
  .vertex-v3 #app .weather-overview{
    padding:13px!important;
    border-radius:14px!important;
  }
  .vertex-v3 #app .weather-now-main{
    gap:9px!important;
  }
  .vertex-v3 #app .weather-now-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:1px!important;
  }
  .vertex-v3 #app .weather-levels{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:5px!important;
  }
  .vertex-v3 #app .weather-hours{
    grid-auto-columns:minmax(108px,34vw)!important;
  }
  .vertex-v3 #app .weather-days article{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:5px 8px!important;
  }
  .vertex-v3 #app .weather-days article>em,
  .vertex-v3 #app .weather-days article>span,
  .vertex-v3 #app .weather-days article>small{
    grid-column:1/-1!important;
  }

  /* Weather Map controls fit narrow screens without layering over each other. */
  
  
  .vertex-v3 #app .weather-map-status{
    top:174px!important;
  }

  /* Powder: map + ranking flow vertically. */
  .vertex-v3 #app .powder-finder-sheet{
    padding:12px!important;
  }
  .vertex-v3 #app .powder-map-card{
    padding:9px!important;
    border-radius:14px!important;
  }
  .vertex-v3 #app .powder-map-tabs{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  .vertex-v3 #app .powder-finder-row{
    grid-template-columns:28px minmax(0,1fr) auto!important;
    gap:7px!important;
    padding:9px 2px!important;
  }
  .vertex-v3 #app .powder-finder-row .powder-meta{
    grid-column:2/-1!important;
    justify-self:start!important;
  }

  /* Route/activity details use stacked actions on narrow screens. */
  .vertex-v3 #app .route-detail-actions{
    grid-template-columns:minmax(0,1fr) auto!important;
  }
  .vertex-v3 #app .route-detail-actions .route-primary,
  .vertex-v3 #app .route-detail-actions .route-community-save:not([hidden]),
  .vertex-v3 #app .route-detail-actions .route-publish-action:not([hidden]){
    grid-column:1/-1!important;
  }
  .vertex-v3 #app .activity-actions{
    grid-template-columns:minmax(0,1fr) auto auto!important;
  }
  .vertex-v3 #app .activity-actions #saveActivityRoute{
    grid-column:1/-1!important;
  }

  /* Recording: chooser becomes one column on genuinely narrow phones. */
  .vertex-v3 #app .record-chooser{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  /* Stats cannot become four unreadably thin columns. */
  .vertex-v3 #app .activity-detail-stats,
  .vertex-v3 #app .route-detail-stats,
  .vertex-v3 #app .activities-totals{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  /* Settings controls get full mobile width. */
  .vertex-v3 #app[data-section="you"] .settings-section label,
  .vertex-v3 #app[data-section="you"] .settings-plan,
  .vertex-v3 #app[data-section="you"] .settings-toggle{
    width:100%!important;
  }

  /* Search/results remain edge-safe. */
  .vertex-v3 #app .search-results{
    max-height:min(52dvh,420px)!important;
    overflow:auto!important;
  }
}

@media(max-width:430px){.vertex-v3 #app .record-chooser{
    grid-template-columns:1fr!important;
  }.vertex-v3 #app .weather-levels{
    grid-template-columns:1fr!important;
  }.vertex-v3 #app .weather-levels button,.vertex-v3 #app .weather-levels>div{
    min-height:44px!important;
  }.vertex-v3 #app .powder-finder-row{
    grid-template-columns:24px minmax(0,1fr)!important;
  }.vertex-v3 #app .powder-finder-row .powder-snow,.vertex-v3 #app .powder-finder-row .powder-meta{
    grid-column:2!important;
    justify-self:start!important;
  }
}/* ---------- Tablet / compact desktop ---------- */
@media(min-width:760px) and (max-width:1023px){
  .vertex-v3 #app{
    --v11-desktop-panel:360px;
    --v11-desktop-weather:430px;
    --v11-desktop-wide:500px;
  }

  .vertex-v3 #app .explore-sheet,
  .vertex-v3 #app .you-sheet,
  .vertex-v3 #app .activities-sheet,
  .vertex-v3 #app .activity-detail,
  .vertex-v3 #app .route-detail,
  .vertex-v3 #app .compare-sheet,
  .vertex-v3 #app .community-view{
    width:var(--v11-desktop-panel)!important;
    max-width:calc(100vw - var(--v4-rail-w) - 24px)!important;
    padding:13px!important;
  }
  .vertex-v3 #app .weather-view{
    width:var(--v11-desktop-weather)!important;
    max-width:calc(100vw - var(--v4-rail-w) - 24px)!important;
    padding:13px!important;
  }
  .vertex-v3 #app .powder-finder-sheet{
    width:var(--v11-desktop-wide)!important;
    max-width:calc(100vw - var(--v4-rail-w) - 24px)!important;
  }

  .vertex-v3 #app .panel,
  .vertex-v3 #app .record-sheet,
  .vertex-v3 #app .avalanche-sheet{
    width:360px!important;
    max-width:calc(100vw - var(--v4-rail-w) - 24px)!important;
  }

  .vertex-v3 #app .place-card{
    width:min(360px,calc(100vw - var(--v4-rail-w) - 32px))!important;
  }

  .vertex-v3 #app .weather-now-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .vertex-v3 #app .community-people-discover{
    grid-template-columns:1fr!important;
  }
}/* ---------- Desktop ---------- */
@media(min-width:1024px){
  .vertex-v3 #app .explore-sheet,
  .vertex-v3 #app .you-sheet,
  .vertex-v3 #app .activities-sheet,
  .vertex-v3 #app .activity-detail,
  .vertex-v3 #app .route-detail,
  .vertex-v3 #app .compare-sheet,
  .vertex-v3 #app .community-view{
    width:var(--v11-desktop-panel)!important;
    max-width:var(--v11-desktop-panel)!important;
    padding:14px!important;
  }

  .vertex-v3 #app .weather-view{
    width:var(--v11-desktop-weather)!important;
    max-width:var(--v11-desktop-weather)!important;
    padding:14px!important;
  }

  .vertex-v3 #app .powder-finder-sheet{
    width:var(--v11-desktop-wide)!important;
    max-width:min(var(--v11-desktop-wide),calc(100vw - var(--v4-rail-w) - 32px))!important;
    padding:14px!important;
  }

  .vertex-v3 #app .panel,
  .vertex-v3 #app .record-sheet,
  .vertex-v3 #app .avalanche-sheet{
    width:390px!important;
    max-width:390px!important;
    padding:14px!important;
  }

  /* Map summary stays compact on desktop instead of becoming a mini dashboard. */
  .vertex-v3 #app .place-card{
    width:360px!important;
    max-width:360px!important;
  }

  /* Desktop can use richer card columns where they actually help. */
  .vertex-v3 #app .activity-detail-stats,
  .vertex-v3 #app .route-detail-stats,
  .vertex-v3 #app .activities-totals{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }

  .vertex-v3 #app .weather-now-metrics{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }

  .vertex-v3 #app .weather-levels{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }

  /* Full Community destination may use two columns; You-context remains one column from v10. */
  .vertex-v3 #app[data-section="routes"] .community-people-discover{
    grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr)!important;
  }

  .vertex-v3 #app .compare-card{
    grid-template-columns:minmax(0,1.35fr) .48fr .68fr .58fr .58fr!important;
  }

  .vertex-v3 #app .powder-raster-map{
    height:230px!important;
    min-height:230px!important;
  }
}/* Large desktop remains intentionally bounded. */
@media(min-width:1440px){
  .vertex-v3 #app{
    --v11-desktop-panel:430px;
    --v11-desktop-weather:540px;
    --v11-desktop-wide:580px;
  }
}/* Final responsive visibility authority. */
.vertex-v3 #app [hidden]{
  display:none!important;
}/* v11 — auth and nested dialog responsive authority */
.vertex-v3 .auth-gate-shell,.vertex-v3 .auth-gate-card{
  box-sizing:border-box!important;
  max-width:100%!important;
}.vertex-v3 .auth-gate-card{
  overflow:hidden!important;
}.vertex-v3 .auth-gate-card input,.vertex-v3 .auth-gate-card button{
  max-width:100%!important;
  box-sizing:border-box!important;
}
@media(max-width:759px){.vertex-v3 .auth-gate{
    padding:
      max(18px,env(safe-area-inset-top))
      14px
      max(18px,env(safe-area-inset-bottom))!important;
  }.vertex-v3 .auth-gate-shell{
    width:min(100%,320px)!important;
    gap:13px!important;
  }.vertex-v3 .auth-gate-brand img{
    width:min(58vw,194px)!important;
  }.vertex-v3 .auth-gate-card{
    width:100%!important;
    padding:12px!important;
    border-radius:14px!important;
  }
}
@media(min-width:760px){.vertex-v3 .auth-gate-shell{
    width:332px!important;
  }.vertex-v3 .auth-gate-card{
    width:312px!important;
    margin-inline:auto!important;
  }
}/* Route-detail subdialogs are children of Route Detail,never viewport-sized cards. */
.vertex-v3 #app .route-detail .publish-route-sheet{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}.vertex-v3 #app .route-detail .route-detail-menu,.vertex-v3 #app .activity-detail .activity-more-menu{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
@media(max-width:759px){.vertex-v3 #app .route-detail .publish-route-sheet{
    padding:12px!important;
    border-radius:14px!important;
  }.vertex-v3 #app .route-detail .route-detail-menu{
    grid-template-columns:1fr!important;
  }.vertex-v3 #app .activity-detail .activity-more-menu button{
    min-height:40px!important;
  }
}
@media(min-width:760px){.vertex-v3 #app .route-detail .publish-route-sheet{
    padding:13px!important;
    border-radius:14px!important;
  }
}/* Standalone safety dialog follows destination workspace geometry. */
@media(min-width:760px) and (max-width:1023px){
  .vertex-v3 #app .community-safety-sheet{
    width:360px!important;
    max-width:calc(100vw - var(--v4-rail-w) - 24px)!important;
  }
}
@media(min-width:1024px){.vertex-v3 #app .community-safety-sheet{
    width:410px!important;
    max-width:410px!important;
  }
}/* Form controls always respect parent width. */
.vertex-v3 #app input:not([type="range"]),.vertex-v3 #app select,.vertex-v3 #app textarea{
  max-width:100%!important;
  box-sizing:border-box!important;
}/* Final final visibility authority after auth/dialog pass. */
.vertex-v3 #app [hidden]{
  display:none!important;
}


/* =========================================================
   Mobile Routes product model
   Mobile route selection is map-first: library -> map preview + bottom sheet.
   Desktop keeps the established side-panel composition.
   ========================================================= */
@media(max-width:759px){
  .vertex-v3 #app[data-section="routes"] .routes-sheet{
    padding-top:max(12px,env(safe-area-inset-top))!important;
  }

  .vertex-v3 #app[data-section="routes"] .routes-sheet .activities-head{
    margin-bottom:4px!important;
  }

  

  .vertex-v3 #app[data-section="routes"] .routes-library-toolbar{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:6px!important;
    margin-bottom:8px!important;
  }

  .vertex-v3 #app[data-section="routes"] #routesList{
    gap:0!important;
    margin-top:3px!important;
  }

  .vertex-v3 #app[data-section="routes"] #routesList .route-row{
    min-height:76px!important;
    padding:10px 2px!important;
    border:0!important;
    border-bottom:1px solid rgba(var(--g-ink-rgb),0.063)!important;
    border-radius:0!important;
    background:transparent!important;
  --g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}

  .vertex-v3 #app[data-section="routes"] #routesList .route-main{
    min-height:54px!important;
    align-items:center!important;
    gap:9px!important;
  }

  .vertex-v3 #app[data-section="routes"] #routesList .route-kind{
    flex:0 0 38px!important;
    width:38px!important;
    height:38px!important;
    display:grid!important;
    place-items:center!important;
    border-radius:14px!important;
    background:rgba(var(--g-ink-rgb),0.043)!important;
    font-size:18px!important;
  }

  .vertex-v3 #app[data-section="routes"] #routesList .activity-copy{
    gap:2px!important;
  }

  .vertex-v3 #app[data-section="routes"] #routesList .activity-copy b{
    font-size:14px!important;
    line-height:1.2!important;
  }

  .vertex-v3 #app[data-section="routes"] #routesList .activity-copy em{
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  /* Opening the row itself is the map action on mobile. */
  .vertex-v3 #app[data-section="routes"] #routesList .route-map-toggle{
    display:none!important;
  }

  .vertex-v3 #app[data-section="routes"] #routesList .route-more{
    width:38px!important;
    height:38px!important;
    margin-left:5px!important;
  }

  .vertex-v3 #app .route-detail.mobile-map-preview{
    position:fixed!important;
    /* Cover the anchored map controls wherever the tour sheet overlaps them. */
    z-index:45!important;
    top:auto!important;
    left:8px!important;
    right:8px!important;
    bottom:calc(var(--v3-content-bottom) + 8px)!important;
    width:auto!important;
    max-width:none!important;
    height:auto!important;
    max-height:min(46dvh,430px)!important;
    padding:11px 12px 12px!important;
    overflow:auto!important;
    border:1px solid rgba(var(--g-ink-rgb),0.110)!important;
    border-radius:22px!important;
    background:rgba(var(--g-surface-rgb),0.949)!important;
    box-shadow:0 -12px 38px rgba(var(--g-shadow-rgb),0.239)!important;
    backdrop-filter:blur(22px)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}

  .vertex-v3 #app .route-detail.mobile-map-preview .route-detail-head{
    position:sticky!important;
    top:-11px!important;
    z-index:4!important;
    margin:-11px -12px 4px!important;
    padding:11px 12px 7px!important;
    background:linear-gradient(var(--g-surface) 78%,#e7edf100)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}

  .vertex-v3 #app .route-detail.mobile-map-preview .route-detail-head h2{
    margin-bottom:1px!important;
    font-size:18px!important;
  }

  .vertex-v3 #app .route-detail.mobile-map-preview .route-detail-stats{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    margin-bottom:8px!important;
  }

  .vertex-v3 #app .route-detail.mobile-map-preview .route-detail-stats span{
    padding:8px!important;
  }

  .vertex-v3 #app .route-detail.mobile-map-preview .route-detail-stats span:nth-child(4),
  .vertex-v3 #app .route-detail.mobile-map-preview .route-detail-stats span:nth-child(5){
    display:none!important;
  }

  .vertex-v3 #app .route-detail.mobile-map-preview .route-elevation-profile{
    height:96px!important;
  }

  .vertex-v3 #app .route-detail.mobile-map-preview .route-profile-head{
    margin-top:6px!important;
  }

  .vertex-v3 #app .route-detail.mobile-map-preview .route-detail-actions{
    grid-template-columns:minmax(0,1fr) 44px!important;
    gap:6px!important;
    margin-top:8px!important;
  }

  .vertex-v3 #app .route-detail.mobile-map-preview #routeDetailMap{
    display:none!important;
  }

  .vertex-v3 #app .route-detail.mobile-map-preview #routeDetailReplay{
    min-height:42px!important;
  }

  .vertex-v3 #app .route-detail.mobile-map-preview #routeDetailMore{
    width:44px!important;
    min-width:44px!important;
  }

  .vertex-v3 #app .route-detail.mobile-map-preview .route-community-info{
    margin-top:8px!important;
  }

  /* The selected route chip is redundant while its preview sheet is open. */
  .vertex-v3 #app[data-h21]:not(._h):not(._h) .map-route-chip{
    display:none!important;
  }

  /* Keep map chrome quiet while a route preview owns the mobile map. */
  .vertex-v3 #app[data-h21]:not(._h):not(._h) .place-card,
  .vertex-v3 #app[data-h21]:not(._h):not(._h) .topbar{
    display:none!important;
  }
}

/* Mobile Routes refinements: planner, discover and post-create continuity. */
@media(max-width:759px){
  .vertex-v3 #app[data-section="routes"] .community-view{
    padding-top:max(10px,env(safe-area-inset-top))!important;
  }

  .vertex-v3 #app[data-section="routes"] .community-discover{
    margin-bottom:12px!important;
  }

  .vertex-v3 #app[data-section="routes"] .community-section-head{
    margin-bottom:8px!important;
  }

  .vertex-v3 #app[data-section="routes"] .community-route-card-wrap{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:7px!important;
    padding:2px 0!important;
    border-bottom:1px solid rgba(var(--g-ink-rgb),0.063)!important;
  }

  .vertex-v3 #app[data-section="routes"] .community-route-card{
    min-width:0!important;
    padding:11px 2px!important;
    border:0!important;
    background:transparent!important;
  --g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}

  .vertex-v3 #app[data-section="routes"] .community-route-save-inline{
    min-width:74px!important;
    min-height:38px!important;
    padding:0 9px!important;
    border-radius:10px!important;
    white-space:nowrap!important;
  }

  .vertex-v3 #app[data-section="routes"] .community-route-top{
    gap:6px!important;
  }

  .vertex-v3 #app[data-section="routes"] .community-route-meta{
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  .vertex-v3 #app .route-planner{
    padding:10px!important;
  }

  .vertex-v3 #app .route-planner-copy{
    margin-bottom:8px!important;
  }

  .vertex-v3 #app .route-planner-copy b{
    font-size:13px!important;
  }

  .vertex-v3 #app .route-planner-actions{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
  }

  .vertex-v3 #app .route-planner-actions button{
    min-width:0!important;
    min-height:42px!important;
    padding:7px 6px!important;
    font-size:10px!important;
  }

  .vertex-v3 #app .route-planner-actions #savePlannedRoute{
    grid-column:1/-1!important;
    order:-1!important;
    min-height:46px!important;
    font-size:11px!important;
  }

  .vertex-v3 #app[data-h18]:not(._h) .map-tools{
    display:none!important;
  }
}

/* Mobile route library thumbnails use the actual route geometry. */
.route-thumb{display:none}
@media(max-width:759px){
  .vertex-v3 #app[data-section="routes"] #routesList .route-kind{
    display:none!important;
  }
  .vertex-v3 #app[data-section="routes"] #routesList .route-thumb{
    display:block!important;
    flex:0 0 56px!important;
    width:56px!important;
    height:46px!important;
    border:1px solid rgba(var(--g-ink-rgb),0.063)!important;
    border-radius:14px!important;
    background:rgba(var(--g-ink-rgb),0.024)!important;
  }
}

/* =========================================================
   Mobile Explore / Map product model
   Keep the map dominant. The collapsed mountain dock is a glance surface;
   expansion is the deliberate path to weather and conditions.
   ========================================================= */
@media(max-width:759px){
  .vertex-v3 #app[data-section="explore"] .place-card{
    bottom:calc(var(--v3-content-bottom) + 6px)!important;
  }

  .vertex-v3 #app[data-section="explore"] .place-card.collapsed{
    max-height:82px!important;
    padding:3px 10px 7px!important;
    overflow:hidden!important;
  }

  .vertex-v3 #app[data-section="explore"] .place-card.collapsed .place-card-handle{
    height:11px!important;
    min-height:11px!important;
    margin:0!important;
  }

  .vertex-v3 #app[data-section="explore"] .place-card.collapsed .place-card-handle span{
    width:28px!important;
    margin:4px auto!important;
  }

  .vertex-v3 #app[data-section="explore"] .place-card.collapsed .place-card-content{
    max-height:65px!important;
  }

  .vertex-v3 #app[data-section="explore"] .place-card.collapsed .place-card-title{
    min-height:31px!important;
    margin:0!important;
    grid-template-columns:minmax(0,1fr) 32px!important;
    gap:5px!important;
  }

  .vertex-v3 #app[data-section="explore"] .place-card.collapsed .place-card-title h1{
    font-size:15px!important;
    line-height:1.1!important;
  }

  .vertex-v3 #app[data-section="explore"] .place-card.collapsed .favorite-place{
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    min-height:32px!important;
    border-radius:10px!important;
    font-size:15px!important;
  }

  .vertex-v3 #app[data-section="explore"] .place-card.collapsed .resort-status{
    min-height:24px!important;
    padding:4px 0 1px!important;
  }

  .vertex-v3 #app[data-section="explore"] .place-card.collapsed .resort-status span{
    padding:0 5px!important;
  }

  .vertex-v3 #app[data-section="explore"] .place-card.collapsed .resort-status b{
    font-size:9.5px!important;
  }

  .vertex-v3 #app[data-section="explore"] .place-card.collapsed .resort-status small{
    margin-top:0!important;
    font-size:7.5px!important;
  }

  .vertex-v3 #app[data-section="explore"] .place-card:not(.collapsed){
    max-height:min(48dvh,390px)!important;
    padding-bottom:10px!important;
  }

  .vertex-v3 #app[data-section="explore"] .map-tools{
    top:calc(var(--v3-mobile-top) + 60px)!important;
    right:9px!important;
  }

  .vertex-v3 #app[data-section="explore"] .map-tools .tool{
    width:40px!important;
    height:40px!important;
    border-radius:14px!important;
  }

  /* Layer legends sit immediately above the mountain dock and never under it. */
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"]) .slope-legend,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"]) .aspect-legend,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"]) .sun-panel{
    bottom:calc(var(--v3-content-bottom) + var(--place-card-current-h,82px) + 12px)!important;
  }

  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h22]:not(._h) .place-card,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h23]:not(._h) .place-card,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h24]:not(._h) .place-card{
    z-index:8!important;
  }

  /* Opening Layers is a focused map task, so the mountain dock leaves the stage. */
  .vertex-v3 #app[data-section="explore"][data-h25]:not(#_h) .place-card{
    display:none!important;
  }
}

/* =========================================================
   Mobile Weather product model
   Forecast is a scrollable content screen; elevation is a horizontal selector.
   Weather Map is a dedicated full-map state with its own return controls.
   ========================================================= */
@media(max-width:759px){
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-view{
    padding-top:0!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-head{
    position:sticky!important;
    top:0!important;
    z-index:8!important;
    margin:0 calc(var(--v11-mobile-pad) * -1)!important;
    padding:max(10px,env(safe-area-inset-top)) var(--v11-mobile-pad) 7px!important;
    background:linear-gradient(var(--g-surface) 82%,#e9eef200)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-head h1{
    max-width:calc(100vw - 120px)!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-view>.weather-tabs{
    position:sticky!important;
    top:62px!important;
    z-index:7!important;
    margin:0 0 9px!important;
    background:rgba(var(--g-surface-rgb),0.949)!important;
    backdrop-filter:blur(18px)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-overview{
    margin-top:4px!important;
    padding:11px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-now-metrics{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-now-metrics span{
    min-width:0!important;
    padding:8px 5px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-now-metrics b{
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-levels{
    display:grid!important;
    grid-auto-flow:column!important;
    grid-auto-columns:minmax(218px,72vw)!important;
    grid-template-columns:none!important;
    gap:7px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
    overscroll-behavior-inline:contain!important;
    scrollbar-width:none!important;
    padding:1px var(--v11-mobile-pad) 5px 0!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-levels::-webkit-scrollbar{
    display:none!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card{
    scroll-snap-align:start!important;
    min-height:112px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-hours{
    grid-auto-columns:minmax(104px,30vw)!important;
    scroll-snap-type:x proximity!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-hour-card{
    scroll-snap-align:start!important;
  }

  .vertex-v3 #app[data-explore-view="weather-map"] .weather-view{
    padding:0!important;
  }

  .vertex-v3 #app[data-explore-view="weather-map"] .weather-map-view{
    inset:0!important;
  }

  

  /* .map-active matches the older map-active rules so the head clears the back/close row. */
  

  

  .vertex-v3 #app[data-explore-view="weather-map"] .weather-map-status{
    top:calc(max(10px,env(safe-area-inset-top)) + 164px)!important;
  }
}

/* =========================================================
   Mobile Record product model
   Recording is map-first. Ordinary Explore chrome yields to live session controls.
   ========================================================= */
@media(max-width:759px){
  .vertex-v3 #app[data-section="record"] .record-sheet{
    max-height:min(62dvh,560px)!important;
    padding:12px!important;
  }

  .vertex-v3 #app[data-section="record"] .record-head h2{
    margin-bottom:10px!important;
    font-size:18px!important;
  }

  .vertex-v3 #app[data-section="record"] .record-chooser{
    gap:7px!important;
  }

  .vertex-v3 #app[data-section="record"] .record-choice{
    min-height:104px!important;
    padding:12px!important;
  }

  .vertex-v3 #app[data-section="record"] .record-choice>b{
    font-size:13px!important;
  }

  .vertex-v3 #app[data-section="record"] .tour-route-picker{
    max-height:min(34dvh,280px)!important;
    overflow:auto!important;
  }

  .vertex-v3 #app[data-section="record"] .tour-route-option{
    min-height:48px!important;
  }

  .vertex-v3 #app[data-section="record"] .record-stats{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .vertex-v3 #app[data-section="record"] .record-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
  }

  .vertex-v3 #app[data-section="record"] .record-actions #startRecord:not([hidden]){
    grid-column:1/-1!important;
  }

  .vertex-v3 #app[data-h20]:not(._h) .place-card,
  .vertex-v3 #app[data-h20]:not(._h) .map-tools{
    display:none!important;
  }

  /* Layers stay usable while recording (slope, aspect, avalanche on the mountain); only search steps aside. */
  .vertex-v3 #app[data-h20]:not(._h) .topbar .search-wrap{
    visibility:hidden!important;
    pointer-events:none!important;
  }

  .vertex-v3 #app .active-session{
    left:7px!important;
    right:7px!important;
    bottom:calc(var(--v3-content-bottom) + 7px)!important;
    padding:8px 10px 10px!important;
    border-radius:14px!important;
  }

  .vertex-v3 #app .active-session-main strong{
    font-size:21px!important;
  }

  .vertex-v3 #app .active-map-controls{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }

  .vertex-v3 #app .active-map-controls button{
    min-height:40px!important;
  }

  /* Opening the live controls replaces the compact live strip instead of stacking it. */
  .vertex-v3 #app[data-h26]:not(#_h) .active-session{
    display:none!important;
  }
}

/* =========================================================
   Mobile You product model
   One navigation hierarchy across Ski Log, People, Saved, Profile and Settings.
   ========================================================= */
@media(max-width:759px){
  .vertex-v3 #app[data-section="you"] .you-sheet,
  .vertex-v3 #app[data-section="you"] .activities-sheet,
  .vertex-v3 #app[data-section="you"] .activity-detail,
  .vertex-v3 #app[data-section="you"] .compare-sheet,
  .vertex-v3 #app[data-section="you"] .community-view{
    padding-top:max(10px,env(safe-area-inset-top))!important;
  }

  .vertex-v3 #app[data-section="you"] .you-child-head,
  .vertex-v3 #app[data-section="you"] .activity-detail-head,
  .vertex-v3 #app[data-section="you"] .people-context-nav{
    position:sticky!important;
    top:calc(max(10px,env(safe-area-inset-top)) * -1)!important;
    z-index:8!important;
    margin-left:calc(var(--v11-mobile-pad) * -1)!important;
    margin-right:calc(var(--v11-mobile-pad) * -1)!important;
    padding:10px var(--v11-mobile-pad) 8px!important;
    background:linear-gradient(var(--g-surface) 84%,#e9eef200)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}

  .vertex-v3 #app[data-section="you"] .activities-list{
    gap:0!important;
  }

  .vertex-v3 #app[data-section="you"] .activities-list .activity-row{
    min-height:70px!important;
    padding:9px 2px!important;
    border:0!important;
    border-bottom:1px solid rgba(var(--g-ink-rgb),0.051)!important;
    border-radius:0!important;
    background:transparent!important;
  --g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}

  .vertex-v3 #app[data-section="you"] .compare-grid{
    gap:7px!important;
  }

  .vertex-v3 #app[data-section="you"] .compare-card{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px!important;
    padding:11px!important;
  }

  .vertex-v3 #app[data-section="you"] .compare-card>div{
    grid-column:1/-1!important;
  }

  .vertex-v3 #app[data-section="you"] .compare-card>strong,
  .vertex-v3 #app[data-section="you"] .compare-card>span{
    display:grid!important;
    min-width:0!important;
  }

  .vertex-v3 #app[data-section="you"] .compare-card>strong{
    align-content:start!important;
    font-size:17px!important;
  }

  .vertex-v3 #app[data-section="you"] .compare-card>span b,
  .vertex-v3 #app[data-section="you"] .compare-card>span small{
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  .vertex-v3 #app[data-section="you"] .community-view .profile-editor-sheet{
    padding-top:max(10px,env(safe-area-inset-top))!important;
  }
}

/* =========================================================
   Mobile Powder product model
   Map first, ranking second. Keep the destination dense and scan-friendly.
   ========================================================= */
@media(max-width:759px){
  .vertex-v3 #app .powder-finder-sheet{
    inset:0 0 var(--v3-content-bottom) 0!important;
    width:auto!important;
    max-width:none!important;
    max-height:none!important;
    padding:max(10px,env(safe-area-inset-top)) var(--v11-mobile-pad) 14px!important;
    border:0!important;
    border-radius:0!important;
    overflow:auto!important;
  }

  .vertex-v3 #app .powder-finder-sheet>.publish-route-head{
    position:sticky!important;
    top:calc(max(10px,env(safe-area-inset-top)) * -1)!important;
    z-index:8!important;
    margin:calc(max(10px,env(safe-area-inset-top)) * -1) calc(var(--v11-mobile-pad) * -1) 8px!important;
    padding:max(10px,env(safe-area-inset-top)) var(--v11-mobile-pad) 8px!important;
    background:linear-gradient(var(--g-surface) 84%,#e9eef200)!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}

  .vertex-v3 #app .powder-finder-summary{
    margin-bottom:8px!important;
    padding:0 2px!important;
  }

  .vertex-v3 #app .powder-map-card{
    padding:8px!important;
    margin-bottom:8px!important;
    border-radius:14px!important;
  }

  .vertex-v3 #app .powder-raster-map{
    height:210px!important;
    min-height:210px!important;
    border-radius:10px!important;
    overflow:hidden!important;
  }

  .vertex-v3 #app .powder-map-scale{
    overflow-x:auto!important;
    scrollbar-width:none!important;
  }

  .vertex-v3 #app .powder-map-scale::-webkit-scrollbar{
    display:none!important;
  }

  .vertex-v3 #app .powder-finder-list{
    gap:0!important;
  }

  .vertex-v3 #app .powder-finder-row{
    min-height:64px!important;
    padding:9px 2px!important;
    border:0!important;
    border-bottom:1px solid rgba(var(--g-ink-rgb),0.051)!important;
    border-radius:0!important;
    background:transparent!important;
  --g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}

  .vertex-v3 #app .powder-finder-row .powder-rank{
    align-self:start!important;
    margin-top:2px!important;
  }

  .vertex-v3 #app .powder-finder-note{
    padding:10px 2px 2px!important;
  }
}

/* =========================================================
   Mobile corrections — legends, Weather and mountain actions
   ========================================================= */
@media(max-width:759px){
  /* Terrain legends belong at the bottom of the map, directly above primary nav. */
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"]) .slope-legend,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"]) .aspect-legend{
    position:fixed!important;
    top:auto!important;
    left:9px!important;
    right:9px!important;
    bottom:calc(var(--v3-content-bottom) + 7px)!important;
    max-width:none!important;
    min-height:34px!important;
    padding:6px 8px!important;
    justify-content:center!important;
    gap:5px!important;
    border-radius:10px!important;
    z-index:31!important;
  }

  .vertex-v3 #app:is([data-section="explore"],[data-section="record"]) .slope-legend .legend-title,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"]) .aspect-legend .legend-title{
    display:none!important;
  }

  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h22]:not(._h) .place-card,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h23]:not(._h) .place-card{
    bottom:calc(var(--v3-content-bottom) + 49px)!important;
  }

  .vertex-v3 #app:is([data-section="explore"],[data-section="record"]) .sun-panel{
    position:fixed!important;
    top:auto!important;
    left:9px!important;
    right:9px!important;
    bottom:calc(var(--v3-content-bottom) + 7px)!important;
    width:auto!important;
    transform:none!important;
    z-index:31!important;
  }

  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h24]:not(._h) .place-card{
    bottom:calc(var(--v3-content-bottom) + 76px)!important;
  }

  /* Sun & shadows can be on together with Slope or Aspect: stack the time slider above the legend. */
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h22]:not(._h) .sun-panel,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h23]:not(._h) .sun-panel{
    bottom:calc(var(--v3-content-bottom) + 49px)!important;
  }

  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h24]:not(._h)[data-h22]:not(._h) .place-card,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h24]:not(._h)[data-h23]:not(._h) .place-card{
    bottom:calc(var(--v3-content-bottom) + 118px)!important;
  }

  /* Older generic span rules treated the text wrapper as an icon. */
  .vertex-v3 #app .mountain-primary-actions button{
    grid-template-columns:28px minmax(0,1fr) 18px!important;
    grid-template-areas:"icon copy arrow"!important;
  }

  .vertex-v3 #app .mountain-primary-actions button>span:first-child{
    grid-area:icon!important;
    width:28px!important;
    height:28px!important;
    min-width:28px!important;
    display:grid!important;
    place-items:center!important;
    margin:0!important;
  }

  .vertex-v3 #app .mountain-primary-actions button>span:nth-child(2){
    grid-area:copy!important;
    width:auto!important;
    height:auto!important;
    min-width:0!important;
    display:grid!important;
    place-items:initial!important;
    align-content:center!important;
    gap:2px!important;
    margin:0!important;
    background:transparent!important;
    border-radius:0!important;
    font-size:inherit!important;
  --g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}

  .vertex-v3 #app .mountain-primary-actions button>span:nth-child(2)>b,
  .vertex-v3 #app .mountain-primary-actions button>span:nth-child(2)>small{
    display:block!important;
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .vertex-v3 #app .mountain-primary-actions button>i{
    grid-area:arrow!important;
  }

  /* Weather is a true phone layout, not the desktop composition squeezed narrow. */
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-view{
    inset:0 0 var(--v3-content-bottom) 0!important;
    width:auto!important;
    max-width:none!important;
    padding:0 12px 18px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-head{
    display:grid!important;
    grid-template-columns:40px minmax(0,1fr) 40px!important;
    align-items:center!important;
    gap:8px!important;
    min-height:62px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-head h1{
    max-width:100%!important;
    font-size:19px!important;
    line-height:1.1!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-head p{
    margin:2px 0 0!important;
    font-size:8px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-view>.weather-tabs{
    top:62px!important;
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    padding:3px!important;
    border-radius:10px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-view>.weather-tabs button{
    width:100%!important;
    min-width:0!important;
    height:36px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-overview{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    margin:10px 0 12px!important;
    padding:13px!important;
    border-radius:14px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-now-main{
    grid-column:1!important;
    display:grid!important;
    grid-template-columns:46px minmax(0,1fr)!important;
    align-items:center!important;
    gap:10px!important;
    padding-bottom:11px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-condition-icon{
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-now-main strong{
    font-size:38px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-now-metrics{
    grid-column:1!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    border-top:1px solid rgba(var(--g-ink-rgb),0.063)!important;
    border-left:0!important;
    gap:0!important;
    padding-top:4px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-now-metrics span{
    padding:8px!important;
    border-right:0!important;
    border-bottom:1px solid rgba(var(--g-ink-rgb),0.047)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-now-metrics span:nth-last-child(-n+2){
    border-bottom:0!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-sun{
    grid-column:1!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:0!important;
    min-width:0!important;
    padding-top:7px!important;
    border-top:1px solid rgba(var(--g-ink-rgb),0.063)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-sun span{
    padding:6px 8px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-levels{
    display:grid!important;
    grid-auto-flow:column!important;
    grid-auto-columns:minmax(210px,76vw)!important;
    grid-template-columns:none!important;
    gap:7px!important;
    margin:0 0 14px!important;
    border:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card{
    display:block!important;
    min-height:118px!important;
    padding:12px!important;
    border:1px solid rgba(var(--g-ink-rgb),0.063)!important;
    border-radius:14px!important;
    background:rgba(var(--g-ink-rgb),0.020)!important;
    scroll-snap-align:start!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card>b{
    display:block!important;
    margin:5px 0 7px!important;
    font-size:26px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card div{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:4px 10px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card::after{
    left:10px!important;
    right:10px!important;
    top:auto!important;
    bottom:0!important;
    width:auto!important;
    height:2px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-section{
    margin-top:18px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-section-head h2{
    font-size:17px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-hours{
    width:calc(100% + 24px)!important;
    margin-left:-12px!important;
    padding-left:12px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-hour-card{
    flex:0 0 102px!important;
    min-height:120px!important;
    padding:12px 10px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-days-head{
    display:none!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-days article{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:none!important;
    gap:5px 8px!important;
    padding:11px 2px!important;
  }

  /* The legacy 3-column named areas would stack every cell on the same two rows. */
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-days article>div,
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-days article>strong{
    grid-area:auto!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-days article>em,
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-days article>span,
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-days article>small:last-child{
    grid-row:auto!important;
  }
}


/* Desktop Community route preview is a compact map card (as in styles.css), not a full-height empty panel. */
@media(min-width:760px){
  .vertex-v3 #app .route-detail.community-map-card{
    top:auto!important;
  }
  .vertex-v3 #app .route-detail.community-map-card .route-detail-stats{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

/* Desktop: the mountain dock is bottom-left too, so terrain legends and the Sun slider
   stack above it instead of sitting underneath it. */
@media(min-width:760px){
  .vertex-v3 #app[data-section="explore"] .slope-legend,
  .vertex-v3 #app[data-section="explore"] .aspect-legend{
    bottom:calc(var(--place-card-current-h,214px) + 28px)!important;
  }

  .vertex-v3 #app[data-section="explore"] .sun-panel{
    left:var(--v3-desktop-left)!important;
    transform:none!important;
    bottom:calc(var(--place-card-current-h,214px) + 28px)!important;
  }

  .vertex-v3 #app[data-section="explore"][data-h22]:not(._h) .sun-panel,
  .vertex-v3 #app[data-section="explore"][data-h23]:not(._h) .sun-panel{
    bottom:calc(var(--place-card-current-h,214px) + 67px)!important;
  }
}

/* =========================================================
   Mobile Weather visual refinement
   Preserve the mobile structure, but restore a calmer premium hierarchy.
   ========================================================= */
@media(max-width:759px){
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-head small{
    font-size:7px!important;
    letter-spacing:.11em!important;
    color:var(--g-muted)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-head h1{
    font-size:18px!important;
    font-weight:600!important;
    letter-spacing:-.025em!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-head p{
    color:var(--g-muted)!important;
    font-size:7.5px!important;
    font-weight:500!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-view>.weather-tabs{
    border:1px solid rgba(var(--g-ink-rgb),0.055)!important;
    background:rgba(var(--g-surface-rgb),0.949)!important;
    box-shadow:none!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-view>.weather-tabs button{
    font-size:9px!important;
    font-weight:600!important;
    color:var(--g-muted)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-view>.weather-tabs button.active{
    background:var(--g-accent)!important;
    color:var(--g-contrast)!important;
  --g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-overview{
    border:1px solid rgba(var(--g-ink-rgb),0.051)!important;
    background:linear-gradient(150deg,var(--g-surface) 0%,var(--g-surface) 66%,var(--g-surface) 100%)!important;
    box-shadow:none!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-now-main small{
    font-size:7px!important;
    letter-spacing:.1em!important;
    color:var(--g-muted)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-now-main b{
    margin-top:3px!important;
    font-size:13px!important;
    font-weight:600!important;
    color:var(--g-ink)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-now-main strong{
    margin-top:1px!important;
    font-size:41px!important;
    font-weight:500!important;
    letter-spacing:-.055em!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-condition-icon{
    color:var(--g-ink)!important;
    opacity:.9!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-now-metrics small,
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-sun small{
    font-size:7px!important;
    letter-spacing:.05em!important;
    text-transform:none!important;
    color:var(--g-muted)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-now-metrics b,
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-sun b{
    margin-top:3px!important;
    font-size:11.5px!important;
    font-weight:600!important;
    color:var(--g-ink)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card{
    border-color:rgba(var(--g-ink-rgb),0.043)!important;
    background:#ffffff025!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card.active{
    border-color:rgba(var(--g-ink-rgb),0.102)!important;
    background:#ffffff055!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card>small{
    font-size:7px!important;
    letter-spacing:.08em!important;
    color:var(--g-muted)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card>b{
    margin:4px 0 5px!important;
    font-size:24px!important;
    font-weight:600!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card div{
    gap:3px 9px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card div span{
    font-size:8.5px!important;
    color:var(--g-muted)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card div strong{
    font-weight:600!important;
    color:var(--g-ink)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .powder-card{
    margin:4px 0 20px!important;
    padding:11px 0!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .powder-card small{
    font-size:7px!important;
    letter-spacing:.1em!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .powder-card b{
    font-size:13px!important;
    font-weight:600!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .powder-card span{
    font-size:8.5px!important;
    line-height:1.35!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-section-head{
    margin-bottom:7px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-section-head small{
    font-size:7px!important;
    letter-spacing:.09em!important;
    color:var(--g-muted)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-section-head h2{
    margin-top:2px!important;
    font-size:16px!important;
    font-weight:600!important;
    letter-spacing:-.015em!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-section-head>span{
    font-size:8.5px!important;
    color:var(--g-muted)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-hour-card{
    min-height:112px!important;
    padding:11px 9px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-hour-card small{
    font-size:7.5px!important;
    color:var(--g-muted)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-hour-card b{
    margin:4px 0 2px!important;
    font-size:20px!important;
    font-weight:600!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-hour-card strong{
    min-height:20px!important;
    font-size:8.5px!important;
    font-weight:600!important;
    color:var(--g-ink)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-hour-card span{
    margin-top:5px!important;
    font-size:8px!important;
    color:var(--g-muted)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-hour-card em{
    margin-top:3px!important;
    font-size:7.5px!important;
    color:var(--g-muted)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-mini-icon{
    width:21px!important;
    height:21px!important;
    margin:6px 0 0!important;
    opacity:.82!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-days article>div b{
    font-size:12px!important;
    font-weight:600!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-days article>div small{
    font-size:8px!important;
    color:var(--g-muted)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-days article>strong{
    font-size:14px!important;
    font-weight:600!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-days article>em,
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-days article>span,
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-days article>small:last-child{
    font-size:8.5px!important;
    color:var(--g-muted)!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-day-icon{
    width:16px!important;
    height:16px!important;
    margin-right:5px!important;
    vertical-align:-3px!important;
    opacity:.84!important;
  }
}

/* Desktop Explore (and Record, where the card stays visible beside the sheet): correct the legacy action-row grid areas without redesigning the card. */
@media(min-width:760px){
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"]) .mountain-primary-actions button>span:first-child{
    grid-area:1 / 1!important;
  }
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"]) .mountain-primary-actions button>span:nth-child(2){
    grid-area:1 / 2!important;
    min-width:0!important;
    width:auto!important;
    height:auto!important;
  }
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"]) .mountain-primary-actions button>i{
    grid-area:1 / 3!important;
  }
}

/* Desktop Weather: adapt the existing premium overview to the actual side-panel width. */
@media(min-width:760px){
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-overview{
    grid-template-columns:minmax(150px,.85fr) minmax(0,1.15fr)!important;
    gap:12px!important;
    padding:18px!important;
  }
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-now-main{
    grid-column:1!important;
  }
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-now-metrics{
    grid-column:2!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    border-left:1px solid rgba(var(--g-ink-rgb),0.063)!important;
  }
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-sun{
    grid-column:1/-1!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    min-width:0!important;
    padding-top:9px!important;
    border-top:1px solid rgba(var(--g-ink-rgb),0.063)!important;
  }
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-sun span{
    padding:4px 8px!important;
  }
}

/* Desktop avalanche chip belongs to the map workspace, never under the left rail. */
@media(min-width:760px){
  .vertex-v3 #app .avalanche-chip{
    left:var(--v3-desktop-left)!important;
    right:auto!important;
  }
  .vertex-v3 #app .bulletin-terrain-legend{left:var(--v3-desktop-left)!important;max-width:340px!important}
}

/* Mobile Weather: all three elevation levels side by side instead of a sideways carousel,
   so High terrain is visible without scrolling. Details stack inside each column. */
@media(max-width:759px){
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-levels{
    grid-auto-flow:row!important;
    grid-auto-columns:auto!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
    overflow:visible!important;
    scroll-snap-type:none!important;
    padding:1px 0 5px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card{
    min-width:0!important;
    min-height:0!important;
    padding:10px 8px 11px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card>small{
    display:block!important;
    line-height:1.35!important;
    white-space:normal!important;
    text-overflow:clip!important;
    overflow:visible!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card>b{
    font-size:21px!important;
    margin:4px 0 4px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card div{
    flex-direction:column!important;
    flex-wrap:nowrap!important;
    gap:3px!important;
  }

  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-level-card div span{
    min-width:0!important;
    overflow-wrap:anywhere!important;
    line-height:1.3!important;
  }
}

/* Community map: chooser when several published routes overlap at the tapped spot. */
.vertex-v3 #app .community-route-chooser-popup .maplibregl-popup-content{
  padding:6px!important;
  border:1px solid rgba(var(--g-ink-rgb),0.110)!important;
  border-radius:14px!important;
  background:rgba(var(--g-surface-rgb),0.949)!important;
  box-shadow:0 12px 32px rgba(var(--g-shadow-rgb),0.240)!important;
  backdrop-filter:blur(16px)!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .community-route-chooser-popup .maplibregl-popup-tip{
  border-top-color:rgba(var(--g-ink-rgb),0.200)!important;
  border-bottom-color:rgba(var(--g-ink-rgb),0.200)!important;
}
.vertex-v3 #app .community-route-chooser{
  display:grid;
  gap:3px;
  min-width:190px;
}
.vertex-v3 #app .community-route-chooser>small{
  padding:4px 6px 2px;
  color:var(--g-muted);
  font-size:8px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.vertex-v3 #app .community-route-chooser button{
  display:grid;
  gap:2px;
  width:100%;
  min-height:44px;
  padding:7px 8px;
  border:0;
  border-radius:10px;
  background:rgba(var(--g-ink-rgb),0.031);
  color:var(--g-ink);
  text-align:left;
}
.vertex-v3 #app .community-route-chooser button b{
  font-size:12px;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.vertex-v3 #app .community-route-chooser button span{
  color:var(--g-muted);
  font-size:9px;
}

:root{--active-session-h:95px} /* live height is written by app.js */

/* Mobile recording dock: fixed three-button grid (the base flex ignored the grid and overflowed),
   its own compositing layer so it stays put while the map pans underneath, out of the way of the
   Layers sheet, and legends/Sun slider stacked above it. */
@media(max-width:759px){
  .vertex-v3 #app .active-session{
    transform:translateZ(0)!important;
    contain:layout paint!important;
    touch-action:manipulation!important;
  }
  .vertex-v3 #app .active-map-controls,
  .vertex-v3 #app .active-session:not(:focus-within):not(:hover) .active-map-controls{
    /* styles.css capped this at 128px only while the dock had no hover/focus; on touch that flips
       when the map is touched, so the controls jumped. One fixed width in every state. */
    display:grid!important;
    grid-template-columns:repeat(3,42px)!important;
    gap:2px!important;
    max-width:none!important;
  }
  .vertex-v3 #app .active-map-controls button{
    min-width:0!important;
    width:42px!important;
  }
  .vertex-v3 #app[data-h25]:not(#_h) .active-session{
    display:none!important;
  }
  .vertex-v3 #app[data-h20]:not(._h) .slope-legend,
  .vertex-v3 #app[data-h20]:not(._h) .aspect-legend,
  .vertex-v3 #app[data-h20]:not(._h) .sun-panel{
    bottom:calc(var(--v3-content-bottom) + var(--active-session-h,95px) + 14px)!important;
  }
  .vertex-v3 #app[data-h20]:not(._h)[data-h22]:not(._h) .sun-panel,
  .vertex-v3 #app[data-h20]:not(._h)[data-h23]:not(._h) .sun-panel{
    bottom:calc(var(--v3-content-bottom) + var(--active-session-h,95px) + 56px)!important;
  }
}

/* Recording is a phone activity; desktop is for planning and reviewing. Keep Record reachable only
   while a session is already running (e.g. the window was resized mid-recording). */
@media(min-width:760px){
  .vertex-v3 #app #recordNav:not(.recording-active){
    display:none!important;
  }
}

/* Final visibility authority. Responsive composition must never override the hidden attribute.
   button[hidden] matches the specificity of the shared ">button" control rules. */
/* Layer art: small drawn previews of what each layer puts on the map (Avalanche and Bulletin keep their own). */
.vertex-v3 #app .layer-preview.layer-art{position:relative;overflow:hidden;padding:0;background:#d8e2e8;box-shadow:inset 0 0 0 1px #ffffff00}
.layer-preview.layer-art svg{display:block;width:100%;height:100%}
.vertex-v3 #app .layer-row.active .layer-preview.layer-art,.vertex-v3 #app .layer-row[aria-pressed="true"] .layer-preview.layer-art{box-shadow:inset 0 0 0 1.5px #eef5f200}
/* The layers button says what it is: a stack icon with its name under it. */
.vertex-v3 #app .topbar .layers-button{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0!important}
.vertex-v3 #app .topbar .layers-button svg{width:20px;height:20px}
.vertex-v3 #app .topbar .layers-button small{font-size:8px;font-weight:600;letter-spacing:.02em;line-height:1}
/* ---------- Premium cards ----------
   One surface for the cards that float over the map (place card and track card): a lit top edge, a soft
   gradient and a deep shadow. Stats read as numbers first, actions as one confident primary button, and
   list rows as tiles carrying their category colour. */
.vertex-v3 #app .place-card,.vertex-v3 #app .route-detail.community-map-card,.vertex-v3 #app .route-detail.mobile-map-preview{
  border:1px solid rgba(var(--g-ink-rgb),0.078)!important;
  border-radius:22px!important;
  background:linear-gradient(180deg,rgba(var(--g-surface-rgb),0.961) 0%,rgba(var(--g-surface-rgb),0.969) 55%,rgba(var(--g-surface-rgb),0.973) 100%)!important;
  box-shadow:inset 0 1px 0 #ffffff00,0 22px 50px rgba(var(--g-shadow-rgb),0.240),0 3px 10px rgba(var(--g-shadow-rgb),0.157)!important;
  backdrop-filter:blur(22px) saturate(1.25)!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .place-card h1,.vertex-v3 #app .route-detail-head h2{letter-spacing:-.022em!important}
.vertex-v3 #app .place-card-handle span{background:rgba(var(--g-ink-rgb),0.220)!important;border-radius:999px!important}
.vertex-v3 #app .resort-status b,.vertex-v3 #app .stats b,.vertex-v3 #app .route-detail-stats b{font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.vertex-v3 #app .resort-status small,.vertex-v3 #app .route-detail-stats small{text-transform:uppercase;letter-spacing:.09em!important;color:var(--g-muted)!important}
.vertex-v3 #app .route-detail-head{background:none!important;--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}
.vertex-v3 #app .route-detail-head>button{border-radius:999px!important;border:1px solid rgba(var(--g-ink-rgb),0.090)!important;background:rgba(var(--g-ink-rgb),0.051)!important}
.vertex-v3 #app #routeDetailType{display:inline-flex;align-items:center;gap:6px;color:var(--g-muted)!important}
.vertex-v3 #app .route-detail[data-category] #routeDetailType::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 22%,transparent)}
.vertex-v3 #app .route-detail[data-category=""] #routeDetailType::before{display:none}
.vertex-v3 #app .route-detail[data-category="skitour"] #routeDetailType{color:var(--g-accent)!important}
.vertex-v3 #app .route-detail[data-category="offpiste"] #routeDetailType{color:#cc6200!important}
.vertex-v3 #app .route-detail[data-category="trail"] #routeDetailType{color:#4b00cc!important}
.vertex-v3 #app .route-detail-stats{gap:6px!important;border-radius:0!important;overflow:visible!important;background:none!important;border:0!important;--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}
.vertex-v3 #app .route-detail-stats>span{border:1px solid rgba(var(--g-ink-rgb),0.063)!important;border-radius:14px!important;background:linear-gradient(180deg,rgba(var(--g-ink-rgb),0.047),rgba(var(--g-ink-rgb),0.020))!important;box-shadow:inset 0 1px 0 #ffffff00!important}
.vertex-v3 #app .route-detail-stats b{font-size:16px!important;font-weight:600!important}
.vertex-v3 #app .route-detail-actions .route-primary,.vertex-v3 #app .route-detail-actions .route-community-save:not([hidden]){
  border:0!important;border-radius:14px!important;
  background:linear-gradient(180deg,var(--g-raised) 0%,var(--g-raised) 100%)!important;color:var(--g-contrast)!important;
  box-shadow:inset 0 -1px 0 rgba(var(--g-shadow-rgb),0.035),0 8px 22px rgba(var(--g-shadow-rgb),0.157)!important;font-weight:600!important;letter-spacing:.01em!important
;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .route-detail-actions .route-community-save:disabled{background:rgba(var(--g-ink-rgb),0.071)!important;color:var(--g-ink)!important;box-shadow:none!important}
.vertex-v3 #app .mountain-primary-actions button>span:first-child{flex:0 0 30px!important;width:30px!important;height:30px!important;display:grid!important;place-items:center!important;border:1px solid rgba(var(--g-ink-rgb),0.078)!important;border-radius:10px!important;background:linear-gradient(180deg,rgba(var(--g-ink-rgb),0.086),rgba(var(--g-ink-rgb),0.024))!important}
/* The same finish on every other card: floating panels over the map get the lit edge, gradient and shadow;
   cards inside lists and sheets become quiet tiles. Full-screen destinations keep their flat page colour. */
.vertex-v3 #app #layerPanel,.vertex-v3 #app .avalanche-sheet,.vertex-v3 #app .compare-sheet,.vertex-v3 #app .record-sheet,.vertex-v3 #app .route-planner,.vertex-v3 #app .replay-controls,.vertex-v3 #app .sun-panel,.vertex-v3 #app .community-route-chooser-popup .maplibregl-popup-content,.vertex-v3 #app .profile-editor-sheet,.vertex-v3 #app .community-safety-sheet,.vertex-v3 #app .powder-finder-sheet{
  border:1px solid rgba(var(--g-ink-rgb),0.078)!important;
  background:linear-gradient(180deg,rgba(var(--g-surface-rgb),0.969) 0%,rgba(var(--g-surface-rgb),0.973) 55%,rgba(var(--g-surface-rgb),0.980) 100%)!important;
  box-shadow:inset 0 1px 0 #ffffff00,0 22px 50px rgba(var(--g-shadow-rgb),0.240),0 3px 10px rgba(var(--g-shadow-rgb),0.157)!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .slope-legend,.vertex-v3 #app .aspect-legend,.vertex-v3 #app .bulletin-terrain-legend,.vertex-v3 #app .avalanche-chip,.vertex-v3 #app .map-route-chip>button{
  border-color:rgba(var(--g-ink-rgb),0.090)!important;
  background:linear-gradient(180deg,rgba(var(--g-surface-rgb),0.922),rgba(var(--g-surface-rgb),0.933))!important;
  box-shadow:inset 0 1px 0 #ffffff00,0 10px 26px rgba(var(--g-shadow-rgb),0.204)!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .activity-row,.vertex-v3 #app .community-library-card,.vertex-v3 #app .community-my-profile-card,.vertex-v3 #app .community-person-card,.vertex-v3 #app .community-friend-row,.vertex-v3 #app .powder-finder-row,.vertex-v3 #app .powder-card,.vertex-v3 #app .compare-card,.vertex-v3 #app .record-choice,.vertex-v3 #app .weather-hour-card,.vertex-v3 #app .weather-days article{
  border:1px solid rgba(var(--g-ink-rgb),0.059)!important;
  border-radius:14px!important;
  background:linear-gradient(180deg,var(--g-surface),var(--g-surface))!important;
  box-shadow:inset 0 1px 0 #ffffff00!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .activity-row b,.vertex-v3 #app .compare-card b,.vertex-v3 #app .weather-hour-card strong{font-variant-numeric:tabular-nums}
.vertex-v3 #app #layerPanel .panel-head>button,.vertex-v3 #app .avalanche-sheet .panel-head>button{border-radius:999px!important;border:1px solid rgba(var(--g-ink-rgb),0.090)!important;background:rgba(var(--g-ink-rgb),0.051)!important}
.vertex-v3 #app .you-season-summary,.vertex-v3 #app .you-menu{
  border:1px solid rgba(var(--g-ink-rgb),0.059)!important;border-radius:22px!important;
  background:linear-gradient(180deg,var(--g-surface),var(--g-surface))!important;box-shadow:inset 0 1px 0 #ffffff00!important;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .you-season-summary{padding:14px 16px!important;margin-bottom:12px!important}
.vertex-v3 #app .you-menu{padding:2px 12px!important;overflow:hidden}
.vertex-v3 #app .you-menu button>span{border-radius:10px!important;background:linear-gradient(180deg,rgba(var(--g-ink-rgb),0.086),rgba(var(--g-ink-rgb),0.024))!important;border:1px solid rgba(var(--g-ink-rgb),0.078)!important}
/* List rows as tiles: category colour on the left edge, a quiet save pill on the right. */
.vertex-v3 #app[data-section="routes"] .community-list{display:grid!important;gap:8px!important}
.vertex-v3 #app[data-section="routes"] .community-route-card-wrap{
  padding:2px 10px 2px 8px!important;border:1px solid rgba(var(--g-ink-rgb),0.059)!important;border-radius:14px!important;
  background:linear-gradient(180deg,var(--g-surface),var(--g-surface))!important;box-shadow:inset 0 1px 0 #ffffff00,inset 3px 0 0 #9fb0b400!important;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app[data-section="routes"] .community-route-card-wrap:has(.library-skitour){box-shadow:inset 0 1px 0 #ffffff00,inset 3px 0 0 #6cc4ff00!important}
.vertex-v3 #app[data-section="routes"] .community-route-card-wrap:has(.library-offpiste){box-shadow:inset 0 1px 0 #ffffff00,inset 3px 0 0 #ffa24c00!important}
.vertex-v3 #app[data-section="routes"] .community-route-card-wrap:has(.library-trail){box-shadow:inset 0 1px 0 #ffffff00,inset 3px 0 0 #c39bff00!important}
.vertex-v3 #app[data-section="routes"] .community-route-card{padding:12px 4px!important}
.vertex-v3 #app[data-section="routes"] .community-route-card b{letter-spacing:-.01em}
.vertex-v3 #app[data-section="routes"] .community-route-top i{border:1px solid rgba(var(--g-ink-rgb),0.078)!important;background:rgba(var(--g-ink-rgb),0.031)!important;color:var(--g-muted)!important;font-style:normal}
.vertex-v3 #app[data-section="routes"] .community-route-save-inline{
  min-width:0!important;padding:0 13px!important;border:1px solid rgba(var(--g-ink-rgb),0.141)!important;border-radius:999px!important;
  background:rgba(var(--g-ink-rgb),0.051)!important;color:var(--g-ink)!important;font-weight:600!important;box-shadow:none!important}
.vertex-v3 #app[data-section="routes"] .community-route-save-inline:disabled{border-color:rgba(var(--g-accent-rgb),0.251)!important;background:rgba(var(--g-accent-rgb),0.078)!important;color:var(--g-accent)!important;--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
/* ---------- One visual system ----------
   One stroke icon set, one surface for everything that floats over the map (search, map tools, bottom nav),
   one pill for every filter, one round icon button for every close/back, and one white primary button. */
.ui-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.vertex-v3 #app .bottom-nav button>span{display:grid!important;place-items:center!important}
.vertex-v3 #app .bottom-nav button>span .ui-icon{width:22px;height:22px}
.vertex-v3 #app .map-tools .ui-icon,.vertex-v3 #app .map-tools .tracks-toggle .ui-icon{width:20px;height:20px}
.vertex-v3 #app .map-tools .tracks-toggle span{display:grid;place-items:center}
.vertex-v3 #app .mountain-primary-actions .ui-icon,.vertex-v3 #app .you-menu .ui-icon{width:17px;height:17px}
.vertex-v3 #app .record-choice .ui-icon{width:22px;height:22px}
.vertex-v3 #app .search,.vertex-v3 #app .round,.vertex-v3 #app .map-tools .tool,.vertex-v3 #app .bottom-nav{
  border:1px solid rgba(var(--g-ink-rgb),0.090)!important;
  background:linear-gradient(180deg,rgba(var(--g-surface-rgb),0.922) 0%,rgba(var(--g-surface-rgb),0.941) 100%)!important;
  box-shadow:inset 0 1px 0 #ffffff00,0 10px 28px rgba(var(--g-shadow-rgb),0.216)!important;
  backdrop-filter:blur(18px) saturate(1.2)!important;
--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .bottom-nav{border-width:1px 0 0!important;box-shadow:inset 0 1px 0 #ffffff00,0 -10px 30px rgba(var(--g-shadow-rgb),0.157)!important}
.vertex-v3 #app .map-tools .tool.active,.vertex-v3 #app .map-tools .tool[aria-pressed="true"]{
  border-color:rgba(var(--g-ink-rgb),0.200)!important;background:linear-gradient(180deg,var(--g-raised),var(--g-raised))!important;color:var(--g-contrast)!important;
  box-shadow:inset 0 -1px 0 rgba(var(--g-shadow-rgb),0.035),0 10px 26px rgba(var(--g-shadow-rgb),0.180)!important;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .activities-head>button,.vertex-v3 #app .panel-head>button,.vertex-v3 #app .weather-head>button,.vertex-v3 #app .record-head>button,.vertex-v3 #app .activity-detail-head>button,.vertex-v3 #app .route-detail-head>button,.vertex-v3 #app .publish-route-head>button{
  border:1px solid rgba(var(--g-ink-rgb),0.090)!important;border-radius:999px!important;background:rgba(var(--g-ink-rgb),0.051)!important;color:var(--g-ink)!important;box-shadow:none!important}
.vertex-v3 #app .alps-library-filters button,.vertex-v3 #app .route-library-filters button,.vertex-v3 #app .community-tabs button,.vertex-v3 #app .weather-view>.weather-tabs button,.vertex-v3 #app .powder-map-tabs button,.vertex-v3 #app .route-filter-toggle,.vertex-v3 #app .community-map-open{
  border:1px solid rgba(var(--g-ink-rgb),0.110)!important;border-radius:999px!important;background:rgba(var(--g-ink-rgb),0.043)!important;color:var(--g-ink)!important;font-weight:600!important;box-shadow:none!important}
.vertex-v3 #app .alps-library-filters button.active,.vertex-v3 #app .route-library-filters button.active,.vertex-v3 #app .community-tabs button.active,.vertex-v3 #app .weather-view>.weather-tabs button.active,.vertex-v3 #app .powder-map-tabs button.active,.vertex-v3 #app .community-map-filters button.active,.vertex-v3 #app .route-filter-toggle[aria-expanded="true"]{
  border-color:rgba(var(--g-ink-rgb),0.200)!important;background:var(--g-accent)!important;color:var(--g-contrast)!important;--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .community-map-filters button:not(.active){
  border:1px solid rgba(var(--g-ink-rgb),0.090)!important;background:linear-gradient(180deg,rgba(var(--g-surface-rgb),0.929),rgba(var(--g-surface-rgb),0.949))!important;color:var(--g-ink)!important;
  box-shadow:inset 0 1px 0 #ffffff00,0 6px 18px rgba(var(--g-shadow-rgb),0.180)!important;backdrop-filter:blur(14px)!important
;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .weather-view>.weather-tabs,.vertex-v3 #app .route-library-filters,.vertex-v3 #app .community-tabs{background:none!important;border:0!important;gap:6px!important;--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}
.vertex-v3 #app .route-add-primary,.vertex-v3 #app .record-primary,.vertex-v3 #app .route-create-primary{
  border:0!important;border-radius:14px!important;background:linear-gradient(180deg,var(--g-raised) 0%,var(--g-raised) 100%)!important;color:var(--g-contrast)!important;
  box-shadow:inset 0 -1px 0 rgba(var(--g-shadow-rgb),0.035),0 8px 22px rgba(var(--g-shadow-rgb),0.157)!important;font-weight:600!important
;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .eyebrow,.vertex-v3 #app .activities-head small,.vertex-v3 #app .panel-head small,.vertex-v3 #app .community-section-head small,.vertex-v3 #app .layer-section small{letter-spacing:.14em!important;color:var(--g-muted)!important}
.vertex-v3 #app h1,.vertex-v3 #app h2{letter-spacing:-.02em}
/* While searching, the tracks filter row steps aside for the search results. */
.vertex-v3 #app:has(#placeSearch:focus) .community-map-bar,
.vertex-v3 #app[data-h27]:not(#_h) .community-map-bar{display:none!important}

/* ---------- Docked place card ----------
   On phones the place card is the top of one sheet with the bottom nav:
   full width, square bottom, same surface as the nav, attribution above it. */
@media(max-width:759px){
  .vertex-v3 #app[data-section] .place-card,
  .vertex-v3 #app[data-section] .route-detail.mobile-map-preview,
  .vertex-v3 #app[data-section] .avalanche-sheet{
    left:0!important;
    right:0!important;
    width:auto!important;
    max-width:none!important;
    bottom:var(--v3-content-bottom)!important;
    border-radius:22px 22px 0 0!important;
    border-width:1px 0 0!important;
    border-color:rgba(var(--g-ink-rgb),0.078)!important;
    background:linear-gradient(180deg,var(--g-surface) 0%,var(--g-surface) 100%)!important;
    box-shadow:inset 0 1px 0 #ffffff00,0 10px 0 rgba(var(--g-shadow-rgb),0.240),0 -16px 40px rgba(var(--g-shadow-rgb),0.180)!important;
    padding-left:18px!important;
    padding-right:18px!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
  .vertex-v3 #app[data-section] .route-detail.mobile-map-preview{
    padding-top:14px!important;
    backdrop-filter:none!important;
  }
  .vertex-v3 #app[data-section] .avalanche-sheet .activities-head,
  .vertex-v3 #app[data-section] .route-detail.mobile-map-preview .route-detail-head{
    background:var(--g-surface)!important;
    box-shadow:none!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
  .vertex-v3 #app[data-section] .place-card.collapsed{
    padding-left:18px!important;
    padding-right:18px!important;
  }
  .vertex-v3 #app[data-h28]:not(._h) .bottom-nav,
  .vertex-v3 #app[data-place-docked] .bottom-nav,
  .vertex-v3 #app[data-h21]:not(._h):not(._h) .bottom-nav{
    background:linear-gradient(180deg,var(--g-surface) 0%,var(--g-surface) 100%)!important;
    border-color:transparent!important;
    box-shadow:inset 0 1px 0 #ffffff00!important;
    backdrop-filter:none!important;
  --g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
  .vertex-v3 #app[data-place-docked] .maplibregl-ctrl-bottom-right{
    bottom:calc(var(--v3-content-bottom) + var(--place-card-current-h,82px))!important;
  }
  .vertex-v3 #app[data-h21]:not(._h):not(._h) .maplibregl-ctrl-bottom-right{
    bottom:calc(var(--v3-content-bottom) + var(--map-preview-h))!important;
  }
}

/* ---------- Powder ----------
   One scale everywhere: light 2+, fresh 10+, powder day 20+, deep 30+ cm in 24h.
   The weather card leads with the number; the map card shows one alert line only when it matters. */
.vertex-v3 #app #powderCard{--pw:#8fa3ad;display:grid!important;gap:10px!important;width:100%!important;min-height:0!important;margin:6px 0 22px!important;padding:14px 15px 13px!important;border:1px solid rgba(var(--g-ink-rgb),0.078)!important;border-radius:22px!important;background:linear-gradient(180deg,var(--g-surface),var(--g-surface))!important;box-shadow:inset 0 1px 0 #ffffff00,0 10px 28px rgba(var(--g-shadow-rgb),0.180)!important;text-align:left!important;color:var(--g-ink)!important;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app #powderCard[data-level="light"]{--pw:#a9c7d6}
.vertex-v3 #app #powderCard[data-level="fresh"]{--pw:#7fcdff}
.vertex-v3 #app #powderCard[data-level="powder"]{--pw:#53d1ff;border-color:#53d1ff40!important;background:radial-gradient(120% 90% at 0% 0%,#1d4a5f 0%,#d5e1e6 55%,#e3ebee 100%)!important}
.vertex-v3 #app #powderCard[data-level="deep"]{--pw:#b9a2ff;border-color:#b9a2ff45!important;background:radial-gradient(120% 90% at 0% 0%,#3a2f63 0%,#d5e1e6 55%,#e3ebee 100%)!important}
.vertex-v3 #app #powderCard .powder-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.vertex-v3 #app #powderCard .powder-card-head small{font-size:9px!important;font-weight:600!important;letter-spacing:.14em!important;color:var(--g-muted)!important}
.vertex-v3 #app #powderCard .powder-level{padding:4px 9px;border-radius:999px;background:color-mix(in srgb,var(--pw) 18%,transparent);color:var(--pw);font-style:normal;font-size:10px;font-weight:600;letter-spacing:.02em}
.vertex-v3 #app #powderCard .powder-card-main{display:flex;align-items:baseline;gap:10px}
.vertex-v3 #app #powderCard .powder-card-main b{font-size:38px!important;line-height:1!important;font-weight:600!important;letter-spacing:-.03em!important;color:var(--g-ink)!important}
.vertex-v3 #app #powderCard .powder-card-main b span{margin-left:3px;font-size:15px!important;font-weight:600;color:var(--g-ink)!important}
.vertex-v3 #app #powderCard .powder-card-main>span{font-size:12px!important;font-weight:600;color:var(--g-ink)!important}
.vertex-v3 #app #powderCard .powder-bars{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.vertex-v3 #app #powderCard .powder-bars span{--pw:#8fa3ad;--h:4%;display:grid;grid-template-rows:38px auto auto;gap:3px}
.vertex-v3 #app #powderCard .powder-bars span[data-level="light"]{--pw:#a9c7d6}
.vertex-v3 #app #powderCard .powder-bars span[data-level="fresh"]{--pw:#7fcdff}
.vertex-v3 #app #powderCard .powder-bars span[data-level="powder"]{--pw:#53d1ff}
.vertex-v3 #app #powderCard .powder-bars span[data-level="deep"]{--pw:#b9a2ff}
.vertex-v3 #app #powderCard .powder-bars i{align-self:end;height:var(--h);min-height:3px;border-radius:5px 5px 999px 999px;background:linear-gradient(180deg,var(--pw),color-mix(in srgb,var(--pw) 35%,transparent))}
.vertex-v3 #app #powderCard .powder-bars b{font-size:12px!important;font-weight:600!important;color:var(--g-ink)!important}
.vertex-v3 #app #powderCard .powder-bars small{font-size:9px!important;letter-spacing:.04em!important;color:var(--g-muted)!important}
.vertex-v3 #app #powderCard .powder-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:9px;border-top:1px solid rgba(var(--g-ink-rgb),0.063)}
.vertex-v3 #app #powderCard .powder-card-foot>span{font-size:10.5px!important;color:var(--g-muted)!important}
.vertex-v3 #app #powderCard .powder-card-foot strong{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--g-ink);white-space:nowrap}
.vertex-v3 #app #powderCard .powder-card-foot .pro-badge{font-size:8px!important}
.vertex-v3 #app #powderAlert{--pw:#7fcdff;display:flex;align-items:center;gap:10px;width:100%;margin:2px 0 8px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--pw) 35%,transparent);border-radius:14px;background:linear-gradient(90deg,color-mix(in srgb,var(--pw) 20%,transparent),rgba(var(--g-ink-rgb),0.020));color:var(--g-ink);text-align:left}
.vertex-v3 #app #powderAlert[data-level="powder"]{--pw:#53d1ff}
.vertex-v3 #app #powderAlert[data-level="deep"]{--pw:#b9a2ff}
.vertex-v3 #app #powderAlert .powder-alert-icon{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--pw) 22%,transparent);color:var(--pw)}
.vertex-v3 #app #powderAlert .powder-alert-icon .ui-icon{width:17px;height:17px}
.vertex-v3 #app #powderAlert .powder-alert-text{display:grid;flex:1;min-width:0;gap:1px}
.vertex-v3 #app #powderAlert b{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vertex-v3 #app #powderAlert small{font-size:10.5px;color:var(--g-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vertex-v3 #app #powderAlert i{font-style:normal;font-size:16px;color:var(--g-ink)}
@media(max-width:759px){
  .vertex-v3 #app[data-section] .place-card.collapsed:has(#powderAlert:not([hidden])){max-height:124px!important}
  .vertex-v3 #app[data-section] .place-card.collapsed:has(#powderAlert:not([hidden])) .place-card-content{max-height:104px!important}
  /* Minimised card: powder is a slim pill between the title and the numbers, not a second card. */
  .vertex-v3 #app .place-card.collapsed #powderAlert{padding:4px 10px 4px 5px;margin:0 0 6px;gap:8px;border-radius:999px;width:auto;max-width:100%}
  .vertex-v3 #app .place-card.collapsed #powderAlert .powder-alert-icon{flex-basis:22px;width:22px;height:22px}
  .vertex-v3 #app .place-card.collapsed #powderAlert .powder-alert-icon .ui-icon{width:13px;height:13px}
  .vertex-v3 #app .place-card.collapsed #powderAlert small{display:none}
  .vertex-v3 #app .place-card.collapsed #powderAlert b{font-size:12px}
  .vertex-v3 #app .place-card.collapsed #powderAlert i{font-size:13px}
}

/* ---------- Avalanche bulletin: no bulletin ----------
   Explain why (season, coverage, connection) instead of a bare "No bulletin". */
.vertex-v3 #app .avalanche-empty{display:flex!important;align-items:flex-start;gap:13px;padding:15px 14px!important;border:1px solid rgba(var(--g-ink-rgb),0.071)!important;border-radius:14px!important;background:linear-gradient(180deg,rgba(var(--g-ink-rgb),0.039),rgba(var(--g-ink-rgb),0.016))!important}
.vertex-v3 #app .avalanche-empty .avalanche-empty-icon{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:14px;background:rgba(var(--g-ink-rgb),0.051);color:var(--g-ink)}
.vertex-v3 #app .avalanche-empty[data-kind="season"] .avalanche-empty-icon{background:rgba(var(--g-accent-rgb),0.122);color:var(--g-accent);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .avalanche-empty[data-kind="uncovered"] .avalanche-empty-icon,.vertex-v3 #app .avalanche-empty[data-kind="unavailable"] .avalanche-empty-icon{background:#ffab5e1f;color:#cc6100}
.vertex-v3 #app .avalanche-empty .avalanche-empty-icon .ui-icon{width:21px;height:21px}
.vertex-v3 #app .avalanche-empty>div{display:grid;gap:4px;min-width:0}
.vertex-v3 #app .avalanche-empty b{font-size:15px!important;font-weight:600!important;color:var(--g-ink)!important}
.vertex-v3 #app .avalanche-empty p{margin:0;font-size:12px;line-height:1.45;color:var(--g-muted)}

/* ---------- Avalanche chip on the map ----------
   One pill like the other map controls: a label over the level (or why there is none).
   It steps aside while the bulletin sheet is open, so only one bulletin surface shows. */
.vertex-v3 #app .avalanche-chip{
  min-height:46px!important;padding:5px 16px 5px 5px!important;gap:10px!important;border-radius:999px!important;
  max-width:min(250px,calc(100vw - 96px))!important;
}
.vertex-v3 #app .avalanche-chip .avalanche-level.small{width:36px;height:36px;border-radius:50%;font-size:16px;border:0;box-shadow:inset 0 0 0 1px #0f1f2911}
.vertex-v3 #app .avalanche-chip-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:rgba(var(--g-ink-rgb),0.059);color:var(--g-muted);box-shadow:inset 0 0 0 1px #ffffff00}
.vertex-v3 #app .avalanche-chip-icon .ui-icon{width:19px;height:19px}
.vertex-v3 #app .avalanche-chip>span:last-child{gap:2px}
.vertex-v3 #app .avalanche-chip small{order:-1;font-size:9px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--g-muted)}
.vertex-v3 #app .avalanche-chip b{font-size:14px;font-weight:600;letter-spacing:-.01em;color:var(--g-ink)}
.vertex-v3 #app .avalanche-chip[data-empty="true"] b{color:var(--g-ink)}
.vertex-v3 #app .avalanche-chip:focus:not(:focus-visible){outline:none}
.vertex-v3 #app[data-h28]:not(._h) .avalanche-chip{display:none!important}
/* ---------- Mobile: map legends stack above the docked card ----------
   Everything a layer adds at the bottom of the map (Slope/Aspect legend, Sun slider, Wind loading
   and Best snow pills) sits in one stack directly above the place card or the open track card,
   never between the card and the menu bar. The map attribution moves above the stack. */
@media(max-width:759px){
  .vertex-v3 #app{
    --legend-floor:calc(var(--v3-content-bottom) + var(--place-card-current-h,0px) + 8px);
    --legend-terrain:0px;--legend-sun:0px;--legend-wind:0px;--legend-best:0px;--legend-powder:0px;
  }
  .vertex-v3 #app[data-h21]:not(._h):not(._h){--legend-floor:calc(var(--v3-content-bottom) + var(--map-preview-h) + 8px)}
  .vertex-v3 #app:is(:has(.slope-legend.show),:has(.aspect-legend.show)){--legend-terrain:42px}
  .vertex-v3 #app[data-h24]:not(._h){--legend-sun:64px}
  .vertex-v3 #app[data-h29]:not(#_h){--legend-wind:56px}
  .vertex-v3 #app[data-h30]:not(#_h){--legend-best:56px}
  .vertex-v3 #app[data-h31]:not(#_h){--legend-powder:44px}
  .vertex-v3 #app #powderLegend{left:9px;right:9px;bottom:calc(var(--legend-floor) + var(--legend-terrain) + var(--legend-sun) + var(--legend-wind) + var(--legend-best))}
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h22]:not(._h) .place-card,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h23]:not(._h) .place-card,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h24]:not(._h) .place-card,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h24]:not(._h)[data-h22]:not(._h) .place-card,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h24]:not(._h)[data-h23]:not(._h) .place-card{
    bottom:var(--v3-content-bottom)!important;
  }
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"]) .slope-legend,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"]) .aspect-legend{
    bottom:var(--legend-floor)!important;
    border-radius:999px!important;
  }
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"]) .sun-panel,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h22]:not(._h) .sun-panel,
  .vertex-v3 #app:is([data-section="explore"],[data-section="record"])[data-h23]:not(._h) .sun-panel{
    bottom:calc(var(--legend-floor) + var(--legend-terrain))!important;
  }
  .vertex-v3 #app #windLoadLegend{left:9px;right:9px;max-width:none;bottom:calc(var(--legend-floor) + var(--legend-terrain) + var(--legend-sun))}
  .vertex-v3 #app #bestSnowLegend,.vertex-v3 #app[data-h29]:not(#_h) #bestSnowLegend.show{left:9px;right:9px;max-width:none;transform:none;bottom:calc(var(--legend-floor) + var(--legend-terrain) + var(--legend-sun) + var(--legend-wind))}
  .vertex-v3 #app[data-place-docked] .maplibregl-ctrl-bottom-right{
    bottom:calc(var(--legend-floor) - 8px + var(--legend-terrain) + var(--legend-sun) + var(--legend-wind) + var(--legend-best) + var(--legend-powder))!important;
  }
  /* Wind loading and best snow start as small pills, side by side when both are on;
     a tap opens both as the full legends (#app.cond-legends-open). */
  .vertex-v3 #app .wind-load-legend{pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .vertex-v3 #app:not(.cond-legends-open)[data-h29]:not(#_h){--legend-wind:42px}
  .vertex-v3 #app:not(.cond-legends-open)[data-h30]:not(#_h){--legend-best:42px}
  .vertex-v3 #app:not(.cond-legends-open)[data-h29]:not(#_h)[data-h30]:not(#_h){--legend-best:0px}
  .vertex-v3 #app:not(.cond-legends-open) #windLoadLegend,
  .vertex-v3 #app:not(.cond-legends-open) #bestSnowLegend{right:auto;max-width:calc(100vw - 18px);min-height:36px;padding:3px 12px 3px 3px;gap:7px}
  .vertex-v3 #app:not(.cond-legends-open) .wind-load-legend>span:not(.wind-load-arrow){display:none}
  .vertex-v3 #app:not(.cond-legends-open) .wind-load-legend .cond-short{display:block}
  .vertex-v3 #app:not(.cond-legends-open) .wind-load-arrow{width:28px;height:28px}
  .vertex-v3 #app:not(.cond-legends-open) .wind-load-arrow svg{width:15px;height:15px}
  .vertex-v3 #app:not(.cond-legends-open)[data-h30]:not(#_h) #windLoadLegend.show{right:calc(50% + 3px)}
  .vertex-v3 #app:not(.cond-legends-open)[data-h29]:not(#_h) #bestSnowLegend.show{left:calc(50% + 3px);right:9px;bottom:calc(var(--legend-floor) + var(--legend-terrain) + var(--legend-sun))}
  /* The map-mode label rides on top of the whole legend stack. */
  .vertex-v3 #app #layerModePill{bottom:calc(var(--legend-floor) + var(--legend-terrain) + var(--legend-sun) + var(--legend-wind) + var(--legend-best) + var(--legend-powder) + 6px)}
}
/* Desktop: the same stack above the mountain card, lined up with its edges and width. */
@media(min-width:760px){
  .vertex-v3 #app{
    --legend-floor:calc(var(--place-card-current-h,214px) + 28px);
    --legend-terrain:0px;--legend-sun:0px;--legend-wind:0px;--legend-best:0px;
  }
  .vertex-v3 #app[data-h30]:not(#_h){--legend-best:58px}
  .vertex-v3 #app #powderLegend{left:var(--place-card-left,var(--v3-desktop-left));width:var(--place-card-w,360px);bottom:calc(var(--legend-floor) + var(--legend-terrain) + var(--legend-sun) + var(--legend-wind) + var(--legend-best))}
  .vertex-v3 #app:is(:has(.slope-legend.show),:has(.aspect-legend.show)){--legend-terrain:44px}
  .vertex-v3 #app[data-h24]:not(._h){--legend-sun:66px}
  .vertex-v3 #app[data-h29]:not(#_h){--legend-wind:58px}
  .vertex-v3 #app[data-section="explore"] .slope-legend,
  .vertex-v3 #app[data-section="explore"] .aspect-legend{
    left:var(--place-card-left,var(--v3-desktop-left))!important;width:var(--place-card-w,360px)!important;max-width:none!important;
    bottom:var(--legend-floor)!important;justify-content:center!important;border-radius:999px!important;
  }
  .vertex-v3 #app[data-section="explore"] .sun-panel,
  .vertex-v3 #app[data-section="explore"][data-h22]:not(._h) .sun-panel,
  .vertex-v3 #app[data-section="explore"][data-h23]:not(._h) .sun-panel{
    left:var(--place-card-left,var(--v3-desktop-left))!important;width:var(--place-card-w,360px)!important;
    bottom:calc(var(--legend-floor) + var(--legend-terrain))!important;
  }
  .vertex-v3 #app .wind-load-legend{left:var(--place-card-left,var(--v3-desktop-left));width:var(--place-card-w,360px);max-width:none}
  .vertex-v3 #app #windLoadLegend{bottom:calc(var(--legend-floor) + var(--legend-terrain) + var(--legend-sun))}
  .vertex-v3 #app #bestSnowLegend{bottom:calc(var(--legend-floor) + var(--legend-terrain) + var(--legend-sun) + var(--legend-wind))}
}
/* Weather is its own view: the Tracks chip row and the condition pills belong to the map. */
.vertex-v3 #app[data-h32]:not(#_h) .community-map-bar,
.vertex-v3 #app[data-h32]:not(#_h) .wind-load-legend,.vertex-v3 #app[data-h32]:not(#_h) .powder-legend{display:none!important}
/* =========================================================
   Weather map v2: one top bar (back · layer and place · close), one row of layer pills,
   and one bottom card with the legend, play and the time slider. Replaces the old
   weather-map-nav / -head / -layers / weather-timeline controls.
   ========================================================= */
.vertex-v3 #app .weather-map-view .wxm-top{position:absolute;z-index:30;top:calc(10px + env(safe-area-inset-top,0px));left:12px;right:12px;display:grid;gap:8px;pointer-events:none}
.vertex-v3 #app .wxm-bar,.vertex-v3 #app .wxm-layers,.vertex-v3 #app .wxm-bottom{pointer-events:auto;border:1px solid rgba(var(--g-ink-rgb),0.090);background:linear-gradient(180deg,rgba(var(--g-surface-rgb),0.922),rgba(var(--g-surface-rgb),0.933));box-shadow:inset 0 1px 0 #ffffff00,0 10px 26px rgba(var(--g-shadow-rgb),0.204);backdrop-filter:blur(16px);--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .wxm-bar{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:8px;padding:5px;border-radius:22px}
.vertex-v3 #app .wxm-icon{width:40px;height:40px;min-width:40px;display:grid;place-items:center;padding:0;border:1px solid rgba(var(--g-ink-rgb),0.090);border-radius:50%;background:rgba(var(--g-ink-rgb),0.051);color:var(--g-ink);cursor:pointer}
.vertex-v3 #app .wxm-icon .ui-icon{width:18px;height:18px}
.vertex-v3 #app .wxm-title{display:grid;gap:1px;min-width:0;text-align:center}
.vertex-v3 #app .wxm-title small{font-size:8px;font-weight:600;letter-spacing:.12em;color:var(--g-muted)}
.vertex-v3 #app .wxm-title b{font-size:14px;font-weight:600;color:var(--g-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vertex-v3 #app .wxm-layers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;border-radius:999px;justify-self:center;width:min(100%,420px)}
.vertex-v3 #app .wxm-layers button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:34px;padding:0 8px;border:0;border-radius:999px;background:transparent;color:var(--g-ink);font-size:12px;font-weight:600;cursor:pointer;--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}
.vertex-v3 #app .wxm-layers button .ui-icon{width:15px;height:15px}
.vertex-v3 #app .wxm-layers button.active{background:linear-gradient(180deg,var(--g-raised),var(--g-raised));color:var(--g-contrast);box-shadow:0 2px 8px rgba(var(--g-shadow-rgb),0.149);--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .wxm-bottom{position:absolute;z-index:30;left:12px;right:12px;bottom:12px;display:grid;gap:8px;padding:10px 14px 8px;border-radius:22px}
.vertex-v3 #app .wxm-legend{display:grid;gap:3px}
.vertex-v3 #app .wxm-legend>i{display:block;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--g-accent),var(--g-accent) 22%,#30d158 42%,#ffd60a 62%,#ff6b2c 80%,#d63bd6);color:var(--g-on-accent);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .wxm-legend[data-layer="temp"]>i{background:linear-gradient(90deg,#6a3fd1,var(--g-accent) 20%,var(--g-accent) 38%,var(--g-raised) 50%,#ffd24a 64%,#ff8a2a 80%,#e0322a);--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .wxm-legend[data-layer="wind"]>i{background:linear-gradient(90deg,#3c8c5a,#50dc78 35%,#ffd24a 65%,#ff4646);color:var(--g-on-accent);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .wxm-legend[data-layer="precip"]>i{background:linear-gradient(90deg,var(--g-accent),var(--g-accent) 50%,#b45cff);color:var(--g-on-accent);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .wxm-legend>div{display:flex;justify-content:space-between;font-size:9px;font-weight:600;color:var(--g-muted)}
.vertex-v3 #app .wxm-time-row{display:flex;align-items:center;gap:10px}
.vertex-v3 #app .wxm-play{flex:0 0 38px;width:38px;height:38px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:linear-gradient(180deg,var(--g-raised),var(--g-raised));color:var(--g-contrast);cursor:pointer;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .wxm-play .ui-icon{width:17px;height:17px}
.vertex-v3 #app .wxm-play .wxm-pause-icon,.vertex-v3 #app .wxm-play[aria-pressed="true"] .wxm-play-icon{display:none}
.vertex-v3 #app .wxm-play[aria-pressed="true"] .wxm-pause-icon{display:block}
.vertex-v3 #app .wxm-time{display:grid;gap:1px;min-width:0}
.vertex-v3 #app .wxm-time b{font-size:16px;font-weight:600;color:var(--g-ink)}
.vertex-v3 #app .wxm-time span{font-size:11px;color:var(--g-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vertex-v3 #app .wxm-slider{position:relative;padding-bottom:14px}
.vertex-v3 #app .wxm-slider input{width:100%;margin:0;accent-color:var(--g-accent)}
.vertex-v3 #app .wxm-days{position:absolute;left:8px;right:8px;bottom:0;height:12px}
.vertex-v3 #app .wxm-days span{position:absolute;transform:translateX(-50%);font-size:9px;font-weight:600;color:var(--g-muted);white-space:nowrap}
.vertex-v3 #app .wxm-days span:before{content:"";position:absolute;left:50%;top:-6px;width:1px;height:4px;background:rgba(var(--g-ink-rgb),0.240)}
.vertex-v3 #app .wxm-days i{position:absolute;top:-8px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:#ffd76a}
.vertex-v3 #app .weather-map-view{--wxm-bottom-h:150px}
.vertex-v3 #app[data-section] .weather-view .weather-map-view .weather-map-status{z-index:31!important;top:calc(118px + env(safe-area-inset-top,0px))!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;max-width:calc(100% - 24px)!important}
@media(min-width:760px){.vertex-v3 #app[data-section] .weather-view .weather-map-view .weather-map-status{top:132px!important;left:18px!important;transform:none!important}}
/* Forecast v2: compact hourly cards and a two-line 7-day list on phones. */
.vertex-v3 #app[data-section] .weather-view .weather-hour-card{min-height:0!important;padding:9px 6px!important;gap:3px!important;justify-items:center!important;align-content:start!important}
.vertex-v3 #app[data-section] .weather-view .weather-hour-card>strong{display:none!important}
.vertex-v3 #app[data-section] .weather-view .weather-hour-card .weather-mini-icon{margin:2px 0!important}
.vertex-v3 #app[data-section] .weather-view .weather-hour-card>span:not(.weather-mini-icon),.vertex-v3 #app[data-section] .weather-view .weather-hour-card>em{font-size:10px!important;line-height:1.25!important;color:var(--g-muted)!important;margin:0!important}
@media(max-width:759px){
  .vertex-v3 #app[data-section] .weather-view .weather-hour-card{width:76px!important;min-width:76px!important;flex:0 0 76px!important}
  .vertex-v3 #app[data-section] .weather-view .weather-hour-card>em{white-space:normal!important;text-align:center!important}
  .vertex-v3 #app[data-section] .weather-view .weather-days{gap:6px!important}
  .vertex-v3 #app[data-section] .weather-view .weather-days article{display:grid!important;grid-template-columns:auto auto minmax(0,1fr) auto!important;grid-template-rows:auto auto!important;align-items:center!important;column-gap:12px!important;row-gap:4px!important;min-height:0!important;padding:10px 12px!important}
  .vertex-v3 #app[data-section] .weather-view .weather-days article>div{grid-column:1/4!important;grid-row:1!important;display:flex!important;align-items:baseline!important;gap:8px!important;min-width:0!important}
  .vertex-v3 #app[data-section] .weather-view .weather-days article>div b{font-size:14px!important;display:inline-flex!important;align-items:center!important;gap:7px!important}
  .vertex-v3 #app[data-section] .weather-view .weather-days article>div small{font-size:10px!important;color:var(--g-muted)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .vertex-v3 #app[data-section] .weather-view .weather-days article>strong{grid-column:4!important;grid-row:1/3!important;font-size:18px!important;text-align:right!important;white-space:nowrap!important}
  .vertex-v3 #app[data-section] .weather-view .weather-days article>em,.vertex-v3 #app[data-section] .weather-view .weather-days article>span,.vertex-v3 #app[data-section] .weather-view .weather-days article>small{display:block!important;grid-row:2!important;margin:0!important;font-size:10.5px!important;font-style:normal!important;color:var(--g-muted)!important;white-space:nowrap!important;text-align:left!important}
  .vertex-v3 #app[data-section] .weather-view .weather-days article>em{grid-column:1!important}
  .vertex-v3 #app[data-section] .weather-view .weather-days article>span{grid-column:2!important}
  .vertex-v3 #app[data-section] .weather-view .weather-days article>span:before{content:"Wind ";color:var(--g-muted)}
  .vertex-v3 #app[data-section] .weather-view .weather-days article>small{grid-column:3!important}
  .vertex-v3 #app[data-section] .weather-view .weather-days article>small:after{content:" chance";color:var(--g-muted)}
  /* A solid sticky header and tab row: nothing shows through between them. */
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-view>.weather-head{background:var(--g-surface)!important;min-height:74px!important;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
  .vertex-v3 #app[data-explore-view="weather-forecast"] .weather-view>.weather-tabs{top:74px!important;background:var(--g-surface)!important;box-shadow:0 -8px 0 rgba(var(--g-shadow-rgb),0.240),0 8px 14px rgba(var(--g-shadow-rgb),0.240)!important;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
}
/* MapTiler's own logo and attribution sit just above the bottom card. */
.vertex-v3 #app #weatherMapCanvas .maplibregl-ctrl-bottom-left,.vertex-v3 #app #weatherMapCanvas .maplibregl-ctrl-bottom-right{bottom:var(--wxm-bottom-h)}
@media(min-width:760px){
  .vertex-v3 #app .weather-map-view .wxm-top{left:18px;right:auto;width:400px;top:18px}
  .vertex-v3 #app .wxm-layers{justify-self:stretch;width:auto}
  .vertex-v3 #app .wxm-bottom{left:50%;right:auto;bottom:18px;width:min(560px,calc(100% - 36px));transform:translateX(-50%)}
}
/* On phones the Explore map's attribution must not show through under the weather view. */
@media(max-width:759px){
  .vertex-v3 #app[data-h32]:not(#_h) #map .maplibregl-ctrl-bottom-right,
  .vertex-v3 #app[data-h32]:not(#_h) #map .maplibregl-ctrl-bottom-left{display:none}
  /* Bottom sheets cover the map's attribution instead of the attribution covering their rows. */
  .vertex-v3 #app[data-h25]:not(#_h) #map .maplibregl-ctrl-bottom-right,
  .vertex-v3 #app[data-h33]:not(#_h) #map .maplibregl-ctrl-bottom-right,
  .vertex-v3 #app[data-h34]:not(#_h) #map .maplibregl-ctrl-bottom-right{display:none}
}
@media (max-width:760px){
  .vertex-v3 #app #routePlanner .route-planner-actions{display:flex!important;flex-wrap:nowrap!important;gap:6px!important}
  .vertex-v3 #app #routePlanner .route-planner-actions button{flex:1 1 0!important;width:auto!important;grid-area:auto!important;min-height:42px!important;padding:0 8px!important;font-size:13px!important}
  .vertex-v3 #app #routePlanner .route-planner-actions #deleteRoutePoint{order:1!important}.vertex-v3 #app #routePlanner .route-planner-actions #undoRoutePoint{order:2!important}
  .vertex-v3 #app #routePlanner .route-planner-actions #cancelRoute{order:3!important}.vertex-v3 #app #routePlanner .route-planner-actions #savePlannedRoute{order:4!important;flex:1.4 1 0!important;min-height:42px!important;font-size:13px!important}
}
/* Swipe zones: header + grabber take vertical drags instead of scrolling the page. */
.vertex-v3 #app .sheet-swipe-zone{touch-action:none}
.vertex-v3 #app .managed-sheet.sheet-collapsed>.record-head,.vertex-v3 #app .managed-sheet.sheet-collapsed>.route-planner-copy{display:block!important}
.vertex-v3 #app .managed-sheet.sheet-collapsed>.record-head{display:flex!important}
.vertex-v3 #app .route-planner.managed-sheet.sheet-collapsed .route-planner-copy>span{display:none!important}
@media(min-width:760px){.vertex-v3 #app .route-planner.managed-sheet{transform:translateX(-50%) translateY(var(--sheet-drag-y,0px))}}
/* Touch screens rotate with two fingers; the compass (shown only when rotated) resets north. */
@media (hover:none),(pointer:coarse){.vertex-v3 #app #rotateView{display:none!important}}
@keyframes powder-glow{50%{box-shadow:inset 0 0 22px color-mix(in srgb,var(--pw) 48%,transparent);border-color:color-mix(in srgb,var(--pw) 75%,transparent)}}
@media (prefers-reduced-motion:reduce){.vertex-v3 #app #powderAlert{animation:none!important}}
/* Route planner on desktop: a card stacked like the place card, not a wide toolbar. */
@media(min-width:760px){
  .vertex-v3 #app #routePlanner{width:440px!important;max-width:440px!important;padding:6px 16px 16px!important;border-radius:22px!important}
  .vertex-v3 #app #routePlanner .route-planner-actions{display:flex!important;gap:8px!important}
  .vertex-v3 #app #routePlanner .route-planner-actions button{flex:1 1 0!important;min-height:44px!important;font-size:13px!important;order:0!important;grid-column:auto!important}
  .vertex-v3 #app #routePlanner .route-planner-actions #savePlannedRoute{flex:1.4 1 0!important}
}
/* ---------- Look E: map first, one Find button ----------
 * No tab bar. You and Layers sit in the top-right corner, Find tour or area and a small record button at the bottom.
 * Phones fold the place card into a badge in the top-left corner; search opens from Find. */
.vertex-v3 #app .bottom-nav,.vertex-v3 #app .topbar .layers-button,.vertex-v3 #app #terrainToggle,.vertex-v3 #app #rotateView,.vertex-v3 #app #tracksToggle{display:none!important}
.vertex-v3 #app .map-corner{position:fixed;z-index:41;top:var(--v3-mobile-top);right:10px;width:46px;display:flex;flex-direction:column;align-items:center;border:1px solid rgba(var(--g-ink-rgb),0.110);border-radius:999px;background:linear-gradient(180deg,rgba(var(--g-surface-rgb),0.941),rgba(var(--g-surface-rgb),0.949));box-shadow:inset 0 1px 0 #ffffff00,0 8px 22px rgba(var(--g-shadow-rgb),0.180);backdrop-filter:blur(16px);overflow:hidden;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .map-corner button{width:46px;height:48px;padding:0;border:0;background:none;color:var(--g-ink);display:grid;place-items:center;cursor:pointer;--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}
.vertex-v3 #app .map-corner>i{width:26px;height:1px;background:rgba(var(--g-ink-rgb),0.122)}
.vertex-v3 #app .map-corner .ui-icon{width:21px;height:21px}
.vertex-v3 #app .corner-you span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:rgba(var(--g-ink-rgb),0.078);color:var(--g-ink)}
.vertex-v3 #app .corner-you span.initial{background:var(--g-accent);color:var(--g-ink);font-size:15px;font-weight:600;--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .corner-you span .ui-icon{width:19px;height:19px}
.vertex-v3 #app .find-bar{position:fixed;z-index:42;left:12px;right:12px;bottom:calc(10px + var(--v3-safe-bottom));display:flex;align-items:center;gap:10px;pointer-events:none}
.vertex-v3 #app .find-bar>*{pointer-events:auto}
.vertex-v3 #app .find-button{flex:1;min-width:0;height:54px;display:flex;align-items:center;gap:12px;padding:0 20px;border:0;border-radius:999px;background:linear-gradient(180deg,var(--g-raised),var(--g-raised));color:var(--g-contrast);font-size:17px;font-weight:600;box-shadow:0 10px 28px rgba(var(--g-shadow-rgb),0.227);cursor:pointer;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .find-button .ui-icon{width:21px;height:21px;stroke-width:2.4}
.vertex-v3 #app .find-button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vertex-v3 #app .record-fab{flex:none;width:50px;height:50px;border:1px solid rgba(var(--g-ink-rgb),0.110);border-radius:50%;background:linear-gradient(180deg,rgba(var(--g-surface-rgb),0.941),rgba(var(--g-surface-rgb),0.949));box-shadow:0 8px 22px rgba(var(--g-shadow-rgb),0.204);display:grid;place-items:center;cursor:pointer;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .record-fab span{width:15px;height:15px;border-radius:50%;background:var(--ripa-red);color:var(--g-on-accent);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .record-fab.recording-active{background:var(--ripa-red);border-color:var(--ripa-red);color:var(--g-on-accent);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .record-fab.recording-active span{background:var(--g-raised);border-radius:3px;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .place-badge{position:fixed;z-index:41;top:var(--v3-mobile-top);left:10px;max-width:calc(100vw - 86px);height:40px;display:none;align-items:center;gap:8px;padding:0 15px;border:1px solid rgba(var(--g-ink-rgb),0.110);border-radius:999px;background:linear-gradient(180deg,rgba(var(--g-surface-rgb),0.941),rgba(var(--g-surface-rgb),0.949));box-shadow:inset 0 1px 0 #ffffff00,0 8px 22px rgba(var(--g-shadow-rgb),0.180);backdrop-filter:blur(16px);color:var(--g-ink);cursor:pointer;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .place-badge b{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.vertex-v3 #app .place-badge small{flex:none;font-size:13px;font-weight:600;color:var(--g-ink);white-space:nowrap}
.vertex-v3 #app .place-badge small:empty{display:none}
.vertex-v3 #app .place-badge.powder small{color:var(--g-accent)}
.vertex-v3 #app .find-shortcuts{display:none;gap:8px;margin-top:8px;overflow-x:auto;scrollbar-width:none}
.vertex-v3 #app .find-shortcuts button{flex:none;height:38px;display:flex;align-items:center;gap:7px;padding:0 14px;border:1px solid rgba(var(--g-ink-rgb),0.110);border-radius:999px;background:linear-gradient(180deg,rgba(var(--g-surface-rgb),0.941),rgba(var(--g-surface-rgb),0.949));box-shadow:0 6px 18px rgba(var(--g-shadow-rgb),0.157);color:var(--g-ink);font-size:14px;font-weight:600;cursor:pointer;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .find-shortcuts .ui-icon{width:17px;height:17px}
.vertex-v3 #app[data-finding] .find-shortcuts{display:flex}
.vertex-v3 #app[data-finding][data-h35]:not(._h) .find-shortcuts{display:none}
.vertex-v3 #app .find-cancel{display:none}
/* Only the plain map shows the corner, the badge and Find. */
.vertex-v3 #app:not([data-section="explore"]) .find-bar,.vertex-v3 #app:not([data-section="explore"]) .place-badge,
.vertex-v3 #app[data-h36]:not(#_h):not(._h) .find-bar,
.vertex-v3 #app[data-h37]:not(._h) .place-badge{display:none!important}
.vertex-v3 #app[data-h38]:not(._h) .map-corner{display:none!important}
@media(max-width:759px){
  .vertex-v3 #app{--v3-nav-mobile:66px}
  /* Find hides under sheets and cards, so they reach down to the bottom edge. */
  .vertex-v3 #app:not([data-section="explore"]),
  .vertex-v3 #app[data-h36]:not(#_h):not(._h){--v3-nav-mobile:10px}
  .vertex-v3 #app#app .map-tools{top:calc(var(--v3-mobile-top) + 110px)!important;right:10px!important}
  .vertex-v3 #app .map-tools .tool{width:46px!important;height:46px!important;border-radius:999px!important}
  /* The place card folds away completely; the badge brings it back. */
  .vertex-v3 #app .place-card.collapsed{display:none!important}
  .vertex-v3 #app[data-h39]:not(._h) .place-badge{display:flex}
  .vertex-v3 #app:not([data-finding]) .topbar{display:none!important}
  .vertex-v3 #app#app[data-finding] .topbar{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:start!important;left:10px!important;right:10px!important;width:auto!important;max-width:none!important;z-index:60!important}
  .vertex-v3 #app#app[data-finding] .search-wrap{min-width:0!important;width:auto!important;max-width:none!important}
  .vertex-v3 #app[data-finding] .find-cancel{display:block;height:50px;padding:0 2px;border:0;background:none;color:var(--g-ink);font-size:16px;font-weight:600;text-shadow:0 1px 6px rgba(var(--g-shadow-rgb),0.240);cursor:pointer;--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}
  .vertex-v3 #app[data-finding] .map-corner,.vertex-v3 #app[data-finding] .place-badge,.vertex-v3 #app[data-finding] .find-bar,.vertex-v3 #app[data-finding] .map-tools{display:none!important}
  .vertex-v3 #app[data-finding] .search-results{right:0!important}
  .vertex-v3 #app#app:not([data-place-docked]) .maplibregl-ctrl-bottom-right{bottom:calc(var(--v3-content-bottom) + 12px)!important}
}
@media(min-width:760px){
  .vertex-v3 #app{--v3-desktop-rail:0px;--v3-desktop-left:20px}
  .vertex-v3 #app .map-corner{top:20px;right:20px}
  .vertex-v3 #app#app .map-tools{top:132px!important;right:20px!important}
  .vertex-v3 #app .topbar{left:20px!important;max-width:420px!important}
  .vertex-v3 #app .find-bar{display:none!important}
  .vertex-v3 #app .place-badge{display:none!important}
  .vertex-v3 #app#app .app-brand-mark{display:none!important}
  .vertex-v3 #app#app .place-card{left:20px!important}
}
.vertex-v3 #app [hidden],.vertex-v3 #app button[hidden]{display:none!important}

/* Alps library: open ski touring & off-piste tracks inside Discover. */
.vertex-v3 #app .alps-library{margin-bottom:28px;padding-top:22px;border-top:1px solid rgba(var(--g-ink-rgb),0.063)}
.vertex-v3 #app .alps-library-filters{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:2px 0 4px}
.vertex-v3 #app .alps-library-filters::-webkit-scrollbar{display:none}
.vertex-v3 #app .alps-library-filters button{flex:0 0 auto;height:31px;padding:0 12px;border:1px solid rgba(var(--g-ink-rgb),0.078);border-radius:999px;background:rgba(var(--g-ink-rgb),0.027);color:var(--g-muted);font-size:10px;font-weight:600}
.vertex-v3 #app .alps-library-filters button.active{background:var(--g-accent);color:var(--g-contrast);border-color:rgba(var(--g-ink-rgb),0.200);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .community-route-card.library{border-left:3px solid var(--g-accent)}
.vertex-v3 #app .community-route-card.library-offpiste{border-left-color:#ffa24c}
.vertex-v3 #app .community-route-card.library-trail{border-left-color:#c39bff}
.vertex-v3 #app .alps-library-more{width:100%;min-height:42px;margin-top:8px;border:1px solid rgba(var(--g-ink-rgb),0.086);border-radius:14px;background:rgba(var(--g-ink-rgb),0.035);color:var(--g-ink);font-size:11px;font-weight:600}
.vertex-v3 #app .alps-library-more[hidden]{display:none}
.vertex-v3 #app .alps-library-credit{margin:12px 2px 0;color:var(--g-muted);font-size:10px;line-height:1.5}
.vertex-v3 #app .alps-library-credit a,.vertex-v3 #app .route-library-source{color:var(--g-accent)}
.vertex-v3 #app .route-library-source{display:block;margin-top:6px;font-size:11px;font-weight:600;text-decoration:none}
.vertex-v3 #app .route-library-source[hidden]{display:none}
/* Tracks layer on the Explore map: the filter chips, then the count and the way to the list, under the search
   bar and left of the map tools column. */
.vertex-v3 #app .tracks-bar{flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;align-items:flex-start;gap:6px}
.vertex-v3 #app .tracks-bar .tracks-bar-count{justify-self:start!important;width:max-content!important;padding:4px 10px!important;border:1px solid rgba(var(--g-ink-rgb),0.090)!important;border-radius:999px!important;background:rgba(var(--g-surface-rgb),0.867)!important;backdrop-filter:blur(12px)!important;color:var(--g-ink)!important;font-size:11px!important;font-weight:600;white-space:nowrap;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .tracks-bar .tracks-bar-count[hidden]{display:none!important}
.community-map-filters{display:flex;align-items:center;gap:6px;max-width:100%;overflow:hidden;pointer-events:none}
.vertex-v3 #app .community-map-filters .tracks-list-chip{display:inline-flex!important;align-items:center;gap:5px;width:auto!important;min-width:0!important;height:30px!important;min-height:30px!important;padding:0 11px!important;border-radius:999px!important;font-size:10px!important}
.community-map-filters .tracks-list-chip b{padding:1px 6px;border-radius:999px;background:rgba(var(--g-ink-rgb),0.122);color:var(--g-ink);font-size:9px;font-weight:600}
.community-map-filters .tracks-list-chip b[hidden]{display:none}
.community-map-filters button{flex:0 0 auto;pointer-events:auto;height:30px;padding:0 11px;border:1px solid rgba(var(--g-ink-rgb),0.094);border-radius:999px;background:rgba(var(--g-surface-rgb),0.851);color:var(--g-ink);font-size:10px;font-weight:600;backdrop-filter:blur(14px);--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.community-map-filters button.active{background:var(--g-accent);color:var(--g-contrast);border-color:rgba(var(--g-ink-rgb),0.200);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .community-map-filters.compact .chip-short{display:inline!important}
.vertex-v3 #app .community-map-filters.compact .chip-long,.vertex-v3 #app .community-map-filters .chip-short{display:none!important}
.vertex-v3 #app .community-map-filters button>span{background:none!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0!important;min-width:0!important;height:auto!important;color:inherit!important;--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}
.vertex-v3 #app .community-map-filters.compact{gap:5px}
.vertex-v3 #app .community-map-filters.compact button{padding:0 9px!important}
.vertex-v3 #app .map-tools .tracks-toggle{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0!important}
.vertex-v3 #app .map-tools .tracks-toggle span{font-size:14px;line-height:1}
.vertex-v3 #app .map-tools .tracks-toggle small{font-size:8px;font-weight:600;letter-spacing:.02em;line-height:1}
.vertex-v3 #app .map-tools .tracks-toggle.active{background:var(--g-accent)!important;color:var(--g-contrast)!important;--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
/* An open track card takes the place card's spot at the bottom of the map. */
.vertex-v3 #app .place-card.track-card-open{display:none!important}
/* Today: one chip that colours the tracks by today's bulletin on their terrain (green, yellow, red). */
.vertex-v3 #app .community-map-filters .tracks-today-chip{display:inline-flex!important;align-items:center;gap:6px}
.vertex-v3 #app .community-map-filters .tracks-today-chip>i{width:16px;height:6px;border-radius:999px;background:linear-gradient(90deg,#6fdc8c 0 33%,#ffd23f 33% 66%,#ff5a4f 66%);box-shadow:0 0 0 1px rgba(var(--g-shadow-rgb),0.114);color:var(--g-on-accent);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .community-map-filters .tracks-today-chip.active{background:var(--g-accent);color:var(--g-contrast);border-color:rgba(var(--g-ink-rgb),0.200);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
/* The Today line on a library track card. */
.vertex-v3 #app .route-today{display:flex;align-items:center;gap:10px;margin:10px 0 4px;padding:9px 11px;border:1px solid rgba(var(--g-ink-rgb),0.071);border-radius:14px;background:rgba(var(--g-ink-rgb),0.027)}
.vertex-v3 #app .route-today[hidden]{display:none}
.vertex-v3 #app .route-today>i{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:var(--today,var(--g-pressed));box-shadow:0 0 0 3px color-mix(in srgb,var(--today,#8b989b00) 25%,transparent);--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .route-today>span{display:grid;gap:2px;min-width:0}
.vertex-v3 #app .route-today small{font-size:8px;font-weight:600;letter-spacing:.1em;color:var(--g-muted)}
.vertex-v3 #app .route-today b{font-size:12px;font-weight:600;color:var(--g-ink);line-height:1.35}
.vertex-v3 #app .route-today[data-grade="low"]{--today:#6fdc8c}
.vertex-v3 #app .route-today[data-grade="mid"]{--today:#ffd23f}
.vertex-v3 #app .route-today[data-grade="high"]{--today:#ff5a4f}
/* Snow by aspect: one line inside the powder card, with a small rose (north up). */
.vertex-v3 #app .snow-aspects{display:flex;align-items:center;gap:11px;margin:10px 0 2px;padding:9px 10px;border-radius:14px;background:rgba(var(--g-ink-rgb),0.031);border:1px solid rgba(var(--g-ink-rgb),0.059);text-align:left}
.vertex-v3 #app .snow-aspects[hidden]{display:none}
.vertex-v3 #app .snow-aspects[data-state="none"] .snow-rose{display:none}
.vertex-v3 #app .snow-aspects>span:last-child{display:grid;gap:2px;min-width:0}
.vertex-v3 #app .snow-aspects small{font-size:8px;font-weight:600;letter-spacing:.1em;color:var(--g-muted)}
.vertex-v3 #app .snow-aspects b{font-size:12px;font-weight:600;color:var(--g-ink);line-height:1.3}
.vertex-v3 #app .snow-aspects em{font-style:normal;font-size:10px;color:var(--g-muted)}
.vertex-v3 #app .snow-aspects em:empty{display:none}
.vertex-v3 #app .snow-rose{flex:0 0 auto;width:44px;height:44px}
.vertex-v3 #app .snow-rose svg{width:44px;height:44px;display:block}
.vertex-v3 #app .snow-rose path{stroke:var(--g-contrast);stroke-width:1.2;fill:var(--g-muted)}
.vertex-v3 #app .snow-rose path[data-q="powder"]{fill:var(--g-accent)}
.vertex-v3 #app .snow-rose path[data-q="settled"]{fill:#42768a}
.vertex-v3 #app .snow-rose path[data-q="wind"]{fill:#3200cc}
.vertex-v3 #app .snow-rose path[data-q="sun"]{fill:#cc6d00}
.vertex-v3 #app .snow-rose path[data-q="crust"]{fill:#ab3e21}
.vertex-v3 #app .snow-rose circle{fill:var(--g-contrast)}
.vertex-v3 #app .snow-rose text{font-size:6px;font-weight:600;fill:var(--g-contrast);text-anchor:middle}
.vertex-v3 #app #powderCard{grid-template-columns:minmax(0,1fr)!important;justify-items:stretch!important}
/* Phones: the chip row scrolls sideways (with Today it no longer fits next to the map tools),
   short labels, and a fade shows there is more. */
.vertex-v3 #app .community-map-filters.scrolls{overflow-x:auto!important;pointer-events:auto;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-mask-image:linear-gradient(90deg,#fbfbfc calc(100% - 22px),transparent);mask-image:linear-gradient(90deg,#fbfbfc calc(100% - 22px),transparent);padding-right:22px}
.vertex-v3 #app .community-map-filters.scrolls::-webkit-scrollbar{display:none}
.vertex-v3 #app .community-map-filters.scrolls.at-end{-webkit-mask-image:none;mask-image:none}
/* Wind loading: violet lee slopes on the map and one pill that says which way the wind blew. */
.vertex-v3 #app .wind-load-legend{position:fixed;z-index:35;left:var(--v3-desktop-left,20px);bottom:calc(var(--place-card-current-h,214px) + 28px);display:none;align-items:center;gap:10px;max-width:min(330px,calc(100vw - 20px));padding:7px 14px 7px 7px;border:1px solid rgba(var(--g-ink-rgb),0.090);border-radius:999px;background:linear-gradient(180deg,rgba(var(--g-surface-rgb),0.922),rgba(var(--g-surface-rgb),0.933));box-shadow:inset 0 1px 0 #ffffff00,0 10px 26px rgba(var(--g-shadow-rgb),0.204);pointer-events:none;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .wind-load-legend.show{display:flex}
.vertex-v3 #app .wind-load-arrow{--wind-to:0deg;flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#9268ff;color:var(--g-contrast);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .wind-load-arrow[hidden]{display:none}
.vertex-v3 #app .wind-load-arrow svg{width:18px;height:18px;transform:rotate(var(--wind-to))}
.vertex-v3 #app .wind-load-legend>span:not(.wind-load-arrow){display:grid;gap:1px;min-width:0}
.vertex-v3 #app .wind-load-legend small{font-size:8px;font-weight:600;letter-spacing:.1em;color:#2600cc}
.vertex-v3 #app .wind-load-legend b{font-size:12px;font-weight:600;color:var(--g-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vertex-v3 #app .wind-load-legend em{font-style:normal;font-size:10px;color:var(--g-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vertex-v3 #app .wind-load-legend em:empty{display:none}
.vertex-v3 #app .best-snow-legend small{color:var(--g-accent)}
.vertex-v3 #app .best-snow-dot{background:var(--g-accent);color:var(--g-on-accent);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .wind-load-legend .cond-short{display:none;min-width:0;font-size:12px;font-weight:600;color:var(--g-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* A small warning on the wind pill: drifted snow forms slabs. */
.vertex-v3 #app .wind-load-warn{display:inline-flex;align-items:center;gap:4px;color:#cc8900!important}
.vertex-v3 #app .wind-load-warn svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
/* Today's brief: a small labelled button beside the place name, and a short sheet. */
.vertex-v3 #app[data-section] .place-card.place-card .place-card-title:has(.today-brief-button){grid-template-columns:minmax(0,1fr) auto auto!important}
.vertex-v3 #app[data-section] .place-card.place-card .place-card-title .favorite-place{grid-column:3!important}
.vertex-v3 #app .today-brief-button{grid-column:2;justify-self:end;display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 10px 0 8px;border:1px solid #ffd76a55;border-radius:999px;background:#ffd76a1a;color:#cc9600;font-size:11px;font-weight:600;letter-spacing:.01em;white-space:nowrap;cursor:pointer}
.vertex-v3 #app .today-brief-button .ui-icon{width:15px;height:15px}
.vertex-v3 #app .today-brief-button i{font-style:normal;font-size:12px;opacity:.75;margin-left:1px}
.vertex-v3 #app .today-brief-button:hover{background:#ffd76a2b}
.vertex-v3 #app .today-brief-button:focus-visible{outline:2px solid #cc9500;outline-offset:2px}
.vertex-v3 #app .today-brief-body{display:grid;gap:9px}
.vertex-v3 #app .today-brief-sheet .activities-head h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vertex-v3 #app .tb-loading,.vertex-v3 #app .tb-empty{margin:0;font-size:11px;color:var(--g-muted)}
.vertex-v3 #app .tb-choice{margin:0;padding:9px 11px;border-radius:14px;background:#ffd76a14;border:1px solid #ffd76a33;color:#cc9c00;font-size:12px;font-weight:600;line-height:1.35}
.vertex-v3 #app .tb-row{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border:1px solid rgba(var(--g-ink-rgb),0.051);border-radius:14px;background:rgba(var(--g-ink-rgb),0.020)}
.vertex-v3 #app .tb-row>div{display:grid;gap:2px;min-width:0}
.vertex-v3 #app .tb-row b{font-size:12px;color:var(--g-ink)}
.vertex-v3 #app .tb-row small{font-size:10px;line-height:1.35;color:var(--g-muted)}
.vertex-v3 #app .tb-row .avalanche-level.small{flex:0 0 24px}
.vertex-v3 #app .tb-icon{flex:0 0 24px;width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:rgba(var(--g-accent-rgb),0.133);color:var(--g-accent);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .tb-row[data-kind="light"] .tb-icon{background:#f6c95e22;color:#c18b0b}
.vertex-v3 #app .tb-icon .ui-icon{width:15px;height:15px}
.vertex-v3 #app .tb-lines{display:grid;gap:5px}
.vertex-v3 #app .tb-label{font-size:7px;font-weight:600;letter-spacing:.1em;color:var(--g-muted)}
.vertex-v3 #app .tb-line{display:flex;align-items:center;gap:9px;width:100%;min-height:44px;padding:6px 10px;border:1px solid rgba(var(--g-ink-rgb),0.063);border-radius:14px;background:rgba(var(--g-ink-rgb),0.027);color:inherit;text-align:left;cursor:pointer}
.vertex-v3 #app .tb-line i{flex:0 0 10px;width:10px;height:10px;border-radius:50%}
.vertex-v3 #app .tb-line>span{display:grid;gap:1px;min-width:0;flex:1}
.vertex-v3 #app .tb-line b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vertex-v3 #app .tb-line small{font-size:10px;color:var(--g-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vertex-v3 #app .tb-line em{font-style:normal;color:var(--g-muted)}
.vertex-v3 #app .tb-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:9px;border-top:1px solid rgba(var(--g-ink-rgb),0.071);font-size:9px;line-height:1.4;color:var(--g-muted)}
.vertex-v3 #app .tb-foot button{flex:0 0 auto;min-height:34px;padding:0 11px;border-radius:10px;background:var(--g-raised);color:var(--g-contrast);border:1px solid rgba(var(--g-ink-rgb),0.110);font-weight:600;font-size:11px;cursor:pointer;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
/* Privacy Policy links: under the sign-in tabs and in Settings → Account. */
.auth-gate-legal{margin:12px 0 0;text-align:center;font-size:12px;color:var(--g-muted)}
.auth-gate-legal a{color:var(--g-contrast);text-decoration:underline;text-underline-offset:2px}
.vertex-v3 #app .settings-account .account-link{display:flex;align-items:center;justify-content:center;text-decoration:none}
/* Measured snow from the nearest open-data station, under the elevation cards. */
.vertex-v3 #app .weather-station{display:flex;align-items:center;gap:12px;margin:8px auto 0;padding:10px 13px;border:1px solid rgba(var(--g-ink-rgb),0.071);border-radius:14px;background:var(--g-surface);color:var(--g-muted);font-size:11px;line-height:1.35;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .weather-station>span:first-child{flex:0 0 auto;display:grid;gap:2px}
.vertex-v3 #app .weather-station small{color:var(--g-muted);font-size:8px;font-weight:600;letter-spacing:.09em}
.vertex-v3 #app .weather-station b{color:var(--g-ink);font-size:17px;letter-spacing:-.02em}
.vertex-v3 #app .weather-station>span:last-child{min-width:0}
.vertex-v3 #app .weather-station em{display:block;margin-top:2px;color:var(--g-muted);font-style:normal;font-size:9px}
.vertex-v3 #app .weather-station[hidden]{display:none}
.vertex-v3 #app .weather-source a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.vertex-v3 #app .layer-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 0 10px}
.vertex-v3 #app .layer-preset{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:64px;padding:11px 12px;border-radius:14px;border:1px solid rgba(var(--g-ink-rgb),0.102);background:linear-gradient(180deg,var(--g-surface),var(--g-surface));color:var(--g-ink);text-align:left;cursor:pointer;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .layer-preset b{font-size:14px;font-weight:600;letter-spacing:-.01em}
.vertex-v3 #app .layer-preset small{font-size:11px;line-height:1.25;color:var(--g-muted)}
.vertex-v3 #app .layer-preset.active{background:linear-gradient(180deg,var(--g-raised),var(--g-raised));border-color:rgba(var(--g-ink-rgb),0.200);color:var(--g-contrast);--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .layer-preset.active small{color:var(--g-muted)}
.vertex-v3 #app .avalanche-mode{display:flex;gap:6px;margin:-2px 0 8px 66px}
.vertex-v3 #app .avalanche-mode[hidden]{display:none}
.vertex-v3 #app .avalanche-mode button{flex:0 0 auto;padding:7px 13px;border-radius:999px;border:1px solid rgba(var(--g-ink-rgb),0.133);background:rgba(var(--g-ink-rgb),0.051);color:var(--g-ink);font-size:12px;font-weight:600;cursor:pointer}
.vertex-v3 #app .avalanche-mode button.active{background:linear-gradient(180deg,var(--g-raised),var(--g-raised));border-color:rgba(var(--g-ink-rgb),0.200);color:var(--g-contrast);--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .avalanche-mode .pro-badge{font-size:8px}
.vertex-v3 #app .route-planner-terrain{display:grid;gap:5px;margin-top:8px}
.vertex-v3 #app .route-planner-terrain[hidden]{display:none}
.vertex-v3 #app .route-planner-terrain>span{font-size:12px;line-height:1.35;color:var(--g-ink)}
.vertex-v3 #app .route-planner-today{display:flex;align-items:center;gap:8px}
.vertex-v3 #app .route-planner-today i{flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--today,var(--g-pressed));--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .route-planner-today em{font-style:normal;min-width:0}
.vertex-v3 #app .route-planner-today[data-grade="low"]{--today:#6fdc8c}
.vertex-v3 #app .route-planner-today[data-grade="mid"]{--today:#ffd23f}
.vertex-v3 #app .route-planner-today[data-grade="high"]{--today:#ff5a4f}

/* Clean-up: titles stand on their own (no eyebrow labels), and rows without a live status show only their name. */
.vertex-v3 #app .panel-head>div>small,.vertex-v3 #app .activities-head>div>small,.vertex-v3 #app #placeKindLabel,.vertex-v3 #app .route-planner-copy>small{display:none!important}
.vertex-v3 #app .layer-row small:empty,.vertex-v3 #app .record-head small:empty{display:none!important}
.vertex-v3 #app[data-section="record"] .record-choice{min-height:64px!important}
/* Powder is the good news: one icy blue for it everywhere, and it glows. */
.vertex-v3 #app{--powder:#53d1ff}
/* Inset glow: the card clips anything outside it, which drew a hard-edged band around the alert. */
.vertex-v3 #app #powderAlert{box-shadow:inset 0 0 14px color-mix(in srgb,var(--pw) 28%,transparent);animation:powder-glow 2.8s ease-in-out infinite}
.vertex-v3 #app #powderAlert b{color:var(--g-ink)}
.vertex-v3 #app #resortStatus .powder-hot b{color:var(--powder)!important;text-shadow:0 0 12px color-mix(in srgb,var(--powder) 60%,transparent)}
.vertex-v3 #app #resortStatus .powder-hot small{color:color-mix(in srgb,var(--powder) 75%,var(--g-ink))!important}
.vertex-v3 #app #powderCard{margin:0 0 12px!important;border-color:color-mix(in srgb,var(--powder) 30%,transparent)!important}
.vertex-v3 #app #powderCard:not([data-level="none"]){box-shadow:0 0 26px color-mix(in srgb,var(--powder) 22%,transparent)}
.vertex-v3 #app #powderCard #powderAmount{font-size:40px!important}
.vertex-v3 #app #powderCard .powder-card-foot strong{color:var(--powder)}
.vertex-v3 #app .tb-row[data-kind="powder"]{border:1px solid color-mix(in srgb,var(--powder) 45%,transparent);background:linear-gradient(90deg,color-mix(in srgb,var(--powder) 16%,transparent),transparent)}
.vertex-v3 #app .tb-row[data-kind="powder"] .tb-icon{color:var(--powder)}
.vertex-v3 #app .tb-row[data-kind="powder"] b{color:var(--g-ink)}
.vertex-v3 #app .layer-preset.active[data-layer-preset="powder"]{border-color:color-mix(in srgb,var(--powder) 40%,transparent)}
.vertex-v3 #app .layer-preset.active[data-layer-preset="powder"] b{color:var(--powder)}

/* While a card is dragged up, its own background continues below it, so no gap to the map opens under the card. */
.vertex-v3 #app .place-card.dragging{box-shadow:0 120px 0 0 rgba(var(--g-shadow-rgb),0.240)!important}
.vertex-v3 #app .managed-sheet.sheet-dragging{box-shadow:0 120px 0 0 rgba(var(--g-shadow-rgb),0.240)!important}
/* Map mode pill: what the map is showing, one tap back to your own layers. Sits just above the place card. */
.vertex-v3 #app .layer-mode-pill{position:absolute;z-index:6;left:50%;transform:translateX(-50%);bottom:calc(var(--place-card-current-h,0px) + 88px);display:flex;align-items:center;gap:6px;padding:5px 5px 5px 14px;border-radius:999px;background:rgba(var(--g-surface-rgb),0.922);border:1px solid rgba(var(--g-ink-rgb),0.165);color:var(--g-ink);font-size:13px;font-weight:600;box-shadow:0 6px 18px rgba(var(--g-shadow-rgb),0.180);backdrop-filter:blur(14px);white-space:nowrap;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .layer-mode-pill[data-mode="powder"]{border-color:color-mix(in srgb,var(--powder) 60%,transparent);color:var(--powder)}
.vertex-v3 #app .layer-mode-pill button{border:0;border-radius:999px;background:rgba(var(--g-ink-rgb),0.078);color:var(--g-ink);font:inherit;font-size:12px;min-height:30px;padding:0 11px;cursor:pointer}
.vertex-v3 #app .layer-mode-pill #layerModeExit{width:30px;padding:0}
.vertex-v3 #app .layer-mode-pill #layerModeFinder{background:color-mix(in srgb,var(--powder) 22%,transparent);color:var(--powder)}
/* Settings: one text size for every row, compact account actions. */
.vertex-v3 #app .settings-sheet .settings-section>label,.vertex-v3 #app .settings-sheet .settings-toggle>span{font-size:14px!important;font-weight:600!important;line-height:1.3!important}
.vertex-v3 #app .settings-sheet .settings-toggle>span small{display:block!important;margin-top:2px!important;font-size:12px!important;font-weight:500!important;color:rgba(var(--g-ink-rgb),0.850)!important;letter-spacing:0!important;text-transform:none!important}
.vertex-v3 #app .settings-sheet .settings-toggle input{accent-color:var(--g-raised)!important;width:22px!important;height:22px!important}
.vertex-v3 #app .settings-sheet #settingsUpgrade{font-size:14px!important;min-height:38px!important;padding:0 16px!important}
.vertex-v3 #app .settings-sheet .settings-account .account-secondary,.vertex-v3 #app .settings-sheet .settings-account .account-delete{min-height:48px!important;font-size:15px!important;font-weight:600!important}
/* Sign-in: the placeholders name the fields; buttons read at the same size as the inputs. */
.auth-gate .auth-gate-card>label{font-size:0!important;gap:0!important}
.auth-gate .auth-gate-card input{font-size:16px!important}
.auth-gate .auth-gate-note:empty{display:none!important}
.auth-gate .auth-gate-primary,.auth-gate .auth-gate-tabs button{font-size:15px!important}
/* The Pro sheet covers what opened it; the layer list must not show through. */
.vertex-v3 #app .pro-upsell-sheet{background:var(--g-surface)!important;backdrop-filter:none!important;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
/* Powder forecast legend: when new snow reaches each elevation band. */
.vertex-v3 #app .powder-legend{position:fixed;z-index:35;display:none;align-items:center;justify-content:center;gap:10px;min-height:36px;padding:6px 12px;border-radius:999px;background:rgba(var(--g-surface-rgb),0.922);border:1px solid rgba(var(--g-ink-rgb),0.133);box-shadow:0 6px 18px rgba(var(--g-shadow-rgb),0.149);backdrop-filter:blur(14px);color:var(--g-ink);font-size:12px;white-space:nowrap;pointer-events:none;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .powder-legend.show{display:flex}
.vertex-v3 #app .powder-legend small{font-size:9px;font-weight:600;letter-spacing:.12em;color:#cc0061}
.vertex-v3 #app .powder-legend span{display:flex;align-items:center;gap:5px}
.vertex-v3 #app .powder-legend span[hidden]{display:none}
.vertex-v3 #app .powder-legend i{width:10px;height:10px;border-radius:3px}
.vertex-v3 #app .powder-legend .p24{background:#ff4fa3;color:var(--g-on-accent);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .powder-legend .p48{background:#ff9a3c;color:var(--g-on-accent);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .powder-legend .p72{background:#ffd84a}
.vertex-v3 #app .powder-legend b{font-weight:600}
/* Avalanche card with no warning out: a calm tick, not a danger badge. */
.vertex-v3 #app .avalanche-chip-icon.no-warning{background:rgba(var(--g-ink-rgb),0.071);color:var(--g-ink)}
.vertex-v3 #app .avalanche-chip-icon.no-warning .ui-icon{width:18px;height:18px;stroke-width:2.4}
.vertex-v3 #app .avalanche-chip[data-no-warning="true"] b{color:var(--g-ink)}
/* Open place card: room for the powder alert plus Weather/Avalanche, so the last row is never clipped. */
.vertex-v3 #app .place-card:not(.collapsed) .place-card-content{max-height:440px!important}
/* Route planner: Draw or Safe line. */
.vertex-v3 #app .route-planner-mode{display:flex!important;gap:4px;margin:0 0 8px;padding:3px;border-radius:14px;background:rgba(var(--g-ink-rgb),0.051);width:max-content}
.vertex-v3 #app .route-planner-mode button{height:30px;padding:0 14px;border:0;border-radius:10px;background:transparent;color:var(--g-muted);font-size:13px;font-weight:600;--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}
.vertex-v3 #app .route-planner-mode button[aria-pressed="true"]{background:var(--g-raised);color:var(--g-contrast);--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .safe-line-legend{display:flex!important;flex-wrap:wrap;gap:4px 12px;font-size:11.5px!important;color:var(--g-muted)!important}
.vertex-v3 #app .safe-line-legend[hidden]{display:none!important}
.vertex-v3 #app .safe-line-legend em{display:inline-flex;align-items:center;gap:5px;font-style:normal}
.vertex-v3 #app .safe-line-legend i{width:14px;height:4px;border-radius:999px;box-shadow:0 0 0 1px #0f1f2973}
.vertex-v3 #app .safe-line-legend .up{background:var(--g-accent);color:var(--g-on-accent);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .safe-line-legend .down{background:var(--g-raised);--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .safe-line-legend .caution{background:#ffc137;color:var(--g-on-accent);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .safe-line-legend .danger{background:#ef4b2d;color:var(--g-on-accent);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
/* Route planner: one column everywhere, same type scale as the place card. */
.vertex-v3 #app #routePlanner{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:0!important}
.vertex-v3 #app #routePlanner[hidden]{display:none!important}
.vertex-v3 #app #routePlanner .route-planner-copy{display:flex!important;flex-direction:column!important;gap:4px!important;width:100%!important;margin:0 0 12px!important}
.vertex-v3 #app #routePlanner .route-planner-copy>b{font-size:17px!important;font-weight:600!important;line-height:1.25!important;white-space:normal!important;overflow:visible!important}
.vertex-v3 #app #routePlanner .route-planner-copy>span{display:block!important;font-size:12.5px!important;color:var(--g-muted)!important;line-height:1.35!important}
.vertex-v3 #app #routePlanner .route-planner-mode{margin:2px 0 10px!important}
.vertex-v3 #app #routePlanner .safe-line-stats{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));margin:10px 0 2px;border-top:1px solid rgba(var(--g-ink-rgb),0.071);border-bottom:1px solid rgba(var(--g-ink-rgb),0.071)}
.vertex-v3 #app #routePlanner .safe-line-stats[hidden]{display:none!important}
.vertex-v3 #app #routePlanner .safe-line-stats span{display:flex!important;flex-direction:column;gap:3px;padding:10px 0!important}
.vertex-v3 #app #routePlanner .safe-line-stats span+span{padding-left:14px!important;border-left:1px solid rgba(var(--g-ink-rgb),0.071)}
.vertex-v3 #app #routePlanner .safe-line-stats b{font-size:16px!important;font-weight:600;color:var(--g-ink)}
.vertex-v3 #app #routePlanner .safe-line-stats small{font-size:10px!important}
.vertex-v3 #app #routePlanner .route-planner-terrain{gap:8px!important;margin-top:10px!important}
.vertex-v3 #app #routePlanner .route-planner-terrain>span{display:flex!important;font-size:13px!important;color:var(--g-ink)!important}
.vertex-v3 #app #routePlanner .route-planner-terrain>span.safe-line-legend{display:flex!important;font-size:11.5px!important;color:var(--g-muted)!important}
.vertex-v3 #app #routePlanner .route-planner-terrain>span[hidden]{display:none!important}
.vertex-v3 #app #routePlanner .safe-line-start{display:flex!important;align-items:center;gap:8px;margin-top:6px;font-size:12.5px;color:var(--g-muted)}
.vertex-v3 #app #routePlanner .safe-line-start[hidden]{display:none!important}
.vertex-v3 #app #routePlanner .safe-line-start input{height:30px;padding:0 10px;border:1px solid rgba(var(--g-ink-rgb),0.110);border-radius:10px;background:rgba(var(--g-ink-rgb),0.051);color:var(--g-ink);font:inherit;font-size:13px;font-weight:600;color-scheme:light}
/* Track card over the map: the elevation profile shows straight away, compact. */
.vertex-v3 #app .route-detail.community-map-card{max-height:min(400px,56dvh)!important}
.vertex-v3 #app .route-detail.community-map-card .route-profile-head{display:flex!important;margin-top:4px!important}
.vertex-v3 #app .route-detail.community-map-card .route-elevation-profile{display:block!important;height:78px!important}
/* Track card from the map: one clear action ("Go on this tour"), saving is the quiet second choice. */
.vertex-v3 #app .route-detail.community-map-card .route-detail-actions{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}
.vertex-v3 #app .route-detail-actions .route-go:not([hidden]){grid-column:auto!important;min-height:46px;border:0!important;border-radius:14px!important;background:linear-gradient(180deg,var(--g-raised) 0%,var(--g-raised) 100%)!important;color:var(--g-contrast)!important;box-shadow:inset 0 -1px 0 rgba(var(--g-shadow-rgb),0.035),0 8px 22px rgba(var(--g-shadow-rgb),0.157)!important;font-weight:600!important;font-size:15px!important;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .route-detail.community-map-card .route-community-save:not([hidden]){grid-column:auto!important;min-height:46px;padding:0 16px!important;border:1px solid rgba(var(--g-ink-rgb),0.110)!important;background:rgba(var(--g-ink-rgb),0.063)!important;color:var(--g-ink)!important;box-shadow:none!important;font-weight:600!important}
/* Today's tour: pinned over the map with Start, above the place card. */
.vertex-v3 #app .today-tour-pill{position:absolute;z-index:6;left:50%;transform:translateX(-50%);bottom:calc(var(--place-card-current-h,0px) + 88px);display:flex;align-items:center;gap:6px;max-width:calc(100vw - 24px);padding:5px;border-radius:999px;background:linear-gradient(180deg,rgba(var(--g-surface-rgb),0.961),rgba(var(--g-surface-rgb),0.973));border:1px solid rgba(var(--g-ink-rgb),0.141);box-shadow:inset 0 1px 0 #ffffff00,0 10px 26px rgba(var(--g-shadow-rgb),0.239);backdrop-filter:blur(14px);--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .today-tour-pill button{border:0;font:inherit;cursor:pointer}
.vertex-v3 #app .today-tour-name{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:2px 10px 2px 12px;background:none;color:var(--g-ink);text-align:left;--g-contrast:inherit;--g-secondary-contrast:inherit;--ui-on-dark:inherit;}
.vertex-v3 #app .today-tour-name small{font-size:9px;font-weight:600;letter-spacing:.09em;color:var(--g-accent)}
.vertex-v3 #app .today-tour-name b{max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600}
.vertex-v3 #app .today-tour-start{min-height:38px;padding:0 18px;border-radius:999px;background:linear-gradient(180deg,var(--g-raised),var(--g-raised));color:var(--g-contrast);font-size:14px;font-weight:600;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .today-tour-clear{width:34px;height:34px;border-radius:50%;background:rgba(var(--g-ink-rgb),0.071);color:var(--g-ink);font-size:13px}
.vertex-v3 #app:not([data-section="explore"]) .today-tour-pill,.vertex-v3 #app[data-h13]:not(._h) .today-tour-pill,.vertex-v3 #app[data-h18]:not(._h) .today-tour-pill{display:none}
.vertex-v3 #app[data-h40]:not(._h) .layer-mode-pill{bottom:calc(var(--place-card-current-h,0px) + 146px)}
/* Best tours today: numbered dot in the bulletin's colour, the snow line first. */
.vertex-v3 #app .tb-line.tb-best{align-items:flex-start;padding:8px 10px}
.vertex-v3 #app .tb-line.tb-best i{flex:0 0 20px;width:20px;height:20px;margin-top:1px;display:grid;place-items:center;font:600 11px/1 var(--font-sans);font-style:normal;color:var(--g-ink)}
.vertex-v3 #app .tb-line.tb-best small{white-space:normal}
.vertex-v3 #app .tb-line.tb-best .tb-why-snow{color:inherit;opacity:.9}
.vertex-v3 #app .tb-how{font-size:10px;color:var(--g-muted);line-height:1.35}
.vertex-v3 #app#app#app#app#app#app#app #shareActivity{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--g-raised)!important;border:1px solid rgba(var(--g-ink-rgb),0.078)!important;color:var(--g-contrast)!important;--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app #shareActivity .ui-icon{width:17px;height:17px}
.vertex-v3 #app .recap-preview{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));background:rgba(var(--g-base-rgb),0.780);--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .recap-preview[hidden]{display:none}
.vertex-v3 #app .recap-card{display:grid;gap:12px;width:min(100%,420px);max-height:100%}
.vertex-v3 #app .recap-card img{width:100%;max-height:calc(100dvh - 120px);object-fit:contain;border-radius:22px;background:var(--g-base);--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .recap-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}
.vertex-v3 #app .recap-actions button{min-height:48px;border-radius:14px;border:0;font:600 15px/1 var(--font-sans);background:var(--g-raised);color:var(--g-contrast);--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
.vertex-v3 #app .recap-actions #recapShare{background:var(--g-accent);color:var(--g-contrast);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .recap-locals{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:0 16px;border:0;border-radius:999px;background:var(--g-accent);color:var(--g-contrast);font:600 15px/1 var(--font-sans);--g-contrast:var(--g-on-accent);--g-secondary-contrast:var(--g-on-accent);--ui-on-dark:var(--g-on-accent);}
.vertex-v3 #app .recap-locals[hidden],.vertex-v3 #app .recap-locals-note[hidden]{display:none}
.vertex-v3 #app .recap-locals b{font-weight:600}
.vertex-v3 #app .recap-locals small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:500 14px/1 var(--font-sans);opacity:.85}
.vertex-v3 #app .recap-locals-note{margin:-4px 4px 0;text-align:center;font:400 12.5px/1.4 var(--font-sans);color:var(--g-muted)}
/* Post to Locals under the share picture: it becomes the one petrol action, Share turns grey. */
.vertex-v3 #app .recap-card:has(#recapLocals:not([hidden])) img{max-height:calc(100dvh - 210px)}
.vertex-v3 #app .recap-card:has(#recapLocals:not([hidden])) .recap-actions #recapShare{background:var(--g-raised);color:var(--g-contrast);--g-contrast:var(--g-ink);--g-secondary-contrast:var(--g-muted);--ui-on-dark:var(--g-ink);}
