.home-landing {
    min-height: 100vh;
    --home-bg: #0e1728;
    --home-surface: #121d31;
    --home-surface-soft: #18263d;
    --home-border: rgba(226, 232, 240, .13);
    --home-text: #f4f7fb;
    --home-muted: #aebacf;
    --home-nav: rgba(7, 13, 24, .92);
    --home-panel: rgba(16, 27, 45, .92);
    --home-shadow: 0 24px 70px rgba(0, 0, 0, .34);
    background:
        radial-gradient(circle at 14% 8%, rgba(13, 148, 136, .16), transparent 28rem),
        linear-gradient(180deg, rgba(7, 13, 24, .72), rgba(14, 23, 40, .38) 42%, var(--home-bg) 74%),
        var(--home-bg);
    color: var(--home-text);
}

[data-bs-theme="light"] .home-landing {
    --home-bg: var(--page-bg);
    --home-surface: var(--card-bg);
    --home-surface-soft: #f3f6f9;
    --home-border: var(--border-color);
    --home-text: var(--text-main);
    --home-muted: var(--text-muted);
    --home-nav: rgba(247, 250, 246, .92);
    --home-panel: rgba(255, 255, 250, .96);
    --home-shadow: 0 20px 50px rgba(15, 23, 42, .12);
    background:
        radial-gradient(circle at 14% 8%, rgba(13, 148, 136, .11), transparent 28rem),
        linear-gradient(180deg, rgba(241, 245, 249, .96), rgba(238, 242, 246, .68) 46%, var(--home-bg) 76%),
        var(--home-bg);
}

.home-navbar {
    position: sticky;
    top: 0;
    z-index: 1080;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 70px;
    max-height: 70px;
    padding: 10px clamp(14px, 3vw, 42px);
    background: var(--home-nav);
    border-bottom: 1px solid var(--home-border);
    color: var(--home-text);
    backdrop-filter: blur(18px);
    overflow: visible;
}

.home-logo {
    flex: 0 0 auto;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--home-text);
    text-decoration: none;
}

.home-logo:hover,
.home-nav-links a:hover,
.home-menu-group a:hover,
.home-mobile-menu a:hover {
    color: var(--app-accent);
}

.home-logo span {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--app-accent), #f2d36b);
    color: #101827;
    font-weight: 900;
}

.home-logo strong {
    max-width: clamp(112px, 13vw, 210px);
    font-size: 17px;
    letter-spacing: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-nav-links {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(5px, .7vw, 10px);
    overflow: hidden;
    white-space: nowrap;
}

.home-nav-links a,
.home-mobile-menu a {
    color: var(--home-text);
    font-size: .82rem;
    font-weight: 800;
    white-space: nowrap;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
}

.home-nav-links .nav-action {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    max-width: clamp(82px, 11vw, 138px);
    padding: 6px 9px;
    border: 1px solid var(--home-border);
    border-radius: 999px;
    background: color-mix(in srgb, var(--home-surface-soft) 54%, transparent);
}

.home-nav-links .nav-action-gold {
    border-color: color-mix(in srgb, var(--app-accent) 58%, var(--home-border));
    background: color-mix(in srgb, var(--app-accent) 16%, transparent);
}

.home-nav-links a.active,
.home-mobile-menu a.active,
.home-menu-group a.active,
.home-user-chip.active {
    color: var(--app-accent);
    border-color: color-mix(in srgb, var(--app-accent) 70%, var(--home-border));
    background: color-mix(in srgb, var(--app-accent) 14%, transparent);
}

.home-language {
    padding: 8px 12px;
    border: 1px solid var(--home-border);
    border-radius: 999px;
    color: var(--home-text);
    font-weight: 900;
    text-decoration: none;
}

.home-nav-tools {
    flex: 0 0 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.home-user-chip {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    max-width: clamp(84px, 12vw, 176px);
    padding: 6px 10px;
    border: 1px solid var(--home-border);
    border-radius: 999px;
    color: var(--home-text);
    background: color-mix(in srgb, var(--home-surface-soft) 48%, transparent);
    font-size: .82rem;
    font-weight: 900;
    line-height: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-decoration: none;
}

.home-theme-toggle,
.home-menu-button {
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--home-border);
    border-radius: 10px;
    background: color-mix(in srgb, var(--home-surface-soft) 64%, transparent);
    color: var(--home-text);
    font-weight: 900;
}

.home-theme-toggle {
    width: auto;
    min-width: 68px;
    padding: 0 10px;
    font-size: 12px;
}

.home-menu-button {
    font-size: 20px;
    line-height: 1;
}

.home-menu-panel {
    position: fixed;
    top: 70px;
    inset-inline-end: clamp(14px, 4vw, 54px);
    z-index: 1090;
    width: min(620px, calc(100vw - 28px));
    max-height: min(720px, calc(100vh - 84px));
    overflow: auto;
    padding: 18px;
    border: 1px solid var(--home-border);
    border-radius: 18px;
    background: var(--home-panel);
    box-shadow: var(--home-shadow);
    backdrop-filter: blur(20px);
    transform-origin: top right;
    animation: homeMenuIn .16s ease-out;
}

.home-menu-panel[hidden] {
    display: none;
}

@keyframes homeMenuIn {
    from {
        opacity: 0;
        transform: translateY(-8px) scale(.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.home-menu-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.home-menu-panel-head strong,
.home-menu-panel-head span {
    display: block;
}

.home-menu-panel-head span,
.home-menu-group > span {
    color: var(--home-muted);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.home-menu-panel-head button {
    width: 36px;
    height: 36px;
    border: 1px solid var(--home-border);
    border-radius: 10px;
    background: color-mix(in srgb, var(--home-surface-soft) 74%, transparent);
    color: var(--home-text);
    font-size: 22px;
    line-height: 1;
}

.home-menu-groups {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.dashboard-landing {
    min-height: 100vh;
}

.dashboard-main {
    width: min(1680px, 90vw);
    margin: 0 auto;
    padding: 28px 0 54px;
}

.dashboard-main-wide {
    width: min(1680px, 90vw);
}

.dashboard-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 22px;
    padding: 24px;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    background: var(--app-surface);
    box-shadow: var(--app-shadow-sm);
}

.dashboard-hero h1 {
    margin: 0 0 8px;
    color: var(--app-text);
    font-size: clamp(30px, 4vw, 48px);
    line-height: 1.05;
}

.dashboard-hero p {
    max-width: 760px;
    margin: 0;
    color: var(--app-muted);
}

.dashboard-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 22px;
}

.dashboard-metrics .metric-card {
    min-height: 128px;
}

.dashboard-grid,
.dashboard-grid-wide,
.dashboard-chart-grid {
    display: grid;
    gap: 22px;
    margin-bottom: 22px;
}

.dashboard-grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .85fr);
}

.dashboard-grid-wide {
    grid-template-columns: minmax(0, 1.35fr) minmax(380px, .9fr);
}

.dashboard-grid-single {
    grid-template-columns: 1fr;
}

.dashboard-chart-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dashboard-table-card,
.dashboard-map-card,
.dashboard-chart-card {
    border: 1px solid var(--app-border);
    border-radius: 8px;
    background: var(--app-surface);
    box-shadow: var(--app-shadow-sm);
}

.dashboard-chart-card {
    padding: 22px;
}

.dashboard-map {
    min-height: 420px;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    overflow: hidden;
    background: var(--app-surface-2);
}

.dashboard-map-full {
    margin-bottom: 22px;
}

.dashboard-map-wide {
    min-height: clamp(420px, 42vw, 520px);
}

.dashboard-user-marker-wrap {
    border: 0;
    background: transparent;
}

.dashboard-user-marker {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .24);
    color: #fff;
    font-size: 11px;
    font-weight: 900;
}

.dashboard-user-marker.is-listing {
    background: #0d9488;
}

.dashboard-user-marker.is-valuation {
    background: #d7a51f;
    color: #101827;
}

.property-details-shell {
    min-height: 100vh;
}

.property-details-main {
    width: min(1680px, 90vw);
    margin: 0 auto;
    padding: 28px 0 56px;
}

.property-details-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 22px;
    padding: 24px;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    background: var(--app-surface);
    box-shadow: var(--app-shadow-sm);
}

