/* ============== MAIN ==================== */

@import url("https://fonts.googleapis.com/css?family=Raleway");
@import url('https://fonts.googleapis.com/css?family=Roboto');

:root {
  --glow-color: hsl(30 90% 90%);
  --glow-color-light: hsl(30 70% 70%);
  --glow-color-alpha: hsla(30 70% 70% 0.5);
  --background-color: hsl(30 10% 15%);
  --hover-bg-color: hsl(30 10% 40%);
  --light-background-color: hsl(30 10% 20%);
  --dark-color: hsl(30 10% 5%);
  --shadow-color: #000000;
}


html,
body {
  height: 100%;
  width: 100%;
  overflow: hidden;
}

body {
  min-height: 100vh;
  justify-content: center;
  background: var(--background-color);
  font-family: roboto;
  color: var(--glow-color) 
}

/* ==================== MISC ================== */

h1 {
  font-family: "Raleway", sans-serif;
  position: fixed;
  display: block;
  top: 0;
  left: 10vw;
  border-bottom: 1px solid var(--light-background-color);
  right: 0;
  text-align: center;
  padding: 1vh 0 3pt 0;
  margin: 0;
  text-transform: uppercase;
  font-weight: bold;
  font-size: 15pt;
  z-index: 2000;
}

h2.campaign-name {
  font-family: "Raleway", sans-serif;
  position: fixed;
  display: block;
  top: 27pt;
  left: 10vw;
  right: 0;
  text-align: center;
  padding: 1vh 0;
  margin: 0;
  text-transform: uppercase;
  font-weight: bold;
  font-size: 12pt;
  cursor: pointer;
  z-index: 2000;
}

.version {
  position: fixed;
  display: block;
  bottom: 0;
  padding: 0;
  margin: 0;
  left: 15px;
  font-size: 6pt;
  font-variant: italic;
  z-index: 1000;
  opacity: 0.25;
}

#image-count {
  display: none;
}

.select-count {
  position: fixed;
  font-size: 12px;
  bottom: 0;
  padding: 0;
  margin: 0;
  right: 10px;
}


/* ============================ GALLERY ============================================== */

div.gallery {
  position: fixed;
  display: flex;
  align-items: center;
  justify-content: center;
  hight: 100vh;
  left: 10vw;
  top: 0;
  bottom: 0vh;
  right: 0;
}

div.gallery-content {
  justify-content: center;
  align-items: center;
  position: absolute;
  width: 100%;
  padding: 10px;
  top: 5vh;
  bottom: 5vh;
  text-align: center;
}


div.grid-container {
  position: absolute;
  display: grid; 
  width: min(84vw, 150vh);
  height: min(42vw, 75vh);
  grid-template-columns: repeat(6, 1fr);
  padding: 0;
  gap: 0;
  margin: 0;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}


.grid-item {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1/1;
}


.grid-item img {
  position: absolute;
  width: 95%;
  top: 50%;
  left: 50%;
  aspect-ratio: 1/1;

  transform: translate(-50%, -50%);
}

.grid-item i {
  color: yellow;
  position: absolute;
  text-shadow: 0 0 2px black;
}

.grid-item i.campaign-bookmark {
  top: 1vw;
  left: 1vw;
  font-size: 100%;
}

.grid-item i.has-keyword{
  top: 1vw;
  right: 1vw;
  font-size: 50%;
}

.grid-item i.in-campaign {
  top: 1vw;
  left: 1vw;
  font-size: 25%;
  color: red;
}

.grid-item .fa-regular {
  opacity: 0.2;
}

p.campaign-portrait-name {
  color: yellow;
  text-shadow: 1px 1px 0 black;
  font-size: 70%;
  position: absolute;
  bottom: 0.25vh;
  left: 0.25vh;
  right: 0.25vh;
  border-bottom-left-radius: 1vw;  
  border-bottom-right-radius: 1vw;  
  margin: 0;
  text-transform: uppercase;
}

p.campaign-portrait-name-on {
  padding: 5px 0;
  background-color: rgba(0, 0, 0, 0.5);
  cursor: text;
}

p.campaign-portrait-name-off {
  padding: 0;
  background-color: rgba(0, 0, 0, 0);
  cursor: pointer;
}

input.campaign-portrait-name-input {
  z-index: 200;
  display: block;
  color: yellow;
  border: 0px;
  text-shadow: 1px 1px 0 black;
  font-size: 70%;
  position: absolute;
  bottom: 2px;
  left: 2px;
  right: 2px;
  border-bottom-left-radius: 1vw;  
  border-bottom-right-radius: 1vw;  
  margin: 0;
  padding: 5px 0;
  background-color: rgba(0, 0, 0, 0.5);
  cursor: text;
  text-align: center;
  width: 100%;
  text-transform: uppercase;
}

input.campaign-portrait-name-input:focus {
  border: 0;
  outline: none;
  background-color: rgba(100,100,0,0.25);
}

div.mode-selection img.thumb {
  cursor: pointer;
}

