@font-face {
  font-family: "Material Symbols Rounded";
  font-style: normal;
  src: url("/static/fonts/material-symbols-rounded.woff2") format("woff2");
}

/* Latin text */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/static/fonts/inter-text.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Latin */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/static/fonts/inter.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --padding: 1.25em;
  --border-radius: 0.5em;
  --transition: 0.3s;
  --primary-bg: #f5f6fa;
  --secondary-bg: #dcdde1;
  --btn-bg: #2f3640;
  --success: #4cd137;
  --neutral: #273c75;
  --error: #e84118;
  --unfocused-border: 0.1em solid #7d7d7d54;
  --focused-border: 0.1em solid #7d7d7d;
}

body {
  font-family: "Inter", sans-serif;
  width: 100%;
  min-height: 100vh;
  box-sizing: border-box;
  padding: 1em;
  background-color: var(--secondary-bg);
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: min(4vw, 18px);
  line-height: 1.2;
}

/* General styling */
i.material {
  font-family: "Material Symbols Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: inherit;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
}

i {
  font-style: italic;
}

b {
  font-weight: 700;
}

h1 {
  font-size: 2em;
  font-weight: 700;
}

h2 {
  font-size: 1.6em;
  font-weight: 700;
}

h3 {
  font-size: 1.4em;
  font-weight: 700;
}

small {
  font-size: 0.8em;
}

code {
  font-family: monospace;
  background-color: var(--primary-bg);
  padding: 0.2em 0.4em;
  border-radius: var(--border-radius);
}

p.code {
  font-family: monospace;
  background-color: var(--primary-bg);
  padding: var(--padding);
  border-radius: var(--border-radius);
  width: fit-content;
  box-sizing: border-box;
  text-wrap: wrap;
  word-break: break-all;
}

p.code code {
  padding: 0;
}

details.technical > summary {
  margin-bottom: 0.25em;
}

details.technical > code {
  font-family: monospace;
  text-wrap: wrap;
  font-size: 0.8em;
  line-height: 1.5;
}

/* General container styling */
main {
  background-color: var(--primary-bg);
  padding: var(--padding);
  box-sizing: border-box;
  border-radius: var(--border-radius);
  display: flex;
  align-items: center;
  gap: 1em;
  max-width: 600px;
}

main > aside {
  font-size: 4em;
  display: flex;
  align-items: center;
}

main > section {
  display: flex;
  flex-direction: column;
  gap: 1em;
}

@media (max-width: 425px) {
  main {
    flex-direction: column;
    gap: 0.5em;
  }

  main > aside {
    font-size: 8em;
  }
}

/* ADMIN STYLING */

/* General styling */
button,
a.btn,
input.btn {
  background-color: var(--btn-bg);
  color: white;
  border: none;
  font-weight: 600;
  padding: 0.5em;
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  font-family: inherit;
  font-size: inherit;
  border-radius: calc(var(--border-radius) / 2);
  gap: 0.2em;
  cursor: pointer;
  transition: var(--transition);
  text-decoration: none;
}

button i.material {
  font-size: 1.5em;
  vertical-align: bottom;
}

input {
  width: 100%;
  border: var(--unfocused-border);
  background-color: var(--primary-bg);
  font-size: inherit;
  font-family: inherit;
  transition: var(--transition);
  padding: 0.65em 0.3em;
  box-sizing: border-box;
  border-radius: calc(var(--border-radius) / 2);
}

input:focus {
  outline: none;
  border: var(--focused-border);
}

input.btn {
  background-color: var(--btn-bg);
  color: white;
  font-weight: 600;
}

label {
  font-weight: 600;
  font-size: 0.8em;
}

/* Login page */
main.login {
  flex-direction: column;
  align-items: flex-start;
  max-width: 350px;
  gap: 1em;
}

main.login > form {
  display: flex;
  flex-direction: column;
  gap: 1em;
  width: 100%;
}

main.login > form > section {
  display: flex;
  flex-direction: column;
  gap: 0.4em;
}

/* Generic styling for full height pages */
body:has(header) {
  flex-direction: column;
  justify-content: flex-start;
}

body:has(header) > #app {
  width: 100%;
  max-width: 1200px;
  padding: 0.5em var(--padding) var(--padding);
  display: flex;
  flex-direction: column;
  gap: 1em;
}

body:has(header) main {
  background-color: transparent;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  max-width: 1200px;
  padding: 0;
}

body:has(header) main > section {
  width: 100%;
  max-width: 900px;
}

body:has(header) form {
  width: 100%;
}

body > div#app > header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: var(--unfocused-border);
  padding-bottom: 1em;
}

/* Form settings general styling */
div.interactContainer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  gap: 0.5em;
}
