﻿body {
  padding-top: 60px;
  padding-bottom: 20px;
}

/* Fix single page anchor nav */
.anchor:before {
  display: block;
  content: " ";
  margin-top: -75px;
  height: 75px;
  visibility: hidden;
}

.esps {
   text-align: center;
}

.esps-legend {
    margin-top: 5px;
    margin-bottom: 5px;
}

.esps-table {
    margin-left: 10px;
    border-spacing: 10px;
    width: 100%;
}

.footer {
  position: fixed;
  bottom: 0;
  width: 100%;
  height: 20px;
  background-color: #222;
  color: #9d9d9d;
}

/* Color picker */
.colorpicker-saturation {
  width: 200px;
  height: 200px;
}

.colorpicker-hue,
.colorpicker-alpha {
  width: 30px;
  height: 200px;
}

.colorpicker-color,
.colorpicker-color div {
  height: 30px;
}

.btn-cp {
  border: 1px solid;
  width: 100%;
}

.white {
  background-color: #FFFFFF;
  border: 1px solid;
  width: 100%;
}

.red {
  background-color: #FF0000;
  border: 1px solid;
  width: 100%;
}

.green {
  background-color: #00FF00;
  border: 1px solid;
  width: 100%;
}

.blue {
  background-color: #0000FF;
  border: 1px solid;
  width: 100%;
}

canvas {
  background-color: black;
  width: 100%;
  height: auto;
}

/* Snackbar - position it at the bottom and in the middle of the screen */
#snackbar {
    visibility: hidden;     /* Hidden by default. Visible on click */
    min-width: 250px;       /* Set a default minimum width */
    margin-left: -125px;    /* Divide value of min-width by 2 */
    background-color: #333; /* Black background color */
    color: #fff;            /* White text color */
    text-align: center;     /* Centered text */
    border-radius: 2px;     /* Rounded borders */
    padding: 16px;          /* Padding */
    position: fixed;        /* Sit on top of the screen */
    z-index: 1;             /* Add a z-index if needed */
    left: 50%;              /* Center the snackbar */
    bottom: 30px;           /* 30px from the bottom */
}

/* Show the snackbar when clicking on a button (class added with JavaScript) */
#snackbar.show {
    visibility: visible; /* Show the snackbar */

/* Add animation: Take 0.5 seconds to fade in and out the snackbar.
However, delay the fade out process for 2.5 seconds */
    -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
    animation: fadein 0.5s, fadeout 0.5s 2.5s;
}

/* Animations to fade the snackbar in and out */
@-webkit-keyframes fadein {
    from {bottom: 0; opacity: 0;}
    to {bottom: 30px; opacity: 1;}
}

@keyframes fadein {
    from {bottom: 0; opacity: 0;}
    to {bottom: 30px; opacity: 1;}
}

@-webkit-keyframes fadeout {
    from {bottom: 30px; opacity: 1;}
    to {bottom: 0; opacity: 0;}
}

@keyframes fadeout {
    from {bottom: 30px; opacity: 1;}
    to {bottom: 0; opacity: 0;}
}

/* Progress bar */
.bar {
  width: 100%;
  height: 20px;
  border: 1px solid #2980b9;
  border-radius: 3px;
  background-image:
    repeating-linear-gradient(
      -45deg,
      #2980b9,
      #2980b9 11px,
      #eee 10px,
      #eee 20px /* determines size */
    );
  background-size: 28px 28px;
  animation: move .5s linear infinite;
}

@keyframes move {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 28px 0;
  }
}

.form-horizontal .control-label.text-left {
    text-align: left;
}

/* Pulled from Bootstrap v4.5.3 */
input:invalid {
    border-color: #dc3545;
    padding-right: calc(1.5em + 0.75rem);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.1875rem) center;
    background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

/* Pulled from Bootstrap v4.5.3 */
/*
input:valid {
    border-color: #28a745;
    padding-right: calc(1.5em + 0.75rem);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.1875rem) center;
    background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
*/

#filemanagementupload
{
    border: 2px dashed #ccc;
    border-radius: 20px;
    width: 480px;
    font-family: sans-serif;
    margin: 100px auto;
    padding: 20px;
}

#drop-area.highlight
{
    border-color: purple;
}

p
{
    margin-top: 0;
}

.my-form
{
    margin-bottom: 10px;
}

#gallery
{
    margin-top: 10px;
}

#gallery img
{
        width: 150px;
        margin-bottom: 10px;
        margin-right: 10px;
        vertical-align: middle;
    }

