@charset "UTF-8"; :root { --background-color: #222; --text-color: #ddd; --icon-background: white; --icon-border: cornflowerblue; --button-background: white; --button-hover-background: #0d377b; --button-border: #497cd3ff; --link-color: #38f; --popup-background: white; --zoom-message-background: rgba(255, 255, 255, 0.9); --zoom-message-border: #ff0000; --color-indication-background: #c0b1b1; --no-data-border: dodgerblue; --no-data-link-color: dodgerblue; --food-marker-color: #fff; } * { box-sizing: border-box; } html { height: 100%; width: 100%; background: var(--background-color); padding: 0; margin: 0; } body { height: 100vh; overflow: auto; width: 100%; background: var(--background-color); padding: 0; margin: 0; padding: 0; margin: 0; } html { font-family: Calibri, Roboto, Arial, "Ubuntu Mono"; font-size: 1rem; } p { font-family: Calibri, Roboto, Arial, "Ubuntu Mono"; font-size: 0.75rem; } #map { height: 95vh; width: 100%; margin: 0; border: solid 2px; } .stats-table table { width: 100% !important; } .stats-table table tr td { padding-left: 1rem !important; border-bottom: #ccc 1px solid; } .stats-table table tr:nth-of-type(odd) { background: #dedede; } .padded { padding: 1rem; } #heading { background: #000; color: var(--text-color); min-height: 5%; height: 4rem; width: 100%; padding-left: 1em; } .icon { width: 0.25rem !important; height: 0.25rem !important; display: inline-block; margin-right: 1rem; background: var(--icon-background); border-radius: 100%; padding: 0.25rem; margin-top: -0.5rem; float: left; border-color: var(--icon-border); } .title { margin-right: 1em; line-height: 1.5rem; } h2 { font-weight: normal; font-size: 1.25rem; } #overpass-api-controls { position: fixed; top: -0.5rem; left: 4em; padding: 10px; background-color: transparent; border: 0; z-index: 10; } #overpass-api-controls a { display: inline; } .has_output_of_irve_specified { box-shadow: 0 0 15rem darkred; } img.leaflet-marker-icon.tag-socket\:type2_yes { box-shadow: 0 0 0.5em cornflowerblue; border-color: cornflowerblue; border-width: 3px; } .rounded-button, .navigation-link, .panoramax-link, .edit-button { background: var(--button-background); padding: 0.5em 1em; border-radius: 0.5rem; border: solid 1px var(--button-border); float: right; } .panoramax-link img { width: 1rem; height: 1rem; } .side-panel button { min-width: 3em; margin-bottom: 0.5em; } .navigation-link { background: white; border-radius: 0.25em; } .navigation-link:hover { border: black; background: #96b1ea; } #fullDetails { margin-top: -2rem; } button:hover { background: var(--button-hover-background); border: solid 1px #08285c; cursor: pointer; } .edit-button { margin-left: 0.25rem; } .edit-button:hover { background: white; border: solid 1px #08285c; cursor: pointer; } .pull-left { float: left; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(359deg); } } a { color: var(--link-color); } .leaflet-control-custom { padding: 1rem; background: var(--popup-background); } #spinning_icon { position: fixed; top: 0; left: 0; z-index: 10; background: white; font-size: 2rem; } #spinning_icon svg { position: fixed; top: 0.45rem; left: 1.5rem; background: white; border-radius: 100%; width: 3rem; height: 3rem; animation: spin 2s linear infinite; opacity: 0.3; } #footer { max-width: 70ch; margin: 0 auto; } .leaflet-popup-content { min-width: 15rem; word-break: break-all; word-wrap: break-word; } .popup-content { width: 100%; display: block; overflow: auto; min-width: 10rem; max-width: 20rem; min-height: 5rem; max-height: 10rem; } .popup-key { width: 57%; display: inline-block; } .popup-value { width: 42%; text-align: right; display: inline-block; padding-right: 1rem; } .bottom-content { padding: 0 2rem 4rem; } #star { left: 10rem; } .color-indication { padding: 1rem; border-radius: 2rem; display: block; position: relative; color: white; text-shadow: 0 0 0.5rem #222; clear: right; min-width: 7rem; max-width: 5rem; height: 3rem; } .no-data { border-left: 3px solid var(--no-data-border); padding: 1em 2rem; min-height: 4rem; } .no-data a { color: var(--no-data-link-color); } /** marqueurs */ .marker-demo { margin-right: 1rem; } .map-marker-circle-demo { border-radius: 100%; display: inline-block; width: 1rem; height: 1rem; background: #fff; } .color-unknown { background: var(--color-indication-background); } .map-marker-circle-demo.color-1 { background: #36423d; } .color-power-lesser-than-50, .map-marker-circle-demo.color-2 { background: #4e8a8d; } .color-power-lesser-than-100, .map-marker-circle-demo.color-3 { background: #2999b3; } .color-power-lesser-than-200, .map-marker-circle-demo.color-4 { background: #1782dd; } .color-power-lesser-than-300, .map-marker-circle-demo.color-5 { background: #2900ff; } .color-power-lesser-than-max, .map-marker-circle-demo.color-6 { background: #8000ff; } #found_charging_stations { margin-top: 2rem; } button { cursor: pointer; padding: 0.5rem; background: white; } .bar { height: 2em; text-align: right; padding: 0.35rem 0.25rem 0.35rem 0.35rem; float: left; } .key-values { max-height: 4rem; overflow: auto; width: 100%; display: block; } .irve-details .key-values { max-height: 20rem; } .icon-img { width: 2rem; height: 2rem; fill: #000; } .sockets-list { margin-top: 0.25rem; } .socket-counter { background: #dedede; margin-top: 1rem; margin-left: -0.25rem; border-radius: 1rem; padding: 0.25rem; } #infos_carte { padding: 1rem 0; } button + button { margin-left: 1rem; } .leaflet-control-layers-toggle { background-size: contain; } #round_power_legend { font-size: 0.8rem; margin-top: 1rem; } .side-panel { font-size: 1rem; position: fixed; left: 0; top: 0; width: 20vw; height: 74vh; background: white; box-shadow: -2px 0 5px rgba(0, 0, 0, 0.2); overflow-y: auto; padding: 1rem 2rem; padding-bottom: 15rem; z-index: 1000; visibility: hidden; top: 4.5rem; width: 26vw; } #toggleSidePanel { position: fixed; top: 0.7rem; right: 1rem; z-index: 10; background: #444; padding: 0.5rem 1rem; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); border-color: #555; } header { padding-left: 1rem; color: #666; } .side-panel-open .side-panel { visibility: visible; width: 29vw; border-right: #ccc solid 1px; height: 93vh; } .side-panel-open #map { margin-left: 28.8vw; top: 4.5rem; width: 71.2vw; border: 0; height: 91.9vh; } #infos_carte { clear: both; } #zoomMessage { position: fixed; bottom: 5rem; left: 50%; transform: translateX(-50%); background: var(--zoom-message-background); padding: 1rem 2rem; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); text-align: center; z-index: 10; border-left: 4px solid var(--zoom-message-border); animation: rainbow-border 4s linear infinite; } header { background: #222; position: fixed; width: 20vw; } header h1 { color: white; line-height: 2rem; font-size: 0.8rem; } header img { float: left; margin-right: 1rem; } #map { z-index: 1; top: 5.55rem; } .side-panel #map { margin-left: 26vw; } .rounded-button { display: inline-flex; align-items: center; justify-content: center; font-size: 1rem; cursor: pointer; transition: background-color 0.3s; } .rounded-button:hover { background-color: #0d377b; } .filters-box { position: fixed; bottom: 0.7rem; right: 25vw; z-index: 100; } .filters-box .rounded-button { margin-right: 0.5rem; margin-bottom: 0.5rem; } .info .i { border-radius: 100%; background: #dedede; padding: 1ch; width: 5ch; margin-left: 1ch; display: inline-block; text-align: center; } .info .tooltip { opacity: 0; } .info:hover .tooltip { opacity: 1; transition: opacity 0.3s ease-in-out; } .leaflet-popup-content { max-height: 30vh; overflow: auto; } .osmose-marker { font-size: 20px; text-align: center; line-height: 20px; background-color: rgba(255, 255, 255, 0.8); border-radius: 50%; border: 2px solid #ff6b6b; } .osmose-marker-drop { position: relative; z-index: 1000; } .osmose-marker-inner { position: absolute; width: 30px; height: 40px; background-color: #8B00FF; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); display: flex; align-items: center; justify-content: center; box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); border: 2px solid white; } .leaflet-osmose-layer::before { content: "⚡"; transform: rotate(45deg); color: white; font-size: 16px; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3); padding-left: 1ch; } #bars_power { position: fixed; top: 4.3rem; width: 126vw; z-index: 10000; margin: 0; height: 0.4rem; overflow: hidden; } .small { font-size: 0.8rem; } #count_features_fond { border: solid 1px grey; } #current_station_infos .color-indication { max-width: 10rem; } .irve-details { min-height: 14rem; } .irve-details .color-indication { top: 2rem; } .irve-details .edit-button { position: relative; top: -4rem; } .irve-details .edit-button:hover { background: rgb(219, 226, 255); border: solid 1px #08285c; cursor: pointer; } .irve-details .panoramax-link { position: relative; top: -4rem; } .irve-details .navigation-link { margin-top: 1rem; top: -6.2em; } .irve-details .socket-list { min-height: 2rem; } .irve-details .color-indication { color: white; } .irve-details .quality-alert { color: rgb(64, 25, 25); display: block; } .irve-details .quality-alert img { width: 1rem; height: 1rem; margin-right: 0.5rem; } .irve-details .quality-ok { color: green; } .irve-details .quality-emphasis { font-weight: bold; padding: 0.25rem; background: #f0f0f0; border-radius: 0.25rem; border: solid 1px #aaa; } .irve-details .mapcomplete-link img { width: 1rem; height: 1rem; } .osmose-marker-drop:hover .osmose-marker-inner { animation: bounce 0.5s ease infinite; background-color: #9F2BFF; } .osmose-counter { font-size: 0.85rem; color: #999; } .proposed-tags-container { max-height: 200px; overflow-y: auto; margin: 10px 0; padding: 5px; background-color: #f5f5f5; border-radius: 4px; } .proposed-tags { width: 100%; border-collapse: collapse; } .proposed-tags tr:nth-child(even) { background-color: #ffffff; } .proposed-tags td { padding: 2px 5px; font-size: 12px; } .proposed-tags td:first-child { font-weight: bold; color: #666; width: 45%; } .action-buttons { margin-top: 10px; display: flex; flex-direction: column; gap: 5px; } .action-buttons a { padding: 5px 10px; text-decoration: none; border-radius: 4px; text-align: center; } .action-buttons a:hover { opacity: 0.9; } .action-buttons .edit-button.josm { background-color: #4CAF50; color: white; } #searchLocation { width: 93%; padding: 0.8rem 3rem; margin-bottom: 10px; border: 1px solid var(--button-border); border-radius: 5px; } #removeMarkers { margin-right: 1rem; margin-left: 1rem; } #searchResults { display: inline-block; margin-top: -0.9rem; margin-left: 0; width: 100%; height: 67%; border-top: 1px; } #searchResults option { cursor: pointer; padding: 0.55rem; } #searchResults option:hover { background-color: var(--button-border); } #searchButton { margin-left: -1rem; margin-top: 0; z-index: 2; position: relative; background: var(--link-color); border-radius: 3px; height: 2.9rem; } #count_features_fond { position: fixed; bottom: 4.5rem; right: 10px; z-index: 10; background: white; padding: 0.85rem 1rem; border-radius: 8px; } .search-source-control { margin: 5px 0; font-size: 0.9em; } .search-source-control label { display: flex; align-items: center; gap: 5px; } .search-source-control input[type=checkbox] { margin: 0; } .close-results-button { border: 0; border-radius: 3px; position: absolute; left: -5px; background: #ccc; height: 2.8rem; margin-top: -3.6rem; } .filter-sockets { height: 14rem; } .filter-sockets label { width: 45%; float: left; margin-right: 1rem; } .filter-sockets .icon-img { margin-right: 0.5rem; } #filter_max_output_slider { width: 100%; height: 10px; background: #ccc; border-radius: 5px; } .filter-stats { font-size: 0.8rem; color: #666; } .filter-group, .island { margin: 15px 0; padding: 15px; background: #f8f9fa; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .filter-group h3, .island h3 { margin-bottom: 10px; color: #495057; font-size: 16px; } .filter-group label, .island label { display: flex; align-items: center; padding: 8px 0; cursor: pointer; transition: all 0.3s ease; border-radius: 4px; margin: 4px 0; } .filter-group label:hover, .island label:hover { background: #e9ecef; } .filter-group input[type=checkbox], .island input[type=checkbox] { position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; } .filter-group .checkbox-custom, .island .checkbox-custom { position: relative; display: inline-block; width: 20px; height: 20px; background: #fff; border: 2px solid #6c757d; border-radius: 4px; margin-right: 10px; transition: all 0.3s ease; } label:hover .filter-group .checkbox-custom, label:hover .island .checkbox-custom { border-color: rgb(84.3605150215, 91.3905579399, 97.6394849785); } .filter-group input[type=checkbox]:checked + .checkbox-custom, .island input[type=checkbox]:checked + .checkbox-custom { background: #28a745; border-color: #28a745; animation: checkboxPop 0.3s ease; } .filter-group input[type=checkbox]:checked + .checkbox-custom::after, .island input[type=checkbox]:checked + .checkbox-custom::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid white; border-width: 0 2px 2px 0; transform: rotate(45deg); } .filter-group hr, .island hr { margin: 15px 0; border: 0; height: 1px; background: #dee2e6; } .filter-group span, .island span { font-size: 14px; color: #495057; transition: color 0.3s ease; } .filter-group label:hover span, .island label:hover span { color: rgb(49.73125, 54.5, 59.26875); } .filter-group input[type=checkbox]:disabled + .checkbox-custom, .island input[type=checkbox]:disabled + .checkbox-custom { background: #e9ecef; border-color: #adb5bd; cursor: not-allowed; } .filter-group input[type=checkbox]:disabled + .checkbox-custom + span, .island input[type=checkbox]:disabled + .checkbox-custom + span { color: #adb5bd; cursor: not-allowed; } @keyframes checkboxPop { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } } /* Style pour mobile ---------------------------------- */ @media (max-width: 700px) { header h1 { width: 100vw; font-size: 1.5rem; } #searchButton { margin-top: 0rem; } #searchResults { display: inline-block; position: relative; margin-top: -7.7vh; width: 87vw; height: 67%; left: -4vw; border-top: 1px; } #bars_power { position: absolute; top: 0; width: 120%; } #toggleSidePanel { position: fixed; top: 0.6rem; right: 0.6rem; z-index: 10; background: #a9a9a9; padding: 0.2rem 1rem; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); border: 0; font-size: 2rem; } body { /* border: solid 3px blue; */ } .side-panel-open .side-panel { position: static; transform: none; box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.2); margin: 0; width: 100vw; } .side-panel.active { transform: none; } .side-panel-open #map, #map { margin: 0; left: 0; top: 0; width: 100vw; height: 90vh; height: 55vh; } header { position: static; } .filters-box { position: static; } .close-results-button { border: 0; border-radius: 3px; background: var(--button-border); margin: 0; position: relative; top: -6.7vh; left: -1rem; height: 2.9rem; z-index: 10; } #count_features_fond { position: static; } } /** overrides leaflet */ .leaflet-interactive { border: solid 3px white; } .leaflet-control-layers.leaflet-control-layers-toggle { background: url("img/burger.png"); } .leaflet-control-layers + .leaflet-control-layers { display: none; } .leaflet-control-layers-list label { cursor: pointer; } .leaflet-control-layers-list label:hover { background-color: var(--button-border); color: white; } .leaflet-control-attribution { padding: 10px; font-size: 0.7rem !important; } /* Styles pour les contrôles de couches */ .leaflet-control-layers.base-layers { background-image: url('data:image/svg+xml;utf8,'); background-size: 16px; background-position: 6px center; background-repeat: no-repeat; padding-left: 28px !important; } .leaflet-control-layers.base-layers .leaflet-control-layers-toggle { background-image: none; width: auto; padding-right: 10px; } .leaflet-control-layers.base-layers::after { content: "Fonds"; margin-left: 5px; font-size: 12px; } .leaflet-control-layers.overlay-layers { background-image: url('data:image/svg+xml;utf8,'); background-size: 16px; background-position: 6px center; background-repeat: no-repeat; padding-left: 28px !important; } .leaflet-control-layers.overlay-layers .leaflet-control-layers-toggle { background-image: none; width: auto; padding-right: 10px; } .leaflet-control-layers.overlay-layers::after { content: "Calques"; margin-left: 5px; font-size: 12px; } .leaflet-control-layers { background: white; padding: 5px; border-radius: 4px; box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4); } .leaflet-control-layers.base-layers .leaflet-control-layers-toggle { background-image: url("../img/burger.png") !important; background-size: 20px 20px !important; background-position: center !important; background-repeat: no-repeat !important; width: 30px !important; height: 30px !important; } .leaflet-control-layers.overlay-layers .leaflet-control-layers-toggle { background-image: url("../img/pizza.png") !important; background-size: 20px 20px !important; background-position: center !important; background-repeat: no-repeat !important; background-color: #3f74aa !important; width: 30px !important; height: 30px !important; } @keyframes rainbow-border { 0% { border-left-color: #ff0000; } 17% { border-left-color: #ff8000; } 33% { border-left-color: #ffff00; } 50% { border-left-color: #00ff00; } 67% { border-left-color: #0000ff; } 83% { border-left-color: #8000ff; } 100% { border-left-color: #ff0000; } } @keyframes bounce { 0%, 100% { transform: rotate(-45deg) translateY(0); } 50% { transform: rotate(-45deg) translateY(-5px); } } /*# sourceMappingURL=style.css.map */