html, body { margin: 0; padding: 0; height: 100%; overflow: hidden; font-family: sans-serif; } #container { display: grid; height: 100vh; width: 100vw; } #container[data-count="2"] { grid-template-columns: repeat(2, 1fr); grid-template-rows: 1fr; } #container[data-count="4"] { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); } #container[data-count="6"] { grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(2, 1fr); } #container[data-count="9"] { grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); } .map-wrapper { position: relative; min-width: 0; min-height: 0; } .map-wrapper.hidden { display: none; } .map { height: 100%; width: 100%; } .selector { position: absolute; top: 10px; left: 10px; z-index: 1000; background: rgba(255,255,255,0.9); padding: 6px; border-radius: 4px; font-size: 14px; } .layout-selector { position: fixed; top: auto; bottom: 10px; }