/* Phase 1 — Review 02 / Revision 02 targeted consolidation */
:root {
    --r2-ink: #10233f;
    --r2-muted: #627188;
    --r2-line: #d9e2ec;
    --r2-surface: #fff;
    --r2-soft: #f4f7fa;
    --r2-gold: #c98b2e;
    --r2-blue: #1f5f99;
}

/* Search: compact closed disclosure and direction-safe input geometry. */
.sprint03-search-input-wrap > .sprint03-search-input-icon {
    inset-inline-start: 1.1rem;
    inset-inline-end: auto;
    width: 1.25rem;
    height: 1.25rem;
    margin: 0;
    pointer-events: none;
}

.sprint03-search-input-wrap input {
    box-sizing: border-box;
    padding-inline-start: 3.25rem !important;
    padding-inline-end: 3.15rem !important;
    text-overflow: ellipsis;
}

[dir="rtl"] .sprint03-search-input-wrap input {
    direction: rtl;
    text-align: right;
    unicode-bidi: plaintext;
}

[dir="rtl"] .sprint03-search-input-wrap input::placeholder {
    direction: rtl;
    text-align: right;
}

.sprint03-filter-disclosure:not([open]) .sprint03-filter-panel { display: none; }
.sprint03-filter-disclosure > summary { scroll-margin-top: 6rem; }
.sprint03-search [dir="rtl"],
.sprint03-search[dir="rtl"] .sprint03-results-head,
.sprint03-search[dir="rtl"] .sprint03-card-grid,
.sprint03-search[dir="rtl"] .sprint03-empty-state,
.sprint03-search[dir="rtl"] .sprint03-active-filters {
    text-align: right;
}

.sprint03-search[dir="rtl"] :is(p, li, h2, h3, .alert, .sprint03-filter-chip) {
    overflow-wrap: anywhere;
    line-height: 1.65;
}

/* Shared property content safeguards; Review 01 remains the component owner. */
.property-card,
.review-property-card,
[data-property-card] { min-width: 0; height: 100%; overflow: hidden; }

:is(.property-card, .review-property-card, [data-property-card]) :is(h2, h3, .property-card-title, .review-card-title) {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow-wrap: anywhere;
}

:is(.property-card, .review-property-card, [data-property-card]) :is(.property-card-address, .review-card-address) {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow-wrap: anywhere;
}