.button
{
    display: inline-block;
    padding: 10px;
    background: #ccc;
    cursor: pointer;
    border-radius: 5px;
    border: 1px solid #ccc;
}

.button:hover
{
    background: #ddd;
}

#fileElem
{
    display: none;
}

/* simple tree from https://www.cssscript.com/folder-tree-json/ */
.simple-tree {
    user-select: none;
    -moz-user-select: none;
}

    .simple-tree > details > summary {
        display: none;
    }

    .simple-tree a,
    .simple-tree summary {
        display: block;
        width: fit-content;
        width: -moz-fit-content;
        border: solid 1px transparent;
        padding: 0 2px;
        outline: none;
        cursor: pointer;
    }

    .simple-tree a {
        text-decoration: none;
        color: inherit;
    }

    .simple-tree ::-webkit-details-marker {
        display: none;
    }

    .simple-tree summary {
        list-style-type: none;
        background-color: #eee;
        outline: none;
    }

    .simple-tree.dark summary {
        background-color: #444;
    }

    .simple-tree details > :not(details),
    .simple-tree details {
        position: relative;
    }

        .simple-tree details :not(summary) {
            margin-left: 20px;
        }

    .simple-tree.nodots details :not(summary) {
        margin-left: 12px;
    }

    .simple-tree details::before,
    .simple-tree details > :not(details)::before {
        content: '';
        width: 10px;
        display: block;
        position: absolute;
    }

    .simple-tree details::before,
    .simple-tree details > :not(details)::before {
        background: url('data:image/svg+xml;utf8,<svg viewBox="0 0 2 2" xmlns="http://www.w3.org/2000/svg"><g><rect x="0" y="0" width="1" height="1"/></g></svg>') left top / 2px 2px;
    }

    .simple-tree.dark details::before,
    .simple-tree.dark details > :not(summary)::before {
        background-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 2 2" xmlns="http://www.w3.org/2000/svg"><g><rect x="0" y="0" width="1" height="1" fill="white"/></g></svg>');
    }

    .simple-tree.nodots details::before,
    .simple-tree.nodots details > :not(summary)::before {
        background-image: none;
    }

    .simple-tree details::before {
        top: 0;
        height: 100%;
        background-repeat: repeat-y;
        left: 5px;
        z-index: -1;
    }

    .simple-tree details > :not(details)::before {
        top: 8px;
        height: calc(100% - 8px);
        background-repeat: repeat-x;
        left: -15px;
    }

    .simple-tree details > summary::before {
        background: url('data:image/svg+xml;utf8,<svg viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg"><g><rect x="0" y="0" width="12" height="12" fill="white" stroke="gray" stroke-width="1"/><line x1="3" y1="6" x2="9" y2="6" stroke="black" stroke-width="2"/><line x1="6" y1="3" x2="6" y2="9" stroke="black" stroke-width="2"/></g></svg>') center center / 12px 12px no-repeat;
        left: -22px;
        top: 2px;
        width: 16px;
        height: 16px;
    }

    .simple-tree details[open] > summary::before {
        background-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg"><title/><g><rect x="0" y="0" width="12" height="12" fill="white" stroke="gray" stroke-width="1"/><line x1="3" y1="6" x2="9" y2="6" stroke="black" stroke-width="2"/></g></svg>');
    }
/* async tree */
.async-tree details[open][data-loaded=false] {
    pointer-events: none;
}

    .async-tree details[open][data-loaded=false] > summary::before {
        background-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg"><g><animateTransform attributeName="transform" type="rotate" from="0 32 32" to="360 32 32" dur="1s" repeatCount="indefinite"/><circle cx="32" cy="32" r="32" fill="whitesmoke"/><path d="M 62 32 A 30 30 0 0 0 32 2" style="stroke: black; stroke-width:6; fill:none;"/></g></svg>');
    }

.async-tree.black details[open][data-loaded=false] > summary::before {
    background-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg"><g><animateTransform attributeName="transform" type="rotate" from="0 32 32" to="360 32 32" dur="1s" repeatCount="indefinite"/><circle cx="32" cy="32" r="32" fill="whitesmoke"/><path d="M 62 32 A 30 30 0 0 0 32 2" style="stroke: white; stroke-width:6; fill:none;"/></g></svg>');
}
/* select tree */
.select-tree .selected {
    background-color: #beebff;
    border-color: #99defd;
    z-index: 1;
}

.select-tree.dark .selected {
    background-color: #3a484e;
    border-color: #99defd;
}
