/*
    TailwindCSS JIT-Mode Input file.
    Use TailwindCSS functions and directives here – https://tailwindcss.com/docs/functions-and-directives
    About JIT-Mode: https://tailwindcss.com/docs/just-in-time-mode#styles-rebuild-in-an-infinite-loop

    TailwindCSS CLI generates the css/index-tailwind-output.css file based on this file.
    It is not used directly in the app.
*/

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

@layer utilities {
    @variants responsive {
        .z-above-map {
            z-index: 10000
        }

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

        .w-160 {
            width: 40rem;
        }
    }

    .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: 350px;
}

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;
}

.leaflet-control-attribution {
    display: block ruby;
}

.badge {
}

.badge svg {
    /*Workaround for leaflet*/
    width: unset !important;
    height: 100% !important;
}

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

.no-images img {
    display: none;
}

.mapcontrol svg path {
    fill: var(--subtle-detail-color-contrast) !important;
}

.red-svg svg path {
    stroke: #d71010 !important;
}

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

btn {
    margin-top: 0.25rem;
    margin-right: 0.25rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    --tw-text-opacity: 1;
    color: var(--catch-detail-color-contrast);
    --tw-bg-opacity: 1;
    background-color: var(--catch-detail-color);
}

.h-min {
    height: min-content;
}

.w-min {
    width: min-content;
}

.w-16-imp {
    width: 4rem !important;
}

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

.link-no-underline a {
    text-decoration: none;
}

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);
}

.normal-background {
    background: var(--background-color);
    color: var(--foreground-color)
}

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

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

.border-invisible {
    border: 5px solid #00000000;
}

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

.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;
}


.block-ruby {
    display: block ruby;
}

.disable-links a {
    pointer-events: none;
    text-decoration: none !important;
    color: var(--subtle-detail-color-contrast) !important;
}

.enable-links a {
    pointer-events: unset;
    text-decoration: underline !important;
    color: unset !important;
}

.disable-links a.must-link, .disable-links .must-link a {
    /* Hide links if they are disabled */
    display: none;
}

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


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

.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 {
    text-decoration: underline 1px #7193bb88;
    color: #7193bb;
}


.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;
}


@keyframes slide {
    /* This is the animation on the marker to add a new point - it slides through all the possible presets */
    from {
        transform: translateX(0%);
    }

    to {
        transform: translateX(calc(-100% + 42px));
    }
}

.hand-drag-animation {
    animation: hand-drag-animation 6s ease-in-out infinite;
    transform-origin: 50% 125%;
}

@keyframes hand-drag-animation {
    /* This is the animation on the little extra hand on the location input. If fades in, invites the user to interact/drag the map */
    0% {
        opacity: 0;
        transform: rotate(-30deg);
    }

    6% {
        opacity: 1;
        transform: rotate(-30deg);
    }

    12% {
        opacity: 1;
        transform: rotate(-45deg);
    }

    24% {
        opacity: 1;
        transform: rotate(-00deg);
    }

    30% {
        opacity: 1;
        transform: rotate(-30deg);
    }


    36% {
        opacity: 0;
        transform: rotate(-30deg);
    }

    100% {
        opacity: 0;
        transform: rotate(-30deg);
    }

}

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


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

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


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


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

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

.floating-element-width {
    max-width: calc(100vw - 5em);
    width: 40em;
}

.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;
}

.small-image {
    height: 1em;
    max-width: 1em;
}


.slideshow-item img {
    height: var(--image-carousel-height);
    width: unset;
}

.animate-height {
    transition: max-height .5s ease-in-out;
    overflow-y: hidden;
}
