/* PULO App shell: fullscreen map + bottom sheet. Desktop storefront unchanged. */

#pulo-app-dock,
#pulo-app-sheet,
#pulo-app-dialog,
#pulo-app-spots,
#pulo-app-toast {
    display: none;
}

html.pulo-native .coast-apk-bar,
html.pulo-native .coast-apk-inline {
    display: none !important;
}
html.pulo-app #coast-map-fs,
html.pulo-map-fs #coast-map-fs,
html.pulo-native #coast-map-fs {
    display: none !important;
}
html.pulo-map-fs #coast-map-fs-close:not([hidden]) {
    display: inline-flex;
}
html.pulo-native #coast-map-fs-close {
    display: none !important;
}

html.pulo-app {
    inset: 0;
    left: 0;
    max-width: 100%;
    overflow: hidden;
    overflow-x: hidden;
    overscroll-behavior: none;
    overscroll-behavior-x: none;
    position: fixed;
    touch-action: pan-y;
    width: 100%;
    scroll-behavior: auto;
}
html.pulo-phone.pulo-app {
    bottom: auto !important;
    inset: auto !important;
    left: auto;
    max-height: none !important;
    max-width: 100% !important;
    overflow: hidden !important;
    position: relative !important;
    right: auto !important;
    touch-action: none;
    width: 100% !important;
}
html.pulo-app,
html.pulo-app body.storefront {
    background: #102a43;
    height: 100%;
    height: 100dvh;
    margin: 0;
    overflow: hidden;
    overscroll-behavior: none;
}

html.pulo-app .store-header,
html.pulo-app .store-nav,
html.pulo-app .store-mega-menu,
html.pulo-app .store-mobile-drawer,
html.pulo-app .store-mobile-overlay,
html.pulo-app .store-footer,
html.pulo-app .store-benefits,
html.pulo-app .store-home-contact,
html.pulo-app .store-coast-strip,
html.pulo-app .cookie-consent,
html.pulo-app .seo-intro,
html.pulo-app .coast-breadcrumb-bar,
html.pulo-app .coast-share-panel,
html.pulo-app .coast-week-head {
    display: none !important;
}

html.pulo-app .pp-body,
html.pulo-app .coast-page,
html.pulo-app .coast-page.container,
html.pulo-app .coast-page.pb-5 {
    margin: 0;
    max-width: 100%;
    padding: 0;
    width: 100%;
}

html.pulo-app .coast-page.container {
    padding-left: 0;
    padding-right: 0;
}

html.pulo-app .coast-head-row,
html.pulo-app .coast-body-row {
    display: none;
}

html.pulo-app .coast-map-shell {
    border: 0;
    border-radius: 0;
    bottom: 0;
    height: 100%;
    height: 100dvh;
    isolation: isolate;
    left: 0;
    margin: 0;
    overflow: hidden;
    position: fixed;
    right: 0;
    top: 0;
    transform: translateZ(0);
    z-index: 1;
}

html.pulo-app .coast-map,
html.pulo-app #coast-map {
    height: 100% !important;
    min-height: 100% !important;
    touch-action: none;
}

html.pulo-app .coast-map-hint,
html.pulo-app .coast-map-crosshair {
    pointer-events: none !important;
}

html.pulo-app .coast-map-lock-btn {
    bottom: calc(5.6rem + env(safe-area-inset-bottom, 0px));
    left: 50%;
    transform: translateX(-50%);
    z-index: 4;
}

html.pulo-app.is-sheet .coast-map-lock-btn {
    display: none !important;
}

html.pulo-app #pulo-app-dock {
    background: rgba(255, 255, 255, .94);
    border-radius: 14px 14px 0 0;
    bottom: 0;
    box-shadow: 0 -8px 28px rgba(16, 42, 67, .18);
    box-sizing: border-box;
    display: block;
    left: 0;
    max-width: 100%;
    min-width: 0;
    padding: .55rem .7rem calc(.7rem + env(safe-area-inset-bottom, 0px));
    pointer-events: auto;
    position: fixed;
    right: 0;
    width: 100%;
    z-index: 5;
}

html.pulo-app.is-sheet #pulo-app-dock {
    display: none;
}

html.pulo-app #pulo-app-dock #coast-coords {
    margin: 0;
}

html.pulo-app #pulo-app-dock .coast-coords-label {
    display: none;
}

html.pulo-app #pulo-app-sheet {
    background: #fff;
    border-radius: 16px 16px 0 0;
    bottom: 0;
    box-shadow: 0 -10px 40px rgba(16, 42, 67, .22);
    box-sizing: border-box;
    display: none;
    flex-direction: column;
    left: 0;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    pointer-events: auto;
    position: fixed;
    right: 0;
    touch-action: pan-y;
    width: 100%;
    transition: height .18s ease-out;
    z-index: 6;
}

html.pulo-app.is-sheet #pulo-app-sheet {
    display: flex !important;
}

html.pulo-app #pulo-app-dock .coast-map-lock-btn {
    bottom: auto;
    left: auto;
    margin-top: .45rem;
    position: static;
    transform: none;
    width: 100%;
}

html.pulo-app #pulo-app-dock #coast-place {
    flex: 1;
    min-width: 0;
    width: 100%;
}

html.pulo-app.is-sheet-peek #pulo-app-sheet {
    height: auto;
    max-height: none;
}

html.pulo-app.is-sheet-half #pulo-app-sheet {
    height: 64vh;
    height: 64svh;
}

html.pulo-app.is-sheet-full #pulo-app-sheet {
    border-radius: 16px 16px 0 0;
    bottom: 0;
    height: calc(100% - 12px);
    height: calc(100dvh - 12px);
    height: calc(var(--pulo-vh, 100svh) - 12px);
    top: auto;
}

