/* ============================================================
   Matrimonial WP — Frontend Stylesheet
   Color palette: Crimson #8B1A3A | Gold #C9A55A | Cream #FFF8F0
   ============================================================ */

:root {
  --mw-primary:     #8B1A3A;
  --mw-primary-dk:  #6B1228;
  --mw-gold:        #C9A55A;
  --mw-gold-dk:     #A8873E;
  --mw-cream:       #FFF8F0;
  --mw-light:       #FCF0F4;
  --mw-border:      #F0DCE4;
  --mw-text:        #2D2D2D;
  --mw-muted:       #7A6872;
  --mw-success:     #2E7D32;
  --mw-warning:     #E65100;
  --mw-radius:      10px;
  --mw-shadow:      0 4px 24px rgba(139,26,58,.08);
  --mw-shadow-lg:   0 8px 40px rgba(139,26,58,.15);
  --mw-font:        'Segoe UI', system-ui, -apple-system, sans-serif;
  --mw-trans:       all .2s ease;
}

* { box-sizing: border-box; }
.mw-wrap { font-family: var(--mw-font); color: var(--mw-text); }

/* ── Utility ─────────────────────────────────────────────────── */
.mw-muted       { color: var(--mw-muted); font-size: .85rem; }
.mw-pid         { color: var(--mw-muted); font-size: .8rem; margin: 0; }
.mw-notice      { background: var(--mw-light); border-left: 4px solid var(--mw-primary);
                  padding: .8rem 1rem; border-radius: 6px; margin: 1rem 0; }
