/* ============================================================
   Ба Цзы — стили сайта (рукописные, без сборки)
   Тёмная/светлая тема через CSS-переменные
   ============================================================ */

/* ---------- Шрифты (извлечены из Next.js build) ---------- */
@font-face {
  font-family: 'Geist';
  src: url('../fonts/7178b3e590c64307-s.21jp631_3pja2.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+30;
}
@font-face {
  font-family: 'Geist';
  src: url('../fonts/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0-FF,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308;
}
@font-face {
  font-family: 'Geist';
  src: url('../fonts/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116;
}
@font-face {
  font-family: 'Geist';
  src: url('../fonts/53b9e256198e5412-s.390ncx5urfkfu.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0;
}
@font-face {
  font-family: 'Geist';
  src: url('../fonts/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-;
}
@font-face {
  font-family: 'Geist Mono';
  src: url('../fonts/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+30;
}
@font-face {
  font-family: 'Geist Mono';
  src: url('../fonts/797e433ab948586e-s.p.0r6juujl39pe6.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0-FF,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308;
}
@font-face {
  font-family: 'Geist Mono';
  src: url('../fonts/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116;
}
@font-face {
  font-family: 'Geist Mono';
  src: url('../fonts/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0;
}
@font-face {
  font-family: 'Geist Mono';
  src: url('../fonts/5ce348bf30bf5439-s.31988l_ccedte.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-;
}
@font-face {
  font-family: 'Geist Mono';
  src: url('../fonts/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F;
}

/* ---------- Токены темы ---------- */
:root {
  --radius: 0.625rem;
  /* Отступ от правого края экрана: переключатель темы в топбаре выровнен как монетка-донат */
  --edge-gap: 18px;
  /* Высота топбара: единый источник для липкой панели и отступа прокрутки к якорям */
  --topbar-h: 60px;
  --bg: oklch(0.145 0 0);
  --fg: oklch(0.985 0 0);
  --card: oklch(0.205 0 0);
  --card-fg: oklch(0.985 0 0);
  --muted: oklch(0.269 0 0);
  --muted-fg: #fff;
  --primary: oklch(0.922 0 0);
  --primary-fg: oklch(0.205 0 0);
  --secondary: oklch(0.269 0 0);
  --secondary-fg: oklch(0.985 0 0);
  --border: oklch(1 0 0 / 10%);
  --input-bg: oklch(1 0 0 / 15%);
  --ring: oklch(0.556 0 0);
  --destructive: oklch(0.704 0.191 22.216);
  --header-bg: oklch(0.13 0 0 / 0.85);
  --shadow: 0 1px 3px oklch(0 0 0 / 0.4), 0 4px 16px oklch(0 0 0 / 0.3);
  /* элементы стихий */
  --wood: oklch(0.696 0.17 162.48);
  --fire: oklch(0.769 0.188 70.08);
  --earth: oklch(0.645 0.246 16.439);
  --metal: oklch(0.488 0.243 264.376);
  --water: oklch(0.488 0.243 264.376);
}

[data-theme="light"] {
  --bg: oklch(1 0 0);
  --fg: oklch(0.145 0 0);
  --card: oklch(1 0 0);
  --card-fg: oklch(0.145 0 0);
  --muted: oklch(0.97 0 0);
  --muted-fg: #000;
  --primary: oklch(0.205 0 0);
  --primary-fg: oklch(0.985 0 0);
  --secondary: oklch(0.97 0 0);
  --secondary-fg: oklch(0.205 0 0);
  --border: oklch(0.922 0 0);
  --input-bg: oklch(0.922 0 0);
  --ring: oklch(0.708 0 0);
  --destructive: oklch(0.577 0.245 27.325);
  --header-bg: oklch(0.985 0 0 / 0.85);
  --shadow: 0 1px 3px oklch(0 0 0 / 0.08), 0 4px 16px oklch(0 0 0 / 0.06);
  /* элементы стихий (светлая тема) */
  --wood: oklch(0.5 0.15 162.48);
  --fire: oklch(0.62 0.19 40);
  --earth: oklch(0.6 0.17 60);
  --metal: oklch(0.45 0.15 260);
  --water: oklch(0.4 0.15 250);
}

/* ---------- База ---------- */
* { box-sizing: border-box; }
/* Прокрутка к якорям и результатам не ныряет под липкий топбар: высота шапки + зазор */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--topbar-h) + 16px); }
body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: 'Geist', -apple-system, 'Segoe UI', Roboto, sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
body.nav-open { overflow: hidden; }
a { color: inherit; }
img { max-width: 100%; }
.container { max-width: 1100px; margin: 0 auto; padding: 0 20px; }

/* ---------- Боковое меню (десктоп: всегда открыто) ---------- */
.sidebar {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: 232px;
  z-index: 50;
  background: var(--header-bg);
  backdrop-filter: blur(12px);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 20px 14px;
  overflow-y: auto;
}
.sidebar .brand { padding: 0 8px; }
.sidebar .main-nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
  overflow: visible;
}
.sidebar .nav-item {
  display: flex;
  width: 100%;
  padding: 10px 12px;
  font-size: 15px;
}
.sidebar .nav-item.active {
  background: color-mix(in oklch, var(--primary) 10%, transparent);
  color: var(--primary);
}
/* Тонкая полоска-разделитель между группами пунктов меню */
.sidebar .nav-sep {
  height: 1px;
  margin: 8px 12px;
  background: var(--border);
  flex-shrink: 0;
}
/* Микро-иконка пункта меню (например, молния у «Быстрого старта») */
.sidebar .nav-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 8px;
}
.sidebar .nav-icon svg { width: 14px; height: 14px; }
.sidebar-share { margin-top: auto; }
.sidebar-share .btn { width: 100%; }
.sidebar-install { margin-top: 8px; }
.sidebar-install .btn { width: 100%; }

/* ---------- Контент (сдвинут вправо от меню) ---------- */
.content {
  margin-left: 232px;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.content .main-content { flex: 1; }

/* ---------- Верхняя панель: переключатель темы ---------- */
.topbar {
  position: sticky;
  top: 0;
  z-index: 45;
  background: var(--header-bg);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
}
.topbar-inner {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  height: var(--topbar-h);
  padding: 0 24px;
  /* Переключатель темы — у самого края экрана, на том же отступе, что монетка-донат */
  padding-right: var(--edge-gap);
}

.brand {
  display: flex;
  align-items: center;
  gap: 8px;
  background: none;
  border: none;
  color: var(--fg);
  cursor: pointer;
  padding: 0;
  font: inherit;
}
.brand-mark {
  height: 67px;
  width: auto;
  object-fit: contain;
  flex-shrink: 0;
}
.hero-mark {
  height: 140px;
  width: auto;
  object-fit: contain;
  vertical-align: middle;
  margin-right: 12px;
}
.brand-text { font-size: 16px; font-weight: 700; letter-spacing: 0.02em; }
.main-nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.nav-item {
  background: none;
  border: none;
  color: var(--muted-fg);
  font: inherit;
  font-size: 15px;
  padding: 10px 12px;
  border-radius: var(--radius);
  cursor: pointer;
  white-space: nowrap;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  transition: color 0.15s, background 0.15s;
}
.nav-item:hover { color: var(--fg); background: var(--muted); text-decoration: none; }
.nav-item.active { color: var(--fg); background: var(--secondary); font-weight: 500; }
a.brand { text-decoration: none; }
.header-actions { display: flex; align-items: center; gap: 8px; }
.theme-toggle {
  background: var(--secondary);
  border: 1px solid var(--border);
  color: var(--secondary-fg);
  width: 36px;
  height: 36px;
  border-radius: 999px;
  cursor: pointer;
  font-size: 16px;
}

/* ===== Переключатель темы (светлая/тёмная) ===== */
.switch {
  font-size: 17px;
  position: relative;
  display: inline-block;
  width: 3.5em;
  height: 2em;
  cursor: pointer;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  --background: #20262c;
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--background);
  transition: 0.5s;
  border-radius: 30px;
}

.slider:before {
  position: absolute;
  content: "";
  height: 1.4em;
  width: 1.4em;
  border-radius: 50%;
  left: 10%;
  bottom: 15%;
  box-shadow: inset 8px -4px 0px 0px #ececd9, -4px 1px 4px 0px #dadada;
  background: var(--background);
  transition: 0.5s;
}

.decoration {
  position: absolute;
  content: "";
  height: 2px;
  width: 2px;
  border-radius: 50%;
  right: 20%;
  top: 15%;
  background: #e5f041e6;
  backdrop-filter: blur(10px);
  transition: all 0.5s;
  box-shadow: -7px 10px 0 #e5f041e6, 8px 15px 0 #e5f041e6, -17px 1px 0 #e5f041e6,
    -20px 10px 0 #e5f041e6, -7px 23px 0 #e5f041e6, -15px 25px 0 #e5f041e6;
}

.switch input:checked ~ .decoration {
  transform: translateX(-20px);
  width: 10px;
  height: 10px;
  background: white;
  box-shadow: -12px 0 0 white, -6px 0 0 1.6px white, 5px 15px 0 1px white,
    1px 17px 0 white, 10px 17px 0 white;
}

.switch input:checked + .slider {
  background-color: #5494de;
}

.switch input:checked + .slider:before {
  transform: translateX(100%);
  box-shadow: inset 15px -4px 0px 15px #efdf2b, 0 0 10px 0px #efdf2b;
}
.nav-burger {
  display: none;
  background: none;
  border: none;
  color: var(--fg);
  font-size: 22px;
  cursor: pointer;
}

/* ---------- Подвал ---------- */
.site-footer {
  border-top: 1px solid var(--border);
  margin-top: 60px;
  padding: 28px 0 40px;
  color: var(--muted-fg);
  font-size: 14px;
  text-align: center;
}
.footer-note { font-size: 12px; margin-top: 6px; }
.footer-link-line { margin-top: 12px; }
.footer-link {
  color: var(--primary);
  font-size: 13px;
  text-decoration: none;
  border-bottom: 1px solid color-mix(in oklch, var(--primary) 35%, transparent);
  padding-bottom: 1px;
}
.footer-link:hover { border-bottom-color: var(--primary); }

/* ---------- Общие компоненты ---------- */
.main-content { min-height: 60vh; padding-top: 28px; padding-bottom: 40px; }

/* Заглушка загрузки — показывается пока JS рендерит вьюху */
.page-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40vh;
}
.spinner {
  width: 28px;
  height: 28px;
  border: 3px solid var(--border);
  border-top-color: var(--primary);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

h1, h2, h3, h4 { line-height: 1.25; margin: 0 0 0.5em; }
h1 { font-size: 2rem; font-weight: 700; }
h2 { font-size: 1.5rem; font-weight: 700; }
h3 { font-size: 1.15rem; font-weight: 600; }

.page-title { margin-bottom: 4px; }
.page-subtitle { color: var(--muted-fg); margin-top: 0; margin-bottom: 28px; }

.card {
  background: var(--card);
  color: var(--card-fg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 20px;
  margin-bottom: 20px;
}
.card-title {
  font-size: 1.05rem;
  font-weight: 600;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.muted { color: var(--muted-fg); }
.text-sm { font-size: 0.875rem; }
.text-xs { font-size: 0.75rem; }
.text-sm { font-size: 0.875rem; }
.text-base { font-size: 1rem; }
.text-lg { font-size: 1.125rem; }
.text-xl { font-size: 1.25rem; }
.flex { display: flex; }
.flex-col { display: flex; flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.flex-1 { flex: 1; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.items-baseline { align-items: baseline; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.min-w-0 { min-width: 0; }
.gap-1 { gap: 4px; }
.gap-1\.5 { gap: 6px; }
.gap-2 { gap: 8px; }
.gap-3 { gap: 12px; }
.gap-4 { gap: 16px; }
.gap-x-3 { column-gap: 12px; }
.gap-x-4 { column-gap: 16px; }
.gap-y-1 { row-gap: 4px; }
.gap-y-0\.5 { row-gap: 2px; }
.mt-0\.5 { margin-top: 2px; }
.mt-1 { margin-top: 4px; }
.mt-2 { margin-top: 8px; }
.mt-3 { margin-top: 12px; }
.mt-4 { margin-top: 16px; }
.mt-6 { margin-top: 24px; }
.mb-2 { margin-bottom: 8px; }
.mb-3 { margin-bottom: 12px; }
.mb-4 { margin-bottom: 16px; }
.my-2 { margin-top: 8px; margin-bottom: 8px; }
.pb-8 { padding-bottom: 32px; }
.py-8 { padding-top: 32px; padding-bottom: 32px; }
.py-12 { padding-top: 48px; padding-bottom: 48px; }
.rounded-xl { border-radius: 12px; }
.rounded-full { border-radius: 999px; }
.h-12 { height: 48px; }
.h-16 { height: 64px; }
.w-12 { width: 48px; }
.w-16 { width: 64px; }
.sm\:flex-row { display: flex; flex-direction: row; }
.sm\:items-center { align-items: center; }
.sm\:justify-between { justify-content: space-between; }
.text-muted-foreground { color: var(--muted-fg); }

/* ---------- Спец-классы вьюх ---------- */
/* лендинг: сетка шагов */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }

/* совместимость: карточка-заголовок и карточка человека */
.hero-card { border-color: color-mix(in oklch, #f43f5e 25%, transparent); }
.person-card .card-title { margin-bottom: 2px; }
.person-card .card-body { display: flex; flex-direction: column; gap: 18px; }
.person-card .form-group { gap: 8px; }
.city-combobox-wrap { position: relative; }

/* калькулятор: подсказка 时辰 */
.hour-hint { margin-top: 4px; }

/* результат: панели интерпретаций */
.interp-panel { margin-top: 12px; }


@media (max-width: 900px) {
  .steps { grid-template-columns: 1fr; }
}
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.grid-5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: var(--radius);
  border: 1px solid transparent;
  font: inherit;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: opacity 0.15s, background 0.15s, border-color 0.15s;
  text-decoration: none;
}
/* hidden на кнопках: .btn задаёт display и перебивает атрибут hidden */
.btn[hidden] { display: none; }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }
.btn-primary { background: var(--primary); color: var(--primary-fg); }
.btn-primary:hover:not(:disabled) { opacity: 0.85; }
.btn-outline { background: transparent; color: var(--fg); border-color: var(--border); }
.btn-outline:hover:not(:disabled) { background: var(--secondary); }
.btn-secondary { background: var(--secondary); color: var(--secondary-fg); border-color: var(--border); }
.btn-secondary:hover:not(:disabled) { background: var(--muted); }
.btn-destructive { background: var(--destructive); color: white; }
.btn-sm { padding: 5px 10px; font-size: 13px; }
.btn-block { width: 100%; }
/* Вторая строка внутри кнопки — мелкая подпись под названием */
.btn-lines { display: flex; flex-direction: column; align-items: center; gap: 2px; line-height: 1.25; }
.btn-lines-sub { font-size: 11px; font-weight: 400; }

/* Баннер экспорта в Markdown */
.export-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: linear-gradient(135deg, color-mix(in oklch, var(--primary) 8%, transparent), color-mix(in oklch, var(--muted) 25%, transparent));
}
.export-banner-left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  flex: 1;
}
.export-banner-text {
  font-size: 1.1rem;
  line-height: 1.6;
  max-width: 560px;
}
/* Блок «Терминология вывода» — рамка вокруг всей строки (термин + кнопка), чтобы выделялся */
.export-term-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px 14px;
}
html[data-theme="dark"] .export-term-row { border-color: #ffffff; }
html[data-theme="dark"] .export-banner:not(.share-banner) { border-color: #ffffff; }
.export-term-label { display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: var(--muted-fg); }
.export-term-label select {
  background: var(--input-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--fg);
  font: inherit;
  font-size: 14px;
  padding: 9px 12px;
  outline: none;
  min-width: 250px;
}
.export-term-label select:focus { border-color: var(--ring); box-shadow: 0 0 0 3px oklch(0.556 0 0 / 0.2); }
.export-term-label select option { background: var(--card); color: var(--fg); }
.export-banner-btn { flex-shrink: 0; padding: 14px 26px; }
.export-banner-btn .icon svg { width: 20px; height: 20px; }
.export-banner-btn-text { text-align: center; line-height: 1.35; }

.badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  background: var(--secondary);
  color: var(--secondary-fg);
  border: 1px solid var(--border);
}

/* Формы */
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-group label { font-size: 14px; font-weight: 500; }
.form-group input, .form-group select {
  background: var(--input-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--fg);
  font: inherit;
  font-size: 15px;
  padding: 9px 12px;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.form-group input:focus, .form-group select:focus {
  border-color: var(--ring);
  box-shadow: 0 0 0 3px oklch(0.556 0 0 / 0.2);
}
.form-group select option { background: var(--card); color: var(--fg); }
.form-error { color: var(--destructive); font-size: 13px; margin-top: 4px; }

/* Поля ввода даты/времени бок о бок */
.datetime-row { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr; gap: 8px; }

/* ---------- Стихии (цвета) ---------- */
.el-wood { color: var(--wood); }
.el-fire { color: var(--fire); }
.el-earth { color: var(--earth); }
.el-metal { color: var(--metal); }
.el-water { color: var(--water); }
.el-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  margin-right: 6px;
  vertical-align: middle;
}
.el-dot.wood { background: var(--wood); }
.el-dot.fire { background: var(--fire); }
.el-dot.earth { background: var(--earth); }
.el-dot.metal { background: var(--metal); }
.el-dot.water { background: var(--water); }

/* ---------- Таблица столпов (4 колонки) ---------- */
.pillars-table {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin: 16px 0;
}
.pillar-col {
  background: var(--muted);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 10px;
  text-align: center;
}
.pillar-header {
  font-size: 13px;
  color: var(--muted-fg);
  margin-bottom: 10px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.pillar-cell {
  font-size: 26px;
  font-weight: 700;
  line-height: 1.3;
  font-family: 'Noto Serif SC', 'Songti SC', 'SimSun', serif;
}
.pillar-cell + .pillar-cell { margin-top: 6px; }
.pillar-sub { font-size: 12px; color: var(--muted-fg); margin-top: 4px; }

/* ---------- Секции результата ---------- */
.result-section { margin-bottom: 28px; }
.section-heading {
  font-size: 1.25rem;
  font-weight: 700;
  border-bottom: 1px solid var(--border);
  padding-bottom: 10px;
  margin-bottom: 16px;
}

/* Список интерпретаций */
.interpretation {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px 18px;
  margin-bottom: 12px;
}
.interpretation h4 { margin-bottom: 6px; font-size: 1rem; }
.interpretation p { margin: 0; font-size: 0.95rem; color: var(--muted-fg); }

/* Таймлайн столпов удачи */
.luck-timeline { overflow-x: auto; padding-bottom: 6px; }
.luck-row { display: flex; gap: 4px; min-width: max-content; }
.luck-cell {
  min-width: 64px;
  padding: 8px 4px;
  border-radius: 8px;
  background: var(--muted);
  border: 1px solid var(--border);
  text-align: center;
  font-size: 12px;
}
.luck-cell .pillar-cell { font-size: 18px; }
.luck-cell .luck-age { font-size: 11px; color: var(--muted-fg); }

/* ---------- Лендинг ---------- */
.hero { text-align: center; padding: 48px 0 20px; }
.hero-mark { font-size: 64px; line-height: 1; margin-bottom: 12px; }
.hero h1 { font-size: 2.5rem; margin-bottom: 12px; }
.hero p { color: var(--muted-fg); font-size: 1.05rem; max-width: 640px; margin: 0 auto 24px; }
.hero-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.feature-card h3 { display: flex; align-items: center; gap: 8px; }
.feature-card p { color: var(--muted-fg); font-size: 0.95rem; margin: 0; }

/* расширенные стили лендинга */
.space-y-20 > * + * { margin-top: 80px; }
.hero-section { text-align: center; padding: 40px 0 8px; }
.hero-title { font-family: 'Noto Serif SC', 'Songti SC', 'SimSun', serif; font-size: 3rem; font-weight: 700; margin: 14px 0 10px; }
.text-primary { color: var(--primary); }
.badge-outline { background: transparent; border-color: var(--border); color: var(--fg); padding: 5px 14px; font-size: 13px; display: inline-flex; align-items: center; gap: 8px; }
.badge-outline .icon { display: inline-flex; }
.badge-outline .icon.amber svg { color: oklch(0.828 0.189 84.429); width: 14px; height: 14px; }
.icon { display: inline-flex; }
.icon svg { width: 18px; height: 18px; }
.btn-lg { padding: 12px 24px; font-size: 15px; }
.hero-sub { color: var(--muted-fg); font-size: 1.08rem; margin: 0 auto 26px; line-height: 1.65; }
.hero-stats { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; margin-top: 30px; color: var(--muted-fg); font-size: 0.9rem; }
.hero-stats span { display: inline-flex; align-items: center; gap: 8px; }
.hero-stats .icon svg { width: 15px; height: 15px; }
/* Блок «Быстрый старт» на главной: слева кнопка, справа этапы */
.quickstart-section {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 26px;
  flex-wrap: wrap;
  max-width: 720px;
  margin: 28px auto 0;
  padding: 16px 22px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  text-align: left;
}
.quickstart-btn { flex: 0 0 auto; }
.quickstart-info { min-width: 0; }
.quickstart-title { font-size: 14px; font-weight: 600; margin-bottom: 5px; }
.quickstart-steps { margin: 0; padding-left: 18px; color: var(--muted-fg); font-size: 13.5px; line-height: 1.6; }
@media (max-width: 620px) {
  .quickstart-section { flex-direction: column; align-items: flex-start; gap: 14px; padding: 16px; }
}
.center-block { text-align: center; }
.section-head-wrap { margin-bottom: 26px; }
.section-sub { color: var(--muted-fg); max-width: 620px; margin: 10px auto 0; font-size: 0.98rem; }
.feature-card { text-align: left; display: flex; gap: 12px; align-items: flex-start; transition: border-color 0.2s, box-shadow 0.2s; text-decoration: none; color: inherit; }
.feature-card.clickable { cursor: pointer; }
.feature-card:hover { border-color: var(--ring); box-shadow: var(--shadow); }
.feature-icon {
  flex: 0 0 auto;
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 10px;
  background: var(--secondary);
  color: var(--secondary-fg);
}
.feature-icon .icon svg { width: 20px; height: 20px; }
.feature-card h3 { font-size: 1.02rem; margin-bottom: 6px; }
.feature-card p { font-size: 0.92rem; line-height: 1.55; }
.step { text-align: left; }
.step-icon {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: var(--secondary);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 12px;
}
.step-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.step-num {
  width: 26px; height: 26px;
  border-radius: 999px;
  background: var(--primary);
  color: var(--primary-fg);
  font-size: 13px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.step-head h3 { margin: 0; font-size: 1.05rem; }
.step p { color: var(--muted-fg); font-size: 0.93rem; margin: 0; }
/* Шаги «Как это работает» на главной: 2 колонки + списки пунктов */
.steps-2 { grid-template-columns: repeat(2, 1fr); }
.step-list { margin: 0; padding-left: 18px; color: var(--muted-fg); font-size: 0.93rem; line-height: 1.55; }
.step-list li { margin: 3px 0; }
.step-list li::marker { color: var(--primary); }
@media (max-width: 900px) {
  .steps-2 { grid-template-columns: 1fr; }
}

.cta {
  text-align: center;
  background: color-mix(in oklch, var(--primary) 5%, transparent);
  border: 1px solid color-mix(in oklch, var(--primary) 20%, transparent);
  border-radius: 20px;
  padding: 48px 32px;
}
.cta h2 { font-size: 1.7rem; margin-bottom: 8px; }

/* ---------- Общие: карточки и заголовки вьюх ---------- */
.icon-box {
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 12px;
  background: color-mix(in oklch, var(--primary) 10%, transparent);
  color: var(--primary);
}
.icon-box .icon svg { width: 20px; height: 20px; }
.card-header { padding: 16px 20px 12px; }
/* Заголовок карточки: без подложки — выделен вертикальной чертой слева (тёмная тема — белая, светлая — чёрная) */
.card-header.grad { border-left: 3px solid var(--fg); border-bottom: 1px solid var(--border); }
.card-body { padding: 20px; }

/* Юридический документ (политика конфиденциальности) — сплошной текст */
.legal-doc h2 {
  font-size: 1.05rem;
  font-weight: 600;
  margin: 26px 0 10px;
  color: var(--fg);
}
.legal-doc h2:first-child { margin-top: 0; }
.legal-doc p {
  font-size: 0.95rem;
  line-height: 1.8;
  margin-bottom: 10px;
  color: var(--fg);
}
.legal-doc p:last-child { margin-bottom: 0; }
.card-title { display: flex; align-items: center; gap: 8px; font-size: 1rem; font-weight: 600; margin-bottom: 2px; }
.card-title .icon svg { width: 18px; height: 18px; }
.card-desc { font-size: 0.875rem; color: var(--muted-fg); line-height: 1.5; }
.text-primary { color: var(--primary); }
.font-serif { font-family: 'Noto Serif SC', 'Songti SC', 'SimSun', 'Geist', serif; }
.text-2xl { font-size: 1.5rem; }
.text-3xl { font-size: 1.875rem; }
.text-4xl { font-size: 2.25rem; }
.text-5xl { font-size: 3rem; }
.font-bold { font-weight: 700; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.tracking-tight { letter-spacing: -0.02em; }
.hidden { display: none !important; }
.space-y-2 > * + * { margin-top: 8px; }
.space-y-3 > * + * { margin-top: 12px; }
.space-y-4 > * + * { margin-top: 16px; }
.space-y-5 > * + * { margin-top: 20px; }
.space-y-6 > * + * { margin-top: 24px; }
.grid-2-lg { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.grid-2-lg > * { min-width: 0; }
.sep { border: none; border-top: 1px solid var(--border); margin: 16px 0; }

/* ---------- Форма рождения ---------- */
.gender-row { display: flex; gap: 12px; }
.gender-opt {
  display: flex; align-items: center; gap: 8px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 8px 12px;
  cursor: pointer;
  font-size: 14px;
  background: var(--bg);
}
.gender-opt.checked { border-color: var(--primary); background: color-mix(in oklch, var(--primary) 5%, transparent); }
.gender-opt input { accent-color: var(--primary); }
.gender-opt .icon svg { width: 16px; height: 16px; }
.form-actions {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
  margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--border);
}
.tz-preview {
  margin-top: 8px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in oklch, var(--muted) 30%, transparent);
  padding: 10px 12px;
  font-size: 0.75rem;
}
.tz-preview code { background: var(--bg); border-radius: 4px; padding: 1px 6px; font-family: 'Geist Mono', monospace; }
.tz-dst { background: color-mix(in oklch, oklch(0.828 0.189 84.429) 15%, transparent); color: oklch(0.722 0.18 70); border-radius: 4px; padding: 1px 6px; font-size: 0.65rem; font-weight: 500; }

/* ---------- Страница «Материалы»: календарь Ба Цзы ---------- */
.inline-code {
  font-family: 'Geist Mono', monospace;
  font-size: 0.85em;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 1px 5px;
}
.mat-details { margin: -4px 0 12px; line-height: 1.6; }
.mat-details p { margin: 0 0 8px; }
.mat-details p:last-child { margin-bottom: 0; }
.mat-dataopts {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start; /* подпись и плашка — по верху блока с бегунком */
  justify-content: center;
  gap: 12px;
  margin: 4px 0 14px;
}
.mat-dataopts-main {
  display: flex;
  align-items: flex-start; /* подпись — по верху бегунка */
  gap: 18px; /* заметный отступ между подписью и бегунком */
}
.mat-dataopts-label {
  font-size: 14px;
  font-weight: 500;
  flex-shrink: 0;
  white-space: nowrap; /* подпись всегда слева, не переносится */
}
.mat-level {
  flex: 1 1 240px;
  min-width: 180px;
  max-width: 420px;
}
.mat-level input[type="range"] {
  width: 100%;
  accent-color: var(--primary);
  cursor: pointer;
}
.mat-level-labels {
  display: flex;
  justify-content: space-between;
  margin-top: 2px;
}
.mat-level-labels span {
  font-size: 12px;
  color: var(--muted-fg);
  user-select: none;
}
.mat-level-hint {
  font-size: 12px;
  color: var(--muted-fg);
  margin-top: 4px;
  line-height: 1.45;
  text-align: center;
}
.mat-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.mat-note {
  margin-top: 12px;
  line-height: 1.55;
}
.mat-status {
  margin-top: 14px;
  padding: 10px 14px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: color-mix(in oklch, var(--muted) 25%, transparent);
  font-size: 0.9rem;
  line-height: 1.5;
}
.mat-download-note {
  margin: 0;
  max-width: 460px;
  line-height: 1.55;
}
.mat-status.error {
  border-color: var(--destructive);
  color: var(--destructive);
}
.tz-note { margin-top: 6px; color: var(--muted-fg); font-size: 0.7rem; line-height: 1.5; }
.text-xs { font-size: 0.75rem; }
.text-sm { font-size: 0.875rem; }
.text-lg { font-size: 1.125rem; }

/* ---------- Текстовое поле с выпадающим списком (автокомплит города) ---------- */
.city-ac { position: relative; }
.city-ac .city-ac-input {
  width: 100%;
  background: var(--input-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--fg);
  font: inherit;
  font-size: 15px;
  padding: 9px 34px 9px 12px;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.city-ac .city-ac-input:focus {
  outline: none;
  border-color: var(--ring);
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--ring) 25%, transparent);
}
.city-ac-input::placeholder { color: var(--muted-fg); }
.city-ac-clear {
  position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  display: flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; padding: 0;
  border: none; border-radius: 6px; background: transparent;
  color: var(--muted-fg); cursor: pointer;
}
.city-ac-clear:hover { background: var(--secondary); color: var(--fg); }
.city-ac-clear .icon svg { width: 15px; height: 15px; }
.city-ac-list {
  position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 40;
  margin: 0; padding: 4px;
  list-style: none;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  max-height: 300px; overflow-y: auto;
}
.city-ac-item {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 8px 10px; border-radius: 8px;
  cursor: pointer; color: var(--fg); font-size: 14px;
}
.city-ac-item.highlighted { background: var(--secondary); }
.city-ac-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.city-ac-meta { flex-shrink: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 45%; font-size: 0.72rem; color: var(--muted-fg); }
.city-ac-empty, .city-ac-loading {
  cursor: default; justify-content: center; color: var(--muted-fg); font-size: 0.78rem;
}
.city-ac-loading .icon { animation: spin 0.8s linear infinite; }
.city-ac-loading .icon svg { width: 14px; height: 14px; }

/* ---------- Результат: шапка ---------- */
.result-header { padding: 20px; }
.rh-main { display: flex; align-items: center; gap: 14px; }
.rh-tile {
  width: 64px; height: 64px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 16px;
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: 2rem; font-weight: 700;
}
.rh-info { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px 16px; margin-top: 16px; }
.info-item .info-label { font-size: 0.65rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted-fg); display: flex; align-items: center; gap: 5px; }
.info-item .info-label .icon svg { width: 12px; height: 12px; }
.info-value { font-size: 0.85rem; font-weight: 500; margin-top: 2px; }
.rh-footer {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
  margin-top: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in oklch, var(--muted) 30%, transparent);
  padding: 6px 12px;
  font-size: 0.7rem;
  color: var(--muted-fg);
}
.rh-footer code { font-family: 'Geist Mono', monospace; }

/* ---------- Результат: столпы ---------- */
.pillars-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.pillar-card {
  position: relative;
  display: flex; flex-direction: column;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--card);
  overflow: hidden;
  transition: all 0.2s;
}
.pillar-card.day-master { border-color: var(--ring); box-shadow: var(--shadow); }
.pillar-head { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 8px; font-size: 0.75rem; font-weight: 600; background: var(--muted); color: var(--muted-fg); }
.pillar-head.primary { background: var(--primary); color: var(--primary-fg); }
.pillar-head .icon svg { width: 14px; height: 14px; }
.pillar-ss { padding: 8px 8px 0; text-align: center; }
.pillar-ss span { display: inline-block; border-radius: 6px; padding: 2px 8px; font-size: 0.7rem; font-weight: 500; background: var(--muted); color: var(--muted-fg); }
.pillar-ss span.ss-dm { background: color-mix(in oklch, var(--primary) 10%, transparent); color: var(--primary); }
.pillar-cell-big { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 8px 0; }
.pillar-cell-big.branch { border-top: 1px dashed var(--border); margin-top: 10px; padding-top: 10px; }
.pillar-glyph-row { display: flex; align-items: flex-end; gap: 4px; }
.glyph-emoji { font-size: 1.1rem; line-height: 1; }
.glyph { font-family: 'Noto Serif SC', 'Songti SC', serif; font-size: 2.8rem; font-weight: 700; line-height: 1; }
.glyph-caption { text-align: center; font-size: 0.7rem; line-height: 1.3; }
.pillar-hidden { border-top: 1px solid var(--border); padding: 8px; margin-top: 10px; }
.pillar-label { text-align: center; font-size: 0.65rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted-fg); margin-bottom: 4px; }
.pillar-hidden-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.hidden-stem { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.hidden-stem .hs-glyph { font-family: 'Noto Serif SC', 'Songti SC', serif; font-size: 1rem; font-weight: 700; line-height: 1; }
.hidden-stem .hs-ss { font-size: 0.55rem; color: var(--muted-fg); }
.pillar-nayin { border-top: 1px solid var(--border); padding: 6px 8px; text-align: center; }
.pillar-dishi { border-top: 1px solid var(--border); padding: 6px 8px; text-align: center; }
.pillar-dishi .icon svg { width: 10px; height: 10px; display: none; }
.dishi-k { font-size: 0.55rem; font-weight: 500; text-transform: uppercase; color: var(--muted-fg); opacity: 0.8; margin-right: 4px; }
.pillar-shensha { border-top: 1px solid var(--border); padding: 6px 8px; }
.pillar-shensha-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; }
.shensha-pill {
  display: inline-flex; align-items: center; gap: 3px;
  border-radius: 999px;
  background: color-mix(in oklch, oklch(0.828 0.189 84.429) 10%, transparent);
  padding: 1px 6px;
  font-size: 0.6rem; font-weight: 500;
  color: oklch(0.722 0.18 70);
}
.shensha-pill .icon svg { width: 9px; height: 9px; }

/* ---------- Результат: Господин Дня ---------- */
.dm-top { display: flex; align-items: center; gap: 16px; }
.dm-tile {
  width: 96px; height: 96px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  border-radius: 16px;
}
.dm-glyph { font-family: 'Noto Serif SC', 'Songti SC', serif; font-size: 2.6rem; font-weight: 700; line-height: 1; }
.dm-name { font-size: 0.9rem; font-weight: 700; }
.dm-badges { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.el-badge { display: inline-flex; align-items: center; gap: 4px; border-radius: 999px; padding: 2px 10px; font-size: 0.75rem; font-weight: 500; }
.badge.s-strong { background: color-mix(in oklch, #ef4444 10%, transparent); color: #ef4444; }
.badge.s-weak { background: color-mix(in oklch, #3b82f6 10%, transparent); color: #3b82f6; }
.badge.s-balanced { background: color-mix(in oklch, #10b981 10%, transparent); color: #10b981; }
.strength-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 16px 0; }
.strength-box { border: 1px solid var(--border); border-radius: var(--radius); background: color-mix(in oklch, var(--muted) 40%, transparent); padding: 10px; text-align: center; }
.strength-box.on { border-color: var(--ring); background: color-mix(in oklch, var(--primary) 5%, transparent); color: var(--primary); }
.strength-label { font-size: 0.7rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.03em; }
.strength-val { font-size: 0.9rem; font-weight: 600; margin-top: 2px; }
.dm-fav-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dm-fav { border-radius: 12px; padding: 12px; }
.dm-fav.good { border: 1px solid color-mix(in oklch, #10b981 20%, transparent); background: color-mix(in oklch, #10b981 5%, transparent); }
.dm-fav.bad { border: 1px solid color-mix(in oklch, #f43f5e 20%, transparent); background: color-mix(in oklch, #f43f5e 5%, transparent); }
.dm-fav-title { display: flex; align-items: center; gap: 6px; font-size: 0.85rem; font-weight: 600; margin-bottom: 8px; }
.dm-fav-title .icon svg { width: 15px; height: 15px; }
.dm-fav.good .dm-fav-title { color: #10b981; }
.dm-fav.bad .dm-fav-title { color: #f43f5e; }
.dm-fav-badges { display: flex; flex-wrap: wrap; gap: 6px; }

/* ---------- Результат: стихии ---------- */
.element-row { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.element-label { display: flex; align-items: center; gap: 8px; width: 120px; flex-shrink: 0; }
.element-bar { flex: 1; height: 28px; border-radius: 6px; background: color-mix(in oklch, var(--muted) 50%, transparent); overflow: hidden; position: relative; }
.element-fill { height: 100%; border-radius: 6px; display: flex; align-items: center; justify-content: flex-end; padding-right: 6px; transition: width 0.6s ease; min-width: 6%; }
.element-fill span { font-size: 0.7rem; font-weight: 600; }
.element-count { width: 80px; flex-shrink: 0; text-align: right; font-size: 0.7rem; color: var(--muted-fg); }

/* ---------- Результат: десять божеств ---------- */
.tengods-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.tengod { border: 1px solid var(--border); border-radius: var(--radius); background: color-mix(in oklch, var(--muted) 30%, transparent); padding: 10px; }
.tengod-top { display: flex; align-items: center; justify-content: space-between; }
.tengod-top .badge { font-size: 0.7rem; }
.tengod-desc { font-size: 0.65rem; line-height: 1.3; color: var(--muted-fg); margin-top: 3px; }

/* ---------- Результат: вспомогательные ---------- */
.aux-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.aux-item { border: 1px solid var(--border); border-radius: var(--radius); background: color-mix(in oklch, var(--muted) 20%, transparent); padding: 12px; }

/* ---------- Результат: личные характеристики ---------- */
.personal-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.p-tile { border: 1px solid var(--border); border-radius: var(--radius); background: color-mix(in oklch, var(--muted) 20%, transparent); padding: 12px; text-align: center; }
.p-tile-val { font-size: 1.4rem; font-weight: 700; line-height: 1.2; }
.p-tile-val.strong { font-weight: 700; }
.p-tile-val.primary { color: var(--primary); }
.animals-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 8px; }
.animal-tile { border: 1px solid var(--border); border-radius: var(--radius); background: color-mix(in oklch, var(--muted) 20%, transparent); padding: 10px; text-align: center; }
.kua-desc { margin-top: 12px; border: 1px solid var(--border); border-radius: var(--radius); background: color-mix(in oklch, var(--muted) 20%, transparent); padding: 12px; font-size: 0.75rem; line-height: 1.6; }
.gua-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 8px; }
.gua-col { border-radius: 12px; padding: 12px; }
.gua-col.good { border: 1px solid color-mix(in oklch, #10b981 20%, transparent); background: color-mix(in oklch, #10b981 5%, transparent); }
.gua-col.bad { border: 1px solid color-mix(in oklch, #f43f5e 20%, transparent); background: color-mix(in oklch, #f43f5e 5%, transparent); }
.gua-col-title { font-size: 0.8rem; font-weight: 600; margin-bottom: 8px; }
.gua-col.good .gua-col-title { color: #10b981; }
.gua-col.bad .gua-col-title { color: #f43f5e; }
.gua-item { font-size: 0.75rem; line-height: 1.5; margin-bottom: 4px; }
.gua-item .icon svg { width: 12px; height: 12px; }

/* ---------- Результат: текущий год ---------- */
.cy-top { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.cy-tile { width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; border-radius: 16px; background: color-mix(in oklch, var(--primary) 5%, transparent); border: 1px solid color-mix(in oklch, var(--primary) 20%, transparent); color: var(--primary); }
.cy-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 12px 0; }
.cy-col { border-radius: var(--radius); padding: 12px; }
.cy-col.clash { border: 1px solid color-mix(in oklch, #f43f5e 20%, transparent); background: color-mix(in oklch, #f43f5e 5%, transparent); }
.cy-col.combo { border: 1px solid color-mix(in oklch, #10b981 20%, transparent); background: color-mix(in oklch, #10b981 5%, transparent); }
.cy-col-title { font-size: 0.8rem; font-weight: 600; margin-bottom: 4px; }
.cy-col.clash .cy-col-title { color: #f43f5e; }
.cy-col.combo .cy-col-title { color: #10b981; }
.cy-desc { border: 1px solid var(--border); border-radius: var(--radius); background: color-mix(in oklch, var(--muted) 20%, transparent); padding: 12px; font-size: 0.75rem; line-height: 1.6; }
.san-sha { margin-top: 12px; border: 1px solid color-mix(in oklch, oklch(0.828 0.189 84.429) 25%, transparent); background: color-mix(in oklch, oklch(0.828 0.189 84.429) 8%, transparent); border-radius: var(--radius); padding: 12px; font-size: 0.8rem; }
.san-sha .icon svg { width: 14px; height: 14px; }
.ziwei-box { margin-top: 12px; border: 1px solid color-mix(in oklch, var(--primary) 20%, transparent); background: color-mix(in oklch, var(--primary) 5%, transparent); border-radius: var(--radius); padding: 12px; }
.badge.v-good { background: color-mix(in oklch, #10b981 12%, transparent); color: #10b981; }
.badge.v-warn { background: color-mix(in oklch, oklch(0.828 0.189 84.429) 12%, transparent); color: oklch(0.722 0.18 70); }
.badge.v-neutral { background: var(--muted); color: var(--muted-fg); }

/* ---------- Результат: столпы удачи ---------- */
.luck-scroll { overflow-x: auto; padding-bottom: 8px; }
.luck-inner { display: flex; gap: 8px; min-width: max-content; }
.luck-col { display: flex; flex-direction: column; width: 140px; flex-shrink: 0; }
.luck-btn { border: 1px solid var(--border); border-radius: 12px; background: var(--card); padding: 8px; text-align: center; cursor: pointer; color: var(--fg); font: inherit; transition: all 0.15s; }
.luck-btn:hover { border-color: var(--ring); background: color-mix(in oklch, var(--muted) 40%, transparent); }
.luck-btn.active { border-color: var(--primary); background: color-mix(in oklch, var(--primary) 5%, transparent); }
.luck-age { font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--muted-fg); }
.luck-gz { font-size: 1.4rem; line-height: 1.2; }
.luck-years { font-size: 0.6rem; color: var(--muted-fg); }
.luck-shensha { margin-top: 4px; display: flex; flex-wrap: wrap; justify-content: center; gap: 3px; }
.luck-detail { margin-top: 4px; border: 1px solid var(--border); border-radius: 8px; background: color-mix(in oklch, var(--muted) 30%, transparent); padding: 6px; font-size: 0.7rem; }
.luck-detail-title { font-size: 0.6rem; font-weight: 600; color: var(--muted-fg); margin-bottom: 2px; }
.luck-year-row { padding: 1px 4px; border-radius: 4px; color: var(--muted-fg); }
.luck-year-row.cur { background: color-mix(in oklch, var(--primary) 10%, transparent); color: var(--primary); font-weight: 600; }

/* ---------- Результат: дерево родственников ---------- */
.family-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.family-card { display: flex; flex-direction: column; gap: 4px; border: 1px solid var(--border); border-radius: 12px; background: var(--card); padding: 10px; }
.family-card.absent { border-color: var(--border); background: color-mix(in oklch, var(--muted) 20%, transparent); opacity: 0.7; }
.family-main { display: flex; align-items: center; gap: 8px; }
.family-glyph { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 6px; font-family: 'Noto Serif SC', 'Songti SC', serif; font-size: 1.1rem; font-weight: 700; }
.family-status { display: inline-block; border-radius: 4px; padding: 1px 6px; font-size: 0.6rem; font-weight: 500; align-self: flex-start; }
.family-status.st-explicit { background: color-mix(in oklch, #10b981 10%, transparent); color: #10b981; }
.family-status.st-hidden { background: color-mix(in oklch, oklch(0.828 0.189 84.429) 10%, transparent); color: oklch(0.722 0.18 70); }
.family-status.st-absent { background: var(--muted); color: var(--muted-fg); }
.family-summary { margin-top: 12px; border: 1px solid var(--border); border-radius: var(--radius); background: color-mix(in oklch, var(--muted) 30%, transparent); padding: 12px; font-size: 0.75rem; line-height: 1.6; color: var(--muted-fg); }

/* ---------- Результат: текущие столпы / доминирующие / сюань кун ---------- */
.cur-pillars-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.cur-pillar { border: 1px solid var(--border); border-radius: var(--radius); background: color-mix(in oklch, var(--muted) 20%, transparent); padding: 12px; text-align: center; }
.dom-hidden-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.dom-hidden { display: flex; flex-direction: column; align-items: center; gap: 2px; border: 1px solid var(--border); border-radius: 12px; background: color-mix(in oklch, var(--muted) 20%, transparent); padding: 12px; text-align: center; }
.xuan-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.xuan-card { display: flex; flex-direction: column; align-items: center; gap: 2px; border: 1px solid var(--border); border-radius: 12px; background: color-mix(in oklch, var(--muted) 20%, transparent); padding: 12px; text-align: center; }
.xuan-card .icon svg { width: 11px; height: 11px; }

/* ---------- Результат: интерпретации ---------- */
.interp-lead { margin-bottom: 14px; border-radius: 12px; background: color-mix(in oklch, var(--primary) 5%, transparent); padding: 14px; font-size: 0.875rem; line-height: 1.6; }
.interp-tabs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; margin-top: 12px; margin-bottom: 12px; }
.interp-tab { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 8px 4px; border-radius: var(--radius); background: none; border: 1px solid var(--border); color: var(--muted-fg); font: inherit; font-size: 0.8rem; cursor: pointer; transition: all 0.15s; }
.interp-tab:hover { color: var(--fg); }
.interp-tab.active { background: var(--primary); color: var(--primary-fg); border-color: var(--primary); }
.interp-tab .icon svg { width: 14px; height: 14px; }
/* Вкладки «Любовная / Дружеская / Деловая» на странице совместимости */
.rel-tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 12px; }
.rel-tab { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 6px; border-radius: var(--radius); background: none; border: 1px solid var(--border); color: var(--muted-fg); font: inherit; font-size: 0.9rem; cursor: pointer; transition: all 0.15s; }
.rel-tab:hover { color: var(--fg); }
.rel-tab.active { background: var(--primary); color: var(--primary-fg); border-color: var(--primary); }
.rel-tab.is-off { opacity: 0.45; border-style: dashed; }
.rel-tab.is-off:hover { opacity: 0.7; }
.rel-tab.is-off.active { opacity: 1; border-style: solid; }
.rel-tab .icon svg { width: 14px; height: 14px; }
.rm-grid.rm-single { grid-template-columns: 1fr; }
.interp-block { border: 1px solid var(--border); border-radius: 12px; background: color-mix(in oklch, var(--muted) 20%, transparent); padding: 14px; font-size: 0.875rem; line-height: 1.7; }

/* ---------- Сегодня ---------- */
.today-pillars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.today-pillar { display: flex; flex-direction: column; align-items: center; gap: 4px; border: 1px solid var(--border); border-radius: 12px; background: var(--card); padding: 12px; }
.today-pillar.day { border-color: var(--ring); background: color-mix(in oklch, var(--primary) 5%, transparent); }
.today-pillar-label { font-size: 0.65rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted-fg); display: flex; align-items: center; gap: 4px; }
.today-pillar-label.primary { color: var(--primary); }
.today-date-title {
  text-align: center;
  font-size: clamp(22px, 3.2vw, 30px);
  font-weight: 700;
  line-height: 1.3;
  margin: 0 0 10px;
}
.today-pillar-label .icon svg { width: 12px; height: 12px; }
.today-pillar-glyph { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 8px; font-family: 'Noto Serif SC', 'Songti SC', serif; font-size: 1.5rem; font-weight: 700; }
.today-pillar-sep { width: 32px; height: 1px; background: var(--border); }
.today-pillar-gz { font-family: 'Noto Serif SC', 'Songti SC', serif; font-size: 0.8rem; color: var(--muted-fg); }
.dm-row { display: flex; align-items: center; gap: 14px; }
.sub-heading { display: flex; align-items: center; gap: 6px; font-size: 0.9rem; font-weight: 600; margin: 10px 0 4px; }
.sub-heading .icon svg { width: 15px; height: 15px; }
.interp-nature { margin: 12px 0; border: 1px solid var(--border); border-radius: var(--radius); background: color-mix(in oklch, var(--muted) 30%, transparent); padding: 12px; font-size: 0.875rem; font-style: italic; color: var(--muted-fg); }
.ok-box, .no-box, .warn-box { border-radius: var(--radius); padding: 12px; }
.ok-box { border: 1px solid color-mix(in oklch, #10b981 20%, transparent); background: color-mix(in oklch, #10b981 5%, transparent); }
.no-box { border: 1px solid color-mix(in oklch, #f43f5e 20%, transparent); background: color-mix(in oklch, #f43f5e 5%, transparent); }
.warn-box { border: 1px solid color-mix(in oklch, oklch(0.828 0.189 84.429) 20%, transparent); background: color-mix(in oklch, oklch(0.828 0.189 84.429) 5%, transparent); }
.ok-title { display: flex; align-items: center; gap: 6px; font-size: 0.875rem; font-weight: 600; color: #10b981; margin-bottom: 4px; }
.warn-title { display: flex; align-items: center; gap: 6px; font-size: 0.875rem; font-weight: 600; color: oklch(0.722 0.18 70); margin-bottom: 4px; }
.no-title { display: flex; align-items: center; gap: 6px; font-size: 0.875rem; font-weight: 600; color: #f43f5e; margin-bottom: 4px; }
.ok-title .icon svg, .warn-title .icon svg, .no-title .icon svg { width: 14px; height: 14px; }
.ok-box-sm, .no-box-sm { border-radius: var(--radius); padding: 10px; }
.ok-box-sm { border: 1px solid color-mix(in oklch, #10b981 15%, transparent); background: color-mix(in oklch, #10b981 5%, transparent); }
.no-box-sm { border: 1px solid color-mix(in oklch, #f43f5e 15%, transparent); background: color-mix(in oklch, #f43f5e 5%, transparent); }
.ee-card { border: 1px solid var(--border); border-radius: 12px; padding: 14px; }
.ee-icon { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; font-size: 1.1rem; }
.moon-phase { width: 72px; height: 72px; flex-shrink: 0; }
.moon-svg { display: block; width: 72px; height: 72px; }
.moon-svg .moon-dark { fill: color-mix(in oklch, var(--fg) 12%, var(--card)); }
.moon-svg .moon-rim { fill: none; stroke: color-mix(in oklch, var(--fg) 22%, transparent); stroke-width: 1.5; }
[data-theme="dark"] .moon-svg { filter: drop-shadow(0 0 14px rgba(253, 251, 211, 0.15)); }
.term-box { border-radius: var(--radius); padding: 12px; }
.term-box.current { border: 1px solid color-mix(in oklch, oklch(0.828 0.189 84.429) 20%, transparent); background: color-mix(in oklch, oklch(0.828 0.189 84.429) 5%, transparent); }
.term-box.next { border: 1px solid var(--border); background: color-mix(in oklch, var(--muted) 30%, transparent); }
.term-label { font-size: 0.7rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted-fg); margin-bottom: 2px; }
.term-box .icon svg { width: 12px; height: 12px; }

/* ---------- Совместимость ---------- */
.heart-icon { color: #f43f5e; }
.heart-icon .icon svg { width: 24px; height: 24px; }
.p-summary { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; border: 1px solid var(--border); border-radius: 12px; background: color-mix(in oklch, var(--muted) 20%, transparent); padding: 14px; text-align: center; }
.p-summary-label { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; }
.p-summary-label.rose { color: #f43f5e; }
.p-summary-label.sky { color: #0ea5e9; }
.p-summary-glyph { width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; border-radius: 16px; font-family: 'Noto Serif SC', 'Songti SC', serif; font-size: 2rem; font-weight: 700; }
.compat-main { display: grid; grid-template-columns: 1fr auto 1fr; align-items: stretch; gap: 12px; }
.compat-circle { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 8px 0; }
.compat-ring { width: 112px; height: 112px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 50%; border: 4px solid; }
.compat-score { font-size: 2rem; font-weight: 700; line-height: 1.1; }
.compat-verdict { margin-top: 4px; padding: 0 10px; text-align: center; font-size: 0.85rem; font-weight: 600; color: var(--muted-fg); line-height: 1.3; }
.compat-bars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.score-box { min-width: 0; overflow-wrap: break-word; border: 1px solid var(--border); border-radius: var(--radius); background: color-mix(in oklch, var(--muted) 20%, transparent); padding: 12px; }
.score-val { font-size: 1.25rem; font-weight: 700; }
.score-bar { height: 6px; border-radius: 999px; background: var(--muted); margin: 6px 0; overflow: hidden; }
.score-fill { height: 100%; border-radius: 999px; }
.int-row { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; border-radius: var(--radius); padding: 10px; font-size: 0.9rem; }
.int-row .badge { flex-shrink: 0; max-width: 100%; }
.int-good { border: 1px solid color-mix(in oklch, #10b981 20%, transparent); background: color-mix(in oklch, #10b981 5%, transparent); }
.int-bad { border: 1px solid color-mix(in oklch, #f43f5e 20%, transparent); background: color-mix(in oklch, #f43f5e 5%, transparent); }
.int-neutral { border: 1px solid var(--border); background: color-mix(in oklch, var(--muted) 20%, transparent); }
.int-badge-good { background: color-mix(in oklch, #10b981 10%, transparent); color: #10b981; border-color: color-mix(in oklch, #10b981 40%, transparent); }
.int-badge-bad { background: color-mix(in oklch, #f43f5e 10%, transparent); color: #f43f5e; border-color: color-mix(in oklch, #f43f5e 40%, transparent); }
.int-badge-neutral { background: var(--muted); color: var(--muted-fg); }
.cc-value { margin-top: 4px; font-size: 0.95rem; font-weight: 600; line-height: 1.4; }
html[data-theme="dark"] body[data-view="compat"] { --muted-fg: oklch(0.95 0 0); }
.cc-explain { margin-top: 6px; font-size: 0.85rem; line-height: 1.6; color: var(--muted-fg); }
.cc-subhead { font-size: 1.05rem; font-weight: 600; margin-bottom: 6px; }
.cc-verdict { margin-top: 16px; border: 1px solid color-mix(in oklch, var(--primary) 25%, transparent); background: color-mix(in oklch, var(--primary) 5%, transparent); border-radius: 14px; padding: 16px; }
.cc-verdict-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; }
.cc-verdict-score { font-size: 1.9rem; font-weight: 700; line-height: 1; }
.cc-verdict-title { font-size: 1.15rem; font-weight: 600; }
.cc-verdict-lead { margin-top: 8px; font-size: 0.95rem; line-height: 1.65; }
.cc-vrows { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.cc-vrow { display: flex; align-items: flex-start; gap: 9px; font-size: 0.9rem; line-height: 1.6; }
.cc-vdot { flex: 0 0 auto; width: 9px; height: 9px; border-radius: 50%; margin-top: 7px; background: var(--muted-fg); opacity: 0.5; }
.cc-vrow.good .cc-vdot { background: #10b981; opacity: 1; }
.cc-vrow.warn .cc-vdot { background: #ef4444; opacity: 1; }
.cc-vtext { color: var(--fg); }
.cc-vtext b { font-weight: 600; }
.cc-vrow.good .cc-vtext b { color: #10b981; }
.cc-vrow.warn .cc-vtext b { color: #ef4444; }
.rm-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.rm-card { display: flex; gap: 12px; border: 1px solid var(--border); border-radius: 14px; padding: 14px; background: color-mix(in oklch, var(--muted) 15%, transparent); }
.rm-icon { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 11px; display: flex; align-items: center; justify-content: center; }
.rm-icon .icon { display: flex; }
.rm-icon .icon svg { width: 20px; height: 20px; }
.rm-card.good .rm-icon { background: #10b98122; color: #10b981; }
.rm-card.ok .rm-icon { background: color-mix(in oklch, var(--muted) 55%, transparent); color: var(--fg); }
.rm-card.hard .rm-icon { background: #f59e0b22; color: #f59e0b; }
.rm-card.unlikely .rm-icon { background: #ef444422; color: #ef4444; }
.rm-body { min-width: 0; }
.rm-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rm-title { font-size: 0.95rem; font-weight: 600; }
.rm-badge { font-size: 0.72rem; font-weight: 600; padding: 2px 8px; border-radius: 999px; }
.rm-badge.good { background: #10b98120; color: #10b981; }
.rm-badge.ok { background: color-mix(in oklch, var(--muted) 60%, transparent); color: var(--fg); }
.rm-badge.hard { background: #f59e0b20; color: #f59e0b; }
.rm-badge.unlikely { background: #ef444420; color: #ef4444; }
.rm-text { margin-top: 5px; font-size: 0.85rem; line-height: 1.55; color: var(--muted-fg); }
.cc-grid { display: grid; grid-template-columns: 1fr; gap: 18px; }
.cc-person { border: 1px solid var(--border); border-radius: 14px; padding: 14px; background: color-mix(in oklch, var(--muted) 15%, transparent); }
.cc-person-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin-bottom: 12px; }
.cc-person-name { font-size: 1rem; font-weight: 600; }
.cc-person-dm { font-size: 0.9rem; }
.cc-period { margin-top: 14px; border-top: 1px dashed var(--border); padding-top: 12px; }
.cc-period-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.cc-period-title { display: inline-flex; align-items: center; gap: 6px; font-size: 0.95rem; font-weight: 600; }
.cc-period-title .icon svg { width: 14px; height: 14px; }
.cc-period-hint { font-size: 0.8rem; color: var(--muted-fg); }
.cc-period-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.cc-p { border: 1px solid var(--border); border-radius: var(--radius); padding: 10px; background: color-mix(in oklch, var(--muted) 20%, transparent); }
.cc-p-label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted-fg); margin-bottom: 4px; }
.cc-p-gz { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; font-family: 'Noto Serif SC', 'Songti SC', serif; font-size: 1.25rem; font-weight: 700; }
.cc-p-god { font-family: system-ui, -apple-system, sans-serif; font-size: 0.8rem; font-weight: 500; }
.cc-p-sub { margin-top: 3px; font-size: 0.85rem; color: var(--muted-fg); }
.cc-person .pillar-head { font-size: 0.85rem; }
.cc-person .pillar-ss span { font-size: 0.78rem; }
.cc-person .glyph-caption { font-size: 0.8rem; }
.cc-person .pillar-label { font-size: 0.72rem; }
.cc-person .hidden-stem .hs-ss { font-size: 0.68rem; }
.cc-person .dishi-k { font-size: 0.68rem; }
.cc-person .shensha-pill { font-size: 0.68rem; }
.cc-person .pillar-nayin .text-xs,
.cc-person .pillar-dishi .text-xs { font-size: 0.8rem; }

/* ---------- Контекст жизни ---------- */
.fc-section { margin-bottom: 16px; }
.fc-head { padding: 14px 20px; border-left: 3px solid var(--fg); border-bottom: 1px solid var(--border); }
.fc-head h2 { margin: 0; }
.fc-icon .icon svg { width: 16px; height: 16px; }
.fc-chevron { transition: transform 0.2s; display: inline-flex; }
.fc-chevron.open { transform: rotate(180deg); }
.fc-chevron .icon svg { width: 16px; height: 16px; }
.fc-list { display: flex; flex-direction: column; gap: 2px; margin-top: 8px; }
.fc-checkbox { display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 0.875rem; padding: 3px 0; }
.fc-checkbox input { accent-color: #ef4444; width: 16px; height: 16px; }
.fc-sub-input { margin: 6px 0 6px 24px; }
.fc-sub-input input {
  background: var(--input-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--fg);
  font: inherit;
  font-size: 15px;
  padding: 9px 12px;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
  width: 100%;
  max-width: 400px;
}
.fc-sub-input input:focus {
  border-color: var(--ring);
  box-shadow: 0 0 0 3px oklch(0.556 0 0 / 0.2);
}
.fc-year { width: 90px !important; }
.fc-desc { flex: 1; max-width: 300px; }
.fc-radio-row { display: flex; gap: 14px; margin-top: 6px; }
.fc-textarea {
  resize: vertical;
  width: 100%;
  background: var(--input-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--fg);
  font: inherit;
  font-size: 15px;
  padding: 9px 12px;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.fc-textarea:focus {
  border-color: var(--ring);
  box-shadow: 0 0 0 3px oklch(0.556 0 0 / 0.2);
}
.fc-output { border: 1px solid color-mix(in oklch, var(--primary) 20%, transparent); border-radius: 12px; background: var(--card); box-shadow: var(--shadow); padding: 20px; }
.fc-output pre { margin: 0; white-space: pre-wrap; word-break: break-word; font-family: 'Geist', sans-serif; font-size: 0.875rem; line-height: 1.7; }

/* ---------- О Ба Цзы ---------- */
.about-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.about-grid.guide { grid-template-columns: repeat(3, 1fr); }
.about-card h3 { margin-bottom: 6px; }
.about-toggle { display: inline-flex; align-items: center; gap: 6px; background: none; border: none; color: var(--primary); font: inherit; font-size: 0.8rem; font-weight: 500; cursor: pointer; padding: 6px 0; }
.about-toggle .chev { display: inline-flex; transition: transform 0.2s; }
.about-toggle .chev.open { transform: rotate(180deg); }
.about-toggle .chev .icon svg { width: 14px; height: 14px; }
.about-details { margin-top: 6px; }
.about-detail { font-size: 0.8rem; line-height: 1.6; color: var(--muted-fg); padding: 2px 0; }
.guide-block { margin: 10px 0; }
.guide-label { font-size: 0.8rem; font-weight: 600; margin-bottom: 4px; }
.guide-sub-label { font-size: 0.7rem; font-weight: 500; color: var(--muted-fg); margin: 8px 0 2px; }
.guide-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.guide-chip { border: 1px solid var(--border); border-radius: 999px; background: color-mix(in oklch, var(--muted) 30%, transparent); padding: 2px 8px; font-size: 0.7rem; }
.cycle-box { border-radius: 12px; padding: 14px; }
.cycle-box.good { border: 1px solid color-mix(in oklch, #10b981 20%, transparent); background: color-mix(in oklch, #10b981 5%, transparent); }
.cycle-box.bad { border: 1px solid color-mix(in oklch, #f43f5e 20%, transparent); background: color-mix(in oklch, #f43f5e 5%, transparent); }
.cycle-chain { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }

/* ---------- Донат ---------- */
.donate-progress { position: relative; height: 12px; border-radius: 999px; background: color-mix(in oklch, var(--primary) 20%, transparent); overflow: hidden; margin-top: 6px; }
.donate-progress-fill { height: 100%; border-radius: 999px; background: var(--primary); transition: width 0.5s ease; }
.donate-row { display: flex; flex-direction: column; align-items: center; gap: 14px; }
.donate-qr { background: none; border: 2px solid var(--border); border-radius: 12px; padding: 4px; cursor: pointer; transition: all 0.2s; }
.donate-qr:hover { border-color: var(--ring); box-shadow: var(--shadow); }
.donate-qr img { border-radius: 8px; display: block; }
.donate-col { display: flex; flex-direction: column; gap: 8px; align-items: center; text-align: center; }
.donate-note { display: flex; align-items: flex-start; gap: 10px; border: 1px solid color-mix(in oklch, oklch(0.828 0.189 84.429) 20%, transparent); background: color-mix(in oklch, oklch(0.828 0.189 84.429) 5%, transparent); border-radius: var(--radius); padding: 16px; }
.donate-note .icon { color: oklch(0.722 0.18 70); flex-shrink: 0; }
.donate-note .icon svg { width: 20px; height: 20px; }
.donate-modal { position: fixed; inset: 0; z-index: 100; background: color-mix(in oklch, #000 60%, transparent); display: flex; align-items: center; justify-content: center; padding: 16px; }
.donate-modal[hidden] { display: none; }
.donate-modal-box { position: relative; background: var(--card); border-radius: var(--radius); padding: 24px; box-shadow: var(--shadow); max-width: 520px; width: 100%; }
.donate-modal-box img { max-width: 100%; height: auto; }
.donate-modal-close { position: absolute; right: 12px; top: 8px; background: none; border: none; color: var(--muted-fg); font-size: 1.4rem; cursor: pointer; }

/* ---------- История ---------- */
.hist-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; border: 1px solid transparent; border-radius: var(--radius); padding: 10px 12px; margin-bottom: 6px; transition: all 0.15s; }
.hist-item:hover { border-color: color-mix(in oklch, var(--primary) 30%, transparent); background: color-mix(in oklch, var(--primary) 5%, transparent); }
.hist-main { flex: 1; min-width: 0; cursor: pointer; }
.hist-gender { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--secondary); padding: 1px 6px; }
.hist-gender .icon svg { width: 12px; height: 12px; }
.hist-side { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.hist-del { background: none; border: none; color: var(--muted-fg); opacity: 0.5; cursor: pointer; padding: 4px; border-radius: 4px; transition: all 0.15s; }
.hist-del:hover { background: color-mix(in oklch, var(--destructive) 10%, transparent); color: var(--destructive); opacity: 1; }
.hist-del .icon svg { width: 13px; height: 13px; }

/* ---------- Интерпретация: индивидуальные абзацы ---------- */
.interp-extra {
  margin-bottom: 18px;
  border: 1px solid var(--border);
  border-left: 3px solid var(--primary);
  border-radius: 10px;
  background: color-mix(in oklch, var(--muted) 18%, transparent);
  padding: 12px 14px;
}
.interp-extra-title {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 700;
  color: var(--primary);
  margin-bottom: 6px;
}
.interp-extra-title .icon svg { width: 14px; height: 14px; }
.interp-extra-text {
  font-size: 14px;
  line-height: 1.7;
  color: var(--fg);
}

/* Кнопка-спойлер «Показать всё» в выводе Ба цзы */
.bazi-reveal {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 18px 16px;
  border: 1.5px dashed var(--primary);
  border-radius: var(--radius);
  background: color-mix(in oklch, var(--primary) 8%, transparent);
  color: var(--primary);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s;
}
.bazi-reveal:hover { background: color-mix(in oklch, var(--primary) 14%, transparent); }
.bazi-reveal .icon { flex-shrink: 0; }
.bazi-reveal .icon svg { width: 20px; height: 20px; }
.bazi-reveal-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bazi-reveal-title { font-weight: 600; font-size: 0.95rem; }
.bazi-reveal-sub { font-size: 0.75rem; color: var(--muted-fg); line-height: 1.4; }

/* ---------- Адаптив ---------- */
@media (max-width: 900px) {
  .grid-2-lg { grid-template-columns: 1fr; }
  .pillars-grid { grid-template-columns: repeat(2, 1fr); }
  .personal-tiles { grid-template-columns: repeat(2, 1fr); }
  .family-grid { grid-template-columns: repeat(2, 1fr); }
  .compat-bars { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  
  .interp-tabs { grid-template-columns: repeat(3, 1fr); }
  .export-banner { flex-direction: column; align-items: stretch; text-align: center; gap: 16px; padding: 20px; }
  .export-banner-left { align-items: center; width: 100%; }
  .export-term-label select { width: 100%; }
  .export-banner-text { font-size: 1rem; }
  .export-banner-btn { width: 100%; justify-content: center; }
  .about-grid, .about-grid.guide { grid-template-columns: 1fr; }
  .today-pillars { grid-template-columns: repeat(2, 1fr); }
  .cur-pillars-grid, .dom-hidden-grid, .xuan-grid { grid-template-columns: repeat(2, 1fr); }
  /* Мобильные: меню сворачивается слева, открывается бургером */
  .sidebar {
    transform: translateX(-100%);
    transition: transform 0.25s ease;
    width: 260px;
    box-shadow: var(--shadow);
  }
  .brand-mark { height: 39px; }
  body.nav-open .sidebar { transform: translateX(0); }
  .content { margin-left: 0; }
  .topbar-inner { justify-content: space-between; }
  .nav-item { font-size: 16px; padding: 12px; text-align: left; }
  .nav-burger { display: block; }
  .grid-2, .grid-3, .grid-4, .grid-5 { grid-template-columns: 1fr 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .datetime-row { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .grid-2, .grid-3, .grid-4, .grid-5 { grid-template-columns: 1fr; }
  .pillars-table { grid-template-columns: repeat(2, 1fr); }
  h1 { font-size: 1.6rem; }
  .hero h1 { font-size: 1.9rem; }
  .hero-mark { height: 84px; margin-right: 8px; }
  /* секции результата: не даём переполняться на узких экранах */
  .dm-fav-grid, .gua-cols, .cy-cols, .aux-grid, .tengods-grid { grid-template-columns: 1fr; }
  .personal-tiles, .animals-grid { grid-template-columns: repeat(2, 1fr); }
  .strength-grid { grid-template-columns: 1fr; }
  .element-label { width: 92px; }
  .element-count { width: 64px; }
  .compat-main { grid-template-columns: 1fr; }
  .compat-bars { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .rel-tab { font-size: 0.8rem; padding: 8px 4px; }
  .cc-period-grid { grid-template-columns: 1fr; }
  .rm-grid { grid-template-columns: 1fr; }
  .interp-tabs { grid-template-columns: 1fr 1fr; }
  .interp-tab:last-child { grid-column: 1 / -1; }
  .rh-info { grid-template-columns: 1fr 1fr; }
  .pillars-grid { gap: 8px; }
  .glyph { font-size: 2rem; }
  .dm-tile { width: 72px; height: 72px; }
  .dm-glyph { font-size: 2rem; }
  .rh-tile { width: 48px; height: 48px; font-size: 1.5rem; }
  .today-pillar-glyph { width: 36px; height: 36px; font-size: 1.2rem; }
  .today-pillars { gap: 6px; }
  .family-grid { gap: 6px; }
  .strength-grid { gap: 6px; }
  /* Столпы удачи: на мобильных не растягиваем в горизонтальную ленту,
     а раскладываем сеткой — без горизонтальной прокрутки */
  .luck-scroll { overflow-x: hidden; padding-bottom: 0; }
  .luck-inner { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; min-width: 0; }
  .luck-col { width: auto; flex-shrink: 1; }
  .form-actions { flex-direction: column; align-items: stretch; }
  .form-actions .btn { width: 100%; }
  .fc-output { padding: 12px; }
}

/* Монетка: вращение как у старой (14s цикл: 4s вращение + 10s пауза) */
@keyframes coin-spin {
  0% { transform: perspective(300px) rotateY(0deg); }
  14.285% { transform: perspective(300px) rotateY(180deg); }
  28.57% { transform: perspective(300px) rotateY(360deg); }
  100% { transform: perspective(300px) rotateY(360deg); }
}

/* ---------- Кошелёк: анимация на странице Доната (заголовок цели) ---------- */
.goal-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.goal-header .card-title { margin-bottom: 0; }
.wallet-loader {
  --wallet-color: #8b4513;
  --wallet-dark: #5a2d0c;
  --bill-color: #66cdaa;
  --bill-detail: #2e8b57;
  --txt-color: #ffffff;
  --duration: 4s;
  position: relative;
  width: 110px;
  height: 80px;
  flex-shrink: 0;
}
.wallet-loader .wallet-back {
  position: absolute;
  bottom: 10px;
  left: 5px;
  width: 100px;
  height: 45px;
  background: var(--wallet-dark);
  border-radius: 5px 5px 0 0;
  z-index: 0;
}
.wallet-loader .bill {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -30px;
  width: 70px;
  height: 40px;
  background: var(--bill-color);
  border-radius: 2px;
  border: 1px solid var(--bill-detail);
  opacity: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.wallet-loader .bill::before {
  content: "₹";
  font-family: sans-serif;
  font-weight: bold;
  font-size: 18px;
  color: var(--bill-detail);
  border: 2px solid var(--bill-detail);
  border-radius: 50%;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.2);
}
.wallet-loader .bill::after {
  content: "";
  position: absolute;
  left: 3px;
  right: 3px;
  top: 3px;
  bottom: 3px;
  border: 1px dashed var(--bill-detail);
  border-radius: 1px;
}
.wallet-loader .bill-1 { z-index: 1; animation: slide-in var(--duration) ease-in-out infinite; animation-delay: 0s; }
.wallet-loader .bill-2 { z-index: 2; animation: slide-in var(--duration) ease-in-out infinite; animation-delay: 0.8s; }
.wallet-loader .bill-3 { z-index: 3; animation: slide-in var(--duration) ease-in-out infinite; animation-delay: 1.6s; }
.wallet-loader .wallet-front {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 110px;
  height: 52px;
  background: linear-gradient(180deg, var(--wallet-color), var(--wallet-dark));
  border-radius: 6px 6px 10px 10px;
  z-index: 10;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: wallet-bounce var(--duration) ease-in-out infinite;
}
.wallet-loader .wallet-front::before {
  content: "";
  position: absolute;
  left: 6px;
  right: 6px;
  bottom: 6px;
  top: 6px;
  border: 1px dashed rgba(60, 30, 0, 0.3);
  border-radius: 4px 4px 8px 8px;
  pointer-events: none;
}
.wallet-loader .text {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--txt-color);
  letter-spacing: 0.5px;
  text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.3);
}
.wallet-loader .dot { display: inline-block; animation: wave 1.5s infinite; }
.wallet-loader .dot:nth-child(1) { animation-delay: 0s; }
.wallet-loader .dot:nth-child(2) { animation-delay: 0.1s; }
.wallet-loader .dot:nth-child(3) { animation-delay: 0.2s; }
@keyframes slide-in {
  0% { top: -30px; opacity: 0; transform: translateX(-50%) scale(0.8); }
  10% { opacity: 1; }
  25% { top: 18px; transform: translateX(-50%) scale(1); }
  90% { top: 18px; opacity: 1; }
  100% { top: 18px; opacity: 0; }
}
@keyframes wallet-bounce {
  0%, 100% { transform: scale(1); }
  12% { transform: scale(1.02, 0.98); }
  15% { transform: scale(1); }
  32% { transform: scale(1.02, 0.98); }
  35% { transform: scale(1); }
  52% { transform: scale(1.02, 0.98); }
  55% { transform: scale(1); }
}
@keyframes wave {
  0%, 60%, 100% { transform: translateY(0); }
  30% { transform: translateY(-4px); }
}

/* ---------- Звёздное небо на главной (только тёмная тема) ---------- */
.uiverse-midnight-sky {
  display: none;
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  background-color: #050505;
  pointer-events: none;
}
html[data-theme="dark"] .uiverse-midnight-sky { display: block; }

.uiverse-midnight-sky .sky-canvas {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  background: #050505;
}

.uiverse-midnight-sky .stars {
  position: absolute;
  inset: 0;
  background-repeat: repeat;
  pointer-events: none;
}

.uiverse-midnight-sky .stars-1 {
  background-image: radial-gradient(1px 1px at 10% 10%, #fff, transparent),
    radial-gradient(1px 1px at 30% 20%, #fff, transparent),
    radial-gradient(1px 1px at 50% 50%, #fff, transparent),
    radial-gradient(1px 1px at 70% 30%, #fff, transparent),
    radial-gradient(1px 1px at 90% 10%, #fff, transparent);
  background-size: 200px 200px;
  animation: twinkle 3s ease-in-out infinite;
}

.uiverse-midnight-sky .stars-2 {
  background-image: radial-gradient(1.5px 1.5px at 20% 40%, #fff, transparent),
    radial-gradient(1.5px 1.5px at 60% 85%, #fff, transparent),
    radial-gradient(1.5px 1.5px at 85% 65%, #fff, transparent);
  background-size: 300px 300px;
  animation: twinkle 5s ease-in-out infinite 1s;
}

.uiverse-midnight-sky .stars-3 {
  background-image: radial-gradient(2px 2px at 40% 70%, #fff, transparent),
    radial-gradient(2px 2px at 10% 80%, #fff, transparent),
    radial-gradient(2px 2px at 80% 40%, #fff, transparent);
  background-size: 400px 400px;
  animation: twinkle 7s ease-in-out infinite 2s;
}

.uiverse-midnight-sky .meteor {
  position: absolute;
  width: 2px;
  height: 2px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(255, 255, 255, 0.5);
  opacity: 0;
  pointer-events: none;
}

.uiverse-midnight-sky .meteor::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 80px;
  height: 1px;
  background: linear-gradient(90deg, #fff, transparent);
}

.uiverse-midnight-sky .m1 { top: 10%; left: 110%; animation: shoot 8s linear infinite; }
.uiverse-midnight-sky .m2 { top: 30%; left: 110%; animation: shoot 12s linear infinite 4s; }
.uiverse-midnight-sky .m3 { top: 50%; left: 110%; animation: shoot 10s linear infinite 2s; }

.uiverse-midnight-sky .moon {
  position: absolute;
  top: 15%;
  right: 15%;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: transparent;
  box-shadow: 15px 15px 0 0 #fdfbd3;
  filter: drop-shadow(0 0 15px rgba(253, 251, 211, 0.4));
  z-index: 10;
}

@keyframes twinkle {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.2; }
}

@keyframes shoot {
  0% { transform: translateX(0) translateY(0) rotate(-35deg); opacity: 0; }
  5% { opacity: 1; }
  15% { transform: translateX(-1500px) translateY(1000px) rotate(-35deg); opacity: 0; }
  100% { transform: translateX(-1500px) translateY(1000px) rotate(-35deg); opacity: 0; }
}


/* ---------- Спойлер истории запросов над калькулятором ---------- */
.bazi-history {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  color: var(--card-fg);
  overflow: hidden;
}
.bazi-history-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  cursor: pointer;
  list-style: none;
  font-size: 14px;
  font-weight: 600;
  user-select: none;
}
.bazi-history-summary::-webkit-details-marker { display: none; }
.bazi-history-summary .icon svg { width: 16px; height: 16px; }
.bazi-history-summary::after {
  content: "▾";
  color: var(--muted-fg);
  transition: transform 0.2s;
}
.bazi-history[open] .bazi-history-summary::after { transform: rotate(180deg); }
.bazi-history-count {
  font-size: 12px;
  font-weight: 400;
  color: var(--muted-fg);
  background: var(--muted);
  padding: 2px 10px;
  border-radius: 999px;
}
.bazi-history-body {
  border-top: 1px solid var(--border);
  padding: 10px 12px 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
/* список записей в спойлере: 10 последних + вертикальная прокрутка */
.bazi-history-list {
  max-height: 380px;
  overflow-y: auto;
  overscroll-behavior: contain;
  margin-right: -4px;
  padding-right: 4px;
}
.bazi-history-list .hist-item:last-child { margin-bottom: 0; }
@media (max-width: 900px) {
  .bazi-history-list { max-height: 52vh; }
}
.bazi-history-empty {
  margin: 4px 6px;
  color: var(--muted-fg);
  font-size: 13px;
}

/* ============================================================
   Гадание — выбор системы, колода, карта, интерпретация
   ============================================================ */

/* ---------- Выбор системы ---------- */
.gad-systems {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.gad-system {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 16px 10px;
  background: var(--card);
  color: var(--card-fg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  font: inherit;
  transition: border-color 0.15s, background 0.15s, transform 0.1s;
}
.gad-system:hover { border-color: var(--ring); }
.gad-system.active {
  border-color: var(--primary);
  background: color-mix(in oklch, var(--primary) 12%, var(--card));
}
.gad-system-sym {
  font-size: 28px;
  line-height: 1;
  color: var(--primary);
}
.gad-system-title { font-size: 14px; font-weight: 600; }
.gad-system-sub { font-size: 12px; color: var(--muted-fg); }

/* ---------- Поле «Ваш вопрос» ---------- */
.gad-question {
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.gad-question-label {
  font-size: 14px;
  font-weight: 500;
}
.gad-question-box {
  position: relative;
  display: flex;
  align-items: center;
}
.gad-question-input {
  width: 100%;
  background: transparent;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--fg);
  font: inherit;
  font-size: 15px;
  padding: 9px 40px 9px 12px;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.gad-question-input:focus {
  border-color: var(--ring);
  box-shadow: 0 0 0 3px oklch(0.556 0 0 / 0.2);
}
.gad-question-input::placeholder { color: var(--muted-fg); }
.gad-question-clear,
.gad-question-save {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 50%;
  background: none;
  cursor: pointer;
  transition: background 0.12s, color 0.12s;
}
.gad-question-clear {
  right: 38px;
  color: var(--muted-fg);
}
.gad-question-save {
  right: 6px;
  color: var(--primary);
}
.gad-question-clear:hover {
  background: var(--muted);
  color: var(--fg);
}
.gad-question-save:hover {
  background: color-mix(in oklch, var(--primary) 12%, transparent);
}
.gad-question-save.saved {
  animation: gad-save-pop 0.9s ease;
}
@keyframes gad-save-pop {
  0%   { background: color-mix(in oklch, var(--primary) 30%, transparent); transform: translateY(-50%) scale(1); }
  40%  { background: color-mix(in oklch, var(--primary) 30%, transparent); transform: translateY(-50%) scale(1.25); }
  100% { background: transparent; transform: translateY(-50%) scale(1); }
}
.gad-question-clear .icon svg,
.gad-question-save .icon svg { width: 15px; height: 15px; }

/* Вопрос на скриншоте — блок существует только в момент снимка */
.gad-question-on-card {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  font-size: 15px;
  font-weight: 600;
  color: var(--card-fg);
  background: color-mix(in oklch, var(--primary) 7%, transparent);
  border: 1px solid color-mix(in oklch, var(--primary) 25%, transparent);
  border-radius: var(--radius);
  padding: 9px 14px;
  overflow-wrap: break-word;
  margin-bottom: 4px;
}
/* Иконка вопроса (Lucide help-circle) как маска — цвет наследуется через currentColor */
.gad-question-on-card::before,
.gad-hist-q::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  flex-shrink: 0;
  background: currentColor;
  opacity: 0.75;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E") center / contain no-repeat;
  vertical-align: -2px;
  margin-right: 6px;
}

/* ---------- Колода ---------- */
.gad-deck-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 28px 0 8px;
}
.gad-deck {
  position: relative;
  width: 190px;
  height: 280px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: transform 0.15s;
  perspective: 900px;
}
.gad-deck:hover { transform: translateY(-4px); }

/* рубашки (стопка) */
.gad-deck-back,
.gad-deck-top {
  position: absolute;
  inset: 0;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: 0 4px 14px oklch(0 0 0 / 0.45);
  overflow: hidden;
  /* дефолтная рубашка — видна и на светлой теме, пока не выбрана система (зелёная) */
  background: linear-gradient(135deg, #0f2418 0%, #1f5234 55%, #0a1a10 100%);
}
.gad-deck-back:nth-child(1) { transform: translate(-7px, -7px) rotate(-4deg); }
.gad-deck-back:nth-child(2) { transform: translate(5px, -4px) rotate(3deg); }
.gad-deck-back:nth-child(3) { transform: translate(-2px, 4px) rotate(-1deg); }
.gad-deck-top {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  transform-style: preserve-3d;
}
.gad-deck.flipped .gad-deck-top { transform: rotateY(180deg); }
.gad-deck.shuffling .gad-deck-top { animation: gad-shuffle 0.5s ease-in-out; }

/* узор рубашки */
.gad-deck-pat {
  position: absolute;
  inset: 12px;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-radius: 8px;
  background: radial-gradient(circle at center, rgba(255, 255, 255, 0.22) 1px, transparent 1.6px);
  background-size: 14px 14px;
}
.gad-deck-pat::before {
  content: "";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 52px;
  color: rgba(255, 255, 255, 0.85);
  text-shadow: 0 2px 6px oklch(0 0 0 / 0.4);
}

/* глянец поверх */
.gad-deck-gloss {
  position: absolute;
  inset: 0;
  border-radius: 14px;
  pointer-events: none;
  background: linear-gradient(115deg, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0) 38%);
  mix-blend-mode: screen;
}

@keyframes gad-shuffle {
  0%, 100% { transform: rotateY(0); }
  25% { transform: rotateY(-14deg) translateX(-4px); }
  50% { transform: rotateY(8deg) translateX(4px); }
  75% { transform: rotateY(-6deg); }
}

.gad-hint {
  margin: 0;
  color: var(--muted-fg);
  font-size: 14px;
}

/* ---------- Рубашки по системам ---------- */
.gad-back-taro {
  background: linear-gradient(135deg, #0d1f33 0%, #1d4a70 55%, #081426 100%);
}
.gad-back-taro .gad-deck-pat::before { content: "☉"; }

.gad-back-lenorman {
  background: linear-gradient(135deg, #3d0f22 0%, #7a1f42 55%, #2c0a18 100%);
}
.gad-back-lenorman .gad-deck-pat::before { content: "❀"; }

.gad-back-rune {
  background: linear-gradient(135deg, #141c2c 0%, #2c3e5c 55%, #0e1420 100%);
}
.gad-back-rune .gad-deck-pat::before { content: "ᛋ"; }

.gad-back-gipsy {
  background: linear-gradient(135deg, #2a1a05 0%, #6b4a10 55%, #1d1203 100%);
}
.gad-back-gipsy .gad-deck-pat::before { content: "♣"; }

.gad-back-play {
  background: linear-gradient(135deg, #230f0f 0%, #5c1f1f 55%, #180a0a 100%);
}
.gad-back-play .gad-deck-pat::before { content: "♠"; }

.gad-back-oracle {
  background: linear-gradient(135deg, #1a1040 0%, #3b1d6e 50%, #12082e 100%);
}
.gad-back-oracle .gad-deck-pat::before { content: "☾"; }

.gad-back-kniga {
  background: linear-gradient(135deg, #0f2418 0%, #1f5234 55%, #0a1a10 100%);
}
.gad-back-kniga .gad-deck-pat::before { content: "☯"; }

/* ---------- «Случайно»: в тёмной теме без фона, в светлой — цветная рубашка ---------- */
/* тёмная тема — просто узор на фоне страницы */
.gad-deck.gad-deck-random .gad-deck-back,
.gad-deck.gad-deck-random .gad-deck-top {
  background: transparent;
}
/* светлая тема — возвращаем фон рубашки (зелёный, как дефолт) */
html[data-theme="light"] .gad-deck.gad-deck-random .gad-deck-back,
html[data-theme="light"] .gad-deck.gad-deck-random .gad-deck-top {
  background: linear-gradient(135deg, #0f2418 0%, #1f5234 55%, #0a1a10 100%);
}

/* ---------- Результат ---------- */
.gad-result {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 24px;
  align-items: stretch;
  margin-top: 16px;
}
.gad-card-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.gad-card-img {
  width: 100%;
  max-width: 220px;
  border-radius: 12px;
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}
.gad-interpret {
  background: var(--card);
  color: var(--card-fg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px 22px;
  min-width: 0;
}
.gad-interpret-body {
  font-size: 15px;
  line-height: 1.75;
  overflow-wrap: break-word;
}
.gad-interpret-body .bld { font-weight: 700; font-size: 17px; margin-bottom: 6px; }
.gad-interpret-body .bld b { font-weight: 700; }
/* заголовок руны — на 50% крупнее */
.gad-interpret-body .bld .gad-rune-title { font-size: 1.5em; line-height: 1.3; }
.gad-interpret-body fieldset {
  border: none;
  padding: 0;
  margin: 0 0 12px;
  font-weight: 500;
}
.gad-interpret-body p { margin: 0 0 12px; }
.gad-interpret-body center {
  display: block;
  text-align: center;
  font-weight: 700;
  color: var(--primary);
  margin: 16px 0 8px;
}
.gad-interpret-body em { font-style: italic; color: var(--muted-fg); }

.gad-spoiler {
  margin-top: 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  color: var(--card-fg);
  overflow: hidden;
}
.gad-spoiler summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 16px;
  font-weight: 600;
  font-size: 15px;
  color: var(--primary);
  user-select: none;
}
.gad-spoiler summary::-webkit-details-marker { display: none; }
.gad-spoiler summary::marker { content: ''; }
.gad-spoiler-chev {
  display: inline-flex;
  transition: transform 0.2s ease;
  flex-shrink: 0;
}
.gad-spoiler[open] .gad-spoiler-chev { transform: rotate(180deg); }
.gad-spoiler-body {
  padding: 4px 16px 16px;
  border-top: 1px solid var(--border);
  font-size: 15px;
  line-height: 1.75;
  overflow-wrap: break-word;
}
.gad-spoiler-body p { margin: 0 0 12px; }
.gad-spoiler-body u { text-decoration: underline; }
.gad-spoiler-body a { color: var(--primary); text-decoration: underline; }
.gad-spoiler-body a:hover { text-decoration: none; }
.gad-spoiler-img {
  text-align: center;
  margin: 0 0 12px;
}
.gad-spoiler-img img {
  width: 56px;
  height: 56px;
  object-fit: contain;
  border-radius: 50%;
  background: #fff;
  padding: 5px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
  vertical-align: middle;
}

.gad-again-row {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 8px;
}

/* ---------- Адаптив ---------- */
@media (max-width: 860px) {
  .gad-systems { grid-template-columns: repeat(2, 1fr); }
  .gad-result { grid-template-columns: 1fr; }
  .gad-card-wrap { order: -1; }
}
@media (max-width: 480px) {
  .gad-systems { grid-template-columns: repeat(2, 1fr); }
  .gad-deck { width: 160px; height: 236px; }
}


/* ---------- Баннер «Гадание» на главной ---------- */
.gad-landing { margin-top: 8px; }
.gad-landing .card { overflow: hidden; }
.gad-landing-deck {
  position: relative;
  width: 96px;
  height: 134px;
  flex-shrink: 0;
}
.gad-landing-card {
  position: absolute;
  width: 62px;
  height: 92px;
  border-radius: 9px;
  border: 1px solid rgba(255,255,255,0.18);
  box-shadow: 0 6px 18px oklch(0 0 0 / 0.45);
  background:
    radial-gradient(circle at center, rgba(255,255,255,0.22) 1px, transparent 1.6px) 0 0 / 12px 12px,
    linear-gradient(135deg, #1a1040 0%, #3b1d6e 50%, #12082e 100%);
}
.gad-landing-card.c1 { left: 0; top: 8px; transform: rotate(-10deg); }
.gad-landing-card.c2 { left: 18px; top: 0; transform: rotate(4deg); background:
    radial-gradient(circle at center, rgba(255,255,255,0.22) 1px, transparent 1.6px) 0 0 / 12px 12px,
    linear-gradient(135deg, #0d1f33 0%, #1d4a70 55%, #081426 100%); }
.gad-landing-card.c3 { left: 36px; top: 6px; transform: rotate(12deg); background:
    radial-gradient(circle at center, rgba(255,255,255,0.22) 1px, transparent 1.6px) 0 0 / 12px 12px,
    linear-gradient(135deg, #3d0f22 0%, #7a1f42 55%, #2c0a18 100%); }
.gad-landing-card::after {
  content: "☯";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  color: rgba(255,255,255,0.8);
}


/* ---------- История гаданий ---------- */
.gad-history {
  margin-top: 28px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  color: var(--card-fg);
  overflow: hidden;
}
.gad-history-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  cursor: pointer;
  list-style: none;
  font-size: 15px;
  font-weight: 600;
  user-select: none;
}
.gad-history-summary::-webkit-details-marker { display: none; }
.gad-history-summary .icon svg { width: 17px; height: 17px; }
.gad-history-summary::after {
  content: "▾";
  color: var(--muted-fg);
  transition: transform 0.2s;
}
.gad-history[open] .gad-history-summary::after { transform: rotate(180deg); }
.gad-history-count {
  font-size: 12px;
  font-weight: 400;
  color: var(--muted-fg);
  background: var(--muted);
  padding: 2px 10px;
  border-radius: 999px;
}
.gad-history-body {
  border-top: 1px solid var(--border);
  padding: 10px 12px 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.gad-history-empty {
  margin: 4px 6px;
  color: var(--muted-fg);
  font-size: 13px;
}
.gad-hist-row {
  display: grid;
  grid-template-columns: 34px 1fr;
  grid-template-rows: auto auto auto;
  gap: 2px 10px;
  align-items: baseline;
  padding: 9px 12px;
  background: none;
  border: 1px solid transparent;
  border-radius: var(--radius);
  color: var(--card-fg);
  font: inherit;
  font-size: 13.5px;
  text-align: left;
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s;
}
.gad-hist-row:hover {
  background: color-mix(in oklch, var(--primary) 7%, transparent);
  border-color: var(--border);
}
.gad-hist-num {
  grid-row: 1;
  font-weight: 700;
  color: var(--muted-fg);
  font-variant-numeric: tabular-nums;
}
.gad-hist-top {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
  overflow: hidden;
}
.gad-hist-sys {
  color: var(--primary);
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gad-hist-dot { color: var(--muted-fg); }
.gad-hist-time {
  color: var(--muted-fg);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.gad-hist-q {
  grid-column: 2;
  color: var(--fg);
  font-size: 13px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gad-hist-card {
  grid-column: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gad-hist-rev {
  display: inline-block;
  margin-left: 6px;
  font-size: 11px;
  font-weight: 500;
  color: var(--destructive);
  background: color-mix(in oklch, var(--destructive) 10%, transparent);
  border-radius: 999px;
  padding: 1px 8px;
  vertical-align: 1px;
}
.gad-card-sys {
  display: block;
  text-align: center;
  font-size: 13px;
  color: var(--muted-fg);
}

/* Бренд-блок под картинкой карты: прижат к низу интерпретации */
.gad-brand {
  margin-top: auto;
  text-align: center;
  padding: 12px 0 34px;
  border-top: 1px solid var(--border);
}
.gad-brand-name { font-size: 15px; font-weight: 700; color: var(--fg); }
.gad-brand-logo {
  width: 78px;
  height: 94px;
  object-fit: contain;
  display: block;
  margin: 8px auto 6px;
}
.gad-brand-url { font-size: 17px; color: #fff; }

@media (max-width: 620px) {
  .gad-hist-row { grid-template-columns: 24px 1fr; }
  .gad-hist-q, .gad-hist-card { grid-column: 2; }
}

/* ============================================================
   Блок «Не нужно верить в астрологию!» — вращающаяся Земля
   Оригинальный код карточки: https://uiverse.io/GeorgeAdvertising/lazy-eel-99
   ============================================================ */

.belief-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 20px;
  padding: 8px 0;
}
.belief-title {
  margin: 0;
  font-size: clamp(24px, 3.4vw, 34px);
  line-height: 1.25;
}
.belief-sub {
  margin: 0;
  max-width: 720px;
  color: var(--muted-fg);
  line-height: 1.7;
  font-size: 15px;
}

/* Контейнер баннера в центре секции */
.belief-banner {
  position: relative;
  width: 250px;
  height: 250px;
}

/* ---- карточка из оригинала (uiverse.io/GeorgeAdvertising/lazy-eel-99) ---- */
.section-banner {
  height: 250px;
  width: 250px;
  position: relative;
  transition: left 0.3s linear;
  background: url("data:image/jpeg;base64,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");
  background-size: cover;
  background-position: left;
  bottom: 0px;
  border-radius: 0%;
  animation: earthRotate 30s linear 0s infinite;
  box-shadow: 0px 0 20px RGBA(255, 255, 255, 0.2), -5px 0px 8px #c3f4ffb3 inset,
    15px 2px 25px #000 inset, -24px -2px 34px #c3f4ff66 inset,
    250px 0px 44px #00000066 inset, 150px 0px 38px #000000aa inset;
}
@keyframes earthRotate {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 400px 0;
  }
}

.curved-corner-star {
  display: flex;
  position: relative;
}

#curved-corner-bottomleft,
#curved-corner-bottomright,
#curved-corner-topleft,
#curved-corner-topright {
  width: 4px;
  height: 5px;
  overflow: hidden;
  position: relative;
}

#curved-corner-bottomleft:before,
#curved-corner-bottomright:before,
#curved-corner-topleft:before,
#curved-corner-topright:before {
  content: "";
  display: block;
  width: 200%;
  height: 200%;
  position: absolute;
  border-radius: 50%;
}

#curved-corner-bottomleft:before {
  bottom: 0;
  left: 0;
  box-shadow: -5px 5px 0 0 white;
}

#curved-corner-bottomright:before {
  bottom: 0;
  right: 0;
  box-shadow: 5px 5px 0 0 white;
}

#curved-corner-topleft:before {
  top: 0;
  left: 0;
  box-shadow: -5px -5px 0 0 white;
}

#curved-corner-topright:before {
  top: 0;
  right: 0;
  box-shadow: 5px -5px 0 0 white;
}

@keyframes twinkling {
  0%,
  100% {
    opacity: 0.1;
  }
  50% {
    opacity: 1;
  }
}

#star-1 {
  position: absolute;
  left: -20px;
  animation: twinkling 3s infinite;
}

#star-2 {
  position: absolute;
  left: -40px;
  top: 30px;
  animation: twinkling 2s infinite;
}
#star-3 {
  position: absolute;
  left: 350px;
  top: 90px;
  animation: twinkling 4s infinite;
}
#star-4 {
  position: absolute;
  left: 200px;
  top: 290px;
  animation: twinkling 3s infinite;
}
#star-5 {
  position: absolute;
  left: 50px;
  top: 270px;
  animation: twinkling 1.5s infinite;
}

#star-6 {
  position: absolute;
  left: 250px;
  top: -50px;
  animation: twinkling 4s infinite;
}
#star-7 {
  position: absolute;
  left: 290px;
  top: 60px;
  animation: twinkling 2s infinite;
}

/* Мобильная: звёзды не вылезают за край экрана.
   overflow-x: clip — режет по горизонтали БЕЗ создания вертикального скролла внутри блока
   (overflow-x: hidden делает overflow-y auto по спецификации CSS — появлялся скроллбар). */
@media (max-width: 620px) {
  .belief-section {
    overflow-x: hidden; /* запасной вариант для очень старых браузеров */
  }
  @supports (overflow: clip) {
    .belief-section {
      overflow-x: clip;
      overflow-y: visible;
    }
  }
}
/* ============================================================
   Цитаты — крупный текст с декоративными кавычками
   ============================================================ */
.quote-section {
  display: flex;
  justify-content: center;
  padding: 4px 0;
}
.quote-block {
  position: relative;
  margin: 0;
  max-width: 100%;
  text-align: center;
}
.quote-text {
  position: relative;
  display: inline-block;
  margin: 0;
  font-family: 'Noto Serif SC', 'Songti SC', 'SimSun', 'Geist', serif;
  font-weight: 700;
  font-size: clamp(26px, 4.2vw, 44px);
  line-height: 1.35;
  letter-spacing: 0.01em;
  white-space: nowrap; /* 1 строка на десктопе */
}
/* Красивые кавычки-ёлочки */
.quote-text::before,
.quote-text::after {
  position: absolute;
  top: 0.02em;
  font-family: 'Noto Serif SC', 'Songti SC', 'SimSun', 'Geist', serif;
  font-weight: 700;
  color: var(--primary);
  line-height: 1;
  user-select: none;
}
.quote-text::before {
  content: "«";
  left: -0.62em;
}
.quote-text::after {
  content: "»";
  right: -0.62em;
}
/* Лаконичная цитата на главной: без фона — только строка и приглушённые кавычки */
.quote-plain {
  margin: 0;
  font-family: inherit;
  font-weight: 600;
  font-size: clamp(20px, 2.6vw, 27px);
  line-height: 1.4;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
/* Кавычки-ёлочки тихим серым — читается как цитата, не спорит с текстом */
.quote-hero .quote-plain::before,
.quote-hero .quote-plain::after,
.quote-footer .quote-plain::before,
.quote-footer .quote-plain::after {
  color: var(--muted-fg);
  font-weight: 400;
}
.quote-hero .quote-plain::before,
.quote-footer .quote-plain::before { content: "«"; }
.quote-hero .quote-plain::after,
.quote-footer .quote-plain::after { content: "»"; }
/* Звёзды-орнамент сверху и снизу — в существующих отступах, без сдвига макета */
.quote-hero, .quote-footer { position: relative; }
.quote-hero::before,
.quote-hero::after,
.quote-footer::before,
.quote-footer::after {
  content: "✦";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  color: oklch(0.828 0.189 84.429);
  font-size: 13px;
  line-height: 1;
  user-select: none;
}
.quote-hero::before, .quote-footer::before { top: -46px; }
.quote-hero::after, .quote-footer::after { bottom: -46px; }
/* Главная: приглушённый текст — максимально контрастный: белый в тёмной теме, чёрный в светлой */
body[data-page="landing"] { --muted-fg: #000; }
html[data-theme="dark"] body[data-page="landing"] { --muted-fg: #fff; }

/* Быстрый старт: приглушённый текст и подсказки — максимально контрастные: чёрный в светлой теме, белый в тёмной */
body[data-view="start"] { --muted-fg: #000; }
html[data-theme="dark"] body[data-view="start"] { --muted-fg: #fff; }
body[data-view="start"] .tz-note { opacity: 1; }
body[data-view="start"] .footer-note { opacity: 1; }
/* Переносы строк на мобильных */
@media (max-width: 620px) {
  .quote-text {
    white-space: normal;
  }
  .quote-text::before { left: -0.55em; }
  .quote-text::after { right: -0.55em; }
}

/* Монета-донат в углу экрана: подсказка над монетой, клик — донат в новой вкладке */
.donate-coin {
  position: fixed;
  right: var(--edge-gap);
  bottom: 18px;
  z-index: 900;
  width: 56px;
  height: 56px;
  display: block;
  border-radius: 50%;
  text-decoration: none;
  transition: transform 0.15s ease;
}
.donate-coin:hover { transform: scale(1.08); }
.donate-coin-rot {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  /* та же логика, что у прежней монеты: 14s цикл, 4s вращение + 10s пауза */
  animation: coin-spin 14s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}
.donate-coin-front,
.donate-coin-back {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #f7d774, #d4a017 60%, #a97a10);
  border: 3px solid #f0e0a8;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35), inset 0 2px 6px rgba(255, 255, 255, 0.45);
  color: #6b4a00;
  font-size: 26px;
  line-height: 1;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.donate-coin-back { transform: rotateY(180deg); }
.donate-coin-tip {
  position: absolute;
  bottom: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  background: var(--card, #262626);
  color: var(--fg, #fafafa);
  border: 1px solid var(--border, rgba(255, 255, 255, 0.12));
  padding: 6px 10px;
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.3;
  text-align: center;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease;
}
.donate-coin-tip::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-top-color: var(--card, #262626);
}
.donate-coin:hover .donate-coin-tip {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
@media (max-width: 640px) {
  :root { --edge-gap: 12px; }
  .donate-coin { bottom: 12px; width: 48px; height: 48px; font-size: 22px; }
}

/* ===== Быстрый старт: шаги мастера ===== */
.start-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--primary);
  color: #000;
  font-size: 15px;
  font-weight: 700;
  margin-right: 10px;
  vertical-align: middle;
}
.start-status { margin-top: 4px; }
.start-status.ok-box, .start-status.no-box { margin-top: 8px; }
.start-howto-title { font-size: 1.05rem; font-weight: 600; margin: 4px 0 8px; }
.start-howto { margin: 0 0 16px 20px; line-height: 1.7; }
.start-prompt {
  background: var(--input-bg, rgba(255, 255, 255, 0.04));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px;
  font-size: 13px;
  line-height: 1.6;
  white-space: pre-wrap;
  margin: 0 0 12px;
  max-height: 320px;
  overflow: auto;
}
.start-prompt code, .inline-code { font-family: var(--font-mono, monospace); }

/* Мобильная адаптация страницы «Быстрый старт»: убираем тройные рамки и паддинги,
   чтобы на узком экране текст занимал больше места по ширине */
@media (max-width: 640px) {
  body[data-view="start"] .container { padding-left: 14px; padding-right: 14px; }
  body[data-view="start"] .main-content { padding-top: 20px; }

  body[data-view="start"] .card.start-step { padding: 0; }

  body[data-view="start"] .card.start-step > .card-header {
    padding: 14px 16px 10px;
    border-radius: var(--radius) var(--radius) 0 0;
  }

  body[data-view="start"] .card.start-step > .card-body { padding: 16px; }

  /* Вложенные секции формы (шаг 2) — без второй рамки и лишних паддингов */
  body[data-view="start"] .card.start-step > .card-body .card.fc-section {
    padding: 0;
    border: 0;
    background: none;
    box-shadow: none;
    border-radius: 0;
    border-bottom: 1px solid var(--border);
    margin-bottom: 0;
  }

  body[data-view="start"] .card.start-step > .card-body .card.fc-section:last-child {
    border-bottom: 0;
  }

  body[data-view="start"] .card.start-step .card.fc-section > .fc-head {
    padding: 10px 0;
    border-left: 0;
    border-bottom: 0;
  }

  body[data-view="start"] .card.start-step .card.fc-section > .card-body {
    padding: 10px 0 16px;
  }

  .form-group input:not([type="radio"]):not([type="checkbox"]),
  .form-group select { width: 100%; min-width: 0; }
  .datetime-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mat-dataopts { justify-content: flex-start; }
  .mat-dataopts-label { white-space: normal; }
  .mat-level { min-width: 0; }
}

/* ===== Отзывы: блок на «Обратной связи» и слайдер на главной ===== */
#reviews-list { display: flex; flex-direction: column; gap: 16px; }
#reviews-list .card { margin-bottom: 0; }
.reviews-cta-wrap { display: flex; justify-content: center; margin: 16px 0; }

/* Карточка отзыва */
.review-card { text-align: left; }
.review-text { font-size: 0.95rem; line-height: 1.7; margin: 0 0 14px; }
.review-author { display: flex; align-items: center; gap: 10px; }
.review-avatar {
  width: 38px; height: 38px; flex: none; border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 600; background: var(--muted); color: var(--fg); text-transform: uppercase;
}
.review-name { display: block; font-size: 0.9rem; font-weight: 600; }
.review-meta { display: block; font-size: 0.75rem; color: var(--muted-fg); margin-top: 2px; }

/* Карточка-приглашение (заметная, пока отзывов нет) */
.review-invite {
  margin-bottom: 0;
  border: 1px dashed color-mix(in oklch, var(--fg) 30%, transparent);
  background:
    radial-gradient(120% 100% at 0% 0%, color-mix(in oklch, var(--fg) 7%, transparent), transparent 55%),
    var(--card);
}
.review-invite-icon {
  width: 44px; height: 44px; border-radius: 999px; margin-bottom: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--muted); color: var(--fg);
}
.review-invite-icon svg { width: 20px; height: 20px; }
.review-invite-title { font-size: 1.05rem; font-weight: 600; margin: 0 0 8px; }
.review-invite-text { color: var(--muted-fg); font-size: 0.9rem; line-height: 1.7; margin: 0; }
.review-questions { margin: 12px 0 0; padding-left: 20px; font-size: 0.875rem; line-height: 1.8; }
.review-questions li + li { margin-top: 2px; }
.review-cta { margin-top: 16px; }

/* Слайдер: на десктопе стрелки по бокам, на мобильных — снизу, слева и справа */
.reviews-slider { position: relative; text-align: left; }
.reviews-viewport { overflow: hidden; }
.reviews-track { display: flex; transition: transform 0.35s ease; }
.reviews-track > .review-card { flex: 0 0 100%; min-width: 0; display: flex; }
.reviews-track > .review-card > .card { flex: 1; margin-bottom: 0; }
.reviews-nav { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 14px; }
.reviews-dots { display: flex; align-items: center; gap: 6px; }
.reviews-dot {
  width: 8px; height: 8px; padding: 0; border: 0; border-radius: 999px;
  background: var(--muted); cursor: pointer; transition: width 0.25s, background 0.25s;
}
.reviews-dot.active { width: 22px; background: var(--primary); }
.reviews-arrow {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; padding: 0; border-radius: 999px;
  border: 1px solid var(--border); background: var(--card); color: var(--fg); cursor: pointer;
}
.reviews-arrow:hover { border-color: var(--fg); }
.reviews-arrow svg { width: 18px; height: 18px; }
.reviews-slider.is-single .reviews-nav { display: none; }
@media (min-width: 641px) {
  .reviews-arrow { position: absolute; top: calc(50% - 30px); transform: translateY(-50%); z-index: 2; }
  .reviews-arrow[data-review-prev] { left: -8px; }
  .reviews-arrow[data-review-next] { right: -8px; }
}
@media (max-width: 640px) {
  .reviews-nav { justify-content: space-between; }
}

/* ===== Заметный разделитель секций (страница «Обратная связь») ===== */
.section-divider {
  border: 0;
  height: 2px;
  margin: 32px 0 26px;
  border-radius: 2px;
  background: linear-gradient(90deg, transparent,
    color-mix(in oklch, var(--fg) 30%, transparent) 12%,
    color-mix(in oklch, var(--fg) 30%, transparent) 88%,
    transparent);
}

