* {
  padding: 0;
  margin: 0;
  outline: none;
  font-family: Arial, Helvetica, sans-serif;
  box-sizing: border-box;
  color: #1b1b17;
}

body.dark-mode * {
  color: #f8f8f6;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 1rem;
  font-weight: normal;
}

a {
  text-decoration: none;
}

li {
  margin-left: 2.5rem;
}
.round-no-left-top {
  border-top-left-radius: 0;
}

.round-no-right-top {
  border-top-right-radius: 0;
}

.round-no-left-bottom {
  border-bottom-left-radius: 0;
}

.round-no-right-bottom {
  border-bottom-right-radius: 0;
}
:root {
  --color-primary: $color-primary;
  --color-primary-50: $color-primary-50;
  --color-primary-30: $color-primary-30;
  --color-primary-100: $color-primary-100;
  --color-primary-200: $color-primary-200;
  --color-primary-300: $color-primary-300;
  --color-primary-400: $color-primary-400;
  --color-primary-500: $color-primary-500;
  --color-primary-600: $color-primary-600;
  --color-primary-700: $color-primary-700;
  --color-primary-800: $color-primary-800;
  --color-primary-900: $color-primary-900;
  --color-primary-950: $color-primary-950;
  --color-slate-50: $color-slate-50;
  --color-slate-30: $color-slate-30;
  --color-slate-100: $color-slate-100;
  --color-slate-200: $color-slate-200;
  --color-slate-300: $color-slate-300;
  --color-slate-400: $color-slate-400;
  --color-slate-500: $color-slate-500;
  --color-slate-600: $color-slate-600;
  --color-slate-700: $color-slate-700;
  --color-slate-800: $color-slate-800;
  --color-slate-900: $color-slate-900;
  --color-slate-950: $color-slate-950;
}

button.button-solid-primary, .button-link.button-solid-primary {
  padding: 0.625rem 1.25rem;
  font-size: 1.125rem;
  border-radius: 0.75rem;
  border: 2px solid;
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  cursor: pointer;
  background-color: #cf2f5e;
  border-color: #cf2f5e;
  color: #FAE9EE;
}
button.button-solid-primary:active, .button-link.button-solid-primary:active {
  transform: scale(0.95);
}
button.button-solid-primary:hover, .button-link.button-solid-primary:hover {
  border-color: #d9587e;
  background-color: #d9587e;
}

button.button-light-primary, .button-link.button-light-primary {
  padding: 0.625rem 1.25rem;
  font-size: 1.125rem;
  border-radius: 0.75rem;
  border: 2px solid;
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  cursor: pointer;
  background-color: rgba(245, 212, 222, 0);
  border-color: rgba(245, 212, 222, 0);
  color: #cf2f5e;
}
button.button-light-primary:active, .button-link.button-light-primary:active {
  transform: scale(0.95);
}
button.button-light-primary:hover, .button-link.button-light-primary:hover {
  border-color: #f5d4de;
  background-color: #f5d4de;
}
body.dark-mode button.button-light-primary:hover, body.dark-mode .button-link.button-light-primary:hover {
  border-color: #7b1c38;
  background-color: #7b1c38;
}

button.button-outline-primary, .button-link.button-outline-primary {
  padding: 0.625rem 1.25rem;
  font-size: 1.125rem;
  border-radius: 0.75rem;
  border: 2px solid;
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  cursor: pointer;
  background-color: rgba(250, 233, 238, 0);
  border-color: #cf2f5e;
  color: #cf2f5e;
}
button.button-outline-primary:active, .button-link.button-outline-primary:active {
  transform: scale(0.95);
}
button.button-outline-primary:hover, .button-link.button-outline-primary:hover {
  border-color: #d9587e;
  color: #d9587e;
}

button.button-flat-primary, .button-link.button-flat-primary {
  padding: 0.625rem 1.25rem;
  font-size: 1.125rem;
  border-radius: 0.75rem;
  border: 2px solid;
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  cursor: pointer;
  background-color: #f5d4de;
  border-color: #f5d4de;
  color: #cf2f5e;
}
button.button-flat-primary:active, .button-link.button-flat-primary:active {
  transform: scale(0.95);
}
button.button-flat-primary:hover, .button-link.button-flat-primary:hover {
  color: #d9587e;
  background-color: rgba(245, 212, 222, 0.6);
  border-color: rgba(245, 212, 222, 0.6);
}
body.dark-mode button.button-flat-primary, body.dark-mode .button-link.button-flat-primary {
  background-color: #7b1c38;
  color: #FAE9EE;
  border-color: #7b1c38;
}
body.dark-mode button.button-flat-primary:hover, body.dark-mode .button-link.button-flat-primary:hover {
  background-color: #a5264b;
  border-color: #a5264b;
}