div.mode-magnify img.thumb {
  cursor: zoom-in;
}

img.thumb {
  display: inline-block;
  border-radius: 1vw;
  box-shadow: 0 0 1vh black;
  transition: all 0.25s ease;
  border: 0.25vh solid rgba(0,0,0,0);

}

img.selected {
  border: 0.25vh solid var(--glow-color);
  box-shadow: 0 0 0.25vh black, 0 0 0.8vh var(--glow-color);
}

span.have-keywords {
  display: block;
  position: absolute;
  width: 10%;
  height: 10%;
  top: 6%;
  left: 6%;
  background-image: url("icons/icons8-note-64.png");
  background-repeat: no-repeat;
  background-size: contain;
}


/* ============================== NAVIGATION ========================== */

div.page-number {
  display: flex;
  position: fixed;
  justify-content: center;
  align-items: center;
  bottom: 0px;
  height: min(8vh,8vw);
  top: 50%;
  transform: translate(0, min(21vw, 37vh));
  font-size: 1vh;
  color: var(--glow-color);
  text-transform: uppercase;
}

div.next,
div.prev {
  position: absolute;
  top: 50%;
  width: min(8vh,8vw);
  aspect-ratio: 1/1;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0.4;
  cursor: pointer;
  z-index: 20000;
  transform: translate(0, min(21vw, 37vh));
  transition: all 0.5s;
}

div.prev {
  left: min(6vh, 6vw);
  background-image: url("prev.png");
}

div.next {
  right: min(6vh, 6vw);
  background-image: url("next.png");
}

div.next:hover,
div.prev:hover {
  opacity: 1;
}

div#displayed-page {
  display: none;
}

/* ============================= FORM ========================================== */

.form-inside input[type="password"],
.form-inside input[type="text"] {
  width: 50%;
  border: 0;
  border-bottom: 1px solid  var(--glow-color);
  border-radius: 3px;
  background: rgba(0,0,0,0.25) !important;
  text-align: center;
  padding: 5px;
  font-size: 1em;
  font-family: "Raleway", sans-serif;
  color: 1px solid  var(--glow-color);;
}

.add-user-dialog {
  opacity: 0;
  background: #332f35;
  height: 500px;
}

.add-user-dialog-hidden {
  display: none;
}

.form-inside input.large {
  width: 100%;
}

.form-inside input.short {
  width: 3em;
  margin-right: 5px;
  margin-left: 5px;
}

/* ============================= MENU ========================================== */

div.menu {
  position: fixed;
  justify-content: center;
  align-items: top;
  hight: 100vh;
  width: 10vw;
  top: 0;
  left: 0;
  bottom: 0;
  box-shadow: 10px 0 20px black;
  border: 1px solid black;
  background: var(--dark-color);
  text-align: center;
}

div.menu hr {
  border-top: 1px solid var(--dark-color);
  border-bottom: 1px solid var(--background-color);
}
div.menu button {
  display: inline-block;
  cursor: pointer;
}

div.menu h2 {
  font-family: "Raleway", sans-serif;
  text-align: center;
  padding: 1vh 0;
  margin: 0;
  text-transform: uppercase;
  font-weight: bold;
  text-transform: uppercase;
  font-size: 1vw;
}

button.menu-button,
.menu button {
  font-family: "Raleway", sans-serif;
  width: 8vw;
  display: block;
  padding: 0.5vw 5px;
  margin: 5px 0;
  background: var(--background-color);
  border: 1px dashed var(--light-background-color);
  border-radius: 5px;
  box-shadow: 2px 2px 5px var(--shadow-color),
    -2px -2px 5px var(--light-background-color) inset, 
    2px 2px 5px var(--shadow-color) inset;
  color: var(--glow-color-light);
  transition: all 0.5s ease;
  font-size: 0.7vw;
}

button.menu-button:hover,
.menu button:hover {
  background: var(--hover-bg-color);
  box-shadow: 2px 2px 5px var(--shadow-color),
    2px 2px 5px var(--hover-bg-color) inset, -2px -2px 5px var(--shadow-color) inset; 
}

button.inactive {
  color: var(--light-background-color);
  text-shadow: 0 0 5px var(--shadow-color);
  background: var(--dark-color);
  box-shadow: 2px 2px 5px var(--shadow-color), -2px -2px 5px var(--background-color) inset, 2px 2px 5px var(--shadow-color) inset;
  border: 1px dashed var(--background-color);
}

button.button-menu span {
  display: block;
  position: absolute;
  left: 30px;
  transition: all 0.5s ease;
}

button.button-off span i {
  color: var(--shadow-color);
  text-shadow: 1px 1px 1px var(--light-background-color), -1px -1px 1px var(--shadow-color);
  transition: all 0.5s ease;
}

button.button-on span i {
  color: #90FF80;
  text-shadow: 1px 1px 1px var(--light-background-color), -1px -1px 1px var(--shadow-color),0 0 4px rgba(100,125,80,0.5);
  transition: all 0.5s ease;
}