.property-details-hero h1 {
    max-width: 980px;
    margin: 0 0 12px;
    color: var(--app-text);
    font-size: clamp(30px, 4vw, 48px);
    line-height: 1.08;
    font-weight: 900;
}

.property-details-hero-copy {
    min-width: 0;
}

.property-hero-price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 10px 14px;
    margin-bottom: 12px;
}

.property-hero-price strong {
    color: var(--app-accent);
    font-size: clamp(24px, 3vw, 36px);
    line-height: 1;
    font-weight: 950;
}

.property-hero-price span,
.property-description-block span {
    color: var(--app-muted);
    font-weight: 800;
}

.property-summary-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.property-media-map-grid,
.property-intelligence-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
    gap: 22px;
    margin-bottom: 22px;
}

.property-media-card,
.property-map-card,
.property-section-card {
    min-width: 0;
}

.property-details-main-image {
    min-height: clamp(360px, 36vw, 560px);
}

.property-details-map {
    min-height: clamp(420px, 38vw, 520px);
}

.property-details-map-empty {
    min-height: clamp(320px, 32vw, 420px);
}

.property-section-card {
    margin-bottom: 22px;
}

.property-facts-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.property-fact-card {
    min-height: 98px;
}

.property-fact-card span {
    text-transform: none;
}

.property-description-block {
    display: grid;
    gap: 12px;
    padding: 16px;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    background: var(--app-surface-2);
}

.property-description-block p {
    margin: 0;
    color: var(--app-text);
    font-size: 15px;
}

.property-ai-scope {
    display: block;
}

.property-ai-scope .ai-panel-section {
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.property-ai-scope .ai-loading,
.property-ai-scope .ai-state {
    min-height: 126px;
}

.property-ai-scope .ai-property-grid {
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.property-ai-scope .ai-property-card {
    grid-template-rows: 138px 1fr;
}

.property-spatial-details {
    padding: 0;
    overflow: hidden;
}

.property-spatial-details summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    cursor: pointer;
    list-style: none;
}

.property-spatial-details summary::-webkit-details-marker {
    display: none;
}

.property-spatial-details summary span {
    display: grid;
    gap: 4px;
}

.property-spatial-details summary strong {
    color: var(--app-text);
    font-size: 18px;
}

.property-spatial-details summary small {
    color: var(--app-muted);
    font-weight: 800;
}

.property-spatial-details summary::after {
    content: "+";
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 1px solid var(--app-border);
    border-radius: 50%;
    color: var(--app-text);
    font-weight: 900;
}

.property-spatial-details[open] summary::after {
    content: "-";
}

.property-spatial-body {
    padding: 0 22px 22px;
}

.dashboard-bars {
    display: grid;
    gap: 14px;
}

.dashboard-bar-label {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 6px;
    color: var(--app-text);
}

.dashboard-bar-label span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--app-text);
    font-weight: 800;
}

.dashboard-bar-label strong {
    color: var(--app-muted);
    font-size: 13px;
}

.dashboard-bar-track {
    height: 10px;
    overflow: hidden;
    border-radius: 999px;
    background: color-mix(in srgb, var(--app-surface-2) 86%, var(--app-border));
}

.dashboard-bar-track span {
    display: block;
    height: 100%;
    min-width: 4px;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--app-accent-2), var(--app-accent));
}

.dashboard-landing .app-card,
.dashboard-landing .metric-card {
    border-radius: 8px;
    color: var(--app-text);
}

.dashboard-landing .section-kicker,
.dashboard-landing .metric-label,
.dashboard-landing .text-secondary {
    color: var(--app-muted) !important;
}

.dashboard-landing .table a {
    color: var(--app-text);
    font-weight: 800;
}

.admin-dashboard-main {
    width: min(1680px, 90vw);
}

.admin-insight-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.admin-insight-card {
    display: grid;
    align-content: start;
    gap: 8px;
    min-height: 154px;
}

.admin-insight-card strong {
    margin: 0;
}

.admin-insight-card small {
    color: var(--app-muted);
    font-size: 12px;
    font-weight: 750;
    line-height: 1.35;
}

.admin-analytics-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-chart-card {
    min-height: 430px;
}

.admin-chart-wrap {
    position: relative;
    height: 330px;
    min-width: 0;
}

.admin-chart-wrap canvas {
    display: block;
    width: 100% !important;
    height: 100% !important;
}

.admin-segmented-control {
    display: inline-flex;
    padding: 3px;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    background: var(--app-surface-2);
}

.admin-segmented-control button {
    min-height: 32px;
    padding: 6px 10px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--app-muted);
    font-size: 12px;
    font-weight: 850;
    white-space: nowrap;
}

.admin-segmented-control button.is-active {
    background: var(--app-surface);
    color: var(--app-text);
    box-shadow: var(--app-shadow-sm);
}

.admin-map-card {
    margin-bottom: 22px;
}

