@font-face {
  font-family: "Chess";
  src: url("chess.ttf") format("ttf");
}

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

html {
  font-size: 10px;
}

body {
  background-repeat: repeat;
  background-position: center;
  text-align: center;
  font-family: Ubuntu, sans-serif;

  --header-height: 4rem;
  --header-margin: 6rem;
}

.dark {
  background-color: #313742;
  background-image: url(/img/pattern.png);
  background-size: 12rem;
  color: rgb(212, 221, 224);
  --logo-url: url(/img/logo.svg);

  --color-btn: rgb(0, 173, 136);
  --color-btn-light: rgb(0, 207, 162);
  --color-tab: #899399;
  --color-tab-light: #a9b4bd;
  --color-bg-block: #17171f;
  --color-bg-input: #20242a;
  --color-border-input: #2d323a;
  --color-highlight: #ffffff22;
  --color-text: #aaa;
  --color-text-contrast: #0e0e13;
  --color-text-input: #acbddb;
  --color-text-dimmed: #677794;
  --color-scrollbar: rgb(0, 59, 47);
  --color-scrollbar-track: #ffffff22;
}

.light {
  background-color: #959ea1;
  background-image: url(/img/pattern-light.png);
  color: rgb(29, 31, 32);
  --logo-url: url(/img/logo-dark.svg);

  --color-btn: rgb(0, 148, 116);
  --color-btn-light: rgb(0, 114, 89);
  --color-tab: #5d6468;
  --color-tab-light: #3e4346;
  --color-bg-block: #dddddd;
  --color-bg-input: #eeeeee;
  --color-border-input: #7f8999;
  --color-highlight: #00000022;
  --color-text: rgb(46, 54, 58);
  --color-text-contrast: #fff;
  --color-text-input: #46494e;
  --color-text-dimmed: #767980;
  --color-scrollbar: rgb(133, 184, 173);
  --color-scrollbar-track: #00000022;
}

.upload {
  visibility: hidden;
  padding: 0;
}

.upload::before {
  content: "UPLOAD PGN FILE";
  visibility: visible;
  display: inline-block;
  text-align: center;
  box-sizing: border-box;
}

button,
.upload::before {
  padding: 1rem;
  font-family: "Ubuntu";
  font-size: 1.5rem;
  background: var(--color-btn);
  color: var(--color-text-contrast);
  border-radius: 5px;
  width: 100%;
}

button:hover,
.upload:hover::before {
  background: var(--color-btn-light);
  cursor: pointer;
}

input,
textarea {
  width: 100%;
  padding: 1rem;
  font-family: "Fira Mono";
  font-size: 1.4rem;
  margin-bottom: 1rem;
  background: var(--color-bg-input);
  border: solid 1px var(--color-border-input);
  color: var(--color-text-input);
  outline: none;
  resize: none;
}

input:focus,
textarea:focus {
  border-color: rgb(0, 87, 68);
}

h2 {
  color: var(--color-text);
  text-align: left;
  font-size: 1.5rem;
  margin: 2.5rem 0 1.5rem 0;
  font-weight: 500;
}

h3 {
  color: var(--color-text);
  text-align: left;
  font-size: 1.6rem;
  margin: 1.5rem 0 1rem 0;
  font-weight: 500;
}

hr {
  margin-top: 2rem;
  border-top: solid 1px var(--color-highlight);
}

a,
a:visited,
a:active {
  color: var(--color-btn);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

.invisible {
  opacity: 0;
}

.board-box {
  height: 100vh;
  grid-area: board;
  padding: var(--header-margin) 0 2rem 0;
}

.board {
  box-shadow: 0 0 2rem #00000099;
  border-radius: 5px;
  max-width: 100%;
  max-height: 100%;
}

.double {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 10px;
}

.layout {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  grid-template-rows: 1fr;

  grid-template-areas:
    "setup board moves"
    "setup board controls";

  height: 100vh;
}

@media screen and (max-width: 1024px) {
  .layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "board"
      "moves"
      "setup";
  }

  .moves-box {
    height: auto;
  }

  .board-box {
    height: auto;
  }

  .setup-box {
    height: auto;
  }
}

::placeholder {
  color: var(--color-text-dimmed);
}
