html,body{margin:0;width:100%;height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;color:#27364c;background:#eef3f9}
*{box-sizing:border-box}
#map{position:absolute;inset:0;opacity:0;outline-offset:-3px}
#status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;background:linear-gradient(135deg,#f8fafc,#eef3fa);z-index:10}
#status>div{max-width:560px}
#status p{line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;color:#66758b}
#status strong{font-size:18px}
#status[hidden],#retry[hidden]{display:none}
#retry{border:1px solid #bac9e0;border-radius:8px;padding:9px 18px;background:#fff;color:#246bfd;cursor:pointer}
.office-marker{position:relative;width:var(--marker-size,28px);height:var(--marker-size,28px);border:5px solid #fff;border-radius:50%;background:var(--marker-color,#246bfd);box-shadow:0 3px 14px #0b23473d}
.office-marker[role=button]{cursor:pointer}
.office-marker:focus-visible{outline:3px solid #0f172a;outline-offset:6px}
.office-marker--pulse:before{content:"";position:absolute;inset:-14px;border:2px solid var(--marker-color,#246bfd);border-radius:50%;animation:office-pulse 2.5s ease-out infinite;pointer-events:none}
.office-marker--pin{height:calc(var(--marker-size,28px)*1.12);border:0;border-radius:0;background:none;box-shadow:none}
.office-pin-head{position:absolute;left:12%;bottom:calc(var(--marker-size,28px)*.157);width:76%;height:calc(var(--marker-size,28px)*.76);border:2px solid #fff;border-radius:50% 50% 50% 4px;background:var(--marker-color,#246bfd);transform:rotate(-45deg);box-shadow:0 4px 14px #0b234733}
.office-pin-icon{position:absolute;inset:16%;width:68%;height:68%;color:var(--marker-icon-color,#fff);transform:rotate(45deg)}
.office-marker--pin.office-marker--pulse:before{inset:auto;left:50%;bottom:calc(var(--marker-size,28px)*-.55);width:var(--marker-size,28px);height:var(--marker-size,28px);margin-left:calc(var(--marker-size,28px)*-.5)}
/* SDK labels shrink to the marker width without an intrinsic width; keep Chinese names horizontal. */
.office-label{box-sizing:border-box;width:max-content;max-width:min(var(--label-max-width,260px),calc(100vw - 40px));max-height:min(240px,calc(50vh - var(--label-marker-clearance,50px)));overflow:auto;padding:9px 13px;border:1px solid var(--label-border,#e2e8f0);border-radius:var(--label-radius,8px);background:var(--label-background,#fff);box-shadow:0 6px 20px #12254726;font-size:var(--label-font-size,13px);line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;writing-mode:horizontal-tb;text-align:left;color:var(--label-color,#283a54)}
.office-label-title{font-weight:var(--label-font-weight,600)}
.office-label-subtitle{margin-top:3px;color:var(--label-subtitle-color,#64748b);font-size:12px;font-weight:400;line-height:1.5}
.amap-marker-label{background:transparent;border:0;padding:0}
.office-info{padding:4px 8px;max-width:min(280px,70vw);max-height:min(240px,35vh);overflow:auto;overflow-wrap:anywhere;white-space:pre-wrap;line-height:1.6}
.office-info strong{display:block;margin-bottom:6px}
.office-info p{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;color:#66758b}
@keyframes office-pulse{0%{transform:scale(.5);opacity:.8}85%,100%{transform:scale(1.7);opacity:0}}
@media(prefers-reduced-motion:reduce){.office-marker--pulse:before{animation:none;display:none}}
