* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 62.5%;
  scroll-behavior: smooth;
}

body {
  background: black;
  margin-top: 12px;
  color: rgba(255, 255, 255, 0.9);
}

div h1 {
  color: #ffffff;
  margin-top: 5px;
  margin-bottom: 2px;
  text-align: center;
  font-weight: normal;
}

div hr {
  border: none;
  background: linear-gradient(
    to right,
    rgba(255, 255, 255, 0.4),
    rgba(255, 255, 255, 0.3),
    rgba(255, 255, 255, 0.4)
  );
  margin: auto;
  height: 0.5px;
  width: 90%;
}

.padding-container {
  padding: 5px 20px;
}
.grid-container {
  display: grid;
  grid-template-columns: 2fr 3fr 3fr 2fr;
  grid-template-rows: 3fr 3fr 2fr 2fr 1fr 1fr 1fr;
  gap: 1em 0.5em;
  grid-template-areas:
    ". details status ."
    ". atributes skills ."
    ". combat combat ."
    ". inventory inventory ."
    ". perks perks ."
    ". perks perks ."
    ". perks perks .";
}

.details {
  grid-area: details;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 7px;
  font-size: 1em;
  max-height: 340px;
}

.details p {
  margin-top: 10px;
  font-size: 1.2em;
  font-weight: normal;
}

.status {
  grid-area: status;
  max-height: 340px;
}

.status .padding-container {
  text-align: center;
}

.status img {
  width: 60px;
  height: 60px;
  margin: 0px 30px 0px 30px;
  border-radius: 30px;
}

.status img.dice {
  margin: 0;
  width: 20px;
  height: 20px;
}

.avatar {
  border: 0.5px solid white;
}

.status-container {
  margin: 15px 0px 5px 30px;
}

.status-container p {
  font-size: 1.5em;
  margin-bottom: 2px;
}

.status-container .dice {
  margin-left: 5px;
}

.dice:hover {
  cursor: pointer;
}

.dice.disabled:hover {
  cursor: default;
}

progress.health {
  width: 300px;
  height: 20px;
  border: none;
}

p.health {
  font-weight: bold;
  position: absolute;
  bottom: 50;
  margin-left: calc(150px - 17px);
}

p.sanity {
  font-weight: bold;
  position: absolute;
  bottom: 50;
  margin-top: 4px;
  margin-left: calc(150px - 17px);
}

progress.sanity {
  margin-right: 5px;
  width: 265px;
  height: 20px;
  border: none;
}

progress.health::-webkit-progress-bar {
  background: none;
  border: 1px solid darkred;
}

progress.health::-webkit-progress-value {
  background: darkred;
}

progress.sanity::-webkit-progress-bar {
  background: none;
  border: 1px solid darkblue;
}

progress.sanity::-webkit-progress-value {
  background: darkblue;
}

.checkbox-container {
  margin-top: 5px;
  margin-bottom: 2px;
}

.checkbox-container input {
  margin-left: 4px;
}

.checkbox-container label {
  margin-right: 10px;
  position: relative;
  top: -2px;
}

.status-attributes {
  margin: auto;
  text-align: center;
}

.status-attributes td {
  padding-left: 50px;
}

.status-attributes input {
  background: none;
  border: none;
  outline: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  text-align: center;
  padding-top: 10px;
  padding-bottom: -10px;
  color: white;
  font-size: 2em;
  width: 50px;
  height: 30px;
}

.atributes {
  grid-area: atributes;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 7px;
  font-size: 1em;
  max-height: 340px;
}

.attribute input {
  background: none;
  border: none;
  outline: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  text-align: center;
  margin-bottom: 10px;
  padding-top: 10px;
  padding-bottom: -10px;
  color: white;
  font-size: 2em;
  width: 50px;
  height: 30px;
}

.flex-container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
}

.attribute {
  width: 21%;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}

.attribute .dice {
  margin: 20px;
  margin-bottom: 8px;
}

.attribute label {
  margin: 0px 20px;
}

.skills {
  grid-area: skills;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 7px;
  font-size: 1em;
  overflow: auto;
  max-height: 340px;
}

.skills .padding-container {
  padding-left: 20px;
}

.skills h4 {
  color: rgba(255, 255, 255, 0.6);
  text-align: center;
  margin: auto;
}

.skills div {
  margin: 5px;
  align-items: center;
  justify-content: flex-start;
}

.skill input {
  background: none;
  border: none;
  outline: none;
  border-bottom: 1px solid var(--bottomColor);
  text-align: center;
  margin-bottom: 10px;
  padding-top: 10px;
  padding-bottom: -10px;
  color: var(--textColor);
  font-size: 2em;
  width: 50px;
  height: 30px;
  margin: auto;
  margin-bottom: 3px;
}

.skill {
  width: 17%;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  text-align: center;
  flex-wrap: wrap;
  height: 90px;
  border-radius: 9px;
  --textColor: rgba(255, 255, 255, 0.9);
  --backColor: none;
  --pctgColor: rgba(255, 255, 255, 0.6);
  --bottomColor: rgba(255, 255, 255, 0.3);
}

.skill:hover {
  --textColor: black;
  --backColor: white;
  --pctgColor: black;
  --bottomColor: black;
  background: var(--backColor);
  color: var(--textColor);
}

