/* ── Members Portal Frontend ───────────────────────────────────────────── */
:root {
    --mp-primary:   #1a56db;
    --mp-danger:    #e02424;
    --mp-success:   #057a55;
    --mp-warning:   #b45309;
    --mp-bg:        #f9fafb;
    --mp-card:      #ffffff;
    --mp-border:    #e5e7eb;
    --mp-text:      #111827;
    --mp-muted:     #6b7280;
    --mp-radius:    8px;
}

/* Layout */
.mp-members-wrap { display:flex; gap:24px; max-width:1100px; margin:0 auto; padding:24px 16px; }
.mp-sidebar { width:220px; flex-shrink:0; }
.mp-main { flex:1; min-width:0; }

/* User card */
.mp-user-card { background:var(--mp-card); border:1px solid var(--mp-border); border-radius:var(--mp-radius); padding:16px; text-align:center; margin-bottom:16px; }
.mp-user-card strong { display:block; margin-top:8px; font-size:1rem; }
.mp-user-card span { font-size:.8rem; color:var(--mp-muted); word-break:break-word; }

/* Avatar */
.mp-avatar-wrap { position:relative; display:inline-block; }
.mp-avatar { width:72px; height:72px; border-radius:50%; object-fit:cover; border:2px solid var(--mp-border); }
.mp-avatar-lg { width:100px; height:100px; border-radius:50%; object-fit:cover; border:3px solid var(--mp-border); }
.mp-avatar-edit { position:absolute; bottom:0; right:0; background:var(--mp-primary); color:#fff; border-radius:50%; width:22px; height:22px; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:.75rem; }
.mp-profile-thumb { width:48px; height:48px; border-radius:50%; object-fit:cover; border:1px solid var(--mp-border); }

/* Nav tabs */
.mp-tabs-nav { display:flex; flex-direction:column; gap:4px; margin-bottom:12px; }
.mp-tab-link { display:block; padding:8px 12px; border-radius:6px; text-decoration:none; color:var(--mp-text); font-size:.9rem; transition:background .15s; }
.mp-tab-link:hover, .mp-tab-link.active { background:var(--mp-primary); color:#fff; }

/* Buttons */
.mp-btn { display:inline-flex; align-items:center; gap:4px; padding:8px 16px; border-radius:6px; border:none; cursor:pointer; font-size:.875rem; font-weight:500; text-decoration:none; transition:opacity .15s; }
.mp-btn:hover { opacity:.85; }
.mp-btn-primary   { background:var(--mp-primary); color:#fff; }
.mp-btn-secondary { background:#e5e7eb; color:var(--mp-text); }
.mp-btn-danger    { background:var(--mp-danger); color:#fff; }
.mp-btn-ghost     { background:transparent; color:var(--mp-primary); border:1px solid var(--mp-primary); }
.mp-btn-logout    { background:#f3f4f6; color:var(--mp-danger); width:100%; justify-content:center; }
.mp-btn-sm        { padding:4px 10px; font-size:.8rem; }

/* Cards */
.mp-card { background:var(--mp-card); border:1px solid var(--mp-border); border-radius:var(--mp-radius); padding:20px; margin-bottom:20px; }

/* Notices */
.mp-notice { padding:12px 16px; border-radius:6px; margin-bottom:16px; font-size:.9rem; }
.mp-success { background:#d1fae5; color:var(--mp-success); border:1px solid #a7f3d0; }
.mp-error   { background:#fee2e2; color:var(--mp-danger); border:1px solid #fecaca; }
.mp-info    { background:#dbeafe; color:#1e40af; border:1px solid #bfdbfe; }

/* Forms */
.mp-form { display:flex; flex-direction:column; gap:16px; }
.mp-form-row { display:flex; gap:16px; flex-wrap:wrap; }
.mp-field { display:flex; flex-direction:column; gap:4px; flex:1; min-width:160px; }
.mp-field label { font-size:.85rem; font-weight:600; color:var(--mp-text); }
.mp-field input[type=text], .mp-field input[type=email], .mp-field input[type=password],
.mp-field input[type=number], .mp-field select, .mp-field textarea {
    padding:8px 10px; border:1px solid var(--mp-border); border-radius:6px; font-size:.9rem; background:#fff; width:100%; box-sizing:border-box;
}
.mp-field small { font-size:.78rem; color:var(--mp-muted); }
.mp-checkbox { flex-direction:row; align-items:center; gap:8px; }
.mp-checkbox-group { display:flex; flex-wrap:wrap; gap:8px; }
.mp-checkbox-label { display:flex; align-items:center; gap:6px; font-size:.88rem; cursor:pointer; }
.mp-form-actions { display:flex; gap:12px; align-items:center; }

/* Tables */
.mp-table { width:100%; border-collapse:collapse; font-size:.875rem; }
.mp-table th { background:#f3f4f6; padding:10px 12px; text-align:left; font-weight:600; border-bottom:2px solid var(--mp-border); }
.mp-table td { padding:8px 12px; border-bottom:1px solid var(--mp-border); vertical-align:middle; }
.mp-table tr:last-child td { border-bottom:none; }

/* Stats */
.mp-stats-grid { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:24px; }
.mp-stat { background:var(--mp-card); border:1px solid var(--mp-border); border-radius:var(--mp-radius); padding:20px; text-align:center; flex:1; min-width:100px; }
.mp-stat-num { display:block; font-size:2rem; font-weight:700; color:var(--mp-primary); }
.mp-stat-lbl { font-size:.85rem; color:var(--mp-muted); }

/* Profile grid */
.mp-profiles-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
.mp-profile-card { background:var(--mp-card); border:1px solid var(--mp-border); border-radius:var(--mp-radius); padding:16px; display:flex; flex-direction:column; gap:12px; }
.mp-profile-card-header { display:flex; align-items:center; gap:10px; }
.mp-profile-actions { display:flex; gap:8px; margin-top:auto; }
.mp-profile-docs { font-size:.85rem; }
.mp-doc-row { display:flex; align-items:center; gap:8px; padding:4px 0; border-bottom:1px solid var(--mp-border); flex-wrap:wrap; }
.mp-doc-type { font-size:.78rem; background:#f3f4f6; padding:2px 6px; border-radius:4px; color:var(--mp-muted); }
.mp-inline-upload { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:8px; }

/* Badges */
.mp-badge { font-size:.75rem; font-weight:600; padding:2px 8px; border-radius:20px; background:#dbeafe; color:#1e40af; }
.mp-badge-dog   { background:#d1fae5; color:#065f46; }
.mp-badge-drone { background:#ede9fe; color:#5b21b6; }

/* Info table */
.mp-info-table { width:100%; border-collapse:collapse; }
.mp-info-table td { padding:6px 12px; border-bottom:1px solid var(--mp-border); font-size:.9rem; }
.mp-info-table td:first-child { font-weight:600; width:140px; color:var(--mp-muted); }

/* Misc */
.mp-dl { display:grid; grid-template-columns:auto 1fr; gap:2px 12px; font-size:.85rem; margin:0; }
.mp-dl dt { font-weight:600; color:var(--mp-muted); }
.mp-dl dd { margin:0; }
.mp-tab-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.mp-tab-header h2 { margin:0; }
.mp-empty { color:var(--mp-muted); font-style:italic; }
.mp-restricted { background:#fee2e2; color:var(--mp-danger); padding:16px; border-radius:6px; }
.mp-link { color:var(--mp-primary); }
.mp-profile-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.mp-avatar-upload-area { display:flex; align-items:center; gap:16px; margin-bottom:12px; }
.mp-doc-actions { display:flex; gap:6px; }
.mp-avatar-row { display:flex; align-items:center; gap:12px; }

/* Login form */
.mp-login-wrap { max-width:400px; margin:0 auto; }
.mp-login-form { display:flex; flex-direction:column; gap:16px; }
.mp-forgot { text-align:center; margin-top:12px; font-size:.85rem; }

/* WC order status badges */
.mp-status-completed { background:#d1fae5; color:#065f46; }
.mp-status-processing { background:#dbeafe; color:#1e40af; }
.mp-status-pending { background:#fef3c7; color:#92400e; }
.mp-status-cancelled { background:#fee2e2; color:#991b1b; }

/* Responsive */
@media (max-width: 768px) {
    .mp-members-wrap { flex-direction:column; }
    .mp-sidebar { width:100%; }
    .mp-profile-grid { grid-template-columns:1fr; }
    .mp-form-row { flex-direction:column; }
}

/* ── Subscription ───────────────────────────────────────────────────── */
.mp-sub-banner { padding:14px 18px; border-radius:8px; margin-bottom:20px; font-size:.95rem; }
.mp-sub-paid   { background:#d1fae5; color:#065f46; border:1px solid #a7f3d0; }
.mp-sub-unpaid { background:#fef3c7; color:#92400e; border:1px solid #fde68a; }

.mp-sub-card { text-align:center; padding:40px 32px; }
.mp-sub-card--paid   { background:linear-gradient(135deg,#ecfdf5,#d1fae5); border-color:#a7f3d0; }
.mp-sub-card--unpaid { background:linear-gradient(135deg,#fffbeb,#fef3c7); border-color:#fde68a; }
.mp-sub-status-icon { font-size:48px; margin-bottom:12px; }
.mp-sub-card h3 { margin:0 0 12px; font-size:1.25rem; }
.mp-sub-amount-due { display:flex; flex-direction:column; align-items:center; margin:20px 0; }
.mp-sub-amount-label { font-size:.85rem; text-transform:uppercase; letter-spacing:.05em; color:#92400e; }
.mp-sub-amount-value { font-size:2.5rem; font-weight:700; color:#b45309; }
.mp-sub-notes { font-size:.9rem; color:#6b7280; }
.mp-sub-contact { font-size:.9rem; }

/* ── Orders ────────────────────────────────────────────────────────── */
.mp-order-card { background:var(--mp-card); border:1px solid var(--mp-border); border-radius:var(--mp-radius); padding:16px; margin-bottom:16px; }
.mp-order-card-header { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.mp-order-number { font-weight:700; font-size:1rem; }
.mp-order-date { font-size:.85rem; color:var(--mp-muted); margin-left:8px; }
.mp-order-card-right { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.mp-order-total { font-weight:700; }
.mp-paid-badge { background:#d1fae5; color:#065f46; font-size:.78rem; font-weight:700; padding:2px 8px; border-radius:10px; }
.mp-order-lines { font-size:.85rem; }
.mp-line-status { font-size:.8rem; }
.mp-line-delivered { color:#065f46; }
.mp-line-ordered   { color:#1e40af; }
.mp-line-pending   { color:#92400e; }
.mp-line-cancelled { color:#991b1b; }
.mp-order-complete-banner { margin-top:12px; background:#d1fae5; color:#065f46; padding:8px 12px; border-radius:6px; font-size:.875rem; text-align:center; }

/* Status badge colours */
.mp-status-pending   { background:#fef3c7; color:#92400e; }
.mp-status-ordered   { background:#dbeafe; color:#1e40af; }
.mp-status-partial   { background:#ede9fe; color:#5b21b6; }
.mp-status-completed { background:#d1fae5; color:#065f46; }
.mp-status-cancelled { background:#fee2e2; color:#991b1b; }

/* Misc helpers */
.mp-muted { color:var(--mp-muted); }
.mp-age   { font-size:.8rem; margin-left:4px; }

/* ── Courses tab ────────────────────────────────────────────────────── */
.mp-course-progress-row { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:20px; }
.mp-course-progress-card { flex:1; min-width:130px; background:var(--mp-card); border:2px solid var(--mp-border); border-radius:var(--mp-radius); padding:12px; text-decoration:none; color:var(--mp-text); transition:border-color .15s; }
.mp-course-progress-card.active, .mp-course-progress-card:hover { border-color:var(--mp-primary); }
.mp-cprogress-label { font-size:.8rem; font-weight:600; margin-bottom:6px; }
.mp-cprogress-bar-wrap { background:#e5e7eb; border-radius:4px; height:6px; overflow:hidden; margin-bottom:4px; }
.mp-cprogress-bar { background:var(--mp-primary); height:100%; border-radius:4px; transition:width .4s; }
.mp-cprogress-count { font-size:.75rem; color:var(--mp-muted); }

.mp-course-cat-tabs { display:flex; gap:4px; flex-wrap:wrap; border-bottom:2px solid var(--mp-border); margin-bottom:16px; }
.mp-cat-tab { padding:8px 16px; border:1px solid var(--mp-border); border-bottom:none; border-radius:6px 6px 0 0; text-decoration:none; color:var(--mp-muted); font-size:.875rem; background:#f9fafb; transition:background .15s; display:flex; align-items:center; gap:6px; }
.mp-cat-tab.active, .mp-cat-tab:hover { background:#fff; color:var(--mp-primary); font-weight:600; }
.mp-cat-count { background:var(--mp-primary); color:#fff; border-radius:10px; padding:1px 7px; font-size:.72rem; font-weight:700; }

.mp-course-list { display:flex; flex-direction:column; gap:6px; }
.mp-course-item { display:flex; align-items:center; gap:12px; padding:12px 16px; border-radius:8px; border:1px solid var(--mp-border); background:var(--mp-card); }
.mp-course-item.mp-course--achieved  { border-color:#a7f3d0; background:#f0fdf4; }
.mp-course-item.mp-course--expired   { border-color:#fecaca; background:#fff5f5; }
.mp-course-item.mp-course--expiring  { border-color:#fde68a; background:#fffbeb; }
.mp-course-item.mp-course--pending   { opacity:.7; }
.mp-course-icon { font-size:1.25rem; width:28px; text-align:center; flex-shrink:0; }
.mp-course-info { flex:1; min-width:0; }
.mp-course-name { font-weight:600; display:block; font-size:.9rem; }
.mp-course-meta { font-size:.78rem; color:var(--mp-muted); }
.mp-expired-label  { color:var(--mp-danger); font-weight:600; }
.mp-expiring-label { color:#b45309; font-weight:600; }
.mp-course-badge { font-size:.72rem; font-weight:700; padding:3px 10px; border-radius:12px; flex-shrink:0; }
.badge-achieved  { background:#d1fae5; color:#065f46; }
.badge-expired   { background:#fee2e2; color:#991b1b; }
.badge-expiring  { background:#fef3c7; color:#92400e; }

/* ── Dashboard progress bars ──────────────────────────────────────── */
.mp-dashboard-header { margin-bottom:16px; }
.mp-dashboard-header h2 { margin:0 0 4px; }
.mp-dash-progress { display:flex; flex-direction:column; gap:10px; margin-bottom:24px; }
.mp-dash-progress-item {}
.mp-dash-progress-label { display:flex; justify-content:space-between; font-size:.85rem; margin-bottom:4px; }
.mp-dash-progress-track { background:#e5e7eb; border-radius:6px; height:8px; overflow:hidden; }
.mp-dash-progress-fill  { background:var(--mp-primary); height:100%; border-radius:6px; transition:width .4s; }

/* ── Rank badge in sidebar ────────────────────────────────────────── */
.mp-rank-badge { display:inline-block; background:#1a56db; color:#fff; font-size:.72rem; font-weight:700; padding:2px 8px; border-radius:10px; margin-top:4px; }

/* ── Tab icon ────────────────────────────────────────────────────── */
.mp-tab-icon { font-size:1rem; }

/* ── Input disabled style ────────────────────────────────────────── */
.mp-input-disabled { background:#f3f4f6 !important; color:var(--mp-muted) !important; cursor:not-allowed; }

/* ── Course request button ─────────────────────────────────────────── */
.mp-btn-request { background:#1a56db; color:#fff; font-size:.8rem; padding:6px 14px; white-space:nowrap; }
.mp-btn-request:hover { background:#1e429f; }
.mp-required { color:#e02424; }
.mp-validity-wrap { display:flex; align-items:center; gap:8px; }
.mp-validity-wrap input { width:80px; }
.mp-validity-suffix { font-size:.82rem; color:var(--mp-muted); }
.mp-pending-meta  { color:#92400e; }
.mp-rejected-meta { color:#991b1b; }
.badge-pending  { background:#fef3c7; color:#92400e; }
.badge-rejected { background:#fee2e2; color:#991b1b; }
.mp-course--pending  { border-color:#fde68a; background:#fffbeb; }
.mp-course--rejected { border-color:#fecaca; background:#fff5f5; opacity:.85; }

/* ── Modal ─────────────────────────────────────────────────────────── */
.mp-modal { position:fixed; inset:0; z-index:99999; display:flex; align-items:center; justify-content:center; }
.mp-modal-overlay { position:absolute; inset:0; background:rgba(0,0,0,.5); }
.mp-modal-box { position:relative; background:#fff; border-radius:12px; padding:32px; width:min(520px,90vw); max-height:90vh; overflow-y:auto; box-shadow:0 20px 60px rgba(0,0,0,.25); z-index:1; }
.mp-modal-close { position:absolute; top:12px; right:16px; background:none; border:none; font-size:1.5rem; cursor:pointer; color:var(--mp-muted); line-height:1; padding:4px; }
.mp-modal-close:hover { color:var(--mp-text); }
.mp-modal-title { margin:0 0 4px; font-size:1.2rem; }
.mp-modal-course-name { font-size:1rem; font-weight:700; color:var(--mp-primary); margin-bottom:20px; padding:10px 14px; background:#eff6ff; border-radius:6px; border-left:3px solid var(--mp-primary); }
.mp-modal-actions { display:flex; gap:10px; margin-top:24px; }
body.mp-modal-open { overflow:hidden; }

/* Admin menu bubble */
.mp-menu-bubble { display:inline-block; background:#e02424; color:#fff; border-radius:10px; font-size:.7rem; padding:1px 6px; font-weight:700; vertical-align:top; margin-top:1px; }

/* ── Frontend Calendar ─────────────────────────────────────────────── */
.mp-fe-cal-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.mp-fe-cal-nav h3 { margin:0; font-size:1.1rem; }
.mp-cal-nav-btn { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:6px; background:var(--mp-card); border:1px solid var(--mp-border); text-decoration:none; color:var(--mp-text); font-size:1.2rem; font-weight:700; transition:background .15s; }
.mp-cal-nav-btn:hover { background:var(--mp-primary); color:#fff; }

.mp-fe-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:20px; }
.mp-cal-dow { text-align:center; font-size:.75rem; font-weight:700; color:var(--mp-muted); padding:6px 0; text-transform:uppercase; }
.mp-fe-cal-cell { min-height:64px; background:var(--mp-card); border:1px solid var(--mp-border); border-radius:4px; padding:4px; cursor:default; transition:border-color .15s; position:relative; }
.mp-fe-cal-cell.mp-cal-empty { background:#f9fafb; }
.mp-fe-cal-cell.mp-cal-today { border-color:var(--mp-primary); }
.mp-fe-cal-cell.mp-cal-today .mp-cal-day-label { background:var(--mp-primary); color:#fff; border-radius:50%; }
.mp-fe-cal-cell.mp-cal-has-events { cursor:pointer; }
.mp-fe-cal-cell.mp-cal-has-events:hover { border-color:var(--mp-primary); background:#eff6ff; }
.mp-fe-cal-cell .mp-cal-day-label { display:inline-block; width:22px; height:22px; line-height:22px; text-align:center; font-size:.8rem; font-weight:600; margin-bottom:2px; }
.mp-fe-cal-pill { display:block; font-size:.68rem; font-weight:600; color:#fff; border-radius:3px; padding:1px 4px; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* Event cards */
.mp-cal-month-events { display:flex; flex-direction:column; gap:12px; margin-top:8px; }
.mp-cal-month-events h3 { margin:0 0 8px; font-size:1rem; }
.mp-cal-event-card { display:flex; border-radius:var(--mp-radius); overflow:hidden; border:1px solid var(--mp-border); background:var(--mp-card); }
.mp-cal-event-card-left { width:56px; flex-shrink:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:8px; color:#fff; }
.mp-cal-event-day { font-size:1.4rem; font-weight:700; line-height:1; }
.mp-cal-event-mon { font-size:.7rem; text-transform:uppercase; font-weight:600; opacity:.9; }
.mp-cal-event-card-body { flex:1; padding:12px 16px; min-width:0; }
.mp-cal-event-card-header { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:6px; }
.mp-cal-event-title { font-size:.95rem; }
.mp-cal-event-type-badge { font-size:.7rem; font-weight:700; padding:2px 8px; border-radius:10px; color:#fff; }
.mp-cal-event-meta-row { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:6px; }
.mp-cal-meta-item { font-size:.8rem; color:var(--mp-muted); }
.mp-cal-event-desc { font-size:.85rem; color:#374151; margin:0; line-height:1.5; }

/* ── Dog profile circular photo ─────────────────────────────────────── */
.mp-profile-avatar-circle-wrap {
    position: relative;
    flex-shrink: 0;
}
.mp-profile-avatar-circle {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--mp-border);
    display: block;
}
.mp-profile-avatar-edit-btn {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 24px;
    height: 24px;
    background: var(--mp-primary);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .75rem;
    cursor: pointer;
    line-height: 1;
}
.mp-profile-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
}
.mp-profile-card-name {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* Profile photo upload in form */
.mp-photo-field { margin-bottom: 8px; }
.mp-profile-photo-upload {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.mp-profile-photo-preview-wrap {
    flex-shrink: 0;
}
.mp-profile-photo-preview {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--mp-border);
}
.mp-photo-choose-btn {
    cursor: pointer;
}

/* Orders form section */
.mp-order-form-section {
    margin-top: 28px;
    padding-top: 20px;
    border-top: 2px solid var(--mp-border);
}
.mp-order-form-section h3 {
    margin: 0 0 6px;
}

/* ── Member Directory ──────────────────────────────────────────────── */
.mp-dir-filter-bar { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin-bottom:20px; }
.mp-dir-filter-bar .mp-field { margin:0; }
.mp-dir-view-toggle { display:flex; gap:4px; margin-left:auto; }
.mp-dir-view-btn { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border:1px solid var(--mp-border); border-radius:6px; text-decoration:none; color:var(--mp-muted); font-size:1.2rem; background:var(--mp-card); }
.mp-dir-view-btn.active, .mp-dir-view-btn:hover { background:var(--mp-primary); color:#fff; border-color:var(--mp-primary); }

/* Card grid */
.mp-dir-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:16px; }
.mp-dir-card { background:var(--mp-card); border:1px solid var(--mp-border); border-radius:var(--mp-radius); overflow:hidden; transition:box-shadow .15s, border-color .15s; }
.mp-dir-card:hover { box-shadow:0 4px 16px rgba(0,0,0,.1); border-color:#c7d2fe; }
.mp-dir-card-inner { display:flex; flex-direction:column; align-items:center; padding:20px 16px; text-decoration:none; color:var(--mp-text); }
.mp-dir-card-avatar { width:72px; height:72px; border-radius:50%; object-fit:cover; border:3px solid var(--mp-border); margin-bottom:10px; }
.mp-dir-card-avatar-wrap { position:relative; }
.mp-dir-card-name { font-weight:700; font-size:.95rem; text-align:center; margin-bottom:6px; }
.mp-dir-card-rank { font-size:.72rem; font-weight:700; color:#fff; padding:3px 10px; border-radius:12px; margin-bottom:6px; }
.mp-dir-card-titles { display:flex; flex-wrap:wrap; gap:4px; justify-content:center; margin-bottom:10px; }
.mp-dir-card-stats { display:flex; gap:12px; margin-top:8px; padding-top:10px; border-top:1px solid var(--mp-border); width:100%; justify-content:center; }
.mp-dir-card-stat { text-align:center; }
.mp-dir-card-stat span { display:block; font-size:1.1rem; font-weight:700; color:var(--mp-primary); }
.mp-dir-card-stat small { font-size:.7rem; color:var(--mp-muted); }

/* Title chips */
.mp-dir-title-chip { font-size:.72rem; background:#eff6ff; color:#1e40af; padding:2px 8px; border-radius:10px; }

/* Cert chips */
.mp-dir-cert-chip { display:inline-flex; align-items:center; gap:4px; font-size:.78rem; background:#f0fdf4; border:1px solid #a7f3d0; color:#065f46; padding:3px 10px; border-radius:20px; }
.mp-dir-cert-expired { background:#fff5f5; border-color:#fecaca; color:#991b1b; }

/* List table */
.mp-dir-list-table th, .mp-dir-list-table td { padding:10px 12px; }

/* Detail view */
.mp-dir-detail-wrap { display:flex; flex-direction:column; gap:16px; }
.mp-dir-detail-header { display:flex; gap:20px; align-items:flex-start; flex-wrap:wrap; }
.mp-dir-detail-avatar { width:90px; height:90px; border-radius:50%; object-fit:cover; border:3px solid var(--mp-border); flex-shrink:0; }
.mp-dir-detail-info { flex:1; min-width:200px; }
.mp-dir-detail-info h3 { margin:0 0 8px; }
.mp-dir-titles { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; }
.mp-dir-detail-meta { display:grid; grid-template-columns:auto 1fr; gap:4px 16px; font-size:.875rem; margin:10px 0 0; }
.mp-dir-detail-meta dt { font-weight:600; color:var(--mp-muted); }
.mp-dir-detail-meta dd { margin:0; }
.mp-dir-cert-summary { display:flex; gap:12px; flex-shrink:0; }

/* ── LearnPress Integration ────────────────────────────────────────── */

/* Sub-tabs */
.mp-lp-subtabs { display:flex; gap:4px; flex-wrap:wrap; border-bottom:2px solid var(--mp-border); margin-bottom:20px; }
.mp-lp-subtab { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border:1px solid var(--mp-border); border-bottom:none; border-radius:6px 6px 0 0; text-decoration:none; color:var(--mp-muted); font-size:.875rem; background:#f9fafb; transition:all .15s; }
.mp-lp-subtab.active, .mp-lp-subtab:hover { background:#fff; color:var(--mp-primary); font-weight:600; }
.mp-lp-count { background:var(--mp-primary); color:#fff; border-radius:10px; padding:1px 7px; font-size:.72rem; font-weight:700; }

/* Summary bar */
.mp-lp-summary-bar { display:flex; gap:16px; align-items:center; flex-wrap:wrap; background:var(--mp-card); border:1px solid var(--mp-border); border-radius:var(--mp-radius); padding:16px 20px; margin-bottom:20px; }
.mp-lp-summary-stat { text-align:center; min-width:60px; }
.mp-lp-summary-stat .mp-stat-num { font-size:1.5rem; }
.mp-lp-summary-progress { flex:1; min-width:180px; }
.mp-lp-summary-progress-label { display:flex; justify-content:space-between; font-size:.82rem; margin-bottom:4px; }

/* Course grid */
.mp-lp-courses-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px; }
.mp-lp-course-card { background:var(--mp-card); border:1px solid var(--mp-border); border-radius:var(--mp-radius); overflow:hidden; display:flex; flex-direction:column; transition:box-shadow .15s; }
.mp-lp-course-card:hover { box-shadow:0 4px 16px rgba(0,0,0,.1); }
.mp-lp-course-thumb-wrap { position:relative; display:block; }
.mp-lp-course-thumb { width:100%; height:140px; object-fit:cover; display:block; }
.mp-lp-status-dot { position:absolute; top:8px; right:8px; width:10px; height:10px; border-radius:50%; border:2px solid #fff; }
.mp-lp-course-body { padding:14px; display:flex; flex-direction:column; gap:8px; flex:1; }
.mp-lp-course-title { font-weight:700; font-size:.9rem; text-decoration:none; color:var(--mp-text); line-height:1.3; }
.mp-lp-course-title:hover { color:var(--mp-primary); }
.mp-lp-status-chip { display:inline-block; font-size:.72rem; font-weight:700; padding:2px 8px; border-radius:10px; }
.mp-lp-progress-wrap { display:flex; align-items:center; gap:8px; }
.mp-lp-progress-track { flex:1; background:#e5e7eb; border-radius:4px; height:6px; overflow:hidden; }
.mp-lp-progress-bar { height:100%; border-radius:4px; transition:width .4s; }
.mp-lp-progress-pct { font-size:.78rem; font-weight:700; color:var(--mp-muted); flex-shrink:0; }
.mp-lp-items-count { font-size:.75rem; }
.mp-lp-continue-btn { margin-top:auto; text-align:center; justify-content:center; }

/* Catalogue card extras */
.mp-lp-catalogue-card .mp-lp-course-body { gap:6px; }
.mp-lp-course-excerpt { font-size:.8rem; line-height:1.5; margin:0; }
.mp-lp-price { font-size:.9rem; font-weight:700; color:var(--mp-primary); }

/* Certificates */
.mp-lp-certs-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }
.mp-lp-cert-card { background:var(--mp-card); border:1px solid #fde68a; border-radius:var(--mp-radius); padding:20px; display:flex; gap:16px; align-items:flex-start; position:relative; overflow:hidden; }
.mp-lp-cert-icon { font-size:2rem; flex-shrink:0; }
.mp-lp-cert-body { display:flex; flex-direction:column; gap:6px; flex:1; }
.mp-lp-cert-title { font-weight:700; font-size:.95rem; }
.mp-lp-cert-date { font-size:.8rem; }
.mp-lp-cert-ribbon { position:absolute; top:0; right:0; width:0; height:0; border-top:40px solid #fde68a; border-left:40px solid transparent; }

/* Empty state */
.mp-lp-empty-state { text-align:center; padding:48px 24px; background:var(--mp-card); border:1px solid var(--mp-border); border-radius:var(--mp-radius); }
.mp-lp-empty-icon { font-size:3rem; margin-bottom:12px; }
.mp-lp-empty-state h3 { margin:0 0 8px; }

/* Dashboard LP panel */
.mp-lp-dash-panel { background:var(--mp-card); border:1px solid #e0d7f8; border-radius:var(--mp-radius); padding:20px; margin-bottom:20px; }
.mp-lp-dash-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.mp-lp-dash-header h3 { margin:0; font-size:1rem; }
.mp-lp-dash-stats { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:16px; padding-bottom:14px; border-bottom:1px solid var(--mp-border); }
.mp-lp-dash-stat { text-align:center; flex:1; min-width:60px; }
.mp-lp-dash-stat span { display:block; font-size:1.4rem; font-weight:700; color:#7e22ce; }
.mp-lp-dash-stat small { font-size:.75rem; color:var(--mp-muted); }
.mp-lp-dash-courses { display:flex; flex-direction:column; gap:10px; }
.mp-lp-dash-course-row { display:flex; align-items:center; gap:10px; }
.mp-lp-dash-thumb { width:40px; height:40px; border-radius:4px; object-fit:cover; flex-shrink:0; }
.mp-lp-dash-course-info { flex:1; min-width:0; }
.mp-lp-dash-course-title { font-size:.85rem; font-weight:600; text-decoration:none; color:var(--mp-text); display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mp-lp-dash-course-title:hover { color:var(--mp-primary); }
.mp-lp-dash-course-progress { display:flex; align-items:center; gap:6px; margin-top:4px; }
