/* ===== Библиотека источников — стили на токенах site.css ===== */
:root { color-scheme: light dark; }
* { box-sizing: border-box; }

body {
  font-family: var(--font-sans);
  margin: 0 auto;
  padding: 56px clamp(18px, 5vw, 48px) 64px;
  max-width: 900px;
  line-height: 1.65;
  background: var(--color-bg);
  color: var(--color-ink);
}

nav.backnav { margin: 0 0 34px; }
nav.backnav a { color: var(--color-link); text-decoration: none; }
nav.backnav a:hover { text-decoration: underline; }

h1 {
  margin: 0 0 18px;
  font-size: 38px;
  line-height: 1.12;
  color: var(--color-heading);
}

.subtitle {
  color: #36423f;
  font-size: 18px;
  margin: 0 0 28px;
  padding-left: 18px;
  border-left: 3px solid var(--color-accent-strong);
  line-height: 1.6;
}

.topic-updated {
  font-size: 13px;
  color: var(--color-muted);
  margin: 0 0 28px;
}

.subscribe-block { margin: 0 0 36px; max-width: 480px; }
.subscribe-label { font-size: 14px; color: #59635f; margin: 0 0 12px; }
.subscribe-form { display: flex; gap: 8px; justify-content: flex-start; flex-wrap: wrap; }
.subscribe-form input[type="email"] {
  flex: 1; min-width: 200px; max-width: 280px;
  padding: 10px 14px; border-radius: 8px; font-size: 14px; font-family: var(--font-sans);
  border: 1px solid rgba(0,0,0,.1); background: var(--color-surface); color: inherit;
  outline: none;
}
.subscribe-form input[type="email"]:focus { border-color: rgba(0,0,0,.3); }
.subscribe-form button {
  padding: 10px 18px; border-radius: 8px; font-size: 14px; font-weight: bold;
  font-family: var(--font-sans); cursor: pointer;
  background: var(--color-surface); color: var(--color-link); border: 1px solid rgba(0,0,0,.1);
}
.subscribe-form button:hover { background: #eef5f4; }

.lang-note {
  margin-top: 48px; padding: 14px 18px; border-radius: 8px;
  background: var(--color-surface-soft); border: 1px solid var(--line-teal);
  font-size: 13px; color: #888; line-height: 1.6;
}
.lang-note p { margin: 0 0 6px; }
.lang-note p:last-child { margin-bottom: 0; }

/* Оглавление темы */
.toc {
  margin: 0 0 40px;
  padding: 18px 22px;
  background: var(--color-surface-soft);
  border: 1px solid var(--line-teal);
  border-radius: var(--radius);
}
.toc .toc-label {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--color-accent); margin: 0 0 10px;
}
.toc ol { margin: 0; padding-left: 20px; }
.toc li { margin: 4px 0; }
.toc a { color: var(--color-link); text-decoration: none; }
.toc a:hover { text-decoration: underline; }

/* Карточка источника */
.source-card {
  border: 1px solid rgba(32,92,115,.14);
  border-radius: var(--radius);
  padding: 26px 28px;
  background: var(--color-surface);
  box-shadow: var(--shadow-soft);
  margin-bottom: 26px;
}
.source-num {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--color-accent);
}
.source-title {
  font-size: 22px; font-weight: bold; color: var(--color-heading);
  margin: 4px 0 14px; line-height: 1.3;
}

.apa {
  font-size: 14px;
  color: var(--color-body);
  background: var(--color-surface-soft);
  border: 1px solid var(--line-teal);
  border-radius: var(--radius);
  padding: 12px 16px;
  margin: 0 0 14px;
  overflow-wrap: anywhere;
}
.apa .apa-label {
  display: block; font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em;
  color: var(--color-muted); margin-bottom: 4px;
}

.read-link {
  display: inline-block;
  margin: 0 0 16px;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .05em;
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.read-link:hover { color: var(--color-accent-strong); }

.authority { margin: 0 0 16px; font-size: 14px; color: var(--color-body); }
.authority .stars { color: var(--color-accent); letter-spacing: 2px; margin-right: 8px; }

.source-section-label {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--color-heading);
  margin: 18px 0 6px;
}
.source-card p.body-text { margin: 0 0 12px; font-size: 15.5px; color: var(--color-body); }