.mw-notice-warning { border-color: var(--mw-warning); background: #FFF3E0; }
.mw-notice-success { border-color: var(--mw-success); background: #E8F5E9; }
.mw-form-msg    { padding: .75rem 1rem; border-radius: 6px; font-size: .9rem; }
.mw-form-msg.success { background: #E8F5E9; color: var(--mw-success); }
.mw-form-msg.error   { background: #FFEBEE; color: #C62828; }

/* ── Buttons ─────────────────────────────────────────────────── */
.mw-btn {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .55rem 1.2rem; border-radius: 6px; border: 2px solid transparent;
  font-size: .9rem; font-weight: 600; cursor: pointer;
  transition: var(--mw-trans); text-decoration: none; white-space: nowrap;
}
.mw-btn-primary  { background: var(--mw-primary);  color: #fff; border-color: var(--mw-primary); }
.mw-btn-primary:hover  { background: var(--mw-primary-dk); }
.mw-btn-gold     { background: var(--mw-gold);     color: #fff; border-color: var(--mw-gold); }
.mw-btn-gold:hover     { background: var(--mw-gold-dk); }
.mw-btn-outline  { background: transparent; color: var(--mw-primary); border-color: var(--mw-primary); }
.mw-btn-outline:hover  { background: var(--mw-light); }
.mw-btn-ghost    { background: transparent; color: var(--mw-muted); border-color: #ddd; }
.mw-btn-ghost:hover    { border-color: var(--mw-primary); color: var(--mw-primary); }
.mw-btn-success  { background: var(--mw-success); color: #fff; border-color: var(--mw-success); }
.mw-btn-danger   { background: #FFEBEE; color: #C62828; border-color: #FFCDD2; }
.mw-btn-block    { width: 100%; justify-content: center; }
.mw-btn-sm, .mw-btn-xs { padding: .3rem .75rem; font-size: .8rem; }
.mw-btn-lg       { padding: .85rem 2rem; font-size: 1rem; }
.mw-btn:disabled { opacity: .55; cursor: not-allowed; }

/* ── Badges ──────────────────────────────────────────────────── */
.mw-badge { display: inline-block; padding: .2rem .6rem; border-radius: 4px;
            font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.mw-badge-free     { background: #ECEFF1; color: #546E7A; }
.mw-badge-silver   { background: linear-gradient(135deg, #CFD8DC, #90A4AE); color: #fff; }
.mw-badge-gold     { background: linear-gradient(135deg, #FFD54F, var(--mw-gold)); color: #fff; }
.mw-badge-platinum { background: linear-gradient(135deg, #90CAF9, #5C6BC0); color: #fff; }
.mw-badge-success  { background: #E8F5E9; color: var(--mw-success); }

/* ── Auth ────────────────────────────────────────────────────── */
.mw-auth-wrap    { display: flex; justify-content: center; padding: 2rem 1rem; background: var(--mw-cream); min-height: 60vh; align-items: center; }
.mw-auth-card    { background: #fff; border-radius: 16px; padding: 2.5rem; max-width: 560px; width: 100%;
                   box-shadow: var(--mw-shadow-lg); }
.mw-auth-header  { text-align: center; margin-bottom: 2rem; }
.mw-auth-header h2 { font-size: 1.8rem; color: var(--mw-primary); margin: 0 0 .4rem; }
.mw-auth-header p  { color: var(--mw-muted); margin: 0; }
.mw-auth-foot    { text-align: center; color: var(--mw-muted); font-size: .9rem; margin-top: 1rem; }
.mw-auth-foot a  { color: var(--mw-primary); font-weight: 600; text-decoration: none; }

/* ── Multi-step form ─────────────────────────────────────────── */
#mw-register-wrap { background: var(--mw-cream); padding: 2rem 1rem; }
.mw-steps { display: flex; justify-content: space-between; margin-bottom: 2rem; position: relative; }
.mw-steps::before { content: ''; position: absolute; top: 20px; left: 0; right: 0; height: 2px; background: var(--mw-border); z-index: 0; }
.mw-step  { display: flex; flex-direction: column; align-items: center; gap: .4rem;
            font-size: .8rem; color: var(--mw-muted); flex: 1; position: relative; z-index: 1; }
.mw-step span { width: 40px; height: 40px; border-radius: 50%; background: #fff;
                border: 2px solid var(--mw-border); display: flex; align-items: center;
                justify-content: center; font-weight: 700; }
.mw-step.active span, .mw-step.done span { background: var(--mw-primary); border-color: var(--mw-primary); color: #fff; }
.mw-step.active { color: var(--mw-primary); font-weight: 600; }

/* Form fields */
.mw-form-step    { display: none; }
.mw-form-step.active { display: block; animation: mwFadeIn .3s ease; }
.mw-field-row    { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; }
.mw-field        { display: flex; flex-direction: column; gap: .4rem; }
.mw-field-full   { grid-column: 1/-1; }
.mw-field label  { font-size: .85rem; font-weight: 600; color: var(--mw-text); }
.mw-field input,
.mw-field select,
.mw-field textarea,
.mw-input { width: 100%; padding: .6rem .9rem; border: 1.5px solid var(--mw-border);
            border-radius: 6px; font-size: .9rem; color: var(--mw-text); background: #fff;
            transition: var(--mw-trans); font-family: inherit; }
.mw-field input:focus,
.mw-field select:focus,
.mw-field textarea:focus,
.mw-input:focus { outline: none; border-color: var(--mw-primary); box-shadow: 0 0 0 3px rgba(139,26,58,.1); }
.mw-form-nav     { display: flex; gap: 1rem; margin-top: 1.5rem; }
.mw-gender-btns  { display: flex; gap: 1rem; }
.mw-gender-opt   { display: flex; align-items: center; gap: .5rem; cursor: pointer;
                   padding: .6rem 1.2rem; border: 2px solid var(--mw-border); border-radius: 8px;
                   font-weight: 600; transition: var(--mw-trans); }
.mw-gender-opt:has(input:checked) { border-color: var(--mw-primary); background: var(--mw-light); color: var(--mw-primary); }
.mw-range-row    { display: flex; align-items: center; gap: .5rem; }
.mw-range-row input { flex: 1; }

/* ── Dashboard ───────────────────────────────────────────────── */
.mw-dashboard    { display: grid; grid-template-columns: 260px 1fr; min-height: 70vh; gap: 0; }
.mw-dash-sidebar { background: var(--mw-primary); color: #fff; padding: 1.5rem 0; }
.mw-dash-user    { display: flex; align-items: center; gap: .8rem; padding: 0 1.2rem 1.5rem;
                   border-bottom: 1px solid rgba(255,255,255,.15); margin-bottom: 1rem; }
.mw-dash-avatar  { width: 56px; height: 56px; border-radius: 50%; object-fit: cover;
                   border: 3px solid rgba(255,255,255,.3); }
.mw-dash-user strong { font-size: 1rem; display: block; }
.mw-dash-nav-item { display: flex; align-items: center; gap: .6rem; padding: .7rem 1.2rem;
                    color: rgba(255,255,255,.8); text-decoration: none; font-size: .9rem;
                    transition: var(--mw-trans); cursor: pointer; background: none; border: none; width: 100%; }
.mw-dash-nav-item:hover, .mw-dash-nav-item.active { background: rgba(255,255,255,.15); color: #fff; }
.mw-nav-badge    { background: var(--mw-gold); color: #fff; font-size: .7rem; padding: .1rem .45rem;
                   border-radius: 10px; font-weight: 700; margin-left: auto; }
.mw-dash-main    { padding: 2rem; background: #FAFAFA; }
.mw-stats-grid   { display: grid; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); gap: 1rem; margin-bottom: 2rem; }
.mw-stat-card    { background: #fff; border-radius: 10px; padding: 1.2rem 1rem;
                   text-align: center; text-decoration: none; color: var(--mw-text);
                   box-shadow: var(--mw-shadow); transition: var(--mw-trans); border: 2px solid transparent; }
.mw-stat-card:hover { border-color: var(--mw-primary); transform: translateY(-2px); }
.mw-stat-icon    { font-size: 1.8rem; display: block; margin-bottom: .4rem; }
.mw-stat-num     { font-size: 2rem; font-weight: 800; color: var(--mw-primary); display: block; }
.mw-stat-name    { font-size: .8rem; color: var(--mw-muted); }
.mw-dash-cta-row { display: flex; gap: 1rem; flex-wrap: wrap; }
.mw-form-grid    { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.mw-section      { background: #fff; border-radius: 10px; padding: 1.2rem; margin-bottom: 1.2rem; box-shadow: var(--mw-shadow); }
.mw-mem-status   { background: var(--mw-light); padding: 1rem 1.2rem; border-radius: 8px; margin-bottom: 1rem; }
.mw-blocked-row, .mw-request-row { display: flex; align-items: center; gap: 1rem; padding: .5rem 0; border-bottom: 1px solid var(--mw-border); }

/* ── Search ──────────────────────────────────────────────────── */
/* ── Plan diagnostic banner (testing aid) ───────────────────────── */
.mw-plan-diagnostic     { padding: .7rem 1.5rem; text-align: center; font-size: .88rem; font-weight: 600; }
.mw-plan-diagnostic.is-free     { background: #FFF3E0; color: #B85C00; border-bottom: 2px solid #F0B96A; }
.mw-plan-diagnostic.is-platinum { background: #F3E9FF; color: #6A3FA0; border-bottom: 2px solid #C9A55A; }
.mw-plan-diagnostic a   { color: inherit; text-decoration: underline; margin-left: .4rem; }
.mw-free-plan-tag       { font-size: .68rem; font-weight: 700; color: #B85C00; background: #FFF3E0;
                          padding: .15rem .55rem; border-radius: 20px; vertical-align: middle;
                          text-transform: uppercase; letter-spacing: .04em; margin-left: .5rem; }

.mw-search-wrap { display: grid; grid-template-columns: 300px 1fr; gap: 1.5rem;
                  padding: 1.5rem; background: var(--mw-cream); min-height: 60vh; }
.mw-search-panel { background: #fff; border-radius: 12px; padding: 1.5rem;
                   box-shadow: var(--mw-shadow); height: fit-content; }
.mw-search-tabs  { display: flex; gap: .3rem; margin-bottom: 1.2rem; background: var(--mw-light); border-radius: 8px; padding: .3rem; }
.mw-stab         { flex: 1; text-align: center; padding: .45rem; border-radius: 6px; font-size: .85rem;
                   font-weight: 600; color: var(--mw-muted); text-decoration: none; transition: var(--mw-trans); }
.mw-stab.active  { background: var(--mw-primary); color: #fff; }
.mw-search-form .mw-field-row { grid-template-columns: 1fr; gap: .7rem; }
.mw-search-actions { display: flex; gap: .7rem; flex-wrap: wrap; margin-top: 1rem; }
.mw-saved-searches { margin-top: 1.2rem; padding-top: 1.2rem; border-top: 1px solid var(--mw-border); }
.mw-saved-searches h4 { font-size: .85rem; color: var(--mw-muted); margin: 0 0 .6rem; }
.mw-saved-row    { display: flex; align-items: center; justify-content: space-between; padding: .35rem 0; }
.mw-saved-row a  { font-size: .85rem; color: var(--mw-primary); text-decoration: none; }
.mw-results-area { min-height: 400px; }
.mw-results-header h3 { margin: 0 0 1rem; color: var(--mw-muted); font-size: 1rem; }
.mw-empty-state  { text-align: center; padding: 4rem 2rem; color: var(--mw-muted); }
.mw-empty-icon   { font-size: 4rem; margin-bottom: 1rem; }
.mw-search-prompt h3 { color: var(--mw-primary); }

/* ── Profile cards ───────────────────────────────────────────── */
.mw-profiles-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(240px,1fr)); gap: 1.2rem; }
.mw-profile-card  { background: #fff; border-radius: 12px; overflow: hidden;
                    box-shadow: var(--mw-shadow); transition: var(--mw-trans); }
.mw-profile-card:hover { box-shadow: var(--mw-shadow-lg); transform: translateY(-3px); }
.mw-card-photo    { display: block; aspect-ratio: 4/5; overflow: hidden; position: relative; }
.mw-card-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.mw-profile-card:hover .mw-card-photo img { transform: scale(1.04); }
.mw-premium-badge { position: absolute; top: .6rem; right: .6rem; background: var(--mw-gold);
                    color: #fff; font-size: .72rem; padding: .2rem .5rem; border-radius: 4px; font-weight: 700; }
.mw-locked-badge  { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(28,13,21,.78);
                    color: #fff; font-size: .75rem; font-weight: 700; text-align: center;
                    padding: .5rem; backdrop-filter: blur(2px); }
.mw-card-locked   { opacity: .92; }
.mw-card-locked .mw-card-photo img { filter: grayscale(.35) brightness(.85); }
.mw-card-body     { padding: .8rem 1rem 0; }
.mw-card-body h3  { margin: 0 0 .2rem; font-size: 1rem; }
.mw-card-body h3 a { color: var(--mw-text); text-decoration: none; }
.mw-card-body h3 a:hover { color: var(--mw-primary); }
.mw-card-meta     { display: flex; flex-wrap: wrap; gap: .35rem; margin: .4rem 0; }
.mw-card-meta span { font-size: .78rem; color: var(--mw-muted); }
.mw-card-edu      { font-size: .8rem; color: var(--mw-muted); margin: .2rem 0 0; }
.mw-card-actions  { display: flex; gap: .4rem; padding: .7rem .8rem; flex-wrap: wrap; }
.mw-card-actions .mw-btn { font-size: .78rem; padding: .35rem .7rem; }
.mw-btn-view      { background: var(--mw-light); color: var(--mw-primary); border: 1.5px solid var(--mw-border); font-weight: 600; }
.mw-btn-interest.active, .mw-btn-shortlist.active { background: var(--mw-primary); color: #fff; }
.mw-photo-blur    { filter: blur(8px) brightness(.85); pointer-events: none; }

/* ── Pagination ──────────────────────────────────────────────── */
.mw-pagination   { display: flex; gap: .4rem; justify-content: center; margin-top: 1.5rem; flex-wrap: wrap; }
.mw-page-btn     { padding: .4rem .9rem; border: 1.5px solid var(--mw-border); border-radius: 6px;
                   background: #fff; cursor: pointer; font-size: .85rem; transition: var(--mw-trans); }
.mw-page-btn.active, .mw-page-btn:hover { background: var(--mw-primary); color: #fff; border-color: var(--mw-primary); }

/* ── Profile detail ──────────────────────────────────────────── */
.mw-profile-detail { padding: 1.5rem; }
.mw-profile-hero   { display: grid; grid-template-columns: 420px 1fr; gap: 2rem; margin-bottom: 2rem; }
.mw-main-photo img { width: 100%; border-radius: 12px; max-height: 480px; object-fit: cover; }
.mw-photo-thumbs   { display: flex; gap: .5rem; margin-top: .5rem; flex-wrap: wrap; }
.mw-thumb          { width: 72px; height: 72px; object-fit: cover; border-radius: 6px; cursor: pointer;
                     border: 2px solid transparent; transition: var(--mw-trans); }
.mw-thumb:hover    { border-color: var(--mw-primary); }
.mw-photo-protected { position: relative; }
.mw-photo-lock     { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
                     text-align: center; color: #fff; background: rgba(0,0,0,.6); padding: 1.5rem 2rem; border-radius: 12px; }
.mw-photo-lock span { font-size: 2.5rem; display: block; margin-bottom: .5rem; }
.mw-profile-name-row h1 { font-size: 1.8rem; margin: 0 0 .3rem; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.mw-online-dot     { color: #2E7D32; font-size: 1rem; }
.mw-offline-dot    { color: #9E9E9E; font-size: 1rem; }
.mw-profile-quick-facts { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
.mw-fact           { background: var(--mw-light); padding: .3rem .7rem; border-radius: 6px; font-size: .85rem; }
.mw-profile-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1rem 0; }
.mw-contact-reveal  { background: var(--mw-light); padding: .6rem 1rem; border-radius: 6px;
                      color: var(--mw-primary); font-weight: 600; font-size: .9rem; }
.mw-gift-row        { display: flex; gap: .5rem; flex-wrap: wrap; margin: .8rem 0; }
.mw-gift-icon       { font-size: 1.6rem; cursor: default; }
.mw-gift-panel      { border: 1.5px dashed var(--mw-gold); border-radius: 8px; padding: .8rem 1rem; margin-top: 1rem; }
.mw-gift-panel h4   { margin: 0 0 .6rem; color: var(--mw-gold-dk); font-size: .9rem; }
.mw-gifts-list      { display: flex; gap: .5rem; flex-wrap: wrap; }
.mw-gift-btn        { background: var(--mw-light); border: none; border-radius: 8px;
                      font-size: 1.6rem; padding: .4rem; cursor: pointer; transition: var(--mw-trans); }
.mw-gift-btn:hover  { transform: scale(1.25); }
.mw-profile-section { background: #fff; border-radius: 10px; padding: 1.2rem 1.5rem;
                      margin-bottom: 1.2rem; box-shadow: var(--mw-shadow); }
.mw-profile-section h3 { margin: 0 0 1rem; color: var(--mw-primary); font-size: 1.05rem; border-bottom: 2px solid var(--mw-light); padding-bottom: .5rem; }
.mw-detail-grid     { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.mw-detail-row      { display: flex; flex-direction: column; gap: .1rem; padding: .5rem; background: var(--mw-cream); border-radius: 6px; }
.mw-detail-label    { font-size: .75rem; font-weight: 700; color: var(--mw-muted); text-transform: uppercase; letter-spacing: .05em; }
.mw-detail-value    { font-size: .9rem; color: var(--mw-text); font-weight: 500; }

/* ── Inbox ───────────────────────────────────────────────────── */
.mw-inbox-wrap      { display: grid; grid-template-columns: 300px 1fr; min-height: 560px; border: 1.5px solid var(--mw-border); border-radius: 12px; overflow: hidden; }
.mw-thread-list     { border-right: 1.5px solid var(--mw-border); overflow-y: auto; }
.mw-thread-header   { padding: 1rem 1.2rem; background: var(--mw-primary); color: #fff; }
.mw-thread-header h3 { margin: 0; font-size: 1rem; }
.mw-thread          { display: flex; align-items: center; gap: .7rem; padding: .9rem 1rem;
                      border-bottom: 1px solid var(--mw-border); text-decoration: none; color: var(--mw-text);
                      transition: var(--mw-trans); }
.mw-thread:hover, .mw-thread.active { background: var(--mw-light); }
.mw-thread-unread   { font-weight: 700; background: #FFF3F6; }
.mw-thread-avatar   { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.mw-thread-meta     { flex: 1; min-width: 0; }
.mw-thread-name     { display: block; font-size: .9rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mw-thread-preview  { display: block; font-size: .8rem; color: var(--mw-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mw-thread-time     { font-size: .75rem; color: var(--mw-muted); white-space: nowrap; }
.mw-inbox-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center;
                         height: 100%; color: var(--mw-muted); font-size: 1rem; gap: .5rem; }
.mw-inbox-placeholder span { font-size: 3rem; }
.mw-msg-header      { display: flex; align-items: center; gap: .7rem; padding: .8rem 1rem;
                      border-bottom: 1.5px solid var(--mw-border); background: var(--mw-cream); }
.mw-msg-avatar      { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.mw-msg-header a    { color: var(--mw-text); font-weight: 700; text-decoration: none; }
.mw-msg-header a:hover { color: var(--mw-primary); }
.mw-messages-body   { flex: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: .8rem; min-height: 300px; max-height: 420px; }
.mw-msg-bubble      { display: flex; gap: .6rem; max-width: 80%; }
.mw-msg-out         { flex-direction: row-reverse; margin-left: auto; }
.mw-bubble-avatar   { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.mw-bubble-body     { background: var(--mw-light); padding: .6rem .9rem; border-radius: 10px;
                      font-size: .9rem; max-width: 100%; }
.mw-msg-out .mw-bubble-body { background: var(--mw-primary); color: #fff; }
.mw-bubble-subject  { font-size: .8rem; font-weight: 700; margin-bottom: .3rem; opacity: .8; }
.mw-bubble-time     { font-size: .72rem; opacity: .65; display: block; margin-top: .3rem; }
.mw-msg-delete      { background: none; border: none; cursor: pointer; opacity: .5; padding: 0; margin-left: .3rem; font-size: .8rem; }
.mw-msg-delete:hover { opacity: 1; }
.mw-reply-form      { display: flex; gap: .5rem; padding: .8rem 1rem; border-top: 1.5px solid var(--mw-border); align-items: flex-end; }
.mw-reply-form textarea { flex: 1; resize: none; padding: .6rem; border: 1.5px solid var(--mw-border); border-radius: 8px; font-size: .9rem; }
.mw-empty-threads   { padding: 2rem; text-align: center; color: var(--mw-muted); }
.mw-upgrade-cta     { padding: 1rem; text-align: center; border-top: 1.5px solid var(--mw-border); }

/* ── Live Chat ───────────────────────────────────────────────── */
.mw-chat-wrap       { display: flex; flex-direction: column; height: 70vh; border: 1.5px solid var(--mw-border); border-radius: 12px; overflow: hidden; }
.mw-chat-header     { display: flex; align-items: center; gap: .7rem; padding: .9rem 1.2rem;
                      background: var(--mw-primary); color: #fff; }
.mw-back-btn        { color: rgba(255,255,255,.8); text-decoration: none; font-size: .85rem; }
.mw-chat-avatar     { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.mw-chat-name a     { color: #fff; text-decoration: none; font-weight: 700; }
.mw-chat-body       { flex: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: .6rem; background: #FAFAFA; }
.mw-chat-msg        { display: flex; gap: .5rem; max-width: 75%; }
.mw-chat-msg.mine   { flex-direction: row-reverse; margin-left: auto; }
.mw-chat-msg-avatar { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.mw-chat-bubble     { background: #fff; padding: .5rem .8rem; border-radius: 10px;
                      font-size: .9rem; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.mw-chat-msg.mine .mw-chat-bubble { background: var(--mw-primary); color: #fff; }
.mw-chat-time       { font-size: .7rem; opacity: .6; display: block; margin-top: .2rem; }
.mw-chat-input      { display: flex; gap: .5rem; padding: .8rem 1rem; border-top: 1.5px solid var(--mw-border); background: #fff; }
.mw-chat-input textarea { flex: 1; resize: none; border: 1.5px solid var(--mw-border); border-radius: 8px; padding: .6rem; font-size: .9rem; font-family: inherit; }
.mw-chat-loading    { text-align: center; color: var(--mw-muted); padding: 2rem; }
.mw-upgrade-wall    { text-align: center; padding: 4rem 2rem; max-width: 560px; margin: 0 auto; }
.mw-lock-icon       { font-size: 4rem; margin-bottom: 1rem; }
.mw-upgrade-wall-actions { display: flex; gap: .8rem; justify-content: center; flex-wrap: wrap; margin-top: 1.2rem; }
.mw-upgrade-wall-meter   { margin-top: 2rem; padding-top: 1.2rem; border-top: 1px solid var(--mw-border);
                            display: flex; flex-direction: column; align-items: center; gap: .5rem; }
.mw-upgrade-wall-meter .mw-usage-bar-wrap { width: 100%; max-width: 280px; }
.mw-upgrade-wall-meter span { font-size: .82rem; color: var(--mw-muted); font-weight: 600; }

/* ── Membership plans ────────────────────────────────────────── */
.mw-membership-wrap  { padding: 2rem 1.5rem; }
.mw-membership-header { text-align: center; margin-bottom: 2rem; }
.mw-membership-header h2 { font-size: 2rem; color: var(--mw-primary); margin-bottom: .5rem; }
.mw-current-plan-notice { background: var(--mw-light); border-left: 4px solid var(--mw-primary);
                           padding: .8rem 1.2rem; border-radius: 6px; margin-bottom: 2rem; }
.mw-plans-grid       { display: grid; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); gap: 1.5rem; }
.mw-plan-card        { background: #fff; border-radius: 14px; padding: 1.8rem 1.5rem;
                       box-shadow: var(--mw-shadow); position: relative; border: 2px solid transparent;
                       transition: var(--mw-trans); }
.mw-plan-card:hover  { border-color: var(--mw-primary); }
.mw-plan-featured    { border-color: var(--mw-gold) !important; }
.mw-plan-current     { border-color: var(--mw-success) !important; }
.mw-plan-badge       { position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
                       background: var(--mw-gold); color: #fff; padding: .2rem 1rem;
                       border-radius: 20px; font-size: .78rem; font-weight: 700; white-space: nowrap; }
.mw-plan-header      { text-align: center; margin-bottom: 1.2rem; }
.mw-plan-header h3   { font-size: 1.3rem; color: var(--mw-primary); margin: 0 0 .4rem; }
.mw-price-amount     { font-size: 2.2rem; font-weight: 800; color: var(--mw-text); }
.mw-price-period     { font-size: .85rem; color: var(--mw-muted); }
.mw-plan-desc        { color: var(--mw-muted); font-size: .85rem; margin: .4rem 0 0; }
.mw-plan-features    { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.mw-plan-features li { padding: .35rem 0; border-bottom: 1px solid var(--mw-border);
                       font-size: .88rem; color: var(--mw-text); }
.mw-plan-features li:last-child { border: none; }
.mw-plan-action      { text-align: center; }
.mw-plan-action .mw-btn { width: 100%; justify-content: center; }
.mw-membership-faq   { max-width: 640px; margin: 3rem auto 0; }
.mw-membership-faq h3 { text-align: center; color: var(--mw-primary); }
.mw-membership-faq details { border: 1px solid var(--mw-border); border-radius: 8px;
                              margin-bottom: .6rem; overflow: hidden; }
.mw-membership-faq summary { padding: .8rem 1rem; cursor: pointer; font-weight: 600; }
.mw-membership-faq p { padding: 0 1rem 1rem; color: var(--mw-muted); margin: 0; }

/* ── Interests / shortlist ───────────────────────────────────── */
.mw-tab-bar          { display: flex; gap: .3rem; margin-bottom: 1.5rem; background: var(--mw-light);
                       border-radius: 8px; padding: .3rem; }
.mw-tab              { flex: 1; text-align: center; padding: .5rem; border-radius: 6px;
                       text-decoration: none; color: var(--mw-muted); font-size: .9rem; font-weight: 600; transition: var(--mw-trans); }
.mw-tab.active       { background: var(--mw-primary); color: #fff; }
.mw-interest-grid    { display: grid; grid-template-columns: repeat(auto-fill,minmax(280px,1fr)); gap: 1rem; }
.mw-interest-card    { background: #fff; border-radius: 10px; overflow: hidden; box-shadow: var(--mw-shadow);
                       display: flex; flex-direction: column; }
.mw-interest-photo   { width: 100%; aspect-ratio: 3/2; object-fit: cover; display: block; }
.mw-interest-info    { padding: .8rem 1rem; flex: 1; }
.mw-interest-info h4 { margin: 0 0 .2rem; }
.mw-interest-info h4 a { color: var(--mw-text); text-decoration: none; }
.mw-interest-info h4 a:hover { color: var(--mw-primary); }
.mw-interest-msg     { font-style: italic; color: var(--mw-muted); font-size: .85rem; margin: .4rem 0 0; }
.mw-interest-actions { display: flex; gap: .4rem; padding: .7rem .8rem; flex-wrap: wrap; }
.mw-meta-tags        { display: flex; flex-wrap: wrap; gap: .4rem; margin: .4rem 0; }
.mw-meta-tags span   { font-size: .78rem; background: var(--mw-light); padding: .15rem .5rem; border-radius: 4px; color: var(--mw-muted); }

/* ── Who Viewed ──────────────────────────────────────────────── */
.mw-view-list        { display: flex; flex-direction: column; gap: .6rem; }
.mw-view-row         { display: flex; align-items: center; gap: 1rem; background: #fff;
                       border-radius: 10px; padding: .9rem 1rem; box-shadow: var(--mw-shadow); }
.mw-view-avatar      { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.mw-view-info        { flex: 1; }
.mw-view-info a      { color: var(--mw-text); text-decoration: none; }
.mw-view-info a:hover { color: var(--mw-primary); }
.mw-view-actions     { display: flex; align-items: center; gap: .5rem; flex-direction: column; }

/* ── Modal ───────────────────────────────────────────────────── */
.mw-modal            { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 9999;
                       display: flex; align-items: center; justify-content: center; padding: 1rem; }
.mw-modal-box        { background: #fff; border-radius: 14px; padding: 2rem; max-width: 480px;
                       width: 100%; box-shadow: var(--mw-shadow-lg); }
.mw-modal-box h3     { margin: 0 0 1rem; color: var(--mw-primary); }
.mw-modal-actions    { display: flex; gap: .7rem; margin-top: 1rem; }

/* ── Photos ──────────────────────────────────────────────────── */
.mw-photo-grid       { display: grid; grid-template-columns: repeat(auto-fill,minmax(160px,1fr)); gap: .8rem; margin-bottom: 1.5rem; }
.mw-photo-item       { border-radius: 8px; overflow: hidden; position: relative; aspect-ratio: 1;
                       border: 2.5px solid var(--mw-border); }
.mw-photo-item.is-primary { border-color: var(--mw-gold); }
.mw-photo-item img   { width: 100%; height: 100%; object-fit: cover; }
.mw-photo-overlay    { position: absolute; inset: 0; background: rgba(0,0,0,.5);
                       display: flex; flex-direction: column; align-items: center; justify-content: center;
                       gap: .4rem; opacity: 0; transition: var(--mw-trans); padding: .5rem; }
.mw-photo-item:hover .mw-photo-overlay { opacity: 1; }
.mw-upload-box       { background: var(--mw-light); border: 2px dashed var(--mw-border); border-radius: 10px; padding: 1.5rem; }
.mw-upload-box h3    { margin: 0 0 1rem; font-size: 1rem; color: var(--mw-primary); }
.mw-upload-box form  { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }

/* Status colours */
.mw-status-pending   { color: var(--mw-warning); font-weight: 600; }
.mw-status-active    { color: var(--mw-success); font-weight: 600; }
.mw-status-completed { color: var(--mw-success); font-weight: 600; }
.mw-status-rejected  { color: #C62828; font-weight: 600; }

/* ── Admin ───────────────────────────────────────────────────── */
.mw-admin-wrap       { padding: 1rem 0; }
.mw-admin-stats-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(160px,1fr)); gap: 1rem; margin: 1.5rem 0; }
.mw-admin-stat       { background: #fff; border-radius: 10px; padding: 1.2rem; text-align: center;
                       box-shadow: 0 2px 8px rgba(0,0,0,.06); border: 1.5px solid #eee; display: flex; flex-direction: column; }
.mw-stat-icon        { font-size: 1.6rem; }
.mw-stat-val         { font-size: 1.8rem; font-weight: 800; color: var(--mw-primary); }
.mw-stat-lbl         { font-size: .8rem; color: #777; }
.mw-admin-table      { font-size: .88rem; }
.mw-admin-pagination { display: flex; gap: .3rem; margin-top: 1rem; }
.mw-photo-grid       { display: flex; flex-wrap: wrap; gap: 1rem; }
.mw-photo-review     { text-align: center; background: #fff; padding: 1rem; border-radius: 8px;
                       border: 1px solid #eee; }
.mw-photo-review form { margin-top: .5rem; }

/* ── Tables ──────────────────────────────────────────────────── */
.mw-table            { width: 100%; border-collapse: collapse; font-size: .9rem; }
.mw-table th         { background: var(--mw-light); padding: .7rem 1rem; text-align: left; font-size: .8rem; color: var(--mw-muted); }
.mw-table td         { padding: .65rem 1rem; border-bottom: 1px solid var(--mw-border); }

/* ── My Gifts ────────────────────────────────────────────────── */
.mw-mygifts-wrap        { padding: 1rem 0; }
.mw-gift-received-grid  { display: grid; grid-template-columns: repeat(auto-fill,minmax(260px,1fr)); gap: 1rem; }
.mw-gift-received-card  { background: #fff; border-radius: 10px; padding: 1rem 1.2rem;
                           box-shadow: var(--mw-shadow); display: flex; align-items: center; gap: 1rem; }
.mw-gift-received-icon  { font-size: 2.5rem; flex-shrink: 0; }
.mw-gift-received-info  p { margin: .15rem 0; }
.mw-gift-received-name  { font-size: .95rem; }
.mw-gift-received-from  { font-size: .85rem; color: var(--mw-muted); }
.mw-gift-received-from a { color: var(--mw-primary); text-decoration: none; }
.mw-gift-received-msg   { font-style: italic; font-size: .85rem; color: var(--mw-muted); }

/* ── 2-plan layout ───────────────────────────────────────────────── */
.mw-plans-grid-2col { grid-template-columns: repeat(2,1fr); max-width: 780px; margin: 0 auto; }
@media (max-width:600px) { .mw-plans-grid-2col { grid-template-columns: 1fr; } }

/* ── Usage meter ─────────────────────────────────────────────────── */
.mw-usage-card      { background:#fff; border:1.5px solid var(--mw-border); border-radius:10px; padding:1.2rem 1.5rem; margin-bottom:1.5rem; }
.mw-usage-card h4   { margin:0 0 1rem; font-size:.95rem; color:var(--mw-primary); }
.mw-usage-row       { display:flex; align-items:center; gap:.8rem; margin-bottom:.6rem; font-size:.88rem; }
.mw-usage-row > span:first-child { min-width:140px; }
.mw-usage-bar-wrap  { flex:1; height:8px; background:var(--mw-light); border-radius:4px; overflow:hidden; }
.mw-usage-bar       { height:100%; background:linear-gradient(90deg,var(--mw-primary),var(--mw-gold)); border-radius:4px; transition:width .4s; min-width:4px; }
.mw-usage-count     { min-width:50px; text-align:right; font-weight:600; color:var(--mw-primary); font-size:.82rem; }
.mw-usage-warning   { background:#fff3e0; border-left:3px solid var(--mw-warning); padding:.5rem .8rem; border-radius:4px; font-size:.82rem; color:var(--mw-warning); margin-top:.6rem; }

/* ── Contact reveal ──────────────────────────────────────────────── */
.mw-reveal-wrap      { display:flex; align-items:center; gap:.8rem; flex-wrap:wrap; }
.mw-reveal-remaining { font-size:.8rem; color:var(--mw-muted); }
.mw-contact-limit    { background:var(--mw-light); border-left:3px solid var(--mw-primary); padding:.8rem 1rem; border-radius:6px; font-size:.88rem; }
.mw-revealed-contact { display:flex; align-items:center; gap:.5rem; font-weight:600; color:var(--mw-primary); background:var(--mw-light); padding:.6rem 1rem; border-radius:6px; border:1.5px solid var(--mw-border); }
.mw-feat-no          { color:var(--mw-muted); }

/* ── Comparison table ────────────────────────────────────────────── */
.mw-compare-table-wrap    { margin-top:2.5rem; }
.mw-compare-table-wrap h3 { text-align:center; margin-bottom:1rem; color:var(--mw-primary); font-size:1.2rem; }
.mw-compare-table         { width:100%; border-collapse:collapse; font-size:.88rem; max-width:600px; margin:0 auto; }
.mw-compare-table th,
.mw-compare-table td      { padding:.6rem 1rem; text-align:center; border-bottom:1px solid var(--mw-border); }
.mw-compare-table th      { background:var(--mw-light); font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:var(--mw-muted); font-weight:600; }
.mw-compare-table td:first-child, .mw-compare-table th:first-child { text-align:left; }
.mw-col-plat              { background:rgba(201,165,90,.06); color:var(--mw-primary); font-weight:600; }
.mw-compare-table tr:hover td { background:var(--mw-cream); }


/* ── WooCommerce Integration ─────────────────────────────────── */
.mw-wc-badge-row    { display: flex; flex-wrap: wrap; gap: 1.5rem; justify-content: center;
                      background: var(--mw-light); padding: .8rem 1.5rem; border-radius: 8px;
                      margin-bottom: 1.5rem; font-size: .85rem; color: var(--mw-muted); }
.mw-wc-buy-btn      { width: 100%; justify-content: center; font-size: .95rem; }
.mw-plan-checkout-note { font-size: .78rem; color: var(--mw-muted); margin: .4rem 0 0; text-align: center; }
.mw-payment-strip   { text-align: center; padding: 1.5rem; color: var(--mw-muted);
                      border-top: 1px solid var(--mw-border); margin-top: 2rem; }
/* WC price html override */
.mw-plan-header .woocommerce-Price-amount { font-size: inherit; color: inherit; font-weight: inherit; }
.mw-plan-header del .woocommerce-Price-amount { font-size: .8em; color: var(--mw-muted); }

/* ── Animation ───────────────────────────────────────────────── */
@keyframes mwFadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 900px) {
  .mw-dashboard     { grid-template-columns: 1fr; }
  .mw-dash-sidebar  { display: flex; overflow-x: auto; }
  .mw-dash-nav      { display: flex; flex-direction: row; flex-wrap: nowrap; padding: 0; }
  .mw-dash-user     { flex-shrink: 0; border-bottom: none; border-right: 1px solid rgba(255,255,255,.15); }
  .mw-profile-hero  { grid-template-columns: 1fr; }
  .mw-search-wrap   { grid-template-columns: 1fr; }
  .mw-inbox-wrap    { grid-template-columns: 1fr; }
  .mw-form-grid     { grid-template-columns: 1fr; }
  .mw-detail-grid   { grid-template-columns: 1fr; }
  .mw-plans-grid    { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .mw-auth-card     { padding: 1.5rem; }
  .mw-field-row     { grid-template-columns: 1fr; }
  .mw-profiles-grid { grid-template-columns: 1fr 1fr; }
  .mw-interest-grid { grid-template-columns: 1fr; }
}

/* ── Payment-Required Wall ───────────────────────────────────────────── */
.mw-payment-required-wrap { max-width: 640px; margin: 2rem auto; padding: 0 1rem; }

/* Registration progress steps */
.mw-reg-steps {
  display: flex; align-items: center; justify-content: center;
  gap: 0; margin-bottom: 2rem;
}
.mw-reg-step {
  display: flex; flex-direction: column; align-items: center; gap: .3rem;
  flex-shrink: 0;
}
.mw-reg-step-num {
  width: 36px; height: 36px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: .85rem; font-weight: 700;
  background: var(--mw-light); color: var(--mw-muted);
  border: 2px solid var(--mw-border);
}
.mw-reg-step.done .mw-reg-step-num  { background: var(--mw-success-bg); color: var(--mw-success); border-color: var(--mw-success); }
.mw-reg-step.active .mw-reg-step-num { background: var(--mw-gold); color: #fff; border-color: var(--mw-gold); }
.mw-reg-step-label { font-size: .72rem; font-weight: 600; color: var(--mw-muted); white-space: nowrap; }
.mw-reg-step.done .mw-reg-step-label  { color: var(--mw-success); }
.mw-reg-step.active .mw-reg-step-label { color: var(--mw-gold-dk, #A8873E); }
.mw-reg-step-line { flex: 1; height: 2px; background: var(--mw-border); min-width: 40px; margin: 0 .4rem; margin-bottom: 1.2rem; }
.mw-reg-step-line.done { background: var(--mw-success); }

/* Main payment card */
.mw-payment-card {
  background: var(--mw-white); border: 1px solid var(--mw-border);
  border-radius: var(--mw-radius); box-shadow: var(--mw-shadow-md);
  overflow: hidden;
}
.mw-payment-card-header {
  text-align: center; padding: 2rem 1.5rem 1.5rem;
  background: linear-gradient(135deg, var(--mw-cream), var(--mw-white));
  border-bottom: 1px solid var(--mw-border);
}
.mw-payment-lock-icon { font-size: 2.5rem; margin-bottom: .6rem; }
.mw-payment-card-header h2 { font-size: 1.4rem; color: var(--mw-primary); margin-bottom: .5rem; }
.mw-payment-card-header p  { color: var(--mw-muted); font-size: .9rem; max-width: 440px; margin: 0 auto; }

/* Plan box inside card */
.mw-payment-plan-box { padding: 1.5rem; border-bottom: 1px solid var(--mw-border); }
.mw-payment-plan-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1rem;
}
.mw-payment-plan-name  { font-size: 1.1rem; font-weight: 700; color: var(--mw-primary); }
.mw-payment-plan-desc  { font-size: .8rem; color: var(--mw-muted); margin-top: .15rem; }
.mw-payment-plan-price {
  font-size: 1.8rem; font-weight: 800; color: var(--mw-primary); line-height: 1;
}
.mw-payment-features {
  list-style: none; padding: 0; margin: 0 0 1.2rem;
  display: grid; grid-template-columns: 1fr 1fr; gap: .3rem;
}
.mw-payment-features li { font-size: .85rem; color: var(--mw-text); padding: .2rem 0; }
@media(max-width:520px){ .mw-payment-features { grid-template-columns: 1fr; } }

.mw-payment-actions { text-align: center; }
.mw-btn-block { width: 100%; justify-content: center; font-size: 1rem; padding: .85rem; }
.mw-payment-secure-note {
  font-size: .78rem; color: var(--mw-muted); margin-top: .6rem;
  display: flex; align-items: center; justify-content: center; gap: .3rem;
}

/* Next steps */
.mw-payment-next-steps {
  padding: 1.2rem 1.5rem; background: var(--mw-light);
  border-bottom: 1px solid var(--mw-border);
}
.mw-payment-next-steps h4 { font-size: .9rem; color: var(--mw-text); margin-bottom: .6rem; font-family: var(--mw-font-body); }
.mw-payment-next-steps ol { padding-left: 1.2rem; margin: 0; }
.mw-payment-next-steps li { font-size: .84rem; color: var(--mw-muted); margin-bottom: .35rem; line-height: 1.5; }
.mw-payment-next-steps li strong { color: var(--mw-text); }

/* Help footer */
.mw-payment-help { padding: 1rem 1.5rem; font-size: .83rem; color: var(--mw-muted); }
.mw-payment-help a { color: var(--mw-primary); }

/* Register form: payment notice on final step */
.mw-payment-notice {
  margin-top: 1rem;
  background: var(--mw-cream);
  border: 1.5px solid var(--mw-gold);
  border-radius: var(--mw-radius);
  padding: .85rem 1rem;
}
.mw-payment-notice-inner {
  display: flex; align-items: flex-start; gap: .75rem;
  font-size: .84rem; color: var(--mw-text); line-height: 1.55;
}
.mw-payment-notice-icon { font-size: 1.3rem; flex-shrink: 0; margin-top: .05rem; }
.mw-payment-notice-inner strong { color: var(--mw-primary); }
