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

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

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

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

}


:root {
    /* The main colour scheme of mapcomplete is configured here.
     * For a custom styling, set 'customCss' in your layoutConfig and overwrite some of these.
     */

    /* Main color of the application: the background and text colours */
    --background-color: white;
    /* Main text colour. Also styles some elements, such as the 'close popup'-button or 'back-arrow' (in mobile) */
    --foreground-color: black;
    
    /* A colour to indicate an error or warning */
    --alert-color: #fee4d1;
    
    /**
     * Base colour of interactive elements, mainly the 'subtle button'
     * 
     */
    --subtle-detail-color: #DBEAFE;
    --subtle-detail-color-contrast: black;
    --subtle-detail-color-light-contrast: lightgrey;

    /**
     * A stronger variant of the 'subtle-detail-colour'
     * Used as subtle button hover
     */
    --unsubtle-detail-color: #BFDBFE;
    --unsubtle-detail-color-contrast: black;
    
    
    --catch-detail-color: #3a3aeb;
    --catch-detail-color-contrast: white;

    
    --non-active-tab-svg: var(--foreground-color);
    --shadow-color: #00000066;
    
    --return-to-the-map-height: 2em;
    --image-carousel-height: 350px;

    /* The border colour of the leaflet popup */
    --popup-border: white;

    /* Technical variable to make some dynamic behaviour possible; set by javascript. */
    --variable-title-height: 0px; 
}

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

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

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

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

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

.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 {
    line-height: 1.25rem;
    --tw-text-opacity: 1;
    color: var(--catch-detail-color-contrast);
    --tw-bg-opacity: 1;
    background-color: var(--catch-detail-color);
    display: inline-flex;
    border-radius: 1.5rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    font-size: large;
    font-weight: bold;
    transition: 100ms;
    /*-- invisible border: rendered on hover*/
    border: 3px solid var(--unsubtle-detail-color);
}

.btn:hover {
    border: 3px solid var(--catch-detail-color);
}

.btn-secondary {
    background-color: var(--catch-detail-color);
    filter: saturate(0.5);
    
}

.btn-secondary:hover {
    background-color: var(--catch-detail-color);
    filter: unset;
}

.btn-disabled {
    filter: saturate(0.3);
    cursor: default;
}

.btn-disabled:hover {
    border: 3px solid var(--unsubtle-detail-color);
}

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


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

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

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

.link-underline a {
    text-decoration: underline 1px var(--foreground-color);
}

.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 {
    font: unset !important;
    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);
    color: var(--foreground-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;
    background-color: var(--background-color);
    color: var(--foreground-color);
}


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

input {
    color: var(--foreground-color)
}

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


.zebra-table tr:nth-child(even) {
    background-color: #f2f2f2;
}

.layer-toggle {
    /* The checkbox that toggles a single layer */
}

.layer-filters {
    /* If needed, the panel which contains the extra filters for a layer */
    margin-bottom: 1rem;
    border-bottom: 2px solid var(--foreground-color);
}

.filter-panel {
    /* The panel for a single layer, containing both the toggle and the filters (if any) */
    border-bottom: 2px solid lightgrey;
    margin-bottom: 0.5rem;
}

.first-filter-panel {
    /* Additional class on the first layer filter */
}