html.pulo-app #pulo-app-handle {
    align-self: center;
    background: transparent;
    border: 0;
    cursor: ns-resize;
    flex: 0 0 auto;
    height: 22px;
    margin: 0;
    padding: 0 2rem;
    position: relative;
    touch-action: none;
    width: 56px;
}
html.pulo-app #pulo-app-handle::after {
    background: #9aa5b1;
    border-radius: 99px;
    content: '';
    height: 4px;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 36px;
}

html.pulo-app #pulo-app-sheet-head {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    padding: 0 .7rem .4rem;
    touch-action: none;
}

html.pulo-app #pulo-app-sheet-head .pulo-app-spots-open {
    flex: 0 0 auto;
    font-size: .72rem;
    padding: .3rem .45rem;
    white-space: nowrap;
}

html.pulo-app #pulo-app-place {
    color: #102a43;
    display: block;
    flex: 1;
    font-size: .72rem;
    font-weight: 650;
    line-height: 1.25;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
html.pulo-app .pulo-app-place-name {
    font-weight: 700;
}
html.pulo-app .pulo-app-place-xy {
    color: #486581;
    font-size: inherit;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.02em;
    margin: 0;
}
html.pulo-app .pulo-app-place-name + .pulo-app-place-xy::before {
    content: " · ";
    color: #9fb3c8;
    font-weight: 500;
}

html.pulo-app #pulo-app-sheet-head .coast-place-btn,
html.pulo-app #pulo-app-actions button {
    background: #f0f4f8;
    border: 0;
    border-radius: 8px;
    color: #102a43;
    font-size: .78rem;
    font-weight: 650;
    padding: .35rem .55rem;
}

html.pulo-app #pulo-app-sheet-head #pulo-app-save {
    background: #243b53;
    color: #fff;
}

html.pulo-app.is-sheet-full #pulo-app-handle {
    display: none;
}
html.pulo-app #pulo-app-fs-close {
    display: none;
}
html.pulo-app #pulo-app-map-back {
    background: transparent;
    border: 0;
    color: #1d6f9b;
    flex: 1 0 100%;
    font-size: .9rem;
    font-weight: 700;
    order: -1;
    padding: .55rem 0 .35rem;
    text-align: center;
}

html.pulo-app.is-sheet-peek #pulo-app-map-back,
html.pulo-app.is-sheet-peek #pulo-app-sheet-body {
    display: none !important;
}

html.pulo-app.is-sheet-half #pulo-app-beaches,
html.pulo-app.is-sheet-full #pulo-app-beaches,
html.pulo-app.is-sheet-half #pulo-app-beaches #coast-aside-species,
html.pulo-app.is-sheet-full #pulo-app-beaches #coast-aside-species,
html.pulo-app.is-sheet-half #coast-aside-species,
html.pulo-app.is-sheet-full #coast-aside-species,
html.pulo-app.is-sheet-half #pulo-app-windows,
html.pulo-app.is-sheet-full #pulo-app-windows,
html.pulo-app.is-sheet-half #coast-verdict,
html.pulo-app.is-sheet-full #coast-verdict {
    display: block !important;
}

html.pulo-app #coast-place-correct,
html.pulo-app #coast-place-save,
html.pulo-app #coast-aside-kit {
    display: none !important;
}

html.pulo-app #pulo-app-sheet-body {
    flex: 1;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    padding: 0 .7rem calc(.8rem + env(safe-area-inset-bottom, 0px));
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
}

html.pulo-app .coast-place-input,
html.pulo-app input[type="search"],
html.pulo-app input[type="text"] {
    font-size: 16px;
}

html.pulo-app.is-sheet-half #pulo-app-hoy-peek,
html.pulo-app.is-sheet-full #pulo-app-hoy-peek,
html.pulo-app #pulo-app-hoy {
    display: none !important;
}

html.pulo-app.is-sheet-peek #pulo-app-windows,
html.pulo-app.is-sheet-peek #pulo-app-tide,
html.pulo-app.is-sheet-peek #coast-panel,
html.pulo-app.is-sheet-peek #coast-legal,
html.pulo-app.is-sheet-peek #pulo-app-legal-more,
html.pulo-app.is-sheet-peek #pulo-app-about,
html.pulo-app.is-sheet-peek #pulo-app-week,
html.pulo-app.is-sheet-peek #pulo-app-ref-wrap,
html.pulo-app.is-sheet-peek #pulo-app-beaches,
html.pulo-app.is-sheet-peek #pulo-app-actions,
html.pulo-app.is-sheet-peek #pulo-app-dealers,
html.pulo-app.is-sheet-peek #coast-week,
html.pulo-app.is-sheet-peek #coast-hourly,
html.pulo-app.is-sheet-peek #coast-atmosphere,
html.pulo-app.is-sheet-peek #coast-metrics,
html.pulo-app.is-sheet-peek #coast-formula-note,
html.pulo-app.is-sheet-peek #coast-aside-species {
    display: none !important;
}

html.pulo-app #coast-panel,
html.pulo-app .coast-week-list,
html.pulo-app #coast-panel-status {
    display: none !important;
}

html.pulo-app.is-sheet-peek #pulo-app-kit,
html.pulo-app.is-sheet-half #pulo-app-kit,
html.pulo-app.is-sheet-half #pulo-app-dealers,
html.pulo-app.is-sheet-half #pulo-app-actions,
html.pulo-app.is-sheet-half #pulo-app-about,
html.pulo-app.is-sheet-half #pulo-app-legal-more,
html.pulo-app.is-sheet-half #coast-legal {
    display: none !important;
}

