/* Global shell migration owner, 2026-07-26: header, mobile nav and footer. */
:root {
  --global-nav-idle:#684cff;
  --global-nav-idle-surface:#eeeaff;
  --global-nav-hover:#5635e8;
  --global-nav-hover-surface:#e3dcff;
  --global-nav-active:#684cff;
  --global-nav-active-text:#fff;
  --global-nav-mobile-idle:#b7a8f8;
}

html {
  scrollbar-width:none;
  -ms-overflow-style:none;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
  width:0;
  height:0;
  display:none;
}

#app > .global-header,
body.day-mode #app > .global-header,
body.night-mode #app > .global-header  {
  position:fixed;
  z-index:300;
  top:0;
  right:0;
  left:0;
  display:flex;
  width:100%;
  height:48px;
  min-height:48px;
  align-items:center;
  justify-content:center;
  padding:0;
  background:#050505;
  box-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
body.day-mode #app > .global-header  {
  background:#f5f5f7;
}
#app > .global-footer .footer-brand-logo {
  display:block;
  width:clamp(132px,14vw,190px);
  height:auto;
}
#app > .global-header .global-nav-inner  {
  position:absolute;
  top:0;
  left:calc((100vw - min(1360px,calc(100vw - 64px))) / 2);
  display:grid;
  grid-template-columns:auto 1fr auto;
  width:min(1360px,calc(100vw - 64px));
  max-width:1360px;
  height:100%;
  align-items:center;
  margin:0;
  padding:0;
  box-sizing:border-box;
}
#app > .global-header .topbar-brand  {
  display:flex;
  height:100%;
  align-items:center;
  grid-column:1;
  justify-self:start;
  margin:0;
}
#app > .global-header .topbar-brand .brand {
  display:flex;
  min-height:40px;
  align-items:center;
  margin:0;
}
#app > .global-header .topbar-brand .brand-logo {
  display:block;
  margin:0;
}
#app > .global-header .topbar-brand .brand-logo {
  width:164px;
  max-width:100%;
  height:auto;
  max-height:36px;
}
#app > .global-header .main-nav  {
  position:absolute;
  top:50%;
  left:50%;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:center;
  justify-self:center;
  gap:6px;
  margin:0;
  padding:0;
  background:transparent;
  box-shadow:none;
  transform:translate(-50%,-50%);
}
#app > .global-header .menu-toggle,
#app > .global-header .topbar-nav {
  display:none;
}
#app > .global-header .main-nav a,
body.day-mode #app > .global-header .main-nav a,
body.night-mode #app > .global-header .main-nav a  {
  display:inline-flex;
  height:40px;
  min-height:40px;
  align-items:center;
  border:0;
  border-radius:999px;
  padding:0 14px;
  background:var(--global-nav-idle-surface);
  color:var(--global-nav-idle);
  font-size:11px;
  font-weight:700;
  box-shadow:none;
  transition:background-color .18s ease,color .18s ease,transform .18s ease;
}
#app > .global-header .main-nav a:not(.active):hover,
#app > .global-header .main-nav a:not(.active):focus-visible {
  background:var(--global-nav-hover-surface);
  color:var(--global-nav-hover);
}
#app > .global-header .main-nav a:focus-visible {
  outline:2px solid color-mix(in srgb,var(--global-nav-active) 42%,transparent);
  outline-offset:2px;
}
#app > .global-header .main-nav a:active {
  transform:scale(.97);
}
body.night-mode #app > .global-header .main-nav a  {
  background:rgba(104,76,255,.18);
  color:#ae9fff;
}
#app > .global-header .main-nav a.active,
body.day-mode #app > .global-header .main-nav a.active,
body.night-mode #app > .global-header .main-nav a.active  {
  background:var(--global-nav-active);
  color:var(--global-nav-active-text);
}
#app > .global-header .main-nav a span {
  color:inherit;
}
#app > .global-header .topbar-actions  {
  display:flex;
  height:100%;
  align-items:center;
  gap:6px;
  grid-column:3;
  justify-self:end;
  margin:0;
}
#app > .global-header .account-nav {
  position:relative;
  display:flex;
  height:40px;
  align-items:center;
  gap:6px;
}
#app > .global-header .account-nav-trigger,
body.day-mode #app > .global-header .account-nav-trigger,
body.night-mode #app > .global-header .account-nav-trigger  {
  display:flex;
  height:40px;
  min-height:40px;
  align-items:center;
  gap:5px;
  border:0;
  border-radius:999px;
  padding:0 9px 0 6px;
  background:var(--global-nav-idle-surface);
  color:#2f255f;
  -webkit-text-fill-color:#2f255f;
  box-shadow:none;
  transition:background-color .18s ease,transform .18s ease;
}
#app > .global-header .account-nav-trigger:hover,
#app > .global-header .account-nav-trigger:focus-visible,
body.day-mode #app > .global-header .account-nav-trigger:hover,
body.day-mode #app > .global-header .account-nav-trigger:focus-visible,
body.night-mode #app > .global-header .account-nav-trigger:hover,
body.night-mode #app > .global-header .account-nav-trigger:focus-visible {
  background:var(--global-nav-hover-surface);
}
#app > .global-header .account-nav-trigger:focus-visible {
  outline:2px solid color-mix(in srgb,var(--global-nav-active) 42%,transparent);
  outline-offset:2px;
}
#app > .global-header .account-nav-trigger:active {
  transform:scale(.97);
}

