@charset "utf-8";

@font-face { font-family: "Noto Sans TC"; font-style: normal; font-weight: 400 700; src: url("../fonts/NotoSansTC-VariableFont_wght.ttf") format("opentype"); }

/* GLOBAL - Start */

:root {
  --clr-bg: #f0f0f0;
  --clr-text: #2d2d2d;
  --clr-accent-bg: #4d623b;
  --clr-accent-text: #ffffff;
}

body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 100svh;
  padding-top: 1rem;
  padding-bottom: 1rem;
  background-color: var(--clr-bg);
  color: var(--clr-text);
  font-family: "Noto Sans TC", sans-serif;
  line-height: 1.25;
}

h1 {
  font-size: 2rem;
  font-weight: bold;
  text-transform: uppercase;
}

.section-alert {
  position: fixed;
  right: 1rem;
  top: 1rem;
  width: min(32rem, calc(100% - 2rem));
  z-index: 999;
}

/* GLOBAL - End */

/* Forms - Start */

.logo {
  width: 8rem;
  max-height: 8rem;
  object-fit: contain;
  margin-bottom: 0.5rem;
}

.login-form {
  max-width: min(20rem, calc(100% - 1rem));
}

.login-form.lg {
  max-width: min(30rem, calc(100% - 1rem));
}

.container,
.container-fluid,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.container-xxl {
  --bs-gutter-x: 0;
}

.row {
  --bs-gutter-x: 0.5rem;
}

.form-label {
  display: block;
  font-size: 0.875rem;
  font-weight: bold;
}

.form-control {
  padding: 0.5rem 0.75rem;
  border-color: var(--bs-body-bg);
  border-radius: 0;
  line-height: inherit;
}

.btn-primary {
  --bs-btn-color: var(--clr-accent-text);
  --bs-btn-bg: var(--clr-accent-bg);
  --bs-btn-border-color: var(--clr-accent-bg);
  --bs-btn-hover-color: var(--clr-accent-text);
  --bs-btn-hover-bg: var(--clr-accent-bg);
  --bs-btn-hover-border-color: var(--clr-accent-bg);
  --bs-btn-active-color: var(--clr-accent-text);
  --bs-btn-active-bg: var(--clr-accent-bg);
  --bs-btn-active-border-color: var(--clr-accent-bg);
  --bs-btn-disabled-color: var(--clr-accent-text);
  --bs-btn-disabled-bg: var(--clr-accent-bg);
  --bs-btn-disabled-border-color: var(--clr-accent-bg);
  display: block;
  width: 100%;
  padding: 0.5rem 0.75rem;
  margin-left: auto;
  margin-right: auto;
  border-radius: 0;
  line-height: inherit;
  text-transform: uppercase;
  transition: opacity .15s ease-in-out;
}

.btn-primary:is(:hover, :focus-visible) {
  opacity: 0.7;
}

.form-check-input[type="checkbox"] {
  border-radius: 0.125rem;
}

.form-check-input:checked {
  background-color: var(--clr-text);
  border-color: var(--clr-text);
}

.form-check-label {
  margin-top: 0.25em;
}

input[type="submit"] {
  max-width: 20rem;
}

.row > * > .btn:first-child:not(input[type="submit"]) {
  margin-top: 1.59375rem;
}

/* Forms - End */