.public-tools,.public-district-toggle{position:absolute;top:84px;z-index:8;color:var(--ink)}
.public-tools{right:16px}.public-district-toggle{left:16px}
.public-tools>summary,.public-district-toggle,.public-filters>summary{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:650 13px/1.3 system-ui;list-style:none;cursor:pointer;box-shadow:0 3px 12px #173f3614}
.public-tools summary::-webkit-details-marker,.public-filters>summary::-webkit-details-marker{display:none}
.public-district-toggle[aria-pressed=true],.public-tools[open]>summary,.public-filters[open]>summary{background:var(--ink);color:white}
.district-guide{position:absolute;z-index:8;top:136px;left:16px;width:min(290px,calc(100vw - 24px));display:flex;align-items:start;gap:4px;padding:10px 4px 10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:0 6px 20px #173f3625}
.district-guide[hidden],.is-area-picking .district-guide{display:none}
.district-guide p{margin:0;font:400 13px/1.45 system-ui}
.district-guide button{flex:none;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--ink);font-size:22px;cursor:pointer}
.district-guide button:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}
.public-tools__panel{position:absolute;right:0;top:52px;width:340px;max-height:calc(100dvh - 162px);overflow:auto;overscroll-behavior:contain;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 12px 36px #173f3625}
.public-tools__panel>header{position:absolute;top:12px;right:12px;margin:0}.public-tools__panel>header strong{display:none}.public-tools__panel>header button{width:44px;padding:0;border:0;background:transparent;font-size:24px}
.public-tools button,.public-tools select{min-height:44px;border:1px solid var(--line);border-radius:10px;background:#fffdf8;color:var(--ink);padding:8px 10px;font-family:inherit;cursor:pointer}
.public-tools button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}
.public-tools__tabs,.explore-segments{display:flex;gap:5px}.public-tools__tabs>button,.explore-segments>button{flex:1;font-size:12px;font-weight:650;padding:8px 6px}
.public-tools__tabs{margin-bottom:14px}.public-tools__options{display:grid;gap:8px;margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.public-tools__options>button{text-align:left;font-size:12px}.public-tools__options summary{padding:12px 4px;cursor:pointer;font-size:13px}
.public-topic-layers{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.explore-controls{display:grid;gap:12px}.explore-controls p{margin:0;font-size:12px;line-height:1.5;color:var(--muted)}.explore-location{display:flex;gap:8px;align-items:end}.explore-location>button{flex:1}.explore-location label{display:grid;gap:3px;font-size:11px;color:var(--muted)}
.history-year{display:flex;align-items:center;gap:12px}.history-year strong{font-size:32px}.history-year span{font-size:12px;color:var(--muted)}
.explore-controls input[type=range]{width:100%;min-height:32px;margin:0;accent-color:var(--ink);cursor:pointer}
.history-summary{display:grid;gap:6px;padding:12px;background:#eaf0e9;border-radius:12px;font-size:13px}.history-summary small{font-size:11px;line-height:1.4;color:var(--muted)}
.public-filters{position:relative;flex:none}
.public-filters>summary{gap:6px}
.public-filters>summary svg{flex:none}
.filter-count{display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--ink);color:white;font:700 10px/1 system-ui}
.public-filters:has(.filter-count:not([hidden]))>summary{background:#e4eeea}
#public-filter-host{padding:16px;min-height:0;overflow:auto}
#public-filter-host .catalog-filters{position:static;display:grid;grid-template-columns:1fr 1fr;padding:0;border:0;box-shadow:none;background:transparent;gap:10px}
#public-filter-host label{min-width:0}#public-filter-host select,#public-filter-host input{width:100%;min-height:44px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fffdfa;color:var(--ink);font:inherit;font-size:13px}
#year-filter-error{grid-column:1/-1;color:#a15139;font-size:12px;margin:0}
.consumer-preview .welcome{top:auto;bottom:88px;left:18px;width:min(360px,calc(100vw - 36px));max-height:32dvh;padding:18px;border-radius:18px}
.consumer-preview .welcome h1{font:700 20px/1.25 system-ui;letter-spacing:0;margin:0 0 8px}.consumer-preview .welcome__lead{font-size:13px;line-height:1.5;margin:0}.consumer-preview .welcome__action{min-height:44px;margin-top:12px}
.consumer-preview .welcome__privacy{display:inline-flex;min-height:32px;align-items:center;margin-top:6px;color:var(--muted);font-size:11px;text-underline-offset:3px}
.consumer-preview.has-welcome .topbar{display:grid}.consumer-preview.has-welcome .fallback{visibility:hidden}
.consumer-preview.has-property .map-dock{display:none}
@media(max-width:760px){
 .public-tools,.public-district-toggle{top:126px}.public-tools{right:10px}.public-district-toggle{left:10px}
 .district-guide{top:178px;left:10px}
 .public-tools__panel{width:min(340px,calc(100vw - 20px));max-height:46dvh;padding:12px}
 #public-filter-host{max-width:calc(100vw - 24px)}
 .consumer-preview .welcome{bottom:82px;left:10px;width:calc(100vw - 20px);max-height:32dvh;padding:16px}
}
@media(max-height:550px){.public-tools__panel{max-height:45dvh}.consumer-preview .welcome{max-height:35dvh}}

.public-tools__tabs{padding-right:46px}.explore-controls{gap:8px}.explore-location select{min-width:0;flex:1;font-size:12px}.explore-location>button{flex:0 0 auto;font-size:12px}
.history-year{gap:8px}.history-year strong{font-size:28px}.history-year span{max-width:96px;font-size:11px}.history-year>button{margin-left:auto;min-width:88px;font-size:11px;padding:5px}
.history-summary{padding:10px;gap:4px}.history-summary p{font-size:12px}

.welcome-discovery{margin-top:8px}.welcome-discovery>summary{font-size:12px;min-height:32px;padding:8px 0;cursor:pointer}.welcome-discovery .bangtao-discovery{margin-top:8px;padding-top:8px}
@media(min-width:761px){.consumer-preview.has-property>.public-tools{right:396px}}
@media(min-width:540px) and (max-width:940px) and (max-height:500px){
 .consumer-preview>.public-tools,.consumer-preview>.public-district-toggle{top:64px}
 .consumer-preview>.district-guide{top:114px}
 .consumer-preview.has-property>.public-tools{right:calc(max(300px,52%) + 8px)}
 .consumer-preview.has-property:has(.property-card--compact)>.public-tools{right:8px}
 .consumer-preview>.public-tools>summary,.consumer-preview>.public-district-toggle{padding-inline:8px;font-size:12px}
 .consumer-preview .public-tools__panel{position:fixed;top:112px;right:8px;width:min(340px,calc(100vw - 16px));max-height:calc(100dvh - 120px)}
}

/* One navigation row. Housing type belongs to the existing filter dialog. */
.map-dock{position:fixed;z-index:7;left:24px;bottom:calc(24px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:5px;padding:5px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 6px 24px #173f361a;max-width:calc(100vw - 24px)}
.map-dock .public-filters{padding-left:5px;border-left:1px solid var(--line)}
.map-dock .public-filters>summary{height:44px;min-height:44px;padding:0 10px;border:0;border-radius:12px;box-shadow:none;white-space:nowrap;position:relative}
.map-dock button:focus-visible,.map-dock summary:focus-visible{outline:2px solid #ad6848;outline-offset:-3px}
@media(hover:hover){.map-dock button:not([aria-pressed=true]):hover,.map-dock .public-filters:not([open])>summary:hover{background:#eaf0e9}}
@media(max-width:760px){.map-dock{left:50%;transform:translateX(-50%);width:min(440px,calc(100vw - 24px))}.map-dock .public-filters>summary{width:66px;padding:3px 2px;flex-direction:column;gap:2px;font-size:12px;line-height:1.1}.map-dock .public-filters>summary svg{width:18px;height:18px}.map-dock .filter-label{display:block}.map-dock .filter-count{position:absolute;top:0;right:0;min-width:16px;height:16px}}
@media(max-width:350px){.map-dock .explore-modes button{font-size:11px;padding-inline:1px}}

.filter-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-4px -4px 10px 0;font-size:14px}
.filter-panel-header button{display:grid;place-items:center;width:44px;height:44px;flex:none;border:0;border-radius:12px;background:transparent;color:var(--ink);font-size:24px;cursor:pointer}
.public-tools summary:focus-visible,.public-tools select:focus-visible,#public-filter-host :is(button,input,select):focus-visible{outline:2px solid #ad6848;outline-offset:-3px}
@media(hover:hover){.filter-panel-header button:hover,.public-tools__panel>header button:hover{background:#eaf0e9}}
.public-tools button:disabled{opacity:.48;cursor:default}

.public-tools.is-minimized>.public-tools__panel,.is-area-picking .public-tools,.is-area-picking .map-dock,.is-area-picking .public-district-toggle{display:none}
.area-picker-reticle{position:absolute;z-index:6;left:50%;top:42%;width:30px;height:30px;transform:translate(-50%,-50%);border:2px solid white;border-radius:50%;box-shadow:0 0 0 2px #164b40;pointer-events:none}
.area-picker-reticle::before,.area-picker-reticle::after{content:'';position:absolute;left:50%;top:50%;background:#164b40;box-shadow:0 0 0 1px white;transform:translate(-50%,-50%)}
.area-picker-reticle::before{width:42px;height:2px}.area-picker-reticle::after{height:42px;width:2px}
.area-picker{position:fixed;z-index:10;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(400px,calc(100vw - 24px));padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 10px 30px #173f3625;color:var(--ink)}
.area-picker>strong{font-size:14px}.area-picker>p{font-size:12px;line-height:1.4;color:var(--muted);margin:6px 0 10px}
.area-picker label{display:grid;grid-template-columns:1fr auto;align-items:center;font-size:12px;gap:2px}.area-picker input{grid-column:1/-1;width:100%;margin:0;min-height:36px;accent-color:var(--ink)}
.area-picker>div{display:flex;gap:8px;margin-top:8px}.area-picker button{flex:1;min-height:44px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--ink);font-weight:650}.area-picker [data-area-apply]{background:var(--ink);color:white;border-color:var(--ink)}
.area-picker :focus-visible{outline:2px solid #ad6848;outline-offset:2px}
@media(max-height:550px){.area-picker{padding:8px;bottom:18px}.area-picker>p{display:none}.area-picker input{min-height:28px}}

/* Keep the confirmed result visible, below the selected map point. */
.public-tools.has-result .public-tools__panel{position:fixed;top:auto;bottom:calc(24px + env(safe-area-inset-bottom));right:16px;max-height:46dvh}
#app:has(.public-tools.has-result[open]) .map-dock{display:none}
@media(max-width:760px){.public-tools.has-result .public-tools__panel{right:10px;width:calc(100vw - 20px);max-height:43dvh}}

.history-housing{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:4px}
.history-housing>span{font-size:12px;color:var(--muted)}
.public-tools .history-housing>select{min-height:44px;width:136px;max-width:60%;padding:8px 12px;font-size:13px;border-radius:10px;background:transparent}

.explore-modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;min-width:0;flex:1}
.explore-modes button{min-width:0;min-height:44px;padding:8px 5px;border:0;border-radius:12px;background:transparent;color:var(--ink);font:650 12px/1.2 system-ui;cursor:pointer}
.explore-modes button[aria-pressed=true]{background:var(--ink);color:white}
#catalog-filters>.housing-controls{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr)}
.public-filters[hidden]{display:none!important}
.nearby-housing-filters{margin-bottom:10px}.nearby-housing-filters>summary{min-height:44px;cursor:pointer;padding:10px;border:1px solid var(--line);border-radius:10px}
#place-list-toggle[hidden]{display:none}
#place-list-toggle{flex:none;min-height:44px;padding:8px;border:0;border-left:1px solid var(--line);border-radius:0 12px 12px 0;background:transparent;color:var(--ink);font:600 12px/1.3 system-ui;white-space:nowrap;cursor:pointer}
#place-list-toggle[aria-expanded=true]{background:#e4eeea}
.place-list-panel{position:fixed;z-index:7;left:24px;bottom:calc(92px + env(safe-area-inset-bottom));width:390px;max-width:calc(100vw - 24px);border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:0 6px 24px #173f361a;overflow:hidden}
.place-list-panel[hidden]{display:none}
.place-list-panel>header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}
.place-list-panel strong{font:700 16px/1.3 system-ui}.place-list-panel header p{font-size:12px;color:var(--muted);margin:4px 0 0}
.place-list-panel header button{width:44px;height:44px;background:transparent;border:0;color:var(--ink);font-size:26px;cursor:pointer}
#place-list-rows{max-height:32dvh;overflow:auto;overscroll-behavior:contain;padding:6px 12px}
.place-list-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:52px;padding:12px 4px;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ink);text-align:left;font:550 14px/1.4 system-ui;cursor:pointer}
.place-list-row:last-child{border-bottom:0}.place-list-row>span:last-child{font-size:24px;color:var(--muted)}
.place-list-row:hover{background:#eaf0e9}.place-list-empty{font:400 14px/1.5 system-ui;color:var(--muted);padding:10px}
.place-list-panel :focus-visible{outline:2px solid var(--ink);outline-offset:-2px}
@media(min-width:761px){.map-dock{width:480px}}
@media(max-width:760px){
  .place-list-panel{left:12px;width:calc(100vw - 24px);border-radius:18px}
  .place-list-panel>header{padding:9px 14px}
  .place-list-panel header button{height:40px}
  #place-list-rows{max-height:min(21dvh,168px);padding:4px 12px}
  .place-list-row{min-height:48px;padding:9px 4px}
  .consumer-preview .welcome{bottom:92px}
}

/* A single draft step replaces the popover; its actions remain visible. */
#filter-dialog{padding:0;width:min(400px,calc(100vw - 24px));max-height:calc(100dvh - 32px);border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--ink);box-shadow:0 16px 48px #173f3633}
#filter-dialog[open]{display:flex;flex-direction:column}
#filter-dialog::backdrop{background:#123d354d}
#filter-dialog #public-filter-host{max-width:none}
#filter-dialog footer{display:flex;gap:10px;flex:none;padding:12px 16px;border-top:1px solid var(--line)}
#filter-dialog footer button{min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:650 13px/1.3 system-ui;cursor:pointer}
#filter-dialog #apply-filter-draft{flex:1;background:var(--ink);border-color:var(--ink);color:white}
#filter-dialog #apply-filter-draft:disabled{opacity:.5;cursor:default}
@media(max-width:760px){#filter-dialog{margin:auto auto max(12px,env(safe-area-inset-bottom));width:calc(100vw - 24px);max-height:75dvh}}
