/* Member and listing features added for parity with the legacy site. */
.muted { color:var(--muted); }
.page-notice { margin-bottom:20px; }
.breadcrumbs { font-size:14px; color:#cfe3d7; }
.breadcrumbs a:hover { color:#fff; }
.listing-meta { display:flex; flex-wrap:wrap; gap:8px 18px; font-size:14px; color:#d4e6db; }
.listing-meta a:hover { color:#fff; }
.featured-badge { display:inline-block; vertical-align:middle; background:var(--gold); color:#fff; font-size:12px; font-weight:800; padding:3px 10px; border-radius:20px; line-height:1.6; }
.card-image { position:relative; }
.card-image .featured-badge { position:absolute; top:12px; right:12px; font-size:12px; color:#fff; }
.directory-card.is-featured { border-color:#e6c77f; box-shadow:0 10px 30px rgba(215,166,62,.18); }
.card-meta { display:flex; flex-wrap:wrap; gap:4px 14px; font-size:13px; }

.social-cards { grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); }
.archive-filters.has-sort { grid-template-columns:2fr 1fr 1fr auto; }
.archive-filters select { width:100%; min-width:0; border:1px solid #cadbd0; border-radius:10px; padding:11px 13px; font:inherit; background:#fff; }
@media(max-width:600px) { .archive-filters.has-sort { grid-template-columns:1fr; } }

/* Listing page */
.gallery-stage img { width:100%; max-height:560px; object-fit:contain; background:#eef4f0; border-radius:18px; }
.gallery-thumbs { display:flex; gap:8px; overflow-x:auto; margin-top:10px; padding-bottom:4px; }
.gallery-thumbs button { flex:0 0 auto; padding:0; border:2px solid transparent; border-radius:10px; overflow:hidden; background:none; cursor:pointer; }
.gallery-thumbs button.is-active { border-color:var(--green); }
.gallery-thumbs img { width:84px; height:64px; object-fit:cover; }
.listing-video { width:100%; max-height:480px; margin-top:16px; border-radius:16px; background:#000; }
.listing-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-start; padding:16px 0; border-block:1px solid var(--line); }
.inline-action { display:inline; margin:0; }
.inline-action button,.listing-actions summary,.listing-actions>a,.fav-count { display:inline-block; border:1px solid var(--line); background:#fff; color:var(--ink); font:inherit; font-weight:700; padding:9px 16px; border-radius:11px; cursor:pointer; list-style:none; }
.listing-actions summary::-webkit-details-marker { display:none; }
.inline-action button:hover,.listing-actions summary:hover { border-color:var(--green); color:var(--green); }
.inline-action.is-on button { background:#fff1f1; border-color:#e7b3b3; color:#b12f2f; }
.report-box form,.share-box .share-links { margin-top:10px; padding:16px; background:#fff; border:1px solid var(--line); border-radius:14px; display:grid; gap:10px; min-width:260px; }
.report-box label { display:grid; gap:6px; font-weight:700; }
.report-box select,.report-box textarea { width:100%; border:1px solid #cadbd0; border-radius:10px; padding:9px; font:inherit; }
.report-box .submit-button { margin-top:0; }
.share-links a,.share-links button { display:block; padding:8px 12px; border-radius:9px; background:var(--soft); color:var(--green); font:inherit; font-weight:700; border:0; text-align:start; cursor:pointer; }
.safety-note { padding:12px 16px; border-radius:12px; background:#fff8e8; border:1px solid #efd9a5; color:#7a5a17; font-size:14px; }
.post-nav { display:flex; justify-content:space-between; gap:10px; margin:14px 0 30px; font-weight:700; color:var(--green); }
.contact-phone { font-size:20px; font-weight:800; }
.details-card .contact-whatsapp { display:inline-block; margin-top:8px; padding:8px 14px; border-radius:10px; background:#25d366; color:#fff; font-weight:800; }
.details-card a { color:#fff; }

/* Comments */
.listing-comments h2 { font-size:26px; }
.comment-list,.comment-list .children { list-style:none; padding:0; margin:0; }
.comment-list .children { margin-inline-start:28px; border-inline-start:3px solid var(--soft); padding-inline-start:14px; }
.listing-comment { background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px 16px; margin-bottom:12px; }
.comment-head { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.comment-head small { color:var(--muted); }
.owner-tag { background:var(--soft); color:var(--green); font-size:11px; font-weight:800; padding:2px 8px; border-radius:10px; }
.comment-text p { margin:6px 0; }
.comment-actions { display:flex; gap:12px; align-items:flex-start; font-size:14px; }
.comment-actions .comment-reply-link { color:var(--green); font-weight:700; }
.comment-actions summary { cursor:pointer; color:var(--muted); }
.follow-comments { display:block; margin:12px 0; }
.follow-comments button { border:1px solid var(--line); background:#fff; font:inherit; font-weight:700; padding:8px 14px; border-radius:10px; cursor:pointer; }
.comment-respond { background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px; margin-top:14px; }
.comment-respond h3 { margin-top:0; font-size:19px; }
.comment-respond textarea { width:100%; border:1px solid #cadbd0; border-radius:12px; padding:12px; font:inherit; }
.comment-respond .submit { border:0; border-radius:12px; padding:11px 26px; background:var(--green); color:#fff; font:inherit; font-weight:800; cursor:pointer; }

/* Listing form */
.form-grid label small { font-weight:400; color:var(--muted); }
.form-grid .full { grid-column:1/-1; }
.thumb-picker { display:flex; flex-wrap:wrap; gap:10px; margin-top:8px; }
.thumb-picker label { display:grid; gap:4px; justify-items:center; font-weight:400; font-size:13px; }
.thumb-picker img { width:96px; height:76px; object-fit:cover; border-radius:10px; }
.inline-check { display:flex!important; gap:8px; align-items:flex-start; font-weight:400!important; }
.inline-check input { width:auto!important; margin-top:6px; }
.agreement { margin-top:26px; padding:20px; border-radius:16px; background:var(--soft); display:grid; gap:10px; }
.agreement h3 { margin:0; }

/* Member pages */
.my-listings { display:grid; gap:12px; }
.my-listing { display:grid; grid-template-columns:96px 1fr auto; gap:16px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:16px; padding:12px; }
.my-listing .thumb img,.my-listing .thumb span { width:96px; height:76px; object-fit:cover; border-radius:10px; display:grid; place-items:center; background:var(--soft); font-size:30px; color:var(--green); }
.my-listing h3 { margin:0; font-size:18px; }
.my-listing small { color:var(--muted); }
.my-listing .actions { display:flex; flex-wrap:wrap; gap:8px; }
.my-listing .actions button { border:1px solid var(--line); background:#fff; font:inherit; font-weight:700; padding:9px 16px; border-radius:11px; cursor:pointer; }

/* Account dropdown */
.account-menu { position:relative; }
.account-menu summary { list-style:none; cursor:pointer; }
.account-menu summary::-webkit-details-marker { display:none; }
.primary-nav .account-menu ul { position:absolute; top:calc(100% + 10px); inset-inline-end:0; display:grid; gap:2px; min-width:190px; padding:10px; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); z-index:60; }
.account-menu ul a { display:block; padding:7px 10px; border-radius:8px; }
.account-menu ul a:hover { background:var(--soft); }
.primary-nav summary.nav-account { background:var(--green); color:#fff; padding:8px 16px; border-radius:10px; font-weight:600; }
.count-badge { display:inline-grid; place-items:center; min-width:20px; height:20px; padding:0 5px; border-radius:10px; background:#d64545; color:#fff; font-size:11px; }

/* Avatars */
.avatar-img { border-radius:50%; object-fit:cover; flex:0 0 auto; }
.avatar-letter { display:inline-grid; place-items:center; background:var(--soft); color:var(--green); font-weight:800; }

/* Profile */
.profile-hero { background:linear-gradient(110deg,var(--dark),var(--green)); background-size:cover; background-position:center; color:#fff; padding-block:48px 36px; }
.profile-head { display:grid; grid-template-columns:auto 1fr auto; gap:22px; align-items:center; }
.profile-avatar .avatar-img { border:4px solid rgba(255,255,255,.85); font-size:40px; }
.profile-id h1 { margin:0; font-size:clamp(26px,4vw,38px); }
.profile-id p { display:flex; flex-wrap:wrap; gap:6px 16px; margin:6px 0 0; color:#d4e6db; font-size:14px; }
.verified-badge { display:inline-block; vertical-align:middle; font-size:13px; background:#2d9cdb; color:#fff; padding:2px 10px; border-radius:20px; }
.profile-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:flex-start; justify-content:flex-end; }
.profile-actions .inline-action button,.profile-actions summary { border:1px solid rgba(255,255,255,.4); background:rgba(255,255,255,.12); color:#fff; font:inherit; font-weight:700; padding:10px 16px; border-radius:12px; cursor:pointer; list-style:none; }
.profile-actions .inline-action.is-on button { background:#fff; color:var(--green); }
.profile-actions summary::-webkit-details-marker { display:none; }
.profile-actions .report-box form,.qr-code { position:absolute; z-index:20; color:var(--ink); }
.profile-actions details { position:relative; }
.qr-code { background:#fff; padding:12px; border-radius:14px; box-shadow:var(--shadow); inset-inline-end:0; margin-top:8px; }
.qr-code svg { display:block; width:180px; height:180px; }
.profile-about { background:#fff; border:1px solid var(--line); border-radius:18px; padding:20px; margin-bottom:30px; }
.profile-contacts { margin:0; padding-inline-start:18px; }
.profile-body h2 { margin-top:36px; }
.rating-list { display:grid; gap:12px; }
.rating-item { background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px 16px; }
.rating-item img { max-width:240px; border-radius:10px; }
.tag-good,.tag-bad { font-size:12px; font-weight:800; padding:2px 10px; border-radius:10px; }
.tag-good { background:#e6f6ec; color:#17633c; }
.tag-bad { background:#fdecec; color:#a12a2a; }
.rate-box { margin-top:18px; }
.rate-box summary { list-style:none; display:inline-block; cursor:pointer; }
.rate-box form { margin-top:12px; }
.rate-box fieldset { border:1px solid var(--line); border-radius:12px; padding:10px 14px; }

/* Messages */
.member-search { display:flex; gap:8px; margin-bottom:20px; }
.member-search input { flex:1; border:1px solid #cadbd0; border-radius:12px; padding:11px 14px; font:inherit; }
.member-search button { border:0; border-radius:12px; padding:0 22px; background:var(--green); color:#fff; font:inherit; font-weight:800; cursor:pointer; }
.conversation-list { display:grid; gap:8px; }
.conversation { display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:14px; padding:12px 14px; }
.conversation span { display:grid; }
.conversation small { color:var(--muted); }
.conversation em { font-style:normal; font-size:12px; color:var(--muted); }
.conversation.is-unread { border-color:#9ac4aa; background:#f3faf5; }
.chat-head { display:flex; flex-wrap:wrap; gap:10px 20px; align-items:center; justify-content:space-between; margin-bottom:14px; }
.chat-head h2 { margin:0; font-size:22px; }
.chat-head h2 a { display:flex; align-items:center; gap:10px; }
.chat-thread { display:flex; flex-direction:column; gap:10px; background:#fff; border:1px solid var(--line); border-radius:18px; padding:18px; max-height:65vh; overflow-y:auto; margin-bottom:16px; }
.chat-msg { max-width:78%; padding:10px 14px; border-radius:16px; }
.chat-msg p { margin:0; }
.chat-msg small { display:block; font-size:11px; opacity:.7; margin-top:4px; }
.chat-msg.is-mine { align-self:flex-start; background:var(--green); color:#fff; border-end-start-radius:4px; }
.chat-msg.is-theirs { align-self:flex-end; background:var(--soft); border-end-end-radius:4px; }
.chat-listing { display:block; font-size:12px; font-weight:700; text-decoration:underline; margin-bottom:4px; }
.chat-link { display:inline-block; margin-top:10px; font-size:14px; text-decoration:underline; }
.danger-link button { border:0; background:none; color:#b12f2f; font:inherit; font-weight:700; cursor:pointer; padding:0; }

/* Notifications, following, account */
.notification-list { list-style:none; padding:0; margin:16px 0 0; display:grid; gap:8px; }
.notification-list li>* { display:grid; gap:2px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px 16px; }
.notification-list li.is-unread>* { border-color:#9ac4aa; background:#f3faf5; font-weight:700; }
.notification-list small { color:var(--muted); font-weight:400; }
.follow-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:10px; margin-bottom:10px; }
.follow-item { display:flex; align-items:center; justify-content:space-between; gap:10px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:10px 14px; }
.follow-item>a { display:flex; align-items:center; gap:10px; font-weight:700; }
.follow-item .inline-action button { border:1px solid var(--line); background:#fff; font:inherit; padding:6px 12px; border-radius:9px; cursor:pointer; }
.page-hero .inline-action button { margin-top:10px; border:1px solid rgba(255,255,255,.4); background:rgba(255,255,255,.12); color:#fff; font:inherit; font-weight:700; padding:8px 16px; border-radius:11px; cursor:pointer; }
.account-form h2 { margin:10px 0 16px; font-size:22px; }
.account-form h2:not(:first-of-type) { margin-top:30px; }
.danger-zone { margin-top:26px; background:#fff; border:1px solid #efc4c4; border-radius:16px; padding:16px 20px; }
.danger-zone summary { cursor:pointer; color:#a12a2a; font-weight:800; }
.danger-zone form { display:grid; gap:12px; margin-top:12px; max-width:420px; }
.danger-zone label { display:grid; gap:6px; }
.danger-zone input { border:1px solid #cadbd0; border-radius:10px; padding:10px; font:inherit; }
.submit-button.danger { background:#b12f2f; }

/* Commission, memberships, verification */
.commission-intro h2 { margin-top:0; }
.commission-calc { display:grid; gap:8px; max-width:420px; background:#fff; border:1px solid var(--line); border-radius:18px; padding:20px; margin:18px 0; }
.commission-calc h3 { margin:0; }
.commission-calc label { display:grid; gap:6px; font-weight:700; }
.commission-calc input { border:1px solid #cadbd0; border-radius:10px; padding:11px; font:inherit; }
.commission-calc .calc-result { font-size:24px; color:var(--green); }
.pay-method { background:#fff; border:1px solid var(--line); border-radius:18px; padding:20px; margin-bottom:16px; }
.bank-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:12px; margin-top:12px; }
.bank-card { display:grid; gap:4px; background:var(--soft); border-radius:14px; padding:14px 16px; font-size:14px; }
.bank-card strong { font-size:17px; }
.transfer-form { margin-top:24px; }
.transfer-form h2 { margin-top:0; }
.plan-card { background:#fff; border:1px solid var(--line); border-radius:20px; padding:24px; margin-bottom:20px; }
.plan-card h2 { margin-top:0; }
.package-list { display:flex; flex-wrap:wrap; gap:12px; margin-top:16px; }
.package { display:grid; gap:4px; min-width:220px; padding:16px 18px; border:2px solid var(--line); border-radius:16px; }
.package span { color:var(--green); font-weight:800; }
.package.is-active,.package:hover { border-color:var(--green); background:var(--soft); }
.plan-subscribe { margin-top:24px; }
.verify-options { display:grid; gap:14px; margin-top:14px; }
.verify-option summary { cursor:pointer; font-weight:800; padding:14px 18px; background:#fff; border:1px solid var(--line); border-radius:14px; }
.verify-option form { margin-top:10px; }
.verify-option label { display:grid; gap:6px; font-weight:700; }
.verify-option input { border:1px solid #cadbd0; border-radius:10px; padding:11px; font:inherit; }
.register-form .form-intro p a { color:var(--green); font-weight:700; }

@media(max-width:900px) { .primary-nav .account-menu ul { position:static; box-shadow:none; margin-top:8px; } .profile-head{grid-template-columns:auto 1fr}.profile-actions{grid-column:1/-1;justify-content:flex-start} }
@media(max-width:600px) { .my-listing{grid-template-columns:72px 1fr}.my-listing .actions{grid-column:1/-1}.my-listing .thumb img,.my-listing .thumb span{width:72px;height:60px}.comment-list .children{margin-inline-start:10px} }
