/* Interface controls stay separate from the city renderer. */
.app{height:100vh;height:100dvh}
.cta{color:var(--accent-ink)}
button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}
.search input:focus-visible,.claim-input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.search input{font-size:.875rem}
.search-res .sr{min-height:44px}
.hint,.side .sec-h,.pulse .pt time,.evrow time,.gz-date,.gz-foot{font-size:.7rem;color:var(--ink-dim)}
.gz-open{font-size:.7rem;color:var(--accent-ink)}
.gz-date,.gz-foot{color:#655845}
.pulse-tabs .ptab{font-size:.65rem;min-height:36px}
.close{min-width:44px;min-height:44px}
.onboarding-steps{display:flex;gap:8px;padding:0;list-style:none;margin:18px 0}
.onboarding-steps li{flex:1;padding:10px 8px;border:1px solid var(--panel-bd);border-radius:10px;color:var(--ink-dim);font-size:.8rem;line-height:1.4}
.onboarding-steps li[aria-current=step]{border-color:var(--accent);color:var(--ink);background:var(--panel-2)}
.onboarding-steps b{display:block;margin-bottom:3px}
.register-label{display:block;font-size:.85rem;font-weight:700;margin-top:12px}
.register-help{font-size:.8rem!important;line-height:1.5!important;color:var(--ink-dim)}
.setup-instruction{min-height:150px;resize:vertical;font: .8rem/1.5 var(--font-mono)}
.stale-bar{max-width:calc(100% - 24px);white-space:normal;text-align:center}
.me-card{width:280px;max-width:calc(100% - 32px);max-height:calc(100% - 32px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.me-card .mc-finance .mc-assets-toggle{grid-column:1/-1;text-align:left;padding:8px;border:1px solid var(--panel-bd);border-radius:8px;background:var(--panel-2);min-width:0}
.me-card .mc-finance .mc-assets-toggle:hover{border-color:var(--accent)}
.me-card .mc-finance .mc-assets-toggle span{display:block;background:none;border:0;padding:0;font-size:.62rem}
.me-card .mc-finance .mc-assets-toggle b{white-space:normal;line-height:1.5;font-size:.82rem}
.mc-assets-toggle em{display:block;margin-top:4px;font-size:.75rem;font-style:normal;color:var(--accent)}
.me-card .mc-finance .mc-basis{display:inline;margin-left:3px;padding:1px 4px;border:1px solid var(--hair);border-radius:4px;background:transparent;color:var(--accent);font-size:.45rem;letter-spacing:.08em;vertical-align:1px}
.mc-assets{margin-top:10px;border-top:1px solid var(--panel-bd);cursor:default;max-height:240px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.mc-assets h3{display:flex;justify-content:space-between;margin:12px 0 8px;font-size:.85rem}
.mc-assets h3 span{color:var(--ink-dim);font-weight:400}
.mc-asset{background:var(--panel-2);border:1px solid var(--panel-bd);border-radius:9px;padding:9px;margin-bottom:8px}
.mc-asset-heading strong{display:block;font-size:.85rem;overflow-wrap:anywhere}
.mc-asset-heading small{display:block;color:var(--accent);font-size:.7rem;margin-top:3px}
.mc-asset p{font-size:.78rem;line-height:1.4;margin:6px 0;color:var(--ink-dim);overflow-wrap:anywhere}
.mc-asset .mc-asset-coords,.mc-assets-empty{font-size:.72rem;color:var(--ink-dim)}
.mc-asset button{color:var(--accent);font-size:.78rem;min-height:32px;padding:4px 0;text-align:left;text-decoration:underline;text-underline-offset:3px}
.equity-note{margin:7px 0 10px;color:var(--ink-dim);font-size:.72rem;line-height:1.5}
.equity-heading{display:flex;align-items:baseline;justify-content:space-between;gap:9px;min-width:0}
.equity-heading strong{font:700 .82rem/1.2 var(--font-mono);color:var(--accent);letter-spacing:.04em;overflow-wrap:anywhere}
.equity-heading small{min-width:0;color:var(--ink);font-size:.76rem;line-height:1.3;text-align:right;overflow-wrap:anywhere}
.equity-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px}
.equity-metrics>span{min-width:0;padding:7px;border:1px solid var(--hair);border-radius:7px;background:color-mix(in srgb,var(--panel) 50%,transparent)}
.equity-metrics>span:only-child{grid-column:1/-1}
.equity-metrics small,.equity-metrics b{display:block}.equity-metrics small{color:var(--ink-dim);font:.52rem/1.25 var(--font-mono);letter-spacing:.06em}.equity-metrics b{margin-top:3px;color:var(--ink);font-size:.75rem;line-height:1.35;overflow-wrap:anywhere}.equity-metrics b.unavailable{color:var(--ink-dim);font-weight:600}
.asset-state{padding:11px 12px;border:1px solid var(--panel-bd);border-radius:10px;background:var(--panel-2);color:var(--ink-dim);font-size:.78rem;line-height:1.5}
.asset-state.asset-stale{border-color:color-mix(in srgb,var(--accent) 55%,var(--panel-bd));color:var(--ink)}
.asset-retry{width:100%;min-height:40px;margin:4px 0 12px;border:1px solid var(--accent);border-radius:9px;color:var(--accent);font-size:.78rem;font-weight:700}
.asset-retry:hover{background:var(--panel-2)}.asset-retry:disabled{opacity:.65}
.citizen-phone #phoneAssets>h3{display:flex;justify-content:space-between;gap:10px;margin:18px 0 9px;font-size:.9rem}.citizen-phone #phoneAssets>h3:first-child{margin-top:4px}.citizen-phone #phoneAssets>h3 span{color:var(--ink-dim);font-weight:500}
.citizen-phone .equity-position{padding:12px}.citizen-phone .equity-note{font-size:.76rem}.profile-asset.equity-position{padding:14px}.profile-asset.equity-position .equity-heading small{font-size:.82rem}.equity-section>.profile-asset{margin-bottom:10px}
@media(max-width:390px){.equity-heading{align-items:flex-start;flex-direction:column;gap:4px}.equity-heading small{text-align:left}.equity-metrics{gap:5px}.equity-metrics>span{padding:6px}}
.map-tools{position:absolute;left:16px;top:16px;right:65px;z-index:7;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.map-tools button,.map-directory select,.map-directory input{background:var(--panel);color:var(--ink);border:1px solid var(--panel-bd);border-radius:9px;padding:9px 11px;font:inherit;font-size:.76rem;box-shadow:var(--shadow)}
.map-tools button:disabled{opacity:.5;cursor:default}.map-tools button:hover:not(:disabled){border-color:var(--accent)}
#mapMode{font-size:.7rem;background:var(--panel);padding:7px 9px;border-radius:8px;color:var(--ink-dim);max-width:280px}
.canvas-wrap .legend{top:100px;pointer-events:none}
.map-directory{position:absolute;z-index:8;left:16px;top:100px;width:310px;max-width:calc(100% - 82px);max-height:calc(100% - 120px);overflow:auto;padding:14px;border:1px solid var(--panel-bd);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);overscroll-behavior:contain}
.map-directory label{display:block;font-size:.75rem;margin:0 0 6px}.map-directory input,.map-directory select{width:100%;margin-bottom:12px;box-sizing:border-box;box-shadow:none}
.map-directory p,.place-citizens p{font-size:.73rem;color:var(--ink-dim);line-height:1.5}
#mapResults button,.place-citizens button{display:block;width:100%;text-align:left;padding:10px 6px;border-bottom:1px solid var(--panel-bd);color:var(--ink)}
#mapResults button:hover,.place-citizens button:hover{background:var(--panel-2);color:var(--accent)}
#mapResults strong,.place-citizens strong{display:block;font-size:.8rem}#mapResults small,.place-citizens small{display:block;font-size:.7rem;color:var(--ink-dim);margin-top:4px;line-height:1.4}
.place-citizens{margin-top:12px;max-height:240px;overflow:auto}.place-citizens>b{font-size:.8rem}
.map-tooltip{position:absolute;z-index:6;pointer-events:none;max-width:250px;padding:9px 11px;border-radius:9px;background:var(--panel);border:1px solid var(--accent);box-shadow:var(--shadow);font-size:.76rem;line-height:1.4}
.event-map-hint{display:block;font-size:.65rem;color:var(--accent);margin-top:5px}
.map-directory[hidden],.map-tooltip[hidden]{display:none}
.me-card .mc-h{flex-wrap:wrap}.me-card .mc-btns{width:100%;display:flex;margin:5px 0;gap:7px}.me-card .mc-mailbtn{width:auto;padding:5px 9px;font:inherit;font-size:.7rem;min-height:30px}
.me-card .mc-row>span:first-child{width:78px!important;font-size:.7rem!important;flex-shrink:0}.mc-alert{font-size:.74rem;color:var(--accent);margin:8px 0;line-height:1.4}
.mc-primary{display:flex;gap:8px;margin-top:10px}.mc-primary button{padding:9px;border:1px solid var(--accent);border-radius:8px;font-size:.75rem;color:var(--accent)}.mc-primary button:first-child{background:var(--accent);color:#251e35;flex:1;font-weight:700}
#citizenProfile{width:min(860px,calc(100vw - 48px));max-height:calc(100dvh - 64px);padding:0;border:1px solid var(--panel-bd);border-radius:18px;background:var(--panel);color:var(--ink);box-shadow:0 24px 100px #0008;overflow:hidden}
#citizenProfile[open]{display:flex;flex-direction:column}#citizenProfile::backdrop{background:#100e24b8;backdrop-filter:blur(5px)}
.profile-header{display:flex;justify-content:space-between;align-items:center;padding:22px 26px;border-bottom:1px solid var(--panel-bd)}.profile-header small{color:var(--accent);letter-spacing:.12em;font-size:.65rem}.profile-header h2{font-size:1.7rem;margin:5px 0 0}.profile-header button{width:40px;height:40px;color:var(--ink);font-size:1.2rem;border-radius:8px}
.profile-tabs{display:flex;gap:6px;padding:12px 26px;border-bottom:1px solid var(--panel-bd);flex-wrap:wrap}.profile-tabs button,.profile-footer button,#profileContent button{padding:9px 12px;border:1px solid var(--panel-bd);border-radius:8px;color:var(--ink);font:inherit;font-size:.8rem}.profile-tabs button[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--panel-2)}
#profileContent{padding:24px 26px;overflow:auto;overscroll-behavior:contain;min-height:250px;line-height:1.55;font-size:.88rem}#profileContent h3{font-size:1rem;margin:0 0 10px}#profileContent p{margin:7px 0}.profile-muted{color:var(--ink-dim);font-size:.8rem}.profile-identity{display:flex;align-items:center;gap:18px}.profile-identity img{width:80px;height:80px;border-radius:16px;background:var(--panel-2)}.profile-block{margin-top:22px;padding-top:18px;border-top:1px solid var(--panel-bd)}
.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px}.profile-stat{padding:14px;border:1px solid var(--panel-bd);border-radius:10px;background:var(--panel-2)}.profile-stat span,.profile-stat strong{display:block}.profile-stat strong{font-size:1.1rem;margin:7px 0}.profile-stat meter{width:100%;height:12px}
.profile-footer{padding:15px 26px;border-top:1px solid var(--panel-bd);display:flex;gap:8px;flex-wrap:wrap}.profile-footer button:first-child{color:var(--accent);border-color:var(--accent)}.profile-asset{padding:14px 0;border-bottom:1px solid var(--panel-bd)}.profile-asset time{font-size:.75rem;color:var(--ink-dim)}.profile-finances{margin:0}.profile-finances>div{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--panel-bd)}.profile-finances dd{margin:0;font-weight:700;white-space:nowrap}.profile-total{color:var(--accent)}
.profile-identity{padding:18px;background:var(--panel-2);border:1px solid var(--panel-bd);border-radius:16px;gap:22px}.profile-identity img{width:112px;height:112px;flex:none;border-radius:22px;object-fit:cover}.profile-identity>div{min-width:0}.profile-identity p{overflow-wrap:anywhere}.profile-stat span{color:var(--ink-dim);font-size:.78rem}.profile-block h3{color:var(--ink)}
@media(max-width:650px){.profile-stats{grid-template-columns:repeat(2,1fr)}#citizenProfile{width:calc(100vw - 24px)}.profile-header,.profile-tabs,#profileContent,.profile-footer{padding:14px}.profile-identity{gap:14px;padding:14px}.profile-identity img{width:80px;height:80px}}
#profileContent{scrollbar-width:thin;scrollbar-color:var(--panel-bd) transparent}.profile-stat meter{color-scheme:dark}
.place-address{font-size:.74rem;color:var(--ink-dim);margin:10px 0}.place-owned{padding:12px;border:1px solid var(--accent);border-radius:9px;background:var(--panel-2);font-size:.78rem;margin:12px 0}.place-owned b,.place-owned span{display:block;margin-bottom:6px}.place-owned button{color:var(--accent);text-align:left;padding:6px 0;text-decoration:underline}
.canvas-wrap .legend{display:none}.map-tools button[hidden]{display:none}
.map-tools #mapMode.map-status-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.canvas-wrap .map-directory{top:62px;max-height:calc(100% - 82px)}
.me-card .mc-h{padding-right:28px}.mc-compact{position:absolute;right:9px;top:8px;width:28px;height:28px;border:1px solid var(--panel-bd);border-radius:7px;color:var(--ink);background:var(--panel-2);font-size:1.2rem;z-index:1}.mc-compact:hover{border-color:var(--accent)}
.me-card.compact .mc-sub,.me-card.compact .mc-act,.me-card.compact .mc-row,.me-card.compact .mc-alert,.me-card.compact .mc-finance,.me-card.compact #meAssets,.me-card.compact #mcFollow{display:none!important}
.me-card.compact{width:240px}.me-card.compact .mc-primary{margin-top:8px}
.feed-controls{padding:0 14px 10px;border-bottom:1px solid var(--panel-bd);font-size:.75rem}.feed-controls>label:first-child{margin-right:8px;color:var(--ink-dim)}.feed-controls select{background:var(--panel-2);color:var(--ink);border:1px solid var(--panel-bd);border-radius:8px;padding:7px;font:inherit;max-width:80%}.feed-condense{display:flex;align-items:center;gap:7px;margin-top:10px;cursor:pointer}.feed-condense[hidden]{display:none}.feed-condense input{accent-color:var(--accent)}#feedContext{font-size:.68rem;color:var(--ink-dim);line-height:1.4;margin:8px 0 0}.feed-empty{padding:15px;color:var(--ink-dim);font-size:.8rem}.feed-empty[hidden]{display:none}

/* Place details reveal depth without expanding the whole sidebar. */
.place-section{border-top:1px solid var(--panel-bd);margin-top:10px;font-size:.8rem}
.place-section summary{cursor:pointer;padding:12px 0;font-weight:700;color:var(--ink)}
.place-section summary span{float:right;color:var(--ink-dim);font-weight:400}
.place-section summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.place-section-body{padding:0 0 10px;line-height:1.6;color:var(--ink-dim)}
.place-section-body p{margin:4px 0 8px}
.place-business{padding:8px 10px;background:var(--panel-2);border-radius:8px;margin-bottom:6px}
.place-business strong{color:var(--ink)}
.place-inspector .place-citizens{max-height:230px;overflow-y:auto;overscroll-behavior:contain;margin-top:0}

.citizen-place-marker{position:absolute;z-index:5;transform:translateX(-50%);max-width:240px;padding:8px 12px;border:1px solid var(--accent);border-radius:12px;background:var(--panel);color:var(--accent);font:700 .72rem/1.4 var(--font-mono);box-shadow:0 4px 16px #0003;cursor:pointer;text-align:center}
.citizen-place-marker[hidden]{display:none}
.citizen-place-marker:hover{background:var(--panel-2)}
.citizen-place-marker:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.citizen-place-marker{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:7px 11px}

.weather-status{font-size:.65rem;color:var(--ink-dim);border-left:1px solid var(--panel-bd);padding-left:8px;margin-left:4px;white-space:nowrap}

.newsbar{background:var(--panel)}
.newsbar .tag{background:var(--panel-2);color:var(--ink-dim)}
.newsbar.news-fresh .tag{background:var(--accent);color:var(--accent-ink)}

/* Profile refinement: compact chrome and scannable content. */
.profile-header{padding:14px 24px}.profile-header h2{font-size:1.35rem}.profile-tabs{padding:10px 24px}.profile-footer{padding:11px 24px}#profileContent{padding:18px 24px}.profile-identity{padding:14px;gap:16px}.profile-identity img{width:80px;height:80px;border-radius:16px}.profile-block{margin-top:16px;padding-top:14px}.profile-stats{margin-top:14px;gap:10px}.profile-finances>div{padding:8px 0}.profile-asset{padding:12px 14px;margin:10px 0;border:1px solid var(--panel-bd);border-radius:12px;background:var(--panel-2);overflow-wrap:anywhere}.profile-contact{display:flex;align-items:center;gap:12px}.profile-contact img,.profile-contact .profile-initial{width:42px;height:42px;flex:none;border-radius:12px;background:var(--panel);object-fit:cover}.profile-initial{display:grid;place-items:center;color:var(--accent);font-weight:700}.profile-contact>div{flex:1;min-width:0}.profile-contact p{font-size:.78rem}.profile-event{padding:10px 0 10px 14px;margin:8px 0;border:0;border-left:2px solid var(--panel-bd);border-radius:0;background:transparent}.profile-event details{font-size:.75rem;color:var(--ink-dim)}.profile-event summary{cursor:pointer}.profile-tabs button:focus-visible,.profile-footer button:focus-visible,#profileContent button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:650px){.profile-contact{flex-wrap:wrap}.profile-header,.profile-tabs,.profile-footer,#profileContent{padding:12px}}

/* Citizen summary: identity first, details live in the phone. */
.me-card .mc-btns{margin:10px 0 12px}.me-card .mc-mailbtn{min-height:34px;padding:7px 13px}
.me-card .mc-primary button{flex:1;background:var(--panel-2);color:var(--ink);border-color:var(--panel-bd);font-weight:600}
.me-card .mc-primary button:hover,.me-card .mc-primary button:focus-visible{border-color:var(--accent);color:var(--accent)}
.me-card.compact .mc-btns{margin:8px 0 0}.me-card.compact .mc-mailbtn{width:100%}
.me-card .mc-assets-toggle:focus-visible,.me-card .mc-mailbtn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.me-card.compact .mc-btns{display:flex!important}

.map-directory-header{position:sticky;top:-14px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-14px -14px 14px;padding:8px 14px;background:var(--panel);border-bottom:1px solid var(--panel-bd)}
.map-directory-header h2{font:inherit;font-size:.9rem;margin:0;color:var(--ink)}
.map-directory-header button{min-height:44px;padding:8px 12px;border:1px solid var(--panel-bd);border-radius:8px;background:var(--panel);color:var(--ink);font:inherit;font-size:.76rem;cursor:pointer}
.map-directory-header button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

.city-public-archive{width:min(560px,calc(100vw - 32px));max-height:80vh;box-sizing:border-box;padding:16px;border:1px solid var(--panel-bd);border-radius:12px;background:var(--panel);color:var(--ink);box-shadow:var(--shadow);overflow:auto}
.city-public-archive::backdrop{background:rgba(0,0,0,.45)}
.city-public-archive>header{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:-16px;background:var(--panel);padding:12px 0;z-index:1}
.city-public-archive h2{margin:0;font-size:1.1rem;overflow-wrap:anywhere}
.city-public-archive button{min-height:44px;padding:8px 12px;background:var(--panel);color:var(--ink);border:1px solid var(--panel-bd);border-radius:8px;cursor:pointer}
.city-public-archive button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