html.pulo-app.is-sheet-half #pulo-app-week,
html.pulo-app.is-sheet-half #pulo-app-tide,
html.pulo-app.is-sheet-half #pulo-app-ref-wrap,
html.pulo-app.is-sheet-half #coast-week,
html.pulo-app.is-sheet-full #pulo-app-week,
html.pulo-app.is-sheet-full #pulo-app-tide,
html.pulo-app.is-sheet-full #pulo-app-ref-wrap,
html.pulo-app.is-sheet-full #coast-week {
    display: block !important;
}

html.pulo-app #pulo-app-ref #coast-metrics {
    display: grid;
    gap: .45rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

html.pulo-app #pulo-app-hoy {
    margin: 0 0 .7rem;
}

html.pulo-app #pulo-app-hoy h2,
html.pulo-app .pulo-app-block-title {
    font-size: .82rem;
    font-weight: 750;
    letter-spacing: .02em;
    margin: 0 0 .35rem;
}

html.pulo-app .pulo-app-hoy-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

html.pulo-app .pulo-app-hoy-list li {
    margin: 0 0 .35rem;
}

html.pulo-app .pulo-app-hoy-chip {
    background: #f0f4f8;
    border: 1px solid #d9e2ec;
    border-radius: 10px;
    display: block;
    font-size: .84rem;
    padding: .4rem .55rem;
    text-align: left;
    width: 100%;
}

html.pulo-app .pulo-app-hoy-chip small {
    color: #627d98;
    display: block;
    font-size: .75rem;
}

html.pulo-app #pulo-app-windows {
    margin: 0 0 .7rem;
}

html.pulo-app #pulo-app-windows .coast-verdict {
    background: transparent;
    border: 0;
    margin: 0;
    padding: 0;
}

html.pulo-app #pulo-app-tide {
    font-size: .86rem;
    margin: 0 0 .65rem;
}

html.pulo-app #pulo-app-week .coast-week-tab-fish,
html.pulo-app #pulo-app-week .coast-week-tab-win,
html.pulo-app #pulo-app-week .coast-week-tab-lv {
    display: none !important;
}

html.pulo-app #pulo-app-ref-wrap {
    margin: .7rem 0 .2rem;
}

html.pulo-app #pulo-app-actions {
    margin-top: .75rem;
}

html.pulo-app #pulo-app-kit {
    margin: .55rem 0 .75rem;
}

html.pulo-app #pulo-app-kit .pulo-app-kit-head {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .7rem;
    justify-content: space-between;
    margin: 0 0 .4rem;
}

html.pulo-app #pulo-app-kit .pulo-app-kit-head .pulo-app-block-title {
    flex: 1 1 12rem;
    margin: 0;
}

html.pulo-app #pulo-app-kit .pulo-app-kit-head .pulo-app-pulo-link {
    flex: 0 0 auto;
    font-size: .78rem;
    white-space: nowrap;
}

html.pulo-app #pulo-app-kit .pulo-app-kit-row {
    display: flex;
    gap: .5rem;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    padding-bottom: .2rem;
}

html.pulo-app #pulo-app-kit .coast-kit-item {
    background: #fff;
    border: 1px solid #d9e2ec;
    border-radius: 10px;
    display: flex;
    flex: 0 0 148px;
    flex-direction: column;
    font-size: .75rem;
    min-width: 148px;
    padding: .4rem;
    text-decoration: none;
}

html.pulo-app #pulo-app-kit .coast-kit-item img {
    border-radius: 6px;
    height: 72px;
    object-fit: cover;
    width: 100%;
}

html.pulo-app #pulo-app-kit .coast-kit-price {
    color: #c05621;
    font-weight: 700;
}

html.pulo-app #pulo-app-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: .55rem 0;
}

html.pulo-app #pulo-app-dealers a {
    color: #102a43;
    text-decoration: none;
}
html.pulo-app #pulo-app-dealers .pulo-app-dealer-row {
    display: flex;
    flex-wrap: nowrap;
    gap: .5rem;
    overflow-x: auto;
    padding-bottom: .2rem;
    -webkit-overflow-scrolling: touch;
}
html.pulo-app #pulo-app-dealers .pulo-app-dealer-card {
    align-items: center;
    background: #fff;
    border: 1px solid #d9e2ec;
    border-radius: 10px;
    display: flex;
    flex: 0 0 132px;
    flex-direction: column;
    font-size: .72rem;
    gap: .25rem;
    min-width: 132px;
    padding: .45rem .4rem;
    text-align: center;
}
html.pulo-app #pulo-app-dealers .pulo-app-dealer-logo,
html.pulo-app #pulo-app-dealers .pulo-app-dealer-ico {
    border-radius: 8px;
    color: #1d6f9b;
    display: block;
    flex: 0 0 auto;
    height: 47px;
    object-fit: contain;
    width: 47px;
}
html.pulo-app #pulo-app-dealers .pulo-app-dealer-name {
    display: -webkit-box;
    font-weight: 650;
    line-height: 1.2;
    max-height: 2.4em;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
html.pulo-app #pulo-app-dealers .pulo-app-dealer-km {
    color: #627d98;
}

html.pulo-app #pulo-app-spots {
    background: #fff;
    bottom: 0;
    box-sizing: border-box;
    display: none;
    left: 0;
    max-width: 100%;
    overflow: auto;
    overflow-x: hidden;
    padding: 1rem .8rem calc(1rem + env(safe-area-inset-bottom, 0px));
    position: fixed;
    right: 0;
    top: auto;
    width: 100%;
    z-index: 8;
}

html.pulo-app #pulo-app-spots.is-open {
    display: block;
}

html.pulo-app .pulo-app-spot {
    align-items: center;
    border-bottom: 1px solid #eef2f6;
    display: flex;
    gap: .5rem;
    padding: .65rem 0;
}

