





















@media (max-width: 900px) {
    
    img,
    video,
    iframe,
    svg { max-width: 100%; }

    
    :root {
        --safe-left: env(safe-area-inset-left, 0px);
        --safe-right: env(safe-area-inset-right, 0px);
    }

    
    body { padding-inline: var(--safe-left) var(--safe-right); }
}




@media (max-width: 900px) {
    
    .site-header { right: .6rem; left: .6rem; width: auto; }
    
    .nav-toggle { min-width: 46px; min-height: 46px; display: inline-flex; align-items: center; justify-content: center; }
    .nav-links a { min-height: 46px; display: flex; align-items: center; }

    .hero { padding-top: calc(var(--header-top) + var(--header-height) + 1.6rem); padding-bottom: 2rem; }
    .hero h1 { font-size: clamp(1.5rem, 7vw, 2rem); }
    .page-hero { padding-top: calc(var(--header-top) + var(--header-height) + 1.2rem); padding-bottom: 1.2rem; }
    .page-hero h1 { font-size: clamp(1.4rem, 7vw, 1.9rem); }
    .section { padding-block: 1.6rem; }

    
    .quick-search-meta { flex-wrap: wrap; gap: .5rem; }

    
    .filter-bar { padding: .8rem .85rem; }
    .search-range-inputs { flex-wrap: nowrap; }
    .search-range-inputs input,
    .search-range-inputs select { min-width: 0; }
    .search-form-actions { flex-wrap: wrap; }

    







    .property-search--fold .ps-fold-bar { padding: .5rem .6rem; }
    .property-search--fold .ps-fold-btn { flex: 1 1 100%; min-height: 48px; }
    .property-search--fold .ps-fold-note { white-space: normal; }
    .property-search--fold .ps-fold-clear { margin-inline-start: auto; min-height: 38px; }


    

    .property-search--fold:has(.ps-fold-input:checked) .ps-fold-body {
        position: fixed;
        inset: 0;
        z-index: 80;
        margin: 0;
        display: block;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        background: var(--surface);
        padding: 0 .9rem .5rem;
    }
    html:has(.ps-fold-input:checked) { overflow: hidden; }

    .ps-fold-sheet-head {
        position: sticky;
        inset-block-start: 0;
        z-index: 3;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: .6rem;
        margin: 0 -.9rem .8rem;
        

        padding: calc(.55rem + env(safe-area-inset-top, 0px)) .9rem .55rem;
        background: var(--surface);
        border-bottom: 1px solid var(--line);
        box-shadow: 0 .4rem 1rem rgba(15, 23, 42, .05);
    }
    .ps-fold-sheet-title {
        display: inline-flex;
        align-items: center;
        gap: .45rem;
        font-size: 1rem;
        font-weight: 700;
        color: var(--ink);
    }
    .ps-fold-sheet-title .svg-icon { width: 16px; height: 16px; color: var(--brand); }
    .ps-fold-sheet-close {
        display: inline-flex;
        align-items: center;
        gap: .3rem;
        min-height: 40px;
        padding: 0 .75rem;
        border: 1px solid var(--line);
        border-radius: var(--radius-pill);
        font-size: .82rem;
        font-weight: 700;
        color: var(--muted);
        cursor: pointer;
    }
    .ps-fold-sheet-close .svg-icon { width: 12px; height: 12px; }

    
    .property-search--fold:has(.ps-fold-input:checked) .ps-panel { border-radius: var(--radius); }

    

    .property-search--fold:has(.ps-fold-input:checked) .search-form-actions {
        position: sticky;
        inset-block-end: 0;
        z-index: 4;
        margin: .9rem -.9rem 0;
        padding: .65rem .9rem calc(.65rem + env(safe-area-inset-bottom, 0px));
        background: var(--surface);
        border-top: 1px solid var(--line);
        box-shadow: 0 -.5rem 1.2rem rgba(15, 23, 42, .07);
    }
    .property-search--fold:has(.ps-fold-input:checked) .search-form-actions .search-result-hint,
    .property-search--fold:has(.ps-fold-input:checked) .search-form-actions .btn-secondary { display: none; }
    .property-search--fold:has(.ps-fold-input:checked) .search-form-actions .btn-primary { flex: 1 1 100%; min-height: 48px; }
}