button.button-ghost-primary, .button-link.button-ghost-primary {
  padding: 0.625rem 1.25rem;
  font-size: 1.125rem;
  border-radius: 0.75rem;
  border: 2px solid;
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  cursor: pointer;
  background-color: rgba(207, 47, 94, 0);
  border-color: #cf2f5e;
  color: #cf2f5e;
}
button.button-ghost-primary:active, .button-link.button-ghost-primary:active {
  transform: scale(0.95);
}
button.button-ghost-primary:hover, .button-link.button-ghost-primary:hover {
  color: #FAE9EE;
  background-color: #cf2f5e;
}

button.button-glow-primary, .button-link.button-glow-primary {
  padding: 0.625rem 1.25rem;
  font-size: 1.125rem;
  border-radius: 0.75rem;
  border: 2px solid;
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  cursor: pointer;
  background-color: #cf2f5e;
  border-color: #cf2f5e;
  color: #FAE9EE;
  box-shadow: 0 0.125rem 1rem rgba(207, 47, 94, 0.6);
}
button.button-glow-primary:active, .button-link.button-glow-primary:active {
  transform: scale(0.95);
}
button.button-glow-primary:hover, .button-link.button-glow-primary:hover {
  border-color: #d9587e;
  background-color: #d9587e;
}

button.button-disabled, .button-link.button-disabled {
  cursor: not-allowed;
  position: relative;
  pointer-events: none;
}
button.button-disabled::before, .button-link.button-disabled::before {
  content: "";
  position: absolute;
  top: -2px;
  left: -2px;
  right: 0;
  bottom: 0;
  width: calc(100% + 4px);
  height: calc(100% + 4px);
  background-color: rgba(243, 243, 241, 0.5);
  border-radius: 0.75rem;
}
body.dark-mode button.button-disabled::before, body.dark-mode .button-link.button-disabled::before {
  background-color: rgba(27, 27, 23, 0.5);
}
:root {
  --color-primary: $color-primary;
  --color-primary-50: $color-primary-50;
  --color-primary-30: $color-primary-30;
  --color-primary-100: $color-primary-100;
  --color-primary-200: $color-primary-200;
  --color-primary-300: $color-primary-300;
  --color-primary-400: $color-primary-400;
  --color-primary-500: $color-primary-500;
  --color-primary-600: $color-primary-600;
  --color-primary-700: $color-primary-700;
  --color-primary-800: $color-primary-800;
  --color-primary-900: $color-primary-900;
  --color-primary-950: $color-primary-950;
  --color-slate-50: $color-slate-50;
  --color-slate-30: $color-slate-30;
  --color-slate-100: $color-slate-100;
  --color-slate-200: $color-slate-200;
  --color-slate-300: $color-slate-300;
  --color-slate-400: $color-slate-400;
  --color-slate-500: $color-slate-500;
  --color-slate-600: $color-slate-600;
  --color-slate-700: $color-slate-700;
  --color-slate-800: $color-slate-800;
  --color-slate-900: $color-slate-900;
  --color-slate-950: $color-slate-950;
}

button.button-solid-primary, .button-link.button-solid-primary {
  padding: 0.625rem 1.25rem;
  font-size: 1.125rem;
  border-radius: 0.75rem;
  border: 2px solid;
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  cursor: pointer;
  background-color: #cf2f5e;
  border-color: #cf2f5e;
  color: #FAE9EE;
}
button.button-solid-primary:active, .button-link.button-solid-primary:active {
  transform: scale(0.95);
}
button.button-solid-primary:hover, .button-link.button-solid-primary:hover {
  border-color: #d9587e;
  background-color: #d9587e;
}

