@import "~bootstrap/dist/css/bootstrap.css"; @import "~bootstrap-icons/font/bootstrap-icons.css"; @import "~ol/ol.css"; html, body { margin: 0; height: 100%; --ol-foreground-color: var(--bs-body-color); --ol-background-color: var(--bs-body-bg); /* highlight non-bootstrapy style */ --ol-accent-background-color: red; --ol-subtle-background-color: red; --ol-partial-background-color: red; --ol-subtle-foreground-color: red; --ol-brand-color: red; } #map { position: absolute; top: 0; bottom: 0; width: 100%; } #map-control-container { --map-container-padding: 1rem; position: absolute; padding: var(--map-container-padding); display: flex; justify-content: flex-end; width: 100%; height: 100%; } @media screen and (max-width: 576px) { #map-control-container { --map-container-padding: .5rem; } } #zoom-control { display: block; margin-right: auto; } #zoom-control .ol-zoom { position: relative; display: block; width: revert; top: auto; left: auto; pointer-events: auto; } #zoom-control .ol-zoomslider { margin-top: .5rem; position: relative; display: block; width: revert; top: auto; left: auto; padding: 10px 0; background-color: RGBA(var(--bs-body-bg-rgb), .95); border-radius: var(--bs-modal-border-radius); border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); overflow-y: hidden; z-index: 0; } #zoom-control .ol-zoomslider::after { content: ""; position: absolute; top: 3%; left: calc(50% - 3px); width: 6px; height: 94%; background-color: RGBA(211, 212, 213, .4); border-radius: 5px; border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); cursor: pointer; pointer-events: auto; } #zoom-control button.ol-zoomslider-thumb { z-index: 10; height: 10px; width: 80%; margin: 0 auto; padding: 0; pointer-events: auto; } .ol-scale-line { display: block; width: revert; height: revert; top: auto; bottom: var(--map-container-padding); left: var(--map-container-padding); z-index: 0; padding: .5rem; background-color: RGBA(var(--bs-body-bg-rgb), .95); background-clip: padding-box; border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); border-radius: var(--bs-modal-border-radius); pointer-events: auto; } .ol-scale-line-inner { border: 1px solid var(--bs-body-color); border-top: none; color: var(--bs-body-color); font-size: 80%; margin: 0; } #map-menu, #zoom-control { position: relative; } @media screen and (min-width: 768px) { #map-menu > .ol-control > button { font-size: 200%; } } #map-menu > * { margin-top: .5rem; pointer-events: auto; } @media screen and (max-width: 767px) { #map-menu > * { margin-top: .25rem; } } #map-menu > *:first-child { margin-top: 0; } #map-menu > .ol-control { position: relative; inset: initial; } .ol-control { background: none; border: none; outline: none; } .ol-control button.btn { --bs-btn-padding-x: 0.5rem; --bs-btn-padding-y: 0.5rem; display: block; margin: 0; padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x); width: auto; height: auto; font-weight: bold; text-decoration: none; font-size: inherit; text-align: center; color: var(--bs-btn-color); background-color: var(--bs-btn-bg); border-radius: var(--bs-btn-border-radius); border: var(--bs-btn-border-width) solid var(--bs-btn-border-color); } .ol-control button.btn:focus:not(:focus-visible, :hover) { text-decoration: none; color: var(--bs-btn-color); background-color: var(--bs-btn-bg); border-color: var(--bs-btn-border-color); outline: none; } .ol-control button.btn:hover, .ol-control button.btn:focus-visible { text-decoration: none; color: var(--bs-btn-hover-color); background-color: var(--bs-btn-hover-bg); border-color: var(--bs-btn-hover-border-color); outline: none; } .btn-light, .btn-dark { --bs-btn-border-color: var(--bs-btn-hover-border-color); } #map-control-container[aria-hidden="true"], #layer-selection-panel[aria-hidden="true"], #map-legend-panel[aria-hidden="true"] { display: none; } #layer-selection-panel, #map-legend-panel { position: relative; min-width: min-content; max-width: 35%; width: revert; margin-right: 1rem; font-size: medium; z-index: 0; --bs-modal-color: var(--bs-body-color); --bs-modal-padding: .75rem; } @keyframes fade-in { from { opacity: 0; } to { opacity: 1; } } #layer-selection-panel[aria-hidden="false"], #map-legend-panel[aria-hidden="false"] { animation: fade-in .25s ease-in-out both; display: block; } @media screen and (max-width: 767px) { #layer-selection-panel, #map-legend-panel { max-width: 100%; margin-right: .5rem; display: none; } #layer-selection-button, #map-legend-button, #export-to-image, #layer-selection-panel, #map-legend-panel, #map-menu .ol-full-screen { display: none; } } @media screen and (min-width: 350px) and (max-width: 576px) { #info-button { bottom: 0; right: 0; position: absolute; } } @media screen and (max-height: 576px), (max-width: 500px) { #zoom-control .ol-zoomslider { display: none; } } @media screen and (max-width: 900px) { #map-legend-panel, #layer-selection-panel { max-width: 60%; } } @media screen and (max-height: 300px) { body { --bs-body-font-size: .8rem; } .ol-control button.btn { --bs-btn-padding-x: 0.4rem; --bs-btn-padding-y: 0.4rem; } } #modal-info { pointer-events: auto; -webkit-user-select: text; -moz-user-select: text; user-select: text; } .ol-overlaycontainer-stopevent .modal-backdrop.show { pointer-events: auto; } #layer-selection-panel .accordion { --bs-accordion-active-bg: var(--bs-accordion-bg); --bs-accordion-active-color: var(--bs-body-color); --bs-accordion-btn-padding-x: 0; --bs-accordion-btn-padding-y: 0; --bs-accordion-btn-focus-box-shadow: none; --bs-accordion-body-padding-x: 0; --bs-accordion-body-padding-y: 0; } #layer-selection-panel .accordion-item { border: none; } #layer-selection-panel .accordion-body .list-group { padding-left: 1.5em; } #layer-selection-panel .accordion .list-group.list-group-flush > .list-group-item { padding: 0; border: none; } #layer-selection-panel .accordion-item .form-check { padding-left: 0; margin: 0.125rem 0 0 0; } #layer-selection-panel .accordion-item:first-child .form-check { margin-top: 0; } #layer-selection-panel .accordion-header > .accordion-button[aria-expanded="true"] { padding-bottom: 0.125rem; margin-bottom: 0.125rem; } #layer-selection-panel .accordion-header > .accordion-button > .form-check > .form-check-input, #layer-selection-panel .accordion > .accordion-item > .form-check > .form-check-input { margin-left: 0; float: none; } #layer-selection-panel .accordion-item .form-check > .form-check-input, #layer-selection-panel .accordion-item .list-group-item > .d-inline-flex > .form-check-input { margin-right: .5em !important; } #layer-selection-panel .accordion-header > .accordion-button > .form-check > .form-check-label, #layer-selection-panel .accordion-item .form-check > .form-check-label { display: inline; } .popover { --bs-popover-header-padding-x: .75rem; --bs-popover-header-padding-y: .5rem; --bs-popover-body-padding-x: .45rem; --bs-popover-body-padding-y: .5rem; --bs-popover-header-bg: var(--bs-popover-bg); --bs-popover-zindex: 1000; --bs-popover-max-width: 450px; width: var(--bs-popover-max-width); pointer-events: auto; } .popover-header { -webkit-user-select: none; -moz-user-select: none; user-select: none; } .popover-body { -webkit-user-select: text; -moz-user-select: text; user-select: text; max-height: 40vh; overflow: auto auto; } .popover-body h6, .popover-body h5 { margin-bottom: .25rem; margin-left: calc(var(--bs-popover-header-padding-x) - var(--bs-popover-body-padding-x)); margin-right: calc(var(--bs-popover-header-padding-x) - var(--bs-popover-body-padding-x)); } .popover-body .table { --bs-table-bg: none; --bs-table-hover-bg: rgba(0, 0, 0, 0.04); margin: 0; } .popover-body table > tbody > tr > td:first-child { font-style: italic; width: 9.75em; padding-right: .75em; } .popover-body table > tbody > tr > td { padding: 0.1rem 0.3rem; } /* inspired from bootstrap's .btn-close */ .popover-header .popover-button { box-sizing: content-box; width: 1em; height: 1em; padding: 0.25em 0.25em; color: #000; background: transparent var(--popover-button-icon) center/1em auto no-repeat; border: 0; border-radius: 0.375rem; opacity: .5; } .popover-header .popover-button:hover { text-decoration: none; opacity: .75; } .popover-header .popover-button:focus { outline: 0; box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); opacity: 1; } .popover-header .popover-button:disabled, .popover-header .popover-button.disabled { pointer-events: none; opacity: .25; } /* SVG from bootstrap icons v1.11.0 (released under MIT License) */ .popover-header .popover-button-prev { --popover-button-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath transform='scale(1.3799) translate(-2.2025 -2.2025)' d='M10 12.796V3.204L4.519 8zm-.659.753-5.48-4.796a1 1 0 0 1 0-1.506l5.48-4.796A1 1 0 0 1 11 3.204v9.592a1 1 0 0 1-1.659.753'/%3e%3c/svg%3e"); } .popover-header .popover-button-next { --popover-button-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath transform='scale(1.3799) translate(-2.2025 -2.2025)' d='M6 12.796V3.204L11.481 8zm.659.753 5.48-4.796a1 1 0 0 0 0-1.506L6.66 2.451C6.011 1.885 5 2.345 5 3.204v9.592a1 1 0 0 0 1.659.753'/%3e%3c/svg%3e"); } .popover-header .popover-button-close { --popover-button-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath transform='scale(1.3332) translate(-2 -2)' d='M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8z'/%3e%3c/svg%3e"); }