.practice {
  margin-top: 18px;
  padding: 14px 18px;
  border-left: 3px solid var(--line-accent);
  background: var(--color-surface-soft);
  border-radius: 0 var(--radius) var(--radius) 0;
}
.practice .source-section-label { margin-top: 0; color: var(--color-accent-strong); }
.practice p { margin: 0; font-size: 15.5px; color: var(--color-body); }

/* Экспертная записка в начале темы */
.expert-note {
  margin: 0 0 36px;
  padding: 20px 24px;
  background: var(--color-surface);
  border: 1px solid rgba(32,92,115,.14);
  border-left: 3px solid var(--line-accent);
  border-radius: 0 var(--radius) var(--radius) 0;
}
.expert-note .source-section-label { margin-top: 0; color: var(--color-accent-strong); }
.expert-note p { margin: 0 0 12px; font-size: 16px; color: var(--color-body); }
.expert-note p:last-child { margin-bottom: 0; }
.expert-note p.expert-note-small { font-size: 13px; color: var(--color-muted); }

/* Список тем (индекс раздела) */
.topic-list { display: grid; gap: 16px; }
.topic-card {
  display: block;
  border: 1px solid rgba(32,92,115,.14);
  border-radius: var(--radius);
  padding: 22px 24px;
  background: var(--color-surface);
  box-shadow: var(--shadow-soft);
  text-decoration: none;
  color: inherit;
}
.topic-card .title { font-size: 22px; font-weight: bold; color: var(--color-heading); margin: 0 0 8px; line-height: 1.3; }
.topic-card .meta { font-size: 13px; color: var(--color-muted); margin: 0 0 8px; }
.topic-card .excerpt { font-size: 15px; color: var(--color-body); margin: 0; }
.topic-card:hover .title { color: var(--color-link-strong); }

.lib-footer {
  margin-top: 48px; padding: 24px 0 40px;
  border-top: 1px solid rgba(32,92,115,.12);
  font-size: 14px; color: #666;
}
.lib-footer .copyright { margin-bottom: 8px; }
.lib-footer .footer-links { display: flex; gap: 18px; }
.lib-footer .footer-links a { color: var(--color-link); text-decoration: underline; }
.lib-footer .footer-links a:hover { color: var(--color-link-strong); }

@media (max-width: 700px) {
  body { padding: 36px 18px 48px; }
  h1 { font-size: 28px; }
  .source-card { padding: 20px 18px; }
}

@media (prefers-color-scheme: dark) {
  body { background: #11110f; color: #e6e2d8; }
  h1, .source-title, .topic-card .title, .source-section-label { color: #dfeee9; }
  .subtitle { color: #cfcabd; border-left-color: #c59b58; }
  nav.backnav a, .toc a { color: #dfeee9; }
  .toc, .apa, .practice { background: #191916; border-color: rgba(223,238,233,.12); }
  .source-card, .topic-card { background: #191916; border-color: rgba(223,238,233,.12); box-shadow: none; }
  .source-num, .authority .stars, .read-link, .toc .toc-label { color: #c59b58; }
  .read-link:hover, .practice .source-section-label { color: #c59b58; }
  .apa, .source-card p.body-text, .practice p, .authority, .topic-card .excerpt { color: #cfcabd; }
  .apa .apa-label, .topic-updated, .topic-card .meta { color: #8f8a7e; }
  .practice { border-left-color: #c59b58; }
  .expert-note { background: #191916; border-color: rgba(223,238,233,.12); border-left-color: #c59b58; }
  .expert-note .source-section-label { color: #c59b58; }
  .expert-note p { color: #cfcabd; }
  .expert-note p.expert-note-small { color: #8f8a7e; }
  .topic-card:hover .title { color: #ffffff; }
  .subscribe-label { color: #aaa; }
  .subscribe-form input[type="email"] { background: #141413; border-color: rgba(255,255,255,.1); }
  .subscribe-form input[type="email"]:focus { border-color: rgba(255,255,255,.3); }
  .subscribe-form button { background: #141413; color: #dfeee9; border-color: rgba(255,255,255,.1); }
  .subscribe-form button:hover { background: #191916; }
  .lang-note { background: rgba(223,238,233,.03); border-color: rgba(223,238,233,.12); color: #777; }
  .lib-footer { color: #999; border-top-color: rgba(223,238,233,.12); }
  .lib-footer .footer-links a { color: #dfeee9; }
}