button.button-light-primary, .button-link.button-light-primary {
  padding: 0.625rem 1.25rem;
  font-size: 1.125rem;
  border-radius: 0.75rem;
  border: 2px solid;
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  cursor: pointer;
  background-color: rgba(245, 212, 222, 0);
  border-color: rgba(245, 212, 222, 0);
  color: #cf2f5e;
}
button.button-light-primary:active, .button-link.button-light-primary:active {
  transform: scale(0.95);
}
button.button-light-primary:hover, .button-link.button-light-primary:hover {
  border-color: #f5d4de;
  background-color: #f5d4de;
}
body.dark-mode button.button-light-primary:hover, body.dark-mode .button-link.button-light-primary:hover {
  border-color: #7b1c38;
  background-color: #7b1c38;
}

button.button-outline-primary, .button-link.button-outline-primary {
  padding: 0.625rem 1.25rem;
  font-size: 1.125rem;
  border-radius: 0.75rem;
  border: 2px solid;
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  cursor: pointer;
  background-color: rgba(250, 233, 238, 0);
  border-color: #cf2f5e;
  color: #cf2f5e;
}
button.button-outline-primary:active, .button-link.button-outline-primary:active {
  transform: scale(0.95);
}
button.button-outline-primary:hover, .button-link.button-outline-primary:hover {
  border-color: #d9587e;
  color: #d9587e;
}

button.button-flat-primary, .button-link.button-flat-primary {
  padding: 0.625rem 1.25rem;
  font-size: 1.125rem;
  border-radius: 0.75rem;
  border: 2px solid;
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  cursor: pointer;
  background-color: #f5d4de;
  border-color: #f5d4de;
  color: #cf2f5e;
}
button.button-flat-primary:active, .button-link.button-flat-primary:active {
  transform: scale(0.95);
}
button.button-flat-primary:hover, .button-link.button-flat-primary:hover {
  color: #d9587e;
  background-color: rgba(245, 212, 222, 0.6);
  border-color: rgba(245, 212, 222, 0.6);
}
body.dark-mode button.button-flat-primary, body.dark-mode .button-link.button-flat-primary {
  background-color: #7b1c38;
  color: #FAE9EE;
  border-color: #7b1c38;
}
body.dark-mode button.button-flat-primary:hover, body.dark-mode .button-link.button-flat-primary:hover {
  background-color: #a5264b;
  border-color: #a5264b;
}

button.button-ghost-primary, .button-link.button-ghost-primary {
  padding: 0.625rem 1.25rem;
  font-size: 1.125rem;
  border-radius: 0.75rem;
  border: 2px solid;
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  cursor: pointer;
  background-color: rgba(207, 47, 94, 0);
  border-color: #cf2f5e;
  color: #cf2f5e;
}
button.button-ghost-primary:active, .button-link.button-ghost-primary:active {
  transform: scale(0.95);
}
button.button-ghost-primary:hover, .button-link.button-ghost-primary:hover {
  color: #FAE9EE;
  background-color: #cf2f5e;
}

button.button-glow-primary, .button-link.button-glow-primary {
  padding: 0.625rem 1.25rem;
  font-size: 1.125rem;
  border-radius: 0.75rem;
  border: 2px solid;
  transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  cursor: pointer;
  background-color: #cf2f5e;
  border-color: #cf2f5e;
  color: #FAE9EE;
  box-shadow: 0 0.125rem 1rem rgba(207, 47, 94, 0.6);
}
button.button-glow-primary:active, .button-link.button-glow-primary:active {
  transform: scale(0.95);
}
button.button-glow-primary:hover, .button-link.button-glow-primary:hover {
  border-color: #d9587e;
  background-color: #d9587e;
}

button.button-disabled, .button-link.button-disabled {
  cursor: not-allowed;
  position: relative;
  pointer-events: none;
}
button.button-disabled::before, .button-link.button-disabled::before {
  content: "";
  position: absolute;
  top: -2px;
  left: -2px;
  right: 0;
  bottom: 0;
  width: calc(100% + 4px);
  height: calc(100% + 4px);
  background-color: rgba(243, 243, 241, 0.5);
  border-radius: 0.75rem;
}
body.dark-mode button.button-disabled::before, body.dark-mode .button-link.button-disabled::before {
  background-color: rgba(27, 27, 23, 0.5);
}

.button-group.group-row {
  display: flex;
  gap: 0.25rem;
  flex-wrap: nowrap;
  align-items: center;
}
.button-group.group-row > button {
  height: 100%;
}
.button-group.group-row > button:first-child {
  border-radius: 0.75rem 0 0 0.75rem !important;
}
.button-group.group-row > button:last-child {
  border-radius: 0 0.75rem 0.75rem 0 !important;
}
.button-group.group-row > button:not(:first-child):not(:last-child) {
  border-radius: 0 !important;
}