html.pulo-app .pulo-app-spot button {
    background: none;
    border: 0;
    color: #c53030;
    font-size: .78rem;
}
html.pulo-app .pulo-app-spot-note {
    color: #334e68;
    display: block;
    font-size: .78rem;
    margin-top: .15rem;
}

html.pulo-app #pulo-app-about {
    color: #627d98;
    font-size: .72rem;
    margin-top: .8rem;
}

html.pulo-app .coast-aside,
html.pulo-app .coast-panel {
    background: transparent;
    border: 0;
    padding: 0;
}

html.pulo-app .coast-legal {
    font-size: .72rem;
    margin-top: .7rem;
}

html.pulo-app.is-sheet-half #coast-legal:not(.is-open) {
    max-height: 4.8em;
    overflow: hidden;
}

html.pulo-app #pulo-app-legal-more {
    background: none;
    border: 0;
    color: #334e68;
    display: none;
    font-size: .72rem;
    font-weight: 650;
    padding: .15rem 0 .4rem;
}

html.pulo-app.is-sheet-half #pulo-app-legal-more {
    display: inline;
}

html.pulo-app.is-sheet-half #coast-legal.is-open + #pulo-app-legal-more {
    display: none;
}

html.pulo-app #pulo-app-ref-wrap {
    margin: .55rem 0;
}

html.pulo-app #pulo-app-beaches {
    margin: .45rem 0 .7rem;
}

html.pulo-app #pulo-app-beaches #coast-aside-species {
    display: block;
}

html.pulo-app #pulo-app-toast {
    background: rgba(16, 42, 67, .92);
    border-radius: 10px;
    bottom: calc(1.2rem + env(safe-area-inset-bottom, 0px));
    color: #fff;
    display: none;
    font-size: .82rem;
    left: 50%;
    max-width: 86%;
    padding: .55rem .8rem;
    pointer-events: none;
    position: fixed;
    transform: translateX(-50%);
    z-index: 14;
}

html.pulo-app #pulo-app-toast.is-on {
    display: block;
}

html.pulo-app #pulo-app-ref-wrap summary {
    cursor: pointer;
    font-size: .82rem;
    font-weight: 750;
    list-style: none;
}

html.pulo-app #pulo-app-ref-wrap summary::-webkit-details-marker {
    display: none;
}

html.pulo-app .pulo-app-spot {
    overflow: hidden;
    position: relative;
}

html.pulo-app .pulo-app-spot.is-swipe .pulo-app-spot-go {
    transform: translateX(-4.5rem);
}

html.pulo-app.is-sheet-peek #pulo-app-hoy-peek,
html.pulo-app #pulo-app-hoy-peek,
html.pulo-app #pulo-app-hoy {
    display: none !important;
}

html.pulo-app #pulo-app-dialog {
    background: rgba(16, 42, 67, .45);
    bottom: 0;
    display: none;
    left: 0;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 80;
}

html.pulo-app #pulo-app-dialog.is-open {
    align-items: flex-end;
    display: flex;
    overflow: auto;
}

html.pulo-app #pulo-app-dialog-box {
    background: #fff;
    border-radius: 14px 14px 0 0;
    box-sizing: border-box;
    max-height: 100%;
    max-width: 100%;
    overflow: auto;
    overflow-x: hidden;
    padding: 1rem .9rem calc(1rem + env(safe-area-inset-bottom, 0px));
    width: 100%;
}

html.pulo-app #pulo-app-dialog-box h3 {
    font-size: .95rem;
    margin: 0 0 .55rem;
}

html.pulo-app #pulo-app-dialog-box input,
html.pulo-app #pulo-app-dialog-box textarea {
    box-sizing: border-box;
    border: 1px solid #d9e2ec;
    border-radius: 8px;
    display: block;
    font: inherit;
    margin: 0 0 .55rem;
    max-width: 100%;
    min-width: 0;
    padding: .55rem .65rem;
    width: 100%;
}

html.pulo-app #pulo-app-dialog-actions {
    align-items: center;
    display: flex;
    gap: .45rem;
    max-width: 100%;
}
html.pulo-app #pulo-app-dlg-ok {
    background: #1d6f9b;
    border: 0;
    border-radius: 10px;
    color: #fff;
    flex: 1 1 auto;
    font-size: .95rem;
    font-weight: 750;
    min-width: 0;
    padding: .7rem .85rem;
}
html.pulo-app #pulo-app-dlg-cancel {
    align-items: center;
    background: #eef2f6;
    border: 0;
    border-radius: 10px;
    color: #486581;
    display: inline-flex;
    flex: 0 0 44px;
    font-size: 1.2rem;
    height: 44px;
    justify-content: center;
    width: 44px;
}

@media (orientation: landscape) {
    html.pulo-app.is-sheet-peek #pulo-app-sheet {
        height: auto;
    }
    html.pulo-app.is-sheet-half #pulo-app-sheet {
        height: 70vh;
    }
}

html.pulo-app #pulo-app-loading{margin:.15rem 0 .55rem;}
html.pulo-app #pulo-app-loading-txt{margin:.35rem 0 0;}
html.pulo-app .pulo-app-loading-bar{background:#e4ebf1;border-radius:99px;height:4px;overflow:hidden;position:relative;}
html.pulo-app .pulo-app-loading-bar::after{animation:pulo-app-load 1s ease-in-out infinite;background:#1d6f9b;border-radius:99px;content:"";height:100%;left:0;position:absolute;top:0;width:36%;}
@keyframes pulo-app-load{0%{transform:translateX(-120%);}100%{transform:translateX(320%);}}

html.pulo-app.is-landscape .store-header,
html.pulo-app.is-landscape .store-nav,
html.pulo-app.is-landscape .store-footer,
html.pulo-app.is-landscape .store-mobile-menu-button {
    display: none !important;
}
@media (orientation: landscape) and (max-height: 480px) {
  .store-header, .store-nav, .store-footer, .store-mobile-drawer { display: none !important; }
}

html.pulo-app body,
html.pulo-app .pp-body,
html.pulo-app .coast-page,
html.pulo-app #coast-map-shell,
html.pulo-app #pulo-app-sheet,
html.pulo-app #pulo-app-dock {
    max-width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
}
html.pulo-app #pulo-app-sheet-body {
    overflow-x: hidden;
}

