/* ═══════════════════════════════════════════════════════════════
   City Memory — Public Stylesheet  v1.2.5
   DS v.3 neumorphic sandy palette.
   Color tokens: lbn-user-portal injects --c-* at priority 100.
   Fonts: lbn-avada-manager injects Zain/Tajawal globally.
   RTL: conditional via [dir="rtl"] / .rtl — never hardcoded.
   ═══════════════════════════════════════════════════════════════ */

/* ── Token aliases ────────────────────────────────────────────── */
:root {
    --cm-sand-base:     var(--c-sand-300,    #ece0c8);
    --cm-sand-light:    var(--c-sand-200,    #f3e8d1);
    --cm-sand-dark:     var(--c-sand-400,    #d9c9ae);
    --cm-teal:          var(--c-sea-800,     #285260);
    --cm-teal-dark:     var(--c-sea-900,     #1a3a47);
    --cm-teal-light:    var(--c-sea-100,     #e0edf0);
    --cm-text:          var(--c-ink-900,     #2a2118);
    --cm-text-muted:    var(--c-ink-600,     #6b5b4e);
    --cm-success:       var(--c-success,     #4f8a6b);
    --cm-success-bg:    var(--c-success-bg,  #e8f5ee);
    --cm-warning:       var(--c-warning,     #b87333);
    --cm-warning-bg:    var(--c-warning-bg,  #fef3e2);
    --cm-danger:        var(--c-danger,      #a93226);
    --cm-danger-bg:     var(--c-danger-bg,   #fce8e6);
    --cm-info:          var(--c-info,        #2271b1);
    --cm-info-bg:       var(--c-info-bg,     #e8f0fb);
    --cm-shadow-raised: var(--shadow-raised, -6px -6px 14px rgba(255,248,232,.85), 6px 6px 14px rgba(122,98,72,.18));
    --cm-shadow-inset:  var(--shadow-inset,  inset 3px 3px 7px rgba(122,98,72,.15), inset -3px -3px 7px rgba(255,248,232,.8));
    --cm-radius:        var(--r-card,        16px);
    --cm-radius-sm:     var(--r-input,       10px);
    --cm-radius-pill:   var(--r-pill,        999px);
    --cm-font-heading:  var(--lbn-font-heading, 'Zain', sans-serif);
    --cm-font-body:     var(--lbn-font-body,    'Tajawal', sans-serif);
    --cm-max-w:         1140px;
    --cm-gap:           24px;
}

/* ── Reset / base ─────────────────────────────────────────────── */
.cm-wrap *,
.cm-wrap *::before,
.cm-wrap *::after { box-sizing: border-box; }

.cm-wrap {
    font-family: var(--cm-font-body);
    color: var(--cm-text);
    background: var(--cm-sand-base);
    direction: rtl;
}

.cm-container {
    max-width: var(--cm-max-w);
    margin: 0 auto;
    padding: 0 var(--cm-gap);
}

/* ── Utility cards ────────────────────────────────────────────── */
.cm-card {
    background: var(--cm-sand-light);
    border-radius: var(--cm-radius);
    box-shadow: var(--cm-shadow-raised);
    padding: 24px;
}

.cm-inset {
    background: var(--cm-sand-base);
    border-radius: var(--cm-radius-sm);
    box-shadow: var(--cm-shadow-inset);
    padding: 12px 16px;
}

.cm-icon-box {
    width: 40px; height: 40px;
    border-radius: var(--cm-radius-sm);
    box-shadow: var(--cm-shadow-inset);
    background: var(--cm-sand-base);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--cm-teal);
    flex-shrink: 0;
}

/* ── Buttons ──────────────────────────────────────────────────── */
.cm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 22px;
    border-radius: var(--cm-radius-sm);
    font-family: var(--cm-font-body);
    font-size: .9rem;
    line-height: 1.4;
    font-weight: 600;
    cursor: pointer;
    border: 2px solid transparent;
    min-height: 44px;
    min-width: 44px;
    text-align: center;
    text-decoration: none;
    transition: box-shadow .2s, transform .15s;
    white-space: nowrap;
    vertical-align: middle;
}

.cm-btn--primary {
    background: var(--cm-teal);
    color: #fff !important;
    box-shadow: var(--cm-shadow-raised);
}
.cm-btn--primary:hover {
    background: var(--cm-teal-dark);
    box-shadow: none;
    transform: translateY(1px);
    text-decoration: none;
}

.cm-btn--secondary {
    background: var(--cm-sand-light);
    color: var(--cm-teal) !important;
    box-shadow: var(--cm-shadow-raised);
}
.cm-btn--secondary:hover {
    box-shadow: var(--cm-shadow-inset);
    transform: translateY(1px);
    text-decoration: none;
}

.cm-btn--danger  { background: var(--cm-danger);  color: #fff !important; }
.cm-btn--warning { background: var(--cm-warning); color: #fff !important; }
.cm-btn--sm {
    padding: 6px 14px;
    font-size: .78rem;
    line-height: 1;
    min-height: auto;
}
/* Icon wrapper — inline-flex keeps icon vertically centered against button text
   even when Avada's FA5 CSS sets display:block on .fas/.far/.fab elements. */
.cm-btn-icon {
    display: inline-flex !important;
    align-items: center;
    font-size: 1em;         /* same size as button text — no shrinking */
    line-height: 1;
    flex-shrink: 0;
}

/* ── Confirm / dispute buttons ────────────────────────────────── */
.cm-btn--confirm {
    background: var(--cm-success-bg);
    color: var(--cm-success) !important;
    box-shadow: var(--cm-shadow-raised);
}
.cm-btn--confirm.is-active,
.cm-btn--confirm:hover {
    background: var(--cm-success);
    color: #fff !important;
    box-shadow: none;
}

.cm-btn--dispute {
    background: var(--cm-warning-bg);
    color: var(--cm-warning) !important;
    box-shadow: var(--cm-shadow-raised);
}
.cm-btn--dispute.is-active,
.cm-btn--dispute:hover {
    background: var(--cm-warning);
    color: #fff !important;
    box-shadow: none;
}

/* ── Badges ───────────────────────────────────────────────────── */
.cm-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: var(--cm-radius-pill);
    font-size: .78rem;
    font-weight: 600;
}

.cm-badge--pending      { background: var(--cm-warning-bg);  color: var(--cm-warning); }
.cm-badge--verified     { background: var(--cm-success-bg);  color: var(--cm-success); }
.cm-badge--under-review { background: var(--cm-danger-bg);   color: var(--cm-danger);  }
.cm-badge--rejected     { background: #f0f0f0;               color: #888;              }
.cm-badge--category     { background: var(--cm-teal-light);  color: var(--cm-teal);    }
.cm-badge--tier         { background: var(--cm-sand-dark);   color: var(--cm-text-muted); }

/* ── Notices ──────────────────────────────────────────────────── */
.cm-notice {
    padding: 14px 18px;
    border-radius: var(--cm-radius-sm);
    margin-bottom: 16px;
    font-size: .9rem;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.cm-notice i { flex-shrink: 0; margin-top: 2px; }
.cm-notice--info    { background: var(--cm-info-bg);    color: var(--cm-info);    }
.cm-notice--success { background: var(--cm-success-bg); color: var(--cm-success); }
.cm-notice--warn    { background: var(--cm-warning-bg); color: var(--cm-warning); }
.cm-notice--danger  { background: var(--cm-danger-bg);  color: var(--cm-danger);  }

/* Under-review warning banner */
.cm-review-banner {
    background: var(--cm-danger-bg);
    border-right: 4px solid var(--cm-danger);
    border-radius: var(--cm-radius-sm);
    padding: 16px 20px;
    margin-bottom: 24px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.cm-review-banner i { color: var(--cm-danger); font-size: 1.2rem; flex-shrink: 0; margin-top: 2px; }
.cm-review-banner__title { font-weight: 700; color: var(--cm-danger); margin-bottom: 4px; }
.cm-review-banner__text  { font-size: .88rem; color: var(--cm-text-muted); }

/* ── Section headings ─────────────────────────────────────────── */
.cm-section-title {
    font-family: var(--cm-font-heading);
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--cm-text);
    margin: 0 0 20px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--cm-sand-dark);
    display: flex;
    align-items: center;
    gap: 10px;
}
.cm-section-title i { color: var(--cm-teal); }

/* ══════════════════════════════════════════════════════════════
   ARCHIVE PAGE
   ══════════════════════════════════════════════════════════════ */
/* Archive outer wrapper — padding handled here.
   Full-width breakout is handled via wp_head CSS injection (class-plugin.php)
   targeting Avada's .fusion-column-wrapper when body.cm-archive-page is set. */
.cm-archive { padding: 40px 0; }

.cm-cat-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 28px;
}

.cm-cat-tab {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 18px;
    border-radius: var(--cm-radius-sm);
    font-family: var(--cm-font-body);
    font-size: .88rem;
    font-weight: 600;
    cursor: pointer;
    border: none;
    background: var(--cm-sand-base);
    box-shadow: var(--cm-shadow-inset);
    color: var(--cm-text-muted);
    text-decoration: none;
    transition: all .2s;
}
.cm-cat-tab:hover,
.cm-cat-tab.is-active {
    background: var(--cm-teal);
    color: #fff;
    box-shadow: var(--cm-shadow-raised);
    text-decoration: none;
}

/* Archive header (title + Add Memory CTA) */
.cm-archive-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}
.cm-archive-title {
    font-family: var(--cm-font-heading);
    font-size: 1.25rem;
    color: var(--cm-teal);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.cm-filter-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}

.cm-filter-select,
.cm-filter-search {
    background: var(--cm-sand-base);
    border: none;
    border-radius: var(--cm-radius-sm);
    box-shadow: var(--cm-shadow-inset);
    padding: 8px 16px;
    font-family: var(--cm-font-body);
    font-size: .88rem;
    color: var(--cm-text);
}
.cm-filter-select { appearance: auto; cursor: pointer; }
.cm-filter-search { min-width: 200px; }
.cm-filter-search:focus,
.cm-filter-select:focus { outline: 2px solid var(--cm-teal); }

.cm-filter-count { font-size: .82rem; color: var(--cm-text-muted); margin-right: auto; }

.cm-entries-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--cm-gap);
}

.cm-entry-card {
    background: var(--cm-sand-light);
    border-radius: var(--cm-radius);
    box-shadow: var(--cm-shadow-raised);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: var(--cm-text);
    transition: box-shadow .2s, transform .2s;
    position: relative;
}
.cm-entry-card:hover {
    box-shadow: none;
    transform: translateY(2px);
    text-decoration: none;
    color: var(--cm-text);
}

.cm-entry-card__thumb {
    aspect-ratio: 16/9;
    overflow: hidden;
    background: var(--cm-sand-dark);
    position: relative;
}
.cm-entry-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.cm-entry-card__thumb-placeholder {
    width: 100%; height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cm-text-muted);
    font-size: 2.5rem;
    background: linear-gradient(135deg, var(--cm-sand-dark) 0%, var(--cm-sand-base) 100%);
}

.cm-entry-card__status {
    position: absolute;
    top: 10px;
    left: 10px;
}

.cm-entry-card__body { padding: 16px; flex: 1; display: flex; flex-direction: column; }
.cm-entry-card__cat  { font-size: .75rem; color: var(--cm-teal); font-weight: 600; margin-bottom: 6px; }
.cm-entry-card__title {
    font-family: var(--cm-font-heading);
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 8px;
    line-height: 1.4;
    flex: 1;
}
.cm-entry-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 12px;
    font-size: .78rem;
    color: var(--cm-text-muted);
}

.cm-conf-mini {
    height: 4px;
    background: var(--cm-sand-dark);
    border-radius: 2px;
    overflow: hidden;
    margin-top: 10px;
}
.cm-conf-mini__fill {
    height: 100%;
    border-radius: 2px;
    background: var(--cm-success);
    transition: width .4s;
}
.cm-conf-mini__fill--low    { background: var(--cm-danger);  }
.cm-conf-mini__fill--medium { background: var(--cm-warning); }
.cm-conf-mini__fill--high   { background: var(--cm-success); }

.cm-pagination {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 40px;
    flex-wrap: wrap;
}
.cm-page-btn {
    padding: 8px 16px;
    border-radius: var(--cm-radius-sm);
    border: none;
    font-family: var(--cm-font-body);
    font-size: .88rem;
    font-weight: 600;
    cursor: pointer;
    background: var(--cm-sand-light);
    box-shadow: var(--cm-shadow-raised);
    color: var(--cm-teal);
    text-decoration: none;
    transition: all .2s;
}
.cm-page-btn:hover,
.cm-page-btn.is-active {
    background: var(--cm-teal);
    color: #fff;
    box-shadow: none;
    text-decoration: none;
}
.cm-page-btn[disabled] { opacity: .4; cursor: default; }

/* ══════════════════════════════════════════════════════════════
   SINGLE ENTRY PAGE
   ══════════════════════════════════════════════════════════════ */
.cm-single { padding: 40px 0; }

.cm-single-grid {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: var(--cm-gap);
    align-items: start;
}
@media (max-width: 820px) { .cm-single-grid { grid-template-columns: 1fr; } }

.cm-entry-hero {
    aspect-ratio: 16/7;
    overflow: hidden;
    border-radius: var(--cm-radius);
    box-shadow: var(--cm-shadow-raised);
    margin-bottom: 28px;
}
.cm-entry-hero img { width: 100%; height: 100%; object-fit: cover; }

.cm-entry-header { margin-bottom: 24px; }
.cm-entry-kicker {
    font-size: .8rem;
    color: var(--cm-teal);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.cm-entry-title {
    font-family: var(--cm-font-heading);
    font-size: 2rem;
    font-weight: 700;
    margin: 0 0 14px;
    line-height: 1.3;
    color: var(--cm-text) !important;
}
.cm-entry-meta {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: .82rem;
    color: var(--cm-text-muted);
    flex-wrap: wrap;
}

.cm-entry-body { line-height: 1.9; }
.cm-entry-body p  { margin: 0 0 1.2em; }
.cm-entry-body h2,
.cm-entry-body h3 { font-family: var(--cm-font-heading); color: var(--cm-teal); margin: 1.6em 0 .6em; }
.cm-entry-body a  { color: var(--cm-teal); }

.cm-entry-map {
    height: 260px;
    border-radius: var(--cm-radius-sm);
    overflow: hidden;
    box-shadow: var(--cm-shadow-inset);
    margin: 24px 0;
}

.cm-sidebar { display: flex; flex-direction: column; gap: var(--cm-gap); }

.cm-conf-label {
    font-size: .8rem;
    color: var(--cm-text-muted);
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.cm-conf-bar {
    height: 10px;
    background: var(--cm-sand-dark);
    border-radius: 5px;
    overflow: hidden;
    box-shadow: var(--cm-shadow-inset);
    margin-bottom: 14px;
}
.cm-conf-bar__fill {
    height: 100%;
    border-radius: 5px;
    transition: width .5s ease;
}
.cm-conf-bar__fill--low    { background: var(--cm-danger);  }
.cm-conf-bar__fill--medium { background: var(--cm-warning); }
.cm-conf-bar__fill--high   { background: var(--cm-success); }

.cm-vote-row {
    display: flex;
    gap: 10px;
}
.cm-vote-count { font-size: .75rem; color: var(--cm-text-muted); text-align: center; margin-top: 4px; }

.cm-sources-list { display: flex; flex-direction: column; gap: 8px; }
.cm-source-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-radius: var(--cm-radius-sm);
    background: var(--cm-sand-base);
    box-shadow: var(--cm-shadow-inset);
    font-size: .85rem;
    text-decoration: none;
    color: var(--cm-text);
}
.cm-source-item i { color: var(--cm-teal); flex-shrink: 0; }
.cm-source-item:hover { color: var(--cm-teal); text-decoration: none; }

.cm-author-row {
    display: flex;
    align-items: center;
    gap: 12px;
}
.cm-author-avatar {
    width: 44px; height: 44px;
    border-radius: 50%;
    background: var(--cm-teal-light);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cm-teal);
    font-size: 1.2rem;
    flex-shrink: 0;
}
.cm-author-name { font-weight: 700; font-size: .9rem; }
.cm-author-tier { font-size: .75rem; color: var(--cm-text-muted); }

/* ── Report form ──────────────────────────────────────────────── */
.cm-report-toggle {
    margin-top: 24px;
    text-align: center;
}

.cm-report-form {
    display: none;
    background: var(--cm-sand-light);
    border-radius: var(--cm-radius);
    box-shadow: var(--cm-shadow-raised);
    border-top: 4px solid var(--cm-danger);
    padding: 20px;
    margin-top: 16px;
}
.cm-report-form.is-open { display: block; }

.cm-report-form label {
    display: block;
    font-weight: 600;
    font-size: .88rem;
    margin-bottom: 6px;
}
.cm-report-form select,
.cm-report-form textarea {
    width: 100%;
    background: var(--cm-sand-base);
    border: none;
    border-radius: var(--cm-radius-sm);
    box-shadow: var(--cm-shadow-inset);
    padding: 10px 14px;
    font-family: var(--cm-font-body);
    font-size: .88rem;
    color: var(--cm-text);
    margin-bottom: 14px;
}
.cm-report-form select:focus,
.cm-report-form textarea:focus { outline: 2px solid var(--cm-danger); }
.cm-report-form textarea { resize: vertical; min-height: 80px; }

/* ══════════════════════════════════════════════════════════════
   SUBMIT FORM
   ══════════════════════════════════════════════════════════════ */
.cm-submit { padding: 40px 0; }

.cm-submit-grid {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: var(--cm-gap);
    align-items: start;
}
@media (max-width: 820px) { .cm-submit-grid { grid-template-columns: 1fr; } }

.cm-form-group { margin-bottom: 22px; }
.cm-form-group label {
    display: block;
    font-weight: 600;
    font-size: .9rem;
    margin-bottom: 7px;
    color: var(--cm-text);
}
.cm-input,
.cm-select,
.cm-textarea,
.cm-form-group .cm-input,
.cm-form-group .cm-select,
.cm-form-group .cm-textarea {
    width: 100%;
    background: var(--cm-sand-base);
    border: none;
    border-radius: var(--cm-radius-sm);
    box-shadow: var(--cm-shadow-inset);
    padding: 10px 14px;
    font-family: var(--cm-font-body);
    font-size: .9rem;
    color: var(--cm-text);
}
.cm-input:focus,
.cm-select:focus,
.cm-textarea:focus,
.cm-form-group .cm-input:focus,
.cm-form-group .cm-select:focus,
.cm-form-group .cm-textarea:focus { outline: 2px solid var(--cm-teal); }
.cm-textarea,
.cm-form-group .cm-textarea { resize: vertical; min-height: 160px; line-height: 1.6; }
.cm-select { appearance: auto; cursor: pointer; }
.cm-form-group .cm-hint { font-size: .78rem; color: var(--cm-text-muted); margin-top: 5px; }

.cm-dir-toggle {
    display: flex;
    gap: 8px;
}
.cm-dir-btn {
    flex: 1;
    padding: 8px;
    border-radius: var(--cm-radius-sm);
    border: none;
    font-family: var(--cm-font-body);
    font-size: .85rem;
    font-weight: 600;
    cursor: pointer;
    background: var(--cm-sand-base);
    box-shadow: var(--cm-shadow-inset);
    color: var(--cm-text-muted);
    transition: all .2s;
}
.cm-dir-btn.is-active {
    background: var(--cm-teal);
    color: #fff;
    box-shadow: var(--cm-shadow-raised);
}

.cm-conditional { display: none; }
.cm-conditional.is-visible { display: block; }

.cm-upload-area {
    border-radius: var(--cm-radius-sm);
    box-shadow: var(--cm-shadow-inset);
    background: var(--cm-sand-base);
    padding: 28px;
    text-align: center;
    cursor: pointer;
    transition: box-shadow .2s;
}
.cm-upload-area:hover { box-shadow: var(--cm-shadow-raised); }
.cm-upload-area i { font-size: 2rem; color: var(--cm-teal); display: block; margin-bottom: 8px; }
.cm-upload-area p { font-size: .85rem; color: var(--cm-text-muted); margin: 0; }

.cm-upload-preview {
    display: none;
    position: relative;
    border-radius: var(--cm-radius-sm);
    overflow: hidden;
    box-shadow: var(--cm-shadow-raised);
}
.cm-upload-preview img { width: 100%; max-height: 200px; object-fit: cover; display: block; }
.cm-upload-preview__remove {
    position: absolute;
    top: 8px;
    left: 8px;
    background: rgba(169,50,38,.85);
    color: #fff;
    border: none;
    border-radius: 50%;
    width: 28px; height: 28px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cm-sources-inputs { display: flex; flex-direction: column; gap: 8px; }
.cm-source-row { display: flex; gap: 8px; align-items: center; }
.cm-source-row .cm-input { flex: 1; }
.cm-source-row .cm-btn--sm { flex-shrink: 0; }

.cm-map-picker {
    height: 240px;
    border-radius: var(--cm-radius-sm);
    overflow: hidden;
    box-shadow: var(--cm-shadow-inset);
    margin-bottom: 10px;
    cursor: crosshair;
}

.cm-help-step {
    display: flex;
    gap: 12px;
    margin-bottom: 14px;
}
.cm-help-step__num {
    width: 28px; height: 28px;
    border-radius: 50%;
    background: var(--cm-teal);
    color: #fff;
    font-weight: 700;
    font-size: .85rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.cm-help-step__text { font-size: .85rem; line-height: 1.5; padding-top: 4px; }

.cm-rules-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.cm-rules-list li { font-size: .82rem; display: flex; gap: 8px; align-items: flex-start; }
.cm-rules-list .ok { color: var(--cm-success); flex-shrink: 0; }
.cm-rules-list .no { color: var(--cm-danger);  flex-shrink: 0; }

.cm-tier-card__row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}
.cm-tier-card__icon {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: var(--cm-teal-light);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cm-teal);
}
.cm-tier-card__label { font-weight: 700; font-size: .9rem; }
.cm-tier-card__desc  { font-size: .78rem; color: var(--cm-text-muted); }

/* ══════════════════════════════════════════════════════════════
   USER DASHBOARD
   ══════════════════════════════════════════════════════════════ */
.cm-dashboard { padding: 32px 0; }

.cm-dash-tabs {
    display: flex;
    gap: 4px;
    background: var(--cm-sand-light);
    border-radius: var(--cm-radius);
    box-shadow: var(--cm-shadow-raised);
    padding: 6px;
    margin-bottom: var(--cm-gap);
}

.cm-dash-tab {
    flex: 1;
    text-align: center;
    padding: 10px;
    border-radius: calc(var(--cm-radius) - 4px);
    font-family: var(--cm-font-body);
    font-size: .88rem;
    font-weight: 600;
    cursor: pointer;
    border: none;
    background: transparent;
    color: var(--cm-text-muted);
    text-decoration: none;
    transition: all .2s;
}
.cm-dash-tab:hover { color: var(--cm-teal); text-decoration: none; }
.cm-dash-tab.is-active {
    background: var(--cm-teal);
    color: #fff;
    box-shadow: var(--cm-shadow-raised);
}

.cm-dash-panel { display: none; }
.cm-dash-panel.is-active { display: block; }

.cm-dash-list { display: flex; flex-direction: column; gap: 12px; }
.cm-dash-item {
    background: var(--cm-sand-light);
    border-radius: var(--cm-radius-sm);
    box-shadow: var(--cm-shadow-raised);
    padding: 14px 18px;
    display: flex;
    align-items: center;
    gap: 14px;
}
.cm-dash-item__thumb {
    width: 56px; height: 56px;
    border-radius: 8px;
    object-fit: cover;
    flex-shrink: 0;
    background: var(--cm-sand-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cm-text-muted);
}
.cm-dash-item__body { flex: 1; min-width: 0; }
.cm-dash-item__title {
    font-weight: 700;
    font-size: .95rem;
    margin: 0 0 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.cm-dash-item__meta  { font-size: .78rem; color: var(--cm-text-muted); }
.cm-dash-item__actions { display: flex; gap: 8px; flex-shrink: 0; }

.cm-empty {
    text-align: center;
    padding: 60px 20px;
    color: var(--cm-text-muted);
}
.cm-empty > i { font-size: 3rem; display: block; margin-bottom: 16px; color: var(--cm-sand-dark); }
.cm-empty p { margin: 0 0 16px; }

/* ══════════════════════════════════════════════════════════════
   MAP SHORTCODE
   ══════════════════════════════════════════════════════════════ */
.cm-map-wrap {
    border-radius: var(--cm-radius);
    overflow: hidden;
    box-shadow: var(--cm-shadow-raised);
    height: 480px;
}
#cm-map-canvas { width: 100%; height: 100%; }

/* ══════════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════════ */
@media (max-width: 640px) {
    .cm-single-grid  { grid-template-columns: 1fr; }
    .cm-submit-grid  { grid-template-columns: 1fr; }
    .cm-entries-grid { grid-template-columns: 1fr; }
    .cm-entry-title  { font-size: 1.5rem; }
    .cm-cat-tabs     { gap: 6px; }
    .cm-cat-tab      { padding: 6px 12px; font-size: .8rem; }
    .cm-dash-tabs    { flex-direction: column; }
}

/* ═══════════════════════════════════════════════════════════════
   Homepage Strip — [cm_homepage_strip]
   ═══════════════════════════════════════════════════════════════ */

.cm-strip {
    padding: var(--cm-gap, 24px) 0;
    font-family: var(--cm-font-body, var(--c-font-body, Tajawal, sans-serif));
}

.cm-strip__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 20px;
}

.cm-strip__title {
    font-family: var(--cm-font-heading, var(--c-font-heading, Zain, serif));
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--cm-teal, var(--c-teal-600, #285260));
    margin: 0;
}

.cm-strip__view-all {
    font-size: .88rem;
    color: var(--cm-teal, var(--c-teal-600, #285260));
    text-decoration: underline;
    white-space: nowrap;
    flex-shrink: 0;
}

.cm-strip__grid {
    display: grid;
    grid-template-columns: repeat(var(--cm-strip-cols, 3), 1fr);
    gap: var(--cm-gap, 24px);
}

.cm-strip__card {
    display: flex;
    flex-direction: column;
    background: var(--cm-sand-light, var(--c-sand-100, #faf3e3));
    border-radius: var(--cm-radius, 14px);
    box-shadow: var(--cm-shadow-raised, 4px 4px 10px rgba(0,0,0,.12), -3px -3px 8px rgba(255,255,255,.7));
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform .2s, box-shadow .2s;
}

.cm-strip__card:hover {
    transform: translateY(-4px);
    box-shadow: 6px 6px 16px rgba(0,0,0,.16), -4px -4px 12px rgba(255,255,255,.8);
    text-decoration: none;
    color: inherit;
}

.cm-strip__card-img {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--cm-teal, var(--c-teal-600, #285260));
    flex-shrink: 0;
}

.cm-strip__card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .3s;
}

.cm-strip__card:hover .cm-strip__card-img img {
    transform: scale(1.04);
}

.cm-strip__card-img-fallback {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 2rem;
    opacity: .45;
}

.cm-strip__card-body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}

.cm-strip__card-title {
    font-family: var(--cm-font-heading, var(--c-font-heading, Zain, serif));
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--cm-text, var(--c-sand-900, #2a2118));
    margin: 0;
    line-height: 1.4;
}

.cm-strip__card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.cm-strip__card-cat {
    display: inline-block;
    font-size: .78rem;
    color: var(--cm-teal, var(--c-teal-600, #285260));
    background: var(--cm-teal-light, var(--c-teal-100, #d6eaf0));
    border-radius: var(--cm-radius-pill, 999px);
    padding: 2px 10px;
    font-weight: 600;
}

.cm-strip__card-conf {
    display: inline-block;
    font-size: .75rem;
    border-radius: var(--cm-radius-pill, 999px);
    padding: 2px 8px;
    font-weight: 600;
}

.cm-strip__card-conf--high {
    background: var(--c-success-bg, #d4edda);
    color: var(--c-success-fg, #155724);
}

.cm-strip__card-conf--medium {
    background: var(--c-warning-bg, #fff3cd);
    color: var(--c-warning-fg, #856404);
}

.cm-strip__card-conf--low {
    background: var(--c-danger-bg, #f8d7da);
    color: var(--c-danger-fg, #721c24);
}

.cm-strip__card-btn {
    display: inline-block;
    margin-top: auto;
    padding: 7px 18px;
    background: var(--cm-teal, var(--c-teal-600, #285260));
    color: #fff !important;
    border-radius: var(--cm-radius-pill, 999px);
    font-size: .85rem;
    font-weight: 600;
    align-self: flex-start;
    transition: background .2s;
}

.cm-strip__card:hover .cm-strip__card-btn {
    background: var(--cm-teal-dark, var(--c-teal-700, #1e3d4a));
}

/* RTL */
[dir="rtl"] .cm-strip__header,
.rtl .cm-strip__header {
    flex-direction: row-reverse;
}

/* Responsive */
@media (max-width: 1024px) {
    .cm-strip__grid { grid-template-columns: repeat(min(var(--cm-strip-cols, 3), 3), 1fr); }
}

@media (max-width: 768px) {
    .cm-strip__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
    .cm-strip__grid { grid-template-columns: 1fr; }
}