.admin-map-stats {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.admin-map-stats span {
    min-height: 28px;
    padding: 6px 10px;
    border: 1px solid var(--app-border);
    border-radius: 999px;
    background: var(--app-surface-2);
    color: var(--app-muted);
    font-size: 12px;
    font-weight: 850;
}

.admin-map-stats strong {
    color: var(--app-text);
}

.admin-coverage-map {
    min-height: 520px;
}

.admin-table-card {
    margin-bottom: 22px;
}

.admin-table-scroll {
    max-width: 100%;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

.admin-data-table {
    min-width: 1120px;
    border-collapse: separate;
    border-spacing: 0;
}

.admin-data-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.admin-data-table thead button {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-transform: inherit;
    letter-spacing: inherit;
}

.admin-data-table thead button::after {
    content: "";
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid color-mix(in srgb, var(--app-muted) 70%, transparent);
    opacity: .65;
}

.admin-data-table thead button[aria-sort="ascending"]::after {
    border-top: 0;
    border-bottom: 5px solid var(--app-accent);
    opacity: 1;
}

.admin-data-table thead button[aria-sort="descending"]::after {
    border-top-color: var(--app-accent);
    opacity: 1;
}

.admin-data-table tbody tr:nth-child(even) {
    background: color-mix(in srgb, var(--app-surface-2) 68%, transparent);
}

.admin-data-table tbody tr:hover {
    background: color-mix(in srgb, var(--app-accent) 10%, transparent);
}

.admin-data-table td,
.admin-data-table th {
    padding: 14px 13px;
}

.admin-data-table td {
    border-bottom: 1px solid color-mix(in srgb, var(--app-border) 74%, transparent);
    white-space: nowrap;
}

.admin-data-table td:first-child,
.admin-data-table th:first-child {
    padding-left: 16px;
}

.admin-data-table td:last-child,
.admin-data-table th:last-child {
    padding-right: 16px;
}

.admin-note-cell {
    max-width: 360px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-table-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: 14px;
}

.admin-table-footer span {
    color: var(--app-muted);
    font-size: 13px;
    font-weight: 850;
}

.admin-pagination {
    display: flex;
    gap: 8px;
}

.admin-pagination .btn {
    width: auto;
}

[data-bs-theme="light"] .dashboard-landing .btn-outline-light,
[data-bs-theme="light"] .dashboard-landing .btn-outline-secondary {
    color: var(--app-text);
    border-color: var(--app-border);
    background: var(--app-surface);
}

[data-bs-theme="light"] .dashboard-landing .btn-outline-light:hover,
[data-bs-theme="light"] .dashboard-landing .btn-outline-secondary:hover {
    color: var(--button-text);
    background: var(--button-bg);
    border-color: var(--button-bg);
}

.home-menu-group {
    display: grid;
    align-content: start;
    gap: 8px;
    padding: 14px;
    border: 1px solid var(--home-border);
    border-radius: 14px;
    background: color-mix(in srgb, var(--home-surface-soft) 54%, transparent);
}

.home-menu-group a {
    min-height: 34px;
    display: flex;
    align-items: center;
    padding: 7px 9px;
    border-radius: 9px;
    color: var(--home-text);
    font-weight: 800;
    text-decoration: none;
}

.home-menu-group a.active {
    color: var(--app-accent);
    background: color-mix(in srgb, var(--app-accent) 14%, transparent);
}

.auth-public-shell {
    min-height: 100vh;
}

.auth-public-main {
    width: min(100% - 32px, 560px);
    margin: 0 auto;
    padding: clamp(32px, 7vh, 84px) 0 56px;
}

.auth-panel {
    display: grid;
    gap: 14px;
    padding: clamp(20px, 4vw, 30px);
    border: 1px solid var(--home-border);
    border-radius: 8px;
    background: var(--home-panel);
    box-shadow: var(--home-shadow);
}

.auth-panel h1 {
    margin: 0;
    color: var(--home-text);
    font-size: clamp(28px, 4vw, 40px);
    line-height: 1.1;
    font-weight: 900;
}

.auth-panel form {
    display: grid;
    gap: 12px;
}

.auth-panel .form-control {
    margin-bottom: 0;
}

.auth-row,
.auth-footer-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: var(--home-muted);
    font-size: 13px;
    font-weight: 800;
}

.auth-row a,
.auth-footer-link a {
    color: var(--app-accent);
    text-decoration: none;
    white-space: nowrap;
}

.auth-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    color: var(--home-muted);
}

.auth-check input {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
}

.auth-help {
    margin-top: -6px;
    color: var(--home-muted);
    font-size: 12px;
    font-weight: 750;
}

.auth-social {
    display: grid;
    gap: 8px;
    margin: 4px 0;
}

.auth-social .btn {
    width: 100%;
}

.valuation-result-shell .workflow-hero {
    align-items: center;
}

.valuation-result-grid {
    display: grid;
    gap: 22px;
}

.valuation-result-band {
    border: 1px solid var(--app-border);
    border-radius: 16px;
    background: var(--app-surface);
    box-shadow: var(--app-shadow);
    padding: 22px;
}

.valuation-result-status {
    display: grid;
    gap: 10px;
    padding: 18px;
    border: 1px solid color-mix(in srgb, #ef4444 54%, var(--app-border));
    border-radius: 14px;
    background: color-mix(in srgb, #ef4444 12%, var(--app-surface));
}

.valuation-result-status strong {
    font-size: 20px;
}

.valuation-explain-list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.valuation-explain-list li {
    padding: 11px 13px;
    border: 1px solid var(--app-border);
    border-radius: 10px;
    background: var(--app-surface-2);
}

.valuation-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .65fr);
    gap: 22px;
    align-items: start;
}

.valuation-debug summary {
    cursor: pointer;
    color: var(--app-accent);
    font-weight: 900;
}

.valuation-rejected-page {
    display: grid;
    gap: 22px;
}

.valuation-map-and-summary,
.valuation-chart-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr);
    gap: 22px;
    align-items: start;
}

.valuation-map-card {
    display: grid;
    gap: 14px;
}

.valuation-selection-card {
    display: grid;
    gap: 14px;
}

.valuation-selection-card .card-heading {
    order: 1;
    margin-bottom: 0;
}

.valuation-selection-card .valuation-summary-tiles {
    order: 2;
}

.valuation-rejected-page .valuation-summary-tiles {
    display: none;
}

.valuation-result-map {
    height: clamp(320px, 38vw, 430px);
    min-height: 320px;
    border: 1px solid var(--app-border);
    border-radius: 12px;
    overflow: hidden;
    background: var(--app-surface-2);
}

.valuation-chart-wrap {
    height: 340px;
}

.valuation-chart-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.valuation-chart-grid .valuation-result-band {
    min-height: 430px;
}

.valuation-selection-card > .row,
.valuation-selection-card > .layer-list,
.valuation-selection-card > .valuation-explain-list {
    display: none;
}

.valuation-summary-tiles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.valuation-summary-tiles .detail-tile {
    min-height: 96px;
}

.valuation-how summary,
.valuation-inline-details summary {
    cursor: pointer;
    color: var(--app-accent);
    font-weight: 900;
}

.valuation-chart-note,
.valuation-section-note {
    margin: 12px 0 0;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--app-accent) 36%, var(--app-border));
    border-radius: 10px;
    background: color-mix(in srgb, var(--app-accent) 10%, var(--app-surface));
    color: var(--app-text);
    font-size: 13px;
    font-weight: 700;
}

.valuation-subject-marker,
.valuation-comparable-marker {
    display: grid;
    place-items: center;
}

.valuation-subject-marker span {
    width: 28px;
    height: 28px;
    border: 3px solid #fff;
    border-radius: 999px;
    background: #f59e0b;
    box-shadow: 0 8px 24px rgba(245, 158, 11, .45);
}

.valuation-comparable-marker span {
    width: 18px;
    height: 18px;
    border: 2px solid #fff;
    border-radius: 999px;
    background: #14b8a6;
    box-shadow: 0 7px 18px rgba(20, 184, 166, .4);
}

.home-hero {
    position: relative;
    min-height: min(760px, calc(100vh - 78px));
    display: grid;
    align-items: stretch;
    padding: clamp(18px, 4vw, 56px);
}

.home-hero-map {
    position: absolute;
    inset: 0;
    min-height: 620px;
    background: var(--home-bg);
    z-index: 0;
}

.home-hero-map::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 410;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(7, 13, 24, .82), rgba(7, 13, 24, .36) 48%, rgba(7, 13, 24, .12)),
        linear-gradient(0deg, rgba(7, 13, 24, .64), transparent 45%);
}

.home-hero-map .leaflet-control-container {
    position: relative;
    z-index: 420;
}

.home-search-panel {
    position: relative;
    z-index: 2;
    align-self: center;
    width: min(760px, 100%);
    padding: clamp(22px, 4vw, 38px);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 18px;
    background: var(--home-panel);
    color: var(--home-text);
    box-shadow: var(--home-shadow);
    backdrop-filter: blur(18px);
}