html.pulo-app.is-sheet-half #pulo-app-loading:not([hidden]),
html.pulo-app.is-sheet-full #pulo-app-loading:not([hidden]) {
    display: block !important;
}

html.pulo-app #pulo-app-spots{background:linear-gradient(#f8fafc,#eef4f8);border-radius:20px 20px 0 0;box-shadow:0 -14px 40px rgba(16,42,67,.22);max-height:78vh;padding:0 0 calc(.7rem + env(safe-area-inset-bottom,0px));position:fixed;transition:transform .18s ease-out;}
html.pulo-app #pulo-app-spots::before{background:#cbd5e1;border-radius:99px;content:"";display:block;height:4px;margin:.45rem auto .15rem;width:36px;}
html.pulo-app #pulo-app-spots h2{color:#102a43;font-size:1.05rem;font-weight:750;margin:0;padding:calc(.35rem + env(safe-area-inset-top,0px)) 3.2rem .7rem 1rem;pointer-events:none;}
html.pulo-app #pulo-app-spots-close{align-items:center;background:transparent;border:0;box-shadow:none;color:#102a43;cursor:pointer;display:flex;font-size:1.45rem;font-weight:600;height:36px;justify-content:center;line-height:1;pointer-events:auto;position:absolute;right:calc(.45rem + env(safe-area-inset-right,0px));top:calc(.35rem + env(safe-area-inset-top,0px));width:36px;z-index:8;}
html.pulo-app #pulo-app-spot-list{padding:0 .75rem;}
html.pulo-app .pulo-app-spot{align-items:center;background:#fff;border:1px solid #e4ebf1;border-radius:14px;box-shadow:0 1px 2px rgba(16,42,67,.04);display:flex;gap:.55rem;margin:0 0 .55rem;padding:.7rem .65rem;}
html.pulo-app .pulo-app-spot-go{align-items:flex-start;background:none;border:0;color:#102a43;display:flex;flex:1;gap:.55rem;min-width:0;text-align:left;}
html.pulo-app .pulo-app-spot-pin{background:#1d6f9b;border-radius:50%;box-shadow:0 0 0 4px rgba(29,111,155,.16);flex:0 0 auto;height:10px;margin-top:.45rem;width:10px;}
html.pulo-app .pulo-app-spot-meta{min-width:0;}
html.pulo-app .pulo-app-spot-meta strong{display:block;font-size:.95rem;}
html.pulo-app .pulo-app-spot-xy{color:#627d98;display:block;font-size:.72rem;margin-top:.12rem;}
html.pulo-app .pulo-app-spot-del{background:#fff5f5 !important;border-radius:8px;color:#c53030;padding:.35rem .5rem;white-space:nowrap;}
html.pulo-app #pulo-app-dock{align-items:center;display:flex;flex-wrap:wrap;flex-direction:row;gap:.45rem;}
html.pulo-app #pulo-app-dock #pulo-app-spots-btn{background:transparent;border:0;box-shadow:none;flex:0 0 auto;white-space:nowrap;}
html.pulo-app #pulo-app-dock #coast-coords,html.pulo-app #pulo-app-dock #coast-place,html.pulo-app #pulo-app-dock .coast-place-field{flex:1;margin:0;min-width:0;width:auto;}
html.pulo-app #pulo-app-dock .coast-place{flex:1 1 auto;min-width:0;width:auto;}
html.pulo-app #pulo-app-dock .coast-map-lock-btn{flex:1 0 100%;margin-top:.15rem;width:100%;order:9;}
html.pulo-app #pulo-app-sheet-head{flex-wrap:nowrap;}
html.pulo-app #pulo-app-sheet-head .pulo-app-spots-open{flex:0 0 auto;}
html.pulo-app .pulo-app-spots-open{align-items:center;background:transparent;border:0;box-shadow:none;color:#1d6f9b;display:inline-flex;height:36px;justify-content:center;min-width:36px;padding:.2rem;width:36px;}
html.pulo-app .pulo-app-spots-ico{display:block;}
html.pulo-app .pulo-app-spot-go,html.pulo-app .pulo-app-spot-meta,html.pulo-app .pulo-app-spot-meta strong{color:#102a43;}
html.pulo-app #coast-map-sat{background:#fff;border:0;border-radius:10px;box-shadow:0 2px 10px rgba(16,42,67,.18);color:#102a43;display:none;font-size:.78rem;font-weight:700;padding:.4rem .65rem;position:absolute;left:calc(10px + env(safe-area-inset-left,0px));right:auto;top:calc(10px + env(safe-area-inset-top,0px));z-index:6;}
html.pulo-app #coast-map-sat:not([hidden]){display:block;}
html.pulo-map-fs #coast-map-sat{left:calc(10px + env(safe-area-inset-left,0px));right:auto;top:calc(10px + env(safe-area-inset-top,0px));}
.coast-apk-bar{background:#102a43;color:#fff;font-size:.85rem;}
.coast-apk-bar .container{align-items:center;display:flex;gap:.75rem;justify-content:center;padding:.45rem .7rem;}
.coast-apk-link{background:#1d6f9b;border-radius:8px;color:#fff;font-weight:700;padding:.35rem .7rem;text-decoration:none;}
.coast-apk-note{color:#9fb3c8;font-size:.72rem;}
html.pulo-app .pulo-app-spots-open:hover,html.pulo-app .pulo-app-spots-open:focus,html.pulo-app #pulo-app-sheet-head .pulo-app-spots-open{background:transparent;border:0;box-shadow:none;outline:none;}
html.pulo-app #pulo-app-kit .pulo-app-kit-row,html.pulo-app .coast-kit-items{touch-action:pan-x;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;}
html.pulo-app #pulo-app-week{border-top:1px solid #c5d2de;margin-top:.75rem;max-width:100%;min-width:0;padding-top:.75rem;}html.pulo-app #pulo-app-week .coast-week{border-top:0;margin-top:0;padding-top:0;}
html.pulo-app #pulo-app-kit,
html.pulo-app #pulo-app-beaches,
html.pulo-app #pulo-app-windows,
html.pulo-app #pulo-app-sheet-head,
html.pulo-app #pulo-app-sheet-body {
    box-sizing: border-box;
    max-width: 100%;
    min-width: 0;
}

/* ui45: web fullscreen wide — forecast layers dock right; map left. Native/phone sheet unchanged. */
@media (min-width: 768px) {
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone) {
        --pulo-fs-side: min(36vw, 440px);
    }
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet .coast-map-shell,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet #coast-map-shell {
        bottom: 0;
        height: 100%;
        height: 100dvh;
        left: 0;
        right: var(--pulo-fs-side);
        top: 0;
        width: auto;
    }
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone) #pulo-app-sheet,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-peek #pulo-app-sheet,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-half #pulo-app-sheet,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-full #pulo-app-sheet {
        border-radius: 0;
        bottom: 0;
        box-shadow: -10px 0 32px rgba(16, 42, 67, .18);
        height: 100% !important;
        height: 100dvh !important;
        left: auto;
        max-height: none;
        max-width: 440px;
        right: 0;
        top: 0;
        width: var(--pulo-fs-side);
    }
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone) #pulo-app-handle {
        display: none !important;
    }
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone) #pulo-app-map-back {
        display: none !important;
    }
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone) #pulo-app-fs-close {
        align-items: center;
        background: transparent;
        border: 0;
        color: #102a43;
        cursor: pointer;
        display: inline-flex;
        flex: 0 0 auto;
        font-size: 1.45rem;
        font-weight: 600;
        height: 36px;
        justify-content: center;
        line-height: 1;
        margin-left: auto;
        order: 20;
        width: 36px;
    }
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet #coast-map-fs-close {
        display: none !important;
    }
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-peek #pulo-app-map-back,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-peek #pulo-app-sheet-body {
        display: block !important;
    }
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-peek #pulo-app-windows,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-peek #pulo-app-tide,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-peek #pulo-app-week,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-peek #pulo-app-ref-wrap,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-peek #pulo-app-beaches,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-peek #pulo-app-kit,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-peek #pulo-app-actions,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-peek #pulo-app-dealers,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-peek #coast-week,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-peek #coast-hourly,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-peek #coast-aside-species,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone).is-sheet-peek #pulo-app-beaches #coast-aside-species {
        display: block !important;
    }
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone) #pulo-app-dock {
        border-radius: 14px 0 0 0;
        left: auto;
        max-width: 440px;
        right: 0;
        width: var(--pulo-fs-side);
    }
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone) #pulo-app-spots,
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone) #pulo-app-spots.is-open {
        border-radius: 0;
        bottom: 0;
        height: 100%;
        left: auto;
        max-height: none;
        max-width: 440px;
        right: 0;
        top: 0;
        width: var(--pulo-fs-side);
    }
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone) #pulo-app-dialog.is-open {
        align-items: stretch;
        justify-content: flex-end;
        left: auto;
        width: var(--pulo-fs-side);
        max-width: 440px;
    }
    html.pulo-map-fs.pulo-app:not(.pulo-native):not(.pulo-phone) #pulo-app-dialog-box {
        border-radius: 0;
        height: 100%;
        max-height: none;
    }
}

