/* Small, predictable motion; no movement during photo hydration or typing. */
.modal-overlay{animation:kiwi-dim-in 160ms ease-out}.modal-sheet{animation:kiwi-sheet-in 200ms cubic-bezier(.2,.8,.2,1)}
.photo{animation:kiwi-photo-in 180ms ease-out}.gallery-thumbs .locked-cover b,.gallery-thumbs .locked-cover span{display:none}.gallery-thumbs .locked-cover{min-height:0;height:100%;padding:8px}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.empty .button{max-width:280px;margin:18px auto 0}.locked-cover span{max-width:260px;line-height:1.5}
.save-heart,.icon-button,.bottom-nav button{transition:background-color 140ms ease,color 140ms ease}
[data-theme=dark] .lime-button,[data-theme=dark] .open-pill{color:var(--ink)}
@keyframes kiwi-dim-in{from{opacity:0}to{opacity:1}}@keyframes kiwi-sheet-in{from{opacity:.5;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes kiwi-photo-in{from{opacity:.4}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.modal-overlay,.modal-sheet,.photo{animation:none}.save-heart,.icon-button,.bottom-nav button{transition:none}}
/* apple-design review: readable text, generous hit areas, stable layout. */
:root{font-size:100%;font-optical-sizing:auto}

/* Clear hierarchy across search, results and the apartment page. */
:root{--bg:#f7f8f5;--paper:#fff;--ink:#172f26;--muted:#64736b;--green:#087647;--lime:#dbefbd;--soft:#eef5e7;--border:#e0e7df}
:root[data-theme=dark]{--bg:#14221c;--paper:#1e3027;--ink:#f1f5ef;--muted:#b2c2b7;--green:#b5de91;--lime:#364e30;--soft:#293e30;--border:#3b5143}
.app-header{gap:14px;padding-bottom:14px;border-bottom:1px solid var(--border);background:var(--paper)}
.app-header .city{font-size:.875rem;color:var(--ink);padding:8px 12px;border-radius:12px;background:var(--soft)}
.pilot-label{display:none}
.search-heading{padding:24px 2px 18px}
.search-heading .page-heading{font-size:clamp(1.8rem,7.5vw,2.2rem);line-height:1.2;letter-spacing:-.045em;margin:4px 0 0}
.search-eyebrow{font-size:.8125rem;color:var(--muted);margin:0 0 8px}
.search-controls{padding:14px;background:var(--paper);border:1px solid var(--border);border-radius:20px}
.search-controls .search-row{margin:0 0 10px;flex-wrap:nowrap}
.search-controls .search-field input{border-radius:12px;min-height:48px;font-size:1rem;background:var(--bg)}
.search-controls .search-submit{border-radius:12px;background:var(--green);color:var(--bg);min-height:48px}
.search-controls .search-shortcuts{display:flex;gap:8px;margin:0}
.search-controls .search-shortcuts button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px 8px;font-size:.8125rem;border:1px solid var(--border);background:var(--paper);border-radius:12px;flex:1 1 85px;min-width:0}
.search-controls .search-shortcuts .filter-selected{border-color:var(--green);background:var(--soft);color:var(--green)}
.search-controls .clear-filters{margin:8px 0 0;font-size:.8125rem;min-height:44px}
.search-page .results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:20px 2px 14px}
.results-count{font-size:.9375rem;font-weight:750}
.search-page .results-toolbar select{width:auto;max-width:100%;margin:0;background:transparent;border-color:transparent;padding:8px;font-size:.8125rem}
.search-page .listing{border-radius:20px;border:1px solid var(--border);box-shadow:none;margin-bottom:18px;overflow:hidden;background:var(--paper)}
.search-page .listing-open{width:100%;text-align:left}
.search-page .listing-media{height:auto;aspect-ratio:16/10;overflow:hidden}
.search-page .listing-media .photo{width:100%;height:100%;object-fit:cover}
.search-page .listing-body{padding:16px 18px 22px}
.search-page .listing .price{font-size:1.65rem;letter-spacing:-.04em;color:var(--ink)}
.search-page .listing .price small{font-size:.8125rem}
.search-page .listing .specs{margin:8px 0;color:var(--ink)}
.search-page .listing .address{margin:6px 0;color:var(--muted);padding-right:25px}
.search-page .listing .owner{font-size:.8125rem;color:var(--green);margin-top:10px}
.search-page .card-arrow{bottom:18px;right:16px;width:28px;height:28px;background:transparent}
.search-page .save-heart{top:12px;right:12px;background:var(--paper);box-shadow:0 2px 8px #00000012}
.search-followup{display:grid;gap:6px;margin:24px 0}
.empty{padding:32px 20px;border:1px solid var(--border);background:var(--paper);border-radius:20px;text-align:center}
.empty h3{font-size:1.125rem}.empty p{font-size:.9375rem;color:var(--muted)}
.detail-body{background:var(--paper);border-radius:24px 24px 0 0;padding:22px 20px}
.detail-body>.price{font-size:2rem;letter-spacing:-.05em;color:var(--ink)}
.detail-pills{gap:8px;flex-wrap:wrap}.detail-pills span{border-radius:10px;background:var(--soft);padding:10px 12px}
.detail-row{padding:16px 0;line-height:1.5}
.detail-actions{gap:10px}.detail-actions .button{min-height:52px;border-radius:14px}
.detail-section{line-height:1.65}.detail-section textarea{min-height:112px}
.bottom-nav{background:var(--paper);padding-top:8px}
.bottom-nav>button{border-radius:14px;font-size:.75rem;min-height:52px}
.bottom-nav>button[aria-current=page]{color:var(--green);background:var(--soft);font-weight:750}
.modal-sheet{border-radius:24px 24px 0 0;padding:12px 22px 26px}
#filters-form label{font-size:.9375rem;margin:20px 0 10px}
#filters-form select,#filters-form input{margin-top:8px;min-height:50px;border-radius:12px}
#filters-form .button{min-height:52px;border-radius:14px;margin-top:24px}
button:active:not(:disabled){transform:none;filter:brightness(.96)}
@media(min-width:800px){.search-controls{max-width:720px}.search-heading{padding-top:30px}.search-page .results-list{gap:20px}.search-page .listing{margin-bottom:0}}
body{line-height:1.5}
main:focus{outline:none}
.listing .specs,.listing .address,.listing .owner,.listing.compact .specs{font-size:.875rem;line-height:1.5}
.listing .price small,.listing.compact .price small,.results-toolbar .muted,.results-toolbar select,.hint,.pilot-label,.saved-locally,.bottom-nav>button,.terms span{font-size:.75rem}
.listing.compact .listing-body{padding-top:48px;padding-bottom:42px}
.listing.compact .price{padding-right:0;font-size:1.5rem;overflow-wrap:anywhere}
.listing.compact .specs,.listing.compact .address,.listing.compact .owner{padding-right:0}
.save-heart,.listing.compact .save-heart{width:44px;height:44px;min-width:44px;min-height:44px}
.save-heart svg,.listing.compact .save-heart svg{width:20px;height:20px}
.refresh-button,.small-button,.chip,.results-toolbar select,.favorite-tabs button,.welcome-switch button{min-height:44px}
.welcome-collage .door-eye{min-width:44px;min-height:44px}
.hero-tools .icon-button{min-width:44px;min-height:44px;width:44px}
.hero-tools{top:calc(14px + env(safe-area-inset-top))!important}
.search-shortcuts{flex-wrap:wrap}
.search-shortcuts button{min-width:90px;flex:1 1 90px;white-space:normal;line-height:1.4}
.search-shortcuts button:disabled{opacity:1;cursor:default;color:var(--muted);border-style:dashed}
.search-row{flex-wrap:wrap}
.search-field{flex:1 1 140px}
.search-row>.lime-button{font-size:.875rem}
.clear-filters{display:block;margin:4px 0;padding:8px 4px}
.results-toolbar select{max-width:100%;font-size:.875rem}
.detail-pills span{font-size:.875rem;min-width:90px}
.detail-actions>.button{font-size:.875rem}
.note-actions{flex-wrap:wrap}
.profile-controls>button{min-width:130px}
.modal-sheet h2{padding-right:42px;font-size:1.5rem;line-height:1.3}
.sheet-grab{width:100%;height:24px;margin-bottom:4px;touch-action:none;cursor:grab;display:grid;place-items:center}
.sheet-grab:before{content:'';width:36px;height:4px;border-radius:4px;background:var(--muted);opacity:.5}
.modal-close{top:10px}
.gallery-track{width:100%;height:100%;will-change:transform;touch-action:pan-y}
.gallery-track>.photo,.gallery-track>.locked-cover{width:100%;height:100%;object-fit:cover;animation:none}
.gallery-thumbs{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;max-width:calc(100% - 90px);padding-bottom:4px}
.gallery-thumbs button{flex:0 0 57px;min-width:44px;min-height:44px}
.gallery-index{pointer-events:none}
button[aria-busy=true]{cursor:progress}
button:active:not(:disabled){transition:none}
.welcome-collage .door-hero{aspect-ratio:941/675}
.welcome-collage .welcome-title{position:static;margin:0;padding:8px 20px 0;color:var(--ink);font-size:clamp(2rem,8.7vw,2.5rem);line-height:1.1;letter-spacing:-.04em;font-weight:800}
.welcome-collage .welcome-title span{color:var(--green);display:inline}
.welcome-collage .welcome-title span:before{display:none}
.welcome-collage .auth-form .door-field input{font-size:1rem}
.welcome-collage .auth-form label{font-size:.875rem}
.welcome-collage .welcome-recover{font-size:.8125rem;text-align:center;line-height:1.5;min-height:0;margin-top:12px}
:root[data-theme=dark] .welcome-collage{background:var(--bg)}
:root[data-theme=dark] .welcome-collage .auth-form label,:root[data-theme=dark] .welcome-collage .welcome-switch,:root[data-theme=dark] .welcome-collage .welcome-switch button,:root[data-theme=dark] .welcome-collage .welcome-recover{color:var(--ink)}
:root[data-theme=dark] .welcome-collage .door-field{background:var(--soft)}
:root[data-theme=dark] .welcome-collage .door-field input,:root[data-theme=dark] .welcome-collage .door-eye{color:var(--ink)}
:root[data-theme=dark] .welcome-collage .door-field input::placeholder{color:var(--muted)}
:root[data-theme=dark] .welcome-collage .welcome-submit{background:var(--green);color:var(--bg)}
@media(min-width:800px){
 .app{max-width:960px;border-radius:24px 24px 0 0}
 main{padding-left:24px;padding-right:24px}
 .bottom-nav{width:min(100%,960px)}
 .search-page .results-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
 .results-list .listing{margin:0}
 .results-list .listing.compact .listing-open{display:block}
 .results-list .listing.compact .listing-media{height:210px;min-height:0;border-radius:0}
 .results-list .listing.compact .listing-body{padding:14px 14px 44px}
 .results-list .listing.compact .listing-media>.photo{height:100%;min-height:0}
 .results-list .listing.compact .save-heart{background:var(--paper)}
 .detail-view{margin:0 auto;max-width:700px}
 .app.guest{max-width:480px}
 .modal-sheet{width:min(92vw,560px)}
 .gallery-track{border-radius:24px 24px 0 0;overflow:hidden}
}
@media(prefers-contrast:more){
 :root{--muted:#374234;--border:#52634a}
 :root[data-theme=dark]{--muted:#e5efde;--border:#b5cda2}
 button,input,textarea,select,.listing,.modal-sheet{border:1px solid var(--muted)}
}
@media(prefers-reduced-transparency:reduce){.modal-overlay{background:#152515ed}.modal-sheet,.bottom-nav,.detail-actions{background:var(--bg);backdrop-filter:none}}
@media(prefers-reduced-motion:reduce){.gallery-track{will-change:auto}.modal-sheet,.modal-overlay{animation:none}.sheet-grab{touch-action:none}}
.listing.compact .locked-cover b{font-size:.8125rem}
.listing.compact .locked-cover span{font-size:.75rem}
.welcome-collage .auth-form .door-field input::placeholder{color:#61675c;opacity:1}
.gallery-track{user-select:none;-webkit-user-select:none}
main p,main h1,main h2,main h3,.profile-badge,.history-item{overflow-wrap:anywhere}
.bottom-nav>button{min-width:0;flex:1;padding-left:4px;padding-right:4px}
.bottom-nav>button span{overflow-wrap:anywhere}
.detail-body>.price{overflow-wrap:anywhere}
.detail-actions .is-saved svg{fill:var(--green);color:var(--green)}
.rental-costs{margin:24px 0;padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:18px}.rental-costs h2,.profile-section-title{font-size:1.125rem;line-height:1.4;margin:24px 0 12px}.rental-costs h2{margin-top:0}.rental-costs dl{margin:0}.rental-costs dl>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}.rental-costs dd{margin:0;text-align:right;font-weight:650}.rental-costs dt{flex:1}.rental-costs .hint{margin-bottom:0}[data-extra-filters]{display:grid;gap:16px}
.catalog-labels{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0;font-size:.8125rem;color:var(--muted)}
.new-listing{background:var(--soft);color:var(--green);border-radius:8px;padding:3px 8px;font-weight:700}
.card-cost{display:block;margin-top:10px;padding-right:30px;font-size:.8125rem;line-height:1.5;color:var(--muted)}
.listing .hide-home{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;padding:10px 16px;border-top:1px solid var(--border);font-size:.8125rem}
.hide-home svg{width:18px;height:18px}
.new-toggle{min-height:44px;margin:8px 0}
.new-toggle[aria-pressed=true]{background:var(--soft);border-radius:12px;color:var(--green);font-weight:700;padding:10px 14px}
.favorite-workspace{margin:16px 0;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--paper)}
.favorite-workspace label{display:block;margin-bottom:12px}.favorite-workspace select{width:100%;margin-top:6px;min-height:44px}
.favorite-tools{display:flex;align-items:stretch;border-top:1px solid var(--border);gap:8px;padding:8px}
.favorite-tools button{flex:1;min-height:44px;font-size:.875rem;line-height:1.4;border-radius:10px;padding:8px}
.favorite-tools button small{display:block;margin-top:5px;line-height:1.4}
.favorite-tools [aria-pressed=true]{background:var(--soft);color:var(--green);font-weight:700}
.favorite-tools button:active{opacity:.7}.comparison-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:16px}
.comparison-table{border-collapse:collapse;min-width:100%;font-size:.875rem;line-height:1.5;background:var(--paper)}
.comparison-table td,.comparison-table th{min-width:160px;max-width:260px;padding:14px;vertical-align:top;text-align:left;border-bottom:1px solid var(--border);overflow-wrap:anywhere}
.comparison-table th:first-child{min-width:120px;max-width:160px}.comparison-table thead{background:var(--soft)}
.comparison-table th .text-button{display:block;min-height:44px;margin-top:8px}.comparison-table tbody th{font-weight:500}
.search-alternatives{margin:16px 0;padding:16px;border:1px solid var(--border);border-radius:16px}.search-alternatives h2{font-size:1.125rem;line-height:1.4}.search-alternatives button{margin:8px 0;white-space:normal}
.availability-label{display:block;margin-top:10px;padding-right:24px;color:var(--muted);font-size:.8125rem;line-height:1.5}
.availability-label[data-availability=check]{font-weight:650;color:var(--ink)}.availability-label[data-availability=confirmed]{color:var(--green)}
@media(prefers-reduced-motion:no-preference){.favorite-tools button{transition:background-color 120ms ease,opacity 120ms ease}}
@media(prefers-contrast:more){.favorite-tools button,.comparison-scroll{border:1px solid currentColor}}

.comparison-table th:first-child{min-width:140px;overflow-wrap:normal}
