.map-toggle{position:fixed;right:max(12px,env(safe-area-inset-right));top:calc(env(safe-area-inset-top) + 60px);width:44px;height:44px;padding:9px;border:1px solid #bba16b;border-radius:12px;background:rgb(var(--pan2) / .95);color:#ffe27a;cursor:pointer;}
.map-toggle svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;}
.walk-compass span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mini-map{--map-size:clamp(120px,34vw,140px);position:fixed;right:max(12px,env(safe-area-inset-right));top:calc(env(safe-area-inset-top) + 112px);width:var(--map-size);height:var(--map-size);padding:0;overflow:hidden;border:2px solid #a99b74;border-radius:16px;background:#172e25;box-shadow:0 4px 15px #0005;cursor:pointer;}
.mini-map canvas{display:block;width:100%;height:100%;}.mini-map::after{content:'⤢';position:absolute;right:4px;bottom:2px;color:#fff;font:700 22px Inter;text-shadow:0 1px 3px #000;pointer-events:none;}
.mini-map[hidden]{display:none;}
.map-dialog{width:min(620px,calc(100% - 24px));}.map-canvas{display:block;width:100%;height:clamp(180px,44dvh,400px);border:1px solid #8c9c82;border-radius:14px;background:#172e25;touch-action:none;cursor:grab;}.map-canvas:active{cursor:grabbing;}
.map-dialog .dialog-head,.explorer-panel .dialog-head{position:sticky;top:-18px;z-index:2;margin:-18px -18px 12px;padding:12px 18px;background:rgb(var(--pan2));border-bottom:1px solid #bba16b50;}
.map-controls{display:flex;gap:8px;margin:10px 0;flex-wrap:wrap;}.map-controls button{min-width:44px;min-height:44px;padding:8px 12px;border:1px solid #9f956a;border-radius:10px;background:#304638;color:#f4ecdc;font:700 13px Inter;cursor:pointer;}
.map-places{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}.map-places button{margin:0;overflow-wrap:anywhere;font-size:13px;min-height:44px;}
.map-legend{display:flex;gap:12px;flex-wrap:wrap;color:#e6e9d8;font:600 12px/1.5 Inter;margin:12px 0;}.map-legend span{display:flex;align-items:center;gap:5px;}.map-dot{width:11px;height:11px;display:inline-block;border:2px solid #fff;border-radius:50%;background:#f2c440;}.map-dot.friend{background:#78dca1;border-radius:2px;}.map-dot.target{background:#f4ecdc;border-color:#f2c440;transform:rotate(45deg);}
.map-group-title{font:700 15px Lora,serif;margin:18px 0 10px;}.map-goal{color:#ffe27a;min-height:20px;font:600 13px/1.5 Inter;}.map-empty{color:#d4dccc;font:500 13px/1.5 Inter;}
.explorer-quests .dialog-action:disabled{background:#394b3b;color:#bdcbb5;opacity:.7;cursor:default;}
.performance-hud{position:fixed;left:12px;bottom:calc(env(safe-area-inset-bottom) + 3px);color:#f4ecdc;background:#12251bd9;border-radius:5px;padding:2px 6px;font:600 12px Inter;pointer-events:none;}
.explorer-progress{height:9px;width:100%;accent-color:#f2c440;}.explorer-quests{list-style:none;margin:14px 0;padding:0;}.explorer-quests li{padding:12px;border:1px solid #bba16b80;border-radius:14px;margin:10px 0;}.explorer-quests b,.explorer-quests small{display:block;}.explorer-quests small{color:#cfdbc4;font:500 13px/1.5 Inter;margin:6px 0;}.explorer-quests .dialog-action{font-size:13px;}.explorer-level{padding:12px;border-radius:14px;background:#314632;}.explorer-level b{display:block;margin-bottom:7px;}.explorer-actions{display:flex;gap:8px;flex-wrap:wrap;}.explorer-actions button{flex:1;min-width:100px;}
@media(prefers-reduced-motion:reduce){.map-canvas{scroll-behavior:auto;}}