.skill label {
  color: var(--textColor);
  font-size: 1.1em;
  margin: auto;
  height: 12px;
}

.skill label:hover {
  cursor: pointer;
}

.skill h4 {
  color: var(--pctgColor);
  margin-top: 15px;
  width: 100%;
  font-size: 0.9em;
}

.combat {
  grid-area: combat;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 7px;
  font-size: 1em;
  overflow-y: auto;
  max-height: 235px;
}

.combat table {
  border-spacing: 0;
  text-align: center;
  margin: auto;
  width: 95%;
  overflow-y: auto;
  max-height: 235px;
}

.combat td,
th {
  margin: 0;
  padding-top: 1.5em;
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
}

.combat tr img {
  width: 15px;
  height: 15px;
  border: 1px solid white;
}

.combat tr img:hover {
  cursor: pointer;
}

.combat td div {
  width: 60px;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin: auto;
  margin-bottom: 5px;
}

.combat td img {
  float: left;
  margin-bottom: 10px;
}

.combat td p {
  margin-top: 5px;
}

.combat .damage {
  border: none;
  width: 20px;
  height: 20px;
  margin-right: 5px;
}

div.inventory {
  grid-area: inventory;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 7px;
  font-size: 1em;
  overflow-y: auto;
  max-height: 235px;
}

.inventory table {
  width: 95%;
  border-spacing: 0;
  text-align: center;
  margin: auto;
}

.inventory td,
th {
  padding: 0;
  margin: 0;
  padding-top: 1.5em;
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
}

.inventory tr img {
  width: 15px;
  height: 15px;
  border: 1px solid white;
}

.inventory tr img:hover {
  cursor: pointer;
}

.perks {
  grid-area: perks;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 7px;
  font-size: 1em;
  max-height: 340px;
  overflow-y: auto;
}

.perks .flex-container {
  justify-content: flex-start;
  align-items: center;
}

.perks .padding-container {
  padding-left: 45px;
}

.perks .skill {
  width: 60px;
  margin: 5px 10px;
}

.perks input[type="checkbox"] {
  width: 12px;
  height: 12px;
}

.inventory img, .perks img, .combat img {
  width: 15px;
  height: 15px;
  border: 1px solid white;
}

.inventory ul, .perks ul, .combat ul {
  position: absolute;
  margin-top: 10px;
  right: 23%;
  width: inherit;
  text-align: right;
}

.inventory li, .perks li, .combat li {
  display: inline-block;
}

.inventory li:hover, .perks li:hover, .combat li:hover {
  cursor: pointer;
}

.perks img.disabled:hover {
  cursor: default;
}

::-webkit-scrollbar {
  width: 7px;
  height: 7px;
}
::-webkit-scrollbar-button {
  width: 0px;
  height: 0px;
}
::-webkit-scrollbar-thumb {
  background: #ffffff;
  border: 0px none #ffffff;
  border-radius: 50px;
}
::-webkit-scrollbar-thumb:hover {
  background: #a1a1a1;
}
::-webkit-scrollbar-thumb:active {
  background: #ffffff;
}
::-webkit-scrollbar-track {
  background: #000000;
  border: 0px none #ffffff;
  border-radius: 51px;
}
::-webkit-scrollbar-track:hover {
  background: #000000;
}
::-webkit-scrollbar-track:active {
  background: #000000;
}
::-webkit-scrollbar-corner {
  background: transparent;
}

#snackbar, #snackbar-data, #snackbar-data-inventory, #snackbar-data-combatTable, #snackbar-data-skills {
  visibility: hidden;
  border: 1px solid gray;
  border-radius: 7px;
  min-width: 250px;
  margin-left: -125px;
  background-color: black;
  color: #fff; 
  text-align: center;
  padding: 16px;
  position: fixed; 
  z-index: 1;
  left: 50%;
  bottom: 30px;
}

.snackbar-flex {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

.snackbar-flex-column {
  display: flex;
  flex-direction: column;
}

.snackbar-flex-column input {
  margin-bottom: 6px;
}

.snackbar-flex img {
  padding: 4px;
  margin-right: 3px;
}

.snackbar-text, .snackbar-result {
  line-height: 60px;
  font-size: 10px;
}

#snackbar.show {
  visibility: visible;
  -webkit-animation: fadein 0.5s, fadeout 0.5s 10s;
  animation: fadein 0.5s, fadeout 0.5s 10s;
}

#snackbar-data.show, #snackbar-data-inventory.show, #snackbar-data-combatTable.show, #snackbar-data-skills.show {
  visibility: visible;
  -webkit-animation: fadein 0.5s;
  animation: fadein 0.5s
}

.snackbar-input {
  padding: 4px;
}

.snackbar-input, .snackbar-button {
  color: #fff;
  background-color: black;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 1px;
}

.snackbar-button {
  padding: 2px;
  margin: 0 4px;
}

.snackbar-flex-column button {
  margin: 0;
}

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

@media (max-width: 830px) {
  .grid-container {
    grid-template-columns: 1fr 5fr 1fr;
    grid-template-rows: 2fr;
    grid-template-areas:
      ". details ."
      ". status ."
      ". atributes ."
      ". skills ."
      ". combat ."
      ". combat ."
      ". inventory ."
      ". inventory ."
      ". perks ."
      ". perks .";
  }
}
