:root {
  color-scheme: light dark;

  --bg-page: #F7F7FB;
  --bg-card: #FFFFFF;
  --border-color: #E4E3EE;
  --text-primary: #1B1A27;
  --text-secondary: #5C5A70;

  --btn-bg: #534AB7;
  --btn-text: #FFFFFF;
  --link-color: #534AB7;

  --result-bg: #E1F5EE;
  --result-text: #04342C;

  --badge-bg: #EEEDFE;
  --badge-text: #3C3489;

  --focus-ring: #7F77DD;
  --accent-mint: #5DCAA5;

  --logo-plate: transparent;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg-page: #131220;
    --bg-card: #1C1B2C;
    --border-color: #312F45;
    --text-primary: #EDECF5;
    --text-secondary: #9A98AE;

    --btn-bg: #7F77DD;
    --btn-text: #131220;
    --link-color: #8F87E8;

    --result-bg: #0F6E56;
    --result-text: #E1F5EE;

    --badge-bg: #3C3489;
    --badge-text: #CECBF6;

    --focus-ring: #8F87E8;

    --logo-plate: #FFFFFF;
  }
}

body {
  background: var(--bg-page);
  color: var(--text-primary);
}

a {
  color: var(--link-color);
}

/* -------- Шапка -------- */
.site-header {
  background: var(--bg-card);
  border-bottom: 1px solid var(--border-color);
}

.site-header .navbar {
  padding-top: .5rem;
  padding-bottom: .5rem;
}

.site-logo {
  height: 34px;
  width: auto;
  display: block;
  background: var(--logo-plate);
  border-radius: 6px;
  padding: 2px 6px;
}

.site-header .navbar-toggler {
  border-color: var(--border-color);
}

.site-header .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%231B1A27' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

@media (prefers-color-scheme: dark) {
  .site-header .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23EDECF5' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  }
}

.site-header .nav-link {
  color: var(--text-primary);
}

.site-header .nav-link:hover,
.site-header .nav-link:focus {
  color: var(--link-color);
}

/* -------- Хлебные крошки -------- */
.breadcrumb-item a {
  color: var(--link-color);
}

.breadcrumb-item.active {
  color: var(--text-secondary);
}

/* -------- Плашка категории -------- */
.category-badge {
  display: inline-block;
  padding: .2rem .6rem;
  border-radius: 999px;
  background: var(--badge-bg);
  color: var(--badge-text);
  font-size: .78rem;
  font-weight: 500;
}

/* -------- Статьи -------- */
.calc-article {
  font-size: 1.05rem;
  line-height: 1.7;
}

.calc-article h2 {
  margin-top: 1.75rem;
  font-size: 1.3rem;
}

.calc-article h3 {
  margin-top: 1.25rem;
  font-size: 1.1rem;
}

/* -------- Карточки -------- */
.card {
  background: var(--bg-card);
  border-color: var(--border-color);
  color: var(--text-primary);
}

.text-muted {
  color: var(--text-secondary) !important;
}

/* -------- Калькулятор -------- */
.calculator-widget {
  background: var(--bg-card);
  border: 1px solid var(--border-color) !important;
}

.calc-form label {
  color: var(--text-secondary);
}

.form-control,
.form-select {
  background: var(--bg-card);
  color: var(--text-primary);
  border-color: var(--border-color);
}

.form-control:focus,
.form-select:focus,
.calc-input:focus {
  border-color: var(--focus-ring);
  box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--focus-ring) 35%, transparent);
}

.input-group-text {
  background: var(--badge-bg);
  color: var(--text-secondary);
  border-color: var(--border-color);
}

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

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  background-color: var(--btn-bg);
  border-color: var(--btn-bg);
  color: var(--btn-text);
  filter: brightness(1.08);
}

/* -------- Блок результата -------- */
.calc-result-main,
.calc-result-item {
  padding: .75rem 1rem;
  border-radius: .5rem;
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  height: 100%;
}

.calc-result-main {
  background: var(--result-bg);
  border-color: var(--result-bg);
}

.calc-result-label {
  font-size: .8rem;
  color: var(--text-secondary);
}

.calc-result-value {
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--text-primary);
}

.calc-result-main .calc-result-value {
  color: var(--result-text);
}

.calc-result-unit {
  font-size: 1rem;
  font-weight: 400;
  color: var(--text-secondary);
}

.calc-notes {
  padding-left: 1.1rem;
  color: var(--text-secondary);
}

.table {
  color: var(--text-primary);
}

.table > :not(caption) > * > * {
  border-color: var(--border-color);
  background-color: transparent;
  color: var(--text-primary);
}

/* -------- Подвал -------- */
.site-footer {
  background: var(--bg-card);
  border-top: 1px solid var(--border-color);
  color: var(--text-secondary);
}
