@layer components{.fc-geo-map{position:relative;overflow:hidden;border-radius:var(--r-md);border:1px solid var(--stroke);background-color:var(--bg-1);background-image:linear-gradient(var(--stroke) 1px,transparent 1px),linear-gradient(90deg,var(--stroke) 1px,transparent 1px);background-size:24px 24px;user-select:none;touch-action:none;direction:ltr}.fc-geo-map[data-interactive=true]{cursor:grab}.fc-geo-map[data-interactive=true]:active{cursor:grabbing}.fc-geo-map[data-pick=true]{cursor:crosshair}.fc-geo-tiles{position:absolute;top:0;left:0;will-change:transform}.fc-geo-tile{position:absolute;width:256px;height:256px;max-width:none;user-select:none;-webkit-user-drag:none}.fc-geo-tile[data-failed=true]{opacity:0}.fc-geo-pin{position:absolute;width:16px;height:16px;margin-left:-8px;margin-top:-16px;border-radius:50% 50% 50% 0;background:var(--accent);border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.4);transform:rotate(-45deg);pointer-events:none}.fc-geo-pin[data-kind=ghost]{background:var(--txt-3);opacity:.7}.fc-geo-dot{position:absolute;border-radius:50%;background:color-mix(in oklab,var(--accent) 72%,transparent);border:1.5px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35);transform:translate(-50%,-50%)}.fc-geo-dot:hover{transform:translate(-50%,-50%) scale(1.25)}.fc-geo-acc{position:absolute;border-radius:50%;background:color-mix(in oklab,var(--accent) 16%,transparent);border:1px solid color-mix(in oklab,var(--accent) 55%,transparent);transform:translate(-50%,-50%);pointer-events:none}.fc-geo-zoom{position:absolute;bottom:.5rem;right:.5rem;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-sm);border:1px solid var(--stroke-hi);box-shadow:var(--shadow-sm)}.fc-geo-zoom button{display:grid;place-items:center;width:2rem;height:2rem;background:var(--bg-1);color:var(--txt-1)}.fc-geo-zoom button:first-child{border-bottom:1px solid var(--stroke)}.fc-geo-zoom button:disabled{opacity:.4}.fc-geo-attr{position:absolute;bottom:0;left:0;padding:0 .3rem;font-size:9px;line-height:1.5;background:color-mix(in oklab,var(--bg-1) 80%,transparent);color:var(--txt-3);pointer-events:none}.fc-voice{display:flex;flex-direction:column;gap:.75rem;border-radius:var(--r-md);border:1px dashed var(--stroke-hi);background:var(--glass);padding:.875rem}.fc-voice-level{position:relative;height:6px;flex:1;overflow:hidden;border-radius:999px;background:var(--glass-hi)}.fc-voice-level>span{position:absolute;inset:0;border-radius:999px;background:linear-gradient(90deg,var(--ok),var(--accent));transform-origin:left center;transform:scaleX(0);transition:transform 80ms linear}.fc-voice-dot{width:10px;height:10px;border-radius:50%;background:var(--err);animation:fc-voice-pulse 1.2s ease-in-out infinite}@keyframes fc-voice-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}.fc-voice audio{width:100%;height:40px}@media (prefers-reduced-motion:reduce){.fc-voice-dot{animation:none}.fc-voice-level>span{transition:none}}}