/*
 * Andy Theme CSS
 * ─────────────────────────────────────────────────────────────────────────────
 * Loaded AFTER theme-styles.blade.php so --bs-primary / --bs-link-color /
 * --theme-accent-color are already defined by the admin panel.
 *
 * Extra tokens (no admin-panel slot):
 *   --andy-cyan    — fixed accent for logo dots and info highlights
 *   --andy-fuchsia — mapped from --theme-accent-color (set to #d946ef in DB)
 * ─────────────────────────────────────────────────────────────────────────────
 */

/* ── Extra tokens ────────────────────────────────────────────────────────── */
:root {
    --andy-cyan:     #06b6d4;
    --andy-fuchsia:  var(--theme-accent-color, #d946ef);
    --andy-primary:  var(--bs-primary, #0044c8);
    --andy-bg:       #f8fafc;
    --andy-dark:     var(--bs-body-color, #1e293b);
    --andy-neutral:  var(--bs-secondary-color, #576574);
    --andy-card-radius: 1rem;
    --andy-transition: 0.18s ease;
}

/* ── Global base ─────────────────────────────────────────────────────────── */
body { background-color: var(--andy-bg); }
a { text-underline-offset: 2px; }

/* Global rounded corners */
.card          { border-radius: var(--andy-card-radius) !important; border-color: #e9ecef !important; }
.form-control,
.form-select   { border-radius: .6rem !important; }
.btn           { border-radius: .6rem !important; }
.badge         { font-weight: 600; }

/* Input group RTL-safe radius reset */
.input-group > .form-control:not(:last-child),
.input-group > .form-select:not(:last-child)  { border-start-end-radius: 0 !important; border-end-end-radius: 0 !important; }
.input-group > .btn:not(:first-child)          { border-start-start-radius: 0 !important; border-end-start-radius: 0 !important; }

/* ── Navbar / Header ─────────────────────────────────────────────────────── */
#mainNavbar {
    box-shadow: 0 1px 12px rgba(0,0,0,.07) !important;
    min-height: 64px;
}
#mainNavbar .navbar-brand img { max-height: 48px !important; }

#mainNavbar .navbar-nav .nav-link {
    font-weight: 600;
    font-size: .95rem;
    color: var(--andy-neutral) !important;
    transition: color var(--andy-transition);
    padding-inline: .75rem;
}
#mainNavbar .navbar-nav .nav-link:hover,
#mainNavbar .navbar-nav .nav-link.active {
    color: var(--andy-primary) !important;
}

/* "Publish" button in the nav — LaraClassifier renders type=button menu items as <a class="btn ..."> */
#mainNavbar .navbar-nav a.btn,
#mainNavbar .navbar-nav .nav-item a.btn {
    background: transparent !important;
    color: var(--andy-fuchsia) !important;
    border: 2px solid var(--andy-fuchsia) !important;
    font-weight: 700;
    padding: .3rem 1rem;
    border-radius: .6rem !important;
    transition: background var(--andy-transition), color var(--andy-transition);
}
#mainNavbar .navbar-nav a.btn:hover,
#mainNavbar .navbar-nav .nav-item a.btn:hover {
    background: var(--andy-fuchsia) !important;
    color: #fff !important;
}

/* Dropdown menus */
#mainNavbar .dropdown-menu {
    border-radius: .75rem !important;
    border-color: #e9ecef !important;
    box-shadow: 0 4px 16px rgba(0,0,0,.09) !important;
    padding: .4rem;
}
#mainNavbar .dropdown-item {
    border-radius: .5rem !important;
    font-size: .9rem;
    padding: .45rem .85rem;
}
#mainNavbar .dropdown-item:hover { background: rgba(0,68,200,.06); }

/* ── Hero / Search section ───────────────────────────────────────────────── */
/* Homepage hero — plain bgLight background (mockup: no gradient), generous
   vertical padding to match the mockup's py-16. The search card carries its
   own shadow, so no gradient or filter here. */
