:root{--color-primary:#12766e;--color-primary-light:#2f8c82;--color-primary-dark:#245f8d;--color-text:#2c3e50;--color-text-dark:#333;--color-text-secondary:#555;--color-text-muted:#6c757d;--color-text-light:#767676;--color-bg-page:#f4f7f6;--color-bg-surface:#f8f9fa;--color-bg-white:#fff;--color-border:#e9ecef;--color-border-light:#dee2e6;--color-border-input:#e1e5e9;--color-success:#16a34a;--color-success-hover:#15803d;--color-danger:#dc2626;--color-danger-hover:#b91c1c;--color-warning:#f59e0b;--color-info:#3b82f6;--color-sponsor:#dc2626;--color-favorites:#ec4899;--brand-lockup-gap:10px;--brand-lockup-icon-compact:34px;--brand-lockup-text-compact:22px;--brand-lockup-icon-compact-mobile:30px;--brand-lockup-text-compact-mobile:18px;--brand-lockup-icon-large:42px;--brand-lockup-text-large:28px;--brand-lockup-icon-large-mobile:34px;--brand-lockup-text-large-mobile:22px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--section-px:1.5rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:20px;--radius-2xl:24px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 15px #0000001a;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.35s ease;--blur-glass:blur(16px)}*{box-sizing:border-box;margin:0;padding:0}a{color:var(--color-primary);transition:color var(--transition-normal);text-decoration:none}a:hover{color:var(--color-primary);text-decoration:underline}a:visited,a:active{color:var(--color-primary)}body{color:var(--color-text);background-color:var(--ds-page,var(--color-bg-page));min-height:100vh;font-family:Microsoft JhengHei,PingFang TC,-apple-system,BlinkMacSystemFont,Segoe UI,Heiti TC,Noto Sans TC,Noto Sans,Roboto,sans-serif;line-height:1.6}body.market-tab,body.raw-data-tab,body.permits-tab,body.developer-tab,body.sales-ranking-tab{background-color:#f4f7f6}@media (width>=768px){body{background-color:var(--ds-page,var(--color-bg-page))}body.market-tab,body.raw-data-tab,body.permits-tab,body.developer-tab,body.sales-ranking-tab{background-color:#f4f7f6}.header h1{color:var(--color-text-dark)}.user-dropdown-toggle{-webkit-backdrop-filter:var(--blur-glass)!important;box-shadow:var(--shadow-md)!important;color:var(--color-text-secondary)!important;background:#ffffffe6!important;border:1px solid #0000001a!important}.user-dropdown-toggle:hover{background:#fffffff2!important;border-color:#00000026!important}.user-dropdown-toggle .user-name-text{color:var(--color-text-secondary)!important;text-shadow:none!important}}.container{flex-direction:column;max-width:1200px;min-height:100vh;margin:0 auto;padding:0 1rem;display:flex}body.raw-data-tab .container{max-width:1440px;padding-left:16px;padding-right:16px}.header{color:#fff;flex-direction:column;padding:2rem 0;display:flex;position:relative}.header-content{justify-content:space-between;align-items:center;gap:2rem;display:flex;position:relative}.title-section{text-align:left}.header-actions{align-items:center;gap:1rem;display:flex}.header-btn{border-radius:var(--radius-xl);transition:transform var(--transition-normal);color:#fff;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.95rem;font-weight:500;text-decoration:none;display:flex}.header-btn i{font-size:1rem}.header-btn:hover{text-decoration:none;transform:translateY(-2px)}.header-btn:visited{color:#fff}.register-btn,.register-btn:visited{box-shadow:var(--shadow-sm);color:var(--color-text-secondary);background:#ffffffe6;border:1px solid #0000001a}.register-btn:hover{box-shadow:var(--shadow-md);color:var(--color-text);background:#fff;border-color:#00000026}.search-btn,.search-btn:visited{box-shadow:var(--shadow-sm);color:#555;background:#ffffffe6;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.6rem;display:flex}.search-btn:hover{box-shadow:var(--shadow-md);color:#333;background:#fff}.sponsor-btn{background:linear-gradient(135deg, var(--color-sponsor), var(--color-danger-hover));border:2px solid var(--color-sponsor);color:#fff;font-weight:600}.sponsor-btn:hover{background:linear-gradient(135deg, var(--color-danger-hover), #991b1b);border-color:var(--color-danger-hover);box-shadow:var(--shadow-lg);color:#fff}.logout-btn{border:2px solid #ffffff80;font-weight:500;color:var(--color-text)!important;background:#fff!important}.logout-btn:hover{border-color:#fff;box-shadow:0 4px 15px #ffffff4d;color:var(--color-text)!important;background:#ffffffe6!important}.logout-btn:visited{color:var(--color-text)!important}.header-logout-btn{border-radius:var(--radius-xl);-webkit-backdrop-filter:var(--blur-glass) saturate(180%);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);box-shadow:var(--shadow-md);background:#ffffffd9;border:1px solid #0000001a;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.9rem;font-weight:500;display:flex}.header-logout-btn:hover{color:var(--color-text-dark);background:#fffffff2;border-color:#00000026;transform:translateY(-1px);box-shadow:0 4px 12px #0000001f}.header-logout-btn i{font-size:.85rem}.favorites-btn{background:linear-gradient(135deg, var(--color-favorites), #db2777);border:2px solid var(--color-favorites);color:#fff;font-weight:500}.favorites-btn:hover{background:linear-gradient(135deg,#db2777,#be185d);border-color:#db2777;box-shadow:0 4px 15px #ec489966}.favorites-btn:visited{color:#fff}.user-dropdown{position:relative}.user-dropdown-toggle{cursor:pointer;color:#fff;letter-spacing:.5px;transition:background var(--transition-fast);background:#fff3;border:1px solid #ffffff4d;border-radius:20px;align-items:center;gap:.4rem;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;display:flex}.user-dropdown-toggle:hover{background:#ffffff59}.user-dropdown-toggle .user-name-text{color:#fff;text-shadow:0 1px 2px #0003}.user-dropdown-toggle .fa-caret-down{transition:transform var(--transition-fast);font-size:.75rem}.user-dropdown-menu.show+.user-dropdown-toggle .fa-caret-down,.user-dropdown-toggle[aria-expanded=true] .fa-caret-down{transform:rotate(180deg)}.user-dropdown-menu{box-shadow:var(--shadow-lg);z-index:1000;background:#fff;border-radius:10px;min-width:160px;display:none;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}.user-dropdown-menu.show{display:block}.dropdown-item{width:100%;color:var(--color-text-dark);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;align-items:center;gap:.6rem;padding:.7rem 1rem;font-size:.9rem;text-decoration:none;display:flex}.dropdown-item:hover{background:#f5f5f5}.dropdown-item:visited{color:var(--color-text-dark)}.dropdown-item i{text-align:center;width:1.2em;color:var(--color-text-secondary)}.home-favicon{vertical-align:middle;width:auto;height:1em;margin-right:.3em}.header h1{margin-bottom:.5rem;font-size:2.5rem;font-weight:700}.header .subtitle{opacity:.9;margin-bottom:1.5rem;font-size:1.1rem;font-weight:300}.main-nav{margin-top:1.5rem}.nav-tabs{background:var(--color-bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid #0000001a;justify-content:center;gap:.5rem;margin:0;padding:.5rem;list-style:none;display:flex}.nav-tab{text-align:center;border-radius:var(--radius-md);max-width:200px;transition:background var(--transition-normal), transform var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal);border:2px solid var(--color-border);background:#fff;flex:1}.nav-tab a{color:var(--color-primary-dark);cursor:pointer;padding:1rem 1.5rem;font-weight:700;text-decoration:none;transition:inherit;display:block}.nav-tab:hover{border-color:var(--color-primary-dark);background:#fff;transform:translateY(-2px)}.nav-tab:hover a{color:var(--color-primary-dark)}.nav-tab.active{background:var(--color-primary-dark);border:2px solid var(--color-primary-dark);box-shadow:0 4px 15px #245f8d4d}.nav-tab.active a{color:#fff;font-weight:600}.nav-tab a i{margin-right:.5rem;font-size:1.1rem}.loading{color:#fff;flex-direction:column;justify-content:center;align-items:center;padding:4rem 0;display:flex}.loading-spinner{border:4px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:50px;height:50px;margin-bottom:1rem;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}main{flex:1;margin:0;padding:2rem 0}.tab-content{display:none}.tab-content.active{animation:.3s ease-in-out fadeIn;display:block}body.market-tab #main-content>.tab-content.active,body.raw-data-tab #main-content>.tab-content.active,body.permits-tab #main-content>.tab-content.active,body.developer-tab #main-content>.tab-content.active,body.sales-ranking-tab #main-content>.tab-content.active{padding-top:18px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.filter-panel{background:var(--color-bg-surface);padding:1.5rem var(--section-px);border-radius:var(--radius-lg);margin-bottom:2rem}.filter-panel h2{color:var(--color-text);margin-bottom:1.5rem;font-size:1.5rem}.filter-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.filter-row{grid-template-columns:1fr 2fr;gap:1rem;margin-bottom:1rem;display:grid}.filter-group{flex-direction:column;display:flex}.filter-group label{color:var(--color-text-secondary);margin-bottom:.5rem;font-size:.9rem;font-weight:600}.filter-group select,.filter-group input{border:2px solid var(--color-border-input);border-radius:var(--radius-md);transition:border-color var(--transition-fast);padding:.75rem;font-size:1rem}.filter-group select:focus-visible,.filter-group input:focus-visible{border-color:var(--color-primary-light);outline:none}.filter-group select[multiple]{min-height:120px}.filter-actions{justify-content:center;gap:1rem;margin-top:1.5rem;display:flex}.btn-primary,.btn-secondary{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast);border:none;align-items:center;gap:.5rem;padding:.75rem 2rem;font-size:1rem;font-weight:600;display:flex}.btn-primary{background:var(--color-primary-light);color:#fff}.btn-primary:hover{background:var(--color-primary);transform:translateY(-2px)}.btn-secondary{background:var(--color-text-muted);color:#fff}.btn-secondary:hover{background:#5a6268;transform:translateY(-2px)}.market-overview{margin-bottom:2rem}.market-overview h2{color:var(--color-text);margin-bottom:1.5rem;font-size:1.5rem}.cards-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:1rem;display:grid}.metric-card{background:linear-gradient(135deg, var(--color-primary-light) 0%, var(--color-primary) 100%);border-radius:var(--radius-lg);color:#fff;text-align:center;box-shadow:var(--shadow-lg);transition:transform var(--transition-fast);padding:1.5rem}.metric-card:hover{transform:translateY(-5px)}.metric-icon{opacity:.9;margin-bottom:1rem;font-size:2.5rem}.metric-content h3{margin-bottom:.5rem;font-size:2rem;font-weight:700}.metric-content p{opacity:.9;font-size:.9rem}.title-badge{background:linear-gradient(135deg, var(--color-primary-light) 0%, var(--color-primary) 100%);color:#fff;border-radius:var(--radius-xl);vertical-align:middle;margin-left:.8rem;padding:.3rem .8rem;font-size:.9rem;font-weight:600;display:inline-block}.age-analysis h2{color:var(--color-text);margin-bottom:1.5rem;font-size:1.5rem}.chart-container{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:#fff;margin-bottom:2rem;padding:1rem}.footer{background:var(--color-text,#2c3e50);color:#ffffffa6;letter-spacing:.01em;border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin-top:1.5rem;font-size:.8rem}.footer-inner{max-width:960px;padding:1rem var(--section-px,1.5rem) .75rem;flex-direction:column;align-items:center;gap:.4rem;margin:0 auto;display:flex}.footer-main{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;display:flex}.footer-logo{color:#ffffffeb;letter-spacing:.04em;padding:.3rem 0;font-size:.9rem;font-weight:600}.footer-divider{background:#fff3;width:1px;height:12px}.footer-link{border-radius:var(--radius-full,9999px);color:#ffffffb8;transition:background var(--transition-fast,.15s ease), color var(--transition-fast,.15s ease);align-items:center;gap:.3rem;padding:.3rem .65rem;font-size:.78rem;text-decoration:none;display:inline-flex}.footer-link i{opacity:.7;font-size:.72rem}@media (hover:hover){.footer-link:hover{color:#fffffff2;background:#ffffff1a;text-decoration:none}.footer-link:hover i{opacity:1}}.footer-link:visited,.footer-link:active{color:#ffffffb8}.footer-meta{color:#ffffff61;font-size:.72rem}@media (width<=600px){.footer-inner{padding:.75rem var(--space-4,1rem) .6rem;gap:.3rem}.footer-link{padding:.25rem .5rem;font-size:.74rem}}.mobile-hamburger{justify-self:start;display:none}.sidebar-divider{border-bottom:1px solid #00000014;margin-bottom:.5rem;padding-bottom:.5rem}.tab-btn{color:var(--color-text);border:2px solid var(--color-border);cursor:pointer;transition:border-color var(--transition-normal), background var(--transition-normal), color var(--transition-normal), box-shadow var(--transition-normal);white-space:nowrap;border-radius:var(--radius-md);background:#fff;outline:none;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;display:flex}.tab-btn:hover{border-color:var(--color-primary);background:#12766e14}.tab-btn.active{color:var(--color-text);border-color:var(--color-primary);box-shadow:var(--shadow-sm);background:#fff;font-weight:600}.tab-btn.active i{color:var(--color-primary)}@media (width<=768px){.tab-btn{justify-content:center;padding:.6rem 1rem;font-size:.9rem}}.sub-nav{margin:2rem 0}.sub-nav-tabs{gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.sub-tab-content{border-radius:var(--radius-lg);padding:1.5rem var(--section-px);border:1px solid var(--color-border);background:#fff;margin-top:.5rem;margin-bottom:2rem;display:none}.sub-tab-content.active{display:block}section>.sub-tab-content{--section-px:.5rem}.sub-tab-content .raw-data-section,.raw-data-section .raw-data-table-section{--section-px:0}.sub-tab-content h3{color:var(--color-text);align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:1.3rem;display:flex}.zone-label-marker{transition:opacity .12s;pointer-events:none!important;background:0 0!important;border:none!important}.zone-label-marker.is-collapsed{display:none!important}.zone-label-text{color:var(--zone-label-color,var(--color-text));white-space:nowrap;text-align:center;text-shadow:0 1px 1px #fffffff2,1px 0 1px #fffffff2,0 -1px 1px #fffffff2,-1px 0 1px #fffffff2;font-size:13px;font-weight:600;line-height:1.25;pointer-events:none!important}.permit-link{color:var(--color-primary-light);transition:color var(--transition-normal);font-weight:500;text-decoration:none}.permit-link:hover{color:var(--color-primary);text-decoration:underline}.input-group label{color:var(--color-text);margin-bottom:.5rem;font-weight:500;display:block}.input-group input{border:2px solid var(--color-border-input);border-radius:var(--radius-md);width:100%;transition:border-color var(--transition-normal);padding:.75rem;font-size:1rem}.input-group input:focus-visible{border-color:var(--color-primary-light);outline:none;box-shadow:0 0 0 3px #2f8c821a}.button-group{gap:.5rem;display:flex}.tooltip{cursor:help;position:relative}.tooltip:hover:after{content:attr(data-tooltip);background:var(--color-text-dark);color:#fff;border-radius:var(--radius-sm);white-space:nowrap;z-index:1000;padding:.5rem;font-size:.8rem;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.checkbox-container{border:2px solid var(--color-border-input);border-radius:var(--radius-md);min-height:48px;max-height:300px;padding:.5rem;overflow-y:auto}.search-input-wrapper{margin-bottom:.75rem;position:relative}.zone-search-box{border:2px solid var(--color-border-input);border-radius:var(--radius-md);width:100%;transition:border-color var(--transition-fast);box-sizing:border-box;outline:none;padding:.6rem .8rem;font-size:.95rem}.zone-search-box:focus-visible{border-color:var(--color-primary-light);box-shadow:0 0 0 3px #2f8c821a}.zone-search-box::placeholder{color:var(--color-text-light);font-size:.9rem}.select-all-container{border-bottom:1px solid var(--color-border-input);margin-bottom:.5rem;padding-bottom:.5rem}.checkbox-list{grid-template-columns:repeat(3,1fr);gap:.5rem .8rem;display:grid}.checkbox-label{cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--transition-fast);align-items:center;padding:.3rem .5rem;font-size:.9rem;display:flex}.checkbox-label:hover{background-color:var(--color-bg-surface)}.checkbox-label input[type=checkbox]{cursor:pointer;flex-shrink:0;width:16px;height:16px;margin:0 .5rem 0 0}.checkmark{position:relative}.filter-row-fullwidth{grid-template-columns:1fr!important}.error-message{color:var(--color-danger);border-radius:var(--radius-md);border-left:4px solid var(--color-danger);background:#ffebee;margin:1rem 0;padding:1rem}.success-message{color:var(--color-success);border-radius:var(--radius-md);border-left:4px solid var(--color-success);background:#e8f5e8;margin:1rem 0;padding:1rem}.app-notice-message{border-radius:var(--radius-md);color:#1d4ed8;background:#eff6ff;border-left:4px solid #2563eb;align-items:center;gap:.5rem;margin:1rem 0;padding:.85rem 1rem;font-size:.95rem;line-height:1.5;display:flex}.app-notice-warning{color:#92400e;background:#fffbeb;border-left-color:#d97706}.app-notice-success{border-left-color:var(--color-success);color:var(--color-success);background:#e8f5e8}.loading-row,.error-row{text-align:center;color:var(--color-text-muted);font-style:italic;padding:2rem!important}.error-row{color:var(--color-danger);font-weight:500}.age-charts-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;margin:1.5rem 0;display:grid}.chart-item{border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:1px solid var(--color-border);background:#fff;padding:1.5rem}.chart-item h3{color:var(--color-text);text-align:center;border-bottom:2px solid var(--color-primary-light);margin:0 0 1rem;padding-bottom:.5rem;font-size:1.1rem;font-weight:600}.chart-item canvas{max-width:100%;width:100%!important;height:350px!important}.table-container{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:#fff;margin-bottom:2rem;padding:.25rem;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-family:Microsoft JhengHei,PingFang TC,-apple-system,BlinkMacSystemFont,Noto Sans TC,Noto Sans,sans-serif;font-size:.9rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--color-border-light);padding:.75rem}.data-table thead{background:linear-gradient(to right, var(--color-primary-light), var(--color-primary))}.data-table th{color:#fff;text-align:center;background:0 0;border:none;font-weight:600}.sortable-header{transition:background-color var(--transition-fast);-webkit-user-select:none;user-select:none}.sortable-header:hover{background-color:#ffffff1a}.sortable-header.active-sort{background-color:#ffffff26}.sort-indicator{opacity:.7;margin-left:5px;font-size:.8em;display:inline-block}.sortable-header:hover .sort-indicator{opacity:1}.data-table tbody tr:hover{background-color:var(--color-bg-surface)}.data-table td{text-align:center}.data-table td.numeric{text-align:center;font-family:Microsoft JhengHei,PingFang TC,-apple-system,BlinkMacSystemFont,Noto Sans TC,Consolas,Monaco,monospace,sans-serif}.data-table td.center-text{font-family:Microsoft JhengHei,PingFang TC,-apple-system,BlinkMacSystemFont,Noto Sans TC,Noto Sans,sans-serif;text-align:center!important}.data-table td:first-child,.data-table td:nth-child(2){text-align:left}.price-range-comparison,.presale-statistics{margin-bottom:2rem}.price-range-comparison h2,.presale-statistics h2{color:var(--color-text);margin-bottom:1.5rem;font-size:1.5rem}@media (width<=1024px){.checkbox-list{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.container{width:100%;max-width:100%;margin:0 auto;padding:0 .5rem}body.raw-data-tab .container{padding-left:10px;padding-right:10px}.header{text-align:center;padding:1.5rem 0;position:relative}.header h1{font-size:2rem}.header .subtitle{display:none}.header-content{grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;display:grid}.title-section{text-align:center;justify-self:center}.header-actions{display:none}.mobile-hamburger{z-index:1001;justify-self:start;display:block}.hamburger-btn{color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:transform var(--transition-normal), box-shadow var(--transition-normal);box-shadow:none;background:0 0;border:none;padding:12px 14px;font-size:1.2rem}.hamburger-btn:hover{box-shadow:none;transform:scale(1.1)}.hamburger-btn:active{transform:scale(1)}.main-nav{display:none}.nav-tab{max-width:none}.nav-tab a{padding:.8rem 1rem;font-size:.9rem}.nav-tab a i{margin-right:.3rem;font-size:1rem}main{width:100%;max-width:100%;margin:0;padding:.5rem 0}.tab-content>section,.tab-content>section>.sub-tab-content,.tab-content>section>[class*=-section],.sub-tab-content>[class*=-section]{padding-left:.25rem;padding-right:.25rem}.cards-grid{grid-template-columns:repeat(2,1fr);gap:1rem}.age-charts-grid{grid-template-columns:1fr;gap:1rem}.chart-item{padding:1rem}.chart-item h3{font-size:1rem}.chart-item canvas{height:250px!important}.table-container{margin:0;padding:0}.data-table{font-size:.8rem}.data-table th,.data-table td{padding:.5rem .25rem}.checkbox-list{grid-template-columns:1fr}.sub-nav-tabs{flex-flow:wrap;gap:.5rem;margin-bottom:.75rem}.sub-tab-content{border-radius:var(--radius-lg);padding-top:.75rem;padding-bottom:.75rem}}@media (width<=375px){.header{padding:1.5rem 0}.header-content{gap:.5rem}.header h1{font-size:1.8rem}.header .subtitle{display:none}.hamburger-btn{padding:10px 12px;font-size:1.1rem}.filter-panel{margin-bottom:1.5rem;padding:1rem}.filter-grid,.filter-row{grid-template-columns:1fr}.filter-actions{text-align:center;flex-direction:column}.btn-primary,.btn-secondary{width:100%;max-width:300px;margin:0 auto}.market-overview{text-align:center}.cards-grid{grid-template-columns:repeat(2,1fr);gap:1rem}.metric-card{text-align:center;padding:1.25rem 1rem}.metric-content h3{font-size:1.75rem}.metric-content p{font-size:.8rem}.table-container{margin:0 auto;padding:.5rem;overflow-x:auto}.data-table{width:100%;margin:0 auto;font-size:.8rem}.data-table th,.data-table td{padding:.5rem .25rem;font-size:.75rem}.chart-container{margin:0 auto;padding:.5rem}.market-overview h2,.age-analysis h2,.zone-comparison h2,.price-range-comparison h2,.presale-statistics h2{text-align:center;font-size:1.3rem}.mobile-layout{display:block!important}}@media (width>=769px) and (width<=1024px){.filter-grid,.cards-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1025px){.filter-grid,.cards-grid{grid-template-columns:repeat(4,1fr)}}body.map-fullscreen{margin:0;padding:0;overflow:hidden}body.map-fullscreen .container{max-width:100%;margin:0;padding:0}body.map-fullscreen .header,body.map-fullscreen .footer{display:none!important}body.map-fullscreen #main-content{margin:0;padding:0;display:block!important}body.map-fullscreen .map-analysis{margin:0;padding:0}body.map-fullscreen .map-analysis>h2{display:none}#map{z-index:1;box-shadow:none;border-radius:0;margin:0;top:0;left:0;width:100vw!important;height:100vh!important;position:fixed!important}#map[data-basemap=google] .leaflet-tile-pane,#map[data-basemap=osm] .leaflet-tile-pane{filter:saturate(.68)contrast(.9)brightness(1.06)}#map .marker-cluster-small{background-color:#5f7f7942}#map .marker-cluster-small div{color:#fff;background-color:#5f7f79}#map .marker-cluster-medium{background-color:#506b7847}#map .marker-cluster-medium div{color:#fff;background-color:#506b78}#map .marker-cluster-large{background-color:#4055634d}#map .marker-cluster-large div{color:#fff;background-color:#405563}.map-top-bar{z-index:1001;background:0 0;align-items:center;gap:12px;padding:12px 16px;display:flex;position:fixed;top:0;left:0;right:0}.map-logo{flex-shrink:0;width:auto;height:36px}.map-hamburger-btn{-webkit-backdrop-filter:blur(20px)saturate(180%);border-radius:var(--radius-lg);width:44px;height:44px;color:var(--color-text-dark);cursor:pointer;background:#fffc;border:1px solid #fff6;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;transition:background .25s,box-shadow .25s,transform .25s;display:flex;box-shadow:0 4px 16px #0000001a,inset 0 1px #ffffff80}.map-hamburger-btn:hover{background:#fffffff2;transform:translateY(-1px);box-shadow:0 6px 20px #0000001f,inset 0 1px #fff9}.map-hamburger-btn:active{transform:scale(.95)translateY(0)}.map-search-container{z-index:1002;flex:1;max-width:500px;position:relative}.map-search-input{-webkit-backdrop-filter:blur(20px)saturate(180%);border-radius:var(--radius-xl);width:100%;color:var(--color-text-dark);background:#fffc;border:1px solid #fff6;outline:none;padding:12px 16px 12px 44px;font-size:15px;transition:background .25s,border-color .25s,box-shadow .25s;box-shadow:0 4px 16px #0000001a,inset 0 1px #ffffff80}.map-search-input::placeholder{color:#888}.map-search-input:focus-visible{background:#fffffff2;border-color:#b7989180;box-shadow:0 6px 24px #0000001f,0 0 0 3px #b7989126,inset 0 1px #fff9}.map-search-icon{color:#888;pointer-events:none;font-size:16px;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.map-search-clear{cursor:pointer;width:24px;height:24px;color:var(--color-text-muted);z-index:2;background:#0000001a;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:12px;transition:background .2s,color .2s;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.map-search-clear:hover{color:var(--color-text-dark);background:#0003}.map-search-input.has-value{padding-right:44px}.map-search-suggestions{-webkit-backdrop-filter:blur(80px)saturate(180%);border-radius:var(--radius-lg);z-index:1001;background:#fffffff2;border:1px solid #fff6;max-height:400px;display:none;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 32px #0003,0 0 0 1px #ffffff1a}.map-search-suggestions.active{display:block}.search-suggestion-item{cursor:pointer;background:0 0;border-bottom:1px solid #0000000d;justify-content:flex-start;align-items:center;padding:16px 12px 16px 16px;transition:background .2s,transform .2s;display:flex}.search-suggestion-item:last-child{border-bottom:none}.search-suggestion-item:hover,.search-suggestion-item.selected{background:#0000000d;transform:translate(4px)}.search-suggestion-item .suggestion-name{text-overflow:ellipsis;white-space:nowrap;text-align:left;min-width:0;color:var(--color-text-dark);flex:1;margin-right:12px;font-size:16px;font-weight:500;line-height:1.5;overflow:hidden}.suggestion-type{border-radius:var(--radius-md);flex-shrink:0;padding:4px 8px;font-size:12px;font-weight:500;line-height:1.5}.suggestion-type.presale{background:var(--color-type-presale-soft);color:var(--color-type-presale)}.suggestion-type.completed{background:var(--color-type-completed-soft);color:var(--color-type-completed)}.search-history-header{border-bottom:1px solid #0000000d;justify-content:space-between;align-items:center;padding:12px 16px 8px;display:flex}.search-history-header span{color:#888;font-size:12px;font-weight:500}.search-history-clear{color:var(--color-primary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 8px;font-size:12px;transition:background .2s}.search-history-clear:hover{background:#94716b1a}.search-history-item{cursor:pointer;border-bottom:1px solid #00000008;align-items:center;gap:12px;padding:14px 16px;transition:background .2s;display:flex}.search-history-item:last-child{border-bottom:none}.search-history-item:hover{background:#0000000d}.search-history-item i{color:#aaa;font-size:14px}.search-history-item .history-name{color:var(--color-text-dark);flex:1;font-size:15px}.search-history-item .history-type{border-radius:var(--radius-md);padding:3px 8px;font-size:11px}.search-history-item .history-type.presale{background:var(--color-type-presale-soft);color:var(--color-type-presale)}.search-history-item .history-type.completed{background:var(--color-type-completed-soft);color:var(--color-type-completed)}.map-layer-panel{z-index:1000;-webkit-backdrop-filter:blur(20px)saturate(180%);border-radius:var(--radius-lg);background:#ffffffd9;border:1px solid #ffffff4d;max-width:240px;transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);position:fixed;top:90px;right:16px;overflow:hidden;box-shadow:0 4px 20px #0000001f,inset 0 1px #ffffff80}.layer-panel-header{cursor:pointer;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#b7989126 0%,#94716b1a 100%);border-bottom:1px solid #b7989126;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.layer-panel-header h3{color:var(--color-text-dark);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600;display:flex}.layer-panel-toggle{border-radius:var(--radius-md);width:24px;height:24px;color:var(--color-text-muted);justify-content:center;align-items:center;transition:background .2s;display:flex}.layer-panel-header:hover .layer-panel-toggle{background:#0000000d}.layer-panel-content{max-height:400px;padding:8px 0;overflow-y:auto}.layer-panel-content.collapsed{display:none}.layer-section-title{color:#888;text-transform:uppercase;letter-spacing:.5px;border-top:1px solid #0000000f;margin-top:4px;padding:10px 16px 6px;font-size:11px;font-weight:600}.layer-section-title:first-child{border-top:none;margin-top:0}.layer-option{cursor:pointer;align-items:center;gap:10px;padding:10px 16px;transition:background .2s;display:flex}.layer-option:hover{background:#b798911a}.layer-option input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}.layer-option label{cursor:pointer;color:var(--color-text-secondary);flex:1;align-items:center;gap:8px;font-size:13px;display:flex}.layer-option label span.layer-icon{width:18px;color:var(--color-text-muted);text-align:center;flex:0 0 18px;font-size:16px;line-height:1}.street-view-control{z-index:1001;align-items:center;gap:8px;display:flex;position:fixed;bottom:154px;right:26px}.pegman-btn{border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(20px)saturate(180%);color:#f5a900;cursor:grab;touch-action:none;background:#ffffffd9;border:1px solid #fff6;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:25px;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex;box-shadow:0 4px 16px #0000001f,inset 0 1px #ffffff80}.pegman-btn i{transform-origin:50% 80%;transition:opacity .12s,transform .16s cubic-bezier(.2,.8,.2,1)}.pegman-btn:focus-visible{outline-offset:3px;outline:3px solid #3388ff6b}.pegman-btn.dragging{cursor:grabbing;background:#ffffffb8}.pegman-btn.dragging i{opacity:0;transform:translateY(-5px)scale(.62)}.pegman-drag-ghost{z-index:2000;pointer-events:none;color:#f5a900;filter:drop-shadow(0 4px 3px #00000052);transform-origin:50% 90%;will-change:transform;justify-content:center;align-items:center;width:34px;height:44px;font-size:38px;line-height:1;transition:transform 48ms linear,filter .12s,opacity .12s;display:flex;position:fixed;top:0;left:0}.pegman-drag-ghost.lifted{filter:drop-shadow(0 7px 5px #0000005c)}.pegman-drag-ghost.dropping{opacity:.2;filter:drop-shadow(0 1px 1px #0003);transition:transform .15s cubic-bezier(.4,0,1,1),opacity .15s,filter .15s}.pegman-drag-ghost.returning{opacity:0;transition:transform .18s cubic-bezier(.2,.9,.2,1.15),opacity .15s}.street-view-hint{color:#fff;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;background:#1f2937e6;border-radius:8px;padding:7px 10px;font-size:12px;line-height:1;transition:opacity .18s,transform .18s,visibility .18s;position:absolute;right:58px;transform:translate(6px)}@media (hover:hover){.pegman-btn:hover{background:#fffaf0;transform:translateY(-2px);box-shadow:0 6px 18px #0000003d}.street-view-control:hover .street-view-hint,.pegman-btn:focus-visible+.street-view-hint{opacity:1;visibility:visible;transform:translate(0)}}.street-view-drop-target{z-index:999;pointer-events:none;background:#4285f406;border:3px solid #0000;display:none;position:fixed;inset:0}.street-view-drop-target.visible{display:flex}.street-view-drop-target.can-drop{background:#4285f412;border-color:#4285f4b3}.street-view-drop-pin{left:var(--street-view-drop-x,50%);top:var(--street-view-drop-y,50%);opacity:0;border:3px solid #4285f4eb;border-radius:50%;width:38px;height:38px;transition:opacity .12s,transform .12s;position:fixed;transform:translate(-50%,-50%)scale(.72);box-shadow:0 0 0 7px #4285f42e}.street-view-drop-pin:after{content:"";background:#4285f4;border-radius:50%;width:8px;height:8px;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.street-view-drop-target.can-drop .street-view-drop-pin{opacity:1;transform:translate(-50%,-50%)scale(1)}.street-view-drop-label{color:#fff;background:#1f2937e0;border-radius:999px;padding:10px 16px;font-size:14px;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0003}body.street-view-dragging,body.street-view-dragging *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}.street-view-overlay{z-index:1390;opacity:0;visibility:hidden;background:#0f172a47;transition:opacity .25s,visibility .25s;position:fixed;inset:0}.street-view-overlay.visible{opacity:1;visibility:visible}.street-view-panel{z-index:1400;background:#fff;flex-direction:column;width:min(52vw,760px);min-width:420px;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(105%);box-shadow:-10px 0 36px #0f172a38}.street-view-panel.open{transform:translate(0)}.street-view-panel-header{border-bottom:1px solid #00000014;justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:14px 16px 12px 20px;display:flex}.street-view-panel-header h2{color:var(--color-text-dark);align-items:center;gap:8px;margin:0;font-size:17px;display:flex}.street-view-panel-header h2 i{color:#f5a900}.street-view-panel-header p{color:var(--color-text-muted);margin:4px 0 0;font-size:12px}.street-view-panel-actions{gap:8px;display:flex}.street-view-google-link,.street-view-close{color:#374151;cursor:pointer;background:#f3f4f6;border:0;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:15px;text-decoration:none;display:inline-flex}.street-view-google-link:focus-visible,.street-view-close:focus-visible{outline-offset:2px;outline:3px solid #3388ff59}@media (hover:hover){.street-view-google-link:hover,.street-view-close:hover{background:#e5e7eb}}#street-view-frame{background:#e5e7eb;border:0;flex:1;width:100%}.map-tools-panel{z-index:1000;-webkit-backdrop-filter:blur(20px)saturate(180%);border-radius:var(--radius-lg);background:#ffffffe6;border:1px solid #ffffff4d;flex-wrap:wrap;align-items:center;gap:16px;max-width:calc(100vw - 32px);padding:12px 20px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 25px #00000026,inset 0 1px #ffffff80}.map-tools-panel select{border-radius:var(--radius-md);color:var(--color-text-dark);cursor:pointer;background:#ffffffb3;border:1px solid #b798914d;min-width:100px;padding:8px 12px;font-size:13px;transition:border-color .2s,box-shadow .2s}.map-tools-panel select:hover{border-color:#b7989180}.map-tools-panel select:focus-visible{border-color:#94716b;outline:none;box-shadow:0 0 0 3px #94716b26}.map-tools-panel label{color:var(--color-text-muted);font-size:12px;font-weight:500}.tool-group{align-items:center;gap:8px;display:flex}.tool-divider{background:#0000001a;width:1px;height:24px}.map-clear-btn{background:linear-gradient(135deg, var(--color-danger), var(--color-danger-hover));color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;transition:background .2s,transform .2s,box-shadow .2s;display:flex}.map-clear-btn:hover{background:linear-gradient(135deg, var(--color-danger-hover), #bd2130);transform:translateY(-1px);box-shadow:0 4px 12px #dc26264d}.map-results-panel{z-index:999;-webkit-backdrop-filter:blur(20px)saturate(180%);border-radius:var(--radius-lg);background:#ffffffeb;border:1px solid #ffffff4d;width:auto;min-width:320px;max-width:calc(100vw - 32px);padding:16px 24px;position:fixed;bottom:24px;left:16px;box-shadow:0 8px 32px #00000026,inset 0 1px #ffffff80}.map-results-panel.dragging{opacity:.9;transition:none}.map-results-panel.hidden{display:none}.results-header{cursor:grab;-webkit-user-select:none;user-select:none;border-bottom:1px solid #00000014;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;display:flex}.results-header:active{cursor:grabbing}.results-header h4{color:var(--color-text-dark);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600;display:flex}.results-close-btn{border-radius:var(--radius-md);cursor:pointer;width:24px;height:24px;color:var(--color-text-muted);background:#0000000d;border:none;justify-content:center;align-items:center;transition:background .2s,color .2s;display:flex}.results-close-btn:hover{color:var(--color-text-dark);background:#0000001a}.results-stats{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.result-stat{text-align:center}.result-stat .stat-label{color:#888;margin-bottom:4px;font-size:11px}.result-stat .stat-value{color:var(--color-primary);font-size:16px;font-weight:700}.leaflet-bottom.leaflet-right{bottom:90px;right:16px}.leaflet-control-custom{background:0 0!important;border:none!important}.location-btn{-webkit-backdrop-filter:blur(20px)saturate(180%);border-radius:var(--radius-lg);cursor:pointer;width:44px;height:44px;color:var(--color-text-dark);background:#ffffffd9;border:1px solid #fff6;justify-content:center;align-items:center;transition:background .25s,color .25s,box-shadow .25s,transform .25s;display:flex;box-shadow:0 4px 16px #0000001f,inset 0 1px #ffffff80}@media (hover:hover){.location-btn:hover{color:#38f;background:#fffffff2;transform:translateY(-2px);box-shadow:0 6px 20px #00000026,inset 0 1px #fff9}}.location-btn:active{transform:translateY(0)scale(.95)}.user-location-marker{position:relative;background:0 0!important;border:none!important}.user-location-pulse{z-index:1;background:#38f6;border-radius:50%;width:24px;height:24px;animation:2s ease-out infinite pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes pulse{0%{opacity:1;transform:translate(-50%,-50%)scale(.5)}to{opacity:0;transform:translate(-50%,-50%)scale(2.5)}}.user-location-dot{z-index:2;background:#38f;border:3px solid #fff;border-radius:50%;width:14px;height:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0000004d}@media (width<=768px){.map-top-bar{gap:10px;padding:10px 12px}.map-hamburger-btn{width:40px;height:40px;font-size:16px}.map-search-input{padding:10px 14px 10px 40px;font-size:14px}.map-search-icon{font-size:14px;left:14px}.map-layer-panel{max-width:200px;top:80px;right:12px}.layer-panel-header{padding:10px 14px}.layer-panel-header h3{font-size:13px}.layer-option{padding:8px 14px}.layer-option label{font-size:12px}.layer-panel-content{max-height:280px}.map-tools-panel{border-radius:var(--radius-lg);gap:8px;padding:10px 14px;bottom:16px}.map-tools-panel select{min-width:70px;padding:6px 8px;font-size:12px}.tool-divider{display:none}.map-tools-panel label{font-size:10px}.map-clear-btn{padding:6px 10px;font-size:12px}.map-results-panel{min-width:260px;padding:12px 14px;bottom:75px}.results-stats{grid-template-columns:repeat(2,1fr);gap:10px}.result-stat .stat-value{font-size:14px}.leaflet-bottom.leaflet-right{bottom:80px;right:12px}.location-btn{width:44px;height:44px}.user-location-pulse{width:28px;height:28px}.user-location-dot{width:16px;height:16px}.street-view-control{bottom:142px;right:22px}.pegman-btn{border-radius:13px;width:44px;height:44px;font-size:25px}.street-view-hint{display:none}.street-view-panel{border-radius:18px 18px 0 0;width:100%;min-width:0;height:68vh;top:auto;transform:translateY(105%)}.street-view-panel.open{transform:translateY(0)}.street-view-panel-header{min-height:66px;padding:10px 12px 10px 16px}}@media (width>=769px) and (width<=1024px){.map-tools-panel,.results-stats{gap:12px}}.leaflet-control-zoom,.leaflet-control-attribution{display:none!important}body.map-fullscreen .sidebar-menu{display:block!important}body.map-fullscreen .sidebar-overlay{display:none}body.map-fullscreen .sidebar-overlay.active{display:block!important}.bottom-sheet{z-index:1100;border-radius:var(--radius-xl) var(--radius-xl) 0 0;will-change:transform;background:#fff;flex-direction:column;height:90vh;transition:transform .35s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -4px 30px #0003,inset 0 1px #fffc}.bottom-sheet.minimized{transform:translateY(calc(100% - 70px))}.bottom-sheet.peek{transform:translateY(55%)}.bottom-sheet.expanded{transform:translateY(0)}.bottom-sheet-handle{cursor:grab;touch-action:none;flex-shrink:0;justify-content:center;padding:12px 0 4px;display:flex}.bottom-sheet-handle:active{cursor:grabbing}.handle-bar{border-radius:var(--radius-sm);background:#0003;width:40px;height:5px;transition:background .2s}.bottom-sheet-handle:hover .handle-bar{background:#00000059}.bottom-sheet-header{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-bottom:1px solid #00000014;flex-shrink:0;align-items:center;padding:8px 16px 12px;display:flex}.bottom-sheet-header:active{cursor:grabbing}.sheet-title{color:var(--color-text-dark);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:18px;font-weight:700;overflow:hidden}.sheet-type{border-radius:var(--radius-lg);flex-shrink:0;margin-left:10px;padding:4px 10px;font-size:11px;font-weight:600}.sheet-type.presale{background:var(--color-type-presale-soft);color:var(--color-type-presale)}.sheet-type.completed{background:var(--color-type-completed-soft);color:var(--color-type-completed)}.sheet-close-btn{cursor:pointer;width:32px;height:32px;color:var(--color-text-muted);background:#0000000d;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:12px;transition:background .2s,color .2s;display:flex}.sheet-close-btn:hover{color:var(--color-text-dark);background:#0000001a}.bottom-sheet-content{flex:1;position:relative;overflow:hidden}.sheet-loading{color:#888;z-index:2;background:#fff;justify-content:center;align-items:center;gap:10px;font-size:15px;display:none;position:absolute;inset:0}.sheet-loading.active{display:flex}.sheet-loading i{color:#94716b;font-size:20px}.sheet-iframe{background:#fff;border:none;width:100%;height:100%}.bottom-sheet-overlay{z-index:1099;opacity:0;visibility:hidden;background:#0006;transition:opacity .3s,visibility .3s;position:fixed;inset:0}.bottom-sheet-overlay.active{opacity:1;visibility:visible}@media (width<=768px){.bottom-sheet{border-radius:var(--radius-lg) var(--radius-lg) 0 0;height:92vh}.bottom-sheet.minimized{transform:translateY(calc(100% - 60px))}.bottom-sheet.peek{transform:translateY(60%)}.bottom-sheet.expanded{transform:translateY(8%)}.bottom-sheet-header{padding:6px 12px 10px}.sheet-title{font-size:16px}.sheet-type{padding:3px 8px;font-size:10px}.sheet-close-btn{width:28px;height:28px}}@media (width>=769px){.bottom-sheet{border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:85vw;max-width:1200px;height:85vh;left:50%;right:auto;transform:translate(-50%,100%)}.bottom-sheet.minimized{transform:translate(-50%,calc(100% - 70px))}.bottom-sheet.peek{transform:translate(-50%,45%)}.bottom-sheet.expanded{transform:translate(-50%)}.sheet-title{font-size:20px}}.search-marker-container{flex-direction:column;align-items:center;display:flex;position:relative}.search-marker-label{color:#fff;border-radius:var(--radius-md);white-space:nowrap;pointer-events:none;background:linear-gradient(135deg,#1a1a1a 0%,#333 100%);margin-bottom:8px;padding:6px 12px;font-size:13px;font-weight:600;position:absolute;bottom:100%;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d,0 2px 4px #0003;z-index:10000!important}.search-marker-label:after{content:"";border:6px solid #0000;border-top-color:#333;position:absolute;top:100%;left:50%;transform:translate(-50%)}.search-marker-pin{color:var(--color-danger);text-shadow:0 2px 8px #dc262680,0 4px 16px #0000004d;filter:drop-shadow(0 2px 4px #0000004d);font-size:36px;animation:.5s ease-out marker-bounce}@keyframes marker-bounce{0%{opacity:0;transform:translateY(-20px)}50%{transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.search-marker-label{padding:5px 10px;font-size:12px}.search-marker-pin{font-size:32px}}.leaflet-control-location{background:0 0!important;border:none!important}.location-btn.tracking{box-shadow:0 4px 16px #38f6,inset 0 1px #ffffff4d;color:#fff!important;background:#3388fff2!important}.location-btn.tracking:hover{box-shadow:0 6px 20px #3388ff80,inset 0 1px #fff6;background:#38f!important}.user-location-beam{transform-origin:bottom;pointer-events:none;z-index:0;clip-path:polygon(50% 100%,0% 0%,100% 0%);background:conic-gradient(from -25deg at 50% 100%,#0000 0deg,#3388ff59 0deg,#3388ff26 25deg,#3388ff59 50deg,#0000 50deg);width:80px;height:80px;margin-top:-80px;margin-left:-40px;position:absolute;top:50%;left:50%}.leaflet-popup-content-wrapper{border-radius:var(--radius-lg)!important;background:#fff!important;border:none!important;padding:0!important;overflow:visible!important;box-shadow:0 4px 24px #0000001f,0 1px 3px #00000014!important}.leaflet-popup-content{font-family:Noto Sans TC,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;margin:0!important;padding:0!important;overflow:visible!important}.map-popup{min-width:240px;max-width:280px;padding:0 0 14px}.map-popup .popup-header{border-bottom:1px solid var(--color-border);z-index:1;background:linear-gradient(135deg,#f8f9fa 0%,#fff 100%);justify-content:space-between;align-items:center;padding:14px 44px 14px 16px;display:flex;position:relative}.map-popup .popup-header h4{color:var(--color-text-dark);flex:1;margin:0;padding-right:8px;font-size:15px;font-weight:700;line-height:1.3}.map-popup .popup-type{border-radius:var(--radius-sm);flex-shrink:0;padding:3px 8px;font-size:11px;font-weight:600}.map-popup .popup-type.presale{background:var(--color-type-presale-soft);color:var(--color-type-presale)}.map-popup .popup-type.completed{background:var(--color-type-completed-soft);color:var(--color-type-completed)}.map-popup .popup-body{padding:12px 16px}.map-popup .popup-row{border-bottom:1px solid #f5f5f5;justify-content:space-between;align-items:center;padding:8px 0;display:flex}.map-popup .popup-row:last-child{border-bottom:none}.map-popup .popup-row .label{color:#888;font-size:13px}.map-popup .popup-row .value{color:var(--color-text-dark);font-size:13px;font-weight:500}.map-popup .popup-row .value.highlight{color:#d84315;font-weight:600}.map-popup .popup-btn{width:calc(100% - 32px);display:block;background:var(--color-primary)!important;color:#fff!important;border-radius:var(--radius-md)!important;cursor:pointer!important;border:none!important;margin:14px 16px 0!important;padding:11px 16px!important;font-size:13px!important;font-weight:600!important;transition:background .2s,transform .15s!important}.map-popup[data-type=presale] .popup-btn{background:var(--color-type-presale)!important}.map-popup[data-type=completed] .popup-btn{background:var(--color-type-completed)!important}@media (hover:hover){.map-popup[data-type=presale] .popup-btn:hover{background:#6f5c3a!important;transform:translateY(-1px)!important}.map-popup[data-type=completed] .popup-btn:hover{background:#0369a1!important;transform:translateY(-1px)!important}}.map-popup .popup-btn:active{transform:translateY(0)!important}.map-popup p{color:var(--color-text-secondary);border-bottom:1px solid #f5f5f5;margin:0;padding:8px 16px;font-size:13px}.map-popup p:last-of-type{border-bottom:none}.map-popup p strong{color:#888;margin-right:8px;font-weight:500}.map-popup>h4{color:var(--color-text-dark);background:var(--color-bg-surface);border-bottom:1px solid var(--color-border);margin:0;padding:14px 16px;font-size:15px;font-weight:700}.leaflet-popup-tip-container{margin-top:-1px}.leaflet-popup-tip{background:#fff!important;border:none!important;box-shadow:0 2px 8px #0000001a!important}.leaflet-popup-close-button{color:#666!important;border:1px solid var(--color-border-light)!important;z-index:9999!important;cursor:pointer!important;pointer-events:auto!important;background:#fff!important;border-radius:50%!important;justify-content:center!important;align-items:center!important;width:28px!important;height:28px!important;padding:0!important;font-size:20px!important;font-weight:300!important;line-height:1!important;transition:background .15s,color .15s,border-color .15s!important;display:flex!important;position:absolute!important;top:8px!important;right:8px!important;box-shadow:0 1px 4px #0000001a!important}.leaflet-popup-close-button:hover{color:#333!important;background:#f5f5f5!important;border-color:#ccc!important}@media (width<=768px){.leaflet-popup-content-wrapper{border-radius:var(--radius-lg)!important}.map-popup{min-width:220px;max-width:260px}.map-popup .popup-header{flex-wrap:wrap;gap:6px;padding:12px 38px 12px 14px}.map-popup .popup-header h4{width:100%;padding-right:0;font-size:14px}.map-popup .popup-type{order:2}.map-popup .popup-body{padding:10px 14px}.map-popup .popup-row{padding:6px 0}.map-popup .popup-row .label,.map-popup .popup-row .value{font-size:12px}.map-popup .popup-btn{width:calc(100% - 28px)!important;margin:0 14px 12px!important;padding:10px 14px!important;font-size:12px!important}.leaflet-popup-close-button{width:24px!important;height:24px!important;font-size:16px!important}}.pin-marker,.pin-label-marker{background:0 0!important;border:none!important}.pin-icon{filter:drop-shadow(0 3px 6px #00000040);transition:transform .15s}.pin-icon:hover{transform:scale(1.1)}.pin-with-label{flex-direction:column;align-items:center;display:flex}.pin-label{border-radius:var(--radius-md);color:var(--color-text-dark);white-space:nowrap;text-overflow:ellipsis;background:#fff;border-bottom:2px solid;max-width:120px;margin-bottom:4px;padding:4px 10px;font-size:12px;font-weight:600;overflow:hidden;box-shadow:0 2px 10px #0000001f}.pin-svg{filter:drop-shadow(0 2px 5px #00000040);transition:transform .15s}.pin-with-label:hover .pin-svg{transform:scale(1.1)}@media (width<=768px){.pin-label{max-width:100px;padding:3px 8px;font-size:11px}.pin-svg{width:20px;height:28px}}
