/* ==========================================================
   PARKPULSE STYLESHEET

   Structure: 
   1. Design tokens & global layout
   2. Latest News / article / sidebar
   3. Waiting Times
   4. Authentication & account
   5. Parks & ParkPulse Passport
   6. Profiles & notifications
   7. Admin / editor
   8. UI polish & responsive rules
   9. Current canonical Park/Passport overrides (bottom)

   When changing Park / Passport layouts, prefer editing the
   canonical section at the bottom instead of adding overrides.
   ========================================================== */

:root {
    --navy: #0a2447;
    --navy2: #102f58;
    --blue: #1778d4;
    --yellow: #ffc928;
    --ink: #12233a;
    --muted: #6d7886;
    --line: #e6e9ed;
    --bg: #f7f9fb;
    --green: #22a06b;
    --red: #d74747;
    --orange: #e99a1b;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: Inter,Arial,Helvetica,sans-serif;
    color: var(--ink);
    background: #fff;
}

a {
    color: inherit;
    text-decoration: none;
}

.site-header {
    background: #0B294C;
}

.brand-wrap {
    height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
}

.brand-logo {
    max-height: 150px;
    max-width: min(430px,86vw);
    filter: drop-shadow(0 4px 14px rgba(0,0,0,.16));
}

.main-nav {
    background: var(--yellow);
    box-shadow: 0 3px 12px rgba(0,0,0,.12);
    position: sticky;
    top: 0;
    z-index: 20;
}

.nav-inner {
    max-width: 1180px;
    margin: auto;
    min-height: 58px;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 0 18px;
    overflow-x: auto;
}

.nav-inner a,.welcome {
    font-weight: 800;
    font-size: 13px;
    letter-spacing: .04em;
    padding: 20px 11px;
    white-space: nowrap;
    border-bottom: 4px solid transparent;
}

.nav-inner a.active {
    border-bottom-color: var(--blue);
}

.home-link {
    font-size: 22px!important;
    padding-left: 0!important;
}

.nav-spacer {
    flex: 1;
}

.register-button {
    background: var(--navy);
    color: #fff;
    border-radius: 8px;
    padding: 11px 15px!important;
    border-bottom: 0!important;
}

.welcome {
    font-weight: 600;
}

.page-shell {
    max-width: 1180px;
    margin: 0 auto;
    padding: 48px 20px 72px;
}

.content-grid {
    display: grid;
    grid-template-columns: minmax(0,1fr) 330px;
    gap: 44px;
}

.main-column {
    min-width: 0;
}

.section-heading {
    margin-bottom: 24px;
}

.section-heading h1,.section-heading h2 {
    font-size: 28px;
    letter-spacing: .025em;
    margin: 0;
    color: var(--navy);
    font-weight: 900;
}

.section-heading span {
    display: block;
    width: 54px;
    height: 5px;
    background: var(--yellow);
    border-radius: 9px;
    margin-top: 10px;
}

.news-card {
    display: grid;
    grid-template-columns: 43% 1fr;
    gap: 26px;
    padding: 0 0 30px;
    margin-bottom: 30px;
    border-bottom: 1px solid var(--line);
}

.news-card img {
    width: 100%;
    height: 230px;
    object-fit: cover;
    border-radius: 12px;
    display: block;
}

.meta {
    display: flex;
    gap: 13px;
    align-items: center;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.meta strong {
    color: var(--blue);
}

.meta span {
    color: #8a929d;
}

.news-copy h2 {
    font-size: 26px;
    line-height: 1.12;
    margin: 9px 0 12px;
    color: var(--navy);
}

.news-copy p {
    color: var(--muted);
    line-height: 1.65;
    margin: 0 0 15px;
}

.read-more {
    font-weight: 800;
    color: var(--blue);
}

.sidebar {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.side-card {
    background: var(--navy);
    color: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 10px 26px rgba(10,36,71,.13);
}

.side-card h3 {
    margin: 0 0 16px;
    font-size: 18px;
}

.side-card p {
    color: #d5deea;
    line-height: 1.55;
    font-size: 14px;
}

.side-card small {
    color: #94a8c0;
}

.social-row {
    display: flex;
    justify-content: space-between;
    padding: 13px 0;
    border-top: 1px solid rgba(255,255,255,.12);
    font-size: 14px;
}

.social-row b {
    color: #53a9ff;
}

.side-card input,.auth-form input,.comment-form textarea {
    width: 100%;
    border: 1px solid #d9dfe6;
    border-radius: 8px;
    background: #fff;
    padding: 14px;
    font: inherit;
    color: var(--ink);
}

.side-card input {
    margin: 6px 0 10px;
}

.yellow-button {
    border: 0;
    border-radius: 8px;
    background: var(--yellow);
    color: var(--navy);
    font-weight: 900;
    padding: 13px 18px;
    cursor: pointer;
    display: inline-block;
}

.side-card .yellow-button {
    width: 100%;
}

.button-link {
    text-align: center;
}

.small-button {
    width: auto!important;
}

.info-panel {
    background: var(--bg);
    border: 1px solid var(--line);
    padding: 28px;
    border-radius: 12px;
}

.info-panel h2 {
    color: var(--navy);
}

.flash,.error-box,.login-note {
    padding: 13px 16px;
    border-radius: 8px;
    margin-bottom: 22px;
}

.flash {
    background: #e9f7ef;
    color: #12623f;
}

.error-box {
    background: #fff0f0;
    color: #9d2929;
    border: 1px solid #ffd0d0;
}

.hidden {
    display: none!important;
}

.wait-hero {
    background: linear-gradient(135deg,var(--navy),var(--navy2));
    color: #fff;
    padding: 26px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.wait-hero h2 {
    font-size: 27px;
    margin: 8px 0;
    color: #fff;
}

.wait-hero p {
    color: #cfdae8;
    margin: 0;
}

.live-label {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 13px;
    font-weight: 800;
}

.live-label i {
    width: 10px;
    height: 10px;
    background: #31d28b;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(49,210,139,.13);
}

.live-label i.offline {
    background: var(--red);
}

.wait-stats {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 12px;
    margin-bottom: 22px;
}

.wait-stats>div {
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 18px;
    background: #fff;
}

.wait-stats span {
    display: block;
    font-size: 11px;
    font-weight: 800;
    color: #84909e;
    letter-spacing: .07em;
}

.wait-stats strong {
    display: block;
    color: var(--navy);
    font-size: 23px;
    margin-top: 5px;
}

.wait-loading {
    padding: 38px;
    text-align: center;
    background: var(--bg);
    border-radius: 10px;
    color: var(--muted);
}

.wait-land {
    margin-bottom: 24px;
}

.wait-land h3 {
    background: var(--navy);
    color: #fff;
    padding: 13px 16px;
    border-radius: 10px 10px 0 0;
    margin: 0;
    font-size: 16px;
}

.wait-list {
    border: 1px solid var(--line);
    border-top: 0;
    border-radius: 0 0 10px 10px;
    overflow: hidden;
}

.wait-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border-top: 1px solid var(--line);
}

.wait-row:first-child {
    border-top: 0;
}

.ride-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ride-name {
    font-weight: 800;
}

.ride-status {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
}

.ride-status.open {
    color: var(--green);
}

.ride-status.closed {
    color: #8b949e;
}

.ride-wait {
    min-width: 78px;
    text-align: center;
    padding: 8px 10px;
    border-radius: 8px;
    font-weight: 900;
}

.ride-wait.low {
    background: #e7f7ee;
    color: #15764e;
}

.ride-wait.medium {
    background: #fff3d6;
    color: #945d00;
}

.ride-wait.high {
    background: #ffe5e5;
    color: #ad2e2e;
}

.ride-wait.closed {
    background: #edf0f3;
    color: #6e7884;
}

.powered {
    font-size: 12px;
    color: #7d8793;
}

.powered a {
    color: var(--blue);
    font-weight: 800;
}

.legend {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 12px 0;
    color: #e5ebf3;
}

.dot {
    width: 11px;
    height: 11px;
    border-radius: 50%;
}

.dot.low {
    background: var(--green);
}

.dot.medium {
    background: var(--orange);
}

.dot.high {
    background: var(--red);
}

.dot.closed {
    background: #8995a4;
}

.article-shell {
    max-width: 900px;
}

.article-page h1 {
    font-size: 44px;
    line-height: 1.07;
    color: var(--navy);
    margin: 13px 0;
}

.lead {
    font-size: 20px;
    line-height: 1.6;
    color: var(--muted);
}

.hero-image {
    width: 100%;
    max-height: 470px;
    object-fit: cover;
    border-radius: 14px;
    margin: 18px 0 24px;
}

.article-page>p:not(.lead) {
    line-height: 1.8;
    font-size: 17px;
}

.comments {
    margin-top: 50px;
}

.comment-form textarea {
    min-height: 120px;
    resize: vertical;
    margin-bottom: 10px;
}

.comment {
    border-top: 1px solid var(--line);
    padding: 20px 0;
}

.comment-head {
    display: flex;
    gap: 14px;
    justify-content: space-between;
}

.comment-head span {
    color: #8a939e;
    font-size: 12px;
}

.comment p {
    line-height: 1.6;
}

.login-note {
    background: #f5f8fb;
    border: 1px solid var(--line);
}

.login-note a {
    color: var(--blue);
    font-weight: 800;
}

.muted {
    color: var(--muted);
}

.auth-shell {
    max-width: 620px;
}

.auth-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 34px;
    box-shadow: 0 12px 35px rgba(10,36,71,.07);
}

.auth-form {
    display: grid;
    gap: 17px;
}

.auth-form label {
    display: grid;
    gap: 7px;
    font-weight: 800;
    font-size: 13px;
}

.auth-card a {
    color: var(--blue);
    font-weight: 800;
}

.site-footer {
    background: var(--navy);
    color: #cbd6e4;
}

.footer-inner {
    max-width: 1180px;
    margin: auto;
    padding: 28px 20px;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    font-size: 13px;
}

.footer-links {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

@media(max-width:900px) {
    .content-grid {
        grid-template-columns: 1fr;
    }
    .sidebar {
        display: grid;
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
    .news-card {
        grid-template-columns: 40% 1fr;
    }
    .brand-wrap {
        height: 150px;
    }
    .brand-logo {
        max-height: 120px;
    }
}

@media(max-width:650px) {
    .page-shell {
        padding: 30px 15px 50px;
    }
    .brand-wrap {
        height: 125px;
    }
    .brand-logo {
        max-height: 98px;
    }
    .nav-inner {
        padding: 0 10px;
    }
    .nav-inner a,.welcome {
        padding: 17px 9px;
    }
    .content-grid {
        gap: 28px;
    }
    .sidebar {
        display: flex;
    }
    .news-card {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    .news-card img {
        height: 220px;
    }
    .news-copy h2 {
        font-size: 23px;
    }
    .wait-hero {
        align-items: flex-start;
        flex-direction: column;
    }
    .wait-stats {
        grid-template-columns: 1fr;
    }
    .article-page h1 {
        font-size: 34px;
    }
    .lead {
        font-size: 18px;
    }
    .auth-card {
        padding: 24px;
    }
    .footer-inner {
        flex-direction: column;
    }
}

/* =========================================================
   PARKPULSE ORIGINAL-STYLE HOMEPAGE
   Restores the dark navy Latest News presentation while
   preserving the complete PHP website functionality.
   ========================================================= */

.homepage-shell {
    max-width: none;
    padding: 0;
    background: #f5f7fa;
}

.homepage-shell > .flash {
    max-width: 1180px;
    margin: 28px auto 0;
}

.homepage-shell .content-grid {
    max-width: 1180px;
    margin: 0 auto;
    padding: 46px 20px 72px;
    align-items: start;
}

.homepage-shell .main-column {
    background: linear-gradient(145deg,#071d3b 0%,#0b2b52 60%,#103866 100%);
    border-radius: 15px;
    padding: 30px;
    box-shadow: 0 16px 42px rgba(5,27,55,.16);
}

.homepage-shell .section-heading h1 {
    color: #fff;
}

.homepage-shell .section-heading span {
    background: var(--yellow);
}

.homepage-shell .news-card {
    display: grid;
    grid-template-columns: 43% 1fr;
    gap: 0;
    padding: 0;
    margin: 0 0 24px;
    border: 0;
    border-radius: 12px;
    overflow: hidden;
    background: #0a274c;
    box-shadow: 0 8px 24px rgba(0,0,0,.18);
    min-height: 235px;
}

.homepage-shell .news-card:last-of-type {
    margin-bottom: 0;
}

.homepage-shell .news-image-link {
    min-height: 235px;
    display: block;
}

.homepage-shell .news-card img {
    width: 100%;
    height: 100%;
    min-height: 235px;
    object-fit: cover;
    border-radius: 0;
    display: block;
}

.homepage-shell .news-copy {
    padding: 25px 28px 24px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: linear-gradient(135deg,#0a274c,#0d315c);
}

.homepage-shell .meta strong {
    color: #63b4ff;
}

.homepage-shell .meta span {
    color: #aabbd0;
}

.homepage-shell .news-copy h2 {
    color: #fff;
    margin: 10px 0 12px;
    font-size: 27px;
    line-height: 1.14;
}

.homepage-shell .news-copy h2 a {
    color: #fff;
}

.homepage-shell .news-copy p {
    color: #dbe5f1;
    line-height: 1.62;
    margin: 0 0 16px;
}

.homepage-shell .read-more {
    color: var(--yellow);
    font-weight: 900;
}

.homepage-shell .info-panel {
    margin-top: 28px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.12);
    color: #dbe5f1;
}

.homepage-shell .info-panel h2 {
    color: #fff;
}

.homepage-shell .sidebar {
    position: sticky;
    top: 82px;
}

.homepage-shell .side-card {
    border: 1px solid rgba(255,255,255,.04);
    background: linear-gradient(145deg,#071d3b,#0b2b52);
}

@media(max-width:900px) {
    .homepage-shell .content-grid {
        padding-top: 34px;
    }
    .homepage-shell .main-column {
        padding: 24px;
    }
    .homepage-shell .sidebar {
        position: static;
    }
    .homepage-shell .news-card {
        grid-template-columns: 40% 1fr;
    }
}

@media(max-width:650px) {
    .homepage-shell .content-grid {
        padding: 24px 15px 48px;
    }
    .homepage-shell .main-column {
        padding: 18px;
        border-radius: 12px;
    }
    .homepage-shell .news-card {
        grid-template-columns: 1fr;
    }
    .homepage-shell .news-image-link {
        min-height: 210px;
    }
    .homepage-shell .news-card img {
        min-height: 210px;
        height: 210px;
    }
    .homepage-shell .news-copy {
        padding: 22px;
    }
    .homepage-shell .news-copy h2 {
        font-size: 23px;
    }
}

/* ===== ParkPulse Admin Panel — newsroom style ===== */

.admin-shell {
    max-width: 1220px;
    margin: 0 auto;
    padding: 38px 24px 72px;
}

.admin-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: 30px 32px;
    margin-bottom: 0;
    border-radius: 16px 16px 0 0;
    background: linear-gradient(135deg,#071d3b,#0d3765);
    color: #fff;
    box-shadow: 0 14px 34px rgba(8,36,71,.14);
}

.admin-hero:after {
    content: "";
    position: absolute;
    width: 250px;
    height: 250px;
    border: 42px solid rgba(255,201,40,.08);
    border-radius: 50%;
    right: -90px;
    top: -110px;
}

.admin-hero-copy,.admin-hero-actions {
    position: relative;
    z-index: 1;
}

.admin-hero h1 {
    margin: 5px 0 6px;
    font-size: 40px;
    line-height: 1;
    color: #fff;
}

.admin-hero p {
    margin: 0;
    color: #cbd9e9;
    line-height: 1.5;
}

.admin-kicker,.admin-card-eyebrow {
    display: block;
    font-weight: 900;
    font-size: 11px;
    letter-spacing: .16em;
    color: #65b5ff;
}

.admin-hero-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.admin-ghost-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.2);
    background: rgba(255,255,255,.06);
    color: #fff;
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 13px;
    font-weight: 900;
}

.admin-hero .yellow-button {
    box-shadow: 0 4px 14px rgba(255,201,40,.17);
}

.admin-tabs {
    display: flex;
    gap: 3px;
    padding: 0 20px;
    margin: 0 0 26px;
    background: #fff;
    border: 1px solid #dfe6ee;
    border-top: 0;
    border-radius: 0 0 14px 14px;
    box-shadow: 0 10px 28px rgba(18,38,63,.05);
}

.admin-tabs a {
    padding: 17px 17px 14px;
    font-weight: 900;
    font-size: 13px;
    color: #68788c;
    border-bottom: 4px solid transparent;
}

.admin-tabs a.active {
    color: var(--navy);
    border-color: var(--yellow);
}

.admin-tabs b {
    display: inline-grid;
    place-items: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    margin-left: 3px;
    border-radius: 20px;
    background: var(--yellow);
    color: var(--navy);
    font-size: 11px;
}

.admin-stats {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 15px;
    margin-bottom: 22px;
}

.admin-stats>a,.admin-card,.editor-main {
    background: #fff;
    border: 1px solid #dfe6ee;
    border-radius: 14px;
    box-shadow: 0 8px 30px rgba(18,38,63,.06);
}

.admin-stats>a {
    position: relative;
    padding: 22px 22px 20px;
    transition: .18s ease;
}

.admin-stats>a:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 32px rgba(18,38,63,.10);
}

.admin-stats strong {
    display: block;
    font-size: 34px;
    line-height: 1;
    color: var(--navy);
    margin: 20px 0 5px;
}

.admin-stats>a>span:last-child {
    color: #6b7b8f;
    font-weight: 750;
    font-size: 13px;
}

.stat-icon {
    display: inline-flex;
    padding: 6px 8px;
    border-radius: 6px;
    background: #edf5fd;
    color: #0a68bb!important;
    font-size: 9px!important;
    font-weight: 950!important;
    letter-spacing: .1em;
}

.admin-dashboard-grid {
    display: grid;
    grid-template-columns: 1.35fr .85fr;
    gap: 20px;
}

.admin-card {
    padding: 24px;
    margin-bottom: 20px;
}

.admin-card h2,.admin-card h3 {
    margin: 5px 0 8px;
    color: var(--navy);
}

.admin-card p {
    color: #6d7886;
    line-height: 1.55;
}

.featured-admin-card {
    padding: 30px;
    background: linear-gradient(135deg,#fff,#f6faff);
}

.featured-admin-card h2 {
    font-size: 28px;
}

.featured-admin-card .yellow-button {
    margin-top: 10px;
}

.quick-actions {
    display: grid;
    gap: 9px;
    margin-top: 15px;
}

.quick-actions a {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 14px;
    border: 1px solid #e6edf4;
    border-radius: 9px;
    background: #f8fafc;
    font-size: 13px;
}

.quick-actions a span {
    font-weight: 800;
    color: #31445b;
}

.quick-actions a b {
    color: #0a68bb;
}

.admin-card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    margin-bottom: 18px;
}

.admin-card-head h2 {
    font-size: 27px;
}

.admin-card-head p {
    margin: 0;
    font-size: 13px;
}

.yellow-button.compact {
    padding: 11px 15px;
    font-size: 12px;
    white-space: nowrap;
}

.admin-table-wrap {
    overflow: auto;
    border: 1px solid #e7ecf2;
    border-radius: 11px;
}

.admin-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}

.admin-table th,.admin-table td {
    text-align: left;
    padding: 13px 14px;
    border-bottom: 1px solid #edf1f5;
    vertical-align: middle;
}

.admin-table tr:last-child td {
    border-bottom: 0;
}

.admin-table tbody tr:hover {
    background: #fbfcfe;
}

.admin-table th {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: #718096;
    background: #f7f9fc;
}

.admin-table td strong,.admin-table td small {
    display: block;
}

.admin-table td small {
    color: #7c8998;
    margin-top: 4px;
}

.article-admin-cell {
    display: flex;
    align-items: center;
    min-width: 300px;
}

.article-admin-cell strong {
    max-width: 520px;
    color: #213650;
}

.date-strong {
    font-size: 13px;
    color: #31445b;
}

.actions {
    white-space: nowrap;
}

.actions>a,.actions button {
    display: inline-flex;
    border: 0;
    background: none;
    color: #0a68bb;
    font: inherit;
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
    margin-right: 9px;
    padding: 4px 0;
}

.actions form {
    display: inline;
}

.actions .action-edit {
    background: #eaf4fe;
    padding: 7px 10px;
    border-radius: 6px;
}

.actions button {
    color: #b42318;
}

.status-pill {
    display: inline-flex;
    padding: 6px 9px;
    border-radius: 30px;
    font-size: 10px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .05em;
    background: #edf1f5;
    color: #667085;
}

.status-pill.published,.status-pill.approved {
    background: #e8f7ee;
    color: #137a3d;
}

.status-pill.draft,.status-pill.pending {
    background: #fff4cc;
    color: #8b6700;
}

.status-pill.scheduled {
    background: #e9efff;
    color: #3156a6;
}

.status-pill.rejected {
    background: #fdecec;
    color: #b42318;
}

.admin-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-top: 20px;
}

.admin-pagination>a {
    font-size: 12px;
    font-weight: 900;
    color: #0a68bb;
}

.page-numbers {
    display: flex;
    align-items: center;
    gap: 6px;
}

.page-numbers a,.page-numbers span {
    display: grid;
    place-items: center;
    min-width: 34px;
    height: 34px;
    border-radius: 7px;
    border: 1px solid #dfe6ee;
    font-size: 12px;
    font-weight: 850;
}

.page-numbers a.active {
    background: var(--navy);
    border-color: var(--navy);
    color: #fff;
}

.page-numbers span {
    border-color: transparent;
    color: #8996a5;
}

.admin-empty {
    text-align: center;
    padding: 45px 20px;
    color: #6d7886;
}

.admin-empty strong {
    display: block;
    color: var(--navy);
    font-size: 19px;
}

.moderation-list {
    display: grid;
    gap: 13px;
}

.moderation-item {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 18px;
    background: #fff;
}

.moderation-item p {
    white-space: normal;
    color: #29384a;
    line-height: 1.6;
    margin: 15px 0;
}

.moderation-item>small {
    color: #7b8794;
}

.moderation-meta {
    display: flex;
    align-items: center;
    gap: 11px;
    flex-wrap: wrap;
}

.moderation-meta>div:nth-child(2) {
    display: grid;
    gap: 2px;
}

.moderation-meta span:not(.status-pill) {
    color: #8a96a5;
    font-size: 12px;
}

.moderation-meta .status-pill {
    margin-left: auto;
}

.comment-avatar {
    display: grid!important;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--navy);
    color: var(--yellow);
    font-size: 13px;
    font-weight: 950;
}

.moderation-actions {
    display: flex;
    gap: 8px;
    margin-top: 14px;
    flex-wrap: wrap;
}

.moderation-actions form {
    margin: 0;
}

.moderation-actions button {
    border: 1px solid #d5dde7;
    background: #fff;
    padding: 8px 12px;
    border-radius: 7px;
    font-weight: 850;
    cursor: pointer;
}

.moderation-actions .approve {
    background: #e8f7ee;
    color: #137a3d;
    border-color: #bfe7cd;
}

.moderation-actions .danger {
    color: #b42318;
}

.editor-shell {
    max-width: 1280px;
}

.editor-hero {
    border-radius: 16px;
    margin-bottom: 22px;
}

.editor-form {
    display: grid;
    grid-template-columns: minmax(0,1fr) 325px;
    gap: 22px;
    align-items: start;
}

.editor-main {
    padding: 27px;
}

.editor-section-label {
    margin: 2px 0 18px;
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .16em;
    color: #0a68bb;
}

.body-label-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 12px;
}

.editor-form label,.auth-card label {
    position: relative;
    display: block;
    font-weight: 850;
    color: #233449;
    margin-bottom: 19px;
}

.editor-form label small {
    font-weight: 500;
    color: #8490a0;
}

.editor-form input,.editor-form textarea,.editor-form select,.auth-card input {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin-top: 8px;
    border: 1px solid #ccd6e0;
    border-radius: 8px;
    padding: 12px 13px;
    font: inherit;
    background: #fff;
    color: #1d334d;
    outline: none;
    transition: border .15s,box-shadow .15s;
}

.editor-form input:focus,.editor-form textarea:focus,.editor-form select:focus {
    border-color: #4e9fe7;
    box-shadow: 0 0 0 3px rgba(23,120,212,.1);
}

.editor-form textarea {
    resize: vertical;
    line-height: 1.65;
}

.editor-two {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.editor-counter {
    position: absolute;
    right: 10px;
    bottom: 8px;
    font-size: 10px;
    color: #95a0ad;
    background: #fff;
    padding: 2px 4px;
}

.body-editor {
    min-height: 480px;
    border-radius: 0 0 9px 9px!important;
    margin-top: 0!important;
    font-family: Inter,Arial,sans-serif;
}

.format-toolbar {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
    padding: 8px;
    border: 1px solid #ccd6e0;
    border-bottom: 0;
    border-radius: 9px 9px 0 0;
    background: #f6f8fb;
}

.format-toolbar button {
    min-width: 34px;
    height: 32px;
    border: 1px solid transparent;
    border-radius: 5px;
    background: transparent;
    color: #33485f;
    font: inherit;
    font-size: 12px;
    font-weight: 850;
    cursor: pointer;
}

.format-toolbar button:hover {
    background: #fff;
    border-color: #d9e1ea;
}

.format-toolbar>span {
    width: 1px;
    height: 22px;
    background: #d9e1e9;
    margin: 0 3px;
}

.editor-help {
    padding: 9px 11px;
    background: #eef6fd;
    color: #5a6f84;
    font-size: 11px;
    line-height: 1.5;
    border-left: 1px solid #ccd6e0;
    border-right: 1px solid #ccd6e0;
}

.editor-help code {
    background: #fff;
    padding: 2px 4px;
    border-radius: 4px;
}

.preview-toggle {
    border: 0;
    background: #eaf4fe;
    color: #0a68bb;
    padding: 7px 10px;
    border-radius: 6px;
    font-weight: 900;
    cursor: pointer;
}

.editor-side {
    position: sticky;
    top: 82px;
}

.editor-side .admin-card {
    padding: 20px;
}

.editor-side .yellow-button {
    width: 100%;
}

.publish-help,.side-help {
    display: block;
    color: #7c8998!important;
    font-size: 11px!important;
    line-height: 1.5;
}

.admin-image-preview {
    width: 100%;
    height: 165px;
    object-fit: cover;
    border-radius: 9px;
    margin-bottom: 14px;
    border: 1px solid #e3e9ef;
}

.image-placeholder {
    height: 150px;
    display: grid;
    place-items: center;
    margin-bottom: 14px;
    border-radius: 9px;
    border: 1px dashed #c8d3df;
    background: #f8fafc;
    color: #99a5b2;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .12em;
}

.or {
    display: block;
    text-align: center;
    color: #9aa5b2;
    margin: -7px 0 10px;
    font-size: 11px;
}

.file-upload-label input {
    padding: 9px;
    background: #f8fafc;
}

.flash.error {
    background: #fdecec;
    color: #9f1c12;
    border-color: #f8c8c4;
}

.article-live-preview {
    margin-top: 24px;
    border: 1px solid #d8e1ea;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

.preview-browser-bar {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 13px;
    background: #eef2f6;
    border-bottom: 1px solid #dde4eb;
}

.preview-browser-bar span {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #b7c0ca;
}

.preview-browser-bar b {
    margin-left: 6px;
    font-size: 10px;
    color: #6f7e8e;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.preview-article {
    padding: 30px;
}

.preview-article h1 {
    font-size: 36px;
}

.preview-article .hero-image {
    max-height: 330px;
}

.article-page h2 {
    margin: 34px 0 10px;
    color: var(--navy);
    font-size: 28px;
}

.article-page h3 {
    margin: 28px 0 8px;
    color: var(--navy);
    font-size: 21px;
}

.article-page blockquote {
    margin: 28px 0;
    padding: 18px 22px;
    border-left: 5px solid var(--yellow);
    background: #f5f8fb;
    border-radius: 0 9px 9px 0;
    color: #3b5067;
    font-size: 18px;
    line-height: 1.6;
}

.article-list {
    padding-left: 24px;
    font-size: 17px;
    line-height: 1.8;
}

.article-page a {
    color: var(--blue);
    font-weight: 750;
}

.article-inline-figure {
    margin: 28px 0;
}

.article-inline-image {
    display: block;
    width: 100%;
    max-height: 520px;
    object-fit: cover;
    border-radius: 12px;
}

.article-page p .article-inline-image {
    margin: 18px 0;
}

@media(max-width:900px) {
    .admin-dashboard-grid {
        grid-template-columns: 1fr;
    }
    .admin-stats {
        grid-template-columns: 1fr 1fr;
    }
    .editor-form {
        grid-template-columns: 1fr;
    }
    .editor-side {
        position: static;
    }
    .admin-hero {
        align-items: flex-start;
        flex-direction: column;
    }
    .editor-two {
        grid-template-columns: 1fr;
    }
    .article-table th:nth-child(3),.article-table td:nth-child(3) {
        display: none;
    }
}

@media(max-width:580px) {
    .admin-shell {
        padding: 20px 12px 50px;
    }
    .admin-hero {
        padding: 24px 20px;
    }
    .admin-hero h1 {
        font-size: 32px;
    }
    .admin-tabs {
        overflow: auto;
        padding: 0 8px;
    }
    .admin-tabs a {
        padding-left: 11px;
        padding-right: 11px;
    }
    .admin-stats {
        grid-template-columns: 1fr;
    }
    .admin-card {
        padding: 18px;
    }
    .admin-card-head {
        align-items: flex-start;
        flex-direction: column;
    }
    .article-admin-cell {
        min-width: 240px;
    }
    .article-table th:nth-child(2),.article-table td:nth-child(2) {
        display: none;
    }
    .admin-pagination {
        align-items: stretch;
        flex-direction: column;
    }
    .page-numbers {
        order: -1;
        overflow: auto;
    }
    .editor-main {
        padding: 18px;
    }
    .format-toolbar>span {
        display: none;
    }
    .preview-article {
        padding: 20px;
    }
    .preview-article h1 {
        font-size: 29px;
    }
}

/* ParkPulse Admin Panel v4 — spacious CMS layout */

body:has(.admin-shell) {
    background: #f3f6fa;
}

.admin-shell {
    max-width: 1320px;
    padding: 46px 28px 84px;
}

.admin-hero {
    border-radius: 20px;
    padding: 38px 42px;
    margin-bottom: 18px;
    box-shadow: 0 18px 46px rgba(8,36,71,.13);
}

.admin-hero h1 {
    font-size: 44px;
    margin: 8px 0 10px;
    letter-spacing: -.02em;
}

.admin-hero p {
    max-width: 700px;
    font-size: 15px;
    line-height: 1.7;
    color: #d7e3f0;
}

.admin-kicker,.admin-card-eyebrow {
    font-size: 10px;
    letter-spacing: .19em;
}

.admin-tabs {
    border: 1px solid #e2e8ef;
    border-radius: 14px;
    padding: 8px;
    margin: 0 0 32px;
    gap: 6px;
    box-shadow: 0 8px 24px rgba(18,38,63,.045);
}

.admin-tabs a {
    border: 0;
    border-radius: 9px;
    padding: 12px 16px;
    color: #617187;
}

.admin-tabs a:hover {
    background: #f5f8fb;
    color: var(--navy);
}

.admin-tabs a.active {
    background: var(--navy);
    color: #fff;
    border: 0;
}

.admin-tabs b {
    background: var(--yellow);
    color: var(--navy);
}

.admin-stats {
    gap: 20px;
    margin-bottom: 28px;
}

.admin-stats>a {
    padding: 26px 26px 24px;
    border-radius: 16px;
}

.admin-stats strong {
    font-size: 38px;
    margin: 22px 0 7px;
}

.admin-stats>a>span:last-child {
    font-size: 13px;
}

.admin-dashboard-grid {
    gap: 26px;
}

.admin-card {
    padding: 30px;
    border-radius: 16px;
    margin-bottom: 26px;
    box-shadow: 0 10px 32px rgba(18,38,63,.055);
}

.admin-card h2 {
    font-size: 29px;
    margin: 8px 0 10px;
}

.admin-card h3 {
    font-size: 20px;
    margin: 8px 0 14px;
}

.admin-card p {
    font-size: 14px;
    line-height: 1.75;
    margin: 0 0 18px;
}

.featured-admin-card {
    padding: 36px 38px;
}

.featured-admin-card h2 {
    font-size: 31px;
    line-height: 1.2;
}

.quick-actions {
    gap: 12px;
    margin-top: 20px;
}

.quick-actions a {
    padding: 17px 18px;
    border-radius: 11px;
    background: #f8fafc;
}

.admin-card-head {
    padding-bottom: 21px;
    margin-bottom: 0;
    border-bottom: 1px solid #e8edf3;
}

.article-manager {
    padding: 0;
    overflow: hidden;
}

.article-manager .admin-card-head {
    padding: 28px 30px 24px;
}

.article-manager .admin-table-wrap {
    border: 0;
    border-radius: 0;
    overflow-x: auto;
}

.admin-table {
    border-collapse: separate;
    border-spacing: 0;
}

.admin-table thead th {
    height: 48px;
    padding: 0 20px;
    background: #f5f8fb;
    border-bottom: 1px solid #dfe6ee;
    color: #617187;
    font-size: 10px;
    letter-spacing: .13em;
}

.admin-table tbody td {
    padding: 19px 20px;
    border-bottom: 1px solid #edf1f5;
    background: #fff;
}

.admin-table tbody tr:last-child td {
    border-bottom: 0;
}

.admin-table tbody tr:hover td {
    background: #f9fbfd;
}

.article-table th:nth-child(1) {
    width: 43%;
}

.article-table th:nth-child(2) {
    width: 15%;
}

.article-table th:nth-child(3) {
    width: 12%;
}

.article-table th:nth-child(4) {
    width: 15%;
}

.article-table th:nth-child(5) {
    width: 15%;
    text-align: right;
}

.article-table td:last-child {
    text-align: right;
}

.article-admin-cell {
    min-width: 320px;
}

.article-admin-cell strong {
    font-size: 14px;
    line-height: 1.45;
    color: #17324f;
}

.article-admin-cell small {
    font-size: 11px;
    color: #8a97a6;
    margin-top: 5px;
}

.category-tag {
    display: inline-flex;
    align-items: center;
    padding: 6px 9px;
    border-radius: 6px;
    background: #edf5fd;
    color: #0b68ba;
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.date-strong {
    font-size: 13px;
    color: #29435f;
}

.admin-table td small {
    font-size: 11px;
    margin-top: 5px;
}

.actions {
    min-width: 185px;
}

.actions>a,.actions button {
    margin: 0 0 0 7px;
    padding: 8px 10px;
    border-radius: 7px;
    font-size: 11px;
}

.actions .action-edit {
    background: var(--navy);
    color: #fff;
}

.actions>a:not(.action-edit) {
    background: #eef5fb;
    color: #0a68bb;
}

.actions button {
    background: #fff0ef;
    color: #b42318;
}

.actions>a:hover,.actions button:hover {
    filter: brightness(.97);
}

.admin-pagination {
    padding: 22px 30px;
    margin: 0;
    border-top: 1px solid #e8edf3;
    background: #fbfcfe;
}

.page-numbers a,.page-numbers span {
    min-width: 36px;
    height: 36px;
    border-radius: 8px;
    background: #fff;
}

.moderation-card {
    padding: 0;
    overflow: hidden;
}

.moderation-card .admin-card-head {
    padding: 28px 30px 24px;
}

.moderation-list {
    padding: 8px 30px 30px;
    display: grid;
    gap: 16px;
}

.moderation-item {
    padding: 22px 24px;
    border: 1px solid #e4eaf1;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 4px 16px rgba(18,38,63,.035);
}

.moderation-item>p {
    margin: 17px 0 13px;
    color: #344a62;
    font-size: 14px;
    line-height: 1.7;
}

.moderation-meta {
    display: flex;
    align-items: center;
    gap: 12px;
}

.moderation-actions {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #edf1f5;
}

.editor-shell {
    max-width: 1360px;
}

.editor-hero {
    margin-bottom: 26px;
}

.editor-form {
    grid-template-columns: minmax(0,1fr) 350px;
    gap: 28px;
}

.editor-main {
    padding: 34px 36px;
    border-radius: 16px;
}

.editor-section-label {
    margin: 4px 0 22px;
}

.editor-form label {
    margin-bottom: 24px;
    font-size: 13px;
}

.editor-form input,.editor-form textarea,.editor-form select {
    margin-top: 9px;
    border-color: #cfd9e4;
    border-radius: 10px;
    padding: 14px 15px;
    background: #fbfcfe;
}

.editor-form input:focus,.editor-form textarea:focus,.editor-form select:focus {
    background: #fff;
}

.editor-two {
    gap: 20px;
}

.body-label-row {
    margin-top: 18px;
    padding-top: 8px;
}

.format-toolbar {
    padding: 10px;
    gap: 7px;
    border-radius: 10px 10px 0 0;
    background: #f4f7fa;
}

.format-toolbar button {
    height: 34px;
    padding: 0 10px;
    border-radius: 7px;
}

.editor-help {
    padding: 11px 13px;
    font-size: 11px;
    line-height: 1.6;
}

.body-editor {
    min-height: 520px;
    padding: 18px!important;
    line-height: 1.75!important;
}

.editor-side {
    top: 96px;
}

.editor-side .admin-card {
    padding: 24px;
    margin-bottom: 20px;
}

.publish-card {
    border-top: 4px solid var(--yellow);
}

.editor-side .yellow-button {
    margin-top: 5px;
    padding: 14px;
}

.article-live-preview {
    margin-top: 30px;
    border-radius: 14px;
}

.preview-article {
    padding: 36px;
}

.flash {
    margin: 0 0 24px;
    border-radius: 11px;
    padding: 14px 16px;
}

@media(max-width:900px) {
    .admin-shell {
        padding: 30px 18px 64px;
    }
    .admin-hero {
        padding: 30px 26px;
    }
    .admin-hero h1 {
        font-size: 38px;
    }
    .editor-form {
        grid-template-columns: 1fr;
    }
    .article-table th:nth-child(4),.article-table td:nth-child(4) {
        display: none;
    }
}

@media(max-width:650px) {
    .admin-shell {
        padding: 22px 10px 50px;
    }
    .admin-hero {
        padding: 26px 20px;
    }
    .admin-tabs {
        overflow: auto;
    }
    .admin-card,.editor-main {
        padding: 20px;
    }
    .article-manager .admin-card-head,.moderation-card .admin-card-head {
        padding: 22px 20px;
    }
    .admin-table thead th,.admin-table tbody td {
        padding-left: 14px;
        padding-right: 14px;
    }
    .article-table th:nth-child(2),.article-table td:nth-child(2),.article-table th:nth-child(3),.article-table td:nth-child(3) {
        display: none;
    }
    .actions {
        min-width: 160px;
    }
    .moderation-list {
        padding: 8px 16px 20px;
    }
    .admin-pagination {
        padding: 18px 20px;
    }
}

/* ParkPulse multi-park waiting times v5 */

.wait-page-shell .main-column {
    min-width: 0;
}

.park-picker-card {
    background: #fff;
    border: 1px solid #e0e7ef;
    border-radius: 16px;
    overflow: hidden;
    margin: 0 0 34px;
    box-shadow: 0 12px 34px rgba(10,36,71,.06);
}

.park-picker-intro {
    padding: 28px 30px;
    background: linear-gradient(135deg,#071c38,#123d6d);
    color: #fff;
    border-bottom: 4px solid var(--yellow);
}

.park-picker-kicker {
    display: block;
    color: var(--yellow);
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .18em;
    margin-bottom: 8px;
}

.park-picker-intro h2 {
    margin: 0 0 8px;
    font-size: 27px;
    line-height: 1.15;
}

.park-picker-intro p {
    margin: 0;
    max-width: 680px;
    color: #d5e1ed;
    font-size: 14px;
    line-height: 1.65;
}

.park-directory {
    padding: 8px 30px 28px;
}

.park-region {
    padding: 22px 0 3px;
    border-bottom: 1px solid #edf1f5;
}

.park-region:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.park-region h3 {
    margin: 0 0 12px;
    color: #6b7888;
    font-size: 10px;
    letter-spacing: .15em;
    font-weight: 950;
}

.park-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.park-button {
    display: inline-flex;
    align-items: center;
    min-height: 39px;
    padding: 9px 13px;
    border: 1px solid #dbe3eb;
    border-radius: 8px;
    background: #f8fafc;
    color: #18344f;
    font-size: 12px;
    font-weight: 850;
    transition: .16s ease;
}

.park-button:hover {
    transform: translateY(-1px);
    border-color: #9fc5e8;
    background: #eef6fd;
    color: #0a68bb;
}

.park-button.active {
    background: var(--navy);
    border-color: var(--navy);
    color: #fff;
    box-shadow: inset 0 -3px 0 var(--yellow);
}

.wait-current-heading {
    margin-top: 6px;
}

.wait-current-heading h2 {
    font-size: 20px;
}

.wait-all-rides {
    margin-top: 0;
}

.wait-all-rides .wait-list {
    border-radius: 12px;
    overflow: hidden;
}

@media(max-width:700px) {
    .park-picker-intro {
        padding: 24px 20px;
    }
    .park-directory {
        padding: 4px 20px 22px;
    }
    .park-buttons {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
    .park-button {
        justify-content: center;
        text-align: center;
    }
    .wait-current-heading h2 {
        font-size: 17px;
    }
}

@media(max-width:460px) {
    .park-buttons {
        grid-template-columns: 1fr;
    }
}

/* ParkPulse account activation v6 */

.auth-card label small {
    display: block;
    margin-top: 7px;
    color: #7c8998;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.4;
}

.auth-success-panel {
    text-align: center;
    padding: 18px 4px 8px;
}

.auth-success-icon {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    margin: 4px auto 18px;
    border-radius: 50%;
    background: #e8f7ee;
    color: #137a3d;
    font-size: 28px;
    font-weight: 950;
}

.auth-success-panel.activation-failed .auth-success-icon {
    background: #fff0ef;
    color: #b42318;
}

.auth-success-panel h2 {
    margin: 0 0 12px;
    color: var(--navy);
    font-size: 25px;
}

.auth-success-panel p {
    max-width: 520px;
    margin: 0 auto 14px;
    color: #637487;
    line-height: 1.7;
}

.auth-success-panel strong {
    color: var(--navy);
}

.auth-success-panel .auth-small {
    font-size: 12px;
}

.auth-success-panel a:not(.yellow-button),.error-box a {
    color: #0a68bb;
    font-weight: 850;
}

.auth-main-button {
    display: inline-flex;
    margin-top: 12px;
}

.auth-intro {
    margin: 0 0 22px;
    color: #637487;
    line-height: 1.65;
}

/* ParkPulse user management */

.admin-stats {
    grid-template-columns: repeat(5,1fr);
}

.user-table th:nth-child(1) {
    min-width: 180px;
}

.user-table th:nth-child(2) {
    min-width: 135px;
}

.user-table th:nth-child(3) {
    width: 90px;
}

.user-table th:nth-child(4) {
    min-width: 135px;
}

.user-table th:nth-child(5) {
    min-width: 105px;
}

.user-table th:nth-child(6) {
    min-width: 390px;
}

.user-actions {
    white-space: normal;
}

.user-actions form {
    display: inline-block;
}

.user-actions .safe-action {
    background: #e8f7ee;
    color: #137a3d;
}

.user-actions .neutral-action {
    background: #eef5fb;
    color: #0a68bb;
}

.muted-admin {
    color: #8a97a6;
    font-size: 12px;
}

@media(max-width:1050px) {
    .admin-stats {
        grid-template-columns: repeat(3,1fr);
    }
}

@media(max-width:650px) {
    .admin-stats {
        grid-template-columns: 1fr;
    }
    .user-table th:nth-child(2),.user-table td:nth-child(2),.user-table th:nth-child(4),.user-table td:nth-child(4) {
        display: none;
    }
}

/* Remember-me option on the login form */

.auth-form .remember-me {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: -2px 0 0;
    font-weight: 700;
    font-size: 13px;
    cursor: pointer;
}

.auth-form .remember-me input[type="checkbox"] {
    display: inline-block;
    width: auto;
    margin: 0;
    padding: 0;
    accent-color: var(--blue);
    cursor: pointer;
}

/* ParkPulse wait-times two-column workspace */

.wait-page-intro {
    margin: -8px 0 26px;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.65;
}

.wait-workspace {
    display: grid;
    grid-template-columns: minmax(260px,31%) minmax(0,1fr);
    gap: 28px;
    align-items: start;
}

.wait-park-column,.wait-times-column {
    border: 1px solid #e0e7ef;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(10,36,71,.06);
    overflow: hidden;
}

.wait-park-column {
    position: sticky;
    top: 22px;
}

.wait-column-title {
    padding: 24px 24px 20px;
    background: linear-gradient(135deg,#071c38,#123d6d);
    color: #fff;
    border-bottom: 4px solid var(--yellow);
}

.wait-column-kicker {
    display: block;
    color: var(--yellow);
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .18em;
    margin-bottom: 7px;
}

.wait-column-title h2 {
    margin: 0 0 7px;
    font-size: 23px;
    line-height: 1.2;
}

.wait-column-title p {
    margin: 0;
    color: #d5e1ed;
    font-size: 13px;
    line-height: 1.55;
}

.wait-park-directory {
    padding: 6px 18px 20px;
    max-height: calc(100vh - 190px);
    overflow: auto;
}

.wait-park-directory .park-region {
    padding: 17px 0 1px;
}

.wait-park-directory .park-region h3 {
    margin-bottom: 9px;
}

.wait-park-directory .park-buttons {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.wait-park-directory .park-button {
    width: 100%;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    min-height: 42px;
}

.wait-park-directory .park-button b {
    font-size: 22px;
    line-height: 1;
    font-weight: 400;
    opacity: .65;
}

.wait-park-directory .park-button.active b {
    color: var(--yellow);
    opacity: 1;
}

.wait-times-column {
    padding: 24px;
}

.wait-column-hero {
    margin-bottom: 16px;
    border-radius: 12px;
}

.wait-list-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    padding: 4px 2px 13px;
    border-bottom: 3px solid var(--navy);
    margin: 2px 0 0;
}

.wait-list-heading span {
    display: block;
    color: #758291;
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .14em;
    margin-bottom: 5px;
}

.wait-list-heading h2 {
    margin: 0;
    color: var(--navy);
    font-size: 19px;
    line-height: 1.2;
}

.wait-mini-legend {
    display: flex;
    align-items: center;
    gap: 13px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.wait-mini-legend span {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    color: #647181;
    font-size: 10px;
    letter-spacing: 0;
    font-weight: 800;
}

.wait-mini-legend .dot {
    display: inline-block;
    width: 9px;
    height: 9px;
    flex: 0 0 9px;
}

.wait-times-column .wait-loading {
    margin-top: 16px;
}

.wait-times-column .wait-all-rides {
    margin: 16px 0 0;
}

.wait-times-column .wait-all-rides .wait-list {
    border-top: 1px solid var(--line);
    border-radius: 12px;
}

.wait-times-column .wait-row {
    padding: 13px 15px;
}

.wait-data-note {
    margin-top: 18px;
    padding: 17px 18px;
    border-radius: 10px;
    background: #f5f8fb;
    border-left: 4px solid var(--blue);
}

.wait-data-note strong {
    display: block;
    color: var(--navy);
    font-size: 11px;
    letter-spacing: .08em;
    margin-bottom: 5px;
}

.wait-data-note p {
    margin: 0;
    color: #627080;
    font-size: 12px;
    line-height: 1.55;
}

.wait-times-column .powered {
    margin: 13px 2px 0;
}

@media(max-width:900px) {
    .wait-workspace {
        grid-template-columns: 1fr;
    }
    .wait-park-column {
        position: static;
    }
    .wait-park-directory {
        max-height: none;
    }
    .wait-park-directory .park-buttons {
        display: grid;
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
    .wait-park-directory .park-button {
        height: 100%;
    }
}

@media(max-width:650px) {
    .wait-times-column {
        padding: 16px;
    }
    .wait-column-title {
        padding: 21px 19px 18px;
    }
    .wait-park-directory {
        padding: 5px 14px 17px;
    }
    .wait-park-directory .park-buttons {
        grid-template-columns: 1fr;
    }
    .wait-list-heading {
        align-items: flex-start;
        flex-direction: column;
    }
    .wait-mini-legend {
        justify-content: flex-start;
    }
    .wait-row {
        gap: 10px;
    }
    .ride-wait {
        min-width: 72px;
    }
}

/* ParkPulse community expansion */

.page-intro {
    margin: -10px 0 28px;
    color: var(--muted);
    font-size: 16px;
    line-height: 1.65;
}

.notification-link {
    position: relative;
}

.notification-link b {
    position: absolute;
    top: 8px;
    right: 1px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 10px;
    background: #d74747;
    color: #fff;
    font-size: 10px;
    display: grid;
    place-items: center;
}

.trending-row {
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 10px;
    padding: 12px 0;
    border-top: 1px solid rgba(255,255,255,.12);
}

.trending-row>b {
    color: var(--yellow);
    font-size: 22px;
}

.trending-row span {
    font-size: 13px;
    line-height: 1.35;
}

.trending-row small {
    display: block;
    color: #8fa5bf;
    margin-top: 4px;
}

.park-card-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 22px;
}

.park-profile-card {
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 10px 28px rgba(10,36,71,.07);
}

.park-profile-card img {
    width: 100%;
    height: 190px;
    object-fit: cover;
}

.park-profile-card>a>div {
    padding: 20px;
}

.park-profile-card span {
    color: var(--blue);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
}

.park-profile-card h2 {
    margin: 6px 0 9px;
    color: var(--navy);
}

.park-profile-card p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.55;
}

.park-profile-card form {
    padding: 0 20px 20px;
}

.favorite-button {
    width: 100%;
    padding: 11px;
    border: 1px solid #dbe3eb;
    border-radius: 8px;
    background: #f7f9fb;
    color: var(--navy);
    font-weight: 900;
    cursor: pointer;
}

.favorite-button.active {
    background: #fff4c6;
    border-color: #ffd65d;
    color: #805700;
}

.park-hero-profile {
    border-radius: 18px;
    padding: 54px;
    color: #fff;
    background: #0B294C;
    background-size: cover;
    background-position: center;
    box-shadow: 0 16px 42px rgba(7,29,59,.18);
}

.park-hero-profile>span {
    color: var(--yellow);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .16em;
}

.park-hero-profile h1 {
    font-size: 48px;
    margin: 8px 0 12px;
}

.park-hero-profile p {
    max-width: 700px;
    color: #d9e4ef;
    font-size: 17px;
    line-height: 1.65;
}

.park-hero-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 22px;
}

.park-hero-actions form {
    margin: 0;
}

.park-info-strip {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 12px;
    margin: 22px 0 42px;
}

.park-info-strip>div {
    background: #f6f8fb;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 18px;
}

.park-info-strip span {
    display: block;
    color: #84909e;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .1em;
    margin-bottom: 6px;
}

.park-info-strip strong {
    color: var(--navy);
    font-size: 13px;
    line-height: 1.45;
}

.simple-news-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 18px;
}

.simple-news-grid article {
    display: grid;
    grid-template-columns: 150px 1fr;
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

.simple-news-grid img {
    width: 150px;
    height: 100%;
    min-height: 150px;
    object-fit: cover;
}

.simple-news-grid article>div {
    padding: 18px;
}

.simple-news-grid span {
    font-size: 10px;
    color: var(--blue);
    font-weight: 900;
}

.simple-news-grid h3 {
    margin: 6px 0 8px;
    color: var(--navy);
    font-size: 18px;
}

.simple-news-grid p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.5;
}

.personal-grid {
    display: grid;
    grid-template-columns: minmax(0,1fr) 330px;
    gap: 32px;
}

.subhead {
    color: var(--navy);
    margin-top: 0;
}

.profile-panel {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 26px;
    box-shadow: 0 10px 28px rgba(10,36,71,.05);
}

.profile-panel label {
    display: grid;
    gap: 7px;
    margin: 0 0 18px;
    font-size: 13px;
    font-weight: 800;
}

.profile-panel input,.profile-panel textarea,.search-form input {
    width: 100%;
    padding: 13px;
    border: 1px solid #d9e1e9;
    border-radius: 8px;
    font: inherit;
}

.favorite-ride-link {
    display: block;
    border-top: 1px solid var(--line);
    padding: 13px 0;
}

.favorite-ride-link span {
    display: block;
    color: var(--muted);
    font-size: 11px;
    margin-top: 3px;
}

.search-form {
    display: flex;
    gap: 10px;
    max-width: 780px;
    margin-bottom: 25px;
}

.search-form input {
    font-size: 17px;
}

.search-summary {
    color: var(--muted);
}

.search-groups {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 26px;
}

.search-groups section {
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 22px;
}

.search-groups h2 {
    font-size: 14px;
    color: var(--navy);
    letter-spacing: .08em;
}

.search-result {
    display: block;
    padding: 13px 0;
    border-top: 1px solid var(--line);
}

.search-result strong {
    display: block;
    color: var(--navy);
}

.search-result span {
    display: block;
    color: var(--muted);
    font-size: 12px;
    margin-top: 4px;
    line-height: 1.4;
}

.profile-header {
    display: flex;
    align-items: center;
    gap: 22px;
    background: linear-gradient(135deg,#071d3b,#0B294C);
    padding: 34px;
    border-radius: 16px;
    color: #fff;
    margin-bottom: 26px;
}

.profile-header.public {
    align-items: flex-start;
}

.profile-header>div:last-child {
    flex: 1;
}

.profile-header span {
    color: var(--yellow);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .14em;
}

.profile-header h1 {
    font-size: 38px;
    margin: 4px 0 8px;
}

.profile-header p {
    color: #d7e0ea;
    line-height: 1.6;
}

.profile-avatar {
    width: 92px;
    height: 92px;
    border-radius: 50%;
    overflow: hidden;
    background: #1778d4;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 38px;
    font-weight: 950;
    flex: 0 0 92px;
}

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

.profile-stats {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 14px;
    margin: 0 0 34px;
}

.profile-stats>div {
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 20px;
}

.profile-stats strong {
    display: block;
    color: var(--navy);
    font-size: 22px;
}

.profile-stats span {
    color: var(--muted);
    font-size: 12px;
}

.mini-park-grid {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.mini-park-grid a {
    min-width: 180px;
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 10px;
}

.mini-park-grid span {
    display: block;
    color: var(--muted);
    font-size: 11px;
    margin-top: 4px;
}

.notification-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
}

.notification-toolbar a {
    color: var(--blue);
    font-weight: 800;
}

.notification-list {
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden;
}

.notification-item {
    display: grid;
    gap: 5px;
    padding: 18px 20px;
    border-top: 1px solid var(--line);
    background: #fff;
}

.notification-item:first-child {
    border-top: 0;
}

.notification-item.unread {
    background: #eef6ff;
    border-left: 4px solid var(--blue);
}

.notification-item>span {
    font-size: 10px;
    text-transform: uppercase;
    color: var(--blue);
    font-weight: 900;
}

.notification-item small {
    color: var(--muted);
}

.article-park-chip {
    display: inline-block;
    background: #eef6ff;
    color: #0a68bb;
    border: 1px solid #cfe4f8;
    border-radius: 999px;
    padding: 8px 12px;
    font-size: 12px;
    font-weight: 900;
    margin-bottom: 2px;
}

.comment-reply {
    margin-left: 42px;
    padding-left: 18px;
    border-left: 3px solid #dce8f4;
}

.comment-tools {
    display: flex;
    gap: 8px;
    align-items: center;
}

.comment-tools form {
    margin: 0;
}

.comment-tools button {
    border: 0;
    background: #f1f4f7;
    border-radius: 7px;
    padding: 7px 10px;
    color: #536274;
    cursor: pointer;
    font-weight: 750;
}

.reply-form {
    margin: 14px 0 0;
    padding: 14px;
    background: #f7f9fb;
    border-radius: 10px;
}

.reply-form textarea {
    width: 100%;
    min-height: 80px;
    border: 1px solid #d9dfe6;
    border-radius: 8px;
    padding: 12px;
    font: inherit;
    margin-bottom: 8px;
}

.ride-title-line {
    display: flex;
    gap: 8px;
    align-items: center;
}

.ride-favorite {
    border: 0;
    background: none;
    color: #97a3af;
    font-size: 22px;
    cursor: pointer;
    padding: 0;
}

.ride-favorite.active {
    color: #ffc928;
    text-shadow: 0 1px 1px #7a5b00;
}

@media(max-width:900px) {
    .park-card-grid {
        grid-template-columns: repeat(2,1fr);
    }
    .personal-grid,.search-groups {
        grid-template-columns: 1fr;
    }
    .park-info-strip {
        grid-template-columns: 1fr;
    }
    .simple-news-grid {
        grid-template-columns: 1fr;
    }
}

@media(max-width:600px) {
    .park-card-grid {
        grid-template-columns: 1fr;
    }
    .park-hero-profile {
        padding: 30px 22px;
    }
    .park-hero-profile h1 {
        font-size: 36px;
    }
    .simple-news-grid article {
        grid-template-columns: 1fr;
    }
    .simple-news-grid img {
        width: 100%;
        height: 180px;
    }
    .profile-header {
        align-items: flex-start;
        flex-direction: column;
    }
    .profile-stats {
        grid-template-columns: 1fr;
    }
    .comment-reply {
        margin-left: 18px;
    }
    .search-form {
        flex-direction: column;
    }
}

/* ParkPulse refined Parks tiles + Most Read Top 5 */

.park-card-grid {
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 18px;
}

.park-profile-card {
    border: 1px solid #dbe5ef;
    border-radius: 12px;
    box-shadow: 0 8px 22px rgba(11,41,76,.08);
    transition: transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}

.park-profile-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 13px 30px rgba(11,41,76,.14);
    border-color: #b9ccdf;
}

.park-profile-card>a {
    display: block;
}

.park-profile-card img {
    display: block;
    width: 100%;
    height: 120px;
    object-fit: cover;
}

.park-profile-card>a>div {
    padding: 14px 15px 12px;
}

.park-profile-card h2 {
    font-size: 18px;
    line-height: 1.2;
    margin: 4px 0 6px;
}

.park-profile-card p {
    display: -webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow: hidden;
    min-height: 39px;
    font-size: 12px;
}

.park-profile-card form {
    padding: 0 15px 15px;
}

.park-profile-card .favorite-button {
    padding: 9px 10px;
    font-size: 12px;
}

.trending-card {
    background: #0B294C;
    border-color: #173b65;
    padding: 0!important;
    overflow: hidden;
}

.trending-card>h3 {
    margin: 0;
    padding: 17px 18px;
    background: #081f3a;
    border-bottom: 3px solid var(--yellow);
    color: #fff;
    letter-spacing: .08em;
}

.trending-card .trending-row {
    position: relative;
    grid-template-columns: 46px 1fr;
    gap: 12px;
    min-height: 76px;
    padding: 13px 16px 13px 10px;
    border-top: 1px solid rgba(255,255,255,.10);
    background: #0B294C;
    transition: background .16s ease;
}

.trending-card .trending-row:first-of-type {
    border-top: 0;
}

.trending-card .trending-row:hover {
    background: #12365e;
}

.trending-card .trending-row>b {
    display: grid;
    place-items: center;
    align-self: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--yellow);
    color: #0B294C;
    font-size: 19px;
    font-weight: 950;
    line-height: 1;
}

.trending-card .trending-row span {
    align-self: center;
    color: #fff;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 800;
}

.trending-card .trending-row small {
    color: #aebfd1;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .02em;
}

.trending-card .trending-row:first-of-type>b {
    box-shadow: 0 0 0 4px rgba(255,201,40,.13);
}

@media(max-width:1100px) {
    .park-card-grid {
        grid-template-columns: repeat(3,minmax(0,1fr));
    }
}

@media(max-width:800px) {
    .park-card-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
    .park-profile-card img {
        height: 130px;
    }
}

@media(max-width:520px) {
    .park-card-grid {
        grid-template-columns: 1fr;
    }
    .park-profile-card {
        display: grid;
        grid-template-columns: 120px 1fr;
    }
    .park-profile-card>a {
        display: contents;
    }
    .park-profile-card img {
        width: 120px;
        height: 100%;
        min-height: 150px;
    }
    .park-profile-card>a>div {
        padding: 14px;
    }
    .park-profile-card form {
        grid-column: 2;
        padding: 0 14px 14px;
    }
}

/* Wait Times v3: opening hours, favourites and richer operational statuses */

.wait-stats {
    grid-template-columns: repeat(4,1fr);
}

.ride-status.down {
    color: #b46b00;
    background: #fff2d8;
}

.ride-status.maintenance {
    color: #7855a6;
    background: #f1eaff;
}

.ride-wait.closed {
    min-width: 112px;
}

.ride-favorite {
    transition: transform .15s ease,color .15s ease;
}

.ride-favorite:hover {
    transform: scale(1.18);
    color: #ffc928;
}

.ride-favorite:disabled {
    opacity: .5;
}

@media(max-width:700px) {
    .wait-stats {
        grid-template-columns: repeat(2,1fr);
    }
}

/* ParkPulse v4 */

.parks-country {
    margin: 0 0 38px;
}

.parks-country-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    border-bottom: 3px solid #0B294C;
    margin: 0 0 17px;
    padding: 0 2px 9px;
}

.parks-country-heading h2 {
    margin: 0;
    color: #0B294C;
    font-size: 22px;
    letter-spacing: .04em;
}

.parks-country-heading span {
    font-size: 10px;
    font-weight: 900;
    color: #738295;
    letter-spacing: .12em;
}

.wait-stats {
    grid-template-columns: repeat(3,1fr);
}

.favorite-ride-link {
    position: relative;
    display: grid!important;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 2px 12px;
    align-items: center;
}

.favorite-ride-link strong {
    grid-column: 1;
}

.favorite-ride-meta {
    grid-column: 1;
    color: #8290a0!important;
    font-size: 11px;
}

.favorite-live-wait {
    grid-column: 2;
    grid-row: 1/3;
    min-width: 72px;
    text-align: center;
    padding: 7px 9px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 950;
}

.favorite-live-wait.loading {
    background: #eef2f6;
    color: #748292;
}

.favorite-live-wait.low {
    background: #e1f5e8;
    color: #17753b;
}

.favorite-live-wait.medium {
    background: #fff3ce;
    color: #8a6500;
}

.favorite-live-wait.high {
    background: #ffe2e0;
    color: #a52d28;
}

.favorite-live-wait.closed {
    background: #edf0f3;
    color: #6d7885;
}

.favorite-live-wait.down {
    background: #fff2d8;
    color: #a66200;
}

.favorite-live-wait.maintenance {
    background: #f1eaff;
    color: #7855a6;
}

@media(max-width:700px) {
    .wait-stats {
        grid-template-columns: 1fr 1fr;
    }
    .parks-country-heading {
        align-items: center;
    }
}

/* ParkPulse v6: unified park logos — white marks on ParkPulse blue */

.park-profile-card .park-logo-box {
    height: 120px;
    background: #0B294C;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
    border-bottom: 1px solid rgba(255,255,255,.14);
    overflow: hidden;
}

.park-profile-card .park-logo-box img {
    width: auto!important;
    height: auto!important;
    max-width: 100%;
    max-height: 100px;
    object-fit: contain!important;
    filter: none;
    opacity: 1;
}

.notification-link {
    color: #000!important;
}

.notification-link svg,.notification-link i {
    color: #000!important;
    fill: #000!important;
}

@media(max-width:800px) {
    .park-profile-card .park-logo-box {
        height: 120px;
    }
}

@media(max-width:520px) {
    .park-profile-card .park-logo-box {
        width: 120px;
        height: 100%;
        min-height: 150px;
        padding: 18px;
    }
    .park-profile-card .park-logo-box img {
        width: auto!important;
        height: auto!important;
        max-width: 84px;
        max-height: 84px;
    }
}

/* ParkPulse v5.1: true black notification bell (no yellow emoji rendering) */

.notification-link .notification-bell {
    position: relative;
    display: inline-block;
    width: 15px;
    height: 15px;
    margin-top: 1px;
    border: 2px solid #000;
    border-top-left-radius: 9px;
    border-top-right-radius: 9px;
    border-bottom: 0;
    box-sizing: border-box;
}

.notification-link .notification-bell:before {
    content: "";
    position: absolute;
    left: 50%;
    top: -5px;
    width: 4px;
    height: 4px;
    margin-left: -2px;
    border-radius: 50%;
    background: #000;
}

.notification-link .notification-bell:after {
    content: "";
    position: absolute;
    left: -3px;
    bottom: -4px;
    width: 17px;
    height: 5px;
    border-bottom: 2px solid #000;
    border-radius: 0 0 10px 10px;
    box-sizing: border-box;
}

.notification-link b {
    background: #d74747!important;
    color: #fff!important;
}

/* ParkPulse v6 — Community comments */

.comments-v2 {
    margin-top: 44px;
}

.comments-titlebar {
    display: flex;
    align-items: end;
    justify-content: space-between;
    border-bottom: 3px solid #0B294C;
    padding-bottom: 12px;
    margin-bottom: 20px;
}

.comments-kicker {
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .14em;
    color: #718096;
}

.comments-titlebar h2 {
    margin: 3px 0 0;
    color: #0B294C;
    font-size: 25px;
}

.comments-titlebar h2 b {
    display: inline-grid;
    place-items: center;
    min-width: 27px;
    height: 27px;
    border-radius: 50%;
    background: #ffc928;
    color: #0B294C;
    font-size: 13px;
    vertical-align: 3px;
}

.comment-sort {
    display: flex;
    align-items: center;
    gap: 8px;
}

.comment-sort label {
    font-size: 9px;
    font-weight: 900;
    color: #718096;
}

.comment-sort select {
    border: 1px solid #ccd7e2;
    border-radius: 7px;
    background: #fff;
    padding: 7px 25px 7px 9px;
    font-weight: 800;
    color: #0B294C;
}

.comment-compose {
    display: grid!important;
    grid-template-columns: 44px 1fr;
    gap: 13px;
    background: #f7f9fb!important;
    border: 1px solid #dce5ed!important;
    border-left: 4px solid #0B294C!important;
    padding: 17px!important;
}

.compose-avatar,.comment-avatar-large {
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #0B294C;
    color: #fff;
    font-weight: 950;
    overflow: hidden;
}

.compose-avatar {
    width: 44px;
    height: 44px;
}

.compose-avatar img,.comment-avatar-large img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.compose-main>strong {
    color: #0B294C;
}

.compose-main textarea {
    width: 100%;
    margin: 8px 0 9px;
    min-height: 90px;
}

.compose-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.compose-footer small {
    color: #718096;
}

.comment-login-note {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    align-items: center;
}

.comment-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 20px;
}

.comment-card {
    display: grid!important;
    grid-template-columns: 46px 1fr;
    gap: 13px;
    padding: 17px 18px!important;
    border: 1px solid #dce5ed!important;
    border-radius: 10px!important;
    background: #fff!important;
    box-shadow: 0 4px 14px rgba(11,41,76,.045);
}

.comment-avatar-large {
    width: 46px;
    height: 46px;
}

.comment-content {
    min-width: 0;
}

.comment-head {
    display: flex!important;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.comment-head>div {
    display: flex;
    gap: 7px;
    align-items: center;
}

.comment-head a strong {
    color: #0B294C;
}

.comment-head time {
    font-size: 10px;
    color: #8290a0;
}

.comment-admin-badge {
    background: #0B294C;
    color: #fff;
    border-radius: 4px;
    padding: 3px 5px;
    font-size: 8px;
    font-weight: 950;
    letter-spacing: .08em;
}

.comment-body {
    margin: 9px 0 11px!important;
    line-height: 1.65;
    color: #27384b;
}

.comment-mention {
    color: #1165a8;
    font-weight: 900;
    background: #eaf4fc;
    border-radius: 4px;
    padding: 1px 3px;
}

.comment-tools {
    display: flex!important;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.comment-tools form {
    margin: 0;
}

.comment-tools button,.comment-like-static {
    border: 0;
    background: transparent;
    color: #657486;
    padding: 5px 7px;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.comment-tools button:hover {
    background: #f1f4f7;
    color: #0B294C;
    border-radius: 5px;
}

.comment-like.liked {
    color: #1165a8;
    background: #eaf4fc;
    border-radius: 5px;
}

.comment-more {
    position: relative;
    margin-left: auto;
}

.more-menu {
    position: absolute;
    right: 0;
    top: 30px;
    z-index: 10;
    background: #fff;
    border: 1px solid #d8e0e8;
    border-radius: 7px;
    box-shadow: 0 8px 25px rgba(11,41,76,.15);
    padding: 5px;
    min-width: 130px;
}

.more-menu button {
    width: 100%;
    text-align: left;
    white-space: nowrap;
    color: #a33131!important;
}

.comment-reply {
    margin-left: 55px!important;
    position: relative;
    background: #fafbfd!important;
}

.comment-reply:before {
    content: "";
    position: absolute;
    left: -29px;
    top: -13px;
    width: 18px;
    height: 42px;
    border-left: 2px solid #ccd8e4;
    border-bottom: 2px solid #ccd8e4;
    border-radius: 0 0 0 10px;
}

.improved-reply-form,.edit-comment-form {
    margin-top: 12px;
    background: #f6f8fa;
    border: 1px solid #dce4eb;
    border-radius: 8px;
    padding: 12px;
}

.improved-reply-form strong,.edit-comment-form strong {
    display: block;
    color: #0B294C;
    font-size: 11px;
    margin-bottom: 7px;
}

.edit-comment-form strong small {
    font-weight: 500;
    color: #8290a0;
}

.improved-reply-form textarea,.edit-comment-form textarea {
    width: 100%;
    min-height: 75px;
}

.improved-reply-form>div,.edit-comment-form>div {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 7px;
}

.reply-cancel,.edit-cancel {
    border: 0;
    background: transparent;
    font-weight: 800;
    color: #657486;
    cursor: pointer;
}

.comments-empty {
    text-align: center;
    padding: 35px;
    background: #f7f9fb;
    border: 1px dashed #cbd6e0;
    border-radius: 9px;
    color: #607083;
}

.comments-empty strong {
    display: block;
    color: #0B294C;
    font-size: 17px;
}

.comments-empty p {
    margin: 4px 0;
}

.admin-stats>a.admin-stat-attention {
    background: #fff0f0!important;
    border-color: #e8aaaa!important;
    box-shadow: 0 5px 18px rgba(170,45,45,.09)!important;
}

.admin-stat-attention .stat-icon {
    background: #d84b4b!important;
    color: #fff!important;
}

.admin-stat-attention strong {
    color: #a92e2e!important;
}

.admin-stat-attention em {
    display: inline-block;
    margin-top: 5px;
    color: #b23b3b;
    font-size: 9px;
    font-style: normal;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .08em;
}

@media(max-width:650px) {
    .comments-titlebar {
        align-items: flex-start;
        gap: 12px;
    }
    .comment-card {
        grid-template-columns: 36px 1fr;
        padding: 14px!important;
    }
    .comment-avatar-large {
        width: 36px;
        height: 36px;
    }
    .comment-reply {
        margin-left: 20px!important;
    }
    .comment-reply:before {
        display: none;
    }
    .comment-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 2px;
    }
    .compose-footer {
        align-items: flex-start;
        flex-direction: column;
    }
    .comment-compose {
        grid-template-columns: 36px 1fr;
    }
    .compose-avatar {
        width: 36px;
        height: 36px;
    }
}

/* ParkPulse v7 — notification states + mobile hardening */

.notification-item.comment_approved span {
    color: #17753b;
}

.notification-item.comment_rejected span {
    color: #a52d28;
}

@media(max-width:650px) {
    html,body {
        max-width: 100%;
        overflow-x: hidden;
    }
    .nav-inner {
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling:touch;
        scrollbar-width: none;
    }
    .nav-inner::-webkit-scrollbar {
        display: none;
    }
    .nav-inner a,.welcome {
        flex: 0 0 auto;
    }
    .notification-link {
        min-width: 42px;
        text-align: center;
    }
    .notification-link b {
        top: 5px;
        right: 0;
    }
    .notification-toolbar {
        align-items: flex-start!important;
        flex-direction: column;
        gap: 8px;
    }
    .notification-list {
        min-width: 0;
    }
    .notification-item {
        min-width: 0;
        padding: 14px!important;
    }
    .notification-item strong {
        overflow-wrap: anywhere;
        line-height: 1.45;
    }
    .comments-titlebar {
        flex-direction: column;
        align-items: stretch!important;
    }
    .comment-sort {
        justify-content: space-between;
        width: 100%;
    }
    .comment-sort select {
        max-width: 180px;
    }
    .comment-compose {
        grid-template-columns: 1fr!important;
    }
    .compose-avatar {
        display: none;
    }
    .comment-card {
        grid-template-columns: 1fr!important;
    }
    .comment-avatar-large {
        width: 34px;
        height: 34px;
        margin-bottom: -40px;
        position: relative;
        z-index: 1;
    }
    .comment-content {
        padding-left: 45px;
    }
    .comment-body,.comment-tools,.improved-reply-form,.edit-comment-form {
        margin-left: -45px!important;
    }
    .comment-head time {
        white-space: normal;
    }
    .comment-tools {
        gap: 2px;
    }
    .comment-tools button,.comment-like-static {
        padding: 7px 6px;
    }
    .comment-more {
        margin-left: 0;
    }
    .more-menu {
        left: 0;
        right: auto;
    }
    .park-profile-card {
        grid-template-columns: 92px minmax(0,1fr)!important;
    }
    .park-profile-card .park-logo-box {
        width: 92px!important;
        min-height: 130px!important;
        padding: 12px!important;
    }
    .park-profile-card .park-logo-box img {
        max-width: 68px!important;
        max-height: 68px!important;
    }
    .park-profile-card form {
        grid-column: 2!important;
    }
    .favorite-ride-link {
        grid-template-columns: minmax(0,1fr) auto!important;
    }
    .favorite-live-wait {
        min-width: 68px;
        font-size: 10px;
    }
    .wait-stats {
        grid-template-columns: 1fr 1fr!important;
    }
    .wait-stats>div:last-child:nth-child(odd) {
        grid-column: 1/-1;
    }
    .wait-row {
        align-items: flex-start;
    }
    .ride-title-line {
        align-items: flex-start;
    }
    .ride-name {
        overflow-wrap: anywhere;
    }
    .ride-wait {
        flex: 0 0 auto;
    }
    .admin-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling:touch
    }
    .moderation-meta {
        align-items: flex-start!important;
        flex-wrap: wrap;
    }
    .moderation-actions {
        flex-wrap: wrap;
    }
}

@media(max-width:390px) {
    .page-shell {
        padding-left: 11px;
        padding-right: 11px;
    }
    .wait-stats {
        grid-template-columns: 1fr!important;
    }
    .wait-stats>div:last-child:nth-child(odd) {
        grid-column: auto;
    }
    .comment-content {
        padding-left: 41px;
    }
    .comment-body,.comment-tools,.improved-reply-form,.edit-comment-form {
        margin-left: -41px!important;
    }
}

/* ParkPulse Parks: live park OPEN / CLOSED status */

.park-card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.park-profile-card .park-open-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    padding: 4px 7px;
    border-radius: 999px;
    font-size: 9px!important;
    font-weight: 950!important;
    line-height: 1;
    letter-spacing: .08em!important;
    white-space: nowrap;
}

.park-profile-card .park-open-status.checking {
    background: #eef2f6;
    color: #728092;
}

.park-profile-card .park-open-status.open {
    background: #dff5e7;
    color: #13733a;
}

.park-profile-card .park-open-status.closed {
    background: #ffe3e1;
    color: #a52d28;
}

.park-profile-card .park-open-status.unavailable {
    background: #eef2f6;
    color: #728092;
    font-size: 8px!important;
}

@media(max-width:520px) {
    .park-card-meta {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }
    .park-profile-card .park-open-status {
        align-self: flex-start;
    }
}

/* Latest News sidebar: account CTA and profile extras */

.side-card-kicker {
    display: block;
    color: var(--yellow);
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .14em;
    margin-bottom: 7px;
}

.account-teaser h3 {
    margin-bottom: 10px;
}

.account-benefits {
    list-style: none;
    margin: 16px 0 20px;
    padding: 0;
}

.account-benefits li {
    position: relative;
    padding: 9px 0 9px 24px;
    border-top: 1px solid rgba(255,255,255,.10);
    color: #e1e9f2;
    font-size: 13px;
    line-height: 1.4;
}

.account-benefits li:before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--yellow);
    font-weight: 950;
}

.account-teaser small {
    display: block;
    margin-top: 12px;
    text-align: center;
}

.account-teaser small a,.side-card-secondary {
    color: #8fc8ff;
    font-weight: 800;
}

.side-card-secondary {
    display: block;
    text-align: center;
    margin-top: 13px;
    font-size: 12px;
}

.profile-details {
    display: flex;
    gap: 10px 24px;
    flex-wrap: wrap;
    margin-top: 14px;
}

.profile-details span {
    color: #d7e0ea!important;
    font-size: 12px!important;
    letter-spacing: 0!important;
}

.profile-details strong {
    display: block;
    color: var(--yellow);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: .1em;
    margin-bottom: 3px;
}

/* ==========================================================
   PARKPULSE PASSPORT
   Account actions, profile lists and passport statistics
   ========================================================== */

.park-account-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 0 14px 14px;
}

.park-account-actions form {
    margin: 0 !important;
    grid-column: auto !important;
}

.park-account-actions form:first-child {
    grid-column: 1 / -1 !important;
}

.park-account-actions button, .park-account-actions .favorite-button {
    width: 100%;
    min-height: 42px;
    padding: 8px 7px;
    border-radius: 7px;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.18;
    white-space: normal;
    cursor: pointer;
}

.passport-button, .wishlist-button {
    background: #fff;
    border: 1px solid #ccd7e2;
    color: #0B294C;
}

.passport-button:hover, .wishlist-button:hover {
    border-color: #0B294C;
}

.passport-button.active, .passport-hero.active {
    background: #e3f5e9 !important;
    border-color: #77bc8e !important;
    color: #176b36 !important;
}

.wishlist-button.active, .wishlist-hero.active {
    background: #fff0f3 !important;
    border-color: #e1a1ad !important;
    color: #9d3450 !important;
}

.profile-stats {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.profile-subheading {
    margin-top: 35px;
}

.passport-stamp, .wishlist-mark {
    display: block;
    width: max-content;
    margin-bottom: 7px;
    padding: 3px 6px;
    border-radius: 4px;
    font-size: 8px;
    letter-spacing: .08em;
}

.passport-stamp {
    background: #e3f5e9;
    color: #176b36;
}

.wishlist-mark {
    background: #fff0f3;
    color: #9d3450;
}

/* ParkPulse Passport heading + View Map button */

.passport-heading {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 24px;
    position: relative;
}

.passport-heading-title {
    flex: 0 0 auto;
}

.passport-heading-title h2 {
    margin: 0;
}

.passport-heading-title > span {
    display: block;
    width: 54px;
    height: 5px;
    margin-top: 10px;
    background: var(--yellow);
    border-radius: 9px;
}

.passport-map-button {
    flex: 0 0 auto;
    margin-top: 0;
    border: 0;
    border-radius: 7px;
    padding: 10px 14px;
    background: #0B294C;
    color: #fff;
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .05em;
    white-space: nowrap;
    cursor: pointer;
}

.passport-map-button:hover {
    background: #123d6d;
}

/* ==========================================================
   PARKPULSE PASSPORT MAP OVERLAY
   ========================================================== */

.passport-map-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 28px;
    background: rgba(4, 18, 34, .76);
    backdrop-filter: blur(3px);
}

.passport-map-overlay.open {
    display: flex;
}

.passport-map-modal {
    display: flex;
    flex-direction: column;
    width: min(1180px, 96vw);
    height: min(760px, 90vh);
    overflow: hidden;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 25px 80px rgba(0, 0, 0, .35);
}

.passport-map-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 20px 12px;
    background: #0B294C;
    color: #fff;
}

.passport-map-top h2 {
    margin: 2px 0 0;
    font-size: 20px;
}

.map-kicker {
    color: #ffd84d;
    font-size: 9px;
    font-weight: 950;
    letter-spacing: .15em;
}

.passport-map-close {
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

.passport-map-filters {
    display: flex;
    gap: 8px;
    padding: 12px 20px;
    background: #f5f7fa;
    border-bottom: 1px solid #dce4eb;
}

.passport-map-filters button {
    padding: 8px 12px;
    border: 1px solid #cbd6e0;
    border-radius: 999px;
    background: #fff;
    color: #0B294C;
    font-size: 9px;
    font-weight: 950;
    cursor: pointer;
}

.passport-map-filters button.active {
    background: #0B294C;
    border-color: #0B294C;
    color: #fff;
}

.passport-map {
    flex: 1;
    min-height: 380px;
}

.passport-map-legend {
    display: flex;
    gap: 18px;
    padding: 10px 20px;
    color: #526274;
    font-size: 11px;
    font-weight: 800;
}

.passport-map-legend span {
    display: flex;
    align-items: center;
    gap: 6px;
}

.passport-map-legend i {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.visited-dot {
    background: #23864a;
}

.wishlist-dot {
    background: #c44768;
}

.pp-map-pin-wrap {
    background: transparent !important;
    border: 0 !important;
}

.pp-map-pin {
    display: block;
    width: 22px;
    height: 22px;
    border: 3px solid #fff;
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
    box-shadow: 0 2px 7px rgba(0, 0, 0, .35);
}

.pp-map-pin.visited {
    background: #23864a;
}

.pp-map-pin.wishlist {
    background: #c44768;
}

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

.pp-map-popup b, .pp-map-popup span, .pp-map-popup em, .pp-map-popup a {
    display: block;
}

.pp-map-popup b {
    color: #0B294C;
    font-size: 13px;
}

.pp-map-popup span {
    margin: 2px 0 7px;
    color: #69798a;
    font-size: 11px;
}

.pp-map-popup em {
    margin-bottom: 8px;
    font-size: 9px;
    font-style: normal;
    font-weight: 950;
}

.pp-map-popup a {
    color: #0B294C;
    font-size: 10px;
    font-weight: 950;
}

.map-open {
    overflow: hidden;
}

/* ParkPulse Passport responsive behaviour */

@media (max-width: 900px) {
    .profile-stats {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 650px) {
    .park-account-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
        padding: 0 10px 12px;
    }
    .park-account-actions button, .park-account-actions .favorite-button {
        min-height: 42px;
        font-size: 10.5px;
    }
    .profile-stats {
        grid-template-columns: 1fr 1fr;
    }
    .profile-stats > div:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }
    .passport-heading {
        gap: 16px;
    }
    .passport-map-button {
        padding: 9px 11px;
        font-size: 9px;
    }
    .passport-map-overlay {
        padding: 0;
    }
    .passport-map-modal {
        width: 100vw;
        height: 100vh;
        max-height: none;
        border-radius: 0;
    }
    .passport-map-top {
        padding: 16px;
    }
    .passport-map-top h2 {
        font-size: 17px;
    }
    .passport-map-filters {
        overflow-x: auto;
        padding: 10px 12px;
    }
    .passport-map-filters button {
        flex: 0 0 auto;
    }
    .passport-map {
        min-height: 0;
    }
    .passport-map-legend {
        padding: 9px 12px;
    }
}

@media (max-width: 430px) {
    .passport-heading {
        align-items: center;
        gap: 12px;
    }
    .passport-heading-title h2 {
        font-size: 23px;
    }
    .passport-map-button {
        padding: 8px 9px;
        font-size: 8px;
    }
}

/* ==========================================================
   PARKPULSE UI POLISH — September 2026
   Consistent cards, buttons, spacing, hover states and mobile
   Keep this section together for future visual adjustments.
   ========================================================== */

:root {
    --pp-radius-sm: 8px;
    --pp-radius-md: 12px;
    --pp-radius-lg: 16px;
    --pp-shadow-card: 0 8px 24px rgba(10, 36, 71, .075);
    --pp-shadow-hover: 0 14px 32px rgba(10, 36, 71, .13);
    --pp-transition: .18s ease;
}

/* General rhythm and interactive feedback */

.section-heading {
    margin-bottom: 28px;
}

.page-intro {
    margin-bottom: 32px;
}

a, button, input, textarea, select {
    transition: color var(--pp-transition), background-color var(--pp-transition), border-color var(--pp-transition), box-shadow var(--pp-transition), transform var(--pp-transition);
}

button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
    outline: 3px solid rgba(23, 120, 212, .24);
    outline-offset: 2px;
}

/* Primary buttons */

.yellow-button {
    min-height: 42px;
    border-radius: var(--pp-radius-sm);
    padding: 12px 18px;
    box-shadow: 0 4px 12px rgba(255, 201, 40, .15);
}

.yellow-button:hover {
    transform: translateY(-1px);
    box-shadow: 0 7px 17px rgba(255, 201, 40, .23);
    filter: brightness(1.02);
}

.yellow-button:active {
    transform: translateY(0);
}

.register-button:hover {
    background: #123a68;
}

/* Latest News cards */

.homepage-shell .news-card {
    border-radius: var(--pp-radius-md);
    transition: transform var(--pp-transition), box-shadow var(--pp-transition);
}

.homepage-shell .news-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .24);
}

.homepage-shell .news-image-link {
    overflow: hidden;
}

.homepage-shell .news-card img {
    transition: transform .32s ease;
}

.homepage-shell .news-card:hover img {
    transform: scale(1.025);
}

.homepage-shell .read-more:hover {
    color: #ffe078;
}

/* Sidebar cards */

.sidebar {
    gap: 24px;
}

.side-card {
    border: 1px solid rgba(255, 255, 255, .06);
    border-radius: var(--pp-radius-md);
    box-shadow: var(--pp-shadow-card);
}

.side-card h3 {
    line-height: 1.25;
}

.trending-row {
    transition: background-color var(--pp-transition), padding-left var(--pp-transition), padding-right var(--pp-transition);
}

.trending-row:hover {
    background: rgba(255, 255, 255, .045);
    padding-left: 7px;
    padding-right: 7px;
}

/* Parks cards and account actions */

.park-profile-card {
    border-radius: var(--pp-radius-md);
    box-shadow: var(--pp-shadow-card);
}

.park-profile-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--pp-shadow-hover);
}

.park-profile-card .park-logo-box img {
    transition: transform var(--pp-transition);
}

.park-profile-card:hover .park-logo-box img {
    transform: scale(1.035);
}

.park-account-actions {
    gap: 9px;
}

.park-account-actions button, .park-account-actions .favorite-button {
    min-height: 44px;
    border-radius: var(--pp-radius-sm);
    padding: 9px 10px;
    line-height: 1.2;
}

.park-account-actions button:hover, .park-account-actions .favorite-button:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(10, 36, 71, .08);
}

.favorite-button:not(.active):hover {
    background: #eef4fa;
    border-color: #b7c9da;
}

.passport-button:hover, .wishlist-button:hover {
    background: #f7fafc;
    border-color: #8fa8bf;
}

.parks-country {
    margin-bottom: 44px;
}

.parks-country-heading {
    margin-bottom: 20px;
}

/* Profiles and ParkPulse Passport */

.profile-header {
    border-radius: var(--pp-radius-lg);
    box-shadow: 0 14px 34px rgba(7, 29, 59, .13);
}

.profile-stats {
    gap: 16px;
}

.profile-stats > div {
    background: #fff;
    border-radius: var(--pp-radius-md);
    box-shadow: 0 5px 18px rgba(10, 36, 71, .045);
    transition: transform var(--pp-transition), box-shadow var(--pp-transition), border-color var(--pp-transition);
}

.profile-stats > div:hover {
    transform: translateY(-2px);
    border-color: #c9d8e6;
    box-shadow: 0 9px 22px rgba(10, 36, 71, .08);
}

.profile-panel, .mini-park-grid a, .search-groups section {
    border-radius: var(--pp-radius-md);
    box-shadow: 0 6px 20px rgba(10, 36, 71, .045);
}

.mini-park-grid a {
    transition: transform var(--pp-transition), box-shadow var(--pp-transition), border-color var(--pp-transition);
}

.mini-park-grid a:hover {
    transform: translateY(-2px);
    border-color: #c2d3e2;
    box-shadow: 0 8px 20px rgba(10, 36, 71, .08);
}

.passport-map-button {
    min-height: 40px;
    border-radius: var(--pp-radius-sm);
}

.passport-map-button:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(10, 36, 71, .16);
}

/* Park detail and related news */

.park-info-strip > div, .simple-news-grid article {
    border-radius: var(--pp-radius-md);
    box-shadow: 0 6px 20px rgba(10, 36, 71, .045);
}

.simple-news-grid article {
    transition: transform var(--pp-transition), box-shadow var(--pp-transition), border-color var(--pp-transition);
}

.simple-news-grid article:hover {
    transform: translateY(-2px);
    border-color: #c7d7e5;
    box-shadow: 0 10px 24px rgba(10, 36, 71, .09);
}

/* Waiting Times */

.wait-hero {
    border-radius: var(--pp-radius-md);
    box-shadow: 0 10px 26px rgba(10, 36, 71, .11);
}

.wait-stats {
    gap: 14px;
    margin-bottom: 26px;
}

.wait-stats > div {
    border-radius: var(--pp-radius-md);
    box-shadow: 0 4px 16px rgba(10, 36, 71, .04);
}

.wait-land {
    margin-bottom: 28px;
}

.wait-row {
    min-height: 58px;
    transition: background-color var(--pp-transition);
}

.wait-row:hover {
    background: #f8fafc;
}

.ride-wait {
    border-radius: 999px;
    padding: 8px 12px;
    line-height: 1.15;
}

.wait-loading, .wait-data-note {
    border-radius: var(--pp-radius-md);
}

/* Auth, search and notifications */

.auth-card, .notification-list {
    border-radius: var(--pp-radius-md);
    box-shadow: var(--pp-shadow-card);
}

.auth-form input:focus, .profile-panel input:focus, .profile-panel textarea:focus, .search-form input:focus, .comment-form textarea:focus {
    border-color: #8bbce7;
    box-shadow: 0 0 0 3px rgba(23, 120, 212, .10);
}

.notification-item {
    transition: background-color var(--pp-transition), padding-left var(--pp-transition);
}

.notification-item:hover {
    background: #f8fafc;
}

.notification-item.unread:hover {
    background: #e8f3ff;
}

/* Comments */

.comment-card {
    border-radius: var(--pp-radius-md) !important;
    transition: box-shadow var(--pp-transition), border-color var(--pp-transition);
}

.comment-card:hover {
    border-color: #cbd9e6 !important;
    box-shadow: 0 7px 20px rgba(11, 41, 76, .07) !important;
}

/* Responsive polish */

@media (max-width: 900px) {
    .page-shell {
        padding-top: 40px;
    }
    .homepage-shell .content-grid {
        gap: 32px;
    }
}

@media (max-width: 650px) {
    .page-shell {
        padding: 28px 14px 48px;
    }
    .section-heading {
        margin-bottom: 22px;
    }
    .section-heading h1, .section-heading h2 {
        font-size: 25px;
    }
    .homepage-shell .content-grid {
        padding: 28px 14px 48px;
        gap: 26px;
    }
    .homepage-shell .main-column {
        padding: 20px;
        border-radius: var(--pp-radius-md);
    }
    .homepage-shell .news-card:hover, .park-profile-card:hover, .profile-stats > div:hover, .simple-news-grid article:hover, .mini-park-grid a:hover {
        transform: none;
    }
    .sidebar {
        gap: 16px;
    }
    .side-card {
        padding: 20px;
    }
    .park-account-actions {
        gap: 8px;
        padding: 0 12px 14px;
    }
    .park-account-actions button, .park-account-actions .favorite-button {
        min-height: 46px;
        padding: 10px 8px;
        font-size: 10.5px;
    }
    .profile-header {
        padding: 26px 22px;
        gap: 18px;
    }
    .profile-stats {
        gap: 10px;
        margin-bottom: 28px;
    }
    .profile-stats > div {
        padding: 16px;
    }
    .wait-row {
        min-height: 62px;
        padding: 15px 13px;
    }
    .ride-wait {
        min-width: 74px;
        padding: 8px 10px;
    }
}

@media (max-width: 390px) {
    .homepage-shell .content-grid {
        padding-left: 11px;
        padding-right: 11px;
    }
    .homepage-shell .main-column {
        padding: 16px;
    }
    .side-card {
        padding: 18px;
    }
}

/* ==========================================================
   PARKPULSE COMPONENTS — CURRENT CANONICAL OVERRIDES
   Keep new Park / Passport / responsive refinements here.
   ========================================================== */

/* Park detail: five equal information/community cards on desktop */

.park-info-strip.park-info-strip-community {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    align-items: stretch;
}

.park-info-strip .park-info-card {
    min-width: 0;
    min-height: 112px;
    margin: 0;
    padding: 16px;
    background: #f6f8fb;
    border: 1px solid var(--line);
    border-radius: var(--pp-radius-md);
    box-shadow: 0 6px 20px rgba(10, 36, 71, .045);
}

.park-info-strip .park-info-card > span, .park-community-card-button > span {
    display: block;
    margin-bottom: 8px;
    color: #84909e;
    font-size: 9.5px;
    font-weight: 900;
    line-height: 1.25;
    letter-spacing: .08em;
}

.park-info-strip .park-info-card > strong {
    display: block;
    color: var(--navy);
    font-size: 14px;
    line-height: 1.4;
}

.park-community-card {
    padding: 0 !important;
    overflow: hidden;
    transition: transform var(--pp-transition), box-shadow var(--pp-transition), border-color var(--pp-transition), background-color var(--pp-transition);
}

.park-community-card-button {
    width: 100%;
    min-height: 112px;
    padding: 16px;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.park-community-card-button strong, .park-community-card.static strong {
    display: block;
    margin: 1px 0 2px;
    color: var(--navy);
    font-size: 28px;
    font-weight: 950;
    line-height: 1;
}

.park-community-card small {
    display: block;
    margin-top: 7px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
}

.park-community-card:not(.static):hover {
    transform: translateY(-2px);
    border-color: #c7d7e5;
    box-shadow: 0 10px 24px rgba(10, 36, 71, .09);
}

.park-community-card.active {
    background: #fffdf2;
    border-color: rgba(229, 184, 20, .58);
}

.park-community-card.active .park-community-card-button > span, .park-community-card.active > span {
    color: #a77a00;
}

.park-community-card-button:focus-visible {
    outline: 3px solid rgba(26, 99, 168, .24);
    outline-offset: -3px;
}

/* ParkPulse Passport: passholder styling */

.passholder-button {
    background: #fff;
    border: 1px solid #d8c98b;
    color: #6f5710;
}

.passholder-button:hover {
    border-color: #b48b10;
}

.passholder-button.active, .passholder-hero.active, .passholder-community-card.active {
    background: #fff7d8 !important;
    border-color: #e0b832 !important;
    color: #6f5710 !important;
}

.passholder-mark {
    display: block;
    width: max-content;
    margin-bottom: 7px;
    padding: 3px 6px;
    border-radius: 4px;
    background: #fff7d8;
    color: #6f5710;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .08em;
}

/* Parks overview: Follow and Passholder both fill a full row */

.park-profile-card .park-account-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.park-profile-card .park-account-actions form {
    grid-column: auto !important;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

.park-profile-card .park-account-actions form:first-child, .park-profile-card .park-account-actions form:nth-child(4) {
    grid-column: 1 / -1 !important;
}

.park-profile-card .park-account-actions button, .park-profile-card .park-account-actions .favorite-button {
    width: 100%;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 9px 10px;
    text-align: center;
    line-height: 1.18;
    white-space: normal;
}

/* Tablet: park detail becomes a balanced 3 + 2 layout */

@media (max-width: 900px) {
    .park-info-strip.park-info-strip-community {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Mobile: compact two-column information cards */

@media (max-width: 620px) {
    .park-info-strip.park-info-strip-community {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        margin-top: 16px;
        margin-bottom: 32px;
    }
    .park-info-strip .park-info-card {
        min-height: 108px;
        padding: 14px;
        border-radius: 12px;
    }
    .park-community-card {
        min-height: 118px !important;
    }
    .park-community-card-button {
        display: flex;
        min-height: 118px;
        padding: 14px 10px;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
    }
    .park-community-card-button > span, .park-community-card.static > span {
        margin-bottom: 7px;
        font-size: 9px;
        line-height: 1.2;
        letter-spacing: .06em;
        white-space: normal;
    }
    .park-community-card-button strong, .park-community-card.static strong {
        margin: 1px 0 3px;
        font-size: 32px;
        line-height: .95;
    }
    .park-community-card small {
        margin-top: 5px;
        font-size: 9px;
        line-height: 1.25;
        text-align: center;
    }
    .park-community-card.static {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 14px 10px !important;
        text-align: center;
    }
    /* Fifth card sits full-width instead of leaving an empty half-row. */
    .park-info-strip.park-info-strip-community > :nth-child(5) {
        grid-column: 1 / -1;
    }
    .park-profile-card .park-account-actions {
        grid-column: 1 / -1;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        padding: 12px 14px 14px;
        border-top: 1px solid #e7edf3;
        background: #fff;
    }
    .park-profile-card .park-account-actions button, .park-profile-card .park-account-actions .favorite-button {
        min-height: 46px;
        padding: 10px 8px;
        font-size: 10.5px;
    }
}

@media (max-width: 360px) {
    .park-info-strip.park-info-strip-community {
        gap: 8px;
    }
    .park-community-card-button strong, .park-community-card.static strong {
        font-size: 29px;
    }
    .park-profile-card .park-account-actions {
        grid-template-columns: 1fr;
    }
    .park-profile-card .park-account-actions form:first-child, .park-profile-card .park-account-actions form:nth-child(4) {
        grid-column: auto !important;
    }
}


/* ==========================================================
   PARKPULSE STYLING AUDIT — 04 September 2026
   Final layout safeguards after the unified park-logo pass.
   These rules intentionally sit last so older experimental
   overrides cannot shrink or distort the current components.
   ========================================================== */

:root {
    --navy: #0B294C;
}

/* Universal overflow / media safeguards */
img, svg, video {
    max-width: 100%;
}

img {
    height: auto;
}

button, input, select, textarea {
    max-width: 100%;
}

.news-copy h2,
.park-profile-card h2,
.park-profile-card p,
.simple-news-grid h3,
.wait-row,
.profile-panel,
.admin-card,
.editor-main {
    overflow-wrap: anywhere;
}

/* Parks overview — stable card and logo layout on every breakpoint */
.park-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
}

.park-profile-card {
    display: flex !important;
    flex-direction: column;
    min-width: 0;
    height: 100%;
}

.park-profile-card > a {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;
}

.park-profile-card .park-logo-box {
    width: 100% !important;
    height: 132px !important;
    min-height: 132px !important;
    padding: 12px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #0B294C;
    border-bottom: 1px solid rgba(255,255,255,.12);
}

.park-profile-card .park-logo-box img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 108px !important;
    object-fit: contain !important;
    object-position: center !important;
    filter: none !important;
}

.park-profile-card > a > div:not(.park-logo-box) {
    flex: 1 1 auto;
}

.park-card-meta {
    min-width: 0;
}

.park-profile-card .park-open-status {
    max-width: 100%;
}

.park-profile-card .park-account-actions {
    margin-top: auto;
}

/* Never turn the logo into a tiny left thumbnail on phones. */
@media (max-width: 900px) {
    .park-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }
}

@media (max-width: 620px) {
    .park-card-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .park-profile-card {
        display: flex !important;
        grid-template-columns: none !important;
    }

    .park-profile-card .park-logo-box {
        width: 100% !important;
        height: 118px !important;
        min-height: 118px !important;
        padding: 10px 14px !important;
    }

    .park-profile-card .park-logo-box img {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 96px !important;
    }

    .park-profile-card > a > div:not(.park-logo-box) {
        padding: 17px !important;
    }

    .park-profile-card form {
        grid-column: auto !important;
    }

    .park-card-meta {
        flex-direction: row;
        align-items: center;
    }
}

@media (max-width: 390px) {
    .park-card-meta {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* News / article cards: stop fixed image sizes from squeezing copy on mobile. */
@media (max-width: 650px) {
    .news-card,
    .simple-news-grid article {
        grid-template-columns: 1fr !important;
    }

    .news-card img,
    .simple-news-grid img {
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .simple-news-grid {
        grid-template-columns: 1fr;
    }
}

/* Main navigation remains usable on narrow screens without wrapping badly. */
.nav-inner {
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 650px) {
    .brand-wrap {
        height: 132px;
        padding: 14px;
    }

    .brand-logo {
        max-height: 108px;
    }

    .nav-inner {
        min-height: 52px;
        padding: 0 12px;
    }

    .nav-inner a,
    .welcome {
        padding: 17px 9px;
        font-size: 11px;
    }
}

/* Wait-times and admin tables: containment on small screens. */
.wait-workspace,
.wait-times-column,
.wait-park-column,
.admin-table-wrap,
.article-manager,
.profile-panel {
    min-width: 0;
}

.admin-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* Footer cleanup */
.site-footer .footer-inner {
    text-align: center;
}

/* Logged-out park community statistics use the exact same inner layout as
   the interactive cards shown to signed-in members. */
.park-community-card.static .park-community-card-static-content {
    cursor: default;
    box-sizing: border-box;
}

.park-community-card.static .park-community-card-static-content > span {
    display: block;
    margin-bottom: 8px;
    color: #84909e;
    font-size: 9.5px;
    font-weight: 900;
    line-height: 1.25;
    letter-spacing: .08em;
}

.park-community-card.static .park-community-card-static-content > strong {
    display: block;
    margin: 1px 0 2px;
    color: var(--navy);
    font-size: 28px;
    font-weight: 950;
    line-height: 1;
}

.park-community-card.static .park-community-card-static-content > small {
    display: block;
    margin-top: 7px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
}

@media (max-width: 620px) {
    .park-community-card.static {
        padding: 0 !important;
    }
    .park-community-card.static .park-community-card-static-content {
        display: flex;
        min-height: 118px;
        padding: 14px 10px;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
    }
    .park-community-card.static .park-community-card-static-content > span {
        margin-bottom: 7px;
        font-size: 9px;
        line-height: 1.2;
        letter-spacing: .06em;
        white-space: normal;
    }
    .park-community-card.static .park-community-card-static-content > strong {
        margin: 1px 0 3px;
        font-size: 32px;
        line-height: .95;
    }
    .park-community-card.static .park-community-card-static-content > small {
        margin-top: 5px;
        font-size: 9px;
        line-height: 1.25;
        text-align: center;
    }
}

@media (max-width: 360px) {
    .park-community-card.static .park-community-card-static-content > strong {
        font-size: 29px;
    }
}

/* ==========================================================
   10. ParkPulse Dark Mode
   ----------------------------------------------------------
   Member-only preference, applied by includes/header.php.
   Admin pages intentionally keep the classic admin theme.
   ========================================================== */

.appearance-setting {
    margin: 22px 0 24px;
    padding: 0;
    border: 0;
}

.appearance-setting legend {
    margin-bottom: 6px;
    color: var(--navy);
    font-size: 15px;
    font-weight: 900;
}

.appearance-setting > p {
    margin: 0 0 12px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

.theme-choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.theme-choice {
    position: relative;
    cursor: pointer;
}

.theme-choice input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.theme-choice-preview {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 11px;
    min-height: 72px;
    padding: 13px;
    border: 2px solid var(--line);
    border-radius: 11px;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.theme-choice-preview > i {
    grid-row: 1 / 3;
    width: 40px;
    height: 40px;
    align-self: center;
    border-radius: 9px;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}

.theme-choice-preview.light-preview {
    background: #fff;
    color: #12233a;
}

.theme-choice-preview.light-preview > i {
    background: linear-gradient(180deg, #0B294C 0 38%, #ffc928 38% 48%, #f7f9fb 48% 100%);
}

.theme-choice-preview.dark-preview {
    background: #101a29;
    color: #f2f6fb;
    border-color: #2a3950;
}

.theme-choice-preview.dark-preview > i {
    background: linear-gradient(180deg, #0B294C 0 38%, #ffc928 38% 48%, #172337 48% 100%);
}

.theme-choice-preview b {
    align-self: end;
    font-size: 13px;
}

.theme-choice-preview small {
    align-self: start;
    margin-top: 2px;
    color: #7c8998;
    font-size: 11px;
}

.theme-choice input:checked + .theme-choice-preview {
    border-color: var(--yellow);
    box-shadow: 0 0 0 3px rgba(255,201,40,.18);
}

.theme-choice:hover .theme-choice-preview {
    transform: translateY(-1px);
}

/* Dark design tokens */
body.theme-dark {
    --ink: #e9eef5;
    --muted: #aeb9c8;
    --line: #2a384b;
    --bg: #0f1825;
    --navy: #dce9f8;
    --navy2: #182a40;
    --blue: #58a8f3;
    color: var(--ink);
    background: #0c1420;
    color-scheme: dark;
}

body.theme-dark main {
    background: #0c1420;
}

body.theme-dark .site-header {
    background: #081d37;
}

body.theme-dark .brand-logo {
    filter: drop-shadow(0 5px 16px rgba(0,0,0,.28));
}

body.theme-dark .section-heading h1,
body.theme-dark .section-heading h2,
body.theme-dark .news-copy h2,
body.theme-dark h1,
body.theme-dark h2,
body.theme-dark h3,
body.theme-dark h4 {
    color: #eef5fc;
}

body.theme-dark .news-card,
body.theme-dark .article-card,
body.theme-dark .simple-news-grid article {
    border-color: #273548;
}

body.theme-dark .news-copy p,
body.theme-dark .article-body p,
body.theme-dark .article-content p,
body.theme-dark .meta span {
    color: #aeb9c8;
}

/* Light content surfaces */
body.theme-dark .profile-panel,
body.theme-dark .auth-card,
body.theme-dark .park-profile-card,
body.theme-dark .park-community-card,
body.theme-dark .park-hours-card,
body.theme-dark .park-news-card,
body.theme-dark .wait-workspace,
body.theme-dark .wait-times-column,
body.theme-dark .wait-park-column,
body.theme-dark .wait-park-card,
body.theme-dark .wait-ride,
body.theme-dark .notification-item,
body.theme-dark .comment,
body.theme-dark .comment-card,
body.theme-dark .comment-form,
body.theme-dark .passport-panel,
body.theme-dark .passport-card,
body.theme-dark .passport-map-panel,
body.theme-dark .search-result,
body.theme-dark .search-card,
body.theme-dark .article-main,
body.theme-dark .article-shell,
body.theme-dark .article-content,
body.theme-dark .article-body,
body.theme-dark .article-panel,
body.theme-dark .for-you-card,
body.theme-dark .favorite-ride-card,
body.theme-dark .personal-card,
body.theme-dark .stat-card {
    background-color: #151f2e !important;
    color: #e9eef5;
    border-color: #2a384b !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.16);
}

body.theme-dark .profile-panel,
body.theme-dark .park-profile-card,
body.theme-dark .park-community-card,
body.theme-dark .notification-item,
body.theme-dark .comment,
body.theme-dark .comment-card,
body.theme-dark .passport-card,
body.theme-dark .search-result {
    border-color: #2a384b !important;
}

/* Keep branded dark cards dark instead of making them pale. */
body.theme-dark .side-card,
body.theme-dark .park-logo-box,
body.theme-dark .profile-header,
body.theme-dark .passport-hero {
    color: #fff;
}

body.theme-dark .side-card {
    background: #10243d;
}

/* Forms */
body.theme-dark input,
body.theme-dark textarea,
body.theme-dark select {
    color: #eef4fb;
    background: #0f1927 !important;
    border-color: #35445a !important;
}

body.theme-dark input::placeholder,
body.theme-dark textarea::placeholder {
    color: #7f8da0;
}

body.theme-dark label,
body.theme-dark .profile-panel label {
    color: #dce5ef;
}

body.theme-dark .appearance-setting legend {
    color: #eef5fc;
}

body.theme-dark .appearance-setting > p {
    color: #aeb9c8;
}

body.theme-dark .theme-choice-preview.light-preview {
    border-color: #35445a;
}

/* Cards, dividers and table-like rows */
body.theme-dark table,
body.theme-dark th,
body.theme-dark td,
body.theme-dark .park-card-meta,
body.theme-dark .passport-row,
body.theme-dark .notification-item,
body.theme-dark .social-row,
body.theme-dark .comment,
body.theme-dark .wait-ride,
body.theme-dark .favorite-ride-card {
    border-color: #2a384b !important;
}

body.theme-dark th {
    color: #cbd6e3;
    background: #111c2b !important;
}

body.theme-dark td {
    color: #e1e8f0;
    background: #151f2e;
}

/* Text that is hard-coded dark in the classic theme */
body.theme-dark .park-profile-card strong,
body.theme-dark .park-profile-card h2,
body.theme-dark .park-profile-card h3,
body.theme-dark .park-community-card strong,
body.theme-dark .park-community-card.static .park-community-card-static-content > strong,
body.theme-dark .profile-panel strong,
body.theme-dark .profile-panel h2,
body.theme-dark .wait-workspace strong,
body.theme-dark .wait-times-column strong,
body.theme-dark .notification-item strong,
body.theme-dark .comment strong,
body.theme-dark .passport-panel strong,
body.theme-dark .search-result h2,
body.theme-dark .search-result h3 {
    color: #eef5fc !important;
}

body.theme-dark .park-community-card.static .park-community-card-static-content > span,
body.theme-dark .park-community-card.static .park-community-card-static-content > small,
body.theme-dark .park-profile-card p,
body.theme-dark .profile-panel p,
body.theme-dark .notification-item p,
body.theme-dark .comment p,
body.theme-dark .passport-panel p,
body.theme-dark .search-result p,
body.theme-dark .wait-workspace p {
    color: #aeb9c8 !important;
}

/* Preserve status semantics, adjusted for dark surfaces. */
body.theme-dark .flash {
    color: #ffe69a;
    background: #332b12 !important;
    border-color: #6b5918 !important;
}

body.theme-dark .park-open-status.open,
body.theme-dark .status-open {
    color: #7be4b8;
}

body.theme-dark .park-open-status.closed,
body.theme-dark .status-closed {
    color: #ff9292;
}

body.theme-dark .read-more,
body.theme-dark a.side-card-secondary {
    color: #69b7ff;
}

/* Footer */
body.theme-dark .site-footer {
    background: #08111d;
    color: #b9c4d2;
    border-top-color: #233044;
}

/* Safari/autofill should not inject a bright rectangle in dark mode. */
body.theme-dark input:-webkit-autofill,
body.theme-dark input:-webkit-autofill:hover,
body.theme-dark input:-webkit-autofill:focus {
    -webkit-text-fill-color: #eef4fb;
    -webkit-box-shadow: 0 0 0 1000px #0f1927 inset;
    transition: background-color 9999s ease-out 0s;
}

@media (max-width: 620px) {
    .theme-choice-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   ParkPulse dark-mode polish – 04-09-2026
   Remove remaining light controls and keep yellow nav legible.
   ========================================================= */
body.theme-dark .main-nav,
body.theme-dark .main-nav .nav-inner {
    background: var(--yellow);
}

/* Yellow navigation always uses dark ink in dark mode. */
body.theme-dark .main-nav .nav-inner a,
body.theme-dark .main-nav .nav-inner a:visited,
body.theme-dark .main-nav .welcome,
body.theme-dark .main-nav button,
body.theme-dark .main-nav .more-toggle {
    color: #081d37 !important;
}
body.theme-dark .main-nav .nav-inner a:hover,
body.theme-dark .main-nav .nav-inner a:focus-visible {
    color: #000 !important;
}
body.theme-dark .main-nav .nav-inner a.active {
    color: #000 !important;
    border-bottom-color: #0B294C;
}
/* Account CTA remains deliberately dark, with white type. */
body.theme-dark .main-nav .register-button,
body.theme-dark .main-nav .register-button:visited {
    background: #0B294C !important;
    color: #fff !important;
}

/* Neutral/light buttons and controls: no white islands in dark mode. */
body.theme-dark .park-button,
body.theme-dark .passport-button,
body.theme-dark .wishlist-button,
body.theme-dark .passholder-button,
body.theme-dark .favorite-button:not(.active),
body.theme-dark .neutral-action,
body.theme-dark .small-button:not(.yellow-button),
body.theme-dark .button-link:not(.yellow-button),
body.theme-dark .edit-toggle,
body.theme-dark .reply-toggle,
body.theme-dark .preview-toggle,
body.theme-dark .more-toggle,
body.theme-dark .more-menu button,
body.theme-dark .park-community-card-button {
    background: #172536 !important;
    border-color: #35465b !important;
    color: #e8f0f8 !important;
}
body.theme-dark .park-button:hover,
body.theme-dark .passport-button:hover,
body.theme-dark .wishlist-button:hover,
body.theme-dark .passholder-button:hover,
body.theme-dark .favorite-button:not(.active):hover,
body.theme-dark .neutral-action:hover,
body.theme-dark .edit-toggle:hover,
body.theme-dark .reply-toggle:hover,
body.theme-dark .preview-toggle:hover,
body.theme-dark .more-toggle:hover,
body.theme-dark .more-menu button:hover,
body.theme-dark .park-community-card-button:hover {
    background: #20334a !important;
    border-color: #52708f !important;
    color: #fff !important;
}

/* Preserve the meaning of selected Passport controls without bright white fills. */
body.theme-dark .passport-button.active,
body.theme-dark .passport-hero.active {
    background: #173927 !important;
    border-color: #3d8a5a !important;
    color: #9ce3b3 !important;
}
body.theme-dark .wishlist-button.active,
body.theme-dark .wishlist-hero.active {
    background: #40212b !important;
    border-color: #965268 !important;
    color: #ffb7c7 !important;
}
body.theme-dark .passholder-button.active,
body.theme-dark .passholder-hero.active,
body.theme-dark .passholder-community-card.active {
    background: #3b3216 !important;
    border-color: #a98b2d !important;
    color: #ffe28a !important;
}
body.theme-dark .park-community-card.active {
    background: #292715 !important;
    border-color: #8d7928 !important;
}
body.theme-dark .park-community-card.active .park-community-card-button {
    background: transparent !important;
}
body.theme-dark .park-community-card.active .park-community-card-button > span,
body.theme-dark .park-community-card.active > span {
    color: #f1cf58 !important;
}

/* Common pale utility surfaces that otherwise stand out in dark mode. */
body.theme-dark .info-panel,
body.theme-dark .more-menu,
body.theme-dark .quick-actions,
body.theme-dark .user-actions,
body.theme-dark .moderation-actions,
body.theme-dark fieldset,
body.theme-dark .theme-choice-preview.light-preview,
body.theme-dark .park-card-meta {
    background-color: #151f2e !important;
    border-color: #2a384b !important;
    color: #e9eef5 !important;
}

/* Yellow actions stay ParkPulse yellow and therefore need dark text. */
body.theme-dark .yellow-button,
body.theme-dark a.yellow-button,
body.theme-dark button.yellow-button {
    background: var(--yellow) !important;
    color: #081d37 !important;
}

/* =========================================================
   ParkPulse dark-mode detail pass – profile stats + wait times
   04-09-2026
   Dark-mode only: remove the last bright statistic and wait-time
   surfaces while preserving the existing light theme unchanged.
   ========================================================= */

/* Public profile: six compact statistic cards */
body.theme-dark .profile-stats > div {
    background: #131f2f !important;
    border-color: #2c3b4f !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .18);
}

body.theme-dark .profile-stats > div:hover {
    background: #17263a !important;
    border-color: #3a506a !important;
}

body.theme-dark .profile-stats strong {
    color: #f2f7fd !important;
}

body.theme-dark .profile-stats span {
    color: #aebbd0 !important;
}

/* Waiting Times: Today / Open rides / Last updated */
body.theme-dark .wait-stats > div {
    background: #131f2f !important;
    border-color: #2c3b4f !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .16);
}

body.theme-dark .wait-stats span {
    color: #9fadc0 !important;
}

body.theme-dark .wait-stats strong {
    color: #f1f6fc !important;
}

/* Current wait-time list and attraction rows */
body.theme-dark .wait-times-column .wait-all-rides .wait-list,
body.theme-dark .wait-list {
    background: #111c2a !important;
    border-color: #2b3a4e !important;
}

body.theme-dark .wait-row {
    background: #151f2e !important;
    border-top-color: #2b3a4e !important;
    color: #eaf1f8 !important;
}

body.theme-dark .wait-row:nth-child(even) {
    background: #121d2b !important;
}

body.theme-dark .wait-row:hover {
    background: #1b2a3d !important;
}

body.theme-dark .ride-name {
    color: #f0f5fb !important;
}

body.theme-dark .ride-status.open {
    color: #79dfb1 !important;
}

body.theme-dark .ride-status.closed {
    color: #9da9b8 !important;
}

body.theme-dark .ride-status.down {
    color: #ffd07a !important;
    background: #3a2c12 !important;
}

body.theme-dark .ride-status.maintenance {
    color: #d6b7ff !important;
    background: #2d2241 !important;
}

/* Wait badges keep their traffic-light meaning, but use subdued dark fills. */
body.theme-dark .ride-wait.low {
    background: #17382b !important;
    color: #91e5ba !important;
}

body.theme-dark .ride-wait.medium {
    background: #3a3017 !important;
    color: #ffe091 !important;
}

body.theme-dark .ride-wait.high {
    background: #402225 !important;
    color: #ffaaaa !important;
}

body.theme-dark .ride-wait.closed {
    background: #26313f !important;
    color: #b5c0cd !important;
}

body.theme-dark .wait-loading {
    background: #111c2a !important;
    color: #aeb9c8 !important;
    border: 1px solid #2b3a4e;
}

body.theme-dark .wait-data-note {
    background: #121f30 !important;
    border-color: #4b93d0 !important;
    color: #cbd6e2 !important;
}

body.theme-dark .wait-data-note strong {
    color: #f0f5fb !important;
}

body.theme-dark .wait-times-column .powered,
body.theme-dark .wait-times-column .powered a {
    color: #9facbd;
}

body.theme-dark .wait-times-column .powered a:hover {
    color: #d9e8f7;
}

/* ==========================================================
   ParkPulse dark-mode detail pass – park pages + wait hero
   04-09-2026
   Dark-mode only. Removes remaining bright surfaces from
   individual park pages and the Waiting Times header panel.
   ========================================================== */

/* Individual park page: all five information/community tiles */
body.theme-dark .park-info-strip .park-info-card,
body.theme-dark .park-info-strip.park-info-strip-community .park-info-card {
    background: #151f2e !important;
    border-color: #2a384b !important;
    color: #e9eef5 !important;
    box-shadow: 0 6px 20px rgba(0,0,0,.18) !important;
}

body.theme-dark .park-info-strip .park-info-card > span,
body.theme-dark .park-info-strip .park-community-card-button > span,
body.theme-dark .park-community-card.static .park-community-card-static-content > span {
    color: #91a0b4 !important;
}

body.theme-dark .park-info-strip .park-info-card > strong,
body.theme-dark .park-info-strip .park-community-card strong,
body.theme-dark .park-community-card.static .park-community-card-static-content > strong {
    color: #f2f6fb !important;
}

body.theme-dark .park-community-card small,
body.theme-dark .park-community-card.static .park-community-card-static-content > small {
    color: #aab6c6 !important;
}

/* Selected community states stay recognisable without becoming pale. */
body.theme-dark .park-info-strip .park-community-card.active {
    background: #202536 !important;
    border-color: #8a7629 !important;
}

body.theme-dark .park-info-strip .park-community-card.active .park-community-card-button {
    background: transparent !important;
}

body.theme-dark .park-info-strip .park-community-card.active .park-community-card-button > span,
body.theme-dark .park-info-strip .park-community-card.active > span {
    color: #f0cd49 !important;
}

body.theme-dark .park-info-strip .passholder-community-card.active {
    background: #272514 !important;
    border-color: #8f7a2c !important;
}

/* Park news cards on the same page */
body.theme-dark .simple-news-grid article {
    background: #151f2e !important;
    border-color: #2a384b !important;
}

body.theme-dark .simple-news-grid article h3,
body.theme-dark .simple-news-grid article h3 a {
    color: #eef5fc !important;
}

body.theme-dark .simple-news-grid article p {
    color: #aeb9c8 !important;
}

/* Waiting Times: make the main panel and refresh-header distinctly dark. */
body.theme-dark .wait-times-column {
    background: #111a27 !important;
    border-color: #263549 !important;
}

body.theme-dark .wait-column-hero,
body.theme-dark .wait-hero {
    background: linear-gradient(135deg,#07182d,#0c2a4b) !important;
    border: 1px solid #29425e !important;
    color: #fff !important;
    box-shadow: 0 10px 28px rgba(0,0,0,.28) !important;
}

body.theme-dark .wait-column-hero h2,
body.theme-dark .wait-column-hero .live-label,
body.theme-dark .wait-hero h2,
body.theme-dark .wait-hero .live-label {
    color: #f4f8fc !important;
}

body.theme-dark .wait-column-hero p,
body.theme-dark .wait-hero p {
    color: #b8c7d9 !important;
}

body.theme-dark .wait-column-hero .yellow-button,
body.theme-dark .wait-hero .yellow-button {
    background: var(--yellow) !important;
    color: #071c38 !important;
    border-color: var(--yellow) !important;
}

body.theme-dark .wait-list-heading {
    border-bottom-color: #38516e !important;
}

body.theme-dark .wait-list-heading h2 {
    color: #eef5fc !important;
}

body.theme-dark .wait-list-heading span,
body.theme-dark .wait-mini-legend span {
    color: #9eacbd !important;
}

/* ParkPulse staff role badges */
.profile-role{display:inline-flex!important;align-items:center;width:max-content;margin:7px 0 3px;padding:5px 10px;border-radius:999px;font-size:.72rem!important;font-weight:900;letter-spacing:.08em;line-height:1;text-transform:uppercase;color:#fff!important;background:#607080}
.profile-role.role-moderator{background:#238447!important;color:#fff!important}
.profile-role.role-reporter{background:#7443a6!important;color:#fff!important}
.profile-role.role-admin{background:#0b294c!important;color:#ffc928!important}
.theme-dark .profile-role.role-moderator{background:#1f7741!important}.theme-dark .profile-role.role-reporter{background:#684095!important}

/* Park Hub — shared by every individual park page. */
.park-hub{margin-top:34px}.park-hub-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.75fr);gap:18px}.park-hub-grid.second-row{grid-template-columns:1fr 1fr;margin-top:18px}.park-hub-panel{background:#fff;border:1px solid #dbe3ec;border-radius:16px;padding:22px;box-shadow:0 8px 24px rgba(7,29,59,.06)}.park-hub-title{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.park-hub-title a,.hub-text-link{font-weight:900;color:#0b294c;text-decoration:none;font-size:.78rem;letter-spacing:.04em}.hub-kicker,.park-hub-title span{display:block;color:#60738a;font-size:.72rem;font-weight:900;letter-spacing:.11em}.park-hub-panel h3{margin:5px 0 14px;color:#0b294c}.hub-wait-list{margin-top:12px}.hub-wait-list>div{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:11px 0;border-top:1px solid #e5ebf1}.hub-wait-list>div>b{color:#8494a6}.hub-wait-list>div>span{font-weight:800}.hub-wait{border-radius:999px;padding:6px 9px;font-weight:900;font-size:.8rem}.hub-wait.low{background:#dff5e7;color:#17653a}.hub-wait.medium{background:#fff1bd;color:#735600}.hub-wait.high{background:#fde0df;color:#9a2925}.hub-loading{color:#6e7d8e}.hub-rating-score{font-size:2.4rem;font-weight:950;color:#0b294c;margin-top:10px}.hub-rating-score b{color:#e0ae00}.hub-rating-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:16px}.hub-rating-form label{grid-column:1/-1;font-weight:800;font-size:.8rem}.hub-rating-form select{min-height:40px;border:1px solid #cbd5df;border-radius:8px;padding:7px;background:#fff}.community-favorites{margin:0;padding:0;list-style:none;counter-reset:favs}.community-favorites li{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid #e5ebf1}.community-favorites li strong{color:#a97900}.park-hub-about-legacy{display:grid;grid-template-columns:1fr 1.25fr;gap:30px;margin-top:18px}.park-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.park-facts div{background:#f4f7fa;border-radius:10px;padding:13px}.park-facts span{display:block;font-size:.67rem;font-weight:900;color:#6e7d8e;letter-spacing:.08em}.park-facts strong{display:block;margin-top:4px;color:#0b294c;font-size:.9rem}
body.theme-dark .park-hub-panel{background:#151f2e;border-color:#2a384b;box-shadow:none}body.theme-dark .park-hub-panel h3,body.theme-dark .hub-rating-score,body.theme-dark .park-hub-title a,body.theme-dark .hub-text-link{color:#eef5fc}body.theme-dark .hub-kicker,body.theme-dark .park-hub-title span,body.theme-dark .hub-loading{color:#9eacbd}body.theme-dark .park-facts div{background:#101925}body.theme-dark .park-facts span{color:#9eacbd}body.theme-dark .park-facts strong{color:#eef5fc}body.theme-dark .hub-rating-form select{background:#0f1824;color:#eef5fc;border-color:#35465b}
@media(max-width:760px){.park-hub-grid,.park-hub-grid.second-row{grid-template-columns:1fr}.park-facts{grid-template-columns:1fr 1fr}.park-hub-title{flex-direction:column;gap:8px}}@media(max-width:420px){.park-facts{grid-template-columns:1fr}.hub-rating-form{grid-template-columns:1fr}.hub-rating-form .yellow-button{width:100%}}

/* Park Hub: compact About the Park facts panel. */
.park-hub-about{display:flex;flex-direction:column;gap:10px}.park-hub-about .park-facts{margin-top:2px}.park-hub-about .park-facts div{min-height:74px;display:flex;flex-direction:column;justify-content:center}.park-hub-about .park-facts strong{line-height:1.25}
@media(max-width:420px){.park-hub-about .park-facts{grid-template-columns:1fr}}

/* Park Hub: match live Top 5 wait times to the main Waiting Times dark mode. */
body.theme-dark #parkHubLiveWaits.hub-wait-list {
    background: #111c2a !important;
    border: 1px solid #2b3a4e !important;
    border-radius: 12px;
    overflow: hidden;
}
body.theme-dark #parkHubLiveWaits.hub-wait-list > div {
    background: #151f2e !important;
    color: #eaf1f8 !important;
    border-top: 1px solid #2b3a4e !important;
    padding: 11px 12px;
}
body.theme-dark #parkHubLiveWaits.hub-wait-list > div:first-child {
    border-top: 0 !important;
}
body.theme-dark #parkHubLiveWaits.hub-wait-list > div:nth-child(even) {
    background: #121d2b !important;
}
body.theme-dark #parkHubLiveWaits.hub-wait-list > div:hover {
    background: #1b2a3d !important;
}
body.theme-dark #parkHubLiveWaits.hub-wait-list > div > b {
    color: #9da9b8 !important;
}
body.theme-dark #parkHubLiveWaits.hub-wait-list > div > span {
    color: #f0f5fb !important;
}
body.theme-dark #parkHubLiveWaits .hub-wait.low {
    background: #17382b !important;
    color: #91e5ba !important;
}
body.theme-dark #parkHubLiveWaits .hub-wait.medium {
    background: #3a3017 !important;
    color: #ffe091 !important;
}
body.theme-dark #parkHubLiveWaits .hub-wait.high {
    background: #402225 !important;
    color: #ffaaaa !important;
}
body.theme-dark #parkHubLiveWaits .hub-loading {
    background: #111c2a !important;
    color: #aeb9c8 !important;
}

/* ==========================================================
   Admin Panel 2.0 — workflow, activity, park management,
   filters and community statistics
   ========================================================== */
.admin-stats-expanded{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.dashboard-two{grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr)!important}.workflow-mini{display:grid;gap:9px;margin-top:14px}.workflow-mini span{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:9px;background:#f4f7fa;color:#42536a;font-weight:800}.workflow-mini b{font-size:1.15rem;color:#0b294c}.activity-card{margin-top:18px}.activity-feed{display:grid}.activity-row{display:grid;grid-template-columns:12px 1fr;gap:12px;padding:13px 2px;border-top:1px solid #e4eaf0}.activity-row:first-child{border-top:0}.activity-dot{width:9px;height:9px;margin-top:6px;border-radius:50%;background:#ffc928;box-shadow:0 0 0 4px rgba(255,201,40,.16)}.activity-row strong{display:block;color:#0b294c}.activity-row small{display:block;margin-top:3px;color:#77879a}.admin-filter-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}.admin-filter-tabs a{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border:1px solid #d8e0e8;border-radius:999px;background:#fff;color:#44556b;text-decoration:none;font-size:.8rem;font-weight:900}.admin-filter-tabs a:hover,.admin-filter-tabs a.active{background:#0b294c;border-color:#0b294c;color:#fff}.admin-filter-tabs b{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;border-radius:999px;background:#eef2f6;color:#0b294c;font-size:.7rem}.admin-filter-tabs a.active b{background:#ffc928}.filter-card{margin-bottom:14px}.admin-filter-form{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(130px,.7fr) minmax(130px,.7fr) auto auto;gap:10px;align-items:end}.admin-filter-form label{margin:0}.admin-filter-form input,.admin-filter-form select{min-height:40px}.staff-role-pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:#e8edf2;color:#45566c;font-size:.72rem;font-weight:900}.staff-role-pill.role-moderator{background:#dff3e6;color:#19713c}.staff-role-pill.role-reporter{background:#eee4f8;color:#67358e}.staff-role-pill.role-admin{background:#0b294c;color:#ffc928}.admin-check{display:flex!important;flex-direction:row!important;gap:9px!important;align-items:center;font-weight:800!important}.admin-check input{width:18px!important;height:18px!important;min-height:0!important}.analytics-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:16px;margin-top:18px}.metric-bars{display:grid;gap:12px;margin-top:15px}.metric-bars>div{display:grid;grid-template-columns:minmax(110px,1fr) minmax(100px,2fr) 35px;align-items:center;gap:9px;font-size:.78rem}.metric-bars span{font-weight:800;color:#42536a}.metric-bars i{height:9px;border-radius:999px;background:#edf1f5;overflow:hidden}.metric-bars i b{display:block;height:100%;border-radius:inherit;background:#ffc928}.metric-bars strong{text-align:right;color:#0b294c}.admin-ranking{list-style:none;padding:0;margin:14px 0 0;counter-reset:rank}.admin-ranking li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid #e5eaf0}.admin-ranking li:first-child{border-top:0}.admin-ranking li span{font-weight:800;color:#42536a}.admin-ranking strong{color:#0b294c}.admin-card .status-pill.pending_review,.status-pill.pending_review{background:#eee4f8;color:#67358e}
body.theme-dark .workflow-mini span,body.theme-dark .admin-filter-tabs a,body.theme-dark .filter-card{background:#151f2e;border-color:#2a384b;color:#d9e3ee}body.theme-dark .workflow-mini b,body.theme-dark .activity-row strong,body.theme-dark .metric-bars strong,body.theme-dark .admin-ranking strong{color:#f1f5fa}body.theme-dark .activity-row,body.theme-dark .admin-ranking li{border-color:#2a384b}body.theme-dark .activity-row small,body.theme-dark .metric-bars span,body.theme-dark .admin-ranking li span{color:#9dabbc}body.theme-dark .admin-filter-tabs a:hover,body.theme-dark .admin-filter-tabs a.active{background:#ffc928;border-color:#ffc928;color:#071d3b}body.theme-dark .admin-filter-form input,body.theme-dark .admin-filter-form select{background:#0f1824;color:#eef5fc;border-color:#35465b}body.theme-dark .metric-bars i{background:#263446}
@media(max-width:900px){.dashboard-two,.analytics-grid{grid-template-columns:1fr!important}.admin-filter-form{grid-template-columns:1fr 1fr}.admin-filter-form label:first-of-type{grid-column:1/-1}}
@media(max-width:560px){.admin-filter-form{grid-template-columns:1fr}.admin-filter-form label:first-of-type{grid-column:auto}.admin-filter-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.admin-filter-tabs a{white-space:nowrap}}

/* ==========================================================
   Admin Panel — mobile polish & responsive hardening
   ----------------------------------------------------------
   Admin pages get an explicit .admin-page body class in
   includes/header.php. These rules are intentionally scoped
   so the public ParkPulse layout is not affected.
   ========================================================== */
.admin-page,
.admin-page main {
    min-width: 0;
}

.admin-page .admin-shell,
.admin-page .editor-shell {
    width: 100%;
    box-sizing: border-box;
}

.admin-page .admin-hero-copy,
.admin-page .admin-hero-actions,
.admin-page .admin-card-head > div,
.admin-page .editor-main,
.admin-page .editor-side,
.admin-page .admin-table-wrap {
    min-width: 0;
}

.admin-page .admin-hero-actions {
    flex-wrap: wrap;
}

.admin-page .admin-table-wrap {
    max-width: 100%;
    overscroll-behavior-x: contain;
}

.admin-page .admin-table {
    width: 100%;
}

.admin-page .actions,
.admin-page .user-actions {
    white-space: normal;
}

.admin-page .actions form,
.admin-page .user-actions form {
    margin: 0;
}

@media (max-width: 760px) {
    .admin-page .admin-shell,
    .admin-page .editor-shell {
        padding: 20px 12px 52px;
    }

    .admin-page .admin-hero {
        padding: 24px 20px;
        border-radius: 16px;
        gap: 20px;
        overflow: hidden;
    }

    .admin-page .admin-hero h1 {
        font-size: clamp(30px, 9vw, 38px);
        line-height: 1.05;
        overflow-wrap: anywhere;
    }

    .admin-page .admin-hero p {
        font-size: 14px;
        line-height: 1.55;
    }

    .admin-page .admin-hero-actions {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
    }

    .admin-page .admin-hero-actions > a,
    .admin-page .admin-hero-actions > button {
        min-width: 0;
        width: 100%;
        margin: 0;
        justify-content: center;
        text-align: center;
        box-sizing: border-box;
    }

    .admin-page .admin-tabs {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        max-width: 100%;
        margin-bottom: 20px;
        padding: 7px;
        gap: 5px;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch;
    }

    .admin-page .admin-tabs a {
        flex: 0 0 auto;
        white-space: nowrap;
        padding: 10px 13px;
    }

    .admin-page .admin-stats,
    .admin-page .admin-stats-expanded {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        margin-bottom: 18px;
    }

    .admin-page .admin-stats > a,
    .admin-page .admin-stats > div {
        min-width: 0;
        padding: 18px 16px;
        border-radius: 13px;
    }

    .admin-page .admin-stats strong {
        margin: 13px 0 5px;
        font-size: 31px;
        line-height: 1;
    }

    .admin-page .admin-stats > a > span:last-child,
    .admin-page .admin-stats > div > span:last-child {
        font-size: 11px;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

    .admin-page .admin-dashboard-grid,
    .admin-page .dashboard-two,
    .admin-page .analytics-grid {
        gap: 14px;
    }

    .admin-page .admin-card {
        margin-bottom: 16px;
        padding: 20px;
        border-radius: 14px;
    }

    .admin-page .admin-card h2 {
        font-size: 24px;
        line-height: 1.15;
    }

    .admin-page .featured-admin-card {
        padding: 22px 20px;
    }

    .admin-page .article-manager,
    .admin-page .moderation-card {
        padding: 0;
    }

    .admin-page .admin-card-head,
    .admin-page .article-manager .admin-card-head,
    .admin-page .moderation-card .admin-card-head {
        padding: 20px;
        gap: 14px;
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-page .admin-card-head > a,
    .admin-page .admin-card-head > button {
        width: 100%;
        justify-content: center;
        text-align: center;
        box-sizing: border-box;
    }

    .admin-page .admin-filter-tabs {
        margin-bottom: 10px;
        overflow-x: auto;
        overflow-y: hidden;
        flex-wrap: nowrap;
        max-width: 100%;
        padding: 0 0 5px;
        -webkit-overflow-scrolling: touch;
    }

    .admin-page .admin-filter-tabs a {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    .admin-page .admin-filter-form {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .admin-page .admin-filter-form label,
    .admin-page .admin-filter-form input,
    .admin-page .admin-filter-form select,
    .admin-page .admin-filter-form button,
    .admin-page .admin-filter-form > a {
        min-width: 0;
        width: 100%;
        box-sizing: border-box;
    }

    .admin-page .admin-filter-form label:first-of-type {
        grid-column: 1 / -1;
    }

    .admin-page .admin-filter-form > a,
    .admin-page .admin-filter-form > button {
        display: inline-flex;
        min-height: 40px;
        align-items: center;
        justify-content: center;
    }

    .admin-page .article-manager .admin-table-wrap,
    .admin-page .admin-table-wrap {
        border-top: 1px solid #e4eaf1;
        overflow-x: auto;
    }

    .admin-page .admin-table {
        min-width: 670px;
    }

    .admin-page .admin-table thead th,
    .admin-page .admin-table tbody td {
        padding-left: 12px;
        padding-right: 12px;
    }

    .admin-page .article-admin-cell {
        min-width: 210px;
    }

    .admin-page .article-table {
        min-width: 590px;
    }

    .admin-page .article-table th:nth-child(2),
    .admin-page .article-table td:nth-child(2),
    .admin-page .article-table th:nth-child(4),
    .admin-page .article-table td:nth-child(4) {
        display: none;
    }

    .admin-page .user-table {
        min-width: 650px;
    }

    .admin-page .user-table th:nth-child(2),
    .admin-page .user-table td:nth-child(2),
    .admin-page .user-table th:nth-child(4),
    .admin-page .user-table td:nth-child(4) {
        display: none;
    }

    .admin-page .user-table th:nth-child(6) {
        min-width: 220px;
    }

    .admin-page .actions,
    .admin-page .user-actions {
        min-width: 170px;
    }

    .admin-page .actions > a,
    .admin-page .actions button {
        display: inline-flex;
        margin: 3px 4px 3px 0;
        align-items: center;
        justify-content: center;
    }

    .admin-page .moderation-list {
        padding: 8px 14px 18px;
    }

    .admin-page .moderation-item {
        padding: 17px;
    }

    .admin-page .moderation-meta {
        align-items: flex-start;
        justify-content: space-between;
    }

    .admin-page .moderation-meta > div {
        min-width: 0;
    }

    .admin-page .moderation-meta strong,
    .admin-page .moderation-meta span,
    .admin-page .moderation-item p,
    .admin-page .moderation-item small {
        overflow-wrap: anywhere;
    }

    .admin-page .admin-pagination {
        padding: 16px;
        gap: 10px;
    }

    .admin-page .editor-form {
        gap: 16px;
    }

    .admin-page .editor-main,
    .admin-page .editor-side .admin-card {
        padding: 20px;
    }

    .admin-page .editor-side {
        position: static;
        width: 100%;
    }

    .admin-page .editor-two {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .admin-page .editor-form input,
    .admin-page .editor-form textarea,
    .admin-page .editor-form select {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .admin-page .format-toolbar {
        max-width: 100%;
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
    }

    .admin-page .format-toolbar button {
        flex: 0 0 auto;
    }

    .admin-page .body-editor {
        min-height: 380px;
    }

    .admin-page .preview-article {
        padding: 20px;
    }

    .admin-page .metric-bars > div {
        grid-template-columns: minmax(0, 1fr) 38px;
        gap: 7px 9px;
    }

    .admin-page .metric-bars > div > span {
        grid-column: 1 / -1;
        overflow-wrap: anywhere;
    }

    .admin-page .metric-bars > div > i {
        min-width: 0;
    }
}

@media (max-width: 480px) {
    .admin-page .admin-shell,
    .admin-page .editor-shell {
        padding-left: 9px;
        padding-right: 9px;
    }

    .admin-page .admin-hero {
        padding: 21px 17px;
        border-radius: 14px;
    }

    .admin-page .admin-hero h1 {
        font-size: 30px;
    }

    .admin-page .admin-hero-actions {
        grid-template-columns: 1fr;
    }

    .admin-page .admin-tabs {
        margin-left: 0;
        margin-right: 0;
        border-radius: 12px;
    }

    .admin-page .admin-stats,
    .admin-page .admin-stats-expanded {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .admin-page .admin-stats > a,
    .admin-page .admin-stats > div {
        padding: 15px 13px;
    }

    .admin-page .admin-stats strong {
        font-size: 28px;
    }

    .admin-page .admin-card,
    .admin-page .editor-main,
    .admin-page .editor-side .admin-card {
        padding: 17px;
    }

    .admin-page .article-manager,
    .admin-page .moderation-card {
        padding: 0;
    }

    .admin-page .article-manager .admin-card-head,
    .admin-page .moderation-card .admin-card-head,
    .admin-page .admin-card-head {
        padding: 17px;
    }

    .admin-page .admin-filter-form {
        grid-template-columns: 1fr;
    }

    .admin-page .admin-filter-form label:first-of-type {
        grid-column: auto;
    }

    .admin-page .article-table {
        min-width: 520px;
    }

    .admin-page .user-table {
        min-width: 600px;
    }

    .admin-page .admin-table:not(.article-table):not(.user-table) {
        min-width: 590px;
    }

    .admin-page .moderation-meta {
        flex-direction: column;
        gap: 8px;
    }

    .admin-page .moderation-actions,
    .admin-page .moderation-actions form,
    .admin-page .moderation-actions button {
        width: 100%;
    }

    .admin-page .moderation-actions button {
        justify-content: center;
    }

    .admin-page .quick-actions {
        grid-template-columns: 1fr;
    }

    .admin-page .quick-actions a {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .admin-page .workflow-mini span,
    .admin-page .activity-row,
    .admin-page .admin-ranking li {
        min-width: 0;
    }

    .admin-page .workflow-mini span > :first-child,
    .admin-page .activity-row > div,
    .admin-page .admin-ranking li span {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .admin-page .page-numbers {
        max-width: 100%;
        overflow-x: auto;
        padding-bottom: 3px;
    }

    .admin-page .flash {
        margin-bottom: 16px;
        overflow-wrap: anywhere;
    }
}

@media (max-width: 360px) {
    .admin-page .admin-stats,
    .admin-page .admin-stats-expanded {
        grid-template-columns: 1fr;
    }

    .admin-page .admin-hero h1 {
        font-size: 28px;
    }

    .admin-page .admin-tabs a,
    .admin-page .admin-filter-tabs a {
        font-size: 11px;
    }
}

/* Statistics dashboard ---------------------------------------------------- */
.stats-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:20px 0 10px}.stats-section-head h2{margin:3px 0 0;color:#0b294c}.stats-spaced{margin-top:30px}.stats-live-pill,.stats-summary{font-size:.72rem;font-weight:900;letter-spacing:.04em;color:#52657a}.stats-live-pill{padding:7px 10px;border-radius:999px;background:#eaf5ee;color:#267047}.stats-kpi-grid>div{position:relative;min-height:130px}.stats-kpi-grid small{display:block;margin-top:6px;color:#7b8998;font-size:.7rem;font-weight:700}.analytics-grid-wide{grid-template-columns:minmax(0,2fr) minmax(240px,.7fr)}.stats-three{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-sub{margin:-6px 0 14px;color:#7b8998;font-size:.8rem}.stats-spark-bars{height:190px;display:flex;align-items:flex-end;gap:4px;padding-top:12px;border-bottom:1px solid #dfe5eb}.stats-spark-bars>div{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:0}.stats-spark-bars i{display:block;width:100%;max-width:16px;min-height:4px;background:#ffc928;border-radius:4px 4px 0 0}.stats-spark-bars span{display:none}.stats-spark-bars>div:nth-child(5n+1) span,.stats-spark-bars>div:last-child span{display:block;position:absolute;transform:translateY(19px);font-size:.58rem;color:#7b8998;white-space:nowrap}.stats-ranking-detail li{align-items:flex-start}.stats-ranking-detail li span{max-width:70%}.stats-ranking-detail a{color:inherit;text-decoration:none}.stats-ranking-detail a:hover{text-decoration:underline}.admin-ranking li span small{display:block;margin-top:3px;color:#8a98a8;font-size:.66rem;font-weight:700}.stats-empty,.stats-footnote{color:#7b8998;font-size:.78rem}.stats-footnote{margin:22px 0 4px;text-align:center}.stats-facts em{font-style:normal}.stats-card-wide{min-width:0}
@media(max-width:1100px){.stats-three{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-grid-wide{grid-template-columns:1fr}}
@media(max-width:700px){.stats-section-head{align-items:flex-start;flex-direction:column;gap:7px}.stats-three{grid-template-columns:1fr}.stats-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.stats-kpi-grid>div{min-height:118px}.stats-spark-bars{height:150px;gap:2px}.metric-bars>div{grid-template-columns:minmax(90px,1.2fr) minmax(70px,1fr) 30px}.stats-ranking-detail li{flex-direction:column}.stats-ranking-detail li span{max-width:100%}.stats-ranking-detail li strong{text-align:left}}
@media(max-width:360px){.stats-kpi-grid{grid-template-columns:1fr!important}}

/* =========================================================
   ParkPulse NEWS archive + homepage dark-mode fix – 05-09-2026
   ========================================================= */
body.theme-dark .homepage-shell {
    background: #0c1420;
}

.news-page-shell {
    max-width: none;
    padding: 0;
    background: #f5f7fa;
}

.news-page-inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 46px 20px 72px;
}

.news-page-inner > .section-heading {
    margin-bottom: 22px;
}

.news-page-list {
    display: grid;
    gap: 22px;
}

.news-page-list .news-card {
    display: grid;
    grid-template-columns: 36% 1fr;
    min-height: 250px;
    margin: 0;
    overflow: hidden;
    border: 1px solid #e1e6ec;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 9px 28px rgba(5,27,55,.08);
}

.news-page-list .news-image-link {
    display: block;
    min-height: 250px;
}

.news-page-list .news-card img {
    width: 100%;
    height: 100%;
    min-height: 250px;
    object-fit: cover;
    display: block;
}

.news-page-list .news-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 28px 32px;
}

.news-page-list .news-copy h2 {
    margin: 10px 0 12px;
    font-size: 28px;
    line-height: 1.15;
}

.news-page-list .news-copy h2 a {
    color: inherit;
}

.news-page-list .news-copy p {
    margin: 0 0 17px;
    line-height: 1.65;
}

.news-empty {
    padding: 36px;
    border-radius: 14px;
    background: #fff;
    text-align: center;
}

.news-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 34px;
}

.news-pagination a,
.news-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 12px;
    border: 1px solid #ccd5df;
    border-radius: 9px;
    background: #fff;
    color: #0B294C;
    font-weight: 900;
    text-decoration: none;
}

.news-pagination a:hover,
.news-pagination a:focus-visible,
.news-pagination .pagination-page.active {
    border-color: var(--yellow);
    background: var(--yellow);
    color: #0B294C;
}

.news-pagination .disabled {
    opacity: .38;
    cursor: default;
}

body.theme-dark .news-page-shell {
    background: #0c1420;
}

body.theme-dark .news-page-list .news-card,
body.theme-dark .news-empty {
    background: #151f2e;
    border-color: #2a384b;
    color: #e9eef5;
}

body.theme-dark .news-page-list .news-copy p {
    color: #aeb9c8;
}

body.theme-dark .news-pagination a,
body.theme-dark .news-pagination span {
    background: #151f2e;
    border-color: #35445a;
    color: #e9eef5;
}

body.theme-dark .news-pagination a:hover,
body.theme-dark .news-pagination a:focus-visible,
body.theme-dark .news-pagination .pagination-page.active {
    background: var(--yellow);
    border-color: var(--yellow);
    color: #0B294C;
}

@media (max-width: 760px) {
    .news-page-inner {
        padding: 28px 15px 50px;
    }

    .news-page-list .news-card {
        grid-template-columns: 1fr;
    }

    .news-page-list .news-image-link,
    .news-page-list .news-card img {
        min-height: 210px;
        height: 210px;
    }

    .news-page-list .news-copy {
        padding: 22px;
    }

    .news-page-list .news-copy h2 {
        font-size: 23px;
    }
}


/* =========================================================
   HOME MEMBER WELCOME + ARTICLE ACCESS GATE
   ========================================================= */
.home-welcome-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    margin: 0 0 26px;
    padding: 18px 20px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 12px;
    background: rgba(255,255,255,.07);
}
.home-welcome-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.home-welcome-copy span {
    color: #aabbd0;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .12em;
}
.home-welcome-copy strong {
    color: #fff;
    font-size: 22px;
    line-height: 1.2;
    overflow-wrap: anywhere;
}
.home-profile-button {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 16px;
    border-radius: 8px;
    background: var(--yellow);
    color: #0B294D;
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
    letter-spacing: .02em;
}
.home-profile-button:hover { transform: translateY(-1px); }

.article-access-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 22px;
    background: rgba(3,14,29,.78);
    backdrop-filter: blur(5px);
}
.article-access-overlay.open { display: flex; }
body.article-gate-open { overflow: hidden; }
.article-access-modal {
    position: relative;
    width: min(100%, 470px);
    padding: 34px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 16px;
    background: linear-gradient(145deg,#071d3b,#0b2b52);
    box-shadow: 0 28px 70px rgba(0,0,0,.38);
    color: #fff;
    text-align: center;
}
.article-access-kicker {
    display: block;
    margin-bottom: 8px;
    color: var(--yellow);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .14em;
}
.article-access-modal h2 { margin: 0 0 12px; color: #fff; font-size: 28px; }
.article-access-modal p { margin: 0 auto 24px; max-width: 360px; color: #dbe5f1; line-height: 1.6; }
.article-access-close {
    position: absolute;
    top: 11px;
    right: 13px;
    width: 34px;
    height: 34px;
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}
.article-access-actions { display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; }
.article-access-actions .yellow-button { margin: 0; }
.article-register-link { color: #fff; font-size: 12px; font-weight: 900; text-decoration: underline; text-underline-offset: 3px; }

@media(max-width:650px) {
    .home-welcome-card { align-items: stretch; flex-direction: column; gap: 14px; padding: 16px; }
    .home-profile-button { width: 100%; }
    .article-access-modal { padding: 32px 22px 26px; }
    .article-access-actions { flex-direction: column; align-items: stretch; }
    .article-access-actions .yellow-button, .article-register-link { width: 100%; text-align: center; }
}


/* =========================================================
   HOME WELCOME INLINE + NEWS IMAGE BADGES – 05-09-2026
   ========================================================= */
.home-welcome-copy {
    flex-direction: row;
    align-items: baseline;
    gap: .38em;
    flex-wrap: wrap;
}
.home-welcome-copy span,
.home-welcome-copy strong {
    color: #fff;
    font-size: 22px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: 0;
}

/* Username greeting in the navigation follows the exact menu typography. */
.nav-inner .welcome {
    font-weight: 800;
    font-size: 13px;
    letter-spacing: .04em;
}

.news-image-link {
    position: relative;
    display: block;
    overflow: hidden;
}
.article-image-badge {
    position: absolute;
    top: 12px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 9px;
    border-radius: 6px;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    box-shadow: 0 4px 14px rgba(0,0,0,.18);
}
.article-new-badge {
    left: 12px;
    background: var(--yellow);
    color: #071d3b;
}
.article-category-badge {
    right: 12px;
    max-width: calc(100% - 82px);
    background: rgba(7,29,59,.92);
    color: #fff;
    text-align: right;
}
.news-copy .meta {
    justify-content: flex-end;
}

@media(max-width:650px) {
    .home-welcome-copy span,
    .home-welcome-copy strong { font-size: 18px; }
    .article-image-badge { top: 9px; min-height: 25px; padding: 4px 7px; font-size: 9px; }
    .article-new-badge { left: 9px; }
    .article-category-badge { right: 9px; }
}

/* Park profile refinements: informational Passport stats + removable rating. */
.park-community-card.static,.park-community-card.static .park-community-card-button{cursor:default}
.hub-delete-rating-form{margin-top:8px}
.hub-delete-rating{border:0;background:transparent;padding:5px 0;color:#8a3640;font-size:.72rem;font-weight:900;letter-spacing:.045em;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.hub-delete-rating:hover{color:#b12231}
body.theme-dark .hub-delete-rating{color:#f1a4ac}
body.theme-dark .hub-delete-rating:hover{color:#ffc0c7}


/* Park visibility states */
.park-visibility-banner {
    display: inline-flex;
    align-items: center;
    margin-left: 12px;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .12em;
    vertical-align: middle;
}
.park-visibility-banner.coming-soon,
.park-open-status.special.coming-soon { background: #fff4c6; color: #805700; border-color: #ffd65d; }
.park-visibility-banner.under-construction,
.park-open-status.special.under-construction { background: #e8eef6; color: #27445f; border-color: #c3d1df; }
.park-open-status.special { white-space: nowrap; }
body.theme-dark .park-visibility-banner.under-construction,
body.theme-dark .park-open-status.special.under-construction { background: #213a55; color: #e5edf5; border-color: #3d5b78; }

/* Park overview status cards: Coming Soon / Under Construction */
.park-profile-card.park-status-card {
    position: relative;
    overflow: hidden;
    background: #edf0f3;
    border-color: #cfd5dc;
    box-shadow: 0 8px 22px rgba(30,42,55,.08);
    cursor: default;
}
.park-profile-card.park-status-card:hover {
    transform: none;
    border-color: #cfd5dc;
    box-shadow: 0 8px 22px rgba(30,42,55,.08);
}
.park-profile-card.park-status-card .park-logo-box {
    background: #d6dbe0;
    border-bottom-color: #c5cbd1;
}
.park-profile-card.park-status-card .park-logo-box img {
    filter: grayscale(1) saturate(.18) opacity(.62) !important;
}
.park-profile-card.park-status-card > .park-card-static-content > div:not(.park-logo-box),
.park-profile-card.park-status-card .park-account-actions {
    background: #edf0f3;
}
.park-profile-card.park-status-card h2,
.park-profile-card.park-status-card p,
.park-profile-card.park-status-card .park-card-meta > span:first-child {
    color: #6f7780;
}
.park-profile-card.park-status-card .favorite-button,
.park-profile-card.park-status-card .passport-button,
.park-profile-card.park-status-card .wishlist-button,
.park-profile-card.park-status-card .passholder-button {
    filter: grayscale(1);
    opacity: .48;
    cursor: not-allowed;
    box-shadow: none;
}
.park-profile-card.park-status-card button:disabled {
    pointer-events: none;
}
.park-card-status-banner {
    position: absolute;
    z-index: 20;
    top: 50%;
    left: 50%;
    width: 155%;
    min-height: 58px;
    padding: 15px 70px;
    transform: translate(-50%,-50%) rotate(-28deg);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: clamp(13px,1.35vw,18px);
    font-weight: 1000;
    letter-spacing: .16em;
    line-height: 1;
    text-transform: uppercase;
    box-shadow: 0 8px 24px rgba(0,0,0,.28), 0 0 0 1px rgba(255,255,255,.22) inset;
    pointer-events: none;
    isolation: isolate;
}
.park-card-status-banner::after {
    content: '';
    position: absolute;
    inset: 3px 0;
    border-top: 1px solid rgba(255,255,255,.46);
    border-bottom: 1px solid rgba(0,0,0,.16);
    z-index: -1;
}
.park-card-status-banner span {
    display: inline-block;
    padding: 8px 18px;
    border-radius: 6px;
    white-space: nowrap;
}
.park-card-status-banner.coming-soon {
    background: linear-gradient(180deg,#12375f 0%,#0b294c 52%,#071f3a 100%);
    color: #ffd52a;
    border-top: 2px solid #244c75;
    border-bottom: 2px solid #061a31;
}
.park-card-status-banner.coming-soon span {
    background: rgba(0,0,0,.10);
    color: #ffd52a;
    text-shadow: 0 2px 2px rgba(0,0,0,.45);
}
.park-card-status-banner.under-construction {
    background: repeating-linear-gradient(135deg,#111 0 22px,#111 22px 44px,#ffd52a 44px 66px,#ffd52a 66px 88px);
    border-top: 2px solid #111;
    border-bottom: 2px solid #111;
}
.park-card-status-banner.under-construction span {
    background: #ffd52a;
    color: #111;
    border: 2px solid #111;
    box-shadow: 0 2px 0 rgba(255,255,255,.3) inset, 0 2px 8px rgba(0,0,0,.28);
    text-shadow: 0 1px 0 rgba(255,255,255,.45);
}
body.theme-dark .park-profile-card.park-status-card,
body.theme-dark .park-profile-card.park-status-card > .park-card-static-content > div:not(.park-logo-box),
body.theme-dark .park-profile-card.park-status-card .park-account-actions {
    background: #343b44;
    border-color: #48515b;
}
body.theme-dark .park-profile-card.park-status-card .park-logo-box {
    background: #2a3037;
    border-bottom-color: #48515b;
}
body.theme-dark .park-profile-card.park-status-card h2,
body.theme-dark .park-profile-card.park-status-card p,
body.theme-dark .park-profile-card.park-status-card .park-card-meta > span:first-child {
    color: #b8bec5;
}
@media (max-width: 620px) {
    .park-card-status-banner {
        width: 175%;
        min-height: 52px;
        padding: 12px 55px;
        transform: translate(-50%,-50%) rotate(-30deg);
        font-size: 12px;
        letter-spacing: .12em;
    }
    .park-card-status-banner span {
        padding: 7px 12px;
    }
}


/* Static layout for non-interactive Coming Soon / Under Construction cards */
.park-profile-card.park-status-card > .park-card-static-content {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;
}
.park-profile-card.park-status-card > .park-card-static-content > div:not(.park-logo-box) {
    flex: 1 1 auto;
}


/* Status card alignment refinements */
.park-profile-card.park-status-card .park-card-static-content {
    height: 100%;
    display: flex;
    flex-direction: column;
}
.park-profile-card.park-status-card .park-account-actions {
    margin-top: auto;
}
.park-profile-card.park-status-card h2,
.park-profile-card.park-status-card p,
.park-profile-card.park-status-card .park-card-meta,
.park-profile-card.park-status-card .park-account-actions {
    position: relative;
}
.park-profile-card.park-status-card .park-card-meta {
    min-height: 24px;
    align-items: center;
}
.park-profile-card.park-status-card .park-account-actions button {
    min-height: 100%;
}


/* ==========================================================
   Admin Panel — full dark mode
   ========================================================== */
body.theme-dark.admin-page,
body.theme-dark.admin-page main {
    background: #0b1320;
    color: #dce6f2;
}
body.theme-dark.admin-page .admin-shell,
body.theme-dark.admin-page .editor-shell {
    color: #dce6f2;
}
body.theme-dark.admin-page .admin-hero {
    background: linear-gradient(135deg,#06172f,#0b294c);
    border-color: #27415f;
    box-shadow: 0 14px 34px rgba(0,0,0,.28);
}
body.theme-dark.admin-page .admin-tabs {
    background: #111c2a;
    border-color: #26364a;
    box-shadow: 0 10px 28px rgba(0,0,0,.20);
}
body.theme-dark.admin-page .admin-tabs a {
    color: #aebdce;
}
body.theme-dark.admin-page .admin-tabs a:hover {
    color: #ffffff;
}
body.theme-dark.admin-page .admin-tabs a.active {
    color: #ffffff;
    border-color: var(--yellow);
}
body.theme-dark.admin-page .admin-stats > a,
body.theme-dark.admin-page .admin-card,
body.theme-dark.admin-page .editor-main {
    background: #151f2e;
    border-color: #2a384b;
    color: #dce6f2;
    box-shadow: 0 8px 30px rgba(0,0,0,.18);
}
body.theme-dark.admin-page .admin-stats > a:hover {
    border-color: #42546b;
}
body.theme-dark.admin-page .admin-stats strong,
body.theme-dark.admin-page .admin-card h2,
body.theme-dark.admin-page .admin-card h3,
body.theme-dark.admin-page .admin-card h4,
body.theme-dark.admin-page .editor-main h2,
body.theme-dark.admin-page .editor-main h3,
body.theme-dark.admin-page label {
    color: #f3f7fb;
}
body.theme-dark.admin-page .admin-card p,
body.theme-dark.admin-page .admin-card small,
body.theme-dark.admin-page .muted-admin,
body.theme-dark.admin-page .admin-empty,
body.theme-dark.admin-page .editor-help,
body.theme-dark.admin-page .field-help {
    color: #9eacbd;
}
body.theme-dark.admin-page .admin-card-eyebrow,
body.theme-dark.admin-page .admin-kicker {
    color: #72bfff;
}

/* Tables */
body.theme-dark.admin-page .admin-table-wrap {
    border-color: #2a384b;
    background: #121c29;
}
body.theme-dark.admin-page .admin-table {
    background: #151f2e;
    color: #dce6f2;
}
body.theme-dark.admin-page .admin-table th {
    background: #101925;
    color: #9faec0;
    border-color: #29384b;
}
body.theme-dark.admin-page .admin-table td {
    border-color: #263548;
    color: #dce6f2;
}
body.theme-dark.admin-page .admin-table tbody tr:hover {
    background: #1a2737;
}
body.theme-dark.admin-page .admin-table td strong,
body.theme-dark.admin-page .article-admin-cell strong,
body.theme-dark.admin-page .date-strong {
    color: #edf4fb;
}
body.theme-dark.admin-page .admin-table td small {
    color: #93a3b6;
}

/* Forms and editors */
body.theme-dark.admin-page input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.theme-dark.admin-page textarea,
body.theme-dark.admin-page select,
body.theme-dark.admin-page .body-editor {
    background: #0f1824;
    color: #eef5fc;
    border-color: #35465b;
    box-shadow: none;
}
body.theme-dark.admin-page input::placeholder,
body.theme-dark.admin-page textarea::placeholder {
    color: #6f8094;
}
body.theme-dark.admin-page input:focus,
body.theme-dark.admin-page textarea:focus,
body.theme-dark.admin-page select:focus,
body.theme-dark.admin-page .body-editor:focus {
    background: #111d2b;
    border-color: #4a8ccc;
    box-shadow: 0 0 0 3px rgba(74,140,204,.16);
    outline: none;
}
body.theme-dark.admin-page select option {
    background: #0f1824;
    color: #eef5fc;
}
body.theme-dark.admin-page input[type="file"] {
    color: #c7d3e1;
}
body.theme-dark.admin-page input[type="file"]::file-selector-button {
    background: #243449;
    color: #eef5fc;
    border: 1px solid #3b5068;
}
body.theme-dark.admin-page .admin-check {
    color: #dce6f2;
}

/* Secondary controls and navigation */
body.theme-dark.admin-page .admin-ghost-button {
    background: #16253a;
    color: #edf5fc;
    border-color: #3a4c63;
}
body.theme-dark.admin-page .admin-ghost-button:hover {
    background: #20324a;
    border-color: #526985;
}
body.theme-dark.admin-page .admin-filter-tabs a,
body.theme-dark.admin-page .admin-pagination a,
body.theme-dark.admin-page .admin-pagination span {
    background: #151f2e;
    color: #cdd8e5;
    border-color: #2a384b;
}
body.theme-dark.admin-page .admin-filter-tabs a:hover,
body.theme-dark.admin-page .admin-filter-tabs a.active,
body.theme-dark.admin-page .admin-pagination a:hover,
body.theme-dark.admin-page .admin-pagination .active {
    background: var(--yellow);
    border-color: var(--yellow);
    color: #071d3b;
}
body.theme-dark.admin-page .actions .action-edit {
    background: #17324a;
    color: #7dc4ff;
}
body.theme-dark.admin-page .actions > a,
body.theme-dark.admin-page .actions button {
    color: #79bfff;
}
body.theme-dark.admin-page .actions button {
    color: #ff8f8f;
}

/* Statuses / callouts */
body.theme-dark.admin-page .status-pill {
    background: #263446;
    color: #c7d2df;
}
body.theme-dark.admin-page .status-pill.published,
body.theme-dark.admin-page .status-pill.approved {
    background: #183b2a;
    color: #7ee2a8;
}
body.theme-dark.admin-page .status-pill.draft,
body.theme-dark.admin-page .status-pill.pending {
    background: #453915;
    color: #ffdc72;
}
body.theme-dark.admin-page .status-pill.rejected,
body.theme-dark.admin-page .status-pill.blocked {
    background: #4a2226;
    color: #ff9da5;
}
body.theme-dark.admin-page .admin-stat-attention {
    background: #402326 !important;
    border-color: #754047 !important;
}
body.theme-dark.admin-page .admin-stat-attention strong,
body.theme-dark.admin-page .admin-stat-attention span {
    color: #ffd7da;
}

/* Rankings, activity, analytics */
body.theme-dark.admin-page .activity-row,
body.theme-dark.admin-page .admin-ranking li,
body.theme-dark.admin-page .metric-bars li {
    border-color: #29384b;
}
body.theme-dark.admin-page .activity-row strong,
body.theme-dark.admin-page .admin-ranking strong,
body.theme-dark.admin-page .metric-bars strong,
body.theme-dark.admin-page .workflow-mini b {
    color: #f1f5fa;
}
body.theme-dark.admin-page .activity-row small,
body.theme-dark.admin-page .admin-ranking li span,
body.theme-dark.admin-page .metric-bars span {
    color: #9dabbc;
}
body.theme-dark.admin-page .metric-bars i {
    background: #263446;
}

/* Image previews / upload areas */
body.theme-dark.admin-page .admin-image-preview {
    background: #0f1824;
    border-color: #35465b;
}
body.theme-dark.admin-page .admin-image-preview img {
    background: #0b1320;
}

/* Keep yellow primary actions distinctly ParkPulse */
body.theme-dark.admin-page .yellow-button {
    color: #071d3b;
}

/* Native widgets */
body.theme-dark.admin-page input[type="checkbox"],
body.theme-dark.admin-page input[type="radio"] {
    accent-color: #ffc928;
}


/* ==========================================================
   Admin Panel — dark mode hardening / remaining light surfaces
   ========================================================== */
body.theme-dark.admin-page {
    --admin-bg: #0b1320;
    --admin-surface: #151f2e;
    --admin-surface-2: #101925;
    --admin-surface-3: #1a2737;
    --admin-border: #2a384b;
    --admin-border-strong: #3a4c63;
    --admin-text: #eaf1f8;
    --admin-muted: #9eacbd;
}

/* Generic admin surfaces that may still inherit light mode */
body.theme-dark.admin-page .admin-card,
body.theme-dark.admin-page .admin-card-head,
body.theme-dark.admin-page .admin-card-body,
body.theme-dark.admin-page .admin-dashboard-grid,
body.theme-dark.admin-page .analytics-grid,
body.theme-dark.admin-page .featured-admin-card,
body.theme-dark.admin-page .activity-card,
body.theme-dark.admin-page .filter-card,
body.theme-dark.admin-page .moderation-card,
body.theme-dark.admin-page .article-manager,
body.theme-dark.admin-page .user-manager,
body.theme-dark.admin-page .publish-card,
body.theme-dark.admin-page .stats-card-wide,
body.theme-dark.admin-page .stats-facts,
body.theme-dark.admin-page .editor-main,
body.theme-dark.admin-page .editor-sidebar,
body.theme-dark.admin-page .editor-grid,
body.theme-dark.admin-page .workflow-mini,
body.theme-dark.admin-page .admin-ranking,
body.theme-dark.admin-page .metric-bars {
    background: var(--admin-surface);
    color: var(--admin-text);
    border-color: var(--admin-border);
}

/* Any nested white helper panels */
body.theme-dark.admin-page .admin-card > div,
body.theme-dark.admin-page .editor-main > div,
body.theme-dark.admin-page .editor-sidebar > div {
    border-color: var(--admin-border);
}
body.theme-dark.admin-page .admin-empty,
body.theme-dark.admin-page .empty-state,
body.theme-dark.admin-page .admin-note,
body.theme-dark.admin-page .admin-help,
body.theme-dark.admin-page .editor-help-box {
    background: var(--admin-surface-2);
    color: var(--admin-muted);
    border-color: var(--admin-border);
}

/* Lists / rows / hover states */
body.theme-dark.admin-page .admin-table tbody tr,
body.theme-dark.admin-page .activity-row,
body.theme-dark.admin-page .admin-ranking li,
body.theme-dark.admin-page .workflow-mini li,
body.theme-dark.admin-page .metric-bars li,
body.theme-dark.admin-page .user-row,
body.theme-dark.admin-page .article-row,
body.theme-dark.admin-page .moderation-row {
    background: transparent;
    color: var(--admin-text);
    border-color: var(--admin-border);
}
body.theme-dark.admin-page .admin-table tbody tr:hover,
body.theme-dark.admin-page .activity-row:hover,
body.theme-dark.admin-page .admin-ranking li:hover,
body.theme-dark.admin-page .workflow-mini li:hover,
body.theme-dark.admin-page .metric-bars li:hover,
body.theme-dark.admin-page .user-row:hover,
body.theme-dark.admin-page .article-row:hover,
body.theme-dark.admin-page .moderation-row:hover {
    background: var(--admin-surface-3) !important;
    color: #fff;
}
body.theme-dark.admin-page .admin-table tbody tr:hover td,
body.theme-dark.admin-page .admin-table tbody tr:hover strong,
body.theme-dark.admin-page .admin-table tbody tr:hover small,
body.theme-dark.admin-page .activity-row:hover strong,
body.theme-dark.admin-page .activity-row:hover small,
body.theme-dark.admin-page .admin-ranking li:hover strong,
body.theme-dark.admin-page .admin-ranking li:hover span {
    color: #fff;
}

/* Table headers / wrappers */
body.theme-dark.admin-page .admin-table-wrap,
body.theme-dark.admin-page .admin-table,
body.theme-dark.admin-page table {
    background: var(--admin-surface);
    border-color: var(--admin-border);
}
body.theme-dark.admin-page .admin-table thead,
body.theme-dark.admin-page .admin-table thead tr,
body.theme-dark.admin-page .admin-table th {
    background: var(--admin-surface-2) !important;
    color: #aebdce;
    border-color: var(--admin-border);
}

/* Filters / tabs / search controls */
body.theme-dark.admin-page .admin-filter-tabs,
body.theme-dark.admin-page .admin-filter-form,
body.theme-dark.admin-page .admin-pagination {
    background: transparent;
}
body.theme-dark.admin-page .admin-filter-tabs a {
    background: var(--admin-surface);
    color: #cbd7e4;
    border-color: var(--admin-border);
}
body.theme-dark.admin-page .admin-filter-tabs a:hover {
    background: #20324a !important;
    color: #fff !important;
    border-color: #465c76 !important;
}
body.theme-dark.admin-page .admin-filter-tabs a.active {
    background: var(--yellow) !important;
    color: #071d3b !important;
    border-color: var(--yellow) !important;
}

/* Form groups / labels / check rows */
body.theme-dark.admin-page .form-row,
body.theme-dark.admin-page .form-group,
body.theme-dark.admin-page .editor-field,
body.theme-dark.admin-page .admin-field,
body.theme-dark.admin-page .admin-check,
body.theme-dark.admin-page .admin-check-row {
    background: transparent;
    color: var(--admin-text);
    border-color: var(--admin-border);
}
body.theme-dark.admin-page input[readonly],
body.theme-dark.admin-page textarea[readonly],
body.theme-dark.admin-page input:disabled,
body.theme-dark.admin-page textarea:disabled,
body.theme-dark.admin-page select:disabled {
    background: #111925 !important;
    color: #78889b !important;
    border-color: #2a384b !important;
}

/* Buttons that may still be light */
body.theme-dark.admin-page .admin-button,
body.theme-dark.admin-page .secondary-button,
body.theme-dark.admin-page .button-secondary,
body.theme-dark.admin-page .admin-page button:not(.yellow-button):not(.danger-button) {
    border-color: var(--admin-border-strong);
}
body.theme-dark.admin-page .admin-ghost-button:hover,
body.theme-dark.admin-page .secondary-button:hover,
body.theme-dark.admin-page .button-secondary:hover {
    background: #20324a;
    color: #fff;
}

/* Links inside cards/lists */
body.theme-dark.admin-page .admin-card a:not(.yellow-button),
body.theme-dark.admin-page .admin-table a,
body.theme-dark.admin-page .activity-row a,
body.theme-dark.admin-page .admin-ranking a {
    color: #79bfff;
}
body.theme-dark.admin-page .admin-card a:not(.yellow-button):hover,
body.theme-dark.admin-page .admin-table a:hover,
body.theme-dark.admin-page .activity-row a:hover,
body.theme-dark.admin-page .admin-ranking a:hover {
    color: #b9ddff;
}

/* Native date/time controls */
body.theme-dark.admin-page input[type="date"],
body.theme-dark.admin-page input[type="datetime-local"],
body.theme-dark.admin-page input[type="time"] {
    color-scheme: dark;
}

/* Scrollable admin areas */
body.theme-dark.admin-page .admin-table-wrap,
body.theme-dark.admin-page .admin-card,
body.theme-dark.admin-page .editor-main {
    scrollbar-color: #465a72 #101925;
}

/* Keep attention states dark, not pink/white */
body.theme-dark.admin-page .admin-stat-attention,
body.theme-dark.admin-page .admin-card.attention,
body.theme-dark.admin-page .moderation-card.attention {
    background: #3b2228 !important;
    border-color: #71404a !important;
}

/* Avoid leftover white row/card backgrounds from high-specificity light rules */
body.theme-dark.admin-page .admin-card[style*="background"],
body.theme-dark.admin-page .admin-table tr[style*="background"],
body.theme-dark.admin-page .activity-row[style*="background"] {
    background-color: var(--admin-surface) !important;
}


/* ==========================================================
   Admin Panel — exact dark-mode fixes for white hovers/buttons
   ========================================================== */

/* The cells themselves had a light hover background, overriding the row. */
body.theme-dark.admin-page .admin-table tbody tr:hover > td,
body.theme-dark.admin-page .admin-table tbody tr:hover td {
    background: #1a2737 !important;
    color: #ffffff !important;
    border-color: #334459 !important;
}
body.theme-dark.admin-page .admin-table tbody tr:hover td strong,
body.theme-dark.admin-page .admin-table tbody tr:hover td small,
body.theme-dark.admin-page .admin-table tbody tr:hover td .date-strong,
body.theme-dark.admin-page .admin-table tbody tr:hover td .muted-admin {
    color: #ffffff !important;
}

/* Main admin navigation tabs */
body.theme-dark.admin-page .admin-tabs a:hover {
    background: #1a2737 !important;
    color: #ffffff !important;
}
body.theme-dark.admin-page .admin-tabs a.active,
body.theme-dark.admin-page .admin-tabs a.active:hover {
    background: #162337 !important;
    color: #ffffff !important;
}

/* Editor formatting toolbar */
body.theme-dark.admin-page .format-toolbar,
body.theme-dark.admin-page .format-toolbar button {
    background: #101925 !important;
    border-color: #35465b !important;
    color: #dce6f2 !important;
}
body.theme-dark.admin-page .format-toolbar button:hover,
body.theme-dark.admin-page .format-toolbar button:focus {
    background: #243449 !important;
    border-color: #526985 !important;
    color: #ffffff !important;
}

/* Moderation buttons were explicitly white in light CSS */
body.theme-dark.admin-page .moderation-actions button {
    background: #182536 !important;
    border-color: #3a4c63 !important;
    color: #dce6f2 !important;
}
body.theme-dark.admin-page .moderation-actions button:hover {
    background: #243449 !important;
    border-color: #526985 !important;
    color: #ffffff !important;
}

/* Table action buttons/links */
body.theme-dark.admin-page .actions a,
body.theme-dark.admin-page .actions button {
    background-color: transparent !important;
}
body.theme-dark.admin-page .actions .action-edit {
    background: #17324a !important;
    color: #83c8ff !important;
}
body.theme-dark.admin-page .actions .action-edit:hover {
    background: #214766 !important;
    color: #ffffff !important;
}
body.theme-dark.admin-page .actions button:hover,
body.theme-dark.admin-page .actions a:not(.action-edit):hover {
    background: transparent !important;
    color: #ffffff !important;
}

/* Filter chips: dark hover; active keeps ParkPulse yellow */
body.theme-dark.admin-page .admin-filter-tabs a:hover:not(.active) {
    background: #243449 !important;
    border-color: #526985 !important;
    color: #ffffff !important;
}
body.theme-dark.admin-page .admin-filter-tabs a.active,
body.theme-dark.admin-page .admin-filter-tabs a.active:hover {
    background: #ffc928 !important;
    border-color: #ffc928 !important;
    color: #071d3b !important;
}
body.theme-dark.admin-page .admin-filter-tabs a:hover b {
    background: #34495f !important;
    color: #ffffff !important;
}
body.theme-dark.admin-page .admin-filter-tabs a.active b,
body.theme-dark.admin-page .admin-filter-tabs a.active:hover b {
    background: #071d3b !important;
    color: #ffc928 !important;
}

/* Pagination */
body.theme-dark.admin-page .admin-pagination a:hover:not(.active) {
    background: #243449 !important;
    border-color: #526985 !important;
    color: #ffffff !important;
}

/* Generic admin white buttons, but don't touch primary yellow or danger */
body.theme-dark.admin-page button:not(.yellow-button):not(.danger-button):not(.action-delete),
body.theme-dark.admin-page input[type="submit"]:not(.yellow-button),
body.theme-dark.admin-page input[type="button"] {
    background-color: #182536;
    border-color: #3a4c63;
    color: #dce6f2;
}
body.theme-dark.admin-page button:not(.yellow-button):not(.danger-button):not(.action-delete):hover,
body.theme-dark.admin-page input[type="submit"]:not(.yellow-button):hover,
body.theme-dark.admin-page input[type="button"]:hover {
    background-color: #243449 !important;
    border-color: #526985 !important;
    color: #ffffff !important;
}

/* Restore intentional button appearances after generic rule */
body.theme-dark.admin-page .yellow-button,
body.theme-dark.admin-page button.yellow-button,
body.theme-dark.admin-page input.yellow-button {
    background: #ffc928 !important;
    border-color: #ffc928 !important;
    color: #071d3b !important;
}
body.theme-dark.admin-page .yellow-button:hover,
body.theme-dark.admin-page button.yellow-button:hover {
    background: #ffd34f !important;
    border-color: #ffd34f !important;
    color: #071d3b !important;
}
body.theme-dark.admin-page .actions button {
    background: transparent !important;
    border-color: transparent !important;
    color: #ff8f8f !important;
}

/* Ensure list-style dashboard items never flash white */
body.theme-dark.admin-page .activity-row:hover,
body.theme-dark.admin-page .admin-ranking li:hover,
body.theme-dark.admin-page .workflow-mini li:hover,
body.theme-dark.admin-page .metric-bars li:hover {
    background-color: #1a2737 !important;
}
body.theme-dark.admin-page .activity-row:hover *,
body.theme-dark.admin-page .admin-ranking li:hover *,
body.theme-dark.admin-page .workflow-mini li:hover *,
body.theme-dark.admin-page .metric-bars li:hover * {
    color: #ffffff !important;
}

/* FAQ */
.faq-shell{max-width:1050px}
.faq-search-wrap{margin:24px 0 34px;padding:22px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 4px 18px rgba(11,41,76,.06)}
.faq-search-wrap label{display:block;margin-bottom:8px;font-size:.78rem;font-weight:900;letter-spacing:.09em;color:#0b294c}
.faq-search-wrap input{width:100%;padding:14px 16px;border:1px solid #ccd6e2;border-radius:9px;background:#fff;color:#17243a;font:inherit;outline:none}
.faq-search-wrap input:focus{border-color:#f6c400;box-shadow:0 0 0 3px rgba(246,196,0,.18)}
.faq-no-results{margin:14px 0 0;color:#64748b}
.faq-section{margin:0 0 30px}
.faq-section>h2{margin:0 0 12px;color:#0b294c;font-size:1rem;letter-spacing:.08em;border-bottom:3px solid #f6c400;padding-bottom:8px}
.faq-list{display:grid;gap:9px}
.faq-item{background:#fff;border:1px solid #e2e8f0;border-radius:11px;overflow:hidden;box-shadow:0 2px 10px rgba(11,41,76,.04)}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 19px;font-weight:800;color:#0b294c}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary span{flex:0 0 auto;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#f6c400;color:#0b294c;font-size:1.25rem;line-height:1;transition:transform .2s ease}
.faq-item[open] summary span{transform:rotate(45deg)}
.faq-answer{padding:0 19px 17px;color:#536174;line-height:1.65}
.faq-answer p{margin:0}
.faq-item[hidden],.faq-section[hidden]{display:none!important}
.site-footer a{color:inherit}
body.theme-dark .faq-search-wrap,body.theme-dark .faq-item{background:#0f2238;border-color:#29415c;box-shadow:none}
body.theme-dark .faq-search-wrap label,body.theme-dark .faq-section>h2,body.theme-dark .faq-item summary{color:#f3f7fb}
body.theme-dark .faq-search-wrap input{background:#0a1a2c;border-color:#36506b;color:#f3f7fb}
body.theme-dark .faq-answer,body.theme-dark .faq-no-results{color:#b9c7d6}
@media(max-width:650px){.faq-search-wrap{padding:16px}.faq-item summary{padding:15px}.faq-answer{padding:0 15px 15px}.faq-item summary span{width:26px;height:26px}}

/* HOME page views analytics – 05-09-2026 */
.home-view-card{margin-bottom:8px}.home-view-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 24px}.home-view-kpis span{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid #e1e7ee;border-radius:10px;background:#f7f9fb}.home-view-kpis em{font-style:normal;font-size:.68rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:#718094}.home-view-kpis strong{font-size:1.45rem;line-height:1;color:#0b294c}.home-view-bars i{background:#0b294c}
body.theme-dark .home-view-kpis span{background:#101925;border-color:#2d3b4d}body.theme-dark .home-view-kpis em{color:#9eacbd}body.theme-dark .home-view-kpis strong{color:#eef5fc}body.theme-dark .home-view-bars i{background:#ffc928}
@media(max-width:700px){.home-view-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:360px){.home-view-kpis{grid-template-columns:1fr}}

/* Mobile WAIT TIMES park selection scroll target */
@media (max-width:900px){#waitParkTarget{scroll-margin-top:12px}}


/* WAIT TIMES empty state */
.wait-choose-prompt{padding:34px 28px;border-radius:16px;background:#f7f9fc;border:1px solid #dfe7f0;text-align:center}
.wait-choose-prompt strong{display:block;color:#0b294c;font-size:14px;letter-spacing:.08em;margin-bottom:6px}
.wait-choose-prompt p{margin:0;color:#65758a}
body.theme-dark .wait-choose-prompt{background:#102943;border-color:#294863}
body.theme-dark .wait-choose-prompt strong{color:#fff}
body.theme-dark .wait-choose-prompt p{color:#c7d5e3}
@media (max-width:900px){#waitParkTarget{scroll-margin-top:12px}}

/* Stats Extended – 05-09-2026 */
.stats-extended-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:22px;padding:24px 26px}
.stats-extended-intro h2{margin:4px 0 5px;color:#0b294c;font-size:1.55rem}.stats-extended-intro p{margin:0;color:#6b7788}
.ext-kpi-grid{margin-bottom:8px}.ext-four-kpis{margin-bottom:18px}.stats-mini-note{margin:16px 0 0;padding-top:13px;border-top:1px solid #e2e8f0;color:#758397;font-size:.78rem;line-height:1.5}
.ext-traffic-bars i{background:#0b294c}.ext-community-bars i{background:#466783}.ext-passport-bars i{background:#c49a00}
body.theme-dark.admin-page .stats-extended-intro h2{color:#f3f7fb}body.theme-dark.admin-page .stats-extended-intro p{color:#aebdcd}
body.theme-dark.admin-page .stats-mini-note{border-color:#2d3b4d;color:#9eacbd}
body.theme-dark.admin-page .ext-traffic-bars i,body.theme-dark.admin-page .ext-community-bars i,body.theme-dark.admin-page .ext-passport-bars i{background:#ffc928}
@media(max-width:760px){.stats-extended-intro{align-items:flex-start;flex-direction:column;padding:20px}.ext-four-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.ext-four-kpis{grid-template-columns:1fr}}


/* ParkPulse v9.0: optional celebration styling for park cards */
.park-profile-card.park-celebration {
    position: relative;
    border-color: #d7a928;
    background: linear-gradient(145deg,#fff8cf 0%,#f4d56d 45%,#c99722 100%);
    box-shadow: 0 10px 28px rgba(160,112,15,.28), inset 0 1px 0 rgba(255,255,255,.7);
}
.park-profile-card.park-celebration:hover {
    border-color: #b98412;
    box-shadow: 0 15px 34px rgba(160,112,15,.38), inset 0 1px 0 rgba(255,255,255,.75);
}
.park-profile-card.park-celebration::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(115deg,transparent 18%,rgba(255,255,255,.28) 42%,transparent 64%);
    opacity: .8;
}
.park-profile-card.park-celebration .park-logo-box {
    background: linear-gradient(145deg,#8c6510 0%,#c7961f 52%,#e4c258 100%);
    border-bottom-color: rgba(92,61,3,.25);
}
.park-profile-card.park-celebration h2,
.park-profile-card.park-celebration p,
.park-profile-card.park-celebration .park-card-meta > span:first-child {
    color: #402d08;
}
body.theme-dark .park-profile-card.park-celebration {
    background: linear-gradient(145deg,#f8e89a 0%,#d8ad3e 52%,#9d7013 100%);
    border-color: #e0bc58;
}
body.theme-dark .park-profile-card.park-celebration h2,
body.theme-dark .park-profile-card.park-celebration p,
body.theme-dark .park-profile-card.park-celebration .park-card-meta > span:first-child {
    color: #2e2107;
}
.status-pill.celebration-on {
    background: #fff2b8;
    color: #775108;
    border-color: #dfb642;
}
body.theme-dark.admin-page .status-pill.celebration-on {
    background: #6a4a09;
    color: #ffeaa0;
    border-color: #b98c27;
}
.celebration-admin-card {
    border-color: #ead17b;
}
body.theme-dark.admin-page .celebration-admin-card {
    border-color: #7e6325;
}

/* ParkPulse v9.1: celebration card readability refinements */
.park-profile-card.park-celebration h2,
.park-profile-card.park-celebration p {
    color: #0B294C !important;
}

/* Keep a ParkPulse-blue status strip on the gold celebration card. */
.park-profile-card.park-celebration .park-card-meta {
    background: #0B294C !important;
    border-color: #173b65 !important;
    border-radius: 3px;
    padding: 4px 6px;
    min-height: 25px;
}
.park-profile-card.park-celebration .park-card-meta > span:first-child {
    color: #ffffff !important;
}

/* Celebration cards use a clearer, stronger park-status badge. */
.park-profile-card.park-celebration .park-open-status {
    padding: 5px 9px;
    font-size: 10px !important;
    letter-spacing: .075em !important;
    border: 1px solid transparent;
    box-shadow: 0 1px 2px rgba(0,0,0,.16);
}
.park-profile-card.park-celebration .park-open-status.open {
    background: #e5f8eb !important;
    color: #075c2b !important;
    border-color: #9eddb3 !important;
}
.park-profile-card.park-celebration .park-open-status.closed {
    background: #fff0ef !important;
    color: #a51f1a !important;
    border-color: #f4aaa5 !important;
}
.park-profile-card.park-celebration .park-open-status.checking,
.park-profile-card.park-celebration .park-open-status.unavailable {
    background: #f4f6f8 !important;
    color: #405167 !important;
    border-color: #cbd4de !important;
}

body.theme-dark .park-profile-card.park-celebration h2,
body.theme-dark .park-profile-card.park-celebration p {
    color: #0B294C !important;
}
body.theme-dark .park-profile-card.park-celebration .park-card-meta {
    background: #0B294C !important;
    border-color: #173b65 !important;
}
body.theme-dark .park-profile-card.park-celebration .park-card-meta > span:first-child {
    color: #ffffff !important;
}

/* ParkPulse v9.2: celebration status row follows the gold card */
.park-profile-card.park-celebration .park-card-meta,
body.theme-dark .park-profile-card.park-celebration .park-card-meta {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
    padding-left: 0;
    padding-right: 0;
}
.park-profile-card.park-celebration .park-card-meta > span:first-child,
body.theme-dark .park-profile-card.park-celebration .park-card-meta > span:first-child {
    color: #0B294C !important;
}

/* ParkPulse v9.3: selectable special PARKS card styles */
.park-profile-card.park-special-style {
    --special-card-border:#d7a928;
    --special-card-bg:linear-gradient(145deg,#fff8cf 0%,#f4d56d 45%,#c99722 100%);
    --special-logo-bg:linear-gradient(145deg,#8c6510 0%,#c7961f 52%,#e4c258 100%);
    --special-logo-border:rgba(92,61,3,.25);
    --special-text:#0B294C;
    --special-shadow:rgba(160,112,15,.28);
    --special-shadow-hover:rgba(160,112,15,.38);
    position:relative;
    border-color:var(--special-card-border) !important;
    background:var(--special-card-bg) !important;
    box-shadow:0 10px 28px var(--special-shadow),inset 0 1px 0 rgba(255,255,255,.65) !important;
}
.park-profile-card.park-special-style:hover {
    border-color:var(--special-card-border) !important;
    box-shadow:0 15px 34px var(--special-shadow-hover),inset 0 1px 0 rgba(255,255,255,.72) !important;
}
.park-profile-card.park-special-style::before {
    content:"";
    position:absolute;
    inset:0;
    border-radius:inherit;
    pointer-events:none;
    background:linear-gradient(115deg,transparent 18%,rgba(255,255,255,.24) 42%,transparent 64%);
    opacity:.8;
}
.park-profile-card.park-special-style .park-logo-box {
    background:var(--special-logo-bg) !important;
    border-bottom-color:var(--special-logo-border) !important;
}
.park-profile-card.park-special-style h2,
.park-profile-card.park-special-style p,
.park-profile-card.park-special-style .park-card-meta > span:first-child,
body.theme-dark .park-profile-card.park-special-style h2,
body.theme-dark .park-profile-card.park-special-style p,
body.theme-dark .park-profile-card.park-special-style .park-card-meta > span:first-child {
    color:var(--special-text) !important;
}
.park-profile-card.park-special-style .park-card-meta,
body.theme-dark .park-profile-card.park-special-style .park-card-meta {
    background:transparent !important;
    border-color:transparent !important;
    box-shadow:none !important;
    padding-left:0;
    padding-right:0;
}
.park-profile-card.park-special-style .park-open-status {
    padding:5px 9px;
    font-size:10px !important;
    letter-spacing:.075em !important;
    border:1px solid transparent;
    box-shadow:0 1px 2px rgba(0,0,0,.16);
}
.park-profile-card.park-special-style .park-open-status.open {
    background:#e5f8eb !important;
    color:#075c2b !important;
    border-color:#9eddb3 !important;
}
.park-profile-card.park-special-style .park-open-status.closed {
    background:#fff0ef !important;
    color:#a51f1a !important;
    border-color:#f4aaa5 !important;
}
.park-profile-card.park-special-style .park-open-status.checking,
.park-profile-card.park-special-style .park-open-status.unavailable {
    background:#f4f6f8 !important;
    color:#405167 !important;
    border-color:#cbd4de !important;
}

/* Gold: keeps the approved ParkPulse celebration look. */
.park-profile-card.park-style-gold {
    --special-card-border:#d7a928;
    --special-card-bg:linear-gradient(145deg,#fff8cf 0%,#f4d56d 45%,#c99722 100%);
    --special-logo-bg:linear-gradient(145deg,#8c6510 0%,#c7961f 52%,#e4c258 100%);
    --special-logo-border:rgba(92,61,3,.25);
    --special-text:#0B294C;
    --special-shadow:rgba(160,112,15,.28);
    --special-shadow-hover:rgba(160,112,15,.38);
}

/* Orange */
.park-profile-card.park-style-orange {
    --special-card-border:#d76f12;
    --special-card-bg:linear-gradient(145deg,#fff0d6 0%,#ffb24d 48%,#e87516 100%);
    --special-logo-bg:linear-gradient(145deg,#a94a09 0%,#df7118 52%,#ffae43 100%);
    --special-logo-border:rgba(116,48,0,.28);
    --special-text:#0B294C;
    --special-shadow:rgba(181,83,13,.25);
    --special-shadow-hover:rgba(181,83,13,.36);
}

/* Light Blue */
.park-profile-card.park-style-light-blue {
    --special-card-border:#75b9dd;
    --special-card-bg:linear-gradient(145deg,#edfaff 0%,#a9ddf4 50%,#64b4dc 100%);
    --special-logo-bg:linear-gradient(145deg,#4b8fb4 0%,#75badc 52%,#bce7f7 100%);
    --special-logo-border:rgba(32,104,143,.24);
    --special-text:#0B294C;
    --special-shadow:rgba(47,132,176,.22);
    --special-shadow-hover:rgba(47,132,176,.34);
}

/* Silver */
.park-profile-card.park-style-silver {
    --special-card-border:#aab3bd;
    --special-card-bg:linear-gradient(145deg,#fafcff 0%,#d9dee4 46%,#aeb7c1 100%);
    --special-logo-bg:linear-gradient(145deg,#8d969f 0%,#bdc5cd 50%,#edf0f3 100%);
    --special-logo-border:rgba(65,76,88,.22);
    --special-text:#0B294C;
    --special-shadow:rgba(74,87,99,.20);
    --special-shadow-hover:rgba(74,87,99,.31);
}
.park-profile-card.park-style-silver::before {
    background:linear-gradient(112deg,transparent 12%,rgba(255,255,255,.65) 35%,transparent 49%,rgba(255,255,255,.32) 68%,transparent 82%);
}

/* Christmas — green/red, with a warm festive center so content stays readable. */
.park-profile-card.park-style-christmas {
    --special-card-border:#185d3a;
    --special-card-bg:linear-gradient(135deg,#0f6338 0%,#1a7444 19%,#f4ead2 20%,#f4ead2 80%,#a71822 81%,#c32631 100%);
    --special-logo-bg:linear-gradient(135deg,#0c5631 0%,#14723e 48%,#9b151f 52%,#c12934 100%);
    --special-logo-border:rgba(83,18,23,.32);
    --special-text:#0B294C;
    --special-shadow:rgba(36,91,57,.25);
    --special-shadow-hover:rgba(137,24,32,.34);
}
.park-profile-card.park-style-christmas::before {
    background:radial-gradient(circle at 12% 18%,rgba(255,255,255,.78) 0 2px,transparent 3px),radial-gradient(circle at 88% 28%,rgba(255,220,104,.8) 0 2px,transparent 3px),radial-gradient(circle at 18% 78%,rgba(255,220,104,.7) 0 2px,transparent 3px),linear-gradient(115deg,transparent 30%,rgba(255,255,255,.22) 48%,transparent 66%);
}

/* Green */
.park-profile-card.park-style-green {
    --special-card-border:#4f9a68;
    --special-card-bg:linear-gradient(145deg,#eaf8ed 0%,#9fd5ad 48%,#5da675 100%);
    --special-logo-bg:linear-gradient(145deg,#357a4d 0%,#5ca574 52%,#a9d9b6 100%);
    --special-logo-border:rgba(24,94,52,.24);
    --special-text:#0B294C;
    --special-shadow:rgba(42,118,70,.22);
    --special-shadow-hover:rgba(42,118,70,.34);
}

/* Red — muted burgundy treatment for parks that are temporarily or permanently closed. */
.park-profile-card.park-style-red {
    --special-card-border:#9b6268;
    --special-card-bg:linear-gradient(145deg,#eadadd 0%,#d5afb4 50%,#b77d84 100%);
    --special-logo-bg:linear-gradient(145deg,#74434a 0%,#915961 52%,#b77d84 100%);
    --special-logo-border:rgba(93,49,56,.20);
    --special-text:#351b20;
    --special-shadow:rgba(103,58,65,.16);
    --special-shadow-hover:rgba(103,58,65,.24);
}
.park-profile-card.park-style-red::before {
    background:linear-gradient(115deg,transparent 28%,rgba(255,255,255,.14) 47%,transparent 66%);
}

/* New Year / New Year's Eve — midnight, gold and silver sparkles. */
.park-profile-card.park-style-new-year {
    --special-card-border:#d3b354;
    --special-card-bg:radial-gradient(circle at 12% 18%,rgba(255,215,94,.58) 0 2px,transparent 3px),radial-gradient(circle at 86% 22%,rgba(238,242,246,.52) 0 2px,transparent 3px),radial-gradient(circle at 74% 72%,rgba(255,215,94,.48) 0 2px,transparent 3px),linear-gradient(145deg,#08172e 0%,#0B294C 52%,#111827 100%);
    --special-logo-bg:linear-gradient(145deg,#071326 0%,#152f50 50%,#5b4a1d 100%);
    --special-logo-border:rgba(226,194,91,.34);
    --special-text:#fff4c4;
    --special-shadow:rgba(5,20,42,.40);
    --special-shadow-hover:rgba(203,164,54,.35);
}
.park-profile-card.park-style-new-year::before {
    background:radial-gradient(circle at 22% 35%,rgba(255,218,103,.85) 0 1.5px,transparent 2.5px),radial-gradient(circle at 68% 16%,rgba(255,255,255,.75) 0 1.5px,transparent 2.5px),radial-gradient(circle at 83% 62%,rgba(255,218,103,.75) 0 1.5px,transparent 2.5px),linear-gradient(115deg,transparent 20%,rgba(255,255,255,.11) 44%,transparent 62%);
}

.park-style-bulk-card {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin-bottom:18px;
}
.park-style-bulk-card h2 { margin:3px 0 5px; }
.park-style-bulk-card p { margin:0; }
.park-style-bulk-form {
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}
.park-style-bulk-form select { min-width:230px; }
body.theme-dark.admin-page .park-style-bulk-card { border-color:#34455a; }
@media(max-width:800px){
    .park-style-bulk-card{align-items:stretch;flex-direction:column;}
    .park-style-bulk-form{align-items:stretch;flex-direction:column;}
    .park-style-bulk-form select,.park-style-bulk-form .yellow-button{width:100%;}
}

/* ParkPulse v9.4: seasonal polish + mobile special-card action area */
/* Christmas: richer evergreen card with a warm red ribbon feel and subtle festive lights. */
.park-profile-card.park-style-christmas {
    --special-card-border:#b9922f;
    --special-card-bg:linear-gradient(145deg,#eef5e8 0%,#dbe9d4 46%,#c9ddc2 100%);
    --special-logo-bg:linear-gradient(145deg,#073f2a 0%,#0c6540 58%,#8e1620 59%,#b51f2b 100%);
    --special-logo-border:rgba(92,22,25,.34);
    --special-text:#0B294C;
    --special-shadow:rgba(12,87,55,.25);
    --special-shadow-hover:rgba(153,29,37,.32);
}
.park-profile-card.park-style-christmas::before {
    background:
      radial-gradient(circle at 8% 12%,#f7d36a 0 2px,transparent 3px),
      radial-gradient(circle at 20% 8%,#ffffff 0 2px,transparent 3px),
      radial-gradient(circle at 34% 13%,#d52d37 0 2px,transparent 3px),
      radial-gradient(circle at 51% 8%,#f7d36a 0 2px,transparent 3px),
      radial-gradient(circle at 69% 13%,#ffffff 0 2px,transparent 3px),
      radial-gradient(circle at 84% 8%,#d52d37 0 2px,transparent 3px),
      linear-gradient(115deg,transparent 28%,rgba(255,255,255,.30) 48%,transparent 68%);
    opacity:.95;
}
.park-profile-card.park-style-christmas .park-card-meta {
    border-top:2px solid rgba(142,22,32,.22) !important;
    padding-top:8px;
}

/* New Year: midnight fireworks, gold flashes and silver sparks. */
.park-profile-card.park-style-new-year {
    --special-card-border:#f0c84f;
    --special-card-bg:
      radial-gradient(circle at 13% 17%,rgba(255,214,74,.95) 0 2px,transparent 3px),
      radial-gradient(circle at 82% 19%,rgba(255,255,255,.90) 0 2px,transparent 3px),
      radial-gradient(circle at 68% 70%,rgba(255,197,61,.80) 0 2px,transparent 3px),
      radial-gradient(circle at 22% 78%,rgba(210,225,244,.80) 0 2px,transparent 3px),
      linear-gradient(145deg,#030914 0%,#071a36 38%,#0B294C 67%,#111827 100%);
    --special-logo-bg:
      radial-gradient(circle at 20% 35%,rgba(255,210,68,.42) 0 3px,transparent 4px),
      radial-gradient(circle at 76% 27%,rgba(255,255,255,.35) 0 2px,transparent 3px),
      linear-gradient(145deg,#020713 0%,#102b50 55%,#5c4612 100%);
    --special-logo-border:rgba(240,200,79,.55);
    --special-text:#fff4c4;
    --special-shadow:rgba(2,8,20,.52);
    --special-shadow-hover:rgba(240,200,79,.46);
}
.park-profile-card.park-style-new-year::before {
    background:
      repeating-conic-gradient(from 4deg at 18% 28%,rgba(255,213,73,.95) 0deg 2deg,transparent 2deg 15deg),
      repeating-conic-gradient(from 10deg at 82% 34%,rgba(238,244,255,.88) 0deg 1.5deg,transparent 1.5deg 18deg),
      repeating-conic-gradient(from 0deg at 68% 78%,rgba(255,190,44,.72) 0deg 1.5deg,transparent 1.5deg 20deg);
    background-size:86px 86px,72px 72px,64px 64px;
    background-repeat:no-repeat;
    background-position:0 4px,100% 12px,72% 100%;
    opacity:.72;
}
.park-profile-card.park-style-new-year:hover::before { opacity:1; }

/* On mobile the button tray must continue the active special card style instead of turning white. */
@media (max-width:620px) {
    .park-profile-card.park-special-style .park-account-actions,
    body.theme-dark .park-profile-card.park-special-style .park-account-actions {
        background:var(--special-card-bg) !important;
        border-top-color:var(--special-logo-border) !important;
    }
    .park-profile-card.park-style-new-year .park-account-actions {
        background:linear-gradient(145deg,#071a36 0%,#0B294C 58%,#111827 100%) !important;
    }
}

/* ParkPulse v9.5: Christmas atmosphere + colourful New Year */
/* Christmas: winter-night, snow, warm lights and gold — no red/green theme. */
.park-profile-card.park-style-christmas {
    --special-card-border:#d9c58a;
    --special-card-bg:linear-gradient(145deg,#fffdf5 0%,#f3f6f8 48%,#dce8f2 100%);
    --special-logo-bg:linear-gradient(145deg,#071a36 0%,#0B294C 58%,#173e67 100%);
    --special-logo-border:rgba(224,199,126,.55);
    --special-text:#0B294C;
    --special-shadow:rgba(11,41,76,.24);
    --special-shadow-hover:rgba(210,178,88,.36);
}
.park-profile-card.park-style-christmas::before {
    background:
      radial-gradient(circle at 9% 11%,rgba(255,255,255,.98) 0 2px,transparent 2.8px),
      radial-gradient(circle at 19% 24%,rgba(255,255,255,.88) 0 1.5px,transparent 2.3px),
      radial-gradient(circle at 34% 9%,rgba(245,215,128,.95) 0 2px,transparent 3px),
      radial-gradient(circle at 49% 18%,rgba(255,255,255,.95) 0 1.7px,transparent 2.5px),
      radial-gradient(circle at 64% 8%,rgba(245,215,128,.92) 0 2px,transparent 3px),
      radial-gradient(circle at 78% 21%,rgba(255,255,255,.92) 0 1.5px,transparent 2.4px),
      radial-gradient(circle at 91% 10%,rgba(245,215,128,.95) 0 2px,transparent 3px),
      linear-gradient(115deg,transparent 28%,rgba(255,255,255,.38) 48%,transparent 68%);
    opacity:.95;
}
.park-profile-card.park-style-christmas .park-card-meta {
    border-top:1px solid rgba(11,41,76,.12) !important;
    padding-top:8px;
}

/* New Year: colourful party glow/confetti, deliberately without fireworks. */
.park-profile-card.park-style-new-year {
    --special-card-border:#d7b95c;
    --special-card-bg:linear-gradient(135deg,#fff0bd 0%,#f5c7dc 24%,#c8d9ff 50%,#c9f0e4 75%,#ead1ff 100%);
    --special-logo-bg:linear-gradient(135deg,#0B294C 0%,#4b2d73 28%,#176d83 55%,#8b4c68 78%,#b68a2e 100%);
    --special-logo-border:rgba(255,225,140,.50);
    --special-text:#0B294C;
    --special-shadow:rgba(82,70,132,.28);
    --special-shadow-hover:rgba(186,120,169,.40);
}
.park-profile-card.park-style-new-year::before {
    background:
      radial-gradient(circle at 10% 14%,rgba(255,214,80,.95) 0 2px,transparent 3px),
      radial-gradient(circle at 24% 8%,rgba(255,111,158,.78) 0 2px,transparent 3px),
      radial-gradient(circle at 40% 17%,rgba(102,196,255,.82) 0 2px,transparent 3px),
      radial-gradient(circle at 57% 8%,rgba(147,229,190,.82) 0 2px,transparent 3px),
      radial-gradient(circle at 72% 18%,rgba(199,137,255,.80) 0 2px,transparent 3px),
      radial-gradient(circle at 89% 10%,rgba(255,218,105,.90) 0 2px,transparent 3px),
      linear-gradient(112deg,transparent 22%,rgba(255,255,255,.30) 43%,transparent 58%,rgba(255,255,255,.18) 73%,transparent 88%);
    background-size:auto;
    background-repeat:repeat;
    background-position:initial;
    opacity:.9;
}
.park-profile-card.park-style-new-year:hover::before { opacity:1; }
@media (max-width:620px) {
    .park-profile-card.park-style-new-year .park-account-actions,
    body.theme-dark .park-profile-card.park-style-new-year .park-account-actions {
        background:linear-gradient(135deg,#fff0bd 0%,#f5c7dc 24%,#c8d9ff 50%,#c9f0e4 75%,#ead1ff 100%) !important;
    }
}

/* ParkPulse v9.6: Christmas — keep the winter/Christmas atmosphere, with richer red + green accents. */
.park-profile-card.park-style-christmas {
    --special-card-border:#c9aa58;
    --special-card-bg:linear-gradient(145deg,#fffdf5 0%,#f5f1df 34%,#dce9df 66%,#f1dfdf 100%);
    --special-logo-bg:linear-gradient(135deg,#0b3b2e 0%,#145844 28%,#0B294C 54%,#7d1f2b 78%,#a82c36 100%);
    --special-logo-border:rgba(238,207,121,.68);
    --special-text:#0B294C;
    --special-shadow:rgba(72,91,65,.28);
    --special-shadow-hover:rgba(169,59,63,.34);
}
.park-profile-card.park-style-christmas::before {
    background:
      radial-gradient(circle at 8% 11%,rgba(255,255,255,.98) 0 2px,transparent 2.8px),
      radial-gradient(circle at 18% 22%,rgba(194,38,51,.90) 0 2px,transparent 3px),
      radial-gradient(circle at 30% 8%,rgba(245,215,128,.96) 0 2px,transparent 3px),
      radial-gradient(circle at 43% 18%,rgba(31,112,75,.90) 0 2px,transparent 3px),
      radial-gradient(circle at 57% 9%,rgba(255,255,255,.95) 0 1.7px,transparent 2.5px),
      radial-gradient(circle at 70% 20%,rgba(194,38,51,.88) 0 2px,transparent 3px),
      radial-gradient(circle at 82% 8%,rgba(245,215,128,.95) 0 2px,transparent 3px),
      radial-gradient(circle at 92% 19%,rgba(31,112,75,.92) 0 2px,transparent 3px),
      linear-gradient(115deg,transparent 27%,rgba(255,255,255,.34) 47%,transparent 67%);
    opacity:.97;
}
.park-profile-card.park-style-christmas .park-card-meta {
    border-top:1px solid rgba(126,31,43,.18) !important;
}
@media (max-width:620px) {
    .park-profile-card.park-style-christmas .park-account-actions,
    body.theme-dark .park-profile-card.park-style-christmas .park-account-actions {
        background:linear-gradient(145deg,#fffdf5 0%,#f5f1df 34%,#dce9df 66%,#f1dfdf 100%) !important;
    }
}

/* ParkPulse v9.7: Christmas now mirrors the approved New Year layout, recoloured in festive red/green. */
.park-profile-card.park-style-christmas {
    --special-card-border:#c7a54a;
    --special-card-bg:linear-gradient(135deg,#f6e8b8 0%,#efb9bd 24%,#c7dfc8 50%,#f3d5d7 75%,#b8d5bd 100%);
    --special-logo-bg:linear-gradient(135deg,#0B294C 0%,#7f2330 28%,#176044 55%,#a33a43 78%,#2f7653 100%);
    --special-logo-border:rgba(255,225,140,.50);
    --special-text:#0B294C;
    --special-shadow:rgba(89,78,62,.28);
    --special-shadow-hover:rgba(151,58,65,.40);
}
.park-profile-card.park-style-christmas::before {
    background:
      radial-gradient(circle at 10% 14%,rgba(255,214,80,.95) 0 2px,transparent 3px),
      radial-gradient(circle at 24% 8%,rgba(190,43,57,.84) 0 2px,transparent 3px),
      radial-gradient(circle at 40% 17%,rgba(45,132,86,.86) 0 2px,transparent 3px),
      radial-gradient(circle at 57% 8%,rgba(224,74,83,.80) 0 2px,transparent 3px),
      radial-gradient(circle at 72% 18%,rgba(61,145,98,.84) 0 2px,transparent 3px),
      radial-gradient(circle at 89% 10%,rgba(255,218,105,.90) 0 2px,transparent 3px),
      linear-gradient(112deg,transparent 22%,rgba(255,255,255,.30) 43%,transparent 58%,rgba(255,255,255,.18) 73%,transparent 88%);
    background-size:auto;
    background-repeat:repeat;
    background-position:initial;
    opacity:.9;
}
.park-profile-card.park-style-christmas:hover::before { opacity:1; }
.park-profile-card.park-style-christmas .park-card-meta {
    border-top:1px solid rgba(11,41,76,.12) !important;
    padding-top:8px;
}
@media (max-width:620px) {
    .park-profile-card.park-style-christmas .park-account-actions,
    body.theme-dark .park-profile-card.park-style-christmas .park-account-actions {
        background:linear-gradient(135deg,#f6e8b8 0%,#efb9bd 24%,#c7dfc8 50%,#f3d5d7 75%,#b8d5bd 100%) !important;
    }
}

/* ParkPulse v10.0: refined animated celebration details */
@keyframes ppCelebrationTwinkle {
    0%,100% { opacity:.45; filter:brightness(1); }
    45% { opacity:1; filter:brightness(1.2); }
    60% { opacity:.62; filter:brightness(1.05); }
}
@keyframes ppCelebrationShimmer {
    0% { background-position:-180% 0; }
    100% { background-position:180% 0; }
}
@keyframes ppCelebrationColourGlow {
    0%,100% { opacity:.58; filter:saturate(1) brightness(1); }
    35% { opacity:.95; filter:saturate(1.15) brightness(1.08); }
    70% { opacity:.72; filter:saturate(1.08) brightness(1.04); }
}

/* Gold: the card shading stays completely static; only the stars twinkle. */
.park-profile-card.park-style-gold::before {
    background:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='113' height='89' viewBox='0 0 113 89'%3E%3Cg fill='%23fff8c9'%3E%3Cpath d='M14 7l1.6 4.4L20 13l-4.4 1.6L14 19l-1.6-4.4L8 13l4.4-1.6z'/%3E%3Cpath d='M92 18l1.2 3.3 3.3 1.2-3.3 1.2-1.2 3.3-1.2-3.3-3.3-1.2 3.3-1.2z'/%3E%3Cpath d='M47 68l1.5 4.1 4.1 1.5-4.1 1.5-1.5 4.1-1.5-4.1-4.1-1.5 4.1-1.5z'/%3E%3C/g%3E%3C/svg%3E") repeat;
    background-size:171px 137px;
    opacity:.30;
    animation:ppGoldStarsOnly 5.4s ease-in-out infinite;
}
@keyframes ppGoldStarsOnly {
    0%,15%,100% { opacity:.22; filter:drop-shadow(0 0 0 rgba(255,240,140,0)); }
    21% { opacity:.92; filter:drop-shadow(0 0 4px rgba(255,240,140,.95)); }
    27% { opacity:.28; filter:drop-shadow(0 0 1px rgba(255,240,140,.20)); }
    52% { opacity:.34; }
    59% { opacity:1; filter:drop-shadow(0 0 5px rgba(255,247,180,.95)); }
    66% { opacity:.26; filter:drop-shadow(0 0 0 rgba(255,240,140,0)); }
    83% { opacity:.48; }
}

/* Silver: a slow metallic light sweep. */
.park-profile-card.park-style-silver::before {
    background:linear-gradient(112deg,transparent 18%,rgba(255,255,255,.10) 31%,rgba(255,255,255,.78) 42%,rgba(255,255,255,.16) 50%,transparent 62%);
    background-size:220% 100%;
    animation:ppCelebrationShimmer 6.8s ease-in-out infinite;
}

/* Orange, Light Blue and Green: very restrained moving sheen. */
.park-profile-card.park-style-orange::before,
.park-profile-card.park-style-light-blue::before,
.park-profile-card.park-style-green::before {
    background:linear-gradient(112deg,transparent 24%,rgba(255,255,255,.08) 37%,rgba(255,255,255,.30) 46%,transparent 58%);
    background-size:220% 100%;
    animation:ppCelebrationShimmer 8.5s ease-in-out infinite;
}

/* Christmas: several differently spaced snow fields with irregular drift and a long cycle. */
.park-profile-card.park-style-christmas::after {
    content:"";
    position:absolute;
    inset:0;
    border-radius:inherit;
    pointer-events:none;
    background-image:
      radial-gradient(circle,rgba(255,255,255,.98) 0 2.1px,transparent 2.8px),
      radial-gradient(circle,rgba(255,250,225,.90) 0 1.35px,transparent 2px),
      radial-gradient(circle,rgba(255,255,255,.76) 0 .9px,transparent 1.6px),
      radial-gradient(circle,rgba(255,255,255,.62) 0 .65px,transparent 1.35px),
      radial-gradient(circle,rgba(255,245,220,.72) 0 1.1px,transparent 1.8px);
    background-size:53px 71px,79px 97px,37px 61px,101px 83px,67px 109px;
    background-position:3px -82px,41px -137px,18px -51px,72px -114px,11px -176px;
    opacity:.74;
    animation:ppChristmasIrregularSnow 21.7s linear infinite;
}
.park-profile-card.park-style-christmas::before {
    animation:ppChristmasMerryGlow 4.2s ease-in-out infinite;
}
@keyframes ppChristmasIrregularSnow {
    0%   { background-position:3px -82px,41px -137px,18px -51px,72px -114px,11px -176px; }
    13%  { background-position:9px -25px,35px -68px,23px 8px,66px -47px,17px -103px; }
    31%  { background-position:-2px 61px,48px 34px,15px 93px,79px 42px,7px 11px; }
    47%  { background-position:13px 142px,37px 128px,27px 171px,69px 116px,21px 103px; }
    64%  { background-position:5px 229px,53px 223px,19px 254px,83px 209px,9px 207px; }
    82%  { background-position:16px 324px,39px 327px,30px 343px,73px 301px,24px 318px; }
    100% { background-position:8px 418px,56px 431px,21px 447px,87px 392px,13px 426px; }
}
@keyframes ppChristmasMerryGlow {
    0%,100% { opacity:.55; filter:saturate(1) brightness(1); }
    35% { opacity:.92; filter:saturate(1.12) brightness(1.07); }
    62% { opacity:.68; filter:saturate(1.03) brightness(1.02); }
    78% { opacity:.96; filter:saturate(1.16) brightness(1.08); }
}

/* New Year: back to the approved subtle colourful glints; no firework bursts. */
.park-profile-card.park-style-new-year::before {
    animation:ppCelebrationColourGlow 3.6s ease-in-out infinite;
}

/* Respect visitors who prefer reduced motion. */
@media (prefers-reduced-motion: reduce) {
    .park-profile-card.park-special-style::before,
    .park-profile-card.park-special-style::after {
        animation:none !important;
    }
}

/* ParkPulse v10.1: New Year — one small random firework at a time, no pulsing backdrop. */
.park-profile-card.park-style-new-year::before {
    animation:none !important;
}
.park-profile-card.park-style-new-year .pp-new-year-firework {
    position:absolute;
    left:var(--fw-x,50%);
    top:var(--fw-y,42%);
    width:1px;
    height:1px;
    pointer-events:none;
    z-index:3;
    opacity:0;
    transform:translate(-50%,-50%);
    animation:ppNewYearFirework .72s ease-out forwards;
}
.park-profile-card.park-style-new-year .pp-new-year-firework .pp-fw-spark {
    position:absolute;
    left:0;
    top:0;
    width:4px;
    height:8px;
    border-radius:999px;
    background:var(--fw-color,#fff3a6);
    box-shadow:0 0 3px color-mix(in srgb,var(--fw-color,#fff3a6) 75%,transparent);
    transform-origin:50% 100%;
    transform:rotate(var(--fw-angle)) translateY(-3px) scaleY(.35);
    opacity:0;
    animation:ppNewYearSpark .62s ease-out forwards;
}
@keyframes ppNewYearFirework {
    0% { opacity:0; }
    8% { opacity:1; }
    78% { opacity:1; }
    100% { opacity:0; }
}
@keyframes ppNewYearSpark {
    0% {
        opacity:0;
        transform:rotate(var(--fw-angle)) translateY(-2px) scaleY(.2);
    }
    18% { opacity:.95; }
    100% {
        opacity:0;
        transform:rotate(var(--fw-angle)) translateY(-18px) scaleY(.72);
    }
}
@media (prefers-reduced-motion: reduce) {
    .park-profile-card.park-style-new-year .pp-new-year-firework,
    .park-profile-card.park-style-new-year .pp-new-year-firework .pp-fw-spark {
        animation:none !important;
        display:none !important;
    }
}

/* Christmas snowflakes v10.4 — real glyph flakes */
.park-profile-card.park-style-christmas .park-snowflake,
.park-profile-card.park-style-christmas .christmas-snowflake {
  position:absolute;
  top:-12%;
  z-index:3;
  pointer-events:none;
  color:rgba(255,255,255,.94);
  text-shadow:0 1px 2px rgba(11,41,76,.18);
  line-height:1;
  will-change:transform,opacity;
  animation-name:parkpulseChristmasSnowfall;
  animation-timing-function:linear;
  animation-iteration-count:infinite;
}

@keyframes parkpulseChristmasSnowfall {
  0%   { transform:translate3d(0,-14%,0) rotate(0deg); opacity:0; }
  8%   { opacity:.95; }
  45%  { transform:translate3d(var(--snow-drift-mid, 10px),48%,0) rotate(150deg); opacity:.92; }
  100% { transform:translate3d(var(--snow-drift-end, -14px),118%,0) rotate(360deg); opacity:.15; }
}

@media (prefers-reduced-motion: reduce) {
  .park-profile-card.park-style-christmas .park-snowflake,
  .park-profile-card.park-style-christmas .christmas-snowflake {
    animation:none !important;
    display:none !important;
  }
}


/* ParkPulse Ideas v10.6 */
.ideas-shell{max-width:1180px}.ideas-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;background:linear-gradient(135deg,#0b294c,#123d6d);color:#fff;border-radius:20px;padding:34px 36px;margin-bottom:22px;box-shadow:0 14px 34px rgba(11,41,76,.15)}.ideas-kicker{display:block;color:#ffc928;font-size:.76rem;font-weight:900;letter-spacing:.14em;margin-bottom:8px}.ideas-hero h1{margin:0 0 8px;font-size:2.2rem}.ideas-hero p{margin:0;max-width:760px;color:#dbe8f5;line-height:1.6}.ideas-submit-button{white-space:nowrap}.ideas-flash{margin-bottom:18px}.ideas-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:10px 0 18px}.ideas-toolbar>div:first-child{color:#587087}.ideas-toolbar strong{color:#0b294c}.ideas-sort{display:flex;gap:8px}.ideas-sort a{padding:8px 13px;border-radius:999px;background:#edf2f7;color:#0b294c;text-decoration:none;font-weight:800;font-size:.84rem}.ideas-sort a.active{background:#0b294c;color:#fff}.ideas-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.idea-card{background:#fff;border:1px solid #dfe7ef;border-radius:17px;padding:22px;box-shadow:0 7px 22px rgba(11,41,76,.08);display:flex;flex-direction:column;min-height:260px}.idea-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.idea-category{font-size:.73rem;font-weight:900;letter-spacing:.07em;color:#60768a;text-transform:uppercase}.idea-status{border-radius:999px;padding:6px 10px;font-size:.72rem;font-weight:900;white-space:nowrap}.idea-status-under_consideration{background:#eef2f7;color:#42566b}.idea-status-planned{background:#fff2bf;color:#6d5200}.idea-status-in_development{background:#dff1ff;color:#075987}.idea-status-implemented{background:#dff6e6;color:#176337}.idea-status-not_planned{background:#f5e8e8;color:#8b3434}.idea-card h2{color:#0b294c;font-size:1.25rem;margin:0 0 10px}.idea-card>p{color:#52697c;line-height:1.58;margin:0 0 22px;flex:1}.idea-card-footer{border-top:1px solid #e8edf2;padding-top:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#728394;font-size:.83rem}.idea-card-footer strong{color:#0b294c}.idea-vote-form{margin:0}.idea-vote-button{border:1px solid #d9e1e8;background:#f8fafc;color:#0b294c;border-radius:999px;padding:7px 11px;text-decoration:none;display:inline-flex;gap:5px;align-items:center;cursor:pointer;font:inherit}.idea-vote-button.voted{background:#fff2b8;border-color:#f2c733}.ideas-empty{background:#fff;border:1px dashed #cfdbe5;border-radius:18px;padding:48px;text-align:center}.ideas-empty>span{font-size:2.2rem}.ideas-empty h2{color:#0b294c}.idea-modal{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;padding:20px}.idea-modal.open{display:flex}.idea-modal-backdrop{position:absolute;inset:0;background:rgba(5,20,38,.72);backdrop-filter:blur(3px)}.idea-modal-dialog{position:relative;width:min(620px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:20px;padding:28px;box-shadow:0 24px 70px rgba(0,0,0,.35)}.idea-modal-close{position:absolute;right:16px;top:12px;border:0;background:transparent;color:#52697c;font-size:2rem;cursor:pointer}.idea-modal-dialog h2{color:#0b294c;margin:0 0 8px}.idea-modal-dialog>p{color:#617487;line-height:1.5}.idea-form{display:grid;gap:15px;margin-top:20px}.idea-form label{display:grid;gap:7px;font-weight:800;color:#0b294c}.idea-form input,.idea-form select,.idea-form textarea{width:100%;box-sizing:border-box;border:1px solid #cad6e1;border-radius:10px;padding:11px 12px;font:inherit;background:#fff;color:#17324e}.idea-form textarea{resize:vertical}.idea-form-note{font-size:.82rem;color:#6c7f91}.idea-modal-open{overflow:hidden}.ideas-admin-table .idea-admin-copy{min-width:300px;max-width:520px}.idea-admin-copy p{white-space:normal;line-height:1.45;margin:8px 0 0;color:#5c6f82}.idea-admin-status-form select{min-width:160px}.theme-dark .idea-card,.theme-dark .ideas-empty,.theme-dark .idea-modal-dialog{background:#102b49;border-color:#294966;color:#e9f0f7}.theme-dark .idea-card h2,.theme-dark .idea-card-footer strong,.theme-dark .ideas-toolbar strong,.theme-dark .ideas-empty h2,.theme-dark .idea-modal-dialog h2,.theme-dark .idea-form label{color:#fff}.theme-dark .idea-card>p,.theme-dark .idea-card-footer,.theme-dark .idea-modal-dialog>p,.theme-dark .idea-form-note{color:#b8c7d6}.theme-dark .idea-card-footer{border-top-color:#294966}.theme-dark .idea-vote-button,.theme-dark .ideas-sort a{background:#173a60;border-color:#31587b;color:#fff}.theme-dark .ideas-sort a.active{background:#ffc928;color:#0b294c}.theme-dark .idea-vote-button.voted{background:#6b5a16;border-color:#d4aa18}.theme-dark .idea-form input,.theme-dark .idea-form select,.theme-dark .idea-form textarea{background:#0d2440;border-color:#355678;color:#fff}.theme-dark .ideas-toolbar>div:first-child{color:#a9bbca}
@media(max-width:760px){.ideas-hero{align-items:flex-start;flex-direction:column;padding:25px 22px}.ideas-hero h1{font-size:1.8rem}.ideas-grid{grid-template-columns:1fr}.ideas-toolbar{align-items:flex-start;flex-direction:column}.idea-card{min-height:0}.idea-card-top{align-items:flex-start;flex-direction:column}.idea-card-footer{align-items:flex-start}.idea-modal{padding:12px}.idea-modal-dialog{padding:24px 18px}.ideas-empty{padding:34px 20px}}

/* ==========================================================
   ParkPulse v10.7 — responsive & cross-device polish
   Final canonical safeguards for desktop, tablet and mobile.
   ========================================================== */

/* Prevent media and long user/content strings from causing page overflow. */
img,video,svg,canvas{max-width:100%;}
.news-copy,.article-body,.search-result,.notification-item,.comment-content,
.idea-card,.profile-panel,.park-hub-panel,.admin-card,.editor-main,.editor-side{
    min-width:0;
}
.article-body,.news-copy,.search-result,.notification-item,.idea-card,
.comment-body,.profile-panel,.admin-card{
    overflow-wrap:anywhere;
}

/* Stronger keyboard focus without changing the normal visual design. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
    outline:3px solid rgba(255,201,40,.72);
    outline-offset:3px;
}

/* Keep controls usable when labels/content become unusually long. */
button,.yellow-button,.button-link,input,select,textarea{max-width:100%;}
button,.yellow-button,.button-link{overflow-wrap:anywhere;}

/* Desktop/tablet layout hardening. */
.content-grid,.personal-grid,.editor-form,.park-hub-grid,.ideas-grid{min-width:0;}
.sidebar,.profile-panel,.editor-side{min-width:0;}
.admin-table-wrap{max-width:100%;}
.admin-table th,.admin-table td{vertical-align:top;}
.admin-table td{overflow-wrap:anywhere;}

/* Ideas page refinements. */
.ideas-hero>div{min-width:0;}
.idea-card-footer{flex-wrap:wrap;}
.idea-vote-button{min-height:38px;justify-content:center;}
.idea-modal-dialog{overscroll-behavior:contain;}
.idea-modal-close{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;}
.idea-modal-close:hover{background:rgba(11,41,76,.07);}
.theme-dark .idea-modal-close:hover{background:rgba(255,255,255,.08);}

@media (max-width:900px){
    .page-shell{padding-top:38px;padding-bottom:58px;}
    .content-grid{gap:28px;}
    .admin-shell,.editor-shell{min-width:0;}
    .admin-hero-actions{flex-wrap:wrap;}
}

@media (max-width:650px){
    /* Mobile browser hardening and consistent touch targets. */
    html{-webkit-text-size-adjust:100%;}
    body{min-width:0;}
    .page-shell{padding:30px 14px 48px;}
    .brand-wrap{height:138px;padding:14px;}
    .brand-logo{max-height:112px;max-width:min(360px,88vw);}

    .nav-inner{padding-left:10px;padding-right:10px;scroll-snap-type:x proximity;}
    .nav-inner a,.nav-inner .welcome{scroll-snap-align:start;}
    .nav-inner a{min-height:52px;display:inline-flex;align-items:center;}

    /* 16px prevents unwanted zoom when focusing fields in mobile Safari. */
    input,select,textarea,
    .editor-form input,.editor-form select,.editor-form textarea,
    .auth-card input,.profile-panel input,.profile-panel textarea,.search-form input,
    .idea-form input,.idea-form select,.idea-form textarea{
        font-size:16px!important;
    }
    input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea{
        min-height:44px;
    }
    button,.yellow-button,.button-link,.small-button,.admin-ghost-button{
        min-height:44px;
    }

    /* Generic two-column/flex action rows should wrap rather than overflow. */
    .admin-hero-actions,.moderation-actions,.comment-tools,.article-access-actions{
        flex-wrap:wrap;
    }

    /* Safer tables on phones while retaining the desktop table structure. */
    .admin-table-wrap{
        margin-left:-2px;
        margin-right:-2px;
        padding-bottom:4px;
        scrollbar-width:thin;
    }
    .admin-table th,.admin-table td{white-space:normal;}

    /* Public content cards. */
    .simple-news-grid article,.news-card,.idea-card{min-width:0;}
    .simple-news-grid h3,.news-copy h2,.idea-card h2{overflow-wrap:anywhere;}

    /* Ideas: full-width primary action, flexible filters and footer. */
    .ideas-hero{gap:20px;border-radius:16px;}
    .ideas-submit-button,.ideas-hero>.button-link{width:100%;text-align:center;justify-content:center;}
    .ideas-toolbar{width:100%;}
    .ideas-sort{width:100%;flex-wrap:wrap;}
    .ideas-sort a{flex:1 1 auto;text-align:center;min-height:40px;display:inline-flex;align-items:center;justify-content:center;}
    .idea-card{padding:18px;}
    .idea-card-footer{width:100%;gap:10px;}
    .idea-card-footer>span{flex:1 1 170px;}
    .idea-vote-form{margin-left:auto;}
    .idea-modal{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));}
    .idea-modal-dialog{
        width:100%;
        max-height:calc(100dvh - 20px);
        border-radius:16px;
        padding:24px 18px max(22px,env(safe-area-inset-bottom));
    }
    .idea-form .yellow-button{width:100%;}
}

@media (max-width:390px){
    .page-shell{padding-left:11px;padding-right:11px;}
    .section-heading h1,.section-heading h2{font-size:25px;}
    .ideas-hero{padding:22px 17px;}
    .ideas-hero h1{font-size:1.65rem;}
    .idea-card{padding:16px;}
    .idea-card-footer{align-items:stretch;}
    .idea-vote-form,.idea-vote-button{width:100%;}
}

/* Respect reduced-motion preference across decorative UI, not only celebration effects. */
@media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;}
}

/* ==========================================================
   11. ParkPulse Appearance Collection (v10.8)
   ========================================================== */
.theme-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.theme-choice-preview.pulse-blue-preview{background:#eaf6ff;color:#0b294c;border-color:#bddcf3}.pulse-blue-preview>i{background:linear-gradient(180deg,#0b294c 0 35%,#2196e8 35% 55%,#dff3ff 55%)}
.theme-choice-preview.sunset-preview{background:#fff4df;color:#17324e;border-color:#efd6aa}.sunset-preview>i{background:linear-gradient(180deg,#0b294c 0 35%,#e98b45 35% 55%,#fff0d5 55%)}
.theme-choice-preview.midnight-preview{background:#070f1d;color:#edf7ff;border-color:#234a70}.midnight-preview>i{background:linear-gradient(180deg,#030914 0 35%,#21a4ff 35% 48%,#ffc928 48% 58%,#101d31 58%)}
.theme-choice-preview.after-dark-preview{background:#171127;color:#f6efff;border-color:#513b72}.after-dark-preview>i{background:linear-gradient(180deg,#120c22 0 35%,#9b5cff 35% 52%,#ffc928 52% 61%,#26173e 61%)}
.theme-choice-preview.adventure-preview{background:#f7f0df;color:#173b31;border-color:#d9cda9}.adventure-preview>i{background:linear-gradient(180deg,#173b31 0 35%,#0b294c 35% 52%,#d9bd63 52% 61%,#f1e7cc 61%)}
.theme-choice-preview.coaster-red-preview{background:#f4f5f7;color:#0b294c;border-color:#d9dde3}.coaster-red-preview>i{background:linear-gradient(180deg,#0b294c 0 35%,#c94b4b 35% 55%,#f1f2f4 55%)}

/* Light-family themes: preserve the existing component layout and recolour its surfaces. */
body.theme-pulse-blue{--navy:#0b294c;--navy2:#174f7b;--blue:#168fe1;--yellow:#ffc928;--ink:#102d45;--muted:#58778e;--line:#cfe5f3;--bg:#eaf6ff;background:#eaf6ff}
body.theme-pulse-blue main{background:#eaf6ff} body.theme-pulse-blue .site-header{background:#0b294c}
body.theme-sunset{--navy:#173652;--navy2:#31516c;--blue:#d9783f;--yellow:#f4b642;--ink:#3b3028;--muted:#7f6b5b;--line:#ead8bd;--bg:#fff4df;background:#fff4df}
body.theme-sunset main{background:#fff4df} body.theme-sunset .site-header{background:#173652} body.theme-sunset .main-nav{background:#e98b45}
body.theme-adventure{--navy:#173b31;--navy2:#275548;--blue:#315f50;--yellow:#d9bd63;--ink:#26382f;--muted:#68766c;--line:#ddd3b8;--bg:#f7f0df;background:#f7f0df}
body.theme-adventure main{background:#f7f0df} body.theme-adventure .site-header{background:#173b31} body.theme-adventure .main-nav{background:#d9bd63}
body.theme-coaster-red{--navy:#0b294c;--navy2:#173b64;--blue:#c94b4b;--yellow:#e45a52;--ink:#172a3d;--muted:#697583;--line:#dfe3e8;--bg:#f3f5f7;background:#f3f5f7}
body.theme-coaster-red main{background:#f3f5f7} body.theme-coaster-red .site-header{background:#0b294c} body.theme-coaster-red .main-nav{background:#c94b4b} body.theme-coaster-red .main-nav a,body.theme-coaster-red .main-nav .welcome{color:#fff}

body.theme-pulse-blue :is(.news-card,.article-card,.profile-panel,.auth-card,.park-profile-card,.park-community-card,.park-hours-card,.park-news-card,.wait-workspace,.wait-times-column,.wait-park-column,.wait-park-card,.wait-ride,.notification-item,.comment,.comment-card,.comment-form,.passport-panel,.passport-card,.passport-map-panel,.search-result,.search-card,.article-main,.article-shell,.article-content,.article-body,.side-card,.idea-card,.ideas-empty),
body.theme-sunset :is(.news-card,.article-card,.profile-panel,.auth-card,.park-profile-card,.park-community-card,.park-hours-card,.park-news-card,.wait-workspace,.wait-times-column,.wait-park-column,.wait-park-card,.wait-ride,.notification-item,.comment,.comment-card,.comment-form,.passport-panel,.passport-card,.passport-map-panel,.search-result,.search-card,.article-main,.article-shell,.article-content,.article-body,.side-card,.idea-card,.ideas-empty),
body.theme-adventure :is(.news-card,.article-card,.profile-panel,.auth-card,.park-profile-card,.park-community-card,.park-hours-card,.park-news-card,.wait-workspace,.wait-times-column,.wait-park-column,.wait-park-card,.wait-ride,.notification-item,.comment,.comment-card,.comment-form,.passport-panel,.passport-card,.passport-map-panel,.search-result,.search-card,.article-main,.article-shell,.article-content,.article-body,.side-card,.idea-card,.ideas-empty),
body.theme-coaster-red :is(.news-card,.article-card,.profile-panel,.auth-card,.park-profile-card,.park-community-card,.park-hours-card,.park-news-card,.wait-workspace,.wait-times-column,.wait-park-column,.wait-park-card,.wait-ride,.notification-item,.comment,.comment-card,.comment-form,.passport-panel,.passport-card,.passport-map-panel,.search-result,.search-card,.article-main,.article-shell,.article-content,.article-body,.side-card,.idea-card,.ideas-empty){background:#fff;border-color:var(--line)}
body.theme-pulse-blue :is(input,textarea,select){border-color:#bfd9e9} body.theme-sunset :is(input,textarea,select){border-color:#dec9aa} body.theme-adventure :is(input,textarea,select){border-color:#d2c7aa} body.theme-coaster-red :is(input,textarea,select){border-color:#d5dae0}

/* Midnight and After Dark inherit every tested Night-mode component rule, then receive their own palette. */
body.theme-midnight{--ink:#edf6ff;--muted:#9eb2c7;--line:#203a56;--bg:#07111e;--navy:#e4f2ff;--navy2:#10243a;--blue:#21a4ff;--yellow:#ffc928;background:#030914;color-scheme:dark}
body.theme-midnight main{background:#030914} body.theme-midnight .site-header{background:#020712} body.theme-midnight .main-nav{background:#168fe1}
body.theme-midnight :is(.news-card,.article-card,.profile-panel,.auth-card,.park-profile-card,.park-community-card,.park-hours-card,.park-news-card,.wait-workspace,.wait-times-column,.wait-park-column,.wait-park-card,.wait-ride,.notification-item,.comment,.comment-card,.comment-form,.passport-panel,.passport-card,.passport-map-panel,.search-result,.search-card,.article-main,.article-shell,.article-content,.article-body,.side-card,.idea-card,.ideas-empty){background:#0b1828!important;border-color:#203a56!important}
body.theme-after-dark{--ink:#f4effc;--muted:#b9aacd;--line:#493663;--bg:#130d20;--navy:#f0e6ff;--navy2:#281942;--blue:#a16cff;--yellow:#ffc928;background:#0d0818;color-scheme:dark}
body.theme-after-dark main{background:#0d0818} body.theme-after-dark .site-header{background:#0a0613} body.theme-after-dark .main-nav{background:#7f4bd1}
body.theme-after-dark :is(.news-card,.article-card,.profile-panel,.auth-card,.park-profile-card,.park-community-card,.park-hours-card,.park-news-card,.wait-workspace,.wait-times-column,.wait-park-column,.wait-park-card,.wait-ride,.notification-item,.comment,.comment-card,.comment-form,.passport-panel,.passport-card,.passport-map-panel,.search-result,.search-card,.article-main,.article-shell,.article-content,.article-body,.side-card,.idea-card,.ideas-empty){background:#1b122b!important;border-color:#493663!important}
body.theme-after-dark :is(.yellow-button,.button-link){box-shadow:0 0 18px rgba(255,201,40,.12)}

@media(max-width:640px){.theme-choice-grid{grid-template-columns:1fr}}

/* ==========================================================
   12. Appearance Polish & Theme Framework Cleanup (v10.9)
   ----------------------------------------------------------
   Central semantic tokens and final cross-component theme pass.
   This layer intentionally sits last so every appearance can
   recolour the same UI without duplicating page-specific CSS.
   ========================================================== */

/* Semantic theme tokens. Classic defaults. */
body {
    --theme-page: #f7f9fb;
    --theme-surface: #ffffff;
    --theme-surface-soft: #f3f6f9;
    --theme-surface-raised: #ffffff;
    --theme-text: #12233a;
    --theme-text-soft: #6d7886;
    --theme-heading: #0b294c;
    --theme-border: #e1e7ed;
    --theme-border-strong: #ccd6df;
    --theme-header: #0b294c;
    --theme-nav: #ffc928;
    --theme-nav-text: #0b294c;
    --theme-link: #1778d4;
    --theme-input: #ffffff;
    --theme-input-text: #12233a;
    --theme-hover: #f0f4f8;
    --theme-shadow: 0 8px 24px rgba(10,36,71,.075);
    --theme-shadow-hover: 0 14px 32px rgba(10,36,71,.13);
    --theme-accent: var(--yellow);
    --theme-accent-text: #0b294c;
}

body.theme-pulse-blue {
    --theme-page:#eaf6ff; --theme-surface:#ffffff; --theme-surface-soft:#f3faff;
    --theme-surface-raised:#ffffff; --theme-text:#102d45; --theme-text-soft:#58778e;
    --theme-heading:#0b294c; --theme-border:#cfe5f3; --theme-border-strong:#b6d6ea;
    --theme-header:#0b294c; --theme-nav:#ffc928; --theme-nav-text:#0b294c;
    --theme-link:#168fe1; --theme-input:#ffffff; --theme-input-text:#102d45;
    --theme-hover:#dff2ff; --theme-shadow:0 8px 24px rgba(15,92,143,.09);
    --theme-shadow-hover:0 14px 32px rgba(15,92,143,.15); --theme-accent:#ffc928;
    --theme-accent-text:#0b294c;
}
body.theme-sunset {
    --theme-page:#fff4df; --theme-surface:#fffdf8; --theme-surface-soft:#fff7ea;
    --theme-surface-raised:#ffffff; --theme-text:#3b3028; --theme-text-soft:#7f6b5b;
    --theme-heading:#173652; --theme-border:#ead8bd; --theme-border-strong:#d9c19e;
    --theme-header:#173652; --theme-nav:#e98b45; --theme-nav-text:#ffffff;
    --theme-link:#c96832; --theme-input:#fffdf8; --theme-input-text:#3b3028;
    --theme-hover:#fff0d8; --theme-shadow:0 8px 24px rgba(91,57,29,.08);
    --theme-shadow-hover:0 14px 32px rgba(91,57,29,.14); --theme-accent:#f4b642;
    --theme-accent-text:#173652;
}
body.theme-adventure {
    --theme-page:#f7f0df; --theme-surface:#fffdf7; --theme-surface-soft:#f2ecdc;
    --theme-surface-raised:#ffffff; --theme-text:#26382f; --theme-text-soft:#68766c;
    --theme-heading:#173b31; --theme-border:#ddd3b8; --theme-border-strong:#c8bc9b;
    --theme-header:#173b31; --theme-nav:#d9bd63; --theme-nav-text:#173b31;
    --theme-link:#315f50; --theme-input:#fffdf7; --theme-input-text:#26382f;
    --theme-hover:#eee7d4; --theme-shadow:0 8px 24px rgba(46,67,50,.08);
    --theme-shadow-hover:0 14px 32px rgba(46,67,50,.14); --theme-accent:#d9bd63;
    --theme-accent-text:#173b31;
}
body.theme-coaster-red {
    --theme-page:#f3f5f7; --theme-surface:#ffffff; --theme-surface-soft:#f7f8fa;
    --theme-surface-raised:#ffffff; --theme-text:#172a3d; --theme-text-soft:#697583;
    --theme-heading:#0b294c; --theme-border:#dfe3e8; --theme-border-strong:#cbd1d8;
    --theme-header:#0b294c; --theme-nav:#c94b4b; --theme-nav-text:#ffffff;
    --theme-link:#b83e3e; --theme-input:#ffffff; --theme-input-text:#172a3d;
    --theme-hover:#f4e9e9; --theme-shadow:0 8px 24px rgba(61,38,43,.08);
    --theme-shadow-hover:0 14px 32px rgba(61,38,43,.14); --theme-accent:#c94b4b;
    --theme-accent-text:#ffffff;
}
body.theme-dark {
    --theme-page:#0c1420; --theme-surface:#151f2e; --theme-surface-soft:#111c2a;
    --theme-surface-raised:#182536; --theme-text:#e9eef5; --theme-text-soft:#aeb9c8;
    --theme-heading:#eef5fc; --theme-border:#2a384b; --theme-border-strong:#3a4b61;
    --theme-header:#081d37; --theme-nav:#ffc928; --theme-nav-text:#081d37;
    --theme-link:#69b7ff; --theme-input:#0f1927; --theme-input-text:#eef4fb;
    --theme-hover:#1b2a3d; --theme-shadow:0 8px 24px rgba(0,0,0,.16);
    --theme-shadow-hover:0 14px 32px rgba(0,0,0,.24); --theme-accent:#ffc928;
    --theme-accent-text:#081d37;
}
body.theme-midnight {
    --theme-page:#030914; --theme-surface:#0b1828; --theme-surface-soft:#081321;
    --theme-surface-raised:#102033; --theme-text:#edf6ff; --theme-text-soft:#9eb2c7;
    --theme-heading:#f2f8ff; --theme-border:#203a56; --theme-border-strong:#315574;
    --theme-header:#020712; --theme-nav:#168fe1; --theme-nav-text:#ffffff;
    --theme-link:#5cbcff; --theme-input:#071321; --theme-input-text:#edf6ff;
    --theme-hover:#11263b; --theme-shadow:0 8px 26px rgba(0,0,0,.28);
    --theme-shadow-hover:0 14px 34px rgba(0,0,0,.38); --theme-accent:#ffc928;
    --theme-accent-text:#07182d;
}
body.theme-after-dark {
    --theme-page:#0d0818; --theme-surface:#1b122b; --theme-surface-soft:#160e24;
    --theme-surface-raised:#241637; --theme-text:#f4effc; --theme-text-soft:#b9aacd;
    --theme-heading:#faf6ff; --theme-border:#493663; --theme-border-strong:#654b83;
    --theme-header:#0a0613; --theme-nav:#7f4bd1; --theme-nav-text:#ffffff;
    --theme-link:#bb91ff; --theme-input:#140c21; --theme-input-text:#f4effc;
    --theme-hover:#291a3d; --theme-shadow:0 8px 26px rgba(0,0,0,.26);
    --theme-shadow-hover:0 14px 34px rgba(0,0,0,.36); --theme-accent:#ffc928;
    --theme-accent-text:#160d26;
}

/* Global canvas, typography and links. */
body, body main, .homepage-shell, .news-page-shell { background:var(--theme-page); color:var(--theme-text); }
body .site-header { background:var(--theme-header); }
body :is(h1,h2,h3,h4,h5,h6,.section-heading h1,.section-heading h2) { color:var(--theme-heading); }
body :is(p,.meta,.muted,.help-text,.stats-sub,.stats-summary,.stats-footnote,.stats-empty) { color:var(--theme-text-soft); }
body a:not(.main-nav a):not(.yellow-button):not(.button-link):not(.register-button) { color:var(--theme-link); }

/* Navigation remains legible for every appearance. */
body .main-nav, body .main-nav .nav-inner { background:var(--theme-nav); }
body .main-nav :is(a,a:visited,.welcome,button,.more-toggle) { color:var(--theme-nav-text) !important; }
body .main-nav a.active { border-bottom-color:var(--theme-heading); }
body.theme-sunset .main-nav a.active,
body.theme-coaster-red .main-nav a.active,
body.theme-midnight .main-nav a.active,
body.theme-after-dark .main-nav a.active { border-bottom-color:#fff; }

/* Unified content surfaces. */
body :is(
    .news-card,.article-card,.profile-panel,.auth-card,.park-profile-card,.park-community-card,
    .park-hours-card,.park-news-card,.wait-workspace,.wait-times-column,.wait-park-column,
    .wait-park-card,.wait-ride,.notification-item,.comment,.comment-card,.comment-form,
    .passport-panel,.passport-card,.passport-map-panel,.search-result,.search-card,.article-main,
    .article-shell,.article-content,.article-body,.article-panel,.for-you-card,.favorite-ride-card,
    .personal-card,.stat-card,.idea-card,.ideas-empty,.park-hub-panel,.admin-card,.editor-main,
    .moderation-item,.quick-actions,.workflow-mini,.activity-row
) {
    background-color:var(--theme-surface) !important;
    color:var(--theme-text);
    border-color:var(--theme-border) !important;
    box-shadow:var(--theme-shadow);
}

/* Soft/secondary surfaces. */
body :is(
    .park-card-meta,.info-panel,.more-menu,.user-actions,.moderation-actions,fieldset,
    .park-facts div,.wait-list,.wait-loading,.profile-stats>div,.wait-stats>div,
    .admin-tabs,.admin-filter-tabs,.format-toolbar,.preview-article
) {
    background-color:var(--theme-surface-soft) !important;
    color:var(--theme-text);
    border-color:var(--theme-border) !important;
}

/* Forms and editors. */
body :is(input,textarea,select,.body-editor) {
    background-color:var(--theme-input) !important;
    color:var(--theme-input-text) !important;
    border-color:var(--theme-border-strong) !important;
}
body :is(input,textarea)::placeholder { color:var(--theme-text-soft); opacity:.82; }
body label, body legend { color:var(--theme-heading); }
body :is(input,textarea,select):focus { border-color:var(--theme-link) !important; box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-link) 16%, transparent); outline:none; }

/* Tables, lists and utility rows. */
body :is(table,th,td,.passport-row,.social-row,.hub-wait-list>div,.community-favorites li,.wait-row) { border-color:var(--theme-border) !important; }
body th { background:var(--theme-surface-soft) !important; color:var(--theme-heading); }
body td { background:var(--theme-surface) !important; color:var(--theme-text); }
body tbody tr:hover td { background:var(--theme-hover) !important; }
body .wait-row { background:var(--theme-surface) !important; color:var(--theme-text) !important; }
body .wait-row:nth-child(even) { background:var(--theme-surface-soft) !important; }
body .wait-row:hover { background:var(--theme-hover) !important; }

/* Repeated hard-coded text colours. */
body :is(
    .park-profile-card strong,.park-profile-card h2,.park-profile-card h3,
    .park-community-card strong,.profile-panel strong,.profile-panel h2,
    .wait-workspace strong,.wait-times-column strong,.notification-item strong,
    .comment strong,.passport-panel strong,.search-result h2,.search-result h3,
    .park-hub-panel h3,.hub-rating-score,.park-hub-title a,.hub-text-link,
    .park-facts strong,.profile-stats strong,.wait-stats strong,.ride-name
) { color:var(--theme-heading) !important; }
body :is(
    .park-profile-card p,.profile-panel p,.notification-item p,.comment p,.passport-panel p,
    .search-result p,.wait-workspace p,.hub-kicker,.park-hub-title span,.hub-loading,
    .park-facts span,.profile-stats span,.wait-stats span,.wait-list-heading span,
    .wait-mini-legend span,.powered,.powered a
) { color:var(--theme-text-soft) !important; }

/* Buttons: neutral actions inherit the active appearance; primary actions retain accent identity. */
body :is(
    .park-button,.passport-button,.wishlist-button,.passholder-button,.favorite-button:not(.active),
    .neutral-action,.small-button:not(.yellow-button),.button-link:not(.yellow-button),
    .edit-toggle,.reply-toggle,.preview-toggle,.more-toggle,.more-menu button,
    .park-community-card-button,.admin-tabs a,.admin-filter-tabs a,.format-toolbar button
) {
    background:var(--theme-surface-soft) !important;
    border-color:var(--theme-border-strong) !important;
    color:var(--theme-heading) !important;
}
body :is(
    .park-button,.passport-button,.wishlist-button,.passholder-button,.favorite-button:not(.active),
    .neutral-action,.small-button:not(.yellow-button),.edit-toggle,.reply-toggle,.preview-toggle,
    .more-toggle,.more-menu button,.park-community-card-button,.admin-tabs a,.admin-filter-tabs a,
    .format-toolbar button
):hover { background:var(--theme-hover) !important; border-color:var(--theme-link) !important; }
body :is(.yellow-button,a.yellow-button,button.yellow-button) {
    background:var(--theme-accent) !important;
    border-color:var(--theme-accent) !important;
    color:var(--theme-accent-text) !important;
}

/* Theme selector itself must look correct while previewing another appearance. */
body .theme-choice-preview { box-shadow:none; }
body .theme-choice input:focus-visible + .theme-choice-preview { outline:3px solid color-mix(in srgb,var(--theme-link) 35%, transparent); outline-offset:2px; }
body .theme-choice input:checked + .theme-choice-preview { border-color:var(--theme-accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-accent) 22%, transparent); }

/* Park logo area stays branded and consistent; card body follows the chosen appearance. */
body .park-profile-card .park-logo-box { background:#0b294c !important; border-bottom-color:rgba(255,255,255,.12) !important; }

/* Admin: remove residual Classic-only islands and hover states. */
body.admin-page :is(.admin-shell,.editor-shell) { color:var(--theme-text); }
body.admin-page :is(.admin-card-head,.admin-table-wrap,.article-manager,.moderation-card) { border-color:var(--theme-border) !important; }
body.admin-page :is(.admin-card-head h2,.admin-card-head h3,.editor-main h2,.editor-side h3,.stats-section-head h2) { color:var(--theme-heading) !important; }
body.admin-page :is(.admin-card p,.admin-card small,.moderation-item small,.activity-row small,.admin-ranking small) { color:var(--theme-text-soft) !important; }
body.admin-page .admin-pagination { background:var(--theme-surface-soft); border-color:var(--theme-border); }
body.admin-page .admin-pagination a { background:var(--theme-surface); color:var(--theme-heading); border-color:var(--theme-border); }
body.admin-page .admin-pagination a:hover { background:var(--theme-hover); }
body.admin-page .admin-pagination .current { background:var(--theme-accent); color:var(--theme-accent-text); border-color:var(--theme-accent); }

/* Footer and modal shells. */
body .site-footer { border-top-color:var(--theme-border); }
body :is(.idea-modal-dialog,.modal-dialog,.passport-map-modal) { background:var(--theme-surface) !important; color:var(--theme-text); border-color:var(--theme-border) !important; }

/* Dark-family browser autofill. */
body.theme-dark input:-webkit-autofill,
body.theme-dark input:-webkit-autofill:hover,
body.theme-dark input:-webkit-autofill:focus {
    -webkit-text-fill-color:var(--theme-input-text);
    -webkit-box-shadow:0 0 0 1000px var(--theme-input) inset;
}

/* Fallback for browsers without color-mix support: focus stays visible. */
@supports not (color:color-mix(in srgb, red 10%, blue)) {
    body :is(input,textarea,select):focus { box-shadow:0 0 0 3px rgba(23,120,212,.16); }
}


/* ParkPulse v11.0 — Exclusive foundation (visually dormant until gating is enabled). */
.theme-choice-locked{opacity:.62;cursor:not-allowed}
.theme-choice-locked input{pointer-events:none}
.exclusive-badge{display:inline-flex;align-items:center;margin-top:5px;padding:3px 7px;border-radius:999px;font-size:.64rem;font-style:normal;font-weight:800;letter-spacing:.06em;background:var(--pp-accent,#ffd54a);color:#0b294c}
.exclusive-admin-foundation{margin-top:20px;padding-top:18px;border-top:1px solid var(--pp-border,#dfe5ec)}

/* ParkPulse v11.1 — mobile PARKS action tray follows the active appearance. */
@media (max-width: 620px) {
    body.theme-dark .park-profile-card:not(.park-special-style) .park-account-actions {
        background: #151f2e !important;
        border-top-color: #2a384b !important;
    }
}

/* ParkPulse v11.2 — definitive mobile PARKS tray + logo fit fix.
   The action tray now follows the active theme on every non-special card,
   instead of depending on a specific dark-mode class. Desktop is untouched. */
@media (max-width: 620px) {
    body .park-profile-card:not(.park-special-style) .park-account-actions {
        background: var(--theme-surface) !important;
        background-color: var(--theme-surface) !important;
        border-top-color: var(--theme-border) !important;
    }

    /* Keep every park logo comfortably inside the mobile logo panel,
       regardless of whether the source logo is very wide or very tall. */
    body .park-profile-card .park-logo-box {
        height: 112px !important;
        min-height: 112px !important;
        padding: 14px 20px !important;
        overflow: hidden !important;
    }
    body .park-profile-card .park-logo-box img {
        width: auto !important;
        height: auto !important;
        max-width: 88% !important;
        max-height: 82px !important;
        object-fit: contain !important;
        object-position: center !important;
        margin: 0 auto !important;
    }
}

@media (max-width: 390px) {
    body .park-profile-card .park-logo-box {
        height: 104px !important;
        min-height: 104px !important;
        padding: 13px 18px !important;
    }
    body .park-profile-card .park-logo-box img {
        max-width: 86% !important;
        max-height: 76px !important;
    }
}


/* ParkPulse v11.5 — mobile PARKS logo safe-area refinement.
   Desktop remains unchanged. On phones every logo gets a larger, consistent
   breathing space so tall and wide brand marks stay fully inside the panel. */
@media (max-width: 620px) {
    body .park-profile-card .park-logo-box {
        height: 112px !important;
        min-height: 112px !important;
        padding: 18px 24px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        overflow: hidden !important;
    }
    body .park-profile-card .park-logo-box img {
        display: block !important;
        width: auto !important;
        height: auto !important;
        max-width: 80% !important;
        max-height: 68px !important;
        object-fit: contain !important;
        object-position: center !important;
        margin: 0 auto !important;
        transform: none !important;
    }

    /* Tall / almost-square marks need a little more vertical breathing room. */
    body .park-profile-card#park-5 .park-logo-box img,
    body .park-profile-card#park-334 .park-logo-box img {
        max-width: 72% !important;
        max-height: 62px !important;
    }
}

@media (max-width: 390px) {
    body .park-profile-card .park-logo-box {
        height: 106px !important;
        min-height: 106px !important;
        padding: 18px 22px !important;
    }
    body .park-profile-card .park-logo-box img {
        max-width: 78% !important;
        max-height: 64px !important;
    }
    body .park-profile-card#park-5 .park-logo-box img,
    body .park-profile-card#park-334 .park-logo-box img {
        max-width: 70% !important;
        max-height: 58px !important;
    }
}


/* ParkPulse v11.6 — mobile PARKS logo sizing for the loose /assets logo files.
   Desktop remains untouched. The current PARKS page uses the individual logo
   files directly from /assets; mobile gets a stricter safe area so tall marks
   such as EPCOT and Epic Universe never touch the panel edges. */
@media (max-width: 620px) {
    body .park-profile-card .park-logo-box {
        height: 112px !important;
        min-height: 112px !important;
        padding: 22px 28px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        overflow: hidden !important;
    }
    body .park-profile-card .park-logo-box img {
        display: block !important;
        width: auto !important;
        height: auto !important;
        max-width: 74% !important;
        max-height: 60px !important;
        object-fit: contain !important;
        object-position: center !important;
        margin: 0 auto !important;
        transform: none !important;
    }

    /* These two source marks are visually taller/heavier than most other logos. */
    body .park-profile-card#park-5 .park-logo-box img,
    body .park-profile-card#park-334 .park-logo-box img {
        max-width: 58% !important;
        max-height: 50px !important;
    }
}

@media (max-width: 390px) {
    body .park-profile-card .park-logo-box {
        height: 106px !important;
        min-height: 106px !important;
        padding: 22px 26px !important;
    }
    body .park-profile-card .park-logo-box img {
        max-width: 70% !important;
        max-height: 56px !important;
    }
    body .park-profile-card#park-5 .park-logo-box img,
    body .park-profile-card#park-334 .park-logo-box img {
        max-width: 55% !important;
        max-height: 47px !important;
    }
}

/* ParkPulse v12.4 PARKS performance: defer off-screen card rendering. */
@supports (content-visibility: auto) {
  .park-profile-card {
    content-visibility: auto;
    contain-intrinsic-size: 360px 430px;
  }
}

/* ==========================================================
   ParkPulse v12.5 — cross-device colour/theme consistency
   07-09-2026
   Final overrides for profile CTA, register CTA, Gold Celebration
   on mobile and After Dark PARKS appearance.
   ========================================================== */

/* Home account CTA: yellow button always carries ParkPulse navy text. */
body .home-profile-button,
body .home-profile-button:visited,
body .home-profile-button:hover,
body .home-profile-button:focus-visible {
    color: #0B294C !important;
}

/* REGISTER is a dark ParkPulse CTA: its label must never inherit nav yellow/accent. */
body .main-nav .register-button,
body .main-nav .register-button:visited,
body .main-nav .register-button:hover,
body .main-nav .register-button:focus-visible,
body.theme-dark .main-nav .register-button,
body.theme-midnight .main-nav .register-button,
body.theme-after-dark .main-nav .register-button {
    background: #0B294C !important;
    color: #ffffff !important;
    border-bottom-color: transparent !important;
}

/* Celebration cards must keep their selected appearance in every site theme.
   This intentionally wins over the legacy Midnight/After Dark generic card rule. */
body .park-profile-card.park-special-style {
    background: var(--special-card-bg) !important;
    background-color: transparent !important;
    border-color: var(--special-card-border) !important;
    color: var(--special-text) !important;
    box-shadow: 0 10px 28px var(--special-shadow), inset 0 1px 0 rgba(255,255,255,.65) !important;
}
body .park-profile-card.park-special-style:hover {
    border-color: var(--special-card-border) !important;
    box-shadow: 0 15px 34px var(--special-shadow-hover), inset 0 1px 0 rgba(255,255,255,.72) !important;
}
body .park-profile-card.park-special-style .park-logo-box {
    background: var(--special-logo-bg) !important;
    background-color: transparent !important;
    border-bottom-color: var(--special-logo-border) !important;
}
body .park-profile-card.park-special-style :is(h2,p),
body .park-profile-card.park-special-style .park-card-meta > span:first-child {
    color: var(--special-text) !important;
}
body .park-profile-card.park-special-style .park-card-meta {
    background: transparent !important;
    background-color: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

/* Gold mobile: keep the full gold surface through the action tray and remove
   the white/theme-coloured seam that appeared at the bottom of the card. */
@media (max-width: 620px) {
    body .park-profile-card.park-style-gold,
    body.theme-dark .park-profile-card.park-style-gold,
    body.theme-midnight .park-profile-card.park-style-gold,
    body.theme-after-dark .park-profile-card.park-style-gold {
        background: var(--special-card-bg) !important;
        border-color: var(--special-card-border) !important;
    }
    body .park-profile-card.park-style-gold .park-account-actions {
        background: linear-gradient(145deg,#f5d76f 0%,#e0b744 52%,#c99722 100%) !important;
        background-color: transparent !important;
        border-top-color: rgba(92,61,3,.25) !important;
    }
}

/* After Dark PARKS: use the purple night palette throughout normal park cards,
   including the logo panel and mobile action tray. Celebration cards above keep
   their own deliberately selected appearance. */
body.theme-after-dark .park-profile-card:not(.park-special-style) {
    background: var(--theme-surface) !important;
    border-color: var(--theme-border) !important;
    color: var(--theme-text) !important;
}
body.theme-after-dark .park-profile-card:not(.park-special-style) .park-logo-box {
    background: linear-gradient(145deg,#10091d 0%,#1d1130 54%,#321b50 100%) !important;
    border-bottom-color: #493663 !important;
}
body.theme-after-dark .park-profile-card:not(.park-special-style) .park-card-meta {
    background: var(--theme-surface) !important;
    border-color: var(--theme-border) !important;
    color: var(--theme-text-soft) !important;
}
body.theme-after-dark .park-profile-card:not(.park-special-style) :is(h2,h3,strong) {
    color: var(--theme-heading) !important;
}
body.theme-after-dark .park-profile-card:not(.park-special-style) p {
    color: var(--theme-text-soft) !important;
}
body.theme-after-dark .park-profile-card:not(.park-special-style) .park-account-actions {
    background: var(--theme-surface) !important;
    border-top-color: var(--theme-border) !important;
}
body.theme-after-dark .park-profile-card:not(.park-special-style) :is(.park-button,.passport-button,.wishlist-button,.passholder-button,.favorite-button:not(.active)) {
    background: var(--theme-surface-soft) !important;
    border-color: var(--theme-border-strong) !important;
    color: var(--theme-heading) !important;
}
body.theme-after-dark .park-profile-card:not(.park-special-style) :is(.park-button,.passport-button,.wishlist-button,.passholder-button,.favorite-button:not(.active)):hover {
    background: var(--theme-hover) !important;
    border-color: var(--theme-link) !important;
}

/* ==========================================================
   ParkPulse v12.6 — Appearance parity pass
   Dark Mode is the reference implementation for component coverage.
   All alternate appearances use the same semantic component map;
   only their palette tokens differ.
   ========================================================== */

/* Logged-out REGISTER: ParkPulse yellow CTA, compact like the surrounding nav. */
body .main-nav .register-button,
body .main-nav .register-button:visited,
body .main-nav .register-button:hover,
body .main-nav .register-button:focus-visible,
body.theme-dark .main-nav .register-button,
body.theme-midnight .main-nav .register-button,
body.theme-after-dark .main-nav .register-button,
body.theme-pulse-blue .main-nav .register-button,
body.theme-sunset .main-nav .register-button,
body.theme-adventure .main-nav .register-button,
body.theme-coaster-red .main-nav .register-button {
    background: #FFC928 !important;
    color: #0B294C !important;
    border: 0 !important;
    border-bottom: 0 !important;
    border-radius: 7px !important;
    min-height: 34px !important;
    padding: 8px 12px !important;
    margin: 0 2px !important;
    line-height: 1 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: .035em !important;
    box-shadow: none !important;
}
body .main-nav .register-button:hover,
body .main-nav .register-button:focus-visible {
    background: #FFD34E !important;
    color: #0B294C !important;
}

/* HOME logged-in profile CTA: always yellow with genuine ParkPulse navy copy. */
body .home-profile-button,
body .home-profile-button:link,
body .home-profile-button:visited,
body .home-profile-button:hover,
body .home-profile-button:active,
body .home-profile-button:focus-visible,
body.theme-dark .home-profile-button,
body.theme-midnight .home-profile-button,
body.theme-after-dark .home-profile-button,
body.theme-pulse-blue .home-profile-button,
body.theme-sunset .home-profile-button,
body.theme-adventure .home-profile-button,
body.theme-coaster-red .home-profile-button {
    background: #FFC928 !important;
    color: #0B294C !important;
    border-color: #FFC928 !important;
    -webkit-text-fill-color: #0B294C !important;
    text-decoration: none !important;
}

/* Appearance parity: the same component families that are complete in Dark Mode
   now resolve through semantic tokens in every appearance. */
body :is(
    .side-card,.park-logo-box,.profile-header,.passport-hero,.wait-column-hero,.wait-hero,
    .park-info-card,.park-community-card.static,.ideas-toolbar,.idea-modal-dialog,
    .account-card,.account-section,.settings-card,.notification-panel,.search-panel,
    .park-hub-panel,.park-hub-card,.community-panel,.comments-panel
) {
    border-color: var(--theme-border) !important;
}

body :is(
    .side-card,.profile-header,.passport-hero,.account-card,.account-section,.settings-card,
    .notification-panel,.search-panel,.park-hub-card,.community-panel,.comments-panel
) {
    background-color: var(--theme-surface) !important;
    color: var(--theme-text) !important;
    box-shadow: var(--theme-shadow);
}

body :is(
    .side-card h2,.side-card h3,.profile-header h1,.profile-header h2,
    .account-card h2,.account-section h2,.settings-card h2,.notification-panel h2,
    .search-panel h2,.community-panel h2,.comments-panel h2
) { color: var(--theme-heading) !important; }

body :is(
    .side-card p,.profile-header p,.account-card p,.account-section p,.settings-card p,
    .notification-panel p,.search-panel p,.community-panel p,.comments-panel p
) { color: var(--theme-text-soft) !important; }

/* Navigation uses the same state logic as Dark Mode for every Appearance. */
body .main-nav .nav-inner :is(a,a:visited,.welcome,button,.more-toggle) {
    color: var(--theme-nav-text) !important;
}
body .main-nav .nav-inner a:hover,
body .main-nav .nav-inner a:focus-visible {
    background: color-mix(in srgb, var(--theme-nav-text) 8%, transparent);
}

/* PARKS follows Dark Mode's complete surface hierarchy in every Appearance.
   Celebration cards remain explicitly excluded and preserve their own artwork. */
body .park-profile-card:not(.park-special-style) {
    background: var(--theme-surface) !important;
    color: var(--theme-text) !important;
    border-color: var(--theme-border) !important;
    box-shadow: var(--theme-shadow) !important;
}
body .park-profile-card:not(.park-special-style):hover {
    border-color: var(--theme-border-strong) !important;
    box-shadow: var(--theme-shadow-hover) !important;
}
body .park-profile-card:not(.park-special-style) .park-card-meta {
    background: var(--theme-surface-soft) !important;
    color: var(--theme-text-soft) !important;
    border-color: var(--theme-border) !important;
}
body .park-profile-card:not(.park-special-style) :is(h2,h3,strong) {
    color: var(--theme-heading) !important;
}
body .park-profile-card:not(.park-special-style) p {
    color: var(--theme-text-soft) !important;
}
body .park-profile-card:not(.park-special-style) .park-account-actions {
    background: var(--theme-surface) !important;
    border-top-color: var(--theme-border) !important;
}
body .park-profile-card:not(.park-special-style) :is(
    .park-button,.passport-button,.wishlist-button,.passholder-button,.favorite-button:not(.active)
) {
    background: var(--theme-surface-soft) !important;
    color: var(--theme-heading) !important;
    border-color: var(--theme-border-strong) !important;
}
body .park-profile-card:not(.park-special-style) :is(
    .park-button,.passport-button,.wishlist-button,.passholder-button,.favorite-button:not(.active)
):hover {
    background: var(--theme-hover) !important;
    border-color: var(--theme-link) !important;
}

/* Keep ParkPulse logo panels dark/navy in light appearances, while dark-family
   appearances get a palette-matched dark panel like the reference Dark Mode. */
body.theme-pulse-blue .park-profile-card:not(.park-special-style) .park-logo-box,
body.theme-sunset .park-profile-card:not(.park-special-style) .park-logo-box,
body.theme-adventure .park-profile-card:not(.park-special-style) .park-logo-box,
body.theme-coaster-red .park-profile-card:not(.park-special-style) .park-logo-box,
body:not([class*="theme-"]) .park-profile-card:not(.park-special-style) .park-logo-box {
    background: #0B294C !important;
    border-bottom-color: rgba(255,255,255,.12) !important;
}
body.theme-dark .park-profile-card:not(.park-special-style) .park-logo-box {
    background: #101925 !important;
    border-bottom-color: #2A384B !important;
}
body.theme-midnight .park-profile-card:not(.park-special-style) .park-logo-box {
    background: linear-gradient(145deg,#030914 0%,#071321 55%,#10243a 100%) !important;
    border-bottom-color: #203A56 !important;
}
body.theme-after-dark .park-profile-card:not(.park-special-style) .park-logo-box {
    background: linear-gradient(145deg,#10091d 0%,#1d1130 54%,#321b50 100%) !important;
    border-bottom-color: #493663 !important;
}

/* Dark-family form/autofill parity (Midnight + After Dark now mirror Dark Mode). */
body.theme-midnight input:-webkit-autofill,
body.theme-midnight input:-webkit-autofill:hover,
body.theme-midnight input:-webkit-autofill:focus,
body.theme-after-dark input:-webkit-autofill,
body.theme-after-dark input:-webkit-autofill:hover,
body.theme-after-dark input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--theme-input-text) !important;
    -webkit-box-shadow: 0 0 0 1000px var(--theme-input) inset !important;
    transition: background-color 9999s ease-out 0s;
}

/* Mobile uses the exact same semantic colours as desktop. Only layout/size changes. */
@media (max-width: 620px) {
    body .main-nav .register-button {
        min-height: 32px !important;
        padding: 7px 10px !important;
        font-size: 11px !important;
    }
    body .park-profile-card:not(.park-special-style) .park-account-actions {
        background: var(--theme-surface) !important;
        border-top-color: var(--theme-border) !important;
    }
    body .home-profile-button {
        color: #0B294C !important;
        -webkit-text-fill-color: #0B294C !important;
    }
}


/* ==========================================================
   ParkPulse v12.7 — account benefits refresh
   ========================================================== */
.account-signup-time {
    margin: -4px 0 18px !important;
    padding: 11px 12px;
    border-radius: 8px;
    background: rgba(246,196,0,.10);
    border: 1px solid rgba(246,196,0,.26);
    color: #f4f7fb !important;
    font-size: 12px;
    line-height: 1.45;
    text-align: center;
}
.account-signup-time strong { color: var(--yellow); }

.register-benefits-panel {
    margin: 0 0 22px;
    padding: 18px 18px 16px;
    border: 1px solid #dce5ee;
    border-radius: 12px;
    background: #f7f9fc;
}
.register-benefits-kicker {
    display: block;
    margin-bottom: 7px;
    color: #0B294C;
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .13em;
}
.register-benefits-panel > p {
    margin: 0 0 12px;
    color: #526273;
    font-size: 13px;
    line-height: 1.5;
}
.register-benefits-list {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 8px 14px;
    list-style: none;
    margin: 0 0 14px;
    padding: 0;
}
.register-benefits-list li {
    position: relative;
    padding-left: 19px;
    color: #213750;
    font-size: 12px;
    line-height: 1.4;
}
.register-benefits-list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 0;
    color: #d8a900;
    font-weight: 950;
}
.register-benefits-time {
    padding-top: 11px;
    border-top: 1px solid #dce5ee;
    color: #0B294C;
    font-size: 12px;
    font-weight: 750;
    text-align: center;
}

.article-access-benefits {
    width: min(100%,360px);
    margin: -8px auto 12px;
    padding: 0;
    list-style: none;
    text-align: left;
}
.article-access-benefits li {
    position: relative;
    padding: 5px 0 5px 22px;
    color: #edf3f9;
    font-size: 12px;
    line-height: 1.35;
}
.article-access-benefits li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--yellow);
    font-weight: 950;
}
.article-access-time {
    width: min(100%,360px);
    margin: 0 auto 18px;
    padding: 9px 11px;
    border-radius: 8px;
    background: rgba(246,196,0,.10);
    border: 1px solid rgba(246,196,0,.22);
    color: #fff;
    font-size: 11px;
    line-height: 1.4;
}
.article-access-time strong { color: var(--yellow); }

body.theme-dark .register-benefits-panel,
body.theme-midnight .register-benefits-panel,
body.theme-after-dark .register-benefits-panel {
    background: var(--theme-card, #10263f) !important;
    border-color: var(--theme-line, #29445f) !important;
}
body.theme-dark .register-benefits-kicker,
body.theme-midnight .register-benefits-kicker,
body.theme-after-dark .register-benefits-kicker,
body.theme-dark .register-benefits-list li,
body.theme-midnight .register-benefits-list li,
body.theme-after-dark .register-benefits-list li,
body.theme-dark .register-benefits-time,
body.theme-midnight .register-benefits-time,
body.theme-after-dark .register-benefits-time { color: var(--theme-text, #f4f7fb) !important; }
body.theme-dark .register-benefits-panel > p,
body.theme-midnight .register-benefits-panel > p,
body.theme-after-dark .register-benefits-panel > p { color: var(--theme-muted, #b9c8d8) !important; }
body.theme-dark .register-benefits-time,
body.theme-midnight .register-benefits-time,
body.theme-after-dark .register-benefits-time { border-top-color: var(--theme-line, #29445f); }

@media(max-width:650px) {
    .account-benefits li { padding-top: 7px; padding-bottom: 7px; }
    .account-signup-time { margin-bottom: 15px !important; }
    .register-benefits-panel { padding: 15px; }
    .register-benefits-list { grid-template-columns: 1fr; gap: 7px; }
    .article-access-modal { max-height: calc(100vh - 30px); overflow-y: auto; }
    .article-access-benefits { margin-top: -6px; }
}


/* ==========================================================
   ParkPulse v12.8 — HOME sidebar readability + account overlay parity
   ========================================================== */
/* HOME sidebar keeps its original navy cards in every Appearance. */
body .sidebar .side-card {
    background: #0B294C !important;
    color: #fff !important;
}
body .sidebar .account-teaser > h3,
body .sidebar .trending-card > h3,
body .sidebar .side-card > h3 {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
body .sidebar .account-teaser > p { color: #d5deea !important; }
body .sidebar .account-benefits li { color: #e1e9f2 !important; }
body .sidebar .account-signup-time { color: #f4f7fb !important; }
body .sidebar .trending-card > h3 { background: #081f3a !important; }
body .sidebar .trending-card .trending-row { background: #0B294C !important; }
body .sidebar .trending-card .trending-row:hover { background: #12365e !important; }
body .sidebar .trending-card .trending-row span { color: #fff !important; }

/* Registration encouragement overlay intentionally mirrors the HOME account card. */
body .article-access-modal.account-teaser {
    width: min(100%, 500px);
    padding: 24px;
    background: #0B294C !important;
    border: 0;
    border-radius: 12px;
    box-shadow: 0 10px 26px rgba(10,36,71,.13);
    color: #fff !important;
    text-align: left;
}
body .article-access-modal.account-teaser h2 {
    margin: 0 0 10px;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    font-size: 18px;
}
body .article-access-modal.account-teaser > p {
    margin: 0;
    max-width: none;
    color: #d5deea !important;
    font-size: 14px;
    line-height: 1.55;
}
body .article-access-modal .article-access-benefits {
    width: 100%;
    margin: 16px 0 20px;
}
body .article-access-modal .article-access-benefits li {
    padding: 9px 0 9px 24px;
    border-top: 1px solid rgba(255,255,255,.10);
    color: #e1e9f2 !important;
    font-size: 13px;
    line-height: 1.4;
}
body .article-access-modal .article-access-time {
    width: 100%;
    margin: -4px 0 18px !important;
    color: #f4f7fb !important;
    text-align: center;
}
body .article-access-modal .article-access-actions {
    display: block;
}
body .article-access-modal .article-access-actions .yellow-button {
    display: block;
    width: 100%;
    text-align: center;
}
body .article-access-modal .article-register-link {
    display: block;
    margin-top: 12px;
    color: #8fc8ff !important;
    text-align: center;
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
}
body .article-access-modal .article-access-close { color: #fff !important; }

@media(max-width:650px) {
    body .article-access-modal.account-teaser { padding: 22px 18px 18px; }
    body .article-access-modal .article-access-benefits li { padding-top: 7px; padding-bottom: 7px; }
}


/* ==========================================================
   ParkPulse v12.11 — Appearance polish pass 1
   Keep navy hero headings readable in every appearance and
   make standard PARKS metadata/actions theme-consistent.
   Celebration cards remain untouched.
   ========================================================== */

/* These four headers live on deliberately dark/navy hero surfaces.
   Appearance link/heading colours must never override their white copy. */
body .wait-column-title h2,
body .ideas-hero h1,
body .profile-header h1,
body .admin-hero h1 {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

/* Standard PARKS cards: Location + live park status belong to the same
   themed information strip. Celebration cards keep their own styling. */
body .park-profile-card:not(.park-special-style) .park-card-meta {
    background: var(--theme-surface-soft) !important;
    border-color: var(--theme-border) !important;
    color: var(--theme-text-soft) !important;
}
body .park-profile-card:not(.park-special-style) .park-card-meta > span:first-child {
    color: var(--theme-text-soft) !important;
}

/* Neutral/checking/unavailable park status follows the card appearance.
   OPEN/CLOSED retain their semantic green/red status colours. */
body .park-profile-card:not(.park-special-style) .park-open-status.checking,
body .park-profile-card:not(.park-special-style) .park-open-status.unavailable {
    background: var(--theme-surface) !important;
    border-color: var(--theme-border-strong) !important;
    color: var(--theme-text-soft) !important;
}

/* Selected Passport actions use the same semantic tint in every appearance. */
body .park-profile-card:not(.park-special-style) .passport-button.active,
body .passport-hero.active {
    background: #dff3e6 !important;
    border-color: #76b98b !important;
    color: #176b36 !important;
    -webkit-text-fill-color: #176b36 !important;
}
body .park-profile-card:not(.park-special-style) .wishlist-button.active,
body .wishlist-hero.active {
    background: #f8e3e7 !important;
    border-color: #d99aa7 !important;
    color: #94364d !important;
    -webkit-text-fill-color: #94364d !important;
}

/* Slightly deeper tints on dark-family appearances for comfortable contrast. */
body.theme-dark .park-profile-card:not(.park-special-style) .passport-button.active,
body.theme-midnight .park-profile-card:not(.park-special-style) .passport-button.active,
body.theme-after-dark .park-profile-card:not(.park-special-style) .passport-button.active,
body.theme-dark .passport-hero.active,
body.theme-midnight .passport-hero.active,
body.theme-after-dark .passport-hero.active {
    background: #183d2a !important;
    border-color: #3f8a5c !important;
    color: #bce7c9 !important;
    -webkit-text-fill-color: #bce7c9 !important;
}
body.theme-dark .park-profile-card:not(.park-special-style) .wishlist-button.active,
body.theme-midnight .park-profile-card:not(.park-special-style) .wishlist-button.active,
body.theme-after-dark .park-profile-card:not(.park-special-style) .wishlist-button.active,
body.theme-dark .wishlist-hero.active,
body.theme-midnight .wishlist-hero.active,
body.theme-after-dark .wishlist-hero.active {
    background: #472431 !important;
    border-color: #925166 !important;
    color: #f2c3cf !important;
    -webkit-text-fill-color: #f2c3cf !important;
}

/* Mobile inherits exactly the same appearance/status colours as desktop. */
@media (max-width: 620px) {
    body .wait-column-title h2,
    body .ideas-hero h1,
    body .profile-header h1,
    body .admin-hero h1 {
        color: #fff !important;
        -webkit-text-fill-color: #fff !important;
    }
}


/* ==========================================================
   ParkPulse v12.12 — PARKS meta/action surface parity
   Standard park-card-meta must use exactly the same themed
   background surface as park-account-actions in every Appearance.
   Celebration/special-style cards remain untouched.
   ========================================================== */
body .park-profile-card:not(.park-special-style) .park-card-meta {
    background: var(--theme-surface) !important;
    background-color: var(--theme-surface) !important;
    border-color: var(--theme-border) !important;
    color: var(--theme-text-soft) !important;
}


/* ==========================================================
   ParkPulse v12.14 — Theme navigation + Pulse Blue polish
   ========================================================== */

/* AFTER DARK
   Menu bar follows the purple side/background palette.
   Navigation copy stays white. */
body.theme-after-dark .site-nav,
body.theme-after-dark .main-nav,
body.theme-after-dark .top-nav,
body.theme-after-dark header nav {
    background: #1b122b !important;
    border-color: #493663 !important;
}
body.theme-after-dark .site-nav a,
body.theme-after-dark .main-nav a,
body.theme-after-dark .top-nav a,
body.theme-after-dark header nav a,
body.theme-after-dark .site-nav button,
body.theme-after-dark .main-nav button,
body.theme-after-dark .top-nav button {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
body.theme-after-dark .site-nav a:hover,
body.theme-after-dark .main-nav a:hover,
body.theme-after-dark .top-nav a:hover,
body.theme-after-dark header nav a:hover,
body.theme-after-dark .site-nav a.active,
body.theme-after-dark .main-nav a.active,
body.theme-after-dark .top-nav a.active {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

/* MIDNIGHT
   Navigation follows the light-blue side accent, with black text. */
body.theme-midnight .site-nav,
body.theme-midnight .main-nav,
body.theme-midnight .top-nav,
body.theme-midnight header nav {
    background: #9fd8ff !important;
    border-color: #7fc5f3 !important;
}
body.theme-midnight .site-nav a,
body.theme-midnight .main-nav a,
body.theme-midnight .top-nav a,
body.theme-midnight header nav a,
body.theme-midnight .site-nav button,
body.theme-midnight .main-nav button,
body.theme-midnight .top-nav button {
    color: #0a0a0a !important;
    -webkit-text-fill-color: #0a0a0a !important;
}
body.theme-midnight .site-nav a:hover,
body.theme-midnight .main-nav a:hover,
body.theme-midnight .top-nav a:hover,
body.theme-midnight header nav a:hover,
body.theme-midnight .site-nav a.active,
body.theme-midnight .main-nav a.active,
body.theme-midnight .top-nav a.active {
    color: #0a0a0a !important;
    -webkit-text-fill-color: #0a0a0a !important;
}

/* PULSE BLUE
   Replace yellow accent surfaces with light blue and black copy.
   Keep this scoped to accent/CTA components so semantic status colours
   (green/red) and celebrations remain intact. */
body.theme-pulse-blue :is(
    .btn-primary,
    .button-primary,
    .cta-button,
    .register-button,
    .create-account-button,
    .hero-cta,
    .sidebar-cta,
    .account-cta,
    .article-read-more,
    .read-more,
    .nav-cta,
    .filter-chip.active,
    .tab-button.active,
    .pagination .active,
    .badge-accent,
    .section-kicker,
    .yellow-accent,
    .accent-button
) {
    background: #bfe8ff !important;
    border-color: #8fd2f5 !important;
    color: #0a0a0a !important;
    -webkit-text-fill-color: #0a0a0a !important;
}

/* Common yellow-text accents in Pulse Blue become light blue. */
body.theme-pulse-blue :is(
    .section-kicker,
    .eyebrow,
    .accent-text,
    .sidebar-card .kicker,
    .account-benefits-kicker,
    .highlight-label
) {
    color: #bfe8ff !important;
    -webkit-text-fill-color: #bfe8ff !important;
}

/* If the navigation currently uses the global yellow accent, make it Pulse Blue. */
body.theme-pulse-blue .site-nav,
body.theme-pulse-blue .main-nav,
body.theme-pulse-blue .top-nav,
body.theme-pulse-blue header nav {
    background: #bfe8ff !important;
    border-color: #8fd2f5 !important;
}
body.theme-pulse-blue .site-nav a,
body.theme-pulse-blue .main-nav a,
body.theme-pulse-blue .top-nav a,
body.theme-pulse-blue header nav a,
body.theme-pulse-blue .site-nav button,
body.theme-pulse-blue .main-nav button,
body.theme-pulse-blue .top-nav button {
    color: #0a0a0a !important;
    -webkit-text-fill-color: #0a0a0a !important;
}

/* Do not overwrite special celebration card accents in Pulse Blue. */
body.theme-pulse-blue .park-profile-card.park-special-style :is(
    .section-kicker,
    .accent-text,
    .badge-accent
) {
    background: revert !important;
    color: revert !important;
    -webkit-text-fill-color: initial !important;
}


/* ==========================================================
   ParkPulse v12.15 — After Dark navigation exact fix
   The visible yellow strip is .main-nav .nav-inner, not only .main-nav.
   Match the purple used by "View public profile" (--theme-link).
   ========================================================== */
body.theme-after-dark .main-nav,
body.theme-after-dark .main-nav .nav-inner {
    background: var(--theme-link) !important;
    border-color: var(--theme-link) !important;
}
body.theme-after-dark .main-nav .nav-inner a,
body.theme-after-dark .main-nav .nav-inner a:link,
body.theme-after-dark .main-nav .nav-inner a:visited,
body.theme-after-dark .main-nav .nav-inner a:hover,
body.theme-after-dark .main-nav .nav-inner a:focus-visible,
body.theme-after-dark .main-nav .nav-inner a.active {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}


/* ==========================================================
   ParkPulse v12.16 — After Dark navigation + WAIT TIMES parity
   ========================================================== */

/* Entire visible navigation uses the requested After Dark purple.
   Black copy applies to every menu item/state. */
body.theme-after-dark .main-nav,
body.theme-after-dark .main-nav .nav-inner {
    background: #7F4BD1 !important;
    border-color: #7F4BD1 !important;
}
body.theme-after-dark .main-nav .nav-inner a,
body.theme-after-dark .main-nav .nav-inner a:link,
body.theme-after-dark .main-nav .nav-inner a:visited,
body.theme-after-dark .main-nav .nav-inner a:hover,
body.theme-after-dark .main-nav .nav-inner a:focus-visible,
body.theme-after-dark .main-nav .nav-inner a:active,
body.theme-after-dark .main-nav .nav-inner a.active,
body.theme-after-dark .main-nav .nav-inner button {
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
}
body.theme-after-dark .main-nav .nav-inner a:hover,
body.theme-after-dark .main-nav .nav-inner a:focus-visible,
body.theme-after-dark .main-nav .nav-inner a.active {
    background: rgba(255,255,255,.12) !important;
    border-bottom-color: #000000 !important;
}

/* AFTER DARK WAIT TIMES
   Mirror the same purple/night surface language already used by NEWS. */
body.theme-after-dark .wait-workspace,
body.theme-after-dark .wait-times-column,
body.theme-after-dark .wait-park-column,
body.theme-after-dark .wait-park-card,
body.theme-after-dark .wait-ride {
    background: #1b122b !important;
    border-color: #493663 !important;
    color: #f4effc !important;
}
body.theme-after-dark .wait-column-title,
body.theme-after-dark .wait-times-column > header,
body.theme-after-dark .wait-park-column > header {
    background: #281942 !important;
    border-color: #493663 !important;
    color: #ffffff !important;
}
body.theme-after-dark .wait-column-title h1,
body.theme-after-dark .wait-column-title h2,
body.theme-after-dark .wait-column-title h3,
body.theme-after-dark .wait-times-column h1,
body.theme-after-dark .wait-times-column h2,
body.theme-after-dark .wait-times-column h3,
body.theme-after-dark .wait-park-column h1,
body.theme-after-dark .wait-park-column h2,
body.theme-after-dark .wait-park-column h3 {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
body.theme-after-dark .wait-park-card:hover,
body.theme-after-dark .wait-park-card.active,
body.theme-after-dark .wait-ride:hover {
    background: #291a3d !important;
    border-color: #7F4BD1 !important;
}
body.theme-after-dark .wait-park-card.active {
    box-shadow: inset 4px 0 0 #7F4BD1 !important;
}
body.theme-after-dark .wait-park-card :is(strong,h3),
body.theme-after-dark .wait-ride :is(strong,h3),
body.theme-after-dark .wait-ride-name {
    color: #faf6ff !important;
    -webkit-text-fill-color: #faf6ff !important;
}
body.theme-after-dark .wait-park-card :is(p,span,small),
body.theme-after-dark .wait-ride :is(p,span,small),
body.theme-after-dark .wait-meta,
body.theme-after-dark .wait-updated {
    color: #b9aacd;
}
body.theme-after-dark .wait-times-column a,
body.theme-after-dark .wait-park-column a {
    color: #bb91ff;
}

/* ==========================================================
   ParkPulse v12.17 — Admin mobile desktop-table scrolling
   Keep every admin list in its desktop column layout on phones.
   Mobile users scroll horizontally instead of squeezing/breaking
   headings and values into unreadable vertical text.
   ========================================================== */
@media (max-width: 760px) {
    body.admin-page .admin-table-wrap,
    body.admin-page .article-manager .admin-table-wrap {
        width: 100%;
        max-width: 100%;
        overflow-x: auto !important;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
        touch-action: pan-x pan-y;
    }

    /* Preserve the desktop table structure instead of compressing columns. */
    body.admin-page table.admin-table {
        width: max-content !important;
        min-width: 900px !important;
        table-layout: auto !important;
    }

    body.admin-page table.admin-table th,
    body.admin-page table.admin-table td {
        width: auto !important;
        min-width: 110px;
        white-space: nowrap !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
    }

    /* Do not hide desktop columns on mobile. Horizontal scrolling handles them. */
    body.admin-page .article-table th:nth-child(2),
    body.admin-page .article-table td:nth-child(2),
    body.admin-page .article-table th:nth-child(4),
    body.admin-page .article-table td:nth-child(4),
    body.admin-page .user-table th:nth-child(2),
    body.admin-page .user-table td:nth-child(2),
    body.admin-page .user-table th:nth-child(4),
    body.admin-page .user-table td:nth-child(4) {
        display: table-cell !important;
    }

    /* Text-heavy first columns keep a sensible desktop-like width and wrap normally. */
    body.admin-page .article-admin-cell,
    body.admin-page .ideas-admin-table .idea-admin-copy {
        width: 320px !important;
        min-width: 320px !important;
        max-width: 420px !important;
        white-space: normal !important;
        overflow-wrap: break-word !important;
    }

    body.admin-page .ideas-admin-table .idea-admin-copy p,
    body.admin-page .article-admin-cell strong,
    body.admin-page .article-admin-cell small {
        white-space: normal !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
    }

    /* Keep action labels readable on one line. */
    body.admin-page .admin-table td.actions,
    body.admin-page .admin-table td.user-actions {
        min-width: 220px !important;
        white-space: nowrap !important;
    }

    body.admin-page .admin-table td.actions > a,
    body.admin-page .admin-table td.actions form,
    body.admin-page .admin-table td.user-actions > a,
    body.admin-page .admin-table td.user-actions form {
        display: inline-flex;
        vertical-align: middle;
    }

    /* Larger directory/ideas tables need a little more canvas, just like desktop. */
    body.admin-page .ideas-admin-table {
        min-width: 980px !important;
    }
}

/* ==========================================================
   ParkPulse v12.19 — Admin Panel Optimization
   Unified workflow, attention center, filters, table polish,
   safer destructive actions and responsive admin controls.
   ========================================================== */
body.admin-page .admin-attention-card {
    margin: 0 0 18px;
    border: 1px solid #dfe6ee;
}
body.admin-page .admin-attention-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0,1fr));
    gap: 10px;
    margin-top: 14px;
}
body.admin-page .attention-item {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 3px;
    padding: 14px;
    border: 1px solid #dfe6ee;
    border-radius: 10px;
    background: #f8fafc;
    color: #0b294c;
    text-decoration: none;
    transition: transform .15s ease,border-color .15s ease,box-shadow .15s ease;
}
body.admin-page .attention-item:hover {
    transform: translateY(-1px);
    border-color: #b9c6d6;
    box-shadow: 0 5px 15px rgba(11,41,76,.08);
}
body.admin-page .attention-item strong {font-size: 28px;line-height: 1;color: #0b294c;}
body.admin-page .attention-item span {font-weight: 800;line-height: 1.25;}
body.admin-page .attention-item em {margin-top: 5px;font-size: 12px;font-style: normal;font-weight: 800;color: #64748b;}
body.admin-page .attention-item.has-items {background: #fff7dc;border-color: #f0c857;}
body.admin-page .attention-item.has-items-soft {background: #fff3eb;border-color: #e7b695;}
body.admin-page .attention-item.is-clear {background: #f2faf5;border-color: #c8e5d1;}
body.admin-page .attention-item.is-clear em {color: #3f7d56;}

body.admin-page .compact-filter-card {margin: 0 0 14px;padding: 14px 16px;}
body.admin-page .admin-search-single {grid-template-columns: minmax(260px,1fr) auto auto;align-items: end;}
body.admin-page .admin-filter-form label {min-width: 0;}
body.admin-page .admin-filter-form input,
body.admin-page .admin-filter-form select {min-height: 42px;}
body.admin-page .admin-filter-form .yellow-button,
body.admin-page .admin-filter-form .admin-ghost-button {min-height: 42px;display: inline-flex;align-items: center;justify-content: center;}

body.admin-page .admin-table-wrap {position: relative;border-radius: 8px;}
body.admin-page .admin-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #edf2f7;
    color: #213b59;
    letter-spacing: .04em;
}
body.admin-page .admin-table tbody tr {transition: background .12s ease;}
body.admin-page .admin-table tbody tr:hover td {background: #f7faff;}
body.admin-page .admin-table td > small,
body.admin-page .admin-table td div > small {display:block;margin-top:3px;color:#718096;}
body.admin-page .admin-table .actions {gap: 6px;}
body.admin-page .admin-table .actions a,
body.admin-page .admin-table .actions button,
body.admin-page .admin-table .user-actions a,
body.admin-page .admin-table .user-actions button {min-height: 34px;align-items:center;justify-content:center;}
body.admin-page .admin-table button.danger,
body.admin-page .moderation-actions button.danger,
body.admin-page .actions form:last-child button:not(.approve):not(.safe-action):not(.neutral-action) {
    border-color: #e4a6a6;
    background: #fff2f2;
    color: #9d2727;
}
body.admin-page .admin-table button.danger:hover,
body.admin-page .moderation-actions button.danger:hover,
body.admin-page .actions form:last-child button:not(.approve):not(.safe-action):not(.neutral-action):hover {
    background: #fde4e4;
    border-color: #d78181;
}

body.admin-page .status-pill.pending,
body.admin-page .status-pill.pending_review,
body.admin-page .status-pill.scheduled {background:#fff2bd;color:#755500;}
body.admin-page .status-pill.approved,
body.admin-page .status-pill.published {background:#e5f6ea;color:#28653a;}
body.admin-page .status-pill.rejected {background:#fde8e8;color:#9a3131;}
body.admin-page .status-pill.draft {background:#e8eef5;color:#526274;}

body.admin-page .moderation-item {border-radius:10px;}
body.admin-page .moderation-item p {line-height:1.55;}
body.admin-page .moderation-actions {gap:7px;flex-wrap:wrap;}
body.admin-page .moderation-actions button {min-height:36px;}
body.admin-page .admin-pagination {padding-top:16px;border-top:1px solid #e7edf3;}
body.admin-page .admin-pagination .page-numbers a.active {box-shadow: inset 0 -3px 0 #0b294c;}

body.admin-page .editor-main,
body.admin-page .editor-side .admin-card {border-radius: 10px;}
body.admin-page .editor-form label {font-weight: 800;color:#344b64;}
body.admin-page .editor-form input:focus,
body.admin-page .editor-form textarea:focus,
body.admin-page .editor-form select:focus,
body.admin-page .admin-filter-form input:focus,
body.admin-page .admin-filter-form select:focus {
    outline: none;
    border-color: #557ca8;
    box-shadow: 0 0 0 3px rgba(85,124,168,.13);
}

body.theme-dark.admin-page .admin-attention-card,
body.theme-dark.admin-page .compact-filter-card {border-color:#2a384b;}
body.theme-dark.admin-page .attention-item {background:#151f2e;border-color:#2a384b;color:#eef5fc;}
body.theme-dark.admin-page .attention-item strong {color:#fff;}
body.theme-dark.admin-page .attention-item.has-items {background:#342d19;border-color:#66582c;}
body.theme-dark.admin-page .attention-item.has-items-soft {background:#35251f;border-color:#6e493b;}
body.theme-dark.admin-page .attention-item.is-clear {background:#17291f;border-color:#31523e;}
body.theme-dark.admin-page .admin-table thead th {background:#1b2736;color:#eef5fc;}
body.theme-dark.admin-page .admin-table tbody tr:hover td {background:#172333;}
body.theme-dark.admin-page .admin-pagination {border-color:#2a384b;}
body.theme-dark.admin-page .admin-table button.danger,
body.theme-dark.admin-page .moderation-actions button.danger,
body.theme-dark.admin-page .actions form:last-child button:not(.approve):not(.safe-action):not(.neutral-action) {background:#351d21;border-color:#6f343b;color:#ffb7bf;}
body.theme-dark.admin-page .editor-form label {color:#ced8e3;}

@media (max-width: 1050px) {
    body.admin-page .admin-attention-grid {grid-template-columns: repeat(3,minmax(0,1fr));}
}
@media (max-width: 760px) {
    body.admin-page .admin-attention-grid {grid-template-columns: repeat(2,minmax(0,1fr));}
    body.admin-page .admin-search-single {grid-template-columns: 1fr;}
    body.admin-page .admin-filter-form .yellow-button,
    body.admin-page .admin-filter-form .admin-ghost-button {width:100%;}
    body.admin-page .admin-table-wrap::after {
        content: 'Swipe horizontally to view all columns →';
        display:block;
        width:max-content;
        padding:8px 2px 2px;
        font-size:11px;
        font-weight:800;
        color:#708096;
    }
}
@media (max-width: 440px) {
    body.admin-page .admin-attention-grid {grid-template-columns: 1fr;}
}

/* ==========================================================
   ParkPulse v12.22 — Admin table headers + stat icon branding
   Give admin lists a stronger ParkPulse identity while keeping
   the optimized table/mobile behaviour from v12.19-v12.21.
   ========================================================== */
body.admin-page .admin-table thead th {
    background: #0b294c !important;
    color: #ffffff !important;
    border-bottom: 3px solid #ffc928 !important;
    letter-spacing: .085em;
    font-weight: 900;
    text-shadow: 0 1px 0 rgba(0,0,0,.08);
}

body.admin-page .admin-table thead th:first-child {
    box-shadow: inset 3px 0 0 #ffc928;
}

/* Keep the branded header identical in dark mode. */
body.theme-dark.admin-page .admin-table thead th,
body.theme-midnight.admin-page .admin-table thead th,
body.theme-after-dark.admin-page .admin-table thead th {
    background: #0b294c !important;
    color: #ffffff !important;
    border-bottom-color: #ffc928 !important;
}

/* Dashboard stat labels: ParkPulse yellow tile with navy copy. */
body.admin-page .admin-stats .stat-icon {
    background: #ffc928 !important;
    color: #0b294c !important;
    border: 1px solid rgba(11,41,76,.12);
    box-shadow: 0 2px 7px rgba(11,41,76,.10);
}

body.theme-dark.admin-page .admin-stats .stat-icon,
body.theme-midnight.admin-page .admin-stats .stat-icon,
body.theme-after-dark.admin-page .admin-stats .stat-icon {
    background: #ffc928 !important;
    color: #0b294c !important;
    border-color: rgba(255,255,255,.08);
}

/* ==========================================================
   ParkPulse v12.23 — Admin table headers match stat icons
   Yellow ParkPulse header cells with navy text.
   ========================================================== */
body.admin-page .admin-table thead th {
    background: #ffc928 !important;
    color: #0b294c !important;
    border-bottom: 1px solid rgba(11,41,76,.22) !important;
    border-right: 1px solid rgba(11,41,76,.14);
    font-weight: 950;
    letter-spacing: .10em;
    text-shadow: none;
    box-shadow: inset 0 -2px 0 rgba(11,41,76,.08);
}
body.admin-page .admin-table thead th:first-child {
    box-shadow: inset 0 -2px 0 rgba(11,41,76,.08);
}
body.admin-page .admin-table thead th:last-child {
    border-right: 0;
}
body.theme-dark.admin-page .admin-table thead th,
body.theme-midnight.admin-page .admin-table thead th,
body.theme-after-dark.admin-page .admin-table thead th {
    background: #ffc928 !important;
    color: #0b294c !important;
    border-bottom-color: rgba(11,41,76,.22) !important;
    border-right-color: rgba(11,41,76,.14) !important;
}

/* ==========================================================
   ParkPulse v12.24 — Refined admin table headers
   Navy ParkPulse background, bold yellow copy and roomier spacing.
   ========================================================== */
body.admin-page .admin-table thead th,
body.theme-dark.admin-page .admin-table thead th,
body.theme-midnight.admin-page .admin-table thead th,
body.theme-after-dark.admin-page .admin-table thead th {
    background: #0b294c !important;
    color: #ffc928 !important;
    font-weight: 900 !important;
    letter-spacing: .075em;
    line-height: 1.25;
    padding: 14px 18px !important;
    vertical-align: middle !important;
    border-right: 1px solid rgba(255,201,40,.22) !important;
    border-bottom: 3px solid #ffc928 !important;
    text-shadow: none !important;
    box-shadow: none !important;
}
body.admin-page .admin-table thead th:first-child {
    padding-left: 20px !important;
}
body.admin-page .admin-table thead th:last-child {
    border-right: 0 !important;
}

/* =========================================================
   ParkPulse NEWS archive refinements – v12.25
   ========================================================= */
.news-toolbar {
    display: grid;
    grid-template-columns: minmax(170px,.8fr) minmax(240px,1.6fr) minmax(170px,.8fr) auto auto;
    gap: 12px;
    align-items: end;
    margin: 0 0 14px;
    padding: 16px;
    border: 1px solid #e1e6ec;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 7px 22px rgba(5,27,55,.06);
}
.news-filter-field { display:flex; flex-direction:column; gap:6px; min-width:0; }
.news-filter-field > span { color:#65758a; font-size:10px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.news-filter-field select,
.news-filter-field input {
    width:100%; min-height:42px; padding:0 12px; border:1px solid #ccd5df; border-radius:8px;
    background:#fff; color:#0B294C; font:inherit; font-size:13px; font-weight:800; outline:none;
}
.news-filter-field select:focus,
.news-filter-field input:focus { border-color:var(--yellow); box-shadow:0 0 0 3px rgba(255,201,40,.16); }
.news-filter-button,.news-filter-reset,.news-empty-button {
    display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 16px; border:0; border-radius:8px;
    background:var(--yellow); color:#0B294C; font-size:11px; font-weight:900; letter-spacing:.06em; text-decoration:none; cursor:pointer;
}
.news-filter-reset { background:#eef2f6; }
.news-results-summary { margin:0 0 18px; color:#65758a; font-size:13px; font-weight:700; }
.news-results-summary strong { color:#0B294C; }
.news-results-summary span::before { content:' · '; }
.news-card-meta { display:flex; flex-wrap:wrap; gap:0; }
.news-card-meta span + span::before { content:'•'; margin:0 8px; color:#a5b0bd; }
.news-empty strong { display:block; margin-bottom:7px; color:#0B294C; font-size:22px; }
.news-empty p { margin:0 0 18px; color:#65758a; }
.news-empty-button { min-height:40px; }
.news-pagination .pagination-gap { min-width:auto; border-color:transparent; background:transparent; padding:0 3px; }
body.theme-dark .news-toolbar { background:#151f2e; border-color:#2a384b; box-shadow:none; }
body.theme-dark .news-filter-field > span, body.theme-dark .news-results-summary { color:#9dabbc; }
body.theme-dark .news-filter-field select, body.theme-dark .news-filter-field input { background:#0f1824; color:#eef5fc; border-color:#35465b; }
body.theme-dark .news-filter-reset { background:#263446; color:#e9eef5; }
body.theme-dark .news-results-summary strong, body.theme-dark .news-empty strong { color:#f1f5fa; }
body.theme-dark .news-empty p { color:#aeb9c8; }
body.theme-dark .news-pagination .pagination-gap { background:transparent; border-color:transparent; color:#9dabbc; }
@media(max-width:900px){
    .news-toolbar { grid-template-columns:1fr 1fr; }
    .news-search-field { grid-column:1/-1; grid-row:1; }
}
@media(max-width:560px){
    .news-toolbar { grid-template-columns:1fr; padding:13px; }
    .news-search-field { grid-column:auto; grid-row:auto; }
    .news-filter-button,.news-filter-reset { width:100%; }
    .news-card-meta { font-size:11px; }
    .news-card-meta span + span::before { margin:0 6px; }
}

/* =========================================================
   ParkPulse PARKS finder refinements – v12.26
   ========================================================= */
.parks-finder{display:grid;grid-template-columns:minmax(230px,1.5fr) minmax(170px,1fr) minmax(160px,.9fr);gap:12px;align-items:end;margin:0 0 10px;padding:16px;border:1px solid #e1e6ec;border-radius:12px;background:#fff;box-shadow:0 7px 22px rgba(5,27,55,.06)}
.parks-finder-field{display:flex;flex-direction:column;gap:6px;min-width:0}.parks-finder-field>span{color:#65758a;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.parks-finder-field input,.parks-finder-field select{width:100%;min-height:42px;padding:0 12px;border:1px solid #ccd5df;border-radius:8px;background:#fff;color:#0B294C;font:inherit;font-size:13px;font-weight:800;outline:none}.parks-finder-field input:focus,.parks-finder-field select:focus{border-color:var(--yellow);box-shadow:0 0 0 3px rgba(255,201,40,.16)}
.parks-jump-field{display:none}.parks-results-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 20px;color:#65758a;font-size:12px;letter-spacing:.05em}.parks-results-line strong{color:#0B294C}.parks-results-line button,.parks-empty-state button{border:0;border-radius:7px;background:#eef2f6;color:#0B294C;padding:9px 12px;font-size:10px;font-weight:900;letter-spacing:.06em;cursor:pointer}.parks-empty-state{margin:20px 0 28px;padding:28px;border:1px solid #e1e6ec;border-radius:12px;background:#fff;text-align:center}.parks-empty-state strong{display:block;color:#0B294C;font-size:20px}.parks-empty-state p{margin:6px 0 16px;color:#65758a}.parks-empty-state button{background:var(--yellow)}
.parks-country[hidden],.park-profile-card[hidden],.parks-empty-state[hidden],.parks-results-line button[hidden]{display:none!important}.parks-country{scroll-margin-top:18px}
body.theme-dark .parks-finder,body.theme-dark .parks-empty-state{background:#151f2e;border-color:#2a384b;box-shadow:none}body.theme-dark .parks-finder-field>span,body.theme-dark .parks-results-line,body.theme-dark .parks-empty-state p{color:#9dabbc}body.theme-dark .parks-finder-field input,body.theme-dark .parks-finder-field select{background:#0f1824;color:#eef5fc;border-color:#35465b}body.theme-dark .parks-results-line strong,body.theme-dark .parks-empty-state strong{color:#f1f5fa}body.theme-dark .parks-results-line button{background:#263446;color:#e9eef5}
@media(max-width:760px){.parks-finder{grid-template-columns:1fr 1fr}.parks-search-field{grid-column:1/-1}.parks-jump-field{display:flex}.parks-results-line{margin-bottom:16px}}
@media(max-width:520px){.parks-finder{grid-template-columns:1fr;padding:13px}.parks-search-field{grid-column:auto}.parks-empty-state{padding:22px 15px}}

/* ParkPulse v12.28 — Member Wait Times visual polish */
.member-park-finder{margin:16px 0 20px;padding:16px;border:1px solid #d9e3ed;border-radius:14px;background:#f7f9fc;box-shadow:0 5px 18px rgba(11,41,76,.05)}
.member-park-finder label,.member-wait-tools label{display:block;margin:0 0 7px;color:#0b294c;font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.member-search-field{display:flex;align-items:center;gap:9px;min-height:44px;padding:0 13px;border:1px solid #c8d6e4;border-radius:10px;background:#fff;transition:border-color .18s,box-shadow .18s}
.member-search-field:focus-within{border-color:#0b294c;box-shadow:0 0 0 3px rgba(11,41,76,.09)}
.member-search-field span{color:#0b294c;font-size:1.05rem;font-weight:900}.member-search-field input{width:100%;border:0!important;outline:0!important;background:transparent!important;color:#0b294c!important;font:inherit;font-weight:700;box-shadow:none!important}.member-search-field input::placeholder{color:#8292a4}.member-tool-count{margin:9px 0 0!important;color:#6b7d91!important;font-size:.7rem!important;font-weight:850!important;letter-spacing:.04em}
.member-wait-dashboard{margin:18px 0 26px;padding:18px;border:1px solid #d8e3ed;border-radius:16px;background:#f7f9fc;box-shadow:0 7px 22px rgba(11,41,76,.06)}
.member-quick-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 17px}.member-quick-picks>div{position:relative;min-width:0;padding:16px 17px 15px 20px;overflow:hidden;border:1px solid #d7e2ec;border-radius:12px;background:#fff;box-shadow:0 3px 10px rgba(11,41,76,.04)}.member-quick-picks>div:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#ffc928}.member-quick-picks span{display:block;color:#63768a;font-size:.68rem;font-weight:900;letter-spacing:.08em}.member-quick-picks strong{display:block;margin-top:5px;color:#0b294c;font-size:1.35rem;line-height:1.1;font-weight:950}.member-quick-picks small{display:block;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#66798c;font-size:.76rem;font-weight:650}
.member-wait-tools{display:grid;grid-template-columns:minmax(220px,1.45fr) repeat(3,minmax(135px,.75fr));gap:12px;align-items:end;padding:16px;border:1px solid #d8e3ed;border-radius:13px;background:#fff}.member-tool-control select{width:100%;height:44px;padding:0 36px 0 12px;border:1px solid #c8d6e4;border-radius:10px;background:#fff;color:#0b294c;font:inherit;font-size:.86rem;font-weight:800;cursor:pointer;outline:none}.member-tool-control select:focus{border-color:#0b294c;box-shadow:0 0 0 3px rgba(11,41,76,.09)}
.member-wait-tool-footer{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:13px;padding:13px 2px 0;border-top:1px solid #d8e3ed}.member-wait-tool-footer strong{color:#0b294c;font-size:.76rem;font-weight:950;letter-spacing:.05em}.member-wait-tool-footer span{margin-left:auto;color:#62768a;font-size:.75rem;font-weight:850}.member-wait-tool-footer button,.member-wait-empty button{min-height:36px;border:2px solid #0b294c;border-radius:9px;padding:7px 13px;background:#0b294c;color:#fff;font-size:.7rem;font-weight:950;letter-spacing:.05em;cursor:pointer;transition:.18s}.member-wait-tool-footer button:hover,.member-wait-empty button:hover{background:#ffc928;border-color:#ffc928;color:#0b294c;transform:translateY(-1px)}
.member-wait-empty{padding:34px 20px;text-align:center;border:1px dashed #bdcddd;border-radius:12px;background:#fff}.member-wait-empty strong{display:block;color:#0b294c;font-weight:950;letter-spacing:.06em}.member-wait-empty p{margin:7px 0 15px;color:#687b8e}
/* Classic: keep the tools light and recognisably ParkPulse */
body:not(.theme-dark):not(.theme-after-dark) .member-wait-dashboard{background:#f5f8fb}body:not(.theme-dark):not(.theme-after-dark) .member-wait-tools{background:#fff}
/* Dark */
body.theme-dark .member-park-finder,body.theme-dark .member-wait-dashboard,body.theme-dark .member-wait-empty{background:#0d2136;border-color:#29445f;box-shadow:none}body.theme-dark .member-wait-tools{background:#0b294c;border-color:#31506b}body.theme-dark .member-search-field,body.theme-dark .member-quick-picks>div,body.theme-dark .member-tool-control select{background:#102943;border-color:#36536d;color:#fff}body.theme-dark .member-search-field:focus-within,body.theme-dark .member-tool-control select:focus{border-color:#ffc928;box-shadow:0 0 0 3px rgba(255,201,40,.12)}body.theme-dark .member-search-field span{color:#ffc928}body.theme-dark .member-search-field input{color:#fff!important}body.theme-dark .member-search-field input::placeholder{color:#91a8bd}body.theme-dark .member-park-finder label,body.theme-dark .member-wait-tools label,body.theme-dark .member-quick-picks strong,body.theme-dark .member-wait-tool-footer strong,body.theme-dark .member-wait-empty strong{color:#fff}body.theme-dark .member-quick-picks span,body.theme-dark .member-quick-picks small,body.theme-dark .member-wait-tool-footer span,body.theme-dark .member-tool-count{color:#b8cadd!important}body.theme-dark .member-wait-tool-footer{border-color:#29445f}body.theme-dark .member-wait-tool-footer button,body.theme-dark .member-wait-empty button{background:#ffc928;border-color:#ffc928;color:#0b294c}body.theme-dark .member-wait-tool-footer button:hover,body.theme-dark .member-wait-empty button:hover{background:#fff;border-color:#fff;color:#0b294c}
/* After Dark remains purple while retaining the ParkPulse yellow accent */
body.theme-after-dark .member-park-finder,body.theme-after-dark .member-wait-dashboard,body.theme-after-dark .member-wait-empty{background:#241833!important;border-color:#4a3760!important;box-shadow:none!important}body.theme-after-dark .member-wait-tools{background:#21152f!important;border-color:#563f70!important}body.theme-after-dark .member-search-field,body.theme-after-dark .member-quick-picks>div,body.theme-after-dark .member-tool-control select{background:#1b122b!important;border-color:#563f70!important;color:#fff!important}body.theme-after-dark .member-search-field span{color:#ffc928!important}body.theme-after-dark .member-search-field input{color:#fff!important}body.theme-after-dark .member-park-finder label,body.theme-after-dark .member-wait-tools label,body.theme-after-dark .member-quick-picks strong,body.theme-after-dark .member-wait-tool-footer strong,body.theme-after-dark .member-wait-empty strong{color:#fff!important}body.theme-after-dark .member-quick-picks span,body.theme-after-dark .member-quick-picks small,body.theme-after-dark .member-wait-tool-footer span,body.theme-after-dark .member-tool-count{color:#d4c8e1!important}body.theme-after-dark .member-wait-tool-footer{border-color:#4a3760!important}body.theme-after-dark .member-wait-tool-footer button,body.theme-after-dark .member-wait-empty button{background:#ffc928!important;border-color:#ffc928!important;color:#171022!important}
@media(max-width:900px){.member-wait-tools{grid-template-columns:1fr 1fr}.member-tool-search{grid-column:1/-1}.member-quick-picks{grid-template-columns:1fr}.member-wait-tool-footer span{margin-left:0}.member-wait-tool-footer{align-items:stretch;flex-direction:column}.member-wait-tool-footer button{width:100%}}
@media(max-width:560px){.member-wait-dashboard{padding:13px}.member-wait-tools{grid-template-columns:1fr;padding:13px}.member-tool-search{grid-column:auto}.member-quick-picks>div{padding:14px 15px 13px 18px}.member-quick-picks strong{font-size:1.2rem}}

/* ParkPulse v12.29 — WAIT TIMES compact country directory + four quick picks */
.wait-country-group{margin:0 0 8px!important;border:1px solid #d8e3ed;border-radius:11px;background:#fff;overflow:hidden}
.wait-country-toggle{display:flex;width:100%;align-items:center;gap:9px;padding:11px 12px;border:0;background:#f7f9fc;color:#0b294c;text-align:left;cursor:pointer;font:inherit;transition:background .18s,color .18s}
.wait-country-toggle:hover{background:#eef3f8}.wait-country-toggle:focus-visible{outline:3px solid rgba(255,201,40,.45);outline-offset:-3px}
.wait-country-name{display:flex;align-items:center;gap:9px;min-width:0;font-size:.74rem;font-weight:950;letter-spacing:.045em}.wait-country-flag{display:block;width:24px;height:16px;flex:0 0 24px;object-fit:cover;border-radius:3px;border:1px solid rgba(11,41,76,.16);box-shadow:0 1px 3px rgba(11,41,76,.12)}
.wait-country-count{margin-left:auto;color:#74879a;font-size:.61rem;font-weight:900;letter-spacing:.055em;white-space:nowrap}.wait-country-toggle>i{display:inline-block;color:#0b294c;font-size:1rem;font-style:normal;font-weight:950;transition:transform .18s}.wait-country-toggle[aria-expanded="true"]>i{transform:rotate(180deg)}
.wait-country-parks{padding:8px;background:#fff;border-top:1px solid #e4ebf2}.wait-country-parks[hidden]{display:none!important}.wait-country-parks .park-button:last-child{margin-bottom:0}
.member-quick-picks{grid-template-columns:repeat(4,minmax(0,1fr))}
body.theme-dark .wait-country-group{background:#102943;border-color:#36536d}body.theme-dark .wait-country-toggle{background:#0d2136;color:#fff}body.theme-dark .wait-country-toggle:hover{background:#17334e}body.theme-dark .wait-country-count{color:#9fb4c8}body.theme-dark .wait-country-toggle>i{color:#ffc928}body.theme-dark .wait-country-parks{background:#102943;border-color:#36536d}
body.theme-after-dark .wait-country-group{background:#1b122b!important;border-color:#563f70!important}body.theme-after-dark .wait-country-toggle{background:#241833!important;color:#fff!important}body.theme-after-dark .wait-country-toggle:hover{background:#302044!important}body.theme-after-dark .wait-country-count{color:#c8b9d7!important}body.theme-after-dark .wait-country-toggle>i{color:#ffc928!important}body.theme-after-dark .wait-country-parks{background:#1b122b!important;border-color:#563f70!important}
@media(max-width:1100px){.member-quick-picks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.member-quick-picks{grid-template-columns:1fr}}

body.theme-dark .wait-country-flag,body.theme-after-dark .wait-country-flag{border-color:rgba(255,255,255,.22);box-shadow:0 1px 3px rgba(0,0,0,.28)}

/* ParkPulse v12.31 — compact WAIT TIMES park directory */
.wait-park-column .wait-column-title{display:none}
.wait-park-column{background:#fff}
.wait-park-column .member-park-finder{margin:0;padding:12px;border:0;border-bottom:1px solid #d8e3ed;border-radius:0;background:#f7f9fc;box-shadow:none}
.wait-park-column .member-park-finder>label,.wait-park-column .member-tool-count{display:none!important}
.wait-park-column .member-search-field{min-height:38px;border-radius:8px;padding:0 10px}
.wait-park-directory{padding:0;max-height:calc(100vh - 90px)}
.wait-park-directory .wait-country-group{margin:0!important;border:0;border-bottom:1px solid #e0e8f0;border-radius:0;background:#fff}
.wait-park-directory .wait-country-group:last-child{border-bottom:0}
.wait-park-directory .wait-country-toggle{min-height:46px;padding:10px 14px;background:#fff}
.wait-park-directory .wait-country-toggle:hover{background:#f3f7fb}
.wait-park-directory .wait-country-name{gap:10px;font-size:.72rem;letter-spacing:.035em}
.wait-park-directory .wait-country-flag{width:23px;height:15px;flex-basis:23px;border-radius:3px}
.wait-park-directory .wait-country-count{display:none}
.wait-park-directory .wait-country-toggle>i{margin-left:auto;font-size:1.05rem}
.wait-park-directory .wait-country-parks{padding:5px 9px 9px 42px;border-top:1px solid #edf2f6;background:#f8fafc}
.wait-park-directory .wait-country-parks .park-buttons{gap:3px}
.wait-park-directory .wait-country-parks .park-button{min-height:34px;margin:0;padding:7px 9px;border-radius:7px;font-size:.76rem;box-shadow:none}
.wait-park-directory .wait-country-parks .park-button b{font-size:17px}
body.theme-dark .wait-park-column{background:#0d2136}
body.theme-dark .wait-park-column .member-park-finder{background:#0d2136;border-color:#29445f}
body.theme-dark .wait-park-directory .wait-country-group{background:#0d2136;border-color:#29445f}
body.theme-dark .wait-park-directory .wait-country-toggle{background:#0d2136;color:#fff}
body.theme-dark .wait-park-directory .wait-country-toggle:hover{background:#17334e}
body.theme-dark .wait-park-directory .wait-country-parks{background:#102943;border-color:#29445f}
body.theme-after-dark .wait-park-column .member-park-finder{background:#241833!important;border-color:#4a3760!important}
body.theme-after-dark .wait-park-directory .wait-country-group{background:#241833!important;border-color:#4a3760!important}
body.theme-after-dark .wait-park-directory .wait-country-toggle{background:#241833!important;color:#fff!important}
body.theme-after-dark .wait-park-directory .wait-country-toggle:hover{background:#302044!important}
body.theme-after-dark .wait-park-directory .wait-country-parks{background:#1b122b!important;border-color:#4a3760!important}
@media(max-width:900px){.wait-park-directory{max-height:none}.wait-park-column .member-park-finder{padding:10px}.wait-park-directory .wait-country-toggle{min-height:44px}}

/* v12.32 — Keep the WAIT TIMES workspace on the same page surface as the intro. */
.wait-workspace,
body.theme-dark .wait-workspace,
body.theme-midnight .wait-workspace,
body.theme-after-dark .wait-workspace,
body.theme-pulse-blue .wait-workspace,
body.theme-sunset .wait-workspace,
body.theme-adventure .wait-workspace,
body.theme-coaster-red .wait-workspace {
    background: transparent !important;
}

/* ParkPulse v12.34 — selected WAIT TIMES park title readability.
   This is the park name beside the REFRESH button inside the navy hero. */
body #currentParkName,
body .wait-hero #currentParkName,
body .wait-column-hero #currentParkName {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

/* ParkPulse v12.35 — After Dark WAIT TIMES unified purple surfaces.
   Reuse the Opening Hours quick-pick surface for the ride list,
   search fields and selected-park hero beside REFRESH. */
body.theme-after-dark .wait-times-column .wait-list,
body.theme-after-dark .wait-times-column .wait-all-rides .wait-list,
body.theme-after-dark .member-search-field,
body.theme-after-dark .wait-column-hero,
body.theme-after-dark .wait-hero {
    background: #1b122b !important;
    border-color: #563f70 !important;
}
body.theme-after-dark .member-search-field input {
    background: transparent !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
body.theme-after-dark .member-search-field input::placeholder {
    color: #b9aacd !important;
    -webkit-text-fill-color: #b9aacd !important;
}

/* ParkPulse v12.36 — After Dark WAIT TIMES surface alignment.
   Selected-park hero uses the member dashboard surface; ride/results,
   choose prompt and live-data note use the Opening Hours surface. */
body.theme-after-dark .wait-column-hero,
body.theme-after-dark .wait-hero {
    background: #241833 !important;
    border-color: #4a3760 !important;
}
body.theme-after-dark .wait-times-column .wait-all-rides,
body.theme-after-dark .wait-times-column .wait-list,
body.theme-after-dark .wait-times-column .wait-all-rides .wait-list,
body.theme-after-dark .wait-times-column .wait-loading,
body.theme-after-dark #waitChoosePrompt,
body.theme-after-dark .wait-choose-prompt,
body.theme-after-dark .wait-data-note {
    background: #1b122b !important;
    border-color: #563f70 !important;
    color: #f4effc !important;
}
body.theme-after-dark #waitChoosePrompt strong,
body.theme-after-dark .wait-choose-prompt strong,
body.theme-after-dark .wait-data-note strong {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
body.theme-after-dark #waitChoosePrompt p,
body.theme-after-dark .wait-choose-prompt p,
body.theme-after-dark .wait-data-note p {
    color: #d4c8e1 !important;
}
body.theme-after-dark .wait-data-note {
    border-left: 4px solid #ffc928 !important;
}

/* ParkPulse v12.37 — After Dark WAIT TIMES final surface unification. */
/* CHOOSE A PARK + ABOUT LIVE DATA use the member dashboard purple. */
body.theme-after-dark #waitChoosePrompt,
body.theme-after-dark .wait-choose-prompt,
body.theme-after-dark .wait-data-note {
    background: #241833 !important;
    border-color: #4a3760 !important;
    color: #f4effc !important;
}
body.theme-after-dark .wait-data-note {
    border-left: 4px solid #ffc928 !important;
}
/* Loaded wait-time results use the exact same purple as the search fields. */
body.theme-after-dark .wait-times-column .wait-all-rides,
body.theme-after-dark .wait-times-column .wait-list,
body.theme-after-dark .wait-times-column .wait-all-rides .wait-list,
body.theme-after-dark .wait-times-column .wait-loading,
body.theme-after-dark .wait-times-column .wait-row,
body.theme-after-dark .wait-times-column .wait-row:nth-child(even),
body.theme-after-dark .wait-times-column .wait-row:nth-child(odd) {
    background: #1b122b !important;
    border-color: #563f70 !important;
    color: #f4effc !important;
}
body.theme-after-dark .wait-times-column .wait-row:hover {
    background: #21152f !important;
}

/* ParkPulse v12.38 — WAIT TIMES heading accent + user greeting readability. */
body.theme-after-dark .wait-list-heading {
    border-bottom-color: #ffc928 !important;
}
body .main-nav .nav-inner .welcome {
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
}

/* ParkPulse v12.39 — After Dark PARKS visual polish. */
body.theme-after-dark .parks-country-heading {
    border-bottom-color: #ffc928 !important;
}
body.theme-after-dark .parks-finder {
    background: #241833 !important;
    border-color: #4a3760 !important;
    box-shadow: none !important;
}
body.theme-after-dark .parks-finder-field > span {
    color: #ffffff !important;
}
body.theme-after-dark .parks-finder-field input,
body.theme-after-dark .parks-finder-field select {
    background: #1b122b !important;
    border-color: #563f70 !important;
    color: #ffffff !important;
}
body.theme-after-dark .parks-finder-field input::placeholder {
    color: #ffffff !important;
    opacity: .78;
}
body.theme-after-dark .parks-finder-field input:focus,
body.theme-after-dark .parks-finder-field select:focus {
    border-color: #ffc928 !important;
    box-shadow: 0 0 0 3px rgba(255,201,40,.12) !important;
}
body.theme-after-dark .parks-finder-field select option {
    background: #1b122b;
    color: #ffffff;
}

/* ParkPulse v12.40 — After Dark NEWS visual polish. */
body.theme-after-dark .news-toolbar {
    background: #241833 !important;
    border-color: #4a3760 !important;
    box-shadow: none !important;
}
body.theme-after-dark .news-filter-field > span {
    color: #ffffff !important;
}
body.theme-after-dark .news-filter-field input,
body.theme-after-dark .news-filter-field select {
    background: #1b122b !important;
    border-color: #563f70 !important;
    color: #ffffff !important;
}
body.theme-after-dark .news-filter-field input::placeholder {
    color: #ffffff !important;
    opacity: .78;
}
body.theme-after-dark .news-filter-field input:focus,
body.theme-after-dark .news-filter-field select:focus {
    border-color: #ffc928 !important;
    box-shadow: 0 0 0 3px rgba(255,201,40,.12) !important;
}
body.theme-after-dark .news-filter-field select option {
    background: #1b122b;
    color: #ffffff;
}

/* ==========================================================
   ParkPulse v12.41 — After Dark NEWS shell + footer alignment
   Match NEWS page canvas to WAIT TIMES and footer to site header.
   ========================================================== */
body.theme-after-dark .news-page-shell {
    background: #0d0818 !important;
}

body.theme-after-dark .site-footer {
    background: #0a0613 !important;
    border-top-color: #493663 !important;
}

/* ==========================================================
   ParkPulse v12.42 — After Dark footer matches menu
   ========================================================== */
body.theme-after-dark .site-footer {
    background: #7F4BD1 !important;
    color: #000000 !important;
    border-top-color: #7F4BD1 !important;
}
body.theme-after-dark .site-footer a,
body.theme-after-dark .site-footer .footer-inner,
body.theme-after-dark .site-footer .footer-links,
body.theme-after-dark .site-footer .footer-links a {
    color: #000000 !important;
}

/* ==========================================================
   ParkPulse v12.43 — After Dark SEARCH + FAQ visual alignment
   Match NEWS / PARKS / WAIT TIMES without affecting other themes.
   ========================================================== */
body.theme-after-dark .search-shell,
body.theme-after-dark .faq-shell {
    background: #0d0818 !important;
}

body.theme-after-dark .search-shell .section-heading h1,
body.theme-after-dark .faq-shell .section-heading h1,
body.theme-after-dark .faq-shell .page-intro,
body.theme-after-dark .search-summary,
body.theme-after-dark .search-summary strong {
    color: #ffffff !important;
}

body.theme-after-dark .search-shell .section-heading span,
body.theme-after-dark .faq-shell .section-heading span {
    background: #ffc928 !important;
}

/* SEARCH */
body.theme-after-dark .search-form {
    background: #241833 !important;
    border: 1px solid #4a3760 !important;
    border-radius: 14px !important;
    padding: 18px !important;
    box-shadow: none !important;
}
body.theme-after-dark .search-form input {
    background: #1b122b !important;
    border-color: #563f70 !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
body.theme-after-dark .search-form input::placeholder {
    color: #ffffff !important;
    opacity: .78;
    -webkit-text-fill-color: #ffffff !important;
}
body.theme-after-dark .search-form input:focus {
    border-color: #ffc928 !important;
    box-shadow: 0 0 0 3px rgba(255,201,40,.12) !important;
}
body.theme-after-dark .search-groups > section {
    background: #241833 !important;
    border-color: #4a3760 !important;
    box-shadow: none !important;
}
body.theme-after-dark .search-groups h2 {
    color: #ffffff !important;
    border-bottom: 3px solid #ffc928 !important;
    padding-bottom: 9px !important;
    margin-bottom: 8px !important;
}
body.theme-after-dark .search-result {
    background: transparent !important;
    border-color: #563f70 !important;
}
body.theme-after-dark .search-result strong {
    color: #ffffff !important;
}
body.theme-after-dark .search-result span,
body.theme-after-dark .search-groups .muted {
    color: #d4c8e1 !important;
}
body.theme-after-dark .search-result:hover {
    background: #1b122b !important;
}

/* FAQ */
body.theme-after-dark .faq-search-wrap {
    background: #241833 !important;
    border-color: #4a3760 !important;
    box-shadow: none !important;
}
body.theme-after-dark .faq-search-wrap label {
    color: #ffffff !important;
}
body.theme-after-dark .faq-search-wrap input {
    background: #1b122b !important;
    border-color: #563f70 !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
body.theme-after-dark .faq-search-wrap input::placeholder {
    color: #ffffff !important;
    opacity: .78;
    -webkit-text-fill-color: #ffffff !important;
}
body.theme-after-dark .faq-search-wrap input:focus {
    border-color: #ffc928 !important;
    box-shadow: 0 0 0 3px rgba(255,201,40,.12) !important;
}
body.theme-after-dark .faq-section > h2 {
    color: #ffffff !important;
    border-bottom-color: #ffc928 !important;
}
body.theme-after-dark .faq-item {
    background: #241833 !important;
    border-color: #4a3760 !important;
    box-shadow: none !important;
}
body.theme-after-dark .faq-item summary {
    color: #ffffff !important;
}
body.theme-after-dark .faq-item:hover,
body.theme-after-dark .faq-item[open] {
    background: #21152f !important;
    border-color: #563f70 !important;
}
body.theme-after-dark .faq-item summary span {
    background: #ffc928 !important;
    color: #171022 !important;
}
body.theme-after-dark .faq-answer,
body.theme-after-dark .faq-no-results,
body.theme-after-dark .faq-no-results a {
    color: #d4c8e1 !important;
}

/* ==========================================================
   ParkPulse v12.44 — After Dark unified public/admin styling
   HOME · IDEAS · PROFILE · FOR YOU · ADMIN
   Intentionally scoped to After Dark only.
   ========================================================== */

/* Shared page shells */
body.theme-after-dark .homepage-shell,
body.theme-after-dark .ideas-shell,
body.theme-after-dark .profile-shell,
body.theme-after-dark .for-you-shell,
body.theme-after-dark.admin-page .admin-shell,
body.theme-after-dark.admin-page .editor-shell {
    background: #0d0818 !important;
}

/* HOME */
body.theme-after-dark .homepage-shell .section-heading h1,
body.theme-after-dark .homepage-shell .news-copy h2,
body.theme-after-dark .homepage-shell .news-copy h2 a,
body.theme-after-dark .homepage-shell .side-card h3,
body.theme-after-dark .homepage-shell .home-welcome-copy strong {
    color: #ffffff !important;
}
body.theme-after-dark .homepage-shell .section-heading span {
    background: #ffc928 !important;
}
body.theme-after-dark .homepage-shell .news-card,
body.theme-after-dark .homepage-shell .side-card,
body.theme-after-dark .homepage-shell .home-welcome-card {
    background: #241833 !important;
    border-color: #4a3760 !important;
    box-shadow: none !important;
}
body.theme-after-dark .homepage-shell .news-copy p,
body.theme-after-dark .homepage-shell .meta span,
body.theme-after-dark .homepage-shell .side-card p,
body.theme-after-dark .homepage-shell .side-card small,
body.theme-after-dark .homepage-shell .home-welcome-copy span {
    color: #d4c8e1 !important;
}
body.theme-after-dark .homepage-shell .read-more,
body.theme-after-dark .homepage-shell .side-card a:not(.yellow-button),
body.theme-after-dark .homepage-shell .trending-row b {
    color: #ffc928 !important;
}
body.theme-after-dark .homepage-shell .trending-row,
body.theme-after-dark .homepage-shell .social-row {
    border-color: #563f70 !important;
}
body.theme-after-dark .homepage-shell .trending-row:hover,
body.theme-after-dark .homepage-shell .social-row:hover {
    background: #1b122b !important;
}

/* IDEAS */
body.theme-after-dark .ideas-hero {
    background: #241833 !important;
    border: 1px solid #4a3760 !important;
    box-shadow: none !important;
}
body.theme-after-dark .ideas-hero h1,
body.theme-after-dark .ideas-toolbar strong,
body.theme-after-dark .idea-card h2,
body.theme-after-dark .ideas-empty h2,
body.theme-after-dark .idea-modal-dialog h2,
body.theme-after-dark .idea-form label {
    color: #ffffff !important;
}
body.theme-after-dark .ideas-hero p,
body.theme-after-dark .ideas-toolbar > div:first-child,
body.theme-after-dark .idea-card > p,
body.theme-after-dark .idea-card-footer,
body.theme-after-dark .idea-category,
body.theme-after-dark .idea-modal-dialog > p,
body.theme-after-dark .idea-form-note {
    color: #d4c8e1 !important;
}
body.theme-after-dark .idea-card,
body.theme-after-dark .ideas-empty,
body.theme-after-dark .idea-modal-dialog {
    background: #241833 !important;
    border-color: #4a3760 !important;
    box-shadow: none !important;
}
body.theme-after-dark .idea-card-footer {
    border-top-color: #563f70 !important;
}
body.theme-after-dark .ideas-sort a,
body.theme-after-dark .idea-vote-button {
    background: #1b122b !important;
    border-color: #563f70 !important;
    color: #ffffff !important;
}
body.theme-after-dark .ideas-sort a.active,
body.theme-after-dark .idea-vote-button.voted {
    background: #ffc928 !important;
    border-color: #ffc928 !important;
    color: #171022 !important;
}
body.theme-after-dark .idea-form input,
body.theme-after-dark .idea-form select,
body.theme-after-dark .idea-form textarea {
    background: #1b122b !important;
    border-color: #563f70 !important;
    color: #ffffff !important;
}
body.theme-after-dark .idea-form input:focus,
body.theme-after-dark .idea-form select:focus,
body.theme-after-dark .idea-form textarea:focus {
    border-color: #ffc928 !important;
    box-shadow: 0 0 0 3px rgba(255,201,40,.12) !important;
}

/* PROFILE — account and public profiles */
body.theme-after-dark .profile-header,
body.theme-after-dark .profile-panel,
body.theme-after-dark .profile-stats > div {
    background: #241833 !important;
    border-color: #4a3760 !important;
    box-shadow: none !important;
}
body.theme-after-dark .profile-header h1,
body.theme-after-dark .profile-panel h2,
body.theme-after-dark .profile-panel h3,
body.theme-after-dark .profile-panel strong,
body.theme-after-dark .profile-stats strong,
body.theme-after-dark .profile-details strong {
    color: #ffffff !important;
}
body.theme-after-dark .profile-header > div > span:not(.profile-role),
body.theme-after-dark .profile-header p,
body.theme-after-dark .profile-panel p,
body.theme-after-dark .profile-panel label,
body.theme-after-dark .profile-stats span,
body.theme-after-dark .profile-details span {
    color: #d4c8e1 !important;
}
body.theme-after-dark .profile-header a,
body.theme-after-dark a.side-card-secondary {
    color: #ffc928 !important;
}
body.theme-after-dark .profile-panel input,
body.theme-after-dark .profile-panel textarea,
body.theme-after-dark .profile-panel select {
    background: #1b122b !important;
    border-color: #563f70 !important;
    color: #ffffff !important;
}
body.theme-after-dark .profile-panel input:focus,
body.theme-after-dark .profile-panel textarea:focus,
body.theme-after-dark .profile-panel select:focus {
    border-color: #ffc928 !important;
    box-shadow: 0 0 0 3px rgba(255,201,40,.12) !important;
}
body.theme-after-dark .appearance-setting {
    border-color: #563f70 !important;
}
body.theme-after-dark .appearance-setting legend {
    color: #ffffff !important;
}
body.theme-after-dark .appearance-setting > p {
    color: #d4c8e1 !important;
}

/* FOR YOU */
body.theme-after-dark .for-you-shell .section-heading h1,
body.theme-after-dark .for-you-shell .subhead,
body.theme-after-dark .for-you-shell .simple-news-grid h3,
body.theme-after-dark .for-you-shell .simple-news-grid h3 a,
body.theme-after-dark .for-you-shell .profile-panel h3,
body.theme-after-dark .for-you-shell .favorite-ride-link strong,
body.theme-after-dark .for-you-shell .info-panel h2 {
    color: #ffffff !important;
}
body.theme-after-dark .for-you-shell .section-heading span {
    background: #ffc928 !important;
}
body.theme-after-dark .for-you-shell .page-intro,
body.theme-after-dark .for-you-shell .simple-news-grid p,
body.theme-after-dark .for-you-shell .favorite-ride-meta,
body.theme-after-dark .for-you-shell .profile-panel p,
body.theme-after-dark .for-you-shell .info-panel p {
    color: #d4c8e1 !important;
}
body.theme-after-dark .for-you-shell .simple-news-grid article,
body.theme-after-dark .for-you-shell .profile-panel,
body.theme-after-dark .for-you-shell .info-panel {
    background: #241833 !important;
    border-color: #4a3760 !important;
    box-shadow: none !important;
}
body.theme-after-dark .for-you-shell .simple-news-grid article:hover,
body.theme-after-dark .for-you-shell .favorite-ride-link:hover {
    background: #1b122b !important;
}
body.theme-after-dark .for-you-shell .favorite-ride-link {
    border-color: #563f70 !important;
}
body.theme-after-dark .for-you-shell .favorite-live-wait {
    color: #ffc928 !important;
}

/* ADMIN — preserve status semantics, restyle core chrome */
body.theme-after-dark.admin-page .admin-hero,
body.theme-after-dark.admin-page .admin-card,
body.theme-after-dark.admin-page .editor-main,
body.theme-after-dark.admin-page .editor-side .admin-card,
body.theme-after-dark.admin-page .admin-stats > a,
body.theme-after-dark.admin-page .admin-stats > div,
body.theme-after-dark.admin-page .moderation-item,
body.theme-after-dark.admin-page .filter-card {
    background: #241833 !important;
    border-color: #4a3760 !important;
    box-shadow: none !important;
}
body.theme-after-dark.admin-page .admin-hero {
    background-image: none !important;
}
body.theme-after-dark.admin-page .admin-hero h1,
body.theme-after-dark.admin-page .admin-card h2,
body.theme-after-dark.admin-page .admin-card h3,
body.theme-after-dark.admin-page .admin-card-head h2,
body.theme-after-dark.admin-page .admin-stats strong,
body.theme-after-dark.admin-page .activity-row strong,
body.theme-after-dark.admin-page .workflow-mini b,
body.theme-after-dark.admin-page .admin-ranking strong,
body.theme-after-dark.admin-page .metric-bars strong,
body.theme-after-dark.admin-page .editor-form label {
    color: #ffffff !important;
}
body.theme-after-dark.admin-page .admin-hero p,
body.theme-after-dark.admin-page .admin-card p,
body.theme-after-dark.admin-page .admin-card-head p,
body.theme-after-dark.admin-page .activity-row small,
body.theme-after-dark.admin-page .metric-bars span,
body.theme-after-dark.admin-page .admin-ranking li span,
body.theme-after-dark.admin-page .admin-table td,
body.theme-after-dark.admin-page .admin-table td small {
    color: #d4c8e1 !important;
}
body.theme-after-dark.admin-page .admin-kicker,
body.theme-after-dark.admin-page .admin-card-eyebrow {
    color: #ffc928 !important;
}
body.theme-after-dark.admin-page .admin-tabs {
    background: #241833 !important;
    border-color: #4a3760 !important;
}
body.theme-after-dark.admin-page .admin-tabs a {
    color: #d4c8e1 !important;
}
body.theme-after-dark.admin-page .admin-tabs a:hover,
body.theme-after-dark.admin-page .admin-tabs a.active {
    background: #7f4bd1 !important;
    color: #000000 !important;
}
body.theme-after-dark.admin-page .admin-tabs a b {
    background: #ffc928 !important;
    color: #171022 !important;
}
body.theme-after-dark.admin-page .admin-table {
    border-color: #4a3760 !important;
}
body.theme-after-dark.admin-page .admin-table thead th {
    background: #7f4bd1 !important;
    color: #000000 !important;
    border-color: #6d3fc0 !important;
}
body.theme-after-dark.admin-page .admin-table tbody td {
    background: #241833 !important;
    border-color: #4a3760 !important;
}
body.theme-after-dark.admin-page .admin-table tbody tr:hover td {
    background: #1b122b !important;
}
body.theme-after-dark.admin-page .workflow-mini span,
body.theme-after-dark.admin-page .admin-filter-tabs a,
body.theme-after-dark.admin-page .attention-item {
    background: #1b122b !important;
    border-color: #563f70 !important;
    color: #d4c8e1 !important;
}
body.theme-after-dark.admin-page .admin-filter-tabs a:hover,
body.theme-after-dark.admin-page .admin-filter-tabs a.active {
    background: #7f4bd1 !important;
    border-color: #7f4bd1 !important;
    color: #000000 !important;
}
body.theme-after-dark.admin-page .admin-filter-form input,
body.theme-after-dark.admin-page .admin-filter-form select,
body.theme-after-dark.admin-page .editor-form input,
body.theme-after-dark.admin-page .editor-form textarea,
body.theme-after-dark.admin-page .editor-form select,
body.theme-after-dark.admin-page .park-style-bulk-form select {
    background: #1b122b !important;
    border-color: #563f70 !important;
    color: #ffffff !important;
}
body.theme-after-dark.admin-page .admin-filter-form input:focus,
body.theme-after-dark.admin-page .admin-filter-form select:focus,
body.theme-after-dark.admin-page .editor-form input:focus,
body.theme-after-dark.admin-page .editor-form textarea:focus,
body.theme-after-dark.admin-page .editor-form select:focus {
    border-color: #ffc928 !important;
    box-shadow: 0 0 0 3px rgba(255,201,40,.12) !important;
}
body.theme-after-dark.admin-page .activity-row,
body.theme-after-dark.admin-page .admin-ranking li,
body.theme-after-dark.admin-page .admin-pagination {
    border-color: #4a3760 !important;
}
body.theme-after-dark.admin-page .metric-bars i {
    background: #1b122b !important;
}
body.theme-after-dark.admin-page .metric-bars i b {
    background: #ffc928 !important;
}

/* Keep attention/status meaning visible in After Dark */
body.theme-after-dark.admin-page .attention-item.has-items {
    background: #3a3017 !important;
    border-color: #7d692d !important;
}
body.theme-after-dark.admin-page .attention-item.has-items-soft {
    background: #35251f !important;
    border-color: #6e493b !important;
}
body.theme-after-dark.admin-page .attention-item.is-clear {
    background: #17291f !important;
    border-color: #31523e !important;
}


/* ParkPulse v12.45 — Celebration reason below the park name. */
body .park-profile-card .park-celebration-reason {
    margin: 5px 0 8px;
    padding: 6px 9px;
    border: 1px solid currentColor;
    border-radius: 8px;
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: .015em;
    opacity: .9;
}
body .park-profile-card.park-special-style .park-celebration-reason {
    color: var(--special-text) !important;
    background: rgba(255,255,255,.18) !important;
    border-color: rgba(15,31,48,.22) !important;
}

/* ParkPulse v12.49 — Red Celebration Card: deeper dark burgundy */
.park-profile-card.park-style-red {
    --special-card-border:#55272d;
    --special-card-bg:linear-gradient(145deg,#55242b 0%,#421a20 50%,#2c1116 100%);
    --special-logo-bg:linear-gradient(145deg,#421a20 0%,#55242b 52%,#2c1116 100%);
    --special-logo-border:rgba(255,255,255,.14);
    --special-text:#fff8f8;
    --special-shadow:rgba(35,10,15,.28);
    --special-shadow-hover:rgba(35,10,15,.38);
}
.park-profile-card.park-style-red::before {
    background:linear-gradient(115deg,transparent 28%,rgba(255,255,255,.05) 47%,transparent 66%);
}


/* ==========================================================
   ParkPulse v12.50 — Sitewide UI Language
   Shared component rhythm across every appearance theme.
   Celebration cards keep their own visual identity.
   ========================================================== */
:root{
  --pp-radius-sm:10px;--pp-radius-md:14px;--pp-radius-lg:18px;
  --pp-space-1:6px;--pp-space-2:10px;--pp-space-3:14px;--pp-space-4:18px;--pp-space-5:24px;
  --pp-control-h:44px;--pp-focus:0 0 0 3px rgba(23,120,212,.22);
  --pp-ui-surface:#fff;--pp-ui-surface-alt:#f7f9fb;--pp-ui-text:#12233a;--pp-ui-muted:#6d7886;
  --pp-ui-border:#dfe5eb;--pp-ui-accent:#ffc928;--pp-ui-accent-text:#0b294c;--pp-ui-heading:#0b294c;
  --pp-ui-shadow:0 8px 24px rgba(11,41,76,.08);--pp-ui-hover-shadow:0 12px 30px rgba(11,41,76,.13);
}
body.theme-dark{--pp-ui-surface:#102f58;--pp-ui-surface-alt:#0b294c;--pp-ui-text:#f4f8fc;--pp-ui-muted:#bdc9d6;--pp-ui-border:#31506f;--pp-ui-accent:#ffc928;--pp-ui-accent-text:#0b294c;--pp-ui-heading:#fff;--pp-ui-shadow:0 8px 24px rgba(0,0,0,.18);--pp-ui-hover-shadow:0 12px 30px rgba(0,0,0,.26)}
body.theme-pulse-blue{--pp-ui-surface:#f4fbff;--pp-ui-surface-alt:#eaf6ff;--pp-ui-text:#17324e;--pp-ui-muted:#587086;--pp-ui-border:#bddcf3;--pp-ui-accent:#bfe8ff;--pp-ui-accent-text:#0b294c;--pp-ui-heading:#0b294c}
body.theme-sunset{--pp-ui-surface:#fffaf1;--pp-ui-surface-alt:#fff4df;--pp-ui-text:#17324e;--pp-ui-muted:#766653;--pp-ui-border:#efd6aa;--pp-ui-accent:#e98b45;--pp-ui-accent-text:#172536;--pp-ui-heading:#17324e}
body.theme-midnight{--pp-ui-surface:#101d31;--pp-ui-surface-alt:#0a1526;--pp-ui-text:#edf7ff;--pp-ui-muted:#a9bed0;--pp-ui-border:#294c6d;--pp-ui-accent:#ffc928;--pp-ui-accent-text:#07101e;--pp-ui-heading:#fff;--pp-ui-shadow:0 8px 26px rgba(0,0,0,.3);--pp-ui-hover-shadow:0 14px 34px rgba(0,0,0,.4)}
body.theme-after-dark{--pp-ui-surface:#241735;--pp-ui-surface-alt:#1b1129;--pp-ui-text:#f8f3ff;--pp-ui-muted:#cdbfdd;--pp-ui-border:#5c3c7c;--pp-ui-accent:#ffc928;--pp-ui-accent-text:#17101f;--pp-ui-heading:#fff;--pp-ui-shadow:0 8px 26px rgba(10,4,18,.28);--pp-ui-hover-shadow:0 14px 34px rgba(10,4,18,.4)}
body.theme-adventure{--pp-ui-surface:#fffaf0;--pp-ui-surface-alt:#f7f0df;--pp-ui-text:#263a32;--pp-ui-muted:#6f766c;--pp-ui-border:#d9cda9;--pp-ui-accent:#d9bd63;--pp-ui-accent-text:#173b31;--pp-ui-heading:#173b31}
body.theme-coaster-red{--pp-ui-surface:#fff;--pp-ui-surface-alt:#f3f5f7;--pp-ui-text:#172a3d;--pp-ui-muted:#697583;--pp-ui-border:#dfe3e8;--pp-ui-accent:#c94b4b;--pp-ui-accent-text:#fff;--pp-ui-heading:#0b294c}

/* Typography and section rhythm */
main :is(h1,h2,h3){letter-spacing:-.02em}
main :is(.section-heading,.parks-country-heading,.wait-list-heading){margin-bottom:var(--pp-space-4)}
main :is(.section-heading h1,.section-heading h2,.parks-country-heading h2,.wait-list-heading h2){color:var(--pp-ui-heading)}
main :is(.section-heading,.parks-country-heading,.wait-list-heading)::after{border-color:var(--pp-ui-accent)}

/* Shared surfaces — excludes special celebration park cards on purpose. */
body :is(.news-card,.article-card,.profile-panel,.auth-card,.park-community-card,.park-hours-card,.park-news-card,.wait-workspace,.wait-times-column,.wait-park-column,.wait-park-card,.wait-ride,.notification-item,.comment,.comment-card,.comment-form,.passport-panel,.passport-card,.passport-map-panel,.search-result,.search-card,.article-main,.article-shell,.side-card,.idea-card,.ideas-empty,.member-wait-dashboard,.admin-card,.admin-panel,.stat-card){
  border-radius:var(--pp-radius-md);border-color:var(--pp-ui-border);box-shadow:var(--pp-ui-shadow);
}
body :is(.news-card,.article-card,.wait-park-card,.wait-ride,.notification-item,.search-result,.search-card,.idea-card,.passport-card){transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
@media (hover:hover){body :is(.news-card,.article-card,.wait-park-card,.wait-ride,.notification-item,.search-result,.search-card,.idea-card,.passport-card):hover{transform:translateY(-2px);box-shadow:var(--pp-ui-hover-shadow)}}

/* Controls: one height, radius and focus language sitewide. */
body :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){border-radius:var(--pp-radius-sm);border-color:var(--pp-ui-border);min-height:var(--pp-control-h);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
body textarea{min-height:110px}
body :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus{outline:none;border-color:var(--pp-ui-accent);box-shadow:var(--pp-focus)}
body :is(button,.button,.btn,.yellow-button,.read-more,.article-read-more,.register-button,.create-account-button,.idea-vote-button){border-radius:var(--pp-radius-sm);min-height:40px;font-weight:800;letter-spacing:.01em;transition:transform .15s ease,filter .15s ease,box-shadow .15s ease}
@media (hover:hover){body :is(button,.button,.btn,.yellow-button,.read-more,.article-read-more,.register-button,.create-account-button,.idea-vote-button):hover{filter:brightness(.98)}}
body :is(button,.button,.btn,.yellow-button,.read-more,.article-read-more,.register-button,.create-account-button,.idea-vote-button):focus-visible{outline:none;box-shadow:var(--pp-focus)}

/* Pills, badges and small status UI. */
body :is(.badge,.status-badge,.filter-chip,.tab-button,.park-status,.notification-badge){border-radius:999px;font-weight:800;letter-spacing:.02em}

/* Tables: same header language in public/admin areas. */
body table{border-collapse:separate;border-spacing:0;width:100%}
body table thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.055em;font-weight:900}
body table th:first-child{border-top-left-radius:var(--pp-radius-sm)}
body table th:last-child{border-top-right-radius:var(--pp-radius-sm)}
body table tbody tr{transition:background .15s ease}

/* Links and keyboard accessibility. */
main a:not(.button):not(.btn):not(.yellow-button):not(.read-more):not(.article-read-more):focus-visible{outline:2px solid var(--pp-ui-accent);outline-offset:3px;border-radius:4px}

/* Empty/help states use a shared visual treatment. */
body :is(.empty-state,.ideas-empty,.search-empty,.no-results){border:1px dashed var(--pp-ui-border);border-radius:var(--pp-radius-md);padding:var(--pp-space-5)}

/* Mobile rhythm: consistent edge spacing and full-width primary controls where useful. */
@media (max-width:700px){
  :root{--pp-radius-md:12px;--pp-radius-lg:15px;--pp-space-5:20px}
  main :is(h1,.section-heading h1){line-height:1.08}
  body :is(input:not([type="checkbox"]):not([type="radio"]),select){min-height:46px}
  .admin-table-wrap,.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* Never let the shared UI layer flatten Celebration Card identities. */
.park-profile-card.park-special-style{box-shadow:0 10px 26px var(--special-shadow)}
@media (hover:hover){.park-profile-card.park-special-style:hover{box-shadow:0 14px 34px var(--special-shadow-hover)}}

/* ==========================================================
   ParkPulse v12.51 — After Dark HOME + Admin full surface pass
   ========================================================== */
body.theme-after-dark {
    --after-dark-page:#0d0818;
    --after-dark-surface:#241833;
    --after-dark-surface-2:#1b122b;
    --after-dark-border:#4a3760;
    --after-dark-border-2:#563f70;
    --after-dark-purple:#7f4bd1;
    --after-dark-purple-hover:#9160dd;
    --after-dark-yellow:#ffc928;
    --after-dark-text:#ffffff;
    --after-dark-muted:#d4c8e1;
}

/* HOME — remove remaining navy/blue surfaces and mirror NEWS palette */
body.theme-after-dark .homepage-shell,
body.theme-after-dark .homepage-shell main,
body.theme-after-dark .homepage-shell .home-main,
body.theme-after-dark .homepage-shell .home-content,
body.theme-after-dark .homepage-shell .home-grid,
body.theme-after-dark .homepage-shell .news-list,
body.theme-after-dark .homepage-shell .sidebar {
    background-color:var(--after-dark-page) !important;
}
body.theme-after-dark .homepage-shell :is(
    .news-card,.article-card,.side-card,.home-welcome-card,.account-teaser,.most-read-card,
    .social-card,.home-panel,.home-card,.sidebar-card,.member-card,.home-feature-card
) {
    background:var(--after-dark-surface) !important;
    border-color:var(--after-dark-border) !important;
    color:var(--after-dark-text) !important;
    box-shadow:none !important;
}
body.theme-after-dark .homepage-shell :is(
    .trending-row,.social-row,.most-read-row,.home-list-row,.account-benefit,.home-welcome-meta
) {
    background:transparent !important;
    border-color:var(--after-dark-border-2) !important;
}
body.theme-after-dark .homepage-shell :is(
    .trending-row,.social-row,.most-read-row,.home-list-row
):hover {
    background:var(--after-dark-surface-2) !important;
}
body.theme-after-dark .homepage-shell :is(h1,h2,h3,h4,strong,.news-copy h2 a,.side-card h3) {
    color:var(--after-dark-text) !important;
    -webkit-text-fill-color:var(--after-dark-text) !important;
}
body.theme-after-dark .homepage-shell :is(p,small,.meta,.meta span,.news-card-meta,.home-welcome-copy span) {
    color:var(--after-dark-muted) !important;
}
body.theme-after-dark .homepage-shell :is(.read-more,.side-card a:not(.yellow-button),.trending-row b) {
    color:var(--after-dark-yellow) !important;
    -webkit-text-fill-color:var(--after-dark-yellow) !important;
}

/* PROFILE — Appearance uses the exact same panel surface */
body.theme-after-dark .profile-panel .appearance-setting,
body.theme-after-dark .appearance-setting {
    background:var(--after-dark-surface) !important;
    border-color:var(--after-dark-border) !important;
    color:var(--after-dark-text) !important;
    box-shadow:none !important;
}

/* ADMIN — every structural card/panel follows the After Dark surfaces */
body.theme-after-dark.admin-page :is(
    .admin-grid-panel,.admin-dashboard-grid,.admin-panel,.admin-card,.admin-card-head,.admin-card-body,
    .admin-empty,.empty-state,.admin-note,.admin-help,.editor-help-box,
    .analytics-grid,.analytics-grid-wide,.stats-three,.dashboard-two,
    .stats-card-wide,.stats-facts,.activity-card,.article-card,.article-manager,.user-manager,
    .moderation-card,.moderation-item,.filter-card,.publish-card,.featured-admin-card,
    .editor-main,.editor-side,.editor-sidebar,.editor-grid,
    .admin-stats > a,.admin-stats > div
) {
    background:var(--after-dark-surface) !important;
    border-color:var(--after-dark-border) !important;
    color:var(--after-dark-text) !important;
    box-shadow:none !important;
}
body.theme-after-dark.admin-page :is(.admin-empty,.empty-state,.admin-note,.admin-help,.editor-help-box) {
    background:var(--after-dark-surface-2) !important;
    color:var(--after-dark-muted) !important;
}
body.theme-after-dark.admin-page :is(
    .admin-grid-panel,.admin-dashboard-grid,.analytics-grid,.analytics-grid-wide,.stats-three,.dashboard-two
) > :is(.admin-card,.article-card,.stat-card) {
    background:var(--after-dark-surface) !important;
    border-color:var(--after-dark-border) !important;
}
body.theme-after-dark.admin-page :is(.admin-card-head,.stats-section-head) {
    background:transparent !important;
    border-color:var(--after-dark-border) !important;
}
body.theme-after-dark.admin-page :is(
    .admin-card h2,.admin-card h3,.admin-card h4,.admin-card-head h2,.admin-card-head h3,
    .stats-section-head h2,.admin-empty strong,.article-card h2,.article-card h3
) {
    color:var(--after-dark-text) !important;
    -webkit-text-fill-color:var(--after-dark-text) !important;
}
body.theme-after-dark.admin-page :is(
    .admin-card p,.admin-card small,.admin-card-head p,.admin-empty,.stats-sub,.stats-summary,
    .stats-empty,.stats-footnote,.muted-admin,.side-help,.editor-help,.field-help
) {
    color:var(--after-dark-muted) !important;
}

/* Admin rows, lists and nested helper surfaces */
body.theme-after-dark.admin-page :is(
    .workflow-mini span,.activity-row,.admin-ranking li,.metric-bars > div,
    .admin-pagination,.admin-table-wrap,.admin-table tbody td,.user-row,.article-row,.moderation-row
) {
    border-color:var(--after-dark-border) !important;
}
body.theme-after-dark.admin-page .workflow-mini span,
body.theme-after-dark.admin-page .admin-pagination,
body.theme-after-dark.admin-page .admin-table-wrap {
    background:var(--after-dark-surface-2) !important;
}
body.theme-after-dark.admin-page .admin-table tbody td {
    background:var(--after-dark-surface) !important;
}

/* Remove blue hover states throughout Admin */
body.theme-after-dark.admin-page :is(
    .admin-stats > a,.admin-card,.article-card,.activity-row,.admin-ranking li,
    .workflow-mini span,.user-row,.article-row,.moderation-row
):hover {
    background:var(--after-dark-surface-2) !important;
    border-color:var(--after-dark-border-2) !important;
    box-shadow:none !important;
}
body.theme-after-dark.admin-page .admin-table tbody tr:hover,
body.theme-after-dark.admin-page .admin-table tbody tr:hover td {
    background:var(--after-dark-surface-2) !important;
    color:var(--after-dark-text) !important;
}

/* Secondary buttons, actions, tabs and pagination */
body.theme-after-dark.admin-page :is(
    .admin-ghost-button,.actions > a,.actions button,.action-edit,
    .admin-pagination a,.admin-pagination span,.admin-filter-tabs a,.admin-tabs a
) {
    background:var(--after-dark-surface-2) !important;
    border-color:var(--after-dark-border-2) !important;
    color:var(--after-dark-muted) !important;
}
body.theme-after-dark.admin-page :is(
    .admin-ghost-button,.actions > a,.actions button,.action-edit,
    .admin-pagination a,.admin-filter-tabs a,.admin-tabs a
):hover,
body.theme-after-dark.admin-page :is(
    .admin-pagination .active,.admin-filter-tabs a.active,.admin-tabs a.active
) {
    background:var(--after-dark-purple) !important;
    border-color:var(--after-dark-purple) !important;
    color:#000000 !important;
    -webkit-text-fill-color:#000000 !important;
}

/* Primary yellow buttons keep ParkPulse yellow; hover becomes warm yellow, never blue */
body.theme-after-dark :is(.yellow-button,.button-primary,.btn-primary,.cta-button) {
    background:var(--after-dark-yellow) !important;
    border-color:var(--after-dark-yellow) !important;
    color:#171022 !important;
    -webkit-text-fill-color:#171022 !important;
}
body.theme-after-dark :is(.yellow-button,.button-primary,.btn-primary,.cta-button):hover,
body.theme-after-dark :is(.yellow-button,.button-primary,.btn-primary,.cta-button):focus-visible {
    background:#ffd95c !important;
    border-color:#ffd95c !important;
    color:#171022 !important;
    -webkit-text-fill-color:#171022 !important;
    box-shadow:0 0 0 3px rgba(255,201,40,.15) !important;
}

/* Admin form hover/focus states — purple/yellow, no blue */
body.theme-after-dark.admin-page :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),textarea,select,.body-editor
) {
    background:var(--after-dark-surface-2) !important;
    border-color:var(--after-dark-border-2) !important;
    color:var(--after-dark-text) !important;
}
body.theme-after-dark.admin-page :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),textarea,select,.body-editor
):hover {
    border-color:#76559a !important;
}
body.theme-after-dark.admin-page :is(input,textarea,select,.body-editor):focus {
    background:var(--after-dark-surface-2) !important;
    border-color:var(--after-dark-yellow) !important;
    box-shadow:0 0 0 3px rgba(255,201,40,.12) !important;
    outline:none !important;
}

/* ==========================================================
   ParkPulse v12.52 — After Dark HOME + Admin finishing pass
   Scoped to After Dark only.
   ========================================================== */

/* HOME: main content uses the same deep-purple field surface as NEWS search inputs. */
body.theme-after-dark .homepage-shell .main-column {
    background: var(--after-dark-surface-2) !important;
    border: 1px solid var(--after-dark-border-2) !important;
    box-shadow: none !important;
}

/* HOME: article cards and their copy area use the Welcome-card surface, never legacy navy. */
body.theme-after-dark .homepage-shell .news-card,
body.theme-after-dark .homepage-shell .news-card .news-copy {
    background: var(--after-dark-surface) !important;
    border-color: var(--after-dark-border) !important;
    box-shadow: none !important;
}
body.theme-after-dark .homepage-shell .news-card {
    border: 1px solid var(--after-dark-border) !important;
}

/* HOME: Most Read heading matches the Welcome card instead of the legacy blue heading. */
body.theme-after-dark .homepage-shell .trending-card > h3 {
    background: var(--after-dark-surface) !important;
    border-bottom-color: var(--after-dark-yellow) !important;
    color: var(--after-dark-text) !important;
    -webkit-text-fill-color: var(--after-dark-text) !important;
}

/* HOME: restore readable black numerals inside the yellow Top-5 circles. */
body.theme-after-dark .homepage-shell .trending-card .trending-row > b {
    background: var(--after-dark-yellow) !important;
    color: #171022 !important;
    -webkit-text-fill-color: #171022 !important;
    border: 0 !important;
}

/* ADMIN: KPI blocks under Community & Content / ParkPulse Traffic get the exact
   bordered-card finish used by dashboard statistics. */
body.theme-after-dark.admin-page .admin-stats > a,
body.theme-after-dark.admin-page .admin-stats > div,
body.theme-after-dark.admin-page .admin-stats-expanded > a,
body.theme-after-dark.admin-page .admin-stats-expanded > div {
    background: var(--after-dark-surface) !important;
    border: 1px solid var(--after-dark-border) !important;
    border-radius: 16px !important;
    box-shadow: none !important;
}
body.theme-after-dark.admin-page .admin-stats > a:hover,
body.theme-after-dark.admin-page .admin-stats > div:hover,
body.theme-after-dark.admin-page .admin-stats-expanded > a:hover,
body.theme-after-dark.admin-page .admin-stats-expanded > div:hover {
    background: var(--after-dark-surface-2) !important;
    border-color: var(--after-dark-border-2) !important;
    box-shadow: none !important;
}

/* ==========================================================
   ParkPulse v12.53 — After Dark PROFILE / Passport Map / Admin polish
   Scoped to After Dark only.
   ========================================================== */

/* NEWS: category badge blends into the article card surface; text stays white. */
body.theme-after-dark .article-category-badge,
body.theme-after-dark .article-image-badge.article-category-badge {
    background: var(--after-dark-surface) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border: 1px solid var(--after-dark-border) !important;
    box-shadow: none !important;
}

/* PROFILE: View Map button follows After Dark controls. */
body.theme-after-dark .passport-map-button {
    background: var(--after-dark-purple) !important;
    border: 1px solid var(--after-dark-purple) !important;
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
}
body.theme-after-dark .passport-map-button:hover,
body.theme-after-dark .passport-map-button:focus-visible {
    background: #6d3fc0 !important;
    border-color: #6d3fc0 !important;
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
}

/* Passport Map overlay — full After Dark treatment. */
body.theme-after-dark .passport-map-overlay {
    background: rgba(15, 8, 24, .84) !important;
}
body.theme-after-dark .passport-map-modal {
    background: var(--after-dark-surface) !important;
    border: 1px solid var(--after-dark-border) !important;
    box-shadow: 0 28px 80px rgba(0,0,0,.44) !important;
}
body.theme-after-dark .passport-map-top {
    background: var(--after-dark-surface) !important;
    border-bottom: 1px solid var(--after-dark-border) !important;
    color: var(--after-dark-text) !important;
}
body.theme-after-dark .passport-map-top h2 {
    color: var(--after-dark-text) !important;
    -webkit-text-fill-color: var(--after-dark-text) !important;
}
body.theme-after-dark .map-kicker {
    color: var(--after-dark-yellow) !important;
}
body.theme-after-dark .passport-map-close {
    background: var(--after-dark-surface-2) !important;
    border: 1px solid var(--after-dark-border-2) !important;
    color: var(--after-dark-text) !important;
}
body.theme-after-dark .passport-map-close:hover {
    background: var(--after-dark-purple) !important;
    border-color: var(--after-dark-purple) !important;
    color: #000000 !important;
}
body.theme-after-dark .passport-map-filters {
    background: var(--after-dark-surface-2) !important;
    border-bottom-color: var(--after-dark-border) !important;
}
body.theme-after-dark .passport-map-filters button {
    background: var(--after-dark-surface) !important;
    border-color: var(--after-dark-border-2) !important;
    color: var(--after-dark-muted) !important;
}
body.theme-after-dark .passport-map-filters button:hover {
    background: #342148 !important;
    color: #ffffff !important;
}
body.theme-after-dark .passport-map-filters button.active {
    background: var(--after-dark-purple) !important;
    border-color: var(--after-dark-purple) !important;
    color: #000000 !important;
}
body.theme-after-dark .passport-map-legend {
    background: var(--after-dark-surface) !important;
    border-top: 1px solid var(--after-dark-border) !important;
    color: var(--after-dark-muted) !important;
}

/* ADMIN: KPI rows align exactly like the dashboard cards. */
body.theme-after-dark.admin-page .home-view-kpis {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 15px !important;
    align-items: stretch !important;
}
body.theme-after-dark.admin-page .home-view-kpis > span {
    display: flex !important;
    min-width: 0 !important;
    min-height: 112px !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    padding: 18px !important;
    background: var(--after-dark-surface) !important;
    border: 1px solid var(--after-dark-border) !important;
    border-radius: 16px !important;
    box-shadow: none !important;
}
body.theme-after-dark.admin-page .home-view-kpis > span em {
    color: var(--after-dark-muted) !important;
}
body.theme-after-dark.admin-page .home-view-kpis > span strong {
    color: var(--after-dark-text) !important;
    -webkit-text-fill-color: var(--after-dark-text) !important;
}

/* Admin ranking and metric blocks use the After Dark nested-surface color. */
body.theme-after-dark.admin-page .admin-ranking,
body.theme-after-dark.admin-page .metric-bars {
    background: var(--after-dark-surface-2) !important;
    border: 1px solid var(--after-dark-border) !important;
    border-radius: 12px !important;
    padding: 10px 14px !important;
}
body.theme-after-dark.admin-page .admin-ranking li,
body.theme-after-dark.admin-page .metric-bars > div {
    border-color: var(--after-dark-border) !important;
}
body.theme-after-dark.admin-page .metric-bars i {
    background: #342148 !important;
}
body.theme-after-dark.admin-page .metric-bars i b {
    background: var(--after-dark-yellow) !important;
}

/* Analytics layout itself should disappear into the admin page shell,
   while its child cards remain surfaced. */
body.theme-after-dark.admin-page .analytics-grid,
body.theme-after-dark.admin-page .analytics-grid-wide,
body.theme-after-dark.admin-page .analytics-grid.stats-three,
body.theme-after-dark.admin-page .stats-three,
body.theme-after-dark.admin-page .dashboard-two {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

/* Tabs / filters share the page-shell background; individual controls carry the UI. */
body.theme-after-dark.admin-page .admin-tabs,
body.theme-after-dark.admin-page .admin-filter-tabs,
body.theme-after-dark.admin-page .admin-filter,
body.theme-after-dark.admin-page .filter-card {
    background: transparent !important;
    border-color: var(--after-dark-border) !important;
    box-shadow: none !important;
}
body.theme-after-dark.admin-page .admin-tabs {
    border: 0 !important;
    border-bottom: 1px solid var(--after-dark-border) !important;
    border-radius: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    gap: 7px !important;
}
body.theme-after-dark.admin-page .admin-tabs a,
body.theme-after-dark.admin-page .admin-filter-tabs a {
    background: var(--after-dark-surface) !important;
    border: 1px solid var(--after-dark-border) !important;
    border-radius: 9px !important;
    color: var(--after-dark-muted) !important;
    -webkit-text-fill-color: var(--after-dark-muted) !important;
}
body.theme-after-dark.admin-page .admin-tabs a:hover,
body.theme-after-dark.admin-page .admin-filter-tabs a:hover {
    background: #342148 !important;
    border-color: var(--after-dark-border-2) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
body.theme-after-dark.admin-page .admin-tabs a.active,
body.theme-after-dark.admin-page .admin-filter-tabs a.active {
    background: var(--after-dark-purple) !important;
    border-color: var(--after-dark-purple) !important;
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
}
body.theme-after-dark.admin-page .admin-tabs a b,
body.theme-after-dark.admin-page .admin-filter-tabs a b {
    background: var(--after-dark-yellow) !important;
    color: #171022 !important;
}

/* Responsive KPI alignment */
@media (max-width: 900px) {
    body.theme-after-dark.admin-page .home-view-kpis {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    }
}
@media (max-width: 560px) {
    body.theme-after-dark.admin-page .home-view-kpis {
        grid-template-columns: 1fr !important;
    }
}

/* ==========================================================
   ParkPulse v12.54 — After Dark Admin KPI alignment
   Uniform internal alignment for dashboard/stat KPI grids.
   ========================================================== */
body.theme-after-dark.admin-page :is(.admin-stats,.admin-stats-expanded,.stats-kpi-grid,.ext-kpi-grid) > :is(a,div) {
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    min-width: 0 !important;
    min-height: 154px !important;
    padding: 18px 18px 16px !important;
}

body.theme-after-dark.admin-page :is(.admin-stats,.admin-stats-expanded,.stats-kpi-grid,.ext-kpi-grid) > :is(a,div) > .stat-icon {
    flex: 0 0 auto !important;
    align-self: flex-start !important;
    margin: 0 0 18px !important;
}

body.theme-after-dark.admin-page :is(.admin-stats,.admin-stats-expanded,.stats-kpi-grid,.ext-kpi-grid) > :is(a,div) > strong {
    flex: 0 0 auto !important;
    margin: 0 0 6px !important;
    line-height: 1 !important;
}

body.theme-after-dark.admin-page :is(.admin-stats,.admin-stats-expanded,.stats-kpi-grid,.ext-kpi-grid) > :is(a,div) > .stat-icon ~ span:not(.stat-icon) {
    display: block !important;
    margin: 0 !important;
    line-height: 1.25 !important;
}

body.theme-after-dark.admin-page :is(.admin-stats,.admin-stats-expanded,.stats-kpi-grid,.ext-kpi-grid) > :is(a,div) > small {
    display: block !important;
    margin: 6px 0 0 !important;
    line-height: 1.2 !important;
}

/* Keep the KPI rows visually even when one card has less supporting copy. */
body.theme-after-dark.admin-page :is(.stats-kpi-grid,.ext-kpi-grid) {
    align-items: stretch !important;
    grid-auto-rows: 1fr !important;
}

@media (max-width: 700px) {
    body.theme-after-dark.admin-page :is(.admin-stats,.admin-stats-expanded,.stats-kpi-grid,.ext-kpi-grid) > :is(a,div) {
        min-height: 146px !important;
        padding: 17px 16px 15px !important;
    }
}

/* ParkPulse v12.55 — After Dark analytics container matches admin page shell */
body.theme-after-dark.admin-page .analytics-grid,
body.theme-after-dark.admin-page .analytics-grid-wide {
    background: var(--theme-bg) !important;
    background-color: var(--theme-bg) !important;
    background-image: none !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

/* ParkPulse v12.56 — After Dark analytics dashboard-two matches admin page shell */
body.theme-after-dark.admin-page .analytics-grid.dashboard-two,
body.theme-after-dark.admin-page .dashboard-two {
    background: var(--theme-bg) !important;
    background-color: var(--theme-bg) !important;
    background-image: none !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

/* ParkPulse v12.57 — FOR YOU favorite rides use the exact WAIT TIMES badge language */
body.theme-after-dark .for-you-shell .favorite-ride-link {
    background: #1b122b !important;
    border: 1px solid #563f70 !important;
    border-radius: 12px !important;
    padding: 12px 14px !important;
    transition: background .18s ease, border-color .18s ease !important;
}
body.theme-after-dark .for-you-shell .favorite-ride-link:hover {
    background: #291a3d !important;
    border-color: #7f4bd1 !important;
}
body.theme-after-dark .for-you-shell .favorite-ride-link strong {
    color: #faf6ff !important;
    -webkit-text-fill-color: #faf6ff !important;
}
body.theme-after-dark .for-you-shell .favorite-ride-meta {
    color: #b9aacd !important;
}

/* Same dimensions/weight as .ride-wait on WAIT TIMES. */
body.theme-after-dark .for-you-shell .favorite-live-wait {
    min-width: 78px !important;
    text-align: center !important;
    padding: 8px 10px !important;
    border-radius: 8px !important;
    font-size: inherit !important;
    font-weight: 900 !important;
    line-height: normal !important;
    border: 0 !important;
}

/* Same semantic colors as WAIT TIMES in After Dark. */
body.theme-after-dark .for-you-shell .favorite-live-wait.low {
    background: #17382b !important;
    color: #91e5ba !important;
    -webkit-text-fill-color: #91e5ba !important;
}
body.theme-after-dark .for-you-shell .favorite-live-wait.medium {
    background: #3a3017 !important;
    color: #ffe091 !important;
    -webkit-text-fill-color: #ffe091 !important;
}
body.theme-after-dark .for-you-shell .favorite-live-wait.high {
    background: #402225 !important;
    color: #ffaaaa !important;
    -webkit-text-fill-color: #ffaaaa !important;
}
body.theme-after-dark .for-you-shell .favorite-live-wait.closed {
    background: #26313f !important;
    color: #b5c0cd !important;
    -webkit-text-fill-color: #b5c0cd !important;
}
body.theme-after-dark .for-you-shell .favorite-live-wait.loading {
    background: #241833 !important;
    color: #b9aacd !important;
    -webkit-text-fill-color: #b9aacd !important;
    border: 1px solid #563f70 !important;
}

/* ==========================================================
   ParkPulse v12.58 — After Dark analytics + Admin hover cleanup
   ========================================================== */

/* Analytics containers use the exact visible background of the After Dark page-shell. */
body.theme-after-dark.admin-page .analytics-grid,
body.theme-after-dark.admin-page .analytics-grid-wide,
body.theme-after-dark.admin-page .analytics-grid.dashboard-two,
body.theme-after-dark.admin-page .analytics-grid.stats-three {
    background: #0d0818 !important;
    background-color: #0d0818 !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Non-interactive Admin surfaces must stay visually still on hover.
   Links, buttons, tabs and other actual controls keep their own hover feedback. */
body.theme-after-dark.admin-page :is(
    .admin-card,
    .article-card,
    .activity-card,
    .activity-row,
    .admin-ranking,
    .admin-ranking li,
    .workflow-mini span,
    .metric-bars,
    .metric-bars > div,
    .user-row,
    .article-row,
    .moderation-row,
    .admin-stats > div,
    .admin-stats-expanded > div,
    .stats-kpi-grid > div,
    .ext-kpi-grid > div,
    .home-view-kpis > span,
    .stat-card
):hover {
    transform: none !important;
    box-shadow: none !important;
}

/* Restore the normal non-hover surfaces where older generic hover rules changed color. */
body.theme-after-dark.admin-page :is(
    .admin-card,
    .article-card,
    .activity-card,
    .admin-stats > div,
    .admin-stats-expanded > div,
    .stats-kpi-grid > div,
    .ext-kpi-grid > div,
    .home-view-kpis > span,
    .stat-card
):hover {
    background: var(--after-dark-surface) !important;
    border-color: var(--after-dark-border) !important;
}

body.theme-after-dark.admin-page :is(
    .activity-row,
    .admin-ranking li,
    .workflow-mini span,
    .metric-bars > div,
    .user-row,
    .article-row,
    .moderation-row
):hover {
    border-color: var(--after-dark-border) !important;
}

/* Table rows are not controls: remove the row-wide hover wash.
   Interactive links/buttons inside the cells retain their own hover styling. */
body.theme-after-dark.admin-page .admin-table tbody tr:hover,
body.theme-after-dark.admin-page .admin-table tbody tr:hover td {
    background: var(--after-dark-surface) !important;
    color: var(--after-dark-text) !important;
    transform: none !important;
    box-shadow: none !important;
}

/* Only linked KPI cards retain the dashboard hover feedback. */
body.theme-after-dark.admin-page .admin-stats > a:hover,
body.theme-after-dark.admin-page .admin-stats-expanded > a:hover {
    background: var(--after-dark-surface-2) !important;
    border-color: var(--after-dark-border-2) !important;
    transform: translateY(-2px) !important;
}

/* ParkPulse v12.59 — After Dark Admin background final alignment */
body.theme-after-dark.admin-page {
    background: #0d0818 !important;
    background-color: #0d0818 !important;
    background-image: none !important;
}

body.theme-after-dark.admin-page main,
body.theme-after-dark.admin-page .page-shell,
body.theme-after-dark.admin-page .admin-shell,
body.theme-after-dark.admin-page .admin-dashboard-grid.dashboard-two,
body.theme-after-dark.admin-page .admin-dashboard-grid,
body.theme-after-dark.admin-page .dashboard-two {
    background: #0d0818 !important;
    background-color: #0d0818 !important;
    background-image: none !important;
}

body.theme-after-dark.admin-page .admin-dashboard-grid.dashboard-two,
body.theme-after-dark.admin-page .admin-dashboard-grid,
body.theme-after-dark.admin-page .dashboard-two {
    border-color: transparent !important;
    box-shadow: none !important;
}

/* ParkPulse v12.60 — After Dark analytics grids exact background */
body.theme-after-dark.admin-page .analytics-grid,
body.theme-after-dark.admin-page .analytics-grid-wide,
body.theme-after-dark.admin-page .analytics-grid.analytics-grid-wide {
    background: #0d0818 !important;
    background-color: #0d0818 !important;
    background-image: none !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

/* ==========================================================
   ParkPulse v12.61 — Unified theme polish
   Mirrors the completed After Dark component language across:
   Midnight · Pulse Blue · Coaster Red · Adventure · Sunset
   Celebration park cards remain excluded.
   ========================================================== */

body.theme-midnight {
    --pp-polish-page:#030914; --pp-polish-surface:#0b1828; --pp-polish-surface-2:#071321;
    --pp-polish-border:#203a56; --pp-polish-border-2:#315574; --pp-polish-text:#edf6ff;
    --pp-polish-muted:#9eb2c7; --pp-polish-nav:#168fe1; --pp-polish-nav-text:#fff;
    --pp-polish-accent:#ffc928; --pp-polish-accent-text:#07182d; --pp-polish-hover:#11263b;
}
body.theme-pulse-blue {
    --pp-polish-page:#eaf6ff; --pp-polish-surface:#fff; --pp-polish-surface-2:#f3faff;
    --pp-polish-border:#cfe5f3; --pp-polish-border-2:#b6d6ea; --pp-polish-text:#102d45;
    --pp-polish-muted:#58778e; --pp-polish-nav:#ffc928; --pp-polish-nav-text:#0b294c;
    --pp-polish-accent:#168fe1; --pp-polish-accent-text:#fff; --pp-polish-hover:#dff2ff;
}
body.theme-coaster-red {
    --pp-polish-page:#f3f5f7; --pp-polish-surface:#fff; --pp-polish-surface-2:#f7f8fa;
    --pp-polish-border:#dfe3e8; --pp-polish-border-2:#cbd1d8; --pp-polish-text:#172a3d;
    --pp-polish-muted:#697583; --pp-polish-nav:#c94b4b; --pp-polish-nav-text:#fff;
    --pp-polish-accent:#c94b4b; --pp-polish-accent-text:#fff; --pp-polish-hover:#f4e9e9;
}
body.theme-adventure {
    --pp-polish-page:#f7f0df; --pp-polish-surface:#fffdf7; --pp-polish-surface-2:#f2ecdc;
    --pp-polish-border:#ddd3b8; --pp-polish-border-2:#c8bc9b; --pp-polish-text:#26382f;
    --pp-polish-muted:#68766c; --pp-polish-nav:#d9bd63; --pp-polish-nav-text:#173b31;
    --pp-polish-accent:#d9bd63; --pp-polish-accent-text:#173b31; --pp-polish-hover:#eee7d4;
}
body.theme-sunset {
    --pp-polish-page:#fff4df; --pp-polish-surface:#fffdf8; --pp-polish-surface-2:#fff7ea;
    --pp-polish-border:#ead8bd; --pp-polish-border-2:#d9c19e; --pp-polish-text:#3b3028;
    --pp-polish-muted:#7f6b5b; --pp-polish-nav:#e98b45; --pp-polish-nav-text:#fff;
    --pp-polish-accent:#e98b45; --pp-polish-accent-text:#fff; --pp-polish-hover:#fff0d8;
}

/* Shared page canvas */
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset),
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) main,
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .homepage-shell,.news-page-shell,.search-shell,.faq-shell,.ideas-shell,.profile-shell,.for-you-shell
),
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
    .page-shell,.admin-shell,.editor-shell,.analytics-grid,.analytics-grid-wide,
    .analytics-grid.dashboard-two,.analytics-grid.stats-three,.admin-dashboard-grid,.dashboard-two
) {
    background:var(--pp-polish-page) !important;
    background-color:var(--pp-polish-page) !important;
    background-image:none !important;
}

/* Footer follows menu */
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .site-footer {
    background:var(--pp-polish-nav) !important;
    border-top-color:var(--pp-polish-nav) !important;
    color:var(--pp-polish-nav-text) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .site-footer :is(
    a,.footer-inner,.footer-links,.footer-links a
) { color:var(--pp-polish-nav-text) !important; }

/* Shared heading/accent language */
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .section-heading h1,.section-heading h2,.parks-country-heading h2,.wait-list-heading h2,
    .search-groups h2,.faq-section>h2
) { color:var(--pp-polish-text) !important; }
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .section-heading span {
    background:var(--pp-polish-accent) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .parks-country-heading,.wait-list-heading
) { border-color:var(--pp-polish-accent) !important; }

/* NEWS / SEARCH / FAQ */
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .news-toolbar,.search-form,.faq-search-wrap
) {
    background:var(--pp-polish-surface) !important;
    border:1px solid var(--pp-polish-border) !important;
    box-shadow:none !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .news-filter-field input,.news-filter-field select,.search-form input,.faq-search-wrap input,
    .park-search input,.member-search-field,.member-tool-control select
) {
    background:var(--pp-polish-surface-2) !important;
    border-color:var(--pp-polish-border-2) !important;
    color:var(--pp-polish-text) !important;
    -webkit-text-fill-color:var(--pp-polish-text) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .news-filter-field input,.search-form input,.faq-search-wrap input,.park-search input
)::placeholder {
    color:var(--pp-polish-muted) !important;
    -webkit-text-fill-color:var(--pp-polish-muted) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .search-groups>section,.faq-item
) {
    background:var(--pp-polish-surface) !important;
    border-color:var(--pp-polish-border) !important;
    box-shadow:none !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .search-result {
    background:transparent !important;
    border-color:var(--pp-polish-border-2) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .search-result:hover,.faq-item:hover,.faq-item[open]
) { background:var(--pp-polish-hover) !important; }
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .faq-item summary span {
    background:var(--pp-polish-accent) !important;
    color:var(--pp-polish-accent-text) !important;
}

/* HOME */
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .homepage-shell :is(
    .news-card,.side-card,.home-welcome-card,.trending-card
) {
    background:var(--pp-polish-surface) !important;
    border-color:var(--pp-polish-border) !important;
    box-shadow:none !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .homepage-shell .main-column {
    background:var(--pp-polish-surface-2) !important;
    border:1px solid var(--pp-polish-border-2) !important;
    box-shadow:none !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .homepage-shell .news-copy {
    background:var(--pp-polish-surface) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .homepage-shell .trending-card>h3 {
    background:var(--pp-polish-surface) !important;
    border-bottom-color:var(--pp-polish-accent) !important;
    color:var(--pp-polish-text) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .homepage-shell .trending-card .trending-row>b {
    background:var(--pp-polish-accent) !important;
    color:var(--pp-polish-accent-text) !important;
    -webkit-text-fill-color:var(--pp-polish-accent-text) !important;
}

/* IDEAS */
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .ideas-hero,.idea-card,.ideas-empty,.idea-modal-dialog
) {
    background:var(--pp-polish-surface) !important;
    border-color:var(--pp-polish-border) !important;
    box-shadow:none !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .ideas-sort a,.idea-vote-button,.idea-form input,.idea-form select,.idea-form textarea
) {
    background:var(--pp-polish-surface-2) !important;
    border-color:var(--pp-polish-border-2) !important;
    color:var(--pp-polish-text) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .ideas-sort a.active,.idea-vote-button.voted
) {
    background:var(--pp-polish-accent) !important;
    border-color:var(--pp-polish-accent) !important;
    color:var(--pp-polish-accent-text) !important;
}

/* PROFILE / PASSPORT */
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .profile-header,.profile-panel,.profile-stats>div,.appearance-setting
) {
    background:var(--pp-polish-surface) !important;
    border-color:var(--pp-polish-border) !important;
    box-shadow:none !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .profile-panel :is(
    input,textarea,select
) {
    background:var(--pp-polish-surface-2) !important;
    border-color:var(--pp-polish-border-2) !important;
    color:var(--pp-polish-text) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .passport-map-button {
    background:var(--pp-polish-nav) !important;
    border-color:var(--pp-polish-nav) !important;
    color:var(--pp-polish-nav-text) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .passport-map-modal,.passport-map-top,.passport-map-legend
) {
    background:var(--pp-polish-surface) !important;
    border-color:var(--pp-polish-border) !important;
    color:var(--pp-polish-text) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .passport-map-filters {
    background:var(--pp-polish-surface-2) !important;
    border-color:var(--pp-polish-border) !important;
}

/* WAIT TIMES */
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .wait-workspace,.wait-times-column,.wait-park-column,.member-park-finder,.member-wait-dashboard,.member-wait-empty
) {
    background:var(--pp-polish-surface) !important;
    border-color:var(--pp-polish-border) !important;
    box-shadow:none !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .wait-park-card,.wait-ride,.member-wait-tools
) {
    background:var(--pp-polish-surface-2) !important;
    border-color:var(--pp-polish-border-2) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .wait-park-card:hover,.wait-park-card.active,.wait-ride:hover
) {
    background:var(--pp-polish-hover) !important;
    border-color:var(--pp-polish-nav) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .wait-park-card.active {
    box-shadow:inset 4px 0 0 var(--pp-polish-nav) !important;
}

/* FOR YOU */
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .for-you-shell :is(
    .simple-news-grid article,.profile-panel,.info-panel
) {
    background:var(--pp-polish-surface) !important;
    border-color:var(--pp-polish-border) !important;
    box-shadow:none !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .for-you-shell .favorite-ride-link {
    background:var(--pp-polish-surface-2) !important;
    border:1px solid var(--pp-polish-border-2) !important;
    border-radius:12px !important;
    padding:12px 14px !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .for-you-shell .favorite-ride-link:hover {
    background:var(--pp-polish-hover) !important;
    border-color:var(--pp-polish-nav) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .for-you-shell .favorite-live-wait {
    min-width:78px !important;
    padding:8px 10px !important;
    border-radius:8px !important;
    font-weight:900 !important;
    line-height:normal !important;
}
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .for-you-shell .favorite-live-wait.low {
    background:#e7f7ee !important;color:#15764e !important;-webkit-text-fill-color:#15764e !important;
}
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .for-you-shell .favorite-live-wait.medium {
    background:#fff3d6 !important;color:#945d00 !important;-webkit-text-fill-color:#945d00 !important;
}
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .for-you-shell .favorite-live-wait.high {
    background:#ffe5e5 !important;color:#ad2e2e !important;-webkit-text-fill-color:#ad2e2e !important;
}
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .for-you-shell .favorite-live-wait.closed {
    background:#edf0f3 !important;color:#6e7884 !important;-webkit-text-fill-color:#6e7884 !important;
}
body.theme-midnight .for-you-shell .favorite-live-wait.low {background:#17382b !important;color:#91e5ba !important;-webkit-text-fill-color:#91e5ba !important;}
body.theme-midnight .for-you-shell .favorite-live-wait.medium {background:#3a3017 !important;color:#ffe091 !important;-webkit-text-fill-color:#ffe091 !important;}
body.theme-midnight .for-you-shell .favorite-live-wait.high {background:#402225 !important;color:#ffaaaa !important;-webkit-text-fill-color:#ffaaaa !important;}
body.theme-midnight .for-you-shell .favorite-live-wait.closed {background:#26313f !important;color:#b5c0cd !important;-webkit-text-fill-color:#b5c0cd !important;}

/* ADMIN */
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page {
    background:var(--pp-polish-page) !important;
    background-image:none !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
    .admin-grid-panel,.admin-panel,.admin-card,.admin-card-head,.admin-card-body,.editor-main,
    .moderation-item,.admin-empty,.article-card,.home-view-kpis>span,
    .admin-stats>a,.admin-stats>div,.admin-stats-expanded>a,.admin-stats-expanded>div
) {
    background:var(--pp-polish-surface) !important;
    border-color:var(--pp-polish-border) !important;
    box-shadow:none !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
    .admin-ranking,.metric-bars,.admin-tabs a,.admin-filter-tabs a,.filter-card
) {
    background:var(--pp-polish-surface-2) !important;
    border-color:var(--pp-polish-border) !important;
    box-shadow:none !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
    .analytics-grid,.analytics-grid-wide,.analytics-grid.dashboard-two,.analytics-grid.stats-three,
    .admin-dashboard-grid,.admin-dashboard-grid.dashboard-two,.dashboard-two
) {
    background:var(--pp-polish-page) !important;
    background-color:var(--pp-polish-page) !important;
    background-image:none !important;
    border-color:transparent !important;
    box-shadow:none !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
    .admin-tabs a.active,.admin-filter-tabs a.active
) {
    background:var(--pp-polish-nav) !important;
    border-color:var(--pp-polish-nav) !important;
    color:var(--pp-polish-nav-text) !important;
    -webkit-text-fill-color:var(--pp-polish-nav-text) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page .admin-table thead th {
    background:var(--pp-polish-nav) !important;
    color:var(--pp-polish-nav-text) !important;
    -webkit-text-fill-color:var(--pp-polish-nav-text) !important;
    border-color:var(--pp-polish-nav) !important;
    font-weight:900 !important;
}

/* KPI alignment */
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
    .admin-stats,.admin-stats-expanded,.stats-kpi-grid,.ext-kpi-grid
)>:is(a,div) {
    box-sizing:border-box !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    min-width:0 !important;
    min-height:154px !important;
    padding:18px 18px 16px !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
    .admin-stats,.admin-stats-expanded,.stats-kpi-grid,.ext-kpi-grid
)>:is(a,div)>.stat-icon { margin:0 0 18px !important; }
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
    .admin-stats,.admin-stats-expanded,.stats-kpi-grid,.ext-kpi-grid
)>:is(a,div)>strong { margin:0 0 6px !important; line-height:1 !important; }
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
    .stats-kpi-grid,.ext-kpi-grid
) { align-items:stretch !important; grid-auto-rows:1fr !important; }

/* Remove hover from non-clickable Admin content */
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
    .admin-card,.article-card,.activity-card,.activity-row,.admin-ranking,.admin-ranking li,
    .workflow-mini span,.metric-bars,.metric-bars>div,.user-row,.article-row,.moderation-row,
    .admin-stats>div,.admin-stats-expanded>div,.stats-kpi-grid>div,.ext-kpi-grid>div,
    .home-view-kpis>span,.stat-card
):hover {
    transform:none !important;
    box-shadow:none !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
    .admin-card,.article-card,.activity-card,.admin-stats>div,.admin-stats-expanded>div,
    .stats-kpi-grid>div,.ext-kpi-grid>div,.home-view-kpis>span,.stat-card
):hover {
    background:var(--pp-polish-surface) !important;
    border-color:var(--pp-polish-border) !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page .admin-table tbody tr:hover,
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page .admin-table tbody tr:hover td {
    background:var(--pp-polish-surface) !important;
    transform:none !important;
    box-shadow:none !important;
}
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
    .admin-stats>a:hover,.admin-stats-expanded>a:hover
) {
    background:var(--pp-polish-hover) !important;
    border-color:var(--pp-polish-border-2) !important;
    transform:translateY(-2px) !important;
}

@media (max-width:700px) {
    body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
        .admin-stats,.admin-stats-expanded,.stats-kpi-grid,.ext-kpi-grid
    )>:is(a,div) {
        min-height:146px !important;
        padding:17px 16px 15px !important;
    }
}

/* ==========================================================
   ParkPulse v12.62 — HOME Most Read polish for unified themes
   Midnight · Pulse Blue · Coaster Red · Adventure · Sunset
   ========================================================== */
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset)
.homepage-shell .trending-card {
    background:var(--pp-polish-surface) !important;
    border:1px solid var(--pp-polish-border) !important;
    color:var(--pp-polish-text) !important;
    box-shadow:none !important;
    overflow:hidden;
}

body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset)
.homepage-shell .trending-card > h3 {
    margin:0 !important;
    padding:16px 18px !important;
    background:var(--pp-polish-surface) !important;
    border-bottom:2px solid var(--pp-polish-accent) !important;
    color:var(--pp-polish-text) !important;
    -webkit-text-fill-color:var(--pp-polish-text) !important;
}

body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset)
.homepage-shell .trending-card .trending-row {
    display:grid !important;
    grid-template-columns:34px minmax(0,1fr) !important;
    align-items:center !important;
    gap:12px !important;
    padding:13px 16px !important;
    background:transparent !important;
    border-top:1px solid var(--pp-polish-border-2) !important;
    color:var(--pp-polish-text) !important;
    text-decoration:none !important;
    box-shadow:none !important;
    transform:none !important;
}

body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset)
.homepage-shell .trending-card .trending-row:first-of-type {
    border-top:0 !important;
}

body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset)
.homepage-shell .trending-card .trending-row:hover {
    background:var(--pp-polish-hover) !important;
    border-color:var(--pp-polish-border-2) !important;
    box-shadow:none !important;
    transform:none !important;
}

body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset)
.homepage-shell .trending-card .trending-row > b {
    display:grid !important;
    place-items:center !important;
    width:30px !important;
    height:30px !important;
    min-width:30px !important;
    padding:0 !important;
    border:0 !important;
    border-radius:50% !important;
    background:var(--pp-polish-accent) !important;
    color:var(--pp-polish-accent-text) !important;
    -webkit-text-fill-color:var(--pp-polish-accent-text) !important;
    font-size:13px !important;
    font-weight:950 !important;
    line-height:1 !important;
}

body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset)
.homepage-shell .trending-card .trending-row > span {
    display:flex !important;
    flex-direction:column !important;
    gap:4px !important;
    min-width:0 !important;
    color:var(--pp-polish-text) !important;
    -webkit-text-fill-color:var(--pp-polish-text) !important;
    font-weight:800 !important;
    line-height:1.28 !important;
}

body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset)
.homepage-shell .trending-card .trending-row > span > small {
    display:block !important;
    margin:0 !important;
    color:var(--pp-polish-muted) !important;
    -webkit-text-fill-color:var(--pp-polish-muted) !important;
    font-size:11px !important;
    font-weight:700 !important;
    line-height:1.2 !important;
}

/* Empty state follows the same theme instead of the old fixed blue/grey text. */
body:is(.theme-midnight,.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset)
.homepage-shell .trending-card > div:not([class]) {
    color:var(--pp-polish-muted) !important;
    -webkit-text-fill-color:var(--pp-polish-muted) !important;
}

/* ==========================================================
   ParkPulse v12.63 — Midnight + Pulse Blue full menu bar
   ========================================================== */

/* Both themes use the requested blue menu language. */
body.theme-midnight,
body.theme-pulse-blue {
    --pp-polish-nav: #2196E8;
    --pp-polish-nav-text: #000000;
}

/* Apply the blue to the complete visible header/navigation bar,
   not only the individual navigation links. */
body.theme-midnight :is(.site-header, .main-nav, .nav-shell, .nav-inner),
body.theme-pulse-blue :is(.site-header, .main-nav, .nav-shell, .nav-inner) {
    background: #2196E8 !important;
    background-color: #2196E8 !important;
    background-image: none !important;
    border-color: #2196E8 !important;
}

/* All menu text/icons black, including account/navigation controls. */
body.theme-midnight :is(.site-header, .main-nav, .nav-shell, .nav-inner) :is(a, button, span, strong),
body.theme-pulse-blue :is(.site-header, .main-nav, .nav-shell, .nav-inner) :is(a, button, span, strong) {
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
}

/* Preserve the requested full-bar color on hover/active states. */
body.theme-midnight .main-nav a:hover,
body.theme-midnight .main-nav a.active,
body.theme-pulse-blue .main-nav a:hover,
body.theme-pulse-blue .main-nav a.active {
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
}

/* Footer continues to follow the menu-bar principle introduced
   during the unified theme polish. */
body.theme-midnight .site-footer,
body.theme-pulse-blue .site-footer {
    background: #2196E8 !important;
    background-color: #2196E8 !important;
    border-top-color: #2196E8 !important;
    color: #000000 !important;
}
body.theme-midnight .site-footer :is(a, span, strong, p),
body.theme-pulse-blue .site-footer :is(a, span, strong, p) {
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
}

/* ==========================================================
   ParkPulse v12.64 — Midnight + Pulse Blue: navigation bar only
   Restore the site-header; #2196E8 belongs only to the menu bar.
   ========================================================== */

/* Undo v12.63's site-header recolor and let the original theme header
   styling from earlier in the stylesheet apply visually again. */
body.theme-midnight .site-header,
body.theme-pulse-blue .site-header {
    background: revert !important;
    background-color: revert !important;
    background-image: revert !important;
    border-color: revert !important;
}

/* Only the actual navigation/menu bar gets the requested blue. */
body.theme-midnight :is(.main-nav, .nav-shell, .nav-inner),
body.theme-pulse-blue :is(.main-nav, .nav-shell, .nav-inner) {
    background: #2196E8 !important;
    background-color: #2196E8 !important;
    background-image: none !important;
    border-color: #2196E8 !important;
}

/* Black text/icons only inside the navigation bar. */
body.theme-midnight :is(.main-nav, .nav-shell, .nav-inner) :is(a, button, span, strong),
body.theme-pulse-blue :is(.main-nav, .nav-shell, .nav-inner) :is(a, button, span, strong) {
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
}

/* ==========================================================
   ParkPulse v12.65 — Pulse Blue site header
   Menu bar remains unchanged from v12.64.
   ========================================================== */
body.theme-pulse-blue .site-header {
    background: #0B294C !important;
    background-color: #0B294C !important;
    background-image: none !important;
}

/* ==========================================================
   ParkPulse v12.66 — Light themes readability pass
   Applies to: Pulse Blue · Coaster Red · Adventure · Sunset
   Classic, Midnight and After Dark intentionally untouched.
   ========================================================== */

body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) {
    color: var(--pp-polish-text) !important;
}

/* General readable text on light surfaces */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    main,
    .page-shell,
    .homepage-shell,
    .news-page-shell,
    .parks-shell,
    .wait-page-shell,
    .search-shell,
    .faq-shell,
    .ideas-shell,
    .profile-shell,
    .for-you-shell,
    .admin-shell,
    .editor-shell
) {
    color: var(--pp-polish-text) !important;
}

/* Headings and primary text */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    h1,h2,h3,h4,h5,h6,
    .section-heading h1,
    .section-heading h2,
    .parks-country-heading h2,
    .wait-list-heading h2,
    .news-copy h2,
    .news-copy h2 a,
    .article-card h2,
    .article-card h2 a,
    .side-card h3,
    .profile-panel h2,
    .profile-panel h3,
    .idea-card h2,
    .idea-card h2 a,
    .faq-item summary,
    .search-result h3,
    .search-result h3 a,
    .admin-card h2,
    .admin-card h3,
    .admin-panel h2,
    .admin-panel h3,
    .stats-section-head h2,
    .stats-section-head h3,
    .admin-ranking strong,
    .home-view-kpis strong,
    .stat-card strong
) {
    color: var(--pp-polish-text) !important;
    -webkit-text-fill-color: var(--pp-polish-text) !important;
}

/* Normal body copy and secondary text */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    p,
    li,
    label,
    .meta,
    .meta span,
    .news-card-meta,
    .article-meta,
    .park-card-meta,
    .park-profile-card p,
    .wait-ride-name,
    .member-wait-empty p,
    .member-wait-dashboard p,
    .search-result p,
    .faq-item p,
    .idea-card p,
    .idea-card-footer,
    .idea-category,
    .profile-panel p,
    .profile-stats span,
    .passport-map-legend,
    .for-you-shell p,
    .admin-card p,
    .admin-card small,
    .admin-panel p,
    .admin-panel small,
    .admin-table td,
    .admin-table td span,
    .admin-table td small,
    .activity-row,
    .activity-row small,
    .admin-ranking li,
    .metric-bars,
    .metric-bars span,
    .workflow-mini span,
    .home-view-kpis span,
    .home-view-kpis small,
    .stat-card span,
    .stat-card small
) {
    color: var(--pp-polish-text) !important;
    -webkit-text-fill-color: var(--pp-polish-text) !important;
}

/* Muted/helper copy should still be clearly readable */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    small,
    .muted,
    .helper-text,
    .form-help,
    .field-help,
    .subtle,
    .news-copy p,
    .home-welcome-copy span,
    .side-card p,
    .side-card small,
    .search-result small,
    .faq-item small,
    .idea-card-footer,
    .profile-panel small,
    .favorite-ride-meta,
    .admin-note,
    .admin-help,
    .editor-help-box,
    .stats-section-head p
) {
    color: var(--pp-polish-muted) !important;
    -webkit-text-fill-color: var(--pp-polish-muted) !important;
}

/* Links on light surfaces */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) main :is(
    a:not(.yellow-button):not(.button-link):not(.passport-map-button):not(.home-profile-button):not(.idea-vote-button)
) {
    color: var(--pp-polish-text) !important;
    -webkit-text-fill-color: var(--pp-polish-text) !important;
}
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) main :is(
    a:not(.yellow-button):not(.button-link):not(.passport-map-button):not(.home-profile-button):not(.idea-vote-button)
):hover {
    color: var(--pp-polish-nav) !important;
    -webkit-text-fill-color: var(--pp-polish-nav) !important;
}

/* Form controls */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    input,
    select,
    textarea,
    .news-filter-field input,
    .news-filter-field select,
    .search-form input,
    .faq-search-wrap input,
    .park-search input,
    .member-search-field,
    .member-tool-control select,
    .profile-panel input,
    .profile-panel textarea,
    .profile-panel select,
    .idea-form input,
    .idea-form textarea,
    .idea-form select,
    .admin-page input,
    .admin-page textarea,
    .admin-page select
) {
    color: var(--pp-polish-text) !important;
    -webkit-text-fill-color: var(--pp-polish-text) !important;
    caret-color: var(--pp-polish-text) !important;
}
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    input, textarea
)::placeholder {
    color: var(--pp-polish-muted) !important;
    -webkit-text-fill-color: var(--pp-polish-muted) !important;
    opacity: 1 !important;
}
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) select option {
    color: #172a3d !important;
    background: #ffffff !important;
}

/* HOME */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .homepage-shell :is(
    .home-welcome-card,
    .news-card,
    .side-card,
    .trending-card,
    .main-column
) {
    color: var(--pp-polish-text) !important;
}
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .homepage-shell .home-welcome-copy strong,
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .homepage-shell .home-welcome-copy span,
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .homepage-shell .trending-row > span {
    color: var(--pp-polish-text) !important;
    -webkit-text-fill-color: var(--pp-polish-text) !important;
}
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .homepage-shell .trending-row > span > small {
    color: var(--pp-polish-muted) !important;
    -webkit-text-fill-color: var(--pp-polish-muted) !important;
}

/* NEWS */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .news-page-shell :is(
    .news-card,
    .article-card,
    .news-toolbar
) {
    color: var(--pp-polish-text) !important;
}
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .article-category-badge,
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .article-image-badge.article-category-badge {
    color: var(--pp-polish-text) !important;
    -webkit-text-fill-color: var(--pp-polish-text) !important;
}

/* PARKS — do not override Celebration Card own palette */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset)
.park-profile-card:not(.park-special-style) :is(h2,p,span,strong,a) {
    color: var(--pp-polish-text) !important;
    -webkit-text-fill-color: var(--pp-polish-text) !important;
}
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset)
.park-profile-card:not(.park-special-style) .park-card-meta {
    color: var(--pp-polish-muted) !important;
    -webkit-text-fill-color: var(--pp-polish-muted) !important;
}

/* WAIT TIMES */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .wait-workspace,
    .wait-times-column,
    .wait-park-column,
    .member-park-finder,
    .member-wait-dashboard,
    .member-wait-empty,
    .wait-park-card,
    .wait-ride
) {
    color: var(--pp-polish-text) !important;
}
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .wait-ride :is(
    strong,span,.wait-ride-name,.ride-name
) {
    color: var(--pp-polish-text) !important;
    -webkit-text-fill-color: var(--pp-polish-text) !important;
}

/* SEARCH + FAQ */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .search-groups>section,
    .search-result,
    .faq-item,
    .faq-item summary
) {
    color: var(--pp-polish-text) !important;
}

/* IDEAS */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .ideas-hero,
    .idea-card,
    .ideas-empty,
    .idea-modal-dialog
) {
    color: var(--pp-polish-text) !important;
}

/* PROFILE + PASSPORT */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .profile-header,
    .profile-panel,
    .profile-stats>div,
    .appearance-setting,
    .passport-map-modal,
    .passport-map-top,
    .passport-map-legend,
    .passport-map-filters
) {
    color: var(--pp-polish-text) !important;
}

/* FOR YOU */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) .for-you-shell :is(
    .favorite-ride-link strong,
    .simple-news-grid article h2,
    .simple-news-grid article h3,
    .profile-panel h2,
    .info-panel h2
) {
    color: var(--pp-polish-text) !important;
    -webkit-text-fill-color: var(--pp-polish-text) !important;
}

/* ADMIN — comprehensive readability reset for light themes */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
    .admin-shell,
    .admin-grid-panel,
    .admin-panel,
    .admin-card,
    .admin-card-head,
    .admin-card-body,
    .editor-main,
    .article-card,
    .activity-card,
    .activity-row,
    .admin-ranking,
    .metric-bars,
    .workflow-mini,
    .user-row,
    .article-row,
    .moderation-row,
    .admin-stats>a,
    .admin-stats>div,
    .admin-stats-expanded>a,
    .admin-stats-expanded>div,
    .stats-kpi-grid>div,
    .ext-kpi-grid>div,
    .home-view-kpis>span,
    .stat-card
) {
    color: var(--pp-polish-text) !important;
}
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
    .admin-card h1,.admin-card h2,.admin-card h3,
    .admin-panel h1,.admin-panel h2,.admin-panel h3,
    .editor-main h1,.editor-main h2,.editor-main h3,
    .stats-section-head h2,.stats-section-head h3,
    .admin-stats strong,.admin-stats-expanded strong,
    .home-view-kpis strong,.stat-card strong
) {
    color: var(--pp-polish-text) !important;
    -webkit-text-fill-color: var(--pp-polish-text) !important;
}
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page :is(
    .admin-card p,.admin-card span,.admin-card small,
    .admin-panel p,.admin-panel span,.admin-panel small,
    .activity-row,.activity-row span,.activity-row small,
    .admin-ranking li,.admin-ranking span,.admin-ranking small,
    .metric-bars,.metric-bars span,.metric-bars small,
    .workflow-mini span,
    .home-view-kpis span,.home-view-kpis small,
    .stat-card span,.stat-card small
) {
    color: var(--pp-polish-text) !important;
    -webkit-text-fill-color: var(--pp-polish-text) !important;
}

/* Table headers stay theme-colored; table body gets dark readable text */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page .admin-table tbody td,
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset).admin-page .admin-table tbody td :is(
    span,strong,small,a
) {
    color: var(--pp-polish-text) !important;
    -webkit-text-fill-color: var(--pp-polish-text) !important;
}

/* Buttons with colored backgrounds keep intentional contrast */
body:is(.theme-pulse-blue,.theme-coaster-red,.theme-adventure,.theme-sunset) :is(
    .yellow-button,
    .button-link.yellow-button,
    .passport-map-button,
    .ideas-sort a.active,
    .idea-vote-button.voted,
    .admin-tabs a.active,
    .admin-filter-tabs a.active
) {
    color: var(--pp-polish-accent-text) !important;
    -webkit-text-fill-color: var(--pp-polish-accent-text) !important;
}

/* Pulse Blue menu remains exactly as requested. */
body.theme-pulse-blue :is(.main-nav,.nav-shell,.nav-inner) :is(a,button,span,strong) {
    color:#000000 !important;
    -webkit-text-fill-color:#000000 !important;
}

/* Never touch the Classic theme here. */

/* ==========================================================
   ParkPulse v12.67 — Sunset / Adventure / Coaster Red polish
   ========================================================== */

/* WAIT TIMES — keep the selected-park hero readable.
   The park description inside #waitParkContent is always white,
   matching the already-white selected park title. */
body:is(.theme-sunset,.theme-adventure,.theme-coaster-red) #waitParkContent :is(
    .wait-column-hero,.wait-hero
) > div > p,
body:is(.theme-sunset,.theme-adventure,.theme-coaster-red) #waitParkContent :is(
    .wait-column-hero,.wait-hero
) p {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Keep hero label/title readable as one coherent block. */
body:is(.theme-sunset,.theme-adventure,.theme-coaster-red) #waitParkContent :is(
    .wait-column-hero,.wait-hero
) :is(h2,.live-label,.live-label span) {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* ARTICLE CATEGORY BADGE — use the theme's normal text colour as
   the badge background, then force white text for clean contrast. */
body:is(.theme-sunset,.theme-adventure,.theme-coaster-red) .article-image-badge.article-category-badge,
body:is(.theme-sunset,.theme-adventure,.theme-coaster-red) .article-category-badge {
    background: var(--pp-polish-text) !important;
    background-color: var(--pp-polish-text) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border-color: var(--pp-polish-text) !important;
}

/* NEW badge — yellow stays yellow; its text must never change on hover. */
body:is(.theme-sunset,.theme-adventure,.theme-coaster-red) .article-image-badge.article-new-badge,
body:is(.theme-sunset,.theme-adventure,.theme-coaster-red) .news-image-link:hover .article-image-badge.article-new-badge,
body:is(.theme-sunset,.theme-adventure,.theme-coaster-red) .news-image-link:focus .article-image-badge.article-new-badge,
body:is(.theme-sunset,.theme-adventure,.theme-coaster-red) .news-image-link:focus-visible .article-image-badge.article-new-badge {
    background: #FFC928 !important;
    background-color: #FFC928 !important;
    color: #071d3b !important;
    -webkit-text-fill-color: #071d3b !important;
    border-color: #FFC928 !important;
}

/* The category badge also remains stable when the image link is hovered. */
body:is(.theme-sunset,.theme-adventure,.theme-coaster-red) .news-image-link:hover .article-category-badge,
body:is(.theme-sunset,.theme-adventure,.theme-coaster-red) .news-image-link:focus-visible .article-category-badge {
    background: var(--pp-polish-text) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Theme cohesion for news-card image labels and copy.
   This intentionally uses each theme's own semantic colours. */
body:is(.theme-sunset,.theme-adventure,.theme-coaster-red) :is(
    .homepage-shell,.news-page-shell
) .news-card {
    color: var(--pp-polish-text) !important;
    border-color: var(--pp-polish-border) !important;
}
body:is(.theme-sunset,.theme-adventure,.theme-coaster-red) :is(
    .homepage-shell,.news-page-shell
) .news-card :is(h2,h2 a,.news-copy strong) {
    color: var(--pp-polish-text) !important;
    -webkit-text-fill-color: var(--pp-polish-text) !important;
}
body:is(.theme-sunset,.theme-adventure,.theme-coaster-red) :is(
    .homepage-shell,.news-page-shell
) .news-card :is(p,.meta,.meta span,.news-card-meta) {
    color: var(--pp-polish-muted) !important;
    -webkit-text-fill-color: var(--pp-polish-muted) !important;
}


/* ParkPulse v12.68 — expandable member Ride Details */
.wait-ride-card{border-bottom:1px solid rgba(255,255,255,.08)}
.wait-ride-card:last-child{border-bottom:0}.wait-ride-card .wait-row{border-bottom:0}
.wait-ride-card.is-expandable .wait-row{cursor:pointer}.wait-ride-card.is-expandable .wait-row:focus-visible{outline:2px solid #F4C542;outline-offset:-2px}
.ride-row-actions{display:flex;align-items:center;gap:10px}.ride-expand-button{width:34px;height:34px;border:1px solid currentColor;border-radius:50%;background:transparent;color:inherit;font-weight:900;cursor:pointer;line-height:1}
.ride-details{padding:0 20px 22px 62px}.ride-details[hidden]{display:none!important}.ride-detail-description{margin:0 0 16px;max-width:760px;line-height:1.65}
.ride-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ride-detail-grid>div{padding:11px 12px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(0,0,0,.08)}.ride-detail-grid span,.ride-accessibility>span{display:block;font-size:.68rem;font-weight:900;letter-spacing:.08em;opacity:.68;margin-bottom:4px}.ride-detail-grid strong{font-size:.9rem}.ride-accessibility{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.ride-accessibility p,.ride-detail-empty p{margin:4px 0 0;line-height:1.55}.ride-detail-empty{padding:15px;border:1px dashed rgba(255,255,255,.18);border-radius:10px}.ride-admin-summary{display:flex;flex-direction:column;align-items:flex-end}.ride-admin-summary strong{font-size:1.5rem}.ride-admin-summary span{font-size:.7rem;font-weight:900;letter-spacing:.08em;opacity:.7}
@media(max-width:720px){.ride-details{padding:0 12px 18px}.ride-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ride-expand-button{width:30px;height:30px}.ride-row-actions{gap:6px}}

/* Ride Wikipedia metadata sync */
.wiki-sync-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px}.wiki-sync-card h2{margin:4px 0 6px}.wiki-sync-card p{margin:0;max-width:760px}.ride-wiki-progress{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:210px}.ride-wiki-progress strong{font-size:1.45rem}.ride-wiki-progress span{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;opacity:.75}@media(max-width:760px){.wiki-sync-card{align-items:stretch;flex-direction:column}.ride-wiki-progress{align-items:flex-start;min-width:0}}


/* v12.73 — Member RIDES directory */
.rides-shell{max-width:1320px;margin:0 auto}.rides-intro{max-width:850px;margin:-4px 0 24px;line-height:1.65;color:var(--theme-muted,#5e6b7a)}
.rides-toolbar{display:grid;grid-template-columns:minmax(260px,1.6fr) minmax(190px,.8fr) minmax(170px,.7fr) auto;gap:12px;align-items:end;padding:18px;border:1px solid var(--theme-border,#dfe5ec);border-radius:14px;background:var(--theme-surface,#fff);margin-bottom:12px}
.rides-toolbar label{display:block;font-size:.68rem;font-weight:900;letter-spacing:.09em;margin:0 0 7px;color:var(--theme-muted,#64748b)}.rides-filter select{width:100%;height:46px;border:1px solid var(--theme-border,#dfe5ec);border-radius:10px;background:var(--theme-surface-soft,#f7f9fb);color:var(--theme-text,#152238);padding:0 12px;font-weight:700}.rides-reset{height:46px;border:0;border-radius:10px;padding:0 16px;background:#F4C542;color:#0B294C;font-weight:900;cursor:pointer}
.rides-summary{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:11px 4px 14px;color:var(--theme-muted,#64748b);font-size:.82rem}.rides-summary strong{color:var(--theme-text,#152238);letter-spacing:.06em}.rides-directory{display:grid;gap:12px}.ride-directory-card{border:1px solid var(--theme-border,#dfe5ec);border-radius:14px;overflow:hidden;background:var(--theme-surface,#fff)}.ride-directory-card[hidden]{display:none!important}
.ride-directory-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.ride-directory-head:hover{background:var(--theme-hover,rgba(11,41,76,.04))}.ride-directory-title{display:flex;flex-direction:column;min-width:0}.ride-directory-title small{font-size:.69rem;font-weight:900;letter-spacing:.08em;color:var(--theme-muted,#64748b);text-transform:uppercase}.ride-directory-title strong{font-size:1.12rem;margin:3px 0;color:var(--theme-text,#152238)}.ride-directory-title em{font-style:normal;font-size:.83rem;color:var(--theme-muted,#64748b)}.ride-directory-badges{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.ride-directory-badges i{font-style:normal;font-size:.68rem;font-weight:900;letter-spacing:.05em;padding:6px 9px;border-radius:999px;background:var(--theme-surface-soft,#eef3f8);color:var(--theme-text,#152238);white-space:nowrap}.ride-directory-badges b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#F4C542;color:#0B294C;font-size:1rem}
.ride-directory-details{padding:0 20px 20px;border-top:1px solid var(--theme-border,#dfe5ec)}.ride-directory-details[hidden]{display:none!important}.ride-directory-description{margin:18px 0;max-width:930px;line-height:1.7;color:var(--theme-text,#152238)}.ride-spec-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.ride-spec-grid>div{padding:12px;border:1px solid var(--theme-border,#dfe5ec);border-radius:10px;background:var(--theme-surface-soft,#f7f9fb)}.ride-spec-grid span,.ride-directory-note span,.ride-source-panel span{display:block;font-size:.66rem;font-weight:900;letter-spacing:.09em;color:var(--theme-muted,#64748b);margin-bottom:4px}.ride-spec-grid strong{font-size:.9rem;color:var(--theme-text,#152238)}.ride-directory-note{margin-top:12px;padding:14px;border-left:4px solid #F4C542;border-radius:8px;background:var(--theme-surface-soft,#f7f9fb)}.ride-directory-note p{margin:0;line-height:1.6}.ride-source-panel{margin-top:12px;display:flex;justify-content:space-between;gap:18px;align-items:center;padding:13px 14px;border:1px solid var(--theme-border,#dfe5ec);border-radius:10px}.ride-source-panel strong,.ride-source-panel small{display:block}.ride-source-panel small{margin-top:3px;color:var(--theme-muted,#64748b)}.ride-source-panel a{font-size:.75rem;font-weight:900;text-decoration:none;color:inherit;border-bottom:2px solid #F4C542}.rides-empty{padding:30px;text-align:center;border:1px dashed var(--theme-border,#dfe5ec);border-radius:14px;background:var(--theme-surface,#fff)}
body.theme-after-dark .rides-toolbar,body.theme-after-dark .ride-directory-card,body.theme-after-dark .rides-empty{background:#171027!important;border-color:#3b285f!important}body.theme-after-dark .ride-spec-grid>div,body.theme-after-dark .ride-directory-note,body.theme-after-dark .rides-filter select{background:#211638!important;border-color:#49336e!important}body.theme-after-dark .ride-directory-head:hover{background:#211638!important}
@media(max-width:900px){.rides-toolbar{grid-template-columns:1fr 1fr}.rides-search{grid-column:1/-1}.ride-spec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.rides-toolbar{grid-template-columns:1fr}.rides-search{grid-column:auto}.rides-summary{align-items:flex-start;flex-direction:column;gap:4px}.ride-directory-head{align-items:flex-start;padding:16px}.ride-directory-badges i{display:none}.ride-directory-details{padding:0 14px 16px}.ride-spec-grid{grid-template-columns:1fr 1fr}.ride-source-panel{align-items:flex-start;flex-direction:column}.ride-directory-title strong{font-size:1rem}}

/* v12.74 — Profile v2 + Ride Passport */
.profile-v2-nav{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 16px;padding:10px;border:1px solid var(--theme-border,#dfe5ec);border-radius:14px;background:var(--theme-surface,#fff)}
.profile-v2-nav a{padding:9px 12px;border-radius:9px;text-decoration:none;font-size:.72rem;font-weight:900;letter-spacing:.06em;color:var(--theme-text,#152238)}
.profile-v2-nav a:hover{background:#F4C542;color:#0B294C}
.profile-private-card{margin:18px 0;padding:28px;border:1px solid var(--theme-border,#dfe5ec);border-radius:14px;background:var(--theme-surface,#fff);text-align:center}.profile-private-card strong{display:block;letter-spacing:.08em}.profile-private-card p{margin:8px 0 0;color:var(--theme-muted,#64748b)}
.profile-section-kicker{display:block;margin-bottom:3px;font-size:.66rem;font-weight:900;letter-spacing:.1em;color:var(--theme-muted,#64748b)}
.ride-passport-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px}.ride-passport-summary>div{padding:16px;border:1px solid var(--theme-border,#dfe5ec);border-radius:12px;background:var(--theme-surface,#fff)}.ride-passport-summary strong{display:block;font-size:1.55rem;color:var(--theme-text,#152238)}.ride-passport-summary span{font-size:.74rem;font-weight:800;color:var(--theme-muted,#64748b)}
.ride-passport-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ride-passport-grid article{position:relative;padding:16px;border:1px solid var(--theme-border,#dfe5ec);border-radius:12px;background:var(--theme-surface,#fff)}.ride-passport-grid article>span,.ride-passport-grid article>small{display:block;color:var(--theme-muted,#64748b)}.ride-passport-grid article>span{font-size:.66rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.ride-passport-grid article>strong{display:block;margin:5px 0 3px;font-size:1rem;color:var(--theme-text,#152238)}.ride-passport-grid article>small{padding-right:82px}.ride-passport-grid article>em{position:absolute;right:12px;bottom:12px;font-style:normal;font-size:.64rem;font-weight:900;color:#0B294C;background:#F4C542;padding:5px 7px;border-radius:999px}
.profile-empty-state{padding:24px;border:1px dashed var(--theme-border,#dfe5ec);border-radius:14px;background:var(--theme-surface,#fff)}.profile-empty-state strong{display:block}.profile-empty-state p{margin:6px 0 14px;color:var(--theme-muted,#64748b)}
.achievement-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.achievement-card{position:relative;min-height:145px;padding:16px;border:1px solid var(--theme-border,#dfe5ec);border-radius:12px;background:var(--theme-surface,#fff)}.achievement-card>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;margin-bottom:12px;background:var(--theme-surface-soft,#eef3f8);font-size:1.1rem}.achievement-card strong,.achievement-card small,.achievement-card em{display:block}.achievement-card strong{font-size:.86rem;letter-spacing:.04em;color:var(--theme-text,#152238)}.achievement-card small{margin-top:5px;color:var(--theme-muted,#64748b);line-height:1.4}.achievement-card em{position:absolute;bottom:12px;left:16px;font-style:normal;font-size:.62rem;font-weight:900;letter-spacing:.07em}.achievement-card.unlocked{border-color:#F4C542;box-shadow:inset 0 0 0 1px rgba(244,197,66,.25)}.achievement-card.unlocked>span{background:#F4C542;color:#0B294C}.achievement-card.unlocked em{color:#a47300}.achievement-card.locked{opacity:.62}
.ride-directory-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch}.ride-directory-top .ride-directory-head{min-width:0}.ride-ridden-button{align-self:center;margin-right:18px;padding:10px 13px;border:1px solid var(--theme-border,#dfe5ec);border-radius:10px;background:var(--theme-surface-soft,#eef3f8);color:var(--theme-text,#152238);font-size:.7rem;font-weight:900;letter-spacing:.05em;cursor:pointer;white-space:nowrap}.ride-ridden-button:hover,.ride-ridden-button.is-ridden{background:#F4C542;border-color:#F4C542;color:#0B294C}.ride-ridden-button:disabled{opacity:.65;cursor:wait}
.admin-user-profile-link{color:inherit;text-decoration:none;border-bottom:2px solid transparent}.admin-user-profile-link:hover{border-bottom-color:#F4C542}
.profile-panel select[name="profile_visibility"]{width:100%;min-height:44px;border:1px solid var(--theme-border,#dfe5ec);border-radius:9px;background:var(--theme-surface-soft,#f7f9fb);color:var(--theme-text,#152238);padding:8px 10px}
body.theme-after-dark :is(.profile-v2-nav,.profile-private-card,.ride-passport-summary>div,.ride-passport-grid article,.profile-empty-state,.achievement-card){background:#171027!important;border-color:#3b285f!important}body.theme-after-dark .ride-ridden-button{background:#211638;border-color:#49336e;color:#fff}body.theme-after-dark .ride-ridden-button.is-ridden{background:#F4C542;color:#0B294C;border-color:#F4C542}
@media(max-width:900px){.ride-passport-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ride-directory-top{grid-template-columns:1fr}.ride-ridden-button{justify-self:start;margin:0 16px 14px}}
@media(max-width:620px){.profile-v2-nav{display:grid;grid-template-columns:1fr 1fr}.ride-passport-summary{grid-template-columns:1fr 1fr}.ride-passport-grid,.achievement-grid{grid-template-columns:1fr}.profile-stats{grid-template-columns:1fr 1fr!important}}
.profile-activity-list{display:grid;gap:8px}.profile-activity-list>div{display:flex;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--theme-border,#dfe5ec);border-radius:11px;background:var(--theme-surface,#fff)}.activity-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#F4C542;color:#0B294C;font-weight:900}.profile-activity-list p{margin:0}.profile-activity-list strong,.profile-activity-list small{display:block}.profile-activity-list small{margin-top:2px;color:var(--theme-muted,#64748b)}
.favorite-ride-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.favorite-ride-profile-grid>div{padding:14px;border:1px solid var(--theme-border,#dfe5ec);border-radius:11px;background:var(--theme-surface,#fff)}.favorite-ride-profile-grid strong,.favorite-ride-profile-grid span{display:block}.favorite-ride-profile-grid span{margin-top:3px;color:var(--theme-muted,#64748b);font-size:.78rem}
body.theme-after-dark :is(.profile-activity-list>div,.favorite-ride-profile-grid>div){background:#171027!important;border-color:#3b285f!important}
@media(max-width:760px){.favorite-ride-profile-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.favorite-ride-profile-grid{grid-template-columns:1fr}}

/* v12.74.1 — Profile/Ride Passport polish */
.profile-subheading{align-items:center!important;gap:14px}.profile-subheading>.profile-heading-copy{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:2px!important;min-width:max-content}.profile-subheading>.profile-heading-copy .profile-section-kicker{position:static!important;margin:0!important;line-height:1.2!important}.profile-subheading>.profile-heading-copy h2{margin:0!important;line-height:1.15!important}.profile-subheading>span:last-child{flex:1 1 auto!important;min-width:24px}
.ride-passport-filters{display:grid;grid-template-columns:minmax(190px,1.4fr) minmax(160px,.8fr) minmax(150px,.7fr) auto;gap:10px;align-items:end;margin:0 0 8px;padding:14px;border:1px solid var(--theme-border,#dfe5ec);border-radius:12px;background:var(--theme-surface,#fff)}.ride-passport-filters label{display:grid;gap:6px;margin:0}.ride-passport-filters label>span{font-size:.62rem;font-weight:900;letter-spacing:.08em;color:var(--theme-muted,#64748b)}.ride-passport-filters input,.ride-passport-filters select{width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--theme-border,#dfe5ec);border-radius:9px;background:var(--theme-surface-soft,#f7f9fb);color:var(--theme-text,#152238)}.ride-passport-filters button{min-height:42px;padding:0 14px;border:0;border-radius:9px;background:#0B294C;color:#fff;font-weight:900;cursor:pointer}.ride-passport-filters button:hover{background:#F4C542;color:#0B294C}.ride-passport-filter-count{margin:0 0 12px;color:var(--theme-muted,#64748b);font-size:.72rem;font-weight:800}.ride-passport-filter-count strong{color:var(--theme-text,#152238)}
.ride-directory-top{grid-template-columns:auto minmax(0,1fr)!important;align-items:center!important}.ride-ridden-button{display:grid!important;place-items:center!important;width:34px!important;height:34px!important;min-width:34px!important;padding:0!important;margin:0 0 0 16px!important;border-radius:50%!important;font-size:1.15rem!important;line-height:1!important;letter-spacing:0!important}.ride-ridden-button.is-ridden{font-size:.95rem!important}.ride-directory-head{min-width:0}
body.theme-after-dark .ride-passport-filters{background:#171027!important;border-color:#3b285f!important}body.theme-after-dark .ride-passport-filters input,body.theme-after-dark .ride-passport-filters select{background:#211638!important;border-color:#49336e!important;color:#fff!important}
@media(max-width:820px){.ride-passport-filters{grid-template-columns:1fr 1fr}.ride-directory-top{grid-template-columns:auto minmax(0,1fr)!important}.ride-ridden-button{margin-left:12px!important}}
@media(max-width:560px){.ride-passport-filters{grid-template-columns:1fr}.profile-subheading>.profile-heading-copy{min-width:0}}

/* v12.74.2 — profile heading overlap fix */
.profile-subheading>.profile-heading-copy .profile-section-kicker{display:block!important;width:auto!important;height:auto!important;background:none!important;border-radius:0!important;position:static!important;margin:0!important;padding:0!important;font-size:.66rem!important;font-weight:900!important;letter-spacing:.1em!important;line-height:1.2!important;color:var(--theme-muted,#64748b)!important}
.profile-subheading>.profile-heading-copy h2{display:block!important;clear:both!important;margin:2px 0 0!important;line-height:1.05!important}


/* v12.77 — Active Sessions & Account Security */
.profile-security{margin-top:34px}
.profile-security .section-heading{margin-bottom:18px}
.security-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.8fr);gap:20px;align-items:start}
.security-panel-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px}
.security-panel-head h2,.password-panel h2{margin-top:0}
.security-panel-head p,.password-panel>p,.security-note{opacity:.82}
.session-list{display:grid;gap:12px}
.session-card{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:16px;border:1px solid rgba(128,128,128,.28);border-radius:12px;background:rgba(255,255,255,.035)}
.session-card.current-session{border-color:#f5c400}
.session-icon{font-size:15px;color:#f5c400}
.session-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.session-info p,.session-card p{margin:6px 0 0;font-size:.9rem;line-height:1.55;opacity:.78}
.session-badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#f5c400;color:#0b294c;font-size:.68rem;font-weight:800;letter-spacing:.04em}
.security-danger-button{border:1px solid #c74a4a;background:transparent;color:inherit;border-radius:8px;padding:9px 11px;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}
.security-danger-button:hover{background:#c74a4a;color:#fff}
.security-note{margin:14px 0 0;font-size:.86rem}
.password-panel .auth-form{margin-top:16px}
@media(max-width:900px){.security-grid{grid-template-columns:1fr}.security-panel-head{flex-direction:column}.session-card{grid-template-columns:auto 1fr}.session-action{grid-column:2}.session-action .security-danger-button{width:100%}}
@media(max-width:560px){.session-card{grid-template-columns:1fr}.session-icon{display:none}.session-action{grid-column:1}.security-panel-head form,.security-panel-head .security-danger-button{width:100%}}


/* v12.77.4 — independent WAIT TIMES / RIDES visibility switches */
.ride-visibility-switches{display:grid;gap:12px;margin-top:18px}
.ride-visibility-switch{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid rgba(255,255,255,.12);border-radius:12px;cursor:pointer}
.ride-visibility-switch>span:first-child{display:grid;gap:3px}
.ride-visibility-switch strong{font-size:14px}
.ride-visibility-switch small{opacity:.68;font-size:12px;line-height:1.35}
.ride-switch{position:relative;display:inline-flex;flex:0 0 auto;width:46px;height:26px}
.ride-switch input{position:absolute;opacity:0;pointer-events:none}
.ride-switch i{display:block;width:46px;height:26px;border-radius:999px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.18);transition:.18s ease;position:relative}
.ride-switch i:after{content:"";position:absolute;width:20px;height:20px;left:2px;top:2px;border-radius:50%;background:#fff;transition:.18s ease}
.ride-switch input:checked+i{background:#ffc928;border-color:#ffc928}
.ride-switch input:checked+i:after{transform:translateX(20px);background:#0B294C}
.ride-switch input:focus-visible+i{outline:2px solid #fff;outline-offset:3px}
@media(max-width:600px){.ride-visibility-switch{align-items:flex-start}.ride-visibility-switch small{max-width:220px}}
\n\n/* v12.78 — Quality, performance & accessibility polish (functionality unchanged) */\n:where(.page-shell,.admin-shell,.wait-page-shell,.profile-shell,.article-shell){overflow-wrap:anywhere}\n:where(button,input,select,textarea,a){-webkit-tap-highlight-color:transparent}\n:where(button,.button,.btn,.yellow-button,.register-button,input,select,textarea){touch-action:manipulation}\n:where(.simple-news-grid,.personal-grid,.profile-stats,.ride-passport-grid,.achievement-grid)>*{min-width:0}\nimg{height:auto}\n@media(max-width:600px){\n  :where(button,.button,.btn,.yellow-button,.register-button,.main-nav a){min-height:42px}\n  input,select,textarea{font-size:16px}\n  .page-shell,.wait-page-shell,.profile-shell{max-width:100%}\n}\n@media(prefers-reduced-motion:reduce){\n  html{scroll-behavior:auto!important}\n  *,*::before,*::after{scroll-duration:0s!important}\n}\n

/* =========================================================
   ParkPulse v12.79 — Visual & UX Polish
   Additive only: preserves v12.78 functionality and themes.
   ========================================================= */

/* Consistent rhythm and readable long-form widths */
.page-shell,
.homepage-shell,
.news-page-shell,
.wait-page-shell,
.rides-shell,
.profile-shell,
.admin-shell {
    scroll-margin-top: 92px;
}

.news-copy,
.profile-heading-copy,
.admin-hero-copy {
    min-width: 0;
}

/* Unified tactile feedback without recolouring theme-specific components */
:is(.yellow-button, .small-button, .button-link, .home-profile-button,
    .news-filter-button, .news-filter-reset, .news-empty-button,
    .park-community-card-button, .admin-ghost-button, .rides-reset,
    .passport-button, .wishlist-button, .passholder-button, .passport-map-button) {
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        border-color .16s ease,
        background-color .16s ease,
        color .16s ease,
        opacity .16s ease;
    -webkit-tap-highlight-color: transparent;
}

@media (hover: hover) and (pointer: fine) {
    :is(.yellow-button, .small-button, .button-link, .home-profile-button,
        .news-filter-button, .news-filter-reset, .news-empty-button,
        .park-community-card-button, .admin-ghost-button, .rides-reset,
        .passport-button, .wishlist-button, .passholder-button, .passport-map-button):not(:disabled):hover {
        transform: translateY(-1px);
    }
}

:is(.yellow-button, .small-button, .button-link, .home-profile-button,
    .news-filter-button, .news-filter-reset, .news-empty-button,
    .park-community-card-button, .admin-ghost-button, .rides-reset,
    .passport-button, .wishlist-button, .passholder-button, .passport-map-button):active {
    transform: translateY(0);
}

/* Form controls: predictable touch behaviour and no iOS zoom */
:is(.news-search-field, .news-filter-field, .parks-finder-field, .rides-search,
    .admin-filter-form input, .admin-filter-form select,
    .profile-shell input, .profile-shell select, .profile-shell textarea,
    .wait-page-shell input, .wait-page-shell select) {
    max-width: 100%;
}

:is(button, input, select, textarea, a) {
    touch-action: manipulation;
}

/* Card content may shrink instead of forcing horizontal overflow */
:is(.news-card, .park-info-card, .park-community-card, .ride-directory-card,
    .profile-panel, .admin-card, .side-card) {
    min-width: 0;
}

:is(.news-copy, .ride-directory-head, .ride-directory-title,
    .admin-card-head, .profile-details) {
    overflow-wrap: anywhere;
}

/* Images never escape their component */
:is(.news-card, .park-info-card, .ride-directory-card, .profile-panel) img {
    max-width: 100%;
}

/* Tables remain usable on narrow screens without changing desktop layout */
.admin-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

/* Better keyboard discoverability while respecting existing theme focus colours */
:is(.news-card, .ride-directory-card, .park-community-card, .admin-card)
    :is(a, button, input, select, textarea):focus-visible {
    position: relative;
    z-index: 2;
}

/* Prevent controls being hidden below sticky/mobile browser UI when focused */
:is(input, select, textarea, button, a):focus-visible {
    scroll-margin-block: 110px 32px;
}

/* Mobile consistency pass */
@media (max-width: 760px) {
    :root {
        --pp-mobile-page-gap: 14px;
    }

    :is(.homepage-shell, .news-page-shell, .wait-page-shell, .rides-shell,
        .profile-shell, .admin-shell) {
        overflow-x: clip;
    }

    :is(.news-toolbar, .rides-toolbar, .admin-filter-form,
        .park-hero-actions, .admin-hero-actions) {
        min-width: 0;
    }

    :is(.news-search-field, .news-filter-field, .parks-finder-field,
        .rides-search, .admin-filter-form input, .admin-filter-form select,
        .profile-shell input, .profile-shell select, .profile-shell textarea,
        .wait-page-shell input, .wait-page-shell select) {
        font-size: 16px;
    }

    :is(.yellow-button, .small-button, .button-link, .home-profile-button,
        .news-filter-button, .news-filter-reset, .news-empty-button,
        .park-community-card-button, .admin-ghost-button, .rides-reset,
        .passport-button, .wishlist-button, .passholder-button, .passport-map-button) {
        min-height: 44px;
    }

    .wait-country-toggle {
        min-height: 48px;
    }

    .ride-visibility-switch,
    .ride-switch {
        min-height: 44px;
    }

    .news-card-meta,
    .ride-directory-badges {
        row-gap: 6px;
    }
}

/* Respect users who prefer less animation */
@media (prefers-reduced-motion: reduce) {
    :is(.yellow-button, .small-button, .button-link, .home-profile-button,
        .news-filter-button, .news-filter-reset, .news-empty-button,
        .park-community-card-button, .admin-ghost-button, .rides-reset,
        .passport-button, .wishlist-button, .passholder-button, .passport-map-button) {
        transition: none !important;
    }
}

/* v12.81 Baron 1898 3D viewer entry point — additive to expandable ride cards */
.ride-3d-action{margin-top:18px}.ride-3d-open{min-height:44px;padding:12px 20px;border:0;border-radius:10px;background:#f4c542;color:#0b294c;font-size:.78rem;font-weight:950;letter-spacing:.07em;cursor:pointer}.ride-3d-open:hover{filter:brightness(1.06)}.ride-3d-open:focus-visible,.ride-3d-close:focus-visible{outline:3px solid #f4c542;outline-offset:3px}
.ride-3d-overlay[hidden]{display:none!important}.ride-3d-overlay{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:20px;background:rgba(3,12,28,.86);backdrop-filter:blur(6px)}.ride-3d-modal-open{overflow:hidden}.ride-3d-modal{display:flex;flex-direction:column;width:min(1120px,100%);max-height:calc(100dvh - 40px);overflow:hidden;border:1px solid #3a506e;border-radius:18px;background:#091c35;color:#fff;box-shadow:0 30px 90px rgba(0,0,0,.5)}.ride-3d-modal-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 24px;border-bottom:1px solid #29405e}.ride-3d-modal-head small{color:#f4c542;font-weight:800;letter-spacing:.13em}.ride-3d-modal-head h2{margin:5px 0 0;font-size:clamp(1rem,2.5vw,1.5rem);color:#fff}.ride-3d-close{flex:none;width:42px;height:42px;border:1px solid #52627b;border-radius:50%;background:#152e4b;color:#fff;font-size:28px;cursor:pointer}.ride-3d-stage{display:grid;place-items:center;min-height:clamp(300px,60vh,650px);padding:24px;background:radial-gradient(circle at 50% 40%,#173a60,#08162a 70%)}.ride-3d-empty{text-align:center;max-width:450px}.ride-3d-empty>span{display:block;color:#f4c542;font-size:5rem}.ride-3d-empty strong{display:block;font-size:1.15rem;letter-spacing:.1em}.ride-3d-empty p{color:#c5d1e2;line-height:1.6}.ride-3d-modal-foot{padding:14px 24px;color:#b5c7da;font-size:.82rem;border-top:1px solid #29405e}
@media(max-width:640px){.ride-3d-overlay{padding:8px}.ride-3d-modal{max-height:calc(100dvh - 16px)}.ride-3d-modal-head{padding:15px}.ride-3d-stage{min-height:60dvh}.ride-3d-modal-foot{padding:12px 15px}}

/* v12.82: 11px spacing between expandable ride cards */
.rides-directory{gap:11px!important;row-gap:11px!important}
/* Interactive Baron 1898 3D viewer */
.ride-3d-stage{position:relative;overflow:hidden;padding:0!important;display:block;min-height:clamp(340px,60vh,650px)}
.ride-3d-stage canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}
.ride-3d-stage canvas:active{cursor:grabbing}
.ride-3d-legend,.ride-3d-help{position:absolute;pointer-events:none;left:14px;color:#f4c542;font-size:10px;letter-spacing:.09em;font-weight:800;text-shadow:0 1px 4px #000}
.ride-3d-legend{top:15px}.ride-3d-help{bottom:14px;color:#d6e3f1;font-weight:600}
.ride-3d-loading{display:grid;place-items:center;min-height:350px;color:#fff}
.ride-3d-stage{height:clamp(340px,60vh,650px)}

/* v12.85 NoLimits original model previews */
.ride-3d-asset-picker{position:absolute;top:12px;left:12px;z-index:5;background:#0b294ce8;color:white;border:1px solid #ffffff44;border-radius:9px;padding:8px 10px;font-size:13px}.ride-3d-asset-picker select{max-width:220px;background:#142e4a;color:#fff;border:1px solid #ffffff55;border-radius:5px;padding:5px}.ride-3d-asset-note{position:absolute;left:12px;bottom:42px;z-index:5;background:#0b294ce8;color:white;font-size:12px;max-width:min(95%,440px);padding:7px;border-radius:6px}