.home-eyebrow {
    display: inline-flex;
    margin-bottom: 10px;
    color: var(--app-accent);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.home-search-panel h1 {
    max-width: 640px;
    margin: 0 0 12px;
    font-size: clamp(38px, 5vw, 66px);
    line-height: 1.02;
    font-weight: 900;
    letter-spacing: 0;
}

.home-search-panel p {
    max-width: 620px;
    margin: 0 0 24px;
    color: var(--home-muted);
    font-size: 17px;
}

.home-keyword-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
}

.home-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 20px 0;
    color: var(--home-muted);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.home-divider::before,
.home-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--home-border);
}

.home-search-error {
    margin-top: 14px;
    padding: 11px 14px;
    border: 1px solid color-mix(in srgb, var(--app-accent) 45%, var(--app-border));
    border-radius: 10px;
    color: var(--app-accent);
    font-weight: 800;
}

.home-main {
    width: min(1680px, 100%);
    margin: 0 auto;
    padding: clamp(36px, 6vw, 86px) clamp(18px, 4vw, 56px);
}

.home-section + .home-section {
    margin-top: clamp(42px, 6vw, 82px);
}

.home-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}

.home-section-heading h2 {
    margin: 0;
    font-size: clamp(28px, 3vw, 42px);
    font-weight: 900;
    letter-spacing: 0;
}

.home-section-heading a {
    color: var(--app-accent);
    font-weight: 900;
    text-decoration: none;
}

.home-insight-grid,
.home-listing-grid,
.home-feature-grid {
    display: grid;
    gap: 18px;
}

.home-insight-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.home-insight-card,
.home-listing-card,
.home-feature-grid article,
.home-feature-card-link {
    border: 1px solid var(--home-border);
    border-radius: 14px;
    background: var(--home-surface);
    box-shadow: var(--app-shadow-sm);
}

.home-insight-card {
    min-height: 164px;
    padding: 24px;
}

.home-insight-card span,
.home-insight-card small {
    display: block;
    color: var(--home-muted);
    font-weight: 800;
}

.home-insight-card strong {
    display: block;
    margin: 12px 0;
    font-size: 38px;
    line-height: 1;
}

.home-listing-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.home-listing-card {
    overflow: hidden;
}

.home-listing-card > div {
    padding: 18px;
}

.home-listing-image {
    display: grid;
    place-items: center;
    aspect-ratio: 16 / 10;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--app-accent-2) 18%, transparent), transparent),
        var(--home-surface-soft);
    color: var(--home-muted);
    font-weight: 900;
    text-decoration: none;
}

.home-listing-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-listing-card strong {
    color: var(--app-accent);
    font-size: 18px;
}

.home-listing-card h3 {
    margin: 8px 0 6px;
    font-size: 18px;
    font-weight: 900;
}

.home-listing-card h3 a {
    color: inherit;
    text-decoration: none;
}

.home-listing-card p {
    min-height: 48px;
    margin: 0 0 14px;
    color: var(--home-muted);
}

.home-listing-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.home-listing-meta span,
.home-feature-grid article span,
.home-feature-card-link span {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--app-accent-2) 14%, transparent);
    color: var(--home-text);
    font-size: 12px;
    font-weight: 900;
}

.home-feature-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.home-feature-grid article {
    padding: 28px;
}

.home-feature-card-link {
    display: block;
    min-height: 220px;
    padding: 28px;
    color: var(--home-text);
    text-decoration: none;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.home-feature-card-link:hover {
    transform: translateY(-4px);
    border-color: color-mix(in srgb, var(--app-accent) 60%, var(--home-border));
    box-shadow: 0 18px 42px color-mix(in srgb, var(--app-accent) 14%, transparent);
}

.home-feature-grid h3 {
    margin: 18px 0 10px;
    font-size: 22px;
    font-weight: 900;
}

.home-feature-grid p {
    margin: 0;
    color: var(--home-muted);
}

.search-landing {
    background:
        linear-gradient(180deg, rgba(7, 13, 24, .86), rgba(15, 23, 42, .38) 22rem, var(--app-bg) 44rem),
        var(--app-bg);
}

.search-main {
    width: min(1680px, 100%);
    margin: 0 auto;
    padding: clamp(22px, 4vw, 46px);
}

.search-map-first-main {
    width: min(1760px, 100%);
    padding-top: clamp(18px, 3vw, 34px);
}

.search-page-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
    color: #fff;
}

.search-page-hero h1 {
    max-width: 780px;
    margin: 0 0 10px;
    font-size: clamp(34px, 4vw, 58px);
    line-height: 1.04;
    font-weight: 900;
    letter-spacing: 0;
}

.search-page-hero p {
    max-width: 860px;
    margin: 0;
    color: rgba(238, 244, 251, .74);
    font-size: 17px;
}

.search-page-hero-compact h1 {
    font-size: clamp(30px, 3.4vw, 48px);
}

.search-hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.search-control-map {
    display: grid;
    grid-template-columns: minmax(300px, 360px) minmax(0, 1fr);
    gap: 18px;
    align-items: stretch;
}

.search-map-first-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.85fr) minmax(340px, .95fr);
    gap: 18px;
    align-items: stretch;
}

.search-filter-panel,
.search-map-panel,
.search-results-section {
    border: 1px solid var(--app-border);
    border-radius: 16px;
    background: var(--app-surface);
    box-shadow: var(--app-shadow);
}

.search-filter-panel {
    padding: 22px;
}

.search-filter-sidebar {
    position: sticky;
    top: 98px;
    max-height: calc(100vh - 118px);
    overflow: auto;
    scrollbar-width: thin;
}

.search-filter-title {
    display: grid;
    gap: 2px;
    margin-bottom: 16px;
}

.search-filter-title strong {
    font-size: 22px;
    line-height: 1.1;
}

.search-filter-accordion {
    display: grid;
    gap: 10px;
}

.search-filter-section {
    overflow: hidden;
    border: 1px solid var(--app-border);
    border-radius: 12px;
    background: color-mix(in srgb, var(--app-surface-2) 72%, transparent);
}

.search-filter-section .accordion-button {
    min-height: 48px;
    padding: 13px 14px;
    background: color-mix(in srgb, var(--app-surface) 82%, transparent);
    color: var(--app-text);
    font-weight: 900;
    box-shadow: none;
}

.search-filter-section .accordion-button:not(.collapsed) {
    background: color-mix(in srgb, var(--app-accent) 16%, var(--app-surface));
    color: var(--app-text);
}

.search-filter-section .accordion-button::after {
    filter: invert(1) grayscale(1);
    opacity: .75;
}

[data-bs-theme="light"] .search-filter-section .accordion-button::after {
    filter: none;
}

.search-filter-section .accordion-body {
    padding: 14px;
    border-top: 1px solid var(--app-border);
}

.nearby-search-block {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--app-border);
}

.nearby-radius-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
}

.nearby-status {
    margin-top: 10px;
    padding: 10px 12px;
    border: 1px solid var(--app-border);
    border-radius: 10px;
    background: var(--app-surface);
    color: var(--app-muted);
    font-size: 13px;
    font-weight: 800;
}

