@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@600;800&family=Unbounded:wght@600&display=swap");


:root {
  --background-color: #ffffff;
  --element-color: #eeeeee;
  --element-hover-color: #dddddd;
  --border-color: #cccccc;
  --shading-color: #000000aa;;

  --text-color: #000000;

  --orange-color: #fa7f1b;
  --orange-background-color: #fa7f1b25;
  --orange-background-active-color: #fa7f1b50;

  --blue-color: #8f7ee7;
  --blue-background-color: #8f7ee725;
  --blue-background-active-color: #8f7ee750;

  --border-margin: 50px;
  --interblock-margin: 25px;

  --border-width: 2px;
  --border-style: solid;
  --border: var(--border-width) var(--border-style) var(--border-color);

  --book-padding: 20px;
  --book-border-radius: var(--book-padding);
  --books-in-row: 2;
  --book-with-padding-in-row-width: calc(((100% - var(--interblock-margin) * (var(--books-in-row) - 1)) / var(--books-in-row)) - (var(--book-padding) * 2));
}


* {
  margin: 0;
  padding: 0;
}

body {
  background: var(--background-color);
  color: var(--text-color);
  font-family: "Montserrat", sans-serif;
}


body::-webkit-scrollbar,
body::-webkit-scrollbar-track {
  width: 1vw;
}

body::-webkit-scrollbar-track {
  background: var(--background-color);
}

body::-webkit-scrollbar-thumb {
  background: var(--border-color);
}

body.popup::-webkit-scrollbar-track,
body.popup::-webkit-scrollbar-thumb {
  background: var(--shading-color);
}


h1, h2, h3, h4, h5, h6 {
  font-family: "Unbounded", sans-serif;
}

button {
  outline: none;
  border: none;
  cursor: pointer;
}


.no-drag,
.no-select {
  user-select: none;
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
}

.no-drag {
  user-drag: none;
  -webkit-user-drag: none;
}


.row, .column, .center {
  display: flex;
}

.column {
  flex-direction: column;
}

.center {
  align-items: center;
  justify-content: center;
}


.button {
  background: var(--element-color);
  border-radius: 10px;
}

.button:active {
  background: var(--element-hover-color);
}

.none {
  display: none;
}


main .popup,
main .container,
main .cover,
main .settings,
main .settings .setting > div,
main .filters,
main .books,
main .books.table .book,
main .books.table .book img {
  transition: all 0.3s;
}


main .container {
  padding: var(--border-margin);
  gap: var(--interblock-margin);
}

main .container.print {
  padding: 0;
  padding-top: var(--interblock-margin);
}

main .container.print .cover p,
main .container.print .settings,
main .container.print .filters,
main .container.print .displays {
  display: none;
}

/* POPUP */

main .popup {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--shading-color);
  backdrop-filter: blur(10px);
}

body.popup main .popup {
  display: flex;
}

main .popup img {
  max-width: 90vw;
  max-height: 90vh;
  border-radius: 20px;
}

/* SETTINGS */

main .settings {
  gap: 15px;
}

main .setting {
  gap: 10px;
  min-width: max-content;
}


main .settings .setting > div {
  padding: 5px 10px 5px;
  cursor: pointer;
}

main .settings .setting > div.active,
main .settings .setting > div.active:active {
  background: none;
  padding: 5px 0 5px;
  cursor: default;
}


main .settings .sort {
  border-radius: 15px;
}

main .settings .sort.date {
  color: var(--orange-color);
  background: var(--orange-background-color);
}

main .settings .sort.date:active {
  background: var(--orange-background-active-color);
}

main .settings .sort.alphabet {
  color: var(--blue-color);
  background: var(--blue-background-color);
}

main .settings .sort.alphabet:active {
  background: var(--blue-background-active-color);
}


main .filters,
main .displays {
  display: none;
}

main .filters.active,
main .displays.active {
  display: flex;
}

main .filters .column + .column {
  margin-left: 25px;
}


main .books .book {
  min-width: min-content;
  background: var(--element-color);
  padding: var(--book-padding);
  border-radius: var(--book-border-radius);
}

/* TABLE VIEW */

main .books.table {
  flex-wrap: wrap;
}

main .books.table .book {
  gap: var(--book-padding);
  width: var(--book-with-padding-in-row-width);
}

main .books.table .book img {
  border-radius: 10px;
  cursor: pointer;
}

main .books.table .book .details {
  margin-top: 10px;
}

/* LIST VIEW */

main .books.list .book .details {
  display: flex;
  gap: 10px;
}

main .books.list .book .details > * + * {
  padding-left: 10px;
  border-left: var(--border);
}

main .books.list .book .details > *.none + * {
  padding: 0;
  border: none;
}

main .books.list .book .details > *:not(.none) + *.none + *.none + *:not(.none) {
  padding-left: 10px;
  border-left: var(--border);
}

main .books.list .book .details > *:not(.none) + *.none + *:not(.none) {
  padding-left: 10px;
  border-left: var(--border);
}

/* PRINT VIEW */

main .books.print .book {
  border-radius: 0;
  background: none;
  padding: 5px 0 5px;
}

main .books.print .book:first-of-type {
  padding-top: 0;
}

main .books.print .book:last-of-type {
  padding-bottom: 0;
}

main .books.print .book + .book {
  border-top: var(--border);
}

main .books.print .book .details {
  display: none;
}

/* COMBINED VIEW */

main .books.list,
main .books.print {
  flex-direction: column;
}

main .books.list .book img,
main .books.print .book img {
  display: none;
}

main .books.table,
main .books.list {
  gap: var(--interblock-margin);
}