body.night-mode #app > .global-header .account-nav-trigger{
  border:1px solid #2d2938;
  background:#17171b;
  color:#c1b5ff;
  -webkit-text-fill-color:#c1b5ff;
}

body.night-mode #app > .global-header .account-nav-trigger:hover,
body.night-mode #app > .global-header .account-nav-trigger:focus-visible{
  background:#211c2c;
}
#app > .global-header .account-nav-trigger .account-nav-avatar  {
  width:28px;
  height:28px;
  flex:0 0 28px;
  overflow:hidden;
  border-radius:50%;
}
#app > .global-header .account-nav-trigger .account-nav-avatar img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
#app > .global-header .account-nav-trigger > i {
  color:inherit;
  font-size:10px;
  font-style:normal;
  line-height:1;
}
#app > .global-header .night-hello-bell {
  position:relative;
  display:grid;
  width:40px;
  height:40px;
  place-items:center;
  border:0;
  border-radius:50%;
  background:transparent;
  color:var(--global-nav-active);
  transition:background-color .18s ease,color .18s ease,transform .18s ease;
}
body.night-mode #app > .global-header .night-hello-bell {
  color:#f5f5f7;
}
#app > .global-header .night-hello-bell:hover,
#app > .global-header .night-hello-bell:focus-visible {
  background:var(--global-nav-hover-surface);
  color:var(--global-nav-hover);
}
body.night-mode #app > .global-header .night-hello-bell:hover,
body.night-mode #app > .global-header .night-hello-bell:focus-visible {
  background:rgba(255,255,255,.12);
  color:#c8bdff;
}
#app > .global-header .night-hello-bell:active {
  transform:scale(.95);
}
#app > .global-header .night-hello-bell svg {
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
#app > .global-header .night-hello-badge,
#app > .global-header .account-nav .night-hello-badge {
  position:absolute;
  top:-2px;
  right:-1px;
  border:2px solid #f5f5f7;
}
#app > .global-header .account-dropdown {
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  z-index:320;
  display:grid;
  width:min(264px,calc(100vw - 32px));
  padding:8px;
  border:0;
  border-radius:18px;
  background:#f5f5f7;
  color:#191919;
  box-shadow:0 16px 40px rgba(38,28,112,.16);
}
body.night-mode #app > .global-header .account-dropdown {
  border:1px solid rgba(255,255,255,.12);
  background:#17171b;
  color:#f5f5f7;
  box-shadow:0 20px 48px rgba(0,0,0,.5);
}
#app > .global-header .account-dropdown[hidden] {
  display:none;
}
#app > .global-header .account-dropdown a {
  display:flex;
  min-height:42px;
  align-items:center;
  gap:10px;
  margin-bottom:4px;
  padding:0 14px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--global-nav-idle);
  font-weight:800;
  line-height:1;
  text-decoration:none;
}
body.night-mode #app > .global-header .account-dropdown a {
  color:#b7a8f8;
}
#app > .global-header .account-dropdown a:hover,
#app > .global-header .account-dropdown a:focus-visible,
#app > .global-header .account-dropdown a[aria-current="page"] {
  background:var(--global-nav-hover-surface);
  color:var(--global-nav-hover);
}
body.night-mode #app > .global-header .account-dropdown a:hover,
body.night-mode #app > .global-header .account-dropdown a:focus-visible {
  background:rgba(104,76,255,.18);
  color:#d5cdff;
}
body.night-mode #app > .global-header .account-dropdown a[aria-current="page"] {
  background:#684cff;
  color:#fff;
}
#app > .global-header .account-dropdown a svg,
#app > .global-header .account-dropdown-signout svg {
  display:block;
  width:20px;
  height:20px;
  flex:0 0 20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
