:root {
  --rd-font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --rd-font-serif: "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --rd-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  --rd-sidebar-width: 14.75rem;
  --rd-topbar-height: 3.875rem;
  --rd-control-size: 2.25rem;
  --rd-control-size-compact: 2.125rem;
  --rd-radius-sm: 0.5rem;
  --rd-radius-md: 0.625rem;
  --rd-radius-lg: 0.875rem;
  --rd-text-xs: 0.625rem;
  --rd-text-sm: 0.6875rem;
  --rd-page-gutter: 2.625rem;
  --rd-canvas: #f7f8f7;
  --rd-surface: #ffffff;
  --rd-surface-soft: #f3f5f4;
  --rd-ink: #171a19;
  --rd-muted: #6d7471;
  --rd-faint: #9ca29f;
  --rd-line: #e3e7e5;
  --rd-line-strong: #d6dcda;
  --rd-accent: #2d8294;
  --rd-accent-deep: #176577;
  --rd-accent-soft: #e4f1f4;
  --rd-gold: #b78733;
  --rd-danger: #a44848;
  --rd-danger-rgb: 164, 72, 72;
  --rd-info: #5a83b5;
  --rd-shadow: 0 18px 55px rgba(28, 40, 36, 0.09);
  --bs-body-font-family: var(--rd-font-sans);
  --bs-body-bg: var(--rd-canvas);
  --bs-body-color: var(--rd-ink);
  --bs-border-color: var(--rd-line);
  --bs-border-radius: var(--rd-radius-sm);
  --bs-border-radius-sm: var(--rd-radius-sm);
  --bs-border-radius-lg: var(--rd-radius-md);
  --bs-border-radius-xl: var(--rd-radius-lg);
  --bs-primary-rgb: 45, 130, 148;
  --bs-link-color: var(--rd-accent-deep);
  --bs-link-hover-color: var(--rd-accent);
  --bs-secondary-color: var(--rd-muted);
  --bs-tertiary-color: var(--rd-faint);
  --bs-secondary-bg: var(--rd-surface-soft);
  --bs-tertiary-bg: var(--rd-surface-soft);
  --bs-danger: var(--rd-danger);
  --bs-danger-rgb: var(--rd-danger-rgb);
}

[data-bs-theme="dark"] {
  --rd-canvas: #141718;
  --rd-surface: #1b1f20;
  --rd-surface-soft: #222728;
  --rd-ink: #ecf0ee;
  --rd-muted: #a7afac;
  --rd-faint: #747d79;
  --rd-line: #303638;
  --rd-line-strong: #3c4445;
  --rd-accent: #68b4c2;
  --rd-accent-deep: #94cfda;
  --rd-accent-soft: #1d3840;
  --rd-gold: #dfb564;
  --rd-danger: #e18a8a;
  --rd-danger-rgb: 225, 138, 138;
  --rd-info: #8fb9de;
  --rd-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  --bs-primary-rgb: 104, 180, 194;
}

* {
  scrollbar-color: var(--rd-line-strong) transparent;
  scrollbar-width: thin;
}

html,
body {
  min-width: 320px;
  min-height: 100%;
}

body {
  font-size: 0.875rem;
  letter-spacing: -0.006em;
}

a {
  text-underline-offset: 0.2em;
}

.btn {
  font-weight: 620;
}

.btn-primary {
  --bs-btn-bg: var(--rd-accent);
  --bs-btn-border-color: var(--rd-accent);
  --bs-btn-hover-bg: var(--rd-accent-deep);
  --bs-btn-hover-border-color: var(--rd-accent-deep);
  --bs-btn-active-bg: var(--rd-accent-deep);
}

.form-control,
.form-select {
  border-color: var(--rd-line-strong);
  background-color: var(--rd-surface);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  border-color: var(--rd-accent);
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--rd-accent) 18%, transparent);
}

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

.skip-link {
  position: fixed;
  z-index: 2000;
  top: 0.5rem;
  left: 0.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: var(--rd-radius-sm);
  background: var(--rd-ink);
  color: var(--rd-surface);
}