.nearby-status[data-tone="success"] {
    border-color: color-mix(in srgb, #14b8a6 48%, var(--app-border));
    color: color-mix(in srgb, #14b8a6 76%, var(--app-text));
}

.nearby-status[data-tone="warning"] {
    border-color: color-mix(in srgb, #ef4444 46%, var(--app-border));
    color: #f87171;
}

.search-layer-list {
    display: grid;
    gap: 10px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.search-layer-list li {
    display: grid;
    gap: 3px;
    padding: 10px 12px;
    border: 1px solid var(--app-border);
    border-radius: 10px;
    background: var(--app-surface);
}

.search-layer-list strong {
    color: var(--app-text);
    font-size: 13px;
}

.search-layer-list span {
    color: var(--app-muted);
    font-size: 12px;
    line-height: 1.35;
}

.search-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.search-map-panel {
    min-width: 0;
    padding: 18px;
}

.search-map-primary {
    min-height: 100%;
}

.search-map-heading,
.search-results-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.search-map-heading h2,
.search-results-heading h2 {
    margin: 0;
    font-size: 24px;
    font-weight: 900;
}

.search-map-large {
    min-height: clamp(620px, 68vh, 840px);
}

.search-map-focus {
    min-height: clamp(660px, 72vh, 900px);
}

.search-map-tools {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.search-map-help {
    margin-top: 10px;
    color: var(--home-muted);
    font-size: 13px;
    font-weight: 700;
}

.heatmap-legend {
    align-items: flex-start;
}

.heatmap-legend span {
    max-width: 420px;
    line-height: 1.35;
}

.search-hero-actions .status-pill,
.search-map-heading .status-pill,
.search-results-heading .status-pill {
    border: 1px solid color-mix(in srgb, var(--app-accent) 30%, var(--home-border));
    background: color-mix(in srgb, var(--home-surface-soft) 76%, transparent);
    color: var(--home-text);
}

.search-results-section {
    margin-top: 24px;
    padding: 22px;
}

.search-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.search-card-grid-25 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.search-card-grid .property-result-card {
    min-width: 0;
}

.property-result-card {
    display: grid;
    grid-template-rows: 168px 1fr;
    overflow: hidden;
    border: 1px solid var(--home-border);
    border-radius: 14px;
    background: var(--home-surface);
    color: var(--home-text);
    box-shadow: var(--home-shadow);
}

.property-result-card.is-wanted-request {
    border-color: color-mix(in srgb, #38bdf8 42%, var(--home-border));
    background:
        linear-gradient(135deg, color-mix(in srgb, #38bdf8 12%, transparent), transparent 44%),
        var(--home-surface);
}

.property-result-image {
    position: relative;
    display: block;
    min-width: 0;
    min-height: 0;
    background: var(--home-surface-soft);
    text-decoration: none;
}

.property-result-image img {
    width: 100%;
    height: 100%;
    min-height: 168px;
    object-fit: cover;
    display: block;
}

.property-result-request-visual {
    display: grid;
    place-items: center;
    min-height: 168px;
    background:
        linear-gradient(135deg, color-mix(in srgb, #38bdf8 18%, var(--home-surface-soft)), color-mix(in srgb, #facc15 12%, var(--home-surface)));
}

.property-result-request-visual span {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    border: 1px solid color-mix(in srgb, #38bdf8 54%, var(--home-border));
    border-radius: 50%;
    background: color-mix(in srgb, var(--home-surface) 82%, transparent);
    color: var(--home-text);
    font-size: 17px;
    font-weight: 900;
    letter-spacing: 0;
}

.property-result-body {
    display: grid;
    gap: 12px;
    padding: 16px;
}

.property-result-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.property-result-date {
    color: var(--home-muted);
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.property-result-body h4 {
    margin: 0;
    font-size: 17px;
    line-height: 1.28;
    font-weight: 900;
}

.property-result-body h4 a {
    color: var(--home-text);
    text-decoration: none;
}

.property-result-body h4 a:hover {
    color: var(--app-accent);
}

.property-result-location {
    min-height: 38px;
    margin: 0;
    color: var(--home-muted);
    font-size: 13px;
    line-height: 1.45;
}

.property-result-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.property-result-detail-grid span {
    min-width: 0;
    padding: 9px 10px;
    border: 1px solid var(--home-border);
    border-radius: 10px;
    background: color-mix(in srgb, var(--home-surface-soft) 76%, transparent);
}

.property-result-detail-grid small {
    display: block;
    margin-bottom: 3px;
    color: var(--home-muted);
    font-size: 11px;
    font-weight: 800;
}

.property-result-detail-grid strong {
    display: block;
    overflow-wrap: anywhere;
    color: var(--home-text);
    font-size: 13px;
    line-height: 1.25;
    font-weight: 900;
}

.listing-type-badge {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    max-width: 100%;
    padding: 4px 9px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.1;
}

.listing-badge-sale {
    border-color: color-mix(in srgb, #22c55e 48%, transparent);
    background: color-mix(in srgb, #22c55e 18%, var(--home-surface));
    color: color-mix(in srgb, #22c55e 82%, var(--home-text));
}

.listing-badge-rent {
    border-color: color-mix(in srgb, #3b82f6 48%, transparent);
    background: color-mix(in srgb, #3b82f6 18%, var(--home-surface));
    color: color-mix(in srgb, #3b82f6 82%, var(--home-text));
}

.listing-badge-wanted {
    border-color: color-mix(in srgb, #38bdf8 55%, transparent);
    background: color-mix(in srgb, #38bdf8 20%, var(--home-surface));
    color: color-mix(in srgb, #38bdf8 82%, var(--home-text));
}

.listing-badge-investment {
    border-color: color-mix(in srgb, #f59e0b 55%, transparent);
    background: color-mix(in srgb, #f59e0b 20%, var(--home-surface));
    color: color-mix(in srgb, #f59e0b 78%, var(--home-text));
}

.listing-badge-auction {
    border-color: color-mix(in srgb, #ef4444 52%, transparent);
    background: color-mix(in srgb, #ef4444 18%, var(--home-surface));
    color: color-mix(in srgb, #ef4444 82%, var(--home-text));
}

.listing-badge-development {
    border-color: color-mix(in srgb, #a855f7 52%, transparent);
    background: color-mix(in srgb, #a855f7 18%, var(--home-surface));
    color: color-mix(in srgb, #a855f7 78%, var(--home-text));
}

.listing-badge-default {
    border-color: var(--home-border);
    background: var(--home-surface-soft);
    color: var(--home-text);
}

[data-bs-theme="light"] .listing-badge-sale {
    color: #166534;
}

[data-bs-theme="light"] .listing-badge-rent {
    color: #1d4ed8;
}

[data-bs-theme="light"] .listing-badge-wanted {
    color: #0369a1;
}

[data-bs-theme="light"] .listing-badge-investment {
    color: #92400e;
}

[data-bs-theme="light"] .listing-badge-auction {
    color: #b91c1c;
}

[data-bs-theme="light"] .listing-badge-development {
    color: #6b21a8;
}

.wanted-request-note {
    padding: 9px 10px;
    border: 1px dashed color-mix(in srgb, #38bdf8 48%, var(--home-border));
    border-radius: 10px;
    color: var(--home-muted);
    font-size: 12px;
    font-weight: 800;
}

.matching-requests-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.matching-request-card {
    display: grid;
    gap: 12px;
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--home-border);
    border-radius: 12px;
    background: color-mix(in srgb, var(--home-surface-soft) 74%, transparent);
}

.matching-request-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.matching-request-head strong {
    color: var(--app-accent);
    font-size: 20px;
    font-weight: 900;
}

.matching-request-card h4 {
    margin: 0;
    color: var(--home-text);
    font-size: 17px;
    line-height: 1.3;
    font-weight: 900;
}

.matching-request-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.matching-request-facts span {
    min-width: 0;
    padding: 8px 9px;
    border: 1px solid var(--home-border);
    border-radius: 9px;
    background: var(--home-surface);
}

.matching-request-facts small {
    display: block;
    color: var(--home-muted);
    font-size: 11px;
    font-weight: 800;
}

.matching-request-facts b {
    display: block;
    overflow-wrap: anywhere;
    color: var(--home-text);
    font-size: 13px;
    line-height: 1.25;
}

.matching-request-card ul {
    display: grid;
    gap: 5px;
    margin: 0;
    padding-left: 18px;
    color: var(--home-muted);
    font-size: 12px;
    font-weight: 750;
}

[dir="rtl"] .matching-request-card ul {
    padding-right: 18px;
    padding-left: 0;
}

.matching-requests-empty {
    grid-column: 1 / -1;
    padding: 24px;
    text-align: center;
}

.matching-opportunity-list {
    display: grid;
    gap: 10px;
}

.matching-opportunity-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 12px;
    padding: 12px 14px;
    border: 1px solid var(--home-border);
    border-radius: 12px;
    background: color-mix(in srgb, var(--home-surface-soft) 72%, transparent);
    color: var(--home-text);
    text-decoration: none;
}

.matching-opportunity-item:hover {
    border-color: color-mix(in srgb, var(--app-accent) 56%, var(--home-border));
    color: var(--home-text);
}

.matching-opportunity-item span,
.matching-opportunity-item strong {
    font-weight: 900;
}

.matching-opportunity-item strong {
    color: var(--app-accent);
}

.matching-opportunity-item small {
    grid-column: 1 / -1;
    color: var(--home-muted);
    font-weight: 750;
}

.notification-count {
    display: inline-grid;
    place-items: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 11px;
    font-weight: 900;
}

.notification-list {
    display: grid;
    gap: 10px;
}

.notification-list.compact {
    max-height: 360px;
    overflow: auto;
}

.notification-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 13px 14px;
    border: 1px solid var(--home-border);
    border-radius: 12px;
    background: color-mix(in srgb, var(--home-surface-soft) 68%, transparent);
}

.notification-item.is-unread {
    border-color: color-mix(in srgb, var(--app-accent) 60%, var(--home-border));
    background: color-mix(in srgb, var(--app-accent) 12%, var(--home-surface));
}

.notification-item strong {
    color: var(--home-text);
    font-weight: 900;
}

.notification-item p {
    margin: 4px 0;
    color: var(--home-muted);
    font-size: 13px;
}

.notification-item small,
.dashboard-mini-heading {
    color: var(--home-muted);
    font-weight: 800;
}

.dashboard-mini-heading {
    margin: 0 0 10px;
    font-size: 14px;
}

.property-inquiry-status {
    align-self: center;
    color: var(--home-muted);
    font-weight: 800;
}

.search-empty-state {
    grid-column: 1 / -1;
    padding: 46px 20px;
    text-align: center;
}

.search-pagination-wrap {
    display: flex;
    justify-content: center;
    margin-top: 24px;
}

.pagination .page-link {
    border-color: var(--app-border);
    background: var(--app-surface);
    color: var(--app-text);
    font-weight: 800;
}

.pagination .page-item.active .page-link {
    border-color: var(--app-accent);
    background: var(--app-accent);
    color: #101827;
}

.workflow-main {
    width: min(1520px, 100%);
    margin: 0 auto;
    padding: clamp(22px, 4vw, 46px);
}

.workflow-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 22px;
    margin-bottom: 24px;
    color: #fff;
}

[data-bs-theme="light"] .home-landing .workflow-hero {
    color: var(--home-text);
}

.workflow-hero h1 {
    max-width: 820px;
    margin: 0 0 10px;
    font-size: clamp(34px, 4vw, 56px);
    line-height: 1.05;
    font-weight: 900;
}

.workflow-hero p {
    max-width: 860px;
    margin: 0;
    color: rgba(238, 244, 251, .75);
}

[data-bs-theme="light"] .home-landing .workflow-hero p {
    color: var(--home-muted);
}

[data-bs-theme="light"] .home-landing[data-valuation-workflow] .workflow-hero,
[data-bs-theme="light"] .valuation-result-shell .workflow-hero {
    color: var(--text-main, var(--home-text));
}

[data-bs-theme="light"] .home-landing[data-valuation-workflow] .workflow-hero h1,
[data-bs-theme="light"] .valuation-result-shell .workflow-hero h1 {
    color: var(--text-main, #101827);
}

[data-bs-theme="light"] .home-landing[data-valuation-workflow] .workflow-hero p,
[data-bs-theme="light"] .valuation-result-shell .workflow-hero p {
    color: var(--text-muted, #526173);
}

[data-bs-theme="light"] .home-landing[data-valuation-workflow] .workflow-hero .btn-outline-light,
[data-bs-theme="light"] .valuation-result-shell .workflow-hero .btn-outline-light,
[data-bs-theme="light"] .valuation-result-shell .valuation-rejected-page .btn-outline-light {
    --bs-btn-color: var(--button-text, #101827);
    --bs-btn-border-color: var(--border-color, rgba(16, 24, 39, .22));
    --bs-btn-bg: var(--card-bg, #fff);
    --bs-btn-hover-color: var(--button-text, #101827);
    --bs-btn-hover-bg: var(--button-bg, var(--gold, #d9a51f));
    --bs-btn-hover-border-color: var(--button-bg, var(--gold, #d9a51f));
    --bs-btn-active-color: var(--button-text, #101827);
    --bs-btn-active-bg: var(--button-bg, var(--gold, #d9a51f));
    --bs-btn-active-border-color: var(--button-bg, var(--gold, #d9a51f));
    color: var(--bs-btn-color);
    background-color: var(--bs-btn-bg);
    border-color: var(--bs-btn-border-color);
}

[data-bs-theme="light"] .home-landing[data-valuation-workflow] .workflow-hero .btn:disabled,
[data-bs-theme="light"] .home-landing[data-valuation-workflow] .workflow-hero .btn.disabled,
[data-bs-theme="light"] .valuation-result-shell .btn:disabled,
[data-bs-theme="light"] .valuation-result-shell .btn.disabled {
    color: color-mix(in srgb, var(--text-main, #101827) 58%, white);
    background-color: color-mix(in srgb, var(--card-bg, #fff) 80%, var(--border-color, #cbd5e1));
    border-color: var(--border-color, #cbd5e1);
    opacity: 1;
}

.workflow-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(410px, .8fr);
    gap: 22px;
    align-items: start;
}

.workflow-card {
    border: 1px solid var(--app-border);
    border-radius: 16px;
    background: var(--app-surface);
    box-shadow: var(--app-shadow);
    padding: 22px;
}

.workflow-map {
    min-height: 540px;
}

.workflow-admin-panel {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

.admin-public-shell .workflow-hero {
    color: var(--home-text);
}

.admin-public-shell .workflow-hero p {
    color: var(--home-muted);
}

.admin-workflow-main {
    display: grid;
    gap: 22px;
}

.admin-page-hero {
    margin-bottom: 0;
}

.admin-hero-actions .btn-outline-light,
.admin-public-shell .btn-outline-light {
    --bs-btn-color: var(--home-text);
    --bs-btn-border-color: var(--home-border);
    --bs-btn-hover-color: #101827;
    --bs-btn-hover-bg: var(--app-accent);
    --bs-btn-hover-border-color: var(--app-accent);
}

.admin-form-card,
.admin-upload-card,
.admin-index-card {
    display: grid;
    gap: 22px;
}

.admin-form-section {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--app-border);
    border-radius: 12px;
    background: var(--app-surface-2);
}

.admin-section-title {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--app-border);
}

.admin-section-title span {
    color: var(--app-text);
    font-weight: 900;
}

.admin-section-title small,
.form-helper {
    color: var(--app-muted);
    font-size: 12px;
    font-weight: 700;
}

.form-helper {
    margin-top: 6px;
    line-height: 1.35;
}

.field-label-note {
    color: var(--app-accent);
    font-weight: 900;
}

.admin-alert {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin: 0;
    border-radius: 12px;
    color: var(--app-text);
}

.admin-alert small {
    color: var(--app-muted);
    font-weight: 700;
}

.admin-status-pill {
    border: 1px solid color-mix(in srgb, var(--app-accent) 42%, var(--app-border));
    background: color-mix(in srgb, var(--app-accent) 14%, var(--app-surface));
    color: var(--app-accent);
}

.admin-material-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(360px, .65fr);
    gap: 22px;
    align-items: stretch;
}

.admin-upload-drop {
    display: grid;
    gap: 10px;
    padding: 18px;
    border: 1px dashed color-mix(in srgb, var(--app-accent) 54%, var(--app-border));
    border-radius: 14px;
    background: color-mix(in srgb, var(--app-accent) 8%, var(--app-surface-2));
}

.admin-upload-drop strong {
    color: var(--app-text);
    font-size: 16px;
}

.admin-upload-drop span {
    color: var(--app-muted);
    font-weight: 700;
}

.admin-index-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.admin-index-summary > div {
    display: grid;
    gap: 4px;
    min-height: 96px;
    padding: 14px;
    border: 1px solid var(--app-border);
    border-radius: 12px;
    background: var(--app-surface-2);
}

.admin-index-summary span {
    color: var(--app-muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.admin-index-summary strong {
    color: var(--app-text);
    font-size: clamp(24px, 3vw, 34px);
    line-height: 1;
}

.admin-card-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 4px;
}

.admin-table-wrap {
    border: 1px solid var(--app-border);
    border-radius: 12px;
    background: var(--app-surface-2);
}

.admin-public-shell .table {
    color: var(--app-text);
}

.admin-public-shell .table thead th {
    color: var(--app-muted);
}

.admin-public-shell .form-control,
.admin-public-shell .form-select {
    background-color: var(--app-surface);
    color: var(--app-text);
    border-color: var(--app-border);
}

.admin-public-shell textarea.form-control {
    min-height: 92px;
}

.workflow-status {
    padding: 12px 14px;
    border: 1px solid var(--app-border);
    border-radius: 10px;
    background: var(--app-surface-2);
    color: var(--app-muted);
    font-weight: 800;
}

.workflow-status[data-tone="success"] {
    border-color: color-mix(in srgb, #14b8a6 50%, var(--app-border));
    color: color-mix(in srgb, #14b8a6 80%, var(--app-text));
}

.workflow-status[data-tone="warning"] {
    border-color: color-mix(in srgb, var(--app-accent) 56%, var(--app-border));
    color: var(--app-accent);
}

.workflow-status[data-tone="danger"] {
    border-color: color-mix(in srgb, #ef4444 58%, var(--app-border));
    color: #f87171;
}

.workflow-form-section {
    padding-bottom: 18px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--app-border);
}

.workflow-form-section:last-of-type {
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: 0;
}

.workflow-form-section h3 {
    margin: 0 0 14px;
    font-size: 18px;
    font-weight: 900;
}

.workflow-admin-select {
    background-color: var(--app-surface-2);
}

.workflow-help {
    display: block;
    margin-top: 6px;
    color: var(--app-muted);
    font-weight: 700;
}

.workflow-switch-field {
    display: flex;
    flex-direction: column;
    justify-content: end;
}

.workflow-switch-field .form-check {
    min-height: 42px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--app-border);
    border-radius: 10px;
    background: var(--app-surface-2);
}

.workflow-switch-field .form-check-input {
    float: none;
    margin: 0;
}

.workflow-request-mode [data-images-field] {
    display: none;
}

[dir="rtl"] .home-hero-map::after {
    background:
        linear-gradient(270deg, rgba(7, 13, 24, .82), rgba(7, 13, 24, .36) 48%, rgba(7, 13, 24, .12)),
        linear-gradient(0deg, rgba(7, 13, 24, .64), transparent 45%);
}

[data-bs-theme="light"] .home-hero-map::after {
    background:
        linear-gradient(90deg, rgba(247, 250, 246, .88), rgba(247, 250, 246, .44) 48%, rgba(247, 250, 246, .18)),
        linear-gradient(0deg, rgba(237, 243, 241, .68), transparent 48%);
}

[data-bs-theme="light"] [dir="rtl"] .home-hero-map::after {
    background:
        linear-gradient(270deg, rgba(247, 250, 246, .88), rgba(247, 250, 246, .44) 48%, rgba(247, 250, 246, .18)),
        linear-gradient(0deg, rgba(237, 243, 241, .68), transparent 48%);
}

@media (max-width: 1280px) {
    .home-nav-links {
        display: none;
    }

    .home-menu-button {
        display: inline-grid;
        place-items: center;
    }

    .home-insight-grid,
    .home-listing-grid,
    .home-feature-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .search-control-map {
        grid-template-columns: 1fr;
    }

    .search-map-first-grid {
        grid-template-columns: 1fr;
    }

    .search-filter-sidebar {
        position: static;
        max-height: none;
        order: -1;
    }

    .search-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .search-card-grid-25 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .matching-requests-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .workflow-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .home-navbar {
        min-height: 68px;
        padding: 14px 16px;
    }

    .home-logo strong {
        max-width: 136px;
        font-size: 15px;
    }

    .home-hero {
        min-height: auto;
        padding: 18px 14px 28px;
    }

    .home-hero-map {
        position: relative;
        min-height: 360px;
        border-radius: 0 0 18px 18px;
        margin: -18px -14px 18px;
        overflow: hidden;
    }

    .home-hero-map::after {
        background: linear-gradient(0deg, rgba(7, 13, 24, .5), transparent 58%);
    }

    [data-bs-theme="light"] .home-hero-map::after {
        background: linear-gradient(0deg, rgba(237, 243, 241, .52), transparent 58%);
    }

    .home-search-panel {
        padding: 20px;
        border-radius: 14px;
    }

    .home-search-panel h1 {
        font-size: 36px;
    }

    .home-keyword-row,
    .home-insight-grid,
    .home-listing-grid,
    .home-feature-grid {
        grid-template-columns: 1fr;
    }

    .home-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .home-main {
        padding: 38px 14px 64px;
    }

    .search-main {
        padding: 22px 14px 48px;
    }

    .search-page-hero,
    .search-map-heading,
    .search-results-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .search-hero-actions {
        justify-content: flex-start;
    }

    .search-map-large {
        min-height: 520px;
    }

    .search-map-focus {
        min-height: 560px;
    }

    .search-card-grid {
        grid-template-columns: 1fr;
    }

    .search-card-grid-25 {
        grid-template-columns: 1fr;
    }

    .matching-requests-grid,
    .matching-request-facts {
        grid-template-columns: 1fr;
    }

    .workflow-main {
        padding: 22px 14px 48px;
    }

    .workflow-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .workflow-map {
        min-height: 420px;
    }
}

@media (max-width: 900px) {
    .dashboard-main {
        width: min(100% - 28px, 720px);
        padding-top: 18px;
    }

    .dashboard-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .dashboard-metrics,
    .dashboard-grid,
    .dashboard-grid-wide,
    .dashboard-chart-grid,
    .admin-insight-grid,
    .admin-analytics-grid {
        grid-template-columns: 1fr;
    }

    .dashboard-map {
        min-height: 340px;
    }

    .dashboard-map-wide {
        min-height: clamp(320px, 58vw, 400px);
    }

    .admin-dashboard-main {
        width: min(100% - 28px, 720px);
    }

    .admin-chart-card {
        min-height: 380px;
    }

    .admin-chart-wrap {
        height: 290px;
    }

    .admin-coverage-map {
        min-height: 380px;
    }

    .admin-table-footer,
    .admin-map-stats {
        align-items: flex-start;
        flex-direction: column;
    }

    .property-details-main {
        width: min(100% - 28px, 720px);
        padding-top: 18px;
    }

    .property-details-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .property-media-map-grid,
    .property-intelligence-grid,
    .property-facts-grid {
        grid-template-columns: 1fr;
    }

    .property-details-main-image,
    .property-details-map,
    .property-details-map-empty {
        min-height: clamp(320px, 64vw, 400px);
    }

    .property-spatial-details summary {
        align-items: flex-start;
    }

    .home-menu-groups {
        grid-template-columns: 1fr;
    }

    .valuation-split {
        grid-template-columns: 1fr;
    }

    .valuation-map-and-summary,
    .valuation-chart-grid,
    .admin-material-grid {
        grid-template-columns: 1fr;
    }

    .admin-section-title {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }
}

@media (max-width: 560px) {
    .home-nav-tools {
        gap: 6px;
    }

    .home-theme-toggle {
        min-width: 64px;
        padding: 0 9px;
    }

    .home-language,
    .home-menu-button {
        width: 40px;
        height: 40px;
    }

    .admin-form-section,
    .admin-upload-drop {
        padding: 14px;
    }

    .admin-index-summary {
        grid-template-columns: 1fr;
    }

    .valuation-summary-tiles {
        grid-template-columns: 1fr;
    }

    .admin-card-actions .btn {
        width: 100%;
    }
}

/* Global V3 navbar: one compact navigation system for public, user, and admin pages. */
.app-global-shell {
    min-height: 100vh;
    background: var(--home-bg);
    color: var(--home-text);
}

.app-global-content {
    width: min(1680px, calc(100% - 32px));
    margin: 0 auto;
    padding: 24px 0 48px;
}

.global-v3-navbar.home-navbar,
.home-navbar {
    min-height: 60px;
    max-height: 60px;
    gap: 10px;
    padding: 8px clamp(12px, 2.4vw, 32px);
    overflow: visible;
}

.global-v3-navbar .home-logo {
    gap: 9px;
}

.global-v3-navbar .home-logo span {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1;
}

.global-v3-navbar .home-logo strong {
    max-width: clamp(104px, 13vw, 184px);
    font-family: inherit;
    font-size: 14px;
    font-weight: 850;
    line-height: 1;
}

.global-v3-navbar .home-nav-links {
    gap: 6px;
}

.global-v3-navbar .home-nav-links a,
.global-v3-navbar .home-nav-tool-link,
.global-v3-navbar .home-user-chip,
.global-v3-navbar .home-language,
.global-v3-navbar .home-theme-toggle,
.global-v3-navbar .home-menu-button {
    box-sizing: border-box;
    min-height: 36px;
    height: 36px;
    border: 1px solid var(--home-border);
    border-radius: 8px;
    padding: 0 10px;
    background: color-mix(in srgb, var(--home-surface-soft) 54%, transparent);
    color: var(--home-text);
    font-family: inherit;
    font-size: 13px;
    font-weight: 800;
    line-height: 36px;
    letter-spacing: 0;
    text-decoration: none;
    white-space: nowrap;
    transition: color .16s ease, background-color .16s ease, border-color .16s ease;
}

.global-v3-navbar .home-nav-links a {
    display: inline-flex;
    align-items: center;
    max-width: clamp(74px, 9vw, 132px);
    overflow: hidden;
    text-overflow: ellipsis;
}

.global-v3-navbar .home-nav-links .nav-action,
.global-v3-navbar .home-nav-links .nav-action-gold {
    min-height: 36px;
    padding: 0 10px;
    border-radius: 8px;
}

.global-v3-navbar .home-nav-tools {
    gap: 6px;
}

.global-v3-navbar .home-nav-tool-link,
.global-v3-navbar .home-user-chip,
.global-v3-navbar .home-language,
.global-v3-navbar .home-theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.global-v3-navbar .home-user-chip {
    max-width: clamp(112px, 14vw, 210px);
    overflow: hidden;
    text-overflow: ellipsis;
}

.global-v3-navbar .home-theme-toggle {
    min-width: 66px;
}

.global-v3-navbar .home-language,
.global-v3-navbar .home-menu-button {
    width: 36px;
    padding: 0;
}

.global-v3-navbar .home-menu-button {
    display: inline-grid;
    place-items: center;
    font-size: 19px;
    line-height: 1;
}

.global-v3-navbar .home-nav-links a:hover,
.global-v3-navbar .home-nav-tool-link:hover,
.global-v3-navbar .home-user-chip:hover,
.global-v3-navbar .home-language:hover,
.global-v3-navbar .home-theme-toggle:hover,
.global-v3-navbar .home-menu-button:hover,
.global-v3-navbar .home-nav-links a.active,
.global-v3-navbar .home-nav-tool-link.active,
.global-v3-navbar .home-user-chip.active {
    color: var(--app-accent);
    border-color: color-mix(in srgb, var(--app-accent) 62%, var(--home-border));
    background: color-mix(in srgb, var(--app-accent) 13%, var(--home-surface-soft));
}

.home-menu-panel {
    top: 60px;
    border-radius: 8px;
}

@media (max-width: 1280px) {
    .global-v3-navbar .home-nav-links {
        display: none;
    }
}

@media (max-width: 760px) {
    .global-v3-navbar.home-navbar,
    .home-navbar {
        min-height: 58px;
        max-height: 58px;
        padding: 7px 10px;
    }

    .home-menu-panel {
        top: 58px;
    }

    .global-v3-navbar .home-logo strong {
        max-width: 118px;
        font-size: 13px;
    }

    .global-v3-navbar .home-nav-tools {
        gap: 4px;
    }

    .global-v3-navbar .home-user-chip {
        max-width: 112px;
    }
}

@media (max-width: 560px) {
    .global-v3-navbar .home-logo strong {
        display: none;
    }

    .global-v3-navbar .home-nav-tool-link,
    .global-v3-navbar .home-user-chip,
    .global-v3-navbar .home-language,
    .global-v3-navbar .home-theme-toggle,
    .global-v3-navbar .home-menu-button {
        min-height: 34px;
        height: 34px;
        font-size: 12px;
        line-height: 34px;
        padding-inline: 7px;
    }

    .global-v3-navbar .home-user-chip {
        max-width: 88px;
    }

    .global-v3-navbar .home-theme-toggle {
        min-width: 54px;
    }

    .global-v3-navbar .home-language,
    .global-v3-navbar .home-menu-button {
        width: 34px;
        padding: 0;
    }
}
