.city-map-document{height:100dvh;min-height:180px;margin:0;background:#f3f3f3;color:#202020;position:relative;font-family:var(--font-ui,system-ui)}.city-map-document[data-theme=dark]{background:#1b1b1b;color:#eee}.city-map-caption{position:absolute;z-index:500;top:10px;inset-inline-start:10px;max-width:calc(100% - 80px);background:#fff;color:#202020;border:1px solid #ddd;border-radius:10px;padding:7px 10px;font-size:12px;box-shadow:0 2px 8px #0001;pointer-events:none}.city-map-canvas,.city-map-host{width:100%;height:100%;min-height:180px}.city-map-pin>span{display:block;width:28px;height:28px;background:#c91d27;border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 6px #0005}.city-map-pin>span:after{content:"";position:absolute;width:8px;height:8px;top:7px;left:7px;background:#fff;border-radius:50%}.city-map-error{position:absolute;z-index:500;bottom:22px;inset-inline:10px;margin:0;background:#fff;color:#333;padding:8px 12px;border-radius:8px;font-size:12px}.city-map-unresolved{display:grid;place-content:center;text-align:center;gap:8px;height:100%;padding:20px}.public-city-map{margin-block:24px;min-width:0}.public-city-map-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;font-size:14px;font-weight:600}.public-city-map-heading p{font-size:13px;font-weight:400;color:hsl(var(--muted-foreground));margin:0}.public-city-map-frame{position:relative;height:240px;overflow:hidden;border:1px solid hsl(var(--border));border-radius:16px;background:hsl(var(--muted))}.public-city-map iframe{width:100%;height:100%;border:0;display:block}.public-city-map-expand{position:absolute;inset:0 0 24px;background:transparent;border:0;cursor:pointer}.public-city-map-expand span{position:absolute;bottom:36px;inset-inline-end:12px;background:hsl(var(--background));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:10px;padding:8px 12px;font:inherit;font-size:12px}.public-city-map-expand:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:-3px}.city-map-dialog{width:calc(100vw - 24px)!important;max-width:960px!important;padding:20px!important}.city-map-dialog iframe{height:min(65dvh,600px);width:100%;border:0;border-radius:12px}@media(max-width:639px){.public-city-map-frame{height:220px}.city-map-dialog{padding:16px!important}}