* {
    box-sizing: border-box;
}

/* Compact guest header and continuous featured-business strip. */
@media (max-width: 600px) {
    .small-header:has(.account-menu-logged-out) {
        grid-template-columns: minmax(0, 1fr) auto auto;
        align-items: center;
        min-height: 0;
        padding: 14px 18px;
    }
    .small-header:has(.account-menu-logged-out) > a:first-child {
        grid-column: 1;
        grid-row: 1;
    }
    .small-header .account-menu.account-menu-logged-out {
        position: static;
        display: flex;
        grid-column: 2;
        grid-row: 1;
        width: auto;
        margin: 0;
        gap: 12px;
        align-items: center;
        justify-content: flex-end;
    }
    .small-header:has(.account-menu-logged-out) .language-switcher {
        position: static;
        grid-column: 3;
        grid-row: 1;
        margin: 0;
    }
}
.nearby-featured-carousel-track {
    scroll-snap-type: none;
    scroll-behavior: smooth;
}
.nearby-featured-carousel-track .nearby-place-card {
    flex-basis: calc(100% - 28px);
    scroll-snap-align: none;
}
.nearby-featured-carousel-count,
.nearby-featured-carousel-dots {
    display: none;
}

/* Business-owner campaign analytics dashboard. */
.business-dashboard-link { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; margin-top: 10px; padding: 9px 14px; border: 1px solid #17212b; border-radius: 9px; background: var(--rfd-surface-ffffff, white); color: var(--rfd-text-17212b, #17212b); font-size: 12px; font-weight: 900; text-decoration: none; }
.campaign-dashboard-list { display: grid; gap: 16px; }
.campaign-dashboard-card { padding: 19px; border: 1px solid var(--rfd-border-d8dee3, #d8dee3); border-radius: 15px; background: var(--rfd-surface-ffffff, white); box-shadow: 0 3px 14px rgba(0,0,0,.05); }
.campaign-dashboard-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.campaign-dashboard-heading > div > span { color: var(--rfd-text-66727d, #66727d); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.campaign-dashboard-heading h2 { margin: 4px 0 0; }
.reward-redemption-status { white-space: nowrap; font-size: clamp(1.35rem, 6vw, 1.75rem); }
.reward-dashboard-configure { display: inline-flex; min-height: 44px; align-items: center; gap: 9px; margin: 12px 0 16px; padding: 8px 12px; border: 1px solid var(--rfd-border-d8dee3, #d8dee3); border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-5b1785, #5b1785); font-weight: 800; text-decoration: none; }
.reward-dashboard-configure img { width: 28px; height: 28px; object-fit: contain; }
.campaign-owner-actions { display: flex; gap: 8px; margin: 10px 0 2px; }
.campaign-owner-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 8px 12px; border: 1px solid #17212b; border-radius: 8px; background: var(--rfd-surface-ffffff, white); color: var(--rfd-text-17212b, #17212b); font-size: 12px; font-weight: 900; text-decoration: none; }
.campaign-dashboard-dates { margin: 8px 0 15px; color: var(--rfd-text-66727d, #66727d); font-size: 12px; }
.campaign-metric-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
.campaign-metric-grid > div { display: grid; gap: 3px; padding: 13px; border-radius: 10px; background: var(--rfd-surface-f4f6f8, #f4f6f8); }
.campaign-metric-grid strong { color: var(--rfd-text-17212b, #17212b); font-size: 21px; }
.campaign-metric-grid span { color: var(--rfd-text-66727d, #66727d); font-size: 10px; font-weight: 700; }
.campaign-action-breakdown { margin-top: 13px; border: 1px solid var(--rfd-border-e1e6ea, #e1e6ea); border-radius: 10px; }
.campaign-action-breakdown summary { padding: 11px 13px; cursor: pointer; font-size: 12px; font-weight: 900; }
.campaign-action-breakdown > div { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; padding: 0 13px 13px; }
.campaign-action-breakdown span { display: grid; gap: 2px; color: var(--rfd-text-66727d, #66727d); font-size: 10px; }
.campaign-action-breakdown span strong { color: var(--rfd-text-17212b, #17212b); font-size: 15px; }
.campaign-beach-results { display: grid; gap: 7px; margin-top: 14px; }
.campaign-beach-results > strong { font-size: 12px; }
.campaign-beach-results > div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 11px; border-radius: 8px; background: var(--rfd-surface-fff9e9, #fff9e9); font-size: 11px; }
.campaign-beach-results small { color: var(--rfd-text-66727d, #66727d); text-align: right; }
@media(max-width:700px){.campaign-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-action-breakdown>div{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-beach-results>div{align-items:flex-start;flex-direction:column}.campaign-beach-results small{text-align:left}}

body {
    margin: 0;

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    background: var(--rfd-surface-f4f7f9, #f4f7f9);
    color: var(--rfd-text-17212b, #17212b);
}


.hero {
    position: relative;
    z-index: 1100;

    background: #c62828;
    color: white;

    padding: 28px 20px;
}

.logo {
    font-size: 24px;
    font-weight: 800;
}

.tagline {
    margin-top: 4px;
    opacity: 0.9;
}


.small-header {
    position: relative;
    z-index: 1100;

    padding: 16px 20px;

    background: var(--rfd-surface-ffffff, white);

    border-bottom:
        1px solid var(--rfd-border-dddddd, #ddd);

    display: flex;

    justify-content:
        space-between;
}

.small-header a {
    color: var(--rfd-text-c62828, #c62828);
    text-decoration: none;
}


.container {
    max-width: 650px;

    margin: auto;

    padding: 20px;
}


h1 {
    margin-bottom: 5px;
}

.intro {
    margin-top: 5px;

    color: var(--rfd-text-66727d, #66727d);
}

/* Shared content hierarchy for summary and utility pages. */
.page-title,
.compact-page-title {
    color: var(--rfd-text-17212b, #17212b);
    font-family: inherit;
    font-weight: 700;
    line-height: 1.25;
    overflow-wrap: anywhere;
}
.page-title {
    margin: 0 0 .75rem;
    font-size: clamp(1.25rem, 4vw, 1.375rem);
}
.compact-page-title {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0 0 .875rem;
    font-size: clamp(1.0625rem, 3.5vw, 1.125rem);
}
.compact-page-title img {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    object-fit: contain;
}
.section-heading {
    margin: 0 0 .75rem;
    color: var(--rfd-text-17212b, #17212b);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}
.supporting-description {
    margin: .3rem 0 .875rem;
    color: var(--rfd-text-66727d, #66727d);
    font-size: .875rem;
    line-height: 1.45;
}




/* ---------------------------------
   Public beach search
   --------------------------------- */

.beach-search-box {
    margin-top: 18px;
}

.beach-search-controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
}

.beach-search-field {
    position: relative;
}


#public-beach-search {
    display: block;

    width: 100%;

    padding: 14px 50px 14px 16px;

    border:
        1px solid var(--rfd-border-ccd3d8, #ccd3d8);

    border-radius: 12px;

    background: var(--rfd-surface-ffffff, white);

    color: var(--rfd-text-17212b, #17212b);

    font-family: inherit;
    font-size: 16px;

    box-shadow:
        0 2px 8px
        rgba(0, 0, 0, 0.05);
}


#public-beach-search::-webkit-search-cancel-button {
    appearance: none;
}


.beach-search-clear {
    position: absolute;
    top: 50%;
    right: 6px;

    width: 40px;
    height: 40px;

    padding: 0;

    transform: translateY(-50%);

    border: 0;
    border-radius: 50%;

    background: transparent;
    color: var(--rfd-text-66727d, #66727d);

    font-family: inherit;
    font-size: 28px;
    line-height: 1;

    cursor: pointer;
}


.beach-search-clear[hidden] {
    display: none;
}


.beach-search-clear:hover {
    background: var(--rfd-surface-f1f3f5, #f1f3f5);
    color: var(--rfd-text-17212b, #17212b);
}

.saved-beach-filter {
    display: inline-flex;
    width: 50px;
    height: 50px;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--rfd-border-ccd3d8, #ccd3d8);
    border-radius: 12px;
    background: var(--rfd-surface-ffffff, white);
    color: var(--rfd-text-9aa4ad, #9aa4ad);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    font-family: inherit;
    font-size: 25px;
    line-height: 1;
    cursor: pointer;
}

.saved-beach-filter:hover {
    border-color: var(--rfd-border-d89aa7, #d89aa7);
    background: var(--rfd-surface-fff8fa, #fff8fa);
    color: var(--rfd-text-b7324b, #b7324b);
}

.saved-beach-filter[aria-pressed="true"] {
    border-color: #e6aab7;
    background: var(--rfd-surface-fff0f3, #fff0f3);
    color: var(--rfd-text-b7193a, #b7193a);
}

.saved-beach-filter:focus-visible {
    outline: 3px solid rgba(198, 40, 40, 0.2);
    outline-offset: 2px;
}


.beach-search-clear:focus-visible {
    outline: 3px solid rgba(198, 40, 40, 0.2);
    outline-offset: 1px;
}


#public-beach-search:focus {
    outline: none;

    border-color: #c62828;

    box-shadow:
        0 0 0 3px
        rgba(198, 40, 40, 0.08);
}


.beach-search-empty {
    margin-top: 12px;

    padding: 16px;

    background: var(--rfd-surface-ffffff, white);

    border-radius: 12px;

    color: var(--rfd-text-66727d, #66727d);

    text-align: center;
}

.beach-card-shell {
    position: relative;
    display: grid;
    gap: 0;
    border-radius: 14px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.07);
    transition: box-shadow .2s ease, transform .2s ease;
}

.beach-card-shell.is-map-highlighted { transform: translateY(-2px); box-shadow: 0 0 0 3px rgba(198,40,40,.28), 0 8px 22px rgba(0,0,0,.13); }
.beach-card-shell .beach-card { padding-right: 58px; border-radius: 14px 14px 0 0; box-shadow: none; }
.beach-card-favorite-form { position: absolute; z-index: 10; top: 10px; right: 10px; margin: 0; pointer-events: auto; }
.beach-card-favorite-button { position: relative; z-index: 1; display: grid; place-items: center; box-sizing: border-box; width: 40px; height: 40px; padding: 0; border: 1px solid var(--rfd-border-d7dfe5, #d7dfe5); border-radius: 50%; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-b5262b, #b5262b); font: inherit; font-size: 25px; line-height: 1; text-decoration: none; cursor: pointer; pointer-events: auto; touch-action: manipulation; box-shadow: 0 2px 7px rgba(0,0,0,.08); }
.beach-card-favorite-button:hover, .beach-card-favorite-button:focus-visible { border-color: #c62828; background: var(--rfd-surface-fff5f5, #fff5f5); outline: none; }
.beach-card-favorite-button.is-favorite { font-size: 20px; }
.beach-card-favorite-button:disabled { cursor: wait; opacity: .55; }
.beach-card-favorite-login { position: absolute; z-index: 10; top: 10px; right: 10px; }
.beach-card-actions { padding: 0 14px 14px; border-radius: 0 0 14px 14px; background: var(--rfd-surface-ffffff, #fff); }
.beach-card-actions .beach-plan-button { border-color: var(--rfd-border-e0e6ea, #e0e6ea); background: var(--rfd-surface-f8fafb, #f8fafb); }
.beach-condition-source { display: block; margin-top: 7px; color: var(--rfd-text-526579, #526579); font-size: 12px; font-style: italic; white-space: normal; }
.beach-condition-source:empty { display: none; }
.beach-condition-source.reported { color: var(--rfd-text-315f45, #315f45); font-weight: 700; font-style: normal; }
.beach-distance { display: block; margin-top: 7px; color: var(--rfd-text-174f60, #174f60); font-size: 13px; font-weight: 800; white-space: normal; }
.beach-distance[hidden] { display: none; }


.beach-card-shell[hidden] {
    display: none !important;
}


.beach-map-button {
    width: 100%;

    margin-top: 8px;

    padding: 9px 12px;

    border:
        1px solid var(--rfd-border-ccd3d8, #ccd3d8);

    border-radius: 9px;

    background: var(--rfd-surface-ffffff, white);

    color: var(--rfd-text-526579, #526579);

    font-family: inherit;
    font-size: 13px;
    font-weight: 700;

    cursor: pointer;
}


.beach-map-button:hover {
    border-color: #c62828;

    color: var(--rfd-text-c62828, #c62828);

    background: var(--rfd-surface-fffafa, #fffafa);
}

.beach-map-button[hidden] {
    display: none !important;
}













.beach-list {
    display: grid;

    gap: 14px;

    margin-top: 25px;
}


.beach-card {
    background: var(--rfd-surface-ffffff, white);

    padding: 18px;

    border-radius: 14px;

    text-decoration: none;

    color: inherit;

    box-shadow:
        0 2px 10px
        rgba(0,0,0,0.07);
}


.beach-top {
    display: flex;

    justify-content:
        space-between;

    gap: 10px;
}


.status {
    font-size: 13px;

    font-weight: 800;
}


.flag-icon {
    position: relative;

    display: inline-block;

    width: 30px;
    height: 18px;

    flex: 0 0 auto;

    margin-left: 3px;
    margin-right: 5px;

    border-radius: 1px 3px 3px 1px;

    vertical-align: -2px;

    box-shadow:
        0 0 0 1px
        rgba(0, 0, 0, 0.18);
}


.flag-icon::before {
    position: absolute;
    top: -1px;
    left: -4px;

    width: 2px;
    height: 25px;

    border-radius: 1px;

    background: #59636d;

    content: "";
}


.flag-green {
    background: #2e7d32;
}


.flag-yellow {
    background: #f9a825;
}


.flag-red {
    background: #c62828;
}


.flag-purple {
    background: #7b1fa2;
}


.flag-lifeguard {
    background:
        linear-gradient(
            to bottom,
            #d71920 0 50%,
            #ffd21e 50% 100%
        );
}


.flag-no-lifeguard::after {
    position: absolute;
    top: 7px;
    left: -3px;

    width: 36px;
    height: 3px;

    transform: rotate(-35deg);

    border:
        1px solid var(--rfd-border-ffffff, white);
    border-radius: 2px;

    background: #17212b;

    content: "";
}


/* ---------------------------------
   Calm water icon
   --------------------------------- */

.calm-water-icon {
    display: inline-flex;

    width: 34px;
    height: 22px;

    flex-direction: column;
    justify-content: space-between;

    flex: 0 0 auto;
}


.calm-water-icon > span {
    display: block;

    width: 100%;
    height: 5px;

    border-radius: 999px;
}


.calm-water-icon > span:nth-child(1) {
    background: #5bc0eb;
}


.calm-water-icon > span:nth-child(2) {
    background: #0f9fe8;
}


.calm-water-icon > span:nth-child(3) {
    background: #0b68b7;
}


/* Keep add-on condition icons
   visually consistent */

.condition-icon {
    display: inline-block;

    width: 38px;
    height: 38px;

    flex: 0 0 auto;

    object-fit: contain;
}



.report-count {
    margin-top: 10px;

    color: var(--rfd-text-6a757f, #6a757f);

    font-size: 14px;
}


.consensus-card {
    margin: 0 0 20px;
    padding: 16px;

    border:
        1px solid var(--rfd-border-d8dee3, #d8dee3);
    border-radius: 14px;

    background: var(--rfd-surface-ffffff, white);
}


.consensus-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    margin-bottom: 10px;
}


.consensus-heading span,
.consensus-card small {
    color: var(--rfd-text-66727d, #66727d);
}


.consensus-bar {
    display: flex;
    overflow: hidden;

    width: 100%;
    height: 18px;

    border-radius: 999px;

    background: var(--rfd-surface-e5e8eb, #e5e8eb);
}


.consensus-bar-compact {
    height: 10px;
    margin-top: 10px;
}


.consensus-segment {
    display: block;
    height: 100%;
}


.consensus-good {
    background: #2e7d32;
}


.consensus-caution {
    background: #f9a825;
}


.consensus-marine_hazard {
    background: #7b1fa2;
}


.consensus-avoid_swimming {
    background: #c62828;
}


.consensus-unknown {
    background: #9e9e9e;
}


.consensus-counts {
    display: flex;
    flex-wrap: wrap;

    gap: 8px 14px;

    margin: 10px 0 8px;

    font-size: 13px;
    font-weight: 800;
}


.consensus-count-good {
    color: var(--rfd-text-2e7d32, #2e7d32);
}


.consensus-count-caution {
    color: var(--rfd-text-9a6700, #9a6700);
}


.consensus-count-marine_hazard {
    color: var(--rfd-text-7b1fa2, #7b1fa2);
}


.consensus-count-avoid_swimming {
    color: var(--rfd-text-c62828, #c62828);
}


.consensus-compact-counts {
    margin-top: 6px;

    color: var(--rfd-text-66727d, #66727d);

    font-size: 11px;
}


.report-contributor {
    margin-top: 10px;

    color: var(--rfd-text-66727d, #66727d);

    font-size: 13px;
}


.header-contributor-level {
    display: block;

    color: var(--rfd-text-66727d, #66727d);

    font-size: 12px;
    font-weight: 700;

    line-height: 1.2;
}


.account-identity {
    display: flex;
    flex: 0 1 auto;
    flex-direction: column;

    gap: 3px;

    min-width: 0;

    list-style: none;
    cursor: pointer;
}

.account-identity::-webkit-details-marker {
    display: none;
}

.account-profile-menu {
    position: relative;
    flex: 0 1 auto;
    min-width: 0;
    margin-left: auto;
}

.account-menu > .account-header-avatar {
    box-sizing: border-box;
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: var(--rfd-surface-e8f4f7, #e8f4f7);
    color: var(--rfd-text-0d6678, #0d6678);
    font-size: 18px;
    font-weight: 800;
    line-height: 1;
}

.account-header-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero .account-menu > .account-header-avatar {
    color: var(--rfd-text-0d6678, #0d6678);
}

.header-controls .header-notification-bell {
    display: inline-grid;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    padding: 0;
    place-items: center;
    border-radius: 50%;
    text-decoration: none;
}

.header-notification-bell img {
    display: block;
    width: 46px;
    height: 46px;
    object-fit: contain;
}

.notification-summary-grid { display: grid; gap: .75rem; }
.notification-summary-card { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: .8rem; align-items: center; padding: 1rem; border: 1px solid var(--rfd-border-d7dfe5, #d7dfe5); border-radius: 14px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); text-decoration: none; box-shadow: 0 2px 8px rgba(23,33,43,.06); }
.notification-summary-icon { display: grid !important; width: 58px; height: 58px; margin: 0 !important; place-items: center; border-radius: 14px; background: #344454; }
.notification-summary-card .notification-summary-icon img { display: block; width: 52px; height: 52px; object-fit: contain; }
.notification-summary-card strong, .notification-summary-card span { display: block; }
.notification-summary-card span { margin-top: .2rem; color: var(--rfd-text-60717e, #60717e); }
.notification-page-heading { color: var(--rfd-text-172b4d, #172b4d); }
.notification-summary-empty { padding: 1rem 0; text-align: center; }
.notification-summary-empty strong, .notification-summary-empty span { display: block; }
.notification-summary-empty span { margin-top: .25rem; color: var(--rfd-text-60717e, #60717e); }
.notification-history { margin-top: .75rem; }
.notification-history h2 { margin-bottom: .75rem; }
.notification-history-list { overflow: hidden; border: 1px solid var(--rfd-border-d7dfe5, #d7dfe5); border-radius: 14px; background: var(--rfd-surface-ffffff, #fff); }
.notification-history-item { display: grid; grid-template-columns: 40px minmax(0, 1fr); grid-template-areas: "artwork copy"; column-gap: .8rem; align-items: center; min-height: 64px; padding: .9rem 1rem; border-bottom: 1px solid var(--rfd-border-e5ecef, #e5ecef); color: var(--rfd-text-17212b, #17212b); text-decoration: none; }
.notification-history-item:last-child { border-bottom: 0; }
.notification-history-item.is-unread { box-shadow: inset 4px 0 #c62828; background: var(--rfd-surface-fffafa, #fffafa); }
.notification-history-item[aria-busy="true"] { opacity: .7; pointer-events: none; }
.notification-history-artwork { display: block; grid-area: artwork; width: 40px; height: 40px; object-fit: contain; align-self: start; }
.notification-history-copy { grid-area: copy; min-width: 0; }
.notification-history-item strong, .notification-history-item small { display: block; }
.notification-history-item small { margin-top: .25rem; color: var(--rfd-text-60717e, #60717e); line-height: 1.35; }
.notification-history-item time { display: block; margin-top: .45rem; color: var(--rfd-text-71818a, #71818a); font-size: .78rem; }

@media (max-width: 600px) {
    .hero .brand {
        min-width: 0;
        padding-right: 126px;
    }

    .hero .brand-text {
        min-width: 0;
    }

    .hero .header-controls {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 12px !important;
    }

    .hero .header-controls .account-menu,
    .hero .header-controls .account-profile-menu,
    .hero .header-controls .header-notification-bell {
        flex: 0 0 auto;
    }
}

.account-menu-arrow {
    display: inline-block;
    margin-left: 4px;
    font-size: 10px;
}

.account-profile-menu[open] .account-menu-arrow {
    transform: rotate(180deg);
}

.account-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    left: auto;
    z-index: 20;

    width: max-content;
    max-width: calc(100vw - 24px);
    min-width: 180px;
    padding: 7px;

    border: 1px solid var(--rfd-border-d8dde2, #d8dde2);
    border-radius: 10px;
    background: var(--rfd-surface-ffffff, #fff);
    box-shadow: 0 8px 24px rgba(0,0,0,0.16);
}

.account-dropdown a,
.hero .account-dropdown a {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 10px;
    border-radius: 7px;
    color: var(--rfd-text-17212b, #17212b);
    text-decoration: none;
    white-space: nowrap;
}

.account-dropdown a:hover {
    background: var(--rfd-surface-f2f5f7, #f2f5f7);
}

.account-dropdown-label {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 9px;
}

.account-dropdown-icon {
    width: 20px;
    height: 20px;
}

.account-dropdown a.account-dropdown-lifeguard {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 3px;
}

.account-dropdown-lifeguard-days {
    padding-left: 22px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.2;
    opacity: 0.8;
}

/* Read-only beach data retained for forecast evaluation and model work. */
.admin-model-data-page {
    width: min(1180px, calc(100% - 32px));
    max-width: 1180px;
}

.admin-model-data-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-model-data-privacy-note {
    display: grid;
    gap: 4px;
    margin: 0 0 18px;
    padding: 14px 16px;
    border: 1px solid #b9d7ef;
    border-radius: 12px;
    background: var(--rfd-surface-eef7ff, #eef7ff);
    color: var(--rfd-text-17324d, #17324d);
    line-height: 1.45;
}

.admin-model-data-panel {
    margin-bottom: 20px;
    padding: 18px;
    border: 1px solid var(--rfd-border-d8dee3, #d8dee3);
    border-radius: 14px;
    background: var(--rfd-surface-ffffff, #fff);
    box-shadow: 0 3px 12px rgba(0, 0, 0, .05);
}

.admin-model-data-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

.admin-model-data-heading h2,
.admin-model-data-heading p {
    margin: 0;
}

.admin-model-data-heading p {
    margin-top: 4px;
    color: var(--rfd-text-66727d, #66727d);
}

.admin-model-provider-counts {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.admin-model-provider-counts span,
.admin-model-data-label {
    display: inline-block;
    padding: 4px 7px;
    border-radius: 999px;
    background: var(--rfd-surface-eef2f4, #eef2f4);
    font-size: 11px;
    font-weight: 800;
    text-transform: capitalize;
    white-space: nowrap;
}

.admin-model-data-table-wrap {
    overflow-x: auto;
}

.admin-model-data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.admin-model-data-table th,
.admin-model-data-table td {
    padding: 10px;
    border-bottom: 1px solid var(--rfd-border-e6eaed, #e6eaed);
    text-align: left;
    vertical-align: top;
    white-space: nowrap;
}

.admin-model-data-table th {
    background: var(--rfd-surface-f5f7f8, #f5f7f8);
    font-size: 11px;
    text-transform: uppercase;
}

.admin-model-data-table td small {
    display: block;
    margin-top: 3px;
    color: var(--rfd-text-66727d, #66727d);
}

.admin-model-data-table code {
    font-size: 10px;
}

@media (max-width: 700px) {
    .admin-model-data-page {
        width: min(100% - 20px, 1180px);
    }

    .admin-model-data-summary {
        grid-template-columns: 1fr;
    }

    .admin-model-data-heading {
        flex-direction: column;
    }

    .admin-model-provider-counts {
        justify-content: flex-start;
    }
}

.hero .account-menu .account-dropdown a,
.hero .account-menu .account-dropdown a:link,
.hero .account-menu .account-dropdown a:visited {
    color: var(--rfd-text-17212b, #17212b);
}

.account-dropdown-logout {
    margin: 5px 0 0;
    padding-top: 5px;
    border-top: 1px solid var(--rfd-border-e3e7ea, #e3e7ea);
}

.account-dropdown-logout button {
    width: 100%;
    padding: 9px 10px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--rfd-text-c62828, #c62828);
    font: inherit;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}

.account-dropdown-logout button:hover {
    background: var(--rfd-surface-fff1f1, #fff1f1);
}


.account-greeting {
    line-height: 1.2;
    white-space: nowrap;
}


.hero .header-contributor-level {
    color: rgba(255, 255, 255, 0.82);
}


.arrival-report-prompt {
    margin-top: 14px;
    padding: 16px;

    border:
        2px solid #1976d2;
    border-radius: 14px;

    background: var(--rfd-surface-f3f8fd, #f3f8fd);
}


.arrival-report-prompt[hidden] {
    display: none;
}


.arrival-report-prompt p {
    margin: 6px 0 12px;
}


.arrival-report-actions {
    display: flex;
    flex-wrap: wrap;

    gap: 8px;
}


.arrival-report-actions a,
.arrival-report-actions button {
    padding: 10px 14px;

    border-radius: 9px;

    font: inherit;
    font-weight: 800;
}


.arrival-report-actions a {
    background: #1976d2;
    color: white;

    text-decoration: none;
}


.arrival-report-actions button {
    border:
        1px solid var(--rfd-border-b8c1c8, #b8c1c8);

    background: var(--rfd-surface-ffffff, white);
    color: var(--rfd-text-17212b, #17212b);
}


.big-status {
    margin: 20px 0;

    padding: 25px;

    border-radius: 16px;

    text-align: center;

    font-size: 22px;

    font-weight: 900;

    background: var(--rfd-surface-ffffff, white);
}


.big-status.good {
    border:
        3px solid #2e7d32;
}

.big-status.caution {
    border:
        3px solid #f9a825;
}

.big-status.marine_hazard {
    border:
        3px solid #7b1fa2;
}

.big-status.avoid_swimming {
    border:
        3px solid #c62828;
}

.big-status.unknown {
    border:
        3px solid #9e9e9e;
}


.safety-note {
    color: var(--rfd-text-66727d, #66727d);

    font-size: 14px;
}


.report-button,
.submit-button {
    display: block;

    width: 100%;

    margin:
        24px 0;

    padding: 17px;

    border: 0;

    border-radius: 12px;

    background: #c62828;

    color: white;

    text-align: center;

    text-decoration: none;

    font-weight: 800;

    font-size: 16px;

    cursor: pointer;
}

.report-submit-status {
    margin: 18px 0 12px;
    padding: 14px;
    border: 1px solid #b9d7ef;
    border-radius: 12px;
    background: var(--rfd-surface-eef7ff, #eef7ff);
    color: var(--rfd-text-17324d, #17324d);
}

.report-submit-status[hidden] {
    display: none;
}

.report-submit-status strong {
    display: block;
    margin-bottom: 9px;
}

.report-submit-status progress {
    width: calc(100% - 54px);
    height: 14px;
    vertical-align: middle;
    accent-color: #1677b8;
}

#report-upload-percent {
    display: inline-block;
    width: 48px;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.submit-button:disabled {
    cursor: wait;
    opacity: 0.7;
}

.report-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 52px;
}

.report-button-spinner {
    display: none;
    width: 17px;
    height: 17px;
    border: 2px solid rgba(255, 255, 255, 0.45);
    border-top-color: var(--rfd-border-ffffff, #fff);
    border-radius: 50%;
}

.report-button.is-locating {
    cursor: wait;
    opacity: 0.82;
}

.report-button.is-locating .report-button-spinner {
    display: inline-block;
    animation: report-location-spin 0.75s linear infinite;
}

@keyframes report-location-spin {
    to { transform: rotate(360deg); }
}


.report-card {
    background: var(--rfd-surface-ffffff, white);

    padding: 16px;

    border-radius: 12px;

    margin-bottom: 12px;
}


.report-card p {
    margin-bottom: 8px;
}


.report-card small {
    color: var(--rfd-text-78838d, #78838d);
}


.empty {
    background: var(--rfd-surface-ffffff, white);

    padding: 25px;

    text-align: center;

    border-radius: 12px;

    color: var(--rfd-text-66727d, #66727d);
}


.condition-grid {
    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 10px;

    margin: 25px 0;
}


.condition-grid input {
    display: none;
}


.condition-grid label > span {
    min-height: 95px;

    background: var(--rfd-surface-ffffff, white);

    border:
        2px solid var(--rfd-border-dddddd, #ddd);

    border-radius: 12px;

    padding: 14px;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    gap: 8px;

    cursor: pointer;

    text-align: center;
}

.primary-flag-grid {
    align-items: stretch;
    margin: 0;
}

.primary-flag-section {
    margin: 0 0 24px;
    padding: 0;
}

.primary-flag-section h2 {
    margin: 0 0 12px;
    font-size: 20px;
}

.primary-flag-grid label {
    display: flex;
    min-width: 0;
}

.primary-flag-grid label > span {
    width: 100%;
    min-height: 126px;
    height: 100%;
}

.primary-flag-grid strong {
    font-size: 15px;
    line-height: 1.2;
}

.primary-flag-grid .flag-meaning {
    color: var(--rfd-text-66727d, #66727d);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.25;
}

.primary-flag-grid input:checked + span .flag-meaning {
    color: inherit;
}

.primary-flag-grid .no-flag-option {
    grid-column: 1 / -1;
    width: 100%;
}

.primary-flag-grid .no-flag-option > span {
    width: 100%;
    min-height: 58px;
    height: 58px;
    padding: 8px 14px;
    flex-direction: row;
    gap: 10px;
}

.primary-flag-grid .no-flag-option .flag-icon {
    width: 30px;
    height: 22px;
}

.flag-no-posted {
    background: var(--rfd-surface-ffffff, #fff);
    border-color: var(--rfd-border-aeb7bf, #aeb7bf);
}

.observed-conditions {
    margin: 24px 0 22px;
}

.observed-conditions h2 {
    margin: 0 0 5px;
    font-size: 20px;
}

.observed-conditions > p {
    margin: 0 0 14px;
    color: var(--rfd-text-66727d, #66727d);
    font-size: 14px;
}

.condition-pair {
    margin: 0 0 14px;
    padding: 0;
}

.condition-pair h3 {
    margin: 0 0 7px;
    font-size: 15px;
    font-weight: 800;
}

.condition-pair-grid {
    margin: 0;
}

.condition-pair-grid label > span {
    min-height: 66px;
    padding: 8px 10px;
    flex-direction: row;
    gap: 8px;
}

.condition-pair-grid .condition-icon {
    width: 34px;
    height: 34px;
}

.condition-pair-grid .calm-water-icon {
    width: 34px;
    height: 22px;
    margin: 0;
}


.condition-grid
input:checked + span {

    border-color:
        #c62828;

    background:
        var(--rfd-surface-fff5f5, #fff5f5);
}


.lifeguard-status-fieldset {
    margin: 0 0 24px;
    padding: 0;

    border: 0;
}

.crowd-level-fieldset {
    margin: 0 0 18px;
    padding: 0;
    border: 0;
}

.crowd-level-fieldset legend {
    margin-bottom: 7px;
    font-weight: 800;
}

.crowd-level-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.crowd-level-grid input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
}

.crowd-level-grid label > span {
    display: flex;
    height: 66px;
    min-height: 66px;
    box-sizing: border-box;
    padding: 7px 5px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 2px solid var(--rfd-border-dddddd, #ddd);
    border-radius: 12px;
    background: var(--rfd-surface-ffffff, #fff);
    cursor: pointer;
    text-align: center;
}

.crowd-level-grid input:checked + span {
    border-color: #c62828;
    background: var(--rfd-surface-fff5f5, #fff5f5);
}

.crowd-level-grid input:focus-visible + span {
    outline: 3px solid rgba(198, 40, 40, 0.2);
    outline-offset: 2px;
}

.crowd-level-grid strong {
    font-size: 13px;
    line-height: 1.1;
}

.crowd-level-icon {
    width: 30px;
    height: 30px;
    object-fit: contain;
}

.crowd-level-icon-quiet {
    width: 25px;
    height: 25px;
    margin: 2.5px 0;
}

.crowd-level-icon-busy {
    width: 60px;
    height: 34px;
    object-fit: cover;
    object-position: center;
    margin: -2px 0;
}

.report-crowd-level {
    display: inline-flex;
    margin-top: 8px;
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--rfd-surface-f1f4f6, #f1f4f6);
    color: var(--rfd-text-44515c, #44515c);
    font-size: 13px;
    font-weight: 700;
}


.lifeguard-status-fieldset legend {
    margin-bottom: 10px;

    font-weight: 800;
}


.lifeguard-status-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);

    gap: 10px;
}


.lifeguard-status-grid input {
    position: absolute;

    width: 1px;
    height: 1px;

    overflow: hidden;

    clip: rect(0 0 0 0);
    clip-path: inset(50%);
}


.lifeguard-status-grid label > span {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    min-height: 66px;
    padding: 8px 6px;

    gap: 8px;

    border:
        2px solid var(--rfd-border-dddddd, #ddd);
    border-radius: 12px;

    background: var(--rfd-surface-ffffff, white);

    cursor: pointer;
    text-align: center;
}

.lifeguard-status-grid strong {
    font-size: 13px;
    line-height: 1.15;
}

.lifeguard-status-grid .flag-icon {
    width: 25px;
    height: 19px;
}

.lifeguard-status-icon {
    width: 28px;
    height: 28px;
    object-fit: contain;
}


.lifeguard-status-grid input:checked + span {
    border-color: #1976d2;
    background: var(--rfd-surface-f3f8fd, #f3f8fd);
}


.lifeguard-status-grid input:focus-visible + span {
    outline: 3px solid rgba(25, 118, 210, 0.2);
    outline-offset: 2px;
}


.current-lifeguard-status,
.report-lifeguard-status {
    display: flex;
    align-items: center;

    gap: 6px;

    border-radius: 12px;

    background: var(--rfd-surface-ffffff, white);
}


.current-lifeguard-status {
    margin: -8px 0 20px;
    padding: 14px 16px;

    border:
        1px solid var(--rfd-border-d8dee3, #d8dee3);
}


.current-lifeguard-label {
    color: var(--rfd-text-66727d, #66727d);
}


.report-lifeguard-status {
    margin-top: 10px;
    padding: 8px 0;
}


@media (max-width: 330px) {
    .lifeguard-status-grid {
        grid-template-columns: 1fr;
    }
}


.comment-label {
    display: block;

    font-weight: 700;
}


textarea {
    width: 100%;

    height: 100px;

    margin-top: 10px;

    padding: 12px;

    border:
        1px solid var(--rfd-border-cccccc, #ccc);

    border-radius: 10px;

    resize: vertical;

    font-family: inherit;
}

#map {
    width: 100%;
    height: 380px;

    border-bottom:
        1px solid var(--rfd-border-dddddd, #ddd);
}


.map-popup {
    min-width: 150px;

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
}


.map-popup strong {
    font-size: 16px;
}


.map-popup a {
    color: var(--rfd-text-c62828, #c62828);

    font-weight: 700;

    text-decoration: none;
}

.map-popup .map-popup-view-beach {
    color: var(--rfd-text-1677d2, #1677d2);
}

.map-popup-action {
    margin-top: 6px;
}


@media (max-width: 600px) {

    #map {
        height: 330px;
    }

}


.map-controls {
    max-width: 650px;

    margin: 12px auto 0;

    padding: 0 20px;
}

.map-explore-heading {
    margin: 0 0 4px;
    color: var(--rfd-text-17212b, #17212b);
    font-family: inherit;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
}

.map-controls .beach-search-box {
    margin-top: 10px;
}

.map-controls .beach-search-controls {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
}

.beach-results {
    padding-top: 12px;
}

.beach-results #beach-list-title {
    margin-top: 0;
    margin-bottom: 8px;
    font-family: inherit;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
}

.beach-results .beach-list {
    margin-top: 0;
}

.map-location-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}


#location-button,
#planning-location-button {
    width: 100%;

    padding: 13px;

    border: 0;

    border-radius: 10px;

    background: var(--rfd-surface-ffffff, white);

    font-size: 15px;

    font-weight: 700;

    cursor: pointer;

    box-shadow:
        0 2px 8px
        rgba(0,0,0,0.08);
}

#planning-location-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
}

.country-button-icon {
    object-fit: contain;
}

/* Enlarge the artwork inside the existing location controls, without changing their boxes. */
#location-button,
#planning-location-button {
    position: relative;
}
#location-button .navigation-icon,
#planning-location-button .navigation-icon {
    width: 22px;
    height: 22px;
    transform: scale(1.45);
    transform-origin: center;
}


.planning-location-dialog {
    box-sizing: border-box;
    width: min(92vw, 520px);
    max-height: min(82vh, 720px);
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 18px;
    background: var(--rfd-surface-f5f7f9, #f5f7f9);
    color: var(--rfd-text-17212b, #17212b);
    box-shadow: 0 22px 65px rgba(15, 23, 42, .3);
}

.planning-location-dialog::backdrop {
    background: rgba(15, 23, 42, .58);
}

.planning-location-dialog-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 18px 14px;
    background: var(--rfd-surface-ffffff, #fff);
}

.planning-location-dialog-header strong,
.planning-location-dialog-header small {
    display: block;
}

.planning-location-dialog-header strong { font-size: 1.2rem; }
.planning-location-dialog-header small { margin-top: 4px; color: var(--rfd-text-687789, #687789); line-height: 1.35; }
.planning-location-dialog-header button { width: 36px; height: 36px; flex: 0 0 36px; border: 1px solid var(--rfd-border-d7dfe5, #d7dfe5); border-radius: 50%; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-526276, #526276); cursor: pointer; font-size: 1.5rem; }
.planning-location-search-label { display: block; padding: 14px 18px 6px; color: var(--rfd-text-526276, #526276); font-size: .8rem; font-weight: 800; text-transform: uppercase; }
#planning-location-search { box-sizing: border-box; width: calc(100% - 36px); min-height: 46px; margin: 0 18px 12px; padding: 10px 13px; border: 1px solid var(--rfd-border-bec9d2, #bec9d2); border-radius: 10px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); font: inherit; }
.planning-location-list { max-height: calc(min(82vh, 720px) - 176px); padding: 0 18px 18px; overflow-y: auto; }
.planning-country-group { margin-bottom: 12px; overflow: hidden; border: 1px solid var(--rfd-border-dce3e8, #dce3e8); border-radius: 12px; background: var(--rfd-surface-ffffff, #fff); }
.planning-country-group[hidden] { display: none; }
.planning-country-group h3 { display: flex; align-items: center; gap: 9px; margin: 0; padding: 11px 13px; border-bottom: 1px solid var(--rfd-border-e7ecef, #e7ecef); font-size: 1rem; }
.planning-country-flag { display: inline-grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; overflow: hidden; border-radius: 6px; background: var(--rfd-surface-eef2f4, #eef2f4); color: var(--rfd-text-26323d, #26323d); font-size: .72rem; font-weight: 900; line-height: 1; }
.planning-country-flag img { display: block; width: 100%; height: 100%; object-fit: cover; }
.planning-location-option { display: flex; width: 100%; min-height: 44px; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 13px; border: 0; border-bottom: 1px solid var(--rfd-border-eef1f3, #eef1f3); background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); cursor: pointer; font: inherit; text-align: left; }
.planning-location-option:last-child { border-bottom: 0; }
.planning-location-option:hover,
.planning-location-option:focus-visible { background: var(--rfd-surface-fff8e6, #fff8e6); }
.planning-location-option small { color: var(--rfd-text-687789, #687789); font-size: .75rem; text-transform: capitalize; }
.planning-location-single { min-height: 54px; justify-content: flex-start; border-bottom: 0; font-size: 1rem; }
.planning-location-single strong { min-width: 0; }
.planning-location-empty { margin: 0 18px 18px; padding: 14px; border-radius: 10px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-687789, #687789); text-align: center; }
.planning-location-empty[hidden] { display: none; }


#location-message {
    margin-top: 8px;

    text-align: center;

    font-size: 13px;

    color: var(--rfd-text-66727d, #66727d);
}

.photo-upload {
    background: var(--rfd-surface-ffffff, white);
    padding: 18px;
    border-radius: 12px;
    margin-top: 20px;
}

.photo-upload label {
    display: block;
    font-weight: 700;
    margin-bottom: 10px;
}

.photo-upload input {
    width: 100%;
}

.photo-upload small {
    display: block;
    margin-top: 8px;
    color: var(--rfd-text-66727d, #66727d);
}


.report-photo {
    width: 100%;
    max-height: 420px;

    object-fit: cover;

    border-radius: 10px;

    margin-top: 12px;
}
.report-photo-row { display: flex; gap: .55rem; overflow-x: auto; padding: .25rem 0 .5rem; scroll-snap-type: inline mandatory; }
.report-photo-row .report-photo { width: min(78%, 320px); flex: 0 0 min(78%, 320px); scroll-snap-align: start; }

.auth-container {
    max-width: 480px;
}


.auth-form {
    margin-top: 25px;
}


.auth-form label {
    display: block;

    margin-bottom: 18px;

    font-weight: 700;
}


.auth-form input {
    width: 100%;

    margin-top: 8px;

    padding: 14px;

    border:
        1px solid var(--rfd-border-ccd3d8, #ccd3d8);

    border-radius: 10px;

    font-size: 16px;

    font-family: inherit;
}


.auth-form input:focus {
    outline: none;

    border-color: #c62828;
}


/* ---------------------------------
   Certification date picker
   iPhone / Safari final sizing
   --------------------------------- */

.certification-date-field {
    position: relative;

    display: block;

    width: 100%;
    max-width: 100%;

    margin-top: 8px;
}


.certification-date-field
input[type="date"] {
    display: block;

    box-sizing: border-box;

    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 52px;

    margin: 0;

    padding:
        14px 52px 14px 14px;

    border:
        1px solid var(--rfd-border-ccd3d8, #ccd3d8);

    border-radius: 10px;

    background-color: var(--rfd-surface-ffffff, white);

    color: var(--rfd-text-17212b, #17212b);

    font-family: inherit;
    font-size: 16px;

    line-height: 1.2;

    color-scheme: light;

    -webkit-appearance: none;
    appearance: none;

    cursor: pointer;
}


.certification-date-field
input[type="date"]::-webkit-date-and-time-value {
    min-width: 0;

    padding: 0;

    text-align: left;
}


.certification-date-field
input[type="date"]::-webkit-calendar-picker-indicator {
    opacity: 0;
}


.certification-date-icon {
    position: absolute;

    top: 50%;
    right: 16px;

    transform: translateY(-50%);

    font-size: 21px;
    line-height: 1;

    width: 34px;
    height: 34px;
    padding: 0;

    border: 0;
    background: transparent;

    cursor: pointer;
}


.auth-error {
    background: var(--rfd-surface-fff1f1, #fff1f1);

    border:
        1px solid #e0a1a1;

    color: var(--rfd-text-9d1c1c, #9d1c1c);

    padding: 12px;

    border-radius: 10px;

    margin-top: 18px;
}


.auth-switch {
    text-align: center;

    color: var(--rfd-text-66727d, #66727d);
}


.auth-switch a {
    color: var(--rfd-text-c62828, #c62828);

    font-weight: 700;

    text-decoration: none;
}

.hero-top {
    display: flex;

    justify-content: space-between;
    align-items: flex-start;

    gap: 20px;
}


.account-menu {
    display: flex;

    align-items: center;

    gap: 16px;

    font-size: 14px;

    flex-wrap: nowrap;
}

.account-menu > a,
.account-menu > span {
    line-height: 14px;
}


.account-menu a {
    color: inherit;

    text-decoration: none;

    font-weight: 700;
}


.hero .account-menu a {
    color: white;
}





.logout-button {
    display: inline-block;

    border: 0;

    padding: 0;

    margin: 0;

    background: transparent;

    color: inherit;

    font: inherit;

    font-weight: 700;

    line-height: 14px;

    cursor: pointer;
}

.logout-form {
    display: flex;

    align-items: flex-start;

    margin: 0;
}



.hero .logout-button {
    color: white;
}



.join-link {
    border:
        1px solid rgba(255, 255, 255, 0.8);

    border-radius: 8px;

    padding: 7px 11px;
}


.small-account {
    font-size: 13px;
}


.small-account a {
    color: var(--rfd-text-c62828, #c62828);
}


@media (max-width: 600px) {

    .hero {
        padding: 20px 14px;
    }

    .hero-top {
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
        gap: 10px;
    }

    .header-controls {
        width: auto;
        flex-direction: column;
        align-items: flex-end;
        justify-content: flex-start;
        flex-wrap: nowrap;
        gap: 8px;
    }

    .language-switcher {
        justify-content: flex-end;
        white-space: nowrap;
    }

    .account-menu {
        justify-content: flex-end;
        flex-wrap: wrap;
        gap: 8px;
    }

    .small-header {
        flex-wrap: wrap;
        gap: 8px;
    }

    .small-account {
        width: 100%;
        justify-content: flex-end;
    }

}

.cooldown-message {
    background: var(--rfd-surface-fff7e6, #fff7e6);

    border:
        1px solid #e6b85c;

    padding: 18px;

    border-radius: 12px;

    margin: 20px 0;

    line-height: 1.5;
}

.cooldown-message p {
    margin: 8px 0 12px;
}

.cooldown-title {
    display: block;
    font-size: 17px;
}

.wind-card {
    background: var(--rfd-surface-ffffff, white);
    padding: 16px;
    border-radius: 12px;
    margin: 16px 0;
}

.wind-main {
    font-weight: 700;
}

.wind-value {
    font-size: 26px;
    font-weight: 800;
    margin-top: 4px;
}

.wind-detail {
    color: var(--rfd-text-66727d, #66727d);
    margin-top: 4px;
}

.photo-pending-message {
    background: var(--rfd-surface-fff7e6, #fff7e6);
    border: 1px solid #e6b85c;
    padding: 14px 16px;
    border-radius: 12px;
    margin: 16px 0;
    line-height: 1.5;
}

.photo-review-status {
    margin-top: 10px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rfd-text-8a6518, #8a6518);
}

.photo-policy {
    margin: 8px 0 12px;
    font-size: 13px;
    color: var(--rfd-text-66727d, #66727d);
    line-height: 1.4;
}

.photo-rights-check {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;

    margin-top: 18px;

    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;

    cursor: pointer;
}

.photo-rights-check input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    flex: 0 0 auto;
    cursor: pointer;
}

.photo-rights-check[hidden] {
    display: none;
}

.report-photo-preview {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 10px 12px;
    align-items: center;
    margin-top: 14px;
    padding: 10px;
    border: 1px solid var(--rfd-border-d8dee3, #d8dee3);
    border-radius: 10px;
    background: var(--rfd-surface-ffffff, #fff);
}

.report-photo-preview[hidden] { display: none; }
.report-photo-preview img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; }
.report-photo-preview span { min-width: 0; overflow-wrap: anywhere; }
.report-photo-preview button { grid-column: 2; justify-self: start; }

.photo-approved-message,
.photo-pending-message,
.photo-rejected-message {
    padding: 14px 16px;
    border-radius: 12px;
    margin: 16px 0;
    line-height: 1.5;
}

.photo-approved-message {
    background: var(--rfd-surface-eef8ee, #eef8ee);
    border: 1px solid #8bbf8b;
}

.photo-pending-message {
    background: var(--rfd-surface-fff7e6, #fff7e6);
    border: 1px solid #e6b85c;
}

.photo-rejected-message {
    background: var(--rfd-surface-fff0f0, #fff0f0);
    border: 1px solid var(--rfd-border-d89a9a, #d89a9a);
}

.admin-photo-card {
    background: var(--rfd-surface-ffffff, white);
    padding: 20px;
    border-radius: 14px;
    margin-bottom: 24px;
}

.admin-review-photo {
    display: block;
    width: 100%;
    max-height: 500px;
    object-fit: contain;
    border-radius: 10px;
    margin: 16px 0;
}

.admin-photo-actions {
    display: flex;
    gap: 12px;
}

.admin-photo-actions form {
    flex: 1;
}

.admin-photo-intro {
    margin: -6px 0 20px;
    color: var(--rfd-text-526579, #526579);
    line-height: 1.45;
}

.navigation-icon {
    display: inline-block;
    flex: 0 0 auto;
    object-fit: contain;
    vertical-align: middle;
}

.day-plan-add-label,
.beach-checkin-heading strong {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.review-summary-icon {
    flex: 0 0 auto;
}

.approve-button,
.reject-button {
    width: 100%;
    padding: 14px;
    border: 0;
    border-radius: 10px;
    font-weight: 700;
    cursor: pointer;
}

.approve-button {
    background: #278a49;
    color: white;
}

.reject-button {
    background: #c93636;
    color: white;
}

.admin-review-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;

    padding: 6px 10px;

    background: var(--rfd-surface-fff4d6, #fff4d6);
    border-radius: 8px;

    color: var(--rfd-text-805d13, #805d13);
    font-weight: 700;
    text-decoration: none;
}

.admin-review-link:hover {
    background: var(--rfd-surface-ffe9aa, #ffe9aa);
}

.header-controls {
    display: flex;
    align-items: center;
    gap: 16px;
}

/* ---------------------------------
   Language selector
   --------------------------------- */

.language-switcher {
    display: flex;

    align-items: center;

    margin: 0;
}


.language-switcher-label {
    position: absolute;

    width: 1px;
    height: 1px;

    padding: 0;
    margin: -1px;

    overflow: hidden;

    clip:
        rect(0, 0, 0, 0);

    white-space: nowrap;

    border: 0;
}


.language-select {
    min-width: 64px;

    height: 34px;

    padding:
        5px 28px 5px 10px;

    border:
        1px solid
        rgba(255, 255, 255, 0.65);

    border-radius: 8px;

    background-color:
        rgba(255, 255, 255, 0.12);

    color: white;

    font-family: inherit;
    font-size: 13px;
    font-weight: 700;

    cursor: pointer;
}


.language-select option {
    color: var(--rfd-text-17212b, #17212b);

    background: var(--rfd-surface-ffffff, white);
}


.small-header
.language-select {
    border-color: var(--rfd-border-ccd3d8, #ccd3d8);

    background: var(--rfd-surface-ffffff, white);

    color: var(--rfd-text-17212b, #17212b);
}




/* Red Flag Day header branding */
.brand {
    display: flex;
    flex-direction: row;
    align-items: center;

    position: relative;

    gap: 12px;
}

.site-logo {
    display: block;
    flex: 0 0 auto;
}

.header-lifeguard-verified {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 auto;

    width: 42px;
    height: 42px;

    margin-left: 4px;

    padding: 0;

    font-size: 34px;
    line-height: 1;

    text-decoration: none;

    transform: translateY(0);

    cursor: pointer;

    filter:
        drop-shadow(
            0 2px 2px
            rgba(0, 0, 0, 0.18)
        );
}

.brand-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.logo {
    font-size: 24px;
    font-weight: 800;
    line-height: 1.05;
    white-space: nowrap;
}

.tagline {
    margin-top: 6px;
    font-size: 15px;
    line-height: 1.2;
    opacity: 0.9;
}

@media (max-width: 600px) {

    .brand {
        gap: 9px;
    }

    .site-logo {
        width: 54px;
        height: 54px;
        flex-basis: 54px;
    }

    .brand .logo {
        font-size: 21px;
    }

    .brand .tagline {
        font-size: 14px;
        margin-top: 4px;
    }

    .header-lifeguard-verified {
        width: 38px;
        height: 38px;

        font-size: 30px;
    }

}


/* ---------------------------------
   Current weather
---------------------------------- */

.wind-card {
    background: var(--rfd-surface-ffffff, white);
    padding: 20px;
    border-radius: 18px;
    margin: 16px 0;
}

.weather-card-header {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 12px;

    margin-bottom: 18px;
}


.wind-main {
    font-size: 20px;
    font-weight: 800;
    margin: 0;
}


.weather-unit-toggle {
    display: inline-flex;

    flex: 0 0 auto;

    padding: 3px;

    background: var(--rfd-surface-eef1f3, #eef1f3);

    border-radius: 9px;
}


.weather-unit-button {
    padding: 6px 9px;

    border: 0;

    border-radius: 7px;

    background: transparent;

    color: var(--rfd-text-66727d, #66727d);

    font-family: inherit;
    font-size: 11px;
    font-weight: 700;

    cursor: pointer;
}


.weather-unit-button.active {
    background: var(--rfd-surface-ffffff, white);

    color: var(--rfd-text-17212b, #17212b);

    box-shadow:
        0 1px 4px
        rgba(0, 0, 0, 0.12);
}


/* Two-column layout */

.weather-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
}


/* LEFT - temperature */

.weather-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-right: 20px;
}

.weather-primary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.weather-icon {
    display: block;
    width: 42px;
    height: 42px;
    object-fit: contain;
}

.weather-temperature {
    font-size: 31px;
    font-weight: 800;
    line-height: 1;
}

.weather-description {
    margin-top: 10px;
    font-size: 16px;
    color: var(--rfd-text-526579, #526579);
}


/* RIGHT - wind */

.wind-section {
    display: flex;
    min-height: 105px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-left: 20px;

    border-left:
        1px solid var(--rfd-border-dfe4e8, #dfe4e8);
}

.wind-primary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.wind-icon {
    display: block;
    width: 38px;
    height: 38px;
    object-fit: contain;
}

.wind-speed {
    font-size: 31px;
    font-weight: 800;
    line-height: 1;
}

.wind-unit {
    font-size: 15px;
    font-weight: 400;
}

.wind-details {
    display: flex;
    align-items: baseline;
    gap: 5px;
    margin-top: 10px;
    white-space: nowrap;
    font-size: 14px;
    color: var(--rfd-text-526579, #526579);
}

.wind-direction {
    font-weight: 700;
}

.extended-forecast {
    margin: 16px 0;
    overflow: hidden;
    border-radius: 14px;
    background: var(--rfd-surface-ffffff, #fff);
}

.extended-forecast summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px;
    color: var(--rfd-text-17212b, #17212b);
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.extended-forecast summary::-webkit-details-marker {
    display: none;
}

.extended-forecast-list {
    border-top: 1px solid var(--rfd-border-e5e9ec, #e5e9ec);
}

.extended-forecast-day {
    display: grid;
    grid-template-columns: 100px minmax(120px, 1fr) minmax(210px, 1.6fr);
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
}

.extended-forecast-day + .extended-forecast-day {
    border-top: 1px solid var(--rfd-border-eef1f3, #eef1f3);
}

.extended-forecast-date {
    color: var(--rfd-text-17212b, #17212b);
    font-size: 13px;
    font-weight: 800;
}

.extended-forecast-condition {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--rfd-text-33475b, #33475b);
    font-size: 13px;
}

.extended-forecast-icon {
    display: block;
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.extended-forecast-values {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px 14px;
    color: var(--rfd-text-526579, #526579);
    font-size: 12px;
}

.extended-forecast-values strong {
    color: var(--rfd-text-17212b, #17212b);
}

.extended-forecast-values > span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.extended-forecast-value-icon {
    display: inline-block;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    object-fit: contain;
}


/* ---------------------------------
   Mobile
---------------------------------- */

@media (max-width: 480px) {

    .wind-card {
        padding: 18px;
    }

    .weather-layout {
        grid-template-columns: 1fr 1fr;
    }

    .weather-section {
        padding-right: 12px;
    }

    .wind-section {
        padding-left: 12px;
    }

    .weather-icon {
        width: 42px;
        height: 42px;
    }

    .wind-icon {
        width: 38px;
        height: 38px;
    }

    .weather-temperature,
    .wind-speed {
        font-size: 31px;
    }

    .wind-unit {
        font-size: 12px;
    }

    .weather-description,
    .wind-details {
        font-size: 13px;
    }

    .extended-forecast-day {
        grid-template-columns: 88px 1fr;
        gap: 10px;
        padding: 13px 16px;
    }

    .extended-forecast-values {
        grid-column: 1 / -1;
        justify-content: flex-start;
        padding-left: 0;
    }

}


/* ---------------------------------
   Rate limit page
---------------------------------- */

.rate-limit-container {
    max-width: 520px;
    padding-top: 50px;
}

.rate-limit-card {
    background: var(--rfd-surface-ffffff, white);

    padding: 36px 28px;

    border-radius: 16px;

    text-align: center;

    box-shadow:
        0 2px 12px
        rgba(0, 0, 0, 0.08);
}

.rate-limit-icon {
    font-size: 48px;

    margin-bottom: 12px;
}

.rate-limit-card h1 {
    margin:
        0 0 14px;
}

.rate-limit-message {
    margin:
        0 0 12px;

    font-size: 18px;
    font-weight: 700;
}

.rate-limit-detail {
    margin:
        0 auto 28px;

    max-width: 390px;

    color: var(--rfd-text-66727d, #66727d);

    line-height: 1.5;
}

.rate-limit-button {
    display: block;

    width: 100%;

    padding: 15px;

    border-radius: 10px;

    background: #c62828;

    color: white;

    text-decoration: none;

    font-size: 15px;
    font-weight: 800;
}

.rate-limit-button:hover {
    background: #a91f1f;
}

.auth-message {
    background: var(--rfd-surface-eef8ee, #eef8ee);

    border:
        1px solid #8bbf8b;

    color: var(--rfd-text-245b2a, #245b2a);

    padding: 14px;

    border-radius: 10px;

    margin-top: 18px;

    line-height: 1.5;
}


/* ---------------------------------
   Verification resend
---------------------------------- */

.verification-resend {
    margin-top: 24px;

    padding: 18px;

    background: var(--rfd-surface-ffffff, white);

    border-radius: 12px;

    border:
        1px solid var(--rfd-border-e0e5e9, #e0e5e9);
}

.verification-resend p {
    margin:
        0 0 12px;

    color: var(--rfd-text-66727d, #66727d);

    font-size: 14px;
}

.resend-form {
    display: flex;

    flex-direction: column;

    gap: 10px;
}

.resend-form input {
    width: 100%;

    padding: 12px;

    border:
        1px solid var(--rfd-border-ccd3d8, #ccd3d8);

    border-radius: 10px;

    font-size: 15px;
}

.resend-button {
    width: 100%;

    padding: 12px;

    border: 0;

    border-radius: 10px;

    background: #c62828;

    color: white;

    font-weight: 800;

    cursor: pointer;
}

.resend-button:hover {
    background: #a91f1f;
}

.password-field {
    position: relative;
}

.password-field input {
    width: 100%;
    padding-right: 50px;
}

.password-toggle {
    position: absolute;
    top: 50%;
    right: 12px;

    transform: translateY(-50%);

    width: 28px;
    height: 28px;

    padding: 2px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 0;
    background: transparent;

    color: var(--rfd-text-17212b, #17212b);

    cursor: pointer;
}

.password-toggle:hover {
    background: transparent;
}

.password-toggle svg {
    width: 24px;
    height: 24px;

    fill: none;

    stroke: currentColor;
    stroke-width: 2;

    stroke-linecap: round;
    stroke-linejoin: round;
}

.password-toggle .eye-closed { display: none; }
.password-toggle .eye-open { display: block; }
.password-toggle.password-visible .eye-closed { display: block; }
.password-toggle.password-visible .eye-open { display: none; }

/* ---------------------------------
   Admin review links
   --------------------------------- */

.hero .account-menu a.admin-review-link,
.hero .account-menu a.admin-review-link:link,
.hero .account-menu a.admin-review-link:visited,
.hero .account-menu a.admin-review-link:hover,
.hero .account-menu a.admin-review-link:active {
    color: var(--rfd-text-000000, #000000) !important;
}

.hero .account-menu a.admin-review-link {
    background: var(--rfd-surface-fff4d6, #fff4d6);
}

.hero .account-menu a.admin-review-link:hover {
    background: var(--rfd-surface-ffe9aa, #ffe9aa);
}

/* ---------------------------------
   Beach suggestion form
   --------------------------------- */

#beach-suggestion-form {
    margin-top: 14px;

    padding: 16px 18px;

    background: var(--rfd-surface-ffffff, white);

    border-radius: 12px;

    text-align: left;

    box-shadow:
        0 2px 8px
        rgba(0, 0, 0, 0.06);
}

#beach-suggestion-form label {
    display: block;

    margin-bottom: 8px;

    font-size: 15px;
    font-weight: 700;

    color: var(--rfd-text-17212b, #17212b);
}

#beach-suggestion-form input[type="text"] {
    display: block;

    width: 100%;

    margin-bottom: 10px;

    padding: 12px;

    border:
        1px solid var(--rfd-border-ccd3d8, #ccd3d8);

    border-radius: 10px;

    font-family: inherit;
    font-size: 15px;

    color: var(--rfd-text-17212b, #17212b);

    background: var(--rfd-surface-ffffff, white);
}

#beach-suggestion-form input[type="text"]:focus {
    outline: none;

    border-color: #c62828;
}

#beach-suggestion-form button {
    display: block;

    width: 100%;

    padding: 12px;

    border: 0;

    border-radius: 10px;

    background: #c62828;

    color: white;

    font-family: inherit;
    font-size: 15px;
    font-weight: 800;

    cursor: pointer;
}

#beach-suggestion-form button:hover {
    background: #a91f1f;
}

#beach-suggestion-form small {
    display: block;

    margin-top: 10px;

    color: var(--rfd-text-66727d, #66727d);

    font-size: 13px;
    line-height: 1.4;

    text-align: left;
}


/* ---------------------------------
   Lifeguard verification
   --------------------------------- */

.verification-privacy-note,
.verification-evidence,
.verification-consent {
    background: var(--rfd-surface-ffffff, white);

    padding: 18px;

    margin: 18px 0;

    border-radius: 12px;

    border:
        1px solid var(--rfd-border-e0e5e9, #e0e5e9);
}

.verification-privacy-note p,
.verification-consent p {
    color: var(--rfd-text-66727d, #66727d);

    line-height: 1.5;
}

.verification-privacy-note ol {
    padding-left: 22px;

    line-height: 1.6;
}

.verification-evidence h2 {
    margin-top: 0;

    font-size: 18px;
}

.verification-evidence p {
    color: var(--rfd-text-66727d, #66727d);

    line-height: 1.5;
}

.verification-evidence label {
    display: block;

    margin-top: 14px;

    font-weight: 700;
}

.verification-evidence input[type="file"] {
    display: block;

    width: 100%;

    margin-top: 10px;

    padding: 10px;

    border:
        1px solid var(--rfd-border-ccd3d8, #ccd3d8);

    border-radius: 10px;

    background: var(--rfd-surface-f8fafb, #f8fafb);

    font-family: inherit;
}

.verification-evidence small {
    display: block;

    margin-top: 8px;

    color: var(--rfd-text-66727d, #66727d);

    font-size: 13px;
}

.lifeguard-verification-form textarea {
    display: block;

    width: 100%;

    margin-top: 8px;
}

.verification-consent {
    font-size: 14px;
}

/* ---------------------------------
   Admin lifeguard review
   --------------------------------- */

.admin-lifeguard-card {
    background: var(--rfd-surface-ffffff, white);

    padding: 20px;

    margin-bottom: 24px;

    border-radius: 14px;

    box-shadow:
        0 2px 10px
        rgba(0, 0, 0, 0.07);
}

.admin-lifeguard-card h2 {
    margin-top: 0;
}

.admin-lifeguard-details {
    margin-bottom: 20px;
}

.admin-lifeguard-details p {
    margin:
        8px 0;
}

.lifeguard-evidence-grid {
    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 18px;

    margin:
        22px 0;
}

.lifeguard-evidence-card {
    background: var(--rfd-surface-f8fafb, #f8fafb);

    padding: 14px;

    border:
        1px solid var(--rfd-border-e0e5e9, #e0e5e9);

    border-radius: 12px;
}

.lifeguard-evidence-card h3 {
    margin:
        0 0 12px;

    font-size: 16px;
}

.lifeguard-review-image {
    display: block;

    width: 100%;

    max-height: 420px;

    object-fit: contain;

    background: var(--rfd-surface-ffffff, white);

    border-radius: 10px;
}

.admin-lifeguard-actions {
    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 18px;

    align-items: start;
}

.lifeguard-approve-form,
.lifeguard-reject-form {
    margin: 0;
}

.lifeguard-reject-form label {
    display: block;

    margin-bottom: 8px;

    font-weight: 700;
}

.lifeguard-reject-form textarea {
    width: 100%;

    margin:
        0 0 10px;

    min-height: 110px;
}

.lifeguard-approve-form .approve-button,
.lifeguard-reject-form .reject-button {
    width: 100%;
}

@media (max-width: 700px) {

    .lifeguard-evidence-grid,
    .admin-lifeguard-actions {
        grid-template-columns:
            1fr;
    }

}

/* ---------------------------------
   Verified lifeguard account
   --------------------------------- */

.account-menu .lifeguard-verified-link {
    display: flex;
    flex-direction: column;

    align-items: flex-start;
    justify-content: flex-start;

    flex: 0 0 auto;

    line-height: 1;
    text-decoration: none;
    white-space: nowrap;

    position: relative;

    /* Reserve room for the countdown
       without moving the heading down */
    padding-bottom: 13px;
}


.account-menu .lifeguard-verified-title {
    display: block;

    font-size: 14px;
    font-weight: 800;

    line-height: 14px;
}


.account-menu .lifeguard-countdown {
    position: absolute;

    top: 16px;
    left: 22px;

    display: block;

    padding: 0;

    font-size: 11px;
    font-weight: 600;
    line-height: 12px;

    opacity: 0.85;
}

/* ---------------------------------
   Verified lifeguard beach report
   --------------------------------- */

.report-count {
    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 8px;
}

.lifeguard-report-badge {
    display: inline-flex;

    align-items: center;

    gap: 4px;

    font-size: 12px;

    font-weight: 800;

    color: var(--rfd-text-17212b, #17212b);

    white-space: nowrap;
}

.beach-card-lifeguard-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--rfd-text-17212b, #17212b);
    font-size: 12px;
    white-space: nowrap;
}

.beach-card-lifeguard-status .flag-icon {
    width: 22px;
    height: 15px;
}

.beach-card-statuses {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 14px;
}

.beach-card > .beach-card-statuses {
    margin-top: 6px;
}

.beach-card-statuses .status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

/* ---------------------------------
   Favorite beaches
   --------------------------------- */

.favorite-star {
    color: var(--rfd-text-e7a500, #e7a500);
}

.beach-title-row {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 18px;
}

.beach-title-row h1 {
    margin: 0;
}

.favorite-toggle-form {
    display: inline-flex;
    margin: 0;
}

.favorite-toggle-button,
.favorite-remove-button {
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid var(--rfd-border-c9d0d6, #c9d0d6);
    border-radius: 10px;
    background: var(--rfd-surface-ffffff, #fff);
    color: var(--rfd-text-17212b, #17212b);
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.favorite-toggle-button.is-favorite {
    border-color: #e7a500;
    background: var(--rfd-surface-fff8dc, #fff8dc);
}

.favorite-toggle-button {
    width: 38px;
    padding: 6px;
    color: var(--rfd-text-b05a00, #b05a00);
    font-size: 18px;
    line-height: 1;
}

.favorite-beach-list {
    display: grid;
    gap: 14px;
}

.favorite-beach-card {
    padding: 18px;
    border: 1px solid var(--rfd-border-d8dde2, #d8dde2);
    border-radius: 14px;
    background: var(--rfd-surface-ffffff, #fff);
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}

.favorite-card-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.favorite-card-details {
    flex: 1 1 auto;
    min-width: 0;
}

.favorite-card-main > form {
    flex: 0 0 auto;
    margin: 0;
}

.favorite-beach-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.favorite-beach-heading a {
    color: var(--rfd-text-17212b, #17212b);
    text-decoration: none;
}

.favorite-report-count {
    margin: 9px 0 0;
    color: var(--rfd-text-66727d, #66727d);
    font-size: 13px;
}

.favorite-remove-button {
    color: var(--rfd-text-c62828, #c62828);
}

.favorite-beach-card small {
    display: block;
    color: var(--rfd-text-66727d, #66727d);
    line-height: 1.4;
}

.favorites-empty {
    padding: 24px;
    text-align: center;
}

/* ---------------------------------
   Account settings
   --------------------------------- */

.account-settings-page {
    display: grid;
    gap: 16px;
}

.account-settings-page > h1 {
    margin-bottom: 0;
}

.account-settings-card {
    padding: 20px;
    border: 1px solid var(--rfd-border-d8dde2, #d8dde2);
    border-radius: 14px;
    background: var(--rfd-surface-ffffff, #fff);
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}

.account-settings-card h2 {
    margin-top: 0;
}

.account-settings-card form {
    display: grid;
    gap: 9px;
}

.account-settings-card label {
    margin-top: 6px;
    font-weight: 800;
}

.account-settings-card input,
.account-settings-card select {
    width: 100%;
    min-height: 44px;
    padding: 9px 11px;
    border: 1px solid var(--rfd-border-c9d0d6, #c9d0d6);
    border-radius: 9px;
    background: var(--rfd-surface-ffffff, #fff);
    color: var(--rfd-text-17212b, #17212b);
    font: inherit;
}

.account-settings-card input:disabled {
    background: var(--rfd-surface-f2f5f7, #f2f5f7);
    color: var(--rfd-text-66727d, #66727d);
}

.settings-save-button {
    min-height: 44px;
    margin-top: 10px;
    padding: 10px 14px;
    border: 0;
    border-radius: 9px;
    background: #c62828;
    color: #fff;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}
.settings-save-button:disabled { cursor: wait; opacity: .65; }

.account-settings-card .language-select { position: relative; box-sizing: border-box; width: 100%; height: auto; min-width: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; cursor: default; }
.account-settings-card .language-native-select { position: absolute; width: 1px; min-height: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); border: 0; white-space: nowrap; }
.language-select-trigger { display: flex; width: 100%; min-height: 44px; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 11px; border: 1px solid var(--rfd-border-c9d0d6, #c9d0d6); border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); font: inherit; text-align: left; cursor: pointer; }
.language-select-trigger b { font-size: 1.7rem; line-height: .75; }
.language-select-trigger:focus-visible { outline: 3px solid rgba(33, 112, 137, .28); outline-offset: 2px; }
.language-select-options { position: absolute; z-index: 20; top: calc(100% + 2px); left: 0; right: 0; box-sizing: border-box; overflow: hidden; border: 1px solid #17212b; border-radius: 0 0 7px 7px; background: var(--rfd-surface-ffffff, #fff); box-shadow: 0 5px 12px rgba(23, 33, 43, .13); }
.language-select-options[hidden] { display: none; }
.language-select-options button { display: block; width: 100%; padding: 8px 14px; border: 0; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); font: inherit; text-align: left; cursor: pointer; }
.language-select-options button:hover,
.language-select-options button:focus,
.language-select-options button[aria-selected="true"] { outline: 0; background: #1769d2; color: #fff; }
.preferences-language-field { display: grid; gap: 5px; }
.preferences-language-field > label { margin: 0; }
.preferences-save-button { width: 100%; margin-top: 18px; }
.preferences-save-button:disabled { cursor: not-allowed; opacity: .55; }

.settings-saved-message {
    padding: 12px 14px;
    border: 1px solid #7eb987;
    border-radius: 10px;
    background: var(--rfd-surface-eef8ef, #eef8ef);
    color: var(--rfd-text-236b2e, #236b2e);
    font-weight: 700;
}

.settings-muted {
    color: var(--rfd-text-66727d, #66727d);
}

.settings-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 9px 0;
    cursor: pointer;
}

.account-settings-card .settings-checkbox input {
    width: 20px;
    min-height: 20px;
    margin: 0;
    flex: 0 0 auto;
}

.settings-error-message {
    padding: 12px 14px;
    border: 1px solid #ef9a9a;
    border-radius: 10px;
    background: var(--rfd-surface-fff1f1, #fff1f1);
    color: var(--rfd-text-b71c1c, #b71c1c);
    font-weight: 700;
}

.danger-zone {
    border-color: #ef9a9a;
}

.danger-zone h2 {
    color: var(--rfd-text-b71c1c, #b71c1c);
}

.delete-account-button {
    min-height: 44px;
    margin-top: 10px;
    padding: 10px 14px;
    border: 0;
    border-radius: 9px;
    background: #8e0000;
    color: #fff;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

@media (max-width: 600px) {
    .favorite-beach-heading {
        flex-direction: column;
    }

    .favorite-beach-heading .status {
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }
}

.advertising-beach-picker {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-column: 1 / -1;
    gap: 9px;
    min-width: 0;
    margin: 0;
    padding: 16px;
    border: 1px solid var(--rfd-border-d8dee3, #d8dee3);
    border-radius: 12px;
    background: var(--rfd-surface-f8fafb, #f8fafb);
}
.advertising-beach-picker legend { padding: 0 5px; color: var(--rfd-text-17212b, #17212b); font-size: 14px; font-weight: 900; }
.advertising-beach-picker > p { grid-column: 1 / -1; margin: 0 0 4px; color: var(--rfd-text-66727d, #66727d); font-size: 12px; font-weight: 500; line-height: 1.4; }
.advertise-campaign-form .advertising-beach-option {
    display: flex;
    min-width: 0;
    padding: 11px;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--rfd-border-d8dee3, #d8dee3);
    border-radius: 10px;
    background: var(--rfd-surface-ffffff, white);
    cursor: pointer;
}
.advertise-campaign-form .advertising-beach-option:has(input:checked) { border-color: #d5a83e; background: var(--rfd-surface-fff8e6, #fff8e6); box-shadow: inset 0 0 0 1px #d5a83e; }
.advertise-campaign-form .advertising-beach-option input { width: 18px; height: 18px; min-width: 18px; margin: 0; accent-color: #c62828; }
.advertising-beach-option > span { display: grid; min-width: 0; gap: 2px; }
.advertising-beach-option strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.advertising-beach-option small { color: var(--rfd-text-66727d, #66727d); font-size: 11px; font-weight: 500; }
.advertising-no-beaches { grid-column: 1 / -1; padding: 12px; border-radius: 9px; background: var(--rfd-surface-fff0f0, #fff0f0); color: var(--rfd-text-9d1c1c, #9d1c1c); font-size: 13px; }
.advertising-review-targets { margin: 14px 0; }
.advertising-review-targets > strong { display: block; margin-bottom: 7px; font-size: 12px; }
.advertising-review-targets > div { display: flex; flex-wrap: wrap; gap: 6px; }
.advertising-review-targets span { padding: 6px 9px; border: 1px solid #e1b95e; border-radius: 999px; background: var(--rfd-surface-fff8e6, #fff8e6); color: var(--rfd-text-62480f, #62480f); font-size: 12px; font-weight: 700; }
.advertising-form-error { display: grid; gap: 3px; margin-bottom: 14px; padding: 14px 16px; border: 1px solid #e3a2a2; border-left: 4px solid #c62828; border-radius: 10px; background: var(--rfd-surface-fff4f4, #fff4f4); color: var(--rfd-text-8e1c1c, #8e1c1c); }
.advertising-form-error span { color: var(--rfd-text-572020, #572020); font-size: 14px; }
.advertising-form-error small { margin-top: 3px; color: var(--rfd-text-7b5d5d, #7b5d5d); font-size: 11px; }
@media (max-width: 700px) {
    .advertising-beach-picker { grid-template-columns: 1fr; padding: 13px; }
    .advertising-beach-picker > p { grid-column: auto; }
}


/* ---------------------------------
   Logged-out account menu
   --------------------------------- */

.account-menu.account-menu-logged-out {
    align-items: center;
}

.account-menu.account-menu-logged-out > a {
    line-height: normal;
}

.account-menu.account-menu-logged-out .join-link {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    line-height: 1;

    margin: 0;
}



/* =================================================
   MOBILE HEADER - FINAL LAYOUT
   ================================================= */

@media (max-width: 600px) {

    .hero {
        position: relative;
        padding: 16px 14px 20px;
    }

    .hero-top {
        display: block;
    }


    /* ---------- BRAND ---------- */

    .brand {
        display: flex;
        align-items: center;

        gap: 8px;

        min-height: 54px;

        /* Space for language selector */
        padding-right: 90px;
    }

    .site-logo {
        width: 52px;
        height: 52px;

        flex: 0 0 52px;
    }

    .brand .logo {
        font-size: 20px;
        line-height: 1.05;

        white-space: nowrap;
    }

    .brand .tagline {
        margin-top: 4px;

        font-size: 13px;
        line-height: 1.15;

        white-space: nowrap;
    }

    /* Keep verified badge beside RED FLAG DAY */

    .header-lifeguard-verified {
        width: 34px;
        height: 34px;

        flex: 0 0 34px;

        margin-left: 2px;

        font-size: 27px;
    }


    /* ---------- HEADER CONTROLS ---------- */

    .header-controls {
        display: block;

        width: 100%;
    }


    /* EN · EL */

    /* ---------- LANGUAGE ---------- */

    .language-switcher {
        position: absolute;

        top: 16px;
        right: 14px;

        display: flex;

        align-items: center;

        margin: 0 0 8px 0;
    }


    .language-switcher .language-select {
        min-width: 62px;

        height: 32px;

        padding:
            4px 24px 4px 9px;

        font-size: 12px;
    }

    .language-switcher a {
        line-height: 20px;
    }


    /* ---------- LOGOUT ---------- */

    .account-menu:not(.account-menu-logged-out)
    .logout-form {
        position: absolute;

        top: 54px;
        right: 14px;

        display: inline-flex;

        margin: 0;

        align-items: center;
        justify-content: flex-end;
    }

    .logout-button {
        line-height: 1.2;
    }


    /* ---------- LOGGED-IN ROW ---------- */

    .account-menu:not(.account-menu-logged-out) {
        display: flex;

        width: 100%;

        margin-top: 16px;
        padding: 0;

        align-items: center;

        gap: 10px;

        font-size: 13px;
    }



    /* Hi, David Cover */

    .account-menu:not(.account-menu-logged-out)
    > span {
        flex: 0 0 auto;

        margin: 0;

        margin-right: auto;

        white-space: nowrap;

        line-height: 1.2;
    }

    /* ---------- NON-VERIFIED USER ---------- */

    /*
       Lifeguard Verification stays under Logout
       for users who are NOT verified.
    */

    .account-menu:not(.account-menu-logged-out)
    > a[href="/lifeguard-verification"] {

        position: absolute;

        right: 14px;
        bottom: 14px;

        width: auto;
        height: auto;

        margin: 0;
        padding: 0;

        display: inline-flex;

        align-items: center;
        justify-content: flex-end;

        font-size: 11px;
        font-weight: 700;

        line-height: 1.15;

        white-space: nowrap;
    }


    /* ---------- VERIFIED LIFEGUARD ---------- */

    /*
       Hi, David Cover                Lifeguard Verified
    */

    .account-menu:not(.account-menu-logged-out)
    .lifeguard-verified-link {

        position: absolute;

        top: 94px;
        right: 14px;

        display: inline-flex;

        width: auto;
        height: auto;

        margin: 0;
        padding: 0;

        align-items: center;
        justify-content: flex-end;

        overflow: visible;

        font-size: 11px;
        font-weight: 700;

        line-height: 1.15;

        white-space: nowrap;
    }

    .account-menu
    .lifeguard-verified-title {

        display: inline;

        font-size: 11px;

        line-height: 1.15;
    }

    .account-menu
    .lifeguard-verified-title::before {
        content: none;
    }

    .account-menu
    .lifeguard-countdown {
        display: none;
    }


    /* ---------- ADMIN ---------- */

    /*
       Hi, David Cover       [camera] [pin] [lifeguard]
    */

    .admin-header-actions {
        display: flex;

        width: auto;

        flex: 0 0 auto;

        align-items: center;
        justify-content: flex-end;

        gap: 7px;

        margin-left: auto;
    }

    .hero .account-menu
    .admin-review-link {

        display: inline-flex;

        min-width: 48px;
        height: 38px;

        padding: 6px 9px;

        align-items: center;
        justify-content: center;

        gap: 5px;

        border-radius: 9px;

        line-height: 1;

        white-space: nowrap;
    }

    .admin-action-label {
        display: none;
    }

    .admin-action-icon {
        display: inline-block;

        font-size: 18px;

        line-height: 1;
    }

    .admin-action-count {
        display: inline-block;

        font-size: 14px;
        font-weight: 800;

        line-height: 1;
    }


    /* ---------- LOGGED OUT ---------- */

    /*
       EN · EL
       Login Join
    */

    .account-menu.account-menu-logged-out {
        position: absolute;

        top: 56px;
        right: 14px;

        width: auto;

        display: flex;

        align-items: center;
        justify-content: flex-end;

        gap: 12px;

        margin: 0;

        font-size: 13px;
    }

    .account-menu.account-menu-logged-out
    .join-link {
        padding: 6px 10px;
    }

}


/* ---------------------------------
   Weather source attribution
   --------------------------------- */

.weather-source {
    display: flex;
    align-items: baseline;
    gap: .3rem;
    flex-wrap: wrap;
    margin-top: 10px;
    text-align: left;
    font-size: 0.72rem;
    color: var(--rfd-text-6b7280, #6b7280);
}

.weather-source a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.weather-source a:hover {
    color: var(--rfd-text-374151, #374151);
}

/* ---------------------------------
   Admin beach management
   --------------------------------- */

.admin-beach-page {
    max-width: 900px;

    margin: 0 auto;

    padding:
        24px 16px 60px;
}


.admin-beach-heading {
    margin-bottom: 20px;
}


.admin-beach-heading h1 {
    margin-bottom: 8px;
}


.admin-beach-heading p {
    margin-top: 0;

    color: var(--rfd-text-66727d, #66727d);

    line-height: 1.5;
}


.admin-beach-summary {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 12px;

    margin-bottom: 20px;
}


.admin-beach-summary > div {
    background: var(--rfd-surface-ffffff, white);

    padding: 16px;

    border-radius: 12px;

    text-align: center;

    box-shadow:
        0 2px 8px
        rgba(0, 0, 0, 0.06);
}


.admin-beach-summary strong {
    display: block;

    font-size: 24px;
}


.admin-beach-summary span {
    display: block;

    margin-top: 4px;

    color: var(--rfd-text-66727d, #66727d);

    font-size: 13px;
}


.admin-beach-tools {
    background: var(--rfd-surface-ffffff, white);

    padding: 18px;

    border-radius: 12px;

    margin-bottom: 12px;

    box-shadow:
        0 2px 8px
        rgba(0, 0, 0, 0.06);
}


.admin-beach-tools > label:first-child {
    display: block;

    margin-bottom: 7px;

    font-weight: 700;
}


.local-place-dashboard {
    padding: 24px;
}


.local-place-dashboard-heading h2,
.local-place-island-heading h3 {
    margin: 0;
}


.local-place-dashboard-heading p {
    margin: 6px 0 0;

    color: var(--rfd-text-66727d, #66727d);
}

.local-place-dashboard-heading,
.featured-listing-admin-heading,
.featured-listing-search {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.local-place-manage-featured {
    color: var(--rfd-text-c62828, #c62828);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.featured-listing-search input {
    flex: 1;
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid var(--rfd-border-ccd3d8, #ccd3d8);
    border-radius: 9px;
}

.featured-listing-search {
    display: grid;
    grid-template-columns:
        minmax(100px, 1fr)
        minmax(100px, 1fr)
        minmax(180px, 1.7fr)
        minmax(115px, 1fr)
        auto;
    align-items: center;
    justify-content: initial;
}

.featured-listing-search > label {
    grid-column: 1 / 2;
}

.featured-listing-search > input {
    grid-column: 2 / -1;
    width: 100%;
}

.featured-listing-search select {
    width: 100%;
    min-width: 0;
}

.featured-listing-search select,
.featured-listing-manual input,
.featured-listing-manual select,
.featured-listing-manual textarea {
    padding: 10px 12px;
    border: 1px solid var(--rfd-border-ccd3d8, #ccd3d8);
    border-radius: 9px;
    font: inherit;
}

.featured-listing-manual summary { cursor: pointer; font-weight: 800; }
.featured-listing-manual form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 16px; }
.featured-listing-manual textarea,
.featured-listing-manual button { grid-column: 1 / -1; }
.advertise-campaign-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 24px; }
.advertise-campaign-form label { display: grid; gap: 7px; color: var(--rfd-text-17212b, #17212b); font-size: 13px; font-weight: 800; }
.advertise-campaign-form input,.advertise-campaign-form select,.advertise-campaign-form textarea { width: 100%; padding: 12px; border: 1px solid var(--rfd-border-ccd3d8, #ccd3d8); border-radius: 9px; background: var(--rfd-surface-ffffff, white); font: inherit; }
.advertise-campaign-form textarea { min-height: 110px; resize: vertical; }
.advertise-campaign-form label:nth-of-type(3),.advertise-campaign-form .advertise-cover-field,.advertise-campaign-form button { grid-column: 1 / -1; }
.advertise-cover-field { padding: 16px; border: 1px dashed var(--rfd-border-b8c1c8, #b8c1c8); border-radius: 11px; background: var(--rfd-surface-f8fafb, #f8fafb); }
.advertise-cover-field span { color: var(--rfd-text-66727d, #66727d); font-size: 12px; font-weight: 400; }
.advertise-campaign-form .field-label { display: inline; }
.advertise-campaign-form .field-optional { display: inline; margin-left: 5px; color: var(--rfd-text-77838d, #77838d); font-size: 11px; font-weight: 600; }
@media (max-width:700px){.advertise-campaign-form{grid-template-columns:1fr;padding:18px}.advertise-campaign-form label:nth-of-type(3),.advertise-campaign-form .advertise-cover-field,.advertise-campaign-form button{grid-column:auto}}
.featured-listing-location { color: var(--rfd-text-66727d, #66727d); font-size: 13px; }
.featured-listing-selected-beach { margin: 10px 0; padding: 8px 10px; border-radius: 8px; background: var(--rfd-surface-edf7f1, #edf7f1); color: var(--rfd-text-276142, #276142); font-size: 13px; }
.featured-listing-beaches { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 16px; }
.featured-listing-beaches strong { width: 100%; font-size: 12px; }
.featured-listing-beaches span { padding: 5px 8px; border-radius: 999px; background: var(--rfd-surface-f0f3f5, #f0f3f5); color: var(--rfd-text-52606c, #52606c); font-size: 12px; }

.featured-listing-search button {
    padding: 10px 18px;
    border: 0;
    border-radius: 9px;
    background: #17212b;
    color: white;
    font-weight: 800;
}

.featured-listing-hint { color: var(--rfd-text-66727d, #66727d); }

.featured-listing-admin-grid {
    display: grid;
    gap: 14px;
}

.featured-listing-admin-card {
    padding: 18px;
    border: 1px solid var(--rfd-border-d8dee3, #d8dee3);
    border-radius: 14px;
    background: var(--rfd-surface-ffffff, white);
}
.featured-listing-admin-card h2 { margin: 0 0 8px; }
.featured-listing-address { margin: 0 0 12px; color: var(--rfd-text-52606b, #52606b); }
.featured-listing-nearby { display: grid; gap: 7px; margin: 12px 0 8px; }
.featured-listing-nearby > strong { color: var(--rfd-text-17212b, #17212b); font-size: 12px; }
.featured-listing-nearby > div { display: flex; flex-wrap: wrap; gap: 6px; }
.featured-listing-nearby span { padding: 6px 9px; border-radius: 999px; background: var(--rfd-surface-f0f3f5, #f0f3f5); color: var(--rfd-text-52606b, #52606b); font-size: 11px; line-height: 1.2; }
.featured-listing-coordinates { margin: 8px 0 14px; color: var(--rfd-text-7b8791, #7b8791); font-size: 11px; }

.featured-listing-admin-card.is-featured {
    border-color: #e1b95e;
    box-shadow: 0 3px 14px rgba(128, 93, 19, 0.1);
}

.featured-listing-admin-heading h2 { margin: 3px 0 14px; }
.featured-listing-admin-heading span { color: var(--rfd-text-66727d, #66727d); font-size: 12px; text-transform: uppercase; }
.featured-listing-admin-heading > strong { color: var(--rfd-text-805d13, #805d13); background: var(--rfd-surface-fff4d6, #fff4d6); padding: 5px 9px; border-radius: 999px; font-size: 11px; }
.featured-listing-toggle { display: block; margin-bottom: 14px; font-weight: 700; }
.featured-listing-fields { display: grid; grid-template-columns: 100px 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.featured-listing-fields label { font-size: 12px; font-weight: 700; }
.featured-listing-fields input { display: block; width: 100%; margin-top: 5px; padding: 9px; border: 1px solid var(--rfd-border-ccd3d8, #ccd3d8); border-radius: 8px; }

@media (max-width: 700px) {
    .local-place-dashboard-heading,
    .featured-listing-search { align-items: stretch; flex-direction: column; }
    .featured-listing-fields { grid-template-columns: 1fr; }
    .featured-listing-manual form { grid-template-columns: 1fr; }
    .featured-listing-manual textarea,
    .featured-listing-manual button { grid-column: auto; }
    .featured-listing-search { display: grid; grid-template-columns: 1fr; }
    .featured-listing-search > label,
    .featured-listing-search > input { grid-column: auto; }
}


.local-place-coverage-metrics {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 10px;

    margin: 20px 0 14px;
}


.local-place-coverage-metric {
    padding: 14px;

    border: 1px solid var(--rfd-border-e4e8eb, #e4e8eb);
    border-radius: 11px;

    background: var(--rfd-surface-f8fafb, #f8fafb);
}


.local-place-coverage-metric strong,
.local-place-coverage-metric span {
    display: block;
}


.local-place-coverage-metric strong {
    color: var(--rfd-text-17212b, #17212b);

    font-size: 21px;
}


.local-place-coverage-metric span {
    margin-top: 3px;

    color: var(--rfd-text-66727d, #66727d);

    font-size: 12px;
}


.local-place-remote-note {
    margin: 0 0 18px;

    padding: 10px 12px;

    border-radius: 9px;

    background: var(--rfd-surface-fff8e6, #fff8e6);

    color: var(--rfd-text-5f4a16, #5f4a16);

    font-size: 13px;
    line-height: 1.45;
}


.local-place-refresh-all-form {
    margin: 0;
}


.local-place-refresh-all-button,
.local-place-retry-button {
    width: 100%;

    min-height: 42px;

    border-radius: 9px;

    font-family: inherit;
    font-weight: 800;

    cursor: pointer;
}


.local-place-refresh-all-button {
    border: 0;

    background: #c62828;
    color: white;

    box-shadow:
        0 6px 16px
        rgba(198, 40, 40, 0.2);
}


.local-place-refresh-all-button:hover {
    background: #ad2020;

    transform: translateY(-1px);
}


.local-place-island-heading {
    display: flex;

    align-items: baseline;
    justify-content: space-between;

    gap: 12px;

    margin: 22px 0 10px;
}


.local-place-island-heading h3 {
    font-size: 15px;
}


.local-place-island-heading span {
    color: var(--rfd-text-78838d, #78838d);

    font-size: 12px;
}


.local-place-island-grid {
    display: block;
    columns: 3 250px;
    column-gap: 12px;
}


.local-place-region-form {
    display: inline-block;
    width: 100%;
    margin: 0;
    margin-bottom: 12px;
    break-inside: avoid;
}

.local-place-outlier-form {
    display: block;
    width: 100%;
    margin-bottom: 16px;
}

.local-place-outlier-button {
    border-color: #d19a25;
    background: var(--rfd-surface-fffaf0, #fffaf0);
}


.local-place-region-button {
    width: 100%;
    min-height: 64px;

    padding: 10px;

    border: 1px solid var(--rfd-border-d8dee3, #d8dee3);
    border-radius: 10px;

    background: var(--rfd-surface-ffffff, white);
    color: var(--rfd-text-17212b, #17212b);

    font-family: inherit;
    text-align: left;

    cursor: pointer;
}


.local-place-region-button strong,
.local-place-region-button span {
    display: block;
}


.local-place-region-button span {
    margin-top: 4px;

    color: var(--rfd-text-78838d, #78838d);

    font-size: 12px;
}


.local-place-region-button:hover {
    border-color: var(--rfd-border-9eabb5, #9eabb5);

    background: var(--rfd-surface-f8fafb, #f8fafb);
}

.local-place-region-button.is-complete {
    border-color: #79bd8b;
    background: var(--rfd-surface-eef9f1, #eef9f1);
    box-shadow: 0 3px 12px rgba(30, 120, 61, .1);
}

.local-place-region-history {
    display: grid;
    gap: 6px;
    width: 100%;
    margin-top: 8px;
}

.local-place-region-history-item {
    display: grid;
    gap: 2px;
    padding: 7px 9px;
    border-radius: 8px;
    background: var(--rfd-surface-f2f4f6, #f2f4f6);
    color: var(--rfd-text-66727d, #66727d);
    text-align: left;
}

.local-place-region-history-item.is-complete {
    background: var(--rfd-surface-dff3e5, #dff3e5);
    color: var(--rfd-text-176b35, #176b35);
}

.local-place-region-history-item strong,
.local-place-region-history-item small {
    font: inherit;
}

.local-place-region-history-item strong {
    font-weight: 900;
}

.local-place-region-history-item small {
    font-size: 10px;
}


.local-place-retry-form {
    margin-top: 12px;
}


.local-place-retry-button {
    border: 1px solid #e0a1a1;

    background: var(--rfd-surface-fff5f5, #fff5f5);
    color: var(--rfd-text-9d1c1c, #9d1c1c);
}


.local-place-refresh-result {
    margin-top: 16px;

    padding-top: 14px;

    border-top: 1px solid var(--rfd-border-edf0f2, #edf0f2);

    color: var(--rfd-text-43515d, #43515d);

    font-size: 13px;
}


.local-place-refresh-result p {
    margin: 0;
}


.local-place-refresh-result div {
    margin-top: 7px;

    color: var(--rfd-text-9d1c1c, #9d1c1c);
}


.local-place-dashboard button:disabled {
    opacity: 0.55;

    cursor: wait;
}


@media (max-width: 760px) {
    .local-place-dashboard {
        padding: 18px;
    }

    .local-place-coverage-metrics {
        grid-template-columns: 1fr;
    }

    .local-place-island-grid {
        columns: 1;
    }

    .local-place-region-form,
    .local-place-region-button {
        width: 100%;
    }

    .local-place-island-heading {
        display: block;
    }

    .local-place-island-heading span {
        display: block;

        margin-top: 4px;
    }
}


#beach-search {
    display: block;

    width: 100%;

    padding: 12px 14px;

    border:
        1px solid var(--rfd-border-ccd3d8, #ccd3d8);

    border-radius: 10px;

    font-family: inherit;
    font-size: 16px;
}


#beach-search:focus {
    outline: none;

    border-color: #c62828;
}


.admin-beach-filter {
    display: flex;

    align-items: center;

    gap: 8px;

    margin-top: 14px;

    font-size: 14px;

    cursor: pointer;
}


.admin-beach-filter input {
    width: 17px;
    height: 17px;

    margin: 0;
}


.admin-beach-result-count {
    margin:
        12px 2px 16px;

    color: var(--rfd-text-66727d, #66727d);

    font-size: 13px;
}


.admin-beach-list {
    display: grid;

    gap: 14px;
}


.admin-beach-card {
    background: var(--rfd-surface-ffffff, white);

    padding: 18px;

    border:
        1px solid var(--rfd-border-e0e5e9, #e0e5e9);

    border-radius: 14px;

    box-shadow:
        0 2px 8px
        rgba(0, 0, 0, 0.05);
}


.admin-beach-card-archived {
    opacity: 0.7;

    background: var(--rfd-surface-f2f3f4, #f2f3f4);
}


.admin-beach-card-top {
    display: flex;

    justify-content:
        space-between;

    align-items:
        flex-start;

    gap: 16px;
}


.admin-beach-card h2 {
    margin:
        0 0 9px;

    font-size: 20px;
}


.admin-beach-badges {
    display: flex;

    flex-wrap: wrap;

    gap: 6px;
}


.admin-beach-badge {
    display: inline-flex;

    padding:
        4px 8px;

    border-radius: 999px;

    font-size: 11px;

    font-weight: 800;
}


.admin-beach-badge-active {
    background: var(--rfd-surface-e9f7ed, #e9f7ed);

    color: var(--rfd-text-246b36, #246b36);
}


.admin-beach-badge-archived {
    background: var(--rfd-surface-e6e8ea, #e6e8ea);

    color: var(--rfd-text-59636d, #59636d);
}


.admin-beach-badge-source {
    background: var(--rfd-surface-eef3f8, #eef3f8);

    color: var(--rfd-text-40566c, #40566c);
}


.admin-beach-report-count {
    flex: 0 0 auto;

    min-width: 65px;

    text-align: center;
}


.admin-beach-report-count strong {
    display: block;

    font-size: 22px;
}


.admin-beach-report-count span {
    display: block;

    color: var(--rfd-text-66727d, #66727d);

    font-size: 11px;
}


.admin-beach-details {
    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 10px 18px;

    margin-top: 18px;

    padding-top: 14px;

    border-top:
        1px solid var(--rfd-border-edf0f2, #edf0f2);
}


.admin-beach-details > div {
    min-width: 0;
}


.admin-beach-details span {
    display: block;

    margin-bottom: 3px;

    color: var(--rfd-text-78838d, #78838d);

    font-size: 11px;
}


.admin-beach-details strong {
    display: block;

    overflow-wrap: anywhere;

    font-size: 13px;
}


.admin-beach-seed-name {
    grid-column:
        1 / -1;
}


.admin-beach-duplicate-warning {
    margin-top: 15px;

    padding: 12px;

    border:
        1px solid #e6b85c;

    border-radius: 10px;

    background: var(--rfd-surface-fff7e6, #fff7e6);

    font-size: 13px;

    line-height: 1.5;
}


.admin-beach-duplicate-warning strong {
    display: block;

    margin-bottom: 5px;

    color: var(--rfd-text-805d13, #805d13);
}


.admin-beach-readonly-note {
    margin-top: 14px;

    color: var(--rfd-text-8b949d, #8b949d);

    font-size: 11px;

    text-align: right;

    text-transform: uppercase;

    letter-spacing: 0.04em;
}


@media (max-width: 600px) {

    .admin-beach-page {
        padding:
            18px 12px 50px;
    }


    .admin-beach-summary {
        gap: 8px;
    }


    .admin-beach-summary > div {
        padding:
            13px 8px;
    }


    .admin-beach-summary strong {
        font-size: 20px;
    }


    .admin-beach-card {
        padding: 15px;
    }


    .admin-beach-card-top {
        gap: 10px;
    }


    .admin-beach-card h2 {
        font-size: 18px;
    }


    .admin-beach-details {
        grid-template-columns:
            1fr;
    }


    .admin-beach-seed-name {
        grid-column: auto;
    }

}


/* ---------------------------------
   Admin beach actions
   --------------------------------- */

.admin-beach-management-actions {
    display: flex;

    flex-wrap: wrap;

    gap: 9px;

    margin-top: 16px;

    padding-top: 14px;

    border-top:
        1px solid var(--rfd-border-edf0f2, #edf0f2);
}


.admin-beach-inline-form {
    margin: 0;
}


.admin-beach-action-button,
.admin-beach-management-actions summary,
.admin-beach-archive-button,
.admin-beach-restore-button {
    min-height: 38px;

    padding:
        9px 12px;

    border:
        1px solid var(--rfd-border-ccd3d8, #ccd3d8);

    border-radius: 9px;

    background: var(--rfd-surface-ffffff, white);

    color: var(--rfd-text-17212b, #17212b);

    font-family: inherit;

    font-size: 13px;

    font-weight: 700;

    text-decoration: none;

    cursor: pointer;
}


.admin-beach-management-actions summary {
    display: inline-flex;

    align-items: center;

    list-style: none;
}


.admin-beach-management-actions summary::-webkit-details-marker {
    display: none;
}


.admin-beach-edit {
    width: auto;
}


.admin-beach-edit[open] {
    width: 100%;

    padding: 14px;

    border:
        1px solid var(--rfd-border-dfe4e8, #dfe4e8);

    border-radius: 10px;

    background: var(--rfd-surface-f8fafb, #f8fafb);
}


.admin-beach-edit[open] summary {
    margin-bottom: 14px;
}


.admin-beach-edit form {
    display: grid;

    gap: 12px;
}


.admin-beach-edit label {
    display: block;

    font-size: 13px;

    font-weight: 700;
}


.admin-beach-edit input {
    display: block;

    width: 100%;

    margin-top: 6px;

    padding: 10px;

    border:
        1px solid var(--rfd-border-ccd3d8, #ccd3d8);

    border-radius: 8px;

    font-family: inherit;

    font-size: 15px;
}


.admin-beach-edit-coordinates {
    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 12px;
}


.admin-beach-save-button,
.admin-beach-primary-button,
.admin-beach-merge-button {
    width: 100%;

    padding: 12px;

    border: 0;

    border-radius: 9px;

    background: #c62828;

    color: white;

    font-family: inherit;

    font-size: 14px;

    font-weight: 800;

    cursor: pointer;
}


.admin-beach-archive-button {
    color: var(--rfd-text-9d1c1c, #9d1c1c);

    border-color: #e0a1a1;

    background: var(--rfd-surface-fff5f5, #fff5f5);
}


.admin-beach-restore-button {
    color: var(--rfd-text-246b36, #246b36);

    border-color: var(--rfd-border-9bc7a5, #9bc7a5);

    background: var(--rfd-surface-eef8ee, #eef8ee);
}


/* ---------------------------------
   Beach merge page
   --------------------------------- */

.admin-merge-source,
.admin-merge-confirmation {
    padding: 18px;

    margin-bottom: 18px;

    background: var(--rfd-surface-ffffff, white);

    border:
        1px solid var(--rfd-border-dfe4e8, #dfe4e8);

    border-radius: 12px;
}


.admin-merge-source > span,
.admin-merge-confirmation > span {
    color: var(--rfd-text-66727d, #66727d);

    font-size: 12px;

    font-weight: 700;

    text-transform: uppercase;
}


.admin-merge-source h2,
.admin-merge-confirmation h2 {
    margin:
        7px 0 8px;
}


.admin-merge-select-form {
    padding: 18px;

    background: var(--rfd-surface-ffffff, white);

    border-radius: 12px;
}


.admin-merge-select-form label {
    display: block;

    margin-bottom: 8px;

    font-weight: 700;
}


.admin-merge-select-form select {
    display: block;

    width: 100%;

    margin-bottom: 14px;

    padding: 12px;

    border:
        1px solid var(--rfd-border-ccd3d8, #ccd3d8);

    border-radius: 9px;

    background: var(--rfd-surface-ffffff, white);

    font-family: inherit;

    font-size: 15px;
}


.admin-merge-arrow {
    margin-bottom: 8px;

    font-size: 28px;

    text-align: center;
}


.admin-merge-warning {
    margin:
        18px 0;

    padding: 16px;

    border:
        1px solid #e6b85c;

    border-radius: 12px;

    background: var(--rfd-surface-fff7e6, #fff7e6);

    line-height: 1.5;
}


.admin-merge-warning p:last-child {
    margin-bottom: 0;
}


.admin-beach-merge-button {
    background: #b42318;
}


.admin-beach-cancel-link {
    display: block;

    margin-top: 14px;

    color: var(--rfd-text-66727d, #66727d);

    text-align: center;
}


@media (max-width: 600px) {

    .admin-beach-management-actions {
        display: grid;

        grid-template-columns:
            1fr 1fr;
    }


    .admin-beach-edit {
        width: 100%;
    }


    .admin-beach-edit[open] {
        grid-column:
            1 / -1;
    }


    .admin-beach-action-button,
    .admin-beach-management-actions summary,
    .admin-beach-inline-form,
    .admin-beach-inline-form button {
        width: 100%;
    }


    .admin-beach-action-button,
    .admin-beach-management-actions summary,
    .admin-beach-archive-button,
    .admin-beach-restore-button {
        display: flex;

        align-items: center;
        justify-content: center;
    }


    .admin-beach-edit-coordinates {
        grid-template-columns:
            1fr;
    }

}

/* ---------------------------------
   Admin beach source filter
   --------------------------------- */

.admin-beach-filter-row {
    display: flex;

    align-items: flex-end;

    gap: 16px;

    margin-top: 14px;
}


.admin-beach-filter-row > label:first-child {
    flex: 1;

    font-size: 14px;

    font-weight: 700;
}


#source-filter,
#warning-filter,
#status-filter {
    display: block;

    width: 100%;

    margin-top: 6px;

    padding: 10px;

    border:
        1px solid var(--rfd-border-ccd3d8, #ccd3d8);

    border-radius: 9px;

    background: var(--rfd-surface-ffffff, white);

    color: var(--rfd-text-17212b, #17212b);

    font-family: inherit;

    font-size: 14px;
}

@media (max-width: 600px) {

    .admin-beach-filter-row {
        flex-direction: column;

        align-items: stretch;

        gap: 12px;
    }

}

/* ---------------------------------
   Admin duplicate map
   --------------------------------- */

.admin-beach-row {
    display: block;
}

.admin-beach-row[hidden] {
    display: none !important;
}


.admin-beach-row-conflict {
    display: grid;

    grid-template-columns:
        minmax(0, 2fr)
        minmax(320px, 1fr);

    gap: 18px;

    align-items: stretch;
}


.admin-beach-row-conflict
.admin-beach-card {
    height: 100%;
}


.admin-conflict-map {
    width: 100%;

    min-height: 330px;

    border:
        2px solid #c62828;

    border-radius: 14px;

    overflow: hidden;

    background: var(--rfd-surface-e9eef2, #e9eef2);
}


.admin-conflict-map
.leaflet-tooltip {
    font-family: inherit;

    font-size: 11px;

    font-weight: 700;

    white-space: nowrap;
}


@media (max-width: 850px) {

    .admin-beach-row-conflict {
        grid-template-columns:
            1fr;
    }


    .admin-conflict-map {
        min-height: 280px;
    }

}


.admin-beach-management-page {
    max-width: 1320px;
}

.admin-beach-row:not(
    .admin-beach-row-conflict
) {
    max-width: 900px;
}

/* ---------------------------------
   Admin beach warning review
   --------------------------------- */

.admin-beach-filter-row > label {
    font-size: 14px;

    font-weight: 700;
}


#warning-filter {
    display: block;

    width: 100%;

    margin-top: 6px;

    padding: 10px;

    border:
        1px solid var(--rfd-border-ccd3d8, #ccd3d8);

    border-radius: 9px;

    background: var(--rfd-surface-ffffff, white);

    font-family: inherit;

    font-size: 14px;
}


.admin-beach-warning-item {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 12px;

    padding: 8px 0;

    border-top:
        1px solid rgba(
            128,
            93,
            19,
            0.15
        );
}


.admin-beach-warning-item:first-of-type {
    margin-top: 7px;
}


.admin-beach-warning-item
.admin-beach-inline-form {
    flex: 0 0 auto;
}


.admin-beach-approve-separate-button {
    min-height: 34px;

    padding:
        7px 10px;

    border:
        1px solid var(--rfd-border-9bc7a5, #9bc7a5);

    border-radius: 8px;

    background: var(--rfd-surface-eef8ee, #eef8ee);

    color: var(--rfd-text-246b36, #246b36);

    font-family: inherit;

    font-size: 12px;

    font-weight: 800;

    white-space: nowrap;

    cursor: pointer;
}


.admin-beach-approve-separate-button:hover {
    background: var(--rfd-surface-dff1e3, #dff1e3);

    border-color: #76ad83;
}


@media (max-width: 700px) {

    .admin-beach-warning-item {
        flex-direction: column;

        align-items: stretch;

        gap: 8px;
    }


    .admin-beach-warning-item
    .admin-beach-inline-form {
        width: 100%;
    }


    .admin-beach-approve-separate-button {
        width: 100%;
    }

}

/* ---------------------------------
   Beach photo gallery
   --------------------------------- */

.beach-photo-gallery {
    margin:
        18px 0 4px;

    max-width: 100%;

    overflow: hidden;
}

.beach-photo-strip-shell {
    position: relative;
    min-width: 0;
}


.beach-photo-gallery h2 {
    margin:
        0 0 10px;

    font-size: 18px;
}


.beach-photo-strip {
    display: flex;

    flex-wrap: nowrap;

    gap: 9px;

    overflow-x: auto;

    max-width: 100%;

    padding:
        2px 2px 8px;

    scrollbar-width: thin;

    -webkit-overflow-scrolling:
        touch;

    scroll-behavior: smooth;
    scroll-snap-type: x proximity;
    overscroll-behavior-x: contain;
}

.beach-photo-strip-nav {
    position: absolute;
    top: 50%;
    z-index: 4;
    width: 32px;
    height: 44px;
    padding: 0;
    transform: translateY(-55%);
    border: 0;
    border-radius: 999px;
    background: rgba(15, 35, 46, 0.82);
    color: white;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.22);
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

.beach-photo-strip-nav[hidden] {
    display: none !important;
}

.beach-photo-strip-previous {
    left: 4px;
}

.beach-photo-strip-next {
    right: 4px;
}

.beach-photo-item {
    position: relative;
    flex: 0 0 82px;
    width: 82px;
    height: 70px;
    scroll-margin-top: 1rem;
    scroll-snap-align: start;
}


.beach-photo-thumbnail {
    flex:
        0 0 82px;

    width: 82px;
    height: 70px;

    padding: 0;

    overflow: hidden;

    border:
        2px solid var(--rfd-border-ffffff, white);

    border-radius: 10px;

    background: var(--rfd-surface-e9eef2, #e9eef2);

    box-shadow:
        0 1px 5px
        rgba(0, 0, 0, 0.12);

    cursor: pointer;
}

.beach-photo-item .beach-photo-thumbnail {
    width: 100%;
    height: 100%;
}

.beach-photo-thumbnail img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}


.beach-photo-thumbnail:hover,
.beach-photo-thumbnail:focus-visible {
    border-color:
        #c62828;

    outline: none;
}


/* ---------------------------------
   Beach photo lightbox
   --------------------------------- */

.photo-lightbox-open {
    overflow: hidden;
}


.beach-photo-lightbox {
    position: fixed;

    inset: 0;

    z-index: 5000;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 28px 70px;

    background:
        rgba(0, 0, 0, 0.88);
}


.beach-photo-lightbox[hidden] {
    display: none !important;
}


.beach-photo-lightbox-content {
    position: relative;

    display: flex;

    align-items: center;
    justify-content: center;

    width: 100%;
    height: 100%;

    max-width: 1100px;

    touch-action: pan-y;
}

.beach-photo-lightbox-frame {
    position: relative;
    display: inline-block;
    max-width: 100%;
    max-height: 88vh;
    line-height: 0;
}

.beach-photo-lightbox-frame .beach-photo-lightbox-heart-form,
.beach-photo-lightbox-frame .beach-photo-lightbox-heart-count {
    position: absolute !important;
    inset: 12px 12px auto auto !important;
    z-index: 3;
    margin: 0;
}

.beach-photo-lightbox-heart-form[hidden],
.beach-photo-lightbox-heart-count[hidden] {
    display: none !important;
}

.beach-photo-lightbox-heart-button,
.beach-photo-lightbox-heart-count {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: auto !important;
    min-width: 50px;
    min-height: 40px;
    padding: 8px 9px !important;
    border-radius: 999px !important;
    font-size: 16px !important;
    line-height: 1 !important;
    white-space: nowrap;
}

.beach-photo-lightbox-heart-button span {
    display: inline-block;
    margin-right: 1px;
    line-height: 1;
}

.beach-photo-lightbox-frame .beach-photo-lightbox-heart-button,
.beach-photo-lightbox-frame .beach-photo-lightbox-heart-count {
    background: #d92d45 !important;
    color: white !important;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3);
}

.beach-photo-lightbox-frame .beach-photo-lightbox-heart-button:hover,
.beach-photo-lightbox-frame .beach-photo-lightbox-heart-button:focus-visible,
.beach-photo-lightbox-frame .beach-photo-lightbox-heart-button.is-hearted {
    background: #bd2038 !important;
    color: white !important;
}


.beach-photo-lightbox-content img {
    display: block;

    max-width: 100%;
    max-height: 88vh;

    object-fit: contain;

    border-radius: 8px;

    background: black;
}


.beach-photo-lightbox-close {
    position: absolute;

    top: 16px;
    right: 20px;

    z-index: 2;

    width: 46px;
    height: 46px;

    padding: 0;

    border: 0;

    border-radius: 50%;

    background:
        rgba(255, 255, 255, 0.14);

    color: white;

    font-size: 34px;
    line-height: 1;

    cursor: pointer;
}


.beach-photo-lightbox-nav {
    position: absolute;

    top: 50%;

    z-index: 2;

    width: 48px;
    height: 58px;

    padding: 0;

    transform:
        translateY(-50%);

    border: 0;

    border-radius: 10px;

    background:
        rgba(255, 255, 255, 0.14);

    color: white;

    font-size: 42px;
    line-height: 1;

    cursor: pointer;
}


.beach-photo-lightbox-previous {
    left: 16px;
}


.beach-photo-lightbox-next {
    right: 16px;
}


.beach-photo-lightbox-close:hover,
.beach-photo-lightbox-nav:hover {
    background:
        rgba(255, 255, 255, 0.25);
}


.beach-photo-counter {
    position: absolute;

    left: 50%;
    bottom: 12px;

    transform:
        translateX(-50%);

    padding:
        6px 10px;

    border-radius: 999px;

    background:
        rgba(0, 0, 0, 0.65);

    color: white;

    font-size: 13px;
    font-weight: 700;
}


@media (max-width: 600px) {

    .beach-photo-thumbnail {
        flex-basis: 74px;

        width: 74px;
        height: 64px;
    }


    .beach-photo-lightbox {
        padding:
            62px 12px 50px;
    }


    .beach-photo-lightbox-close {
        top: 10px;
        right: 12px;
    }

    .beach-photo-lightbox-nav {
        top: auto;
        bottom: 8px;

        width: 48px;
        height: 42px;

        transform: none;

        font-size: 34px;
    }


    .beach-photo-lightbox-previous {
        left: 12px;
    }


    .beach-photo-lightbox-next {
        right: 12px;
    }


    .beach-photo-counter {
        bottom: 18px;
    }

}




/* ---------------------------------
   Admin beach photo management
   --------------------------------- */

.admin-beach-photo-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 18px;

    margin-top: 24px;
}


.admin-beach-photo-card {
    background: var(--rfd-surface-ffffff, white);

    padding: 14px;

    border:
        1px solid var(--rfd-border-e0e5e9, #e0e5e9);

    border-radius: 14px;

    box-shadow:
        0 2px 8px
        rgba(0, 0, 0, 0.05);
}


.admin-beach-photo-image {
    display: block;

    width: 100%;

    aspect-ratio: 4 / 3;

    object-fit: cover;

    border-radius: 10px;
}


.admin-beach-photo-card p {
    margin:
        12px 0 8px;

    line-height: 1.4;
}


.admin-beach-photo-card small {
    display: block;

    margin-bottom: 14px;

    color: var(--rfd-text-78838d, #78838d);
}


.admin-beach-photo-card form {
    margin: 0;
}


@media (max-width: 600px) {

    .admin-beach-photo-grid {
        grid-template-columns:
            1fr;
    }

}


/* ---------------------------------
   Mobile small header
   --------------------------------- */

@media (max-width: 600px) {

    .small-header {
        position: relative;

        display: grid;

        grid-template-columns:
            1fr auto;

        align-items: start;

        gap: 12px;

        padding:
            18px 20px 14px;
    }


    .small-header > strong {
        display: none;
    }


    .small-header
    .header-controls {
        position: static;

        display: flex;

        width: auto;

        flex-direction: column;

        align-items: flex-end;

        gap: 8px;
    }


    .small-header
    .language-switcher {
        position: static;

        margin: 0;
    }


    .small-header
    .account-menu {
        position: static;

        display: flex;

        width: auto;

        margin: 0;

        align-items: center;
        justify-content: flex-end;

        gap: 8px;
    }


    .small-header
    .account-menu:not(
        .account-menu-logged-out
    )
    .logout-form {
        position: static;

        margin: 0;
    }


    .small-header
    .admin-header-actions {
        position: absolute;

        left: 20px;
        right: 20px;

        top: 68px;

        display: flex;

        justify-content: flex-end;

        gap: 7px;
    }

    /* Put user name on the left side
       of the admin action row */

    .small-header
    .account-menu:not(
        .account-menu-logged-out
    )
    > span {
        position: absolute;

        top: 79px;
        left: 20px;

        margin: 0;

        line-height: 15px;

        white-space: nowrap;
    }
    .small-header
    .account-menu:not(
        .account-menu-logged-out
    )
    .logout-form {
        position: absolute;

        top: 27px;
        right: 104px;

        margin: 0;

        z-index: 3;

        align-items: center;
    }

    .small-header {
        padding-bottom: 54px;
    }

}


/* ---------------------------------
   Small header verified lifeguard
   alignment
   --------------------------------- */

@media (max-width: 600px) {

    .small-header
    .account-menu:not(
        .account-menu-logged-out
    )
    .lifeguard-verified-link {
        position: absolute;

        top: 77px;
        right: 20px;
    }

}

/* ---------------------------------
   Verified lifeguard final alignment
   --------------------------------- */

@media (max-width: 600px) {

    .small-header
    .lifeguard-verified-link {
        transform:
            translateY(-3px);
    }


    .hero
    .lifeguard-verified-link {
        transform:
            translateY(-7px);
    }

}

/* ---------------------------------
   Lifeguard verification alignment
   --------------------------------- */

@media (max-width: 600px) {

    /* Beach / small header */
    .small-header
    .account-menu
    > a[href="/lifeguard-verification"] {
        transform:
            translateY(-3px);
    }


    /* Homepage */
    .hero
    .account-menu
    > a[href="/lifeguard-verification"] {
        transform:
            translateY(-7px);
    }

}


/* ---------------------------------
   Localized file picker
   --------------------------------- */

.localized-file-picker {
    display: flex;

    width: 100%;

    margin-top: 10px;

    align-items: center;

    gap: 10px;
}


.localized-file-input {
    position: absolute;

    width: 1px !important;
    height: 1px;

    padding: 0 !important;
    margin: -1px !important;

    overflow: hidden;

    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);

    white-space: nowrap;

    border: 0;

    opacity: 0;
}


.localized-file-picker
.localized-file-button {
    display: inline-flex;

    flex: 0 0 auto;

    min-height: 38px;

    margin: 0;

    padding: 8px 12px;

    align-items: center;
    justify-content: center;

    border: 1px solid var(--rfd-border-aeb8c0, #aeb8c0);
    border-radius: 8px;

    background: var(--rfd-surface-f8fafb, #f8fafb);

    color: var(--rfd-text-17212b, #17212b);

    font-family: inherit;
    font-size: 14px;
    font-weight: 700;

    line-height: 1.2;

    cursor: pointer;
}


.localized-file-picker
.localized-file-button:hover {
    background: var(--rfd-surface-eef2f4, #eef2f4);
}


.localized-file-input:focus-visible
+ .localized-file-button {
    outline: 3px solid rgba(25, 118, 210, 0.3);
    outline-offset: 2px;
}


.localized-file-name {
    min-width: 0;

    overflow: hidden;

    color: var(--rfd-text-66727d, #66727d);

    font-size: 14px;

    text-overflow: ellipsis;
    white-space: nowrap;
}


.localized-file-field-label {
    margin-top: 14px;

    font-weight: 700;
}


@media (max-width: 480px) {

    .localized-file-picker {
        align-items: flex-start;
        flex-direction: column;
    }

    .localized-file-name {
        width: 100%;
    }

}


/* =========================================================
   MOBILE BEACH CARDS
   Keep beach name + condition on one clean line
   ========================================================= */

@media (max-width: 600px) {

    .beach-top {
        display: flex;
        align-items: center;
        justify-content: space-between;

        gap: 12px;

        width: 100%;
    }


    .beach-top > strong {
        flex: 1 1 auto;

        min-width: 0;

        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }


    .beach-top .status {
        flex: 0 0 auto;

        white-space: nowrap;

        text-align: right;

        font-size: 13px;

        line-height: 1.1;
    }

}


/* Final contributor header placement overrides */
@media (max-width: 600px) {

    .hero .account-menu:not(
        .account-menu-logged-out
    ) > .account-profile-menu {
        flex: 0 1 auto;
        max-width: 190px;
        margin-right: auto;
    }

    .hero .header-contributor-level {
        overflow: hidden;
        font-size: 11px;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .hero .account-menu-admin > .account-profile-menu {
        max-width: 135px;
    }

    .hero .account-menu-verified > .account-profile-menu,
    .hero .account-menu-standard > .account-profile-menu {
        max-width: 165px;
    }

    .small-header {
        padding-bottom: 62px;
    }

    .small-header
    .account-menu:not(
        .account-menu-logged-out
    ) > .account-profile-menu {
        position: absolute;
        top: 72px;
        left: 20px;

        max-width: 220px;
        margin: 0;

        text-align: left;
    }

    .small-header .header-contributor-level {
        overflow: hidden;
        color: var(--rfd-text-66727d, #66727d);
        font-size: 11px;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .small-header .account-menu-admin > .account-profile-menu {
        width: 112px;
        max-width: 112px;
    }

    .small-header .account-menu-admin .account-greeting,
    .small-header .account-menu-admin .header-contributor-level {
        display: block;
        width: 100%;
        white-space: nowrap;
    }

    .small-header .account-menu-admin > .admin-header-actions {
        left: 144px;
    }

    .small-header .account-menu-verified > .account-profile-menu,
    .small-header .account-menu-standard > .account-profile-menu {
        max-width: 190px;
    }

    /* Align both lifeguard links with the contributor row on beach pages. */
    .small-header .account-menu-verified .lifeguard-verified-link,
    .small-header .account-menu-standard > a[href="/lifeguard-verification"] {
        transform: translateY(-7px);
    }

    /* Keep beach-card labels inside narrow mobile screens. */
    .beach-card .beach-top {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 7px;
    }

    .beach-card .beach-top > strong {
        width: auto;
        flex: 1 1 auto;
    }

    .beach-card .beach-card-statuses {
        display: flex;
        width: 100%;
        max-width: 100%;
        flex-wrap: nowrap;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 8px;
    }

    .beach-card .beach-card-lifeguard-status,
    .beach-card .beach-card-statuses .status {
        flex: 1 1 0;
        min-width: 0;
        max-width: 100%;
        font-size: 11px;
        line-height: 1.2;
        white-space: normal;
    }

    .beach-card .beach-card-lifeguard-status {
        align-items: flex-start;
    }

    .beach-card .beach-card-statuses .status:only-child {
        flex: 0 1 auto;
    }

}

/* Keep status and contribution count attached to the account name. */
.header-contribution-count {
    display: block;
    color: var(--rfd-text-66727d, #66727d);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.hero .header-contribution-count {
    color: rgba(255, 255, 255, 0.82);
}

@media (max-width: 600px) {
    .hero {
        padding-bottom: 20px;
    }

    .hero .account-profile-menu,
    .small-header .account-profile-menu {
        overflow: visible;
    }

    .hero .account-identity,
    .small-header .account-identity {
        gap: 1px;
    }

    .hero .header-contributor-level,
    .hero .header-contribution-count,
    .small-header .header-contributor-level,
    .small-header .header-contribution-count {
        position: static;
        width: auto;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .small-header {
        padding-bottom: 62px;
    }

    .small-header .account-menu-admin .account-greeting,
    .small-header .account-menu-admin .header-contributor-level {
        width: auto;
    }

    .small-header .account-menu-verified,
    .small-header .account-menu-standard {
        position: absolute;
        top: 64px;
        left: 20px;
        right: 20px;
        width: auto;
        flex-direction: row;
        align-items: flex-end;
        justify-content: space-between;
    }

    .small-header .account-menu.account-menu-verified > .account-profile-menu,
    .small-header .account-menu.account-menu-standard > .account-profile-menu,
    .small-header .account-menu.account-menu-verified .lifeguard-verified-link,
    .small-header .account-menu.account-menu-standard > a[href="/lifeguard-verification"] {
        position: static;
        margin: 0;
        transform: none;
    }

    .small-header .account-menu.account-menu-verified .lifeguard-verified-link {
        padding-bottom: 0;
        align-self: flex-end;
    }
}


/* =================================================
   Around the beach / local places
   ================================================= */


/* ---------------------------------
   Beach page entry button
   --------------------------------- */

.nearby-button {
    display: flex;

    width: 100%;

    min-height: 58px;

    margin:
        -8px 0 30px;

    padding:
        15px 16px;

    align-items: center;

    gap: 11px;

    border:
        1px solid var(--rfd-border-cfd7dd, #cfd7dd);

    border-radius: 12px;

    background: var(--rfd-surface-ffffff, white);

    color: var(--rfd-text-17212b, #17212b);

    text-decoration: none;

    font-size: 15px;
    font-weight: 800;

    box-shadow:
        0 2px 8px
        rgba(0, 0, 0, 0.05);
}


.nearby-button:hover {
    border-color:
        #c62828;

    background:
        var(--rfd-surface-fffafa, #fffafa);
}


.nearby-button-icon {
    flex: 0 0 auto;

    font-size: 21px;

    line-height: 1;
}


.nearby-button-text {
    flex:
        1 1 auto;

    min-width: 0;

    text-align: left;
}


.nearby-button-arrow {
    flex: 0 0 auto;

    color: var(--rfd-text-66727d, #66727d);

    font-size: 20px;

    line-height: 1;
}

.beach-action-arrow {
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    color: var(--rfd-text-17212b, #17212b);
}



/* ---------------------------------
   Nearby page
   --------------------------------- */

.nearby-page {
    padding-bottom: 60px;
}


.nearby-page-heading {
    display: flex;

    align-items: flex-start;

    gap: 13px;

    margin:
        5px 0 22px;
}


.nearby-heading-icon {
    flex: 0 0 auto;

    margin-top: 3px;

    font-size: 29px;

    line-height: 1;
}

.nearby-heading-icon img,
.nearby-empty-icon img { display: block; object-fit: contain; }


.nearby-page-heading h1 {
    margin:
        0 0 6px;
}


.nearby-page-heading p {
    margin: 0;

    color: var(--rfd-text-66727d, #66727d);

    line-height: 1.45;
}



/* ---------------------------------
   Category filters
   --------------------------------- */

.nearby-category-filter {
    display: flex;

    gap: 8px;

    overflow-x: auto;

    margin:
        0 -2px 22px;

    padding:
        2px 2px 8px;

    scrollbar-width: thin;

    -webkit-overflow-scrolling:
        touch;
}


.nearby-category-chip {
    display: inline-flex;

    flex: 0 0 auto;

    min-height: 36px;

    padding:
        8px 12px;

    align-items: center;
    justify-content: center;

    border:
        1px solid var(--rfd-border-ccd3d8, #ccd3d8);

    border-radius: 999px;

    background: var(--rfd-surface-ffffff, white);

    color: var(--rfd-text-526579, #526579);

    text-decoration: none;

    font-size: 13px;
    font-weight: 800;

    white-space: nowrap;
}


.nearby-category-chip:hover {
    border-color:
        #c62828;

    color:
        var(--rfd-text-c62828, #c62828);
}


.nearby-category-chip.active {
    border-color:
        #c62828;

    background:
        var(--rfd-surface-fff1f1, #fff1f1);

    color:
        var(--rfd-text-a91f1f, #a91f1f);
}



/* ---------------------------------
   Place cards
   --------------------------------- */

.nearby-place-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
    gap: 14px;
    align-items: stretch;
}


.nearby-place-card {
    position: relative;
    display: flex;
    min-width: 0;
    height: 100%;
    flex-direction: column;
    padding: 18px;

    border:
        1px solid var(--rfd-border-d8dee3, #d8dee3);

    border-radius: 14px;

    background: var(--rfd-surface-ffffff, white);

    box-shadow:
        0 2px 10px
        rgba(0, 0, 0, 0.05);
}

.nearby-place-card-content {
    display: flex;
    min-width: 0;
    height: 100%;
    flex-direction: column;
}


.nearby-place-promoted {
    border-color:
        #d5a83e;

    border-width: 2px;

    background:
        linear-gradient(
            180deg,
            var(--rfd-surface-fffaf0, #fffaf0) 0,
            var(--rfd-surface-ffffff, #ffffff) 88px
        );

    box-shadow:
        0 2px 12px
        rgba(128, 93, 19, 0.09);
}

.nearby-featured-kicker {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 16px;
    padding-bottom: 11px;
    border-bottom: 1px solid #f0dfb8;
    color: var(--rfd-text-805d13, #805d13);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.nearby-place-promoted .nearby-place-card-header {
    display: block;
}

.nearby-place-promoted .nearby-place-category {
    margin-bottom: 5px;
}

.nearby-place-promoted h2 {
    font-size: 20px;
    line-height: 1.25;
}

.manual-place-location-button {
    min-height: 42px;
    padding: 10px 13px;
    border: 1px solid #c62828;
    border-radius: 9px;
    background: var(--rfd-surface-fffafa, #fffafa);
    color: var(--rfd-text-a91f1f, #a91f1f);
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.manual-place-location-status {
    align-self: center;
    color: var(--rfd-text-66727d, #66727d);
    font-size: 12px;
    line-height: 1.4;
}

.nearby-featured-kicker span { color: var(--rfd-text-d39b20, #d39b20); font-size: 14px; }
.nearby-featured-cover { display: block; width: calc(100% + 36px); height: 220px; margin: -18px -18px 16px; object-fit: cover; border-radius: 12px 12px 0 0; }
.nearby-featured-headline { margin-top: 6px; color: var(--rfd-text-805d13, #805d13); font-size: 15px; font-weight: 800; }
.nearby-featured-offer { display: grid; gap: 3px; margin-top: 14px; padding: 12px; border-radius: 10px; background: var(--rfd-surface-fff4d6, #fff4d6); color: var(--rfd-text-62480f, #62480f); }
.nearby-featured-offer span { font-size: 13px; }
.nearby-featured-campaign-action { display: flex; align-items: center; justify-content: center; min-height: 42px; margin-top: 16px; padding: 10px 14px; border-radius: 9px; background: #c62828; color: white; font-size: 14px; font-weight: 900; text-decoration: none; }
.nearby-featured-campaign-action:hover { background: #ad2020; }

.nearby-place-actions a.nearby-featured-primary-action {
    border-color: #c62828;
    background: #c62828;
    color: white;
}

.nearby-place-actions a.nearby-featured-primary-action:hover {
    background: #ad2020;
    color: white;
}

.business-owner-toggle {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 18px 0 14px;
    padding: 14px;
    border: 1px solid var(--rfd-border-d8dee3, #d8dee3);
    border-radius: 11px;
    background: var(--rfd-surface-f8fafb, #f8fafb);
    cursor: pointer;
}

.lifeguard-verification-toggle {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 18px 0 10px;
    padding: 14px;
    border: 1px solid var(--rfd-border-d8dee3, #d8dee3);
    border-radius: 11px;
    background: var(--rfd-surface-f8fafb, #f8fafb);
    cursor: pointer;
}

.lifeguard-verification-toggle:has(input:disabled) {
    border-color: var(--rfd-border-9fcdb0, #9fcdb0);
    background: var(--rfd-surface-f2fbf5, #f2fbf5);
    cursor: default;
}

.lifeguard-verification-toggle input,
.account-settings-card .lifeguard-verification-toggle input {
    width: 20px;
    height: 20px;
    min-width: 20px;
    margin: 0;
    accent-color: #c62828;
}

.lifeguard-verification-toggle span { display: grid; gap: 2px; }
.lifeguard-verification-toggle small { color: var(--rfd-text-66727d, #66727d); font-weight: 600; }
.lifeguard-verification-toggle + .business-owner-toggle { margin-top: 0; }

.business-owner-toggle input,
.account-settings-card .business-owner-toggle input {
    width: 20px;
    height: 20px;
    min-width: 20px;
    margin: 0;
    accent-color: #c62828;
}

#business-owner-fields {
    margin: 0;
    padding: 0 0 14px;
    border: 0;
    border-radius: 0;
    background: transparent;
}

#business-owner-fields[hidden] { display: none; }
.business-settings-group { min-width: 0; padding: 14px 0; border-top: 1px solid var(--rfd-border-e1e6ea, #e1e6ea); }
.business-settings-group h3 { margin: 0 0 8px; color: var(--rfd-text-17212b, #17212b); font-size: 15px; }
.business-updates-group { padding-bottom: 12px; }
.business-featured-group[hidden] { display: none; }
.advertising-review-grid { display: grid; gap: 18px; }
.advertising-review-card { overflow: hidden; border: 1px solid var(--rfd-border-d8dee3, #d8dee3); border-radius: 15px; background: var(--rfd-surface-ffffff, white); box-shadow: 0 3px 14px rgba(0,0,0,.06); }
.advertising-review-card > img { display: block; width: 100%; max-height: 340px; object-fit: cover; }
.advertising-review-body { padding: 20px; }
.advertising-review-body h2 { margin: 8px 0; }
.advertising-review-status { display: inline-block; padding: 5px 9px; border-radius: 999px; background: var(--rfd-surface-fff4d6, #fff4d6); color: var(--rfd-text-805d13, #805d13); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.advertising-review-status.active { background: var(--rfd-surface-e8f6ed, #e8f6ed); color: var(--rfd-text-276142, #276142); }
.advertising-review-status.scheduled { background: var(--rfd-surface-e8f1fa, #e8f1fa); color: var(--rfd-text-285d89, #285d89); }
.advertising-review-status.awaiting_payment { background: var(--rfd-surface-edf0f5, #edf0f5); color: var(--rfd-text-46586c, #46586c); }
.advertising-review-status.expired { background: var(--rfd-surface-eeeeee, #eeeeee); color: var(--rfd-text-606870, #606870); }
.advertising-review-status.rejected { background: var(--rfd-surface-f8eaea, #f8eaea); color: var(--rfd-text-9d1c1c, #9d1c1c); }
.advertising-review-offer { display: grid; gap: 3px; padding: 12px; border-radius: 10px; background: var(--rfd-surface-fff8e6, #fff8e6); }
.advertising-review-body dl { display: grid; grid-template-columns: 130px 1fr; gap: 7px 12px; }
.advertising-review-body dt { font-weight: 800; }.advertising-review-body dd { margin: 0; overflow-wrap: anywhere; }
.advertising-review-actions { display: flex; gap: 10px; margin-top: 18px; }.advertising-review-actions form { flex: 1; }
.advertising-review-actions button { width: 100%; padding: 12px; border-radius: 9px; font-weight: 800; cursor: pointer; }
.advertising-approve-button { border: 0; background: #c62828; color: white; }.advertising-reject-button { border: 1px solid var(--rfd-border-ccd3d8, #ccd3d8); background: var(--rfd-surface-ffffff, white); color: var(--rfd-text-17212b, #17212b); }
.advertising-review-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.advertising-edit-link { color: var(--rfd-text-17212b, #17212b); font-size: 13px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.advertising-edit-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.advertising-edit-title-row h1 { margin-bottom: 4px; }
.advertising-edit-title-row p { margin: 0; }
.advertising-edit-actions { display: flex; align-items: center; justify-content: flex-end; gap: 14px; grid-column: 1 / -1; }
.advertising-edit-actions > a { color: var(--rfd-text-52606b, #52606b); font-weight: 800; text-decoration: none; }
.advertising-edit-actions .local-place-refresh-all-button { width: auto; min-width: 220px; }
@media (max-width:700px){.advertising-edit-actions{align-items:stretch;flex-direction:column-reverse}.advertising-edit-actions>a{text-align:center}.advertising-edit-actions .local-place-refresh-all-button{width:100%;min-width:0}}
.advertising-delete-panel { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 22px; padding: 18px; border: 1px solid #efb3b3; border-radius: 12px; background: var(--rfd-surface-fff7f7, #fff7f7); }
.advertising-delete-panel strong { color: var(--rfd-text-8f1616, #8f1616); font-size: 15px; }
.advertising-delete-panel p { margin: 4px 0 0; color: var(--rfd-text-66727d, #66727d); font-size: 12px; line-height: 1.4; }
.advertising-delete-panel button { min-height: 40px; padding: 9px 14px; border: 1px solid #b91c1c; border-radius: 9px; background: var(--rfd-surface-ffffff, white); color: var(--rfd-text-b91c1c, #b91c1c); font-weight: 900; cursor: pointer; white-space: nowrap; }
.advertising-delete-panel button:hover { background: #b91c1c; color: white; }
.advertising-promotion-field { grid-column: 1 / -1; padding: 14px; border: 1px dashed #d5a83e; border-radius: 10px; background: var(--rfd-surface-fff9e9, #fff9e9); }
.advertising-promotion-field > span:not(.field-label) { display: block; margin: 4px 0 9px; color: var(--rfd-text-66727d, #66727d); font-size: 11px; line-height: 1.4; }
.advertising-promotion-field input { text-transform: uppercase; }
.advertising-reward-field { grid-column: 1 / -1; display: grid; gap: 9px; margin: 0; padding: 14px; border: 1px solid var(--rfd-border-ccd3d8, #ccd3d8); border-radius: 10px; background: var(--rfd-surface-f7fafb, #f7fafb); }
.advertising-reward-field legend { padding: 0 5px; color: var(--rfd-text-17212b, #17212b); font-size: 14px; font-weight: 900; }
.advertising-reward-field > p,.advertising-reward-field > small { margin: 0; color: var(--rfd-text-66727d, #66727d); font-size: 12px; font-weight: 500; line-height: 1.4; }
.advertising-reward-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.advertise-campaign-form .advertising-reward-options label { display: flex; align-items: flex-start; gap: 9px; padding: 11px; border: 1px solid var(--rfd-border-d9e0e5, #d9e0e5); border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); cursor: pointer; }
.advertise-campaign-form .advertising-reward-options label:has(input:checked) { border-color: #25833e; background: var(--rfd-surface-eef8f1, #eef8f1); box-shadow: inset 0 0 0 1px #25833e; }
.advertise-campaign-form .advertising-reward-options input { width: 18px; height: 18px; min-width: 18px; margin: 1px 0 0; padding: 0; accent-color: #25833e; }
.advertising-reward-options span { display: grid; gap: 2px; min-width: 0; }
.advertising-reward-options small { color: var(--rfd-text-66727d, #66727d); font-size: 11px; font-weight: 500; line-height: 1.35; }
.advertising-configure-rewards-link { justify-self: start; color: var(--rfd-text-075d78, #075d78); font-size: 12px; font-weight: 800; }
.advertising-configure-rewards-link:hover,.advertising-configure-rewards-link:focus-visible { color: var(--rfd-text-a22b25, #a22b25); }
@media (max-width:700px){.advertising-reward-options{grid-template-columns:1fr}}
.advertising-complimentary-label { color: var(--rfd-text-176b35, #176b35); }
.promotion-code-admin-grid { display: grid; gap: 16px; }
.promotion-code-create { margin-bottom: 18px; }
.promotion-code-create summary { cursor: pointer; font-weight: 800; color: var(--rfd-text-9d1c1c, #9d1c1c); }
.promotion-code-create[open] summary { margin-bottom: 16px; }
.promotion-code-create form { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 13px; }
.promotion-code-create label { display: grid; gap: 6px; font-weight: 700; }
.promotion-code-create label span { color: var(--rfd-text-66727d, #66727d); font-size: 11px; font-weight: 400; }
.promotion-code-create button { align-self: end; }
.promotion-code-admin-card { display: grid; gap: 13px; }
.promotion-code-admin-card > div:first-of-type { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.promotion-code-value { padding: 7px 10px; border-radius: 7px; background: #17212b; color: white; font-family: monospace; font-size: 15px; font-weight: 900; letter-spacing: .04em; }
.promotion-code-admin-card > p { margin: 0; color: var(--rfd-text-66727d, #66727d); font-size: 13px; }
.promotion-code-usage { display: flex; align-items: baseline; gap: 6px; padding: 12px; border-radius: 9px; background: var(--rfd-surface-f2fbf5, #f2fbf5); color: var(--rfd-text-176b35, #176b35); }
.promotion-code-usage strong { font-size: 21px; }
.promotion-code-active { display: flex !important; align-items: center; gap: 9px; }
.promotion-code-active input { width: 20px !important; height: 20px; margin: 0; accent-color: #c62828; }
.campaign-submitted-card { display: grid; justify-items: start; gap: 12px; max-width: 620px; margin: 30px auto; }
.campaign-submitted-card h1,.campaign-submitted-card p { margin: 0; }
.campaign-submitted-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--rfd-surface-e7f7ec, #e7f7ec); color: var(--rfd-text-176b35, #176b35); font-size: 23px; font-weight: 900; }
.campaign-email-result { display: grid; gap: 3px; width: 100%; padding: 13px; border-radius: 10px; font-size: 12px; }
.campaign-email-result.success { background: var(--rfd-surface-f2fbf5, #f2fbf5); color: var(--rfd-text-176b35, #176b35); }
.campaign-email-result.warning { background: var(--rfd-surface-fff9e9, #fff9e9); color: var(--rfd-text-805d13, #805d13); }
.campaign-email-result span { color: var(--rfd-text-52606b, #52606b); line-height: 1.4; }
.advertising-admin-links { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 12px; }
.business-owner-advertise-link.secondary { border: 1px solid #c62828; background: var(--rfd-surface-ffffff, white); color: var(--rfd-text-c62828, #c62828); }
.business-directory-filters { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(180px,.7fr) auto; gap: 10px; }
.business-directory-filters button { min-height: 42px; padding: 9px 16px; border: 0; border-radius: 9px; background: #17212b; color: white; font-weight: 900; }
.business-directory-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 16px 0 12px; }
.business-directory-toolbar a { color: var(--rfd-text-b91c1c, #b91c1c); font-size: 12px; font-weight: 900; }
.business-directory-grid { display: grid; gap: 14px; }
.business-directory-card { padding: 18px; border: 1px solid var(--rfd-border-d8dee3, #d8dee3); border-radius: 14px; background: var(--rfd-surface-ffffff, white); box-shadow: 0 3px 12px rgba(0,0,0,.05); }
.business-directory-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.business-directory-heading > div > span { color: var(--rfd-text-66727d, #66727d); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.business-directory-heading h2 { margin: 4px 0 14px; }
.business-consent-badge { padding: 6px 8px; border-radius: 999px; background: var(--rfd-surface-f0f3f5, #f0f3f5); color: var(--rfd-text-66727d, #66727d); font-size: 10px; font-weight: 900; white-space: nowrap; }
.business-consent-badge.opted-in { background: var(--rfd-surface-e7f7ec, #e7f7ec); color: var(--rfd-text-176b35, #176b35); }
.business-directory-card dl { display: grid; grid-template-columns: 120px minmax(0,1fr); gap: 7px 12px; margin: 0 0 14px; font-size: 12px; }
.business-directory-card dt { font-weight: 900; }
.business-directory-card dd { min-width: 0; margin: 0; overflow-wrap: anywhere; color: var(--rfd-text-52606b, #52606b); }
.business-directory-card dd a { color: var(--rfd-text-b91c1c, #b91c1c); }
@media(max-width:700px){.business-directory-filters{grid-template-columns:1fr}.business-directory-heading{align-items:flex-start;flex-direction:column}.business-directory-card dl{grid-template-columns:95px minmax(0,1fr)}.business-directory-toolbar{align-items:flex-start;flex-direction:column}}
@media (max-width:700px){.advertising-delete-panel{align-items:stretch;flex-direction:column}.advertising-delete-panel button{width:100%}}

/* Keep featured cover images inside the complete gold card border. */
.nearby-place-card.nearby-place-has-cover {
    padding: 0;
    overflow: hidden;
}
.nearby-place-has-cover .nearby-featured-cover {
    width: 100%;
    height: 130px;
    margin: 0;
    border-radius: 0;
    object-fit: contain;
    background: var(--rfd-surface-ffffff, white);
    object-position: center;
}
.nearby-place-has-cover .nearby-place-card-content {
    padding: 14px;
}
.nearby-featured-socials { display: flex; align-items: center; gap: 10px; margin-top: 14px; }
.nearby-featured-socials a { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 1px solid var(--rfd-border-d8dee3, #d8dee3); border-radius: 50%; background: var(--rfd-surface-ffffff, white); color: var(--rfd-text-805d13, #805d13); transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.nearby-featured-socials a:hover { border-color: #d5a83e; background: var(--rfd-surface-fff8e6, #fff8e6); transform: translateY(-1px); }
.nearby-featured-socials svg { width: 19px; height: 19px; fill: currentColor; stroke: currentColor; stroke-width: 1.8; }
.nearby-featured-socials svg rect,.nearby-featured-socials svg circle:not(.social-icon-dot) { fill: none; }
.nearby-featured-socials .social-icon-dot { stroke: none; }
.nearby-featured-socials svg path { stroke: none; }
.nearby-featured-carousel { min-width: 0; }
.nearby-featured-carousel-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.nearby-featured-carousel-title { display: grid; gap: 2px; color: var(--rfd-text-17212b, #17212b); font-size: 14px; font-weight: 900; }
.nearby-featured-carousel-title span { color: var(--rfd-text-66727d, #66727d); font-size: 11px; font-weight: 600; }
.nearby-featured-carousel-controls { display: flex; align-items: center; gap: 7px; }
.nearby-featured-carousel-count { min-width: 38px; color: var(--rfd-text-66727d, #66727d); font-size: 12px; font-weight: 700; text-align: center; }
.nearby-featured-carousel-button { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 0; border: 1px solid var(--rfd-border-d8dee3, #d8dee3); border-radius: 50%; background: var(--rfd-surface-ffffff, white); color: var(--rfd-text-17212b, #17212b); font-size: 20px; line-height: 1; cursor: pointer; }
.nearby-featured-carousel-button:hover { border-color: #d5a83e; background: var(--rfd-surface-fff8e6, #fff8e6); }
.nearby-featured-carousel-track { display: flex; gap: 14px; overflow-x: auto; padding: 2px 2px 8px; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; touch-action: pan-x pan-y; }
.nearby-featured-carousel-track.is-jumping { scroll-snap-type: none; }
.nearby-featured-carousel-track::-webkit-scrollbar { display: none; }
.nearby-featured-carousel-track .nearby-place-card { flex: 0 0 calc(100% - 4px); scroll-snap-align: start; }
.nearby-featured-carousel-dots { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 2px 0 12px; }
.nearby-featured-carousel-dot { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: var(--rfd-surface-cbd2d8, #cbd2d8); cursor: pointer; }
.nearby-featured-carousel-dot.active { width: 18px; border-radius: 999px; background: #d5a83e; }

/* Administrator management navigation lives on its own second row. */
.account-menu.account-menu-admin {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px 12px;
}
.account-menu-admin > .account-profile-menu { grid-column: 1; }
.account-menu-admin > .admin-header-actions { grid-column: 2; margin-left: 0; }
.admin-management-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-column: 1 / -1;
    gap: 8px;
    width: 100%;
}
.account-menu .admin-management-link {
    display: flex;
    min-height: 40px;
    padding: 8px 11px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 1px solid rgba(255, 255, 255, .48);
    border-radius: 9px;
    background: rgba(255, 255, 255, .13);
    color: white;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.1;
    text-align: center;
    white-space: nowrap;
}
.account-menu .admin-management-link:hover { background: rgba(255, 255, 255, .22); }
.admin-management-icon { font-size: 17px; line-height: 1; }
.admin-management-count {
    display: inline-flex;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--rfd-surface-ffffff, white);
    color: var(--rfd-text-c62828, #c62828);
    font-size: 11px;
    font-weight: 900;
}
.small-header .account-menu .admin-management-link {
    border-color: var(--rfd-border-d8dee3, #d8dee3);
    background: var(--rfd-surface-f7f9fa, #f7f9fa);
    color: var(--rfd-text-17212b, #17212b);
}
.small-header .account-menu .admin-management-link:hover { border-color: #c62828; background: var(--rfd-surface-fff5f5, #fff5f5); }
.small-header .admin-management-count { background: #c62828; color: white; }

@media (max-width: 600px) {
    .hero .account-menu.account-menu-admin {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        width: 100%;
        gap: 10px;
    }
    .hero .account-menu-admin > .account-profile-menu {
        grid-column: 1;
        width: auto;
        max-width: 145px;
        margin: 0;
    }
    .hero .account-menu-admin > .admin-header-actions {
        position: static;
        grid-column: 2;
        margin: 0;
    }
    .admin-management-actions { gap: 7px; }
    .account-menu .admin-management-link {
        min-height: 42px;
        padding: 8px 9px;
        font-size: 11px;
    }
    .small-header .account-menu-admin > .admin-header-actions {
        position: static;
        left: auto;
    }
}
@media (max-width:700px) {
    .nearby-place-card.nearby-place-has-cover { padding: 0; }
    .nearby-place-has-cover .nearby-place-card-content { padding: 13px; }
    .nearby-place-has-cover .nearby-featured-cover { height: 110px; }
}

.business-owner-next-step { margin: 12px 0; color: var(--rfd-text-66727d, #66727d); font-size: 13px; line-height: 1.45; }
.business-owner-advertise-link { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 9px 14px; border-radius: 9px; background: #c62828; color: white; font-size: 13px; font-weight: 800; text-decoration: none; }
.business-owner-advertise-link.account-campaign-link { border: 1px solid #17212b; background: var(--rfd-surface-ffffff, white); color: var(--rfd-text-17212b, #17212b); }
.business-campaign-status { margin-top: 12px; }
.business-campaign-status.is-pending,
.business-campaign-status.is-active,
.business-campaign-status.is-scheduled,
.business-campaign-status.is-awaiting_payment { display: grid; gap: 6px; padding: 13px; border: 1px solid var(--rfd-border-e1e6ea, #e1e6ea); border-radius: 10px; background: var(--rfd-surface-ffffff, #fff); }
.business-campaign-status.is-pending { border-color: #ead59a; background: var(--rfd-surface-fff9e9, #fff9e9); }
.business-campaign-status.is-active,.business-campaign-status.is-scheduled { border-color: var(--rfd-border-a9d6b7, #a9d6b7); background: var(--rfd-surface-f2fbf5, #f2fbf5); }
.business-campaign-status.is-awaiting_payment { border-color: var(--rfd-border-b9c9dd, #b9c9dd); background: var(--rfd-surface-f4f7fb, #f4f7fb); }
.business-campaign-status.is-expired { display: grid; gap: 6px; padding: 13px; border: 1px solid var(--rfd-border-d8dee3, #d8dee3); border-radius: 10px; background: var(--rfd-surface-f5f7f8, #f5f7f8); }
.business-campaign-status-label { color: var(--rfd-text-17212b, #17212b); font-size: 13px; font-weight: 900; }
.business-campaign-status.is-pending .business-campaign-status-label { color: var(--rfd-text-805d13, #805d13); }
.business-campaign-status.is-active .business-campaign-status-label,.business-campaign-status.is-scheduled .business-campaign-status-label { color: var(--rfd-text-176b35, #176b35); }
.business-campaign-status.is-expired .business-campaign-status-label { color: var(--rfd-text-66727d, #66727d); }
.business-campaign-status strong { color: var(--rfd-text-17212b, #17212b); font-size: 14px; }
.business-campaign-status p { margin: 0; color: var(--rfd-text-66727d, #66727d); font-size: 12px; line-height: 1.4; }
.business-early-access-notice { display: grid; gap: 6px; margin-top: 13px; padding: 13px; border: 1px solid #ead59a; border-radius: 10px; background: var(--rfd-surface-fff9e9, #fff9e9); }
.business-early-access-notice strong { color: var(--rfd-text-805d13, #805d13); font-size: 13px; }
.business-early-access-notice p { margin: 0; color: var(--rfd-text-52606b, #52606b); font-size: 12px; line-height: 1.45; }
.business-early-access-notice small { color: var(--rfd-text-805d13, #805d13); font-size: 11px; font-weight: 700; }
.business-partner-plans-link { display: inline-flex; margin-top: 12px; color: var(--rfd-text-b91c1c, #b91c1c); font-size: 12px; font-weight: 900; text-decoration: underline; text-underline-offset: 3px; }
.business-settings-group#business-owner-fields > label,
.business-contact-fields label { display: block; margin: 0 0 4px; }
.business-contact-fields { display: grid; gap: 0; margin-top: 14px; }
.business-contact-fields input + label,
.business-contact-fields textarea + label { margin-top: 14px; }
.business-contact-fields textarea { min-height: 78px; margin-top: 0; resize: vertical; }
.business-marketing-consent { display: flex !important; align-items: flex-start; gap: 10px; margin-top: 6px; padding: 12px; border: 1px solid var(--rfd-border-d8dee3, #d8dee3); border-radius: 10px; background: var(--rfd-surface-ffffff, white); }
.business-marketing-consent input { flex: 0 0 auto; width: 20px !important; height: 20px; margin: 1px 0 0; accent-color: #c62828; }
.business-marketing-consent span { display: grid; gap: 3px; }
.business-marketing-consent small { color: var(--rfd-text-66727d, #66727d); font-size: 11px; font-weight: 500; line-height: 1.4; }
.business-partner-page { max-width: 920px; }
.business-partner-hero { padding: 28px; border-radius: 18px; background: linear-gradient(135deg, #17212b, #293747); color: white; }
.business-partner-hero .eyebrow { margin: 0 0 8px; color: #ffd36b; font-size: 12px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.business-partner-hero h1 { margin: 0 0 10px; color: white; }
.business-partner-hero > p { max-width: 680px; margin: 0; color: #e1e7eb; line-height: 1.55; }
.business-partner-beta-note { margin-top: 16px; padding: 12px 14px; border: 1px solid rgba(255,255,255,.22); border-radius: 10px; background: rgba(255,255,255,.08); font-size: 12px; line-height: 1.45; }
.business-plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; margin-top: 20px; }
.business-plan-card { display: grid; align-content: start; padding: 20px; border: 1px solid var(--rfd-border-d8dee3, #d8dee3); border-radius: 15px; background: var(--rfd-surface-ffffff, white); box-shadow: 0 3px 14px rgba(0,0,0,.05); }
.business-plan-card.featured { border-color: #d5a83e; box-shadow: 0 4px 18px rgba(128,93,19,.12); }
.business-plan-card .plan-label { color: var(--rfd-text-805d13, #805d13); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.business-plan-card h2 { margin: 7px 0 3px; }
.business-plan-price { margin: 0 0 14px; color: var(--rfd-text-17212b, #17212b); font-size: 26px; font-weight: 900; }
.business-plan-price span { color: var(--rfd-text-66727d, #66727d); font-size: 12px; font-weight: 600; }
.business-plan-card ul { display: grid; gap: 8px; margin: 0; padding-left: 18px; color: var(--rfd-text-52606b, #52606b); font-size: 13px; line-height: 1.4; }
.business-partner-features { margin-top: 20px; padding: 22px; border: 1px solid var(--rfd-border-d8dee3, #d8dee3); border-radius: 15px; background: var(--rfd-surface-ffffff, white); }
.business-partner-features h2 { margin-top: 0; }
.business-partner-features-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 18px; color: var(--rfd-text-52606b, #52606b); font-size: 13px; }
.business-partner-cta { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 20px; padding: 20px; border-radius: 15px; background: var(--rfd-surface-fff4f4, #fff4f4); }
.business-partner-cta p { margin: 4px 0 0; color: var(--rfd-text-66727d, #66727d); font-size: 12px; }
@media(max-width:700px){.business-plan-grid{grid-template-columns:1fr}.business-partner-features-grid{grid-template-columns:1fr}.business-partner-hero{padding:22px}.business-partner-cta{align-items:stretch;flex-direction:column}}


.nearby-place-card-header {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 12px;
}


.nearby-place-card h2 {
    margin:
        3px 0 0;

    font-size: 19px;
}


.nearby-place-category {
    color: var(--rfd-text-66727d, #66727d);

    font-size: 12px;
    font-weight: 800;

    text-transform: uppercase;

    letter-spacing:
        0.035em;
}


.nearby-sponsored-badge {
    display: inline-flex;

    flex: 0 0 auto;

    padding:
        5px 8px;

    border-radius: 999px;

    background:
        var(--rfd-surface-fff4d6, #fff4d6);

    color:
        var(--rfd-text-805d13, #805d13);

    font-size: 10px;
    font-weight: 800;

    text-transform: uppercase;

    letter-spacing:
        0.04em;
}


.nearby-place-distance {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 10px;

    color: var(--rfd-text-526579, #526579);

    font-size: 13px;
    font-weight: 700;
}


.nearby-place-description {
    margin:
        14px 0 0;

    color: var(--rfd-text-344451, #344451);

    line-height: 1.5;
}


.nearby-place-address {
    margin:
        10px 0 0;

    color: var(--rfd-text-66727d, #66727d);

    font-size: 13px;

    line-height: 1.4;
}



/* ---------------------------------
   Place actions
   --------------------------------- */

.nearby-place-actions {
    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    margin-top: 16px;

    padding-top: 0;
}

.nearby-place-actions-ios { display: grid; gap: 0; border: 1px solid var(--rfd-border-e1e5e8, #e1e5e8); border-radius: 12px; overflow: hidden; }
.nearby-place-actions-ios a { width: 100%; min-height: 48px; justify-content: space-between; border: 0; border-radius: 0; padding: 11px 14px; }
.nearby-place-actions-ios a + a { border-top: 1px solid var(--rfd-border-e1e5e8, #e1e5e8); }
.nearby-place-actions-ios b { color: var(--rfd-text-96a0a8, #96a0a8); font-size: 23px; font-weight: 400; }
.nearby-place-card .day-plan-place-link { margin-bottom: 0; }
.nearby-place-card .nearby-place-actions { margin-top: 8px; }


.nearby-place-actions a {
    display: inline-flex;

    min-height: 38px;

    padding:
        9px 12px;

    align-items: center;
    justify-content: center;

    border:
        1px solid var(--rfd-border-ccd3d8, #ccd3d8);

    border-radius: 9px;

    background: var(--rfd-surface-ffffff, white);

    color: var(--rfd-text-17212b, #17212b);

    text-decoration: none;

    font-size: 13px;
    font-weight: 800;
}


.nearby-place-actions a:hover {
    border-color:
        #c62828;

    color:
        var(--rfd-text-c62828, #c62828);

    background:
        var(--rfd-surface-fffafa, #fffafa);
}



/* ---------------------------------
   Empty nearby state
   --------------------------------- */

.nearby-empty {
    padding:
        34px 22px;

    border-radius: 14px;

    background: var(--rfd-surface-ffffff, white);

    color: var(--rfd-text-66727d, #66727d);

    text-align: center;
}


.nearby-empty strong {
    display: block;

    margin-top: 8px;

    color: var(--rfd-text-17212b, #17212b);

    font-size: 17px;
}


.nearby-empty p {
    margin:
        8px auto 0;

    max-width: 420px;

    line-height: 1.5;
}


.nearby-empty-icon {
    font-size: 34px;
}



@media (max-width: 600px) {

    /* ---------------------------------
       Nearby page - mobile
       --------------------------------- */

    .nearby-page {
        padding-top: 22px;
        padding-bottom: 40px;
    }


    .nearby-page-heading {
        display: block;

        margin:
            0 0 18px;
    }


    .nearby-heading-icon {
        display: none;
    }


    .nearby-page-heading h1 {
        margin:
            0 0 6px;

        font-size: 25px;
        line-height: 1.15;
    }


    .nearby-page-heading h1::before {
        content: "";

        display: inline-block;

        width: 18px;
        height: 18px;

        margin-right: 7px;

        background: url("/static/navigation-icons/direction_pin.png?v=20261027-1") center / contain no-repeat;

        vertical-align: 2px;
    }


    .nearby-page-heading p {
        margin: 0;

        font-size: 14px;
        line-height: 1.45;
    }


    /* ---------------------------------
       Horizontal category selector
       --------------------------------- */

    .nearby-category-filter {
        gap: 7px;

        margin:
            0 -8px 20px;

        padding:
            2px 8px 4px;

        overflow-x: auto;

        scrollbar-width: none;

        -ms-overflow-style: none;
    }


    .nearby-category-filter::-webkit-scrollbar {
        display: none;
    }


    .nearby-category-chip {
        min-height: 34px;

        padding:
            7px 11px;

        font-size: 12px;
    }


    /* ---------------------------------
       Place cards
       --------------------------------- */

    .nearby-place-card {
        padding: 15px;

        border-radius: 12px;
    }


    .nearby-place-card-header {
        gap: 8px;
    }


    .nearby-place-card h2 {
        font-size: 18px;
    }


    .nearby-place-actions {
        display: flex;
        gap: 8px;
    }


    .nearby-place-actions a {
        flex: 1 1 0;
        width: auto;
        min-width: 0;

        padding-left: 7px;
        padding-right: 7px;

        white-space: nowrap;
    }


    .nearby-place-actions a {
        width: 100%;
    }


    /* ---------------------------------
       Empty state
       --------------------------------- */

    .nearby-empty {
        padding:
            24px 18px;

        border-radius: 12px;
    }


    .nearby-empty-icon {
        font-size: 27px;
    }


    .nearby-empty strong {
        margin-top: 5px;

        font-size: 15px;
    }


    .nearby-empty p {
        margin-top: 6px;

        font-size: 14px;
        line-height: 1.4;
    }


    /* ---------------------------------
       Beach page nearby button
       --------------------------------- */

    .nearby-button {
        min-height: 54px;

        padding:
            13px 14px;
    }

}


.nearby-osm-import-form {
    margin-top: 28px;
}


.nearby-osm-import-button {
    width: 100%;

    padding: 12px 14px;

    border:
        1px dashed #9aa6af;

    border-radius: 10px;

    background: transparent;

    color: var(--rfd-text-66727d, #66727d);

    font: inherit;
    font-size: 13px;
    font-weight: 700;

    cursor: pointer;
}


.nearby-osm-import-button:hover {
    border-color: #c62828;

    color: var(--rfd-text-c62828, #c62828);

    background: var(--rfd-surface-ffffff, white);
}


.nearby-data-attribution {
    margin-top: 24px;

    color: var(--rfd-text-78838d, #78838d);

    font-size: 11px;

    text-align: center;
}


.nearby-data-attribution a {
    color: inherit;
}


.nearby-osm-import-button:disabled {
    cursor: wait;
    opacity: 0.75;
}


.nearby-osm-import-loading[hidden] {
    display: none;
}


.nearby-osm-import-loading {
    align-items: center;
    justify-content: center;
    gap: 8px;
}


.nearby-osm-spinner {
    width: 15px;
    height: 15px;

    border:
        2px solid
        currentColor;

    border-right-color:
        transparent;

    border-radius: 50%;

    animation:
        nearby-osm-spin
        0.7s
        linear
        infinite;
}


@keyframes nearby-osm-spin {

    to {
        transform:
            rotate(360deg);
    }
}

@media (
    prefers-reduced-motion:
    reduce
) {

    .nearby-osm-spinner {
        animation: none;
    }
}

/* Final compact layout for administrator controls in small headers. */
@media (max-width: 600px) {
    .small-header {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
        gap: 10px 12px;
        padding: 14px 18px;
    }
    .small-header > .header-controls { display: contents; }
    .small-header .language-switcher {
        position: static;
        grid-column: 2;
        grid-row: 1;
        margin: -2px 0 0;
    }
    .small-header .account-menu.account-menu-admin {
        position: static;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        margin: 0;
        gap: 9px 10px;
        align-items: center;
    }
    .small-header .account-menu-admin > .account-profile-menu {
        position: relative;
        top: auto;
        left: auto;
        grid-column: 1;
        width: auto;
        max-width: 150px;
        margin: 0;
        text-align: left;
        transform: translateY(-17px);
    }
    .small-header .account-menu-admin > .admin-header-actions {
        position: static;
        top: auto;
        right: auto;
        left: auto;
        grid-column: 2;
        width: auto;
        margin: 0;
        justify-self: end;
    }
    .small-header .account-menu-admin > .admin-management-actions {
        grid-column: 1 / -1;
        width: 100%;
    }
    .small-header .account-menu .admin-management-link {
        min-height: 40px;
        padding: 8px 7px;
    }
    .small-header .account-menu.account-menu-verified,
    .small-header .account-menu.account-menu-standard {
        position: static;
        display: flex;
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        margin: 0;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
    }
    .small-header .account-menu.account-menu-verified > .account-profile-menu,
    .small-header .account-menu.account-menu-standard > .account-profile-menu {
        position: relative;
        top: auto;
        left: auto;
        max-width: 190px;
        margin: 0;
        transform: none;
    }
    .small-header .account-menu.account-menu-verified > .lifeguard-verified-link,
    .small-header .account-menu.account-menu-standard > a[href="/lifeguard-verification"] {
        position: static;
        top: auto;
        right: auto;
        bottom: auto;
        margin: 0;
        padding: 0;
        align-self: center;
        transform: none;
    }
}
/* Admin review queues */
.admin-review-queue {
    box-sizing: border-box;
    width: min(760px, 100%);
    margin: 0 auto;
    padding: 32px 20px 60px;
}

.admin-review-queue-heading h1 {
    margin: 0 0 6px;
}

.admin-review-queue-heading p {
    margin: 0 0 22px;
    color: var(--rfd-text-5e6b7a, #5e6b7a);
}

.admin-review-tile-list {
    display: grid;
    gap: 12px;
}

.admin-review-tile {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    min-height: 92px;
    padding: 14px 16px;
    color: var(--rfd-text-14202e, #14202e);
    text-decoration: none;
    background: var(--rfd-surface-ffffff, #fff);
    border: 1px solid var(--rfd-border-dfe4e9, #dfe4e9);
    border-radius: 18px;
    box-shadow: 0 5px 16px rgba(20, 32, 46, .06);
}

.admin-review-tile:hover,
.admin-review-tile:focus-visible {
    border-color: #cf272b;
    transform: translateY(-1px);
}

.admin-review-tile-image {
    width: 72px;
    height: 64px;
    border-radius: 10px;
    object-fit: cover;
}

.admin-review-tile-icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    font-size: 23px;
    background: var(--rfd-surface-fff2f3, #fff2f3);
    border-radius: 14px;
}

.admin-review-tile-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.admin-review-tile-copy strong {
    font-size: 1.05rem;
}

.admin-review-tile-copy span,
.admin-review-tile-copy small {
    overflow-wrap: anywhere;
    color: var(--rfd-text-647181, #647181);
}

.admin-review-tile-chevron {
    color: #a2a9b2;
    font-size: 2rem;
    line-height: 1;
}

.admin-review-empty {
    margin-top: 20px;
}

@media (max-width: 560px) {
    .admin-review-queue {
        padding: 26px 12px 48px;
    }

    .admin-review-tile {
        min-height: 86px;
        padding: 12px;
        border-radius: 16px;
    }

    .admin-review-tile-image {
        width: 62px;
        height: 58px;
    }
}
.business-rewards-page { max-width: 760px; }
.business-reward-card { margin: 18px 0; overflow: hidden; border: 1px solid var(--rfd-border-d8e0e5, #d8e0e5); border-radius: 16px; background: var(--rfd-surface-ffffff, #fff); }
.business-rewards-title { display: flex; align-items: center; gap: 10px; white-space: nowrap; font-size: clamp(1.45rem, 5.5vw, 2rem); }
.business-rewards-title img { width: 38px; height: 38px; flex: 0 0 38px; object-fit: contain; }
.business-reward-master { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 18px; }
.business-reward-master h2 { margin: 0; }
.business-reward-master small { color: var(--rfd-text-66727d, #66727d); }
.business-reward-lock-note { margin: -6px 18px 16px; padding: 10px 12px; border-radius: 9px; background: var(--rfd-surface-fff8e6, #fff8e6); color: var(--rfd-text-805d13, #805d13); font-size: .88rem; font-weight: 700; line-height: 1.4; }
.reward-toggle { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.reward-toggle input { position: absolute; opacity: 0; }
.reward-toggle span { position: relative; width: 48px; height: 28px; border-radius: 999px; background: #aeb6bc; }
.reward-toggle span::after { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: var(--rfd-surface-ffffff, #fff); content: ''; transition: transform .15s; }
.reward-toggle input:checked + span { background: #27823a; }
.reward-toggle input:checked + span::after { transform: translateX(20px); }
.business-reward-tiers { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding: 18px; border-top: 1px solid var(--rfd-border-e4e8eb, #e4e8eb); }
.business-reward-tiers.is-disabled { opacity: .55; }
.business-reward-tiers form { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--rfd-border-d8e0e5, #d8e0e5); border-radius: 12px; }
.business-reward-tiers header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.business-reward-tiers input[name=reward_description] { width: 100%; min-height: 42px; padding: 9px; border: 1px solid var(--rfd-border-bcc8d0, #bcc8d0); border-radius: 8px; }
.business-reward-tiers button { min-height: 40px; border: 0; border-radius: 8px; background: #c62828; color: #fff; font-weight: 800; }
.business-reward-save-row { display: flex; align-items: center; gap: .75rem; }
.business-reward-save-row button { flex: 1; }
.business-reward-save-status { min-width: 3.5rem; color: var(--rfd-text-287b38, #287b38); font-size: .9rem; font-weight: 700; }
@media(max-width:680px){.business-reward-tiers{grid-template-columns:1fr}.business-reward-master{align-items:flex-start}.business-reward-master h2{font-size:1.15rem}}
.nearby-reward-menu { margin-top: 12px; overflow: hidden; border: 1px solid var(--rfd-border-dce3eb, #dce3eb); border-radius: 10px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-334155, #334155); font-size: .82rem; }
.nearby-reward-menu.is-promoted { border-color: #e0ba62; }
.nearby-reward-menu summary { display: flex; min-height: 40px; align-items: center; gap: 9px; padding: 0 12px; cursor: pointer; list-style: none; }
.nearby-reward-menu summary::-webkit-details-marker { display: none; }
.nearby-reward-menu-icon { color: var(--rfd-text-d39b20, #d39b20); }
.nearby-reward-menu-title { flex: 1; font-weight: 800; }
.nearby-reward-menu-title small { color: var(--rfd-text-687789, #687789); font-weight: 500; }
.nearby-reward-menu[open] .map-legend-chevron { transform: rotate(225deg); }
.nearby-reward-menu-content { border-top: 1px solid var(--rfd-border-edf1f5, #edf1f5); }
.nearby-reward-menu-content > div { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 9px; padding: 9px 12px; }
.nearby-reward-menu-content > div + div { border-top: 1px solid var(--rfd-border-edf1f5, #edf1f5); }
.nearby-reward-menu-content > div.is-promoted { background: var(--rfd-surface-fff9e9, #fff9e9); }
.nearby-reward-menu-content strong { color: var(--rfd-text-805d13, #805d13); white-space: nowrap; }
.nearby-reward-menu-content span { min-width: 0; overflow-wrap: anywhere; }
.nearby-wallet-save-form { position: absolute; top: 10px; right: 10px; z-index: 4; margin: 0; }
.nearby-wallet-save-button { display: grid; width: 44px; height: 44px; padding: 4px; place-items: center; border: 1px solid var(--rfd-border-d8e0e5, #d8e0e5); border-radius: 50%; background: rgba(255,255,255,.94); box-shadow: 0 2px 8px rgba(23,33,43,.16); cursor: pointer; }
.nearby-wallet-save-button img { display: block; width: 34px; height: 34px; object-fit: contain; }
.nearby-wallet-save-button.is-saved { border-color: #d39b20; background: var(--rfd-surface-fff4d6, #fff4d6); box-shadow: 0 0 0 2px rgba(211,155,32,.2); }

.rewards-wallet-page { max-width: 720px; }
.rewards-wallet-balance { display: flex; align-items: center; gap: 16px; margin: 18px 0 24px; padding: 18px; border-radius: 18px; background: linear-gradient(135deg,var(--rfd-surface-fff7db, #fff7db),var(--rfd-surface-ffffff, #fff)); border: 1px solid #e7c76e; }
.rewards-wallet-balance img { object-fit: contain; }
.rewards-wallet-balance div { display: grid; grid-template-columns: auto auto; align-items: baseline; column-gap: 7px; }
.rewards-wallet-balance small { grid-column: 1 / -1; color: var(--rfd-text-687789, #687789); font-weight: 700; }
.rewards-wallet-balance strong { color: var(--rfd-text-17212b, #17212b); font-size: 2rem; line-height: 1.1; }
.rewards-wallet-balance span { color: var(--rfd-text-805d13, #805d13); font-weight: 800; }
.rewards-wallet-checkin { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 0 0 24px; padding: 16px; border: 1px solid var(--rfd-border-dce3eb, #dce3eb); border-radius: 15px; background: var(--rfd-surface-ffffff, #fff); box-shadow: 0 2px 9px rgba(23,33,43,.06); }
.rewards-wallet-checkin h2 { margin: 0 0 4px; font-size: 1.15rem; }
.rewards-wallet-checkin p { margin: 0; color: var(--rfd-text-687789, #687789); line-height: 1.4; }
.rewards-wallet-checkin a { display: inline-flex; min-height: 42px; flex: 0 0 auto; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid var(--rfd-border-dce3eb, #dce3eb); border-radius: 9px; color: var(--rfd-text-5b1785, #5b1785); font-weight: 800; text-decoration: none; }
.rewards-wallet-checkin a[hidden] { display: none; }
.rewards-wallet-checkin a img { object-fit: contain; }
.rewards-wallet-checkin #partner-finder-loading progress { width: 100%; }
.rewards-wallet-heading h1 { margin-bottom: 4px; }
.rewards-wallet-heading p { margin-top: 0; color: var(--rfd-text-687789, #687789); }
.rewards-wallet-list { display: grid; gap: 14px; }
.rewards-wallet-card { padding: 16px; border: 1px solid var(--rfd-border-dce3eb, #dce3eb); border-radius: 15px; background: var(--rfd-surface-ffffff, #fff); box-shadow: 0 2px 9px rgba(23,33,43,.06); }
.rewards-wallet-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.rewards-wallet-card h2 { margin: 3px 0 0; font-size: 1.15rem; }
.rewards-wallet-card header small { color: var(--rfd-text-687789, #687789); font-weight: 800; text-transform: uppercase; }
.rewards-wallet-card header form { margin: 0; }
.rewards-wallet-remove { width: 34px; height: 34px; border: 1px solid var(--rfd-border-dce3eb, #dce3eb); border-radius: 50%; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-687789, #687789); cursor: pointer; font-size: 1.35rem; line-height: 1; }
.rewards-wallet-redeem { display: grid; gap: 9px; margin-top: 14px; }
.rewards-wallet-redeem label { color: var(--rfd-text-805d13, #805d13); font-size: .82rem; font-weight: 900; text-transform: uppercase; }
.rewards-wallet-redeem select { box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px; padding: 8px 36px 8px 10px; border: 1px solid var(--rfd-border-bcc8d0, #bcc8d0); border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); font: inherit; }
.rewards-wallet-redeem button,.reward-confirm-card button { min-height: 44px; border: 0; border-radius: 9px; background: #c62828; color: #fff; cursor: pointer; font: inherit; font-weight: 800; }
.rewards-wallet-unavailable { display: grid; gap: 3px; margin-top: 14px; padding: 12px; border-radius: 10px; background: var(--rfd-surface-f1f4f6, #f1f4f6); color: var(--rfd-text-687789, #687789); }
.rewards-wallet-unavailable strong { color: var(--rfd-text-334155, #334155); }
.rewards-wallet-pending { display: grid; gap: 4px; margin-top: 14px; padding: 12px; border: 1px solid #e7c76e; border-radius: 10px; background: var(--rfd-surface-fff9e9, #fff9e9); color: var(--rfd-text-526276, #526276); }
.rewards-wallet-pending strong { color: var(--rfd-text-805d13, #805d13); }
.rewards-wallet-pending small { margin-top: 3px; color: var(--rfd-text-687789, #687789); }
.rewards-wallet-success { margin-bottom: 16px; padding: 12px 14px; border: 1px solid var(--rfd-border-8dc79a, #8dc79a); border-radius: 10px; background: var(--rfd-surface-edf9ef, #edf9ef); color: var(--rfd-text-216d31, #216d31); font-weight: 800; }
.rewards-wallet-empty { display: grid; justify-items: center; margin-top: 30px; padding: 28px 20px; border: 1px solid var(--rfd-border-dce3eb, #dce3eb); border-radius: 16px; background: var(--rfd-surface-ffffff, #fff); text-align: center; }
.rewards-wallet-empty img { object-fit: contain; }
.rewards-wallet-empty h2 { margin: 10px 0 4px; }
.rewards-wallet-empty p { margin: 0 0 16px; color: var(--rfd-text-687789, #687789); }
.rewards-wallet-empty a { color: var(--rfd-text-b42328, #b42328); font-weight: 800; }
.reward-confirm-page { max-width: 520px; }
.reward-confirm-card { display: grid; justify-items: stretch; gap: 14px; margin-top: 28px; padding: 24px; border: 1px solid #e3c260; border-radius: 18px; background: var(--rfd-surface-ffffff, #fff); text-align: center; }
.reward-confirm-card > img { justify-self: center; object-fit: contain; }
.reward-confirm-card > small { color: var(--rfd-text-687789, #687789); font-weight: 800; text-transform: uppercase; }
.reward-confirm-card h1 { margin: 0; font-size: 1.4rem; }
.reward-confirm-cost { display: flex; align-items: baseline; justify-content: center; gap: 6px; color: var(--rfd-text-805d13, #805d13); }
.reward-confirm-cost strong { font-size: 2rem; }
.reward-confirm-card p { margin: 0; color: var(--rfd-text-526276, #526276); line-height: 1.5; }
.reward-confirm-card form { display: grid; margin: 0; }
.reward-confirm-card .reward-test-location-form { display: grid; margin: -5px 0 0; }
.reward-confirm-card .reward-test-location { border: 1px solid var(--rfd-border-bcc8d0, #bcc8d0); background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-334155, #334155); }
.reward-test-location-note { margin-top: 7px; color: var(--rfd-text-687789, #687789); line-height: 1.35; }
.reward-confirm-insufficient { padding: 12px; border-radius: 9px; background: var(--rfd-surface-fff1f1, #fff1f1); color: var(--rfd-text-a61b1f, #a61b1f); font-weight: 800; }
.reward-confirm-cancel { color: var(--rfd-text-526276, #526276); font-weight: 700; }
@media(max-width:600px){.rewards-wallet-balance{padding:14px}.rewards-wallet-checkin{align-items:stretch;flex-direction:column}.rewards-wallet-checkin a{justify-content:center}.rewards-wallet-card{padding:14px}.reward-confirm-card{padding:20px 16px}}
/* Phase 1 social profiles */
.account-settings-card textarea { width: 100%; min-height: 6rem; resize: vertical; }
.profile-handle-field { display: flex; align-items: center; border: 1px solid var(--rfd-border-ccd8df, #ccd8df); border-radius: 10px; overflow: hidden; background: var(--rfd-surface-f5f8fa, #f5f8fa); }
.profile-handle-field span { padding: 0 .65rem; color: var(--rfd-text-5c6f79, #5c6f79); font-size: .86rem; white-space: nowrap; }
.profile-handle-label { display: block; font-weight: 700; margin-bottom: .4rem; }
.profile-read-only-badge { display: inline-flex; align-items: center; margin-left: .35rem; padding: .12rem .4rem; border-radius: 999px; background: var(--rfd-surface-edf2f4, #edf2f4); color: var(--rfd-text-52656f, #52656f); font-size: .7rem; font-weight: 750; line-height: 1.25; vertical-align: middle; }
.profile-handle-field strong { min-width: 0; padding: .75rem .65rem; overflow-wrap: anywhere; border-left: 1px solid var(--rfd-border-ccd8df, #ccd8df); }
.account-settings-card .profile-handle-field input { border: 0; border-left: 1px solid var(--rfd-border-ccd8df, #ccd8df); border-radius: 0; margin: 0; min-width: 0; }
.field-help { display: block; color: var(--rfd-text-64747c, #64747c); margin-top: -.35rem; }
.settings-section[data-section="profile"] .profile-username-help { margin-top: 7px; }
.settings-section[data-section="profile"] .profile-bio-label { display: block; margin: 18px 0 4px; line-height: 1.2; }
.settings-section[data-section="profile"] .profile-bio-label + textarea { display: block; margin-top: 0; }
.profile-social-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.profile-photo-settings, .profile-privacy-settings { border: 1px solid var(--rfd-border-d7e2e7, #d7e2e7); border-radius: 12px; padding: 1rem; margin: 1.25rem 0; }
.profile-photo-settings legend, .profile-privacy-settings legend { font-weight: 700; padding: 0 .35rem; }
.profile-photo-editor { display: flex; align-items: center; gap: 1rem; margin-bottom: .8rem; }
.profile-photo-editor .profile-avatar { width: 72px; height: 72px; flex: 0 0 72px; font-size: 2rem; }
.profile-photo-help { min-width: 0; margin: 0; line-height: 1.45; }
.profile-photo-upload-button { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; padding: .7rem 1rem; border-radius: 10px; background: #c62828; color: #fff; cursor: pointer; font-weight: 700; text-align: center; }
.profile-photo-upload-button:hover { background: #a91f1f; }
.visually-hidden-file:focus-visible + .profile-photo-upload-button { outline: 3px solid #d19828; outline-offset: 3px; }
.visually-hidden-file { position: absolute; width: 1px !important; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.remove-profile-photo { margin-top: .75rem !important; }
.profile-frame-label { display: block; font-weight: 700; margin: 1rem 0 .65rem; }
.profile-frame-options { display: flex; flex-wrap: wrap; gap: .75rem; }
.profile-frame-options label { display: grid !important; justify-items: center; gap: .35rem; min-width: 74px; cursor: pointer; }
.profile-frame-options input { position: absolute; opacity: 0; pointer-events: none; }
.frame-swatch { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; background: var(--rfd-surface-e8f4f7, #e8f4f7); color: var(--rfd-text-0d6678, #0d6678); font-weight: 800; border: 4px solid transparent; }
.profile-frame-options input:checked + .frame-swatch { outline: 3px solid #0d6678; outline-offset: 3px; }
.profile-frame-options input:focus-visible + .frame-swatch { outline: 3px solid #d19828; outline-offset: 3px; }
.frame-red_flag { border: 5px solid #dc3131 !important; box-shadow: 0 0 0 3px #fff, 0 0 0 6px #871e24; }
.frame-ocean { border: 5px solid #2aa8c8 !important; box-shadow: 0 0 0 3px #dff7fb, 0 0 0 6px #08708a; }
.frame-sunset { border: 5px solid #ff9948 !important; box-shadow: 0 0 0 3px #ffe7b9, 0 0 0 6px #c94f65; }
.frame-lifeguard { border: 5px solid var(--rfd-border-ffffff, #fff) !important; box-shadow: 0 0 0 4px #d6272a, 0 0 0 7px #fff, 0 0 0 10px #d6272a; }
.coming-soon-badge { margin-left: auto; border-radius: 99px; padding: .15rem .5rem; background: var(--rfd-surface-fff2cd, #fff2cd); color: var(--rfd-text-785b00, #785b00); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.profile-privacy-settings p { color: var(--rfd-text-64747c, #64747c); margin-top: 0; }
.account-settings-card .profile-privacy-settings .settings-checkbox { display: flex; align-items: center; gap: .55rem; margin: .7rem 0; min-width: 0; font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
.account-settings-card .profile-privacy-settings .settings-checkbox > span { min-width: 0; }
.account-settings-card .profile-privacy-settings .settings-checkbox > span > strong { font-weight: 600; }
.view-public-profile { display: inline-flex; width: fit-content; min-height: 38px; align-items: center; justify-content: center; padding: .45rem .8rem; border: 1px solid #174f60; border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-174f60, #174f60); font-weight: 750; line-height: 1; text-decoration: none; }
.view-public-profile:hover { background: var(--rfd-surface-eef6f8, #eef6f8); }
.public-profile-page { max-width: 760px; padding-top: 2rem; }
.public-profile-card { box-sizing: border-box; display: grid; grid-template-columns: minmax(0, 1fr); gap: .85rem; width: 100%; max-width: 100%; overflow: hidden; background: var(--rfd-surface-ffffff, #fff); border-radius: 20px; padding: 2rem; box-shadow: 0 8px 30px rgba(22, 60, 75, .1); }
.profile-identity-row { display: flex; align-items: center; gap: 1.25rem; min-width: 0; }
.profile-avatar { width: 96px; height: 96px; border-radius: 50%; display: grid; place-items: center; overflow: hidden; background: var(--rfd-surface-e8f4f7, #e8f4f7); color: var(--rfd-text-0d6678, #0d6678); font-size: 2.5rem; font-weight: 800; }
.profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.profile-heading { display: grid; justify-items: start; gap: .45rem; min-width: 0; }
.profile-heading h1 { min-width: 0; margin: 0; line-height: 1.08; overflow-wrap: anywhere; word-break: break-word; }
.profile-username { width: 100%; max-width: 100%; color: var(--rfd-text-64747c, #64747c); margin: .1rem 0 0; font-size: .92rem; line-height: 1.35; overflow-wrap: anywhere; word-break: normal; }
.profile-level { display: inline-block; background: var(--rfd-surface-e9f7f2, #e9f7f2); color: var(--rfd-text-176a50, #176a50); border-radius: 99px; padding: .25rem .65rem; font-weight: 700; }
.profile-bio { margin: 0; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.profile-header-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; }
.profile-edit-link { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: .45rem .8rem; border: 1px solid #174f60; border-radius: 9px; color: var(--rfd-text-174f60, #174f60); font-weight: 750; line-height: 1; text-decoration: none; }
.profile-edit-link:hover { background: var(--rfd-surface-eef6f8, #eef6f8); }
.profile-bio, .profile-stats, .profile-social-links, .profile-privacy-note { grid-column: 1 / -1; }
.profile-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: .55rem .35rem; border-block: 1px solid #e2eaee; padding: .75rem 0; }
.profile-stats div { display: grid; min-width: 0; text-align: center; }
.profile-stats strong { font-size: 1.5rem; color: var(--rfd-text-174f60, #174f60); }
.profile-stats span { min-width: 0; color: var(--rfd-text-64747c, #64747c); font-size: .85rem; overflow-wrap: anywhere; }
.profile-social-links { display: flex; flex-wrap: wrap; gap: .65rem; }
.profile-social-link { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .55rem .85rem; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 999px; background: var(--rfd-surface-ffffff, #fff); font-weight: 700; text-decoration: none; }
.profile-social-link svg { width: 20px; height: 20px; flex: none; }
.profile-social-link-instagram { color: var(--rfd-text-a33462, #a33462); }
.profile-social-link-facebook { color: var(--rfd-text-2764a7, #2764a7); }
.profile-social-link:hover { background: var(--rfd-surface-f3f8fa, #f3f8fa); border-color: currentColor; }
.profile-social-link:focus-visible { outline: 3px solid #d19828; outline-offset: 3px; }
.profile-privacy-note { color: var(--rfd-text-64747c, #64747c); font-size: .9rem; }
@media (max-width: 600px) { .profile-social-fields { grid-template-columns: 1fr; } .profile-handle-field span { display: none; } .account-settings-card .profile-handle-field input { border-left: 0; } .public-profile-page { width: 100%; max-width: 100%; padding-inline: 12px; } .public-profile-card { gap: .7rem; padding: 1.1rem; } .profile-identity-row { gap: 1rem; } .profile-avatar { width: 72px; height: 72px; flex: 0 0 72px; } .profile-heading h1 { font-size: clamp(1.65rem, 8vw, 2.25rem); } .profile-level { font-size: .9rem; } .profile-rank-progress { margin-top: .2rem; } .profile-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem .35rem; } }
@media (max-width: 600px) { .profile-handle-field strong { border-left: 0; } }

/* Section-based Account Settings */
.settings-framework { max-width: 1080px; padding-bottom: 64px; }
.settings-mobile-heading { display: none; }
.settings-layout { display: grid; grid-template-columns: minmax(220px, 270px) minmax(0, 1fr); gap: 24px; align-items: start; }
.settings-sidebar { position: sticky; top: 18px; overflow: hidden; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 16px; background: var(--rfd-surface-ffffff, #fff); box-shadow: 0 5px 18px rgba(22,60,75,.07); }
.settings-sidebar > h1 { margin: 0; padding: 20px 18px 14px; font-size: 1.35rem; }
.settings-sidebar nav { display: grid; padding: 0 8px 10px; }
.settings-sidebar a { display: grid; grid-template-columns: 28px minmax(0,1fr) auto; gap: 9px; align-items: center; min-height: 48px; padding: 10px; border-radius: 10px; color: var(--rfd-text-17212b, #17212b); text-decoration: none; }
.settings-sidebar a > span:first-child { font-size: 1.15rem; text-align: center; }
.settings-navigation-asset { display: block; width: 24px; height: 24px; margin: auto; object-fit: contain; }
.settings-notification-bell-dark { display: none; }
:root[data-theme="dark"] .settings-notification-bell-light { display: none; }
:root[data-theme="dark"] .settings-notification-bell-dark { display: block; }
.settings-section-bell { display: block; width: 34px; height: 34px; flex: 0 0 34px; }
.settings-sidebar a > span:nth-child(2) { min-width: 0; }
.settings-sidebar a strong { display: block; line-height: 1.2; }
.settings-sidebar a small { display: none; color: var(--rfd-text-60727c, #60727c); font-size: .78rem; line-height: 1.25; }
.settings-sidebar a b { color: var(--rfd-text-84939b, #84939b); font-size: 1.35rem; }
.settings-sidebar a:hover { background: var(--rfd-surface-f3f7f9, #f3f7f9); }
.settings-sidebar a.active { background: var(--rfd-surface-fff0f0, #fff0f0); color: var(--rfd-text-a91f1f, #a91f1f); box-shadow: inset 3px 0 #c62828; }
.settings-content { min-width: 0; }
.settings-content > .settings-saved-message, .settings-content > .settings-error-message { margin-bottom: 14px; }
.settings-section { display: none; margin: 0; }
.settings-framework:not(.has-selected-section) [data-section="profile"],
.settings-section.is-active,
.section-privacy [data-section="privacy"], .section-notifications [data-section="notifications"],
.section-preferences [data-section="preferences"], .section-business [data-section="business"],
.section-verification [data-section="verification"], .section-security [data-section="security"],
.section-account [data-section="account"] { display: block; }
.settings-section-header { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; padding-bottom: 13px; border-bottom: 1px solid var(--rfd-border-e2eaee, #e2eaee); }
.settings-section-header > span { font-size: 1.55rem; line-height: 1; }
.settings-section-asset { width: 34px; height: 34px; flex: 0 0 34px; object-fit: contain; }
.settings-verification-asset { box-sizing: border-box; padding: 5px; }
.settings-section-header h2 { margin: 0; }
.settings-link-list { display: grid; gap: 8px; margin: 16px 0; }
.settings-link-list a { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 10px; color: var(--rfd-text-17212b, #17212b); font-weight: 750; text-decoration: none; }
.settings-profile-dropdowns { display: grid; gap: 12px; margin: 22px 0; }
.settings-profile-dropdowns details { overflow: hidden; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 12px; background: var(--rfd-surface-ffffff, #fff); }
.settings-profile-dropdowns summary { display: flex; align-items: center; gap: 12px; min-height: 58px; padding: 12px 16px; cursor: pointer; font-weight: 800; list-style: none; }
.settings-profile-dropdowns summary::-webkit-details-marker { display: none; }
.settings-profile-dropdowns summary > span { flex: 1; }
.settings-profile-dropdowns summary > strong { min-width: 27px; padding: 3px 7px; border-radius: 999px; background: var(--rfd-surface-edf2f4, #edf2f4); text-align: center; font-size: .8rem; }
.settings-profile-dropdowns summary > .rfd-chevron { width: 22px; height: 22px; flex: 0 0 22px; transition: transform .18s ease; }
.settings-profile-dropdowns details[open] summary > .rfd-chevron { transform: rotate(90deg); }
.settings-profile-list { border-top: 1px solid var(--rfd-border-e2eaee, #e2eaee); }
.settings-profile-row { display: grid; grid-template-columns: 44px minmax(0,1fr) 28px; gap: 11px; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--rfd-border-edf1f3, #edf1f3); }
.settings-profile-row:last-child { border-bottom: 0; }
.settings-profile-row > span:nth-child(2) { min-width: 0; }
.settings-profile-row > span:nth-child(2) strong, .settings-profile-row > span:nth-child(2) small { display: block; overflow-wrap: anywhere; }
.settings-profile-row > span:nth-child(2) small { margin-top: 2px; color: var(--rfd-text-64747c, #64747c); }
.settings-profile-avatar { display: grid; place-items: center; width: 40px; height: 40px; overflow: hidden; border-radius: 50%; background: var(--rfd-surface-e8f4f7, #e8f4f7); color: var(--rfd-text-0d6678, #0d6678); font-weight: 800; }
.settings-profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.settings-profile-flag { width: 25px; height: 25px; object-fit: contain; }
.settings-profile-empty { margin: 0; padding: 16px; color: var(--rfd-text-64747c, #64747c); }
.settings-empty-state { padding: 18px; border: 1px dashed var(--rfd-border-bdcbd2, #bdcbd2); border-radius: 12px; background: var(--rfd-surface-f7fafb, #f7fafb); color: var(--rfd-text-52656f, #52656f); }
.settings-empty-state p { margin: 6px 0 0; }
.notification-preference-list { overflow: hidden; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 12px; }
.notification-preference-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 68px; margin: 0 !important; padding: 12px 14px; border-bottom: 1px solid var(--rfd-border-e5ecef, #e5ecef); cursor: pointer; }
.notification-preference-row:last-child { border-bottom: 0; }
.notification-preference-row > span:first-child { min-width: 0; }
.notification-preference-row strong, .notification-preference-row small { display: block; }
.notification-preference-row small { margin-top: 3px; color: var(--rfd-text-60727c, #60727c); font-weight: 500; line-height: 1.35; }
.notification-preference-toggle { position: relative; flex: 0 0 48px; width: 48px; height: 28px; }
.account-settings-card .notification-preference-toggle input { position: absolute; width: 1px; min-height: 1px; opacity: 0; }
.notification-preference-toggle i { display: block; position: relative; width: 48px; height: 28px; border-radius: 999px; background: #aeb6bc; transition: background .15s; }
.notification-preference-toggle i::after { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: var(--rfd-surface-ffffff, #fff); box-shadow: 0 1px 3px rgba(0,0,0,.22); content: ''; transition: transform .15s; }
.notification-preference-toggle input:checked + i { background: #27823a; }
.notification-preference-toggle input:checked + i::after { transform: translateX(20px); }
.notification-preference-toggle input:focus-visible + i { outline: 3px solid rgba(28, 109, 181, .35); outline-offset: 2px; }
.notification-advanced-settings, .notification-device-settings { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--rfd-border-e2eaee, #e2eaee); }
.notification-advanced-settings > .notification-preference-row { padding-inline: 0; }
.quiet-hours-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 12px 0 18px; }
.quiet-hours-fields label { margin: 0; }
.notification-advanced-settings > label[for="beach_alert_scope"] { display: block; margin: 4px 0 7px; }
.notification-advanced-settings > select + .field-help { display: block; margin: 7px 0 0; line-height: 1.4; }
.notification-device-settings h3 { margin: 0; }
.notification-device-settings > p { margin: 6px 0 14px; color: var(--rfd-text-60727c, #60727c); line-height: 1.4; }
.notification-device-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 0; border-top: 1px solid var(--rfd-border-e5ecef, #e5ecef); }
.notification-device-row strong, .notification-device-row small { display: block; }
.notification-device-row small { margin-top: 2px; color: var(--rfd-text-60727c, #60727c); }
.notification-device-row button { min-height: 38px; padding: 7px 11px; border: 1px solid #c62828; border-radius: 8px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-a91f1f, #a91f1f); font: inherit; font-weight: 750; cursor: pointer; }
@media (max-width: 480px) { .quiet-hours-fields { grid-template-columns: 1fr; } }
.settings-section .lifeguard-verification-toggle { justify-content: space-between; color: var(--rfd-text-17212b, #17212b); text-decoration: none; }
.settings-section .lifeguard-verification-toggle.verification-status-approved { border-color: var(--rfd-border-9fcdb0, #9fcdb0); background: var(--rfd-surface-f2fbf5, #f2fbf5); }
.settings-section .lifeguard-verification-toggle.verification-status-pending { border-color: #ead59a; background: var(--rfd-surface-fff9e9, #fff9e9); }
.settings-section .lifeguard-verification-toggle.verification-status-rejected,
.settings-section .lifeguard-verification-toggle.verification-status-expired,
.settings-section .lifeguard-verification-toggle.verification-status-revoked { border-color: var(--rfd-border-e0b6b6, #e0b6b6); background: var(--rfd-surface-fff7f7, #fff7f7); }
.settings-section > .danger-zone { margin-top: 28px; padding-top: 22px; border: 0; border-top: 2px solid #ef9a9a; border-radius: 0; }
.settings-status-input { position: absolute; width: 1px !important; height: 1px; opacity: 0; pointer-events: none; }
.lifeguard-verification-heading { display: flex; align-items: center; gap: 12px; font-size: clamp(1.35rem, 5vw, 1.65rem); line-height: 1.2; }
.lifeguard-verification-heading img { box-sizing: border-box; width: 34px; height: 34px; flex: 0 0 34px; padding: 5px; object-fit: contain; }
.lifeguard-status-heading { display: flex; align-items: center; gap: 10px; }
.lifeguard-status-heading img,
.lifeguard-inline-asset { box-sizing: border-box; width: 28px; height: 28px; padding: 3px; object-fit: contain; vertical-align: middle; }
.verification-resubmission-note { color: var(--rfd-text-52656f, #52656f); line-height: 1.5; }
.verification-photo-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.verification-photo-actions button { min-height: 42px; margin: 0; }
.verification-photo-preview { width: 100%; }
.verification-photo-preview img { display: block; width: min(100%, 280px); max-height: 220px; margin: 10px 0; border-radius: 10px; object-fit: contain; background: var(--rfd-surface-eef2f4, #eef2f4); }
.verification-photo-preview button { min-height: 38px; margin: 0; }
.admin-user-verification { padding: 1rem; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 12px; background: var(--rfd-surface-f8fafb, #f8fafb); }
.admin-user-verification h3 { display: flex; align-items: center; gap: 10px; margin: 0 0 .8rem; }
.admin-user-verification h3 img { box-sizing: border-box; width: 32px; height: 32px; padding: 4px; object-fit: contain; }
.lifeguard-admin-heading img,
.lifeguard-admin-applicant-heading img { box-sizing: border-box; width: 34px; height: 34px; padding: 5px; object-fit: contain; }
.lifeguard-admin-applicant-heading { display: flex; align-items: center; gap: 10px; }
.admin-user-verification dl { display: grid; gap: .55rem; margin: 0; }
.admin-user-verification dl div { display: grid; grid-template-columns: minmax(150px, .7fr) minmax(0, 1fr); gap: .8rem; }
.admin-user-verification dt { color: var(--rfd-text-607080, #607080); font-weight: 700; }
.admin-user-verification dd { margin: 0; overflow-wrap: anywhere; }
.admin-verification-revoke { display: grid; gap: .75rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--rfd-border-e0b6b6, #e0b6b6); }
.admin-verification-revoke textarea { width: 100%; min-height: 80px; margin-top: .35rem; }
@media (max-width: 520px) { .admin-user-verification dl div { grid-template-columns: 1fr; gap: .15rem; } .verification-photo-actions { width: 100%; } .verification-photo-actions button { flex: 1 1 130px; } }
.settings-section[data-section="profile"] { padding: 26px; }
.settings-section[data-section="profile"] > label,
.settings-section[data-section="profile"] > .profile-handle-label { margin-top: 22px; margin-bottom: 7px; }
.settings-section[data-section="profile"] > .field-help { margin-top: 7px; line-height: 1.45; }
.settings-section[data-section="profile"] > textarea { margin-bottom: 2px; }
.settings-section[data-section="profile"] .profile-social-fields { margin-top: 22px; }
.settings-section[data-section="profile"] .profile-photo-settings { margin-block: 26px; }
.profile-settings-actions { display: grid; gap: 14px; margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--rfd-border-e2eaee, #e2eaee); }
.profile-settings-actions .view-public-profile { margin: 0; justify-self: start; }
.profile-settings-actions .settings-save-button { width: 100%; margin: 0; }
.business-settings-save { width: 100%; margin-top: 20px; }

@media (max-width: 720px) {
    .settings-framework { padding-inline: 14px; }
    .settings-layout { display: block; }
    .settings-mobile-heading { display: block; margin-bottom: 16px; }
    .settings-mobile-heading h1 { margin: 8px 0 0; font-size: 1.7rem; }
    .settings-back-link { display: inline-flex; min-height: 40px; align-items: center; color: var(--rfd-text-c62828, #c62828); text-decoration: none; }
    .settings-sidebar { position: static; border-radius: 14px; }
    .settings-sidebar > h1 { display: none; }
    .settings-sidebar nav { padding: 6px; }
    .settings-sidebar a { grid-template-columns: 34px minmax(0,1fr) auto; min-height: 67px; padding: 10px 12px; border-bottom: 1px solid var(--rfd-border-edf1f3, #edf1f3); border-radius: 8px; }
    .settings-sidebar a:last-child { border-bottom: 0; }
    .settings-sidebar a > span:first-child { font-size: 1.35rem; }
    .settings-sidebar a small { display: block; margin-top: 3px; }
    .settings-sidebar a.active { background: transparent; color: var(--rfd-text-17212b, #17212b); box-shadow: none; }
    .settings-content { display: none; }
    .settings-framework.has-selected-section .settings-sidebar { display: none; }
    .settings-framework.has-selected-section .settings-content { display: block; }
    .settings-framework.has-selected-section .settings-mobile-heading h1 { display: none; }
    .settings-section { padding: 18px 16px; }
    .settings-section[data-section="profile"] { padding: 24px 20px; }
    .settings-section-header > span { font-size: 1.35rem; }
}

/* Keep the signed-in identity aligned as one mobile header row. */
@media (max-width: 600px) {
    .hero .account-menu:not(.account-menu-logged-out),
    .small-header .account-menu:not(.account-menu-logged-out) {
        align-items: center;
        justify-content: flex-start;
        text-align: left;
    }

    .hero .account-menu > .account-header-avatar {
        width: 52px;
        height: 52px;
        flex-basis: 52px;
    }

    .small-header .account-menu > .account-header-avatar {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
    }

    .hero .account-menu > .account-header-avatar,
    .small-header .account-menu > .account-header-avatar {
        border-radius: 50% !important;
        aspect-ratio: 1;
    }

    .hero .account-menu:not(.account-menu-logged-out) > .account-profile-menu,
    .small-header .account-menu:not(.account-menu-logged-out) > .account-profile-menu {
        position: relative;
        top: auto;
        left: auto;
        width: auto;
        max-width: min(220px, calc(100vw - 130px));
        margin: 0;
        transform: none;
        text-align: left;
    }

    .account-identity,
    .account-greeting,
    .header-contributor-level,
    .header-contribution-count {
        align-items: flex-start;
        text-align: left;
    }

    .hero .account-menu.account-menu-admin,
    .small-header .account-menu.account-menu-admin {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        align-items: center;
    }

    .hero .account-menu-admin > .account-header-avatar,
    .small-header .account-menu-admin > .account-header-avatar {
        grid-column: 1;
        grid-row: 1;
    }

    .hero .account-menu-admin > .account-profile-menu,
    .small-header .account-menu-admin > .account-profile-menu {
        grid-column: 2;
        grid-row: 1;
    }

    .hero .account-menu-admin > .admin-header-actions,
    .small-header .account-menu-admin > .admin-header-actions {
        grid-column: 3;
        grid-row: 1;
    }

    .hero .account-menu-admin > .admin-management-actions,
    .small-header .account-menu-admin > .admin-management-actions {
        grid-column: 1 / -1;
    }
}
/* Keep desktop administrator controls on one compact header row. */
@media (min-width: 601px) {
    .hero .account-menu.account-menu-admin,
    .small-header .account-menu.account-menu-admin {
        display: flex;
        width: auto;
        align-items: center;
        gap: 10px;
    }

    .hero .account-menu-admin > .account-profile-menu,
    .hero .account-menu-admin > .admin-header-actions,
    .hero .account-menu-admin > .admin-management-actions,
    .small-header .account-menu-admin > .account-profile-menu,
    .small-header .account-menu-admin > .admin-header-actions,
    .small-header .account-menu-admin > .admin-management-actions {
        width: auto;
        margin: 0;
    }

    .hero .account-menu-admin > .admin-management-actions,
    .small-header .account-menu-admin > .admin-management-actions {
        display: flex;
        flex: 0 0 auto;
        gap: 6px;
    }

    .hero .account-menu .admin-management-link,
    .small-header .account-menu .admin-management-link {
        min-height: 32px;
        padding: 6px 9px;
        font-size: 11px;
    }

    .hero .admin-management-icon,
    .small-header .admin-management-icon {
        font-size: 14px;
    }
}
/* Unified signed-in header: the framed avatar is the account-menu trigger. */
.account-menu:not(.account-menu-logged-out) {
    display: flex !important;
    width: auto !important;
    align-items: center !important;
    gap: 0 !important;
}
.account-menu:not(.account-menu-logged-out) > .account-profile-menu {
    position: relative !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
}
.account-avatar-trigger {
    box-sizing: border-box;
    display: grid;
    width: 58px;
    height: 58px;
    padding: 0;
    place-items: center;
    overflow: hidden;
    border-radius: 50% !important;
    background: var(--rfd-surface-e8f4f7, #e8f4f7);
    color: var(--rfd-text-0d6678, #0d6678);
    font-size: 20px;
    font-weight: 800;
    line-height: 1;
    list-style: none;
    cursor: pointer;
}
.account-avatar-trigger::-webkit-details-marker { display: none; }
.account-avatar-trigger img { width: 100%; height: 100%; object-fit: cover; }
.account-avatar-trigger:focus-visible { outline: 3px solid var(--rfd-border-ffffff, #fff); outline-offset: 3px; }
.account-dropdown-identity {
    display: grid;
    gap: 3px;
    margin: -7px -7px 6px;
    padding: 13px 16px 12px;
    border-bottom: 1px solid var(--rfd-border-e3e7ea, #e3e7ea);
    border-radius: 10px 10px 0 0;
    background: var(--rfd-surface-f5f7f8, #f5f7f8);
    color: var(--rfd-text-17212b, #17212b);
    text-align: left;
}
.account-dropdown-identity strong { font-size: 13px; line-height: 1.3; }
.account-dropdown-identity span { color: var(--rfd-text-66727d, #66727d); font-size: 11px; font-weight: 700; line-height: 1.25; }
.account-dropdown-section-label {
    margin: 6px 3px 3px;
    padding: 7px 7px 4px;
    border-top: 1px solid var(--rfd-border-e3e7ea, #e3e7ea);
    color: var(--rfd-text-66727d, #66727d);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.map-status-conflict {
    display: grid;
    gap: 5px;
    margin-top: 9px;
    padding: 10px;
    border: 1px solid #e4bd52;
    border-radius: 9px;
    background: var(--rfd-surface-fff8df, #fff8df);
    color: var(--rfd-text-5f470d, #5f470d);
    line-height: 1.35;
}
.map-status-conflict strong:first-child { color: var(--rfd-text-805d13, #805d13); }
.map-status-conflict span,
.map-status-conflict b { font-size: 11px; }

.beach-status-conflict {
    display: grid;
    gap: 9px;
    margin: 14px 0;
    padding: 16px;
    border: 1px solid #e4bd52;
    border-left: 5px solid #f9a825;
    border-radius: 12px;
    background: var(--rfd-surface-fff8df, #fff8df);
    color: var(--rfd-text-5f470d, #5f470d);
}
.beach-status-conflict h2,
.beach-status-conflict p { margin: 0; }
.beach-status-conflict h2 { color: var(--rfd-text-805d13, #805d13); font-size: 17px; }
.beach-status-conflict > a { color: var(--rfd-text-9d1c1c, #9d1c1c); font-weight: 800; }
.beach-conflict-readings { display: flex; flex-wrap: wrap; gap: 7px; }
.beach-conflict-readings span {
    padding: 6px 8px;
    border-radius: 8px;
    background: rgba(255, 255, 255, .72);
    font-size: 12px;
    font-weight: 700;
}
@media (max-width: 600px) {
    .hero .header-controls {
        position: absolute !important;
        top: 16px;
        right: 14px;
        display: flex !important;
        width: auto !important;
        align-items: center;
    }
    .small-header > .header-controls {
        position: static !important;
        display: flex !important;
        width: auto !important;
        grid-column: 2;
        grid-row: 1;
        align-items: center;
    }
    .hero .account-menu.account-menu-logged-out,
    .small-header .account-menu.account-menu-logged-out {
        position: static !important;
        top: auto !important;
        right: auto !important;
        display: flex !important;
        width: auto !important;
        margin: 0 !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 12px !important;
    }
    .hero .account-menu-logged-out .join-link,
    .small-header .account-menu-logged-out .join-link {
        margin: 0 !important;
        padding: 7px 11px;
    }
    .hero .account-menu:not(.account-menu-logged-out),
    .small-header .account-menu:not(.account-menu-logged-out) {
        display: flex !important;
        width: auto !important;
        margin: 0 !important;
    }
    .hero .account-avatar-trigger { width: 58px; height: 58px; }
    .small-header .account-avatar-trigger { width: 46px; height: 46px; }
    .hero .account-menu:not(.account-menu-logged-out) > .account-profile-menu,
    .small-header .account-menu:not(.account-menu-logged-out) > .account-profile-menu {
        position: relative !important;
        width: auto !important;
        max-width: none !important;
        margin: 0 !important;
    }
}

/* Administrator quick-access controls remain visible outside the profile menu. */
.app-health-title {
    display: flex;
    align-items: center;
    gap: 10px;
}
.app-health-title-icon {
    width: 30px;
    height: 30px;
    object-fit: contain;
    flex: 0 0 30px;
}
.account-menu-admin { gap: 10px !important; }
.admin-quick-access {
    display: flex;
    align-items: center;
    gap: 8px;
}
.admin-quick-access .admin-header-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
}
.admin-quick-access .admin-review-link {
    min-width: 48px;
    min-height: 32px;
    padding: 6px 8px;
    justify-content: center;
    gap: 4px;
}
.admin-quick-access .admin-action-icon { font-size: 14px; }
.admin-quick-access .admin-action-count { font-size: 12px; }
.admin-quick-access .admin-management-actions {
    display: flex;
    width: auto;
    gap: 6px;
}
.admin-quick-access .admin-management-link {
    min-width: 48px;
    min-height: 32px;
    padding: 6px 8px;
    justify-content: center;
    gap: 4px;
    font-size: 12px;
}
.admin-quick-access .admin-review-link,
.admin-quick-access .admin-management-link,
.small-header .admin-quick-access .admin-management-link {
    border-color: #fff4d6 !important;
    background: var(--rfd-surface-fff4d6, #fff4d6) !important;
    color: var(--rfd-text-000000, #000) !important;
}
.admin-quick-access .admin-review-link:hover,
.admin-quick-access .admin-management-link:hover,
.small-header .admin-quick-access .admin-management-link:hover {
    border-color: #ffe9aa !important;
    background: var(--rfd-surface-ffe9aa, #ffe9aa) !important;
}
.admin-quick-access .admin-action-count,
.admin-quick-access .admin-management-count,
.small-header .admin-quick-access .admin-management-count {
    min-width: auto;
    height: auto;
    padding: 0;
    background: transparent !important;
    color: var(--rfd-text-000000, #000) !important;
    font-size: 12px;
    line-height: 1;
}

@media (min-width: 601px) {
    .account-menu-admin > .account-profile-menu { order: 2; }
    .account-menu-admin > .admin-quick-access { order: 1; }
}

@media (max-width: 600px) {
    .hero:has(.account-menu-admin) { min-height: 150px; }
    .small-header:has(.account-menu-admin) { min-height: 140px; }
    .hero .account-menu-admin,
    .small-header .account-menu-admin { position: static; }
    .hero .admin-quick-access,
    .small-header .admin-quick-access {
        position: absolute;
        top: 72px;
        left: 10px;
        right: 10px;
        transform: none;
        display: flex;
        width: auto;
        max-width: none;
        justify-content: center;
        gap: 4px;
        flex-wrap: nowrap;
        box-sizing: border-box;
    }
    /* The home header controls are right-aligned and shrink to their contents.
       Anchor this row to that right edge, but size it from the viewport. */
    .hero .admin-quick-access {
        left: auto;
        right: 0;
        width: calc(100vw - 44px);
    }
    .hero .admin-quick-access .admin-header-actions,
    .small-header .admin-quick-access .admin-header-actions {
        position: static;
        justify-content: center;
        flex: 0 0 auto;
        gap: 4px;
    }
    .hero .admin-quick-access .admin-management-actions,
    .small-header .admin-quick-access .admin-management-actions {
        display: flex;
        width: auto;
        flex: 0 0 auto;
        gap: 4px;
    }
    .hero .admin-quick-access .admin-management-link,
    .small-header .admin-quick-access .admin-management-link {
        min-height: 32px;
        width: 42px;
        min-width: 42px;
        padding: 6px 4px;
    }
    .hero .admin-quick-access .admin-review-link,
    .small-header .admin-quick-access .admin-review-link {
        width: 42px;
        min-width: 42px;
        padding: 6px 4px;
    }
}

@media (max-width: 360px) {
    .hero .admin-quick-access,
    .small-header .admin-quick-access,
    .hero .admin-quick-access .admin-header-actions,
    .small-header .admin-quick-access .admin-header-actions,
    .hero .admin-quick-access .admin-management-actions,
    .small-header .admin-quick-access .admin-management-actions { gap: 3px; }
    .hero .admin-quick-access .admin-review-link,
    .small-header .admin-quick-access .admin-review-link,
    .hero .admin-quick-access .admin-management-link,
    .small-header .admin-quick-access .admin-management-link {
        width: 38px;
        min-width: 38px;
    }
}

/* Profile contribution gallery */
.profile-photo-gallery { grid-column: 1 / -1; }
.profile-photo-gallery h2 { margin: 0 0 .75rem; }
.profile-photo-groups { display: grid; gap: 1.25rem; }
.profile-photo-beach-group { min-width: 0; padding: .9rem; border: 1px solid var(--rfd-border-dbe3ec, #dbe3ec); border-radius: 14px; background: var(--rfd-surface-ffffff, #fff); }
.profile-photo-beach-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .65rem; }
.profile-photo-beach-heading h3 { min-width: 0; margin: 0; font-size: 1.05rem; }
.profile-photo-beach-heading a { color: var(--rfd-text-17212b, #17212b); text-underline-offset: 3px; }
.profile-photo-beach-heading span { flex: 0 0 auto; color: var(--rfd-text-64747c, #64747c); font-size: .85rem; }
.profile-photo-card { scroll-margin-top: 1rem; }
.profile-photo-grid { display: flex; gap: .8rem; overflow-x: auto; overscroll-behavior-inline: contain; padding: 0 0 .45rem; scroll-snap-type: inline mandatory; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.profile-photo-grid:focus-visible { outline: 3px solid var(--rfd-border-b7c9d3, #2f7182); outline-offset: 4px; border-radius: 8px; }
.profile-photo-card { position: relative; aspect-ratio: 1; flex: 0 0 min(230px, 76vw); overflow: hidden; border-radius: 12px; background: var(--rfd-surface-e8f4f7, #e8f4f7); color: #fff; scroll-snap-align: start; }
.profile-photo-preview { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.profile-photo-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
.profile-photo-card:hover img { transform: scale(1.03); }
.profile-photo-beach-link { position: absolute; inset: auto 0 0; z-index: 1; padding: 1.8rem .7rem .6rem; background: linear-gradient(transparent, rgba(0,0,0,.72)); color: #fff; font-size: .82rem; font-weight: 700; text-decoration: none; }
.photo-heart-form { position: absolute; top: .55rem; right: .55rem; }
.photo-heart-button, .photo-heart-count { border: 0; border-radius: 99px; padding: .4rem .65rem; background: rgba(255,255,255,.92); color: var(--rfd-text-76242f, #76242f); font-weight: 800; box-shadow: 0 2px 8px rgba(0,0,0,.18); }
.profile-photo-heart-people { cursor: pointer; font: inherit; }
.photo-heart-people-dialog { position: fixed; inset: 0; z-index: 5100; display: grid; place-items: center; padding: 1rem; background: rgba(0,0,0,.72); }
.photo-heart-people-dialog[hidden] { display: none; }
.photo-heart-people-card { position: relative; width: min(360px, 100%); max-height: 70vh; overflow: auto; padding: 1rem; border-radius: 14px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); }
.photo-heart-people-card h2 { margin: 0 2rem .8rem 0; font-size: 1.15rem; }
.photo-heart-people-close { position: absolute; top: .55rem; right: .65rem; border: 0; background: transparent; font-size: 1.8rem; cursor: pointer; }
.photo-heart-people-list { display: grid; gap: .45rem; }
.photo-heart-person { display: flex; align-items: center; gap: .65rem; padding: .5rem; border-radius: 10px; color: var(--rfd-text-17212b, #17212b); text-decoration: none; }
a.photo-heart-person:hover { background: var(--rfd-surface-f1f5f7, #f1f5f7); }
.photo-heart-person-avatar { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 50%; background: var(--rfd-surface-e8f4f7, #e8f4f7); object-fit: cover; font-weight: 800; }
.photo-heart-button { cursor: pointer; }
.photo-heart-button span { position: static; padding: 0; background: none; color: #ff2d55; font-size: 1rem; }
.photo-heart-count span { color: #ff2d55; font-size: 1.25em; line-height: 1; }
.photo-heart-button.is-hearted { background: rgba(255,255,255,.92); color: var(--rfd-text-76242f, #76242f); }
.photo-heart-count { position: absolute !important; inset: .55rem .55rem auto auto !important; padding: .4rem .65rem !important; background: rgba(255,255,255,.92) !important; font-size: .82rem !important; }
.profile-photo-gallery-empty { color: var(--rfd-text-64747c, #64747c); }
.profile-gallery-load-more { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; margin-top: .75rem; padding: .55rem .9rem; border: 1px solid var(--rfd-border-b7c9d3, #b7c9d3); border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-174f60, #174f60); font: inherit; font-weight: 750; cursor: pointer; }
.profile-gallery-load-more:hover, .profile-gallery-load-more:focus-visible { background: var(--rfd-surface-eef6f8, #eef6f8); }
.profile-gallery-load-more:disabled { opacity: .65; cursor: wait; }
.profile-gallery-load-more-groups { width: 100%; margin-top: 1rem; }
@media (max-width: 600px) {
    .profile-photo-beach-group { padding: .75rem; }
    .profile-photo-beach-heading { align-items: flex-start; flex-direction: column; gap: .2rem; }
    .profile-photo-card { flex-basis: min(210px, 72vw); }
    .profile-gallery-load-more-photos { width: 100%; }
}
/* One horizontally scrolling deck per profile: one stacked card per beach. */
.profile-photo-groups { display: flex; align-items: flex-start; gap: 1.15rem; overflow-x: auto; overflow-y: visible; padding: .8rem .75rem 1.2rem; margin-inline: -.75rem; scroll-snap-type: inline mandatory; overscroll-behavior-inline: contain; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.profile-photo-beach-group { position: relative; width: clamp(158px, 42vw, 190px); flex: 0 0 clamp(158px, 42vw, 190px); padding: 0; border: 0; background: transparent; scroll-snap-align: start; isolation: isolate; }
.profile-photo-beach-group::before, .profile-photo-beach-group::after { position: absolute; inset: 7px -7px -7px 7px; z-index: -1; border: 1px solid var(--rfd-border-dbe3ec, #dbe3ec); border-radius: 14px; background: var(--rfd-surface-ffffff, #fff); content: ""; box-shadow: 0 3px 10px rgba(23,33,43,.1); }
.profile-photo-beach-group::after { inset: 14px -14px -14px 14px; z-index: -2; opacity: .78; }
.profile-photo-beach-heading { display: none; }
.profile-photo-grid { display: block; overflow: visible; padding: 0; scroll-snap-type: none; }
.profile-photo-grid:focus-visible { outline-offset: 5px; }
.profile-photo-card { display: none; width: 100%; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.7); box-shadow: 0 5px 16px rgba(23,33,43,.18); }
.profile-photo-card:first-child { display: block; }
.profile-photo-beach-link { padding: 2.2rem .7rem .65rem; font-size: .9rem; }
.profile-photo-beach-group .profile-gallery-load-more-photos { display: none !important; }
.profile-photo-groups > .profile-gallery-load-more-groups { width: clamp(150px, 38vw, 180px); min-height: 158px; flex: 0 0 clamp(150px, 38vw, 180px); margin: 0; border-style: dashed; scroll-snap-align: start; }
.profile-photo-lightbox-actions { display: flex; min-height: 44px; align-items: center; justify-content: center; gap: .65rem; margin-top: .7rem; }
.profile-photo-lightbox-actions .photo-heart-form, .profile-photo-lightbox-actions .photo-heart-count { position: static !important; inset: auto !important; margin: 0; }
.profile-photo-lightbox-actions .profile-photo-beach-link { position: static; padding: .55rem .75rem; border-radius: 99px; background: rgba(0,0,0,.68); }
.profile-photo-lightbox { background: rgba(0,0,0,.9); backdrop-filter: blur(2px); }
.profile-photo-lightbox .beach-photo-lightbox-content { display: grid; grid-template-columns: minmax(280px, 560px) minmax(145px, 190px); grid-template-rows: auto; width: min(820px, 100%); height: auto; gap: 18px; }
.profile-photo-lightbox .beach-photo-lightbox-frame { width: 100%; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 12px; background: #000; box-shadow: 0 12px 35px rgba(0,0,0,.45); }
.profile-photo-lightbox .beach-photo-lightbox-content img { width: 100%; height: 100%; max-width: none; max-height: none; border-radius: 0; object-fit: cover; }
.profile-photo-lightbox .profile-photo-lightbox-actions { min-height: 0; align-self: center; justify-content: flex-start; flex-wrap: wrap; margin: 0; }
.profile-photo-lightbox .profile-photo-lightbox-actions .profile-photo-beach-link { max-width: 100%; padding: .75rem 1rem; font-size: 1.05rem; line-height: 1.25; overflow-wrap: anywhere; }
.profile-photo-lightbox .profile-photo-lightbox-actions .photo-heart-button,
.profile-photo-lightbox .profile-photo-lightbox-actions .photo-heart-count { display: inline-flex; min-width: 48px; min-height: 48px; align-items: center; justify-content: center; gap: .35rem; padding: .4rem .55rem !important; border: 0; background: transparent !important; color: #fff !important; box-shadow: none; font-size: 1.1rem !important; }
.profile-photo-lightbox .profile-photo-lightbox-actions .photo-heart-button span,
.profile-photo-lightbox .profile-photo-lightbox-actions .photo-heart-count span { color: #ff2d55; }
.profile-photo-lightbox-dots { display: none; }
.profile-photo-lightbox-dot { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.35); cursor: pointer; }
.profile-photo-lightbox-dot.is-current { background: #fff; }
@media (max-width: 600px) {
  .profile-photo-groups { gap: 1rem; padding-right: 1rem; }
  .profile-photo-beach-group { width: min(62vw, 185px); flex-basis: min(62vw, 185px); }
  .profile-photo-groups > .profile-gallery-load-more-groups { width: min(55vw, 170px); flex-basis: min(55vw, 170px); }
  .profile-photo-lightbox { padding: max(54px, env(safe-area-inset-top)) 0 max(28px, env(safe-area-inset-bottom)); background: #000; }
  .profile-photo-lightbox .beach-photo-lightbox-content { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) auto auto; width: 100%; height: 100%; gap: 18px; }
  .profile-photo-lightbox .beach-photo-lightbox-frame { align-self: center; width: 100%; height: min(58vh, 520px); aspect-ratio: auto; border-radius: 0; box-shadow: none; }
  .profile-photo-lightbox .beach-photo-lightbox-content img { object-fit: contain; }
  .profile-photo-lightbox .beach-photo-counter { display: none; }
  .profile-photo-lightbox .profile-photo-lightbox-actions { grid-row: 3; justify-content: center; min-height: 50px; }
  .profile-photo-lightbox .profile-photo-lightbox-actions .profile-photo-beach-link { display: none; }
  .profile-photo-lightbox-dots { grid-row: 2; display: flex; min-height: 18px; align-items: center; justify-content: center; gap: 10px; }
  .profile-photo-lightbox .beach-photo-lightbox-nav { top: 50%; bottom: auto; width: 44px; height: 56px; transform: translateY(-50%); background: rgba(0,0,0,.3); }
  .profile-photo-lightbox .beach-photo-lightbox-previous { left: 0; }
  .profile-photo-lightbox .beach-photo-lightbox-next { right: 0; }
}
/* Public contributor attribution */
.report-profile-link { color: inherit; font-weight: 800; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.report-profile-link:hover { color: var(--rfd-text-0d6678, #0d6678); }
/* Contribution rank progress */
.profile-rank-progress { grid-column: 1 / -1; display: grid; gap: .55rem; padding: .9rem 1rem; border-radius: 12px; background: var(--rfd-surface-f3f8fa, #f3f8fa); }
.profile-rank-progress > div:first-child { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; }
.profile-rank-progress > div:first-child > * { min-width: 0; overflow-wrap: anywhere; }
.profile-rank-progress span { color: var(--rfd-text-64747c, #64747c); font-size: .85rem; text-align: right; }
.rank-progress-track { height: 9px; overflow: hidden; border-radius: 99px; background: var(--rfd-surface-d9e6ea, #d9e6ea); }
.rank-progress-track > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #1692a8, #e53b45); }
.profile-rank-complete { color: var(--rfd-text-8a4b00, #8a4b00); background: var(--rfd-surface-fff4d9, #fff4d9); }
/* Achievement badges */
.profile-achievements { grid-column: 1 / -1; }
.profile-achievements h2 { margin: 0 0 .75rem; }
.achievement-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .7rem; }
.achievement-badge { display: flex; align-items: center; gap: .75rem; padding: .8rem; border: 1px solid #e5d39d; border-radius: 12px; background: var(--rfd-surface-fff9e8, #fff9e8); }
.achievement-badge > span { font-size: 1.8rem; }
.achievement-badge-icon { width: 40px; height: 40px; flex: 0 0 40px; object-fit: contain; }
.achievement-badge div { display: grid; }
.achievement-badge, .achievement-badge div, .achievement-badge strong, .achievement-badge small { min-width: 0; overflow-wrap: anywhere; }
.achievement-badge small { color: var(--rfd-text-7b6732, #7b6732); }
.achievement-badge-locked { background: var(--rfd-surface-f5f7fa, #f5f7fa); border-color: var(--rfd-border-dbe3ec, #dbe3ec); }
.achievement-badge-locked > span, .achievement-badge-locked > .achievement-badge-icon { filter: grayscale(1); opacity: .6; }
.achievement-badge-locked small { color: var(--rfd-text-526276, #526276); }
.achievement-badge-locked progress { width: 100%; height: .45rem; accent-color: #c9282b; margin-top: .35rem; }
.achievement-badge[hidden] { display: none; }
.achievement-list-toggle { display: flex; width: 100%; min-height: 40px; margin: .8rem auto 0; align-items: center; justify-content: center; padding: .5rem .8rem; border: 1px solid #174f60; border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-174f60, #174f60); font: inherit; font-weight: 750; text-align: center; cursor: pointer; }
.achievement-list-toggle:hover { background: var(--rfd-surface-eef6f8, #eef6f8); }
.partner-visit-form { margin-top: .75rem; }
.partner-checkin-shortcut { display: flex; justify-content: space-between; align-items: center; width: 100%; margin: .75rem 0 1rem; padding: .85rem 1rem; border-radius: 11px; border: 1px solid #c9282b; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-a91f23, #a91f23); text-decoration: none; font-weight: 800; }
.partner-checkin-shortcut:hover { background: var(--rfd-surface-fff5f5, #fff5f5); }
.partner-checkin-intro { margin: .8rem 0 1.2rem; color: var(--rfd-text-526276, #526276); }
.partner-checkin-note { margin: .35rem 0 .85rem; color: var(--rfd-text-526276, #526276); font-size: .85rem; }
.reward-redemption-requests-title { display: flex; align-items: center; gap: 9px; white-space: nowrap; font-size: clamp(1.25rem, 5vw, 1.85rem); }
.reward-redemption-requests-title img { width: 38px; height: 38px; flex: 0 0 38px; object-fit: contain; }
.reward-redemption-requests-title .partner-visit-count { flex: 0 0 auto; }
.partner-visit-form button { width: 100%; min-height: 44px; }
.partner-visit-login { display: inline-block; margin-top: .75rem; color: var(--rfd-text-a91f23, #a91f23); font-weight: 700; }
.partner-visit-form button, .partner-visit-actions button { border: 0; border-radius: 9px; background: #c9282b; color: #fff; font: inherit; font-weight: 700; padding: .65rem .9rem; cursor: pointer; }
.partner-visit-request > div:first-child { display: grid; gap: 3px; }
.partner-visit-request > div:first-child > span { color: var(--rfd-text-526276, #526276); font-size: .9rem; }
.partner-visit-form button:disabled { opacity: .6; cursor: wait; }
.partner-visit-feedback { margin: .75rem 0; padding: .75rem 1rem; border-radius: 9px; border: 1px solid var(--rfd-border-dbe3ec, #dbe3ec); background: var(--rfd-surface-ffffff, #fff); }
.partner-visit-requests { margin: 0 0 2rem; padding: 1rem; border: 1px solid var(--rfd-border-dbe3ec, #dbe3ec); border-radius: 13px; background: var(--rfd-surface-ffffff, #fff); scroll-margin-top: 1rem; }
.partner-visit-requests h1 { margin: 0 0 .45rem; }
.partner-visit-count { display: inline-flex; align-items: center; justify-content: center; min-width: 1.6rem; height: 1.6rem; padding: 0 .35rem; border-radius: 999px; background: #c9282b; color: #fff; font-size: .85rem; vertical-align: middle; }
.partner-visit-request { display: flex; justify-content: space-between; align-items: center; gap: 1rem; border: 1px solid var(--rfd-border-dbe3ec, #dbe3ec); border-radius: 12px; padding: .9rem; margin: .7rem 0; background: var(--rfd-surface-ffffff, #fff); }
.partner-visit-request > div:first-child { display: grid; gap: .2rem; }
.partner-visit-request small { color: var(--rfd-text-526276, #526276); }
.partner-visit-actions { display: flex; gap: .5rem; }
.partner-visit-actions .partner-visit-reject { color: var(--rfd-text-a91f23, #a91f23); background: var(--rfd-surface-ffffff, #fff); border: 1px solid #c9282b; }
@media (max-width: 600px) { .partner-visit-request { align-items: stretch; flex-direction: column; } .partner-visit-actions form { flex: 1; } .partner-visit-actions button { width: 100%; } }
/* Lasting beach ratings and reviews */
.beach-reviews { margin: 1rem 0 1.5rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); }
.review-summary { font-size: 1.1rem; }
.beach-review-form { display: grid; gap: .6rem; max-width: 38rem; margin: 1rem 0; }
.beach-review-form select, .beach-review-form textarea { width: 100%; padding: .7rem; border: 1px solid var(--rfd-border-b7c9d3, #b7c9d3); border-radius: .5rem; font: inherit; }
.beach-review-form button { width: fit-content; }
.beach-review-delete { margin: .5rem 0 1.25rem; }
.beach-review-delete button { background: none; border: 0; color: var(--rfd-text-a52a2a, #a52a2a); text-decoration: underline; cursor: pointer; padding: 0; }
.beach-review-card { padding: 1rem 0; border-top: 1px solid var(--rfd-border-e4ecef, #e4ecef); }
.beach-review-heading { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.beach-review-card p { white-space: pre-wrap; overflow-wrap: anywhere; }
.beach-title-row { flex-wrap: wrap; }
.beach-title-rating { display: inline-flex; align-items: center; gap: .35rem; color: var(--rfd-text-34424d, #34424d); text-decoration: none; white-space: nowrap; }
.beach-title-rating:hover, .beach-title-rating:focus-visible { text-decoration: underline; }
.beach-title-rating small { font-size: .8rem; }
.beach-title-stars { display: inline-block; position: relative; color: #b8c0c5; font-size: 2em; font-weight: 700; letter-spacing: 1px; line-height: 1; white-space: nowrap; }
.beach-title-stars-filled { position: absolute; left: 0; top: 0; overflow: hidden; color: var(--rfd-text-d69300, #d69300); white-space: nowrap; }
.beach-title-stars-empty { color: #b8c0c5; }
.favorite-toggle-form { margin-left: 0; }
.favorite-toggle-button { font-size: 24px; color: var(--rfd-text-b7324b, #b7324b); }
.favorite-toggle-button.is-favorite { color: var(--rfd-text-b7193a, #b7193a); border-color: #e6aab7; background: var(--rfd-surface-fff0f3, #fff0f3); }
.beach-reviews summary { cursor: pointer; font-size: 1.25rem; font-weight: 700; }
.beach-reviews summary:hover { text-decoration: underline; }
.beach-reviews[open] summary { margin-bottom: 1rem; }
.beach-reviews-page { max-width: 850px; }
.my-beach-review { margin: 1.5rem 0 2rem; padding: 1.25rem; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 12px; }
.my-beach-review h2 { margin-top: 0; }
.review-filters { display: flex; align-items: end; gap: .7rem; flex-wrap: wrap; padding: 1rem 0; border-top: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); }
.review-filters label { font-weight: 700; }
.review-filters select, .review-filters button { padding: .55rem; font: inherit; }
.review-pagination { display: flex; justify-content: space-between; margin: 1.5rem 0; }
@media (max-width: 600px) { .review-filters { align-items: stretch; flex-direction: column; } .review-filters select, .review-filters button { width: 100%; } }
.beach-review-shortcuts { display: grid; gap: .85rem; }
.beach-review-shortcuts details { border: 1px solid var(--rfd-border-cfd7dd, #cfd7dd); border-radius: 12px; padding: .9rem 1rem; background: var(--rfd-surface-ffffff, #fff); box-shadow: 0 2px 8px rgba(0, 0, 0, .05); }
.beach-review-shortcuts details summary { display: flex; align-items: center; gap: 11px; list-style: none; font-size: 1rem; text-decoration: none; }
.beach-review-shortcuts details summary::-webkit-details-marker { display: none; }
.beach-review-shortcuts .review-summary-star { flex: 0 0 auto; color: var(--rfd-text-e7a500, #e7a500); font-size: 1.25rem; line-height: 1; }
.beach-review-shortcuts .review-summary-label { flex: 1 1 auto; }
.extended-forecast .review-summary-chevron { flex: 0 0 auto; width: 8px; height: 8px; margin-right: 4px; border-right: 2px solid #64747c; border-bottom: 2px solid #64747c; transform: rotate(45deg); transition: transform .15s ease; }
.extended-forecast[open] .review-summary-chevron { transform: rotate(225deg); }
.beach-review-shortcuts .review-summary-chevron-asset { flex: 0 0 auto; width: 24px; height: 24px; transform: rotate(90deg); transition: transform .15s ease; }
.beach-review-shortcuts details[open] .review-summary-chevron-asset { transform: rotate(-90deg); }
.beach-review-shortcuts details summary:hover { text-decoration: none; }
.beach-review-shortcuts .all-reviews-link { width: fit-content; }
.my-review-preview { white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 600px) {
    .beach-title-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: .75rem; row-gap: .4rem; align-items: center; margin-bottom: 1rem; }
    .beach-title-row h1 { grid-column: 1 / -1; font-size: clamp(1.65rem, 7vw, 2.1rem); line-height: 1.18; overflow-wrap: anywhere; }
    .beach-title-rating { grid-column: 1; min-width: 0; font-size: .95rem; }
    .favorite-toggle-form { grid-column: 2; grid-row: 2; margin-left: 0; justify-self: end; }
    .beach-reviews { margin-top: 1.25rem; }
    .beach-review-shortcuts details { padding: .8rem .9rem; }
}
.beach-review-shortcuts details[open] { padding: 1rem; }
.beach-review-shortcuts .beach-review-form { max-width: none; margin: 1.1rem 0 .6rem; gap: .65rem; }
.beach-review-shortcuts .beach-review-form label { font-weight: 600; }
.beach-review-shortcuts .beach-review-form select,
.beach-review-shortcuts .beach-review-form textarea { box-sizing: border-box; display: block; width: 100%; min-width: 0; border: 1px solid var(--rfd-border-bfd0df, #bfd0df); border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); font: inherit; }
.beach-review-shortcuts .beach-review-form textarea { resize: vertical; min-height: 6rem; }
.beach-review-shortcuts .beach-review-form button { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: .65rem 1rem; border: 0; border-radius: 9px; background: #c62828; color: white; font: inherit; font-weight: 700; cursor: pointer; }
.beach-review-shortcuts .beach-review-form button:hover { background: #a91e1e; }
.beach-review-shortcuts .beach-review-delete { margin: .45rem 0 0; }
.beach-review-shortcuts .beach-review-delete button { font: inherit; font-size: .9rem; }
.beach-page-body .nearby-button { margin-bottom: 16px; }
.beach-page-body .beach-review-shortcuts { margin: 0 0 1rem; padding-bottom: 0; border-bottom: 0; }
@media (max-width: 600px) {
    .beach-page-body #beach-live-page { box-sizing: border-box; width: 100%; padding: 16px; }
    .beach-page-body .small-header { padding: 12px 16px; gap: 8px; }
    .beach-page-body .beach-title-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 6px; margin-bottom: 14px; }
    .beach-page-body .beach-title-row.has-favorite { grid-template-columns: auto minmax(0, 1fr) auto; }
    .beach-page-body .beach-title-row h1 { grid-column: 1; grid-row: 1; min-width: 0; margin: 0; font-size: clamp(1.1rem, 5vw, 1.3rem); line-height: 1.15; overflow-wrap: normal; }
    .beach-page-body .beach-title-row.has-favorite h1 { grid-column: 2; }
    .beach-page-body .beach-title-rating { grid-column: 2; grid-row: 1; display: inline-flex; gap: 2px; font-size: .75rem; }
    .beach-page-body .beach-title-row.has-favorite .beach-title-rating { grid-column: 3; }
    .beach-page-body .beach-title-stars { font-size: clamp(1.1rem, 5vw, 1.3rem); font-weight: 700; letter-spacing: 0; }
    .beach-page-body .beach-title-rating strong { font-size: .75rem; }
    .beach-page-body .beach-title-rating small { font-size: .67rem; }
    .beach-page-body .favorite-toggle-form { grid-column: 1; grid-row: 1; margin: 0; }
    .beach-page-body .favorite-toggle-button { width: 34px; min-height: 34px; font-size: 21px; }
    .beach-page-body .beach-review-shortcuts { margin: 0 0 1rem; padding-bottom: 0; }
    .beach-page-body .beach-review-shortcuts details,
    .beach-page-body .beach-review-shortcuts details[open] { box-sizing: border-box; width: 100%; padding: .85rem; }
    .beach-page-body .beach-review-shortcuts .beach-review-form { gap: .75rem; }
    .beach-page-body .beach-review-shortcuts .beach-review-form button { width: 100%; }
}
.beach-checkin-card { box-sizing: border-box; margin: 0 0 16px; padding: 15px 16px; border: 1px solid var(--rfd-border-cfd7dd, #cfd7dd); border-radius: 12px; background: var(--rfd-surface-ffffff, #fff); box-shadow: 0 2px 8px rgba(0, 0, 0, .05); }
.beach-checkin-section { margin: 0 0 1.5rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); }
.beach-checkin-section .beach-checkin-card { margin-bottom: 0; }
.beach-checkin-heading { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; flex-wrap: wrap; }
.beach-checkin-heading strong { font-size: 1rem; }
.beach-checkin-heading span { color: var(--rfd-text-52616b, #52616b); font-size: .85rem; }
.beach-checkin-note { margin: .55rem 0 1rem; color: var(--rfd-text-52616b, #52616b); font-size: .86rem; }
.beach-checkin-form { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.beach-checkin-form label { display: inline-flex; align-items: center; gap: .4rem; flex: 1 1 200px; font-size: .9rem; }
.beach-checkin-form input { width: 18px; height: 18px; accent-color: #c62828; }
.beach-checkin-form button { min-height: 40px; padding: .6rem .9rem; border: 0; border-radius: 9px; background: #c62828; color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.beach-checkout-form { margin-top: .65rem; }
.beach-checkout-form button { padding: 0; border: 0; background: none; color: var(--rfd-text-9d2525, #9d2525); text-decoration: underline; cursor: pointer; font: inherit; }
.profile-checkins { grid-column: 1 / -1; }
.profile-checkins h2 { margin: 0 0 .75rem; }
.profile-checkins ul { display: grid; gap: .45rem; list-style: none; padding: 0; }
.profile-checkins li { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid var(--rfd-border-e4ecef, #e4ecef); }
.profile-checkins time { color: var(--rfd-text-52616b, #52616b); white-space: nowrap; }
.profile-checkins-empty p { margin-bottom: 0; color: var(--rfd-text-64747c, #64747c); }
@media (max-width: 600px) { .beach-checkin-form button { width: 100%; } }
.beach-checkin-error { margin: .5rem 0; padding: .65rem .8rem; border-radius: 8px; background: var(--rfd-surface-fff0f0, #fff0f0); color: var(--rfd-text-9b1c1c, #9b1c1c); font-size: .9rem; }
.beach-checkin-feedback { margin: .5rem 0 0; color: var(--rfd-text-52616b, #52616b); font-size: .85rem; }
.beach-checkin-feedback:empty { display: none; }
.beach-presence-state { margin: .55rem 0 0; color: var(--rfd-text-52616b, #52616b); font-size: .82rem; }
.beach-presence-state a { display: inline-flex; align-items: center; gap: .35rem; color: inherit; text-underline-offset: 2px; }
.beach-presence-state img { width: 18px; height: 18px; object-fit: contain; }
.beach-presence-state.is-visible { color: var(--rfd-text-287a54, #287a54); }
.beach-checkin-form button:disabled { opacity: .65; cursor: wait; }
.leaderboard-privacy-hint { margin: .25rem 0 0; color: var(--rfd-text-52616b, #52616b); font-size: .85rem; }
.leaderboard-page { max-width: 760px; }
.leaderboard-tabs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; margin: .9rem 0 1.25rem; }
.leaderboard-tabs a { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: .65rem .8rem; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 12px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); font-weight: 800; text-align: center; text-decoration: none; }
.leaderboard-tabs a[aria-current="page"] { border-color: #c62828; background: var(--rfd-surface-fff3f3, #fff3f3); color: var(--rfd-text-a91e1e, #a91e1e); }
.leaderboard-list { display: block; overflow: hidden; list-style: none; padding: .35rem 1rem; border-radius: 16px; background: var(--rfd-surface-ffffff, #fff); counter-reset: none; }
.leaderboard-list li { display: grid; grid-template-columns: 2.25rem 58px minmax(0, 1fr) auto; align-items: center; gap: .9rem; min-height: 84px; padding: .75rem 0; border: 0; border-bottom: 1px solid var(--rfd-border-e4ecef, #e4ecef); background: transparent; }
.leaderboard-list li:last-child { border-bottom: 0; }
.leaderboard-avatar { display: grid; width: 58px; height: 58px; place-items: center; overflow: hidden; border-radius: 50%; background: var(--rfd-surface-e8f0f4, #e8f0f4); font-weight: 900; }
.leaderboard-avatar img { width: 100%; height: 100%; object-fit: cover; }
.page-title-asset, .header-title-asset { display: inline-block; object-fit: contain; vertical-align: middle; }
.campaign-dashboard-page .admin-beach-heading h1 { display: flex; align-items: center; gap: 9px; white-space: nowrap; font-size: clamp(1.18rem, 5.6vw, 1.75rem); }
.campaign-dashboard-page .admin-beach-heading h1 .page-title-asset { flex: 0 0 auto; }
.featured-listing-admin .admin-beach-heading h1 { display: flex; align-items: center; gap: 9px; white-space: nowrap; font-size: clamp(1.12rem, 5.2vw, 1.75rem); }
.featured-listing-admin .admin-beach-heading h1 .page-title-asset { flex: 0 0 auto; }
.admin-review-queue-heading h1,
.admin-photo-title,
.admin-beach-management-page .admin-beach-heading h1 { display: flex; align-items: center; gap: 9px; white-space: nowrap; font-size: clamp(1.08rem, 5.2vw, 1.75rem); }
.admin-review-queue-heading h1 .page-title-asset,
.admin-photo-title .page-title-asset,
.admin-beach-management-page .admin-beach-heading h1 .page-title-asset { flex: 0 0 auto; }
.admin-beach-heading .admin-plain-title { white-space: nowrap; font-size: clamp(1.15rem, 5.7vw, 1.75rem); }

/* iOS-style Local Places coverage and OSM import controls. */
.local-place-coverage-panel { margin: 22px 0; color: var(--rfd-text-17212b, #17212b); }
.local-place-coverage-panel > h2 { margin: 0 0 18px; font-size: 1.25rem; }
.local-place-coverage-panel > h3 { margin: 22px 8px 8px; color: var(--rfd-text-72727a, #72727a); font-size: .95rem; }
.local-place-ios-card { overflow: hidden; border: 1px solid var(--rfd-border-e5e7ea, #e5e7ea); border-radius: 18px; background: var(--rfd-surface-ffffff, #fff); }
.local-place-coverage-overview { padding: 0 14px 14px; }
.local-place-coverage-overview > div { display: flex; min-height: 48px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--rfd-border-e5e7ea, #e5e7ea); }
.local-place-coverage-overview strong,
.local-place-import-status strong { color: var(--rfd-text-7c7d84, #7c7d84); font-weight: 500; }
.local-place-coverage-overview progress { width: 100%; height: 5px; margin-top: 16px; accent-color: #087cff; }
.local-place-import-status { display: flex; min-height: 52px; align-items: center; justify-content: space-between; padding: 0 14px; }
.local-place-coverage-details summary,
.local-place-region-details > summary { display: grid; min-height: 54px; align-items: center; cursor: pointer; list-style: none; }
.local-place-coverage-details summary::-webkit-details-marker,
.local-place-region-details > summary::-webkit-details-marker { display: none; }
.local-place-coverage-details > summary { grid-template-columns: 28px minmax(0,1fr) auto 18px; gap: 10px; padding: 0 14px; }
.local-place-coverage-details summary > strong { color: var(--rfd-text-7c7d84, #7c7d84); font-weight: 500; }
.local-place-coverage-details summary > b,
.local-place-region-details summary > b { color: var(--rfd-text-111111, #111); font-size: 24px; font-style: normal; font-weight: 400; transition: transform .15s ease; }
.local-place-coverage-details[open] > summary > b,
.local-place-region-details[open] > summary > b { transform: rotate(90deg); }
.local-place-details-body { padding: 10px 18px 18px; border-top: 1px solid var(--rfd-border-e5e7ea, #e5e7ea); }
.local-place-details-body h4 { display: flex; align-items: center; gap: 9px; margin: 18px 0 9px; }
.coverage-check { display: inline-grid; width: 18px; height: 18px; place-items: center; border-radius: 50%; background: var(--rfd-surface-c8c9cd, #c8c9cd); color: #fff; font-size: 12px; font-style: normal; }
.coverage-check.is-complete { background: #268138; }
.local-place-refresh-individuals,
.local-place-region-body .local-place-region-form { display: block; width: 100%; margin: 0; }
.local-place-refresh-individuals button,
.local-place-region-refresh { width: 100%; min-height: 42px; border: 0; border-radius: 999px; background: #087cff; color: #fff; font: inherit; cursor: pointer; }
.local-place-individual-list { display: grid; gap: 2px; }
.local-place-individual-row { display: grid; grid-template-columns: 20px minmax(0,1fr) 42px; min-height: 44px; align-items: center; gap: 10px; }
.local-place-individual-row .local-place-region-form { display: block; width: auto; margin: 0; }
.local-place-single-refresh { display: grid; width: 38px; height: 38px; place-items: center; border: 0; border-radius: 50%; background: var(--rfd-surface-eef0f3, #eef0f3); color: var(--rfd-text-087cff, #087cff); font-size: 25px; cursor: pointer; }
.local-place-last-import { margin: 18px 0 0; color: var(--rfd-text-7c7d84, #7c7d84); font-size: 12px; }
.local-place-last-import strong { color: var(--rfd-text-17212b, #17212b); }
.local-place-region-list { padding: 0 14px; }
.local-place-region-details + .local-place-region-details { border-top: 1px solid var(--rfd-border-e5e7ea, #e5e7ea); }
.local-place-region-details > summary { grid-template-columns: minmax(0,1fr) 20px 18px; gap: 8px; padding: 8px 0; }
.local-place-region-details summary > span { display: grid; gap: 2px; }
.local-place-region-details summary small { color: var(--rfd-text-7c7d84, #7c7d84); }
.local-place-region-body { padding: 0 0 14px; }
.local-place-region-sublist { margin-bottom: 12px; border-top: 1px solid var(--rfd-border-edf0f2, #edf0f2); }
.local-place-region-sublist > div { display: grid; grid-template-columns: minmax(0,1fr) auto 20px; align-items: center; gap: 8px; padding: 9px 4px; border-bottom: 1px solid var(--rfd-border-edf0f2, #edf0f2); }
.local-place-region-sublist small { color: var(--rfd-text-7c7d84, #7c7d84); font-size: 11px; }
.local-place-coverage-panel > .local-place-refresh-all-form { margin-top: 18px; }
.local-place-coverage-panel .local-place-refresh-all-button { background: #087cff; box-shadow: none; }
.local-place-coverage-panel .local-place-refresh-result { min-height: 0; margin-top: 10px; padding-top: 0; border-top: 0; }
@media (max-width: 560px) {
    .local-place-coverage-panel { margin-inline: -4px; }
    .local-place-ios-card { border-radius: 16px; }
    .local-place-region-sublist > div { grid-template-columns: minmax(0,1fr) 20px; }
    .local-place-region-sublist small { grid-column: 1; grid-row: 2; }
    .local-place-region-sublist .coverage-check { grid-column: 2; grid-row: 1 / span 2; }
}
.leaderboard-list li a { overflow-wrap: anywhere; color: var(--rfd-text-17212b, #17212b); font-weight: 700; }
.leaderboard-list li strong { color: var(--rfd-text-a91e1e, #a91e1e); font-size: 1.1rem; }
.leaderboard-position { color: var(--rfd-text-66727d, #66727d); font-weight: 800; }
.leaderboard-settings-link { margin: 1.25rem 0; }
.leaderboard-settings-link a { display: flex; align-items: center; justify-content: center; gap: .65rem; width: 100%; min-height: 54px; box-sizing: border-box; padding: .65rem 1rem; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 12px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); font-weight: 800; text-align: center; text-decoration: none; }
.leaderboard-settings-link a:hover, .leaderboard-settings-link a:focus-visible { border-color: #c62828; background: var(--rfd-surface-fffafa, #fffafa); }
@media (max-width: 600px) { .leaderboard-tabs a { font-size: .9rem; } .leaderboard-list { padding-inline: .8rem; } .leaderboard-list li { grid-template-columns: 1.7rem 50px minmax(0,1fr) auto; gap: .65rem; } .leaderboard-avatar { width: 50px; height: 50px; } }
.day-plan-add-link { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: .8rem 1rem; margin: .75rem 0; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 11px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); text-decoration: none; font-weight: 800; }
.day-plan-add-link:hover, .day-plan-place-link:hover { border-color: #c9282b; color: var(--rfd-text-a91f23, #a91f23); }
.day-plan-place-link, .day-plan-favorite-link { display: inline-flex; align-items: center; min-height: 40px; margin: .65rem 0; padding: .5rem .75rem; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); text-decoration: none; font-weight: 700; }
.day-planner-page { max-width: 1100px; padding-bottom: 3rem; }
.day-planner-heading { margin: 0 0 1rem; }
.day-planner-heading h1 { margin-bottom: .3rem; }
.day-planner-heading p, .day-plan-editor-heading p { color: var(--rfd-text-526276, #526276); }
.day-planner-layout { display: grid; grid-template-columns: minmax(230px, 300px) minmax(0, 1fr); gap: 1.1rem; align-items: start; }
.day-planner-sidebar { display: grid; gap: 1rem; }
.day-planner-panel, .day-planner-candidate { padding: 1.1rem; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 13px; background: var(--rfd-surface-ffffff, #fff); }
.day-planner-panel h2 { margin: 0 0 .8rem; }
.day-planner-candidate { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; margin-bottom: 1rem; }
.day-planner-candidate > span { color: var(--rfd-text-526276, #526276); }
.day-planner-candidate small { color: var(--rfd-text-526276, #526276); }
.day-planner-candidate form { margin-left: auto; }
.day-planner-candidate button, .day-plan-form button { min-height: 42px; border: 0; border-radius: 9px; background: #c9282b; color: #fff; font: inherit; font-weight: 800; padding: .6rem .9rem; cursor: pointer; }
.day-plan-list { display: grid; gap: .5rem; }
.day-plan-list a { display: grid; gap: .2rem; padding: .7rem; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 9px; text-decoration: none; color: var(--rfd-text-17212b, #17212b); }
.day-plan-list a[aria-current="page"] { border-color: #c9282b; background: var(--rfd-surface-fff5f5, #fff5f5); }
.day-plan-list small { color: var(--rfd-text-526276, #526276); }
.day-plan-form { display: grid; gap: .8rem; }
.day-plan-form label { display: grid; gap: .3rem; font-weight: 700; }
.day-plan-form input { width: 100%; min-height: 42px; padding: .55rem .7rem; border: 1px solid var(--rfd-border-b8c9d5, #b8c9d5); border-radius: 8px; font: inherit; }
.day-plan-editor-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.day-plan-editor-heading h2 { margin: 0; }
.day-plan-editor-heading p { margin: .2rem 0; }
.day-plan-editor-heading > span { white-space: nowrap; color: var(--rfd-text-526276, #526276); }
.day-plan-edit-details { margin: 1rem 0; }
.day-plan-edit-details summary { cursor: pointer; color: var(--rfd-text-a91f23, #a91f23); font-weight: 700; }
.day-plan-edit-details form { max-width: 420px; margin-top: .8rem; }
.day-plan-stops { display: grid; gap: .6rem; list-style: none; padding: 0; counter-reset: none; }
.day-plan-stop { display: flex; align-items: center; gap: .8rem; padding: .8rem; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 10px; }
.day-plan-stop-number { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; flex: 0 0 2rem; border-radius: 50%; background: var(--rfd-surface-fff5e1, #fff5e1); color: var(--rfd-text-8a5a00, #8a5a00); font-weight: 900; }
.day-plan-stop-main { display: grid; gap: .15rem; min-width: 0; flex: 1; }
.day-plan-stop-main strong { overflow-wrap: anywhere; }
.day-plan-stop-main a { color: var(--rfd-text-17212b, #17212b); }
.day-plan-stop-main small { color: var(--rfd-text-526276, #526276); }
.day-plan-stop-actions { display: flex; gap: .3rem; }
.day-plan-stop-actions button { width: 2.2rem; height: 2.2rem; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 8px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); font-size: 1.15rem; cursor: pointer; }
.day-plan-stop-actions button:disabled { opacity: .35; cursor: default; }
.day-plan-drag-handle { touch-action: none; user-select: none; cursor: grab !important; font-weight: 900; }
.day-plan-drag-handle:active { cursor: grabbing !important; }
.is-reordering-day-plan { cursor: grabbing; user-select: none; }
.day-plan-stop.is-dragging { border-color: #c9282b; background: var(--rfd-surface-fff8f8, #fff8f8); box-shadow: 0 7px 18px rgba(23, 33, 43, .13); opacity: .92; }
.day-plan-order-status { min-height: 1.25rem; margin: .35rem 0 0; color: var(--rfd-text-526276, #526276); font-size: .8rem; }
.day-plan-empty, .day-planner-notice { padding: .8rem; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 9px; background: var(--rfd-surface-f8fbfd, #f8fbfd); }
.day-plan-browse { display: grid; gap: .7rem; margin: 1.2rem 0 .7rem; }
.day-plan-browse a { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 52px; box-sizing: border-box; padding: .65rem 1rem; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 10px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); font-weight: 800; text-decoration: none; }
.day-plan-browse a:hover, .day-plan-browse a:focus-visible { border-color: #c9282b; background: var(--rfd-surface-fffafa, #fffafa); }
.day-plan-delete { padding-top: 0; }
.day-plan-delete button { width: 100%; min-height: 52px; padding: .65rem 1rem; border: 1px solid #c9282b; border-radius: 10px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-a91f23, #a91f23); font: inherit; font-weight: 800; text-decoration: none; cursor: pointer; }
.day-plan-delete button:hover, .day-plan-delete button:focus-visible { background: var(--rfd-surface-fff5f5, #fff5f5); }
@media (max-width: 720px) { .day-planner-layout { grid-template-columns: minmax(0, 1fr); } .day-planner-candidate { align-items: flex-start; flex-direction: column; } .day-planner-candidate form { margin-left: 0; width: 100%; } .day-planner-candidate button { width: 100%; } .day-plan-stop { gap: .5rem; } }
.beach-plan-button { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 40px; padding: .55rem .75rem; border: 1px solid var(--rfd-border-ccd3d8, #ccd3d8); border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-526579, #526579); text-decoration: none; font-size: .85rem; font-weight: 700; }
.beach-plan-button:hover { border-color: #c9282b; color: var(--rfd-text-a91f23, #a91f23); background: var(--rfd-surface-fffafa, #fffafa); }
.day-plan-picker { width: min(420px, calc(100vw - 2rem)); max-height: min(80vh, 650px); padding: 1.4rem; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 15px; box-shadow: 0 18px 60px #17212b40; color: var(--rfd-text-17212b, #17212b); }
.day-plan-picker::backdrop { background: #17212b80; }
.day-plan-picker h2 { margin: 0 2rem .25rem 0; }
.day-plan-picker-target { margin: 0 0 .8rem; color: var(--rfd-text-526276, #526276); }
.day-plan-picker-close { position: absolute; right: .8rem; top: .65rem; width: 2.2rem; height: 2.2rem; border: 0; border-radius: 8px; background: transparent; color: var(--rfd-text-526276, #526276); font-size: 1.6rem; cursor: pointer; }
.day-plan-picker-status { min-height: 1.4rem; color: var(--rfd-text-526276, #526276); }
.day-plan-picker-list { display: grid; gap: .55rem; margin: .5rem 0 1rem; }
.day-plan-picker-option { display: flex; justify-content: space-between; align-items: center; gap: .7rem; width: 100%; min-height: 50px; padding: .7rem; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); text-align: left; font: inherit; cursor: pointer; }
.day-plan-picker-option:hover { border-color: #c9282b; background: var(--rfd-surface-fffafa, #fffafa); }
.day-plan-picker-option:disabled { opacity: .55; cursor: wait; }
.day-plan-picker-option strong { overflow-wrap: anywhere; }
.day-plan-picker-option small { color: var(--rfd-text-526276, #526276); white-space: nowrap; }
.day-plan-picker-manage { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .65rem 1rem; border: 1px solid currentColor; border-radius: 10px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-a91f23, #a91f23); font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; }
.day-plan-picker-create { margin: .6rem 0 1rem; border-top: 1px solid var(--rfd-border-e4ecef, #e4ecef); padding-top: .8rem; }
.day-plan-picker-create summary { cursor: pointer; color: var(--rfd-text-a91f23, #a91f23); font-weight: 800; }
.day-plan-picker-create form { display: grid; gap: .7rem; margin-top: .8rem; }
.day-plan-picker-create label { display: grid; gap: .25rem; font-weight: 700; }
.day-plan-picker-create input { width: 100%; min-height: 42px; padding: .55rem .7rem; border: 1px solid var(--rfd-border-b8c9d5, #b8c9d5); border-radius: 8px; font: inherit; }
.day-plan-picker-create button { min-height: 42px; border: 0; border-radius: 9px; background: #c9282b; color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.day-plan-directions { display: inline-flex; align-items: center; width: fit-content; min-height: 36px; margin-top: .4rem; padding: .35rem .55rem; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 8px; color: var(--rfd-text-a91f23, #a91f23); text-decoration: none; font-size: .85rem; font-weight: 800; }
.day-plan-directions:hover { border-color: #c9282b; background: var(--rfd-surface-fffafa, #fffafa); }
.leaflet-tooltip.report-flag-tooltip {
    width: 0;
    height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
    pointer-events: none;
}

.leaflet-tooltip.report-flag-tooltip::before { display: none; }
.leaflet-tooltip.report-flag-tooltip .flag-icon {
    position: absolute;
    top: var(--map-flag-top, -29px);
    left: var(--map-flag-left, 4px);
    width: var(--map-flag-cloth-width, 18px);
    height: var(--map-flag-cloth-height, 11px);
    margin: 0;
    background: currentColor;
    box-shadow: none;
    transform: none;
}
.leaflet-tooltip.report-flag-tooltip .flag-icon::before {
    top: var(--map-flag-pole-top, -1px);
    left: var(--map-flag-pole-left, -4px);
    width: var(--map-flag-pole-width, 2px);
    height: var(--map-flag-height, 30px);
    background: var(--rfd-surface-ffffff, #fff);
    box-shadow: 0 0 1px rgba(0, 0, 0, .55);
}
.leaflet-tooltip.report-flag-tooltip.good { color: var(--rfd-text-2e7d32, #2e7d32); }
.leaflet-tooltip.report-flag-tooltip.caution { color: var(--rfd-text-bf8100, #bf8100); }
.leaflet-tooltip.report-flag-tooltip.marine_hazard { color: var(--rfd-text-7b1fa2, #7b1fa2); }
.leaflet-tooltip.report-flag-tooltip.avoid_swimming { color: var(--rfd-text-c62828, #c62828); }
.leaflet-tooltip.report-flag-tooltip.unknown { color: var(--rfd-text-707986, #707986); }

.map-forecast-guidance {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--rfd-border-dce3eb, #dce3eb);
    line-height: 1.5;
}
.map-condition-legend {
    margin: 10px 12px 12px;
    border: 1px solid var(--rfd-border-dce3eb, #dce3eb);
    border-radius: 10px;
    background: var(--rfd-surface-ffffff, #fff);
    color: var(--rfd-text-334155, #334155);
    font-size: 0.78rem;
}

.map-condition-legend summary {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    padding: 0 12px;
    cursor: pointer;
    list-style: none;
}

.map-condition-legend summary::-webkit-details-marker { display: none; }
.beach-status-cluster-wrapper { background: transparent; border: 0; }
.beach-status-cluster { position: relative; display: grid; place-items: center; width: 42px; height: 42px; border: 3px solid #fff; border-radius: 50%; background: var(--cluster-color, #718096); color: var(--cluster-text, #fff); box-shadow: 0 2px 7px rgba(15, 35, 55, .35); font-size: 14px; font-weight: 900; line-height: 1; }
.cluster-report-flag {
    position: absolute;
    top: -15px;
    left: 25px;
    width: 16px;
    height: 10px;
    border-radius: 1px 3px 3px 1px;
    background: var(--cluster-report-color, #707986);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .18);
}
.cluster-report-flag::before {
    position: absolute;
    top: -1px;
    left: -4px;
    width: 2px;
    height: 27px;
    border-radius: 1px;
    background: var(--rfd-surface-ffffff, #fff);
    box-shadow: 0 0 1px rgba(0, 0, 0, .55);
    content: "";
}
.map-legend-dots { display: inline-flex; align-items: center; gap: 3px; }
.map-legend-title { flex: 1; font-weight: 700; }
.map-legend-title small { color: var(--rfd-text-687789, #687789); font-size: .9em; font-weight: 500; }
.map-key-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; }
.map-key-dot.good { background: #2e7d32; }
.map-key-dot.caution { background: #f9a825; }
.map-key-dot.avoid_swimming { background: #c62828; }
.map-key-dot.marine_hazard { background: #7b1fa2; }
.map-key-dot.unknown { background: #9e9e9e; }
.map-key-flag { width: 14px; height: 9px; flex: 0 0 auto; margin: 0 2px 0 4px; background: #64748b; box-shadow: none; }
.map-key-flag::before { top: -1px; left: -3px; height: 17px; background: #334155; }
.map-legend-chevron { width: 7px; height: 7px; border-right: 2px solid #64748b; border-bottom: 2px solid #64748b; transform: rotate(45deg); transition: transform .15s ease; }
.map-condition-legend[open] .map-legend-chevron { transform: rotate(225deg); }
.map-legend-content { padding: 0 12px 11px; border-top: 1px solid var(--rfd-border-edf1f5, #edf1f5); }
.map-legend-items { display: flex; flex-wrap: wrap; gap: 8px 16px; padding-top: 10px; }
.map-legend-items > span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.map-legend-content p { margin: 10px 0 0; color: var(--rfd-text-687789, #687789); font-size: .73rem; line-height: 1.35; }

@media (max-width: 600px) {
    .map-legend-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 8px; }
    .map-key-calm { grid-column: 1; grid-row: 1; }
    .map-key-caution { grid-column: 1; grid-row: 2; }
    .map-key-rough { grid-column: 1; grid-row: 3; }
    .map-key-marine { grid-column: 2; grid-row: 1; }
    .map-key-unknown { grid-column: 2; grid-row: 2; }
    .map-key-report { grid-column: 2; grid-row: 3; }
}

.beach-card-statuses .status.estimated {
    max-width: 100%;
    flex-wrap: nowrap;
    white-space: nowrap;
}

.status.estimated small {
    align-self: center;
    font-size: 0.9em;
    font-weight: 400;
    line-height: 1.2;
}

@media (max-width: 600px) {
    .beach-card .status.estimated small { font-size: 11px; }
}

.estimated-status-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex: 0 0 auto;
    background: #9e9e9e;
}

.status.good .estimated-status-dot,
.estimated-status-dot.good { background: #2e7d32; }
.status.caution .estimated-status-dot,
.estimated-status-dot.caution { background: #f9a825; }
.status.avoid_swimming .estimated-status-dot,
.estimated-status-dot.avoid_swimming { background: #c62828; }

.big-status.estimated {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.beach-estimate-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.beach-estimate-label .estimated-status-dot {
    width: 18px;
    height: 18px;
}

.beach-estimate-unverified {
    font-size: 14px;
    font-weight: 700;
}

.beach-estimate-guidance {
    margin-top: 4px;
    color: var(--rfd-text-526171, #526171);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
}

.beach-data-freshness { color: var(--rfd-text-526171, #526171); font-size: 12px; font-weight: 500; line-height: 1.4; }
.weather-freshness { margin-left: auto; color: inherit; font: inherit; line-height: inherit; text-align: right; white-space: nowrap; }

.beach-directions-link { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: .8rem 1rem; margin: .75rem 0; border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9); border-radius: 11px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); text-decoration: none; font-weight: 800; }
.beach-directions-link:hover { border-color: #c9282b; color: var(--rfd-text-a91f23, #a91f23); }
.beach-direction-label { display: inline-flex; align-items: center; gap: 11px; }
.beach-presence-option span { display: grid; gap: .2rem; }
.beach-presence-option small { color: var(--rfd-text-64747c, #64747c); font-size: .78rem; font-weight: 400; line-height: 1.35; }
.beach-presence-options { flex: 1 1 220px; }
.beach-presence-options summary { color: var(--rfd-text-52616b, #52616b); cursor: pointer; font-size: .85rem; font-weight: 700; }
.beach-presence-options[open] .beach-presence-option { margin-top: .55rem; }
.beach-checkin-card.is-empty { padding-top: 12px; padding-bottom: 12px; }
.beach-checkin-card.is-empty .beach-checkin-note { margin: .35rem 0 .65rem; }
.empty-report-link { display: block; width: fit-content; margin: .75rem auto 0; color: var(--rfd-text-a91f23, #a91f23); font-weight: 700; }
.beach-reports-empty { display: grid; gap: .3rem; padding: 16px; }
.beach-reports-empty .empty-report-link { margin-top: .4rem; }
.checkin-presence-settings { margin-top: 1rem; }
.account-settings-card .profile-privacy-settings .settings-checkbox-with-help { align-items: flex-start; }
.account-settings-card .profile-privacy-settings .settings-checkbox-with-help > input { margin-top: .1rem; }
.settings-checkbox-with-help span { display: grid; gap: .2rem; }
.settings-checkbox-with-help small { color: var(--rfd-text-64747c, #64747c); font-weight: 400; line-height: 1.4; }

/* Consistent compact action stack on beach details. */
.beach-action-stack { display: grid; gap: 6px; margin: 10px 0 6px; }
.beach-page-body .report-button,
.beach-page-body .beach-directions-link,
.beach-page-body .nearby-button,
.beach-page-body .day-plan-add-link,
.beach-page-body .beach-review-shortcuts details:not([open]) {
    box-sizing: border-box;
    min-height: 46px;
    margin: 0;
    padding: 10px 14px;
    border-radius: 11px;
}
.beach-page-body .beach-review-shortcuts { margin: 0; }
.beach-page-body .beach-review-shortcuts details:not([open]) summary { min-height: 24px; }
.beach-page-body .beach-directions-link,
.beach-page-body .nearby-button,
.beach-page-body .day-plan-add-link { background: var(--rfd-surface-ffffff, #fff); }

/* Saved Beaches map overlay */
.beach-map-shell {
    position: relative;
}

.map-saved-beach-filter {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 1000;
    width: 44px;
    height: 44px;
    border-color: rgba(255, 255, 255, .72);
    border-radius: 12px;
    background: rgba(255, 255, 255, .58);
    box-shadow: 0 3px 12px rgba(20, 32, 46, .18);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
}

.map-saved-beach-filter:hover {
    background: rgba(255, 255, 255, .78);
}

.map-saved-beach-filter[aria-pressed="true"] {
    border-color: rgba(198, 40, 40, .55);
    background: rgba(255, 235, 239, .82);
}

/* Saved Beaches card actions */
.favorite-beach-card {
    position: relative;
}

.favorite-card-details {
    padding-right: 48px;
}

.favorite-remove-form {
    position: absolute;
    top: 12px;
    right: 12px;
    margin: 0;
}

.favorite-remove-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    min-height: 40px;
    padding: 0;
    border-color: transparent;
    border-radius: 50%;
    background: transparent;
}

.favorite-remove-button:hover {
    border-color: #f0bcc5;
    background: var(--rfd-surface-fff1f3, #fff1f3);
}

.favorite-beach-card .day-plan-favorite-link {
    display: flex;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    margin: 14px 0 0;
}

/* Active Red Flaggers on beach cards */
.beach-card-checkins {
    display: inline-flex;
    align-items: center;
    margin-left: auto;
    gap: 4px;
    padding: 5px 9px;
    border: 1px solid #f0c7cc;
    border-radius: 9px;
    background: var(--rfd-surface-fff5f6, #fff5f6);
    color: var(--rfd-text-8f1f2b, #8f1f2b);
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.beach-card-checkins strong {
    font-size: 13px;
}

/* Checked-in Red Flagger directory */
.beach-whos-here-link {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-height: 40px;
    margin-top: .8rem;
    padding: .55rem .85rem;
    border: 1px solid var(--rfd-border-d8a8ae, #d8a8ae);
    border-radius: 9px;
    background: var(--rfd-surface-fff7f8, #fff7f8);
    color: var(--rfd-text-9f202c, #9f202c);
    font-weight: 800;
    text-decoration: none;
}

.beach-whos-here-link span:last-child {
    margin-left: auto;
}

.beach-red-flaggers-page > p {
    color: var(--rfd-text-52616b, #52616b);
    line-height: 1.4;
}

.beach-red-flaggers-list {
    display: grid;
    gap: .75rem;
    margin: 1rem 0;
    padding: 0;
    list-style: none;
}

.beach-red-flaggers-list li {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .9rem;
    border: 1px solid var(--rfd-border-e3e8ec, #e3e8ec);
    border-radius: 12px;
    background: var(--rfd-surface-ffffff, #fff);
    box-shadow: 0 2px 8px rgba(23, 33, 43, .06);
}

.beach-red-flaggers-list .profile-avatar {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    font-size: .9rem;
}

.beach-red-flaggers-list a {
    color: var(--rfd-text-17212b, #17212b);
    font-weight: 700;
}

.red-flagger-card-identity {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: .65rem;
}

.red-flagger-status-form,
.saved-red-flagger-actions {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.red-flagger-status-form {
    margin-left: auto;
}

.red-flagger-status-form label {
    flex: 0 0 auto;
    font-size: .9rem;
}

.red-flagger-status-form select,
.red-flagger-status-form button,
.saved-red-flagger-actions button {
    min-height: 38px;
    border-radius: 9px;
}

.red-flagger-status-form select {
    min-width: 132px;
}

.red-flagger-status-form select:has(option[value="red"]:checked),
.red-flagger-status-form option[value="red"] {
    color: var(--rfd-text-c9252d, #c9252d);
}

.red-flagger-status-form select:has(option[value="green"]:checked),
.red-flagger-status-form option[value="green"] {
    color: var(--rfd-text-168447, #168447);
}

.red-flagger-status-form button.saved {
    border-color: #168447;
    color: #fff;
    background: #168447;
}

.saved-red-flagger-filters {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .35rem 0 1rem;
    overflow-x: auto;
    scrollbar-width: thin;
}

.saved-red-flagger-filters > a:first-child {
    display: inline-grid;
    width: 48px;
    height: 48px;
    box-sizing: border-box;
    padding: 0;
    place-items: center;
    line-height: 1;
}

.saved-red-flagger-filters a {
    flex: 0 0 auto;
    padding: .55rem .75rem;
    border: 1px solid var(--rfd-border-d7dfe5, #d7dfe5);
    border-radius: 999px;
    color: var(--rfd-text-17212b, #17212b);
    background: var(--rfd-surface-ffffff, #fff);
    font-weight: 700;
    text-decoration: none;
}

.saved-red-flagger-filters a img {
    width: 20px;
    height: 20px;
    object-fit: contain;
    vertical-align: middle;
}

.saved-red-flagger-filters a.flag-filter {
    display: inline-grid;
    width: 48px;
    height: 48px;
    padding: 7px;
    place-items: center;
}

.saved-red-flagger-filters a.flag-filter img {
    width: 32px;
    height: 32px;
}

.saved-red-flagger-filters a.flag-filter[aria-current="page"] {
    border-color: #17212b;
    background: var(--rfd-surface-edf2f5, #edf2f5);
    box-shadow: inset 0 0 0 2px rgba(23, 33, 43, .12);
}

.saved-red-flagger-filters a.flag-filter-red[aria-current="page"] { border-color: #d6272a; background: var(--rfd-surface-fff0f1, #fff0f1); }
.saved-red-flagger-filters a.flag-filter-green[aria-current="page"] { border-color: #168447; background: var(--rfd-surface-eef9f2, #eef9f2); }
.saved-red-flagger-filters a.flag-filter-white[aria-current="page"] { border-color: #84919b; background: var(--rfd-surface-f4f6f7, #f4f6f7); }
.saved-red-flagger-filters a.flag-filter-black[aria-current="page"] { border-color: #111; background: var(--rfd-surface-e8eaec, #e8eaec); }
.saved-red-flagger-filters a.flag-filter-yellow[aria-current="page"] { border-color: #e4a400; background: var(--rfd-surface-fff8dc, #fff8dc); }

.saved-red-flagger-alphabet {
    display: flex;
    position: fixed;
    z-index: 25;
    top: 50%;
    right: max(.15rem, calc((100vw - 690px) / 2 + .15rem));
    flex-direction: column;
    gap: 0;
    max-height: calc(100vh - 120px);
    margin: 0;
    padding: .15rem 0;
    overflow: hidden;
    touch-action: none;
    user-select: none;
    transform: translateY(-50%);
}

.saved-red-flagger-alphabet button {
    display: inline-grid;
    width: 18px;
    height: min(19px, calc((100vh - 130px) / 27));
    min-width: 18px;
    min-height: 13px;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 999px;
    color: #1680d4;
    background: transparent;
    font: inherit;
    font-size: .62rem;
    line-height: 1;
    font-weight: 800;
    cursor: pointer;
}

.saved-red-flagger-alphabet button:hover:not(:disabled),
.saved-red-flagger-alphabet button:focus-visible,
.saved-red-flagger-alphabet button.is-active {
    color: #fff;
    background: #1680d4;
}

.saved-red-flagger-alphabet button:disabled {
    color: var(--rfd-text-66727d, #66727d);
    opacity: .42;
    cursor: default;
}

.red-flagger-key {
    margin: .8rem 0 1rem;
    border: 1px solid var(--rfd-border-d7dfe5, #d7dfe5);
    border-radius: 12px;
    background: var(--rfd-surface-ffffff, #fff);
    box-shadow: 0 2px 8px rgba(23, 33, 43, .05);
}

.red-flagger-key summary {
    display: flex;
    align-items: center;
    gap: .35rem;
    padding: .8rem .9rem;
    cursor: pointer;
    color: var(--rfd-text-17212b, #17212b);
    font-weight: 700;
    list-style: none;
}

.red-flagger-key summary::-webkit-details-marker { display: none; }
.red-flagger-key summary .rfd-chevron { width: 24px; height: 24px; flex-basis: 24px; }
.red-flagger-key[open] summary .rfd-chevron { transform: rotate(90deg); }

.red-flagger-key-grid {
    display: grid;
    gap: .7rem;
    padding: 0 .9rem .9rem;
}

.red-flagger-key-item {
    display: grid;
    grid-template-columns: 34px 1fr;
    align-items: start;
    gap: .65rem;
}

.red-flagger-key-item img {
    width: 34px;
    height: 34px;
    object-fit: contain;
}

.red-flagger-key-item strong,
.red-flagger-key-item span {
    display: block;
}

.red-flagger-key-item span {
    margin-top: .1rem;
    color: var(--rfd-text-52616b, #52616b);
    font-size: .88rem;
    line-height: 1.35;
}

.red-flagger-quick-form {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-left: 0;
}

.red-flagger-control-row {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-left: auto;
}

.red-flagger-status-label {
    flex: 0 0 auto;
    font-size: .9rem;
}

.red-flagger-quick-buttons {
    display: flex;
    gap: .35rem;
}

.flag-choice {
    display: inline-grid;
    width: 42px;
    height: 42px;
    min-width: 42px;
    padding: 5px;
    place-items: center;
    border: 2px solid var(--rfd-border-d7dfe5, #d7dfe5);
    border-radius: 10px;
    background: var(--rfd-surface-ffffff, #fff);
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, transform .15s ease;
}

.flag-choice:hover {
    transform: translateY(-1px);
    border-color: #8b99a5;
}

.flag-choice img {
    width: 29px;
    height: 29px;
    object-fit: contain;
}

.flag-choice.selected {
    border-color: #17212b;
    background: var(--rfd-surface-edf2f5, #edf2f5);
    box-shadow: 0 0 0 2px rgba(23, 33, 43, .12);
}

.flag-choice-red.selected { border-color: #d6272a; background: var(--rfd-surface-fff0f1, #fff0f1); }
.flag-choice-green.selected { border-color: #168447; background: var(--rfd-surface-eef9f2, #eef9f2); }
.flag-choice-white.selected { border-color: #84919b; background: var(--rfd-surface-f4f6f7, #f4f6f7); }
.flag-choice-black.selected { border-color: #111; background: var(--rfd-surface-e8eaec, #e8eaec); }

.flag-save-button {
    display: inline-grid;
    place-items: center;
    min-height: 40px;
    padding: .45rem .7rem;
    border: 1px solid var(--rfd-border-aab4bc, #aab4bc);
    border-radius: 9px;
    color: var(--rfd-text-17212b, #17212b);
    background: var(--rfd-surface-ffffff, #fff);
    font-weight: 700;
    cursor: pointer;
}

.flag-save-button.saved {
    border-color: #168447;
    color: #fff;
    background: #168447;
}

.saved-red-flagger-filters a[aria-current="page"] {
    border-color: #d6272a;
    color: #fff;
    background: #d6272a;
}

.saved-red-flagger-list {
    display: grid;
    gap: .75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.saved-red-flagger-card {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    padding: .55rem .65rem;
    border: 1px solid var(--rfd-border-e3e8ec, #e3e8ec);
    border-radius: 12px;
    background: var(--rfd-surface-ffffff, #fff);
    box-shadow: 0 2px 8px rgba(23, 33, 43, .06);
}

.saved-red-flagger-card.mutual-green {
    border: 2px solid #168447;
    background: var(--rfd-surface-eef9f2, #eef9f2);
    box-shadow: 0 3px 12px rgba(22, 132, 71, .16);
}

.saved-red-flagger-card.pending-green {
    border-color: transparent;
    background: var(--rfd-surface-eef9f2, #eef9f2);
}

.saved-red-flagger-card.status-red { background: var(--rfd-surface-fff0f1, #fff0f1); }
.saved-red-flagger-card.status-green { background: var(--rfd-surface-eef9f2, #eef9f2); }
.saved-red-flagger-card.status-white { background: var(--rfd-surface-f4f6f7, #f4f6f7); }
.saved-red-flagger-card.status-black { background: var(--rfd-surface-e8eaec, #e8eaec); }
.saved-red-flagger-card.status-green.mutual-green { background: var(--rfd-surface-eef9f2, #eef9f2); }

.green-friend-requests { margin-bottom: 1rem; }
.green-friend-requests h2 { margin: 0 0 .6rem; font-size: 1.05rem; }
.green-friend-request-row { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: .75rem; }
.green-friend-request-row span { color: var(--rfd-text-176b3a, #176b3a); font-size: .9rem; font-weight: 700; }
.green-friend-request-row button { min-height: 38px; padding: .45rem .8rem; border: 1px solid #168447; border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-168447, #168447); font-weight: 800; cursor: pointer; }
.friend-request-accept { margin-left: auto; }
.archived-card-restore { margin-left: auto; }
.friend-request-accept button { min-height: 38px; padding: .45rem .8rem; border: 2px solid #168447; border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-168447, #168447); font-weight: 800; cursor: pointer; }

.saved-red-flagger-card .profile-avatar {
    box-sizing: border-box;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    font-size: 1.15rem;
    line-height: 1;
}

.saved-red-flagger-card .red-flagger-card-identity {
    width: 100%;
    gap: .5rem;
}

.saved-red-flagger-card .red-flagger-card-identity > a:not(.chat-link-button),
.saved-red-flagger-card .red-flagger-card-identity > strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.saved-red-flagger-toggle {
    display: inline-grid;
    width: 42px;
    height: 42px;
    min-width: 42px;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 50%;
    color: var(--rfd-text-17212b, #17212b);
    background: transparent;
    margin-left: auto;
    cursor: pointer;
}

.saved-red-flagger-toggle:hover,
.saved-red-flagger-toggle:focus-visible {
    color: var(--rfd-text-17212b, #17212b);
    background: transparent;
}

.saved-red-flagger-toggle:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.chat-link-button + .saved-red-flagger-toggle { margin-left: 0; }

.saved-red-flagger-toggle span {
    display: block;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    color: var(--rfd-text-17212b, #17212b);
    transition: transform .18s ease;
}

.saved-red-flagger-toggle[aria-expanded="true"] span {
    transform: rotate(90deg);
}

.saved-red-flagger-details {
    display: grid;
    width: 100%;
    gap: .65rem;
    padding-top: .65rem;
    border-top: 1px solid var(--rfd-border-d7dfe5, #d7dfe5);
}

.saved-red-flagger-details[hidden] { display: none; }
.friend-request-copy { display: grid; gap: 2px; min-width: 0; }
.friend-request-copy small { color: var(--rfd-text-66727d, #66727d); line-height: 1.25; }

.lifeguard-status-grid label > span {
    display: grid;
    grid-template-rows: 30px auto;
    align-content: center;
    justify-items: center;
    height: 78px;
    min-height: 78px;
    box-sizing: border-box;
}
.lifeguard-status-grid label > span > :first-child { align-self: center; }
.lifeguard-status-grid strong { align-self: start; }
.photo-upload .report-photo-heading { display: flex; align-items: center; gap: 8px; }
.photo-upload .localized-file-button { display: flex; align-items: center; justify-content: center; gap: 7px; margin-bottom: 0; background: var(--rfd-surface-ffffff, #fff); }
.photo-upload .photo-source-options { margin-bottom: 12px !important; }
.password-toggle { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.password-security-help { margin: 12px 0 0; color: var(--rfd-text-66727d, #66727d); font-size: 13px; line-height: 1.4; }
.password-session-notice { padding-top: 12px; border-top: 1px solid var(--rfd-border-e4e7ea, #e4e7ea); }

.advertising-admin-links { display: grid; gap: 0; overflow: hidden; border-radius: 14px; background: var(--rfd-surface-ffffff, #fff); }
.admin-ios-link { display: flex; min-height: 52px; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--rfd-border-e1e5e8, #e1e5e8); color: var(--rfd-text-17212b, #17212b); text-decoration: none; }
.admin-ios-link:last-child { border-bottom: 0; }
.admin-ios-link span { display: inline-flex; align-items: center; gap: 9px; }
.admin-ios-link img { width: 24px; height: 24px; object-fit: contain; }
.admin-ios-link b { color: #a3abb1; font-size: 25px; font-weight: 400; }
.admin-ios-link.is-alert { color: var(--rfd-text-c62828, #c62828); font-weight: 700; }
.local-place-summary { margin: 18px 0; }
.local-place-summary h2 { margin: 0 0 10px; }
.local-place-summary > div { display: grid; grid-template-columns: repeat(4,1fr); padding: 16px 8px; border-radius: 16px; background: var(--rfd-surface-ffffff, #fff); }
.local-place-summary span { display: grid; gap: 3px; text-align: center; border-right: 1px solid var(--rfd-border-e3e6e9, #e3e6e9); }
.local-place-summary span:last-child { border-right: 0; }
.local-place-summary strong { font-size: 24px; }
.local-place-summary small { color: var(--rfd-text-66727d, #66727d); }

.saved-red-flagger-note-form {
    display: flex;
    width: 100%;
    gap: .45rem;
}

.saved-red-flagger-note-form input[type="text"] {
    min-width: 0;
    flex: 1;
    box-sizing: border-box;
    min-height: 38px;
    padding: .5rem .65rem;
    border: 1px solid var(--rfd-border-c7d0d6, #c7d0d6);
    border-radius: 9px;
    background: var(--rfd-surface-ffffff, #fff);
    color: var(--rfd-text-17212b, #17212b);
    font: inherit;
}

.saved-red-flagger-note-form input.note-save-error { border-color: #d6272a; }

.saved-red-flagger-actions { width: 100%; }

.saved-red-flagger-card .profile-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
    object-position: center;
}

.saved-red-flagger-card a {
    color: var(--rfd-text-17212b, #17212b);
    font-weight: 700;
}

.saved-red-flagger-actions > form:last-child {
    margin-left: auto;
}

.archive-card-action { flex: 0 0 auto; }

.saved-red-flagger-card .secondary-button {
    width: 86px;
    min-height: 38px;
    box-sizing: border-box;
    padding: .35rem .65rem;
    border: 2px solid #8a8a8a;
    border-radius: 9px;
    background: var(--rfd-surface-ffffff, #fff);
    box-shadow: 0 2px 0 #555;
    color: var(--rfd-text-17212b, #17212b) !important;
    font: inherit;
    text-align: center;
    justify-content: center;
    text-decoration: none;
}

@media (max-width: 620px) {
    .beach-red-flaggers-list li,
    .saved-red-flagger-card {
        align-items: stretch;
        flex-direction: column;
    }

    .red-flagger-status-form,
    .saved-red-flagger-actions {
        width: 100%;
        margin-left: 0;
    }

    .red-flagger-status-form select {
        min-width: 0;
        flex: 1;
    }

    .red-flagger-quick-form {
        width: auto;
        margin-left: 0;
        justify-content: space-between;
    }

    .red-flagger-control-row {
        width: 100%;
        margin-left: 0;
        flex-wrap: wrap;
        justify-content: space-between;
    }

    .saved-red-flagger-actions {
        align-items: center;
        flex-wrap: nowrap;
        gap: .35rem;
    }

    .flag-choice {
        width: 36px;
        height: 36px;
        min-width: 36px;
    }

    .flag-choice img { width: 26px; height: 26px; }
    .red-flagger-quick-form { min-width: 0; gap: .35rem; }
    .red-flagger-quick-buttons { gap: .25rem; }
    .archive-card-action { margin-left: auto !important; }
    .archive-card-action .secondary-button { width: auto; min-width: 70px; padding: .3rem .5rem; font-size: .9rem; }
}

/* Site ownership notice */
.site-copyright {
    width: 100%;
    box-sizing: border-box;
    padding: 20px 16px 24px;
    color: var(--rfd-text-6b7a84, #6b7a84);
    font-size: 12px;
    line-height: 1.4;
    text-align: center;
}

.chat-link-button { display: inline-flex; min-height: 38px; box-sizing: border-box; align-items: center; gap: .35rem; margin-left: auto; padding: .35rem .65rem; border: 2px solid #8a8a8a; border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); box-shadow: 0 2px 0 #555; color: var(--rfd-text-17212b, #17212b) !important; text-decoration: none; white-space: nowrap; }
.chat-link-button img { width: 22px; height: 22px; object-fit: contain; }
.chat-page { max-width: 680px; }
.chat-page-title { display: flex; align-items: center; gap: .5rem; }
.chat-page-title img { width: 28px; height: 28px; object-fit: contain; }
.chat-inbox-list { display: grid; gap: .75rem; padding: 0; list-style: none; }
.chat-inbox-list li { border: 1px solid var(--rfd-border-e0e7eb, #e0e7eb); border-radius: 14px; background: var(--rfd-surface-ffffff, #fff); box-shadow: 0 2px 8px rgba(23,33,43,.06); }
.chat-inbox-list a { display: flex; align-items: center; gap: .75rem; padding: .85rem; color: var(--rfd-text-17212b, #17212b); text-decoration: none; }
.chat-inbox-list .profile-avatar, .chat-person-heading .profile-avatar { box-sizing: border-box; width: 48px; height: 48px; flex: 0 0 48px; font-size: 1.25rem; }
.chat-inbox-copy { display: grid; min-width: 0; flex: 1; }
.chat-inbox-copy span { overflow: hidden; color: var(--rfd-text-64747c, #64747c); text-overflow: ellipsis; white-space: nowrap; }
.chat-unread-count { min-width: 1ch; padding: 0; color: var(--rfd-text-17212b, #17212b); background: transparent; text-align: center; font-weight: 700; }
.chat-inbox-status { display: flex; flex: 0 0 auto; align-items: center; gap: .45rem; }
.chat-inbox-list .chat-inbox-status .chat-notification-state-icon { display: block; width: 44px; max-width: 44px; height: 44px; max-height: 44px; flex: 0 0 44px; object-fit: contain; }
.chat-inbox-status .chat-unread-count { box-sizing: border-box; }
.chat-blocked-preview { color: var(--rfd-text-1f2933, #1f2933) !important; font-weight: 700; }
.chat-menu-notification { display: inline-grid; min-width: 22px; height: 22px; place-items: center; box-sizing: border-box; padding: 0 .35rem; border-radius: 999px; background: #d6272a; color: #fff; font-size: .75rem; font-weight: 800; line-height: 1; }
.account-dropdown-text-icon { display: inline-grid; width: 20px; height: 20px; flex: 0 0 20px; place-items: center; color: var(--rfd-text-d6272a, #d6272a); font-size: 1.15rem; font-weight: 800; line-height: 1; }
.about-page { display: grid; gap: 1rem; }
.about-page h1 { margin-bottom: 0; }
.about-page h2 { margin: 0 0 .45rem; font-size: 1.15rem; }
.about-card { padding: 1rem; border: 1px solid var(--rfd-border-dce3e8, #dce3e8); border-radius: 14px; background: var(--rfd-surface-ffffff, #fff); box-shadow: 0 2px 8px rgba(23, 33, 43, .06); }
.about-card p { margin: .45rem 0 0; line-height: 1.55; }
.about-source-list { margin: .65rem 0 0; padding-left: 1.2rem; }
.about-source-list li + li { margin-top: .55rem; }
.about-source-list a { color: var(--rfd-text-b51f25, #b51f25); font-weight: 700; }
.about-hero { padding: 1.1rem; border: 2px solid #d6272a; border-radius: 16px; background: linear-gradient(145deg, var(--rfd-surface-ffffff, #fff) 0%, var(--rfd-surface-fff5f5, #fff5f5) 100%); }
.about-hero h1 { display: flex; align-items: center; gap: .65rem; margin-top: 0; }
.about-logo { width: 42px; height: 42px; flex: 0 0 42px; border-radius: 50%; object-fit: contain; }
.about-hero p { line-height: 1.55; }
.about-tagline { margin: .25rem 0 1rem !important; color: var(--rfd-text-d6272a, #d6272a); font-size: clamp(1.4rem, 6vw, 2rem); font-weight: 900; line-height: 1.1 !important; }
.about-apps-callout { padding: 1.2rem; border: 2px solid #d6272a; border-radius: 16px; background: #d6272a; color: #fff; box-shadow: 0 8px 22px rgba(214, 39, 42, .22); }
.about-apps-callout p { line-height: 1.55; }
.about-apps-kicker { display: block; font-size: clamp(1.25rem, 5vw, 1.75rem); font-weight: 900; }
.about-store-badges { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin: 1rem 0; }
.about-store-badge { display: grid; min-height: 58px; place-content: center; padding: .45rem .7rem; border: 1px solid rgba(255,255,255,.65); border-radius: 10px; background: #17212b; color: #fff; text-align: center; font-weight: 800; opacity: .88; }
.about-store-badge small { display: block; color: #ffd7d8; font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; }
.about-tagline-closing { margin-bottom: 0 !important; text-align: center; }
.about-contact-card a { color: var(--rfd-text-b51f25, #b51f25); font-weight: 800; overflow-wrap: anywhere; }
@media (max-width: 480px) { .about-store-badges { grid-template-columns: 1fr; } }
.invite-friends-page { display: grid; gap: 1rem; }
.invite-friends-card { padding: 1.1rem; border: 1px solid var(--rfd-border-dce3e8, #dce3e8); border-radius: 14px; background: var(--rfd-surface-ffffff, #fff); box-shadow: 0 2px 8px rgba(23,33,43,.06); }
.invite-friends-card p { line-height: 1.5; }
.invite-link-field { box-sizing: border-box; width: 100%; min-height: 44px; padding: .65rem; border: 1px solid var(--rfd-border-b9c5cc, #b9c5cc); border-radius: 9px; background: var(--rfd-surface-f7f9fa, #f7f9fa); font: inherit; }
.invite-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin-top: .75rem; }
.invite-actions button { min-height: 44px; padding: .65rem; border: 1px solid #d6272a; border-radius: 10px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-d6272a, #d6272a); font-weight: 800; cursor: pointer; }
.invite-actions .primary { background: #d6272a; color: #fff; }
.invite-action-stack { grid-template-columns: 1fr; }
.invite-qr-panel { display: grid; justify-items: center; gap: .5rem; margin-top: .85rem; text-align: center; }
.invite-qr-panel[hidden] { display: none; }
.invite-qr-panel img { display: block; width: min(240px, 82vw); height: auto; padding: .55rem; border: 1px solid var(--rfd-border-dce3e8, #dce3e8); border-radius: 12px; background: #fff; }
.redflagger-lookup-card { display: grid; gap: .75rem; }
.redflagger-lookup-card h2, .redflagger-lookup-card p { margin: 0; }
.redflagger-lookup-form { display: grid; gap: .55rem; }
.redflagger-privacy-link { margin: 0; }
.redflagger-word-wheels { display: grid; min-width: 0; gap: 0; padding: 0; }
.redflagger-word-wheel { min-width: 0; margin: 0; padding: 0; overflow: hidden; border: 1px solid var(--rfd-border-b9c5cc, #b9c5cc); border-radius: 10px; background: var(--rfd-surface-ffffff, #fff); }
.redflagger-word-wheel + .redflagger-word-wheel { margin-top: -1px; }
.redflagger-word-track { display: flex; gap: .15rem; padding: .15rem; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; scrollbar-color: transparent transparent; scroll-snap-type: x mandatory; }
.redflagger-word-track::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; background: transparent; }
.redflagger-word-track::-webkit-scrollbar-thumb { background: transparent; }
.redflagger-word-choice { flex: 0 0 auto; min-width: 7rem; min-height: 36px; padding: .25rem .6rem; appearance: none; scroll-snap-align: center; border: 0; border-radius: 7px; background: transparent; box-shadow: none; color: var(--rfd-text-17212b, #17212b); font: inherit; cursor: pointer; }
.redflagger-word-choice.is-selected { background: #d9f0ff; color: #123a52; font-weight: 800; }
.redflagger-name-preview { display: block; overflow-wrap: anywhere; padding: .65rem; border-radius: 9px; background: var(--rfd-surface-f7f9fa, #f7f9fa); font-weight: 800; text-align: center; }
.redflagger-find-button { min-height: 48px; border: 0; border-radius: 10px; background: #d6272a; color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.redflagger-find-button:disabled { cursor: not-allowed; opacity: .5; }
.redflagger-lookup-result { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .8rem; padding: .85rem; border: 1px solid var(--rfd-border-dce3e8, #dce3e8); border-radius: 12px; background: var(--rfd-surface-f7f9fa, #f7f9fa); }
.redflagger-lookup-result > span:nth-child(2) { display: grid; min-width: 0; }
.redflagger-lookup-result small { overflow-wrap: anywhere; color: var(--rfd-text-66727d, #66727d); }
.redflagger-lookup-result form { margin: 0; }
.redflagger-lookup-result button { min-height: 44px; padding: .55rem .75rem; border: 1px solid #d6272a; border-radius: 9px; background: #d6272a; color: #fff; font-weight: 800; cursor: pointer; }
.redflagger-lookup-empty { padding: .75rem; border-radius: 9px; background: var(--rfd-surface-f7f9fa, #f7f9fa); text-align: center; }
@media (max-width: 600px) { .redflagger-lookup-result { grid-template-columns: auto minmax(0, 1fr); } .redflagger-lookup-result form { grid-column: 1 / -1; } .redflagger-lookup-result button { width: 100%; } }
.invite-result { min-height: 1.2rem; color: var(--rfd-text-168447, #168447); font-weight: 700; }
.invite-landing-page { padding-top: 1.5rem; text-align: center; }
.invite-landing-icon { width: 64px; height: 64px; object-fit: contain; }
.invite-landing-page h1 { margin: .65rem 0; font-size: clamp(1.65rem, 7vw, 2.2rem); line-height: 1.12; }
.invite-landing-actions { display: grid; gap: .65rem; margin: 1.25rem 0; }
.invite-landing-actions .button-link { display: grid; min-height: 46px; padding: .7rem 1rem; place-items: center; border: 1px solid #d6272a; border-radius: 10px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-b51f25, #b51f25); font-weight: 800; text-decoration: none; }
.invite-landing-actions .button-link.primary { background: #d6272a; color: #fff; }
.invite-browser-note { padding: .8rem; border-radius: 10px; background: var(--rfd-surface-fff7dc, #fff7dc); color: var(--rfd-text-493d20, #493d20); font-size: .92rem; text-align: left; }
.invite-landing-copy-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem; align-items: stretch; }
.invite-landing-copy-row button { padding: .6rem .8rem; border: 1px solid var(--rfd-border-b9c5cc, #b9c5cc); border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); font-weight: 800; cursor: pointer; }
@media (max-width: 420px) { .invite-actions { grid-template-columns: 1fr; } }
.chat-person-heading { display: flex; align-items: center; gap: .8rem; margin-bottom: 1rem; }
.chat-person-heading h1 { margin: 0; font-size: clamp(1.25rem, 5.5vw, 1.75rem); line-height: 1.1; }
.chat-profile-link { display: flex; min-width: 0; flex: 1 1 auto; align-items: center; gap: .65rem; color: inherit; text-decoration: none; }
.chat-profile-link h1 { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-profile-link:hover h1, .chat-profile-link:focus-visible h1 { color: var(--rfd-text-b5262b, #b5262b); text-decoration: underline; }
.chat-profile-link:focus-visible { border-radius: 10px; outline: 3px solid #d19828; outline-offset: 4px; }
.chat-profile-avatar-link { display: inline-flex; flex: 0 0 auto; border-radius: 50%; text-decoration: none; }
.chat-profile-avatar-link:focus-visible { outline: 3px solid #d19828; outline-offset: 3px; }
.chat-profile-name-link { color: inherit; text-decoration: none; }
.chat-profile-name-link:hover h1, .chat-profile-name-link:focus-visible h1 { color: var(--rfd-text-b5262b, #b5262b); text-decoration: underline; }
.chat-person-heading div > span { color: var(--rfd-text-168447, #168447); font-weight: 700; }
.chat-message-list { display: flex; min-height: 280px; max-height: 55vh; flex-direction: column; gap: .6rem; padding: 1rem; overflow-y: auto; border: 1px solid var(--rfd-border-e0e7eb, #e0e7eb); border-radius: 14px; background: var(--rfd-surface-ffffff, #fff); }
.chat-message { max-width: 78%; padding: .65rem .8rem; border-radius: 13px; background: var(--rfd-surface-edf2f5, #edf2f5); }
.chat-message.mine { align-self: flex-end; background: var(--rfd-surface-dff4e7, #dff4e7); }
.chat-message.theirs { align-self: flex-start; }
.chat-message p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.chat-message time { display: block; margin-top: .25rem; color: var(--rfd-text-6b7780, #6b7780); font-size: .7rem; }
.chat-system-notice { align-self: center; max-width: 90%; padding: .55rem .8rem; border-radius: 999px; background: var(--rfd-surface-e8eaec, #e8eaec); color: var(--rfd-text-17212b, #17212b); text-align: center; font-size: .82rem; }
.chat-system-notice time { display: inline; margin-left: .3rem; font-size: inherit; }
.chat-blocked-notice { border: 1px solid #17212b; }
.chat-delivery-state { display: block; margin-top: .15rem; color: var(--rfd-text-64747c, #64747c); font-size: .7rem; text-align: right; }
.chat-filters { margin: .75rem 0 1rem; }
.chat-silence-form { display: flex; flex: 0 0 auto; align-items: center; margin: 0 0 0 auto; }
.chat-silence-button { display: inline-grid; width: 50px; height: 50px; padding: 2px; place-items: center; border: 0; border-radius: 50%; background: transparent; cursor: pointer; }
.chat-silence-button:hover, .chat-silence-button:focus-visible { background: var(--rfd-surface-fff8dc, #fff8dc); outline: 2px solid #e4a400; outline-offset: 1px; }
.chat-silence-button:disabled { cursor: default; }
.chat-silence-button img { display: block; width: 46px; height: 46px; object-fit: contain; }
.chat-actions-menu { position: relative; margin-left: auto; flex: 0 0 auto; }
.chat-notification-indicator {
    display: grid;
    width: 36px;
    height: 36px;
    margin-left: auto;
    place-items: center;
    flex: 0 0 36px;
}
.chat-notification-indicator img {
    display: block;
    width: 34px;
    height: 34px;
    object-fit: contain;
}
.chat-notification-indicator + .chat-actions-menu { margin-left: .15rem; }
.chat-actions-menu > summary {
    display: flex;
    width: 46px;
    height: 46px;
    padding: 0;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--rfd-text-213140, #213140);
    font-size: 1.45rem;
    font-weight: 900;
    letter-spacing: .08em;
    cursor: pointer;
    list-style: none;
}
.chat-menu-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
}
.chat-menu-dots i {
    display: block;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: currentColor;
}
.chat-actions-menu > summary::-webkit-details-marker { display: none; }
.chat-actions-menu > summary:hover,
.chat-actions-menu > summary:focus-visible,
.chat-actions-menu[open] > summary { background: var(--rfd-surface-fff8dc, #fff8dc); outline: 2px solid #e4a400; }
.chat-actions-flyout {
    position: absolute;
    z-index: 45;
    top: calc(100% + .45rem);
    right: 0;
    width: min(290px, calc(100vw - 2rem));
    overflow: hidden;
    border: 1px solid var(--rfd-border-d9e1e8, #d9e1e8);
    border-radius: 14px;
    background: var(--rfd-surface-ffffff, #fff);
    box-shadow: 0 12px 30px rgba(16, 35, 52, .18);
}
.chat-actions-flyout form { margin: 0; }
.chat-actions-flyout a,
.chat-actions-flyout button,
.chat-action-disabled {
    display: flex;
    width: 100%;
    min-height: 48px;
    box-sizing: border-box;
    align-items: center;
    gap: .7rem;
    padding: .7rem 1rem;
    border: 0;
    border-bottom: 1px solid var(--rfd-border-edf0f3, #edf0f3);
    border-radius: 0;
    background: var(--rfd-surface-ffffff, #fff);
    color: var(--rfd-text-172534, #172534);
    font: inherit;
    font-weight: 700;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}
.chat-actions-flyout > :last-child,
.chat-actions-flyout > :last-child button { border-bottom: 0; }
.chat-actions-flyout a:hover,
.chat-actions-flyout button:hover { background: var(--rfd-surface-f4f7f9, #f4f7f9); }
.chat-actions-flyout button:disabled,
.chat-action-disabled { color: var(--rfd-text-75808a, #75808a); cursor: default; }
.chat-actions-flyout img,
.chat-actions-flyout a > span {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    object-fit: contain;
    text-align: center;
    font-size: 1.4rem;
    line-height: 24px;
}
.chat-actions-flyout .chat-block-action { color: var(--rfd-text-a22b25, #a22b25); }
@media (max-width: 640px) {
    .chat-actions-flyout {
        position: fixed;
        z-index: 100;
        top: auto;
        right: .75rem;
        bottom: .75rem;
        left: .75rem;
        width: auto;
        border-radius: 18px;
        box-shadow: 0 12px 42px rgba(16, 35, 52, .3);
    }
    .chat-actions-flyout a,
    .chat-actions-flyout button,
    .chat-action-disabled { min-height: 56px; }
}
.held-message-review { margin-bottom: .75rem; padding: .8rem; border: 1px solid #e1b54c; border-radius: 12px; background: var(--rfd-surface-fff7dc, #fff7dc); }
.held-message-review div { display: flex; gap: .5rem; margin-top: .55rem; }
.held-message-review form { margin: 0; }
.saved-red-flagger-archive-link { margin: .5rem 0 1rem; text-align: right; }
.chat-compose-form { display: grid; gap: .55rem; margin-top: .75rem; }
.chat-photo-preview { position: relative; width: min(100%, 360px); overflow: hidden; border: 1px solid var(--rfd-border-d7dfe5, #d7dfe5); border-radius: 12px; background: var(--rfd-surface-ffffff, #fff); }
.chat-photo-preview[hidden] { display: none; }
.chat-photo-preview > img { display: block; width: 100%; max-height: 360px; object-fit: contain; background: #111; }
.chat-photo-ready { margin: 0; padding: .55rem .7rem; background: var(--rfd-surface-eef6f8, #eef6f8); color: var(--rfd-text-174f60, #174f60); font-size: .9rem; font-weight: 700; text-align: center; }
.chat-remove-photo { width: 100%; padding: .5rem .65rem; border: 0; border-top: 1px solid var(--rfd-border-d7dfe5, #d7dfe5); background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-b42328, #b42328); font: inherit; font-weight: 700; cursor: pointer; }
.chat-compose-form textarea { box-sizing: border-box; width: 100%; min-height: 64px; resize: vertical; border: 1px solid var(--rfd-border-b9c5cc, #b9c5cc); border-radius: 10px; padding: .7rem; font: inherit; }
.chat-compose-controls { position: relative; display: flex; width: 100%; align-items: center; gap: .5rem; }
.chat-add-menu { position: relative; }
.chat-add-menu summary { display: grid; width: 44px; height: 44px; place-items: center; box-sizing: border-box; border: 1px solid #d6272a; border-radius: 10px; background: #d6272a; color: #fff; cursor: pointer; font-size: 1.7rem; font-weight: 500; line-height: 1; list-style: none; }
.chat-add-menu summary::-webkit-details-marker { display: none; }
.chat-add-menu[open] summary { border-color: #d6272a; box-shadow: 0 0 0 2px rgba(214, 39, 42, .12); }
.chat-attachment-flyout { position: absolute; right: 0; bottom: calc(100% + .55rem); z-index: 20; display: grid; min-width: 180px; gap: .25rem; padding: .45rem; border: 1px solid var(--rfd-border-cfd8de, #cfd8de); border-radius: 12px; background: var(--rfd-surface-ffffff, #fff); box-shadow: 0 8px 24px rgba(23, 33, 43, .18); }
.chat-attachment-flyout label { display: flex; align-items: center; gap: .65rem; padding: .55rem .65rem; border-radius: 8px; cursor: pointer; font-weight: 700; }
.chat-attachment-flyout label:hover { background: var(--rfd-surface-f1f5f7, #f1f5f7); }
.chat-attachment-flyout img { width: 30px; height: 30px; object-fit: contain; }
.chat-attachment-flyout input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.chat-compose-form .chat-send-button { flex: 1; min-width: 0; min-height: 44px; padding: .6rem 1rem; border: 0; border-radius: 10px; background: #d6272a; color: #fff; font-weight: 700; }
.chat-compose-form .chat-send-button:disabled { cursor: wait; opacity: .65; }
.chat-compose-form.is-submitting .chat-add-menu, .chat-compose-form.is-submitting .chat-remove-photo { pointer-events: none; opacity: .55; }
.chat-heading-copy, .group-heading-copy { min-width: 0; }
.chat-heading-copy h1, .group-heading-copy h1 { margin-bottom: .12rem; }
.e2ee-status { display: inline-flex; align-items: center; gap: .28rem; width: auto; min-height: 0; margin: 0; padding: .12rem .28rem; border: 0; border-radius: 5px; background: transparent; color: var(--rfd-text-64727c, #64727c); font-size: .72rem; font-weight: 600; line-height: 1.2; text-align: left; cursor: pointer; }
.e2ee-status:hover, .e2ee-status:focus-visible { background: var(--rfd-surface-edf2f5, #edf2f5); }
.e2ee-status[data-state="active"] { color: var(--rfd-text-237a3b, #237a3b); }
.e2ee-status[data-state="unavailable"] { color: var(--rfd-text-b3261e, #b3261e); }
.e2ee-status-lock {
    display: block;
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    object-fit: contain;
}
.e2ee-info-dialog { width: min(90vw, 390px); padding: 1.1rem; border: 1px solid var(--rfd-border-cbd5dc, #cbd5dc); border-radius: 14px; color: var(--rfd-text-071a2f, #071a2f); }
.e2ee-info-dialog::backdrop { background: rgba(7, 26, 47, .42); }
.e2ee-info-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.e2ee-info-heading h2 { margin: 0; font-size: 1.15rem; }
.e2ee-info-heading button { width: 36px; height: 36px; padding: 0; border: 0; background: transparent; color: inherit; font-size: 1.5rem; }
.e2ee-approve-devices { width: auto; margin-top: .35rem; }
.e2ee-device-approval-status { margin: .55rem 0 0; color: var(--rfd-text-52636d, #52636d); font-size: .86rem; }
.e2ee-device-verification-note { color: var(--rfd-text-64727c, #64727c); font-size: .86rem; }
.chat-compose-form[data-e2ee-required="true"] :disabled { cursor: not-allowed; opacity: .58; }
.chat-remove-queued { margin-top: .35rem; border: 1px solid currentColor; border-radius: 999px; padding: .2rem .55rem; background: transparent; color: inherit; font: inherit; font-size: .8rem; cursor: pointer; }
.chat-upload-status { margin: 0; }
.chat-upload-status[hidden] { display: none; }
.chat-upload-status progress { width: calc(100% - 54px); }
#chat-upload-percent { display: inline-block; width: 46px; text-align: right; font-weight: 700; }
@media (max-width: 600px) { .achievement-grid { grid-template-columns: minmax(0, 1fr); } .profile-rank-progress > div:first-child { align-items: flex-start; } }
.chat-message-photo { display: block; width: min(100%, 360px); max-height: 360px; margin-bottom: .4rem; border-radius: 10px; object-fit: contain; background: #111; }
@media (max-width: 620px) { .chat-attachment-flyout { right: auto; left: 0; } }

.moderation-page,
.admin-user-page {
    padding-top: 2rem;
    padding-bottom: 3rem;
}

.moderation-card {
    background: var(--rfd-surface-ffffff, #fff);
    border: 1px solid var(--rfd-border-d8e0e8, #d8e0e8);
    border-radius: 18px;
    padding: 1.35rem;
    margin-bottom: 1.25rem;
    box-shadow: 0 3px 12px rgba(16, 35, 52, .06);
}

.moderation-form,
.inline-review-form {
    display: grid;
    gap: .8rem;
}

.moderation-form label { display: grid; gap: .35rem; font-weight: 700; }
.moderation-form select,
.moderation-form textarea,
.inline-review-form input,
.inline-review-form select,
.admin-user-search input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--rfd-border-c8d2dc, #c8d2dc);
    border-radius: 10px;
    padding: .8rem;
    font: inherit;
}
.moderation-form textarea { min-height: 8rem; resize: vertical; }
.status-message { padding: 1rem; border-radius: 12px; background: var(--rfd-surface-fff6d8, #fff6d8); }
.profile-report-link {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    width: max-content;
    max-width: 100%;
    color: var(--rfd-text-a52a2a, #a52a2a);
    font-weight: 700;
    white-space: nowrap;
}
.profile-report-link img {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    object-fit: contain;
}

.admin-user-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: .8rem;
    margin: 1rem 0 1.4rem;
}
.admin-user-heading .page-title { display: flex; align-items: center; gap: 10px; margin: 0; }
.admin-user-heading .page-title img { width: 28px; height: 28px; flex: 0 0 28px; object-fit: contain; }
.admin-user-metrics a {
    display: grid;
    gap: .2rem;
    background: var(--rfd-surface-ffffff, #fff);
    border: 1px solid var(--rfd-border-d8e0e8, #d8e0e8);
    border-radius: 14px;
    padding: 1rem;
    color: var(--rfd-text-17212b, #17212b);
    text-decoration: none;
    transition: border-color .15s, box-shadow .15s, background .15s;
}
.admin-user-metrics a:hover,
.admin-user-metrics a:focus-visible { border-color: #7f9baa; box-shadow: 0 3px 10px rgba(16, 35, 52, .1); }
.admin-user-metrics a.active { border-color: #c62828; background: var(--rfd-surface-fff5f5, #fff5f5); box-shadow: inset 0 0 0 1px #c62828; }
.admin-user-metrics strong { font-size: 1.65rem; }
.admin-user-metrics span { color: var(--rfd-text-607080, #607080); }
.moderation-item { padding: 1rem 0; border-top: 1px solid var(--rfd-border-e3e8ed, #e3e8ed); }
.moderation-item:first-of-type { border-top: 0; }
.admin-user-search { display: flex; gap: .6rem; margin-bottom: 1rem; }
.admin-user-row { border-top: 1px solid var(--rfd-border-e3e8ed, #e3e8ed); padding: .8rem 0; }
.admin-user-row summary { cursor: pointer; display: flex; justify-content: space-between; gap: 1rem; }
.admin-user-row summary span:first-child { display: grid; }
.admin-user-actions { padding: 1rem 0 0; display: grid; gap: 1rem; }
@media (min-width: 720px) {
    .inline-review-form { grid-template-columns: minmax(180px, 1fr) auto auto; align-items: center; }
}

/* Moderation audit history, evidence, and account controls */
.moderation-section-heading,
.moderation-item-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.moderation-section-heading h2,
.moderation-item-heading h3 { margin: 0; }
#reports details.moderation-item > summary { cursor: pointer; list-style: none; padding: .25rem 2rem .25rem 0; position: relative; }
#reports details.moderation-item > summary::-webkit-details-marker { display: none; }
#reports details.moderation-item > summary::after { content: "⌄"; position: absolute; right: .25rem; top: 50%; transform: translateY(-50%); color: var(--rfd-text-607080, #607080); font-size: 1.2rem; }
#reports details.moderation-item[open] > summary::after { content: "⌃"; }
#reports details.moderation-item[open] > summary { margin-bottom: .75rem; }
.moderation-status-filters { display: flex; flex-wrap: wrap; gap: .45rem; }
.moderation-status-filters a { padding: .5rem .75rem; border: 1px solid var(--rfd-border-d5dfe6, #d5dfe6); border-radius: 999px; color: var(--rfd-text-31485a, #31485a); text-decoration: none; font-weight: 700; }
.moderation-status-filters a.active { border-color: #c62828; background: var(--rfd-surface-fff3f3, #fff3f3); color: var(--rfd-text-a61f24, #a61f24); }
.moderation-status { padding: .3rem .65rem; border-radius: 999px; background: var(--rfd-surface-edf2f5, #edf2f5); color: var(--rfd-text-435565, #435565); font-size: .78rem; font-weight: 800; }
.moderation-status.status-open,
.moderation-status.status-pending { background: var(--rfd-surface-fff4d9, #fff4d9); color: var(--rfd-text-745400, #745400); }
.moderation-status.status-resolved,
.moderation-status.status-approved { background: var(--rfd-surface-e7f6ed, #e7f6ed); color: var(--rfd-text-17653a, #17653a); }
.moderation-status.status-dismissed,
.moderation-status.status-denied { background: var(--rfd-surface-f3e9e9, #f3e9e9); color: var(--rfd-text-782d2d, #782d2d); }
.moderation-metadata { display: grid; gap: .45rem; margin: .8rem 0; font-size: .88rem; }
.moderation-metadata div { display: grid; grid-template-columns: minmax(90px, .3fr) minmax(0, 1fr); gap: .65rem; }
.moderation-metadata dt { color: var(--rfd-text-637382, #637382); font-weight: 700; }
.moderation-metadata dd { margin: 0; overflow-wrap: anywhere; }
.moderation-private-note,
.moderation-public-reason,
.moderation-appeal-response { padding: .85rem 1rem; border-radius: 10px; background: var(--rfd-surface-f5f7f9, #f5f7f9); }
.moderation-evidence { margin: 1rem 0; padding: .85rem; border: 1px solid var(--rfd-border-d8e2e8, #d8e2e8); border-radius: 10px; }
.moderation-evidence summary { cursor: pointer; font-weight: 800; }
.moderation-evidence li { margin-top: .75rem; }
.moderation-evidence time { display: block; color: var(--rfd-text-657584, #657584); font-size: .8rem; }
.moderation-manage-user { display: inline-flex; margin: .65rem 0; text-decoration: none; }
.inline-review-form textarea { width: 100%; min-height: 76px; box-sizing: border-box; }
.moderation-ban-form { grid-template-columns: 1fr; align-items: stretch; }
.moderation-ban-form label { display: grid; gap: .35rem; font-weight: 700; }
.moderation-ban-form label span { color: var(--rfd-text-687785, #687785); font-size: .8rem; font-weight: 400; }
.admin-user-control { overflow: hidden; border: 1px solid var(--rfd-border-d8e2e8, #d8e2e8); border-radius: 12px; background: var(--rfd-surface-ffffff, #fff); }
.admin-user-control > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; min-height: 48px; box-sizing: border-box; padding: .65rem .8rem; list-style: none; color: var(--rfd-text-17212b, #17212b); font-weight: 800; cursor: pointer; }
.admin-user-control > summary::-webkit-details-marker { display: none; }
.admin-user-control > summary .rfd-chevron { grid-column: 3; width: 22px; height: 22px; transition: transform .18s ease; }
.admin-user-control[open] > summary .rfd-chevron { transform: rotate(90deg); }
.admin-user-control[open] > summary { border-bottom: 1px solid var(--rfd-border-d8e2e8, #d8e2e8); }
.admin-user-control > form { margin: 0; padding: .85rem; }
.admin-user-point-balance { color: var(--rfd-text-607080, #607080); font-size: .82rem; font-weight: 700; white-space: nowrap; }
.admin-reward-points-form { display: grid; gap: .7rem; }
.admin-reward-points-form p { margin: 0; color: var(--rfd-text-607080, #607080); }
.admin-reward-points-form label:not(.settings-checkbox) { display: grid; gap: .35rem; font-weight: 700; }
.admin-reward-points-form input[type="number"], .admin-reward-points-form textarea { box-sizing: border-box; width: 100%; padding: .7rem; border: 1px solid var(--rfd-border-cbd5dc, #cbd5dc); border-radius: 9px; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-17212b, #17212b); font: inherit; }
.admin-reward-points-form textarea { min-height: 84px; resize: vertical; }
.admin-reward-points-form button { min-height: 44px; border: 0; border-radius: 9px; background: #c62828; color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.report-evidence-picker { margin: .5rem 0 1rem; padding: 1rem; border: 1px solid var(--rfd-border-d8e2e8, #d8e2e8); border-radius: 12px; }
.report-evidence-picker legend { padding: 0 .35rem; font-weight: 800; }
.report-evidence-option { display: flex; gap: .7rem; align-items: flex-start; padding: .75rem 0; border-top: 1px solid var(--rfd-border-e5eaee, #e5eaee); font-weight: 400; }
.report-evidence-option input { flex: 0 0 auto; margin-top: .2rem; }
.report-evidence-option span { overflow-wrap: anywhere; }
.report-evidence-preview { margin-top: 1rem; padding: .85rem; border-radius: 10px; background: var(--rfd-surface-f5f7f9, #f5f7f9); }
.report-evidence-preview article { padding: .65rem 0; border-top: 1px solid var(--rfd-border-dfe5e9, #dfe5e9); }
.report-evidence-preview time { color: var(--rfd-text-657584, #657584); font-size: .8rem; }
.account-restricted-page { min-height: 100dvh; display: grid; align-content: center; }
.moderation-restricted-heading { margin-bottom: 1rem; }
.moderation-restricted-heading h1 { margin-bottom: .5rem; }
.moderation-logout { margin-top: 1rem; }
.account-restricted-page .moderation-form button,
.account-restricted-page .moderation-logout button { width: 100%; min-height: 48px; border-radius: 10px; font-size: 1rem; font-weight: 800; }
.account-restricted-page .moderation-logout .secondary-button { border: 2px solid #b8202a; background: var(--rfd-surface-ffffff, #fff); color: var(--rfd-text-a91f27, #a91f27); box-shadow: none; }
.account-restricted-page .moderation-logout .secondary-button:hover,
.account-restricted-page .moderation-logout .secondary-button:focus-visible { background: var(--rfd-surface-fff3f3, #fff3f3); }
@media (max-width: 600px) {
    .moderation-page, .admin-user-page { padding-inline: 12px; }
    .moderation-card { padding: 1rem; }
    .moderation-metadata div { grid-template-columns: 1fr; gap: .1rem; }
    .inline-review-form, .admin-user-search { grid-template-columns: 1fr; display: grid; }
    .inline-review-form button, .admin-user-search button, .moderation-ban-form button { width: 100%; }
}
.report-update-reason {
    border: 0;
    margin: 0 0 20px;
    padding: 0;
}

.report-update-reason legend {
    font-size: 1.1rem;
    font-weight: 800;
    margin-bottom: 10px;
}

.report-update-choice {
    align-items: flex-start;
    background: var(--rfd-surface-ffffff, #fff);
    border: 1px solid var(--rfd-border-d8e0e5, #d8e0e5);
    border-radius: 14px;
    cursor: pointer;
    display: flex;
    gap: 10px;
    margin-top: 10px;
    padding: 14px;
}

.report-update-choice input {
    flex: 0 0 auto;
    margin-top: 4px;
}

.report-update-choice span,
.report-update-choice small {
    display: block;
}

.report-update-choice small {
    color: var(--rfd-text-637487, #637487);
    margin-top: 4px;
}

/* 2026-10-22 web parity refinements shared with the native reporting/planner UI. */
.report-beach-title,
.beach-detail-title {
    font-size: clamp(1.35rem, 5vw, 1.7rem);
    line-height: 1.2;
}
.lifeguard-status-fieldset legend { font-size: 20px; }
.condition-pair-grid img[src$="normal_current.png"] {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
}
.condition-pair-grid label > span strong { text-align: left; }
.photo-upload .localized-file-button img {
    width: 28px;
    height: 28px;
    object-fit: contain;
}
.day-plan-stop {
    align-items: stretch;
    gap: .7rem;
    padding: .65rem;
    border-radius: 12px;
    background: var(--rfd-surface-ffffff, #fff);
}
.day-plan-position-controls {
    display: grid;
    flex: 0 0 2.2rem;
    grid-template-rows: 1.7rem 2rem 1.7rem;
    align-content: center;
    justify-items: center;
    gap: .18rem;
}
.day-plan-position-controls .day-plan-move {
    display: grid;
    width: 2rem;
    height: 1.7rem;
    padding: 0;
    place-items: center;
    border: 1px solid var(--rfd-border-d8e3e9, #d8e3e9);
    border-radius: 7px;
    background: var(--rfd-surface-ffffff, #fff);
    color: var(--rfd-text-17212b, #17212b);
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
}
.day-plan-position-controls .day-plan-move:disabled { cursor: default; opacity: .35; }
.day-plan-stop-main { grid-template-rows: auto auto 1fr; }
.day-plan-stop-actions { align-items: flex-end; gap: .4rem; margin-top: .45rem; }
.day-plan-stop-actions > * { align-self: flex-end; margin-bottom: 0; }
.day-plan-stop-actions form { display: flex; height: 2.4rem; margin: 0; }
.day-plan-stop-actions .day-plan-remove {
    width: 2.4rem;
    height: 2.4rem;
    min-height: 2.4rem;
}
.day-plan-drag-handle {
    align-self: stretch;
    width: 2.4rem !important;
    height: 4.7rem !important;
    min-height: 4.7rem !important;
    margin-left: auto;
    font-size: .9rem !important;
    line-height: .9;
}
.day-plan-directions {
    box-sizing: border-box;
    height: 2.4rem;
    min-height: 2.4rem;
    margin: 0;
}

.day-plan-grip-art {
    display: grid;
    width: 1.15rem;
    justify-items: center;
    gap: .12rem;
    line-height: .7;
}
.day-plan-grip-art b { font-size: .72rem; }
.day-plan-grip-art i {
    display: block;
    width: 1rem;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
}

.chat-compact-header {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: .35rem;
    align-items: center;
    min-height: 72px;
    padding: .5rem .85rem;
}
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.chat-compact-header .chat-back-link {
    display: grid;
    width: 32px;
    height: 40px;
    place-items: center;
    flex: 0 0 32px;
    font-size: 1.3rem;
    line-height: 1;
    white-space: nowrap;
}
.chat-compact-header .chat-person-heading {
    display: flex;
    width: 100%;
    min-width: 0;
    margin: 0;
    gap: .65rem;
}
.chat-compact-header .chat-person-heading .profile-avatar {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
    font-size: .95rem;
}
.chat-compact-header .chat-profile-avatar-link,
.chat-compact-header .chat-person-heading > .profile-avatar {
    margin: 7px;
}
.chat-compact-header .chat-person-heading .frame-red_flag,
.chat-compact-header .chat-person-heading .frame-ocean,
.chat-compact-header .chat-person-heading .frame-sunset,
.chat-compact-header .chat-person-heading .frame-lifeguard {
    border-width: 3px !important;
}
.chat-compact-header .chat-person-heading .frame-red_flag {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px #871e24;
}
.chat-compact-header .chat-person-heading .frame-ocean {
    box-shadow: 0 0 0 2px #dff7fb, 0 0 0 4px #08708a;
}
.chat-compact-header .chat-person-heading .frame-sunset {
    box-shadow: 0 0 0 2px #ffe7b9, 0 0 0 4px #c94f65;
}
.chat-compact-header .chat-person-heading .frame-lifeguard {
    box-shadow: 0 0 0 2px #d6272a, 0 0 0 4px #fff, 0 0 0 6px #d6272a;
}
.chat-compact-header .chat-heading-copy {
    flex: 1 1 auto;
    min-width: 0;
}
.chat-compact-header .chat-heading-copy .e2ee-status {
    padding-left: 0;
}
.group-conversation-page .group-heading-copy .e2ee-status {
    padding-left: 0;
}
.chat-compact-header .chat-person-heading h1 {
    overflow: hidden;
    font-size: clamp(1rem, 4.2vw, 1.25rem);
    text-overflow: ellipsis;
    white-space: nowrap;
}
.chat-sound-control { display: flex; margin: 0 0 0 auto; }
.chat-sound-control .chat-notification-indicator {
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}
.chat-sound-control .chat-notification-indicator:disabled { cursor: default; opacity: .55; }
.chat-compose-row {
    position: relative;
    display: grid;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    gap: .5rem;
    align-items: end;
}
.chat-compose-form .chat-compose-row textarea {
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 44px;
    max-height: calc(4 * 1.4em + 22px);
    padding: .62rem .7rem;
    overflow-y: auto;
    resize: none;
}
.chat-compose-form .chat-compose-row .chat-send-button {
    display: grid;
    width: 44px;
    min-width: 44px;
    min-height: 44px;
    height: 44px;
    padding: 0;
    place-items: center;
    border-radius: 50%;
    font-size: 1.25rem;
}
.chat-compose-row .chat-add-menu { width: 44px; min-width: 44px; }
.chat-compose-row .chat-add-menu summary { border-radius: 50%; font-size: 0; }
.chat-add-icon {
    position: relative;
    display: block;
    width: 18px;
    height: 18px;
}
.chat-add-icon::before,
.chat-add-icon::after {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 18px;
    height: 3px;
    border-radius: 999px;
    background: currentColor;
    content: "";
    transform: translate(-50%, -50%);
}
.chat-add-icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.chat-send-icon {
    display: block;
    width: 24px;
    height: 24px;
    background: currentColor;
    -webkit-mask: url("/static/navigation-icons/arrow_right.svg") center / contain no-repeat;
    mask: url("/static/navigation-icons/arrow_right.svg") center / contain no-repeat;
}
.chat-conversation-page,
.chat-conversation-page .chat-compose-form { width: 100%; min-width: 0; box-sizing: border-box; }
.chat-conversation-body {
    display: flex;
    min-height: 100vh;
    min-height: 100dvh;
    flex-direction: column;
    overflow: hidden;
}
.chat-conversation-body > .chat-conversation-page {
    display: flex;
    width: min(100%, 900px);
    min-height: 0;
    flex: 1 1 auto;
    flex-direction: column;
    margin: 0 auto;
    padding-block: .75rem;
}
.chat-conversation-body .chat-message-list {
    min-height: 0;
    max-height: none;
    flex: 1 1 0;
}
.chat-conversation-body .chat-compose-form {
    flex: 0 0 auto;
    margin-top: .6rem;
}
.chat-conversation-body .chat-compose-row {
    align-items: center;
}
.chat-conversation-body .chat-compose-row textarea {
    height: 44px;
    min-height: 44px;
    max-height: 44px;
    overflow-y: auto;
    white-space: nowrap;
}
.chat-conversation-body > .site-copyright { display: none; }
.group-chat-topbar {
    min-height: 56px;
    box-sizing: border-box;
    align-items: center;
    justify-content: flex-start;
    gap: .65rem;
    padding-block: .4rem;
}
.group-chat-topbar .chat-back-link {
    display: grid;
    width: 36px;
    height: 40px;
    place-items: center;
    flex: 0 0 36px;
    font-size: 1.3rem;
}
@media (max-width: 520px) {
    .chat-compact-header { grid-template-columns: 30px minmax(0, 1fr); gap: .2rem; min-height: 68px; padding-inline: .5rem; }
    .chat-compact-header .chat-back-link { width: 30px; }
    .chat-compact-header .chat-person-heading { gap: .45rem; }
    .chat-compact-header .chat-person-heading .profile-avatar { width: 32px; height: 32px; flex-basis: 32px; }
    .chat-compact-header .chat-profile-avatar-link,
    .chat-compact-header .chat-person-heading > .profile-avatar { margin: 6px; }
    .chat-compact-header .chat-notification-indicator { width: 32px; height: 32px; flex-basis: 32px; }
    .chat-compact-header .chat-notification-indicator img { width: 30px; height: 30px; }
    .chat-compact-header .chat-actions-menu > summary { width: 38px; height: 38px; }
    .chat-conversation-page { padding-inline: .5rem; }
}
@media (max-width: 720px) {
    .settings-sidebar a { grid-template-columns: 42px minmax(0,1fr) auto; }
    .settings-navigation-asset { width: 36px; height: 36px; }
}
.e2ee-security-settings { border-top: 1px solid var(--rfd-border-e2e8ed, #e2e8ed); margin-top: 22px; padding-top: 20px; }
.e2ee-security-settings h3 { margin: 0 0 6px; }
.e2ee-security-settings > p { margin: 0 0 12px; }
.e2ee-security-device-state { font-weight: 700; color: var(--rfd-text-244f62, #244f62); }
.e2ee-security-settings form[hidden] { display: none; }
.e2ee-secondary-devices { margin-top: 18px; }
.e2ee-secondary-devices h4 { margin: 0 0 8px; }
.e2ee-secondary-device-row { align-items: center; border-top: 1px solid var(--rfd-border-e2e8ed, #e2e8ed); display: flex; gap: 12px; justify-content: space-between; padding: 12px 0; }
.e2ee-secondary-device-row strong, .e2ee-secondary-device-row small { display: block; }
.e2ee-secondary-device-row small { color: var(--rfd-text-5c6f7b, #5c6f7b); margin-top: 3px; }
.e2ee-device-actions { align-items: stretch; display: flex; flex-direction: column; gap: 7px; }
.e2ee-device-history-button { background: var(--rfd-surface-ffffff, #fff); border: 1px solid #244f62; border-radius: 9px; color: var(--rfd-text-173c4c, #173c4c); font: inherit; font-weight: 700; padding: 8px 12px; }
.e2ee-device-remove-button { background: var(--rfd-surface-ffffff, #fff); border: 1px solid #d12828; border-radius: 9px; color: var(--rfd-text-b52222, #b52222); font: inherit; font-weight: 700; padding: 8px 12px; }
.admin-app-health-link .navigation-icon { width: 22px; height: 22px; object-fit: contain; }
.admin-quick-access .admin-app-health-link.health-status-healthy,
.small-header .admin-quick-access .admin-app-health-link.health-status-healthy {
    background: #ccebd8 !important;
    border-color: #25834d !important;
}
.admin-quick-access .admin-app-health-link.health-status-degraded,
.small-header .admin-quick-access .admin-app-health-link.health-status-degraded {
    background: #ffe3a3 !important;
    border-color: #c58a00 !important;
}
.admin-quick-access .admin-app-health-link.health-status-down,
.admin-quick-access .admin-app-health-link.health-status-critical,
.small-header .admin-quick-access .admin-app-health-link.health-status-down,
.small-header .admin-quick-access .admin-app-health-link.health-status-critical {
    background: #ffd0d0 !important;
    border-color: #c62828 !important;
}
.health-manual-actions { border-top: 1px solid var(--rfd-border-d9e0e7, #d9e0e7); margin-top: 18px; padding-top: 16px; }
.health-manual-actions form { margin: 0; }
.health-manual-actions button { background: #244f62; border: 0; border-radius: 10px; color: #fff; cursor: pointer; font: inherit; font-weight: 800; padding: 10px 15px; }
.health-manual-actions button:disabled { cursor: wait; opacity: .65; }
.health-manual-actions p { color: var(--rfd-text-536779, #536779); margin: 8px 0 0; }
.health-action-message { border-radius: 9px; font-weight: 800; padding: 9px 11px; }
.health-action-message.status-healthy { background: #e1f4e8; color: #17663a; }
.health-action-message.status-degraded { background: #fff0c8; color: #765100; }
.provider-poll-row { border-top: 1px solid var(--rfd-border-e2e7ec, #e2e7ec); padding: 14px 0; }
.provider-poll-row > div:first-child { display: flex; flex-direction: column; float: left; }
.provider-poll-row > .moderation-status { float: right; }
.provider-poll-row dl { clear: both; display: grid; grid-template-columns: repeat(auto-fit,minmax(120px,1fr)); gap: 8px; padding-top: 12px; }
.provider-poll-row dt { color: var(--rfd-text-536779, #536779); font-size: .8rem; font-weight: 700; }
.provider-poll-row dd { margin: 2px 0 0; }
.app-health-page{padding-bottom:48px}.app-health-page>section>h2{margin:28px 0 14px}.health-overview,.health-service-card,.health-incidents{background:var(--rfd-surface-ffffff, #fff);border:1px solid var(--rfd-border-d9e0e7, #d9e0e7);border-radius:18px;box-shadow:0 3px 12px rgba(15,35,55,.07)}.health-overview{padding:22px;border-left:6px solid #718096}.health-overview.status-healthy{border-left-color:#25834d}.health-overview.status-degraded{border-left-color:#c58a00}.health-overview.status-down{border-left-color:#c62828}.health-eyebrow{color:var(--rfd-text-536779, #536779);font-weight:700}.health-overview h2{margin:4px 0;color:var(--rfd-text-10243a, #10243a)}.health-overview dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:10px;margin:18px 0}.health-overview dl div,.health-metrics div{background:var(--rfd-surface-f4f7f9, #f4f7f9);border-radius:10px;padding:10px}.health-overview dt,.health-metrics dt{color:var(--rfd-text-536779, #536779);font-size:.8rem}.health-overview dd,.health-metrics dd{margin:3px 0 0;font-weight:800}.health-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.health-service-card{padding:18px;border-top:5px solid #718096}.health-service-card.status-healthy{border-top-color:#25834d}.health-service-card.status-degraded{border-top-color:#c58a00}.health-service-card.status-down{border-top-color:#c62828}.health-card-heading,.health-incident>div:first-child{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.health-card-heading h3,.health-incident h3{margin:0;color:var(--rfd-text-10243a, #10243a)}.health-card-heading span{font-weight:800;text-transform:uppercase;font-size:.75rem}.health-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.health-service-card small{display:block;margin:12px 0;color:var(--rfd-text-617487, #617487)}.health-incidents{margin-top:28px;padding:20px}.health-incident{border-top:1px solid var(--rfd-border-e2e7ec, #e2e7ec);padding:18px 0}.health-incident dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px}.health-incident dt{font-weight:700;color:var(--rfd-text-536779, #536779)}.health-incident dd{margin:2px 0 0}.health-pagination{display:flex;justify-content:space-between}@media(max-width:600px){.health-overview,.health-incidents{padding:16px}.health-card-grid{grid-template-columns:1fr}}
.health-service-filter{display:block;color:inherit;text-decoration:none;border-radius:18px}.health-service-filter .health-service-card{height:100%;box-sizing:border-box}.health-service-filter:hover .health-service-card,.health-service-filter:focus-visible .health-service-card{transform:translateY(-2px);box-shadow:0 7px 18px rgba(15,35,55,.14)}.health-service-filter.is-selected .health-service-card{outline:3px solid var(--rfd-accent-c9282b, #c9282b);outline-offset:2px}.health-filter-label{color:var(--rfd-link-551a8b, #551a8b);text-decoration:underline}.health-section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:28px 0 14px}.health-section-heading h2{margin:0}.health-incidents .health-section-heading{margin:0 0 14px;flex-wrap:wrap}
.health-summary-filter{display:block;color:inherit;text-decoration:none}.health-overview dl div{transition:transform .15s ease,box-shadow .15s ease}.health-overview dl div:hover,.health-overview dl div:focus-within{transform:translateY(-2px);box-shadow:0 5px 12px rgba(15,35,55,.12)}.health-overview dl div.is-selected{outline:3px solid var(--rfd-accent-c9282b, #c9282b);outline-offset:2px}