html.pulo-native #pulo-app-dock-save{display:none !important;}
html.pulo-map-fs:not(.pulo-native),
html.pulo-map-fs:not(.pulo-native) body{max-width:100%;overflow-x:hidden;}
html.pulo-map-fs:not(.pulo-native) #pulo-app-dock{
  align-items:center;
  box-sizing:border-box;
  max-width:100%;
  min-width:0;
  overflow-x:hidden;
  padding-left:max(.55rem, env(safe-area-inset-left,0px));
  padding-right:max(.55rem, env(safe-area-inset-right,0px));
  width:100%;
}
html.pulo-map-fs:not(.pulo-native) #pulo-app-dock #coast-coords,
html.pulo-map-fs:not(.pulo-native) #pulo-app-dock #coast-place,
html.pulo-map-fs:not(.pulo-native) #pulo-app-dock .coast-place-field{flex:1 1 0;margin:0;min-width:0;width:auto;}
html.pulo-map-fs:not(.pulo-native) #pulo-app-dock .coast-place-input{box-sizing:border-box;max-width:100%;min-width:0;width:100%;}
html.pulo-map-fs:not(.pulo-native) #pulo-app-dock-save{
  background:#1d6f9b;border:0;border-radius:10px;box-sizing:border-box;color:#fff;
  display:inline-flex;flex:0 0 auto;font-size:.8rem;font-weight:700;
  justify-content:center;max-width:7.2rem;padding:.42rem .5rem;white-space:nowrap;
}

