@font-face { font-family: "DM Sans"; src: url("../vendor/fonts/dm-sans-latin-400-normal.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("../vendor/fonts/dm-sans-latin-500-normal.woff2") format("woff2"); font-style: normal; font-weight: 500; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("../vendor/fonts/dm-sans-latin-600-normal.woff2") format("woff2"); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("../vendor/fonts/dm-sans-latin-700-normal.woff2") format("woff2"); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: "Outfit"; src: url("../vendor/fonts/outfit-latin-600-normal.woff2") format("woff2"); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: "Outfit"; src: url("../vendor/fonts/outfit-latin-700-normal.woff2") format("woff2"); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: "Outfit"; src: url("../vendor/fonts/outfit-latin-800-normal.woff2") format("woff2"); font-style: normal; font-weight: 800; font-display: swap; }

:root {
    --wc-bg: #f1f7f4;
    --wc-surface: #ffffff;
    --wc-surface-soft: #f7fbf8;
    --wc-ink: #092126;
    --wc-muted: #607478;
    --wc-line: #dce6e0;
    --wc-brand: #ff7043;
    --wc-brand-dark: #d95732;
    --wc-mint: #bce9d8;
    --wc-yellow: #ffcf48;
    --wc-radius: 8px;
    --wc-shadow: 0 14px 32px rgba(9, 33, 38, .08);
    --wc-shadow-soft: 0 6px 18px rgba(9, 33, 38, .06);
    --wc-sidebar-width: 20rem;
    --wc-topbar-height: 4.5rem;
}

* { box-sizing: border-box; }
html, body { min-width: 0; min-height: 100%; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--wc-ink); background: var(--wc-bg); font-family: "DM Sans", system-ui, sans-serif; line-height: 1.55; }
h1, h2, h3, h4, h5, h6, .brand-mark, .sidebar-brand strong, .brand-lockup strong, .wait-value { font-family: "Outfit", "DM Sans", system-ui, sans-serif; letter-spacing: normal; }
a { color: #2f7062; text-decoration: none; }
a:hover { color: #0d5549; }
[hidden] { display: none !important; }

.skip-link { position: fixed; z-index: 2000; top: .75rem; left: .75rem; transform: translateY(-150%); padding: .65rem .9rem; color: #092126; border-radius: 7px; background: var(--wc-yellow); font-weight: 800; }
.skip-link:focus { transform: translateY(0); }
.app-shell { display: grid; grid-template-columns: var(--wc-sidebar-width) minmax(0, 1fr); min-height: 100vh; align-items: stretch; }
.app-stage { min-width: 0; }
.park-sidebar { position: sticky; z-index: 30; top: 0; display: flex; height: 100vh; overflow: hidden; flex-direction: column; color: #fff; border-right: 0; background: #092126; box-shadow: none; }
.sidebar-brand-row { display: flex; flex: 0 0 auto; min-height: 5.25rem; align-items: center; border-bottom: 1px solid rgba(188, 233, 216, .16); }
.sidebar-brand { display: flex; min-width: 0; flex: 1; align-items: center; gap: .75rem; padding: 1.15rem 1.2rem; color: #fff; }
.sidebar-brand:hover { color: #fff; }
.sidebar-brand strong { display: block; font-size: 1.03rem; font-weight: 900; }
.sidebar-brand small { display: block; margin-top: .18rem; color: #9fc3b8; font-size: .7rem; font-weight: 650; }
.brand-mark { display: inline-grid; width: 2.35rem; height: 2.35rem; flex: 0 0 auto; place-items: center; color: var(--wc-yellow); border: 1px solid #31575b; border-radius: 7px; background: #12383d; box-shadow: none; font-size: 1rem; font-weight: 900; }
.brand-logo-wrap {
    display: inline-flex;
    width: 3.25rem;
    height: 2.55rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: .28rem;
    border: 1px solid #31575b;
    border-radius: 7px;
    background: #032427;
}

.brand-logo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.sidebar-meta { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: .75rem; padding: .8rem 1rem; color: #8fb4aa; border-top: 1px solid rgba(188, 233, 216, .15); background: #071b20; font-size: .66rem; }
.sidebar-meta a { color: #bce9d8; font-weight: 750; }

.app-topbar { position: sticky; z-index: 25; top: 0; min-height: var(--wc-topbar-height); border-bottom: 1px solid var(--wc-line); background: rgba(255, 255, 255, .96); box-shadow: 0 3px 14px rgba(9, 33, 38, .04); backdrop-filter: blur(12px); }
.topbar-inner { display: flex; min-height: var(--wc-topbar-height); max-width: 1560px; align-items: center; gap: 1rem; margin: 0 auto; padding: .65rem clamp(1rem, 2vw, 2rem); }
.topbar-context { gap: .05rem; }
.topbar-context span { color: var(--wc-muted); font-size: .68rem; font-weight: 750; text-transform: uppercase; }
.topbar-context strong { color: var(--wc-ink); font-size: .92rem; font-weight: 850; }
.brand-lockup { display: inline-flex; align-items: center; gap: .55rem; color: var(--wc-ink); }
.brand-lockup:hover { color: var(--wc-ink); }
.brand-lockup strong { font-size: .9rem; font-weight: 900; }
.brand-lockup .brand-mark { width: 2rem; height: 2rem; color: var(--wc-yellow); }
.brand-badge { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .7rem; color: #176044; border: 1px solid #c7e5d8; border-radius: 7px; background: #edf8f2; font-size: .72rem; font-weight: 800; }
.live-indicator, .metric-live-dot { display: inline-block; width: .48rem; height: .48rem; flex: 0 0 auto; border-radius: 50%; background: #35b97b; box-shadow: 0 0 0 4px rgba(53, 185, 123, .13); }
.menu-toggle { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.45rem; padding: .45rem .7rem; color: #fff; border: 1px solid #092126; border-radius: 7px; background: #092126; font-size: .78rem; font-weight: 800; }
.menu-toggle:hover { background: #16454a; }
.global-search-trigger { display: inline-flex; min-height: 2.45rem; align-items: center; gap: .55rem; padding: .45rem .7rem; color: #315b56; border: 1px solid #cbdcd5; border-radius: 7px; background: #f7fbf8; font-size: .76rem; font-weight: 800; }
.global-search-trigger:hover { color: #092126; border-color: #9fc8ba; background: #edf8f2; }
.global-search-trigger kbd { min-width: 1.35rem; padding: .08rem .3rem; color: #607478; border: 1px solid #d8e3de; border-radius: 4px; background: #fff; box-shadow: none; font: 700 .65rem system-ui; }
.global-search-dialog { width: min(100% - 2rem, 42rem); max-height: min(80vh, 42rem); padding: 0; color: #092126; border: 1px solid #b9d1c8; border-radius: 8px; background: #fff; box-shadow: 0 28px 70px rgba(9, 33, 38, .28); }
.global-search-dialog::backdrop { background: rgba(4, 21, 25, .6); backdrop-filter: blur(3px); }
.global-search-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; border-bottom: 1px solid #dce6e0; }
.global-search-head .eyebrow { margin-bottom: .15rem; }
.global-search-head strong { display: block; font-size: 1rem; }
.global-search-head button { display: inline-grid; width: 2.35rem; height: 2.35rem; flex: 0 0 auto; place-items: center; color: #315b56; border: 1px solid #cbdcd5; border-radius: 7px; background: #f7fbf8; }
.global-search-form { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .6rem; margin: 1rem; padding: .35rem .35rem .35rem .8rem; border: 1.5px solid #9fc8ba; border-radius: 8px; background: #f7fbf8; }
.global-search-form > i { color: #2f7062; }
.global-search-form input { min-width: 0; min-height: 2.55rem; padding: .35rem 0; color: #092126; border: 0; outline: 0; background: transparent; font-weight: 700; }
.global-search-form button { min-height: 2.45rem; padding: .45rem .75rem; color: #fff; border: 0; border-radius: 6px; background: #ff7043; font-size: .74rem; font-weight: 850; }
.global-search-results { display: grid; max-height: 26rem; overflow: auto; padding: 0 1rem 1rem; }
.global-result { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem; padding: .75rem; color: #092126; border-top: 1px solid #e5ede9; }
.global-result:first-child { border-top: 0; }
.global-result:hover, .global-result:focus { color: #092126; background: #edf8f2; }
.global-result-icon { display: inline-grid; width: 2rem; height: 2rem; place-items: center; color: #17604f; border-radius: 6px; background: #dff3e9; }
.global-result strong, .global-result small { display: block; }
.global-result strong { font-size: .84rem; }
.global-result small { margin-top: .08rem; color: #607478; font-size: .68rem; }
.global-result > i { color: #d95732; }
.global-search-empty { padding: 1.2rem .75rem; color: #607478; text-align: center; font-size: .8rem; }
.app-main { min-width: 0; max-width: 1560px; margin: 0 auto; padding: clamp(1rem, 2.2vw, 2.15rem); }

/* Park directory */
.country-nav { display: flex; min-height: 0; flex: 1; flex-direction: column; width: 100%; }
.sidebar-head { display: grid; flex: 0 0 auto; gap: .75rem; padding: 1rem; border-bottom: 1px solid rgba(188, 233, 216, .15); background: #0d2e34; }
.sidebar-head-top { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.sidebar-head .eyebrow { margin: 0 0 .18rem; color: #8ebbb0; }
.sidebar-head strong { display: block; color: #fff; font-size: .9rem; font-weight: 800; }
.sidebar-search-wrap { position: relative; display: flex; align-items: center; }
.sidebar-search-wrap > i { position: absolute; z-index: 1; top: 50%; left: .82rem; color: #55766f; font-size: .86rem; transform: translateY(-50%); pointer-events: none; }
.sidebar-search { width: 100%; min-height: 2.7rem; padding: .55rem .8rem .55rem 2.35rem; color: #092126; border: 1px solid #aec8bf; border-radius: 7px; background: #fff; box-shadow: 0 2px 7px rgba(4, 21, 25, .1); font-size: .82rem; font-weight: 650; text-align: left; }
.sidebar-search::placeholder { color: #6d817b; font-weight: 600; opacity: 1; }
.sidebar-search:hover { border-color: #d6e8e1; }
.sidebar-search:focus { border-color: var(--wc-yellow); box-shadow: 0 0 0 .2rem rgba(255, 207, 72, .2); }
.country-nav-list { min-height: 0; flex: 1; overflow: auto; padding: .65rem .55rem 1rem; scrollbar-color: #31575b transparent; scrollbar-width: thin; }
.country-nav-group + .country-nav-group { margin-top: .15rem; }
.country-nav-title { display: flex; min-height: 2.7rem; align-items: center; justify-content: space-between; gap: .45rem; padding: .45rem .5rem; color: #dceee7; border: 1px solid transparent; border-radius: 7px; font-size: .74rem; font-weight: 850; text-transform: uppercase; }
.country-nav-title:hover, .country-nav-title.is-active { color: #092126; border-color: #bce9d8; background: #bce9d8; box-shadow: none; }
.country-nav-link { min-width: 0; flex: 1; color: inherit; }
.country-nav-link:hover { color: inherit; }
.country-title-text { display: flex; min-width: 0; align-items: center; gap: .55rem; }
.country-title-text > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.flag-image { width: 1.3rem; height: 1.3rem; flex: 0 0 auto; object-fit: contain; filter: none; }
.flag-fallback { display: inline-grid; width: 1.1rem; height: 1.1rem; place-items: center; color: #bce9d8; border: 1px solid #658b84; border-radius: 50%; font-size: .45rem; }
.country-actions { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .25rem; }
.country-count { min-width: 1.55rem; padding: .08rem .3rem; color: #b9d8cf; border-radius: 5px; background: rgba(255, 255, 255, .09); text-align: center; font-size: .66rem; }
.country-nav-title:hover .country-count, .country-nav-title.is-active .country-count { color: #145a4d; background: rgba(255, 255, 255, .72); }
.country-toggle { display: inline-grid; width: 1.55rem; height: 1.55rem; padding: 0; place-items: center; color: inherit; border: 0; border-radius: 5px; background: transparent; font-size: .8rem; font-weight: 900; }
.country-toggle:hover { background: rgba(255, 255, 255, .2); }
.country-park-links { display: grid; gap: .08rem; margin: .2rem 0 .5rem 1rem; padding-left: .55rem; border-left: 1px solid rgba(188, 233, 216, .16); }
.country-park-item { display: flex; min-width: 0; align-items: center; gap: .2rem; }
.country-park-link { display: flex; min-width: 0; flex: 1; align-items: center; gap: .5rem; padding: .44rem .5rem; color: #bad2ca; border-radius: 6px; font-size: .8rem; font-weight: 650; }
.country-park-link > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.country-park-link:hover, .country-park-link.is-active { color: #fff; background: rgba(255, 255, 255, .09); }
.park-link-dot { width: .35rem; height: .35rem; flex: 0 0 auto; border-radius: 50%; background: #557a74; }
.country-park-link.is-active .park-link-dot { background: var(--wc-yellow); box-shadow: 0 0 0 3px rgba(255, 207, 72, .12); }
.favorite-toggle { flex: 0 0 auto; padding: .25rem .35rem; color: #769991; border: 0; border-radius: 5px; background: transparent; font-size: .61rem; font-weight: 800; }
.favorite-toggle:hover, .favorite-toggle.is-active { color: #092126; background: var(--wc-yellow); }
.park-submenu { display: grid; gap: .08rem; margin: 0 0 .4rem 1.2rem; }
.park-submenu-link { padding: .32rem .5rem; color: #83aaa0; border-radius: 5px; font-size: .7rem; font-weight: 750; }
.park-submenu-link:hover, .park-submenu-link.is-active { color: #092126; background: #e8f5ef; }
.country-empty { margin: .3rem 0 .6rem 1.55rem; color: #799c93; font-size: .72rem; }
.sidebar-saved { margin-bottom: .5rem; padding: .65rem; border: 1px solid rgba(188, 233, 216, .16); border-radius: 7px; background: rgba(255, 255, 255, .05); }
.sidebar-saved-title { margin: 0 0 .45rem; color: #bce9d8; font-size: .67rem; font-weight: 850; text-transform: uppercase; }
.sidebar-saved-list { display: grid; gap: .18rem; }
.sidebar-saved-row { display: flex; align-items: center; gap: .4rem; }
.sidebar-saved-row a { min-width: 0; flex: 1; overflow: hidden; color: #e7f4ef; font-size: .76rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-saved-remove { padding: 0; color: #ffcf48; border: 0; background: transparent; font-size: .6rem; }

/* Shared controls */
.eyebrow { margin: 0 0 .5rem; color: #2f7062; font-size: .68rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.eyebrow .live-indicator { margin-right: .28rem; }
.btn { min-height: 2.55rem; border-radius: 7px; font-weight: 800; }
.btn-primary { --bs-btn-bg: #ff7043; --bs-btn-border-color: #ff7043; --bs-btn-hover-bg: #d95732; --bs-btn-hover-border-color: #d95732; --bs-btn-active-bg: #bd4829; --bs-btn-active-border-color: #bd4829; box-shadow: none; }
.btn-outline-secondary { --bs-btn-color: #315b56; --bs-btn-border-color: #b9d1c8; --bs-btn-hover-color: #092126; --bs-btn-hover-bg: #e8f5ef; --bs-btn-hover-border-color: #9fc8ba; }
.form-label { color: #244842; font-size: .82rem; font-weight: 800; }
.form-control, .form-select { min-height: 2.7rem; color: #092126; border: 1.5px solid #b9d1c8; border-radius: 7px; background-color: #fff; font-weight: 600; }
.form-control::placeholder { color: #7b918a; opacity: 1; }
.form-control:focus, .form-select:focus { color: #092126; border-color: #2f7062; box-shadow: 0 0 0 .2rem rgba(47, 112, 98, .14); }
.section-help { color: var(--wc-muted); font-size: .76rem; font-weight: 650; }
.empty-state { padding: 1.25rem; color: #526b65; border: 1px dashed #b9d1c8; border-radius: 7px; background: #f7fbf8; }
.alert-warning { color: #725019; border-color: #f1d79b; background: #fff5d8; }

/* Home */
.home-dashboard, .park-dashboard, .ride-dashboard, .calendar-dashboard, .attendance-dashboard, .legal-dashboard { display: grid; gap: 1.25rem; }
.home-hero { position: relative; overflow: hidden; padding: clamp(1.6rem, 3.5vw, 3.25rem); color: #fff; border-radius: var(--wc-radius); background: #092126; box-shadow: var(--wc-shadow); }
.home-hero::after { content: ""; position: absolute; right: -3rem; bottom: -5rem; width: 23rem; height: 13rem; border: 2rem solid rgba(188, 233, 216, .09); border-bottom: 0; border-radius: 50% 50% 0 0; transform: rotate(-8deg); pointer-events: none; }
.home-hero-copy { position: relative; z-index: 1; max-width: 48rem; }
.home-hero .eyebrow { color: #bce9d8; }
.home-hero h1 { max-width: 46rem; margin: 0; color: #fff; font-size: clamp(2.35rem, 5vw, 4.25rem); font-weight: 900; line-height: 1.02; }
.home-hero h1 span { color: var(--wc-yellow); }
.home-hero-copy > p:last-child { max-width: 44rem; margin: 1.1rem 0 1.6rem; color: #c7d9d3; font-size: 1rem; line-height: 1.65; }
.home-finder { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(14rem, 1.25fr) minmax(12rem, .75fr) auto; align-items: end; gap: .65rem; max-width: 68rem; padding: .75rem; border: 1px solid rgba(255, 255, 255, .18); border-radius: 8px; background: #fff; }
.finder-field { display: grid; gap: .28rem; }
.finder-field label { color: #526b65; font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.finder-field > div { position: relative; }
.finder-field > div > i { position: absolute; left: .7rem; top: .65rem; color: #607478; font-size: .85rem; }
.finder-field input, .finder-field select { width: 100%; min-height: 2.55rem; padding: .45rem .65rem; color: #092126; border: 1px solid #dce6e0; border-radius: 6px; outline: 0; background: #f7fbf8; font: 650 .82rem "Segoe UI", system-ui, sans-serif; }
.finder-field input { padding-left: 2.15rem; }
.finder-field input:focus, .finder-field select:focus { border-color: #2f7062; box-shadow: 0 0 0 .18rem rgba(47, 112, 98, .12); }
.finder-submit { display: inline-flex; min-height: 2.55rem; align-items: center; justify-content: center; gap: .6rem; padding: .55rem 1rem; color: #fff; border: 0; border-radius: 6px; background: #ff7043; font-size: .8rem; font-weight: 850; white-space: nowrap; }
.finder-submit:hover { background: #d95732; }
.home-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--wc-line); border-radius: var(--wc-radius); background: #fff; box-shadow: var(--wc-shadow-soft); }
.home-metrics > div { display: flex; min-height: 5.4rem; align-items: baseline; gap: .5rem; padding: 1.2rem 1.4rem; }
.home-metrics > div + div { border-left: 1px solid var(--wc-line); }
.home-metrics strong { color: #092126; font-size: 1.5rem; font-weight: 900; }
.home-metrics span { color: #607478; font-size: .78rem; font-weight: 650; }
.home-metrics .metric-live-dot { align-self: center; }
.dashboard-section, .wait-dashboard, .analytics-dashboard, .calendar-panel, .attendance-panel, .legal-page { padding: clamp(1.25rem, 2.5vw, 2rem); border: 1px solid var(--wc-line); border-radius: var(--wc-radius); background: #fff; box-shadow: var(--wc-shadow-soft); }
.dashboard-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.35rem; }
.dashboard-section-head h2 { margin: 0; color: #092126; font-size: clamp(1.35rem, 2vw, 1.8rem); font-weight: 900; }
.dashboard-section-head > p { max-width: 27rem; margin: 0; color: #607478; font-size: .8rem; text-align: right; }
.country-directory-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; }
.country-directory-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .7rem; padding: .9rem; color: #092126; border: 1px solid #dce6e0; border-radius: 7px; background: #f9fcfa; }
.country-directory-card:hover { color: #092126; border-color: #9fc8ba; background: #edf8f2; }
.country-directory-flag { display: inline-grid; width: 2.15rem; height: 2.15rem; place-items: center; border-radius: 6px; background: #fff; }
.country-directory-flag img { width: 1.8rem; height: 1.8rem; object-fit: contain; }
.country-directory-card strong, .country-directory-card small { display: block; }
.country-directory-card strong { overflow: hidden; font-size: .84rem; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.country-directory-card small { margin-top: .12rem; color: #607478; font-size: .7rem; }
.directory-arrow { color: #d95732; font-weight: 900; }
.regional-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.top-park-card { overflow: hidden; border: 1px solid #dce6e0; border-radius: 7px; background: #fff; box-shadow: none; }
.top-park-header { display: flex; min-height: 4.25rem; align-items: center; justify-content: space-between; gap: .75rem; padding: .85rem 1rem; border-bottom: 1px solid #dce6e0; background: #f7fbf8; }
.top-park-header > div { display: grid; gap: .12rem; }
.top-park-header > div span { color: #607478; font-size: .66rem; font-weight: 750; text-transform: uppercase; }
.top-park-header strong { color: #092126; font-size: .96rem; font-weight: 900; }
.top-park-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid #e5ede9; background: #edf7f1; }
.top-park-summary span { padding: .65rem .8rem; color: #607478; font-size: .62rem; text-align: center; }
.top-park-summary span + span { border-left: 1px solid #dce6e0; }
.top-park-summary strong { display: block; color: #092126; font-size: .82rem; }
.data-state { display: inline-flex; width: fit-content; padding: .28rem .45rem; border-radius: 5px; font-size: .62rem; font-weight: 850; white-space: nowrap; }
.data-state-live, .data-state-current { color: #0f6b51; background: #e4f6ed; }
.data-state-stale { color: #96501c; background: #fff0dc; }
.data-state-unknown { color: #536763; background: #e8efec; }
.country-result-card.is-live-refreshing .country-result-stats { color: #758783; background: #f4f8f6; }
.country-result-card.is-live-refreshing .country-result-stats strong { color: #758783; }
.top-park-table { display: grid; }
.top-park-row { display: grid; grid-template-columns: minmax(0, 1fr) 7rem; min-height: 4rem; align-items: center; gap: .75rem; padding: .65rem 1rem; border-bottom: 1px solid #e8efeb; background: #fff; font-size: .82rem; font-weight: 650; }
.top-park-row:nth-child(odd):not(.table-head) { background: #fafcfa; }
.table-head { min-height: 2.55rem; color: #607478; background: #edf7f1; font-size: .65rem; font-weight: 850; text-transform: uppercase; }
.top-park-row .wait-pill { justify-self: end; }
.top-park-row > span:first-child small { display: block; margin-top: .12rem; color: #72867f; font-size: .65rem; font-weight: 500; }
.card-data-note { margin: 0; padding: .65rem 1rem; color: #72867f; font-size: .68rem; }
.top-park-actions { display: flex; padding: .75rem 1rem; border-top: 1px solid #e4ece8; background: #f7fbf8; }
.top-park-actions a { display: flex; width: 100%; align-items: center; justify-content: space-between; color: #2f7062; font-size: .76rem; font-weight: 850; }
.top-park-card > .empty-state { margin: 1rem; }
.results-hero { padding: clamp(1.4rem, 3vw, 2.4rem); color: #fff; border-radius: var(--wc-radius); background: #092126; }
.back-link { display: inline-flex; align-items: center; gap: .4rem; margin-bottom: 1.5rem; color: #bce9d8; font-size: .76rem; font-weight: 750; }
.back-link:hover { color: #fff; }
.results-hero .eyebrow { color: #bce9d8; }
.results-hero h1 { margin: 0; color: #fff; font-size: clamp(1.8rem, 3.5vw, 3rem); font-weight: 900; }
.results-hero > p:last-of-type { margin: .55rem 0 0; color: #b8ccc5; }
.results-finder { margin-top: 1.35rem; }
.results-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.results-toolbar > div { display: grid; gap: .1rem; }
.results-toolbar strong { font-family: "Outfit", sans-serif; font-size: 1.05rem; }
.results-toolbar span { color: #607478; font-size: .72rem; }
.results-toolbar select { min-width: 15rem; }
.country-park-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.country-result-card { display: grid; min-height: 13rem; align-content: space-between; padding: 1rem; color: #092126; border: 1px solid #dce6e0; border-radius: 7px; background: #f9fcfa; }
.country-result-card:hover { color: #092126; border-color: #9fc8ba; background: #edf8f2; box-shadow: none; }
.country-result-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.country-result-head > small { color: #2f7062; font-size: .63rem; font-weight: 800; text-transform: uppercase; }
.country-result-main { display: grid; gap: .22rem; }
.country-result-main strong { font-size: .98rem; font-weight: 900; }
.country-result-main > span { color: #607478; font-size: .74rem; }
.country-result-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: .85rem; border: 1px solid #dce6e0; border-radius: 6px; background: #fff; }
.country-result-stats > span { padding: .48rem .35rem; color: #607478; font-size: .57rem; text-align: center; }
.country-result-stats > span + span { border-left: 1px solid #e5ede9; }
.country-result-stats strong { display: block; color: #092126; font-size: .7rem; }
.result-action { display: flex; align-items: center; justify-content: space-between; margin-top: 1.2rem; color: #d95732; font-size: .73rem; font-weight: 850; }

/* Wait badges */
.wait-pill, .wait-pill .wait-value, .wait-pill small { color: #fff !important; border: 0; border-radius: 7px; text-shadow: none; }
.wait-pill { display: inline-flex; min-width: 6.5rem; min-height: 3.15rem; align-items: center; justify-content: center; flex-direction: column; gap: .1rem; padding: .45rem .7rem; box-shadow: none; }
.wait-value { font-size: 1rem; font-weight: 900; font-variant-numeric: tabular-nums; line-height: 1; }
.wait-pill small { font-family: "Segoe UI", system-ui, sans-serif; font-size: .58rem; font-weight: 750; }
.wait-danger { background: #b64036; }
.wait-warning { background: #d9681f; }
.wait-success { background: #187653; }
.wait-secondary { background: #526b65; }

/* Park and detail headers */
.park-overview-card, .detail-overview-card, .subpage-overview-card { overflow: hidden; padding: clamp(1.3rem, 2.8vw, 2.25rem); border: 1px solid var(--wc-line); border-top: 4px solid var(--wc-mint); border-radius: var(--wc-radius); background: #fff; box-shadow: var(--wc-shadow-soft); }
.park-overview-compact { padding: clamp(1.1rem, 2vw, 1.65rem); }
.park-overview-compact .park-breadcrumbs { margin-bottom: .8rem; }
.park-inline-context { display: flex; flex-wrap: wrap; gap: .55rem 1.2rem; margin-top: 1rem; padding-top: .85rem; border-top: 1px solid #e1eae5; }
.park-inline-context > span { display: inline-flex; align-items: center; gap: .4rem; color: #35564f; font-size: .72rem; }
.park-inline-context i { color: #d95732; }
.park-visit-details { margin-top: .75rem; border-top: 1px solid #e1eae5; }
.park-visit-details > summary { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .75rem 0 0; cursor: pointer; color: #2f7062; font-size: .72rem; font-weight: 800; list-style: none; }
.park-visit-details > summary::-webkit-details-marker { display: none; }
.park-visit-details > summary span { display: inline-flex; align-items: center; gap: .4rem; }
.park-visit-details[open] > summary > i { transform: rotate(180deg); }
.park-visit-details .park-condition-list { margin-top: .8rem; }
.park-breadcrumbs { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1.4rem; color: #7b8e88; font-size: .7rem; }
.park-breadcrumbs a { color: #2f7062; font-weight: 750; }
.park-overview-main, .detail-overview-main { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; }
.park-title-block, .detail-overview-main > div:first-child { max-width: 48rem; }
.park-title-block h1, .detail-overview-main h1, .subpage-title h1 { margin: 0; color: #092126; font-size: clamp(2rem, 3.5vw, 3.3rem); font-weight: 900; line-height: 1.08; }
.park-title-block > p:last-child, .detail-overview-main > div:first-child > p:last-child, .subpage-title > div > p:last-child { margin: .7rem 0 0; color: #607478; font-size: .92rem; }
.park-update-state { display: grid; max-width: 17rem; justify-items: end; gap: .35rem; color: #607478; text-align: right; }
.park-update-state small { font-size: .7rem; }
.park-condition-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 1.6rem; padding-top: 1.1rem; border-top: 1px solid #e1eae5; }
.park-condition-list > div { display: flex; min-width: 0; align-items: flex-start; gap: .6rem; padding: .4rem .85rem; }
.park-condition-list > div:first-child { padding-left: 0; }
.park-condition-list > div + div { border-left: 1px solid #e1eae5; }
.condition-icon { color: #d95732; font-size: 1rem; }
.park-condition-list small, .park-condition-list strong { display: block; }
.park-condition-list small { color: #7a8d87; font-size: .62rem; font-weight: 750; text-transform: uppercase; }
.park-condition-list strong { margin-top: .12rem; color: #284a43; font-size: .75rem; font-weight: 800; line-height: 1.35; }
.park-page-tabs { display: flex; gap: .3rem; overflow-x: auto; margin: 0; padding: .32rem; border: 1px solid var(--wc-line); border-radius: 7px; background: #fff; box-shadow: var(--wc-shadow-soft); }
.park-page-tabs a { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .4rem; padding: .58rem .8rem; color: #49655f; border-radius: 6px; font-size: .76rem; font-weight: 800; }
.park-page-tabs a:hover, .park-page-tabs a.is-active { color: #092126; background: #e8f5ef; }
.status-message { border-radius: 7px; }
.status-message .alert { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }

/* Park wait dashboard */
.wait-dashboard { display: grid; gap: 1.25rem; }
.wait-dashboard-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
.wait-dashboard-head h2 { margin: 0; color: #092126; font-size: clamp(1.35rem, 2.2vw, 1.9rem); font-weight: 900; }
.wait-dashboard-head > div > p:last-child { margin: .35rem 0 0; color: #607478; font-size: .8rem; }
.refresh-link { display: inline-flex; min-height: 2.4rem; align-items: center; gap: .4rem; padding: .45rem .7rem; color: #315b56; border: 1px solid #b9d1c8; border-radius: 7px; font-size: .75rem; font-weight: 800; white-space: nowrap; }
.refresh-link:hover { color: #092126; background: #e8f5ef; }
.wait-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid #dce6e0; border-radius: 7px; background: #f7fbf8; }
.wait-summary > div { display: grid; gap: .08rem; padding: 1rem 1.15rem; }
.wait-summary > div + div { border-left: 1px solid #dce6e0; }
.wait-summary span, .wait-summary > div > small { color: #607478; font-size: .62rem; font-weight: 750; text-transform: uppercase; }
.wait-summary strong { color: #092126; font-size: 1.45rem; font-weight: 900; }
.wait-summary strong small { color: #607478; font-size: .7rem; }
.ride-controls { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0; }
.ride-view-tabs { display: inline-flex; gap: .2rem; padding: .25rem; border: 1px solid #dce6e0; border-radius: 7px; background: #f1f8f4; }
.ride-view-tabs button { padding: .48rem .65rem; color: #526b65; border: 0; border-radius: 5px; background: transparent; font-size: .72rem; font-weight: 800; }
.ride-view-tabs button:hover, .ride-view-tabs button.is-active { color: #092126; background: #fff; box-shadow: 0 2px 6px rgba(9, 33, 38, .08); }
.ride-control-fields { display: flex; gap: .5rem; }
.filter-input-wrap { position: relative; }
.filter-input-wrap > i { position: absolute; z-index: 2; top: 50%; left: .85rem; color: #4f6b66; font-size: .9rem; pointer-events: none; transform: translateY(-50%); }
.filter-input-wrap > .form-control { padding-left: 2.45rem; }
.attraction-filter { width: min(18rem, 100%); padding-left: 2.1rem; }
.ride-sort { width: 11rem; }
.ride-list-shell { overflow: hidden; border: 1px solid #dce6e0; border-radius: 7px; }
.ride-list-head, .live-ride-row { display: grid; grid-template-columns: minmax(0, 1fr) 7rem 12rem; align-items: center; gap: 1rem; }
.ride-list-head { min-height: 2.6rem; padding: .55rem 1rem; color: #607478; background: #edf7f1; font-size: .62rem; font-weight: 850; text-transform: uppercase; }
.ride-list-head span:last-child { text-align: right; }
.live-rides-list { display: grid; gap: 0; }
.live-ride-row { min-height: 4.85rem; padding: .65rem 1rem; color: #092126; border: 0; border-radius: 0; background: #fff; box-shadow: none; }
.live-ride-row + .live-ride-row { border-top: 1px solid #e5ede9; }
.live-ride-row:nth-child(even) { background: #fafcfa; }
.live-ride-row:hover { color: #092126; border-color: #e5ede9; background: #f1f8f4; box-shadow: none; }
.live-ride-main-link { display: contents; color: inherit; }
.live-ride-main { display: flex; min-width: 0; align-items: center; gap: .7rem; }
.live-ride-main h3 { margin: 0; color: #092126; font-size: .9rem; font-weight: 850; }
.live-ride-main p { margin: .14rem 0 0; color: #607478; font-size: .7rem; }
.ride-status-dot, .history-status-dot { display: inline-block; width: .46rem; height: .46rem; flex: 0 0 auto; border-radius: 50%; }
.ride-status-dot.is-open, .history-status-dot.is-open { background: #35b97b; }
.ride-status-dot.is-closed, .history-status-dot.is-closed { background: #9caeaa; }
.ride-open-label { width: fit-content; padding: .24rem .42rem; border-radius: 5px; font-size: .64rem; font-weight: 800; }
.ride-open-label.is-open { color: #176044; background: #e4f6ed; }
.ride-open-label.is-closed { color: #536763; background: #e8efec; }
.ride-trend { display: inline-flex; width: fit-content; align-items: center; gap: .25rem; font-size: .66rem; font-weight: 800; }
.ride-trend-up { color: #a64c22; }
.ride-trend-down { color: #176044; }
.ride-trend-steady { color: #607478; }
.live-ride-meta { display: flex; align-items: center; justify-content: flex-end; gap: .6rem; }
.live-wait-link { display: inline-flex; min-width: 0; align-items: center; gap: .55rem; color: inherit; }
.live-wait-link:hover { color: inherit; }
.ride-log-inline { display: flex; flex: 0 0 auto; }
.ride-log-quick { display: inline-grid; width: 2.6rem; height: 2.6rem; flex: 0 0 auto; place-items: center; padding: 0; color: #176044; border: 1px solid #9fc8ba; border-radius: 7px; background: #fff; font-size: 1rem; }
.ride-log-quick:hover, .ride-log-quick:focus-visible { color: #fff; border-color: #187653; background: #187653; }
.ride-log-quick:focus-visible { outline: 3px solid rgba(24, 118, 83, .22); outline-offset: 2px; }
.live-ride-chevron { color: #d95732; font-size: 1rem; font-weight: 900; }
.area-accordion { overflow: hidden; border: 1px solid #dce6e0; border-radius: 7px; }
.area-item + .area-item { border-top: 1px solid #dce6e0; }
.area-item summary { display: flex; align-items: center; justify-content: space-between; padding: .85rem 1rem; cursor: pointer; color: #092126; background: #edf7f1; font-weight: 850; }
.area-item summary small { color: #607478; font-size: .7rem; }
.ride-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; padding: .8rem; }
.ride-card { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .8rem; color: #092126; border: 1px solid #dce6e0; border-radius: 7px; background: #fff; }
.ride-card:hover { color: #092126; border-color: #9fc8ba; background: #f7fbf8; }
.ride-card h3 { margin: 0; font-size: .83rem; font-weight: 850; }
.ride-card p { margin: .12rem 0 0; color: #607478; font-size: .68rem; }
.park-mode-controls { position: sticky; z-index: 18; top: calc(var(--wc-topbar-height) + .5rem); padding: .55rem; border: 1px solid #dce6e0; border-radius: 7px; background: rgba(255, 255, 255, .97); box-shadow: 0 5px 14px rgba(9, 33, 38, .08); backdrop-filter: blur(10px); }

/* Ride statistics */
.detail-overview-main { align-items: center; }
.detail-overview-compact { padding: clamp(1.1rem, 2vw, 1.65rem); }
.detail-overview-compact .park-breadcrumbs { margin-bottom: .8rem; }
.current-ride-status { display: grid; flex: 0 0 auto; justify-items: end; gap: .45rem; color: #607478; font-size: .7rem; font-weight: 800; }
.current-ride-status .wait-pill { min-width: 8rem; min-height: 4rem; }
.current-ride-status .wait-value { font-size: 1.25rem; }
.detail-meta-line { display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid #e1eae5; }
.detail-meta-line span { display: grid; gap: .12rem; color: #35564f; font-size: .78rem; }
.detail-meta-line b { color: #7a8d87; font-size: .6rem; text-transform: uppercase; }
.analytics-dashboard { display: grid; gap: 1.2rem; }
.analytics-head { margin-bottom: 0; }
.ride-range-tabs { display: flex; flex-wrap: wrap; gap: .35rem; }
.ride-range-tabs a { padding: .48rem .7rem; color: #49655f; border: 1px solid #cbded6; border-radius: 6px; background: #fff; font-size: .72rem; font-weight: 800; }
.ride-range-tabs a:hover, .ride-range-tabs a.is-active { color: #092126; border-color: #9fc8ba; background: #e8f5ef; }
.analytics-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid #dce6e0; border-radius: 7px; background: #f7fbf8; }
.analytics-kpi-grid > div { display: grid; gap: .25rem; padding: 1rem; }
.analytics-kpi-grid > div + div { border-left: 1px solid #dce6e0; }
.analytics-kpi-grid span { color: #607478; font-size: .62rem; font-weight: 750; text-transform: uppercase; }
.analytics-kpi-grid strong { color: #092126; font-size: 1.02rem; font-weight: 900; }
.analytics-content-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(15rem, .4fr); gap: 1rem; }
.ride-chart-card { display: grid; min-height: 20rem; gap: 1rem; padding: 1rem; border: 1px solid #dce6e0; border-radius: 7px; background: #fff; }
.ride-chart-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.ride-chart-head strong { color: #092126; font-size: .82rem; font-weight: 850; }
.ride-chart-head span { color: #607478; font-size: .7rem; }
.data-chart { width: 100%; height: 15rem; }
.ride-insight-panel { padding: 1rem; border: 1px solid #dce6e0; border-radius: 7px; background: #f7fbf8; }
.ride-insight-panel h3 { margin: 0 0 .85rem; color: #092126; font-size: .9rem; font-weight: 900; }
.ride-insight-panel dl { display: grid; gap: .1rem; margin: 0; }
.ride-insight-panel dl > div { display: grid; gap: .18rem; padding: .65rem 0; border-top: 1px solid #dce6e0; }
.ride-insight-panel dt { color: #607478; font-size: .62rem; text-transform: uppercase; }
.ride-insight-panel dd { margin: 0; color: #092126; font-size: .78rem; font-weight: 850; }
.data-quality { display: inline-flex; align-items: center; gap: .4rem; padding: .42rem .6rem; border-radius: 6px; font-size: .68rem; font-weight: 800; }
.data-quality-low { color: #7a5621; background: #fff2ce; }
.data-quality-medium { color: #315b56; background: #e8f5ef; }
.data-quality-high { color: #176044; background: #dff3e9; }
.typical-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.typical-grid article { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .15rem .7rem; padding: 1rem; border: 1px solid #dce6e0; border-radius: 7px; background: #f7fbf8; }
.typical-grid article > i { grid-row: 1 / span 2; color: #d95732; font-size: 1.2rem; }
.typical-grid article > span { color: #607478; font-size: .65rem; text-transform: uppercase; }
.typical-grid article > strong { font-family: "Outfit", sans-serif; font-size: .92rem; }
.typical-grid article small { display: block; margin-top: .1rem; color: #607478; font: 500 .65rem "DM Sans", sans-serif; }
.forecast-disclaimer { display: flex; align-items: flex-start; gap: .45rem; margin: 1rem 0 0; color: #526b65; font-size: .72rem; }
.history-section > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; list-style: none; }
.history-section > summary::-webkit-details-marker { display: none; }
.history-section > summary span > span, .history-section > summary strong { display: block; }
.history-section > summary .eyebrow { margin-bottom: .1rem; }
.history-section[open] > summary { margin-bottom: 1rem; }
.history-section[open] > summary > i { transform: rotate(180deg); }
.history-table { overflow: hidden; border: 1px solid #dce6e0; border-radius: 7px; }
.history-row { display: grid; grid-template-columns: 8rem minmax(8rem, 1fr) 9rem; align-items: center; gap: 1rem; min-height: 3.25rem; padding: .65rem 1rem; border-bottom: 1px solid #e5ede9; background: #fff; font-size: .75rem; }
.history-row:last-child { border-bottom: 0; }
.history-row > span:nth-child(2) { display: flex; align-items: center; gap: .4rem; }
.history-row strong { color: #092126; text-align: right; }
.history-head { min-height: 2.55rem; color: #607478; background: #edf7f1; font-size: .62rem; font-weight: 850; text-transform: uppercase; }
.history-head > span:last-child { text-align: right; }

/* Calendar and attendance */
.subpage-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.subpage-overview-compact { padding: clamp(1.1rem, 2vw, 1.65rem); }
.subpage-overview-compact .park-breadcrumbs { margin-bottom: .8rem; }
.subpage-title > strong { padding: .6rem .75rem; color: #176044; border: 1px solid #c7e5d8; border-radius: 7px; background: #edf8f2; font-size: .8rem; white-space: nowrap; }
.calendar-panel, .attendance-panel { display: grid; gap: 1.2rem; }
.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.calendar-step-nav { display: flex; align-items: center; gap: .7rem; }
.calendar-step-nav > a { display: inline-grid; width: 2.5rem; height: 2.5rem; place-items: center; color: #092126; border: 1px solid #b9d1c8; border-radius: 7px; background: #fff; font-weight: 900; }
.calendar-step-nav > a:hover { background: #e8f5ef; }
.calendar-step-nav > div { display: grid; min-width: 11rem; gap: .05rem; text-align: center; }
.calendar-step-nav span { color: #607478; font-size: .6rem; text-transform: uppercase; }
.calendar-step-nav strong { color: #092126; font-size: .92rem; }
.calendar-picker { display: flex; align-items: center; gap: .45rem; padding: 0; border: 0; background: transparent; }
.calendar-picker .form-select { min-width: 8rem; }
.calendar-info { display: flex; align-items: flex-start; gap: .65rem; margin: 0; padding: .75rem .85rem; color: #315b53; border: 1px solid #c7e3d7; border-radius: 7px; background: #edf8f2; font-size: .76rem; }
.calendar-info small { margin-left: auto; color: #607478; white-space: nowrap; }
.calendar-forecast-badge, .calendar-predicted { display: inline-flex; width: fit-content; padding: .2rem .4rem; color: #176044; border-radius: 5px; background: #fff; font-size: .6rem; font-weight: 850; }
.calendar-board { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); overflow: hidden; border: 1px solid #d5e4dd; border-radius: 7px; }
.calendar-weekday { padding: .7rem; color: #264a43; border-right: 1px solid #d5e4dd; background: #edf7f1; font-size: .72rem; font-weight: 850; }
.calendar-cell { display: grid; min-height: 8.3rem; align-content: start; gap: .38rem; padding: .7rem; border-top: 1px solid rgba(255, 255, 255, .48); border-right: 1px solid rgba(255, 255, 255, .48); }
.calendar-day-number { display: inline-grid; width: 1.75rem; height: 1.75rem; place-items: center; color: #092126; border-radius: 50%; background: rgba(255, 255, 255, .94); font-size: .72rem; font-weight: 850; }
.calendar-crowd, .calendar-hours, .calendar-note { display: inline-flex; width: fit-content; max-width: 100%; padding: .25rem .38rem; color: #294740; border-radius: 5px; background: rgba(255, 255, 255, .94); font-size: .66rem; font-weight: 800; }
.calendar-quiet { background: #86c97e; }
.calendar-light { background: #cce66a; }
.calendar-medium { background: #ffcf48; }
.calendar-busy { background: #f39a4c; }
.calendar-very-busy { background: #e76b4b; }
.calendar-closed { background: #dce6e0; }
.calendar-unknown, .calendar-outside { background: #edf2ef; }
.calendar-cell.is-outside { opacity: .5; }
.calendar-mobile-list { display: none; }
.calendar-legend { display: grid; grid-template-columns: auto minmax(6rem, 1fr) auto; align-items: center; gap: .75rem; color: #607478; font-size: .7rem; font-weight: 750; }
.legend-bar { height: .75rem; border-radius: 6px; background: linear-gradient(90deg, #86c97e 0%, #cce66a 34%, #ffcf48 62%, #e76b4b 100%); }
.attendance-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; gap: .75rem; }
.attendance-summary > div { display: grid; gap: .18rem; padding: 1rem; border: 1px solid #dce6e0; border-radius: 7px; background: #f7fbf8; }
.attendance-summary span, .attendance-summary small { color: #607478; font-size: .65rem; font-weight: 750; }
.attendance-summary strong { color: #092126; font-size: 1.15rem; font-weight: 900; }
.attendance-summary .is-positive { color: #176044; }
.attendance-summary .is-negative { color: #a53e36; }
.attendance-content-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(20rem, .75fr); align-items: start; gap: 1rem; }
.attendance-content-grid .history-row { grid-template-columns: 4rem minmax(7rem, 1fr) minmax(8rem, 1fr); }
.attendance-content-grid .history-row strong { text-align: left; }

/* Legal, error and footer */
.legal-header { padding: clamp(1.5rem, 3vw, 2.5rem); color: #fff; border-radius: 8px; background: #092126; }
.legal-header .eyebrow { color: #bce9d8; }
.legal-header h1 { margin: 0; color: #fff; font-size: clamp(2rem, 3.5vw, 3.2rem); font-weight: 900; }
.legal-header > p:last-child { margin: .5rem 0 0; color: #b8ccc5; }
.legal-page { max-width: none; }
.legal-content { max-width: 58rem; color: #314d47; line-height: 1.75; }
.legal-content h2, .legal-content h3 { margin: 2rem 0 .7rem; color: #092126; font-weight: 900; }
.legal-content p, .legal-content ul, .legal-content ol, .legal-content blockquote { margin-bottom: 1rem; }
.legal-content blockquote { padding: .75rem 1rem; border-left: 3px solid #ff7043; background: #fff4ee; }
.legal-meta { margin: 2rem 0 0; padding-top: 1rem; color: #607478; border-top: 1px solid #dce6e0; font-size: .76rem; }
.legal-pending { padding: 1rem; color: #4e6761; border: 1px dashed #b9d1c8; border-radius: 7px; background: #f7fbf8; }
.simple-page { display: grid; min-height: 60vh; place-items: center; }
.simple-page-card { width: min(100%, 36rem); padding: 2rem; border: 1px solid #dce6e0; border-radius: 8px; background: #fff; box-shadow: var(--wc-shadow); text-align: center; }
.simple-page-mark { display: inline-grid; width: 3rem; height: 3rem; margin-bottom: 1rem; place-items: center; color: #fff; border-radius: 7px; background: #ff7043; font-size: 1.4rem; font-weight: 900; }
.simple-page-card h1 { margin: 0; font-size: 1.8rem; font-weight: 900; }
.simple-page-card > p:not(.eyebrow) { margin: .7rem 0 1.3rem; color: #607478; }
.app-footer { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 1.5rem; margin-top: 1.5rem; padding: 1.2rem 0 .2rem; border-top: 1px solid #dce6e0; }
.footer-brand, .footer-source { display: grid; gap: .1rem; }
.footer-brand strong { color: #092126; font-size: .8rem; }
.footer-brand span, .footer-source span { color: #72867f; font-size: .65rem; }
.footer-source { text-align: right; }
.footer-legal { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; }
.footer-legal a, .footer-privacy-settings { color: #2f7062; font-size: .68rem; font-weight: 800; }
.footer-privacy-settings { padding: 0; border: 0; background: transparent; }
.qt-powered { color: #7a8c87; font-size: .62rem; font-weight: 600; }
.privacy-consent { position: fixed; z-index: 1200; right: 1rem; bottom: 1rem; display: flex; width: min(100% - 2rem, 46rem); align-items: flex-end; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid #b9d1c8; border-radius: 8px; background: #fff; box-shadow: 0 18px 42px rgba(9, 33, 38, .18); }
.privacy-consent strong { color: #092126; font-size: .9rem; }
.privacy-consent p { max-width: 32rem; margin: .35rem 0; color: #4e6761; font-size: .74rem; }
.privacy-consent a { color: #2f7062; font-size: .7rem; font-weight: 800; }
.privacy-consent-actions { display: flex; flex: 0 0 auto; gap: .45rem; }

.mobile-menu, .mobile-menu-backdrop { display: none; }
.mobile-menu-backdrop:not([hidden]) { position: fixed; z-index: 1100; inset: 0; display: block; background: rgba(9, 33, 38, .58); }
.mobile-menu:not([hidden]) { position: fixed; z-index: 1101; top: 0; bottom: 0; left: 0; display: flex; width: min(91vw, 23rem); overflow: hidden; flex-direction: column; color: #fff; background: #092126; box-shadow: 16px 0 40px rgba(0, 0, 0, .3); }
.mobile-menu-brand { flex: 0 0 auto; padding: .85rem 1rem; border-bottom: 1px solid rgba(188, 233, 216, .16); }
.mobile-menu .country-nav { min-height: 0; }
.mobile-menu .country-nav-list { overflow: auto; }
.sidebar-close-button { display: inline-grid; width: 2.2rem; height: 2.2rem; padding: 0; place-items: center; color: #092126; border: 0; border-radius: 7px; background: var(--wc-yellow); font-size: 1.35rem; }
.mobile-menu-open { overflow: hidden; }

@media (max-width: 1199.98px) {
    :root { --wc-sidebar-width: 18rem; }
    .country-directory-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .park-condition-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .park-condition-list > div:nth-child(4) { padding-left: 0; border-left: 0; }
    .park-condition-list > div:nth-child(n+4) { margin-top: .65rem; padding-top: .65rem; border-top: 1px solid #e1eae5; }
}

@media (max-width: 991.98px) {
    .app-shell { display: block; }
    .park-sidebar { position: fixed; z-index: 1101; inset: 0 auto 0 0; width: min(92vw, 23rem); height: 100dvh; transform: translateX(-105%); transition: transform .2s ease; box-shadow: 18px 0 45px rgba(0, 0, 0, .24); }
    .park-sidebar.is-open { transform: translateX(0); }
    .mobile-menu-backdrop:not([hidden]) { position: fixed; z-index: 1100; inset: 0; display: block; background: rgba(4, 21, 25, .58); }
    .sidebar-close-button { margin-right: .8rem; }
    .app-topbar { min-height: 4.25rem; }
    .topbar-inner { min-height: 4.25rem; }
    .app-main { padding: 1rem; }
    .brand-badge { font-size: .66rem; }
    .home-hero { padding: 1.7rem; }
    .home-finder { grid-template-columns: minmax(12rem, 1fr) minmax(10rem, .7fr) auto; }
    .country-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .regional-grid, .analytics-content-grid, .attendance-content-grid { grid-template-columns: 1fr; }
    .country-park-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ride-controls { align-items: stretch; flex-direction: column; }
    .ride-control-fields { width: 100%; }
    .filter-input-wrap { flex: 1; }
    .attraction-filter { width: 100%; }
    .calendar-toolbar { align-items: stretch; flex-direction: column; }
    .calendar-picker { width: 100%; }
    .calendar-picker > div { flex: 1; }
    .calendar-picker .form-select { width: 100%; }
    .planning-toolbar { position: sticky; z-index: 18; top: 4.65rem; padding: .65rem; border: 1px solid #dce6e0; border-radius: 7px; background: rgba(255, 255, 255, .97); box-shadow: 0 5px 14px rgba(9, 33, 38, .08); }
    .calendar-info { flex-wrap: wrap; }
    .calendar-info small { width: 100%; margin-left: 0; }
}

@media (max-width: 767.98px) {
    .home-dashboard, .park-dashboard, .ride-dashboard, .calendar-dashboard, .attendance-dashboard, .legal-dashboard { gap: .85rem; }
    .home-hero h1 { font-size: 2.45rem; }
    .home-finder { grid-template-columns: 1fr; }
    .finder-submit { width: 100%; }
    .home-metrics { grid-template-columns: 1fr; }
    .home-metrics > div { min-height: 3.8rem; padding: .8rem 1rem; }
    .home-metrics > div + div { border-top: 1px solid #dce6e0; border-left: 0; }
    .dashboard-section, .wait-dashboard, .analytics-dashboard, .calendar-panel, .attendance-panel, .legal-page { padding: 1rem; }
    .dashboard-section-head { align-items: flex-start; flex-direction: column; gap: .45rem; }
    .dashboard-section-head > p { max-width: none; text-align: left; }
    .results-toolbar { align-items: stretch; flex-direction: column; }
    .results-toolbar select { width: 100%; min-width: 0; }
    .park-overview-main, .detail-overview-main, .subpage-title { align-items: flex-start; flex-direction: column; gap: 1rem; }
    .park-update-state, .current-ride-status { justify-items: start; text-align: left; }
    .park-condition-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .park-condition-list > div { padding: .5rem 0; border: 0 !important; border-top: 1px solid #e1eae5 !important; }
    .park-condition-list > div:nth-child(odd) { padding-right: .7rem; }
    .park-condition-list > div:nth-child(even) { padding-left: .7rem; border-left: 1px solid #e1eae5 !important; }
    .wait-dashboard-head { flex-direction: column; gap: .8rem; }
    .wait-summary, .analytics-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .wait-summary > div:nth-child(3), .analytics-kpi-grid > div:nth-child(3) { border-top: 1px solid #dce6e0; border-left: 0; }
    .wait-summary > div:nth-child(4), .analytics-kpi-grid > div:nth-child(4) { border-top: 1px solid #dce6e0; }
    .ride-list-head { display: none; }
    .live-ride-row { grid-template-columns: minmax(0, 1fr) auto; gap: .6rem; }
    .live-ride-main { grid-column: 1; grid-row: 1; }
    .ride-trend { grid-column: 1; grid-row: 2; margin-left: 1.15rem; }
    .live-ride-meta { grid-column: 2; grid-row: 1 / span 2; }
    .ride-grid { grid-template-columns: 1fr; }
    .calendar-board { display: none; }
    .calendar-mobile-list { display: grid; gap: .65rem; }
    .calendar-mobile-card { padding: .8rem; border: 1px solid rgba(255, 255, 255, .45); border-radius: 7px; }
    .calendar-mobile-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .65rem; }
    .calendar-mobile-head strong { font-size: .78rem; }
    .calendar-mobile-head small, .calendar-mobile-head strong { display: block; }
    .calendar-mobile-head small { color: #526b65; font-size: .62rem; text-transform: uppercase; }
    .calendar-mobile-badges { display: flex; flex-wrap: wrap; gap: .4rem; }
    .attendance-summary { grid-template-columns: 1fr; }
    .typical-grid { grid-template-columns: 1fr; }
    .history-row { grid-template-columns: 6rem minmax(7rem, 1fr) 7rem; gap: .5rem; padding-inline: .7rem; }
    .app-footer { grid-template-columns: 1fr; align-items: flex-start; gap: .8rem; }
    .footer-legal { justify-content: flex-start; }
    .footer-source { text-align: left; }
}

@media (max-width: 575.98px) {
    .topbar-inner { gap: .55rem; padding-inline: .75rem; }
    .brand-badge { padding: .38rem .5rem; }
    .brand-badge .live-indicator { display: none; }
    .brand-badge { display: none; }
    .global-search-trigger { margin-left: auto !important; }
    .global-search-trigger span { display: none; }
    .global-search-dialog { width: calc(100% - 1rem); max-height: calc(100dvh - 1rem); }
    .global-search-form { grid-template-columns: auto minmax(0, 1fr); }
    .global-search-form button { grid-column: 1 / -1; width: 100%; }
    .home-hero { padding: 1.25rem; }
    .home-hero h1 { font-size: 2.05rem; }
    .home-hero-copy > p:last-child { font-size: .88rem; }
    .country-directory-grid, .country-park-grid { grid-template-columns: 1fr; }
    .top-park-header { align-items: flex-start; }
    .top-park-row { grid-template-columns: minmax(0, 1fr) 6.4rem; padding-inline: .8rem; }
    .park-overview-card, .detail-overview-card, .subpage-overview-card { padding: 1rem; }
    .park-title-block h1, .detail-overview-main h1, .subpage-title h1 { font-size: 1.8rem; }
    .park-condition-list { grid-template-columns: 1fr; }
    .park-condition-list > div { padding: .55rem 0 !important; border-top: 1px solid #e1eae5 !important; border-left: 0 !important; }
    .park-page-tabs a { padding: .52rem .62rem; font-size: .7rem; }
    .ride-view-tabs { width: 100%; overflow-x: auto; }
    .ride-view-tabs button { flex: 1 0 auto; }
    .ride-control-fields { flex-direction: column; }
    .park-inline-context { display: grid; grid-template-columns: 1fr; gap: .45rem; }
    .park-mode-controls { top: 4.65rem; }
    .ride-sort { width: 100%; }
    .live-ride-row { padding: .65rem .7rem; }
    .wait-pill { min-width: 6rem; }
    .live-ride-chevron { display: none; }
    .calendar-step-nav { justify-content: space-between; }
    .calendar-step-nav > div { min-width: 0; }
    .calendar-picker { display: grid; grid-template-columns: 1fr 1fr; }
    .calendar-picker .btn { grid-column: 1 / -1; }
    .history-table { overflow-x: auto; }
    .history-row { min-width: 28rem; }
    .privacy-consent { right: .7rem; bottom: .7rem; left: .7rem; width: auto; align-items: stretch; flex-direction: column; }
    .privacy-consent-actions { display: grid; grid-template-columns: 1fr; }
}

/* Unified readability and information layout */
:root {
    --wc-muted: #4f6763;
    --wc-line-strong: #c9d9d2;
}
.eyebrow { font-size: .74rem; line-height: 1.35; }
.section-help, .dashboard-section-head > p, .card-data-note, .forecast-disclaimer, .calendar-info, .leaderboard-note { font-size: .82rem; line-height: 1.55; }
.data-state, .data-quality, .calendar-forecast-badge, .calendar-predicted { font-size: .74rem; }
.member-dashboard, .member-public-page, .leaderboard-page { max-width: 84rem; gap: 1.2rem; }
.member-panel { padding: clamp(1.2rem, 2vw, 1.6rem); border-color: var(--wc-line-strong); }
.member-panel > header { margin-bottom: 1.15rem; }
.member-panel > header h2 { font-size: 1.35rem; }
.member-panel > header > span, .member-panel > header > a { color: var(--wc-muted); font-size: .78rem; font-weight: 750; }
.member-form { gap: 1.15rem; }
.member-form label, .ride-alert-form label, .ride-backdate label { font-size: .82rem; }
.member-form label > span { color: var(--wc-muted); font-size: .75rem; font-weight: 600; }
.member-form small, .member-check, .member-auth-links, .member-resend summary { font-size: .78rem; line-height: 1.45; }
.member-form .form-control, .member-form .form-select { min-height: 3rem; padding-block: .65rem; }
.member-tabs { gap: .4rem; padding: .45rem; }
.member-tabs a { min-height: 2.65rem; padding: .68rem .82rem; font-size: .8rem; }
.member-kpi-grid span, .profile-stat-grid span, .member-kpi-grid small { font-size: .76rem; }
.member-empty { display: grid; justify-items: center; gap: .35rem; padding: 1.4rem; font-size: .85rem; line-height: 1.55; }
.member-empty > i { color: #2f7062; font-size: 1.35rem; }
.member-compact-list small, .member-compact-list time, .member-ride-history span, .member-alert-list small,
.member-wishlist-grid small, .member-wishlist-grid span, .member-notification-list small,
.member-notification-list time, .member-session-list small, .achievement-grid small { font-size: .76rem; line-height: 1.45; }
.member-compact-list a { justify-content: flex-start; }
.member-compact-list a > span { min-width: 0; flex: 1; }
.member-compact-list time { flex: 0 0 auto; }
.member-ride-history article, .member-park-list article, .member-alert-list article { min-height: 4.25rem; padding: .9rem 1rem; }
.member-wishlist-grid article { min-height: 4.5rem; padding: .9rem; }
.member-primary-badge { font-size: .76rem; }
.member-notification-list a { min-height: 4.4rem; padding: .9rem; }
.member-session-list article { gap: .75rem; padding: .9rem 0; }

/* Public profile */
.public-profile-head { align-items: center; justify-content: space-between; padding: clamp(1.25rem, 2.4vw, 1.8rem); }
.public-profile-identity { display: flex; min-width: 0; align-items: center; gap: 1.15rem; }
.public-profile-copy { min-width: 0; }
.public-profile-copy h1 { margin: .12rem 0 .15rem; }
.profile-handle { margin: 0; color: var(--wc-muted); font-size: .9rem; }
.profile-handle span { padding-inline: .15rem; }
.profile-bio { max-width: 42rem; margin: .65rem 0 0; color: #304c47; font-size: .9rem; }
.profile-follow-counts { gap: 1.25rem; margin-top: .7rem; font-size: .8rem; }
.profile-stat-grid article { display: flex; min-width: 0; align-items: center; gap: .8rem; padding: 1.15rem 1.25rem; }
.profile-stat-grid article > i { display: grid; width: 2.35rem; height: 2.35rem; flex: 0 0 auto; place-items: center; color: #17604f; border-radius: 7px; background: #dff3e9; }
.profile-stat-grid article > span { display: grid; gap: .05rem; }
.profile-stat-grid article small { color: var(--wc-muted); font-size: .75rem; font-weight: 750; }
.profile-stat-grid article strong { color: var(--wc-ink); line-height: 1.15; }
.member-public-grid { align-items: start; }
.profile-activity-panel > header > span { white-space: nowrap; }
.profile-ride-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.profile-ride-list a { display: grid; grid-template-columns: 3.1rem minmax(0, 1fr) auto; min-height: 4.8rem; align-items: center; gap: .8rem; padding: .8rem; color: var(--wc-ink); border: 1px solid var(--wc-line); border-radius: 7px; background: var(--wc-surface-soft); }
.profile-ride-list a:hover { border-color: #9fc8ba; background: #edf8f2; }
.profile-ride-date { display: grid; min-height: 3.1rem; place-content: center; color: #17604f; border-radius: 7px; background: #dff3e9; text-align: center; }
.profile-ride-date strong { font-family: "Outfit", sans-serif; font-size: 1.25rem; line-height: 1; }
.profile-ride-date small { margin-top: .15rem; color: #386a60; font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.profile-ride-copy { min-width: 0; }
.profile-ride-copy strong, .profile-ride-copy small { display: block; }
.profile-ride-copy strong { overflow: hidden; font-size: .94rem; text-overflow: ellipsis; white-space: nowrap; }
.profile-ride-copy small { display: flex; align-items: center; gap: .3rem; margin-top: .18rem; color: var(--wc-muted); font-size: .76rem; }
.profile-ride-list a > i { color: #d95732; }
.profile-favorite-list { display: grid; gap: .35rem; }
.profile-favorite-list a { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .75rem; padding: .75rem .2rem; color: var(--wc-ink); border-top: 1px solid #e1eae5; }
.profile-favorite-list a:first-child { border-top: 0; }
.profile-favorite-list strong, .profile-favorite-list small { display: block; }
.profile-favorite-list strong { font-size: .9rem; }
.profile-favorite-list small { margin-top: .12rem; color: var(--wc-muted); font-size: .76rem; }
.profile-favorite-list a > i { color: #d95732; }
.achievement-grid article { min-height: 4.35rem; padding: .85rem; }

/* Multi-day visit planner */
.visit-planner-intro { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.4rem 1.55rem; color: #fff; border-radius: 8px; background: #092126; box-shadow: var(--wc-shadow-soft); }
.visit-planner-intro h1 { margin: .05rem 0 .25rem; color: #fff; font-size: 1.8rem; }
.visit-planner-intro p:last-child { max-width: 48rem; margin: 0; color: #bdd0ca; }
.visit-planner-intro .eyebrow { color: #bce9d8; }
.visit-planner-count { display: flex; align-items: center; gap: .75rem; min-width: 15rem; padding: .85rem 1rem; border-left: 3px solid var(--wc-yellow); border-radius: 6px; background: rgba(255, 255, 255, .08); }
.visit-planner-count > i { display: grid; width: 2.25rem; height: 2.25rem; flex: 0 0 auto; place-items: center; color: #092126; border-radius: 6px; background: var(--wc-yellow); font-size: 1rem; }
.visit-planner-count > span, .visit-planner-count strong, .visit-planner-count small { display: block; }
.visit-planner-count strong { color: #fff; font-size: 1rem; line-height: 1.2; }
.visit-planner-count small { margin-top: .12rem; color: #bfd1cb; font-size: .7rem; line-height: 1.35; }
.visit-planner-shell { display: grid; grid-template-columns: minmax(20rem, .8fr) minmax(24rem, 1.2fr); align-items: start; gap: 1rem; }
.visit-plan-create > header > i { color: #d95732; font-size: 1.4rem; }
.plan-date-range, .visit-add-settings { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem !important; }
.plan-date-range > div, .visit-add-settings > div { display: grid; gap: .35rem; }
.plan-range-hint { display: flex; align-items: center; gap: .4rem; margin: -.25rem 0 0; color: var(--wc-muted); font-size: .78rem; }
.plan-wishlist-options { gap: .6rem; padding: .9rem; background: #f7fbf8; }
.plan-wishlist-options legend { font-size: .8rem; }
.plan-wishlist-options > p { margin: -.1rem 0 .25rem; color: var(--wc-muted); font-size: .76rem; }
.plan-wishlist-options label { min-height: 2.8rem; padding: .45rem .55rem; border-radius: 6px; background: #fff; }
.plan-wishlist-options small { font-size: .72rem; }
.visit-plan-card-list { display: grid; gap: .65rem; }
.visit-plan-card { border: 1px solid var(--wc-line); border-radius: 8px; background: #f9fcfa; }
.visit-plan-card.is-active { border-color: #6fb49e; background: #edf8f2; box-shadow: inset 3px 0 0 #2f8f6f; }
.visit-plan-card > a { display: grid; grid-template-columns: 4rem minmax(0, 1fr) auto; align-items: center; gap: .85rem; padding: .85rem; color: var(--wc-ink); }
.visit-plan-date { display: grid; min-height: 4rem; place-content: center; border-radius: 7px; background: #092126; text-align: center; }
.visit-plan-date strong { color: #fff; font: 800 1.45rem/1 "Outfit", sans-serif; }
.visit-plan-date small { margin-top: .2rem; color: #bce9d8; font-size: .66rem; font-weight: 750; text-transform: uppercase; }
.visit-plan-card-copy { display: grid; min-width: 0; gap: .08rem; }
.visit-plan-card-copy > strong { overflow: hidden; font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.visit-plan-card-copy > span:not(.visit-plan-card-top, .visit-plan-progress) { color: #2f5b54; font-size: .82rem; }
.visit-plan-card-copy > small { color: var(--wc-muted); font-size: .72rem; }
.visit-plan-card-top { display: flex; justify-content: space-between; gap: .6rem; margin-bottom: .15rem; }
.visit-plan-card-top small { color: #2f7062; font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.visit-plan-progress, .visit-trip-progress > progress { display: block; width: 100%; height: .3rem; overflow: hidden; margin-top: .4rem; appearance: none; border: 0; border-radius: 4px; background: #dce6e0; }
.visit-plan-progress::-webkit-progress-bar, .visit-trip-progress > progress::-webkit-progress-bar { background: #dce6e0; }
.visit-plan-progress::-webkit-progress-value, .visit-trip-progress > progress::-webkit-progress-value { background: #2f8f6f; }
.visit-plan-progress::-moz-progress-bar, .visit-trip-progress > progress::-moz-progress-bar { background: #2f8f6f; }
.visit-plan-card > a > i { color: #d95732; }
.visit-trip-board { display: grid; gap: 1rem; padding: clamp(1.1rem, 2.2vw, 1.6rem); border: 1px solid var(--wc-line-strong); border-radius: 8px; background: #fff; box-shadow: var(--wc-shadow-soft); }
.visit-trip-head { display: grid; grid-template-columns: auto minmax(0, 1fr) 9rem auto; align-items: center; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--wc-line); }
.visit-trip-icon { display: grid; width: 3.25rem; height: 3.25rem; place-items: center; color: #17604f; border-radius: 8px; background: #dff3e9; font-size: 1.3rem; }
.visit-trip-title > span { color: #2f7062; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.visit-trip-title h2 { margin: .12rem 0; font-size: 1.55rem; }
.visit-trip-title p { margin: 0; color: var(--wc-muted); font-size: .84rem; }
.visit-trip-progress { display: grid; gap: .05rem; text-align: right; }
.visit-trip-progress strong { font: 800 1.25rem "Outfit", sans-serif; }
.visit-trip-progress span { color: var(--wc-muted); font-size: .72rem; }
.visit-trip-progress > progress { width: 100%; }
.visit-trip-edit { position: relative; }
.visit-trip-edit > summary { list-style: none; }
.visit-trip-edit > summary::-webkit-details-marker { display: none; }
.visit-trip-edit > form { position: absolute; z-index: 15; top: calc(100% + .5rem); right: 0; width: min(22rem, 80vw); padding: 1rem; border: 1px solid var(--wc-line-strong); border-radius: 8px; background: #fff; box-shadow: var(--wc-shadow); }
.visit-trip-notes { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .7rem; padding: .85rem 1rem; color: #315b56; border-radius: 7px; background: #fff7da; }
.visit-trip-notes i { color: #9b6b00; }
.visit-trip-notes p { margin: 0; font-size: .82rem; }
.visit-add-ride { border: 1px solid #9fc8ba; border-radius: 8px; background: #f5fbf8; }
.visit-add-ride > summary { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .9rem 1rem; cursor: pointer; list-style: none; }
.visit-add-ride > summary::-webkit-details-marker { display: none; }
.visit-add-ride > summary > span { display: flex; align-items: center; gap: .7rem; }
.visit-add-ride > summary > span > i { display: grid; width: 2rem; height: 2rem; place-items: center; color: #fff; border-radius: 6px; background: #2f8f6f; }
.visit-add-ride > summary strong, .visit-add-ride > summary small { display: block; }
.visit-add-ride > summary small { color: var(--wc-muted); font-size: .74rem; }
.visit-add-ride > form { display: grid; gap: 1rem; padding: 1rem; border-top: 1px solid #c9ded5; }
.visit-add-settings label, .visit-ride-picker > label { color: #244842; font-size: .8rem; font-weight: 800; }
.visit-ride-picker { display: grid; gap: .5rem; }
.visit-ride-picker .filter-input-wrap > .form-control { min-height: 3rem; padding-right: .9rem; border-color: #9fc8ba; background: #fff; }
.visit-ride-picker .filter-input-wrap > .form-control::placeholder { color: #708681; opacity: 1; }
.visit-ride-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 20rem; overflow: auto; gap: .45rem; padding: .2rem; }
.visit-ride-options > label { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .55rem; min-height: 3.3rem; padding: .6rem; cursor: pointer; border: 1px solid var(--wc-line); border-radius: 7px; background: #fff; }
.visit-ride-options > label:has(input:checked) { border-color: #2f8f6f; background: #e8f5ef; }
.visit-ride-options strong, .visit-ride-options small { display: block; }
.visit-ride-options strong { font-size: .82rem; }
.visit-ride-options small { color: var(--wc-muted); font-size: .7rem; }
.visit-ride-options em { color: #a16f00; font-size: .68rem; font-style: normal; font-weight: 750; }
.visit-ride-no-result { margin: 0; color: var(--wc-muted); font-size: .8rem; }
.visit-day-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); align-items: start; gap: .85rem; }
.visit-day-card { min-width: 0; overflow: visible; border: 1px solid var(--wc-line-strong); border-radius: 8px; background: #fff; }
.visit-day-card > header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .7rem; padding: .85rem; border-bottom: 1px solid var(--wc-line); background: #f7fbf8; }
.visit-day-number { display: grid; width: 2.8rem; height: 2.8rem; place-content: center; border-radius: 7px; background: #092126; text-align: center; }
.visit-day-number small { color: #bce9d8; font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.visit-day-number strong { color: #fff; font: 800 1.15rem/1 "Outfit", sans-serif; }
.visit-day-card > header > div > span { color: #2f7062; font-size: .7rem; font-weight: 800; }
.visit-day-card > header h3 { margin: 0; font-size: 1rem; }
.visit-day-count { display: grid; text-align: right; }
.visit-day-count strong { font-size: .92rem; }
.visit-day-count small { color: var(--wc-muted); font-size: .68rem; }
.visit-day-rides { display: grid; }
.visit-day-ride { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .65rem; min-height: 4.4rem; padding: .7rem .8rem; border-top: 1px solid #e5ede9; }
.visit-day-ride:first-child { border-top: 0; }
.visit-day-ride.is-complete { background: #f2faf6; }
.visit-day-ride-icon { display: grid; width: 2.15rem; height: 2.15rem; place-items: center; color: #17604f; border-radius: 6px; background: #dff3e9; }
.visit-day-ride-copy { min-width: 0; }
.visit-day-ride-copy span, .visit-day-ride-copy strong, .visit-day-ride-copy small { display: block; }
.visit-day-ride-copy span { color: #2f7062; font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.visit-day-ride-copy strong { overflow: hidden; font-size: .84rem; text-overflow: ellipsis; white-space: nowrap; }
.visit-day-ride-copy small { color: var(--wc-muted); font-size: .7rem; }
.visit-day-ride-actions { display: flex; align-items: center; gap: .3rem; }
.plan-complete-badge { display: inline-flex; align-items: center; gap: .3rem; color: #176044; font-size: .72rem; font-weight: 800; }
.visit-day-ride-actions details > summary { display: grid; width: 2.1rem; height: 2.1rem; place-items: center; cursor: pointer; list-style: none; border: 1px solid var(--wc-line); border-radius: 6px; background: #fff; }
.visit-day-ride-actions details > summary::-webkit-details-marker { display: none; }
.visit-day-ride-actions details > div { position: absolute; z-index: 12; top: calc(100% - .3rem); right: .7rem; display: grid; width: min(19rem, calc(100vw - 4rem)); gap: .65rem; padding: .8rem; border: 1px solid var(--wc-line-strong); border-radius: 8px; background: #fff; box-shadow: var(--wc-shadow); }
.visit-day-ride-actions details form { display: grid; gap: .55rem; }
.visit-day-ride-actions details label { display: grid; gap: .25rem; color: #244842; font-size: .74rem; font-weight: 800; }
.visit-day-empty { display: grid; min-height: 9rem; place-items: center; align-content: center; gap: .2rem; padding: 1rem; color: var(--wc-muted); text-align: center; }
.visit-day-empty i { color: #2f8f6f; font-size: 1.35rem; }
.visit-day-empty strong { color: var(--wc-ink); }
.visit-day-empty p { margin: 0; font-size: .76rem; }
.visit-trip-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem; padding-top: .25rem; }
.visit-trip-footer > details { color: #8b4237; font-size: .76rem; }
.visit-trip-footer > details summary { cursor: pointer; font-weight: 750; }
.visit-trip-footer > details form { max-width: 32rem; margin-top: .7rem; padding: .8rem; border: 1px solid #efd2cc; border-radius: 7px; background: #fff7f5; }
.visit-trip-footer > details p { margin: 0 0 .7rem; }

/* Friendly access and error states */
.access-state-page { display: grid; min-height: min(38rem, calc(100vh - 9rem)); place-items: center; }
.access-state-card { width: min(100%, 36rem); padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--wc-line-strong); border-radius: 8px; background: #fff; box-shadow: var(--wc-shadow); text-align: center; }
.access-state-icon { display: grid; width: 4rem; height: 4rem; margin: 0 auto 1rem; place-items: center; color: #17604f; border-radius: 8px; background: #dff3e9; font-size: 1.55rem; }
.access-state-card h1 { margin: .1rem 0 .6rem; font-size: clamp(1.65rem, 4vw, 2.2rem); }
.access-state-card > p:not(.eyebrow) { max-width: 30rem; margin: 0 auto; color: var(--wc-muted); }
.access-state-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin-top: 1.25rem; }

/* Consistent public data views */
.dashboard-section, .wait-dashboard, .analytics-dashboard, .calendar-panel, .attendance-panel, .legal-page { border-color: var(--wc-line-strong); }
.top-park-row, .live-ride-row, .history-row { min-height: 3.8rem; }
.top-park-row small, .live-ride-main p, .ride-trend, .ride-card p, .history-row, .calendar-hours, .calendar-note { font-size: .78rem; }
.wait-summary span, .wait-summary small, .analytics-kpi-grid span, .attendance-summary span, .attendance-summary small { font-size: .78rem; }
.park-breadcrumbs { font-size: .78rem; }
.park-title-block > p:last-child, .detail-overview-main > div:first-child > p:last-child, .subpage-title p { font-size: .88rem; line-height: 1.55; }
.ride-view-tabs button, .park-page-tabs a, .ride-range-tabs a { font-size: .8rem; }
.finder-field label, .leaderboard-filters label { font-size: .76rem; }
.finder-field input, .finder-field select, .finder-submit { font-size: .86rem; }
.leaderboard-user small, .leaderboard-details, .leaderboard-own-rank span, .leaderboard-rides small { font-size: .74rem; }

@media (max-width: 991.98px) {
    .visit-planner-shell { grid-template-columns: 1fr; }
    .visit-trip-head { grid-template-columns: auto minmax(0, 1fr) auto; }
    .visit-trip-progress { grid-column: 2; grid-row: 2; text-align: left; }
    .visit-trip-edit { grid-column: 3; grid-row: 1 / 3; }
}
@media (max-width: 767.98px) {
    .public-profile-identity { align-items: flex-start; }
    .profile-ride-list { grid-template-columns: 1fr; }
    .visit-planner-intro { align-items: flex-start; flex-direction: column; }
    .visit-planner-count { width: 100%; min-width: 0; }
    .visit-ride-options { grid-template-columns: 1fr; }
    .visit-day-ride { grid-template-columns: auto minmax(0, 1fr); }
    .visit-day-ride-actions { grid-column: 1 / -1; justify-content: flex-end; padding-top: .25rem; }
}
@media (max-width: 575.98px) {
    .public-profile-head, .public-profile-identity { width: 100%; }
    .public-profile-identity { display: grid; grid-template-columns: auto minmax(0, 1fr); }
    .public-profile-avatar { width: 4.5rem; height: 4.5rem; }
    .profile-follow-counts { grid-column: 1 / -1; }
    .profile-stat-grid article { padding: .9rem; }
    .profile-stat-grid article > i { width: 2rem; height: 2rem; }
    .profile-ride-list a { grid-template-columns: 2.8rem minmax(0, 1fr) auto; }
    .plan-date-range, .visit-add-settings { grid-template-columns: 1fr; }
    .visit-plan-card > a { grid-template-columns: 3.5rem minmax(0, 1fr) auto; gap: .65rem; padding: .7rem; }
    .visit-plan-date { min-height: 3.5rem; }
    .visit-trip-head { grid-template-columns: auto minmax(0, 1fr); }
    .visit-trip-icon { width: 2.7rem; height: 2.7rem; }
    .visit-trip-progress { grid-column: 1 / -1; grid-row: auto; text-align: left; }
    .visit-trip-edit { grid-column: 1 / -1; grid-row: auto; }
    .visit-trip-edit > summary { width: 100%; }
    .visit-trip-edit > form { position: static; width: 100%; margin-top: .6rem; box-shadow: none; }
    .visit-day-grid { grid-template-columns: 1fr; }
    .visit-trip-footer { align-items: stretch; flex-direction: column; }
    .visit-trip-footer .btn { width: 100%; }
}

/* Member experience */
.toplist-link, .topbar-login { display: inline-flex; min-height: 2.4rem; align-items: center; gap: .4rem; padding: .45rem .65rem; color: #315b56; font-size: .76rem; font-weight: 800; }
.toplist-link:hover, .topbar-login:hover { color: #092126; }
.topbar-register { min-height: 2.4rem; align-items: center; padding: .45rem .75rem; font-size: .75rem; font-weight: 800; }
.topbar-notifications { position: relative; display: inline-grid; width: 2.4rem; height: 2.4rem; flex: 0 0 auto; place-items: center; color: #315b56; border: 1px solid #cbdcd5; border-radius: 7px; background: #f7fbf8; }
.topbar-notifications span { position: absolute; top: -.35rem; right: -.35rem; display: grid; min-width: 1.15rem; height: 1.15rem; place-items: center; padding: 0 .2rem; color: #fff; border: 2px solid #fff; border-radius: 50%; background: #d95732; font-size: .58rem; font-weight: 900; }
.site-user-menu { position: relative; flex: 0 0 auto; }
.site-user-menu > summary { display: flex; min-height: 2.75rem; align-items: center; gap: .55rem; padding: .25rem .45rem; cursor: pointer; list-style: none; border: 1px solid #cbdcd5; border-radius: 7px; background: #fff; }
.site-user-menu > summary::-webkit-details-marker { display: none; }
.site-user-menu > summary img, .user-avatar-fallback { width: 2.15rem; height: 2.15rem; flex: 0 0 auto; border-radius: 50%; object-fit: cover; }
.user-avatar-fallback { display: inline-grid; place-items: center; color: #092126; background: #bce9d8; font-family: "Outfit", sans-serif; font-size: .72rem; font-weight: 800; }
.site-user-menu > summary > span { line-height: 1.1; }
.site-user-menu > summary strong, .site-user-menu > summary small { display: block; }
.site-user-menu > summary strong { max-width: 9rem; overflow: hidden; font-size: .74rem; text-overflow: ellipsis; white-space: nowrap; }
.site-user-menu > summary small { margin-top: .2rem; color: #607478; font-size: .6rem; }
.site-user-menu > summary > i { color: #607478; font-size: .7rem; }
.site-user-menu nav { position: absolute; z-index: 80; top: calc(100% + .55rem); right: 0; display: grid; width: 15.5rem; overflow: hidden; padding: .45rem; border: 1px solid #cbdcd5; border-radius: 8px; background: #fff; box-shadow: 0 18px 42px rgba(9, 33, 38, .18); }
.site-user-menu nav a, .site-user-menu nav button { display: flex; width: 100%; align-items: center; gap: .65rem; padding: .65rem .7rem; color: #244842; border: 0; border-radius: 6px; background: transparent; font-size: .76rem; font-weight: 750; text-align: left; }
.site-user-menu nav a:hover, .site-user-menu nav button:hover { color: #092126; background: #edf8f2; }
.site-user-menu nav .site-user-admin-link { color: #b74a2b; border-top: 1px solid #e1eae5; margin-top: .3rem; padding-top: .8rem; }
.site-user-menu nav form { margin-top: .25rem; border-top: 1px solid #e1eae5; padding-top: .25rem; }
.site-flash { max-width: 75rem; margin: 0 auto 1rem; border-radius: 7px; }
.sidebar-saved-row > i { color: var(--wc-yellow); font-size: .65rem; }

.member-auth-page { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(19rem, .75fr); max-width: 68rem; min-height: calc(100vh - 10rem); overflow: hidden; margin: 0 auto; border: 1px solid #dce6e0; border-radius: 8px; background: #fff; box-shadow: var(--wc-shadow); }
.member-auth-card { padding: clamp(1.4rem, 4vw, 3rem); }
.member-auth-brand { display: inline-flex; align-items: center; gap: .75rem; color: #092126; }
.member-auth-brand strong, .member-auth-brand small { display: block; }
.member-auth-brand small { margin-top: .15rem; color: #607478; font-size: .68rem; }
.member-auth-heading { margin: 2.4rem 0 1.35rem; }
.member-auth-heading h1 { margin: .15rem 0 .45rem; font-size: 2.3rem; }
.member-auth-heading p:last-child { max-width: 33rem; margin: 0; color: #607478; }
.member-form { display: grid; gap: 1rem; }
.member-form > div { display: grid; gap: .35rem; }
.member-form label, .ride-alert-form label, .ride-backdate label { color: #244842; font-size: .74rem; font-weight: 800; }
.member-form small { color: #607478; font-size: .66rem; }
.member-form .form-control, .member-form .form-select, .ride-alert-form .form-select, .ride-backdate .form-control, .profile-report .form-control, .profile-report .form-select { min-height: 2.75rem; color: #092126; border: 1px solid #b9d1c8; border-radius: 7px; background: #fff; }
.member-form .form-control:focus, .member-form .form-select:focus, .ride-alert-form .form-select:focus { border-color: #2f7062; box-shadow: 0 0 0 .22rem rgba(47, 112, 98, .15); }
.member-form-split { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem !important; }
.member-form-split > div { display: grid; gap: .35rem; }
.member-primary-action { min-height: 2.85rem; font-weight: 800; }
.member-auth-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; margin-top: 1rem; font-size: .75rem; }
.member-resend { margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid #e1eae5; }
.member-resend summary { cursor: pointer; color: #2f7062; font-size: .75rem; font-weight: 750; }
.member-resend form { display: grid; gap: .55rem; margin-top: .75rem; }
.member-resend form > div { display: flex; gap: .5rem; }
.member-auth-benefits { display: grid; align-content: center; padding: clamp(1.5rem, 4vw, 3rem); color: #fff; background: #092126; }
.member-auth-benefits .eyebrow { color: #bce9d8; }
.member-auth-benefits h2 { margin: .3rem 0 1.5rem; font-size: 2rem; }
.member-auth-benefits > div { display: grid; gap: .75rem; }
.member-auth-benefits > div > span { display: grid; grid-template-columns: 2.3rem minmax(0, 1fr); gap: .15rem .7rem; padding: .85rem 0; border-top: 1px solid rgba(188, 233, 216, .17); }
.member-auth-benefits i { grid-row: 1 / 3; color: var(--wc-yellow); font-size: 1.2rem; }
.member-auth-benefits strong, .member-auth-benefits small { display: block; }
.member-auth-benefits small { color: #a8cac0; font-size: .72rem; }
.member-honeypot { position: absolute; left: -9999px; }
.member-check { display: flex; align-items: flex-start; gap: .55rem; color: #315b56; font-size: .74rem; }
.member-check input { width: 1rem; height: 1rem; margin-top: .12rem; accent-color: #2f7062; }

.member-dashboard, .member-public-page, .leaderboard-page { display: grid; max-width: 78rem; gap: 1rem; margin: 0 auto; }
.member-profile-strip, .public-profile-head, .leaderboard-head { display: flex; align-items: center; gap: 1rem; padding: clamp(1.1rem, 2.5vw, 1.7rem); border: 1px solid #dce6e0; border-radius: 8px; background: #fff; box-shadow: var(--wc-shadow-soft); }
.member-profile-strip > div:nth-child(2) { min-width: 0; flex: 1; }
.member-profile-strip h1, .public-profile-head h1, .leaderboard-head h1 { margin: .1rem 0; font-size: 2rem; }
.member-profile-strip p, .public-profile-copy > span { margin: 0; color: #607478; }
.member-avatar { display: inline-grid; flex: 0 0 auto; place-items: center; overflow: hidden; color: #092126; border-radius: 50%; background: #bce9d8; font-family: "Outfit", sans-serif; font-weight: 800; }
.member-avatar img { width: 100%; height: 100%; object-fit: cover; }
.member-avatar-lg { width: 4.25rem; height: 4.25rem; font-size: 1.1rem; }
.member-avatar-xl { width: 8rem; height: 8rem; font-size: 1.8rem; }
.member-tabs { display: flex; overflow-x: auto; gap: .35rem; padding: .4rem; border: 1px solid #dce6e0; border-radius: 8px; background: #fff; scrollbar-width: thin; }
.member-tabs a { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .4rem; padding: .62rem .72rem; color: #49655f; border-radius: 6px; font-size: .72rem; font-weight: 800; }
.member-tabs a:hover, .member-tabs a.is-active { color: #092126; background: #dff3e9; }
.member-kpi-grid, .profile-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid #dce6e0; border-radius: 8px; background: #fff; }
.member-kpi-grid article, .profile-stat-grid article { display: grid; gap: .15rem; padding: 1.15rem; }
.member-kpi-grid article + article, .profile-stat-grid article + article { border-left: 1px solid #dce6e0; }
.member-kpi-grid span, .profile-stat-grid span { color: #607478; font-size: .68rem; font-weight: 750; }
.member-kpi-grid strong, .profile-stat-grid strong { font-family: "Outfit", sans-serif; font-size: 1.55rem; }
.member-kpi-grid small { color: #607478; font-size: .65rem; }
.member-kpi-grid .member-kpi-text { overflow: hidden; font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.member-dashboard-grid, .member-public-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.member-panel { min-width: 0; padding: 1.2rem; border: 1px solid #dce6e0; border-radius: 8px; background: #fff; box-shadow: 0 5px 15px rgba(9,33,38,.04); }
.member-panel-wide { grid-column: 1 / -1; }
.member-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.member-panel > header h2 { margin: .1rem 0 0; font-size: 1.25rem; }
.member-panel > header > a { font-size: .72rem; font-weight: 800; }
.member-empty { padding: 1.25rem; color: #607478; border: 1px dashed #b9d1c8; border-radius: 7px; background: #f7fbf8; text-align: center; }
.member-empty strong, .member-empty p { display: block; margin: 0; }
.member-favorite-grid, .member-wishlist-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.member-favorite-grid > a, .member-wishlist-grid article, .member-park-list article { border: 1px solid #dce6e0; border-radius: 7px; background: #f7fbf8; }
.member-favorite-grid > a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .15rem .6rem; padding: .8rem; color: #092126; }
.member-favorite-grid span, .member-favorite-grid strong { grid-column: 1; }
.member-favorite-grid span { color: #607478; font-size: .64rem; }
.member-favorite-grid i { grid-column: 2; grid-row: 1 / 3; align-self: center; color: #d95732; }
.member-compact-list, .member-notification-list, .member-session-list, .profile-ride-list, .profile-favorite-list { display: grid; }
.member-compact-list a, .profile-ride-list a, .profile-favorite-list a { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .7rem 0; color: #092126; border-top: 1px solid #e1eae5; }
.member-compact-list a:first-child, .profile-ride-list a:first-child, .profile-favorite-list a:first-child { border-top: 0; }
.member-compact-list strong, .member-compact-list small, .profile-ride-list strong, .profile-ride-list small, .profile-favorite-list span, .profile-favorite-list small { display: block; }
.member-compact-list small, .member-compact-list time, .profile-ride-list time, .profile-ride-list small, .profile-favorite-list small { color: #607478; font-size: .66rem; }
.achievement-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.achievement-grid article { display: grid; grid-template-columns: 2.3rem minmax(0, 1fr); align-items: center; gap: .65rem; padding: .75rem; border: 1px solid #dce6e0; border-radius: 7px; background: #f7fbf8; }
.achievement-grid i { display: grid; width: 2.3rem; height: 2.3rem; place-items: center; color: #805c00; border-radius: 7px; background: #ffedb3; }
.achievement-grid strong, .achievement-grid small { display: block; }
.achievement-grid small { color: #607478; font-size: .65rem; }
.avatar-upload-row { display: grid !important; grid-template-columns: 12rem minmax(0, 1fr); align-items: center; gap: 1.25rem !important; }
.avatar-crop-column { display: grid; justify-items: center; gap: .7rem; }
.avatar-crop-stage { position: relative; width: 11rem; max-width: 100%; overflow: hidden; aspect-ratio: 1; border: 1px solid #9fc8ba; border-radius: 50%; background: #dff3e9; box-shadow: 0 0 0 .35rem #edf8f2; touch-action: none; user-select: none; }
.avatar-crop-stage .member-avatar { width: 100%; height: 100%; font-size: 2rem; }
.avatar-crop-stage canvas:not([hidden]) { display: block; width: 100%; height: 100%; cursor: grab; }
.avatar-crop-stage canvas.is-dragging { cursor: grabbing; }
.avatar-crop-ring { position: absolute; inset: 0; border: 3px solid rgba(255, 255, 255, .95); border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(9, 33, 38, .22); pointer-events: none; }
.avatar-crop-controls { display: grid; width: 100%; grid-template-columns: 2.5rem minmax(0, 1fr) 2.5rem; align-items: center; gap: .45rem; }
.avatar-crop-controls button { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; padding: 0; color: #176044; border: 1px solid #b9d1c8; border-radius: 7px; background: #fff; }
.avatar-crop-controls input { width: 100%; accent-color: #187653; }
.avatar-upload-copy { align-content: center; }
.avatar-upload-copy p { margin: .4rem 0 0; color: #315b56; font-size: .74rem; line-height: 1.5; }
.avatar-upload-copy small { display: block; margin-top: .35rem; line-height: 1.45; }
.avatar-crop-status { display: block; min-height: 1rem; margin-top: .45rem; color: #176044; font-size: .7rem; font-weight: 750; }
.avatar-crop-status.is-error { color: #a53e36; }
.member-settings-panel + .member-settings-panel { margin-top: 0; }
.member-settings-form { max-width: 52rem; }
.member-inline-action { margin-top: 1rem; }
.ride-activity-grid { display: grid; grid-template-columns: repeat(30, minmax(.42rem, 1fr)); gap: .22rem; }
.ride-activity-grid span { aspect-ratio: 1; border-radius: 2px; background: #e4ece8; }
.activity-level-1 { background: #bce9d8 !important; }.activity-level-2 { background: #73c8a8 !important; }.activity-level-3 { background: #2f8f6f !important; }.activity-level-4 { background: #155c49 !important; }
.member-ride-history, .member-park-list, .member-alert-list, .visit-plan-list, .plan-detail { display: grid; gap: .65rem; }
.member-ride-history article, .member-park-list article, .member-alert-list article, .visit-plan-list article, .plan-detail article { display: flex; align-items: center; gap: .75rem; padding: .8rem; border: 1px solid #dce6e0; border-radius: 7px; background: #f7fbf8; }
.member-ride-history article > div, .member-alert-list article > span, .member-park-list article > a, .visit-plan-list article > a { min-width: 0; flex: 1; }
.member-ride-history strong, .member-ride-history span, .member-alert-list strong, .member-alert-list small, .member-park-list small, .member-park-list strong { display: block; }
.member-ride-history span, .member-alert-list small { color: #607478; font-size: .67rem; }
.member-ride-history form button, .member-alert-list form button, .member-wishlist-grid form button { display: grid; width: 2rem; height: 2rem; place-items: center; color: #607478; border: 0; border-radius: 6px; background: #fff; }
.member-park-list article > div, .visit-plan-list article > div { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
.member-primary-badge { display: inline-flex; align-items: center; gap: .35rem; color: #176044; font-size: .68rem; font-weight: 800; }
.member-wishlist-grid article { display: flex; align-items: center; padding: .75rem; }
.member-wishlist-grid article > a { min-width: 0; flex: 1; color: #092126; }
.member-wishlist-grid small, .member-wishlist-grid strong, .member-wishlist-grid span { display: block; }
.member-wishlist-grid small, .member-wishlist-grid span { color: #607478; font-size: .65rem; }
.plan-wishlist-options { display: grid; gap: .5rem; padding: .8rem; border: 1px solid #dce6e0; border-radius: 7px; }
.plan-wishlist-options legend { float: none; width: auto; padding: 0 .25rem; font-size: .72rem; font-weight: 800; }
.plan-wishlist-options label { display: flex; align-items: center; gap: .55rem; }
.plan-wishlist-options strong, .plan-wishlist-options small { display: block; }
.plan-wishlist-options small { color: #607478; }
.member-notification-list a { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; align-items: center; gap: .65rem; padding: .75rem; color: #092126; border-top: 1px solid #e1eae5; }
.member-notification-list a.is-unread { background: #edf8f2; }
.member-notification-list strong, .member-notification-list small { display: block; }
.member-notification-list small, .member-notification-list time { color: #607478; font-size: .65rem; }
.member-session-list article { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .5rem; padding: .7rem 0; border-top: 1px solid #e1eae5; }
.member-session-list strong, .member-session-list small { display: block; }.member-session-list small { color: #607478; font-size: .65rem; }
.member-danger-zone { margin-top: .75rem; border-top: 1px solid #e1eae5; padding-top: .75rem; }
.member-danger-zone summary { cursor: pointer; color: #a53e36; font-weight: 800; }
.member-danger-zone form { max-width: 38rem; margin-top: 1rem; }

.park-member-action { display: flex; justify-content: flex-end; margin-top: .8rem; }
.ride-member-tools { padding: 1rem; border: 1px solid #b9d1c8; border-radius: 8px; background: #edf8f2; }
.ridecount-quick-action, .ride-member-guest { display: flex; align-items: center; gap: .75rem; }
.ridecount-quick-action > span, .ride-member-guest > span { display: flex; min-width: 0; flex: 1; align-items: center; gap: .7rem; }
.ridecount-quick-action > span > i, .ride-member-guest > i { color: #d95732; font-size: 1.5rem; }
.ridecount-quick-action small, .ridecount-quick-action strong, .ride-member-guest strong, .ride-member-guest small { display: block; }
.ridecount-quick-action small, .ride-member-guest small { color: #607478; font-size: .68rem; }
.ride-member-secondary { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .8rem; padding-top: .8rem; border-top: 1px solid #c8ded5; }
.ride-alert-form { display: flex; align-items: center; gap: .45rem; }
.ride-alert-form .form-select { width: 6.8rem; min-height: 2.4rem; }
.ride-backdate { margin-top: .8rem; color: #315b56; font-size: .72rem; }
.ride-backdate summary { cursor: pointer; font-weight: 800; }
.ride-backdate form { display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(11rem, 1fr) auto; align-items: end; gap: .55rem; margin-top: .65rem; }
.ride-backdate-date { display: grid; gap: .35rem; }
.ride-time-option { overflow: hidden; border: 1px solid #b9d1c8; border-radius: 7px; background: #fff; }
.ride-time-option > summary { display: flex; min-height: 2.75rem; align-items: center; gap: .45rem; padding: .65rem .75rem; color: #315b56; list-style: none; }
.ride-time-option > summary::-webkit-details-marker { display: none; }
.ride-time-option > summary i { color: #187653; }
.ride-time-option[open] > summary { border-bottom: 1px solid #dce6e0; background: #f7fbf8; }
.ride-time-option > div { display: grid; gap: .35rem; padding: .65rem; }
.ride-backdate-help { grid-column: 1 / 3; margin: 0; color: #607478; font-size: .7rem; line-height: 1.45; }
.ride-backdate form > .btn { grid-column: 3; grid-row: 1; }
.ride-member-guest .btn { flex: 0 0 auto; }

.public-profile-head { align-items: flex-start; }
.public-profile-avatar { display: grid; width: 7.5rem; height: 7.5rem; flex: 0 0 auto; overflow: hidden; place-items: center; color: #092126; border-radius: 50%; background: #bce9d8; font-family: "Outfit", sans-serif; font-size: 2rem; font-weight: 800; }
.public-profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.public-profile-copy { min-width: 0; flex: 1; }.public-profile-copy > p:last-of-type { max-width: 42rem; margin: .7rem 0 0; }
.profile-follow-counts { display: flex; gap: 1rem; margin-top: .75rem; color: #607478; font-size: .72rem; }
.profile-follow-counts strong { color: #092126; }
.public-profile-actions { display: flex; gap: .5rem; }
.profile-report { max-width: 42rem; padding: .8rem; color: #607478; font-size: .72rem; }
.profile-report form { display: grid; gap: .55rem; margin-top: .6rem; }

.leaderboard-head { justify-content: space-between; }.leaderboard-head p { max-width: 48rem; margin: .35rem 0 0; color: #607478; }.leaderboard-head-icon { display: grid; width: 4.5rem; height: 4.5rem; flex: 0 0 auto; place-items: center; color: #805c00; border-radius: 8px; background: #ffedb3; font-size: 2rem; }
.leaderboard-periods { display: flex; overflow-x: auto; gap: .35rem; padding: .4rem; border: 1px solid #dce6e0; border-radius: 8px; background: #fff; }
.leaderboard-periods a { flex: 1 0 auto; padding: .65rem .8rem; color: #49655f; border-radius: 6px; font-size: .74rem; font-weight: 800; text-align: center; }.leaderboard-periods a.is-active { color: #092126; background: #dff3e9; }
.leaderboard-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; padding: 1rem; border: 1px solid #dce6e0; border-radius: 8px; background: #fff; }.leaderboard-filters label { display: block; margin-bottom: .3rem; color: #244842; font-size: .7rem; font-weight: 800; }.leaderboard-filters .form-select { border-color: #b9d1c8; }
.leaderboard-own-rank { display: flex; align-items: center; gap: .75rem; padding: .8rem 1rem; color: #092126; border: 1px solid #9fc8ba; border-radius: 8px; background: #dff3e9; }.leaderboard-own-rank span { color: #49655f; font-size: .68rem; font-weight: 800; }.leaderboard-own-rank strong { min-width: 0; flex: 1; }.leaderboard-own-rank.is-empty { display: grid; }
.leaderboard-list { overflow: hidden; border: 1px solid #dce6e0; border-radius: 8px; background: #fff; }
.leaderboard-list article { display: grid; grid-template-columns: 4rem minmax(12rem, 1fr) auto 7rem; align-items: center; gap: .75rem; padding: .8rem 1rem; border-top: 1px solid #e1eae5; }.leaderboard-list article:first-child { border-top: 0; }.leaderboard-list article.is-current { background: #edf8f2; }
.leaderboard-rank { color: #607478; font-family: "Outfit", sans-serif; font-size: 1rem; font-weight: 800; }.leaderboard-rank.is-podium { color: #a16f00; font-size: 1.2rem; }
.leaderboard-user { display: flex; min-width: 0; align-items: center; gap: .7rem; color: #092126; }.leaderboard-user > img, .leaderboard-user > span:first-child { display: grid; width: 3rem; height: 3rem; flex: 0 0 auto; place-items: center; border-radius: 50%; object-fit: cover; background: #bce9d8; font-weight: 800; }.leaderboard-user strong, .leaderboard-user small { display: block; }.leaderboard-user small { color: #607478; font-size: .66rem; }
.leaderboard-details { display: flex; gap: .8rem; color: #607478; font-size: .68rem; }.leaderboard-rides { color: #092126; font-family: "Outfit", sans-serif; font-size: 1.25rem; text-align: right; }.leaderboard-rides small { display: block; color: #607478; font: 600 .62rem "DM Sans", sans-serif; }.leaderboard-note { margin: 0; color: #607478; font-size: .7rem; text-align: center; }

@media (max-width: 991.98px) {
    .member-auth-page { grid-template-columns: 1fr; }.member-auth-benefits { display: none; }
    .leaderboard-list article { grid-template-columns: 3rem minmax(0, 1fr) 6rem; }.leaderboard-details { display: none; }
}
@media (max-width: 767.98px) {
    .member-dashboard-grid, .member-public-grid { grid-template-columns: 1fr; }.member-panel-wide { grid-column: auto; }
    .member-kpi-grid, .profile-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.member-kpi-grid article:nth-child(3), .profile-stat-grid article:nth-child(3) { border-top: 1px solid #dce6e0; border-left: 0; }.member-kpi-grid article:nth-child(4), .profile-stat-grid article:nth-child(4) { border-top: 1px solid #dce6e0; }
    .member-profile-strip, .public-profile-head { align-items: flex-start; flex-wrap: wrap; }.member-profile-strip > a, .public-profile-actions { width: 100%; }.public-profile-actions .btn, .public-profile-actions form { width: 100%; }.public-profile-actions button { width: 100%; }
    .member-favorite-grid, .member-wishlist-grid, .achievement-grid { grid-template-columns: 1fr; }
    .ride-activity-grid { grid-template-columns: repeat(20, minmax(.42rem, 1fr)); }
    .ridecount-quick-action, .ride-member-guest { align-items: stretch; flex-wrap: wrap; }.ridecount-quick-action > span, .ride-member-guest > span { width: 100%; flex-basis: 100%; }.ride-member-guest .btn { flex: 1; }
    .leaderboard-filters { grid-template-columns: 1fr; }.leaderboard-head-icon { display: none; }
}
@media (max-width: 575.98px) {
    .topbar-login { padding-inline: .3rem; }.topbar-notifications { width: 2.25rem; height: 2.25rem; }.site-user-menu > summary { min-height: 2.4rem; padding: .15rem .3rem; }.site-user-menu > summary > i { display: none; }.site-user-menu nav { position: fixed; top: 4.35rem; right: .65rem; left: .65rem; width: auto; }
    .member-auth-card { padding: 1.2rem; }.member-auth-heading { margin-top: 1.6rem; }.member-auth-heading h1 { font-size: 1.9rem; }.member-form-split { grid-template-columns: 1fr; }
    .member-profile-strip h1, .public-profile-head h1, .leaderboard-head h1 { font-size: 1.65rem; }.member-avatar-lg { width: 3.5rem; height: 3.5rem; }.public-profile-avatar { width: 5rem; height: 5rem; font-size: 1.25rem; }
    .member-tabs { margin-inline: -1rem; border-right: 0; border-left: 0; border-radius: 0; }.avatar-upload-row { grid-template-columns: 1fr; }.member-avatar-xl { width: 6rem; height: 6rem; }
    .ride-member-secondary, .ride-alert-form, .ride-backdate form { align-items: stretch; flex-direction: column; }.ride-member-secondary form, .ride-member-secondary .btn, .ride-alert-form .form-select, .ride-backdate .btn { width: 100%; }
    .leaderboard-list article { grid-template-columns: 2.5rem minmax(0, 1fr) 4.3rem; gap: .45rem; padding-inline: .65rem; }.leaderboard-user > img, .leaderboard-user > span:first-child { width: 2.35rem; height: 2.35rem; }.leaderboard-rides { font-size: 1rem; }.leaderboard-rank { font-size: .8rem; }
}

@media (max-width: 359.98px) {
    .topbar-inner { gap: .35rem; padding-inline: .5rem; }
    .brand-lockup { gap: 0; }
    .brand-lockup strong { display: none; }
    .menu-toggle { padding-inline: .55rem; }
    .global-search-trigger { padding-inline: .55rem; }
}

/* Mobile-first visit planner */
.member-dashboard-planner { max-width: 92rem; }
.member-dashboard-plan-focus { gap: 0; }
.visit-plan-overview { display: grid; gap: .85rem; }
.visit-plan-overview-head { display: grid; gap: .85rem; padding: 1rem; color: #fff; border-radius: 8px; background: #092126; }
.visit-plan-overview-head h1 { margin: .05rem 0 .15rem; color: #fff; font-size: 1.65rem; }
.visit-plan-overview-head p:last-child { margin: 0; color: #bed1cb; font-size: .82rem; }
.visit-plan-overview-head .eyebrow { color: #bce9d8; }
.visit-plan-overview-back { display: inline-flex; align-items: center; gap: .35rem; margin-bottom: .35rem; color: #bce9d8; font-size: .7rem; font-weight: 800; }
.visit-plan-overview-back:hover { color: #fff; }
.visit-plan-overview-head .btn { width: 100%; }
.visit-plan-library { padding: .85rem; }
.visit-plan-library > header { margin-bottom: .75rem; }
.visit-plan-library > header > span { color: #49655f; font-size: .72rem; font-weight: 800; }
.visit-plan-card > a { grid-template-columns: 3.35rem minmax(0, 1fr) auto; gap: .65rem; padding: .7rem; }
.visit-plan-date { min-height: 3.35rem; }
.visit-plan-date strong { font-size: 1.2rem; }
.visit-plan-card-copy > strong { font-size: .92rem; }
.visit-plan-card-top { justify-content: flex-start; }
.visit-plan-card-top small + small::before { content: "·"; margin-right: .45rem; color: #78908a; }
.visit-plan-create { padding: 0; scroll-margin-top: calc(var(--wc-topbar-height) + 1rem); }
.visit-plan-create > summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .7rem; padding: .9rem; cursor: pointer; list-style: none; }
.visit-plan-create > summary::-webkit-details-marker { display: none; }
.visit-plan-create-icon { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; color: #fff; border-radius: 7px; background: #2f8f6f; }
.visit-plan-create > summary span:nth-child(2), .visit-plan-create > summary small, .visit-plan-create > summary strong, .visit-plan-create > summary em { display: block; }
.visit-plan-create > summary small { color: #2f7062; font-size: .64rem; font-weight: 850; text-transform: uppercase; }
.visit-plan-create > summary strong { font-size: .95rem; }
.visit-plan-create > summary em { margin-top: .1rem; color: #607478; font-size: .68rem; font-style: normal; }
.visit-plan-create > summary > i { color: #607478; transition: transform .2s ease; }
.visit-plan-create[open] > summary > i { transform: rotate(180deg); }
.visit-plan-create > form { padding: .9rem; border-top: 1px solid #dce6e0; }
.plan-date-range, .visit-add-settings { grid-template-columns: 1fr; }

.visit-plan-focus { min-width: 0; }
.visit-focus-bar { position: sticky; z-index: 20; top: calc(var(--wc-topbar-height) + .35rem); display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .5rem; margin-bottom: .6rem; padding: .45rem; border: 1px solid #cbdcd5; border-radius: 8px; background: rgba(255,255,255,.96); box-shadow: 0 5px 18px rgba(9,33,38,.09); backdrop-filter: blur(10px); }
.visit-focus-bar a { display: inline-flex; min-height: 2.45rem; align-items: center; gap: .35rem; padding: .45rem .55rem; color: #244842; border-radius: 6px; background: #edf7f1; font-size: .72rem; font-weight: 850; }
.visit-focus-bar > strong { overflow: hidden; font-size: .78rem; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.visit-trip-board { gap: .75rem; padding: .75rem; }
.visit-trip-head { grid-template-columns: minmax(0, 1fr) auto; gap: .65rem; padding-bottom: .75rem; }
.visit-trip-icon { display: none; }
.visit-trip-title { min-width: 0; }
.visit-trip-title h1 { margin: .1rem 0; overflow-wrap: anywhere; font-size: 1.35rem; }
.visit-trip-title > span { font-size: .66rem; }
.visit-trip-title p { overflow: hidden; font-size: .74rem; text-overflow: ellipsis; white-space: nowrap; }
.visit-trip-progress { grid-column: 1 / -1; grid-row: 2; grid-template-columns: auto 1fr; align-items: center; gap: .05rem .5rem; text-align: left; }
.visit-trip-progress strong { font-size: 1rem; }
.visit-trip-progress > progress { grid-column: 1 / -1; margin-top: .15rem; }
.visit-trip-edit { grid-column: 2; grid-row: 1; }
.visit-trip-edit > summary { min-width: 2.5rem; padding: .5rem; }
.visit-trip-edit > summary span { display: none; }
.visit-trip-edit > form { position: fixed; z-index: 90; inset: auto .75rem .75rem; width: auto; max-height: calc(100vh - 6rem); overflow: auto; }
.visit-trip-notes { grid-template-columns: auto minmax(0, 1fr); padding: .7rem; }

.visit-day-nav { position: sticky; z-index: 16; top: calc(var(--wc-topbar-height) + 4rem); display: flex; overflow-x: auto; gap: .4rem; margin-inline: -.75rem; padding: .2rem .75rem .55rem; background: #fff; scrollbar-width: none; }
.visit-day-nav::-webkit-scrollbar { display: none; }
.visit-day-nav a { display: grid; min-width: 4.35rem; flex: 0 0 auto; grid-template-columns: 1fr auto; gap: .05rem .35rem; padding: .5rem .55rem; color: #315b56; border: 1px solid #cbded6; border-radius: 7px; background: #f7fbf8; }
.visit-day-nav small { grid-column: 1 / -1; font-size: .58rem; font-weight: 850; text-transform: uppercase; }
.visit-day-nav strong { font-size: .8rem; }
.visit-day-nav span { color: #607478; font-size: .62rem; font-weight: 750; }
.visit-day-nav a.is-active { color: #092126; border-color: #75bca5; background: #dff3e9; }

.visit-add-ride { scroll-margin-top: calc(var(--wc-topbar-height) + 8rem); }
.visit-add-ride > summary { padding: .75rem; }
.visit-add-ride > summary small { font-size: .68rem; }
.visit-add-ride > form { gap: .8rem; padding: .75rem; }
.visit-ride-picker-tools { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.visit-ride-picker-tools > strong { color: #315b56; font-size: .72rem; }
.visit-ride-picker-tools > div { display: flex; gap: .25rem; }
.visit-ride-picker-tools button { padding: .28rem .4rem; color: #2f7062; border: 0; border-radius: 5px; background: #e8f5ef; font-size: .64rem; font-weight: 800; }
.visit-ride-options { grid-template-columns: 1fr; max-height: min(48vh, 25rem); gap: .35rem; }
.visit-ride-options > label { min-height: 3.15rem; padding: .55rem; }
.visit-ride-options > label input { width: 1.08rem; height: 1.08rem; accent-color: #2f8f6f; }
.visit-ride-options strong { font-size: .78rem; }
.visit-ride-options em { max-width: 5.8rem; text-align: right; }
.visit-add-submit { position: sticky; z-index: 4; bottom: -.75rem; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .6rem; margin: 0 -.75rem -.75rem; padding: .65rem .75rem; border-top: 1px solid #c9ded5; background: rgba(255,255,255,.97); box-shadow: 0 -5px 14px rgba(9,33,38,.06); }
.visit-add-submit span, .visit-add-submit strong, .visit-add-submit small { display: block; }
.visit-add-submit strong { font-size: .72rem; }
.visit-add-submit small { color: #607478; font-size: .6rem; }
.visit-add-submit .btn { min-height: 2.55rem; }

.visit-day-grid { grid-template-columns: 1fr; gap: .6rem; }
.visit-day-card { scroll-margin-top: calc(var(--wc-topbar-height) + 8.2rem); overflow: visible; }
.visit-day-card > summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: .6rem; padding: .7rem; cursor: pointer; border-radius: 8px; background: #f7fbf8; list-style: none; }
.visit-day-card > summary::-webkit-details-marker { display: none; }
.visit-day-card[open] > summary { border-bottom: 1px solid #dce6e0; border-radius: 8px 8px 0 0; }
.visit-day-card > summary > i { color: #607478; font-size: .75rem; transition: transform .2s ease; }
.visit-day-card[open] > summary > i { transform: rotate(180deg); }
.visit-day-number { width: 2.45rem; height: 2.45rem; }
.visit-day-number strong { font-size: 1rem; }
.visit-day-heading { min-width: 0; }
.visit-day-heading small, .visit-day-heading strong { display: block; }
.visit-day-heading small { color: #2f7062; font-size: .64rem; font-weight: 800; }
.visit-day-heading strong { font-size: .88rem; }
.visit-day-ride { grid-template-columns: auto minmax(0, 1fr); gap: .55rem; min-height: 0; padding: .65rem; }
.visit-day-ride-copy strong { white-space: normal; }
.visit-day-ride-actions { grid-column: 1 / -1; justify-content: flex-end; padding-top: .15rem; }
.visit-day-ride-actions .btn { min-height: 2.3rem; }
.visit-day-ride-actions details > div { position: fixed; z-index: 95; inset: auto .75rem .75rem; width: auto; max-height: calc(100vh - 6rem); overflow: auto; }
.visit-day-empty { min-height: 7rem; }
.visit-trip-footer { align-items: stretch; flex-direction: column; padding-top: .5rem; }
.visit-trip-footer form, .visit-trip-footer .btn { width: 100%; }

@media (min-width: 768px) {
    .visit-plan-overview { gap: 1rem; }
    .visit-plan-overview-head { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 1.35rem 1.5rem; }
    .visit-plan-overview-head .btn { width: auto; }
    .visit-plan-library, .visit-plan-create > form { padding: 1.2rem; }
    .visit-plan-card-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .visit-plan-create > summary { padding: 1rem 1.2rem; }
    .plan-date-range, .visit-add-settings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .visit-focus-bar { top: calc(var(--wc-topbar-height) + .65rem); }
    .visit-trip-board { gap: 1rem; padding: 1.25rem; }
    .visit-trip-head { grid-template-columns: auto minmax(0, 1fr) 9rem auto; gap: 1rem; }
    .visit-trip-icon { display: grid; }
    .visit-trip-title h1 { font-size: 1.65rem; }
    .visit-trip-progress { grid-column: 3; grid-row: 1; display: grid; grid-template-columns: 1fr; text-align: right; }
    .visit-trip-progress > progress { grid-column: 1; }
    .visit-trip-edit { grid-column: 4; }
    .visit-trip-edit > summary { padding: .5rem .75rem; }
    .visit-trip-edit > summary span { display: inline; }
    .visit-trip-edit > form { position: absolute; inset: auto 0 auto auto; width: min(22rem, 80vw); }
    .visit-day-nav { top: calc(var(--wc-topbar-height) + 4.2rem); margin-inline: -1.25rem; padding-inline: 1.25rem; }
    .visit-ride-options { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 22rem; }
    .visit-add-submit { bottom: -1rem; margin: 0 -1rem -1rem; padding-inline: 1rem; }
    .visit-day-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: .85rem; }
    .visit-day-card > summary { padding: .8rem; }
    .visit-day-ride { grid-template-columns: auto minmax(0, 1fr) auto; }
    .visit-day-ride-actions { grid-column: 3; padding-top: 0; }
    .visit-day-ride-actions details > div { position: absolute; inset: calc(100% - .3rem) .7rem auto auto; width: min(19rem, calc(100vw - 4rem)); }
    .visit-trip-footer { align-items: center; flex-direction: row; }
    .visit-trip-footer form, .visit-trip-footer .btn { width: auto; }
}

@media (min-width: 1200px) {
    .visit-plan-card-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .visit-day-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
