:root{color-scheme:light;--bg:#faf8f3;--text:#10223a;--muted:#7b8584;--accent:#2b6f50;--soft:#eaf0ea;--border:#dce3da;--sheet:#fffdfa;--pin:#fff;--glow:rgba(97,190,234,.18)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;transition:background .4s,color .4s}body.night{color-scheme:dark;--bg:#050914;--text:#f3f3fc;--muted:#9299ae;--accent:#a994ed;--soft:#161c30;--border:#34364f;--sheet:#111726;--pin:#b8a4f1;--glow:rgba(132,146,255,.2)}
button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #62b6e3;outline-offset:4px}button{color:inherit}button:disabled{opacity:.5;cursor:wait}.hidden{display:none!important}
#app{height:100svh;min-height:600px;max-width:1100px;margin:auto;display:flex;flex-direction:column;padding:max(20px,env(safe-area-inset-top)) 24px max(14px,env(safe-area-inset-bottom));overflow:hidden}header{display:flex;align-items:center;justify-content:space-between;flex:none;position:relative;z-index:3}.brand{text-align:center}.brand-logo{display:block;width:72px;height:72px;object-fit:contain;margin:0 auto}h1{font-size:clamp(27px,4vw,42px);font-weight:750;letter-spacing:-1.6px;margin:8px 0 0}.round{border:0;background:var(--soft);width:44px;height:44px;border-radius:50%;font-size:25px;display:grid;place-items:center}.subtitle{text-align:center;color:var(--muted);font-size:14px;margin:13px 0 0;flex:none;letter-spacing:.1px}
#stage{position:relative;flex:1;min-height:260px;margin:0 -24px}#earth{position:absolute;width:100%;height:100%;touch-action:none;cursor:grab;outline-offset:-8px}#earth:active{cursor:grabbing}#pins{position:absolute;inset:0;pointer-events:none;overflow:hidden}.pin{position:absolute;width:34px;height:34px;transform:translate(-50%,-100%);border:2px solid var(--pin);border-radius:50%;background:#f1e8d4;box-shadow:0 5px 14px #04132233;pointer-events:auto;padding:0;display:grid;place-items:center;font-size:21px}.pin:after{content:"";position:absolute;left:50%;bottom:-10px;width:6px;height:6px;transform:translateX(-50%);border:1px solid #fff;border-radius:50%;background:#fff;box-shadow:0 1px 3px #04132230;pointer-events:none}.pin img{width:100%;height:100%;object-fit:cover;border-radius:50%}.pin:hover,.pin:focus-visible{z-index:99!important;box-shadow:0 0 0 6px #ffffff40}.pin:not(.dog-cluster){border-color:#fff;box-shadow:0 2px 8px #04132230}.pin.mine{border-color:#f2b632;z-index:100}.pin.mine:hover,.pin.mine:focus-visible{z-index:101!important}.pin.mine:after{background:#f2b632}.zoom{position:absolute;right:20px;top:50%;display:flex;flex-direction:column;gap:6px;transform:translateY(-50%);z-index:4}.zoom button{width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:var(--sheet);font-size:20px;box-shadow:0 2px 8px #04132208}.zoom button:hover{background:var(--soft)}#loading{position:absolute;inset:45% 0 auto;text-align:center;color:var(--muted);pointer-events:none;font-size:14px}
footer{position:relative;z-index:3;flex:none;display:flex;flex-direction:column;align-items:center;padding:0 0 4px}.hint{font-size:13px;color:var(--muted);padding:10px 19px;background:var(--soft);border-radius:24px;margin:0 0 18px;max-width:100%;text-align:center}.hint span,.local-note span{opacity:.6;margin:0 5px}.primary{border:0;background:var(--accent);color:white;border-radius:32px;min-height:57px;font-size:18px;font-weight:600;letter-spacing:-.25px;width:100%;max-width:380px;display:flex;align-items:center;justify-content:center;gap:13px;padding:15px 24px}.primary span{font-size:30px;font-weight:300;line-height:20px}.night .primary{color:#100e23}.local-note{font-size:11px;color:var(--muted);margin:13px 0 0;letter-spacing:.15px}.cancel{border:0;background:transparent;color:var(--muted);padding:8px}.placing #stage .pin{pointer-events:none;opacity:.4}.placing #earth{cursor:crosshair}
dialog{border:1px solid var(--border);border-radius:28px;background:var(--sheet);color:var(--text);padding:28px;width:calc(100% - 32px);max-width:410px;max-height:90svh;overflow:auto;box-shadow:0 30px 120px #0005}dialog::backdrop{background:#04101c66;backdrop-filter:blur(8px)}.sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}h2{font-size:24px;letter-spacing:-.8px;margin:0;font-weight:700}.eyebrow{color:var(--accent);font-size:10px;letter-spacing:1.7px;font-weight:700;margin:0 0 9px}.close{width:33px;height:33px;font-size:23px;flex:none}.photo-picker{display:flex;align-items:center;gap:16px;cursor:pointer;border:1px dashed var(--border);padding:13px;border-radius:18px;font-size:14px!important;margin:0!important}#photo-preview{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--soft);font-size:35px;overflow:hidden;flex:none}#photo-preview img{width:100%;height:100%;object-fit:cover}.photo-picker small{display:block;margin-top:5px;color:var(--muted);font-weight:400}.avatars{display:flex;gap:8px;justify-content:center;margin:12px 0 24px}.avatars button{background:var(--soft);border:1px solid var(--border);border-radius:50%;width:39px;height:39px;font-size:23px}form>label{display:block;font-size:12px;font-weight:600;margin:18px 0 8px}label small{font-weight:400;color:var(--muted);margin-left:4px}input:not([type=checkbox]):not([type=file]){width:100%;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:12px;padding:13px 14px;font-size:16px}.coordinates{font-size:11px;color:var(--muted);margin:12px 0}.form-note{font-size:12px;color:var(--muted);line-height:1.6;margin:18px 0}#form-error{font-size:12px;color:#ce5140}#detail{text-align:center;position:relative;padding-top:40px}.detail-close{position:absolute;top:15px;right:15px}#detail-avatar{width:120px;height:120px;border:4px solid var(--pin);border-radius:50%;background:var(--soft);display:grid;place-items:center;font-size:66px;margin:0 auto 24px;overflow:hidden}#detail-avatar img{width:100%;height:100%;object-fit:cover}#detail-place{color:var(--muted);font-size:14px}.delete{border:0;background:transparent;color:#bf5549;padding:12px;font-size:13px}.check{display:flex;align-items:center;gap:10px;font-size:14px}.check input{accent-color:var(--accent);width:19px;height:19px}.secondary{width:100%;border:1px solid var(--border);border-radius:14px;padding:12px;background:var(--soft);margin-top:20px}.credits{font-size:10px;color:var(--muted);margin-top:26px}#toast{position:fixed;left:50%;bottom:150px;transform:translateX(-50%);z-index:20;background:var(--sheet);border:1px solid var(--border);border-radius:16px;padding:12px 20px;font-size:13px;box-shadow:0 8px 30px #0002;display:none;max-width:90%;text-align:center}
@media(min-width:700px){#app{padding-top:30px;padding-bottom:22px}.subtitle{font-size:15px}header{width:620px;max-width:100%;margin:auto}.zoom{right:calc(50% - 340px)}.hint{margin-bottom:16px}.pin{width:38px;height:38px;font-size:23px}}
@media(max-height:700px){#app{min-height:500px;padding-top:12px}.brand{display:flex;align-items:center;gap:8px}.brand-logo{width:44px;height:44px;margin:0}.brand h1{margin:0}h1{font-size:27px}.subtitle{margin-top:8px;font-size:12px}.hint{margin-bottom:10px;padding:7px 14px}.primary{min-height:49px;padding:12px 20px}.local-note{margin-top:8px}}
@media(prefers-reduced-motion:reduce){body{transition:none}}
.cloud-label{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin:24px 0 10px}#clouds{width:100%;accent-color:var(--accent)}.cloud-help{font-size:11px;color:var(--muted);line-height:1.5;margin:8px 0 0}
#detail-map{position:absolute;inset:0;visibility:hidden;pointer-events:none;z-index:1;background:var(--bg)}.map-detail #detail-map{visibility:visible;pointer-events:auto}.map-detail #earth{visibility:hidden;pointer-events:none}.map-detail #pins{z-index:2}.map-detail #stage{margin-top:16px;margin-bottom:16px}.map-detail .zoom{right:14px}.map-detail .pin{box-shadow:0 3px 9px #0003}#map-status{position:absolute;left:50%;top:16px;transform:translateX(-50%);z-index:5;background:var(--sheet);border:1px solid var(--border);border-radius:12px;padding:10px 14px;max-width:calc(100% - 100px);text-align:center;font-size:12px;box-shadow:0 3px 12px #0001}#map-retry{display:block;margin:6px auto 0;border:0;background:var(--accent);color:white;border-radius:6px;padding:5px 13px}.maplibregl-ctrl-attrib{font-size:9px!important;line-height:15px!important}.maplibregl-ctrl-scale{font-size:10px!important;background:var(--sheet)!important;color:var(--text)!important;border-color:var(--text)!important}.maplibregl-canvas:focus-visible{outline:3px solid #62b6e3;outline-offset:-3px}.map-detail.placing .maplibregl-canvas{cursor:crosshair!important}
#detail-map{display:none}.map-detail #detail-map{display:block}

/* Keep both surfaces mounted so the globe/map handoff can crossfade. */
#detail-map{display:none;visibility:visible;opacity:0;transition:opacity .45s ease;pointer-events:none}.map-mounted #detail-map{display:block}.map-detail #detail-map{opacity:1;pointer-events:auto}.map-detail #earth{visibility:visible;pointer-events:none}#stage,.map-detail #stage{margin-top:16px;margin-bottom:16px}
@media(prefers-reduced-motion:reduce){#detail-map{transition:none}}

.pin{left:0;top:0;will-change:transform}
/* Keep safety controls usable with touch and larger accessibility text. */
#privacy-panel{max-width:650px;text-align:left}#privacy-panel h2{font-size:21px}
.policy-content{font-size:14px;line-height:1.65}.policy-content h3{font-size:17px;margin-top:24px}.policy-content a{color:var(--accent);overflow-wrap:anywhere}
#publish-consent-row,#signup-agreement{font-size:12px;line-height:1.5;text-align:left;margin:16px 0}
[hidden]{display:none!important}.zoom button{width:44px;height:44px}.filter-button{min-height:44px}
@media(prefers-reduced-motion:reduce){#detail-map{transition:none}}

.dog-cluster{background:var(--accent);color:var(--sheet);font-size:15px;font-weight:700;border-color:var(--sheet)}#cluster-list .secondary{margin-top:8px;text-align:left}

.filter-bar{display:flex;gap:12px;align-items:center;justify-content:center;margin-top:12px;min-height:30px;flex:none}.filter-button{border:1px solid var(--border);background:var(--soft);border-radius:20px;padding:6px 14px;font-size:12px}#population-status{color:var(--muted);font-size:11px}select{width:100%;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:12px;color:var(--text);font:inherit}#filter-form .primary{margin-top:24px}

.offline-note{font-size:11px;color:var(--muted);text-align:center;margin:8px 0 0}.offline-note:empty{display:none}

/* Cluster counts remain quiet and leave terrain visible. */
.pin.dog-cluster{width:26px;height:22px;border-radius:11px;border-width:1px;font-size:9px;font-weight:600;background:color-mix(in srgb,var(--accent) 68%,transparent);color:var(--sheet);box-shadow:none;opacity:.8}.pin.dog-cluster:after{display:none}.pin.dog-cluster:hover,.pin.dog-cluster:focus-visible{opacity:1;box-shadow:0 0 0 2px #ffffff55}

#find-place{margin-top:8px}#place-results{font-size:12px;line-height:1.5;margin-top:10px}.place-result{display:block;width:100%;text-align:left;border:1px solid var(--border);background:var(--soft);color:var(--text);border-radius:12px;padding:12px;margin-top:6px;font-size:12px}

.account-button{position:relative;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--border);border-radius:50%;background:var(--sheet);color:var(--muted);padding:0;margin:0}.account-button.signed-in{color:var(--accent);background:var(--soft)}.account-status-dot{position:absolute;right:-1px;bottom:0;width:9px;height:9px;border:2px solid var(--sheet);border-radius:50%;background:var(--muted)}.signed-in .account-status-dot{width:12px;height:12px;background:var(--accent)}.signed-in .account-status-dot:after{content:"✓";display:block;color:var(--sheet);font-size:8px;line-height:8px;font-weight:700;text-align:center}#account-error{font-size:12px;color:#ce5140}#account-fields label{display:block;font-size:12px;font-weight:600;margin:14px 0 8px}

.header-spacer{width:44px;flex:none}.account-dock{position:fixed;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));display:flex;align-items:center;gap:8px;z-index:30}.account-dock #theme{width:36px;height:36px;font-size:22px}.account-button{box-shadow:0 2px 12px #0413220d}.modal-account{position:fixed;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));z-index:50}

.daylight-note{text-align:center;font-size:10px;color:var(--muted);margin:0 0 5px;flex:none;letter-spacing:.2px}.night .daylight-note,.map-detail .daylight-note{display:none}

#country-highlight{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#country-label{position:absolute;z-index:5;pointer-events:none;max-width:180px;border:1px solid var(--border);border-radius:10px;background:var(--sheet);color:var(--text);box-shadow:0 3px 12px #0001;font-size:11px;padding:6px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-detail #country-highlight{display:none}

#pole-animals{position:absolute;inset:0;pointer-events:none;overflow:hidden}#pole-animals img{position:absolute;width:38px;height:38px;object-fit:contain;filter:drop-shadow(0 2px 2px #071e3924);user-select:none}#pole-animals img[hidden]{display:none}.map-detail #pole-animals{display:none}

/* The globe owns the viewport; small controls live around its edges. */
#app{position:relative;height:100svh;min-height:0;max-width:none;padding:0}
#stage,.map-detail #stage{position:absolute;inset:0;min-height:0;margin:0}
header{position:absolute;top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));width:auto;max-width:calc(100% - 120px);margin:0}
.brand{display:flex;align-items:center;gap:8px;text-align:left}
.brand-logo{width:42px;height:42px;margin:0}
.brand h1{font-size:20px;letter-spacing:-.6px;margin:0}
.header-spacer{display:none}
header #settings{position:fixed;left:max(16px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));width:40px;height:40px;font-size:23px}
.subtitle{position:fixed;top:auto;bottom:max(26px,calc(env(safe-area-inset-bottom) + 10px));left:50%;transform:translateX(-50%);margin:0;font-size:12px;text-align:center;white-space:nowrap;letter-spacing:.15px;pointer-events:none;z-index:3}
.filter-bar{position:absolute;top:auto;bottom:max(16px,env(safe-area-inset-bottom));left:max(64px,calc(env(safe-area-inset-left) + 48px));margin:0;justify-content:flex-start;z-index:3;max-width:120px}
.filter-bar .filter-button{min-height:44px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--sheet);box-shadow:0 2px 8px #04132208}
#population-status{position:fixed;top:max(62px,calc(env(safe-area-inset-top) + 46px));left:max(16px,env(safe-area-inset-left));max-width:calc(100% - 32px)}
.offline-note{position:absolute;top:max(82px,calc(env(safe-area-inset-top) + 66px));left:16px;margin:0;text-align:left;z-index:3}
.daylight-note{position:absolute;bottom:max(72px,calc(env(safe-area-inset-bottom) + 54px));left:max(16px,env(safe-area-inset-left));margin:0;text-align:left;z-index:3}
footer{position:absolute;bottom:max(16px,env(safe-area-inset-bottom));right:max(16px,env(safe-area-inset-right));padding:0;align-items:flex-end}
footer .primary{width:auto;min-height:46px;padding:10px 20px;font-size:15px;gap:8px}
footer .primary span{font-size:24px}
footer .hint{font-size:11px;padding:0;background:none;margin:0 0 10px}
footer .local-note{display:none}
.zoom,.map-detail .zoom{right:max(16px,env(safe-area-inset-right))}
@media(max-width:500px){
 .brand-logo{width:35px;height:35px}.brand h1{font-size:18px}
 .filter-bar{max-width:100px}.filter-bar .filter-button{max-width:100px;padding:6px 12px}
 footer .primary{padding:10px 14px;font-size:14px}
 footer .hint{display:none}.daylight-note{font-size:9px}
 .zoom,.map-detail .zoom{top:auto;bottom:max(88px,calc(env(safe-area-inset-bottom) + 72px));transform:none}
}

/* Keep the footer phrase above the action row on compact screens. */
@media(max-width:650px){.subtitle{bottom:max(78px,calc(env(safe-area-inset-bottom) + 62px));font-size:11px}.daylight-note{bottom:max(108px,calc(env(safe-area-inset-bottom) + 92px))}}
@media(max-width:360px){.filter-bar,.filter-bar .filter-button{max-width:84px}}

.custom-icon-button{margin-top:0}.avatars{margin-bottom:12px}.icon-help{font-size:11px;color:var(--muted);line-height:1.5;margin:8px 0 16px}

textarea{width:100%;resize:vertical;min-height:80px;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:12px;padding:12px;font:inherit;font-size:15px}
#detail{max-width:440px;padding:32px 24px 24px}#detail-avatar{width:100px;height:100px;margin-bottom:16px;border-width:3px}.dog-profile-header h2{font-size:30px}.dog-profile-header .eyebrow{font-size:9px}.dog-profile-header #detail-meta{margin:10px 0 6px}.dog-profile-header #detail-place{font-size:12px;margin:0}.profile-bio{font-size:14px;line-height:1.6;margin:20px 0;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}.owner-card{display:flex;align-items:center;gap:12px;width:100%;border:1px solid var(--border);border-radius:16px;padding:12px;background:var(--soft);color:var(--text);text-align:left;margin:20px 0}.owner-card small{display:block;font-size:8px;letter-spacing:1px;color:var(--muted);margin-bottom:4px}.owner-card strong{font-size:13px}.owner-card>span:last-child{margin-left:auto}.owner-avatar{width:34px;height:34px;display:grid;place-items:center;background:var(--sheet);border-radius:50%;font-size:20px}.profile-section-title{text-align:left;font-size:13px;margin:20px 0 10px}.profile-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.profile-gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;background:var(--soft)}.gallery-item{position:relative}.gallery-item button{position:absolute;right:3px;top:3px;border:0;border-radius:50%;background:var(--sheet);color:var(--text);width:24px;height:24px}.profile-status{font-size:11px;margin:16px 0;color:var(--muted)}#detail>.secondary{margin-top:10px}.profile-manage{text-align:left;border-top:1px solid var(--border);margin-top:20px;padding-top:14px}.profile-manage summary{font-size:12px;color:var(--muted);cursor:pointer}.profile-manage .secondary{margin-top:12px}.owner-dog{display:flex;align-items:center;gap:12px;width:100%;background:var(--soft);color:var(--text);border:1px solid var(--border);border-radius:16px;padding:12px;margin:10px 0;text-align:left}.owner-dog-avatar{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;overflow:hidden;font-size:28px;flex:none}.owner-dog-avatar img{width:100%;height:100%;object-fit:cover}.owner-dog small{display:block;color:var(--muted);margin-top:4px}
/* Clean photo card: one featured image, then a compact gallery and utilities. */
#detail{max-width:520px;padding:22px;text-align:left;border-radius:28px}#detail .detail-close{top:18px;right:18px;background:transparent;width:40px;height:40px}
.profile-brand{display:flex;align-items:center;gap:8px;color:#ad7000;font-size:18px;font-weight:750;padding-right:42px;margin-bottom:24px}.profile-brand img{object-fit:contain;width:30px;height:30px}
.dog-profile-header{display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px;align-items:center}#detail-avatar{width:64px;height:64px;margin:0;border-width:2px;border-color:#f3c444;font-size:38px}.dog-profile-header h2{font-size:27px;overflow-wrap:anywhere;line-height:1.15}.dog-profile-header #detail-place{font-size:13px;margin:6px 0 0;line-height:1.4;overflow-wrap:anywhere}.dog-profile-header #detail-meta{font-size:12px;margin:4px 0 0;line-height:1.5}
.owner-card{width:auto;max-width:100%;display:inline-flex;gap:6px;margin:10px 0 16px;padding:2px 0;border:0;background:transparent;border-radius:6px;color:var(--muted)}.owner-card strong{font-size:11px;font-weight:500}.owner-card>span:last-child{margin-left:4px}
#detail-gallery-section .profile-section-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%)}
#detail .profile-photo{display:block;border:0;padding:0;background:var(--soft);border-radius:10px;overflow:hidden;aspect-ratio:1;cursor:zoom-in;width:100%}#detail .profile-photo img{display:block;border-radius:0;width:100%;height:100%;object-fit:cover}#detail-hero .profile-photo{aspect-ratio:1.15;border-radius:16px}#detail-gallery{gap:6px;margin-top:6px}#detail-gallery:empty{display:none}
.profile-bio{font-size:14px;line-height:1.55;margin:16px 0;white-space:pre-wrap;overflow-wrap:anywhere}.profile-actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 0}.profile-actions button{flex:1 1 auto;border:0;border-radius:22px;background:#fff5df;color:#47381d;font-size:12px;padding:10px 12px;min-height:44px;display:flex;align-items:center;justify-content:center;gap:7px}.profile-actions button span{font-size:20px;color:#b97500;line-height:1}.profile-actions button:hover{background:#ffebbd}
.gallery-empty{display:grid;place-items:center;min-height:150px;background:var(--soft);border-radius:16px;color:var(--muted);font-size:13px;margin:0}.gallery-empty[hidden]{display:none}.profile-manage{margin-top:18px;padding-top:12px}.profile-manage summary{font-size:11px}.night .profile-brand{color:#ffd65a}.night .profile-actions button{background:#30291c;color:#ffeac0}.night .profile-actions button span{color:#ffd65a}
#photo-viewer{max-width:760px;padding:44px 16px 12px;text-align:center}#viewer-image{display:block;width:100%;max-height:70svh;object-fit:contain;border-radius:6px}.viewer-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;color:var(--muted);font-size:12px}.viewer-controls button{border:0;background:var(--soft);color:var(--text);border-radius:8px;width:44px;height:36px;font-size:24px}.viewer-controls button:disabled{opacity:.3}
@media(max-width:600px){#detail{padding:20px 16px;max-height:92svh}.dog-profile-header{column-gap:12px}.dog-profile-header h2{font-size:23px}.profile-brand{margin-bottom:20px}.profile-actions button{min-height:44px}.profile-actions{gap:6px}.profile-actions button{padding:8px 10px}}
#my-pups-dock{position:absolute;top:max(84px,calc(env(safe-area-inset-top) + 68px));left:max(16px,env(safe-area-inset-left));z-index:3;max-width:min(240px,calc(100vw - 100px));padding:8px 10px;background:var(--sheet);border:1px solid var(--border);border-radius:14px;box-shadow:0 2px 8px #04132208}#my-pups-dock[hidden]{display:none}#my-pups-dock>span{font-size:10px;color:var(--muted);display:block;margin-bottom:5px}#my-pup-icons{display:flex;gap:7px;overflow-x:auto;padding:2px;max-width:100%}#my-pup-icons button{flex:none;width:40px;height:40px;display:grid;place-items:center;padding:0;border:2px solid var(--pin);border-radius:50%;background:var(--soft);font-size:25px;overflow:hidden}#my-pup-icons img{width:100%;height:100%;object-fit:cover}.placing #my-pups-dock{display:none}

/* A crisp, decorative Earth behind profiles, independent of the map camera. */
#detail::backdrop{background:#050e1e url("assets/profile-earth-backdrop.png") center / cover no-repeat;backdrop-filter:none;-webkit-backdrop-filter:none}

/* Equal-sized photo previews; the viewer loads the untouched original. */
#detail-hero{display:none}#detail-gallery{margin-top:0;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr))}#detail-gallery .profile-photo{aspect-ratio:1;border-radius:10px}#detail-gallery .profile-photo img{object-fit:cover}

.profile-reactions{display:flex;align-items:center;gap:12px;margin:16px 0 8px}.profile-reactions>span{font-size:11px;color:var(--muted)}#like-pup{position:relative;display:flex;align-items:center;gap:10px;padding:0 8px 0 0;border:0;background:transparent;color:#a56800;font-weight:700;min-height:48px}#like-coin{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;padding:4px;background:linear-gradient(135deg,#fff4a5,#e6a817 48%,#ffe98d);box-shadow:inset 0 0 0 1px #ba7b16,0 2px 5px #96671022;overflow:hidden;font-size:26px}#like-coin img{width:100%;height:100%;object-fit:cover;border-radius:50%;border:1px solid #ba7b16}.coin-thumb{position:absolute;left:30px;bottom:-1px;font-size:14px;line-height:19px;background:#ffe690;border-radius:50%;width:20px;height:20px;text-align:center}#like-pup[aria-pressed=true] #like-coin{box-shadow:0 0 0 3px #efc65066,inset 0 0 0 1px #ba7b16}.night #like-pup{color:#ffdc73}
#like-pup:disabled{opacity:1;cursor:default}#like-pup:disabled #like-count{color:var(--muted)}
/* Tint the entire portrait into the coin's gold surface, including highlights. */
#like-coin{isolation:isolate;background:linear-gradient(135deg,#fff1a1 5%,#dfaa28 48%,#ffe78a 80%,#c58a15)}#like-coin img{filter:grayscale(1) contrast(.75) brightness(1.2);mix-blend-mode:multiply;border-color:#af7615}.coin-thumb{filter:grayscale(1) sepia(1) saturate(3);background:linear-gradient(135deg,#fff0a0,#d69b1f)}

/* A small minted meme coin: ridged edge and an engraved gold portrait. */
#like-coin{position:relative;width:52px;height:52px;padding:6px;background:linear-gradient(135deg,#fff3a9,#dca020 46%,#ffe78a 72%,#b8750c);border:2px solid #c18a1b;box-shadow:inset 0 0 0 1px #ffef9d,inset 0 0 0 3px #bd8311,0 3px 0 #a36a09,0 5px 8px #96671030;font-size:28px}#like-coin:after{content:"";position:absolute;inset:0;border-radius:50%;border:3px dotted #ffdf78;pointer-events:none}#like-coin img{filter:url(#pup-coin-engrave);mix-blend-mode:multiply;border:1px solid #b47812}.coin-thumb{left:39px;bottom:-1px;box-shadow:0 1px 2px #80500740}#like-pup{min-height:56px}

/* Compact photo-card information and matching gold outline controls. */
.dog-profile-header{grid-template-columns:64px minmax(0,1fr) 44px;gap:12px;align-items:start}#detail-avatar{border:0}.dog-profile-header #detail-place{color:var(--text);margin-top:5px}.dog-profile-header #detail-meta{margin-top:4px}#save-pup{display:grid;place-items:center;background:transparent;border:0;width:44px;height:44px;padding:9px;color:#e4a000}#save-pup svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}#save-pup[aria-pressed=true] svg{fill:#ffcf45;stroke:#bd8100}.profile-actions svg{width:20px;height:20px;flex:none;fill:none;stroke:#e4a000;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.profile-actions .map-icon{stroke:none;fill:#e4a000}.profile-actions .map-icon circle{fill:#fff5df}.owner-card{margin:10px 0 0}.profile-reactions{margin-top:12px}#detail-gallery-section{margin-top:18px}
@media(max-width:600px){.dog-profile-header{grid-template-columns:56px minmax(0,1fr) 40px;gap:10px}#detail-avatar{width:56px;height:56px}.dog-profile-header #detail-place{font-size:12px}.profile-actions button{padding:9px 10px;gap:6px}}

@font-face{font-family:"Hugging Pup Rounded";src:url("assets/fonts/Nunito.ttf") format("truetype");font-weight:200 1000;font-style:normal;font-display:swap}body{font-family:"Hugging Pup Rounded",ui-rounded,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.brand h1,.profile-brand{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.dog-profile-header h2{font-weight:800;letter-spacing:-.3px}.profile-actions button{font-weight:750}#detail-meta,#detail-place{font-weight:600}
#like-coin:not(:has(img)){filter:grayscale(1) sepia(1) saturate(3)}

/* One flowing footer keeps text and controls separate at every breakpoint. */
#app>footer{position:absolute;inset:auto 0 0;display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:8px max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));pointer-events:none}
#app>footer .subtitle,#app>footer .hint,#app>footer .daylight-note{position:static;inset:auto;transform:none;white-space:normal;margin:0;padding:0;max-width:100%;text-align:center;overflow-wrap:anywhere;line-height:1.4;background:none;font-size:11px}
#app>footer .daylight-note{font-size:9px}
.globe-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;pointer-events:none}
.globe-actions>button,.globe-actions .filter-button{pointer-events:auto;flex:none}
.globe-actions #settings{position:static;width:40px;height:44px;font-size:23px}
.globe-actions .filter-bar{position:static;inset:auto;max-width:none;margin:0;min-height:0}
.globe-actions .filter-button{max-width:min(180px,40vw)}
.globe-actions #add{margin-left:auto;max-width:100%;min-width:0;font-size:14px;min-height:44px;padding:10px 14px}
.globe-actions #cancel-placement{min-height:44px}
.zoom,.map-detail .zoom{bottom:calc(var(--globe-footer-height,140px) + 12px);top:auto;transform:none}
header{max-width:calc(100% - 124px)}.brand{min-width:0}.brand-logo{flex:none}.brand h1{overflow-wrap:anywhere;min-width:0}
.sheet-heading h2,.dog-profile-heading{min-width:0;overflow-wrap:anywhere}.sheet-heading{align-items:flex-start}.sheet-heading .close{flex-shrink:0}
#filter-form>label{display:flex;align-items:center;gap:8px}#filter-form>label svg,.filter-search>svg{width:19px;height:19px;flex:none;fill:none;stroke:#e4a000;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.filter-search{position:relative}.filter-search>svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);pointer-events:none}#filter-form .filter-search input{padding-left:42px}
@media(max-width:500px){#app>footer .hint{display:none}}
@media(max-width:360px){#app>footer{padding-left:10px;padding-right:10px}.globe-actions{gap:6px}.globe-actions .filter-button{padding:6px 10px}.brand{gap:5px}.brand h1{font-size:16px}.brand-logo{width:32px;height:32px}header{left:10px}.account-dock{right:10px;gap:6px}}
@media(max-height:420px){#app>footer .subtitle,#app>footer .daylight-note,#app>footer .hint{display:none}#my-pups-dock{max-height:75px;overflow:auto}}

/* A light, compact pack strip instead of a tall card. */
#my-pups-dock{display:flex;align-items:center;gap:9px;padding:5px 7px 5px 11px;max-width:min(280px,calc(100vw - 100px));border-radius:999px;border:1px solid var(--border);box-shadow:0 3px 12px #04132208;background:var(--sheet)}
#my-pups-dock>span{margin:0;flex:none;font-size:11px;font-weight:750;color:var(--text)}#my-pup-icons{gap:6px;padding:2px;min-width:0}#my-pup-icons button{width:34px;height:34px;border:2px solid var(--sheet);outline:1px solid var(--border);font-size:22px;transition:transform .15s,outline-color .15s}#my-pup-icons button:hover{transform:translateY(-1px);outline-color:#e4a000}#my-pup-icons button:focus-visible{outline:2px solid #e4a000;outline-offset:1px}

/* Keep the globe and map canvas above the entire footer, including wrapped text. */
#stage,.map-detail #stage{bottom:var(--globe-footer-height,140px)}
.zoom,.map-detail .zoom{bottom:12px}

.friend-row{margin:14px 0;padding:14px;border:1px solid var(--border);border-radius:16px;text-align:left;overflow-wrap:anywhere}.friend-row>strong,.friend-row>small{display:block}.friend-row>small{color:var(--muted);margin-top:5px}.friend-row p{font-size:14px}.friend-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.friend-actions .secondary{width:auto;margin:0;min-height:44px;font-size:12px}#friends-error,#location-share-error{color:#b74b38;font-size:13px}#meeting-share-fields>label{display:block;font-size:12px;margin:18px 0 8px}

/* Keep dialogs scrollable without the exposed scrollbar track. */
dialog{scrollbar-width:none;-ms-overflow-style:none}dialog::-webkit-scrollbar{width:0;height:0;display:none}

/* Center the name with its logo; keep the tagline in the measured footer. */
.brand-copy{min-width:0}.brand-tagline{position:static;margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.3;text-align:center;max-width:100%;overflow-wrap:anywhere}
#app>footer{gap:0;padding-top:4px}#app>footer .hint{display:none}
.brand-logo{align-self:center}
@media(max-width:500px){.brand-tagline{font-size:10px}}

/* Small pup shortcuts belong with the controls, away from the globe. */
.globe-actions #my-pups-dock{position:static;inset:auto;display:flex;flex:0 1 auto;min-width:0;max-width:112px;border:0;border-radius:0;background:none;box-shadow:none;padding:0;pointer-events:auto;gap:0}
#my-pups-dock>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.globe-actions #my-pup-icons{gap:4px;padding:3px}.globe-actions #my-pup-icons button{width:30px;height:30px;font-size:19px;outline-color:var(--border)}
@media(max-width:500px){.globe-actions #my-pups-dock{max-width:36px}.globe-actions #add{font-size:12px;padding:10px}.globe-actions{gap:6px}}

.placing .globe-actions #my-pups-dock{display:none}

#detail-avatar{padding:0;flex:none;cursor:pointer}#detail-avatar:disabled{opacity:1;cursor:default}#detail-avatar:not(:disabled):hover{outline:2px solid #e4a000;outline-offset:3px}
[data-editor-area]{text-align:left}[data-editor-area]>label:not(.photo-picker){display:block;margin:20px 0 8px;font-size:12px;font-weight:600}

/* Quiet, familiar photo controls with deliberate space above the grid. */
.gallery-toolbar{display:flex;justify-content:flex-end;margin-bottom:14px}.gallery-add{width:44px;height:44px;padding:10px;border:1px solid var(--border);border-radius:14px;background:var(--soft);color:var(--accent)}
.gallery-add svg,#editor[data-mode="gallery"] #save svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#editor[data-mode="gallery"] .eyebrow{display:none}#editor[data-mode="gallery"] .sheet-heading{margin-bottom:18px}
#editor[data-mode="gallery"] #save{display:grid;place-items:center;width:48px;height:48px;min-width:48px;padding:12px;margin:20px 0 0 auto;border-radius:50%}
#editor[data-mode="gallery"] .icon-help{margin-top:14px;font-size:11px}

.profile-actions{gap:8px;margin-top:10px}.profile-actions #explore-area,.profile-actions #edit-pup,.profile-actions #add-profile-photos{flex:0 0 44px;width:44px;height:44px;padding:12px;border-radius:14px;font-size:0;gap:0}.profile-actions svg{width:20px;height:20px}
.profile-reactions{margin:10px 0 6px;gap:8px}#like-coin{width:32px;height:32px;padding:4px;border-width:1px;font-size:19px}#like-coin:after{border-width:2px}#like-pup{min-height:44px;gap:8px}.coin-thumb{left:24px;bottom:3px;width:14px;height:14px;font-size:10px;line-height:14px}
/* A small, text-only friends inbox. Message text is always rendered as text. */
.conversation-row{width:100%;display:flex;align-items:center;gap:12px;padding:14px 6px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);text-align:left;cursor:pointer}.conversation-row>span:nth-child(2){flex:1;min-width:0}.conversation-row strong,.conversation-row small{display:block}.conversation-row small{margin-top:4px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.chat-avatar{width:42px;height:42px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--soft);color:var(--accent);font-weight:800}.unread-count{background:var(--accent);color:var(--bg);border-radius:14px;padding:3px 7px;font-size:12px;font-weight:800}
#conversation-panel[open]{display:flex;flex-direction:column;width:min(540px,calc(100vw - 24px));height:min(760px,calc(100svh - 24px));max-height:calc(100svh - 24px);padding:20px;overflow:hidden}.chat-header{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--border);flex:none}.chat-header>div{flex:1;min-width:0}.chat-header h2{font-size:20px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-header small,.chat-note{color:var(--muted);font-size:11px}.chat-block{min-height:44px;padding:6px;border:0;background:none;color:var(--muted);cursor:pointer}.chat-header .round{flex:none;width:40px;height:40px}#chat-history{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:none;padding:14px 0}#message-list{margin:0;padding:0;list-style:none}.message-row{display:flex;align-items:center;gap:4px;margin:10px 0}.message-row.own{justify-content:flex-end}.message-bubble{max-width:82%;padding:10px 14px;border-radius:18px 18px 18px 4px;background:var(--soft);color:var(--text)}.own .message-bubble{background:#e9f2dd;color:#193d2b;border-radius:18px 18px 4px 18px}.night .own .message-bubble{background:#30354c;color:#f3f3fc}.message-bubble p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px}.message-bubble time{display:block;font-size:10px;opacity:.65;margin-top:5px}.message-report{display:grid;place-items:center;width:44px;height:44px;flex:none;border:0;background:none;color:var(--muted);cursor:pointer}.message-report svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}.message-composer{display:flex;align-items:center;gap:8px;flex:none;padding-top:12px;border-top:1px solid var(--border)}.message-composer textarea{flex:1;min-width:0;margin:0;max-height:120px;min-height:52px;padding:12px;font-size:15px;resize:none}.message-composer button{width:44px;height:44px;flex:none;border-radius:50%;border:0;background:var(--accent);color:var(--bg);display:grid;place-items:center;cursor:pointer}.message-composer button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7}.message-composer button:disabled{opacity:.5}.chat-note{margin:8px 0 0;flex:none}.gallery-more{margin:12px auto;width:auto;padding:8px 18px;min-height:44px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:480px){#conversation-panel[open]{padding:14px}.chat-header{gap:6px}.chat-header h2{font-size:17px}.chat-note{font-size:10px}}

/* Reserve header room for theme, messages and account buttons. */
header{max-width:calc(100% - 176px)}

.inline-account.modal-account{position:static;flex:none;width:44px;height:44px}.chat-header .round{width:44px;height:44px}.chat-block{min-width:44px}#messages-panel .sheet-heading,#message-report-panel .sheet-heading{gap:8px}#messages-panel .sheet-heading h2,#message-report-panel .sheet-heading h2{flex:1;min-width:0}

#conversation-panel .chat-account.modal-account{position:absolute;top:auto;bottom:16px;right:16px;width:44px;height:44px}#conversation-panel .chat-note{min-height:44px;padding-right:54px}

.pin-quick-actions{position:absolute;left:0;top:0;z-index:3;display:flex;gap:4px;pointer-events:auto;will-change:transform}.pin-quick-actions[hidden]{display:none}.pin-quick-actions button{width:34px;height:34px;display:grid;place-items:center;border:1px solid #ffffffc0;border-radius:50%;background:var(--sheet);color:var(--text);padding:7px;box-shadow:0 2px 8px #04132225}.pin-quick-actions svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.pin-quick-actions button[data-state="add"]{background:#ffedb1;color:#73501b}.pin-quick-actions button[data-state="friends"]{color:#2b6f50}.pin-quick-actions button:disabled{opacity:.65}.pin-quick-actions button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

/* Quiet neighbors: small, static decorations in available space outside the card. */
#detail::backdrop{background-image:var(--neighbor-images,) url("assets/profile-earth-backdrop.png");background-size:var(--neighbor-sizes,) cover;background-position:var(--neighbor-positions,) center;background-repeat:no-repeat}

/* Compact profile keeps the brand outside the photo card and utilities in one row. */
#detail{padding:20px;max-width:440px;width:calc(100% - 40px);max-height:calc(100svh - 144px)}
#detail .profile-brand{position:fixed;top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));margin:0;padding:0;gap:7px;border-radius:0;background:transparent;box-shadow:none;font-size:16px;text-shadow:0 1px 3px #04101c66;pointer-events:none}
#detail .profile-brand img{width:26px;height:26px}
#detail .detail-close{top:10px;right:10px;width:36px;height:36px}
#detail .dog-profile-header{grid-template-columns:44px minmax(0,1fr) 36px;gap:10px;margin-right:32px;align-items:center}
#detail-avatar{width:44px;height:44px;font-size:28px}
#detail .dog-profile-header h2{font-size:23px;line-height:1.1}
#detail .dog-profile-header #detail-place{font-size:12px;margin:4px 0 0}
#detail .dog-profile-header #detail-meta{font-size:11px;margin:2px 0 0}
#save-pup{width:36px;height:36px;padding:8px}
#detail-gallery-section{margin-top:16px}
.profile-bio{font-size:13px;margin:12px 0}
.profile-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px}
.profile-toolbar .owner-card{order:1;margin:0;width:44px;height:44px;padding:0;justify-content:center;color:#c18a16;font-size:22px}
.profile-toolbar .owner-card strong,.profile-toolbar .owner-card>span:last-child,#like-note{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.profile-toolbar .profile-reactions{order:0;margin:0;margin-right:auto;gap:0}
.profile-toolbar .profile-actions{order:2;margin:0;gap:4px}
.profile-toolbar .profile-actions button{background:transparent!important;border-radius:12px}
.profile-toolbar .profile-actions button:hover{background:var(--soft)!important}
.profile-toolbar #like-coin{width:28px;height:28px;font-size:17px}
.profile-toolbar .coin-thumb{left:20px;bottom:4px;width:12px;height:12px;line-height:12px;font-size:9px}
.profile-manage{margin-top:10px;padding-top:8px}
.public-area-options{margin:16px 0;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--soft)}.public-area-options[hidden],#public-area-fields[hidden]{display:none}.public-area-options .check{align-items:flex-start}.public-area-options .check input{flex:none}.public-area-options label:not(.check){display:block;font-size:12px;margin:12px 0 6px}.public-area-options .form-note{margin:10px 0 0;overflow-wrap:anywhere}
@media(max-width:420px){#detail{padding:16px;max-height:calc(100svh - 144px)}#detail .dog-profile-header{grid-template-columns:38px minmax(0,1fr) 32px;gap:8px;margin-right:28px}#detail-avatar{width:38px;height:38px;font-size:25px}#detail .dog-profile-header h2{font-size:21px}.profile-toolbar{gap:2px}.profile-toolbar .profile-actions{gap:0}}

/* Save and close share a stable header row, with equal touch targets. */
#detail .dog-profile-header{grid-template-columns:44px minmax(0,1fr) 88px;margin-right:0}
.profile-heading{min-width:0}
.profile-header-actions{display:flex;align-items:center;justify-content:flex-end;align-self:start;margin-top:-8px;gap:0}
#detail .profile-header-actions #save-pup,#detail .profile-header-actions .detail-close{position:static;flex:0 0 44px;width:44px;height:44px;margin:0;padding:10px;display:grid;place-items:center}
#detail .profile-header-actions #save-pup svg{display:block;width:22px;height:22px}
@media(max-width:420px){#detail .dog-profile-header{grid-template-columns:38px minmax(0,1fr) 88px;margin-right:0}}

#detail .profile-header-actions .detail-close svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}

.dog-profile-header,#viewer-image{touch-action:pan-y pinch-zoom}.nearby-nav{display:flex;gap:0;order:3;margin-left:auto}.nearby-nav button{display:grid;place-items:center;border:0;background:transparent;color:var(--text);width:44px;height:44px;padding:11px;border-radius:12px}.nearby-nav button:hover:enabled{background:var(--soft)}.nearby-nav button:disabled{opacity:.25}.nearby-nav svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.balloon-preview-area{display:flex;align-items:center;gap:16px;padding:12px 18px 18px;min-height:76px;background:#07192d;background-image:linear-gradient(90deg,#06142622,#041020ed 72%),url('assets/profile-earth-backdrop.png');background-size:cover;background-position:center 42%;border:1px solid #ffffff18;border-radius:16px;margin:12px 0;color:#fff;isolation:isolate}.balloon-preview-area .pin{position:relative;left:auto;top:auto;transform:none;pointer-events:none;flex:none;width:40px;height:40px;font-size:25px;will-change:auto;z-index:1;box-shadow:0 3px 10px #0008}.balloon-preview-caption{min-width:0;overflow-wrap:anywhere}.balloon-preview-caption strong{display:block;font-size:13px;line-height:1.4}.balloon-preview-area small{display:block;margin-top:3px;color:#e3edf5;font-size:11px;line-height:1.4}.profile-toolbar{flex-wrap:wrap}.profile-toolbar .profile-actions{flex-wrap:wrap}

.owner-card svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;flex:none}#editor-location{margin:18px 0;border-top:1px solid var(--border);padding-top:14px}#editor-location summary{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--accent);font-size:14px;font-weight:700;min-height:44px}#editor-location summary svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}#editor-location label{display:block;margin:14px 0 8px;font-size:13px;font-weight:600}

.pick-location{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}.pick-location svg,.location-search svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;flex:none}.location-search{display:flex;align-items:stretch;gap:8px}.location-search input{min-width:0;flex:1}.location-search .secondary{width:auto;margin:0;display:flex;align-items:center;gap:6px;min-height:44px;padding:10px}#editor[data-mode="avatar"] .location-country{display:none}.placing #app>footer .hint{display:block;margin:0 0 8px;max-width:100%;font-size:13px;color:var(--text)}#cancel-placement{min-height:44px}
#location-target{display:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%;background:#fffdf1e6;box-shadow:0 2px 10px #10243740;color:#246b4c;z-index:3;pointer-events:none}.placing #location-target{display:grid;place-items:center}#location-target svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:2}.placing .globe-actions{justify-content:center}.placing #settings,.placing .filter-bar{display:none}#confirm-placement{display:flex;align-items:center;gap:7px;min-height:44px;padding:10px 16px;border:0;border-radius:24px;background:var(--accent);color:var(--bg);font-weight:750;font-size:14px}#confirm-placement svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
#earth-fallback{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;display:none}.software-globe #earth-fallback{display:block}.software-globe #earth{opacity:0}.map-detail #earth-fallback{display:none}#globe-recovery{position:absolute;top:74px;left:50%;transform:translateX(-50%);z-index:5;text-align:center;max-width:calc(100% - 48px)}#globe-recovery #loading{position:static;margin:0;font-size:13px}#globe-retry{border:1px solid var(--border);border-radius:18px;background:var(--sheet);color:var(--text);padding:7px 12px;font-size:12px;min-height:36px;margin-top:6px}.map-detail #globe-recovery{display:none}
.software-globe #globe-recovery{top:auto;bottom:calc(var(--globe-footer-height,90px) + 12px);left:16px;transform:none}
.earth-basic{position:absolute;display:none;pointer-events:none}.software-globe.basic-globe .earth-basic{display:block}.basic-globe #earth-fallback,.map-detail .earth-basic{display:none!important}

/* Private street maps are isolated from the public globe and its dog layers. */
#private-map-panel{width:min(680px,calc(100vw - 24px));padding:clamp(16px,3vw,28px)}
#private-map-panel .sheet-heading{gap:12px;align-items:flex-start}
#private-map-panel h2{font-size:clamp(22px,4vw,30px);margin:0}
#private-map-expiry{display:block;margin-top:4px;color:var(--muted)}
#private-map-canvas{position:relative;width:100%;height:clamp(180px,48dvh,420px);border-radius:18px;overflow:hidden;background:var(--surface)}
#private-map-status{font-size:14px;min-height:20px}
#private-map-end{margin-top:8px}

#zoom-in:disabled{opacity:.45;cursor:default}

#private-map-panel .sheet-heading>div{flex:1;min-width:0}
#private-map-panel .inline-account{width:36px;height:36px}
#social-signin{margin:20px 0}#social-buttons,#delete-provider-actions{display:grid;gap:10px}
.provider-button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:44px;border:1px solid var(--border);border-radius:12px;background:#fff;color:#1f1f1f;padding:12px 16px;font-family:Arial,sans-serif;font-size:15px;font-weight:500;cursor:pointer}
.provider-button svg{width:20px;height:20px;flex:none}.provider-button.apple{background:#000;color:#fff;border-color:#000}.provider-button:disabled{opacity:.5;cursor:default}#delete-password-row label{display:block;margin:18px 0 8px}#delete-provider-actions{margin-top:16px}
.auth-page{overflow:auto;min-height:100svh;display:grid;place-items:center;padding:24px;background:#f8f7f1}
.auth-card{width:min(100%,420px);background:#fffdf9;border:1px solid #dce4dc;border-radius:28px;padding:28px;color:#12243a;box-shadow:0 16px 50px #132a3910}.auth-brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:#aa7100;font-family:Arial,sans-serif;font-weight:700}.auth-brand img{width:40px;height:40px}.auth-card h1{font-size:28px;letter-spacing:-.5px;margin:24px 0 8px}.auth-card .check{align-items:flex-start;margin:20px 0;font-size:13px;line-height:1.6;flex-wrap:wrap}.auth-card .check input{flex:none}.auth-card a{color:#276c52}.auth-card .primary{width:100%}.auth-back{display:block;text-align:center;margin-top:20px;font-size:13px}#auth-error{color:#b44637;font-size:14px;line-height:1.5}
