:root{font-family:system-ui,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--bg-main: #f3ebe6;--bg-card: #ffffff;--primary: #b43a1a;--primary-dark: #9e2f12;--primary-light: #e07a5f;--text-main: #1f2933;--text-muted: #6b7280;--border: #e5e1dc;--shadow-soft: 0 8px 24px rgba(0, 0, 0, .06);--shadow-hover: 0 12px 28px rgba(0, 0, 0, .12);font-family:system-ui,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg-main);color:var(--text-main)}h1,p{margin-top:0}.app-error-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(180deg,#f6f2ed,#f3ebe6)}.app-error-card{width:100%;max-width:520px;background:var(--bg-card);border:1px solid var(--border);border-radius:28px;padding:32px;text-align:center;box-shadow:var(--shadow-soft)}.app-error-eyebrow{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--primary);font-weight:700}.app-error-title{margin:0;font-size:32px;line-height:1.1;color:var(--text-main)}.app-error-text{margin:14px 0 0;color:var(--text-muted);line-height:1.7}.app-error-button{margin-top:22px;height:46px;padding:0 20px;border:none;border-radius:999px;background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:#fff;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 12px 24px #b43a1a2e;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.app-error-button:hover{transform:translateY(-1px)}.app-error-button:active{transform:translateY(0)}.skeleton-card{border-radius:18px;overflow:hidden;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-soft)}.skeleton-image{height:180px;background:#e8e2dc}.skeleton-content{padding:14px}.skeleton-line{height:12px;border-radius:6px;background:#e8e2dc;margin-bottom:10px}.skeleton-line.short{width:60%}.skeleton-line.tiny{width:30%}.shimmer{position:relative;overflow:hidden}.shimmer:after{content:"";position:absolute;top:0;left:-150px;width:120px;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:shimmerMove 1.2s infinite}@keyframes shimmerMove{0%{left:-150px}to{left:100%}}#root{width:100%}.pagination{display:flex;justify-content:center;align-items:center;gap:14px;margin:28px 0 42px;flex-wrap:wrap}.pagination button{height:44px;min-width:46px;padding:0 16px;border:1px solid var(--border);background:#ffffffeb;color:var(--text-main);border-radius:999px;cursor:pointer;font-size:14px;font-weight:600;box-shadow:var(--shadow-soft);transition:transform .15s ease,background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.pagination button:hover:not(:disabled){background:#fff7f3;border-color:#e6c9bc;color:var(--primary-dark);transform:translateY(-1px)}.pagination button:active:not(:disabled){transform:translateY(0)}.pagination button:disabled{opacity:.5;cursor:not-allowed;background:#ffffffb3;color:#9aa1aa;box-shadow:none}.page-numbers{display:flex;gap:8px;flex-wrap:wrap}.page-numbers button.active{background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:#fff;border-color:transparent;box-shadow:0 12px 24px #b43a1a38}.page-numbers button.active:hover{background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:#fff;border-color:transparent}.ellipsis{min-width:36px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:16px;font-weight:700}.pagination button.pager-btn{background:var(--primary);color:#fff}.pagination button.pager-btn:hover{background:var(--primary-dark);color:#fff}.card{border:1px solid var(--border);padding:14px;border-radius:22px;background:var(--bg-card);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;display:flex;flex-direction:column;cursor:pointer;position:relative;box-shadow:var(--shadow-soft)}.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover);border-color:#b43a1a29}.price{color:var(--primary);font-size:28px;line-height:1.05;font-weight:800;letter-spacing:-.02em;margin:0}.addr{color:var(--text-main);font-size:17px;font-weight:700;margin:0 0 6px;line-height:1.35}.city{font-size:14px;color:var(--text-muted);margin:0 0 14px}.meta{display:flex;flex-wrap:wrap;gap:8px}.meta-chip{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border-radius:999px;background:#f7f2ee;color:#6d4a41;font-size:13px;font-weight:600;border:1px solid #efe1d8}.thumb{width:100%;height:220px;object-fit:cover;display:flex;flex-direction:column}.thumb-hint{font-size:12px;color:#888;margin-top:4px;text-align:center}.thumb.placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:14px;font-weight:500}.favorite-btn{position:absolute;top:14px;right:14px;z-index:10;width:38px;height:38px;border:none;border-radius:999px;background:#fffffff0;color:#9a9a9a;font-size:17px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 18px #0000001f;transition:transform .15s ease,color .15s ease,background-color .15s ease,box-shadow .15s ease}.favorite-btn:hover{transform:scale(1.05);border-color:#00000024}.favorite-btn.active{color:var(--primary);background:#fff7f3;box-shadow:0 10px 20px #b43a1a2e}.card.favorite{border:1px solid rgba(26,26,25,.25);box-shadow:0 0 0 2px #1a1a190f,0 10px 24px #1a1a191f}.card-body{padding:18px 0}.card-image{overflow:hidden;border-top-left-radius:22px;border-top-right-radius:22px}.card-topline{display:flex;flex-direction:column;align-items:start;justify-content:space-between;gap:12px;margin-bottom:8px}.mls-badge{flex-shrink:0;padding:6px 10px;border-radius:999px;background:#fbf3ef;color:var(--primary-dark);font-size:12px;font-weight:700;border:1px solid #f1d8cf}.page{background:var(--bg-main);max-width:1240px;margin:0 auto;padding:28px 24px 36px}.page:before{content:"";display:block;height:120px;background:linear-gradient(135deg,#b43a1a,#e07a5f);border-radius:0 0 24px 24px;margin-bottom:20px}.loading,.error{padding:40px;text-align:center;font-size:18px}.error{color:#b00020}.filters{background:var(--bg-card);padding:16px;border-radius:14px;border:1px solid var(--border);box-shadow:var(--shadow-soft);display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:20px 0}.filters input,.filters button{height:46px;border-radius:14px;padding:0 14px;font-size:14px}.filters input{border:1px solid var(--border);background:#fff;color:var(--text-main)}.filters input::placeholder{color:#9aa1aa}.filters input:focus{outline:none;border-color:var(--primary)}.filters button{background:var(--primary);color:#fff;cursor:pointer;border:none;font-weight:600;transition:transform .15s ease,background-color .15s ease,box-shadow .15s ease}.filters button:hover{background:var(--primary-dark);opacity:.92;transform:translateY(-1px)}.grid{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:20px}.no-results{margin-top:24px;padding:40px 24px;border:1px dashed var(--border);border-radius:20px;background:#ffffffb8;text-align:center;color:var(--text-muted);font-size:15px}.sort-controls{display:flex;align-items:center;gap:12px;margin:16px 0 0;flex-wrap:wrap}.sort-controls label{font-size:14px;font-weight:600;color:var(--text-main)}.sort-controls select{height:44px;border-radius:14px;border:1px solid var(--border);padding:0 14px;font-size:14px;background:#fff;color:var(--text-main)}.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:#fff;border-radius:28px;padding:32px;margin-bottom:24px;box-shadow:0 18px 40px #b43a1a2e}.hero:after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:999px;background:#ffffff14}.hero-copy{position:relative;z-index:1;max-width:720px}.hero-eyebrow{margin:0 0 10px;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#ffffffd1}.hero-title{margin:0;font-size:clamp(34px,5vw,54px);line-height:1.05;font-weight:800;letter-spacing:-.03em}.hero-subtitle{margin:14px 0 0;max-width:720px;font-size:16px;line-height:1.7;color:#ffffffe0}.hero-stats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px}.hero-stat-card{background:#ffffff1f;border:1px solid rgba(255,255,255,.16);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:18px;padding:18px 16px}.hero-stat-value{display:block;font-size:24px;font-weight:800;line-height:1.1}.hero-stat-label{display:block;margin-top:6px;font-size:13px;color:#ffffffd1}.toolbar-card{background:var(--bg-card);border:1px solid var(--border);border-radius:22px;padding:20px;box-shadow:var(--shadow-soft);margin-bottom:20px}.toolbar-header{margin-bottom:14px}.toolbar-title{margin:0;font-size:20px;font-weight:700;color:var(--text-main)}.toolbar-subtitle{margin:6px 0 0;color:var(--text-muted);font-size:14px}.results-summary{margin:18px 2px 0;color:var(--text-muted);font-size:14px;font-weight:500}@media(max-width:700px){.page{padding:16px}}.sticky-filter-bar{position:sticky;top:12px;z-index:50;margin-bottom:18px;animation:stickySlideDown .2s ease}.sticky-filter-inner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px;border-radius:20px;background:#ffffffe6;border:1px solid var(--border);box-shadow:0 14px 30px #00000014;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.sticky-filter-inner input,.sticky-filter-inner select{height:42px;min-width:120px;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--text-main);padding:0 14px;font-size:14px}.sticky-filter-inner input:focus,.sticky-filter-inner select:focus{outline:none;border-color:var(--primary)}.sticky-filter-search,.sticky-filter-clear{height:42px;padding:0 16px;border-radius:999px;border:none;font-size:14px;font-weight:700;cursor:pointer;transition:transform .15s ease,background-color .15s ease,opacity .15s ease}.sticky-filter-search{background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:#fff}.sticky-filter-search:hover{transform:translateY(-1px)}.sticky-filter-clear{background:#f7f2ee;color:var(--primary-dark);border:1px solid #efddd3}.sticky-filter-clear:hover{background:#fff7f3}@keyframes stickySlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.sticky-filter-bar{top:8px}.sticky-filter-inner{gap:8px;padding:10px}.sticky-filter-inner input,.sticky-filter-inner select{flex:1 1 140px;min-width:0}}.detail-page{max-width:1240px;margin:0 auto;padding:28px 24px 36px}.detail-back{display:inline-flex;align-items:center;gap:8px;margin-bottom:20px;padding:11px 16px;border:1px solid var(--border);border-radius:999px;background:#ffffffe6;color:var(--text-main);cursor:pointer;font-size:14px;font-weight:600;box-shadow:var(--shadow-soft);transition:transform .15s ease,background-color .15s ease,border-color .15s ease}.detail-back:hover{background:#fff;border-color:#d8c9bc;transform:translateY(-1px)}.detail-status{max-width:900px;margin:0 auto;padding:56px 24px;text-align:center;color:var(--text-main)}.detail-status-badge{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;background:#fff3ed;border:1px solid #f0d6ca;color:var(--primary-dark);font-weight:700}.detail-error{color:#b42318;margin-bottom:16px;font-weight:600}.detail-header{margin-bottom:24px}.detail-price{margin:0 0 8px;font-size:clamp(36px,5vw,54px);font-weight:800;line-height:1.05;letter-spacing:-.03em;color:var(--primary)}.detail-address{margin:0 0 6px;font-size:24px;font-weight:700;color:var(--text-main)}.detail-location{margin:0;font-size:15px;color:var(--text-muted)}.detail-hero{position:relative;width:100%;height:430px;border-radius:28px;overflow:hidden;background:#efe7de;margin-bottom:26px;box-shadow:var(--shadow-soft)}.detail-hero img{width:100%;height:100%;object-fit:cover;display:block}.detail-no-image{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);font-size:16px;font-weight:500}.detail-image-hint{margin-top:8px;font-size:13px;line-height:1.4;color:#7a7a7a;max-width:300px;text-align:center}.detail-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:24px}.detail-main,.detail-side{display:flex;flex-direction:column;gap:20px}.detail-card{background:var(--bg-card);border:1px solid var(--border);border-radius:24px;padding:22px;box-shadow:var(--shadow-soft)}.detail-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.detail-stat{background:linear-gradient(180deg,#fff7f3,#fbf3ef);border:1px solid #f1ddd2;border-radius:18px;padding:20px 14px;text-align:center}.detail-stat-value{display:block;font-size:28px;font-weight:800;color:var(--primary-dark);margin-bottom:6px}.detail-stat-label{font-size:13px;color:#7a665e;font-weight:600}.detail-section-title{margin:0 0 14px;font-size:20px;font-weight:800;color:var(--text-main)}.detail-list{display:grid;gap:10px}.detail-list-row{display:flex;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid #f1ebe5}.detail-list-row:last-child{border-bottom:none;padding-bottom:0}.detail-label{color:var(--text-muted);font-weight:700;text-transform:capitalize}.detail-value{color:var(--text-main);text-align:right;font-weight:600}.detail-description{margin:0;line-height:1.8;color:#3a3a3a;white-space:pre-line}.detail-empty{margin:0;color:var(--text-muted);line-height:1.7}.openhouse-list{display:flex;flex-direction:column;gap:12px}.openhouse-item{border:1px solid #f1ddd2;border-radius:18px;padding:16px;background:linear-gradient(180deg,#fffaf7,#fbf4ef)}.openhouse-row{display:flex;justify-content:space-between;gap:16px;padding:7px 0}.openhouse-label{font-weight:700;color:#8a6b61;text-transform:capitalize}.openhouse-value{color:var(--text-main);text-align:right;font-weight:600}@media(max-width:900px){.detail-grid{grid-template-columns:1fr}.detail-hero{height:320px}}@media(max-width:640px){.detail-page{padding:16px}.detail-hero{height:240px;border-radius:22px}.detail-address{font-size:20px}.detail-stats{grid-template-columns:1fr}.detail-list-row,.openhouse-row{flex-direction:column;align-items:flex-start}.detail-value,.openhouse-value{text-align:left}}.map-card{padding:0;overflow:hidden}.map-header{display:flex;justify-content:space-between;align-items:center;padding:20px 22px 0}.map-open-link{font-size:14px;font-weight:700;color:var(--primary);text-decoration:none}.map-open-link:hover{opacity:.8}.map-frame-wrapper{position:relative;width:100%;height:280px;border-radius:0 0 24px 24px;overflow:hidden;background:#efe7de}.map-frame-wrapper iframe{width:100%;height:100%;border:0;filter:grayscale(20%) brightness(.95) contrast(1.1)}.map-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;padding-bottom:18px}.map-pin{position:absolute;top:50%;transform:translateY(-50%);width:18px;height:18px;background:var(--primary);border-radius:50%;box-shadow:0 0 0 6px #b43a1a33}.map-address{background:#fffffff2;padding:10px 14px;border-radius:999px;font-size:13px;font-weight:600;box-shadow:var(--shadow-soft);border:1px solid var(--border)}.thumbnail-row{display:flex;gap:10px;margin-top:12px;margin-bottom:12px;overflow-x:auto;padding-bottom:4px;scroll-behavior:smooth}.thumbnail-row::-webkit-scrollbar{height:6px}.thumbnail-row::-webkit-scrollbar-thumb{background:#0003;border-radius:999px}.thumbnail-button{border:2px solid transparent;background:transparent;padding:0;border-radius:10px;cursor:pointer;flex:0 0 auto}.thumbnail-button.active{border-color:#1a1a19}.thumbnail{width:92px;height:68px;object-fit:cover;display:block;border-radius:8px;opacity:.75}.thumbnail-button:hover .thumbnail,.thumbnail-button.active .thumbnail{opacity:1}.nav-btn{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:none;background:#00000073;color:#fff;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center}.nav-btn:hover{background:#000000a6}.prev-btn{left:10px}.next-btn{right:10px}.image-counter{position:absolute;bottom:10px;right:12px;background:#00000080;color:#fff;font-size:12px;padding:4px 8px;border-radius:6px}
