@keyframes load { to { transform: rotate(1turn) } } body, html { margin: 0; height: 100vh; width: 100vw; box-sizing: border-box; overflow: hidden; background-color: #404040; } h1.widget-heading { margin: 0; margin-bottom: 4px; font-size: 14px; /* letter-spacing: 0.25em; */ text-transform: uppercase; /* border-bottom: 1px solid currentColor; padding-bottom: 2px; */ } p.widget-description { margin: 0; margin-bottom: 8px; white-space: pre-line; /* border-bottom: 1px solid currentColor; padding-bottom: 2px; */ } p.subtitle { opacity: 0.75; } button:not(.link) { background-color: transparent; border: none; color: inherit; font: inherit; padding: 6px; border-radius: 4px; height: 36px; border: 1px solid #0008; } button:not(.link):hover { background-color: #0004; } button:not(.link):active { background-color: #0008; } button:not(.link):disabled { background-color: #8884; color: #808080; } button.link { display: inline; background: none !important; border: none; padding: 0; font: inherit; color: currentColor; text-decoration: underline; cursor: pointer; } a { color: currentColor; } .clarification { text-decoration: dotted underline; } #map { cursor: grab; } #map-ui { position: absolute; left: 0; top: 0; width: 100vw; height: 100vh; pointer-events: none; user-select: none; } #map-ui #zoom { pointer-events: all; box-sizing: border-box; display: flex; flex-direction: column; gap: 8px; position: absolute; padding: 8px; top: 16px; left: 16px; border-radius: 4px; background-color: #202020; color: #fff; box-shadow: 0 0 8px 0 #0008; } #map-ui #zoom .zoom-button { width: 36px; } #map-ui #floors { pointer-events: all; display: inline-block; box-sizing: border-box; position: absolute; padding: 8px; top: 16px; right: 16px; border-radius: 4px; background-color: #202020; color: #fff; box-shadow: 0 0 8px 0 #0008; transition: right 0.5s; } #map-ui #floors.empty { right: -100%; } #map-ui #floors #floor-buttons { display: flex; flex-direction: column; gap: 8px; } #map-ui #floors #floor-buttons .floor-button { display: inline-block; width: 36px; height: 36px; padding: 4px; } #map-ui #floors #floor-buttons .floor-button.selected { border: 1px solid #fff; } #map-ui #events-container { position: absolute; left: 0; bottom: 0; overflow: visible; width: 100%; } #map-ui #events-container #events, #map-ui #events-container #events-inspector { pointer-events: all; box-sizing: border-box; display: inline-flex; position: absolute; gap: 8px; padding: 8px; left: 16px; bottom: 16px; border-radius: 4px; translate: 0 calc(100% + 32px); background-color: #202020; color: #fff; box-shadow: 0 0 8px 0 #0008; transition: translate 0.25s, bottom 0.25s, width 0.25s, border-radius 0.25s; max-height: calc(50vh - 16px); flex-direction: column; width: 400px; max-width: calc(100% - 32px); z-index: 9; } #map-ui #events-container:not(.inspector) #events, #map-ui #events-container.inspector #events-inspector { translate: 0; } #map-ui #events-container:not(.inspector) #events, #map-ui #events-container.inspector #events-inspector { translate: 0; } #map-ui #events-container:not(.inspector).minimized #events, #map-ui #events-container.inspector.minimized #events-inspector { bottom: 0; translate: 0 calc(100% - 52px); } #map-ui #events-container.empty #events, #map-ui #events-container.empty #events-inspector { translate: 0 calc(100% + 32px); } #map-ui #events-container.minimized #events #room-description, #map-ui #events-container.minimized #events-inspector #event-length { display: none; } #map-ui #events-container.minimized #room-name { margin: 0; } #map-ui #events-container #events #footer #footer-buttons, #map-ui #events-container #events-inspector #footer #footer-buttons { display: flex; align-items: center; gap: 8px; } #map-ui #events-container #events-inspector p, #map-ui #events-container #events p { margin-bottom: 0; } #map-ui #events-container #events-header { display: grid; align-items: start; grid-template-columns: 36px auto 36px; gap: 8px; } #map-ui #events-container.minimized #events-header { align-items: center; } #map-ui #events-container #events.empty #event-list { min-height: 0; padding: 0 8px; margin: 0; } #map-ui #events-container #events #event-list .event-list-container p { margin: 0; } #map-ui #events-container #events #event-list, #map-ui #events-container #events-inspector #event-body { width: 100%; overflow-y: auto; overflow-x: hidden; box-sizing: border-box; padding: 8px; background-color: #0002; display: flex; flex-direction: column; gap: 4px; display: inline-block; } #map-ui #events-container #events #events-header button, #map-ui #events-container #footer #footer-buttons button, #map-ui #events-container #events-inspector #events-header button:not(.link) { width: 36px; } #map-ui #loading { display: inline-block; position: absolute; width: 96px; height: 96px; left: calc(50vw - 48px); top: calc(50vh - 48px); background-color: #2228; border-radius: 8px; opacity: 0; transition: opacity 0.25s; } #map-ui.loading #loading { opacity: 1; } #map-ui #loading #loading-circle { display: inline-block; position: relative; width: 64px; height: 64px; top: 16px; left: 16px; background: conic-gradient(from 0deg,#fff0,#fff); -webkit-mask-image: radial-gradient(circle, #fff0 0%, #fff0 33%, #ffff 33%, #ffff 66%, #fff0 66%, #fff0 100%); mask-image: radial-gradient(circle, #fff0 0%, #fff0 33%, #ffff 33%, #ffff 66%, #fff0 66%, #fff0 100%); animation: load 0.5s linear infinite; } @media (max-width: 640px) { #map-ui #events-container #events, #map-ui #events-container #events-inspector { bottom: 0; border-radius: 4px 4px 0 0; width: 100%; max-height: 33vh; } }