/* Import font */
@font-face {
  font-family: 'Agave';
  src: url('./font/agave.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}

:root {
  --bg-grad: linear-gradient(135deg, #222222, #222233);
  --bg-grad2: linear-gradient(135deg, #333344, #474047, #333333);
  --input-bg: #333333;
  --input-color: #ffffff;
  --text2: #cccccc;
  --text3: #666666;
  --btn1: #474047;
  --btn2: #504450;
  --btn3: #584458;
  --btn-hover: #665566;
  --tip: #88ff88;
  --tip-bg: #88998855;
  --warn: #ff8888;
  --red: #ff9999;
  --round: 0.5rem;
  --label-margin: 1.5rem;
  --width: 720px;

}

* {
  font-family: Arial, sans-serif;
  font-family: 'Agave', sans-serif;
  font-size: 1.15em;
}

/* Slightly smaller font size on mobile  */
@media (max-width: 1200px) {
  * {
    font-size: 1.1em;
  }
}

html,
body {
  /* background gradient */
  background: var(--bg-grad);
  color: var(--input-color);
  min-height: 100%;
}

#bg {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  background: var(--bg-grad);
}

h1 {
  font-size: 2em;
  margin-bottom: 0.2em;
}

label {
  display: inline-block;
  margin-top: var(--label-margin);
}

label .fa-solid {
  min-width: 1rem;
  opacity: 0.6;
}

button {
  margin-top: 10px;
  padding: 10px;
  background-color: var(--btn3);
  color: var(--input-color);
  border: none;
  cursor: pointer;
  border-radius: var(--round);
  transition: all 0.3s ease;
}

button:hover {
  background-color: var(--btn-hover);
}

button .fa-solid {
  min-width: 1rem;
  opacity: 0.6;
}

input {
  font-size: 1em;
  width: 100%;
  padding: 8px;
  margin-top: 5px;
  box-sizing: border-box;
  background-color: var(--input-bg);
  color: var(--input-color);
  border: none;
  border-radius: var(--round);
}

/* Slightly smaller font size on mobile  */
@media (max-width: 1200px) {
  input {
    font-size: 0.9em;
  }
}

select {
  width: 100%;
  padding: 8px;
  margin-top: 5px;
  box-sizing: border-box;
  background-color: var(--input-bg);
  color: var(--input-color);
  border: none;
  border-radius: var(--round);
}

option {
  font-size: 1rem;
}

textarea {
  font-size: 0.8em;
  margin-top: 10px;
  width: 100%;
  box-sizing: border-box;
  padding: 1rem;
  background-color: var(--input-bg);
  color: var(--input-color);
  border: none;
  border-radius: var(--round);
}

.warn {
  color: var(--warn);
}

.fa-solid {
  vertical-align: middle;
}

.tool-area {
  margin-top: var(--label-margin);
  float: right;
  font-size: 0.9em;
  color: #888888;
}

.btn-tool {
  display: inline-block;
  margin-left: 10px;
  padding: 2px 6px;
  color: var(--input-color);
  border-radius: var(--round);
  cursor: pointer;
  opacity: 0.3;
  transition: all 0.3s ease;
}

.btn-tool:hover {
  color: var(--red);
  opacity: 0.8;
}

.btn-tool-tip:hover {
  color: var(--tip);
  opacity: 1;
}

@keyframes tip-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 0.8;
  }
}

.tip {
  border-left: 4px solid var(--tip);
  margin: 10px 0;
  padding-left: 10px;
  font-size: 0.7em;
  opacity: 0.8;
  line-height: 1.4em;
  display: none;
  animation: tip-in 0.5s ease;
}

.tip-strong {
  font-weight: bold;
  background-color: var(--tip-bg);
  font-size: 0.8rem;
  padding: 0.5rem;
}

.acc-arrow {
  float: right;
  transition: transform 0.3s ease;
}

.input-hider-area {
  width: 100%;
  position: relative;
}

.input-hider {
  position: absolute;
  top: 10%;
  right: 0;
  width: 100%;
  height: 90%;
  background: var(--bg-grad2);
  pointer-events: none;
  border-radius: var(--round);
  overflow: hidden;
  display: none;
}

.input-hider span {
  position: absolute;
  top: 50%;
  left: 4rem;
  transform: translate(-50%, -50%);
  color: var(--text3);
  font-size: 1.5rem;
}

#overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--bg-grad2);
  z-index: 1000;
  opacity: 0.9;
  font-size: 1.2rem;
  display: none;
}

#overlay div {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--input-color);
  font-size: 1.5rem;
}

#overlay a {
  color: var(--input-color);
  text-decoration: underline;
}

@media (max-width: 600px) {
  #overlay {
    font-size: 1rem;
  }

  #overlay div {
    font-size: 1.2rem;
    width: 95%;
  }
}

#top-btns {
  display: flex;
  width: 100%;
  margin-top: 10px;
  height: 4rem;
  max-height: 4rem;
}

#passphrase-emoji {
  position: absolute;
  top: 25%;
  right: 0;
  margin-right: 0.5rem;
  opacity: 0.3;
  font-size: 1.5rem;
  transition: all 0.5s ease;
  cursor: pointer;
  user-select: none;
}

#passphrase-emoji:hover {
  opacity: 1;
  font-size: 5rem;
  right: -2rem;
  transform: rotate(-8deg);
}

#app {
  max-width: var(--width);
  margin: auto;
}

#out-hash {
  font-weight: bold;
  font-size: 1.2em;
  padding: 1rem;
  cursor: pointer;
}

#in-special {
  width: 100%;
  padding: 8px;
  margin-top: 5px;
  box-sizing: border-box;
}

#btn-extras {
  width: 100%;
  padding: 6px;
  background-color: var(--btn1);
  color: var(--text2);
  text-align: left;
  font-size: 1.2rem;
}

#btn-extras:hover {
  background-color: var(--btn-hover);
  opacity: 1;
}

@keyframes extras-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

#ui-extras-container {
  display: none;
  font-size: 1rem;
  animation: extras-in 0.5s ease;
}

#ui-advanced-container {
  display: none;
  font-size: 1rem;
}

#btn-reset,
#btn-view,
#btn-bookmark {
  width: 33.333%;
}

#btn-view {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  background-color: var(--btn1);
}

#btn-view:hover {
  background-color: var(--btn-hover);
}

#btn-bookmark {
  border-radius: 0;
  background-color: var(--btn2);
}

#btn-bookmark:hover {
  background-color: var(--btn-hover);
}

#btn-reset {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  background-color: var(--btn3);
}

#btn-reset:hover {
  background-color: var(--btn-hover);
}


#btn-view {
  float: left;
}

#footer {
  text-align: center;
  margin-top: 3.14rem;
  font-size: 0.8em;
  color: var(--text3);
}

#footer a {
  color: var(--input-color);
  color: var(--text3);
}

/* Hide input controls */

/* Chrome, Safari, Edge, Opera */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
input[type="number"] {
  -moz-appearance: textfield;
}