@media (max-width: 640px) {
    
    


    .prop-row-gallery::after {
        content: '';
        position: absolute;
        inset: -6px -4px;
        border-radius: inherit;
    }
    .prop-row-gallery { min-height: 30px; }
    .prop-row-link { min-height: 40px; align-items: center; }
    .prop-loadmore-btn { min-height: 46px; }
    .pagination a,
    .pagination span { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; }
    .prop-row { grid-template-columns: minmax(0, 1fr); gap: .7rem; padding: .7rem; }
    .prop-row-media { min-height: 0; height: clamp(150px, 46vw, 210px); }
    .prop-row-media.prop-media-empty { min-height: 140px; }
    .prop-row-head { flex-wrap: wrap; gap: .25rem .6rem; }
    .prop-row-title { font-size: .98rem; }
    

    .prop-row-desc { -webkit-line-clamp: 1; }
    .prop-row-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .prop-spec > span { white-space: normal; }
    .prop-row-side {
        flex-direction: column;
        align-items: stretch;
        gap: .55rem;
        border-top: 1px solid var(--line-soft);
        padding-top: .6rem;
    }
    .prop-row-price { align-items: stretch; text-align: right; }
    .prop-row-price-label,
    .prop-row-price-value,
    .prop-row-price-extra { text-align: right; }
    .prop-row-price-parts { flex-direction: row; flex-wrap: wrap; }
    .prop-price-part { flex: 1 1 44%; }
    .prop-row-status { align-self: flex-start; }
    .prop-row-link { justify-content: flex-start; }
    .prop-row-amenities { font-size: .78rem; }

    
    .ps-grid-base,
    .ps-grid-ranges { grid-template-columns: minmax(0, 1fr); }
    .search-field input,
    .search-field select,
    .search-range-inputs input,
    .search-range-inputs select { height: 46px; }
    .search-form-actions { gap: .5rem; }
    .search-form-actions .btn-primary,
    .search-form-actions .btn-secondary { flex: 1 1 100%; justify-content: center; }

    

    .property-search--fold .ps-fold-note { display: none; }
    .property-search--fold .ps-fold-bar { padding: .45rem .55rem; }
    .ps-fold-badge { font-size: .7rem; }

    
    .container { padding-inline: 1rem; }
    .btn-primary,
    .btn-secondary { justify-content: center; min-height: 46px; }
    .card,
    .dash-section { border-radius: var(--radius); }
    
    .category-chips { gap: .4rem; }
    .category-chip { padding: .5rem .8rem; font-size: .82rem; min-height: 44px; display: inline-flex; align-items: center; }
    .price-band { flex-wrap: wrap; }

    
    .search-field input,
    .search-field select,
    .qs-field input,
    .qs-field select,
    input[type="text"],
    input[type="search"],
    input[type="tel"],
    input[type="number"],
    input[type="email"],
    input[type="password"],
    select,
    textarea { font-size: 16px; }

    




    .pd-head { padding-bottom: .9rem; }
    .pd-crumbs { margin-bottom: .7rem; }
    .pd-hero { gap: .8rem; }
    .pd-intro { padding: .9rem; gap: .7rem; }
    .pd-title { font-size: 1.18rem; line-height: 1.55; }
    .pd-sub { font-size: .78rem; gap: .25rem .7rem; }
    .pd-price { padding: .7rem .8rem; }
    .pd-price-rows { width: 100%; }
    .pd-price-row { justify-content: space-between; padding-top: .25rem; }
    .pd-price-value { font-size: 1.35rem; }

    
    .pd-facts { grid-template-columns: repeat(auto-fit, minmax(72px, 1fr)); gap: .35rem; }
    .pd-fact { padding: .4rem .45rem; gap: 0; }
    .pd-fact b { font-size: .84rem; }
    .pd-fact > span:last-child { font-size: .68rem; }
    .pd-fact-icon .svg-icon { width: 12px; height: 12px; }
    .pd-actions { gap: .4rem; }
    
    .pd-btn { flex: 1 1 45%; justify-content: center; padding: .55rem .8rem; white-space: nowrap; }

    
    .pd-card { padding: .9rem; margin-bottom: .9rem; }
    .pd-layout,
    .pd-main { gap: .9rem; }
    .pd-card-head { font-size: .95rem; }

    
    .pd-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; }
    .pd-spec { padding: .4rem .5rem; }
    .pd-spec dt { font-size: .72rem; }
    .pd-spec dd { font-size: .82rem; }
    .pd-desc { font-size: .9rem; line-height: 1.95; }
    .pd-amen-box { padding: .55rem .6rem; }

    
    .pd-file-rows { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem .7rem; }
    .pd-file-row {
        display: grid;
        justify-content: start;
        gap: .05rem;
        padding-bottom: 0;
        border-bottom: 0;
    }
    .pd-file-row span { font-size: .7rem; }
    .pd-file-row b { font-size: .82rem; text-align: start; }
    .pd-file-note { margin-top: .6rem; font-size: .74rem; }

    
    .pd-share-note { margin-bottom: .5rem; }
    .pd-share-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .35rem; }
    .pd-share-link { padding: .5rem .3rem; gap: .25rem; font-size: .74rem; }
    .pd-share-link .svg-icon { width: 13px; height: 13px; }

    

    .pd-body .prop-list {
        display: flex;
        gap: .7rem;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        padding-bottom: .35rem;
        margin-inline: -.9rem;
        padding-inline: .9rem;
    }
    .pd-body .prop-list .prop-row {
        flex: 0 0 min(86%, 340px);
        scroll-snap-align: start;
    }
    .pd-body .prop-list .prop-row-desc { display: none; }

    







    .dash-wrap {
        width: 100%;
        padding-inline: 1rem;
        padding-top: calc(var(--header-top) + var(--header-height) + .9rem);
        padding-bottom: 2.5rem;
    }
    .dash-title { margin-bottom: .8rem; }
    .dash-title h1 { font-size: 1.25rem; }
    .dash-title .svg-icon { width: 20px; height: 20px; }

    
    .dash-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
        gap: .4rem;
        margin-bottom: .9rem;
        padding-bottom: .3rem;
    }
    .dash-tab { flex: 0 0 auto; scroll-snap-align: start; min-height: 42px; }
    

    .dash-tabs::-webkit-scrollbar,
    .pd-body .prop-list::-webkit-scrollbar { display: none; }
    .dash-tabs,
    .pd-body .prop-list { scrollbar-width: none; }

    

    .account-card {
        flex-direction: row;
        align-items: center;
        text-align: right;
        gap: .75rem;
        padding: .85rem .9rem;
        border-radius: var(--radius-lg);
        margin-bottom: .9rem;
    }
    .account-avatar { width: 52px; height: 52px; border-radius: 15px; font-size: 1.25rem; }
    .account-info { min-width: 0; }
    .account-name { font-size: 1.02rem; }
    .account-meta { justify-content: flex-start; gap: .25rem .7rem; font-size: .73rem; margin-top: .2rem; }
    .account-role { padding: .15rem .55rem; font-size: .68rem; }
    .account-logout {
        flex: 1 1 100%;
        justify-content: center;
        padding: .55rem .8rem;
        font-size: .8rem;
        min-height: 42px;
    }

    .dash-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; margin-bottom: .9rem; }
    .dash-stat { padding: .6rem .5rem; border-radius: var(--radius); }
    .dash-stat b { font-size: 1.2rem; }
    .dash-section { padding: .9rem; margin-bottom: .9rem; }
    .dash-section-head { margin-bottom: .7rem; }
    .dash-section-head h2 { font-size: 1rem; }
    .dash-cols { gap: .9rem; margin-bottom: .9rem; }

    .pdf-grid { grid-template-columns: minmax(0, 1fr); gap: .7rem; }
    .pdf-card { padding: .8rem; }
    .pdf-header { gap: .6rem; padding-bottom: .6rem; margin-bottom: .6rem; }
    .pdf-icon { width: 38px; height: 38px; border-radius: 11px; }
    .pdf-title { font-size: .9rem; }
    .party-row { font-size: .76rem; margin-bottom: .35rem; }

    
    .view-item { gap: .55rem; padding: .55rem 0; }
    .view-icon { width: 32px; height: 32px; border-radius: 10px; }
    .view-name { white-space: normal; font-size: .84rem; }
    .view-times,
    .view-date { font-size: .68rem; }
    .req-item { gap: .55rem; padding: .6rem 0; }
    .req-icon { width: 32px; height: 32px; border-radius: 10px; }
    .req-prop { font-size: .86rem; }

    
    .staff-entry { padding: .85rem .9rem; border-radius: var(--radius-lg); }
    .staff-entry-btn { flex: 1 1 100%; justify-content: center; min-height: 46px; }
}















