:root {
  --stillhq-blue: #1a2f58;
  --stillhq-blue-hover: #263f70;
  --window-bg-color: #fafafb;
  --window-fg-color: rgb(0 0 6 / 80%);
  --view-bg-color: #ffffff;
  --view-fg-color: rgb(0 0 6 / 80%);
  --headerbar-bg-color: #ffffff;
  --headerbar-fg-color: rgb(0 0 6 / 80%);
  --sidebar-bg-color: #ebebed;
  --sidebar-fg-color: rgb(0 0 6 / 80%);
  --card-bg-color: #ffffff;
  --card-fg-color: rgb(0 0 6 / 80%);
  --shade-color: rgb(0 0 6 / 7%);
  --accent-bg-color: var(--stillhq-blue);
  --accent-fg-color: #ffffff;
  --accent-color: var(--stillhq-blue);
  --success-color: #007c3d;
  --warning-color: #905400;
  --error-color: #c30000;
  --window-radius: 15px;
}

html {
  background: var(--window-bg-color);
}

body {
  color: var(--window-fg-color);
  background: var(--window-bg-color);
  font-family: "Adwaita Sans", system-ui, -apple-system, BlinkMacSystemFont,
    "Segoe UI", sans-serif;
}

.navbar.fixed-top {
  color: var(--accent-fg-color);
  background: var(--stillhq-blue) !important;
  border: 0;
  box-shadow: none;
}

.navbar.fixed-top .navbar-brand,
.navbar.fixed-top .navbar-nav > li > a,
.navbar.fixed-top .navbar-nav > li > a:hover,
.navbar.fixed-top .navbar-nav > li > a:focus {
  color: var(--accent-fg-color);
}

.navbar.fixed-top .navbar-brand {
  font-weight: 700;
}

.navbar.fixed-top .nav-link {
  margin: 0.25rem 0.1rem;
  padding: 0.45rem 0.7rem;
  border-radius: 9px;
  text-decoration: none;
}

.navbar.fixed-top .nav-link:hover,
.navbar.fixed-top .nav-link:focus-visible {
  background: rgb(255 255 255 / 12%);
}

.navbar.fixed-top .navbar-nav > .active > a,
.navbar.fixed-top .navbar-nav > .active > a:hover,
.navbar.fixed-top .navbar-nav > .active > a:focus {
  color: #ffffff;
  background: rgb(255 255 255 / 18%);
}

.navbar.fixed-top .dropdown-menu {
  padding: 0.4rem;
  background: var(--view-bg-color);
  border: 1px solid var(--shade-color);
  border-radius: 12px;
  box-shadow: 0 6px 18px rgb(0 0 6 / 12%);
}

.navbar.fixed-top .dropdown-item {
  color: var(--view-fg-color);
  border-radius: 8px;
}

.navbar.fixed-top .dropdown-item:hover,
.navbar.fixed-top .dropdown-item:focus {
  color: var(--accent-fg-color);
  background: var(--accent-bg-color);
}

.bs-sidebar {
  padding: 0.75rem;
  background: var(--sidebar-bg-color);
  border: 1px solid var(--shade-color);
  border-radius: var(--window-radius);
}

.bs-sidebar .navbar-brand {
  color: var(--sidebar-fg-color);
}

.bs-sidebar .card {
  background: transparent !important;
  border: 0;
}

.bs-sidebar .nav {
  gap: 0.2rem;
}

.bs-sidebar .nav > li > a {
  display: block;
  padding: 0.55rem 0.75rem;
  color: var(--sidebar-fg-color);
  border-radius: 9px;
  text-decoration: none;
}

.bs-sidebar .nav > .active > a,
.bs-sidebar .nav > li > a:hover {
  color: var(--accent-fg-color);
  background: var(--accent-bg-color);
}

.container[role="main"] {
  padding-top: 2rem;
  padding-bottom: 4rem;
}

.col-md-9[role="main"] {
  padding: clamp(1.5rem, 4vw, 3.5rem);
  line-height: 1.65;
  background: var(--view-bg-color);
  border: 1px solid var(--shade-color);
  border-radius: var(--window-radius);
  box-shadow: 0 2px 8px rgb(0 0 6 / 6%);
}

h1,
h2,
h3,
h4 {
  color: var(--stillhq-blue);
  font-weight: 700;
}

h1:first-child {
  margin-top: 0;
  font-size: clamp(2.4rem, 6vw, 4.4rem);
  letter-spacing: -0.04em;
}

a {
  color: var(--accent-color);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.16em;
}

a:hover,
a:focus {
  color: var(--stillhq-blue-hover);
}

button,
.btn,
input,
select,
textarea {
  border-radius: 9px !important;
}

.btn {
  font-weight: 600;
  border-color: var(--shade-color);
  box-shadow: 0 1px 2px rgb(0 0 6 / 10%);
}

.btn-primary {
  color: var(--accent-fg-color);
  background: var(--accent-bg-color);
  border-color: var(--accent-bg-color);
}

input,
select,
textarea {
  color: var(--view-fg-color);
  background: var(--view-bg-color);
  border: 1px solid rgb(0 0 6 / 20%);
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--accent-color);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color) 25%, transparent);
}

table {
  overflow: hidden;
  border: 1px solid var(--shade-color);
  border-radius: 12px;
}

.table > :not(caption) > * > * {
  color: var(--view-fg-color);
  background: var(--view-bg-color);
  border-color: var(--shade-color);
}

hr {
  height: 1px;
  margin: 4rem 0;
  background: var(--shade-color);
  border: 0;
}

code,
pre {
  font-family: "Adwaita Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
}

code {
  color: var(--stillhq-blue);
  background: var(--sidebar-bg-color);
  border-radius: 5px;
}

pre {
  background: #f3f3f5;
  border-color: var(--shade-color);
  border-radius: 10px;
}

blockquote {
  padding: 1rem 1.25rem;
  color: var(--window-fg-color);
  background: var(--sidebar-bg-color);
  border-left: 4px solid var(--accent-bg-color);
  border-radius: 0 10px 10px 0;
}

.modal-content {
  color: var(--view-fg-color);
  background: var(--view-bg-color);
  border: 1px solid var(--shade-color);
  border-radius: var(--window-radius);
  box-shadow: 0 12px 36px rgb(0 0 6 / 18%);
}

@media (prefers-color-scheme: dark) {
  :root {
    --window-bg-color: #222226;
    --window-fg-color: #ffffff;
    --view-bg-color: #1d1d20;
    --view-fg-color: #ffffff;
    --headerbar-bg-color: #2e2e32;
    --headerbar-fg-color: #ffffff;
    --sidebar-bg-color: #2e2e32;
    --sidebar-fg-color: #ffffff;
    --card-bg-color: rgb(255 255 255 / 8%);
    --card-fg-color: #ffffff;
    --shade-color: rgb(0 0 6 / 25%);
    --accent-color: #81d0ff;
    --success-color: #78e9ab;
    --warning-color: #ffc252;
    --error-color: #ff938c;
  }

  h1,
  h2,
  h3,
  h4 {
    color: #ffffff;
  }

  pre,
  code {
    color: #ffffff;
    background: #28282c;
  }
}

@media (max-width: 991px) {
  .col-md-9[role="main"] {
    border-radius: 0;
  }
}

footer {
  color: color-mix(in srgb, var(--window-fg-color) 58%, transparent);
}