#app > .global-header .account-dropdown-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-top:2px;
  padding-top:8px;
  border-top:1px solid rgba(104,76,255,.18);
}
body.night-mode #app > .global-header .account-dropdown-footer {
  border-top-color:rgba(255,255,255,.12);
}
#app > .global-header .account-dropdown-signout {
  display:flex;
  min-height:38px;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:0;
  border-radius:999px;
  padding:0 12px;
  background:transparent;
  color:#b76565;
  font-weight:800;
}
#app > .global-header .account-dropdown-signout:hover,
#app > .global-header .account-dropdown-signout:focus-visible {
  background:rgba(183,101,101,.1);
  color:#a75454;
}
body.night-mode #app > .global-header .account-dropdown-signout {
  color:#ef9b9b;
}
body.night-mode #app > .global-header .account-dropdown-signout:hover,
body.night-mode #app > .global-header .account-dropdown-signout:focus-visible {
  background:rgba(239,155,155,.12);
  color:#ffc0c0;
}
#app > .global-footer  {
  width:100%;
  max-width:none;
  overflow-x:hidden;
}
@media (min-width:720px) and (max-width:1023px)  {
  #app > .global-header .global-nav-inner  {
    left:24px;
    width:calc(100vw - 48px);
  }
}
@media (max-width:719px)  {
  #app > .global-header,
  body.day-mode #app > .global-header,
  body.night-mode #app > .global-header  {
    height:52px;
    min-height:52px;
    justify-content:flex-start;
  }
  #app > .global-header .global-nav-inner  {
    position:relative;
    top:auto;
    left:auto;
    display:flex;
    width:100%;
    max-width:none;
    height:44px;
    margin:0;
    padding-right:max(16px,env(safe-area-inset-right));
    padding-left:max(16px,env(safe-area-inset-left));
  }
  #app > .global-header .main-nav  {
    display:none;
  }
  #app > .global-header .topbar-actions  {
    margin-left:auto;
  }
  #app > .global-header .account-nav-trigger,
  body.day-mode #app > .global-header .account-nav-trigger,
  body.night-mode #app > .global-header .account-nav-trigger  {
    height:38px;
    min-height:38px;
    gap:5px;
    padding:0 12px 0 6px;
  }
  #app > .global-mobile-nav {
    position:fixed;
    z-index:120;
    bottom:max(16px,env(safe-area-inset-bottom));
    left:50%;
    display:grid;
    grid-template-columns:minmax(0,1fr) 82px minmax(0,1fr);
    width:min(400px,calc(100% - 20px));
    height:56px;
    align-items:center;
    align-content:center;
    justify-items:center;
    margin:0;
    padding:4px 8px;
    overflow:visible;
    border:1px solid rgba(104,76,255,.1);
    border-radius:999px;
    background:rgba(255,255,255,.76);
    box-shadow:0 16px 40px rgba(36,26,86,.18);
    -webkit-backdrop-filter:blur(20px) saturate(160%);
    backdrop-filter:blur(20px) saturate(160%);
    box-sizing:border-box;
    transform:translateX(-50%);
  }
  body.night-mode #app > .global-mobile-nav {
    border-color:rgba(255,255,255,.1);
    background:rgba(17,17,20,.74);
    box-shadow:0 16px 40px rgba(0,0,0,.42);
  }
  #app > .global-mobile-nav a,
  .day-mode main #app > .global-mobile-nav a {
    position:relative;
    display:grid;
    width:100%;
    min-width:0;
    height:48px;
    place-items:center;
    align-content:center;
    gap:4px;
    padding:0 8px;
    overflow:visible;
    border:0;
    border-radius:999px;
    background:transparent;
    color:#b7a8f8;
    font-size:11px;
    font-weight:800;
    letter-spacing:.01em;
    text-decoration:none;
    text-transform:none;
    box-sizing:border-box;
    transition:transform .18s ease,background-color .18s ease;
  }
  #app > .global-mobile-nav .mobile-nav-icon {
    display:block;
    width:22px;
    height:22px;
    object-fit:contain;
    opacity:.42;
    transition:opacity .18s ease,transform .18s ease;
  }
  #app > .global-mobile-nav .nav-text-wordmark {
    color:#b7a8f8;
  }
  #app > .global-mobile-nav a.active,
  .day-mode main #app > .global-mobile-nav a.active {
    background:transparent;
    color:#6439fc;
  }
  #app > .global-mobile-nav a.active .nav-text-wordmark {
    color:#6439fc;
  }
  #app > .global-mobile-nav a.active .mobile-nav-icon {
    opacity:1;
  }
  #app > .global-mobile-nav a:not(.active):active {
    color:#6439fc;
  }
  #app > .global-mobile-nav a[href^="#my-night"] {
    z-index:2;
    width:82px;
    height:68px;
    justify-self:center;
    padding:0;
    background:transparent;
    box-shadow:none;
  }
  #app > .global-mobile-nav a[href^="#my-night"] .nav-text-wordmark {
    display:none;
  }
  #app > .global-mobile-nav a[href^="#my-night"] .mobile-nav-icon {
    width:72px;
    height:62px;
    opacity:.72;
  }
  #app > .global-mobile-nav a[href^="#my-night"].active .mobile-nav-icon {
    opacity:1;
  }
  #app > .global-mobile-nav a:active {
    transform:scale(.97);
  }
  body.article-route #app > .global-mobile-nav,
  body.night-card-route #app > .global-mobile-nav,
  body.my-night-checkin-active #app > .global-mobile-nav {
    display:none;
  }
  body.mobile-nav-hidden #app > .global-mobile-nav {
    opacity:0;
    pointer-events:none;
    box-shadow:none;
    transform:translate3d(-50%,calc(100% + 24px),0);
  }
  #app > .global-mobile-nav {
    transition:transform .28s ease,opacity .22s ease,box-shadow .22s ease;
    will-change:transform;
  }
  #app > .global-header .night-hello-bell {
    width:40px;
    height:40px;
  }
  #app > .global-header .night-hello-bell svg {
    width:19px;
    height:19px;
  }
  #app > .global-header .night-hello-badge,
  #app > .global-header .account-nav .night-hello-badge {
    top:0;
    right:0;
    min-width:16px;
    height:16px;
    padding:0 4px;
    border-width:1.5px;
    font-size:9px;
  }
  #app > .global-header .account-nav-trigger .account-nav-avatar {
    display:block;
  }
  #app > .global-header .account-nav-trigger {
    width:52px;
    max-width:52px;
    height:40px;
    min-height:40px;
    gap:5px;
    padding:0 7px 0 5px;
  }
  #app > .global-header .account-nav-name {
    display:block;
    min-width:0;
    max-width:82px;
    overflow:hidden;
    font-size:12px;
    font-weight:900;
    line-height:1;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  #app > .global-footer  {
    margin-top:18px;
    padding:18px 16px calc(96px + env(safe-area-inset-bottom));
    border-top:0;
  }
  #app > .global-footer .footer-feature-row,
  #app > .global-footer .footer-brand  {
    display:none;
  }

  #app > .global-footer .footer-inner  {
    display:block;
    max-width:none;
    padding:0;
    border:0;
    text-align:center;
  }
  #app > .global-footer .footer-copy  {
    max-width:none;
    margin:0;
    color:#8a8a8f;
    font-size:11px;
    line-height:1.45;
    text-align:center;
  }
}
@media (min-width:720px)  {
  #app > .global-mobile-nav  {
    display:none;
  }
}

/* Shared screen-reader-only label primitive. */
#app .sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.site-announcement{position:relative;z-index:28;display:flex;align-items:center;justify-content:center;gap:16px;min-height:46px;padding:9px 56px 9px 18px;background:#171522;color:#fff}.site-announcement>a,.site-announcement>span{color:inherit;text-decoration:none}.site-announcement span{display:flex;align-items:center;justify-content:center;gap:10px}.site-announcement strong{font-size:13px}.site-announcement small{font-size:12px;opacity:.82}.site-announcement button{position:absolute;right:18px;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:inherit;font-size:20px}.site-announcement.is-event{background:#6d4cff}.site-announcement.is-urgent{background:#e82d55}.night-city-ranking-preview{min-height:320px;display:grid;place-items:center;text-align:center}.night-city-ranking-preview header{justify-content:center!important}.night-city-ranking-preview header>div{max-width:560px}
@media(max-width:719px){.site-announcement{padding:10px 46px 10px 14px}.site-announcement span{display:grid;justify-items:start;gap:2px}.site-announcement button{right:10px}.night-city-ranking-preview{min-height:240px}}

/* iOS zooms the viewport when a focused form control computes below 16px. */
@media (max-width:719px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  select,
  textarea {
    font-size:16px !important;
  }
}
