.page-title { letter-spacing: -.7px; }
.brand img, .footer-brand img { object-fit: contain; }
.auth { display: grid; gap: 48px; align-items: center; justify-items: stretch; width: 100%; margin: 24px auto 56px; padding: 0; max-width: 1120px; }
.auth-card { max-width: 440px; margin-inline: auto; gap: 22px; padding: 20px 0; }
.auth-card .page-title { font-size: 32px; line-height: 1.2; }
.auth-card .lead { font-size: 16px; color: #6a747a; line-height: 1.6; margin-top: -8px; }
.auth-story { display: none; }
.stack-form { gap: 22px; }
.stack-form .field { gap: 8px; }
.stack-form .field label { font-size: 14px; font-weight: 700; color: #35454e; }
.stack-form .field input, .stack-form .field textarea, .stack-form .field select { background: #fbfcfc; border: 1px solid #dce3e7; border-radius: 14px; min-height: 52px; padding: 14px 16px; font-size: 16px; }
.stack-form .field input:focus, .stack-form .field textarea:focus, .stack-form .field select:focus { border-color: #1878ec; background: white; box-shadow: 0 0 0 3px #e8f2ff; }
.stack-form .button { border-radius: 14px; min-height: 52px; font-size: 16px; }
.auth-card .google { border-radius: 14px; border: 1px solid #dce3e7; min-height: 52px; color: #253741; font-weight: 600; }
.auth-card .google img { width: 20px; height: 20px; }
.auth-links { font-size: 14px; line-height: 1.6; }
.auth-links a { min-height: 44px; display: flex; align-items: center; }
.auth-card .divider { margin: 0; color: #8a9499; font-size: 13px; }
.auth-card .consents { padding: 18px; border-radius: 16px; background: #f6f8f9; font-size: 14px; line-height: 1.6; }
.panel { border-color: #e3e8eb; border-radius: 20px; padding: 24px; }
.account, .activity { gap: 32px; }
.account .panel, .activity-section { display: grid; gap: 20px; }
.activity-item { border-bottom: 1px solid #e8ecef; padding: 12px 0 20px; }
.card { border-radius: 22px; overflow: hidden; }
.card-media { border-radius: 22px; }
.card-body { padding-top: 4px; gap: 7px; }
.card-flag { font-size: 11px; font-weight: 600; }
.app-home .card { box-shadow: none; }
@media (min-width: 1000px) {
  .auth { grid-template-columns: 1fr 1fr; gap: 72px; }
  .auth-story { display: block; position: relative; align-self: stretch; min-height: 640px; border-radius: 28px; overflow: hidden; isolation: isolate; color: white; }
  .auth-story img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
  .auth-story::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 20%,rgba(5,35,34,.8)); z-index: -1; }
  .auth-story-copy { position: absolute; left: 40px; right: 40px; bottom: 48px; display: grid; gap: 20px; }
  .auth-story h2 { font-size: 44px; line-height: 1.1; font-weight: 800; letter-spacing: -1px; text-wrap: balance; }
  .auth-story p { font-size: 17px; line-height: 1.6; opacity: .88; }
}
@media (max-width: 699px) {
  .auth { margin: 8px auto 40px; }
  .auth-card { padding: 12px 8px; gap: 20px; }
  .auth-card .page-title { font-size: 30px; }
  .panel { padding: 20px; }
  .auth-links { display: grid; gap: 0; }
}

.activity { max-width: 1040px; margin-inline: auto; }
.activity .activity-item { padding: 0 0 12px; gap: 12px; }
@media (min-width: 760px) {
  .activity .card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
  .activity .card-link { grid-template-columns: 160px minmax(0,1fr); align-items: start; gap: 18px; }
  .activity .card-media { min-height: 128px; }
  .activity .card-body { padding: 4px 0; }
  .activity .card-title { font-size: 17px; }
}

.map-sheet { border: 1px solid #e1e6ea; box-shadow: 0 3px 18px rgb(28 43 55 / 10%); overflow: hidden; }
.sheet-title { font-size: 15px; padding: 14px 16px 10px; }
.sheet-handle { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 32px; height: auto; margin: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
.sheet-handle span { width: 36px; height: 4px; border-radius: 4px; background: #ccd5dd; }
.sheet-list { align-content: start; }
.map-sheet .card { border-radius: 16px; box-shadow: none; border: 1px solid transparent; }
.map-sheet .card-link { display: grid; grid-template-columns: 94px minmax(0,1fr); gap: 12px; padding: 8px; }
.map-sheet .card-media { min-height: 108px; height: 100%; border-radius: 12px; aspect-ratio: auto; }
.map-sheet .card-body { padding: 2px 0; gap: 5px; }
.map-sheet .card-title { font-size: 15px; line-height: 1.35; }
.map-sheet .card-when { font-size: 10px; color: #52616e; }
.map-sheet .card-place { font-size: 12px; }
.map-sheet .card-media .pill:not(.card-price) { display: none; }
.map-sheet .card-price { top: auto; bottom: 6px; left: 6px; font-size: 11px; padding: 4px 6px; }
.map-sheet .card-meta { font-size: 11px; flex-wrap: wrap; }
.map-sheet .card-spaces { color: #52616e; }
.sheet-item.is-active .card-media { outline: none; }
.sheet-item.is-active .card { border-color: var(--color-ocean); background: #f4f8fd; }
.map-button { box-shadow: 0 2px 8px rgb(28 43 55 / 10%); border: 1px solid #e1e6ea; }
.map-button .live-dot { background: #7b8994; box-shadow: none; }
.map-button[aria-pressed="true"] .live-dot { background: white; animation: none; }
.price-marker.is-active { background: var(--color-ocean); color: white; }
.map-privacy { font-size: 11px; }
@media (min-width: 960px) {
  .map-sheet { width: 360px; top: 84px; bottom: 24px; border-radius: 22px; }
  .map-controls { left: 16px; }
  .map-sheet .sheet-handle { display: none; }
  .sheet-list { gap: 6px; padding: 0 10px 14px; }
  .map-privacy { bottom: 12px; right: 56px; }
}
@media (max-width: 959px) {
  .map-sheet { max-height: 36%; }
  .map-sheet.is-expanded { max-height: 76%; }
  .sheet-title { padding-top: 0; }
  .sheet-list { grid-auto-columns: 88%; }
  .map-privacy { bottom: calc(36% + 12px); }
  .map-sheet.is-expanded ~ .map-privacy { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .map-sheet, .price-marker { transition: none; }
  .me-marker::after, .live-badge .live-dot { animation: none; }
}

@media (min-width: 960px) {
  .map-page .map-canvas { left: 392px; width: calc(100% - 392px); }
  .map-controls { left: 408px; }
}
.map-sheet .card-spots { color: #52616e; }

@media (max-width: 959px) {
  .map-sheet.is-expanded .sheet-list { grid-auto-flow: row; grid-auto-columns: auto; scroll-snap-type: none; gap: 8px; }
}

.map-cluster { width: 44px; height: 44px; border: 2px solid white; border-radius: 50%; background: var(--color-ocean); color: white; font: 800 14px/1 var(--font); box-shadow: 0 2px 6px rgb(28 43 55 / 18%); cursor: pointer; }
.map-cluster:focus-visible { outline: 3px solid #153d77; outline-offset: 3px; }
.map-cluster.is-active { background: #153d77; }

@media (max-width: 999px) {
  .auth { position: relative; isolation: isolate; overflow: hidden; border-radius: 28px; margin: 8px auto 40px; padding: 48px 16px; gap: 0; }
  .auth-story { display: block; position: absolute; inset: 0; z-index: -1; }
  .auth-story img { width: 100%; height: 100%; object-fit: cover; }
  .auth-story::after { content: ''; position: absolute; inset: 0; background: rgb(8 36 31 / 22%); }
  .auth-story-copy { display: none; }
  .auth-card { padding: 28px 22px; background: rgb(255 255 255 / 97%); border: 1px solid rgb(255 255 255 / 80%); border-radius: 22px; gap: 20px; }
  .auth-card .page-title { font-size: 28px; }
  .auth-card .lead { font-size: 15px; }
  .auth-card .consents { padding: 12px; }
}
.map-empty { color: var(--color-graphite); padding: 16px; font-size: 14px; line-height: 1.5; }
.map-button[aria-busy="true"] { color: var(--color-ocean); background: #f0f6ff; }
.map-page .me-marker { position: absolute; z-index: 3; background: var(--color-ocean); }

.map-page .maplibregl-ctrl-group button { width: 44px; height: 44px; }
@media (max-width: 959px) {
  .map-sheet { height: 36%; }
  .map-sheet.is-expanded { height: 76%; }
  .map-page .maplibregl-ctrl-bottom-right { bottom: calc(36% + 12px); }
  .map-page.is-sheet-expanded .maplibregl-ctrl-bottom-right { bottom: calc(76% + 12px); }
  .map-privacy { left: 12px; right: 64px; width: fit-content; max-width: calc(100% - 84px); }
}

@media (max-width: 959px) {
  .sheet-handle { min-height: 44px; touch-action: none; cursor: grab; }
  .sheet-handle:active { cursor: grabbing; }
  .sheet-list { overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
}
button, a, input, select { -webkit-tap-highlight-color: transparent; }
button[disabled] { cursor: wait; }

.map-limit { margin: 0; padding: 0 16px 8px; font-size: 12px; line-height: 1.4; color: var(--color-graphite); }
.map-limit.is-hidden { display: none; }

@media (max-width: 959px) {
  .event button, .event .button, .auth-card button, .chip { min-height: 44px; }
}

.cookie-banner { max-height: calc(100dvh - var(--tabbar) - var(--safe-bottom) - 90px); overflow-y: auto; overscroll-behavior: contain; }
.cookie-custom summary { display: flex; align-items: center; justify-content: space-between; list-style: none; min-height: 44px; padding: 0 12px; border: 1px solid var(--color-divider); border-radius: 12px; color: var(--color-ink); }
.cookie-custom summary::-webkit-details-marker { display: none; }
.cookie-custom summary .icon { transition: transform .2s; }
.cookie-custom[open] summary .icon { transform: rotate(90deg); }
.cookie-custom[open] { display: block; }
.cookie-custom .privacy-switch { position: relative; display: flex; align-items: center; flex-direction: row-reverse; justify-content: space-between; gap: 16px; min-height: 52px; padding: 8px 12px; font-size: 14px; cursor: pointer; }
.privacy-switch input { position: absolute; right: 12px; width: 42px; height: 26px; opacity: 0; margin: 0; }
.privacy-switch-track { flex: none; width: 42px; height: 26px; border-radius: 20px; background: #cbd2d9; padding: 3px; transition: background .18s; }
.privacy-switch-track::after { content: ''; display: block; width: 20px; height: 20px; border-radius: 50%; background: white; box-shadow: 0 1px 3px rgb(0 0 0 / 15%); transition: transform .18s; }
.privacy-switch input:checked + .privacy-switch-track { background: var(--color-ocean); }
.privacy-switch input:checked + .privacy-switch-track::after { transform: translateX(16px); }
.privacy-switch input:disabled + .privacy-switch-track { background: #77828c; }
.privacy-switch input:focus-visible + .privacy-switch-track { outline: 3px solid #153d77; outline-offset: 3px; }
.cookie-custom > .button { width: 100%; margin-top: 8px; }
.cookie-actions .button { min-height: 44px; }
@media (prefers-reduced-motion: reduce) { .privacy-switch-track, .privacy-switch-track::after, .cookie-custom summary .icon { transition: none; } }