.is-sectioned-page .only-search-bar,
body.is-sectioned-page .prevent-header-overlap {
    background: transparent;
    padding-top: 4rem;
    padding-bottom: 4rem;
    margin-bottom: 0;
}

/* On all other pages the search bar has less vertical space */
body:not(.is-sectioned-page) .only-search-bar { padding: .25rem 0; }

/* ── Homepage sections ───────────────────────────────────────────────────── */
.main-container.sectionable .page-section {
    padding-top: 2rem;
    padding-bottom: 2rem;
}

/* Category cards / sections */
.cat-list .card {
    border-radius: var(--andy-card-radius) !important;
    transition: box-shadow var(--andy-transition), transform var(--andy-transition);
}
.cat-list .card:hover {
    box-shadow: 0 4px 20px rgba(0,0,0,.09) !important;
    transform: translateY(-2px);
}

/* Latest / Premium listing section headings */
.section-title,
.page-section h2,
.page-section .h2 {
    font-weight: 700;
    color: var(--andy-dark);
}

/* ── Listing cards (search results — grid view) ──────────────────────────── */
.grid-view .item-list {
    padding-bottom: 0;
}
.grid-view .item-list > div {
    border-radius: var(--andy-card-radius) !important;
    border-color: #e9ecef !important;
    transition: box-shadow var(--andy-transition), transform var(--andy-transition);
    background: #fff;
    overflow: hidden;
}
.grid-view .item-list > div:hover {
    box-shadow: 0 4px 24px rgba(0,0,0,.1) !important;
    transform: translateY(-2px);
}

/* Image block */
.grid-view .main-image img {
    border-radius: .5rem;
    object-fit: cover;
    width: 100%;
    aspect-ratio: 4/3;
}

/* Price */
.grid-view .col-12 .fs-4.fw-bold {
    color: var(--andy-primary);
    font-size: 1.25rem !important;
}

/* Favourite button */
.grid-view .make-favorite {
    font-size: .8rem;
    padding: .25rem .6rem;
}

/* ── Listing cards (search results — list view) ──────────────────────────── */
.list-view .item-list {
    background: #fff;
    border-radius: .75rem;
    border: 1px solid #e9ecef !important;
    padding: .85rem 1rem;
    margin-bottom: .5rem;
    transition: box-shadow var(--andy-transition);
}
.list-view .item-list:hover {
    box-shadow: 0 3px 16px rgba(0,0,0,.08);
}
.list-view .main-image img {
    border-radius: .6rem;
    object-fit: cover;
    width: 100%;
    aspect-ratio: 4/3;
}
.list-view .col-sm-3 .fs-4.fw-bold { color: var(--andy-primary); }

/* ── Compact view ────────────────────────────────────────────────────────── */
.compact-view .item-list {
    padding: .6rem .5rem;
    border-bottom: 1px solid #f1f5f9;
    transition: background var(--andy-transition);
}
.compact-view .item-list:hover { background: #f8fafc; }
.compact-view h5 a { font-weight: 600; }

/* ── Andy AI badge (on listing cards) ───────────────────────────────────── */
.andy-ai-badge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    background: rgba(0,68,200,.07);
    color: var(--andy-primary);
    border: 1px solid rgba(0,68,200,.14);
    border-radius: .65rem;
    font-size: .72rem;
    font-weight: 700;
    padding: .25rem .65rem;
}

/* ── Filter bar ──────────────────────────────────────────────────────────── */
.andy-filter-bar {
    background: #fff;
    border-bottom: 1px solid #e9ecef;
    padding: .75rem 0;
    position: sticky;
    top: 64px;
    z-index: 100;
}
/* The Exsile filter-bar Vue component */
[data-exsile="filter-bar"] { display: block; }

/* Sort / display-mode bar */
.container.px-1.py-2 {
    background: #fff !important;
    border-color: #e9ecef !important;
    border-radius: .5rem;
}

