@tailwind base;
@tailwind components;
@tailwind utilities;

@layer utilities {
    @variants responsive {
        .max-h-65vh {
            max-height: 65vh;
        }

        .max-h-20vh {
            max-height: 20vh;
        }
        
        .z-above-map{
            z-index: 10000
        }

        .z-above-controls{
            z-index: 10001
        }
        
    }

  .btn {
      @apply inline-flex justify-center;
      @apply py-2 px-4;
      @apply border border-transparent shadow-sm;
      @apply shadow-sm rounded-3xl;
      @apply ring-2 ring-blue-200 hover:ring-blue-300;
      @apply mt-1 mr-1;
      @apply text-sm font-medium text-white;
      @apply bg-blue-600 hover:bg-blue-700;
      @apply focus:outline-none focus:ring-blue-700;
  }

  .btn-secondary {
      @apply bg-gray-600 hover:bg-gray-700;
  }

  .btn-disabled {
      @apply bg-gray-500 hover:bg-gray-500;
      @apply text-gray-300;
      @apply ring-gray-200 hover:ring-gray-200 focus:ring-gray-200;
      @apply cursor-default;
  }
}


:root {
    --subtle-detail-color: #e5f5ff;
    --subtle-detail-color-contrast: black;
    --subtle-detail-color-light-contrast: lightgrey;

    --catch-detail-color: #3a3aeb;
    --catch-detail-color-contrast: white;
    --alert-color: #fee4d1;
    --background-color: white;
    --foreground-color: black;
    --popup-border: white;
    --shadow-color: #00000066;
    --variable-title-height: 0px; /* Set by javascript */
    --return-to-the-map-height: 2em;
    
    --image-carousel-height: 400px;
}

.slick-carousel-content {
    width: 300px;
    max-height: var(--image-carousel-height);
    display: block;
    margin-left: 10px;
}

.slick-carousel-content img {
    /**
Workaround to patch images within a slick carousel
 */
   height: var(--image-carousel-height);
    width: auto;
}

html, body {
    height: 100%;
    min-height: 100vh;
    min-height: -webkit-fill-available;
    margin: 0;
    padding: 0;
    background-color: var(--background-color);
    color: var(--foreground-color);
    font-family: 'Helvetica Neue', Arial, sans-serif;
}
.leaflet-overlay-pane .leaflet-zoom-animated {
    /* Another workaround to keep leaflet working */
    width: initial !important;
    height: initial !important;
    box-sizing: initial !important;
}

svg, img {
    box-sizing: content-box;
    width: 100%;
    height: 100%;
    display: unset;
}


a {
    color: var(--foreground-color);
}

.link-underline a {
    text-decoration: underline 1px #0078a855;; 
    color: #0078A8;
}

li {
    margin-left: 0.5em;
    padding-left: 0.2em;
    margin-top: 0.1em;
}

h2 {
    font-size: large;
    margin-top: 0.5em;
    margin-bottom: 0.3em;
    font-weight: bold;
}

h3 {
    font-size: larger;
    margin-top: 0.6em;
    margin-bottom: 0;
    font-weight: bold;
}

h3 {
    font-size: larger;
    margin-top: 0.6em;
    margin-bottom: 0;
    font-weight: bolder;
}

p {
    padding-top: 0.1em;
}

li::marker {
    content: "•"
}

.subtle-background {
    background: var(--subtle-detail-color);
    color: var(--subtle-detail-color-contrast);
}

.subtle-lighter {
    color: var(--subtle-detail-color-light-contrast);
}

.border-attention-catch{ border: 5px solid var(--catch-detail-color);}

.slick-prev:before, .slick-next:before {
    /*Slideshow workaround*/
    color:black !important;
}

#topleft-tools svg {
    fill: var(--foreground-color) !important;
    stroke: var(--foreground-color) !important;
}

#topleft-tools svg path {
    fill: var(--foreground-color) !important;
    stroke: var(--foreground-color) !important;
}

.direction-svg svg path {
    fill: var(--catch-detail-color) !important;
}


#leafletDiv {
    height: 100%;
}

.leaflet-popup-content-wrapper {
    background-color: var(--background-color);
    color: var(--foreground-color);
    border: 2px solid var(--popup-border);
    box-shadow: 0 3px 14px var(--shadow-color) !important;
}

.leaflet-container {
    background-color: var(--background-color) !important;
}

.leaflet-popup-tip {
    background-color: var(--popup-border) !important;
    color: var(--popup-border) !important;
    box-shadow: 0 3px 14px var(--shadow-color) !important;
}