html.pulo-phone.pulo-app,
html.pulo-phone.pulo-map-fs {
    height: var(--pulo-vh, 100svh) !important;
    max-height: var(--pulo-vh, 100svh) !important;
    max-width: 100% !important;
    overflow: hidden !important;
    width: 100% !important;
}
html.pulo-phone.pulo-app{
    position: relative !important;
    inset: auto !important;
    touch-action: none;
}
html.pulo-phone.pulo-app body,
html.pulo-phone.pulo-app body.storefront{
    display: flex !important;
    flex-direction: column !important;
    height: var(--pulo-vh, 100svh) !important;
    max-height: var(--pulo-vh, 100svh) !important;
    max-width: 100% !important;
    overflow: hidden !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    margin: 0 !important;
    width: 100% !important;
}
html.pulo-phone.pulo-app .pp-body,
html.pulo-phone.pulo-app .coast-page,
html.pulo-phone.pulo-app .coast-page.container{
    display:flex !important;
    flex:1 1 auto !important;
    flex-direction:column !important;
    height:auto !important;
    margin:0 !important;
    max-height:100% !important;
    max-width:100% !important;
    min-height:0 !important;
    overflow:hidden !important;
    padding:0 !important;
    width:100% !important;
}
html.pulo-phone.pulo-app .coast-page > *:not(#coast-map-shell):not(#pulo-app-dock):not(#pulo-app-sheet):not(#pulo-app-spots):not(#pulo-app-dialog):not(#pulo-app-toast){
    display:none !important;
}
html.pulo-phone.pulo-app #pulo-app-sheet-head{
    touch-action:manipulation;
}
html.pulo-phone.pulo-app #pulo-app-sheet-head button{
    pointer-events:auto;
    touch-action:manipulation;
}
html.pulo-phone.pulo-app #pulo-app-spots,
html.pulo-phone.pulo-app #pulo-app-spots.is-open,
html.pulo-native.pulo-app #pulo-app-spots,
html.pulo-native.pulo-app #pulo-app-spots.is-open{
    bottom:0 !important;
    height:100% !important;
    left:0 !important;
    max-height:none !important;
    padding-top:0 !important;
    position:absolute !important;
    right:0 !important;
    top:0 !important;
    width:100% !important;
    z-index:40 !important;
}
html.pulo-phone.pulo-app #pulo-app-spots-close,
html.pulo-native.pulo-app #pulo-app-spots-close{
    right:calc(.55rem + env(safe-area-inset-right,0px)) !important;
    top:calc(.45rem + env(safe-area-inset-top,0px)) !important;
    z-index:5 !important;
}
html.pulo-phone.pulo-app #pulo-app-dialog,
html.pulo-native.pulo-app #pulo-app-dialog{
    position:fixed !important;
    z-index:80 !important;
}

html.pulo-phone.pulo-app .coast-map-shell,
html.pulo-phone.pulo-app #coast-map-shell{
    bottom:auto !important;
    flex:1 1 0 !important;
    height:0 !important;
    left:auto !important;
    max-width:100% !important;
    min-height:0 !important;
    min-width:0 !important;
    overflow:hidden !important;
    position:relative !important;
    right:auto !important;
    top:auto !important;
    width:100% !important;
}
html.pulo-phone.pulo-app #coast-map{
    height:auto !important;
    inset:0 !important;
    max-width:100% !important;
    min-height:0 !important;
    min-width:0 !important;
    overflow:hidden !important;
    position:absolute !important;
    touch-action:none;
    width:100% !important;
}
html.pulo-phone.pulo-app #pulo-app-dock{
    bottom:auto !important;
    box-sizing:border-box !important;
    flex:0 0 auto !important;
    left:auto !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow-x:hidden !important;
    padding-bottom:max(.65rem, env(safe-area-inset-bottom, 0px)) !important;
    position:relative !important;
    right:auto !important;
    width:100% !important;
}
html.pulo-phone.pulo-app #pulo-app-sheet{
    left:0 !important;
    max-width:100% !important;
    min-width:0 !important;
    position:absolute !important;
    right:0 !important;
    width:100% !important;
}
html.pulo-phone.pulo-app.is-sheet-full #pulo-app-sheet,
html.pulo-phone.pulo-app.is-sheet-half #pulo-app-sheet{
    bottom:0 !important;
    height:100% !important;
    max-height:100% !important;
    top:0 !important;
}
html.pulo-phone.pulo-app.is-sheet-full #pulo-app-sheet{
    height:100% !important;
    max-height:100% !important;
}
html.pulo-phone.pulo-app.is-sheet-peek #pulo-app-sheet{
    bottom:0 !important;
    height:auto !important;
    max-height:none !important;
    top:auto !important;
}
html.pulo-phone.pulo-app.is-sheet-peek #pulo-app-handle{
    display:block !important;
}
html.pulo-phone.pulo-map-fs #coast-map-fs-close:not([hidden]){
    display:inline-flex !important;
    left:auto !important;
    position:absolute !important;
    right:10px !important;
    top:10px !important;
    z-index:20 !important;
}
html.pulo-phone.pulo-app #pulo-app-dock .coast-map-lock-btn{
    bottom:auto !important;
    flex:1 0 100%;
    left:auto !important;
    order:9;
    position:static !important;
    transform:none !important;
    width:100% !important;
}

@supports (-webkit-touch-callout: none) {
    html.pulo-phone.pulo-app,
    html.pulo-phone.pulo-app body,
    html.pulo-phone.pulo-app body.storefront {
        height: -webkit-fill-available !important;
        height: var(--pulo-vh, 100svh) !important;
        max-height: var(--pulo-vh, 100svh) !important;
    }
    html.pulo-app {
        -webkit-text-size-adjust: 100%;
    }
}

@media (hover: none) {
    .coast-map-lock-btn:hover {
        background: #e11d48;
    }
}