/* ── Sidebar cards ───────────────────────────────────────────────────────── */
aside.vstack .card { overflow: hidden; }
aside.vstack .card .card-header {
    font-weight: 700;
    font-size: .95rem;
    background: #f8fafc !important;
    border-bottom-color: #e9ecef !important;
}

/* ── Listing detail ──────────────────────────────────────────────────────── */
.items-details-wrapper {
    border-radius: var(--andy-card-radius) !important;
    border-color: #e9ecef !important;
    background: #fff !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.05);
}

/* Title in listing detail */
.items-details-wrapper h1 { font-weight: 700; }

/* Infos meta line */
.items-details-wrapper .border-top.py-2 { font-size: .875rem; }

/* Pictures slider */
.pictures-slider img,
.swiper-slide img {
    border-radius: .75rem;
}

/* Image gallery */
.pictures-slider .bx-wrapper { border-radius: .75rem; }

/* Stats chips (custom class, add to Blade if desired — or target existing list) */
.andy-stat-chip {
    background: #f8fafc;
    border-radius: .6rem;
    padding: .5rem .9rem;
    text-align: center;
    border: 1px solid #e9ecef;
}
.andy-stat-chip .value { display: block; font-size: 1.2rem; font-weight: 700; color: var(--andy-dark); }
.andy-stat-chip .label { font-size: .75rem; color: var(--andy-neutral); }
.andy-stat-chip.positive { background: #f0fdf4; border-color: #bbf7d0; color: #15803d; }

/* AI Copywriter box */
.ai-copywriter-box {
    background: linear-gradient(to left, rgba(0,68,200,.04), rgba(217,70,239,.03));
    border: 1px solid rgba(0,68,200,.12);
    border-radius: var(--andy-card-radius);
    position: relative;
    padding: 1.5rem 1.25rem 1.25rem;
}
.ai-copywriter-label {
    position: absolute;
    top: -12px;
    right: 20px;
    background: var(--andy-fuchsia);
    color: #fff;
    font-size: .7rem;
    font-weight: 700;
    padding: 2px 10px;
    border-radius: 20px;
}

/* AI quality badge overlay on gallery */
.andy-ai-quality-badge {
    position: absolute;
    top: .75rem;
    left: .75rem;
    background: rgba(0,68,200,.1);
    color: var(--andy-primary);
    border: 1px solid rgba(0,68,200,.2);
    border-radius: .5rem;
    font-size: .75rem;
    font-weight: 700;
    padding: .3rem .75rem;
    z-index: 10;
}

/* Valuator sidebar widget */
.andy-valuator-widget {
    background: rgba(0,68,200,.04);
    border: 1px solid rgba(0,68,200,.12) !important;
    border-radius: var(--andy-card-radius);
}
.andy-valuator-result {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: .6rem;
    padding: .75rem;
    text-align: center;
    color: #15803d;
    font-weight: 700;
    font-size: .875rem;
}

/* Contact card action buttons */
.card .d-grid.gap-2 .btn {
    font-weight: 600;
    padding: .6rem 1rem;
}
.card .d-grid.gap-2 .btn-primary { background: var(--andy-primary); border-color: var(--andy-primary); }
.card .d-grid.gap-2 .btn-success { border-radius: .6rem !important; }

/* ── Auth pages ──────────────────────────────────────────────────────────── */
/* Center auth cards with a soft shadow */
.row-login .card,
.register-card,
.auth-page .card,
[class*="col-"] > .card.p-4 {
    border-radius: 1.25rem !important;
    border-color: #e9ecef !important;
    box-shadow: 0 4px 24px rgba(0,0,0,.07) !important;
}

/* Auth icon circle */
.andy-auth-icon {
    width: 64px;
    height: 64px;
    border-radius: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    margin: 0 auto 1rem;
}
.andy-auth-icon.primary { background: rgba(0,68,200,.07); color: var(--andy-primary); }
.andy-auth-icon.fuchsia { background: rgba(217,70,239,.07); color: var(--andy-fuchsia); }

/* ── Create / edit listing form ──────────────────────────────────────────── */
/* Inline radio + checkbox groups styled as pill buttons (listing type, etc.) */
#payableForm .form-check-inline,
#payableForm .form-check-inline + .form-check-inline {
    margin-inline-end: .35rem !important;
    margin-bottom: .25rem;
    padding: 0 !important;
}
#payableForm .form-check-inline .form-check-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 0;
    height: 0;
    margin: 0 !important;
}
#payableForm .form-check-inline .form-check-label {
    display: inline-block;
    padding: .28rem .85rem;
    border: 1.5px solid #dee2e6;
    border-radius: 2rem;
    cursor: pointer;
    font-size: .875rem;
    transition: border-color var(--andy-transition), background var(--andy-transition), color var(--andy-transition);
    background: #fff;
    color: var(--andy-dark);
    user-select: none;
}
#payableForm .form-check-inline .form-check-input:checked + .form-check-label {
    border-color: var(--andy-primary);
    background: var(--andy-primary);
    color: #fff;
}
#payableForm .form-check-inline .form-check-label:hover {
    border-color: var(--andy-primary);
    color: var(--andy-primary);
}

