/* Teaching-area map (js/areamap.js), shared by the tutor profile and the public tutor view */
/* single fixed map: simple pins, loading overlay */
.am-p{min-width:0;width:16px;height:16px;padding:0;rotate:0deg;border-radius:50%;font-size:0;background:var(--coral,#e5603d);border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.35)}
.am-load{position:absolute;inset:0;z-index:3;display:grid;place-content:center;justify-items:center;gap:10px;background:linear-gradient(110deg,#e4ecea 30%,#f3f7f6 50%,#e4ecea 70%) 0 0/200% 100%;animation:amSh 1.3s linear infinite;color:#2f5d57;font-size:.88rem;font-weight:600;transition:opacity .35s ease}
.am-load.am-off{opacity:0;pointer-events:none}
.am-spin{width:34px;height:34px;border-radius:50%;border:4px solid rgba(47,93,87,.2);border-top-color:var(--primary,#0e7a6d);animation:amSp .8s linear infinite}
@keyframes amSh{to{background-position:-200% 0}}
@keyframes amSp{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.am-load,.am-spin{animation-duration:3s}}

/* Teaching-area map (js/areamap.js): one fixed-size map */
.am{margin-top:14px}
.am-view{position:relative;height:clamp(200px,34vw,260px);border-radius:18px;overflow:hidden;border:1px solid var(--line);background:#d9e2df;isolation:isolate;contain:size layout paint}
.am-t{position:absolute;max-width:none;width:256px;height:256px;user-select:none;-webkit-user-drag:none}
.am-c{position:absolute;border-radius:50%;border:2px dashed var(--primary);background:color-mix(in srgb,var(--primary) 10%,transparent);pointer-events:none}
.am-p{position:absolute;transform:translate(-50%,-50%);z-index:2}
.am-attr{position:absolute;right:6px;bottom:4px;z-index:4;padding:1px 6px;border-radius:6px;background:rgba(255,255,255,.85);color:#333;font-size:.68rem;text-decoration:none}
.am-note{margin:8px 2px 0;font-size:.84rem;color:var(--muted)}

/* 3 km hot zone around the pin */
.am-c{transform:translate(-50%,-50%);z-index:1;border:2px solid color-mix(in srgb,#e5603d 80%,transparent);background:radial-gradient(circle,rgba(229,96,61,.12) 0%,rgba(229,96,61,.22) 55%,rgba(229,96,61,.36) 100%);box-shadow:0 0 0 4px rgba(229,96,61,.12);animation:amPulse 2.6s ease-in-out infinite}
.am-zl{position:absolute;left:50%;bottom:6%;transform:translateX(-50%);padding:1px 8px;border-radius:99px;background:rgba(255,255,255,.9);color:#a33a1c;font-size:.7rem;font-weight:700;white-space:nowrap}
@keyframes amPulse{50%{box-shadow:0 0 0 9px rgba(229,96,61,.05)}}
@media (prefers-reduced-motion:reduce){.am-c{animation:none}}

.am-p{width:12px;height:12px;border-width:2px}