@supports (-webkit-touch-callout: none) {
    html.pulo-phone.pulo-app,
    html.pulo-phone.pulo-app body,
    html.pulo-phone.pulo-app body.storefront {
        height: -webkit-fill-available !important;
        height: var(--pulo-vh, 100svh) !important;
        max-height: var(--pulo-vh, 100svh) !important;
    }
    html.pulo-app {
        -webkit-text-size-adjust: 100%;
    }
}

@media (hover: none) {
    .coast-map-lock-btn:hover {
        background: #e11d48;
    }
}

/* ui80: phone/native detail is a right-edge drawer */
html.pulo-native.is-sheet-full #pulo-app-sheet,
html.pulo-phone.is-sheet-full #pulo-app-sheet {
    border-radius: 0;
    bottom: 0;
    height: 100% !important;
    height: 100dvh !important;
    left: 0;
    max-height: none !important;
    right: 0;
    top: 0;
    transform: translate3d(0,0,0);
    transition: transform .22s ease-out;
    width: 100%;
    z-index: 8;
}
html.pulo-native.is-sheet-full #pulo-app-handle,
html.pulo-phone.is-sheet-full #pulo-app-handle {
    display: none;
}
html.pulo-app #pulo-app-sheet-head {
    background: #fff;
    padding-top: max(.4rem, env(safe-area-inset-top, 0px));
    position: sticky;
    top: 0;
    z-index: 8;
}
html.pulo-native #pulo-app-map-back,
html.pulo-phone #pulo-app-map-back {
    display: none !important;
}
html.pulo-native.is-sheet-drawer-map #pulo-app-sheet,
html.pulo-phone.is-sheet-drawer-map #pulo-app-sheet {
    pointer-events: none;
    transform: translate3d(100%,0,0);
}
html.pulo-native.is-sheet-drawer-map #pulo-app-dock,
html.pulo-phone.is-sheet-drawer-map #pulo-app-dock {
    align-items: center;
    display: flex !important;
    flex-direction: row;
    flex-wrap: wrap;
    z-index: 7;
}
html.pulo-native.is-sheet-drawer-map #pulo-app-dock #pulo-app-spots-btn,
html.pulo-phone.is-sheet-drawer-map #pulo-app-dock #pulo-app-spots-btn {
    flex: 0 0 auto;
}
html.pulo-native.is-sheet-drawer-map #pulo-app-dock #coast-coords,
html.pulo-phone.is-sheet-drawer-map #pulo-app-dock #coast-coords,
html.pulo-native.is-sheet-drawer-map #pulo-app-dock #coast-place,
html.pulo-phone.is-sheet-drawer-map #pulo-app-dock #coast-place {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
}
html.pulo-native.is-sheet-drawer-map #pulo-app-dock #coast-place,
html.pulo-phone.is-sheet-drawer-map #pulo-app-dock #coast-place {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
}
html.pulo-native.is-sheet.is-sheet-drawer-map .coast-map-lock-btn,
html.pulo-phone.is-sheet.is-sheet-drawer-map .coast-map-lock-btn,
html.pulo-native.is-sheet-drawer-map #pulo-app-dock .coast-map-lock-btn,
html.pulo-phone.is-sheet-drawer-map #pulo-app-dock .coast-map-lock-btn {
    display: block !important;
    position: static;
    transform: none;
    left: auto;
    bottom: auto;
    width: 100%;
    margin-top: .15rem;
    z-index: 8;
}
html.pulo-native.is-sheet-drawer-map #pulo-app-sheet-grab,
html.pulo-phone.is-sheet-drawer-map #pulo-app-sheet-grab {
    pointer-events: auto;
}
#pulo-app-sheet-grab {
    display: none;
}
html.pulo-native.is-sheet-drawer-map #pulo-app-sheet-grab,
html.pulo-phone.is-sheet-drawer-map #pulo-app-sheet-grab {
    background: transparent;
    bottom: 0;
    display: block;
    pointer-events: auto;
    position: fixed;
    right: 0;
    top: 0;
    width: 28px;
    z-index: 9;
}


html.pulo-app #coast-map-locate,
html.pulo-map-fs #coast-map-locate,
.coast-map-locate{
    align-items:center;
    background:#fff;
    border:0;
    border-radius:10px;
    box-shadow:0 2px 10px rgba(16,42,67,.18);
    color:#102a43;
    display:flex;
    height:40px;
    justify-content:center;
    left:calc(10px + env(safe-area-inset-left,0px));
    padding:0;
    position:absolute;
    top:calc(54px + env(safe-area-inset-top,0px));
    width:40px;
    z-index:6;
}
html.pulo-app #coast-map-locate.is-busy{opacity:.55;}

html.pulo-app #pulo-app-dlg-ok.is-danger{background:#c53030;color:#fff;}
html.pulo-app #pulo-app-dlg-cancel.is-wide{flex:1 1 auto;font-size:.95rem;font-weight:700;height:auto;padding:.7rem .85rem;width:auto;}

html.pulo-phone #pulo-app-sheet-body,
html.pulo-phone #pulo-app-dock,
html.pulo-phone .coast-page,
html.pulo-phone .pp-body {
    max-width: 100%;
    min-width: 0;
}
html.pulo-phone .coast-week-tabs,
html.pulo-phone .pulo-app-kit-row,
html.pulo-phone .coast-kit-items {
    max-width: 100%;
    min-width: 0;
}
html.pulo-phone .coast-map-shell,
html.pulo-phone #coast-map,
html.pulo-phone .coast-map {
    max-width: 100%;
    overflow: hidden;
}
html:has(.coast-page) body > span:not([class]):not([id]) {
    display: none !important;
    height: 0 !important;
    left: -9999px !important;
    max-width: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    width: 0 !important;
}