/* Section headings inside the form */
.form-section-heading {
    font-size: .95rem;
    font-weight: 700;
    color: var(--andy-primary);
    border-top: 1px solid #e9ecef;
    padding-top: 1.25rem;
    margin-top: .25rem;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: .5rem;
}

/* Upload dropzone */
.andy-upload-zone {
    border: 2px dashed rgba(0,68,200,.3);
    background: rgba(0,68,200,.02);
    border-radius: var(--andy-card-radius);
    transition: background var(--andy-transition);
    cursor: pointer;
}
.andy-upload-zone:hover { background: rgba(0,68,200,.06); }
.andy-upload-zone .upload-icon { font-size: 2.5rem; color: var(--andy-primary); }

/* ── Custom button variants ──────────────────────────────────────────────── */
.btn-andy-publish {
    background: transparent;
    color: var(--andy-fuchsia);
    border: 2px solid var(--andy-fuchsia);
    font-weight: 700;
    padding: .35rem 1rem;
    transition: background var(--andy-transition), color var(--andy-transition);
}
.btn-andy-publish:hover,
.btn-andy-publish:focus { background: var(--andy-fuchsia); color: #fff; }

.btn-fuchsia {
    background: var(--andy-fuchsia);
    color: #fff;
    border: none;
    font-weight: 700;
    transition: opacity var(--andy-transition);
}
.btn-fuchsia:hover, .btn-fuchsia:focus { opacity: .88; color: #fff; }

.btn-fuchsia-outline {
    background: transparent;
    color: var(--andy-fuchsia);
    border: 2px solid var(--andy-fuchsia);
    font-weight: 700;
    transition: all var(--andy-transition);
}
.btn-fuchsia-outline:hover { background: var(--andy-fuchsia); color: #fff; }

/* Bump / rocket button */
.btn-bump {
    background: var(--andy-fuchsia);
    color: #fff;
    font-weight: 700;
    border: none;
    transition: opacity var(--andy-transition);
}
.btn-bump:hover { opacity: .88; color: #fff; }

/* ── Profile / Account ───────────────────────────────────────────────────── */
/* Account sidebar nav */
.account-menu .nav-link,
aside .nav-link,
.col-md-3 .list-group-item {
    border-radius: .6rem !important;
    font-weight: 600;
    color: var(--andy-neutral) !important;
    transition: background var(--andy-transition), color var(--andy-transition);
}
.account-menu .nav-link:hover,
aside .nav-link:hover,
.col-md-3 .list-group-item:hover { background: #f1f5f9; }
.account-menu .nav-link.active,
aside .nav-link.active,
.col-md-3 .list-group-item.active {
    background: rgba(0,68,200,.08) !important;
    color: var(--andy-primary) !important;
    font-weight: 700;
}

/* Andy profile nav (explicit class for Blade-added elements) */
.andy-profile-nav .nav-link {
    border-radius: .75rem !important;
    font-weight: 600;
    color: var(--andy-neutral) !important;
    padding: .65rem 1rem;
    transition: background var(--andy-transition), color var(--andy-transition);
}
.andy-profile-nav .nav-link:hover { background: #f1f5f9; }
.andy-profile-nav .nav-link.active {
    background: rgba(0,68,200,.07) !important;
    color: var(--andy-primary) !important;
    font-weight: 700;
}

/* Account sidebar — .list-group-item with active state */
aside .list-group-item {
    border-color: #e9ecef !important;
    transition: background var(--andy-transition), color var(--andy-transition);
}
aside .list-group-item:first-child { border-radius: .6rem .6rem 0 0; }
aside .list-group-item:last-child  { border-radius: 0 0 .6rem .6rem; }
aside .list-group-item:hover:not(.active) { background: #f1f5f9 !important; }
aside .list-group-item.active {
    background: var(--andy-primary) !important;
    border-color: var(--andy-primary) !important;
}

/* Account content card */
.container.border.rounded.bg-body-tertiary {
    border-radius: var(--andy-card-radius) !important;
    border-color: #e9ecef !important;
    background: #fff !important;
}

/* Account listings table — polished card-like rows */
#addManageTable { border-collapse: collapse; }
#addManageTable thead th {
    font-size: .8rem;
    font-weight: 700;
    color: var(--andy-neutral);
    text-transform: uppercase;
    letter-spacing: .04em;
    border-bottom: 2px solid #e9ecef !important;
    background: #f8fafc !important;
    padding: .6rem .75rem;
}
#addManageTable tbody tr {
    transition: background var(--andy-transition);
    border-bottom: 1px solid #f1f5f9 !important;
}
#addManageTable tbody tr:last-child { border-bottom: none !important; }
#addManageTable tr:hover { background: #f8fafc !important; }
#addManageTable td { vertical-align: middle; padding: .6rem .75rem; }
#addManageTable .img-thumbnail {
    width: 80px !important;
    height: 60px !important;
    object-fit: cover !important;
    border-radius: .5rem !important;
    border: none !important;
    display: block;
}
#addManageTable .fw-bold { color: var(--andy-primary); }
#addManageTable .btn-outline-primary { font-size: .8rem; border-radius: .5rem !important; }

/* Andy listing row (card-based account listings) */
.andy-listing-row {
    border-radius: .75rem;
    border: 1px solid #e9ecef;
    padding: .85rem 1rem;
    background: #fff;
    transition: box-shadow var(--andy-transition);
}
.andy-listing-row:hover { box-shadow: 0 2px 12px rgba(0,0,0,.08); }

/* ── Chat / messages ─────────────────────────────────────────────────────── */
.chat-thread-list { border-inline-start: 1px solid #e9ecef; }
.chat-thread-item {
    padding: .85rem 1rem;
    border-bottom: 1px solid #f1f5f9;
    cursor: pointer;
    transition: background var(--andy-transition);
}
.chat-thread-item:hover { background: #f8fafc; }
.chat-thread-item.active {
    background: #fff;
    border-inline-start: 3px solid var(--andy-primary);
}

.chat-bubble {
    max-width: 78%;
    padding: .6rem .9rem;
    font-size: .9rem;
    line-height: 1.5;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.chat-bubble-in {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 1rem 1rem 1rem 0;
}
[dir=rtl] .chat-bubble-in  { border-radius: 1rem 1rem 0 1rem; }
.chat-bubble-out {
    background: rgba(217,70,239,.07);
    border: 1px solid rgba(217,70,239,.18);
    border-radius: 1rem 1rem 0 1rem;
}
[dir=rtl] .chat-bubble-out { border-radius: 1rem 1rem 1rem 0; }
.chat-bot-label { font-size: .7rem; font-weight: 700; color: var(--andy-fuchsia); margin-bottom: .25rem; }

/* ── Article / CMS ───────────────────────────────────────────────────────── */
.andy-article-hero {
    max-height: 420px;
    overflow: hidden;
    border-radius: 0 0 1.5rem 1.5rem;
}
.andy-article-hero img { width: 100%; height: 420px; object-fit: cover; }

.andy-prose { max-width: 760px; margin: 0 auto; }
.andy-prose p { line-height: 1.85; color: var(--andy-neutral); margin-bottom: 1rem; }
.andy-prose h2 { font-size: 1.4rem; font-weight: 700; color: var(--andy-dark); margin: 2rem 0 .75rem; }
.andy-prose .tip-box {
    background: rgba(0,68,200,.05);
    border-inline-start: 4px solid var(--andy-primary);
    border-radius: 0 .75rem .75rem 0;
    padding: 1rem 1.25rem;
    margin: 1.5rem 0;
    color: var(--andy-dark);
    font-size: .9rem;
}
[dir=rtl] .andy-prose .tip-box { border-radius: .75rem 0 0 .75rem; }

/* ── Tabs ────────────────────────────────────────────────────────────────── */
.nav-tabs { border-bottom-color: #e9ecef; }
.nav-tabs .nav-link {
    font-weight: 600;
    color: var(--andy-neutral) !important;
    border-radius: .6rem .6rem 0 0 !important;
    border-color: transparent !important;
    transition: color var(--andy-transition);
}
.nav-tabs .nav-link:hover { color: var(--andy-primary) !important; border-color: transparent !important; }
.nav-tabs .nav-link.active {
    color: var(--andy-primary) !important;
    border-color: #e9ecef #e9ecef #fff !important;
    background: #fff !important;
}
.tab-content.border { border-color: #e9ecef !important; }

/* ── Breadcrumb ──────────────────────────────────────────────────────────── */
.breadcrumb-item a { color: var(--andy-neutral); text-decoration: none; }
.breadcrumb-item a:hover { color: var(--andy-primary); }
.breadcrumb-item.active { color: var(--andy-dark); font-weight: 600; }
.breadcrumb-item + .breadcrumb-item::before { color: #94a3b8; }

/* ── Pagination ──────────────────────────────────────────────────────────── */
.pagination .page-link {
    border-radius: .5rem !important;
    border-color: #e9ecef;
    color: var(--andy-primary);
    font-weight: 600;
    margin: 0 2px;
    transition: background var(--andy-transition);
}
.pagination .page-item.active .page-link {
    background: var(--andy-primary) !important;
    border-color: var(--andy-primary) !important;
    color: #fff !important;
}
.pagination .page-link:hover { background: rgba(0,68,200,.07); }

/* ── Footer ──────────────────────────────────────────────────────────── */
footer { margin-top: 3rem !important; }
footer h4 { font-weight: 700 !important; }
footer .social-links a { font-size: 1.4rem; transition: opacity var(--andy-transition); }
footer .social-links a:hover { opacity: .7; }

/* ── Alerts / flash messages ─────────────────────────────────────────────── */
.alert { border-radius: .75rem !important; }

/* ── Listing card (horizontal — list view) ───────────────────────────────── */
.listing-card {
    border-radius: var(--andy-card-radius) !important;
    border-color: #e9ecef !important;
    transition: box-shadow var(--andy-transition), transform var(--andy-transition);
    cursor: pointer;
}
.listing-card:hover {
    box-shadow: 0 4px 24px rgba(0,0,0,.1) !important;
    transform: translateY(-2px);
}

/* Overlay heart button sizing (used in both list + grid) */
.make-favorite.rounded-circle {
    line-height: 1 !important;
    width: 28px !important;
    height: 28px !important;
    padding: 4px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* ── Radio / checkbox pill groups (create-listing form) ──────────────────── */
.andy-radio-group,
.andy-check-group {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
}
.andy-radio-group .form-check,
.andy-check-group .form-check {
    margin: 0 !important;
    padding: 0 !important;
}
.andy-radio-group .form-check-input,
.andy-check-group .form-check-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 0;
    height: 0;
}
.andy-radio-group .form-check-label,
.andy-check-group .form-check-label {
    display: inline-block;
    padding: .28rem .8rem;
    border: 1.5px solid #dee2e6;
    border-radius: 2rem;
    cursor: pointer;
    font-size: .85rem;
    transition: border-color var(--andy-transition), background var(--andy-transition), color var(--andy-transition);
    background: #fff;
    color: var(--andy-dark);
    user-select: none;
}
.andy-radio-group .form-check-input:checked + .form-check-label,
.andy-check-group .form-check-input:checked + .form-check-label {
    border-color: var(--andy-primary);
    background: var(--andy-primary);
    color: #fff;
}
.andy-radio-group .form-check-label:hover,
.andy-check-group .form-check-label:hover {
    border-color: var(--andy-primary);
    color: var(--andy-primary);
}

/* ── Profile sidebar nav button ──────────────────────────────────────────── */
.profile-nav-btn {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem .75rem;
    border-radius: .5rem;
    color: var(--andy-dark);
    background: transparent;
    border: none;
    width: 100%;
    text-align: start;
    font-size: .95rem;
    font-weight: 600;
    text-decoration: none;
    transition: background var(--andy-transition), color var(--andy-transition);
    cursor: pointer;
}
.profile-nav-btn:hover {
    background: #f1f5f9;
    color: var(--andy-primary);
}
.profile-nav-btn.active {
    background: rgba(0,68,200,.07);
    color: var(--andy-primary);
}

/* ── Sticky sidebar ──────────────────────────────────────────────────────── */
.sticky-sidebar { position: sticky; top: 80px; }

/* ── Utility classes ─────────────────────────────────────────────────────── */
.cursor-pointer      { cursor: pointer !important; }
.text-fuchsia        { color: var(--andy-fuchsia) !important; }
.text-cyan           { color: var(--andy-cyan)    !important; }
.text-neutral        { color: var(--andy-neutral) !important; }
.text-dark-andy      { color: var(--andy-dark)    !important; }
.text-neutral-andy   { color: var(--andy-neutral) !important; }
.text-andy-fuchsia   { color: var(--andy-fuchsia) !important; }
.bg-andy             { background-color: var(--andy-bg)      !important; }
.bg-light-andy       { background-color: var(--andy-bg)      !important; }
.border-primary      { border-color: var(--andy-primary)     !important; }

/* Fuchsia button variants */
.btn-andy-fuchsia {
    color: var(--andy-fuchsia) !important;
    border: 2px solid var(--andy-fuchsia) !important;
    background: transparent !important;
    border-radius: .6rem !important;
    font-weight: 700;
    transition: background var(--andy-transition), color var(--andy-transition);
}
.btn-andy-fuchsia:hover,
.btn-andy-fuchsia:focus {
    background: var(--andy-fuchsia) !important;
    color: #fff !important;
}
.btn-andy-fuchsia-fill {
    background: var(--andy-fuchsia) !important;
    color: #fff !important;
    border: 2px solid var(--andy-fuchsia) !important;
    border-radius: .6rem !important;
    font-weight: 700;
    transition: opacity var(--andy-transition);
}
.btn-andy-fuchsia-fill:hover,
.btn-andy-fuchsia-fill:focus { opacity: .88; color: #fff !important; }

/* Breadcrumb link alias */
.andy-breadcrumb-link { color: var(--andy-neutral); text-decoration: none; }
.andy-breadcrumb-link:hover { color: var(--andy-primary); }

.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ── Features section (homepage) ────────────────────────────────────────── */
.andy-features-section {
    background: #fff;
    border-top: 1px solid #e9ecef;
    padding: 3rem 0;
    margin-top: 1rem;
}
.andy-feature-card {
    background: var(--andy-bg);
    border: 1px solid #e9ecef;
    border-radius: 1rem;
    padding: 1.5rem;
    height: 100%;
    transition: box-shadow var(--andy-transition), transform var(--andy-transition);
}
.andy-feature-card:hover {
    box-shadow: 0 4px 24px rgba(0,0,0,.09) !important;
    transform: translateY(-2px);
}
.andy-feature-badge {
    display: inline-block;
    font-size: .7rem;
    font-weight: 700;
    color: var(--andy-primary);
    background: rgba(0,68,200,.07);
    border-radius: 2rem;
    padding: .2rem .7rem;
    margin-bottom: .75rem;
}
.andy-feature-emoji { font-size: 2rem; display: block; margin-bottom: .75rem; }
.andy-feature-title { font-size: 1rem; font-weight: 700; color: var(--andy-dark); margin-bottom: .4rem; }
.andy-feature-desc { font-size: .875rem; color: var(--andy-neutral); margin-bottom: 0; }

/* ── Price group (create form) ───────────────────────────────────────────── */
.andy-price-group { display: flex; align-items: center; gap: .5rem; }
.andy-price-group .form-control { flex: 1; }
.price-currency { font-size: .95rem; font-weight: 700; color: var(--andy-neutral); white-space: nowrap; }

/* ── Category selection cards ────────────────────────────────────────────── */
.andy-cat-card {
    background: #fff;
    border: 2px solid #e9ecef;
    border-radius: .75rem;
    padding: .85rem;
    text-align: center;
    cursor: pointer;
    transition: border-color var(--andy-transition), background var(--andy-transition);
    display: block;
    text-decoration: none;
    color: var(--andy-dark);
}
.andy-cat-card:hover, .andy-cat-card.active {
    border-color: var(--andy-primary);
    background: rgba(0,68,200,.04);
    color: var(--andy-primary);
}
.cat-emoji { font-size: 2rem; display: block; margin-bottom: .4rem; }

/* ── Upload zone alias ───────────────────────────────────────────────────── */
.andy-upload {
    border: 2px dashed rgba(0,68,200,.3);
    background: rgba(0,68,200,.02);
    border-radius: var(--andy-card-radius);
    transition: background var(--andy-transition);
    cursor: pointer;
}
.andy-upload:hover { background: rgba(0,68,200,.06); }
.andy-upload .upload-icon { font-size: 2.5rem; color: var(--andy-primary); }

/* ── Nav hover primary ───────────────────────────────────────────────────── */
.nav-hover-primary:hover { color: var(--andy-primary) !important; }

/* ── Profile inner views (account tabs) ─────────────────────────────────── */
.profile-inner-view { display: none; }
.profile-inner-view.active { display: block; }

/* ── Search results layout ───────────────────────────────────────────────── */
/* Sort bar (Andy style — simple flex row) */
.andy-sort-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #e9ecef;
    padding-bottom: .75rem;
    margin-bottom: 1.25rem;
    gap: .75rem;
    flex-wrap: wrap;
}
.andy-sort-bar h1.h4 { font-size: 1.15rem; font-weight: 700; color: var(--andy-dark); margin-bottom: 0; }
/* Remove old sort-bar container styling (no longer rendered) */
.container.px-1.py-2.bg-body-tertiary.border { display: none !important; }

/* ── Dark mode support ───────────────────────────────────────────────────── */
[data-bs-theme="dark"] {
    --andy-bg: #0f172a;
}
[data-bs-theme="dark"] .grid-view .item-list > div,
[data-bs-theme="dark"] .list-view .item-list,
[data-bs-theme="dark"] .items-details-wrapper,
[data-bs-theme="dark"] .container.border.rounded.bg-body-tertiary {
    background: #1e293b !important;
    border-color: #334155 !important;
}
[data-bs-theme="dark"] .andy-upload-zone { border-color: rgba(0,68,200,.5); background: rgba(0,68,200,.08); }
[data-bs-theme="dark"] .andy-listing-row { background: #1e293b; border-color: #334155; }