.single-layer-selection-toggle {
    position: relative;
    width: 2em;
    height: 2em;
    flex-shrink: 0;
}

.single-layer-selection-toggle img {
    max-height: 2em !important;
    max-width: 2em !important;
}

.single-layer-selection-toggle svg {
    max-height: 2em !important;
    max-width: 2em !important;
}

.simple-add-ui-icon {
    position: relative;
    display: block;
    width: 4em;
    height: 3.5em;
}

.simple-add-ui-icon img {
    max-height: 3.5em !important;
    max-width: 3.5em !important;
}

.simple-add-ui-icon svg {
    max-height: 3.5em !important;
    max-width: 3.5em !important;
}


/**************** GENERIC ****************/


.alert {
    background-color: var(--alert-color);
    font-weight: bold;
    border-radius: 1em;
    margin: 0.25em;
    text-align: center;
    padding: 0.15em 0.3em;
}

.question form {
    display: inline-block;
    max-width: 90vw;
    width: 100%;
}

.invalid {
    box-shadow: 0 0 10px #ff5353;
    height: min-content;
}

.shadow {
    box-shadow: 0 0 10px var(--shadow-color);
}

.title-font span {
    font-size: xx-large !important;
    font-weight: bold;
}

.soft {
    background-color: var(--subtle-detail-color);
    color: var(--subtle-detail-color-contrast);
    font-weight: bold;
    border-radius: 1em;
    margin: 0.25em;
    text-align: center;
    padding: 0.15em 0.3em;
}


.subtle {
    color: #999;
}

.link-underline .subtle a {
    color: var(--foreground-color);
    text-decoration: underline 1px #7193bb88;
    color: #7193bb;
}

.bold {
    font-weight: bold;
}

.thanks {
    background-color: #43d904;
    font-weight: bold;
    border-radius: 1em;
    margin: 0.25em;
    text-align: center;
    padding: 0.15em 0.3em;
}

.clickable {
    pointer-events: all;
}

.unclickable {
    pointer-events: none !important;
}

.page-split {
    display: flex;
    height: 100%;
}


.activate-osm-authentication {
    cursor: pointer;
    color: blue;
    text-decoration: underline;
}


#searchbox {
    display: inline-block;
    text-align: left;
    background-color: var(--background-color);
    color: var(--foreground-color);

    transition: all 500ms linear;
    pointer-events: all;
    margin: 0 0 0.5em;
    width: 100%;
}

.search {
    position: relative;
    float: left;
    height: 2em;
    margin-right: 0.5em;
}

#searchbox {
    width: 100%
}

#searchbox .form-text-field {
    position: relative;
    float: left;
    margin-top: 0.2em;
    margin-left: 1em;
    width: calc(100% - 4em)
}

#searchbox input[type="text"] {
    background: transparent;
    border: none;
    font-size: large;
    width: 100%;
    box-sizing: border-box;
    color: var(--foreground-color);
}

/**************************************/


#topleft-tools {
    display: block;
    position: absolute;
    z-index: 5000;
    transition: all 500ms linear;
    pointer-events: none;
    left: 0;
    right: 0;
}

.welcomeMessage {
    display: block;
    max-width: calc(100vw - 5em);
    width: 40em;
    max-height: calc(100vh - 15em);
    overflow-y: auto;
    border-top-right-radius: 1em;
    border-bottom-right-radius: 1em;
    background-color: var(--background-color);
    color: var(--foreground-color);
}


#messagesbox {
    /*Only shown on big screens*/
    position: relative;
    padding: 0;
    pointer-events: all;
    box-shadow: 0 0 10px var(--shadow-color);
    width: min-content;
    background-color: var(--background-color);
    color: var(--foreground-color);
}


#centermessage {
    z-index: 4000;
    pointer-events: none;
    transition: opacity 500ms linear;
}



/***************** Info box (box containing features and questions ******************/


.map-attribution img {
    width: 1em;
    height: 1em;
    fill: black;
    border-radius: 0;
    display: inline;
}

.leaflet-popup-content {
    width: 45em !important;
}

.leaflet-div-icon {
    background-color: unset !important;
    border: unset !important;
}


.leaflet-div-icon svg {
    width: calc(100%);
    height: calc(100%);
}

/****** ShareScreen *****/

.literal-code {
    display: inline-block;
    background-color: lightgray;
    padding: 0.5em;
    word-break: break-word;
    color: black;
    box-sizing: border-box;
}


/** Switch layout **/
.small-image img {
    height: 1em;
    max-width: 1em;
}