.menu .menu-help {
  display: none;
  position: absolute;
  width: 30px;
  height: 30px;
  font-size: 30px;
  bottom: 10px;
  left: 20px;
}

/* ================================= HELP =========================================== */

div.help {
  display: none;
}

/* ================================== IMAGE DETAILS ===================================== */

.details {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0;
  background: #332f35;
  display: none;
  z-index: 5000;
  text-align: justify;
}

div.image-full {
  position: absolute;
  top: min(10vh, 10vw);
  left: min(10vh, 10vw);
  height: min(80vh, 80vw);
  width: min(80vh, 80vw);
  border-radius: 3vh;
  box-shadow: 0 0 10px black;
  padding: 0px;
  text-align: center;
  display: inline-block;
  overflow: hidden;
  z-index: 100;
}

img.image-full {
  display: inline-block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 100;
  cursor: zoom-out;
}

div.image-infos {
  position: absolute;
  top: 0;
  bottom: -30px;
  right: 0;
  left: min(100vh, 100vw);
  background: var(--background-color);
  border: 0px solid black;
  box-shadow: 0 -20px 20px black inset;
  padding: 20px 20px;
}

div.image-full .keywords {
  display: block;
  position: absolute;
  top: 2%;
  bottom: 2%;
  left: 2%;
  z-index: 500;
  padding-bottom: 5%;
  font-size: 1.1vh;
  transition: all 0.5s ease;
  border: 1px solid white;
  text-align: left;
}


.keywords-list button {
  font-family: "Raleway", sans-serif;
  background: rgba(0,0,0,0.25);
  color: var(--glow-color);
  text-shadow: 0 0 5px var(--glow-color-light);
  border: 1px solid var(--glow-color-light);
  box-shadow: 0 0 6px var(--shadow-color);
  border-radius: 10px;
  transition: all 0.5s ease;
  cursor: pointer;
  padding: 5px 10px;
  font-size: min(1.2vw, 1.2vh);
  display: inline-block;
  margin: 0px;
}

.keywords-list button.activ {
  font-family: "Raleway", sans-serif;
  background: var(--glow-color);
  color: var(--background-color);
  text-shadow: 0 0 5px var(--light-background-color);
  border: 1px solid var(--glow-color-light);
  box-shadow: 0 0 6px var(--shadow-color);
  cursor: not-allowed;
}

.close-image-full {
  display: block;
  position: fixed;
  top: 10px;
  left: 10px;
  width: 35px;
  height: 35px;
  text-size: 50px;
  color: var(--glow-color);
  z-index: 15000;
  cursor: pointer;
}

.close-image-full i {
  text-size: 50px;
  width: 100%;
  height: 100%;  
}

.campaign-bookmark-out {
  cursor: copy;
}

.campaign-bookmark-in {
  cursor: no-drop;
}


/* =================================== SET FILTERS ========================================= */

.filter-window {
  opacity: 0;
  display: block;
  position: fixed;
  background: var(--dark-color);
  top: 10vh;
  bottom: 10vh;
  right: 20vw;
  left: 20vw;
  border: 2px solid var(--glow-color);
  border-radius: 20px;
  padding: min(1vh, 1vw);
  text-align: justify;
}

.filter-window p {
  text-align: center;
}

.filter-window .filter-buttons {
  width: 100%;
  margin: 10px 0;
  text-align: center;
}

button.inline-button {
  display: inline-block;
  margin: 2px;
}



/* ====================================== CAMPAIGNS ======================================= */
.campaign-selector {
  display: none;
  opacity: 0;
  position: fixed;
  top: 30pt;
  left: 30vw;
  right: 20vw;
  background: var(--background-color);
  border-radius: 20px;
  border: 1px solid var(--glow-color);
  box-shadow: 0 0 10px black;
  text-align: center;
  text-transform: capitalize;
  z-index: 10000;
  padding: 2vh 1vw;
}

.campaign-selector p {
  display: block;
}


table.campaign-selector-table {
  display: inline-block;
  margin: auto;
  border-collapse: collapse;
}

.campaign-selector-table tr:nth-child(odd) {
  background: var(--light-background-color);
}

.campaign-selector-table td {
  padding: 3px 10px;
}

.campaign-selector-table td:nth-child(3) i.fa-trash {
  cursor: pointer;
}


.campaign-confirm-delete-popup {
  position: fixed;
  display: none;
  opacity: 0;
  top: 30pt;
  left: 30vw;
  right: 20vw;
  background: var(--background-color);
  border-radius: 20px;
  border: 1px solid var(--glow-color);
  box-shadow: 0 0 10px black;
  text-align: center;
  z-index: 15000;
  padding: 8vh 1vw;
}

.campaign-confirm-delete-popup p.campaign-name {
  font-weight: bold;
  font-size: 14pt;
  text-transform: uppercase;
  text-shadow: 0 0 5px var(--glow-color);
}

b {
  font-weight: bold;
  text-shadow: 0 0 5px var(--glow-color);
}