/* Umoja Portal v2 — elegant marketplace shell */
:root {
    --v2-primary: #d6249f;
    --v2-primary-dark: #9b1d76;
    --v2-accent: #7b2ff7;
    --v2-gradient: linear-gradient(135deg, #d6249f 0%, #7b2ff7 55%, #5b21b6 100%);
    --v2-ink: #0f0d14;
    --v2-muted: #6b6578;
    --v2-border: #e8e2ef;
    --v2-bg: #f4f1f8;
    --v2-surface: #ffffff;
    --v2-radius: 1.125rem;
    --v2-shadow: 0 8px 30px rgba(15, 13, 20, 0.06);
    --v2-shadow-lg: 0 20px 50px rgba(214, 36, 159, 0.12);
    --v2-header-h: 72px;
}

* { font-family: 'Inter', system-ui, sans-serif; }

body.v2-body {
    background: var(--v2-bg);
    color: var(--v2-ink);
    min-height: 100vh;
}

/* Header */
.v2-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--v2-border);
    box-shadow: 0 1px 0 rgba(15, 13, 20, 0.04);
}
.v2-header-inner {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: var(--v2-header-h);
    padding: 0.65rem 0;
}
.v2-brand {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    text-decoration: none;
    color: var(--v2-ink);
    font-weight: 800;
    font-size: 1.05rem;
    letter-spacing: -0.03em;
    flex-shrink: 0;
}
.v2-brand img {
    height: 40px;
    width: auto;
    border-radius: 0.5rem;
}
.v2-brand-text { line-height: 1.2; min-width: 0; }
.v2-brand-name { font-weight: 800; letter-spacing: -0.03em; }
.v2-brand-tagline {
    margin-top: 0.1rem;
    font-size: 0.68rem;
    font-weight: 500;
    letter-spacing: 0;
    color: var(--v2-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 14rem;
}
.v2-hero-tagline {
    opacity: 0.92;
    font-size: clamp(1.05rem, 2vw, 1.35rem);
    font-weight: 500;
    letter-spacing: -0.01em;
    max-width: 36rem;
}
.v2-brand-badge {
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    background: var(--v2-gradient);
    color: #fff;
    padding: 0.2rem 0.45rem;
    border-radius: 2rem;
    vertical-align: middle;
}

.v2-search {
    flex: 1;
    max-width: 520px;
    margin: 0 auto;
    display: flex;
    background: var(--v2-bg);
    border: 1px solid var(--v2-border);
    border-radius: 2rem;
    overflow: hidden;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.v2-search:focus-within {
    border-color: rgba(214, 36, 159, 0.45);
    box-shadow: 0 0 0 4px rgba(214, 36, 159, 0.1);
}
.v2-search input {
    border: 0;
    background: transparent;
    padding: 0.55rem 1rem;
    flex: 1;
    font-size: 0.92rem;
}
.v2-search input:focus { outline: none; box-shadow: none; }
.v2-search button {
    border: 0;
    background: var(--v2-gradient);
    color: #fff;
    padding: 0 1.15rem;
    font-weight: 600;
}

.v2-nav-pills {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
    padding: 0.85rem 0 0.85rem;
    border-bottom: 1px solid var(--v2-border);
    margin-bottom: 0;
}
.v2-nav-pills a {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--v2-muted);
    padding: 0.55rem 0.85rem 0.35rem;
    border-radius: 2rem;
    border: 1px solid transparent;
    transition: all 0.15s;
}
.v2-nav-pills a:hover {
    color: var(--v2-primary);
    background: #fdeef8;
    border-color: rgba(214, 36, 159, 0.15);
}
.v2-nav-pills a.active {
    color: #fff;
    background: var(--v2-gradient);
    border-color: transparent;
}

.v2-user-btn {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    border: 1px solid var(--v2-border);
    background: var(--v2-surface);
    border-radius: 2rem;
    padding: 0.35rem 0.85rem 0.35rem 0.35rem;
    font-weight: 600;
    font-size: 0.88rem;
    color: var(--v2-ink);
}
.v2-user-avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--v2-gradient);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 700;
}
.v2-btn-post {
    background: var(--v2-gradient);
    border: 0;
    color: #fff;
    font-weight: 600;
    border-radius: 2rem;
    padding: 0.5rem 1.15rem;
    box-shadow: 0 4px 16px rgba(214, 36, 159, 0.3);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    transition: transform 0.15s, filter 0.15s;
}
.v2-btn-post:hover { color: #fff; filter: brightness(0.95); transform: translateY(-1px); }

/* Main */
.v2-main { flex: 1; }
.v2-alerts { padding-top: 1rem; }

/* Account shell */
.account-hero-banner-wrap {
    padding-top: 1.5rem;
}
.account-hero-banner-wrap + .v2-account-wrap {
    padding-top: 1.25rem;
}
.v2-account-wrap {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 1.75rem;
    padding: 2rem 0 3rem;
    align-items: start;
}
@media (max-width: 991.98px) {
    .v2-account-wrap { grid-template-columns: 1fr; }
}

.v2-side-nav {
    position: sticky;
    top: calc(var(--v2-header-h) + 1rem);
    background: var(--v2-surface);
    border: 1px solid var(--v2-border);
    border-radius: var(--v2-radius);
    box-shadow: var(--v2-shadow);
    overflow: hidden;
}
.v2-side-nav-header {
    padding: 1.25rem 1.25rem 0.75rem;
    border-bottom: 1px solid var(--v2-border);
    background: linear-gradient(180deg, #fdf8fc 0%, #fff 100%);
}
.v2-side-nav-header .user-name {
    font-weight: 700;
    font-size: 0.95rem;
    margin-bottom: 0.15rem;
}
.v2-side-nav-header .user-email {
    font-size: 0.78rem;
    color: var(--v2-muted);
}
.v2-side-nav a {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.75rem 1.25rem;
    color: #4a4558;
    text-decoration: none;
    font-weight: 500;
    font-size: 0.9rem;
    border-left: 3px solid transparent;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.v2-side-nav a i { width: 1.15rem; text-align: center; opacity: 0.85; }
.v2-side-nav a:hover {
    background: #fdf5fa;
    color: var(--v2-primary-dark);
}
.v2-side-nav a.active {
    background: linear-gradient(90deg, #fdeef8, #fff);
    color: var(--v2-primary-dark);
    border-left-color: var(--v2-primary);
    font-weight: 600;
}
.v2-side-nav .nav-divider {
    height: 1px;
    background: var(--v2-border);
    margin: 0.35rem 0;
}

.v2-content-panel {
    background: var(--v2-surface);
    border: 1px solid var(--v2-border);
    border-radius: var(--v2-radius);
    box-shadow: var(--v2-shadow);
    padding: 1.5rem 1.75rem;
}
.v2-page-title {
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    margin-bottom: 1.25rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.v2-page-title::before {
    content: '';
    width: 4px;
    height: 1.1em;
    background: var(--v2-gradient);
    border-radius: 2px;
}

/* Marketplace content (reuse + enhance v1 cards) */
.v2-hero {
    background: var(--v2-gradient);
    color: #fff;
    border-radius: 0 0 2rem 2rem;
    padding: 3rem 0 3.5rem;
    margin-bottom: 2rem;
    position: relative;
    overflow: hidden;
}
.v2-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 90% 10%, rgba(255,255,255,0.18), transparent 45%);
    pointer-events: none;
}
.v2-hero .container { position: relative; z-index: 1; }
.v2-hero h1 {
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.15;
}
.v2-stat-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1.5rem;
}
.v2-stat-chip {
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 2rem;
    padding: 0.4rem 1rem;
    font-size: 0.85rem;
    font-weight: 500;
}

.v2-hero-actions {
    background: rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 1.25rem;
    padding: 1.35rem 1.4rem;
    box-shadow: 0 16px 40px rgba(15, 13, 20, 0.12);
}
.v2-hero-actions-label {
    font-size: 0.92rem;
    font-weight: 600;
    opacity: 0.95;
    margin: 0;
}
.v2-hero-quick-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
}
.v2-hero-quick-links a {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    padding: 0.45rem 0.55rem;
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.08);
}
.v2-hero-quick-links a:hover {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}
.v2-hero-actions-foot {
    margin-top: 1rem;
    font-size: 0.82rem;
    opacity: 0.9;
}
.v2-hero-actions-foot a {
    color: #fff;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.v2-stat-card {
    border: 1px solid var(--v2-border);
    border-radius: var(--v2-radius);
    background: var(--v2-surface);
    padding: 1.15rem 1.25rem;
    height: 100%;
    transition: transform 0.2s, box-shadow 0.2s;
}
.v2-stat-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--v2-shadow-lg);
}
.v2-stat-card .icon {
    width: 42px;
    height: 42px;
    border-radius: 0.75rem;
    background: #fdeef8;
    color: var(--v2-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    margin-bottom: 0.75rem;
}
.v2-stat-card .value { font-size: 1.6rem; font-weight: 800; line-height: 1; }
.v2-stat-card .label { font-size: 0.8rem; color: var(--v2-muted); margin-top: 0.25rem; }

/* Forms */
.v2-form .form-label {
    font-weight: 600;
    font-size: 0.86rem;
    color: var(--v2-ink);
}
.v2-form .form-control,
.v2-form .form-select {
    border-radius: 0.7rem;
    border-color: var(--v2-border);
    padding: 0.6rem 0.9rem;
}
.v2-form .form-control:focus,
.v2-form .form-select:focus {
    border-color: var(--v2-primary);
    box-shadow: 0 0 0 0.2rem rgba(214, 36, 159, 0.12);
}

/* Footer */
.site-footer {
    margin-top: auto;
    color: #a8a3b5;
}
.v2-footer {
    background: var(--v2-ink);
    padding: 0 0 2rem;
}
.portal-footer.site-footer {
    background: var(--umoja-ink);
    padding: 0 0 2rem;
}
.site-footer a { color: #d4cfe0; text-decoration: none; }
.site-footer a:hover { color: #fff; }
.site-footer-body { padding-top: 2.5rem; }
.site-footer-heading {
    color: #fff;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    margin-bottom: 1rem;
}
.site-footer-logo {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 0.85rem;
}
.site-footer-logo img {
    height: 40px;
    width: auto;
    background: #fff;
    border-radius: 0.45rem;
    padding: 0.15rem 0.35rem;
}
.site-footer-tagline { line-height: 1.55; max-width: 22rem; }
.site-footer-links li + li { margin-top: 0.55rem; }
.site-footer-contact { margin-top: 0.85rem !important; opacity: 0.9; }
.site-footer-social {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.site-footer-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #fff !important;
    font-size: 1rem;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.site-footer-social-link:hover {
    background: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.28);
    transform: translateY(-2px);
    color: #fff !important;
}
.site-footer-bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-top: 2.5rem;
    padding-top: 1.35rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.site-footer-copy { color: rgba(255, 255, 255, 0.55); }
.site-footer-payments {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.65rem;
}
.site-footer-payments-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: rgba(255, 255, 255, 0.45);
    font-weight: 600;
}
.site-footer-payment-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.site-footer-payment-icon {
    display: block;
    height: 1.75rem;
    width: auto;
    border-radius: 0.3rem;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}
.site-footer-legal {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: rgba(255, 255, 255, 0.45);
}
.site-footer-legal a { color: rgba(255, 255, 255, 0.65); }
.site-footer-legal a:hover { color: #fff; }

/* Newsletter — hero band at top of footer */
.footer-newsletter--hero {
    background: linear-gradient(135deg, rgba(214, 36, 159, 0.22) 0%, rgba(99, 91, 255, 0.18) 55%, rgba(255, 255, 255, 0.04) 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    padding: 1.75rem 0;
}
.footer-newsletter-hero-inner {
    display: grid;
    grid-template-columns: auto 1fr minmax(240px, 380px);
    align-items: center;
    gap: 1rem 1.5rem;
}
.footer-newsletter-hero-icon {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    font-size: 1.35rem;
    flex-shrink: 0;
}
.footer-newsletter-bar {
    margin-top: 0.5rem;
    padding: 1rem 1.15rem;
    border-radius: var(--v2-radius, 0.75rem);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
}
.footer-newsletter-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.footer-newsletter-copy { flex: 1 1 200px; min-width: 0; }
.footer-newsletter-form { flex: 1 1 280px; max-width: 420px; }
.footer-newsletter--hero .footer-newsletter-form { max-width: none; width: 100%; }
.footer-newsletter-title {
    color: #fff;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}
.footer-newsletter--hero .footer-newsletter-title {
    font-size: 1rem;
    text-transform: none;
    letter-spacing: 0;
}
.footer-newsletter-text {
    font-size: 0.8rem;
    line-height: 1.45;
    color: #a8a3b5;
}
.footer-newsletter--hero .footer-newsletter-text { font-size: 0.9rem; color: rgba(255, 255, 255, 0.72); }
.footer-newsletter-row { display: flex; gap: 0.5rem; }
.footer-newsletter-input {
    flex: 1 1 auto;
    min-width: 0;
    border-radius: 999px !important;
    border-color: rgba(255, 255, 255, 0.15) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: #fff !important;
}
.footer-newsletter-input::placeholder { color: rgba(255, 255, 255, 0.45); }
.footer-newsletter-btn {
    border-radius: 999px !important;
    white-space: nowrap;
    font-weight: 600;
    flex-shrink: 0;
    padding-left: 0.85rem;
    padding-right: 0.85rem;
}
@media (max-width: 767.98px) {
    .footer-newsletter-hero-inner {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .footer-newsletter-hero-icon { margin: 0 auto; }
    .footer-newsletter--hero .footer-newsletter-form { margin: 0 auto; max-width: 420px; }
    .site-footer-bottom { flex-direction: column; text-align: center; }
    .site-footer-payments { justify-content: center; }
    .site-footer-legal { justify-content: center; }
}
@media (max-width: 575.98px) {
    .footer-newsletter-inner:not(.footer-newsletter-hero-inner) { flex-direction: column; align-items: stretch; }
    .footer-newsletter-form { max-width: none; }
}

/* Bootstrap overrides */
.v2-body .btn-primary {
    background: var(--v2-gradient);
    border: 0;
    font-weight: 600;
    border-radius: 2rem;
    padding: 0.5rem 1.25rem;
}
.v2-body .btn-primary:hover { filter: brightness(0.94); background: var(--v2-gradient); }
.v2-body .btn-outline-primary {
    --bs-btn-color: var(--v2-primary);
    --bs-btn-border-color: var(--v2-primary);
    --bs-btn-hover-bg: var(--v2-primary);
    border-radius: 2rem;
}
.v2-body .text-primary { color: var(--v2-primary) !important; }

/* Mobile bottom nav (account) */
.v2-mobile-nav {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1020;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    border-top: 1px solid var(--v2-border);
    padding: 0.4rem 0 calc(0.4rem + env(safe-area-inset-bottom));
}
.v2-mobile-nav a {
    flex: 1;
    text-align: center;
    text-decoration: none;
    color: var(--v2-muted);
    font-size: 0.68rem;
    font-weight: 600;
    padding: 0.35rem;
}
.v2-mobile-nav a i { display: block; font-size: 1.25rem; margin-bottom: 0.15rem; }
.v2-mobile-nav a.active { color: var(--v2-primary); }
@media (max-width: 991.98px) {
    .v2-mobile-nav { display: flex; }
    body.v2-body.v2-has-mobile-nav { padding-bottom: 4.5rem; }
    .v2-side-nav.d-desktop-only { display: none; }
}

/* Page loader (inherits from portal.css, v2 tint) */
.v2-body .page-loader { background: var(--v2-bg); }

/* ── V2 account content (distinct from classic account-*) ── */
.v2-account-main { min-width: 0; }

.v2-referral-share {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    align-items: center;
}
.v2-referral-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 120px;
    padding: 1rem 1.25rem;
    border-radius: var(--v2-radius);
    background: linear-gradient(135deg, #fdf8fc, #f3ecfa);
    border: 1px solid var(--v2-border);
}
.v2-referral-stat-num {
    font-size: 1.75rem;
    font-weight: 800;
    line-height: 1;
    color: var(--v2-primary, #d6249f);
}
.v2-referral-stat-label {
    font-size: 0.78rem;
    color: var(--v2-muted);
    margin-top: 0.35rem;
    text-align: center;
}
.v2-referral-fields {
    flex: 1;
    min-width: 240px;
    display: grid;
    gap: 0.85rem;
}
@media (min-width: 768px) {
    .v2-referral-fields { grid-template-columns: 1fr 1.4fr; }
}

.v2-acct-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.v2-acct-subtitle {
    margin: 0.35rem 0 0;
    font-size: 0.9rem;
    color: var(--v2-muted);
}

.v2-dash-welcome {
    background: var(--v2-gradient);
    color: #fff;
    border-radius: var(--v2-radius);
    padding: 1.5rem 1.75rem;
    margin-bottom: 1.25rem;
    display: flex;
    align-items: center;
    gap: 1.25rem;
    position: relative;
    overflow: hidden;
}
.v2-dash-welcome::after {
    content: '';
    position: absolute;
    right: -2rem;
    top: -2rem;
    width: 8rem;
    height: 8rem;
    background: rgba(255,255,255,0.12);
    border-radius: 50%;
}
.v2-dash-welcome .avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 3px solid rgba(255,255,255,0.35);
    object-fit: cover;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}
.v2-dash-welcome .welcome-text { position: relative; z-index: 1; flex: 1; min-width: 0; }
.v2-dash-welcome h2 {
    font-size: 1.35rem;
    font-weight: 800;
    margin: 0 0 0.35rem;
    letter-spacing: -0.02em;
}
.v2-dash-welcome .membership-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: rgba(255,255,255,0.18);
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: 2rem;
    padding: 0.25rem 0.75rem;
    font-size: 0.78rem;
    font-weight: 600;
}
.v2-dash-welcome .membership-pill a { color: #fff; opacity: 0.9; }

.v2-bento-stats {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}
.v2-bento-stats .v2-stat-card { margin: 0; }
.v2-bento-stats .span-2 { grid-column: span 2; }
@media (max-width: 767.98px) {
    .v2-bento-stats { grid-template-columns: repeat(2, 1fr); }
    .v2-bento-stats .span-2 { grid-column: span 1; }
}

.v2-panel {
    background: var(--v2-surface);
    border: 1px solid var(--v2-border);
    border-radius: var(--v2-radius);
    box-shadow: var(--v2-shadow);
    overflow: hidden;
    margin-bottom: 1rem;
}
.v2-panel-head {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--v2-border);
    font-weight: 700;
    font-size: 0.92rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: linear-gradient(180deg, #fdf8fc 0%, #fff 100%);
}
.v2-panel-body { padding: 0; }
.v2-panel-body.padded { padding: 1.25rem; }

.v2-feed-item {
    display: flex;
    gap: 0.85rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--v2-border);
    align-items: flex-start;
}
.v2-feed-item:last-child { border-bottom: 0; }
.v2-feed-icon {
    width: 38px;
    height: 38px;
    border-radius: 0.65rem;
    background: #fdeef8;
    color: var(--v2-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1rem;
}
.v2-feed-body { flex: 1; min-width: 0; }
.v2-feed-body strong { font-size: 0.88rem; display: block; }
.v2-feed-body p { margin: 0.2rem 0 0; font-size: 0.82rem; color: var(--v2-muted); }
.v2-feed-time { font-size: 0.75rem; color: var(--v2-muted); white-space: nowrap; }

.v2-quick-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1.25rem;
}

.v2-listing-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--v2-border);
}
.v2-listing-row:last-child { border-bottom: 0; }
.v2-listing-row .listing-main { flex: 1; min-width: 180px; }
.v2-listing-row .listing-title {
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--v2-ink);
    text-decoration: none;
}
.v2-listing-row .listing-title:hover { color: var(--v2-primary); }
.v2-listing-row .listing-meta { font-size: 0.78rem; color: var(--v2-muted); margin-top: 0.15rem; }
.v2-listing-row .listing-stats {
    display: flex;
    gap: 1rem;
    font-size: 0.8rem;
    color: var(--v2-muted);
}
.v2-listing-row .listing-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    justify-content: flex-end;
}
.v2-listing-row .listing-actions .btn { border-radius: 2rem; padding: 0.25rem 0.65rem; font-size: 0.78rem; }

.v2-empty {
    text-align: center;
    padding: 2.5rem 1.5rem;
    color: var(--v2-muted);
}
.v2-empty i { font-size: 2.5rem; opacity: 0.35; display: block; margin-bottom: 0.75rem; }

.v2-type-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 0.75rem;
}
.v2-type-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.35rem 0.75rem;
    background: var(--v2-surface);
    border: 1px solid var(--v2-border);
    border-radius: var(--v2-radius);
    text-decoration: none;
    color: var(--v2-ink);
    transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s;
}
.v2-type-tile:hover {
    transform: translateY(-3px);
    box-shadow: var(--v2-shadow-lg);
    border-color: var(--v2-primary);
    color: var(--v2-primary-dark);
}
.v2-type-tile .tile-icon {
    width: 48px;
    height: 48px;
    border-radius: 0.85rem;
    background: #fdeef8;
    color: var(--v2-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    margin-bottom: 0.65rem;
}
.v2-type-tile .tile-label { font-weight: 700; font-size: 0.88rem; }

.v2-form-sheet {
    background: var(--v2-surface);
    border: 1px solid var(--v2-border);
    border-radius: var(--v2-radius);
    box-shadow: var(--v2-shadow);
    overflow: hidden;
}
.v2-form-section {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--v2-border);
}
.v2-form-section:last-child { border-bottom: 0; }
.v2-form-section-title {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--v2-muted);
    margin-bottom: 1rem;
}
.v2-form-sheet .form-label {
    font-weight: 600;
    font-size: 0.86rem;
}
.v2-form-sheet .form-control,
.v2-form-sheet .form-select {
    border-radius: 0.7rem;
    border-color: var(--v2-border);
}
.v2-form-sheet .form-control:focus,
.v2-form-sheet .form-select:focus {
    border-color: var(--v2-primary);
    box-shadow: 0 0 0 0.2rem rgba(214, 36, 159, 0.12);
}
.v2-form-footer {
    padding: 1rem 1.5rem;
    background: #faf8fb;
    border-top: 1px solid var(--v2-border);
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

/* Membership */
.v2-membership-hero {
    background: var(--v2-gradient);
    color: #fff;
    border-radius: var(--v2-radius);
    padding: 1.75rem 1.5rem;
    margin-bottom: 1.5rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    position: relative;
    overflow: hidden;
}
.v2-membership-hero::after {
    content: '';
    position: absolute;
    right: -3rem;
    bottom: -3rem;
    width: 10rem;
    height: 10rem;
    background: rgba(255,255,255,0.1);
    border-radius: 50%;
}
.v2-membership-hero-content { position: relative; z-index: 1; max-width: 520px; }
.v2-membership-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: rgba(255,255,255,0.18);
    border-radius: 2rem;
    padding: 0.25rem 0.75rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.65rem;
}
.v2-membership-hero h1 {
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-bottom: 0.5rem;
}
.v2-membership-hero p { font-size: 0.9rem; opacity: 0.92; }
.v2-membership-current {
    position: relative;
    z-index: 1;
    background: rgba(255,255,255,0.15);
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: 0.85rem;
    padding: 0.85rem 1.15rem;
    text-align: center;
}
.v2-membership-current small { display: block; font-size: 0.72rem; opacity: 0.85; text-transform: uppercase; letter-spacing: 0.06em; }
.v2-membership-current strong { font-size: 1.1rem; }