@media (max-width: 620px) {
    .quick-search-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .5rem;
    }
    
    .quick-search-bar .qs-field { grid-column: span 1; }
    
    .quick-search-bar .qs-field-search,
    .quick-search-bar .qs-span-4,
    .quick-search-bar .qs-submit { grid-column: 1 / -1; }
    

    .quick-search-bar .qs-field input::placeholder { font-size: .82rem; }
    

    .quick-search-bar .qs-field input,
    .quick-search-bar .qs-field select { padding-inline: .55rem; }
}






@media (max-width: 385px) {
    .quick-search-bar .qs-field:has(#qs-deal),
    .quick-search-bar .qs-field:has(#qs-bedrooms) { grid-column: 1 / -1; }
}




@media (max-width: 900px) {
    

    .admin-main {
        padding-inline: 12px;
        padding-bottom: calc(18px + env(safe-area-inset-bottom, 0px));
    }
    .admin-header { padding-inline: 10px; }
    .header-title { font-size: 16px; }
    .header-logout,
    .header-toggle { width: 40px; height: 40px; }

    
    .admin-sidebar { width: min(86vw, 330px); padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)); }
    .nav-link { min-height: 46px; font-size: 14.5px; }
    .sidebar-close { width: 40px; height: 40px; }

    
    .page-toolbar { gap: 10px; }
    .toolbar-actions { flex-wrap: wrap; gap: 8px; }
    .toolbar-actions .btn { min-height: 44px; }

    






    .table-responsive {
        -webkit-overflow-scrolling: touch;
        overflow-x: auto;
    }
    .table-responsive > .table { width: max-content; min-width: 100%; }
    .table th,
    .table td { padding: 9px 10px; }
    .table th { position: static; } 
    
    .table-responsive > .table td { max-width: 68vw; }
    .cell-actions .actions-row { flex-wrap: wrap; gap: 6px; }
    .cell-actions .btn { min-height: 36px; }

    .table-labeled { width: 100% !important; min-width: 0 !important; }
    .table-labeled thead { display: none; }
    .table-labeled tbody tr {
        display: block;
        margin-bottom: 10px;
        padding: 10px 11px;
        border: var(--a-border);
        border-radius: 12px;
        background: var(--surface);
    }
    .table-labeled tbody tr:last-child { margin-bottom: 0; }
    




    .table-labeled tbody tr[hidden],
    .table-labeled tbody td[hidden] { display: none; }
    .table-labeled tbody td {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 10px;
        width: auto;
        max-width: none !important;
        padding: 5px 0;
        border: 0;
        border-bottom: 1px dashed var(--line-soft);
        text-align: start;
        white-space: normal;
    }
    .table-labeled tbody td:last-child { border-bottom: 0; padding-bottom: 0; }
    .table-labeled tbody td:first-child { padding-top: 0; }
    .table-labeled tbody td::before {
        content: attr(data-label);
        flex: 0 0 auto;
        color: var(--muted);
        font-size: 12px;
        font-weight: 600;
    }
    .table-labeled tbody td > * { min-width: 0; }
    
    .table-labeled tbody td[dir="ltr"] { justify-content: flex-start; gap: 8px; }
    


    .table-labeled tbody td:has(.actions-row) { display: block; }
    

    .table-labeled tbody td.cell-actions { width: auto; white-space: normal; }
    .table-labeled tbody td:has(.actions-row)::before { display: block; margin-bottom: 5px; }
    .table-labeled tbody td .actions-row {
        width: 100%;
        justify-content: flex-start;
        flex-wrap: wrap;
        gap: 6px;
    }
    .table-labeled tbody td .actions-row form { display: contents; }
    .table-labeled tbody td .actions-row .btn { flex: 0 0 auto; }
    .table-labeled tbody td img { max-height: 48px; }
    .table-labeled tbody td .table-thumbnail { width: 38px; height: 38px; }

    .filter-bar-row > .form-group { max-width: none; }

    
    .form-control,
    .form-select,
    .admin-content input[type="text"],
    .admin-content input[type="search"],
    .admin-content input[type="tel"],
    .admin-content input[type="number"],
    .admin-content input[type="email"],
    .admin-content input[type="password"],
    .admin-content input[type="date"],
    .admin-content select,
    .admin-content textarea { font-size: 16px; }
    .form-control,
    .form-select { min-height: 46px; }
    .btn { min-height: 42px; }

    
    .form-actions {
        position: sticky;
        inset-block-end: 0;
        z-index: 6;
        margin: 0 -12px -12px;
        padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
        background: var(--surface);
        border-top: var(--a-border);
        box-shadow: 0 -6px 18px rgba(15, 23, 42, .08);
    }

    








    .property-entry-form .pf-body { padding: 8px 10px 10px; gap: 9px; }
    .property-entry-form .pf-row,
    .property-entry-form .pf-box,
    .property-entry-form .price-group { gap: 9px; }
    .property-entry-form .pf-f,
    .property-entry-form .pf-f.pf-stack {
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
        gap: 3px;
    }
    .property-entry-form .pf-lbl {
        font-size: 13px;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }
    .property-entry-form .pf-in { flex-wrap: wrap; gap: 8px; }
    .property-entry-form .form-control {
        height: 46px;
        min-height: 46px;
        padding-block: 8px;
        font-size: 16px;
    }
    .property-entry-form textarea.form-control { min-height: 96px; line-height: 1.8; }
    .property-entry-form .pf-box { padding: 6px 10px 12px; border-radius: 12px; }
    .property-entry-form .pf-box > legend { font-size: 13.5px; }
    .property-entry-form .dynamic-phone-row { flex: 1 1 100%; }
    .property-entry-form .similar-files-btn { margin-top: 0; }
    .property-entry-form .pf-in > .btn { min-height: 42px; }

    

    

    .property-entry-form .dynamic-phone-row .phone-remove,
    .property-entry-form .visitor-line .phone-add,
    .property-entry-form .pf-owner-phones .phone-add {
        width: 44px;
        min-width: 44px;
        flex-basis: 44px;
        flex-grow: 0;
        flex-shrink: 0;
        height: 44px;
    }
    .property-entry-form .pf-owner-phones .pf-in { flex-wrap: wrap; }
    .property-entry-form .map-trigger-line { flex-wrap: wrap; }
    .property-entry-form .map-trigger-line .pf-in { flex-wrap: wrap; }
    

    .property-entry-form .pf-row > .pf-f,
    .property-entry-form .pf-box,
    .property-entry-form .pf-box-tech,
    .property-entry-form .pf-box-price,
    .property-entry-form .pf-box-amen,
    .property-entry-form .pf-box-media,
    .property-entry-form .pf-row-identity .pf-f,
    .property-entry-form .price-group > .pf-f { grid-column: 1 / -1; }
    .property-entry-form .pf-box .pf-stack,
    .property-entry-form .pf-row-identity .pf-f { grid-template-columns: minmax(0, 1fr); align-items: start; gap: 3px; }
    .property-entry-form .pf-stack { grid-template-columns: minmax(0, 1fr); }
    
    .property-entry-form .amen-ticks { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 240px; }
    .property-entry-form .pf-media-unified .mf-list { grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); max-height: 200px; }
    .property-entry-form .pf-media-unified .mf-thumb,
    .property-entry-form .pf-media-unified .mf-thumb img,
    .property-entry-form .pf-media-unified .mf-thumb video { height: 62px; }
    .property-entry-form .pf-row-visibility .pf-in { flex-wrap: wrap; }
    .property-entry-form .date-trigger { min-height: 46px; font-size: 15px; }
    .property-entry-form .map-trigger { min-height: 42px; }
    
    .map-dialog { width: 100vw; height: 100vh; max-width: 100vw; max-height: 100vh; border-radius: 0; }
    .map-dialog-foot { font-size: 11.5px; }
    .map-dialog-foot .btn { flex: 1 1 auto; }

    






    .property-entry-form { overflow: visible; }
    .property-entry-form .pf-actions {
        position: sticky;
        inset-block-end: 0;
        z-index: 6;
        gap: 8px;
        padding: 10px 10px calc(10px + env(safe-area-inset-bottom, 0px));
        box-shadow: 0 -6px 18px rgba(15, 23, 42, .08);
    }
    .property-entry-form .pf-actions .btn {
        flex: 1 1 auto;
        height: auto;
        min-height: 46px;
        padding: 0 12px;
        font-size: 14px;
    }
    .property-entry-form .pf-actions .btn-primary { flex: 1 1 100%; }
    .property-entry-form .pf-actions .pf-share-need { flex: 1 1 100%; order: 1; }

    




    .access-bar {
        top: calc(var(--header-height, 62px) + 6px);
        align-items: stretch;
        padding: 7px 9px;
        gap: 6px;
        border-radius: 10px;
    }
    
    .access-bar-title {
        flex: 1 1 100%;
        flex-direction: row;
        align-items: baseline;
        flex-wrap: wrap;
        gap: 6px;
    }
    .access-search { flex: 1 1 100%; max-width: none; }
    .access-search .form-control { height: 40px; font-size: 16px; }
    
    .access-toggle { flex: 0 0 auto; align-self: center; min-height: 36px; }
    .access-bar-actions { flex: 1 1 auto; gap: 6px; min-width: 0; }
    .access-bar-actions .btn { flex: 1 1 0; min-height: 36px; padding-inline: 6px; font-size: 12.5px; }
}

@media (max-width: 640px) {
    .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .kpi { min-height: 66px; padding: 10px; gap: 8px; }
    .kpi-icon { width: 34px; height: 34px; flex: 0 0 34px; font-size: 15px; }
    .kpi-value { font-size: 17px; }
    
    .kpi-label { white-space: normal; }

    .property-cards { grid-template-columns: minmax(0, 1fr); }

    .card-head,
    .card-body { padding: 12px; }
    .grid-2 { grid-template-columns: minmax(0, 1fr); }

    
    dialog,
    .share-dialog,
    .search-feature-dialog { width: 94vw !important; max-width: 94vw; }
    .share-dialog-body,
    .search-feature-dialog-list { max-height: 64vh; }
}




@media (max-width: 430px) {
    


    
    .nowrap { white-space: normal; }
    code,
    .pv-slug { word-break: break-all; }
}
