:root{--ink:#203c33;--text:#203c33;--muted:#617269;--green:#164c3b;--lime:#dcebdc;--cream:#f7f8f4;--paper:#fff;--line:#dfe7df;--gold:#8c5b16;--red:#a33c36;--shadow:0 5px 18px #244b3610;--radius:14px;font-family:system-ui,-apple-system,"PingFang TC","Noto Sans TC","Microsoft JhengHei",sans-serif}body{background:var(--cream);padding-bottom:30px}.topbar{display:none}.container{max-width:1184px;padding-inline:28px}.hero{padding:24px 0 18px}.hero-row{grid-template-columns:1fr auto;gap:20px;align-items:center}.hero .eyebrow{font-size:11px;color:var(--muted);letter-spacing:.06em}.hero h1{font-size:28px;font-weight:750;line-height:1.2;letter-spacing:-.035em;margin:6px 0}.hero p{font-size:13px;line-height:1.6;max-width:500px;color:var(--muted);margin:6px 0 0}.summary{padding:10px 0;min-width:300px;border:1px solid var(--line);background:#fff;border-radius:11px}.summary strong{font-size:24px}.summary span{font-size:11px}.notice{font-size:12px;line-height:1.6;margin-top:15px;padding:9px 11px;gap:8px;border-radius:9px;background:#f0f3eb;border:1px solid #e1e6d6;color:#536450}.notice svg{width:16px;height:16px}.notice .date-label{font-size:10px;white-space:nowrap}.notice strong{font-weight:600}#public-freshness{font-size:12px;padding:0 0 15px;margin:0;color:var(--muted);border:0;background:transparent}.workspace{grid-template-columns:244px minmax(0,1fr);gap:20px}.filter-shell{border-radius:12px;border:1px solid var(--line);box-shadow:none;background:#fff;top:16px}.filter-shell>summary{padding:15px 17px;font-size:14px}.filter-body{padding:16px 17px}.section-label,.field,.mortgage-label{font-size:12px;letter-spacing:0;color:#445e50}.filter-group{margin-top:15px}.filter-body input,.filter-body select{font-size:14px;min-height:42px;border-radius:8px;border-color:#d4ded2}.segmented{border-radius:9px;background:#f0f3eb;padding:3px;gap:2px}.segmented button{font-size:13px;min-height:38px;border-radius:6px}.segmented button.active{background:var(--green);color:#fff;box-shadow:none}.divider{margin:18px -17px}.help,.mortgage-note{font-size:11px;line-height:1.65}.field-row{gap:8px}.input-wrap span{top:11px;font-size:12px}.checkline{font-size:12px;line-height:1.6;min-height:30px}.checkline input{min-height:0}.results-head{gap:10px;margin-bottom:12px}.results-head h2{font-size:20px}.result-count{font-size:22px}.results-kicker{font-size:11px;letter-spacing:.05em}.sort{min-height:40px;font-size:12px;width:155px;border:1px solid var(--line);background:#fff;border-radius:8px}.view-switch{background:#eaf0e7}.view-switch button{min-width:40px;min-height:40px}.search-line{gap:8px;margin-bottom:12px;flex-wrap:wrap}.search-bar{min-height:44px;border-radius:9px;background:#fff;border-color:var(--line)}.search-bar input{font-size:14px;min-height:42px}.search-line .button{font-size:12px;min-height:44px;padding:8px 11px}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.unit-card{border:1px solid var(--line);border-radius:13px;box-shadow:none;background:#fff;padding:15px;transition:border-color .18s,box-shadow .18s}.unit-card:hover{border-color:#b7cbbc;transform:none;box-shadow:var(--shadow)}.unit-card .card-top{margin-bottom:8px}.estate-name{font-size:15px;font-weight:700}.district{font-size:11px;color:var(--muted)}.unit-id{font-size:12px;color:#425e4d;margin-top:5px}.card-core{padding-top:11px}.area{font-size:27px}.area small{font-size:11px}.price{font-size:18px}.price-sub{font-size:10px}.badge{font-size:10px;padding:3px 6px;border-radius:5px}.badge.available{background:#edf4eb;color:#356248}.badge.selected{background:#fff5e3;color:#8c5b16}.badge.sold{background:#f1f3ef;color:#62766b}.badge.resale{background:#f0f2ed;color:#647268}.status-date{font-size:10px;color:var(--muted);line-height:1.6}.card-note{font-size:11px;line-height:1.6;color:var(--muted);padding:8px 0}.payment-label{font-size:10px}.payment{font-size:14px;color:var(--green)}.card-actions{gap:7px}.detail-btn,.compare-btn{min-height:42px;font-size:12px;padding:9px 8px;border-radius:7px}.fav-btn{min-width:40px;min-height:40px;color:#80917f}.fav-btn.active{color:#a97b21;background:#fff5df}.unit-card.selected{border-color:#6c9b7b;box-shadow:0 0 0 1px #6c9b7b}.floor-mark{opacity:.6}.coverage-note,.comparison-foot{font-size:12px;line-height:1.7;color:var(--muted)}.missing-data-note{font-size:12px}.empty{padding:35px 20px;border-color:var(--line);background:#fff;border-radius:12px}.empty h3{font-size:20px}.empty p{font-size:13px;color:var(--muted)}.button{min-height:44px;border-radius:8px;font-size:13px}.button.primary{background:var(--green);border-color:var(--green)}.load-more{min-height:44px;font-size:13px}.compare-bar{border-radius:12px;background:#fff;border:1px solid var(--line);box-shadow:0 5px 25px #173d3226}.compare-pill{font-size:12px}.compare-bar-label{font-size:11px}.modal{border-radius:14px;border:1px solid var(--line);box-shadow:0 15px 60px #173d322b;background:var(--cream);color:var(--text)}.modal-head{padding:18px 22px;background:#fff;border-bottom:1px solid var(--line)}.modal-head h2{font-size:23px}.modal-head p{font-size:12px}.modal-head .eyebrow{font-size:10px}.close-btn{width:44px;height:44px;min-width:44px;border:1px solid var(--line);border-radius:50%;background:#fff}.detail-body{padding:20px 22px}.detail-metrics{background:#edf4eb;border:1px solid var(--line);border-radius:11px;padding:15px}.detail-metrics .metric strong{font-size:27px}.detail-metrics .metric span{font-size:11px}.detail-status{padding:12px;font-size:12px;line-height:1.7;border-radius:9px}.detail-status.available{background:#edf4eb;color:#356248;border-color:#d7e5d5}.detail-status.sold{background:#f1f3ef;color:#62766b;border-color:#dfe7df}.detail-section{margin-top:17px}.detail-section h3{font-size:15px}.detail-section .help{font-size:11px}.datum{padding:10px 12px}.datum dt{font-size:11px}.datum dd{font-size:13px}.assessment-row{font-size:12px;line-height:1.65;border-radius:8px;padding:10px;gap:9px}.assessment-row p,.assessment-row em{color:var(--muted);font-size:12px}.reason-box{font-size:12px;line-height:1.7;background:#f0f3ed;color:#536450;border-color:#9ab39a}.reason-box strong{color:var(--ink)}.mortgage-card{padding:15px;background:var(--green);border-radius:10px}.mortgage-card dt{font-size:11px;color:#cfddd2}.mortgage-card dd{font-size:23px}.mortgage-card small{font-size:11px;color:#cfddd2}.detail-actions{margin-top:18px}.link-list a{font-size:12px;min-height:40px;border-radius:7px;background:#fff;border-color:var(--line)}.sources-body{padding:18px 22px}.sources-body p,.sources-body li{font-size:13px;line-height:1.7;color:var(--muted)}.sources-body h3{font-size:15px}.source-estate strong{font-size:13px}.footer{padding:20px 0;font-size:11px;border-top:1px solid var(--line);margin-top:24px}.footer .brandmark{display:none}.toast{background:var(--green);font-size:13px}.ui-icon{width:22px;height:22px;display:block}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #bb8d32;outline-offset:3px}
@media(max-width:1100px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{grid-template-columns:225px minmax(0,1fr);gap:17px}.container{padding-inline:22px}}
@media(max-width:900px){.workspace{grid-template-columns:1fr}.filter-shell{position:static}.filter-shell>summary{padding:12px 15px}.filter-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 17px}.filter-group{margin:0}.summary{min-width:260px}.hero h1{font-size:26px}.modal-head{padding:17px}.detail-body{padding:17px}.filter-body .mortgage-group{grid-column:1/-1}.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.container{padding-inline:16px}.hero{padding:17px 0 14px}.hero-row{grid-template-columns:1fr;gap:12px}.hero h1{font-size:25px}.hero .eyebrow{font-size:10px}.hero p{font-size:12px;line-height:1.55;margin-top:4px}.summary{padding:10px 0;min-width:0}.summary strong{font-size:22px}.summary span{font-size:10px}.notice{margin-top:12px;padding:8px 9px;gap:7px;font-size:11px;line-height:1.55}.notice .date-label{display:none}#public-freshness{font-size:11px;padding-bottom:12px;line-height:1.5}.filter-shell>summary{min-height:46px;font-size:14px}.filter-body{grid-template-columns:1fr 1fr;padding:14px;gap:14px}.filter-body label,.field,.section-label,.checkline,.help,.mortgage-note{font-size:12px}.filter-body input,.filter-body select{font-size:14px;min-height:44px}.checkline input{min-height:0}.kind-group{grid-column:1/-1}.segmented button{min-height:40px;font-size:14px}.filter-group:has(#include-unknown){grid-column:1/-1}.cards{grid-template-columns:1fr;gap:11px}.unit-card{padding:15px}.unit-id{font-size:14px}.estate-name{font-size:17px}.district{font-size:12px}.unit-card .area{font-size:29px}.unit-card .price{font-size:20px}.card-note{font-size:12px}.badge,.status-date{font-size:11px}.price-sub{font-size:11px}.payment-label{font-size:11px}.payment{font-size:15px}.detail-btn,.compare-btn{font-size:14px;min-height:44px}.fav-btn{min-width:44px;min-height:44px}.search-line .button{font-size:12px}.search-bar input{font-size:14px}.results-head{gap:8px}.results-head h2{font-size:20px}.sort{font-size:12px;width:142px;min-height:42px}.coverage-note{font-size:11px}.compare-bar{bottom:calc(72px + env(safe-area-inset-bottom));padding:10px 12px}.compare-pill{font-size:11px}.modal{border-radius:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;padding:0;border:0}.modal-head{position:sticky;top:0;z-index:2;padding:16px;background:#fff}.modal-head h2{font-size:21px}.modal-head .close-btn{min-height:44px;min-width:44px}.detail-body{padding:16px}.detail-metrics .metric strong{font-size:27px}.detail-metrics .metric span{font-size:11px}.detail-status{font-size:12px}.datum dt{font-size:11px}.datum dd{font-size:13px}.detail-section h3{font-size:15px}.unit-disclosure>summary{font-size:14px;min-height:44px}.link-list a{font-size:12px;min-height:44px;display:flex;align-items:center}.assessment-row p,.assessment-row em{font-size:12px}.detail-actions>.button{font-size:14px;min-height:44px}.sources-body{padding:16px}.sources-body p,.sources-body li{font-size:13px}.toast{font-size:12px}.footer{padding-bottom:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* Preserve the page position behind native dialogs and align card insets. */
body:has(dialog[open]){overflow:hidden}.unit-card{padding:0}.unit-card .card-top{padding:14px 15px 0;margin-bottom:0}.unit-card .unit-id{padding-inline:15px;margin-top:8px}.unit-card .card-core{padding:12px 15px}.unit-card .area-number{font-size:30px}.unit-card .price-line{padding:0 15px 12px}.unit-card .card-note{padding:9px 15px}.unit-card .card-bottom{padding:12px 15px}.unit-card .card-actions{padding:0 15px 14px}.unit-card .status-date{padding-inline:0}.unit-card .fav-btn{align-items:center;justify-content:center}

.help,.mortgage-note,.price-line span,.unit-card .unit-id span,.floor-mark span{color:var(--muted)}.fav-btn{border-radius:8px}