.button-group.group-column {
  display: flex;
  gap: 0.25rem;
  flex-wrap: nowrap;
  align-items: center;
  flex-direction: column;
}
.button-group.group-column > button {
  width: 100%;
}
.button-group.group-column > button:first-child {
  border-radius: 0.75rem 0.75rem 0 0 !important;
}
.button-group.group-column > button:last-child {
  border-radius: 0 0 0.75rem 0.75rem !important;
}
.button-group.group-column > button:not(:first-child):not(:last-child) {
  border-radius: 0 !important;
}
:root {
  --color-primary: $color-primary;
  --color-primary-50: $color-primary-50;
  --color-primary-30: $color-primary-30;
  --color-primary-100: $color-primary-100;
  --color-primary-200: $color-primary-200;
  --color-primary-300: $color-primary-300;
  --color-primary-400: $color-primary-400;
  --color-primary-500: $color-primary-500;
  --color-primary-600: $color-primary-600;
  --color-primary-700: $color-primary-700;
  --color-primary-800: $color-primary-800;
  --color-primary-900: $color-primary-900;
  --color-primary-950: $color-primary-950;
  --color-slate-50: $color-slate-50;
  --color-slate-30: $color-slate-30;
  --color-slate-100: $color-slate-100;
  --color-slate-200: $color-slate-200;
  --color-slate-300: $color-slate-300;
  --color-slate-400: $color-slate-400;
  --color-slate-500: $color-slate-500;
  --color-slate-600: $color-slate-600;
  --color-slate-700: $color-slate-700;
  --color-slate-800: $color-slate-800;
  --color-slate-900: $color-slate-900;
  --color-slate-950: $color-slate-950;
}

.card {
  display: block;
  padding: 1rem;
  border-radius: 1rem;
  border: #a1a191 1px solid;
  background-color: #f8f8f6;
  box-shadow: 0.125rem 0.125rem 0.5rem rgba(82, 82, 70, 0.2);
}
.card.flex {
  display: flex;
}
body.dark-mode .card {
  background-color: #37372f;
  border-color: #1b1b17;
  box-shadow: 0.125rem 0.125rem 0.5rem rgba(161, 161, 145, 0.2);
}
body.dark-mode .card.glass {
  background-color: rgba(82, 82, 70, 0.3);
  border-color: #525246;
}
body.dark-mode .card.light-glass {
  background-color: rgba(13, 13, 12, 0.1);
}
body.dark-mode .card.no-shadow {
  box-shadow: none;
}
.card > *:not(:last-child) {
  margin-bottom: 0.5rem;
}
.card.borderless {
  border: none;
}
.card.no-shadow {
  box-shadow: none;
}
.card.glass {
  background-color: rgba(243, 243, 241, 0.3);
  backdrop-filter: blur(18px);
}
.card.light-glass {
  background-color: rgba(243, 243, 241, 0.1);
  backdrop-filter: blur(24px);
  border: none;
}
:root {
  --color-primary: $color-primary;
  --color-primary-50: $color-primary-50;
  --color-primary-30: $color-primary-30;
  --color-primary-100: $color-primary-100;
  --color-primary-200: $color-primary-200;
  --color-primary-300: $color-primary-300;
  --color-primary-400: $color-primary-400;
  --color-primary-500: $color-primary-500;
  --color-primary-600: $color-primary-600;
  --color-primary-700: $color-primary-700;
  --color-primary-800: $color-primary-800;
  --color-primary-900: $color-primary-900;
  --color-primary-950: $color-primary-950;
  --color-slate-50: $color-slate-50;
  --color-slate-30: $color-slate-30;
  --color-slate-100: $color-slate-100;
  --color-slate-200: $color-slate-200;
  --color-slate-300: $color-slate-300;
  --color-slate-400: $color-slate-400;
  --color-slate-500: $color-slate-500;
  --color-slate-600: $color-slate-600;
  --color-slate-700: $color-slate-700;
  --color-slate-800: $color-slate-800;
  --color-slate-900: $color-slate-900;
  --color-slate-950: $color-slate-950;
}

