.p2p-public {
    --p2p-ink: #14203A;
    --p2p-ink-2: #1C2C4D;
    --p2p-paper: #ECEDE8;
    --p2p-paper-2: #F5F5F1;
    --p2p-brass: #B8873A;
    --p2p-brass-2: #8F6A2C;
    --p2p-moss: #3E5C48;
    --p2p-moss-2: #2C4335;
    --p2p-clay: #A8452F;
    --p2p-charcoal: #1B1B18;
    --p2p-line: #D8D6CC;
    --p2p-white: #FFFFFF;

    /* Backwards-compatible aliases used by the existing single-property/portal styles. */
    --p2p-border: var(--p2p-line);
    --p2p-text: var(--p2p-charcoal);
    --p2p-muted: #646970;
    --p2p-surface: #fff;
    --p2p-soft: var(--p2p-paper-2);
    --p2p-action: var(--p2p-ink);

    color: var(--p2p-charcoal);
    font-family: "Inter", sans-serif;
    padding: 40px 0 64px;
}

.p2p-public * { box-sizing: border-box; }
.p2p-public-container { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.p2p-eyebrow { margin: 0 0 8px; color: var(--p2p-muted); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.p2p-archive-header { max-width: 760px; margin-bottom: 28px; }
.p2p-archive-header h1, .p2p-single-header h1 { margin: 0 0 10px; }
.p2p-archive-header > p:last-child, .p2p-single-header > div > p:last-child { color: var(--p2p-muted); }

.p2p-button { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 9px 17px; border: 1px solid transparent; border-radius: 7px; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer; }
.p2p-button--primary { background: var(--p2p-ink); color: #fff; }
.p2p-button--primary:hover { color: #fff; background: var(--p2p-ink-2); }
.p2p-button--secondary { border-color: var(--p2p-line); background: #fff; color: var(--p2p-ink); }
.p2p-button--block { width: 100%; }
.p2p-button[disabled] { cursor: not-allowed; opacity: .6; }
.p2p-is-processing::before {
    width: 1em;
    height: 1em;
    flex: 0 0 1em;
    margin-right: 8px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    content: "";
    animation: p2p-button-spin .7s linear infinite;
}

@keyframes p2p-button-spin {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .p2p-is-processing::before { animation-duration: 1.4s; }
}

.p2p-message { margin: 0 0 20px; padding: 12px 14px; border-radius: 8px; }
.p2p-message--error { border: 1px solid #d63638; background: #fcf0f1; color: #8a2424; }

/* -------------------------------------------------------------------------
 * Public property archive / search results.
 * ---------------------------------------------------------------------- */
.p2p-property-archive {
    min-height: 70vh;
    padding: 0;
    background: var(--p2p-paper);
}

.p2p-archive-layout {
    width: min(1400px, calc(100% - 64px));
    margin: 0 auto;
    padding: 28px 0 80px;
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 32px;
    align-items: start;
}

.p2p-archive-sidebar { min-width: 0; }
.p2p-archive-filters {
    position: sticky;
    top: 92px;
    padding: 22px;
    border: 1px solid var(--p2p-line);
    border-radius: 13px;
    background: var(--p2p-white);
}

.p2p-archive-filters__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 20px;
}
.p2p-archive-filters__head h2 {
    margin: 0;
    color: var(--p2p-ink);
    font-family: "Fraunces", serif;
    font-size: 17px;
    font-weight: 600;
}
.p2p-archive-filters__head > span {
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--p2p-brass);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
}

.p2p-filter-group { margin-bottom: 22px; }
.p2p-filter-group--last { margin-bottom: 0; }
.p2p-filter-group--sort { margin-top: 22px; }
.p2p-filter-label {
    margin-bottom: 9px;
    color: #8A8D80;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.p2p-filter-selects { display: grid; grid-template-columns: 1fr; gap: 8px; }
.p2p-filter-group select,
.p2p-filter-dates input {
    width: 100%;
    min-height: 38px;
    padding: 8px 6px;
    border: 1px solid var(--p2p-line);
    border-radius: 8px;
    outline: 0;
    background: #fff;
    color: var(--p2p-ink);
    font: 500 12.5px/1.2 "Inter", sans-serif;
}
.p2p-filter-group select:focus,
.p2p-filter-dates input:focus { border-color: var(--p2p-brass); box-shadow: 0 0 0 2px rgba(184, 135, 58, .12); }

.p2p-filter-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.p2p-filter-dates label { margin: 0; }
.p2p-filter-dates label > span { display: block; margin-bottom: 5px; color: #7A7D70; font-size: 10.5px; }

.p2p-filter-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.p2p-filter-chip { margin: 0; cursor: pointer; }
.p2p-filter-chip input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.p2p-filter-chip span {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    justify-content: center;
    padding: 6px 12px;
    border: 1.4px solid var(--p2p-line);
    border-radius: 20px;
    background: #fff;
    color: #3A3F4D;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.1;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.p2p-filter-chip:hover span { border-color: #b9b7ad; }
.p2p-filter-chip.is-active span,
.p2p-filter-chip input:checked + span {
    border-color: var(--p2p-ink);
    background: var(--p2p-ink);
    color: #fff;
}

.p2p-budget-range { position: relative; padding-top: 4px; }
.p2p-budget-range__track {
    position: relative;
    height: 4px;
    margin: 11px 5px 8px;
    overflow: hidden;
    border-radius: 3px;
    background: var(--p2p-line);
}
.p2p-budget-range__track span {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    border-radius: inherit;
    background: var(--p2p-brass);
}
.p2p-budget-range__input {
    position: absolute;
    left: 0;
    top: 4px;
    width: 100%;
    height: 22px;
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    pointer-events: none;
    -webkit-appearance: none;
    appearance: none;
}
.p2p-budget-range__input::-webkit-slider-runnable-track { height: 4px; background: transparent; }
.p2p-budget-range__input::-moz-range-track { height: 4px; background: transparent; }
.p2p-budget-range__input::-webkit-slider-thumb {
    width: 16px;
    height: 16px;
    margin-top: -6px;
    border: 3px solid var(--p2p-brass);
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    pointer-events: auto;
    -webkit-appearance: none;
    appearance: none;
}
.p2p-budget-range__input::-moz-range-thumb {
    width: 11px;
    height: 11px;
    border: 3px solid var(--p2p-brass);
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    pointer-events: auto;
}
.p2p-budget-range__labels {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: #7A7D70;
    font-family: "IBM Plex Mono", monospace;
    font-size: 11px;
}

.p2p-archive-filter-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--p2p-line);
}
.p2p-archive-filter-actions a { color: #6A6E60; font-size: 12px; font-weight: 600; text-decoration: none; }
.p2p-archive-apply {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 8px 15px;
    border: 0;
    border-radius: 8px;
    background: var(--p2p-ink);
    color: #fff;
    font: 700 12px/1.2 "Inter", sans-serif;
    text-decoration: none;
    cursor: pointer;
}
.p2p-archive-apply:hover { background: var(--p2p-ink-2); color: #fff; }

.p2p-archive-results { min-width: 0; }
.p2p-archive-results__head {
    min-height: 40px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.p2p-archive-results__count { color: #3A3F4D; font-size: 14.5px; }
.p2p-archive-results__count strong { color: var(--p2p-ink); }
.p2p-archive-results__count span { color: #5B5F52; }
.p2p-archive-sort {
    min-height: 36px;
    padding: 7px 35px 7px 13px;
    border: 1.5px solid var(--p2p-line);
    border-radius: 8px;
    background-color: #fff;
    color: var(--p2p-ink);
    font: 600 12.5px/1.2 "Inter", sans-serif;
}

.p2p-property-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}
.p2p-property-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--p2p-line);
    border-radius: 13px;
    background: #fff;
    transition: transform .18s ease, box-shadow .18s ease;
}
.p2p-property-card:hover { transform: translateY(-2px); box-shadow: 0 16px 32px rgba(20, 32, 58, .11); }
.p2p-property-card__image {
    position: relative;
    display: block;
    height: 190px;
    overflow: hidden;
    background: linear-gradient(135deg, #CFD3C4, #9FA68F);
}
.p2p-property-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
.p2p-property-card__image:hover img { transform: scale(1.02); }
.p2p-image-placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, #CFD3C4, #9FA68F); }
.p2p-property-card__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 10px;
    border-radius: 20px;
    background: rgba(255, 255, 255, .94);
    color: var(--p2p-moss-2);
    font-size: 10.5px;
    font-weight: 700;
    line-height: 1.1;
}
.p2p-property-card__badge i { width: 5px; height: 5px; border-radius: 50%; background: var(--p2p-moss); }
.p2p-property-card__body { padding: 16px 17px 18px; }
.p2p-property-card__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.p2p-property-card__title-wrap { min-width: 0; }
.p2p-property-card h3 {
    margin: 0 0 3px;
    color: var(--p2p-ink);
    font-family: "Inter", sans-serif;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
}
.p2p-property-card h3 a { color: inherit; text-decoration: none; }
.p2p-property-card__location,
.p2p-property-card__availability { margin: 0; color: #7A7D70; font-size: 11.5px; line-height: 1.35; }
.p2p-property-card__availability { margin-top: 2px; }
.p2p-property-price { flex: none; margin: 0; text-align: right; }
.p2p-property-price strong { display: block; color: var(--p2p-ink); font-family: "IBM Plex Mono", monospace; font-size: 14.5px; font-weight: 600; white-space: nowrap; }
.p2p-property-price span { display: block; margin-top: 1px; color: #8A8D80; font-size: 10px; white-space: nowrap; }
.p2p-property-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 14px;
    margin-top: 11px;
    padding-top: 11px;
    border-top: 1px solid var(--p2p-line);
    color: #5B5F52;
    font-size: 11.5px;
}
.p2p-property-card__meta span { display: inline-flex; align-items: center; gap: 5px; }
.p2p-property-card__meta svg { flex: none; color: #7A7D70; }

.p2p-empty-state {
    padding: 52px 24px;
    border: 1px dashed var(--p2p-line);
    border-radius: 13px;
    background: rgba(255, 255, 255, .55);
    text-align: center;
}
.p2p-empty-state h2 { margin: 0 0 8px; color: var(--p2p-ink); font-family: "Fraunces", serif; font-size: 22px; }
.p2p-empty-state p { margin: 0 0 20px; color: #5B5F52; font-size: 13px; }

.p2p-pagination { margin-top: 32px; }
.p2p-pagination ul { display: flex; flex-wrap: wrap; gap: 7px; justify-content: center; margin: 0; padding: 0; list-style: none; }
.p2p-pagination a,
.p2p-pagination span {
    display: inline-flex;
    min-width: 38px;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 6px 10px;
    border: 1px solid var(--p2p-line);
    border-radius: 8px;
    background: #fff;
    color: var(--p2p-ink);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}
.p2p-pagination .current { border-color: var(--p2p-ink); background: var(--p2p-ink); color: #fff; }

/* Mobile archive controls / filter sheet. Hidden on desktop. */
.p2p-archive-mobile-bar,
.p2p-filter-backdrop,
.p2p-mobile-filter-sheet { display: none; }

@media (max-width: 1180px) {
    .p2p-property-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
    .p2p-archive-layout {
        width: min(100% - 32px, 760px);
        padding-top: 14px;
        grid-template-columns: 1fr;
    }
    .p2p-archive-sidebar { display: none; }
    .p2p-archive-mobile-bar {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 10px 16px;
        border-bottom: 1px solid var(--p2p-line);
        background: #fff;
    }
    .p2p-property-archive .p2p-archive-mobile-summary {
        min-width: 0;
        min-height: 46px;
        flex: 1;
        padding: 9px 11px !important;
        border: 0 !important;
        border-radius: 9px !important;
        background: var(--p2p-paper-2) !important;
        color: var(--p2p-ink) !important;
        box-shadow: none !important;
        text-align: left;
        font-family: "Inter", sans-serif !important;
        line-height: 1.2;
        cursor: pointer;
        appearance: none;
        -webkit-appearance: none;
    }
    .p2p-property-archive .p2p-archive-mobile-summary:hover,
    .p2p-property-archive .p2p-archive-mobile-summary:focus {
        background: var(--p2p-paper-2) !important;
        color: var(--p2p-ink) !important;
    }
    .p2p-archive-mobile-summary__main,
    .p2p-archive-mobile-summary__sub { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
    .p2p-archive-mobile-summary__main { font-size: 12px; font-weight: 600; }
    .p2p-archive-mobile-summary__sub { margin-top: 2px; color: #8A8D80; font-size: 10px; font-weight: 400; }
    .p2p-property-archive .p2p-archive-mobile-filter-button {
        position: relative;
        width: 38px;
        height: 38px;
        min-width: 38px;
        min-height: 38px;
        flex: none;
        padding: 0 !important;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 0 !important;
        border-radius: 9px !important;
        background: var(--p2p-ink) !important;
        color: #fff !important;
        box-shadow: none !important;
        font-family: "Inter", sans-serif !important;
        cursor: pointer;
        appearance: none;
        -webkit-appearance: none;
    }
    .p2p-property-archive .p2p-archive-mobile-filter-button:hover,
    .p2p-property-archive .p2p-archive-mobile-filter-button:focus {
        background: var(--p2p-ink) !important;
        color: #fff !important;
    }
    .p2p-archive-mobile-filter-icon {
        display: block !important;
        color: #fff !important;
        font-size: 15px !important;
        font-weight: 400 !important;
        line-height: 1 !important;
        transform: translateY(-.5px);
    }
    .p2p-archive-sort { display: none; }

    .p2p-filter-backdrop {
        position: fixed;
        inset: 0;
        z-index: 9998;
        background: rgba(20, 32, 58, .42);
        backdrop-filter: blur(1.5px);
    }
    .p2p-mobile-filter-sheet {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 9999;
        max-height: min(84vh, 760px);
        overflow-y: auto;
        padding: 12px 18px calc(20px + env(safe-area-inset-bottom, 0px));
        border-radius: 20px 20px 0 0;
        background: #fff;
        box-shadow: 0 -12px 32px rgba(20, 32, 58, .2);
    }
    .p2p-filter-backdrop:not([hidden]),
    .p2p-mobile-filter-sheet:not([hidden]) { display: block; }
    .p2p-mobile-filter-sheet__handle { width: 36px; height: 4px; margin: 0 auto 12px; border-radius: 3px; background: var(--p2p-line); }
    .p2p-mobile-filter-sheet__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
    .p2p-mobile-filter-sheet__head h2 { margin: 0; color: var(--p2p-ink); font-family: "Fraunces", serif; font-size: 18px; font-weight: 600; }
    .p2p-mobile-filter-sheet__head button { width: 32px; height: 32px; border: 0; border-radius: 9px; background: var(--p2p-paper-2); color: var(--p2p-ink); font-size: 20px; line-height: 1; cursor: pointer; }
    .p2p-mobile-filter-form .p2p-filter-group { margin-bottom: 18px; }
    .p2p-mobile-filter-form .p2p-filter-group--sort { margin-top: 18px; }
    .p2p-mobile-filter-actions {
        position: sticky;
        bottom: -20px;
        margin: 8px -18px -20px;
        padding: 12px 18px calc(12px + env(safe-area-inset-bottom, 0px));
        display: flex;
        align-items: center;
        gap: 12px;
        border-top: 1px solid var(--p2p-line);
        background: rgba(255, 255, 255, .97);
    }
    .p2p-mobile-filter-actions a { flex: none; color: #6A6E60; font-size: 12px; font-weight: 600; text-decoration: none; }
    .p2p-mobile-filter-actions button { min-height: 44px; flex: 1; border: 0; border-radius: 10px; background: var(--p2p-brass); color: #fff; font: 700 14px/1.2 "Inter", sans-serif; cursor: pointer; }
    body.p2p-filter-sheet-open { overflow: hidden; }
}

@media (max-width: 680px) {
    .p2p-archive-layout { width: 100%; padding: 12px 16px 90px; }
    .p2p-archive-results__head { min-height: 0; margin-bottom: 10px; }
    .p2p-archive-results__count { font-size: 12px; }
    .p2p-property-grid { grid-template-columns: 1fr; gap: 14px; }
    .p2p-property-card__image { height: 150px; }
    .p2p-property-card__badge { top: 10px; left: 10px; padding: 4px 9px; font-size: 10px; }
    .p2p-property-card__body { padding: 12px 13px 13px; }
    .p2p-property-card h3 { font-size: 13.5px; }
    .p2p-property-card__location,
    .p2p-property-card__availability { font-size: 10.5px; }
    .p2p-property-price strong { font-size: 13.5px; }
    .p2p-property-price span { font-size: 9.5px; }
    .p2p-property-card__meta { gap: 8px 10px; margin-top: 9px; padding-top: 9px; font-size: 10.5px; }
    .p2p-pagination { margin-top: 22px; }
}

/* -------------------------------------------------------------------------
 * Public single-property page.
 * ---------------------------------------------------------------------- */
.p2p-property-single {
    position: relative;
    min-height: 70vh;
    padding: 0 0 90px;
    background: var(--p2p-paper);
}

.p2p-single-gallery-shell {
    position: relative;
    width: min(1400px, calc(100% - 64px));
    height: 440px;
    margin: 24px auto 0;
}

.p2p-single-gallery {
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 8px;
    overflow: hidden;
    border-radius: 14px;
    background: var(--p2p-paper-2);
}

.p2p-single-gallery__slide {
    min-width: 0;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    background: linear-gradient(135deg, #CFD3C4, #8F9683);
}
.p2p-single-gallery__slide.is-primary { grid-row: 1 / 3; }
.p2p-single-gallery__slide:nth-child(n+6) { display: none; }
.p2p-single-gallery__slide img { width: 100%; height: 100%; display: block; object-fit: cover; }
.p2p-single-gallery--empty { display: block; }
.p2p-single-gallery--empty .p2p-single-gallery__slide { width: 100%; height: 100%; }

.p2p-single-gallery--count-1 { grid-template-columns: 1fr; }
.p2p-single-gallery--count-1 .p2p-single-gallery__slide:first-child { grid-row: 1 / 3; }
.p2p-single-gallery--count-2 { grid-template-columns: 1.6fr 1fr; }
.p2p-single-gallery--count-2 .p2p-single-gallery__slide:nth-child(2) { grid-row: 1 / 3; }
.p2p-single-gallery--count-3 { grid-template-columns: 1.6fr 1fr; }
.p2p-single-gallery--count-4 { grid-template-columns: 1.6fr 1fr 1fr; }
.p2p-single-gallery--count-4 .p2p-single-gallery__slide:nth-child(2) { grid-row: 1 / 3; }

.p2p-single-gallery__back,
.p2p-single-gallery__count,
.p2p-single-gallery__dots { display: none; }

.p2p-single-layout {
    width: min(1400px, calc(100% - 64px));
    margin: 0 auto;
    padding: 40px 0 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 56px;
    align-items: start;
}

.p2p-single-content { min-width: 0; }
.p2p-single-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin: 0 0 26px;
    padding: 0 0 26px;
    border-bottom: 1px solid var(--p2p-line);
}
.p2p-single-heading > div { min-width: 0; }
.p2p-property-single .p2p-single-heading h1 {
    margin: 0 0 8px !important;
    color: var(--p2p-ink) !important;
    font-family: "Fraunces", serif !important;
    font-size: clamp(25px, 2.4vw, 30px) !important;
    font-weight: 600 !important;
    line-height: 1.13 !important;
    letter-spacing: -.01em !important;
}
.p2p-single-location {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 6px;
    color: #5B5F52;
    font-size: 14px;
    line-height: 1.4;
}
.p2p-single-short-description {
    max-width: 720px;
    margin: 12px 0 0;
    color: #5B5F52;
    font-size: 14px;
    line-height: 1.55;
}
.p2p-single-availability-badge {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 12px;
    border-radius: 20px;
    background: #EEF2EC;
    color: var(--p2p-moss-2);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}
.p2p-single-availability-badge i { width: 7px; height: 7px; border-radius: 50%; background: var(--p2p-moss); }

.p2p-single-facts {
    display: flex;
    align-items: stretch;
    margin: 0 0 34px;
}
.p2p-single-fact {
    min-width: 0;
    flex: 1;
    padding: 0 20px;
    border-right: 1px solid var(--p2p-line);
}
.p2p-single-fact:first-child { padding-left: 0; }
.p2p-single-fact:last-child { padding-right: 0; border-right: 0; }
.p2p-single-fact strong {
    display: block;
    overflow-wrap: anywhere;
    color: var(--p2p-ink);
    font-family: "IBM Plex Mono", monospace;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.25;
}
.p2p-single-fact span { display: block; margin-top: 3px; color: #8A8D80; font-size: 11.5px; line-height: 1.35; }

.p2p-single-section { margin: 0 0 32px; }
.p2p-property-single .p2p-single-section h2,
.p2p-property-single .p2p-single-process-card h2 {
    margin: 0 0 10px !important;
    color: var(--p2p-ink) !important;
    font-family: "Fraunces", serif !important;
    font-size: 19px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
}
.p2p-single-rich-text { max-width: 760px; color: #3A3F4D; font-size: 14.5px; line-height: 1.7; }
.p2p-single-rich-text > :first-child { margin-top: 0; }
.p2p-single-rich-text > :last-child { margin-bottom: 0; }
.p2p-single-rich-text--rules { margin-top: 14px; }

.p2p-single-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 28px;
    margin-top: 16px;
    border-top: 1px solid var(--p2p-line);
}
.p2p-single-detail-item {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid var(--p2p-line);
    font-size: 13px;
}
.p2p-single-detail-item span { color: #7A7D70; }
.p2p-single-detail-item strong { color: var(--p2p-ink); font-weight: 600; text-align: right; }

.p2p-single-amenities {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 22px;
    margin-top: 18px;
}
.p2p-single-amenity { display: flex; align-items: center; gap: 10px; min-width: 0; color: #3A3F4D; font-size: 14px; }
.p2p-single-amenity__icon {
    width: 34px;
    height: 34px;
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--p2p-paper-2);
    color: var(--p2p-moss);
    font-size: 13px;
    font-weight: 800;
}

.p2p-single-location-summary {
    margin: 0 0 12px;
    color: #5B5F52;
    font-size: 14px;
    line-height: 1.5;
}
.p2p-single-map {
    width: 100%;
    height: 340px;
    overflow: hidden;
    border: 1px solid var(--p2p-line);
    border-radius: 12px;
    background: var(--p2p-paper-2);
}
.p2p-single-map-note {
    margin: 9px 0 0;
    color: #7A7D70;
    font-size: 11.5px;
    line-height: 1.5;
}
.p2p-single-map .leaflet-control-attribution {
    font-size: 10px;
}

.p2p-single-rule-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.p2p-single-rule-chips span {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 6px 10px;
    border: 1px solid var(--p2p-line);
    border-radius: 999px;
    background: rgba(255,255,255,.55);
    color: #5B5F52;
    font-size: 12px;
    font-weight: 600;
}

.p2p-single-process-card {
    margin-top: 34px;
    padding: 20px;
    border: 1px solid var(--p2p-line);
    border-radius: 12px;
    background: var(--p2p-paper-2);
}
.p2p-property-single .p2p-single-process-card h2 { display: flex; align-items: center; gap: 8px; font-size: 15px !important; }
.p2p-single-process-card h2 > span { color: var(--p2p-moss); }
.p2p-single-process-row {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px dashed var(--p2p-line);
    color: #3A3F4D;
    font-size: 13.5px;
}
.p2p-single-process-row:last-child { padding-bottom: 0; border-bottom: 0; }
.p2p-single-process-row strong { flex: 0 0 24px; color: var(--p2p-brass-2); font-family: "IBM Plex Mono", monospace; font-size: 11px; font-weight: 500; }

.p2p-single-booking-panel {
    position: sticky;
    top: 100px;
    align-self: start;
    padding: 26px;
    border: 1px solid var(--p2p-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(20,32,58,.08);
}
.p2p-single-booking-price { display: flex; align-items: baseline; gap: 6px; margin-bottom: 4px; }
.p2p-single-booking-price strong { color: var(--p2p-ink); font-family: "Fraunces", serif; font-size: 28px; font-weight: 700; line-height: 1.2; }
.p2p-single-booking-price span { color: #7A7D70; font-size: 13px; }
.p2p-single-booking-note { margin: 0 0 20px; color: #7A7D70; font-size: 12.5px; line-height: 1.45; }
.p2p-single-booking-field {
    margin-bottom: 10px;
    padding: 11px 14px;
    border: 1px solid var(--p2p-line);
    border-radius: 9px;
    background: #fff;
}
.p2p-single-booking-field span {
    display: block;
    color: #8A8D80;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .05em;
    line-height: 1.2;
    text-transform: uppercase;
}
.p2p-single-booking-field strong { display: block; margin-top: 3px; color: var(--p2p-charcoal); font-size: 13.5px; font-weight: 600; line-height: 1.35; }
.p2p-single-booking-cta {
    width: 100%;
    min-height: 49px;
    margin: 4px 0 10px;
    padding: 14px 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0 !important;
    border-radius: 9px !important;
    background: var(--p2p-brass) !important;
    color: #fff !important;
    font: 700 14px/1.25 "Inter", sans-serif !important;
    text-align: center;
    text-decoration: none !important;
    cursor: pointer;
}
.p2p-single-booking-cta:hover { background: var(--p2p-brass-2) !important; color: #fff !important; }
.p2p-single-booking-cta[disabled] { opacity: .58; cursor: not-allowed; }
.p2p-single-booking-fine { margin: 0; color: #8A8D80; font-size: 11.5px; line-height: 1.5; text-align: center; }

.p2p-single-costs { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--p2p-line); }
.p2p-single-costs h3 { margin: 0 0 8px; color: var(--p2p-ink); font-family: "Inter", sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.p2p-single-costs > div { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; color: #7A7D70; font-size: 12px; }
.p2p-single-costs > div strong { color: var(--p2p-charcoal); font-weight: 600; text-align: right; }
.p2p-single-costs > p { margin: 8px 0 0; color: #8A8D80; font-size: 11px; line-height: 1.45; }

.p2p-single-host-card { display: flex; align-items: center; gap: 14px; margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--p2p-line); }
.p2p-single-host-avatar {
    width: 48px;
    height: 48px;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--p2p-ink);
    color: #fff;
    font-family: "Fraunces", serif;
    font-size: 17px;
    font-weight: 700;
}
.p2p-single-host-card strong { display: block; color: var(--p2p-ink); font-size: 13.5px; font-weight: 600; }
.p2p-single-host-card span { display: block; margin-top: 2px; color: #7A7D70; font-size: 11.5px; line-height: 1.35; }

.p2p-single-mobile-booking-bar { display: none; }

@media (max-width: 1100px) {
    .p2p-single-layout { grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; }
}

@media (max-width: 900px) {
    .p2p-single-layout { grid-template-columns: 1fr; }
    .p2p-single-booking-panel { position: static; width: min(100%, 620px); }
}

@media (max-width: 767px) {
    .p2p-property-single { padding-bottom: 102px; }
    .p2p-single-gallery-shell { width: 100%; height: 280px; margin-top: 0; overflow: hidden; }
    .p2p-single-gallery {
        display: flex;
        gap: 0;
        overflow-x: auto;
        overflow-y: hidden;
        border-radius: 0;
        scroll-behavior: smooth;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -ms-overflow-style: none;
        touch-action: pan-x pan-y;
    }
    .p2p-single-gallery::-webkit-scrollbar { display: none; }
    .p2p-single-gallery__slide,
    .p2p-single-gallery__slide.is-primary,
    .p2p-single-gallery--count-1 .p2p-single-gallery__slide:first-child,
    .p2p-single-gallery--count-2 .p2p-single-gallery__slide:nth-child(2),
    .p2p-single-gallery--count-4 .p2p-single-gallery__slide:nth-child(2) {
        width: 100%;
        height: 280px;
        flex: 0 0 100%;
        display: block;
        grid-row: auto;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }
    .p2p-single-gallery__slide:nth-child(n+6) { display: block; }

    .p2p-single-gallery__back {
        position: absolute;
        top: 14px;
        left: 14px;
        z-index: 5;
        width: 36px;
        height: 36px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        background: rgba(20,32,58,.62);
        color: #fff;
        text-decoration: none;
        backdrop-filter: blur(4px);
    }
    .p2p-single-gallery__count {
        position: absolute;
        top: 16px;
        right: 14px;
        z-index: 5;
        display: inline-flex;
        align-items: center;
        min-height: 25px;
        padding: 4px 9px;
        border-radius: 14px;
        background: rgba(20,32,58,.62);
        color: #fff;
        font-size: 10.5px;
        font-weight: 600;
        line-height: 1;
        backdrop-filter: blur(4px);
    }
    .p2p-single-gallery__dots {
        position: absolute;
        left: 50%;
        bottom: 12px;
        z-index: 5;
        display: flex;
        gap: 5px;
        transform: translateX(-50%);
        pointer-events: none;
    }
    .p2p-single-gallery__dots span { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.5); }
    .p2p-single-gallery__dots span.is-active { background: #fff; }

    .p2p-single-layout { width: 100%; padding: 18px 16px 0; display: block; }
    .p2p-single-heading { display: block; margin-bottom: 18px; padding-bottom: 0; border-bottom: 0; }
    .p2p-property-single .p2p-single-heading h1 { margin-bottom: 4px !important; font-size: 20px !important; line-height: 1.2 !important; }
    .p2p-single-location { font-size: 12px; }
    .p2p-single-short-description { margin-top: 9px; font-size: 12px; line-height: 1.5; }
    .p2p-single-availability-badge { margin-top: 12px; padding: 5px 10px; font-size: 10.5px; }

    .p2p-single-facts {
        margin-bottom: 24px;
        overflow: hidden;
        border: 1px solid var(--p2p-line);
        border-radius: 12px;
        background: rgba(255,255,255,.35);
    }
    .p2p-single-fact { padding: 11px 6px; border-right: 1px solid var(--p2p-line); text-align: center; }
    .p2p-single-fact:first-child { padding-left: 6px; }
    .p2p-single-fact:last-child { padding-right: 6px; }
    .p2p-single-fact--price { display: none; }
    .p2p-single-fact strong { font-size: 12px; white-space: normal; }
    .p2p-single-fact span { margin-top: 2px; font-size: 9px; }

    .p2p-single-section { margin-bottom: 26px; }
    .p2p-single-map { height: 280px; border-radius: 10px; }
    .p2p-property-single .p2p-single-section h2 { margin-bottom: 8px !important; font-size: 15px !important; }
    .p2p-single-rich-text { font-size: 12.5px; line-height: 1.6; }
    .p2p-single-detail-grid { grid-template-columns: 1fr; gap: 0; margin-top: 10px; }
    .p2p-single-detail-item { min-height: 42px; padding: 9px 0; font-size: 12px; }
    .p2p-single-amenities { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-top: 12px; }
    .p2p-single-amenity { gap: 8px; font-size: 11.5px; line-height: 1.3; }
    .p2p-single-amenity__icon { width: 28px; height: 28px; border-radius: 7px; font-size: 11px; }
    .p2p-single-rule-chips { gap: 6px; margin-top: 10px; }
    .p2p-single-rule-chips span { min-height: 27px; padding: 5px 8px; font-size: 10.5px; }

    .p2p-single-process-card { margin-top: 26px; padding: 15px; }
    .p2p-property-single .p2p-single-process-card h2 { font-size: 13px !important; }
    .p2p-single-process-row { gap: 12px; padding: 7px 0; font-size: 11.5px; }
    .p2p-single-process-row strong { font-size: 9.5px; }

    .p2p-single-booking-panel { display: none; }
    .p2p-single-mobile-booking-bar {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 120;
        min-height: 72px;
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
        border-top: 1px solid var(--p2p-line);
        background: rgba(255,255,255,.98);
        box-shadow: 0 -8px 20px rgba(0,0,0,.06);
        backdrop-filter: blur(8px);
    }
    .p2p-single-mobile-booking-bar > div { flex: 0 1 auto; min-width: 0; }
    .p2p-single-mobile-booking-bar > div strong { display: block; color: var(--p2p-ink); font-family: "Fraunces", serif; font-size: 17px; font-weight: 700; line-height: 1.1; white-space: nowrap; }
    .p2p-single-mobile-booking-bar > div span { display: block; margin-top: 2px; color: #8A8D80; font-size: 9.5px; }
    .p2p-single-mobile-booking-bar > a,
    .p2p-single-mobile-booking-bar > button {
        min-height: 44px;
        margin-left: auto;
        padding: 10px 16px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 0 !important;
        border-radius: 10px !important;
        background: var(--p2p-brass) !important;
        color: #fff !important;
        font: 700 12.5px/1.2 "Inter", sans-serif !important;
        text-align: center;
        text-decoration: none !important;
        cursor: pointer;
    }
    .p2p-single-mobile-booking-bar > button[disabled] { opacity: .58; cursor: not-allowed; }
}

@media (max-width: 420px) {
    .p2p-single-mobile-booking-bar > a,
    .p2p-single-mobile-booking-bar > button { max-width: 58%; padding-left: 12px; padding-right: 12px; font-size: 11.5px !important; }
    .p2p-single-mobile-booking-bar > div strong { font-size: 16px; }
}

/* Tenant portal. */
.p2p-message--success { border: 1px solid #00a32a; background: #edfaef; color: #006b1b; }
.p2p-message--warning { border: 1px solid #d97706; background: #fff7ed; color: #9a3412; }
.p2p-message--info { border: 1px solid #72aee6; background: #f0f6fc; color: #1d4f91; }
.p2p-tenant-action-alert {
    margin: 0 0 24px;
    padding: 20px;
    border: 1px solid #dc6969;
    border-left: 5px solid #c62828;
    border-radius: 10px;
    background: #fff4f4;
    color: #6f1d1d;
    box-shadow: 0 10px 24px rgba(123, 31, 31, .08);
}
.p2p-tenant-action-alert__heading { margin-bottom: 12px; }
.p2p-tenant-action-alert__heading .p2p-eyebrow { margin: 0 0 4px; color: #a61b1b; }
.p2p-tenant-action-alert__heading h2 { margin: 0; color: #7f1d1d; font-size: 21px; }
.p2p-tenant-action-alert__feedback { margin: 14px 0; padding: 13px 15px; border-radius: 7px; background: #ffe3e3; }
.p2p-tenant-action-alert__feedback strong { display: block; margin-bottom: 4px; color: #7f1d1d; }
.p2p-tenant-action-alert__feedback p { margin: 0; }
.p2p-tenant-action-alert__documents { display: grid; gap: 8px; margin: 12px 0 18px; padding: 0; list-style: none; }
.p2p-tenant-action-alert__documents li { display: grid; gap: 3px; padding: 12px 14px; border: 1px solid #efb4b4; border-radius: 7px; background: #fff; }
.p2p-tenant-action-alert__documents strong { color: #7f1d1d; }
.p2p-tenant-action-alert .p2p-button { margin-top: 4px; }
.p2p-portal-container { max-width: 1050px; }
.p2p-portal-auth-card { max-width: 640px; margin: 0 auto; padding: 28px; border: 1px solid var(--p2p-border); border-radius: 8px; background: var(--p2p-surface); }
.p2p-portal-auth-card h1 { margin-top: 0; }
.p2p-portal-auth-card .login-username label,
.p2p-portal-auth-card .login-password label { display: block; margin-bottom: 6px; font-weight: 600; }
.p2p-portal-auth-card .login-username input,
.p2p-portal-auth-card .login-password input { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid var(--p2p-border); border-radius: 4px; }
.p2p-portal-auth-card .login-submit input { width: 100%; min-height: 44px; border: 0; border-radius: 4px; background: var(--p2p-action); color: #fff; font-weight: 600; cursor: pointer; }
.p2p-auth-links { margin: 18px 0 0; text-align: center; }
.p2p-portal-header { display: flex; justify-content: space-between; gap: 24px; align-items: flex-end; margin-bottom: 22px; }
.p2p-portal-header h1 { margin: 0; }
.p2p-portal-nav { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 24px; border-bottom: 1px solid var(--p2p-border); }
.p2p-portal-nav a { padding: 11px 15px; border-bottom: 3px solid transparent; color: var(--p2p-text); text-decoration: none; font-weight: 600; }
.p2p-portal-nav a.is-active { border-color: var(--p2p-action); color: var(--p2p-action); }
.p2p-portal-panel { padding: 24px; border: 1px solid var(--p2p-border); border-radius: 8px; background: var(--p2p-surface); }
.p2p-portal-panel > h2:first-child { margin-top: 0; }
.p2p-portal-panel__heading { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 20px; }
.p2p-portal-panel__heading h2 { margin: 0 0 6px; }
.p2p-portal-panel__heading p { margin: 0; color: var(--p2p-muted); }
.p2p-portal-panel__heading--actions { justify-content: flex-end; }
.p2p-completion-badge { display: inline-flex; min-width: 58px; min-height: 58px; align-items: center; justify-content: center; border-radius: 50%; background: var(--p2p-soft); font-weight: 700; }
.p2p-portal-form h3 { margin: 28px 0 8px; padding-top: 20px; border-top: 1px solid var(--p2p-border); }
.p2p-portal-form h3:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.p2p-portal-grid { display: grid; gap: 0 16px; }
.p2p-portal-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.p2p-portal-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.p2p-portal-field--full { grid-column: 1 / -1; }
.p2p-portal-form p, .p2p-document-upload-form p { margin: 0 0 16px; }
.p2p-portal-form label strong, .p2p-document-upload-form label strong { display: block; margin-bottom: 6px; }
.p2p-portal-form input:not([type="checkbox"]):not([type="radio"]),
.p2p-portal-form select,
.p2p-portal-form textarea,
.p2p-document-upload-form input[type="file"],
.p2p-document-upload-form select,
.p2p-inline-code-form input { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid var(--p2p-border); border-radius: 4px; background: #fff; }
.p2p-portal-form textarea { min-height: 120px; resize: vertical; }
.p2p-form-help { display: block; margin-top: 5px; color: var(--p2p-muted); font-size: 12px; }
.p2p-form-help--success { color: #006b1b; }
.p2p-portal-overview { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 22px; }
.p2p-portal-overview article { display: flex; min-height: 150px; flex-direction: column; padding: 20px; border: 1px solid var(--p2p-border); border-radius: 8px; background: var(--p2p-surface); }
.p2p-portal-overview article > span { color: var(--p2p-muted); font-size: 13px; text-transform: uppercase; }
.p2p-portal-overview article > strong { margin: 10px 0; font-size: 24px; }
.p2p-portal-overview article > a { margin-top: auto; }
.p2p-portal-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.p2p-selected-property { display: flex; justify-content: space-between; gap: 24px; align-items: center; margin-bottom: 22px; padding: 18px 20px; border: 1px solid #72aee6; border-radius: 8px; background: #f0f6fc; }
.p2p-selected-property h2 { margin: 0 0 5px; }
.p2p-selected-property p:last-child { margin: 0; }
.p2p-verification-row { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--p2p-border); }
.p2p-verification-row div span { display: block; color: var(--p2p-muted); font-size: 13px; }
.p2p-portal-status { display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 999px; background: var(--p2p-soft); font-size: 12px; font-weight: 700; }
.p2p-portal-status.is-complete, .p2p-portal-status--approved, .p2p-portal-status--confirmed, .p2p-portal-status--received { background: #d7f2dc; color: #006b1b; }
.p2p-portal-status.is-pending, .p2p-portal-status--uploaded, .p2p-portal-status--pending_review, .p2p-portal-status--pending_landlord, .p2p-portal-status--awaiting_transfer, .p2p-portal-status--proof_uploaded { background: #fcf0c3; color: #7a4f01; }
.p2p-portal-status--rejected, .p2p-portal-status--landlord_declined { background: #f8d7da; color: #8a2424; }
.p2p-phone-verification-forms { display: grid; gap: 10px; margin-top: 16px; }
.p2p-inline-code-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.p2p-qualification-checklist { margin: 0 0 18px; padding: 0; list-style: none; }
.p2p-qualification-checklist li { position: relative; padding: 7px 0 7px 26px; color: var(--p2p-muted); }
.p2p-qualification-checklist li::before { position: absolute; left: 0; content: "○"; }
.p2p-qualification-checklist li.is-complete { color: var(--p2p-text); }
.p2p-qualification-checklist li.is-complete::before { content: "✓"; color: #008a20; font-weight: 700; }
.p2p-document-upload-form { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(260px, 1.2fr) auto; gap: 14px; align-items: end; margin: 22px 0; padding: 18px; border-radius: 6px; background: var(--p2p-soft); }
.p2p-document-upload-form p { margin: 0; }
.p2p-document-requirements { display: flex; justify-content: space-between; gap: 16px; margin: 18px 0; padding: 12px 14px; border-left: 4px solid #dba617; background: #fff8e5; }
.p2p-document-requirements.is-complete { border-color: #00a32a; background: #edfaef; }
.p2p-document-requirements span { color: var(--p2p-muted); }
.p2p-document-list { display: grid; gap: 10px; }
.p2p-document-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 16px; align-items: center; padding: 14px; border: 1px solid var(--p2p-border); border-radius: 5px; }
.p2p-document-row--rejected { border-color: #e6a2a2; background: #fff8f8; }
.p2p-document-row--rejected.is-action-required { border-color: #c62828; box-shadow: 0 0 0 1px rgba(198, 40, 40, .08); }
.p2p-document-row > div:first-child span { display: block; margin-top: 3px; color: var(--p2p-muted); font-size: 13px; }
.p2p-document-actions { display: flex; gap: 10px; }
.p2p-danger-link { color: #b32d2e; }
.p2p-document-note { display: grid; grid-column: 1 / -1; gap: 4px; margin: 0; padding: 11px 13px; border-top: 1px solid var(--p2p-border); color: var(--p2p-muted); }
.p2p-document-note strong { color: var(--p2p-text); }
.p2p-document-note--rejected { border: 1px solid #efb4b4; border-radius: 6px; background: #ffe9e9; color: #7f1d1d; }
.p2p-document-note--rejected strong { color: #7f1d1d; }

@media (max-width: 800px) {
    .p2p-portal-overview, .p2p-portal-columns { grid-template-columns: 1fr; }
    .p2p-document-upload-form { grid-template-columns: 1fr; align-items: stretch; }
    .p2p-document-row { grid-template-columns: 1fr auto; }
    .p2p-document-actions { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
    .p2p-portal-grid--two, .p2p-portal-grid--three { grid-template-columns: 1fr; }
    .p2p-portal-field--full { grid-column: auto; }
    .p2p-portal-header, .p2p-selected-property, .p2p-document-requirements { display: block; }
    .p2p-portal-header > a, .p2p-selected-property > a { display: inline-block; margin-top: 10px; }
    .p2p-portal-panel, .p2p-portal-auth-card { padding: 18px; }
    .p2p-portal-nav { overflow-x: auto; flex-wrap: nowrap; }
}

.p2p-request-form-panel,
.p2p-tenant-requests-panel {
    margin-top: 24px;
}

.p2p-request-property-context {
    display: grid;
    gap: 4px;
    margin: -4px 0 18px;
}

.p2p-request-property-context > a {
    display: inline-flex;
    width: fit-content;
    align-items: baseline;
    gap: 6px;
    color: var(--p2p-ink);
    text-decoration: none;
}

.p2p-request-property-context > a:hover,
.p2p-request-property-context > a:focus-visible {
    text-decoration: underline;
}

.p2p-request-property-context > span {
    color: #777A6E;
    font-size: 13px;
}

.p2p-request-rule-error {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: 0 0 18px;
    padding: 14px 16px;
    border: 1px solid #d63638;
    border-radius: 8px;
    background: #fcf0f1;
    color: #8a2424;
}

.p2p-request-rule-error p {
    margin: 0;
}

.p2p-request-rule-error .p2p-button {
    flex: none;
}

@media (max-width: 620px) {
    .p2p-request-rule-error {
        align-items: stretch;
        flex-direction: column;
    }

    .p2p-request-rule-error .p2p-button {
        width: 100%;
    }
}

.p2p-request-profile-snapshot {
    display: none;
}

.p2p-tenant-request-list {
    display: grid;
    gap: 12px;
}

.p2p-tenant-request-row {
    display: grid;
    gap: 10px;
    align-items: center;
    grid-template-columns: minmax(0, 1fr) auto auto;
    border: 1px solid rgba(15, 23, 42, 0.10);
    border-radius: 14px;
    padding: 14px;
    background: #fff;
}

.p2p-tenant-request-row strong,
.p2p-tenant-request-row span {
    display: block;
}

.p2p-button-link {
    border: 0;
    background: transparent;
    cursor: pointer;
    padding: 0;
}

@media (max-width: 720px) {
    .p2p-tenant-request-row {
        grid-template-columns: 1fr;
    }
}

/* International phone input and protected OTP controls. */
.p2p-portal-form .iti {
    display: block;
    width: 100%;
}

.p2p-portal-form .iti input[type="tel"] {
    width: 100%;
}

.p2p-phone-send-form {
    display: grid;
    gap: 0.75rem;
    margin-top: 1rem;
}

.p2p-phone-send-form .cf-turnstile,
.p2p-registration-security .cf-turnstile {
    width: 100%;
    max-width: 100%;
}

.p2p-registration-security {
    display: grid;
    gap: 0.5rem;
    margin: 0.25rem 0 1rem;
}

/* -------------------------------------------------------------------------
 * Full-screen property gallery lightbox (0.10.8).
 * ---------------------------------------------------------------------- */
.p2p-single-gallery__slide[data-p2p-lightbox-item] {
    cursor: zoom-in;
}

.p2p-single-gallery__slide[data-p2p-lightbox-item]:focus-visible {
    outline: 3px solid var(--p2p-brass);
    outline-offset: -3px;
}

html.p2p-lightbox-open,
body.p2p-lightbox-open {
    overflow: hidden !important;
}

.p2p-gallery-lightbox[hidden] {
    display: none !important;
}

.p2p-gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 100000;
    color: #fff;
}

.p2p-gallery-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(8, 12, 21, .96);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

.p2p-gallery-lightbox__dialog {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 54px 92px 62px;
}

.p2p-gallery-lightbox__media {
    width: 100%;
    height: 100%;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    touch-action: pan-y;
}

.p2p-gallery-lightbox__media img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
}

.p2p-gallery-lightbox__close,
.p2p-gallery-lightbox__nav {
    position: absolute;
    z-index: 2;
    width: 46px;
    height: 46px;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.18) !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.1) !important;
    color: #fff !important;
    box-shadow: none !important;
    cursor: pointer;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.p2p-gallery-lightbox__close:hover,
.p2p-gallery-lightbox__nav:hover,
.p2p-gallery-lightbox__close:focus-visible,
.p2p-gallery-lightbox__nav:focus-visible {
    background: rgba(255,255,255,.2) !important;
    color: #fff !important;
}

.p2p-gallery-lightbox__close:focus-visible,
.p2p-gallery-lightbox__nav:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

.p2p-gallery-lightbox__close {
    top: 20px;
    right: 22px;
}

.p2p-gallery-lightbox__nav {
    top: 50%;
    transform: translateY(-50%);
}

.p2p-gallery-lightbox__nav--prev { left: 22px; }
.p2p-gallery-lightbox__nav--next { right: 22px; }

.p2p-gallery-lightbox__count {
    position: absolute;
    left: 50%;
    bottom: 20px;
    z-index: 2;
    min-width: 62px;
    padding: 7px 11px;
    transform: translateX(-50%);
    border-radius: 18px;
    background: rgba(255,255,255,.1);
    color: #fff;
    font: 500 12px/1 "IBM Plex Mono", monospace;
    text-align: center;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

@media (max-width: 767px) {
    .p2p-gallery-lightbox__dialog {
        padding: 58px 10px 64px;
    }

    .p2p-gallery-lightbox__media {
        touch-action: pan-y;
    }

    .p2p-gallery-lightbox__close,
    .p2p-gallery-lightbox__nav {
        width: 40px;
        height: 40px;
        background: rgba(20,32,58,.58) !important;
    }

    .p2p-gallery-lightbox__close {
        top: 12px;
        right: 12px;
    }

    .p2p-gallery-lightbox__nav--prev { left: 8px; }
    .p2p-gallery-lightbox__nav--next { right: 8px; }

    .p2p-gallery-lightbox__count {
        bottom: calc(14px + env(safe-area-inset-bottom, 0px));
    }
}

/* 0.10.9 qualification document slots */
.p2p-required-documents-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 22px 0;
}
.p2p-document-upload-form.p2p-required-document-card {
    display: block;
    margin: 0;
    background: #fff;
    border: 1px solid var(--p2p-border);
}
.p2p-required-document-card.is-complete {
    border-color: #00a32a;
    background: #f6fff7;
}
.p2p-required-document-card__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}
.p2p-required-document-card__heading > span {
    font-size: 12px;
    font-weight: 700;
    color: var(--p2p-muted);
}
.p2p-required-document-card.is-complete .p2p-required-document-card__heading > span {
    color: #008a20;
}
.p2p-supporting-document-upload {
    margin: 18px 0;
}
.p2p-supporting-document-upload > summary {
    cursor: pointer;
    font-weight: 600;
}
.p2p-supporting-document-upload .p2p-document-upload-form {
    margin-top: 14px;
}
@media (max-width: 767px) {
    .p2p-required-documents-grid {
        grid-template-columns: 1fr;
    }
}

/* Payment / booking milestone */
.p2p-request-payment-callout,
.p2p-booking-balance {
    margin-top: 14px;
    padding: 16px;
    border: 1px solid #dcdcde;
    border-radius: 10px;
    background: #fff;
}
.p2p-request-payment-callout { display: grid; gap: 10px; }
.p2p-booking-balance h3 { margin-top: 0; }
.p2p-booking-balance ul { margin: 10px 0 14px 20px; }
.p2p-booking-balance code { word-break: break-all; }
.p2p-booking-balance .p2p-portal-form { margin-top: 14px; }

/* Tenant request availability calendar */
.p2p-request-calendar-help {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 18px;
    margin-top: -4px;
    font-size: 13px;
}

.p2p-request-calendar-legend {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #5f625f;
}

.p2p-request-calendar-legend i {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    background: #e7e7e4;
    border: 1px solid #c9cbc7;
}

.p2p-request-calendar-message {
    color: #a51d1d;
    font-weight: 600;
}

.p2p-tenant-portal-page .flatpickr-calendar {
    font-family: inherit;
    border: 1px solid #dedfd9;
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(26, 28, 25, 0.16);
}

.p2p-tenant-portal-page .flatpickr-day.flatpickr-disabled,
.p2p-tenant-portal-page .flatpickr-day.flatpickr-disabled:hover {
    background: #eeeeeb;
    color: #a4a69f;
    text-decoration: line-through;
    cursor: not-allowed;
}

.p2p-tenant-portal-page .flatpickr-day.selected,
.p2p-tenant-portal-page .flatpickr-day.startRange,
.p2p-tenant-portal-page .flatpickr-day.endRange {
    border-color: currentColor;
}

@media (max-width: 767px) {
    .p2p-request-calendar-help {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* -------------------------------------------------------------------------
 * Tenant portal application shell — 0.13.2 visual refresh.
 * Keeps the existing tenant/request/payment logic and changes presentation only.
 * ---------------------------------------------------------------------- */
.p2p-tenant-portal {
    min-height: 70vh;
    padding: 42px 0 76px;
    background: var(--p2p-paper);
}

.p2p-tenant-portal .p2p-portal-container {
    width: min(1240px, calc(100% - 56px));
    max-width: none;
}

.p2p-portal-shell {
    display: grid;
    grid-template-columns: 248px minmax(0, 1fr);
    gap: 34px;
    align-items: start;
}

.p2p-portal-sidebar {
    position: sticky;
    top: 100px;
    overflow: hidden;
    border: 1px solid var(--p2p-line);
    border-radius: 14px;
    background: var(--p2p-white);
    box-shadow: 0 10px 30px rgba(20, 32, 58, .04);
}

.p2p-portal-identity {
    padding: 24px 20px 20px;
    border-bottom: 1px solid var(--p2p-line);
}

.p2p-portal-avatar {
    width: 54px;
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    border-radius: 50%;
    background: var(--p2p-ink);
    color: #fff;
    font-size: 20px;
    font-weight: 700;
}

.p2p-portal-identity__text > span {
    display: block;
    margin-bottom: 2px;
    color: #8A8D80;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.p2p-portal-identity__text > strong {
    display: block;
    margin-bottom: 10px;
    overflow: hidden;
    color: var(--p2p-ink);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
    text-overflow: ellipsis;
}

.p2p-portal-identity > .p2p-portal-status {
    margin-bottom: 18px;
}

.p2p-portal-profile-progress > div:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 7px;
    color: #6F7267;
    font-size: 11.5px;
}

.p2p-portal-profile-progress > div:first-child strong {
    color: var(--p2p-ink);
    font-size: 12px;
}

.p2p-portal-profile-progress__bar {
    height: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--p2p-paper-2);
}

.p2p-portal-profile-progress__bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--p2p-moss);
}

.p2p-portal-readiness {
    display: grid;
    gap: 7px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--p2p-line);
}

.p2p-portal-readiness > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #6F7267;
    font-size: 11.5px;
}

.p2p-portal-readiness > div strong {
    color: var(--p2p-ink);
    font-size: 12px;
}

.p2p-portal-readiness > div.is-complete strong {
    color: var(--p2p-moss);
}

.p2p-portal-menu {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 14px 12px;
}

.p2p-portal-menu a,
.p2p-portal-sidebar__footer a {
    position: relative;
    display: flex;
    min-height: 42px;
    align-items: center;
    padding: 10px 12px;
    border-radius: 8px;
    color: #5B5F52;
    font-size: 13.5px;
    font-weight: 600;
    text-decoration: none;
    transition: background-color .16s ease, color .16s ease;
}

.p2p-portal-menu a:hover,
.p2p-portal-sidebar__footer a:hover {
    background: var(--p2p-paper-2);
    color: var(--p2p-ink);
}

.p2p-portal-menu a.is-active {
    background: var(--p2p-paper-2);
    color: var(--p2p-ink);
}

.p2p-portal-menu a.is-active::before {
    position: absolute;
    top: 9px;
    bottom: 9px;
    left: 0;
    width: 3px;
    border-radius: 4px;
    background: var(--p2p-brass);
    content: "";
}

.p2p-portal-sidebar__footer {
    padding: 12px;
    border-top: 1px solid var(--p2p-line);
}

.p2p-portal-sidebar__footer a {
    color: var(--p2p-clay);
}

.p2p-portal-main {
    min-width: 0;
}

.p2p-portal-header {
    display: block;
    margin: 5px 0 26px;
}

.p2p-portal-header .p2p-eyebrow {
    color: var(--p2p-brass-2);
}

.p2p-portal-header h1 {
    margin: 0;
    color: var(--p2p-ink);
    font-family: inherit;
    font-size: clamp(28px, 3vw, 36px);
    font-weight: 700;
    letter-spacing: -.025em;
    line-height: 1.12;
}

.p2p-portal-header p:last-child:not(.p2p-eyebrow) {
    max-width: 690px;
    margin: 8px 0 0;
    color: #6F7267;
    font-size: 14px;
    line-height: 1.55;
}

.p2p-tenant-portal .p2p-portal-panel {
    border-color: var(--p2p-line);
    border-radius: 14px;
    background: var(--p2p-white);
    box-shadow: none;
}

.p2p-portal-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 24px;
}

.p2p-portal-overview--requests-only {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.p2p-portal-overview .p2p-portal-overview-card {
    min-height: 132px;
    padding: 20px;
    border: 1px solid var(--p2p-line);
    border-radius: 12px;
    background: var(--p2p-white);
}

.p2p-portal-overview-card > span {
    display: block;
    color: #777A6E;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.p2p-portal-overview-card > strong {
    display: block;
    margin: 11px 0 5px;
    color: var(--p2p-ink);
    font-size: 21px;
    font-weight: 700;
    line-height: 1.2;
}

.p2p-portal-overview-card > small,
.p2p-portal-overview-card > a {
    display: block;
    margin-top: auto;
    color: #777A6E;
    font-size: 12px;
    line-height: 1.4;
}

.p2p-portal-overview-card > a {
    color: var(--p2p-ink);
    font-weight: 600;
    text-decoration: none;
}

.p2p-portal-overview-card--qualification > strong {
    color: var(--p2p-moss-2);
}

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

.p2p-portal-section-heading .p2p-eyebrow {
    margin-bottom: 4px;
    color: var(--p2p-brass-2);
    font-size: 10.5px;
}

.p2p-portal-section-heading h2 {
    margin: 0;
    color: var(--p2p-ink);
    font-family: inherit;
    font-size: 23px;
    font-weight: 700;
    letter-spacing: -.02em;
}

.p2p-portal-section-heading > span {
    flex: none;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--p2p-paper-2);
    color: #66695F;
    font-size: 11px;
    font-weight: 700;
}

#p2p-requests,
#p2p-bookings {
    scroll-margin-top: 110px;
}

.p2p-request-form-panel,
.p2p-saved-request-panel,
.p2p-tenant-requests-panel,
.p2p-tenant-bookings-panel {
    margin-top: 24px;
}

.p2p-tenant-request-list,
.p2p-tenant-booking-list {
    display: grid;
    gap: 12px;
}

.p2p-tenant-request-row {
    display: block;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--p2p-line);
    border-radius: 12px;
    background: #fff;
}

.p2p-tenant-request-row__main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 16px 18px;
}

.p2p-tenant-request-row__content {
    min-width: 0;
}

.p2p-tenant-request-row__title {
    display: block;
    overflow: hidden;
    color: var(--p2p-ink);
    font-size: 14.5px;
    font-weight: 700;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.p2p-tenant-request-row__location {
    display: block;
    margin-top: 3px;
    color: #85887D;
    font-size: 11.5px;
}

.p2p-tenant-request-row__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 5px 10px;
    margin-top: 8px;
    color: #5F6258;
    font-size: 12px;
}

.p2p-tenant-request-row__meta strong {
    color: var(--p2p-ink);
    font-size: 12.5px;
}

.p2p-tenant-request-row__actions {
    display: flex;
    flex: none;
    align-items: center;
    gap: 12px;
}

.p2p-tenant-request-row__actions form {
    margin: 0;
}

.p2p-tenant-request-row__actions .p2p-danger-link {
    color: var(--p2p-clay);
    font-size: 12px;
    font-weight: 600;
}

.p2p-portal-status {
    padding: 5px 9px;
    border-radius: 999px;
    background: var(--p2p-paper-2);
    color: #55584F;
    font-size: 10.5px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.p2p-portal-status.is-complete,
.p2p-portal-status--approved,
.p2p-portal-status--paid,
.p2p-portal-status--converted,
.p2p-portal-status--received,
.p2p-portal-status--published,
.p2p-portal-status--affordability-within_guideline {
    background: #EEF2EC;
    color: var(--p2p-moss-2);
}

.p2p-portal-status.is-pending,
.p2p-portal-status--uploaded,
.p2p-portal-status--pending_review,
.p2p-portal-status--pending_landlord,
.p2p-portal-status--more_information_required,
.p2p-portal-status--payment_pending,
.p2p-portal-status--open,
.p2p-portal-status--pending,
.p2p-portal-status--awaiting_transfer,
.p2p-portal-status--proof_uploaded,
.p2p-portal-status--requires_review,
.p2p-portal-status--affordability-above_guideline {
    background: #FAF1E0;
    color: var(--p2p-brass-2);
}

.p2p-portal-status--rejected,
.p2p-portal-status--landlord_declined,
.p2p-portal-status--cancelled,
.p2p-portal-status--failed {
    background: #F6E9E5;
    color: #8A3623;
}

.p2p-portal-status--expired,
.p2p-portal-status--not_required,
.p2p-portal-status--incomplete,
.p2p-portal-status--documents_required {
    background: #F1F1ED;
    color: #686B61;
}

.p2p-request-payment-callout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    margin: 0;
    padding: 14px 18px;
    border: 0;
    border-top: 1px solid #EDDCB8;
    border-radius: 0;
    background: #FDFAF3;
}

.p2p-request-payment-callout > div > span,
.p2p-request-payment-callout > div > small {
    display: block;
    color: #7C6847;
    font-size: 11.5px;
}

.p2p-request-payment-callout > div > strong {
    display: block;
    margin: 2px 0;
    color: var(--p2p-ink);
    font-size: 15px;
}

.p2p-booking-card {
    overflow: hidden;
    border: 1px solid var(--p2p-line);
    border-radius: 13px;
    background: #fff;
}

.p2p-booking-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 18px;
}

.p2p-booking-card__title {
    display: block;
    margin-bottom: 5px;
    color: var(--p2p-ink);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
}

.p2p-booking-card__head > div > span {
    color: #72756A;
    font-size: 12px;
}

.p2p-booking-card__summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid var(--p2p-line);
    background: var(--p2p-paper-2);
}

.p2p-booking-card__summary > div {
    min-width: 0;
    padding: 14px 18px;
    border-right: 1px solid var(--p2p-line);
}

.p2p-booking-card__summary > div:last-child {
    border-right: 0;
}

.p2p-booking-card__summary span,
.p2p-booking-card__summary small {
    display: block;
    color: #7C7F74;
    font-size: 10.5px;
}

.p2p-booking-card__summary strong {
    display: block;
    margin: 3px 0 1px;
    overflow: hidden;
    color: var(--p2p-ink);
    font-size: 14px;
    font-weight: 700;
    text-overflow: ellipsis;
}

.p2p-booking-card__summary small {
    color: var(--p2p-moss-2);
    font-weight: 600;
}

.p2p-booking-balance {
    margin: 0;
    padding: 18px;
    border: 0;
    border-top: 1px solid var(--p2p-line);
    border-radius: 0;
    background: #fff;
}

.p2p-booking-balance__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}

.p2p-booking-balance__head > div > span {
    display: block;
    margin-bottom: 2px;
    color: #777A6E;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.p2p-booking-balance__head > div > strong {
    color: var(--p2p-ink);
    font-size: 18px;
}

.p2p-booking-balance__details {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 28px;
    padding: 16px;
    border-radius: 10px;
    background: var(--p2p-paper-2);
}

.p2p-booking-balance__details h3 {
    margin: 0 0 10px;
    color: #707368;
    font-family: inherit;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.p2p-booking-balance__details ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.p2p-booking-balance__details li,
.p2p-booking-balance__details p {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    margin: 0;
    padding: 6px 0;
    border-bottom: 1px dashed #D5D4CA;
    color: #64675D;
    font-size: 11.5px;
}

.p2p-booking-balance__details li:last-child,
.p2p-booking-balance__details p:last-child {
    border-bottom: 0;
}

.p2p-booking-balance__details li strong,
.p2p-booking-balance__details p strong,
.p2p-booking-balance__details code {
    color: var(--p2p-ink);
    font-size: 11.5px;
    font-weight: 600;
    text-align: right;
    word-break: break-word;
}

.p2p-booking-balance__proof {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--p2p-line);
}

.p2p-booking-balance__proof > p {
    margin: 0 0 12px;
}

.p2p-booking-balance__proof .p2p-portal-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: end;
    margin-top: 0;
}

.p2p-booking-balance__proof .p2p-portal-form .p2p-form-help {
    grid-column: 1 / -1;
}

.p2p-portal-empty-inline {
    padding: 18px;
    border: 1px dashed #D0CFC5;
    border-radius: 10px;
    background: var(--p2p-paper-2);
}

.p2p-portal-empty-inline strong,
.p2p-portal-empty-inline span {
    display: block;
}

.p2p-portal-empty-inline strong {
    margin-bottom: 4px;
    color: var(--p2p-ink);
    font-size: 13px;
}

.p2p-portal-empty-inline span {
    color: #777A6E;
    font-size: 12px;
}

.p2p-portal-columns {
    margin-top: 24px;
}

@media (max-width: 960px) {
    .p2p-tenant-portal .p2p-portal-container {
        width: min(100% - 36px, 920px);
    }

    .p2p-portal-shell {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .p2p-portal-sidebar {
        position: static;
        overflow: visible;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .p2p-portal-identity {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 12px;
        align-items: center;
        padding: 14px 16px;
        border: 1px solid var(--p2p-line);
        border-radius: 12px;
        background: #fff;
    }

    .p2p-portal-avatar {
        width: 44px;
        height: 44px;
        margin: 0;
        font-size: 16px;
    }

    .p2p-portal-identity__text > strong {
        margin-bottom: 0;
    }

    .p2p-portal-identity > .p2p-portal-status {
        margin: 0;
    }

    .p2p-portal-profile-progress {
        display: none;
    }

    .p2p-portal-menu {
        flex-direction: row;
        gap: 4px;
        margin-top: 10px;
        padding: 6px;
        overflow-x: auto;
        border: 1px solid var(--p2p-line);
        border-radius: 12px;
        background: #fff;
        scrollbar-width: none;
    }

    .p2p-portal-menu::-webkit-scrollbar {
        display: none;
    }

    .p2p-portal-menu a {
        flex: none;
        min-height: 38px;
        padding: 8px 12px;
        white-space: nowrap;
    }

    .p2p-portal-menu a.is-active::before {
        top: auto;
        right: 10px;
        bottom: 3px;
        left: 10px;
        width: auto;
        height: 2px;
    }

    .p2p-portal-sidebar__footer {
        display: none;
    }

    .p2p-portal-header {
        margin-top: 0;
    }
}

@media (max-width: 960px) and (min-width: 721px) {
    .p2p-portal-overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .p2p-tenant-portal {
        padding: 24px 0 52px;
    }

    /* 0.18.13.3: make consecutive portal records read as separate cards on small screens. */
    .p2p-tenant-request-list,
    .p2p-tenant-booking-list,
    .p2p-landlord-portal .p2p-record-list {
        gap: 24px;
    }

    .p2p-tenant-request-row,
    .p2p-booking-card,
    .p2p-landlord-portal .p2p-record-list > .p2p-portal-panel {
        border-color: #D1D2C8;
        box-shadow: 0 4px 14px rgba(28, 36, 31, .08);
    }

    .p2p-tenant-portal .p2p-portal-container {
        width: min(100% - 24px, 680px);
    }

    .p2p-portal-identity {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .p2p-portal-identity > .p2p-portal-status {
        grid-column: 1 / -1;
        width: fit-content;
    }

    .p2p-portal-overview {
        grid-template-columns: 1fr;
    }

    .p2p-portal-overview .p2p-portal-overview-card {
        min-height: 0;
    }

    .p2p-portal-section-heading {
        align-items: flex-start;
    }

    .p2p-tenant-request-row__main,
    .p2p-booking-card__head,
    .p2p-booking-balance__head {
        align-items: flex-start;
        flex-direction: column;
    }

    .p2p-tenant-request-row__actions {
        width: 100%;
        justify-content: space-between;
    }

    .p2p-tenant-request-row__title {
        white-space: normal;
    }

    .p2p-request-payment-callout {
        grid-template-columns: 1fr;
    }

    .p2p-request-payment-callout .p2p-button {
        width: 100%;
    }

    .p2p-booking-card__summary,
    .p2p-booking-balance__details,
    .p2p-booking-balance__proof .p2p-portal-form {
        grid-template-columns: 1fr;
    }

    .p2p-booking-card__summary > div {
        border-right: 0;
        border-bottom: 1px solid var(--p2p-line);
    }

    .p2p-booking-card__summary > div:last-child {
        border-bottom: 0;
    }

    .p2p-booking-balance__proof .p2p-portal-form .p2p-form-help {
        grid-column: auto;
    }
}

.p2p-portal-overview-card--qualification-incomplete > strong,
.p2p-portal-overview-card--qualification-pending_review > strong,
.p2p-portal-overview-card--qualification-more_information_required > strong {
    color: var(--p2p-brass-2);
}

.p2p-portal-overview-card--qualification-rejected > strong {
    color: var(--p2p-clay);
}

/* 0.13.6 guided qualification progress */
.p2p-qualification-steps {
    display: grid;
    gap: 10px;
    margin: 18px 0;
    padding: 0;
    list-style: none;
}

.p2p-qualification-steps > li {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 13px 14px;
    border: 1px solid var(--p2p-line, #e6e6df);
    border-radius: 10px;
    background: var(--p2p-paper, #fff);
}

.p2p-qualification-steps__number {
    display: inline-flex;
    width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--p2p-paper-2, #f1f1ed);
    color: var(--p2p-ink, #23261f);
    font-size: 12px;
    font-weight: 800;
}

.p2p-qualification-steps > li > div strong,
.p2p-qualification-steps > li > div span {
    display: block;
}

.p2p-qualification-steps > li > div span {
    margin-top: 2px;
    color: var(--p2p-muted, #6f7267);
    font-size: 12px;
    line-height: 1.4;
}

.p2p-qualification-steps > li > a {
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.p2p-qualification-steps > li.is-complete .p2p-qualification-steps__number {
    background: #EEF2EC;
    color: var(--p2p-moss-2, #52654a);
}
.p2p-qualification-steps > li.is-complete {
    background: #94D7AA;
}

.p2p-qualification-steps > li.is-current {
    border-color: #E4C887;
    background: #FFF9EE;
}

.p2p-qualification-steps > li.is-current .p2p-qualification-steps__number,
.p2p-qualification-steps > li.is-action-needed .p2p-qualification-steps__number {
    background: #FAF1E0;
    color: var(--p2p-brass-2, #80611f);
}

.p2p-message--actionable {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
}

.p2p-message--actionable > a {
    flex: 0 0 auto;
    font-weight: 700;
    white-space: nowrap;
}

@media (max-width: 620px) {
    .p2p-qualification-steps > li {
        grid-template-columns: 30px minmax(0, 1fr);
    }

    .p2p-qualification-steps > li > a,
    .p2p-qualification-steps > li > .p2p-portal-status {
        grid-column: 2;
        justify-self: start;
    }

    .p2p-message--actionable {
        align-items: flex-start;
        flex-direction: column;
    }
}

.p2p-profile-missing-fields {
    display: flex;
    gap: 6px 10px;
    align-items: baseline;
    flex-wrap: wrap;
    margin-bottom: 18px;
}

.p2p-profile-missing-fields a {
    font-weight: 700;
}

.p2p-profile-missing-fields a:target,
.p2p-portal-form input:target,
.p2p-portal-form select:target,
.p2p-portal-form textarea:target {
    scroll-margin-top: 110px;
}


/* 0.15.0 request workflow and dashboard refinements */
.p2p-portal-status--qualification-qualified,
.p2p-portal-status--qualification-qualified_with_limit {
    background: #94D7AA;
    color: #24452E;
}

.p2p-portal-status--qualification-pending_review,
.p2p-portal-status--qualification-more_information_required {
    background: #FAF1E0;
    color: var(--p2p-brass-2);
}

.p2p-portal-status--qualification-rejected {
    background: #F6E9E5;
    color: #8A3623;
}

.p2p-portal-status--qualification-incomplete {
    background: #F1F1ED;
    color: #686B61;
}

.p2p-portal-status--pending_qualification {
    background: #F1F1ED;
    color: #686B61;
}

/* Guided phone verification after the email link is confirmed. */
body.p2p-phone-prompt-open {
    overflow: hidden;
}

.p2p-phone-prompt-backdrop {
    position: fixed;
    z-index: 100000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 24px;
    overflow-y: auto;
    background: rgba(20, 32, 58, .68);
    backdrop-filter: blur(3px);
}

.p2p-phone-prompt-backdrop[hidden] {
    display: none;
}

.p2p-phone-prompt {
    position: relative;
    width: min(100%, 500px);
    max-height: calc(100vh - 48px);
    padding: 32px;
    overflow-y: auto;
    border: 1px solid var(--p2p-line);
    border-radius: 16px;
    outline: 0;
    background: var(--p2p-white);
    box-shadow: 0 24px 70px rgba(20, 32, 58, .28);
}

.p2p-phone-prompt h2 {
    margin: 0 36px 10px 0;
    color: var(--p2p-ink);
    font-family: inherit;
    font-size: clamp(25px, 4vw, 32px);
    line-height: 1.15;
}

.p2p-phone-prompt > p:not(.p2p-eyebrow) {
    margin: 0 0 22px;
    color: #5F6258;
    line-height: 1.55;
}

.p2p-phone-prompt__close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--p2p-paper-2);
    color: var(--p2p-ink);
    font: 400 26px/1 sans-serif;
    cursor: pointer;
}

.p2p-phone-prompt__close:hover,
.p2p-phone-prompt__close:focus-visible {
    background: var(--p2p-line);
}

.p2p-phone-prompt__send-form,
.p2p-phone-prompt__code-form,
.p2p-phone-prompt__resend-form,
.p2p-phone-prompt__change form {
    display: grid;
    gap: 12px;
}

.p2p-phone-prompt__code-form input,
.p2p-phone-prompt__change input {
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid var(--p2p-line);
    border-radius: 7px;
    background: #fff;
    color: var(--p2p-ink);
    font: inherit;
}

.p2p-phone-prompt__code-form input {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: .16em;
    text-align: center;
}

.p2p-phone-prompt__resend-form {
    margin-top: 10px;
}

.p2p-phone-prompt__send-form .cf-turnstile,
.p2p-phone-prompt__resend-form .cf-turnstile {
    width: 100%;
    max-width: 100%;
}

.p2p-phone-prompt__change {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--p2p-line);
}

.p2p-phone-prompt__change summary {
    color: var(--p2p-ink);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.p2p-phone-prompt__change form {
    margin-top: 14px;
}

.p2p-phone-prompt .p2p-message {
    margin-bottom: 16px;
}

/* 0.16.4 progressive request disclosure and tenant-selected payment */
.p2p-portal-overview--qualification-only {
    grid-template-columns: minmax(0, 1fr);
}

.p2p-portal-overview-card--accepted.has-accepted,
.p2p-accepted-requests-panel {
    border-color: #94D7AA;
}

.p2p-portal-overview-card--accepted.has-accepted > strong {
    color: #31583C;
}

#p2p-accepted-requests {
    scroll-margin-top: 110px;
}

.p2p-request-accepted-callout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 14px 18px;
    border-top: 1px solid #CDE8D5;
    background: #F4FBF6;
}

.p2p-request-accepted-callout > div > span,
.p2p-request-accepted-callout > div > small {
    display: block;
    color: #50705A;
    font-size: 11.5px;
}

.p2p-request-accepted-callout > div > strong {
    display: block;
    margin: 2px 0;
    color: var(--p2p-ink);
    font-size: 15px;
}

.p2p-tenant-request-details {
    border-top: 1px solid var(--p2p-line);
    background: #fff;
}

.p2p-tenant-request-details summary {
    padding: 11px 18px;
    color: var(--p2p-moss-2);
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
}

.p2p-tenant-request-details__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
    padding: 4px 18px 18px;
}

.p2p-tenant-request-details__grid h3 {
    margin: 0 0 8px;
    color: #707368;
    font-family: inherit;
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.p2p-tenant-request-details__grid dl {
    margin: 0;
}

.p2p-tenant-request-details__grid dl > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(120px, auto);
    gap: 16px;
    padding: 7px 0;
    border-bottom: 1px solid var(--p2p-line);
}

.p2p-tenant-request-details__grid dl > div:last-child {
    border-bottom: 0;
}

.p2p-tenant-request-details__grid dt,
.p2p-tenant-request-details__grid dd {
    margin: 0;
    color: #64675D;
    font-size: 11.5px;
}

.p2p-tenant-request-details__grid dd {
    color: var(--p2p-ink);
    font-weight: 600;
    text-align: right;
}

.p2p-tenant-request-details__grid .is-total dt,
.p2p-tenant-request-details__grid .is-total dd {
    color: var(--p2p-ink);
    font-weight: 800;
}

.p2p-request-booking-callout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 14px 18px;
    border-top: 1px solid #CDE8D5;
    background: #F4FBF6;
}

.p2p-request-booking-callout strong,
.p2p-request-booking-callout span {
    display: block;
}

.p2p-request-booking-callout strong {
    color: #31583C;
    font-size: 13px;
}

.p2p-request-booking-callout span {
    margin-top: 2px;
    color: #50705A;
    font-size: 11.5px;
}

.p2p-request-history-panel .p2p-tenant-request-row {
    background: #FAFAF8;
}

@media (max-width: 720px) {
    .p2p-request-accepted-callout,
    .p2p-request-booking-callout,
    .p2p-tenant-request-details__grid {
        grid-template-columns: 1fr;
    }

    .p2p-request-accepted-callout .p2p-button,
    .p2p-request-booking-callout .p2p-button {
        width: 100%;
    }

    .p2p-tenant-request-details__grid dl > div {
        grid-template-columns: 1fr;
        gap: 2px;
    }

    .p2p-tenant-request-details__grid dd {
        text-align: left;
    }
}

@media (max-width: 600px) {
    .p2p-phone-prompt-backdrop {
        align-items: end;
        padding: 12px;
    }

    .p2p-phone-prompt {
        width: 100%;
        max-height: calc(100vh - 24px);
        padding: 28px 20px 22px;
        border-radius: 16px 16px 10px 10px;
    }
}

.p2p-portal-overview-card--booking.has-booking,
.p2p-tenant-bookings-panel.has-booking {
    border-color: #94D7AA;
}

.p2p-portal-overview-card--booking.has-booking > strong {
    color: #31583C;
}

.p2p-tenant-request-row__title a,
.p2p-booking-card__title a {
    color: inherit;
    text-decoration: none;
}

.p2p-tenant-request-row__title a:hover,
.p2p-booking-card__title a:hover,
.p2p-tenant-request-row__property-link:hover {
    text-decoration: underline;
}

.p2p-tenant-request-row__property-link {
    color: var(--p2p-moss-2);
    font-weight: 700;
    text-decoration: none;
}

.p2p-request-information-callout,
.p2p-request-qualification-callout {
    padding: 14px 18px;
    border-top: 1px solid var(--p2p-line);
}

.p2p-request-information-callout {
    background: #FFF8E8;
}

.p2p-request-information-callout > strong {
    display: block;
    margin-bottom: 4px;
    color: var(--p2p-brass-2);
    font-size: 12px;
}

.p2p-request-information-callout > p,
.p2p-request-qualification-callout > span {
    margin: 0;
    color: #5F6258;
    font-size: 12px;
    line-height: 1.55;
}

.p2p-request-qualification-callout {
    background: #F7F7F4;
}

/* Beat Elementor Kit's generic button background without using !important. */
.p2p-portal-shell .p2p-tenant-request-row__actions button.p2p-danger-link.p2p-button-link {
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--p2p-clay);
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
}

.p2p-portal-shell .p2p-tenant-request-row__actions button.p2p-danger-link.p2p-button-link:hover,
.p2p-portal-shell .p2p-tenant-request-row__actions button.p2p-danger-link.p2p-button-link:focus-visible {
    background: transparent;
    color: #7B2E1E;
    text-decoration: underline;
}


/* 0.16.0 dedicated booking confirmation */
.p2p-booking-confirmation-panel { overflow: hidden; }
.p2p-booking-confirmation-hero,
.p2p-booking-confirmation-state {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    padding: 24px;
    border: 1px solid #94D7AA;
    border-radius: 14px;
    background: #F2FAF4;
}
.p2p-booking-confirmation-state--pending { border-color: #E3D2A8; background: #FFF9EC; }
.p2p-booking-confirmation-state--warning { border-color: #E3C28A; background: #FFF6E4; }
.p2p-booking-confirmation-state--error { border-color: #E1B8AF; background: #FFF4F1; }
.p2p-booking-confirmation-action {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    margin-top: 16px;
    padding: 20px 24px;
    border: 1px solid #DDAE86;
    border-radius: 14px;
    background: #FFF7EA;
}
.p2p-booking-confirmation-action.is-required {
    border-color: #DDA99C;
    background: #FFF4F1;
}
.p2p-booking-confirmation-action h3 { margin: 0 0 6px; }
.p2p-booking-confirmation-action p:last-child { margin-bottom: 0; }
.p2p-booking-confirmation-action .p2p-booking-confirmation-icon { background: #EBC7BE; color: #7C3323; }
.p2p-booking-confirmation-action.is-verifying .p2p-booking-confirmation-icon { background: #F1D99D; color: #72551F; }
.p2p-booking-confirmation-icon {
    display: inline-flex;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #94D7AA;
    color: #24452E;
    font-size: 24px;
    font-weight: 800;
    line-height: 1;
}
.p2p-booking-confirmation-state--pending .p2p-booking-confirmation-icon,
.p2p-booking-confirmation-state--warning .p2p-booking-confirmation-icon { background: #F1D99D; color: #72551F; }
.p2p-booking-confirmation-state--error .p2p-booking-confirmation-icon { background: #EBC7BE; color: #7C3323; }
.p2p-booking-confirmation-hero h2,
.p2p-booking-confirmation-state h2 { margin: 0 0 8px; }
.p2p-booking-confirmation-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
}
.p2p-booking-confirmation-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 6px;
    padding: 18px;
    border: 1px solid var(--p2p-line);
    border-radius: 12px;
    background: var(--p2p-white);
}
.p2p-booking-confirmation-card > span,
.p2p-booking-confirmation-card > small { color: var(--p2p-muted); }
.p2p-booking-confirmation-card > strong { color: var(--p2p-ink); font-size: 18px; }
.p2p-booking-confirmation-address {
    display: grid;
    gap: 3px;
    margin: 4px 0 2px;
    padding-top: 10px;
    border-top: 1px solid var(--p2p-line);
}
.p2p-booking-confirmation-address > span {
    color: var(--p2p-muted);
    font-size: 12px;
    font-weight: 600;
}
.p2p-booking-confirmation-address address {
    margin: 0;
    color: var(--p2p-ink);
    font-style: normal;
    font-weight: 700;
    line-height: 1.45;
}
.p2p-booking-confirmation-card small.is-paid { color: #31583C; font-weight: 700; }
.p2p-booking-confirmation-card a,
.p2p-booking-card__confirmation-link a { color: var(--p2p-moss-2); font-weight: 700; text-decoration: none; }
.p2p-booking-confirmation-card a:hover,
.p2p-booking-card__confirmation-link a:hover { text-decoration: underline; }
.p2p-booking-card__confirmation-link { margin: 14px 0 0; }
.p2p-booking-deposit-alert {
    display: grid;
    gap: 3px;
    margin: 14px 18px 0;
    padding: 13px 15px;
    border: 1px solid #DDA99C;
    border-radius: 10px;
    background: #FFF4F1;
    color: #7C3323;
}
.p2p-booking-deposit-alert.is-verifying {
    border-color: #E3C28A;
    background: #FFF6E4;
    color: #72551F;
}
.p2p-booking-deposit-alert strong { font-size: 12.5px; }
.p2p-booking-deposit-alert span { font-size: 11.5px; }
.p2p-booking-confirmation-transfer,
.p2p-booking-confirmation-next {
    margin-top: 18px;
    padding: 22px;
    border: 1px solid var(--p2p-line);
    border-radius: 12px;
    background: var(--p2p-paper-2);
}
.p2p-booking-confirmation-transfer h3,
.p2p-booking-confirmation-transfer h4 { margin-top: 0; }
.p2p-booking-confirmation-transfer__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
}
.p2p-booking-confirmation-transfer ul,
.p2p-booking-confirmation-next ol { margin: 0; padding-left: 20px; }
.p2p-booking-confirmation-transfer__grid li,
.p2p-booking-confirmation-transfer__grid p {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    margin: 0;
    padding: 8px 0;
    border-bottom: 1px solid var(--p2p-line);
}
.p2p-booking-confirmation-transfer__grid li:last-child,
.p2p-booking-confirmation-transfer__grid p:last-child { border-bottom: 0; }
.p2p-booking-confirmation-transfer code { word-break: break-all; }
.p2p-payment-received-note {
    margin: 16px 0 0;
    padding: 12px 14px;
    border-radius: 10px;
    background: #EEF2EC;
    color: var(--p2p-moss-2);
    font-weight: 700;
}
.p2p-booking-confirmation-next ol { display: grid; gap: 14px; }
.p2p-booking-confirmation-next li { padding-left: 5px; }
.p2p-booking-confirmation-next li strong,
.p2p-booking-confirmation-next li span { display: block; }
.p2p-booking-confirmation-next li span { margin-top: 3px; color: var(--p2p-muted); }
.p2p-booking-confirmation-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
@media (max-width: 720px) {
    .p2p-booking-confirmation-grid,
    .p2p-booking-confirmation-transfer__grid { grid-template-columns: 1fr; }
    .p2p-booking-confirmation-hero,
    .p2p-booking-confirmation-state,
    .p2p-booking-confirmation-action { padding: 18px; }
    .p2p-booking-confirmation-actions .p2p-button { width: 100%; }
}

/* Landlord property review */
.p2p-landlord-review-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
}
.p2p-landlord-review-gallery img {
    display: block;
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: 10px;
}
.p2p-landlord-review-columns { align-items: start; }
.p2p-landlord-review-facts { margin: 0; }
.p2p-landlord-review-facts > div {
    display: grid;
    grid-template-columns: minmax(120px, .8fr) minmax(0, 1.2fr);
    gap: 14px;
    padding: 10px 0;
    border-bottom: 1px solid var(--p2p-line);
}
.p2p-landlord-review-facts > div:last-child { border-bottom: 0; }
.p2p-landlord-review-facts dt { color: var(--p2p-muted); font-weight: 600; }
.p2p-landlord-review-facts dd { margin: 0; color: var(--p2p-ink); font-weight: 700; }
.p2p-landlord-review-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.p2p-landlord-review-tags span {
    padding: 7px 10px;
    border: 1px solid var(--p2p-line);
    border-radius: 999px;
    background: var(--p2p-paper-2);
    font-size: 13px;
}
.p2p-landlord-review-actions { display: grid; gap: 18px; }
.p2p-landlord-review-actions form { margin: 0; }
.p2p-landlord-review-change-form { padding-top: 18px; border-top: 1px solid var(--p2p-line); }
.p2p-landlord-review-change-form textarea { width: 100%; box-sizing: border-box; }
@media (max-width: 900px) {
    .p2p-landlord-review-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
    .p2p-landlord-review-gallery { grid-template-columns: 1fr; }
    .p2p-landlord-review-gallery img { height: auto; }
    .p2p-landlord-review-facts > div { grid-template-columns: 1fr; gap: 4px; }
}

/* Post-publication landlord feedback */
.p2p-landlord-postpublish-actions { margin-top: 16px; }
.p2p-landlord-postpublish-actions details { display: inline-block; width: 100%; }
.p2p-landlord-postpublish-actions summary {
    width: fit-content;
    margin-left: auto;
    padding: 6px 10px;
    border: 1px solid var(--p2p-line);
    border-radius: 7px;
    background: transparent;
    color: var(--p2p-muted);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
}
.p2p-landlord-postpublish-actions summary::-webkit-details-marker { display: none; }
.p2p-landlord-postpublish-actions summary:hover { border-color: var(--p2p-ink); color: var(--p2p-ink); }
.p2p-landlord-postpublish-actions__body {
    margin-top: 12px;
    padding: 18px;
    border: 1px solid var(--p2p-line);
    border-radius: 8px;
    background: var(--p2p-surface);
}
.p2p-landlord-postpublish-actions__body > p:first-child { margin-top: 0; color: var(--p2p-muted); }
.p2p-landlord-review-visibility-option { display: flex; gap: 9px; align-items: flex-start; margin: 0 0 18px; }
.p2p-landlord-review-visibility-option input { margin-top: 3px; flex: none; }
.p2p-landlord-review-visibility-option span,
.p2p-landlord-review-visibility-option small { display: block; }
.p2p-landlord-review-visibility-option small { margin-top: 3px; color: var(--p2p-muted); line-height: 1.4; }

/* Landlord property self-service */
.p2p-landlord-property-header { align-items: flex-start; }
.p2p-landlord-property-nav {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0 0 18px;
}
.p2p-landlord-property-nav a,
.p2p-landlord-property-nav span {
    display: inline-flex;
    align-items: center;
    padding: 8px 11px;
    border: 1px solid var(--p2p-line);
    border-radius: 8px;
    background: var(--p2p-surface);
    color: var(--p2p-muted);
    font-size: 13px;
    font-weight: 650;
    text-decoration: none;
}
.p2p-landlord-property-nav a:hover,
.p2p-landlord-property-nav a.is-active { border-color: var(--p2p-ink); color: var(--p2p-ink); }
.p2p-landlord-property-nav span.is-disabled { opacity: .45; }
.p2p-landlord-property-editor > h2:first-child { margin-top: 0; }
.p2p-landlord-property-form input[type="text"],
.p2p-landlord-property-form input[type="number"],
.p2p-landlord-property-form input[type="date"],
.p2p-landlord-property-form input[type="email"],
.p2p-landlord-property-form select,
.p2p-landlord-property-form textarea,
.p2p-landlord-property-editor .p2p-portal-form input[type="date"],
.p2p-landlord-property-editor .p2p-portal-form select,
.p2p-landlord-property-editor .p2p-portal-form textarea {
    width: 100%;
    box-sizing: border-box;
}
.p2p-landlord-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 18px;
}
.p2p-landlord-check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 18px;
    margin: 12px 0 20px;
}
.p2p-landlord-check-grid label { display: flex; gap: 8px; align-items: flex-start; }
.p2p-landlord-check-grid input { margin-top: 4px; flex: none; }
.p2p-required { color: #b42318; }
.p2p-landlord-deposit-toggle { display: inline-flex; align-items: center; gap: 8px; margin: 6px 0 12px; }
.p2p-landlord-property-card__image { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 8px; margin: 0 0 14px; }
.p2p-landlord-visibility-form { margin-top: 8px; }
.p2p-landlord-amenity-group { margin: 0 0 18px; padding: 14px 16px; border: 1px solid var(--p2p-line); border-radius: 8px; }
.p2p-landlord-amenity-group legend { padding: 0 6px; font-weight: 700; }
.p2p-form-help { color: var(--p2p-muted); font-size: 13px; }
.p2p-form-actions { margin-top: 18px; }
.p2p-landlord-media-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 16px 0 24px;
}
.p2p-landlord-media-grid article { padding: 10px; border: 1px solid var(--p2p-line); border-radius: 10px; background: var(--p2p-paper-2); }
.p2p-landlord-media-grid img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 7px; }
.p2p-landlord-media-grid form { display: inline-block; margin: 5px 5px 0 0; }
.p2p-landlord-availability-list { margin-top: 24px; }
.p2p-landlord-availability-list article {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--p2p-line);
}
.p2p-landlord-availability-list article span { display: block; color: var(--p2p-muted); font-size: 13px; margin-top: 2px; }
.p2p-property-card-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.p2p-landlord-review-summary { margin-bottom: 18px; }
@media (max-width: 760px) {
    .p2p-landlord-form-grid,
    .p2p-landlord-check-grid { grid-template-columns: 1fr; }
    .p2p-landlord-media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
    .p2p-landlord-media-grid { grid-template-columns: 1fr; }
    .p2p-landlord-availability-list article { align-items: flex-start; flex-direction: column; }
}

/* Pre-payment contract acceptance UI. */
.p2p-booking-terms-panel { max-width: 980px; }
.p2p-booking-terms-heading .p2p-completion-badge {
    min-width: 0;
    min-height: 0;
    padding: 7px 11px;
    border-radius: 999px;
    white-space: nowrap;
    font-size: 11px;
}
.p2p-booking-terms-notice {
    margin: 0 0 18px;
    padding: 15px 16px;
    border: 1px solid var(--p2p-line);
    border-radius: 10px;
    background: var(--p2p-paper-2);
}
.p2p-booking-terms-notice strong { display: block; color: var(--p2p-ink); }
.p2p-booking-terms-notice p { margin: 6px 0 0; color: #66695F; font-size: 13px; line-height: 1.55; }
.p2p-booking-terms-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 14px;
}
.p2p-booking-terms-grid > section,
.p2p-booking-terms-clauses {
    padding: 18px;
    border: 1px solid var(--p2p-line);
    border-radius: 12px;
    background: var(--p2p-white);
}
.p2p-booking-terms-grid h3,
.p2p-booking-terms-clauses h3 { margin: 0 0 13px; color: var(--p2p-ink); font-size: 17px; }
.p2p-booking-terms-grid dl { margin: 0; }
.p2p-booking-terms-grid dl > div {
    display: grid;
    grid-template-columns: minmax(120px, .9fr) minmax(0, 1.1fr);
    gap: 14px;
    padding: 9px 0;
    border-bottom: 1px solid var(--p2p-line);
}
.p2p-booking-terms-grid dl > div:last-child { border-bottom: 0; }
.p2p-booking-terms-grid dt { color: #777A6E; font-size: 12px; font-weight: 600; }
.p2p-booking-terms-grid dd { margin: 0; color: var(--p2p-ink); font-size: 13px; font-weight: 600; text-align: right; overflow-wrap: anywhere; }
.p2p-booking-terms-grid dl > .is-total dt,
.p2p-booking-terms-grid dl > .is-total dd { font-weight: 800; }
.p2p-booking-terms-copy { color: #4F524A; font-size: 13px; line-height: 1.65; }
.p2p-booking-terms-clauses { margin-top: 14px; }
.p2p-booking-terms-clauses ol { margin: 0; padding-left: 21px; color: #4F524A; font-size: 13px; line-height: 1.6; }
.p2p-booking-terms-clauses li + li { margin-top: 8px; }
.p2p-booking-terms-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; font-size: 12px; }
.p2p-booking-terms-links a { color: var(--p2p-ink); font-weight: 700; }
.p2p-booking-terms-acceptance {
    margin-top: 14px;
    padding: 18px;
    border: 1px solid var(--p2p-line);
    border-radius: 12px;
    background: var(--p2p-paper-2);
}
.p2p-booking-terms-checkbox { display: flex; align-items: flex-start; gap: 11px; color: var(--p2p-ink); font-size: 13px; line-height: 1.55; cursor: pointer; }
.p2p-booking-terms-checkbox input { flex: none; width: 18px; height: 18px; margin-top: 2px; }
.p2p-booking-terms-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 17px; }
.p2p-booking-terms-evidence { display: block; margin-top: 12px; color: #777A6E; font-size: 10.5px; overflow-wrap: anywhere; }
@media (max-width: 760px) {
    .p2p-booking-terms-grid { grid-template-columns: 1fr; }
    .p2p-booking-terms-heading { display: block; }
    .p2p-booking-terms-heading .p2p-completion-badge { margin-top: 12px; }
}
@media (max-width: 520px) {
    .p2p-booking-terms-grid dl > div { grid-template-columns: 1fr; gap: 3px; }
    .p2p-booking-terms-grid dd { text-align: left; }
    .p2p-booking-terms-actions { flex-direction: column-reverse; }
    .p2p-booking-terms-actions .p2p-button { width: 100%; justify-content: center; }
}


/* Contract acceptance document modals (0.18.10). */
.p2p-booking-terms-acceptance__title {
    margin: 0 0 14px;
    color: var(--p2p-ink);
    font-size: 18px;
}
.p2p-booking-terms-checkbox + .p2p-booking-terms-checkbox { margin-top: 14px; }
.p2p-booking-terms-checkbox a {
    color: var(--p2p-ink);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 2px;
}
body.p2p-legal-modal-open { overflow: hidden; }
.p2p-legal-modal[hidden] { display: none !important; }
.p2p-legal-modal {
    position: fixed;
    z-index: 100000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 24px;
}
.p2p-legal-modal__backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: rgba(16, 21, 18, .66);
    cursor: pointer;
}
.p2p-legal-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(980px, 100%);
    max-height: min(90vh, 900px);
    overflow: auto;
    border: 1px solid var(--p2p-line);
    border-radius: 14px;
    background: var(--p2p-paper);
    box-shadow: 0 24px 80px rgba(0, 0, 0, .28);
}
.p2p-legal-modal__dialog--document {
    display: flex;
    flex-direction: column;
    height: min(90vh, 900px);
    overflow: hidden;
}
.p2p-legal-modal__header {
    position: sticky;
    z-index: 2;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--p2p-line);
    background: var(--p2p-paper);
}
.p2p-legal-modal__header h2 { margin: 0; font-size: 21px; color: var(--p2p-ink); }
.p2p-legal-modal__header .p2p-eyebrow { margin-bottom: 3px; }
.p2p-legal-modal__close {
    flex: none;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid var(--p2p-line);
    border-radius: 50%;
    background: var(--p2p-white);
    color: var(--p2p-ink);
    font-size: 25px;
    line-height: 1;
    cursor: pointer;
}
.p2p-legal-modal__body { padding: 4px 18px 20px; }
.p2p-legal-modal__frame {
    display: block;
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    border: 0;
    background: #fff;
}
@media (max-width: 640px) {
    .p2p-legal-modal { padding: 8px; }
    .p2p-legal-modal__dialog,
    .p2p-legal-modal__dialog--document {
        width: 100%;
        height: calc(100vh - 16px);
        max-height: none;
        border-radius: 10px;
    }
    .p2p-legal-modal__header { padding: 13px 14px; }
    .p2p-legal-modal__body { padding: 2px 12px 16px; }
}

.p2p-landlord-listing-visibility {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border: 1px solid #ddd8cc;
    border-radius: 10px;
    background: #faf9f6;
}

.p2p-landlord-listing-visibility form {
    margin: 0;
}

@media (max-width: 640px) {
    .p2p-landlord-listing-visibility {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* 0.18.9 tenant onboarding focus mode. */
.p2p-onboarding-progress {
    width: min(860px, 100%);
    margin: 0 auto 24px;
    padding: 15px 18px;
    border: 1px solid var(--p2p-line);
    border-radius: 14px;
    background: var(--p2p-white);
}

.p2p-onboarding-progress ol {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.p2p-onboarding-progress li {
    position: relative;
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
    color: #8A8D80;
    font-size: 12px;
}

.p2p-onboarding-progress li:not(:last-child)::after {
    position: absolute;
    top: 50%;
    right: 6px;
    width: calc(100% - 92px);
    height: 1px;
    background: var(--p2p-line);
    content: "";
}

.p2p-onboarding-progress li > span {
    position: relative;
    z-index: 1;
    display: inline-flex;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--p2p-line);
    border-radius: 50%;
    background: var(--p2p-white);
    color: #777B70;
    font-weight: 700;
}

.p2p-onboarding-progress li > strong {
    position: relative;
    z-index: 1;
    padding-right: 8px;
    background: var(--p2p-white);
    white-space: nowrap;
}

.p2p-onboarding-progress li.is-current,
.p2p-onboarding-progress li.is-complete {
    color: var(--p2p-ink);
}

.p2p-onboarding-progress li.is-current > span {
    border-color: var(--p2p-ink);
    background: var(--p2p-ink);
    color: #fff;
}

.p2p-onboarding-progress li.is-complete > span {
    border-color: var(--p2p-moss);
    background: var(--p2p-moss);
    color: #fff;
}

.p2p-portal-shell--focus {
    width: min(860px, 100%);
    grid-template-columns: minmax(0, 1fr);
    margin: 0 auto;
}

.p2p-portal-shell--focus .p2p-portal-header {
    margin-top: 0;
}

.p2p-onboarding-focus-card {
    padding: clamp(28px, 5vw, 52px) !important;
    text-align: center;
}

.p2p-onboarding-focus-card__icon {
    display: inline-flex;
    width: 58px;
    height: 58px;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    border-radius: 50%;
    background: var(--p2p-paper-2);
    color: var(--p2p-ink);
    font-size: 25px;
    font-weight: 700;
}

.p2p-onboarding-focus-card h2 {
    margin: 0 0 10px;
}

.p2p-onboarding-focus-card > p:not(.p2p-onboarding-browse-link) {
    max-width: 620px;
    margin: 0 auto 22px;
    color: #6F7267;
}

.p2p-onboarding-focus-card form {
    margin: 0;
}

.p2p-onboarding-browse-link {
    margin: 20px 0 0;
    font-size: 13px;
}

.p2p-onboarding-profile-panel .p2p-portal-form > h3:first-of-type {
    margin-top: 0;
}

.p2p-portal-form input[readonly][data-p2p-household-size] {
    background: var(--p2p-paper-2);
    color: #686B61;
    cursor: default;
}

@media (max-width: 767px) {
    .p2p-onboarding-progress {
        padding: 12px;
    }

    .p2p-onboarding-progress ol {
        gap: 4px;
    }

    .p2p-onboarding-progress li {
        justify-content: center;
    }

    .p2p-onboarding-progress li:not(:last-child)::after {
        right: -2px;
        width: calc(50% - 16px);
    }

    .p2p-onboarding-progress li > strong {
        display: none;
    }

    .p2p-onboarding-focus-card {
        padding: 28px 20px !important;
    }
}

/* 0.18.9.1 onboarding documents, request handoff and completion. */
.p2p-onboarding-documents-panel .p2p-required-document-card.is-complete > p,
.p2p-onboarding-documents-panel .p2p-required-document-card.is-complete > button {
    display: none;
}

.p2p-onboarding-documents-panel .p2p-required-document-card.is-complete {
    min-height: 0;
}

.p2p-onboarding-complete-card {
    max-width: 720px;
    margin-inline: auto;
    text-align: center;
    padding: clamp(28px, 5vw, 52px);
}

.p2p-onboarding-complete-card__icon {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    margin: 0 auto 18px;
    border-radius: 999px;
    background: #e8f7ee;
    color: #176b3a;
    font-size: 30px;
    font-weight: 800;
}

.p2p-onboarding-complete-card h2 {
    margin-top: 4px;
}

.p2p-onboarding-complete-card > p:not(.p2p-eyebrow) {
    max-width: 560px;
    margin-inline: auto;
}

.p2p-onboarding-complete-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 24px;
}

@media (max-width: 640px) {
    .p2p-onboarding-complete-actions .p2p-button {
        width: 100%;
    }
}

/* Contract modal content polish (0.18.10.1). */
.p2p-legal-modal__body--scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 22px 24px 30px;
    background: #fff;
}
.p2p-legal-modal__header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}
.p2p-legal-modal__download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 13px;
    border: 1px solid var(--p2p-ink);
    border-radius: 8px;
    background: var(--p2p-ink);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none;
}
.p2p-legal-modal__download:hover,
.p2p-legal-modal__download:focus {
    color: #fff;
    opacity: .9;
}
.p2p-terms-content {
    color: var(--p2p-ink);
    font-size: 14px;
    line-height: 1.7;
}
.p2p-terms-content > :first-child { margin-top: 0; }
.p2p-terms-content h1,
.p2p-terms-content h2,
.p2p-terms-content h3,
.p2p-terms-content h4 {
    color: var(--p2p-ink);
    line-height: 1.25;
}
.p2p-terms-content a { color: var(--p2p-ink); text-decoration: underline; }

.p2p-rental-agreement-preview {
    position: relative;
    isolation: isolate;
    color: #1d2531;
}
.p2p-lease-preview__watermark {
    position: absolute;
    z-index: 1;
    top: 185px;
    left: 50%;
    transform: translateX(-50%) rotate(-24deg);
    color: rgba(18, 36, 66, .075);
    font-size: clamp(72px, 12vw, 132px);
    font-weight: 900;
    letter-spacing: .08em;
    line-height: 1;
    pointer-events: none;
    user-select: none;
}
.p2p-lease-preview__document {
    position: relative;
    z-index: 2;
    width: min(780px, 100%);
    margin: 0 auto;
    padding: 24px 30px 42px;
    border: 1px solid #ddd8cc;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 10px 30px rgba(18, 36, 66, .06);
}
.p2p-lease-preview__document h1 {
    margin: 0 0 5px;
    font-size: 24px;
    line-height: 1.2;
    text-align: center;
}
.p2p-lease-preview__subtitle {
    margin: 0 0 22px !important;
    color: #62675f;
    font-size: 13px;
    text-align: center;
}
.p2p-lease-preview__document h2 {
    margin: 25px 0 10px;
    padding-bottom: 6px;
    border-bottom: 1px solid #e1ddd3;
    font-size: 17px;
    line-height: 1.3;
}
.p2p-lease-preview__document h3 {
    margin: 17px 0 8px;
    font-size: 14px;
}
.p2p-lease-preview__document p {
    margin: 8px 0;
    font-size: 13px;
    line-height: 1.58;
}
.p2p-lease-preview__bullet {
    position: relative;
    padding-left: 16px;
}
.p2p-lease-preview__bullet::before {
    content: "•";
    position: absolute;
    left: 1px;
    font-weight: 900;
}
.p2p-lease-preview__kv {
    display: grid;
    grid-template-columns: minmax(150px, .8fr) minmax(0, 1.2fr);
    gap: 14px;
    padding: 7px 0;
    border-bottom: 1px solid #eeeae2;
    font-size: 12.5px;
    line-height: 1.45;
}
.p2p-lease-preview__kv > span { color: #676c65; }
.p2p-lease-preview__kv > strong { overflow-wrap: anywhere; }
.p2p-lease-preview__signatures {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 34px;
    margin: 18px 0 24px;
}
.p2p-lease-preview__signature {
    min-height: 84px;
    padding-top: 10px;
    border-top: 1px solid #bfc1bb;
}
.p2p-lease-preview__signature strong,
.p2p-lease-preview__signature em {
    display: block;
}
.p2p-lease-preview__signature strong {
    margin-bottom: 12px;
    font-size: 12px;
}
.p2p-lease-preview__signature em {
    font-size: 15px;
    line-height: 1.45;
}
.p2p-lease-preview__signature--single { margin: 18px 0; }
.p2p-lease-preview__spacer { height: 8px; }

@media (max-width: 640px) {
    .p2p-legal-modal__header-actions { gap: 7px; }
    .p2p-legal-modal__download {
        min-height: 34px;
        padding: 7px 9px;
        font-size: 11px;
    }
    .p2p-legal-modal__body--scroll { padding: 14px 10px 20px; }
    .p2p-lease-preview__document { padding: 18px 15px 30px; }
    .p2p-lease-preview__kv { grid-template-columns: 1fr; gap: 3px; }
    .p2p-lease-preview__signatures {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}

/* 0.18.10.2 direct deposit proof + property-link affordance */
.p2p-property-title-link {
    display: inline-flex;
    max-width: 100%;
    align-items: center;
    gap: 5px;
    vertical-align: middle;
}
.p2p-property-title-link__text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.p2p-property-link-icon {
    flex: 0 0 13px;
    width: 13px;
    height: 13px;
    fill: currentColor;
    opacity: .72;
}
.p2p-property-title-link:hover .p2p-property-link-icon,
.p2p-property-title-link:focus-visible .p2p-property-link-icon { opacity: 1; }
.p2p-booking-confirmation-proof {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--p2p-line);
}
.p2p-booking-confirmation-proof__existing { margin: 0 0 12px; }
.p2p-booking-confirmation-proof__existing a {
    color: var(--p2p-moss-2);
    font-weight: 700;
}
.p2p-booking-confirmation-proof__form {
    max-width: 620px;
    margin: 0;
}

/* 0.18.11 unified account login + tenant mobile quick navigation */
.p2p-account-login-links {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--p2p-border);
    text-align: center;
}
.p2p-account-login-links p { margin: 6px 0; }
.p2p-login-security { margin-bottom: 18px; }

.p2p-mobile-app-nav { display: none; }

@media (max-width: 767px) {
    body.p2p-has-mobile-app-nav {
        padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px));
    }

    .p2p-mobile-app-nav {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 9998;
        display: block;
        border-top: 1px solid #D8D6CC;
        background: rgba(255,255,255,.97);
        box-shadow: 0 -8px 24px rgba(20,32,58,.08);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }

    .p2p-mobile-app-nav__inner {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        width: min(100%, 560px);
        margin: 0 auto;
        padding: 7px 10px calc(7px + env(safe-area-inset-bottom, 0px));
    }

    .p2p-mobile-app-nav a {
        position: relative;
        display: flex;
        min-height: 56px;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;
        padding: 5px 6px;
        color: #14203A;
        font-size: 12px;
        font-weight: 600;
        line-height: 1.1;
        text-decoration: none;
    }

    .p2p-mobile-app-nav a::before {
        position: absolute;
        top: 0;
        left: 50%;
        width: 24px;
        height: 2px;
        border-radius: 2px;
        background: transparent;
        content: '';
        transform: translateX(-50%);
    }

    .p2p-mobile-app-nav a.is-active::before { background: #B3883A; }
    .p2p-mobile-app-nav a.is-active { color: #8A641F; }

    .p2p-mobile-app-nav svg {
        width: 24px;
        height: 24px;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 1.8;
    }
}

/* Landlord portal subpage/action cleanup */
.p2p-landlord-attention-list {
    display: grid;
    gap: 10px;
}
.p2p-landlord-attention-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 15px 16px;
    border: 1px solid var(--p2p-line);
    border-radius: 10px;
    background: var(--p2p-paper-2);
    color: var(--p2p-ink);
    text-decoration: none;
}
.p2p-landlord-attention-row:hover {
    border-color: var(--p2p-ink);
    color: var(--p2p-ink);
}
.p2p-landlord-attention-row span,
.p2p-landlord-attention-row strong,
.p2p-landlord-attention-row small {
    display: block;
}
.p2p-landlord-attention-row small {
    margin-top: 3px;
    color: var(--p2p-muted);
    font-weight: 400;
}
.p2p-landlord-attention-row b {
    flex: none;
    font-size: 13px;
}
.p2p-landlord-history-heading {
    margin: 28px 0 14px;
    padding-top: 24px;
    border-top: 1px solid var(--p2p-line);
}
.p2p-landlord-history-heading h3,
.p2p-landlord-history-heading p {
    margin: 0;
}
.p2p-landlord-history-heading p {
    margin-top: 4px;
    color: var(--p2p-muted);
}
.p2p-landlord-history-card {
    background: var(--p2p-surface);
}
.p2p-landlord-card--attention {
    border-color: var(--p2p-brass) !important;
}
.p2p-landlord-action-note {
    margin: 12px 0;
    padding: 10px 12px;
    border-radius: 8px;
    background: var(--p2p-paper-2);
    color: var(--p2p-ink);
    font-size: 13px;
    font-weight: 600;
}
.p2p-landlord-request-decision {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 18px;
}
.p2p-landlord-request-decision h2,
.p2p-landlord-request-decision p {
    margin-top: 0;
}
.p2p-landlord-request-decision__actions {
    display: flex;
    align-items: flex-start;
    flex: none;
    gap: 10px;
}
.p2p-landlord-request-decision__actions form {
    margin: 0;
}
.p2p-landlord-decline-disclosure {
    position: relative;
}
.p2p-landlord-decline-disclosure > summary {
    cursor: pointer;
    list-style: none;
}
.p2p-landlord-decline-disclosure > summary::-webkit-details-marker {
    display: none;
}
.p2p-landlord-decline-disclosure__form {
    position: absolute;
    z-index: 5;
    top: calc(100% + 8px);
    right: 0;
    width: min(390px, 80vw);
    padding: 18px;
    border: 1px solid var(--p2p-line);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(32, 35, 28, .14);
}
.p2p-landlord-decline-disclosure__form select,
.p2p-landlord-decline-disclosure__form textarea {
    width: 100%;
    box-sizing: border-box;
}
@media (max-width: 720px) {
    .p2p-landlord-attention-row,
    .p2p-landlord-request-decision {
        align-items: flex-start;
        flex-direction: column;
    }
    .p2p-landlord-request-decision__actions {
        width: 100%;
        flex-wrap: wrap;
    }
    .p2p-landlord-decline-disclosure__form {
        position: static;
        width: 100%;
        margin-top: 8px;
        box-shadow: none;
    }
}
