.shell:has(.purchase-map) { height: 100dvh; min-height: 0; grid-template-rows: minmax(0, 1fr); }
.shell:has(.purchase-map) .sidebar { min-height: 0; overflow-y: auto; }
.shell:has(.purchase-map) .main-column { min-height: 0; }
.shell:has(.purchase-map) .topbar { flex-shrink: 0; }
.shell:has(.purchase-map) #main-content { display: flex; flex: 1; min-height: 0; padding: 0 max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) 0; }
:is(.purchase-map, .purchase-map-mini) { position: relative; flex: 1; min-height: 0; min-width: 0; overflow: hidden; border-radius: 22px; background: var(--map-water, #ffffff); isolation: isolate; }
:is(.purchase-map, .purchase-map-mini) .purchase-map-canvas { position: absolute; inset: 0; font-family: inherit; height: 100%; width: 100%; z-index: 0; }
.purchase-map-heading { position: absolute; inset: 0 0 auto; z-index: 2; padding: 18px 18px 32px; pointer-events: none; background: linear-gradient(to bottom, var(--map-water, #ffffff), color-mix(in srgb, var(--map-water, #ffffff) 90%, transparent) 60%, transparent); }
.purchase-map-heading .page-heading { flex-wrap: nowrap; margin-bottom: 0; }
.purchase-map-heading .page-heading .lead { flex-basis: auto; flex-shrink: 0; max-width: 40%; }
.purchase-map-heading h1, .purchase-map-heading .lead, .purchase-map-heading .purchase-heatmap-legend { pointer-events: auto; }
.purchase-map-toolbar { position: absolute; z-index: 500; top: 12px; right: 12px; display: flex; gap: 6px; align-items: center; background: var(--surface, white); padding: 6px 9px; border-radius: 8px; box-shadow: 0 2px 12px #142e3820; max-width: calc(100% - 70px); }
.purchase-map-status { font-size: 13px; color: var(--tone-234951, #234951); }
.purchase-coin-marker { position: absolute; width: 30.82px; height: 30.82px; background: transparent; border: 0; }
.purchase-coin { display: flex; align-items: center; justify-content: center; width: 30.82px; height: 30.82px; box-sizing: border-box; border-radius: 50%; border: 3px solid #c68a16; background: radial-gradient(circle at 30% 25%, #fff5b5, #f5c64c 55%, #d89a21); box-shadow: inset 0 0 0 2px #ffe398, 0 3px 8px #49320755; color: #523609; font-family: inherit; font-size: 12px; font-weight: 700; line-height: 1; animation: purchase-coin-drop 850ms cubic-bezier(.2,.7,.3,1) both; }
@keyframes purchase-coin-drop { 0% { transform: translateY(-240px) scale(.75) rotate(-35deg); opacity: 0; } 65% { transform: translateY(0) scale(1.08) rotate(7deg); opacity: 1; } 82% { transform: translateY(-14px) scale(.98) rotate(-3deg); } 100% { transform: translateY(0) scale(1) rotate(0); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .purchase-coin { animation: none; } }
@media (max-width: 820px) {
    .shell:has(.purchase-map) { grid-template-rows: auto minmax(0, 1fr); }
    .shell:has(.purchase-map) .sidebar { max-height: 35dvh; }
    .purchase-map-heading { padding: 15px 12px 28px; }
}
@media (max-width: 640px) { .purchase-map-status { max-width: 150px; } }

:is(.purchase-map, .purchase-map-mini) .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.purchase-heatmap-legend { display: flex; align-items: center; gap: 10px; width: fit-content; max-width: 100%; margin-top: 10px; padding: 7px 11px; border-radius: 8px; background: var(--surface, white); color: var(--tone-234951, #234951); font-size: 13px; box-shadow: 0 2px 12px #142e3830; }
.purchase-heatmap-legend[hidden] { display: none; }
.purchase-heatmap-scale { width: 80px; height: 8px; border-radius: 4px; background: linear-gradient(to right, #1ea0b4, #3cc86e, #f0dc46, #fa8c23, #dc2d23); }
.purchase-heatmap-legend:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

[data-public-widgets][data-home-overview] { container: home-widget-grid / inline-size; }
.shell [data-home-overview] > section.purchase-map-card { padding: 0; overflow: hidden; border-radius: 22px; aspect-ratio: 1; }
.purchase-map-mini { width: 100%; height: 100%; }