label.input-solid-normal {
  font-size: 0.75rem;
  padding: 0.75rem 1rem;
  display: block;
  border-radius: 0.75rem;
  background-color: #e7e7e3;
  transition: background-color 0.3s ease;
}
label.input-solid-normal input {
  margin-top: 0.25rem;
  box-sizing: border-box;
  width: 100%;
  display: block;
  font-size: 1rem;
  padding: 0.25rem 0;
  background: none;
  border: none;
}
body.dark-mode label.input-solid-normal {
  background-color: #525246;
  color: #F3F3F1;
}
body.dark-mode label.input-solid-normal input::placeholder {
  color: #a1a191;
}
body.dark-mode label.input-solid-normal:hover {
  background-color: #606052;
}
label.input-solid-normal input::placeholder {
  color: #898975;
}
label.input-solid-normal.fix-margin-top input {
  margin-top: 0;
}
label.input-solid-normal:hover {
  background-color: #eeeeec;
}
:root {
  --color-primary: $color-primary;
  --color-primary-50: $color-primary-50;
  --color-primary-30: $color-primary-30;
  --color-primary-100: $color-primary-100;
  --color-primary-200: $color-primary-200;
  --color-primary-300: $color-primary-300;
  --color-primary-400: $color-primary-400;
  --color-primary-500: $color-primary-500;
  --color-primary-600: $color-primary-600;
  --color-primary-700: $color-primary-700;
  --color-primary-800: $color-primary-800;
  --color-primary-900: $color-primary-900;
  --color-primary-950: $color-primary-950;
  --color-slate-50: $color-slate-50;
  --color-slate-30: $color-slate-30;
  --color-slate-100: $color-slate-100;
  --color-slate-200: $color-slate-200;
  --color-slate-300: $color-slate-300;
  --color-slate-400: $color-slate-400;
  --color-slate-500: $color-slate-500;
  --color-slate-600: $color-slate-600;
  --color-slate-700: $color-slate-700;
  --color-slate-800: $color-slate-800;
  --color-slate-900: $color-slate-900;
  --color-slate-950: $color-slate-950;
}

h1.emphasize, h2.emphasize, h3.emphasize, h4.emphasize, h5.emphasize, h6.emphasize {
  color: #cf2f5e;
}

h1 {
  font-size: 2.5rem;
  font-weight: bold;
}

h2 {
  font-size: 2rem;
}

h3 {
  font-size: 1.6rem;
}

h4 {
  font-size: 1.35rem;
  font-weight: bold;
}

h5 {
  font-size: 1.2rem;
  font-weight: bold;
}

h6 {
  font-size: 1rem;
  font-weight: bold;
}

blockquote {
  background-color: rgba(243, 243, 241, 0.3);
  backdrop-filter: blur(18px);
  padding: 1rem;
  border-radius: 6px 1rem 1rem 6px;
  border-left: #cf2f5e 6px solid;
  box-shadow: 0.125rem 0.125rem 0.5rem rgba(82, 82, 70, 0.2);
}
body.dark-mode blockquote {
  background-color: rgba(82, 82, 70, 0.3);
  color: #F3F3F1;
  box-shadow: 0.125rem 0.125rem 0.5rem rgba(161, 161, 145, 0.2);
}

code {
  background-color: rgba(231, 231, 227, 0.3);
  padding: 1px 6px;
  border-radius: 4px;
  margin: 0 5px;
  border: solid 1px #a1a191;
}

pre:has(> code) {
  display: block;
  padding: 1rem 1rem 1rem 2.25rem;
  border-radius: 0.5rem;
  background: #37372f;
  overflow-x: auto;
  color: white;
  font-family: "Fira Code", monospace;
}
pre:has(> code) > code {
  background: none;
  padding: 0;
  border: none;
  border-radius: 0;
  margin: 0;
  color: white;
}
pre:has(> code)::-webkit-scrollbar {
  height: 0.5rem;
}
pre:has(> code)::-webkit-scrollbar-thumb {
  background-color: #cf2f5e;
  border-radius: 5px;
}
pre:has(> code)::-webkit-scrollbar-track {
  background-color: #1b1b17;
}

a:not(.button-link) {
  color: #a5264b;
  transition: color 0.25s ease;
}
a:not(.button-link):hover {
  color: #cf2f5e;
  text-decoration: underline;
  text-underline-offset: 2px;
}
body.dark-mode a:not(.button-link) {
  color: #d9587e;
}
body.dark-mode a:not(.button-link):hover {
  color: #e2819e;
}