/* ===========================================================
   Divssoul Property Suite — Frontend Styles
   Modern, professional design system
   =========================================================== */

:root {
    --dvs-primary: #0d47a1;
    --dvs-primary-hover: #1565c0;
    --dvs-primary-light: #e3f2fd;
    --dvs-primary-bg: #f5f9ff;
    --dvs-accent: #fbc02d;
    --dvs-accent-dark: #f9a825;
    --dvs-success: #2e7d32;
    --dvs-danger: #c62828;
    --dvs-warning: #ef6c00;
    --dvs-wa: #25D366;
    --dvs-wa-dark: #1ebe5b;
    --dvs-text: #1a2332;
    --dvs-text-light: #4a5568;
    --dvs-muted: #718096;
    --dvs-border: #e2e8f0;
    --dvs-border-strong: #cbd5e0;
    --dvs-bg: #ffffff;
    --dvs-bg-soft: #f7fafc;
    --dvs-bg-tint: #edf2f7;
    --dvs-radius: 10px;
    --dvs-radius-sm: 6px;
    --dvs-radius-lg: 14px;
    --dvs-shadow-sm: 0 1px 2px rgba(16,24,40,.05);
    --dvs-shadow: 0 2px 8px rgba(16,24,40,.06);
    --dvs-shadow-md: 0 4px 16px rgba(16,24,40,.08);
    --dvs-shadow-lg: 0 10px 32px rgba(16,24,40,.1);
    --dvs-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --dvs-trans: all .18s ease;
}

.dvs-wrap {
    box-sizing: border-box;
    color: var(--dvs-text);
    font-family: var(--dvs-font);
    font-size: 15px;
    line-height: 1.55;
    max-width: 1240px;
    margin: 0 auto;
    padding: 24px 20px;
}
.dvs-wrap *, .dvs-wrap *::before, .dvs-wrap *::after { box-sizing: border-box; }
.dvs-wrap h1, .dvs-wrap h2, .dvs-wrap h3, .dvs-wrap h4 {
    font-family: var(--dvs-font);
    color: var(--dvs-text);
    margin: 0;
}
.dvs-muted { color: var(--dvs-muted); }

/* ===========================================================
   Buttons
   =========================================================== */
.dvs-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 18px;
    border: 1px solid transparent;
    border-radius: var(--dvs-radius-sm);
    font-family: var(--dvs-font);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: var(--dvs-trans);
    background: #fff;
    color: var(--dvs-text);
    white-space: nowrap;
}
.dvs-btn:hover { text-decoration: none; transform: translateY(-1px); box-shadow: var(--dvs-shadow); }
.dvs-btn:active { transform: translateY(0); }
.dvs-btn:disabled { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }

.dvs-btn-primary {
    background: var(--dvs-primary);
    color: #fff;
    border-color: var(--dvs-primary);
}
.dvs-btn-primary:hover { background: var(--dvs-primary-hover); border-color: var(--dvs-primary-hover); color: #fff; }

.dvs-btn-secondary { background: var(--dvs-bg-tint); color: var(--dvs-text); border-color: var(--dvs-border); }
.dvs-btn-secondary:hover { background: #dfe6f0; color: var(--dvs-text); }

.dvs-btn-ghost { background: transparent; color: var(--dvs-text); border-color: var(--dvs-border); }
.dvs-btn-ghost:hover { background: var(--dvs-bg-soft); color: var(--dvs-text); border-color: var(--dvs-border-strong); }

.dvs-btn-danger { background: var(--dvs-danger); color: #fff; border-color: var(--dvs-danger); }
.dvs-btn-danger:hover { background: #a51d1d; color: #fff; }

.dvs-btn-wa { background: var(--dvs-wa); color: #fff; border-color: var(--dvs-wa); }
.dvs-btn-wa:hover { background: var(--dvs-wa-dark); color: #fff; }

.dvs-btn-block { display: flex; width: 100%; }
.dvs-btn-sm { padding: 7px 12px; font-size: 13px; }
.dvs-btn-xs { padding: 4px 9px; font-size: 12px; font-weight: 500; }

/* ===========================================================
   Forms
   =========================================================== */
.dvs-wrap input[type="text"],
.dvs-wrap input[type="email"],
.dvs-wrap input[type="tel"],
.dvs-wrap input[type="number"],
.dvs-wrap input[type="date"],
.dvs-wrap input[type="search"],
.dvs-wrap input[type="password"],
.dvs-wrap select,
.dvs-wrap textarea {
    display: block;
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--dvs-border-strong);
    border-radius: var(--dvs-radius-sm);
    font-size: 14px;
    font-family: inherit;
    color: var(--dvs-text);
    background: #fff;
    transition: var(--dvs-trans);
    line-height: 1.4;
}
.dvs-wrap input:focus,
.dvs-wrap select:focus,
.dvs-wrap textarea:focus {
    outline: none;
    border-color: var(--dvs-primary);
    box-shadow: 0 0 0 3px rgba(13,71,161,.12);
}
.dvs-wrap textarea { resize: vertical; min-height: 90px; }
.dvs-wrap select {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23718096' d='M6 8L0 0h12z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 34px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}
.dvs-wrap label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--dvs-text-light);
    margin-bottom: 6px;
    letter-spacing: .2px;
    text-transform: uppercase;
}

/* ===========================================================
   Notices
   =========================================================== */
.dvs-notice {
    padding: 14px 18px;
    border-radius: var(--dvs-radius);
    border: 1px solid;
    margin: 14px 0;
    font-size: 14px;
    line-height: 1.55;
}
.dvs-notice-info    { background: #e3f2fd; border-color: #90caf9; color: #0d47a1; }
.dvs-notice-success { background: #e8f5e9; border-color: #81c784; color: #1b5e20; }
.dvs-notice-error   { background: #ffebee; border-color: #ef9a9a; color: #b71c1c; }
.dvs-notice-warning { background: #fff8e1; border-color: #ffcc80; color: #e65100; }
.dvs-notice a { color: inherit; font-weight: 600; text-decoration: underline; }

/* ===========================================================
   Badges
   =========================================================== */
.dvs-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    background: var(--dvs-bg-tint);
    color: var(--dvs-text);
    line-height: 1.4;
    letter-spacing: .2px;
    box-shadow: var(--dvs-shadow-sm);
}
.dvs-badge-type       { background: #fff; color: var(--dvs-primary); border: 1px solid var(--dvs-primary-light); }
.dvs-badge-hot        { background: linear-gradient(135deg,#ff6b6b,#c62828); color: #fff; }
.dvs-badge-featured   { background: linear-gradient(135deg,#fbc02d,#f57c00); color: #fff; }
.dvs-badge-hidden     { background: #fef3c7; color: #92400e; border: 1px solid #fbbf24; }
.dvs-badge-draft      { background: #e0e7ff; color: #3730a3; border: 1px solid #818cf8; }
.dvs-badge-status     { background: #e8f5e9; color: #1b5e20; }
.dvs-badge-status.dvs-status-sold,
.dvs-badge-status.dvs-status-rented { background: #eceff1; color: #455a64; }
.dvs-badge-status.dvs-status-under-negotiation,
.dvs-badge-status.dvs-status-negotiation { background: #fff8e1; color: #ef6c00; }
.dvs-badge-status.dvs-status-withdrawn { background: #ffebee; color: #b71c1c; }

.dvs-badge-pending { background: #fff3e0; color: #e65100; }
.dvs-badge-spam { background: #ffebee; color: #c62828; }
.dvs-badge-status.dvs-status-completed { background: #e8f5e9; color: #1b5e20; }
.dvs-btn-warn { background: #fff3e0; color: #c25b00; border: 1px solid #ffd59a; }
.dvs-btn-warn:hover { background: #ffe7bf; color: #8d4200; }

/* ===========================================================
   Filters
   =========================================================== */
.dvs-filters {
    background: #fff;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-lg);
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: var(--dvs-shadow);
}
.dvs-filter-search {
    display: flex;
    gap: 10px;
    margin-bottom: 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--dvs-border);
}
.dvs-filter-search .dvs-big-search {
    flex: 1;
    height: 48px;
    font-size: 15px;
    padding: 10px 18px;
}
.dvs-filter-search .dvs-btn { height: 48px; padding: 0 24px; }
.dvs-filter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 14px;
}
.dvs-filter label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    color: var(--dvs-muted);
    text-transform: uppercase;
    letter-spacing: .5px;
    margin-bottom: 5px;
}
.dvs-filter input,
.dvs-filter select { font-size: 13px; padding: 8px 12px; }
.dvs-filter select { padding-right: 30px; }
.dvs-filter-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--dvs-border);
}

/* Active filter chips */
.dvs-active-chips {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    margin: 0 0 16px;
    padding: 10px 16px;
    background: var(--dvs-primary-bg);
    border-radius: var(--dvs-radius);
    border: 1px solid var(--dvs-primary-light);
}
.dvs-active-label { font-size: 13px; font-weight: 600; color: var(--dvs-text-light); }
.dvs-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 12px;
    background: #fff;
    border: 1px solid var(--dvs-border-strong);
    border-radius: 16px;
    font-size: 12px;
    color: var(--dvs-text);
    text-decoration: none;
    cursor: pointer;
    transition: var(--dvs-trans);
}
.dvs-chip:hover { background: var(--dvs-bg-soft); color: var(--dvs-text); }
.dvs-chip-active { background: var(--dvs-primary); color: #fff; border-color: var(--dvs-primary); }
.dvs-chip-active:hover { background: var(--dvs-primary-hover); color: #fff; }

/* Results bar + view toggle */
.dvs-results-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 18px;
    flex-wrap: wrap;
    gap: 10px;
}
.dvs-total { font-size: 14px; color: var(--dvs-text-light); }
.dvs-total strong { color: var(--dvs-primary); font-size: 18px; font-weight: 700; margin-right: 4px; }
.dvs-view-toggle,
.dvs-view-switch {
    display: inline-flex;
    align-items: center;
    gap: 0;
    background: #fff;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-sm);
    padding: 3px;
    box-shadow: var(--dvs-shadow-sm);
}
.dvs-view-btn,
.dvs-view-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 78px;
    padding: 8px 14px;
    border-radius: var(--dvs-radius-sm);
    font-size: 13px;
    font-weight: 600;
    color: var(--dvs-muted);
    text-decoration: none;
    line-height: 1;
    cursor: pointer;
    transition: var(--dvs-trans);
}
.dvs-view-btn.is-active,
.dvs-view-link.is-active { background: var(--dvs-primary); color: #fff; }
.dvs-view-btn:not(.is-active):hover,
.dvs-view-link:not(.is-active):hover { background: var(--dvs-bg-soft); color: var(--dvs-text); }

/* ===========================================================
   Listing Grid + Cards
   =========================================================== */
.dvs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 22px;
    margin-bottom: 30px;
}
.dvs-card {
    background: #fff;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: var(--dvs-trans);
    box-shadow: var(--dvs-shadow-sm);
}
.dvs-card:hover { transform: translateY(-3px); box-shadow: var(--dvs-shadow-md); border-color: var(--dvs-primary-light); }

.dvs-card-media {
    position: relative;
    aspect-ratio: 16 / 10;
    background: var(--dvs-bg-tint);
    overflow: hidden;
    display: block;
    text-decoration: none;
}
.dvs-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.dvs-card:hover .dvs-card-media img { transform: scale(1.04); }
.dvs-card-media .dvs-ph-svg { width: 100%; height: 100%; display: block; }

.dvs-card-badges { position: absolute; top: 12px; left: 12px; display: flex; gap: 6px; flex-wrap: wrap; }
.dvs-card-status { position: absolute; top: 12px; right: 12px; }

.dvs-card-body { padding: 16px 16px 8px; flex: 1; display: flex; flex-direction: column; }
.dvs-card-title {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.32;
    margin: 0 0 4px;
    letter-spacing: -.2px;
}
.dvs-card-title a { color: var(--dvs-text); text-decoration: none; }
.dvs-card-title a:hover { color: var(--dvs-primary); }
.dvs-card-pid {
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    font-size: 11px;
    color: var(--dvs-muted);
    margin-bottom: 10px;
    letter-spacing: .3px;
}
.dvs-card-meta {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    font-size: 12px;
    color: var(--dvs-text-light);
    margin-bottom: 8px;
}
.dvs-card-meta span { white-space: nowrap; }
.dvs-card-address {
    color: var(--dvs-muted);
    font-size: 13px;
    margin: 0 0 10px;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.dvs-card-specs {
    display: flex;
    gap: 14px;
    font-size: 13px;
    color: var(--dvs-text-light);
    margin-bottom: 12px;
    padding: 8px 0;
    border-top: 1px dashed var(--dvs-border);
    border-bottom: 1px dashed var(--dvs-border);
}
.dvs-card-specs strong { color: var(--dvs-text); font-weight: 700; }

.dvs-card-price-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin-top: auto;
    margin-bottom: 10px;
}
.dvs-price {
    font-size: 20px;
    font-weight: 800;
    color: var(--dvs-primary);
    letter-spacing: -.3px;
    line-height: 1.2;
}
.dvs-price.dvs-muted { color: var(--dvs-muted); font-size: 14px; font-weight: 600; }
.dvs-source {
    font-size: 11px;
    color: var(--dvs-muted);
    text-transform: uppercase;
    letter-spacing: .4px;
    font-weight: 600;
}

.dvs-card-contact {
    font-size: 13px;
    padding: 8px 0;
    border-top: 1px solid var(--dvs-border);
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.dvs-card-contact strong { color: var(--dvs-text); }
.dvs-card-contact a { color: var(--dvs-primary); text-decoration: none; font-weight: 600; }
.dvs-card-contact a:hover { text-decoration: underline; }

.dvs-card-footer {
    display: flex;
    gap: 6px;
    padding: 12px 16px;
    background: var(--dvs-bg-soft);
    border-top: 1px solid var(--dvs-border);
}
.dvs-card-footer .dvs-btn { flex: 1 1 auto; padding: 8px 10px; }
.dvs-card-footer .dvs-btn-wa,
.dvs-card-footer .dvs-btn-ghost { flex: 0 0 auto; }

/* Empty state */
.dvs-empty {
    text-align: center;
    padding: 60px 30px;
    background: #fff;
    border: 2px dashed var(--dvs-border);
    border-radius: var(--dvs-radius-lg);
}
.dvs-empty-icon { font-size: 56px; margin-bottom: 14px; opacity: .6; }
.dvs-empty h3 { font-size: 20px; margin-bottom: 8px; color: var(--dvs-text); }
.dvs-empty p { color: var(--dvs-muted); margin: 0 0 18px; }

.dvs-filter-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}
.dvs-filter-actions .dvs-btn { min-width: 120px; justify-content: center; }

/* Pagination */
.dvs-pagination { margin-top: 28px; }
.dvs-pagination .page-numbers,
.dvs-pagination .page-numbers li,
.dvs-pagination ul.page-numbers { list-style: none; margin: 0; padding: 0; }
.dvs-pagination ul.page-numbers {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.dvs-pagination .page-numbers a,
.dvs-pagination .page-numbers span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 12px;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-sm);
    text-decoration: none;
    color: var(--dvs-text);
    background: #fff;
    font-weight: 600;
    font-size: 14px;
    line-height: 1;
    box-shadow: var(--dvs-shadow-sm);
    transition: var(--dvs-trans);
}
.dvs-pagination .page-numbers a:hover { background: var(--dvs-bg-soft); border-color: var(--dvs-primary); color: var(--dvs-primary); }
.dvs-pagination .page-numbers .current { background: var(--dvs-primary); color: #fff; border-color: var(--dvs-primary); }
.dvs-pagination .page-numbers .dots { background: transparent; border-color: transparent; box-shadow: none; min-width: auto; padding: 0 4px; }

/* Map view */
.dvs-map-view {
    width: 100%;
    height: 640px;
    border-radius: var(--dvs-radius-lg);
    border: 1px solid var(--dvs-border);
    background: var(--dvs-bg-soft);
    overflow: hidden;
    box-shadow: var(--dvs-shadow);
}
.dvs-map-popup { font-family: var(--dvs-font); min-width: 200px; }
.dvs-map-popup img { width: 100%; height: 100px; object-fit: cover; border-radius: 4px; display: block; margin-bottom: 6px; }
.dvs-map-popup-title { font-size: 13px; font-weight: 700; color: var(--dvs-text); line-height: 1.3; margin: 0 0 4px; }
.dvs-map-popup-meta { font-size: 11px; color: var(--dvs-muted); margin-bottom: 6px; }
.dvs-map-popup-price { font-size: 14px; font-weight: 700; color: var(--dvs-primary); margin-bottom: 6px; }
.dvs-map-popup a { font-size: 12px; color: var(--dvs-primary); font-weight: 600; text-decoration: none; }

/* ===========================================================
   Share Dropdown
   =========================================================== */
.dvs-share-popover {
    position: absolute;
    z-index: 9999;
    background: #fff;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius);
    box-shadow: var(--dvs-shadow-lg);
    padding: 10px;
    min-width: 260px;
    animation: dvsFadeIn .18s ease;
}
.dvs-share-popover.dvs-share-popover-above { margin-top: -6px; }
.dvs-share-popover.dvs-share-popover-below { margin-top: 6px; }
@keyframes dvsFadeIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
.dvs-share-popover-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2px 6px 8px;
    border-bottom: 1px solid var(--dvs-border);
    margin-bottom: 8px;
    font-weight: 600;
    font-size: 13px;
    color: var(--dvs-text);
}
.dvs-share-popover-close {
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    color: var(--dvs-muted);
    padding: 0 4px;
}
.dvs-share-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
}
.dvs-share-opt {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 10px 6px;
    border: 1px solid transparent;
    border-radius: var(--dvs-radius-sm);
    background: var(--dvs-bg-soft);
    color: var(--dvs-text);
    text-decoration: none;
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    transition: var(--dvs-trans);
    font-family: inherit;
}
.dvs-share-opt:hover { background: #fff; border-color: var(--dvs-primary); color: var(--dvs-primary); transform: translateY(-2px); box-shadow: var(--dvs-shadow); }
.dvs-share-opt-icon {
    width: 36px; height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
}
.dvs-share-opt-wa .dvs-share-opt-icon { background: var(--dvs-wa); }
.dvs-share-opt-fb .dvs-share-opt-icon { background: #1877f2; }
.dvs-share-opt-tw .dvs-share-opt-icon { background: #000; }
.dvs-share-opt-ln .dvs-share-opt-icon { background: #0a66c2; }
.dvs-share-opt-tg .dvs-share-opt-icon { background: #0088cc; }
.dvs-share-opt-em .dvs-share-opt-icon { background: #6b7280; }
.dvs-share-opt-sm .dvs-share-opt-icon { background: #10b981; }
.dvs-share-opt-cp .dvs-share-opt-icon { background: var(--dvs-primary); }

/* ===========================================================
   Add / Edit Property Form
   =========================================================== */
.dvs-form-wrap { max-width: 1100px; }
.dvs-form-wrap h1, .dvs-form-wrap h2 { margin-bottom: 6px; }
.dvs-form-grid {
    background: #fff;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-lg);
    padding: 28px;
    box-shadow: var(--dvs-shadow);
}
.dvs-form-section {
    margin-bottom: 30px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--dvs-border);
}
.dvs-form-section:last-of-type { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.dvs-form-section > h3 {
    font-size: 16px;
    font-weight: 700;
    color: var(--dvs-primary);
    margin: 0 0 18px;
    padding-left: 12px;
    border-left: 4px solid var(--dvs-primary);
    letter-spacing: -.2px;
}

.dvs-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 12px;
}
.dvs-col { grid-column: span 1; }
.dvs-col-2 { grid-column: span 2; }
.dvs-col-full { grid-column: 1 / -1; }

.dvs-form-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid var(--dvs-border);
}
.dvs-current-image img {
    max-width: 180px;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-sm);
    padding: 4px;
    background: #fff;
}
.dvs-map-search-input { margin-bottom: 10px; }

/* ===========================================================
   Single Property Page
   =========================================================== */
.dvs-single-wrap { max-width: 1240px; }
.dvs-single-header {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}
.dvs-single-title { font-size: 32px; font-weight: 800; line-height: 1.2; letter-spacing: -.5px; margin: 0 0 12px; }
.dvs-single-meta { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.dvs-pid {
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    font-size: 13px;
    color: var(--dvs-text-light);
    background: var(--dvs-bg-tint);
    padding: 4px 10px;
    border-radius: var(--dvs-radius-sm);
    font-weight: 600;
}
.dvs-single-price { text-align: right; }
.dvs-price-big { display: block; font-size: 34px; font-weight: 800; color: var(--dvs-primary); letter-spacing: -.5px; }

.dvs-single-gallery { margin-bottom: 24px; }
.dvs-single-main-image img {
    width: 100%;
    max-height: 560px;
    object-fit: cover;
    border-radius: var(--dvs-radius-lg);
    box-shadow: var(--dvs-shadow);
}
.dvs-single-thumbs {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 10px;
    margin-top: 12px;
}
.dvs-single-thumbs img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: var(--dvs-radius-sm);
    cursor: pointer;
    border: 2px solid transparent;
    transition: var(--dvs-trans);
}
.dvs-single-thumbs img:hover { border-color: var(--dvs-primary); transform: translateY(-2px); }

.dvs-single-grid { display: grid; grid-template-columns: 1fr 340px; gap: 28px; }
.dvs-section {
    background: #fff;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-lg);
    padding: 24px;
    margin-bottom: 20px;
    box-shadow: var(--dvs-shadow-sm);
}
.dvs-section h2, .dvs-section h3 {
    margin: 0 0 16px;
    font-size: 18px;
    font-weight: 700;
    color: var(--dvs-text);
    padding-left: 12px;
    border-left: 4px solid var(--dvs-primary);
}
.dvs-details-table { width: 100%; border-collapse: collapse; }
.dvs-details-table td { padding: 12px 14px; border-bottom: 1px solid var(--dvs-border); font-size: 14px; }
.dvs-details-table tr:last-child td { border-bottom: none; }
.dvs-details-table td:first-child { font-weight: 600; color: var(--dvs-text-light); width: 38%; }

.dvs-side-card {
    background: #fff;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-lg);
    padding: 22px;
    margin-bottom: 20px;
    box-shadow: var(--dvs-shadow-sm);
}
.dvs-side-card h3 { margin: 0 0 14px; font-size: 16px; font-weight: 700; color: var(--dvs-text); }
.dvs-source-label { font-size: 11px; text-transform: uppercase; color: var(--dvs-muted); letter-spacing: .6px; margin: 0 0 10px; font-weight: 600; }
.dvs-side-card p { margin: 0 0 10px; }
.dvs-side-card p:last-child { margin-bottom: 0; }

.dvs-map {
    width: 100%;
    border-radius: var(--dvs-radius-lg);
    border: 1px solid var(--dvs-border);
    overflow: hidden;
    box-shadow: var(--dvs-shadow-sm);
}

/* ===========================================================
   Share buttons (static horizontal, in single property)
   =========================================================== */
.dvs-share { display: flex; gap: 8px; flex-wrap: wrap; }
.dvs-share-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 14px;
    border-radius: var(--dvs-radius-sm);
    background: var(--dvs-bg-soft);
    color: var(--dvs-text);
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
    border: 1px solid var(--dvs-border);
    cursor: pointer;
    font-family: inherit;
    transition: var(--dvs-trans);
}
.dvs-share-btn:hover { background: #fff; transform: translateY(-2px); box-shadow: var(--dvs-shadow); color: var(--dvs-text); }
.dvs-share-btn.dvs-wa { background: var(--dvs-wa); color: #fff; border-color: var(--dvs-wa); }
.dvs-share-btn.dvs-wa:hover { background: var(--dvs-wa-dark); color: #fff; }
.dvs-share-btn.dvs-fb { background: #1877f2; color: #fff; border-color: #1877f2; }
.dvs-share-btn.dvs-tw { background: #000; color: #fff; border-color: #000; }
.dvs-share-btn.dvs-ln { background: #0a66c2; color: #fff; border-color: #0a66c2; }
.dvs-share-btn.dvs-tg { background: #0088cc; color: #fff; border-color: #0088cc; }

/* ===========================================================
   Inquiry Form
   =========================================================== */
.dvs-inquiry-form {
    background: var(--dvs-primary-bg);
    border: 1px solid var(--dvs-primary-light);
    border-radius: var(--dvs-radius-lg);
    padding: 22px;
}
.dvs-inquiry-form h3 { margin: 0 0 14px; color: var(--dvs-primary); }

/* ===========================================================
   Agent Dashboard
   =========================================================== */
.dvs-dashboard-wrap h1 { font-size: 28px; font-weight: 800; margin: 0 0 4px; letter-spacing: -.5px; }
.dvs-dashboard-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; flex-wrap: wrap; gap: 12px; }

.dvs-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
    margin-bottom: 24px;
}
.dvs-stat {
    background: #fff;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-lg);
    padding: 18px;
    text-align: center;
    box-shadow: var(--dvs-shadow-sm);
    transition: var(--dvs-trans);
}
.dvs-stat:hover { transform: translateY(-2px); box-shadow: var(--dvs-shadow); }
.dvs-stat-num { display: block; font-size: 28px; font-weight: 800; color: var(--dvs-primary); line-height: 1.1; letter-spacing: -.5px; }
.dvs-stat-lbl { display: block; font-size: 11px; color: var(--dvs-muted); text-transform: uppercase; letter-spacing: .5px; margin-top: 6px; font-weight: 700; }
.dvs-stat-hot .dvs-stat-num { color: var(--dvs-danger); }
.dvs-stat-followup .dvs-stat-num { color: var(--dvs-warning); }

.dvs-dashboard-filters { background: #fff; border: 1px solid var(--dvs-border); border-radius: var(--dvs-radius-lg); padding: 16px; margin-bottom: 20px; box-shadow: var(--dvs-shadow-sm); }

.dvs-dashboard-table-wrap {
    overflow-x: auto;
    background: #fff;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-lg);
    margin-bottom: 24px;
    box-shadow: var(--dvs-shadow-sm);
}
.dvs-dashboard-table { width: 100%; border-collapse: collapse; min-width: 900px; }
.dvs-dashboard-table th,
.dvs-dashboard-table td {
    padding: 12px 14px;
    text-align: left;
    border-bottom: 1px solid var(--dvs-border);
    font-size: 13px;
    vertical-align: middle;
}
.dvs-dashboard-table th {
    background: var(--dvs-bg-soft);
    font-weight: 700;
    color: var(--dvs-text-light);
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: .5px;
    position: sticky;
    top: 0;
}
.dvs-dashboard-table tr:last-child td { border-bottom: none; }
.dvs-dashboard-table tr:hover td { background: #fafbfc; }
.dvs-status-quick {
    padding: 5px 10px;
    font-size: 12px;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-sm);
    background: #fff;
}
.dvs-actions-col { white-space: nowrap; }
.dvs-actions-col .dvs-btn { margin-right: 4px; }
.dvs-empty-row { text-align: center; color: var(--dvs-muted); padding: 50px !important; }

/* ===========================================================
   Admin Panel (frontend)
   =========================================================== */
.dvs-admin-fe { max-width: 1240px; }
.dvs-admin-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 22px;
    background: linear-gradient(135deg, var(--dvs-primary), var(--dvs-primary-hover));
    border-radius: var(--dvs-radius-lg);
    color: #fff;
    margin-bottom: 20px;
    box-shadow: var(--dvs-shadow);
}
.dvs-admin-brand { display: flex; align-items: center; gap: 14px; }
.dvs-admin-logo { display:block; height:52px; width:140px; object-fit:contain; object-position:left center; background:#fff; border-radius: var(--dvs-radius-sm); padding:8px 12px; border:1px solid var(--dvs-border); }
.dvs-admin-header h1 { font-size: 20px; font-weight: 800; color: #fff; margin: 0; letter-spacing: -.3px; }
.dvs-admin-sub { color: rgba(255,255,255,.8); margin: 3px 0 0; font-size: 12px; }
.dvs-admin-header-actions .dvs-btn { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.25); }
.dvs-admin-header-actions .dvs-btn:hover { background: rgba(255,255,255,.22); color: #fff; }

.dvs-tabs { display: flex; gap: 2px; background: #fff; border: 1px solid var(--dvs-border); border-radius: var(--dvs-radius-lg); padding: 6px; margin-bottom: 20px; overflow-x: auto; box-shadow: var(--dvs-shadow-sm); }
.dvs-tab {
    padding: 10px 18px;
    border-radius: var(--dvs-radius-sm);
    font-size: 14px;
    font-weight: 600;
    color: var(--dvs-text-light);
    text-decoration: none;
    white-space: nowrap;
    transition: var(--dvs-trans);
}
.dvs-tab:hover { background: var(--dvs-bg-soft); color: var(--dvs-text); }
.dvs-tab-active { background: var(--dvs-primary); color: #fff !important; box-shadow: var(--dvs-shadow-sm); }
.dvs-tab-active:hover { background: var(--dvs-primary-hover); color: #fff; }

.dvs-admin-card {
    background: #fff;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-lg);
    padding: 26px;
    margin-bottom: 18px;
    box-shadow: var(--dvs-shadow-sm);
}
.dvs-admin-card h2 { font-size: 18px; font-weight: 700; margin: 0 0 6px; }
.dvs-admin-card h3 { font-size: 14px; font-weight: 700; margin: 22px 0 12px; color: var(--dvs-primary); text-transform: uppercase; letter-spacing: .4px; border-bottom: 2px solid var(--dvs-primary-light); padding-bottom: 6px; }
.dvs-admin-card-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }

/* Overview cards */
.dvs-overview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}
.dvs-overview-actions { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.dvs-over-card {
    background: #fff;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-lg);
    padding: 20px;
    text-decoration: none;
    color: var(--dvs-text);
    display: flex;
    flex-direction: column;
    gap: 6px;
    transition: var(--dvs-trans);
    box-shadow: var(--dvs-shadow-sm);
}
.dvs-over-card:hover { transform: translateY(-3px); box-shadow: var(--dvs-shadow-md); border-color: var(--dvs-primary-light); color: var(--dvs-text); }
.dvs-over-icon { width: 44px; height: 44px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 22px; margin-bottom: 6px; }
.dvs-over-num { font-size: 30px; font-weight: 800; color: var(--dvs-primary); letter-spacing: -1px; line-height: 1; }
.dvs-over-lbl { font-size: 13px; color: var(--dvs-muted); font-weight: 600; }

.dvs-over-action {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #fff;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-lg);
    padding: 18px;
    text-decoration: none;
    color: var(--dvs-text);
    box-shadow: var(--dvs-shadow-sm);
    transition: var(--dvs-trans);
}
.dvs-over-action:hover { transform: translateY(-2px); box-shadow: var(--dvs-shadow-md); color: var(--dvs-text); }
.dvs-over-action-icon { font-size: 30px; width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; background: var(--dvs-primary-bg); border-radius: var(--dvs-radius); }
.dvs-over-action strong { display: block; font-size: 15px; }
.dvs-over-action small { color: var(--dvs-muted); font-size: 12px; }

/* Admin form styling */
.dvs-admin-form .dvs-row { margin-bottom: 14px; }
.dvs-admin-form label { text-transform: none; font-size: 13px; color: var(--dvs-text); font-weight: 600; letter-spacing: 0; margin-bottom: 6px; }

/* Filter chips (tabs) */
.dvs-filter-chips { display: flex; gap: 6px; flex-wrap: wrap; }

/* Inquiries list */
.dvs-inquiries-list { display: flex; flex-direction: column; gap: 12px; }
.dvs-inquiry-item {
    background: #fff;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius);
    padding: 16px 18px;
    box-shadow: var(--dvs-shadow-sm);
    transition: var(--dvs-trans);
}
.dvs-inq-pending { border-left: 4px solid var(--dvs-warning); }
.dvs-inq-approved { border-left: 4px solid var(--dvs-success); opacity: .85; }
.dvs-inq-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; flex-wrap: wrap; gap: 8px; }
.dvs-inq-who strong { display: block; font-size: 15px; }
.dvs-inq-who span { font-size: 12px; color: var(--dvs-muted); }
.dvs-inq-contact { display: flex; gap: 12px; flex-wrap: wrap; font-size: 13px; margin-bottom: 10px; }
.dvs-inq-contact a { color: var(--dvs-primary); text-decoration: none; font-weight: 600; }
.dvs-inq-prop { font-size: 13px; color: var(--dvs-muted); margin-bottom: 8px; }
.dvs-inq-prop a { color: var(--dvs-primary); font-weight: 600; }
.dvs-inq-msg { padding: 10px 14px; background: var(--dvs-bg-soft); border-radius: var(--dvs-radius-sm); font-size: 14px; color: var(--dvs-text); margin-bottom: 10px; }
.dvs-inq-msg p { margin: 0; }
.dvs-inq-actions { display: flex; gap: 6px; flex-wrap: wrap; }

/* Taxonomies */
.dvs-tax-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.dvs-term-list { display: flex; flex-direction: column; gap: 4px; margin: 12px 0; max-height: 280px; overflow-y: auto; padding-right: 4px; }
.dvs-term-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: var(--dvs-bg-soft);
    border-radius: var(--dvs-radius-sm);
    font-size: 14px;
}
.dvs-term-name { flex: 1; font-weight: 600; }
.dvs-term-count { color: var(--dvs-muted); font-size: 12px; }
.dvs-term-del,
.dvs-option-del {
    background: transparent;
    border: none;
    color: var(--dvs-danger);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    padding: 0 6px;
    opacity: .6;
    transition: var(--dvs-trans);
}
.dvs-term-del:hover,
.dvs-option-del:hover { opacity: 1; }
.dvs-add-term-form { display: flex; gap: 6px; }
.dvs-add-term-form input { flex: 1; }

.dvs-demo-stats { max-width: 260px; margin: 20px 0; }

/* ===========================================================
   Responsive
   =========================================================== */
@media (max-width: 900px) {
    .dvs-single-grid { grid-template-columns: 1fr; }
    .dvs-row { grid-template-columns: repeat(2, 1fr); }
    .dvs-col-2 { grid-column: span 2; }
    .dvs-single-title { font-size: 26px; }
    .dvs-price-big { font-size: 28px; }
    .dvs-admin-header { flex-direction: column; align-items: flex-start; gap: 14px; }
}
@media (max-width: 640px) {
    .dvs-wrap { padding: 16px 12px; }
    .dvs-form-grid { padding: 18px; }
    .dvs-row { grid-template-columns: 1fr; gap: 10px; }
    .dvs-col, .dvs-col-2, .dvs-col-full { grid-column: span 1; }
    .dvs-single-header { flex-direction: column; }
    .dvs-single-price { text-align: left; }
    .dvs-stats { grid-template-columns: repeat(2, 1fr); }
    .dvs-filter-search { flex-direction: column; }
    .dvs-filter-search .dvs-btn { width: 100%; }
    .dvs-card-footer { flex-wrap: wrap; }
    .dvs-tabs { padding: 4px; }
    .dvs-tab { padding: 8px 12px; font-size: 13px; }
    .dvs-admin-header { padding: 14px; }
    .dvs-admin-logo { height: 44px; }
    .dvs-share-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ===========================================================
   Print
   =========================================================== */
@media print {
    .dvs-share, .dvs-side-card .dvs-btn, .dvs-single-thumbs, .dvs-inquiry-form,
    .dvs-map, .dvs-form-actions, .dvs-filters, .dvs-dashboard-filters,
    .dvs-actions-col, .dvs-card-footer, .dvs-pagination, .dvs-active-chips,
    .dvs-results-bar .dvs-view-toggle, .dvs-tabs, .dvs-admin-header-actions,
    header, footer, nav, aside { display: none !important; }
    .dvs-wrap { max-width: 100%; padding: 0; color: #000; }
    .dvs-single-grid { grid-template-columns: 1fr; }
    .dvs-section, .dvs-side-card, .dvs-card { box-shadow: none; border: 1px solid #999; break-inside: avoid; }
    .dvs-single-main-image img { max-height: 300px; }
    a { color: #000; text-decoration: none; }
    body { background: #fff !important; }
}

/* ===========================================================
   1.2.0 UI refinement
   =========================================================== */
.dvs-listing-wrap,
.dvs-dashboard-wrap,
.dvs-admin-fe,
.dvs-single-wrap {
    background: transparent;
}

.dvs-inline-tools {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 18px;
}
.dvs-inline-tools-spread { justify-content: space-between; }
.dvs-inline-search { flex: 1 1 320px; }
.dvs-inline-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}

.dvs-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 12px;
    border-radius: 999px;
    border: 1px solid var(--dvs-border);
    background: #fff;
    color: var(--dvs-text-light);
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
}
.dvs-chip:hover { color: var(--dvs-text); background: var(--dvs-bg-soft); }
.dvs-chip-active { background: var(--dvs-primary); color: #fff; border-color: var(--dvs-primary); }
.dvs-chip-active:hover { color: #fff; }

.dvs-user-grid {
    display: grid;
    grid-template-columns: minmax(340px, 430px) minmax(680px, 1fr);
    gap: 24px;
    align-items: start;
}
.dvs-user-panel {
    background: var(--dvs-bg-soft);
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-lg);
    padding: 18px;
}
.dvs-user-panel h3 { margin-top: 0; }

.dvs-user-panel .dvs-dashboard-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.dvs-user-panel .dvs-dashboard-table {
    width: 100%;
    min-width: 820px;
}
.dvs-user-panel .dvs-dashboard-table th,
.dvs-user-panel .dvs-dashboard-table td {
    white-space: nowrap;
}
.dvs-user-panel .dvs-dashboard-table td:nth-child(1),
.dvs-user-panel .dvs-dashboard-table td:nth-child(2),
.dvs-user-panel .dvs-dashboard-table th:nth-child(1),
.dvs-user-panel .dvs-dashboard-table th:nth-child(2) {
    white-space: normal;
}
.dvs-inline-actions .dvs-btn,
.dvs-form-actions .dvs-btn {
    min-height: 42px;
    padding: 10px 16px;
    border-radius: 10px;
    font-weight: 700;
    box-shadow: 0 3px 10px rgba(15, 79, 179, 0.08);
}
.dvs-inline-actions .dvs-btn-secondary {
    background: #eef4fb;
    border-color: #d7e3f2;
    color: #12355f;
}
.dvs-inline-actions .dvs-btn-ghost {
    background: #fff;
    border-color: #d7e3f2;
}
.dvs-agent-form-panel .dvs-form-actions {
    margin-top: 4px;
}
.dvs-agent-form-panel .dvs-form-actions .dvs-btn-primary {
    min-width: 140px;
}

.dvs-admin-card .dvs-dashboard-table-wrap {
    box-shadow: none;
    margin-bottom: 0;
}

.dvs-inquiry-item {
    background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
}

.dvs-single-wrap .dvs-single-header,
.dvs-single-wrap .dvs-section,
.dvs-single-wrap .dvs-side-card,
.dvs-dashboard-wrap .dvs-dashboard-table-wrap,
.dvs-dashboard-wrap .dvs-stats,
.dvs-listing-wrap .dvs-filters,
.dvs-admin-fe .dvs-admin-card,
.dvs-admin-fe .dvs-tabs,
.dvs-admin-fe .dvs-admin-header {
    box-shadow: 0 8px 24px rgba(16, 24, 40, 0.06);
}

.dvs-single-wrap {
    padding-top: 36px;
    padding-bottom: 36px;
}
.dvs-single-title { line-height: 1.15; }
.dvs-single-price { align-self: start; }

.dvs-entry-reset h1.entry-title,
body.single-dvs_property .entry-header,
body.single-dvs_property .ast-single-post-order,
body.single-dvs_property .post-navigation,
body.single-dvs_property .comments-area {
    display: none !important;
}


@media (max-width: 1500px) {
    .dvs-user-grid {
        grid-template-columns: 1fr;
    }
    .dvs-user-panel .dvs-dashboard-table {
        min-width: 860px;
    }
}

@media (max-width: 1024px) {
    .dvs-user-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .dvs-inline-tools-spread {
        align-items: stretch;
    }
    .dvs-inline-search,
    .dvs-inline-actions {
        width: 100%;
    }
    .dvs-inline-actions .dvs-btn {
        flex: 1 1 calc(50% - 8px);
    }
}

.dvs-inline-tools-dates {
    align-items: end;
}
.dvs-inline-date-fields {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.dvs-inline-date-fields label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 140px;
}
.dvs-inline-date-fields span {
    font-size: 12px;
    font-weight: 700;
    color: var(--dvs-text-light);
    text-transform: uppercase;
    letter-spacing: .03em;
}
.dvs-inline-date-fields input[type="date"] {
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-sm);
    background: #fff;
}
.dvs-admin-list-meta {
    margin: 10px 0 18px;
    font-size: 13px;
}

@media (max-width: 767px) {
    .dvs-inline-date-fields {
        width: 100%;
    }
    .dvs-inline-date-fields label {
        flex: 1 1 calc(50% - 6px);
        min-width: 0;
    }
}

.dvs-subtabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 18px 0 22px;
}
.dvs-subtab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 16px;
    border-radius: 999px;
    border: 1px solid var(--dvs-border);
    background: #fff;
    color: var(--dvs-text);
    font-weight: 700;
    text-decoration: none;
}
.dvs-subtab-active,
.dvs-subtab:hover {
    background: var(--dvs-primary);
    color: #fff;
    border-color: var(--dvs-primary);
}
.dvs-report-summary {
    margin-top: 16px;
}
.dvs-report-filters {
    padding: 18px;
    border: 1px solid var(--dvs-border);
    border-radius: var(--dvs-radius-lg);
    background: linear-gradient(180deg, #f9fbff 0%, #ffffff 100%);
    margin-bottom: 18px;
}
.dvs-report-filters label {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: var(--dvs-text-light);
    text-transform: uppercase;
    letter-spacing: .03em;
    margin-bottom: 6px;
}
.dvs-report-actions,
.dvs-form-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}
.dvs-report-meta {
    margin: 12px 0 16px;
    color: var(--dvs-text-light);
    font-size: 13px;
}
@media (max-width: 767px) {
    .dvs-subtabs {
        gap: 8px;
    }
    .dvs-subtab {
        width: 100%;
    }
}


.dvs-help {
    display: block;
    margin-top: 8px;
    color: var(--dvs-text-light);
    font-size: 12px;
    line-height: 1.5;
}

.dvs-single-video {
    border: 1px solid var(--dvs-border);
    border-radius: 14px;
    overflow: hidden;
    background: #000;
}

.dvs-single-video iframe,
.dvs-single-video video {
    display: block;
    width: 100%;
    min-height: 420px;
    border: 0;
    background: #000;
}

@media (max-width: 767px) {
    .dvs-single-video iframe,
    .dvs-single-video video {
        min-height: 240px;
    }
}


/* Agent form polish */
.dvs-agent-form-panel {
    background: linear-gradient(180deg, #f8fbff 0%, #f2f7ff 100%);
}
.dvs-panel-head {
    margin-bottom: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--dvs-border);
}
.dvs-panel-head h3 { margin: 0 0 6px; }
.dvs-agent-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.dvs-agent-form-grid .dvs-form-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
}
.dvs-agent-form-grid .dvs-span-2 { grid-column: span 2; }
.dvs-agent-form-grid label {
    font-size: 12px;
    font-weight: 700;
    color: var(--dvs-text);
    letter-spacing: .01em;
}
.dvs-agent-form-grid input,
.dvs-agent-form-grid select,
.dvs-agent-form-grid textarea {
    width: 100%;
    min-height: 46px;
    padding: 12px 14px;
    border: 1px solid var(--dvs-border);
    border-radius: 12px;
    background: #fff;
    box-shadow: inset 0 1px 2px rgba(16,24,40,.03);
}
.dvs-agent-form-grid textarea {
    min-height: 118px;
    resize: vertical;
}
.dvs-agent-form-grid input:focus,
.dvs-agent-form-grid select:focus,
.dvs-agent-form-grid textarea:focus {
    border-color: var(--dvs-primary);
    box-shadow: 0 0 0 3px rgba(14,93,214,.12);
    outline: none;
}
.dvs-req { color: #dc2626; }
.dvs-user-panel .dvs-dashboard-table {
    min-width: 860px;
}
@media (max-width: 767px) {
    .dvs-agent-form-grid { grid-template-columns: 1fr; }
    .dvs-agent-form-grid .dvs-span-2 { grid-column: span 1; }
}


/* Agent dashboard polish */
.dvs-dashboard-wrap { max-width: 1240px; }
.dvs-dashboard-header { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.dvs-dashboard-header h2 { margin:0; font-size:42px; line-height:1.05; letter-spacing:-1px; }
.dvs-dashboard-filters-polished { padding:18px 18px 12px; }
.dvs-dashboard-filter-grid { grid-template-columns: minmax(280px, 1.5fr) minmax(220px, .9fr); align-items:end; }
.dvs-dashboard-filter-actions { margin-top:8px; }
.dvs-dashboard-filter-actions .dvs-btn { min-width:110px; justify-content:center; }
.dvs-dashboard-table-card { border-radius:18px; overflow:hidden; }
.dvs-dashboard-table-enhanced { min-width: 1100px; }
.dvs-dashboard-table-enhanced th { padding:14px 12px; font-size:10px; letter-spacing:.08em; }
.dvs-dashboard-table-enhanced td { padding:14px 12px; }
.dvs-dashboard-table-enhanced .dvs-col-title small,
.dvs-dashboard-table-enhanced .dvs-col-contact small { display:block; margin-top:6px; color:var(--dvs-muted); line-height:1.45; }
.dvs-dashboard-table-enhanced .dvs-col-contact strong { display:block; }
.dvs-item-title { font-weight:700; color:var(--dvs-primary); text-decoration:none; line-height:1.45; }
.dvs-item-title:hover { text-decoration:underline; }
.dvs-id-badge { display:inline-flex; align-items:center; padding:7px 10px; border-radius:999px; background:var(--dvs-primary-bg); color:var(--dvs-primary); font-size:11px; font-weight:700; }
.dvs-type-pill { display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; background:#f3f4f6; color:var(--dvs-text-light); font-weight:700; font-size:11px; text-transform:capitalize; }
.dvs-price-strong { color:var(--dvs-primary); font-size:14px; }
.dvs-dashboard-table-enhanced .dvs-status-quick { min-width:120px; padding:9px 12px; border-radius:10px; font-weight:600; }
.dvs-actions-stack { display:flex; flex-wrap:wrap; gap:6px; }
.dvs-actions-stack .dvs-btn { margin-right:0; min-width:56px; justify-content:center; }
.dvs-actions-stack .dvs-share-btn { cursor:pointer; }
.dvs-pagination-dashboard { display:flex; justify-content:center; margin-top:18px; }
.dvs-pagination-dashboard ul.page-numbers { background:#fff; border:1px solid var(--dvs-border); border-radius:999px; padding:6px; box-shadow:var(--dvs-shadow-sm); }
.dvs-pagination-dashboard .page-numbers li { display:flex; }
.dvs-pagination-dashboard .page-numbers a,
.dvs-pagination-dashboard .page-numbers span { min-width:38px; height:38px; border-radius:999px; font-weight:700; }
.dvs-pagination-dashboard .page-numbers .prev,
.dvs-pagination-dashboard .page-numbers .next { padding:0 14px; min-width:auto; }
.dvs-dashboard-table-wrap::-webkit-scrollbar { height:10px; }
.dvs-dashboard-table-wrap::-webkit-scrollbar-track { background:#eef2f7; border-radius:999px; }
.dvs-dashboard-table-wrap::-webkit-scrollbar-thumb { background:#b8c3d6; border-radius:999px; }
@media (max-width: 782px) {
  .dvs-dashboard-header h2 { font-size:32px; }
  .dvs-dashboard-filter-grid { grid-template-columns:1fr; }
  .dvs-dashboard-filter-actions .dvs-btn { min-width:0; flex:1 1 calc(50% - 8px); }
}


/* ===========================================================
   Dashboard AJAX filter polish
   =========================================================== */
.dvs-dashboard-wrap .dvs-dashboard-filters-polished{
    background:linear-gradient(180deg,#ffffff 0%, #fbfdff 100%);
    border:1px solid var(--dvs-border);
    border-radius:18px;
    padding:18px;
    margin:0 0 18px;
    box-shadow:var(--dvs-shadow-sm);
}
.dvs-dashboard-filter-grid{
    display:grid;
    grid-template-columns:2fr 1.2fr;
    gap:12px;
    align-items:end;
}
.dvs-dashboard-filter-grid .dvs-filter{
    display:flex;
    flex-direction:column;
    gap:6px;
}
.dvs-dashboard-filter-grid .dvs-filter-search{
    grid-column:1 / -1;
}
.dvs-dashboard-filters-polished input[type="text"],
.dvs-dashboard-filters-polished select{
    min-height:46px;
    border-radius:12px;
    border:1px solid var(--dvs-border);
    background:#fff;
    box-shadow:inset 0 1px 2px rgba(16,24,40,.03);
}
.dvs-dashboard-filters-polished input[type="text"]:focus,
.dvs-dashboard-filters-polished select:focus{
    border-color:#a9c4f5;
    box-shadow:0 0 0 4px rgba(13,71,161,.08);
    outline:none;
}
.dvs-dashboard-filter-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid #edf2f7;
}
.dvs-dashboard-filter-actions .dvs-btn{
    min-width:108px;
}
.dvs-dashboard-results{ position:relative; min-height:120px; }
.dvs-dashboard-results.is-loading::after{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(255,255,255,.55);
    border-radius:18px;
}
.dvs-dashboard-table-card{
    border-radius:18px;
    overflow:hidden;
}
.dvs-dashboard-table-enhanced tbody tr{
    transition:background .18s ease;
}
.dvs-dashboard-table-enhanced tbody tr:hover td{
    background:#fbfcfe;
}
.dvs-pagination-dashboard{
    margin-top:16px;
}
.dvs-pagination-dashboard .page-numbers{
    list-style:none;
    margin:0;
}
.dvs-pagination-dashboard ul.page-numbers{
    display:inline-flex;
    align-items:center;
    gap:6px;
}
.dvs-pagination-dashboard .page-numbers li{
    margin:0;
}
.dvs-pagination-dashboard .page-numbers a,
.dvs-pagination-dashboard .page-numbers span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:40px;
    height:40px;
    padding:0 12px;
    border:1px solid var(--dvs-border);
    background:#fff;
    color:var(--dvs-text);
    text-decoration:none;
    box-shadow:none;
}
.dvs-pagination-dashboard .page-numbers .current{
    background:var(--dvs-primary);
    border-color:var(--dvs-primary);
    color:#fff;
}
.dvs-pagination-dashboard .page-numbers a:hover{
    background:var(--dvs-primary-bg);
    border-color:#bfd3f6;
}
@media (max-width: 900px){
    .dvs-dashboard-filter-grid{
        grid-template-columns:1fr;
    }
    .dvs-dashboard-filter-grid .dvs-filter-search{
        grid-column:auto;
    }
    .dvs-dashboard-filter-actions .dvs-btn{
        flex:1 1 calc(50% - 10px);
        min-width:0;
    }
}


/* Unified styling pass */
.dvs-form-wrap,
.dvs-single-wrap,
.dvs-dashboard-wrap,
.dvs-admin-fe {
    max-width: 1240px;
}
.dvs-form-wrap > h2,
.dvs-dashboard-header h2,
.dvs-admin-fe .dvs-tab-content > .dvs-admin-card > h2,
.dvs-single-title { letter-spacing: -.4px; }
.dvs-form-grid,
.dvs-dashboard-table-card,
.dvs-admin-card,
.dvs-single-header,
.dvs-single-wrap .dvs-section,
.dvs-single-wrap .dvs-side-card {
    background: #fff;
    border: 1px solid var(--dvs-border);
    border-radius: 16px;
    box-shadow: var(--dvs-shadow);
}
.dvs-form-grid { padding: 10px 0; }
.dvs-form-section > h3,
.dvs-section > h2,
.dvs-panel-head h3 { font-size: 20px; font-weight: 800; }
.dvs-help { display:block; margin-top:8px; color: var(--dvs-muted); font-size:12px; }
.dvs-current-image img { box-shadow: var(--dvs-shadow); }

/* Property page filters */
.dvs-filters,
.dvs-dashboard-filters,
.dvs-admin-inquiries-form {
    border-radius: 16px;
    box-shadow: var(--dvs-shadow);
}
.dvs-filter-grid { gap: 14px; }
.dvs-filter-actions, .dvs-dashboard-filter-actions, .dvs-inline-actions { gap: 10px; flex-wrap: wrap; }
.dvs-view-toggle, .dvs-results-bar .dvs-view-toggle { display:flex; gap:8px; align-items:center; }
.dvs-view-link {
    display:inline-flex; align-items:center; justify-content:center; gap:6px;
    padding:8px 14px; border:1px solid var(--dvs-border); border-radius:999px;
    background:#fff; color:var(--dvs-text); font-size:13px; font-weight:700;
    box-shadow:var(--dvs-shadow-sm);
}
.dvs-view-link.is-active, .dvs-view-link:hover { background:var(--dvs-primary); color:#fff; border-color:var(--dvs-primary); }

/* Add property form */
.dvs-form-wrap .dvs-form-grid { padding: 18px; }
.dvs-row { gap: 16px; }
.dvs-form-actions { display:flex; gap:10px; align-items:center; margin-top: 18px; }
.dvs-form-wrap input[type="file"] { padding: 10px; background: var(--dvs-bg-soft); border: 1px dashed var(--dvs-border-strong); }

/* Single property detail tweaks */
.dvs-single-header { padding: 20px 24px; margin-bottom: 18px; }
.dvs-single-gallery { margin-bottom: 18px; }
.dvs-single-main-image img, .dvs-single-placeholder { border-radius: 14px; box-shadow: var(--dvs-shadow); }
.dvs-single-video iframe, .dvs-single-video video { width:100%; min-height:420px; border:0; border-radius:14px; background:#000; }
.dvs-details-table td:first-child { width: 32%; font-weight: 700; color: var(--dvs-text-light); }

/* Overview cleanup */
.dvs-overview-grid { gap: 18px; }
.dvs-over-card, .dvs-over-action { min-height: 108px; }

/* Admin inquiries ajax panel */
.dvs-admin-inquiries-wrap { padding: 0; overflow: hidden; }
.dvs-admin-inquiries-results { padding: 20px; }
.dvs-admin-inquiries-form { margin-bottom: 18px; }
.dvs-admin-inquiries-pagination { margin-top: 20px; }
.dvs-chip { transition: var(--dvs-trans); }
.dvs-chip:hover { transform: translateY(-1px); }

/* Agents form/table */
.dvs-agent-form-panel { border-radius: 16px; }
.dvs-agent-form-grid { gap: 14px; }

/* Responsive consistency */
@media (max-width: 900px) {
    .dvs-single-video iframe, .dvs-single-video video { min-height: 260px; }
    .dvs-form-wrap .dvs-form-grid, .dvs-admin-inquiries-results { padding: 14px; }
}


.dvs-help{display:block;margin-top:6px;font-size:12px;color:#64748b}
.dvs-loading{opacity:.65;pointer-events:none;position:relative}
.dvs-loading:after{content:'Loading...';position:absolute;top:18px;right:18px;background:#0b5ed7;color:#fff;padding:6px 10px;border-radius:999px;font-size:12px;z-index:5}
.dvs-agent-form-grid input[type=file]{padding:10px;background:#fff}


.dvs-share-simple { display:flex; flex-direction:column; gap:10px; }
.dvs-print-grid { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr); gap:18px; }


/* Frontend consistency pass v1.7.3 */
.dvs-admin-header{padding:22px 26px;border:1px solid transparent;}
.dvs-tabs{padding:8px;gap:8px;}
.dvs-tab{min-height:42px;display:inline-flex;align-items:center;justify-content:center;}
.dvs-btn,.dvs-btn-primary,.dvs-btn-secondary,.dvs-btn-ghost{min-height:42px;border-radius:10px;font-weight:700;box-shadow:none;}
.dvs-inline-actions .dvs-btn,.dvs-form-actions .dvs-btn,.dvs-card-footer .dvs-btn{box-shadow:none;}
.dvs-over-card,.dvs-over-action,.dvs-admin-card,.dvs-user-panel,.dvs-inquiry-item,.dvs-report-filters,.dvs-dashboard-filters-polished,.dvs-filters,.dvs-single-header,.dvs-single-wrap .dvs-section,.dvs-single-wrap .dvs-side-card{border-radius:18px;}
.dvs-over-card,.dvs-over-action{min-height:0;}
.dvs-dashboard-table th,.dvs-dashboard-table td{padding:14px 12px;}
.dvs-dashboard-table th{font-size:10px;letter-spacing:.07em;}
.dvs-actions-stack .dvs-btn,.dvs-actions-col .dvs-btn{min-width:64px;}
.dvs-term-item{min-height:48px;border:1px solid var(--dvs-border);}
.dvs-add-term-form input,.dvs-add-term-form .dvs-btn{min-height:44px;}
.dvs-admin-header-actions .dvs-btn{padding-inline:18px;}
.dvs-single-header{align-items:flex-start;gap:16px;}
.dvs-single-price{text-align:right;min-width:220px;}
.dvs-section>h2,.dvs-panel-head h3,.dvs-form-section>h3{font-size:18px;}
.dvs-inquiry-form{background:var(--dvs-bg-soft);border:1px solid var(--dvs-border);border-radius:18px;padding:18px;}
.dvs-inquiry-form .dvs-row{gap:12px;}
.dvs-view-link{min-height:38px;}
.dvs-admin-inquiries-form .dvs-inline-actions .dvs-btn,
.dvs-report-actions .dvs-btn,
.dvs-dashboard-filter-actions .dvs-btn{min-width:120px;}
@media (max-width:767px){
  .dvs-single-price{min-width:0;text-align:left;}
  .dvs-admin-logo{width:120px;height:46px;}
}


/* Header visibility/logo fit fix v1.8.2 */
.dvs-admin-header{align-items:center;gap:18px;}
.dvs-admin-brand{display:flex;align-items:center;gap:18px;min-width:0;flex:1 1 auto;}
.dvs-admin-brand-copy{display:flex;flex-direction:column;justify-content:center;min-width:0;}
.dvs-admin-logo{width:auto;min-width:140px;max-width:320px;height:60px;object-fit:contain;object-position:left center;padding:10px 14px;background:#fff;border:1px solid var(--dvs-border);}
.dvs-admin-header h1{color:var(--dvs-brand-text)!important;display:block!important;line-height:1.2;margin:0;}
.dvs-admin-sub{color:var(--dvs-muted)!important;display:block!important;line-height:1.4;margin:4px 0 0;}
.dvs-admin-header-actions{margin-left:auto;flex:0 0 auto;}
@media (max-width: 767px){
  .dvs-admin-header{align-items:flex-start;}
  .dvs-admin-logo{max-width:220px;height:54px;}
  .dvs-admin-header-actions{width:100%;}
  .dvs-admin-header-actions .dvs-btn{width:100%;justify-content:center;}
}

/* Spacing + consistency pass v1.8.3 */
.dvs-admin-fe{
  --dvs-space-1:12px;
  --dvs-space-2:16px;
  --dvs-space-3:20px;
  --dvs-space-4:24px;
  --dvs-space-5:32px;
}
.dvs-admin-fe .dvs-admin-header,
.dvs-admin-fe .dvs-tabs,
.dvs-admin-fe .dvs-admin-card,
.dvs-admin-fe .dvs-over-card,
.dvs-admin-fe .dvs-over-action,
.dvs-admin-fe .dvs-user-panel,
.dvs-admin-fe .dvs-agent-form-panel,
.dvs-admin-fe .dvs-dashboard-table-wrap,
.dvs-admin-fe .dvs-report-filters,
.dvs-admin-fe .dvs-inquiry-item,
.dvs-admin-fe .dvs-form-wrap,
.dvs-admin-fe .dvs-section,
.dvs-admin-fe .dvs-side-card{
  margin-bottom:var(--dvs-space-4);
}
.dvs-admin-fe .dvs-admin-header{
  padding:var(--dvs-space-3) var(--dvs-space-4);
  border-radius:20px;
}
.dvs-admin-fe .dvs-admin-brand{gap:var(--dvs-space-3);}
.dvs-admin-fe .dvs-admin-logo{
  min-width:160px;
  max-width:360px;
  height:68px;
  padding:12px 16px;
}
.dvs-admin-fe .dvs-tabs{
  padding:8px;
  gap:8px;
  margin-top:0;
  margin-bottom:var(--dvs-space-4);
}
.dvs-admin-fe .dvs-tab{
  min-height:44px;
  padding:11px 18px;
}
.dvs-admin-fe .dvs-admin-card{
  padding:var(--dvs-space-4);
  border-radius:20px;
}
.dvs-admin-fe .dvs-admin-card h2{
  margin:0 0 8px;
  line-height:1.25;
}
.dvs-admin-fe .dvs-admin-card > .dvs-muted,
.dvs-admin-fe .dvs-admin-card > p.dvs-muted{
  margin:0 0 var(--dvs-space-4);
}
.dvs-admin-fe .dvs-admin-card h3{
  margin:0 0 var(--dvs-space-2);
  padding-bottom:8px;
}
.dvs-admin-fe .dvs-admin-form .dvs-row{
  gap:var(--dvs-space-2);
  margin-bottom:var(--dvs-space-2);
}
.dvs-admin-fe .dvs-admin-form label{
  margin-bottom:8px;
}
.dvs-admin-fe .dvs-admin-form input:not([type="color"]),
.dvs-admin-fe .dvs-admin-form select,
.dvs-admin-fe .dvs-admin-form textarea,
.dvs-admin-fe .dvs-agent-form-panel input,
.dvs-admin-fe .dvs-agent-form-panel select,
.dvs-admin-fe .dvs-agent-form-panel textarea{
  min-height:46px;
  padding:12px 14px;
}
.dvs-admin-fe .dvs-admin-form textarea,
.dvs-admin-fe .dvs-agent-form-panel textarea{
  min-height:110px;
}
.dvs-admin-fe .dvs-admin-form input[type="color"]{
  width:100%;
  min-height:48px;
  padding:4px;
}
.dvs-admin-fe .dvs-form-actions{
  margin-top:var(--dvs-space-4);
  padding-top:var(--dvs-space-3);
}
.dvs-admin-fe .dvs-overview-grid,
.dvs-admin-fe .dvs-user-grid,
.dvs-admin-fe .dvs-tax-grid{
  gap:var(--dvs-space-3);
}
.dvs-admin-fe .dvs-dashboard-table th,
.dvs-admin-fe .dvs-dashboard-table td{
  padding:15px 14px;
}
.dvs-admin-fe .dvs-panel-head{
  margin-bottom:var(--dvs-space-3);
  padding-bottom:var(--dvs-space-2);
}
.dvs-admin-fe .dvs-inquiry-item{
  padding:var(--dvs-space-3);
}
.dvs-admin-fe .dvs-shortcode-grid{
  gap:var(--dvs-space-2);
}
.dvs-admin-fe .dvs-shortcode-grid > div{
  padding:18px;
  border-radius:16px;
}
.dvs-admin-fe .dvs-btn,
.dvs-admin-fe .dvs-btn-primary,
.dvs-admin-fe .dvs-btn-secondary,
.dvs-admin-fe .dvs-btn-ghost{
  min-height:44px;
  padding:10px 18px;
}
@media (max-width: 767px){
  .dvs-admin-fe .dvs-admin-header,
  .dvs-admin-fe .dvs-admin-card{padding:18px;}
  .dvs-admin-fe .dvs-admin-logo{min-width:132px;max-width:240px;height:58px;}
  .dvs-admin-fe .dvs-tabs{padding:6px;}
}


.dvs-single-gallery.dvs-has-slider .dvs-single-main-image{position:relative;overflow:hidden}
.dvs-gallery-main-img{display:block;width:100%;height:auto;cursor:pointer}
.dvs-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border:none;border-radius:999px;background:rgba(17,17,17,.65);color:#fff;font-size:28px;line-height:1;cursor:pointer;z-index:3;display:flex;align-items:center;justify-content:center}
.dvs-gallery-prev{left:14px}
.dvs-gallery-next{right:14px}
.dvs-single-thumbs{display:flex;gap:10px;overflow:auto;padding-top:10px}
.dvs-thumb-btn{padding:0;border:2px solid transparent;background:#fff;border-radius:10px;overflow:hidden;cursor:pointer;flex:0 0 88px}
.dvs-thumb-btn.is-active{border-color:var(--dvs-primary, #d71920)}
.dvs-thumb-btn img{display:block;width:100%;height:68px;object-fit:cover}

/* v2.4.0 - Reports pagination/performance */
.dvs-report-pagination {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 16px;
    flex-wrap: wrap;
}
.dvs-report-page-count {
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
}

/* v2.6.0 Lead Management */
.dvs-lead-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;padding:10px 12px;border:1px solid var(--dvs-border,#e5e7eb);border-radius:12px;background:var(--dvs-bg-soft,#f8fafc);font-size:13px;}
.dvs-lead-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;background:#eef2ff;color:#3730a3;}
.dvs-lead-new{background:#eff6ff;color:#1d4ed8;}
.dvs-lead-contacted{background:#fef3c7;color:#92400e;}
.dvs-lead-in_progress{background:#ecfdf5;color:#047857;}
.dvs-lead-closed{background:#f3f4f6;color:#374151;}
.dvs-lead-form{margin:12px 0;padding:12px;border:1px solid var(--dvs-border,#e5e7eb);border-radius:14px;background:#fff;}
.dvs-lead-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px;}
.dvs-lead-form label span{display:block;font-size:12px;font-weight:700;margin-bottom:4px;color:var(--dvs-text,#111827);}
.dvs-lead-form select,.dvs-lead-form input[type="date"],.dvs-lead-form textarea{width:100%;max-width:100%;border:1px solid var(--dvs-border,#d1d5db);border-radius:10px;padding:8px;background:#fff;}
.dvs-lead-note-field{display:block;margin-top:8px;}
.dvs-lead-actions{display:flex;align-items:center;gap:10px;margin-top:10px;}
.dvs-lead-save-msg{font-size:13px;color:#047857;font-weight:600;}
.dvs-lead-save-msg.dvs-error{color:#b91c1c;}
.dvs-lead-notes{margin-top:10px;font-size:13px;}
.dvs-lead-notes summary{cursor:pointer;font-weight:700;}
.dvs-lead-notes ul{margin:8px 0 0 18px;padding:0;}
.dvs-lead-notes li{margin-bottom:8px;}
.dvs-lead-notes span{display:inline;margin-left:6px;color:#6b7280;font-size:12px;}
.dvs-lead-notes p{margin:3px 0 0;}
.dvs-lead-form-backend{min-width:360px;}
.dvs-lead-form-backend .dvs-lead-grid{grid-template-columns:1fr;}
@media (max-width: 782px){.dvs-lead-grid{grid-template-columns:1fr;}.dvs-lead-form-backend{min-width:0;}}

/* Address geocoding status messages */
#dvs-address-status.dvs-status-loading{color:#0d47a1;}
#dvs-address-status.dvs-status-loading::before{content:"⏳ ";}
#dvs-address-status.dvs-status-success{color:#1b5e20;}
#dvs-address-status.dvs-status-success::before{content:"✓ ";}
#dvs-address-status.dvs-status-error{color:#b71c1c;}
#dvs-address-status.dvs-status-error::before{content:"⚠ ";}
.dvs-advanced-location summary:hover{color:#0d47a1;}
.dvs-advanced-location[open] summary{margin-bottom:8px;}

/* === Google Maps paste flow (form Location section, v3.6.4) ============ */
.dvs-gmaps-flow{padding:14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;}
.dvs-gmaps-steps{list-style:none;margin:0 0 12px;padding:0;}
.dvs-gmaps-steps li{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.dvs-gmaps-steps li:last-child{margin-bottom:0;}
.dvs-gmaps-step-num{display:inline-flex;align-items:center;justify-content:center;flex:0 0 26px;width:26px;height:26px;border-radius:50%;background:#dc2626;color:#fff;font-weight:700;font-size:13px;}
.dvs-gmaps-step-text{flex:1;min-width:220px;font-size:14px;color:#374151;line-height:1.4;}
.dvs-gmaps-step-text strong{color:#111827;}
.dvs-gmaps-steps li > .dvs-btn{flex:0 0 auto;}
.dvs-gmaps-paste-row{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.dvs-gmaps-paste-row input[type="text"],.dvs-gmaps-paste-row input[type="url"]{flex:1;min-width:260px;padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px;background:#fff;}
.dvs-gmaps-paste-row input[type="text"]:focus,.dvs-gmaps-paste-row input[type="url"]:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.15);}
.dvs-gmaps-paste-row .dvs-btn{white-space:nowrap;}
.dvs-gmaps-status{min-height:22px;font-size:13px;margin-bottom:6px;}
.dvs-gmaps-status.dvs-status-loading{color:#0d47a1;}
.dvs-gmaps-status.dvs-status-loading::before{content:"⏳ ";}
.dvs-gmaps-status.dvs-status-success{color:#1b5e20;font-weight:600;}
.dvs-gmaps-status.dvs-status-error{color:#b71c1c;font-weight:600;}
.dvs-gmaps-status.dvs-status-error::before{content:"⚠ ";}
.dvs-gmaps-preview{margin-top:10px;padding:10px;background:#fff;border:1px solid #d1fae5;border-radius:8px;}
.dvs-gmaps-preview-ok{font-size:13px;font-weight:600;color:#047857;margin-bottom:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;}
.dvs-gmaps-preview iframe{width:100%;height:320px;border:1px solid #e2e8f0;border-radius:6px;display:block;}
.dvs-gmaps-preview-actions{display:flex;gap:8px;justify-content:space-between;align-items:center;margin-top:8px;flex-wrap:wrap;}
@media (max-width:600px){
  .dvs-gmaps-steps li{flex-direction:column;align-items:flex-start;}
  .dvs-gmaps-steps li > .dvs-btn{margin-left:36px;}
  .dvs-gmaps-paste-row{flex-direction:column;}
  .dvs-gmaps-paste-row .dvs-btn{width:100%;}
  .dvs-gmaps-preview iframe{height:280px;}
}

/* ===========================================================
   v3.7.1 — Coordinated UI/UX polish pass
   ----------------------------------------------------------
   This block is intentionally placed LAST so its selectors
   override anything earlier in the file. Goals:
     1. Fix Cities/Types card layout collisions
     2. Compact inquiry cards (collapsed by default, expand on click)
     3. Stat row + Actions cell consistent on every screen
     4. Listing grid: 4 → 3 → 2 → 1 columns at clean breakpoints
     5. All admin/dashboard tables horizontally scrollable on narrow
     6. Equal-height cards on listings (already mostly there; sealed)
     7. Single property mobile compaction
     8. Coordinated typography, spacing, color cohesion
   =========================================================== */

/* ---------- 8. Foundation tightening ---------- */
.dvs-wrap{ padding-inline: clamp(14px, 4vw, 24px); }
.dvs-wrap h2{ letter-spacing: -.4px; }
.dvs-wrap h3{ letter-spacing: -.2px; }
.dvs-wrap .dvs-section{ margin-bottom: 22px; }

/* Buttons — consistent heights across all contexts */
.dvs-wrap .dvs-btn{
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-weight: 600;
  border-radius: var(--dvs-radius-sm);
  transition: var(--dvs-trans);
  white-space: nowrap;
}
.dvs-wrap .dvs-btn-sm{ min-height: 34px; padding: 6px 12px; font-size: 13px; }
.dvs-wrap .dvs-btn-block{ width: 100%; }

/* Form fields — uniform sizing */
.dvs-wrap input[type="text"],
.dvs-wrap input[type="email"],
.dvs-wrap input[type="tel"],
.dvs-wrap input[type="url"],
.dvs-wrap input[type="number"],
.dvs-wrap input[type="search"],
.dvs-wrap input[type="date"],
.dvs-wrap input[type="password"],
.dvs-wrap select,
.dvs-wrap textarea{
  min-height: 40px;
  padding: 9px 12px;
  border: 1px solid var(--dvs-border-strong);
  border-radius: var(--dvs-radius-sm);
  font-size: 14px;
  /* IMPORTANT: use background-color, not the `background:` shorthand —
     the shorthand wipes out the chevron SVG that the select rule above
     sets via background-image, which is why dropdown arrows disappeared. */
  background-color: #fff;
  color: var(--dvs-text);
  width: 100%;
}
.dvs-wrap textarea{ min-height: 80px; padding: 10px 12px; }

/* Dropdown chevron — make it bold, brand-aware, and consistent across every
   <select> in the plugin (filters, forms, dashboards, admin tabs). Uses
   currentColor so the arrow follows the surrounding text color. The chevron
   sits on the right with enough padding for clearance. */
.dvs-wrap select{
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231a2332' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 14px 14px;
  padding-right: 38px;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  cursor: pointer;
}
.dvs-wrap select:focus{
  /* Brighten the chevron on focus to match the focus ring. */
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23c62828' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
}
/* IE/Edge legacy: kill the native arrow that they sometimes still draw. */
.dvs-wrap select::-ms-expand{ display: none; }

/* ---------- 1. Cities/Types layout fix ---------- */
/* The overlap bug was caused by the term-list scroll container being too
   tall on some columns and creating visual overlap across grid rows when
   columns had wildly different heights. Force consistent column heights,
   give each card its own bounded scroll, and align the Add form to the
   bottom so columns line up cleanly. */
.dvs-wrap .dvs-tax-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  align-items: stretch;
}
.dvs-wrap .dvs-tax-grid > .dvs-admin-card{
  display: flex;
  flex-direction: column;
  min-height: 380px;
}
.dvs-wrap .dvs-tax-grid > .dvs-admin-card > h2{
  margin: 0 0 12px;
  font-size: 16px;
  color: var(--dvs-primary);
  padding-bottom: 10px;
  border-bottom: 1px solid var(--dvs-border);
}
.dvs-wrap .dvs-tax-grid .dvs-term-list{
  flex: 1 1 auto;
  min-height: 0;          /* CRITICAL: lets flex item shrink so overflow-y actually scrolls */
  max-height: none;       /* override the 280px cap that caused phantom overlap */
  margin: 0 0 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  overflow-y: auto;
  padding-right: 4px;
}
.dvs-wrap .dvs-tax-grid .dvs-term-item{
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  background: var(--dvs-bg-soft);
  border: 1px solid var(--dvs-border);
  border-radius: var(--dvs-radius-sm);
  font-size: 13px;
  min-height: 40px;
}
.dvs-wrap .dvs-tax-grid .dvs-add-term-form{
  display: flex;
  gap: 6px;
  margin-top: auto;       /* glue Add form to the bottom of every card */
}

/* ---------- 2. Compact inquiry cards (expand on click) ---------- */
/* The .dvs-inq-collapsed class is added to every card on render. Clicking
   the head row removes it. Once expanded, all the details render normally. */
.dvs-wrap .dvs-inquiry-item{
  position: relative;
  padding: 14px 16px;
  border: 1px solid var(--dvs-border);
  border-radius: var(--dvs-radius);
  background: #fff;
  margin-bottom: 10px;
  transition: var(--dvs-trans);
}
.dvs-wrap .dvs-inquiry-item:hover{ border-color: var(--dvs-border-strong); }
.dvs-wrap .dvs-inq-head{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  user-select: none;
}
.dvs-wrap .dvs-inq-head::after{
  content: "▾";
  margin-left: 6px;
  color: var(--dvs-muted);
  font-size: 14px;
  flex: 0 0 auto;
  transition: transform .2s ease;
}
.dvs-wrap .dvs-inq-collapsed .dvs-inq-head::after{ transform: rotate(-90deg); }
.dvs-wrap .dvs-inq-who strong{ font-size: 15px; color: var(--dvs-text); }
.dvs-wrap .dvs-inq-who .dvs-muted{ margin-left: 8px; font-size: 12px; }

/* Collapsed state, v4.2.0.
   The client asked to "display all data" — so the DATA (who enquired, how to
   reach them, which property, what they said, current lead status) is now
   always visible. Only the interactive lead-management CONTROLS and the
   destructive action buttons stay behind the toggle, which is what actually
   made the list long in the first place. */
.dvs-wrap .dvs-inq-collapsed .dvs-lead-controls,
.dvs-wrap .dvs-inq-collapsed .dvs-inq-actions{ display: none; }

/* Message gets a subtle clamp while collapsed so a very long enquiry can't
   push the next card off-screen; expanding shows it in full. */
.dvs-wrap .dvs-inq-collapsed .dvs-inq-msg{
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Expanded sections — tighten typography */
.dvs-wrap .dvs-inq-contact{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 10px;
  font-size: 13px;
}
.dvs-wrap .dvs-inq-contact a{ color: var(--dvs-primary); text-decoration: none; font-weight: 600; }
.dvs-wrap .dvs-inq-contact a:hover{ text-decoration: underline; }
.dvs-wrap .dvs-inq-prop{
  margin-top: 8px;
  font-size: 13px;
  color: var(--dvs-text-light);
}
.dvs-wrap .dvs-inq-prop a{ color: var(--dvs-primary); font-weight: 600; text-decoration: none; }
.dvs-wrap .dvs-inq-msg{
  margin-top: 10px;
  padding: 10px 12px;
  background: var(--dvs-bg-soft);
  border-left: 3px solid var(--dvs-primary);
  border-radius: var(--dvs-radius-sm);
  font-size: 13px;
}
.dvs-wrap .dvs-inq-msg p{ margin: 0 0 6px; }
.dvs-wrap .dvs-inq-msg p:last-child{ margin-bottom: 0; }
.dvs-wrap .dvs-inq-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--dvs-border);
}

/* ---------- 3. Stat row: clean breakpoints ---------- */
/* Use fixed column counts at named breakpoints so we never get the
   awkward "7 in row + 1 orphan" wrap. */
.dvs-wrap .dvs-stats{
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 10px;
  margin-bottom: 22px;
}
.dvs-wrap .dvs-stat{
  padding: 14px 10px;
  text-align: center;
  background: #fff;
  border: 1px solid var(--dvs-border);
  border-radius: var(--dvs-radius);
  box-shadow: var(--dvs-shadow-sm);
  transition: var(--dvs-trans);
}
.dvs-wrap .dvs-stat:hover{ transform: translateY(-1px); box-shadow: var(--dvs-shadow); }
.dvs-wrap .dvs-stat-num{
  display: block;
  font-size: 22px;
  font-weight: 800;
  color: var(--dvs-primary);
  line-height: 1.1;
  letter-spacing: -.4px;
}
.dvs-wrap .dvs-stat-lbl{
  display: block;
  margin-top: 4px;
  font-size: 10px;
  font-weight: 700;
  color: var(--dvs-muted);
  text-transform: uppercase;
  letter-spacing: .5px;
  line-height: 1.3;
}
@media (max-width: 1180px){ .dvs-wrap .dvs-stats{ grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 720px){  .dvs-wrap .dvs-stats{ grid-template-columns: repeat(2, 1fr); gap: 8px; } }

/* ---------- Dashboard table: Actions cell ---------- */
.dvs-wrap .dvs-dashboard-table .dvs-actions-col{
  width: 1%;            /* shrink-wrap content */
  white-space: nowrap;
}
.dvs-wrap .dvs-dashboard-table .dvs-actions-stack{
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.dvs-wrap .dvs-dashboard-table .dvs-actions-stack .dvs-btn{
  min-width: 60px;
  padding: 6px 10px;
  font-size: 12px;
  min-height: 32px;
}

/* ---------- 4. Listing grid: clean responsive steps ---------- */
.dvs-wrap .dvs-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-bottom: 28px;
}
@media (min-width: 1280px){ .dvs-wrap .dvs-grid{ grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 980px){  .dvs-wrap .dvs-grid{ grid-template-columns: repeat(2, 1fr); gap: 14px; } }
@media (max-width: 560px){  .dvs-wrap .dvs-grid{ grid-template-columns: 1fr; } }

/* ---------- 6. Equal-height cards, sealed ---------- */
.dvs-wrap .dvs-card{
  display: flex;
  flex-direction: column;
  height: 100%;
  min-width: 0;          /* prevent overflow inside grid cell */
}
.dvs-wrap .dvs-card-body{ flex: 1 1 auto; display: flex; flex-direction: column; }
.dvs-wrap .dvs-card-title{
  font-size: 15px;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.7em;     /* reserve 2 lines so all cards line up */
}
.dvs-wrap .dvs-card-address{
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.dvs-wrap .dvs-card-pid{ font-size: 11px; }
.dvs-wrap .dvs-card-meta{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 12px;
  color: var(--dvs-text-light);
  margin: 6px 0;
}
.dvs-wrap .dvs-card-footer{
  display: flex;
  gap: 6px;
  padding: 10px 14px;
  border-top: 1px solid var(--dvs-border);
  background: var(--dvs-bg-soft);
  flex-wrap: wrap;
}
.dvs-wrap .dvs-card-footer .dvs-btn{
  flex: 1 1 auto;
  min-height: 36px;
  padding: 6px 10px;
  font-size: 13px;
}

/* ---------- 5. Tables horizontally scrollable on mobile ---------- */
/* Already in place for .dvs-dashboard-table-wrap. Apply same recipe to any
   table inside admin cards that wasn't wrapped originally. */
.dvs-wrap .dvs-admin-card table{ width: 100%; }
.dvs-wrap .dvs-admin-card .dvs-dashboard-table-wrap,
.dvs-wrap .dvs-admin-card .dvs-table-scroll{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
/* For the Agents tab Current Agents table that overflows */
.dvs-wrap .dvs-user-panel .dvs-dashboard-table-wrap{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* ---------- Reports table ---------- */
.dvs-wrap .dvs-reports-table-wrap{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--dvs-border);
  border-radius: var(--dvs-radius);
  margin-top: 14px;
  background: #fff;
}
.dvs-wrap .dvs-reports-table-wrap table{ min-width: 720px; }

/* ---------- 7. Single property mobile ---------- */
.dvs-wrap .dvs-single-grid{
  display: grid;
  grid-template-columns: minmax(0,1fr) 320px;
  gap: 24px;
}
@media (max-width: 960px){
  .dvs-wrap .dvs-single-grid{ grid-template-columns: 1fr; gap: 16px; }
}
.dvs-wrap .dvs-single-title{ font-size: clamp(20px, 2.4vw, 26px); }
.dvs-wrap .dvs-single-price{ font-size: clamp(22px, 2.6vw, 28px); }
.dvs-wrap .dvs-section h2{ font-size: 16px; margin: 0 0 12px; padding-bottom: 8px; border-bottom: 1px solid var(--dvs-border); color: var(--dvs-primary); }
.dvs-wrap .dvs-detail-table{
  width: 100%;
  border-collapse: collapse;
}
.dvs-wrap .dvs-detail-table th,
.dvs-wrap .dvs-detail-table td{
  padding: 10px 12px;
  font-size: 13px;
  border-bottom: 1px solid var(--dvs-border);
  text-align: left;
  vertical-align: top;
}
.dvs-wrap .dvs-detail-table th{
  font-weight: 600;
  color: var(--dvs-text-light);
  background: var(--dvs-bg-soft);
  width: 38%;
}
@media (max-width: 560px){
  .dvs-wrap .dvs-detail-table th,
  .dvs-wrap .dvs-detail-table td{ padding: 8px 10px; font-size: 12.5px; }
}

/* ---------- Active filter chips ---------- */
.dvs-wrap .dvs-active-chips{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  padding: 10px 14px;
  background: var(--dvs-primary-bg);
  border: 1px solid var(--dvs-primary-light);
  border-radius: var(--dvs-radius);
  margin: 10px 0 14px;
  font-size: 13px;
}

/* ---------- Filter form (public listings) ---------- */
.dvs-wrap .dvs-filters{
  background: #fff;
  border: 1px solid var(--dvs-border);
  border-radius: var(--dvs-radius-lg);
  padding: 16px;
  margin-bottom: 18px;
  box-shadow: var(--dvs-shadow-sm);
}
.dvs-wrap .dvs-filter-grid{
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 12px;
}
.dvs-wrap .dvs-filter label{
  display: block;
  font-size: 10px;
  font-weight: 700;
  color: var(--dvs-muted);
  text-transform: uppercase;
  letter-spacing: .5px;
  margin-bottom: 4px;
}
@media (max-width: 1180px){ .dvs-wrap .dvs-filter-grid{ grid-template-columns: repeat(4, minmax(0,1fr)); } }
@media (max-width: 760px){  .dvs-wrap .dvs-filter-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 420px){  .dvs-wrap .dvs-filter-grid{ grid-template-columns: 1fr; } }

/* ---------- Admin tabs ---------- */
.dvs-wrap .dvs-tabs{
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 6px;
  background: #fff;
  border: 1px solid var(--dvs-border);
  border-radius: var(--dvs-radius-lg);
  margin-bottom: 18px;
}
.dvs-wrap .dvs-tabs a{
  padding: 9px 16px;
  border-radius: var(--dvs-radius-sm);
  text-decoration: none;
  color: var(--dvs-primary);
  font-weight: 600;
  font-size: 14px;
  transition: var(--dvs-trans);
}
.dvs-wrap .dvs-tabs a:hover{ background: var(--dvs-primary-bg); }
.dvs-wrap .dvs-tabs a.is-active,
.dvs-wrap .dvs-tabs a.dvs-tab-active{
  background: var(--dvs-primary);
  color: #fff;
}

/* ---------- Mobile spacing tighteners ---------- */
@media (max-width: 600px){
  .dvs-wrap .dvs-card-body{ padding: 12px 12px 6px; }
  .dvs-wrap .dvs-card-footer{ padding: 10px 12px; }
  .dvs-wrap .dvs-card-title{ font-size: 14.5px; }
  .dvs-wrap .dvs-price{ font-size: 18px; }
  .dvs-wrap .dvs-dashboard-header h2{ font-size: 22px; }
  .dvs-wrap .dvs-admin-header{ flex-direction: column; align-items: flex-start; gap: 12px; }
  .dvs-wrap .dvs-admin-header-actions{ width: 100%; }
  .dvs-wrap .dvs-admin-header-actions .dvs-btn{ flex: 1 1 auto; }
  .dvs-wrap .dvs-inq-head{ flex-wrap: wrap; }
  .dvs-wrap .dvs-inq-contact{ gap: 8px; font-size: 12.5px; }
  .dvs-wrap .dvs-inq-actions .dvs-btn{ flex: 1 1 calc(50% - 6px); }
}

/* === Contact / agency auto-fill (v4.2.0) ============================== */
/* Fields populated from a previous listing get a soft green wash so the
   agent can see at a glance what was filled for them vs what they typed.
   The highlight clears as soon as they edit the field. */
.dvs-wrap .dvs-autofilled{
  background-color: #f0fdf4 !important;
  border-color: #86efac !important;
}
.dvs-autofill-note{
  display: none;
  margin: 0 0 12px;
  padding: 9px 12px;
  border: 1px solid #86efac;
  background: #f0fdf4;
  border-radius: var(--dvs-radius-sm, 8px);
  font-size: 13px;
  color: #166534;
}
.dvs-autofill-note.is-visible{
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.dvs-autofill-note .dvs-autofill-undo{
  margin-left: auto;
  padding: 4px 10px;
  border: 1px solid #86efac;
  background: #fff;
  border-radius: 6px;
  color: #166534;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.dvs-autofill-note .dvs-autofill-undo:hover{ background: #dcfce7; }

/* === Property carousel (v4.4.0) ======================================= */
/* Horizontal scroller for [divssoul_carousel]. Uses native scroll-snap so it
   works with touch/trackpad swipes out of the box; the arrows just nudge
   scrollLeft. No carousel library needed. */
.dvs-carousel-wrap{ margin: 28px 0; }
.dvs-carousel-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.dvs-carousel-title{
  margin: 0;
  font-size: clamp(18px, 2.2vw, 24px);
  letter-spacing: -.3px;
  color: var(--dvs-text, #1a2332);
}
.dvs-carousel-nav{ display: flex; gap: 6px; flex: 0 0 auto; }
.dvs-carousel-nav-below{ justify-content: center; margin-top: 12px; }
/* Theme-proof icon button.
   Themes (Astra among them) style every <button> with generous horizontal
   padding and often a min-width. Setting width/height alone is not enough —
   the padding stretches a 36px circle into a wide oval. Every icon-only
   button in the plugin therefore resets padding, min-width and box-sizing
   explicitly, and is scoped under .dvs-wrap to out-specify the theme. */
.dvs-wrap .dvs-icon-btn,
.dvs-wrap .dvs-gallery-nav,
.dvs-wrap .dvs-carousel-btn{
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
  width: 38px;
  height: 38px;
  min-width: 38px;
  max-width: 38px;
  padding: 0;
  margin: 0;
  flex: 0 0 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--dvs-border, #e2e8f0);
  background: #fff;
  color: var(--dvs-primary, #d71920);
  border-radius: 50%;
  line-height: 1;
  font-size: 0;                 /* hides any text glyph; the icon is an SVG */
  text-decoration: none;
  cursor: pointer;
  box-shadow: var(--dvs-shadow-sm, 0 1px 2px rgba(0,0,0,.06));
  transition: var(--dvs-trans, all .15s ease);
}
.dvs-wrap .dvs-icon-btn svg,
.dvs-wrap .dvs-gallery-nav svg,
.dvs-wrap .dvs-carousel-btn svg{
  width: 18px;
  height: 18px;
  display: block;
  pointer-events: none;         /* clicks always land on the button itself */
}
.dvs-wrap .dvs-icon-btn:hover:not(:disabled),
.dvs-wrap .dvs-carousel-btn:hover:not(:disabled){
  background: var(--dvs-primary, #d71920);
  border-color: var(--dvs-primary, #d71920);
  color: #fff;
  box-shadow: var(--dvs-shadow, 0 4px 12px rgba(0,0,0,.10));
}
.dvs-wrap .dvs-icon-btn:focus-visible,
.dvs-wrap .dvs-gallery-nav:focus-visible,
.dvs-wrap .dvs-carousel-btn:focus-visible{
  outline: 2px solid var(--dvs-primary, #d71920);
  outline-offset: 2px;
}
.dvs-wrap .dvs-icon-btn:disabled,
.dvs-wrap .dvs-gallery-nav:disabled,
.dvs-wrap .dvs-carousel-btn:disabled{
  opacity: .3;
  cursor: default;
  box-shadow: none;
}

.dvs-carousel-viewport{
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;              /* Firefox */
  padding-bottom: 4px;
}
.dvs-carousel-viewport::-webkit-scrollbar{ display: none; }

.dvs-carousel-track{
  display: flex;
  gap: 18px;
  align-items: stretch;
}
.dvs-carousel-item{
  flex: 0 0 auto;
  width: calc(25% - 14px);            /* 4 across on wide screens */
  scroll-snap-align: start;
  min-width: 0;
  display: flex;
}
.dvs-carousel-item > .dvs-card{ width: 100%; }

@media (max-width: 1280px){ .dvs-carousel-item{ width: calc(33.333% - 12px); } }
@media (max-width: 980px){  .dvs-carousel-item{ width: calc(50% - 9px); } }
@media (max-width: 600px){
  .dvs-carousel-item{ width: 86%; }   /* peek the next card so it reads as swipeable */
  .dvs-carousel-track{ gap: 12px; }
  .dvs-carousel-head{ align-items: flex-start; }
}


/* Gallery arrows keep their dark-on-photo treatment; the shared icon-button
   reset above handles the sizing so the theme can't stretch them. */
.dvs-wrap .dvs-gallery-nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px; height: 42px; min-width: 42px; max-width: 42px; flex: 0 0 42px;
  border: none;
  background: rgba(17,17,17,.6);
  color: #fff;
  box-shadow: none;
}
.dvs-wrap .dvs-gallery-nav:hover:not(:disabled){
  background: rgba(17,17,17,.85);
  border: none;
  color: #fff;
  box-shadow: none;
}
.dvs-wrap .dvs-gallery-prev{ left: 14px; }
.dvs-wrap .dvs-gallery-next{ right: 14px; }
@media (max-width: 767px){
  .dvs-wrap .dvs-gallery-nav{ width: 38px; height: 38px; min-width: 38px; max-width: 38px; flex: 0 0 38px; }
}

/* Dashboard pagination: same class of bug — themes add padding to the
   numbered links, so pills stretched unevenly. */
.dvs-wrap .dvs-pagination-dashboard .page-numbers a,
.dvs-wrap .dvs-pagination-dashboard .page-numbers span{
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 8px;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
}