/* Favorite state remains one recognizable heart everywhere. */
.favorite-button,
[data-favorite-button] {
    transform-origin: center;
    transition: color .16s ease, background-color .16s ease, transform .16s ease;
}
.favorite-button[aria-pressed="true"],
[data-favorite-button][aria-pressed="true"],
.favorite-button.is-favorite { color: #dc2626 !important; }
.favorite-button[aria-pressed="true"] svg,
[data-favorite-button][aria-pressed="true"] svg,
.favorite-button.is-favorite svg { fill: currentColor; }
.favorite-button.is-updating,
[data-favorite-button].is-updating { transform: scale(.9); }

/* Authentication: calm commercial split layout without changing auth behavior. */
.auth-public-main {
    width: min(1120px, calc(100% - 2rem));
    min-height: calc(100vh - 10rem);
    margin-inline: auto;
    padding: clamp(1.5rem, 4vw, 4rem) 0;
    display: grid;
    align-items: center;
}
.auth-commercial-layout {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(22rem, .72fr);
    overflow: hidden;
    border: 1px solid var(--r2-line);
    border-radius: 24px;
    background: var(--r2-surface);
    box-shadow: 0 24px 65px rgba(15, 35, 64, .12);
}
.auth-commercial-aside {
    padding: clamp(2rem, 5vw, 4.5rem);
    color: #fff;
    background: radial-gradient(circle at 85% 10%, rgba(224, 171, 78, .34), transparent 28%), linear-gradient(145deg, #102b4d, #174f7e);
}
.auth-commercial-aside h2 { margin: .65rem 0 .8rem; max-width: 13ch; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.06; }
.auth-commercial-aside p { max-width: 52ch; color: #d9e7f4; }
.auth-trust-list { display: grid; gap: .85rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.auth-trust-list li { display: flex; gap: .65rem; align-items: flex-start; color: #edf5fc; }
.auth-trust-list svg { flex: 0 0 1.15rem; width: 1.15rem; height: 1.15rem; margin-top: .15rem; color: #f1bd62; }
.auth-panel.auth-commercial-panel { width: auto; max-width: none; margin: 0; padding: clamp(1.6rem, 4vw, 3.2rem); border: 0; border-radius: 0; box-shadow: none; }
.auth-commercial-panel h1 { margin-bottom: .35rem; }
.auth-lead { margin: 0 0 1.5rem; color: var(--r2-muted); }
.auth-commercial-panel form { display: grid; gap: .55rem; }
.auth-commercial-panel .form-label { margin: .4rem 0 0; font-weight: 750; }
.auth-commercial-panel .form-control { min-height: 48px; }
.auth-commercial-panel .password-field { position: relative; }
.auth-commercial-panel .password-field .form-control { padding-inline-end: 3rem; }
.auth-commercial-panel .password-toggle { inset-inline-end: .4rem; }
.auth-password-meter { display: grid; grid-template-columns: repeat(4, 1fr); gap: .3rem; margin-top: .25rem; }
.auth-password-meter i { height: 4px; border-radius: 999px; background: #dbe3ec; }
.auth-password-meter[data-score="1"] i:nth-child(-n+1),
.auth-password-meter[data-score="2"] i:nth-child(-n+2) { background: #d97706; }
.auth-password-meter[data-score="3"] i:nth-child(-n+3),
.auth-password-meter[data-score="4"] i:nth-child(-n+4) { background: #16856f; }
.auth-password-status { color: var(--r2-muted); font-size: .78rem; }
.auth-divider { display: grid; grid-template-columns: 1fr auto 1fr; gap: .7rem; align-items: center; margin: .8rem 0; color: var(--r2-muted); font-size: .75rem; }
.auth-divider::before, .auth-divider::after { content: ""; height: 1px; background: var(--r2-line); }
.auth-google-button { min-height: 48px; display: flex; align-items: center; justify-content: center; gap: .65rem; }
.auth-google-mark { width: 1.4rem; height: 1.4rem; display: grid; place-items: center; border-radius: 50%; color: #174ea6; background: #fff; font-weight: 900; }
.auth-google-note, .auth-legal-note { margin: 0; color: var(--r2-muted); font-size: .75rem; text-align: center; }
.auth-commercial-panel .alert { overflow-wrap: anywhere; }

/* Market map: stable reserved area and explicit readiness state. */
[data-market-map-card] { position: relative; }
[data-market-map-status] { display: inline-flex; align-items: center; gap: .4rem; }
[data-market-map-status]::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: #d97706; }
[data-market-map-status][data-state="ready"]::before { background: #16856f; }
[data-market-map-status][data-state="error"]::before { background: #c93636; }
.dashboard-map[data-market-map] { min-height: 430px; contain: layout paint; }

[data-theme="dark"] .auth-commercial-layout { --r2-line: #354860; --r2-surface: #14243a; --r2-muted: #aab9ca; background: #14243a; }
[data-theme="dark"] .auth-commercial-panel { color: #eef5fc; background: #14243a; }
[data-theme="dark"] .auth-commercial-panel .form-control { color: #eef5fc; border-color: #42556d; background: #102036; }

@media (max-width: 820px) {
    .auth-commercial-layout { grid-template-columns: 1fr; }
    .auth-commercial-aside { padding: 2rem; }
    .auth-commercial-aside h2 { max-width: 18ch; font-size: 2rem; }
    .auth-trust-list { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 560px) {
    .auth-public-main { width: min(100% - 1rem, 36rem); padding: .75rem 0 1.5rem; }
    .auth-commercial-layout { border-radius: 18px; }
    .auth-commercial-aside { padding: 1.4rem; }
    .auth-trust-list { grid-template-columns: 1fr; }
    .auth-panel.auth-commercial-panel { padding: 1.35rem; }
    .auth-row { align-items: flex-start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
    .favorite-button, [data-favorite-button] { transition: none; }
}
@media (forced-colors: active) {
    .auth-commercial-layout, .auth-google-button, [data-market-map-status] { border: 1px solid CanvasText; }
}
