/* ── Dashboard layout ── */
.cul-dash-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 48px;
}

/* Global: no underlines on any dashboard links */
.cul-dash-hero a,
.cul-dash-body a,
.cul-dash-hero a:hover,
.cul-dash-body a:hover,
.cul-dash-hero a:visited,
.cul-dash-body a:visited {
    text-decoration: none !important;
}

/* ── Hero ── */
.cul-dash-hero {
    background-color: #1B3A5C;
    background-image:
        radial-gradient(circle at 18% 22%, rgba(232,119,34,0.42), transparent 58%),
        radial-gradient(circle at 82% 82%, rgba(61,90,153,0.7), transparent 62%),
        linear-gradient(135deg, #1B3A5C 0%, #0f2740 100%);
    padding: 32px 0 28px;
}
.cul-dash-hero__title {
    font-family: 'Poppins', sans-serif;
    font-size: 30px !important;
    font-weight: 700;
    color: #ffffff;
    margin: 0;
    line-height: 1.2;
    letter-spacing: -0.02em;
    max-width: 100%;
}
.cul-dash-hero__location {
    font-size: 17px;
    color: rgba(255,255,255,0.6);
    margin: 4px 0 0;
}
.cul-dash-hero__subtitle {
    font-family: 'DM Sans', system-ui, sans-serif;
    font-size: 15px;
    color: #ffffff;
    margin: 6px 0 0;
}
.cul-dash-hero__subtitle .is-live  { color: #ffffff; font-weight: 600; }
.cul-dash-hero__subtitle .is-score { color: #ffffff; font-weight: 600; }
.cul-dash-hero__title-link,
.cul-dash-hero__title-link:link,
.cul-dash-hero__title-link:visited { color: #ffffff !important; text-decoration: none; }
.cul-dash-hero__title-link:hover { color: #ffffff !important; opacity: 0.85; }
.cul-dash-hero__title-link { display: inline-flex; align-items: center; gap: 10px; }
.cul-dash-hero__title-icon { flex-shrink: 0; opacity: 0.7; }
.cul-dash-hero__title-link:hover .cul-dash-hero__title-icon { opacity: 1; }

/* Text-only nav under the title: Dashboard / My Business / Manage account / Log out */
.cul-dash-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 22px;
    margin-top: 18px;
}
.cul-dash-hero .cul-dash-navlink,
.cul-dash-hero .cul-dash-navlink:link,
.cul-dash-hero .cul-dash-navlink:visited,
.cul-dash-hero .cul-dash-navlink:hover,
.cul-dash-hero .cul-dash-navlink:focus,
.cul-dash-hero .cul-dash-navlink:active {
    font-family: 'DM Sans', system-ui, sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: rgba(255,255,255,0.72) !important;
    text-decoration: none !important;
    background: none;
    border: 0;
    padding: 4px 0;
    line-height: 1;
    transition: color .15s ease;
    position: relative;
}
.cul-dash-hero .cul-dash-navlink:hover,
.cul-dash-hero .cul-dash-navlink:focus {
    color: #ffffff !important;
}
.cul-dash-hero .cul-dash-navlink.is-active,
.cul-dash-hero .cul-dash-navlink.is-active:link,
.cul-dash-hero .cul-dash-navlink.is-active:visited,
.cul-dash-hero .cul-dash-navlink.is-active:hover,
.cul-dash-hero .cul-dash-navlink.is-active:focus {
    color: #ffffff !important;
    font-weight: 700;
}
.cul-dash-hero .cul-dash-navlink.is-active::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -6px;
    height: 2px;
    background: #E87722;
    border-radius: 2px;
}

/* ── Body ── */
.cul-dash-body {
    background: #EEF4FB;
    padding: 32px 0 48px;
    min-height: 60vh;
}

/* ── Section header ── */
.cul-dash-section {
    margin-bottom: 36px;
}
.cul-dash-section__header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
}
.cul-dash-role-pill {
    font-size: 15px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 4px 12px;
    border-radius: 4px;
    white-space: nowrap;
    color: #ffffff;
}
.cul-dash-role-pill--owner    { background: #1B3A5C; }
.cul-dash-role-pill--resident { background: #E87722; }
.cul-dash-role-pill--offers   { background: #4a7fd4; }
.cul-dash-section__rule {
    flex: 1;
    height: 0.5px;
    background: #c4d4e4;
    border: none;
    margin: 0;
}

/* ── Listing cards (shared by business owner + claimed offers) ── */
.cul-dash-listing-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}
.cul-dash-listing-card {
    background: #ffffff;
    border: 0.5px solid #c8d8e8;
    border-radius: 8px;
    padding: 16px 18px;
    position: relative;
}
.cul-dash-listing-card--hidden,
.cul-dash-follow-card--hidden {
    display: none;
}

/* Score badge (business owner cards) */
.cul-dash-listing-card__score {
    position: absolute;
    top: 14px;
    right: 18px;
    width: 50px;
    height: 50px;
    border-radius: 8px;
    background: #1B3A5C;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    font-weight: 600;
}

/* Status badge top-right (claimed offer cards) */
.cul-dash-offer-status {
    position: absolute;
    top: 14px;
    right: 18px;
    font-size: 15px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 4px 10px;
    border-radius: 4px;
    white-space: nowrap;
}
.cul-dash-offer-status--active   { background: #e8f5e9; color: #2e7d32; border: 0.5px solid #a5d6a7; }
.cul-dash-offer-status--redeemed { background: #e8f0fe; color: #1a56a0; border: 0.5px solid #b3ccf5; }
.cul-dash-offer-status--expired  { background: #f0f4f8; color: #888; border: 0.5px solid #c8d8e8; }

.cul-dash-listing-card__body {
    padding-right: 0;
}
.cul-dash-listing-card__name {
    font-size: 17px;
    font-weight: 500;
    color: #1B3A5C;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 66px;
}
.cul-dash-listing-card__meta {
    font-size: 15px;
    color: #888;
    margin-top: 2px;
    padding-right: 66px;
}
.cul-dash-listing-card__desc {
    font-size: 15px;
    color: #444;
    margin-top: 5px;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    padding-right: 66px;
}
.cul-dash-listing-card__footer {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
    flex-wrap: wrap;
}
.cul-dash-listing-card__link {
    font-size: 15px;
    color: #E87722;
    text-decoration: none;
    margin-left: auto;
}
.cul-dash-listing-card__link:hover { text-decoration: none; }
.cul-dash-listing-card__edit {
    font-size: 15px;
    color: #888;
    text-decoration: none;
}
.cul-dash-listing-card__edit:hover { color: #000000; text-decoration: none; }
.cul-dash-listing-card__unfollow {
    background: transparent;
    border: none;
    font-size: 15px;
    font-weight: 400;
    color: #a0aab8;
    cursor: pointer;
    font-family: inherit;
    padding: 0;
    text-decoration: none;
    margin-left: auto;
}
.cul-dash-listing-card__unfollow:hover { color: #000000; text-decoration: none; }

/* Redeem button inside offer card */
.cul-dash-listing-card__redeem {
    display: inline-block;
    background: #4caf50;
    color: #ffffff;
    font-size: 15px;
    font-weight: 500;
    padding: 7px 16px;
    border-radius: 8px;
    text-decoration: none;
    margin-left: auto;
}
.cul-dash-listing-card__redeem:hover { background: #43a047; text-decoration: none; }

/* Unclaim row inside offer card */
.cul-dash-offer-unclaim {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 0.5px solid #edf2f7;
    text-align: center;
}
.cul-dash-offer-unclaim__link {
    font-size: 15px;
    color: #a0aab8;
    text-decoration: none;
}
.cul-dash-offer-unclaim__confirm {
    background: #fff8f0;
    border: 0.5px solid #f5c49a;
    border-radius: 8px;
    padding: 10px 12px;
    margin-top: 8px;
    font-size: 15px;
    color: #444;
}
.cul-dash-offer-unclaim__yes {
    background: #e53e3e;
    color: #fff;
    border: none;
    padding: 6px 14px;
    border-radius: 4px;
    font-size: 15px;
    cursor: pointer;
    margin-right: 6px;
    font-family: inherit;
}
.cul-dash-offer-unclaim__cancel {
    background: #edf2f7;
    color: #444;
    border: none;
    padding: 6px 14px;
    border-radius: 4px;
    font-size: 15px;
    cursor: pointer;
    font-family: inherit;
}

/* Status badges (for listing cards) */
.cul-dash-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 15px;
    padding: 3px 9px;
    border-radius: 4px;
}
.cul-dash-status--unclaimed { background: #f0f4f8; color: #888; border: 0.5px solid #c8d8e8; }
.cul-dash-status--claimed   { background: #e8f0fe; color: #1a56a0; border: 0.5px solid #b3ccf5; }
.cul-dash-status--offer     { background: #e8f5e9; color: #2e7d32; border: 0.5px solid #a5d6a7; }
.cul-dash-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}
.cul-dash-dot--unclaimed { background: #a0aab8; }
.cul-dash-dot--claimed   { background: #4a7fd4; }
.cul-dash-dot--offer     { background: #4caf50; }

/* Show more bar */
.cul-dash-show-more {
    background: #ffffff;
    border: 0.5px solid #c8d8e8;
    border-radius: 8px;
    padding: 13px;
    text-align: center;
    font-size: 15px;
    color: #E87722;
    cursor: pointer;
    margin-top: 14px;
}
.cul-dash-show-more:hover {
    background: #f5f9ff;
}

/* ── White cards (following) ── */
.cul-dash-card {
    background: #ffffff;
    border: 0.5px solid #c8d8e8;
    border-radius: 8px;
    padding: 22px 24px;
}
.cul-dash-card__title {
    font-size: 20px;
    font-weight: 500;
    color: #1B3A5C;
    margin: 0 0 12px;
}
.cul-dash-card__empty {
    font-size: 15px;
    color: #888;
    line-height: 1.6;
    margin: 0;
}

/* ── Follow list ── */
.cul-dash-follow-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.cul-dash-follow-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 0.5px solid #edf2f7;
}
.cul-dash-follow-item:last-child { border-bottom: none; }
.cul-dash-follow-item--hidden { display: none; }
.cul-dash-follow-item__cat {
    font-size: 15px;
    font-weight: 500;
    color: #b85a10;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    display: block;
    margin-bottom: 2px;
}
.cul-dash-follow-item__name {
    font-size: 15px;
    font-weight: 500;
    color: #1B3A5C;
    text-decoration: none;
}
.cul-dash-follow-item__name:hover { color: #E87722; text-decoration: none; }
.cul-dash-follow-item__actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}
.cul-dash-unfollow-btn {
    background: transparent;
    border: 0.5px solid #c8d8e8;
    color: #888;
    font-size: 15px;
    font-weight: 500;
    padding: 4px 12px;
    border-radius: 4px;
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
    transition: border-color 0.15s, color 0.15s;
}
.cul-dash-unfollow-btn:hover {
    border-color: #e53e3e;
    color: #e53e3e;
}
.cul-dash-offer-live {
    background: #fef3ea;
    color: #b85a10;
    font-size: 15px;
    font-weight: 500;
    padding: 3px 10px;
    border-radius: 4px;
    border: 0.5px solid #f5c49a;
    white-space: nowrap;
}
.cul-dash-card__more-btn {
    background: transparent;
    border: 0.5px solid #c8d8e8;
    color: #E87722;
    font-size: 15px;
    padding: 8px 0;
    width: 100%;
    cursor: pointer;
    border-radius: 8px;
    margin-top: 10px;
    font-family: inherit;
}

/* ── Notice ── */
.cul-dash-notice {
    background: #e8f5e9;
    color: #2e7d32;
    border: 0.5px solid #a5d6a7;
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 15px;
    margin-bottom: 16px;
}

/* ── Offers Table ── */
.cul-dash-offers-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.cul-dash-offers-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid #e0ddd8;
    border-radius: 10px;
    overflow: hidden;
    font-size: 14px;
}
.cul-dash-offers-table thead {
    background: #f7f5f2;
}
.cul-dash-offers-table th {
    padding: 10px 14px;
    text-align: left;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #888;
    border-bottom: 1px solid #e0ddd8;
    white-space: nowrap;
}
.cul-dash-offers-table td {
    padding: 12px 14px;
    border-bottom: 1px solid #f0ede8;
    color: #444;
    vertical-align: middle;
}
.cul-dash-offers-table tbody tr:last-child td {
    border-bottom: none;
}
.cul-dash-offers-table tbody tr:hover {
    background: #faf9f7;
}
.cul-dash-offers-table__row--archived {
    opacity: 0.5;
}
.cul-dash-offer-pill {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}
.cul-dash-offers-table__actions {
    white-space: nowrap;
}
.cul-dash-inline-form {
    display: inline;
}
.cul-dash-btn {
    display: inline-block;
    padding: 4px 14px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    font-family: inherit;
    line-height: 1.4;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid transparent;
    margin-right: 4px;
    transition: opacity 0.15s;
    -webkit-appearance: none;
    appearance: none;
}
.cul-dash-btn:hover { opacity: 0.8; }
.cul-dash-btn--redeem {
    background: #4caf50;
    color: #fff;
    border-color: #4caf50;
}
.cul-dash-btn--archive {
    background: none;
    color: #888;
    border: none;
    padding: 4px 6px;
    font-size: 12px;
}
.cul-dash-btn--archive:hover { color: #555; text-decoration: underline; }
.cul-dash-btn--unclaim {
    background: none;
    color: #aaa;
    border: none;
    padding: 4px 6px;
    font-size: 12px;
}
.cul-dash-btn--unclaim:hover { color: #c62828; text-decoration: underline; }
.cul-dash-archived-toggle {
    margin-top: 10px;
    font-size: 13px;
    color: #888;
}
.cul-dash-archived-toggle a {
    color: #3d5a99;
    text-decoration: none;
}
.cul-dash-archived-toggle a:hover {
    text-decoration: underline;
}

/* ── Responsive ── */
@media (max-width: 900px) {
    .cul-dash-inner { padding: 0 24px; }
    .cul-dash-listing-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .cul-dash-offers-table thead { display: none; }
    .cul-dash-offers-table,
    .cul-dash-offers-table tbody,
    .cul-dash-offers-table tr,
    .cul-dash-offers-table td {
        display: block;
        width: 100%;
    }
    .cul-dash-offers-table tr {
        background: #fff;
        border: 1px solid #e0ddd8;
        border-radius: 10px;
        margin-bottom: 12px;
        padding: 8px 0;
        overflow: hidden;
    }
    .cul-dash-offers-table td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 8px 16px;
        border-bottom: 1px solid #f5f3f0;
        text-align: right;
    }
    .cul-dash-offers-table td:last-child {
        border-bottom: none;
    }
    .cul-dash-offers-table td::before {
        content: attr(data-label);
        font-weight: 600;
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        color: #888;
        text-align: left;
        margin-right: 12px;
        flex-shrink: 0;
    }
    .cul-dash-offers-table__actions {
        justify-content: flex-end;
        gap: 6px;
        flex-wrap: wrap;
    }
}
@media (max-width: 768px) {
    .cul-dash-hero { padding: 24px 0 22px; }
    .cul-dash-hero__title { font-size: 30px; }
    .cul-dash-nav { gap: 16px; margin-top: 14px; }
    .cul-dash-hero .cul-dash-navlink { font-size: 14px; }
}

@media (max-width: 600px) {
    .cul-dash-inner { padding: 0 16px; }
    .cul-dash-hero__title { font-size: 26px; }
    .cul-offer-card-inner { flex-direction: column !important; }
    .cul-offer-card-btns { flex-direction: row !important; width: 100%; margin-top: 12px; }
    .cul-offer-card-btns a { flex: 1; }
}

/* ── Dashboard row primitive (used by all dashboard lists) ─────────────────
   Status pill (left, full-height) + body (title + meta + help) + actions
   on the right. One CSS pattern shared across My Listings / My Offers /
   My Follows / My Events. Render via cul_dash_render_row() in
   includes/dashboard-helpers.php. ─────────────────────────────────────── */
.cul-dash-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.cul-dash-row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    justify-content: space-between;
    gap: 0;
    background: #fff;
    border: 0.5px solid #d0dce8;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(27,58,92,0.04);
}
.cul-dash-row.is-hidden { display: none !important; }
/* Stacked variant: body on top, actions on their own row at the bottom. */
.cul-dash-row--stack { flex-direction: column !important; align-items: stretch !important; }
.cul-dash-row--stack .cul-dash-row-actions { justify-content: flex-start; border-top: 0.5px solid #eef2f7; padding-top: 12px; }
.cul-dash-row-main {
    display: flex;
    align-items: stretch;
    gap: 0;
    min-width: 0;
    flex: 1;
}
.cul-dash-row-body { min-width: 0; flex: 1; padding: 16px 20px; }
.cul-dash-row-title {
    font-family: 'Poppins', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #1B3A5C;
    text-decoration: none;
    line-height: 1.3;
    letter-spacing: -0.01em;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
a.cul-dash-row-title:hover { color: #E87722; }
.cul-dash-row-meta {
    font-family: 'DM Sans', system-ui, sans-serif;
    font-size: 16px;
    color: #6b7a8c;
    margin-top: 4px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}
.cul-dash-row-sep { color: #c0ccd9; }
.cul-dash-row-meta-item.is-score          { color: #3d5a99; font-weight: 600; }
.cul-dash-row-meta-item.is-success-tag    { color: #2e7d32; font-weight: 600; }
.cul-dash-row-meta-item.is-warning-tag    { color: #b85a10; font-weight: 600; }
.cul-dash-row-meta-item.is-recurs         { color: #E87722; font-weight: 600; }

.cul-dash-row-help {
    font-family: 'DM Sans', system-ui, sans-serif;
    font-size: 16px;
    color: #7a9ab8;
    margin: 6px 0 0;
    line-height: 1.5;
}
.cul-dash-row-help a {
    color: #1B3A5C;
    font-weight: 500;
    text-decoration: none;
}
.cul-dash-row-help a:hover {
    text-decoration: underline;
}

/* At-a-glance stat strip (My Business landing) */
.cul-dash-stats {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}
.cul-dash-stat {
    flex: 1;
    min-width: 120px;
    background: #fff;
    border: 0.5px solid #d0dce8;
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(27,58,92,0.08);
    padding: 18px 20px;
    text-align: center;
}
a.cul-dash-stat { text-decoration: none; display: block; transition: transform 0.15s ease, box-shadow 0.15s ease; }
a.cul-dash-stat:hover { transform: translateY(-2px); box-shadow: 0 14px 38px rgba(27,58,92,0.16); }
.cul-dash-stat__value {
    display: block;
    font-family: 'Poppins', sans-serif;
    font-size: 30px;
    font-weight: 700;
    color: #1B3A5C;
    line-height: 1.1;
}
.cul-dash-stat__label {
    display: block;
    font-size: 16px;
    color: #7a9ab8;
    margin-top: 4px;
}
@media (max-width: 600px) {
    .cul-dash-stat__value { font-size: 25px; }
}

.cul-dash-row-fineprint {
    font-family: 'DM Sans', system-ui, sans-serif;
    margin-top: 8px;
}
.cul-dash-row-fineprint summary {
    font-size: 16px;
    color: #1B3A5C;
    font-weight: 500;
    cursor: pointer;
    list-style: none;
}
.cul-dash-row-fineprint summary::-webkit-details-marker { display: none; }
.cul-dash-row-fineprint summary::before { content: "▸ "; color: #1B3A5C; }
.cul-dash-row-fineprint[open] summary::before { content: "▾ "; }
.cul-dash-row-fineprint__body {
    font-size: 16px;
    color: #555;
    line-height: 1.55;
    margin-top: 6px;
}
.cul-dash-row-fineprint__body p { margin: 0 0 8px; }
.cul-dash-row-fineprint__body p:last-child { margin-bottom: 0; }

.cul-dash-row-status {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-family: 'DM Sans', system-ui, sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 14px 18px;
    min-width: 120px;
    color: #fff;
    align-self: stretch;
}
/* Status palette. Pick one; pass a label that fits the context. */
.cul-dash-row-status.is-success { background: #4caf50; }   /* Live / Claimed (waiting) */
.cul-dash-row-status.is-warning { background: #E87722; }   /* Pending review            */
.cul-dash-row-status.is-neutral { background: #5a7a9a; }   /* Following / Draft         */
.cul-dash-row-status.is-muted   { background: #b0bcc8; }   /* Past / Expired            */
.cul-dash-row-status.is-dark    { background: #1a1a2e; }   /* Redeemed / completed      */

.cul-dash-row-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    flex-wrap: wrap;
    justify-content: flex-end;
    padding: 14px 18px;
}
/* Followed-business rows wear a left accent so the list reads with color:
   orange when the business has an active offer, score-blue otherwise.
   Scoped to the Follows list, so other dashboard rows are untouched. */
.cul-fav-row {
    border-left: 3px solid #3d5a99;
    background: color-mix(in srgb, #3d5a99 4%, #fff);
}
.cul-fav-row[data-offer="1"] {
    border-left-color: #E87722;
    background: color-mix(in srgb, #E87722 5%, #fff);
}

/* Navigation tiles on the Manage Listings page. */
.cul-mybiz-tiles {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 32px;
}
.cul-mybiz-tile {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 4px;
    background: color-mix(in srgb, var(--tile-color) 6%, #fff);
    border: 0.5px solid color-mix(in srgb, var(--tile-color) 22%, #d0dce8);
    border-top: 3px solid var(--tile-color);
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(27,58,92,0.08);
    padding: 22px 20px;
    text-decoration: none;
    overflow: hidden;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
/* Soft color wash from the tile's accent color in the top-right corner. */
.cul-mybiz-tile::after {
    content: "";
    position: absolute;
    top: -40px; right: -40px;
    width: 120px; height: 120px;
    border-radius: 50%;
    background: var(--tile-color);
    opacity: 0.12;
    transition: opacity 0.15s ease, transform 0.15s ease;
    pointer-events: none;
}
.cul-mybiz-tile:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 40px rgba(27,58,92,0.16);
    border-color: var(--tile-color);
}
.cul-mybiz-tile:hover::after { opacity: 0.22; transform: scale(1.1); }
.cul-mybiz-tile__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px; height: 46px;
    border-radius: 13px;
    background: var(--tile-color);
    box-shadow: 0 6px 16px color-mix(in srgb, var(--tile-color) 35%, transparent);
    margin-bottom: 12px;
    position: relative;
    z-index: 1;
}
.cul-mybiz-tile__title {
    font-family: 'Poppins', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #1B3A5C;
    line-height: 1.2;
    position: relative;
    z-index: 1;
}
.cul-mybiz-tile__sub {
    font-size: 16px;
    color: #7a9ab8;
    line-height: 1.3;
    position: relative;
    z-index: 1;
}
/* Shrunk, de-emphasized row — what ClickUpLocal already does for the owner
   (Contacts/Claims/Feedback), secondary to the "Your listing" action tiles. */
.cul-mybiz-tiles--compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 32px;
}
.cul-mybiz-tiles--compact .cul-mybiz-tile {
    padding: 14px 16px;
    border-radius: 12px;
    box-shadow: none;
}
.cul-mybiz-tiles--compact .cul-mybiz-tile__icon {
    width: 34px; height: 34px;
    border-radius: 10px;
    margin-bottom: 8px;
}
.cul-mybiz-tiles--compact .cul-mybiz-tile__icon svg { width: 16px; height: 16px; }
.cul-mybiz-tiles--compact .cul-mybiz-tile__title { font-size: 15px; }
.cul-mybiz-tiles--compact .cul-mybiz-tile__sub { font-size: 13px; }

/* Section heading that doubles as a divider between tile groups. */
.cul-mybiz-section {
    font-family: 'Poppins', sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: #1B3A5C;
    margin: 4px 0 16px;
    padding-top: 20px;
    border-top: 1px solid #e0e8f0;
}
/* Full-width tile: spans the whole row, laid out horizontally. */
.cul-mybiz-tile--wide {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    padding: 18px 22px;
    /* Horizontal rows wear the accent on the left edge, not the top. */
    border-top: 0.5px solid color-mix(in srgb, var(--tile-color) 22%, #d0dce8);
    border-left: 3px solid var(--tile-color);
}
.cul-mybiz-tile--wide .cul-mybiz-tile__icon { margin-bottom: 0; flex: 0 0 auto; }
.cul-mybiz-tile--wide .cul-mybiz-tile__sub { color: #7a8aa0; }
@media (max-width: 860px) {
    .cul-mybiz-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .cul-mybiz-tiles { grid-template-columns: 1fr; }
    .cul-mybiz-tile--wide { flex-wrap: wrap; }
}

/* ── Owner-facing Playbook (/my-business/{slug}/playbook/) ────────────────── */
.cul-pb-cats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 28px;
}
.cul-pb-cat {
    background: #fff;
    border: 1px solid #d0dce8;
    border-radius: 12px;
    padding: 16px 18px;
}
.cul-pb-cat-label {
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #1B3A5C;
    margin-bottom: 8px;
}
.cul-pb-cat-bar {
    height: 6px;
    border-radius: 3px;
    background: #EEF4FB;
    overflow: hidden;
}
.cul-pb-cat-bar-fill {
    height: 100%;
    border-radius: 3px;
    transition: width 0.3s ease;
    background: #1e3a5f;
}
.cul-pb-cat[data-cat="branding"] .cul-pb-cat-bar-fill  { background: #7b5cff; }
.cul-pb-cat[data-cat="reputation"] .cul-pb-cat-bar-fill { background: #f5a623; }
.cul-pb-cat[data-cat="presence"] .cul-pb-cat-bar-fill  { background: #0e9da6; }
.cul-pb-cat[data-cat="income"] .cul-pb-cat-bar-fill    { background: #2e7d32; }
.cul-pb-cat-count {
    font-family: 'DM Sans', sans-serif;
    font-size: 13px;
    color: #7a8aa0;
    margin-top: 6px;
}
.cul-pb-section {
    background: #fff;
    border: 1px solid #d0dce8;
    border-radius: 12px;
    margin-bottom: 16px;
    overflow: hidden;
}
.cul-pb-section-title {
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    font-weight: 600;
    color: #1B3A5C;
    margin: 0;
    padding: 16px 20px 8px;
}
.cul-pb-items { padding: 4px 0 8px; }
.cul-pb-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 12px 20px;
    cursor: pointer;
    border-top: 1px solid #EEF4FB;
}
.cul-pb-item:first-child { border-top: 0; }
.cul-pb-item:hover { background: #f9fbfd; }
.cul-pb-checkbox { position: absolute; opacity: 0; pointer-events: none; }
.cul-pb-item-check {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid #d0dce8;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}
.cul-pb-item-check svg { width: 12px; height: 12px; opacity: 0; }
.cul-pb-item.is-checked .cul-pb-item-check { background: #27ae60; border-color: #27ae60; }
.cul-pb-item.is-checked .cul-pb-item-check svg { opacity: 1; }
.cul-pb-item-label {
    font-family: 'DM Sans', sans-serif;
    font-size: 15px;
    color: #1a1a2e;
    line-height: 1.4;
}
.cul-pb-item.is-checked .cul-pb-item-label { color: #7a8aa0; text-decoration: line-through; }
@media (max-width: 720px) {
    .cul-pb-cats { grid-template-columns: repeat(2, 1fr); }
}

/* FAQ manager. */
.cul-faq-form { background: #fff; border: 0.5px solid #d0dce8; border-radius: 16px; box-shadow: 0 8px 32px rgba(27,58,92,0.08); padding: 24px; }
.cul-faq-label { display: block; font-family: 'DM Sans', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase; color: #1B3A5C; margin: 0 0 7px; }
.cul-faq-input, .cul-faq-textarea { width: 100%; background: #EEF4FB; border: 0.5px solid #d0dce8; border-radius: 12px; font-size: 16px; color: #1B3A5C; font-family: 'DM Sans', system-ui, sans-serif; box-sizing: border-box; margin-bottom: 14px; }
.cul-faq-input { height: 48px; padding: 0 14px; }
.cul-faq-textarea { min-height: 90px; padding: 12px 14px; resize: vertical; }
.cul-faq-input:focus, .cul-faq-textarea:focus { border-color: #1B3A5C; background: #fff; outline: none; box-shadow: 0 0 0 3px rgba(28,58,92,0.08); }
.cul-faq-list { display: flex; flex-direction: column; gap: 14px; }
.cul-faq-item { background: #fff; border: 0.5px solid #d0dce8; border-radius: 16px; box-shadow: 0 8px 32px rgba(27,58,92,0.08); padding: 20px 22px; }
.cul-faq-item__q { font-family: 'Poppins', sans-serif; font-size: 18px; font-weight: 700; color: #1B3A5C; line-height: 1.3; margin-bottom: 6px; }
.cul-faq-item__a { font-size: 16px; color: #4a6380; line-height: 1.5; }
.cul-faq-item__actions { display: flex; gap: 8px; margin-top: 14px; }

/* Blog manager (view + edit). */
.cul-blog-list { display: flex; flex-direction: column; gap: 16px; }
.cul-blog-item { background: #fff; border: 0.5px solid #d0dce8; border-radius: 16px; box-shadow: 0 8px 32px rgba(27,58,92,0.08); padding: 24px 26px; }
.cul-blog-item__title { font-family: 'Poppins', sans-serif; font-size: 22px; font-weight: 700; color: #1B3A5C; line-height: 1.3; }
.cul-blog-badge { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #b85a10; background: #fdecd9; border-radius: 6px; padding: 2px 8px; vertical-align: middle; margin-left: 8px; }
.cul-blog-item__date { font-size: 16px; color: #7a9ab8; margin: 4px 0 14px; }
.cul-blog-item__body { font-size: 16px; color: #444; line-height: 1.6; }
.cul-blog-item__body p { margin: 0 0 14px; }
.cul-blog-item__body h1, .cul-blog-item__body h2, .cul-blog-item__body h3 { font-family: 'Poppins', sans-serif; color: #1B3A5C; line-height: 1.3; margin: 18px 0 10px; }
.cul-blog-item__body img { max-width: 100%; height: auto; border-radius: 12px; }
.cul-blog-item__actions { display: flex; gap: 8px; margin-top: 18px; }

/* Archived claims/feedback disclosure. */
.cul-dash-archived { margin-top: 16px; }
.cul-dash-archived > summary { cursor: pointer; font-size: 16px; font-weight: 600; color: #4a6380; list-style: none; padding: 6px 0; }
.cul-dash-archived > summary::-webkit-details-marker { display: none; }
.cul-dash-archived > summary::before { content: "▸ "; color: #7a9ab8; }
.cul-dash-archived[open] > summary::before { content: "▾ "; }

/* Offer rows: stack the actions along the bottom of the card, full width. */
.cul-offer-row { flex-direction: column !important; align-items: stretch; }
.cul-offer-row .cul-dash-row-actions {
    justify-content: flex-end;
    border-top: 0.5px solid #e0e8f0;
    padding: 14px 20px;
}
/* Lock down button + link rendering — Hello Elementor's default button
   color is hot pink and it overrides this without explicit defenses. */
.cul-dash-row-action,
.cul-dash-row-action:link,
.cul-dash-row-action:visited,
.cul-dash-row-action:hover,
.cul-dash-row-action:focus,
.cul-dash-row-action:active,
button.cul-dash-row-action,
button.cul-dash-row-action:hover,
button.cul-dash-row-action:focus,
button.cul-dash-row-action:active {
    -webkit-appearance: none;
    appearance: none;
    background-color: #fff;
    background-image: none;
    border: 0.5px solid #d0dce8;
    color: #1B3A5C;
    font-family: 'DM Sans', system-ui, sans-serif;
    font-size: 16px;
    font-weight: 600;
    padding: 8px 16px;
    border-radius: 8px;
    text-decoration: none;
    cursor: pointer;
    line-height: 1.3;
    white-space: nowrap;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
    box-shadow: none;
}
.cul-dash-row-action:hover,
button.cul-dash-row-action:hover { border-color: #1B3A5C; color: #1B3A5C; }

.cul-dash-row-action--primary,
.cul-dash-row-action--primary:link,
.cul-dash-row-action--primary:visited,
.cul-dash-row-action--primary:hover,
.cul-dash-row-action--primary:focus,
.cul-dash-row-action--primary:active,
button.cul-dash-row-action--primary,
button.cul-dash-row-action--primary:hover,
button.cul-dash-row-action--primary:focus,
button.cul-dash-row-action--primary:active {
    background-color: #E87722;
    background-image: none;
    border-color: #E87722;
    color: #fff;
}
.cul-dash-row-action--primary:hover,
button.cul-dash-row-action--primary:hover {
    background-color: #d06a18;
    border-color: #d06a18;
    color: #fff;
}

.cul-dash-row-action--danger,
.cul-dash-row-action--danger:link,
.cul-dash-row-action--danger:visited,
.cul-dash-row-action--danger:focus,
.cul-dash-row-action--danger:active,
button.cul-dash-row-action--danger,
button.cul-dash-row-action--danger:focus,
button.cul-dash-row-action--danger:active {
    background-color: #fff;
    background-image: none;
    color: #c62828;
    border-color: #ef9a9a;
}
.cul-dash-row-action--danger:hover,
button.cul-dash-row-action--danger:hover {
    background-color: #ffebee;
    border-color: #c62828;
    color: #c62828;
}
.cul-dash-row-confirm-wrap { display: inline-flex; align-items: center; gap: 6px; }
.cul-dash-row-confirm {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}
.cul-dash-row-confirm[hidden] { display: none; }
.cul-dash-row-confirm-label { font-size: 16px; color: #666; }

/* Page head (section title + secondary actions row) used on dashboard pages. */
.cul-dash-page-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}
.cul-dash-page-title {
    font-family: 'Poppins', sans-serif !important;
    font-size: 30px !important;
    font-weight: 700 !important;
    color: #1B3A5C;
    margin: 0;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.cul-dash-section-title {
    font-family: 'Poppins', sans-serif !important;
    font-size: 30px !important;
    font-weight: 700 !important;
    color: #1B3A5C;
    margin: 28px 0 14px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    letter-spacing: -0.01em;
    line-height: 1.2;
}
.cul-dash-section-count {
    background: #EEF4FB;
    color: #3d5a99;
    font-family: 'DM Sans', system-ui, sans-serif;
    font-size: 14px;
    font-weight: 700;
    padding: 3px 11px;
    border-radius: 10px;
}
.cul-dash-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.cul-dash-section-head .cul-dash-section-title { margin-bottom: 14px; }
.cul-dash-subsection-title {
    font-family: 'DM Sans', system-ui, sans-serif;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #7a9ab8;
    margin: 18px 0 10px;
}

/* Per-business detail page action row (Edit listing / Edit offer / etc). */
.cul-mybiz-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 24px;
}

.cul-dash-empty {
    background: #fff;
    border: 0.5px solid #d0dce8;
    border-radius: 12px;
    padding: 40px 24px;
    text-align: center;
    box-shadow: 0 2px 8px rgba(27,58,92,0.04);
}
.cul-dash-empty__icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    border-radius: 16px;
    background: rgba(232,119,34,0.10);
    display: flex;
    align-items: center;
    justify-content: center;
}
.cul-dash-empty__icon svg {
    width: 30px;
    height: 30px;
    stroke: #E87722;
    fill: none;
}
.cul-dash-empty h3 {
    font-family: 'Poppins', sans-serif !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #1B3A5C;
    margin: 0 0 6px;
    line-height: 1.2;
}
.cul-dash-empty p {
    font-family: 'DM Sans', system-ui, sans-serif;
    font-size: 16px;
    color: #44607f;
    margin: 0 0 18px;
}

/* Allow long titles to wrap in the row body so the row keeps its
   inline layout (status + body + actions) at desktop and tablet sizes. */
.cul-dash-row-title { white-space: normal; }

@media (max-width: 600px) {
    .cul-dash-row {
        flex-direction: column !important;
        flex-wrap: wrap !important;
        align-items: stretch;
        gap: 0;
    }
    .cul-dash-row-main {
        width: 100%;
        flex-direction: row;
    }
    .cul-dash-row-status {
        min-width: 0;
        width: auto;
        padding: 10px 12px;
        font-size: 10px;
        letter-spacing: 0.06em;
        align-self: stretch;
        flex: 0 0 92px;
    }
    .cul-dash-row-body {
        padding: 14px 16px;
    }
    .cul-dash-row-title {
        font-size: 16px;
    }
    .cul-dash-row-meta,
    .cul-dash-row-help {
        font-size: 14px;
    }
    .cul-dash-row-actions {
        width: 100%;
        padding: 12px 16px 14px;
        justify-content: flex-end;
        flex-wrap: wrap;
        gap: 8px;
        border-top: 0.5px solid #edf2f7;
    }
    .cul-dash-row-actions > a.cul-dash-row-action,
    .cul-dash-row-actions > button.cul-dash-row-action,
    .cul-dash-row-actions > .cul-dash-row-confirm-wrap {
        flex: 1 1 auto;
        min-width: 0;
        text-align: center;
    }
    .cul-dash-row-actions > .cul-dash-row-confirm-wrap > .cul-dash-row-action {
        width: 100%;
    }
}