.v2-plan-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1rem;
}
.v2-plan-card {
    position: relative;
    background: var(--v2-surface);
    border: 1px solid var(--v2-border);
    border-radius: var(--v2-radius);
    padding: 1.5rem 1.35rem 1.35rem;
    display: flex;
    flex-direction: column;
    height: 100%;
    transition: transform 0.15s, box-shadow 0.15s;
    overflow: hidden;
}
.v2-plan-card:hover { transform: translateY(-3px); box-shadow: var(--v2-shadow-lg); }
.v2-plan-card.popular {
    border: 2px solid transparent;
    background: linear-gradient(#fff, #fff) padding-box, var(--v2-gradient) border-box;
}
.v2-plan-card.current {
    border-color: #22a06b;
    box-shadow: 0 0 0 1px #22a06b33;
}
.v2-plan-ribbon {
    position: absolute;
    top: 12px;
    right: -28px;
    background: #22a06b;
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.25rem 2rem;
    transform: rotate(35deg);
}
.v2-plan-ribbon.accent { background: var(--v2-primary); }
.v2-plan-card .plan-name { font-weight: 800; font-size: 1.15rem; margin-bottom: 0.35rem; padding-right: 1rem; }
.v2-plan-card .plan-price {
    font-size: 2rem;
    font-weight: 800;
    color: var(--v2-primary);
    line-height: 1.1;
    margin-bottom: 0.5rem;
}
.v2-plan-card .plan-price small { font-size: 0.78rem; font-weight: 500; color: var(--v2-muted); }
.v2-plan-card .plan-desc { font-size: 0.82rem; color: var(--v2-muted); margin-bottom: 0.75rem; }
.v2-plan-card .plan-features {
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem;
    font-size: 0.84rem;
    flex: 1;
}
.v2-plan-card .plan-features li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.35rem 0;
}
.v2-plan-card .plan-features li i { color: #22a06b; margin-top: 0.1rem; flex-shrink: 0; }
.v2-plan-card .plan-form { margin-top: auto; display: flex; flex-direction: column; gap: 0.5rem; }
.v2-plan-card .plan-savings-badge {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    background: #e8f7ef;
    color: #1a7f4b;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.25rem 0.65rem;
    border-radius: 2rem;
    margin-bottom: 0.5rem;
}

.v2-billing-toggle {
    display: inline-flex;
    background: var(--v2-surface);
    border: 1px solid var(--v2-border);
    border-radius: 2rem;
    padding: 0.25rem;
    gap: 0.15rem;
    box-shadow: var(--v2-shadow);
}
.v2-billing-toggle .billing-toggle-btn {
    border: 0;
    background: transparent;
    color: var(--v2-muted);
    font-weight: 600;
    font-size: 0.88rem;
    padding: 0.5rem 1.1rem;
    border-radius: 2rem;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    transition: background 0.15s, color 0.15s;
}
.v2-billing-toggle .billing-toggle-btn.active {
    background: var(--v2-gradient);
    color: #fff;
}
.v2-billing-toggle .billing-toggle-btn.active .billing-save-pill {
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
}
.billing-save-pill {
    background: #e8f7ef;
    color: #1a7f4b;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 0.15rem 0.45rem;
    border-radius: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

/* Profile */
.v2-profile-hero {
    background: var(--v2-surface);
    border: 1px solid var(--v2-border);
    border-radius: var(--v2-radius);
    box-shadow: var(--v2-shadow);
    padding: 1.5rem;
    margin-bottom: 1.25rem;
}
.v2-profile-hero-inner {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}
.v2-profile-hero-avatar img {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #fdeef8;
    box-shadow: 0 4px 16px rgba(214, 36, 159, 0.15);
}
.v2-profile-hero-name {
    font-size: 1.4rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 0 0 0.25rem;
}
.v2-profile-hero-email { font-size: 0.88rem; color: var(--v2-muted); }

.v2-profile-sections { display: flex; flex-direction: column; gap: 1rem; }
.v2-profile-block {
    background: var(--v2-surface);
    border: 1px solid var(--v2-border);
    border-radius: var(--v2-radius);
    box-shadow: var(--v2-shadow);
    overflow: hidden;
}
.v2-profile-block-head {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.15rem 1.35rem;
    border-bottom: 1px solid var(--v2-border);
    background: linear-gradient(180deg, #fdf8fc 0%, #fff 100%);
}
.v2-profile-block-icon {
    width: 42px;
    height: 42px;
    border-radius: 0.75rem;
    background: #fdeef8;
    color: var(--v2-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    flex-shrink: 0;
}
.v2-profile-block-icon.security { background: #eef6ff; color: #2563eb; }
.v2-profile-block-head h2 {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 0.15rem;
}
.v2-profile-block-head p {
    margin: 0;
    font-size: 0.82rem;
    color: var(--v2-muted);
}
.v2-profile-form { padding: 1.35rem; }
.v2-profile-form .form-label { font-weight: 600; font-size: 0.86rem; }
.v2-profile-form .form-control {
    border-radius: 0.7rem;
    border-color: var(--v2-border);
}
.v2-profile-form .form-control:focus {
    border-color: var(--v2-primary);
    box-shadow: 0 0 0 0.2rem rgba(214, 36, 159, 0.12);
}
.v2-profile-upload-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}
.v2-profile-upload-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: #fdf5fa;
    border: 1px dashed var(--v2-primary);
    color: var(--v2-primary-dark);
    border-radius: 2rem;
    padding: 0.45rem 1rem;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    margin: 0;
}
.v2-profile-upload-btn:hover { background: #fdeef8; }
.v2-pin-row {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 1rem;
    align-items: end;
}
@media (max-width: 767.98px) {
    .v2-pin-row { grid-template-columns: 1fr; }
    .v2-profile-hero-inner { flex-direction: column; text-align: center; }
}
.v2-pin-input { max-width: 100%; letter-spacing: 0.15em; font-weight: 600; }
.v2-pin-switch { padding-bottom: 0.35rem; }

.v2-txn-list { display: flex; flex-direction: column; gap: 0.65rem; }
.v2-txn-card {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.25rem;
    padding: 1rem 1.25rem;
    background: var(--v2-surface);
    border: 1px solid var(--v2-border);
    border-radius: var(--v2-radius);
}
.v2-txn-card .txn-ref { font-size: 0.75rem; color: var(--v2-muted); font-family: monospace; }
.v2-txn-card .txn-purpose { font-weight: 700; font-size: 0.92rem; }
.v2-txn-card .txn-amount { font-weight: 800; font-size: 1.05rem; margin-left: auto; }
.v2-txn-card .txn-meta { font-size: 0.78rem; color: var(--v2-muted); width: 100%; }

.v2-toggle-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--v2-border);
}
.v2-toggle-card:last-child { border-bottom: 0; }
.v2-toggle-card label { font-weight: 600; font-size: 0.88rem; margin: 0; }
.v2-toggle-card .hint { font-size: 0.78rem; color: var(--v2-muted); margin-top: 0.15rem; }

.v2-profile-grid {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 1.25rem;
    align-items: start;
}
@media (max-width: 767.98px) {
    .v2-profile-grid { grid-template-columns: 1fr; }
}
.v2-avatar-upload {
    text-align: center;
    padding: 1.25rem;
    background: var(--v2-surface);
    border: 1px dashed var(--v2-border);
    border-radius: var(--v2-radius);
}
.v2-avatar-upload img {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #fdeef8;
    margin-bottom: 0.75rem;
}

.v2-lead-card {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--v2-border);
}
.v2-lead-card:last-child { border-bottom: 0; }
.v2-lead-card .lead-name { font-weight: 700; font-size: 0.92rem; }
.v2-lead-card .lead-contact { font-size: 0.8rem; color: var(--v2-muted); }
.v2-lead-card .lead-msg { font-size: 0.85rem; margin-top: 0.5rem; padding: 0.65rem 0.85rem; background: #faf8fb; border-radius: 0.5rem; }

.v2-checkout-wrap {
    max-width: 420px;
    margin: 2rem auto;
}
.v2-checkout-card {
    background: var(--v2-surface);
    border: 1px solid var(--v2-border);
    border-radius: var(--v2-radius);
    box-shadow: var(--v2-shadow-lg);
    padding: 2rem 1.75rem;
    text-align: center;
}
.v2-checkout-card .checkout-amount {
    font-size: 2.25rem;
    font-weight: 800;
    background: var(--v2-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0.75rem 0 1.25rem;
}
.v2-checkout-meta {
    text-align: left;
    font-size: 0.85rem;
    margin-bottom: 1.25rem;
}
.v2-checkout-meta dt { color: var(--v2-muted); font-weight: 500; }
.v2-checkout-meta dd { margin-bottom: 0.5rem; }

.v2-account-main .fav-page-title {
    font-size: 1.75rem;
}
.v2-account-main .fav-list-panel {
    border-radius: var(--v2-radius);
    box-shadow: var(--v2-shadow);
    border-color: var(--v2-border);
}
.v2-account-main .fav-item:hover {
    background: #fdf8fc;
}
.v2-account-main .fav-empty {
    border-radius: var(--v2-radius);
    box-shadow: var(--v2-shadow);
    border-color: var(--v2-border);
}

.v2-hint {
    font-size: 0.8rem;
    color: var(--v2-muted);
    margin-top: 1rem;
}
.v2-hint i { margin-right: 0.25rem; }

.v2-lock-screen { background: var(--v2-bg); }
.v2-lock-screen .pin-digit {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.65rem;
    border-color: var(--v2-border);
    font-size: 1.1rem;
}

/* Chat */
.v2-chat-list-panel { padding: 0; overflow: hidden; }
.v2-chat-list-item {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 1rem 1.15rem;
    text-decoration: none;
    color: var(--v2-ink);
    border-bottom: 1px solid var(--v2-border);
    transition: background 0.15s;
}
.v2-chat-list-item:last-child { border-bottom: 0; }
.v2-chat-list-item:hover { background: #faf7fc; color: var(--v2-ink); }
.v2-chat-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--v2-gradient);
    color: #fff;
    font-weight: 700;
    font-size: 0.95rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2-chat-list-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.v2-chat-list-body strong {
    font-size: 0.92rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.v2-chat-list-meta {
    font-size: 0.78rem;
    color: var(--v2-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.v2-chat-list-time {
    font-size: 0.72rem;
    color: var(--v2-muted);
    white-space: nowrap;
}
.v2-chat-list-chevron {
    color: var(--v2-border);
    font-size: 0.85rem;
}

.v2-chat-thread {
    display: flex;
    flex-direction: column;
    min-height: min(72vh, 640px);
    background: var(--v2-surface);
    border: 1px solid var(--v2-border);
    border-radius: var(--v2-radius);
    box-shadow: var(--v2-shadow);
    overflow: hidden;
}
.v2-chat-thread-head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.9rem 1.1rem;
    border-bottom: 1px solid var(--v2-border);
    background: #fff;
}
.v2-chat-back {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--v2-ink);
    text-decoration: none;
    background: var(--v2-bg);
    flex-shrink: 0;
}
.v2-chat-back:hover { background: #ede8f4; color: var(--v2-primary-dark); }
.v2-chat-thread-user {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}
.v2-chat-thread-user strong {
    display: block;
    font-size: 0.95rem;
}
.v2-chat-listing-link {
    display: block;
    font-size: 0.78rem;
    color: var(--v2-muted);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 280px;
}
.v2-chat-listing-link:hover { color: var(--v2-primary); }

.v2-chat-messages {
    flex: 1;
    overflow-y: auto;
    padding: 1.1rem;
    background: linear-gradient(180deg, #f8f5fb 0%, #f4f1f8 100%);
    min-height: 320px;
}
.v2-chat-row {
    display: flex;
    margin-bottom: 0.65rem;
}
.v2-chat-row.mine { justify-content: flex-end; }
.v2-chat-bubble {
    max-width: min(78%, 420px);
    padding: 0.65rem 0.85rem;
    border-radius: 1rem;
    box-shadow: 0 2px 8px rgba(15, 13, 20, 0.05);
}
.v2-chat-row.theirs .v2-chat-bubble {
    background: #fff;
    border: 1px solid var(--v2-border);
    border-bottom-left-radius: 0.25rem;
}
.v2-chat-row.mine .v2-chat-bubble {
    background: var(--v2-gradient);
    color: #fff;
    border-bottom-right-radius: 0.25rem;
}
.v2-chat-image {
    display: block;
    max-width: 100%;
    max-height: 220px;
    border-radius: 0.65rem;
    margin-bottom: 0.35rem;
}
.v2-chat-text {
    font-size: 0.9rem;
    line-height: 1.45;
    word-break: break-word;
}
.v2-chat-meta {
    font-size: 0.68rem;
    margin-top: 0.35rem;
    opacity: 0.75;
}
.v2-chat-row.mine .v2-chat-meta { text-align: right; }

.v2-chat-compose {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.85rem 1rem;
    border-top: 1px solid var(--v2-border);
    background: #fff;
}
.v2-chat-attach {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1px solid var(--v2-border);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--v2-muted);
    cursor: pointer;
    margin: 0;
    flex-shrink: 0;
}
.v2-chat-attach:hover { border-color: var(--v2-primary); color: var(--v2-primary); }
.v2-chat-input {
    flex: 1;
    min-width: 0;
    border: 1px solid var(--v2-border);
    border-radius: 2rem;
    padding: 0.55rem 1rem;
    font-size: 0.9rem;
    background: var(--v2-bg);
    outline: none;
}
.v2-chat-input:focus {
    border-color: var(--v2-primary);
    box-shadow: 0 0 0 3px rgba(214, 36, 159, 0.12);
}
.v2-chat-send {
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    background: var(--v2-gradient);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2-chat-send:hover { filter: brightness(1.05); }
.v2-chat-img-note {
    flex: 0 0 100%;
    font-size: 0.75rem;
    color: var(--v2-muted);
    padding-left: 3.25rem;
}

@media (max-width: 991.98px) {
    .v2-chat-thread { min-height: calc(100vh - 220px); border-radius: 0.85rem; }
    .v2-chat-list-chevron { display: none; }
}

.seller-profile-hero {
    background: linear-gradient(135deg, #fff 0%, #fdf4fa 100%);
    border-radius: 1rem;
}
.seller-profile-avatar {
    width: 96px;
    height: 96px;
    object-fit: cover;
    border: 3px solid #fff;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}
.seller-profile-avatar-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--v2-gradient);
    color: #fff;
    font-size: 2rem;
    font-weight: 800;
}
.seller-profile-stats .seller-stat-pill {
    min-width: 110px;
    padding: 0.65rem 0.85rem;
    border-radius: 0.85rem;
    background: #fff;
    border: 1px solid var(--v2-border);
    text-align: center;
}
.seller-stat-pill strong {
    display: block;
    font-size: 1.15rem;
    line-height: 1.2;
}
.seller-stat-pill span {
    display: block;
    font-size: 0.72rem;
    color: var(--v2-muted);
    margin-top: 0.15rem;
}

.analytics-chart-panel .v2-panel-body {
    min-height: 180px;
}
.analytics-listing-table th {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--v2-muted);
    border-bottom-width: 1px;
}
.analytics-listing-table td {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}
.analytics-top-list {
    border-bottom: 1px solid var(--v2-border);
}
.v2-activity-item {
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--v2-border);
    transition: background .15s ease;
}
.v2-activity-item:last-child { border-bottom: 0; }
.v2-activity-item:hover { background: rgba(214,36,159,.04); }
.v2-activity-item .v2-feed-icon { background: var(--v2-surface-2); }
.v2-activity-item.activity-favorite .v2-feed-icon { color: #e11d48; }
.v2-activity-item.activity-contact .v2-feed-icon { color: #d6249f; }
.v2-activity-item.activity-view .v2-feed-icon { color: #7b2ff7; }
.v2-activity-item.activity-message .v2-feed-icon { color: #2563eb; }
.v2-activity-item.activity-application .v2-feed-icon { color: #d97706; }
.v2-activity-item.activity-rsvp .v2-feed-icon { color: #059669; }
.v2-activity-item.activity-review .v2-feed-icon { color: #f59e0b; }

/* Listing promotion popup (browse + detail pages) */
.listing-popup-modal .modal-content {
    border-radius: 1rem;
}
.listing-popup-modal .modal-header {
    padding: 1.25rem 1.5rem 0;
}
.listing-popup-close {
    position: absolute;
    left: 1rem;
    top: 1rem;
    border: 0;
    background: transparent;
    color: #111827;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
}
.listing-popup-close:hover { background: #f3f4f6; }
.listing-popup-dialog {
    max-width: min(1140px, calc(100vw - 2rem));
}
.listing-popup-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
}
@media (max-width: 991.98px) {
    .listing-popup-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .listing-popup-grid { grid-template-columns: 1fr; }
}
.listing-popup-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid var(--v2-border, #e5e7eb);
    border-radius: .75rem;
    overflow: hidden;
    background: #fff;
}
.listing-popup-card-media {
    display: block;
    aspect-ratio: 4 / 3;
    background: #f9fafb;
    overflow: hidden;
}
.listing-popup-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.listing-popup-card-body {
    padding: .85rem .9rem 1rem;
    display: flex;
    flex-direction: column;
    gap: .35rem;
    flex: 1;
}
.listing-popup-card-title {
    font-size: .92rem;
    line-height: 1.35;
    margin: 0;
    font-weight: 600;
    color: #111827;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.listing-popup-card-price-row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .35rem;
}
.listing-popup-card-price {
    font-size: 1.15rem;
    font-weight: 700;
    color: #00b5cc;
}
.listing-popup-card-note {
    font-size: .78rem;
    color: #6b7280;
}
.listing-popup-card-tagline {
    margin: 0;
    font-size: .8rem;
    color: #374151;
}
.listing-popup-card-cta {
    margin-top: auto;
    display: block;
    text-align: center;
    text-decoration: none;
    background: #00b5cc;
    color: #fff !important;
    font-weight: 600;
    font-size: .88rem;
    padding: .55rem .75rem;
    border-radius: .45rem;
    transition: background .15s ease;
}
.listing-popup-card-cta:hover { background: #009aad; }

.listing-price-special-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .35rem;
}
.listing-price-original {
    text-decoration: line-through;
    color: #6b7280;
    font-size: .9em;
    font-weight: 500;
}
.listing-price-special,
.card-price.listing-price-special,
.browse-list-item-price .listing-price-special,
.fav-item-price.listing-price-special {
    color: #00b5cc;
    font-weight: 700;
}
.listing-price-note {
    font-size: .78rem;
    color: #6b7280;
}
.listing-detail-masked {
    letter-spacing: 0.04em;
    color: #6b7280;
    user-select: none;
}

/* Pagination */
.portal-pagination-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.25rem;
    margin-top: 2rem;
    padding: 1rem 1.15rem;
    border-radius: 1rem;
    background: #fff;
    border: 1px solid var(--v2-border, #e8e6ed);
    box-shadow: 0 8px 28px rgba(19, 17, 24, 0.05);
}
.portal-pagination-wrap--compact {
    margin-top: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    justify-content: flex-end;
}
.portal-pagination-meta {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--v2-muted);
    letter-spacing: 0.01em;
}
.portal-pagination { width: 100%; }
.portal-pagination-wrap:not(.portal-pagination-wrap--compact) .portal-pagination {
    width: auto;
    margin-left: auto;
}
.portal-pagination-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    list-style: none;
    margin: 0;
    padding: 0;
}
.portal-pagination-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.45rem;
    height: 2.45rem;
    padding: 0 0.7rem;
    border-radius: 0.7rem;
    border: 1px solid #e4e1ea;
    background: #fff;
    color: #4a4558;
    font-weight: 600;
    font-size: 0.875rem;
    line-height: 1;
    text-decoration: none;
    transition: border-color 0.18s ease, color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}
.portal-pagination-btn--nav {
    min-width: 2.45rem;
    padding: 0;
    font-size: 0.95rem;
}
.portal-pagination-btn--page { min-width: 2.45rem; }
.portal-pagination-btn:hover:not(.is-disabled):not(.is-active) {
    border-color: rgba(214, 36, 159, 0.35);
    color: #d6249f;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(214, 36, 159, 0.1);
}
.portal-pagination-btn.is-active {
    background: var(--v2-gradient);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 6px 18px rgba(214, 36, 159, 0.28);
    pointer-events: none;
}
.portal-pagination-btn.is-disabled {
    opacity: 0.38;
    cursor: default;
}
.portal-pagination-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.75rem;
    height: 2.45rem;
    color: #9a94a8;
    font-weight: 700;
    letter-spacing: 0.12em;
    user-select: none;
}
@media (max-width: 575.98px) {
    .portal-pagination-wrap {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }
    .portal-pagination-wrap:not(.portal-pagination-wrap--compact) .portal-pagination {
        width: 100%;
        margin-left: 0;
    }
    .portal-pagination-list { justify-content: center; }
    .portal-pagination-btn {
        min-width: 2.2rem;
        height: 2.2rem;
        padding: 0 0.55rem;
        border-radius: 0.6rem;
        font-size: 0.8125rem;
    }
}
