/* Палитры — цветовые темы sqliteonline (css/color): 0 — светлая, 10 — тёмная. */
:root {
  --bg: #E9ECEF;           /* bgc-d */
  --panel: #F8F9FA;        /* bgc-e */
  --text: #647684;         /* color-a */
  --muted: #92a2ab;        /* menu-ct */
  --line: #DEE2E6;         /* bgc-c */
  --accent: #007f91;       /* color-c */
  --accent-hover: #2A6E88; /* cm-builtin */
  --accent-soft: #E9ECEF;  /* bgc-d */
  --accent-2: #44a0b6;     /* cm-variable */
  --danger: #ca4334;       /* color-d */
  --btn-text: #F8F9FA;     /* hover-el-color */
  --radius: 12px;
  --shadow: 0 2px 2px 0 rgba(150,150,150,0.14), 0 3px 1px -2px rgba(150,150,150,0.2), 0 1px 5px 0 rgba(150,150,150,0.12); /* bgc-x */
}
/* Ручной выбор темы: <html data-theme="dark"> (js/localStorage). Тот же
   блок продублирован ниже для системной тёмной без ручного выбора. */
:root[data-theme="dark"] {
  --bg: #18191E;           /* bgc-e */
  --panel: #1C1D23;        /* bgc-d */
  --text: #c7cfcf;         /* color-a */
  --muted: #848c94;        /* color-b */
  --line: #3c3f41;         /* bgc-a */
  --accent: #CC7832;       /* bgr-a */
  --accent-hover: #FFC66D; /* color-c */
  --accent-soft: #202228;  /* bgc-c */
  --accent-2: #FFC66D;     /* color-c */
  --danger: #c24c57;       /* color-g */
  --btn-text: #18191E;     /* bgc-e: тёмный текст на оранжевом/жёлтом */
  --shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.2), 0 1px 5px 0 rgba(0,0,0,0.12); /* bgc-x */
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #18191E;
    --panel: #1C1D23;
    --text: #c7cfcf;
    --muted: #848c94;
    --line: #3c3f41;
    --accent: #CC7832;
    --accent-hover: #FFC66D;
    --accent-soft: #202228;
    --accent-2: #FFC66D;
    --danger: #c24c57;
    --btn-text: #18191E;
    --shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.2), 0 1px 5px 0 rgba(0,0,0,0.12);
  }
}

* { box-sizing: border-box }
body {
  margin: 0;
  font: 16px/1.65 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color: var(--text);
  background: var(--bg);
}

h1 { font-size: 1.7rem; line-height: 1.25; letter-spacing: -.015em; margin: 1em 0 .5em }
h2 { font-size: 1.3rem; letter-spacing: -.01em; margin: 2.4em 0 .5em }
h3 { font-size: 1.02rem; margin: 0 0 .35em }
h1:first-child, .toolbar h1 { margin-top: .3em }
p, ol, ul { margin: .7em 0 }
a { color: var(--accent); text-decoration: none }
a:hover { text-decoration: underline }

code {
  font: .875em/1.5 ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
  background: var(--accent-soft);
  padding: .12em .4em;
  border-radius: 5px;
}
pre {
  font: .82rem/1.55 ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px 14px;
  overflow-x: auto;
}

/* Capitalize slugs used as headings/links (getting-started → Getting-started) */
.cap { display: inline-block }
.cap::first-letter { text-transform: uppercase }

/* ── Public site ─────────────────────────────── */

.site-header {
  position: sticky; top: 0; z-index: 10;
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; flex-wrap: wrap;
  padding: 12px 24px;
  background: var(--panel);
  background: color-mix(in srgb, var(--panel) 88%, transparent);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
}
.brand { font-weight: 800; font-size: 1.05rem; color: var(--text); letter-spacing: -.02em }
.brand span { color: var(--accent) }
.brand:hover { text-decoration: none }
.site-header nav { display: flex; gap: 18px; align-items: center; flex-wrap: wrap }
.site-header nav a { color: var(--muted); font-weight: 500 }
.site-header nav a:hover { color: var(--accent); text-decoration: none }
.site-header nav a.btn, .site-header nav a.btn:hover { color: var(--btn-text) }

.wrap { max-width: 860px; margin: 28px auto 48px; padding: 0 20px }

.site-footer {
  text-align: center;
  color: var(--muted);
  padding: 28px 16px;
  font-size: .85rem;
  border-top: 1px solid var(--line);
}

.crumbs { font-size: .85rem; color: var(--muted); margin: .4em 0 1.4em }
.crumbs b { color: var(--text); font-weight: 600 }

/* Переключатель темы (System / Light / Dark) */
.theme-pick {
  font: inherit; font-size: .82rem;
  color: var(--muted);
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 3px 8px;
  cursor: pointer;
}

/* Схема «как это работает» на лендинге */
.flow {
  display: flex; align-items: stretch; justify-content: center;
  gap: 10px; flex-wrap: wrap;
  margin: 26px auto 20px;
}
.flow-box {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 12px 18px;
  min-width: 180px;
  text-align: center;
}
.flow-box b { display: block; font-size: .95rem; letter-spacing: -.01em }
.flow-box b code { background: none; padding: 0; font-size: 1em }
.flow-box span { display: block; font-size: .78rem; color: var(--muted); margin-top: 2px }
.flow-arrow { align-self: center; color: var(--accent); font-weight: 700; font-size: 1.2rem }

/* ── Landing ─────────────────────────────────── */

.hero { padding: 40px 0 8px; text-align: center }
.eyebrow {
  display: inline-block;
  font-size: .78rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--accent);
  background: var(--accent-soft);
  border-radius: 99px;
  padding: 4px 14px;
  margin: 0 0 14px;
}
.hero h1 {
  font-size: clamp(1.9rem, 5vw, 2.7rem);
  letter-spacing: -.03em;
  margin: 0 auto .4em;
  max-width: 21em;
}
.hero h1 em {
  font-style: normal;
  background: linear-gradient(120deg, var(--accent), var(--accent-2));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.hero h1 code { font-size: .85em }
.lead { font-size: 1.08rem; color: var(--muted); max-width: 42em; margin: 0 auto }
.hero-actions { display: flex; gap: 12px; justify-content: center; margin: 26px 0 20px }
.chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 0 }
.chips span {
  font-size: .8rem; font-weight: 500;
  color: var(--muted);
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 99px;
  padding: 3px 12px;
  white-space: nowrap;
}

.features {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 14px;
  margin: 1.2em 0;
}
.feature {
  display: block;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 18px 20px;
  color: var(--text);
  transition: border-color .15s, transform .15s;
}
.feature:hover { border-color: var(--accent); text-decoration: none; transform: translateY(-2px) }
.feature h3 { color: var(--accent) }
.feature p { margin: 0; font-size: .9rem; color: var(--muted) }

/* ── Components ──────────────────────────────── */

.card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 18px 22px;
  margin: 0 0 16px;
}
.card h1, .card h2 { margin-top: .2em }
a.card { color: var(--text) }
a.card:hover { border-color: var(--accent); text-decoration: none }
.block { display: block; font-weight: 600 }
.cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
  margin: 1em 0;
}
.cards .card { margin: 0 }
.cards > .block { text-align: center; padding: 26px 16px }

.group-card { display: flex; flex-direction: column; padding: 20px 22px }
.group-card .block { font-size: 1.05rem }
.group-card p { flex: 1; font-size: .9rem; margin: .4em 0 .8em }
.go { color: var(--accent); font-weight: 600; font-size: .9rem }

.doc-list { display: flex; flex-direction: column; gap: 10px; margin: 1.2em 0 }
.doc-link {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  margin: 0; padding: 14px 20px;
  font-weight: 600;
}

.center-card { max-width: 460px; margin: 10vh auto 0; text-align: center }
.form-card { max-width: 560px }

.demo { padding: 16px 20px }
.demo-head {
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; flex-wrap: wrap;
}
.demo-head code { font-size: .82rem }
.demo p { font-size: .88rem; margin: .5em 0 0 }
.demo-out { margin: 12px 0 4px; max-height: 340px; overflow: auto }

.empty, .muted { color: var(--muted) }
.muted { font-weight: 400 }
.error { color: var(--danger); font-weight: 500 }

.btn {
  display: inline-block;
  padding: 9px 18px;
  background: var(--accent);
  color: var(--btn-text);
  border: none;
  border-radius: 8px;
  font: inherit; font-weight: 600; font-size: .95rem;
  cursor: pointer;
  text-decoration: none;
  transition: background .15s;
}
.btn:hover { background: var(--accent-hover); text-decoration: none; color: var(--btn-text) }
.btn.small { padding: 5px 14px; font-size: .85rem }
.btn.wide { width: 100% }
.btn.ghost { background: var(--accent-soft); color: var(--accent) }
.btn.ghost:hover { background: var(--line) }
.linklike {
  background: none; border: none; padding: 0;
  color: var(--muted); cursor: pointer; font: inherit;
  text-align: left;
}
.linklike:hover { color: var(--accent) }

.toolbar {
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; flex-wrap: wrap;
  margin-bottom: 10px;
}

/* Data tables: the .table class (admin) and bare <table> inside articles,
   whose HTML comes from the docs table. */
.table-scroll { overflow-x: auto; margin: .8em 0 1.4em }
.table, .article table {
  width: 100%;
  border-collapse: collapse;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow: hidden;
  margin: .8em 0 1.4em;
}
.table-scroll .table { margin: 0 }
.table th, .table td, .article th, .article td {
  padding: 9px 14px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}
.table th, .article th {
  font-size: .78rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .05em;
  color: var(--muted);
  background: var(--bg);
  background: color-mix(in srgb, var(--bg) 55%, var(--panel));
}
.table tr:last-child td, .article tr:last-child td { border-bottom: none }
.table tbody tr:hover td { background: var(--accent-soft) }
.row-actions { white-space: nowrap; text-align: right }
.row-actions a { font-size: 1.05rem }
.row-actions form { display: inline; margin-left: 12px }

.article { padding: 26px 30px }
.article h1 { margin: 0 0 .6em }
.article table { box-shadow: none }

form label { display: block; margin: 14px 0 5px; font-weight: 600; font-size: .92rem }
form input, form textarea, form select {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font: inherit;
  color: var(--text);
  background: var(--bg);
}
form input:focus, form textarea:focus, form select:focus {
  outline: 2px solid var(--accent);
  outline-offset: -1px;
  border-color: var(--accent);
}
.check { display: flex; align-items: center; gap: 8px }
.check input { width: auto }
.hp { display: none }

details summary { cursor: pointer; font-weight: 600 }
details[open] summary { margin-bottom: 8px }

/* ── Admin (CMS) ─────────────────────────────── */

.cms-body {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  min-height: 100vh;
}
.cms-side {
  position: sticky; top: 0;
  height: 100vh;
  display: flex; flex-direction: column; gap: 4px;
  padding: 18px 14px;
  background: var(--panel);
  border-right: 1px solid var(--line);
}
.cms-side .brand { padding: 4px 10px; margin-bottom: 12px; font-size: 1.05rem }
.cms-side nav { display: flex; flex-direction: column; gap: 2px; flex: 1 }
.cms-side nav a, .cms-side .side-link {
  padding: 8px 10px;
  border-radius: 8px;
  color: var(--muted);
  font-weight: 500;
  white-space: nowrap;
}
.cms-side nav a:hover, .cms-side .side-link:hover {
  background: var(--accent-soft); color: var(--accent); text-decoration: none;
}
.cms-side nav a.active { background: var(--accent-soft); color: var(--accent) }
.cms-side .linklike { padding: 8px 10px }

.cms-main { padding: 22px 32px 48px; max-width: 960px; width: 100% }

.auth-wrap { max-width: 400px; margin: 10vh auto 0; padding: 0 18px }
.auth-wrap h1 { text-align: center }

/* ── Mobile ──────────────────────────────────── */

@media (max-width: 720px) {
  .wrap { margin-top: 14px }
  .hero { padding-top: 18px }
  .hero-actions { flex-wrap: wrap }
  .cms-body { grid-template-columns: 1fr }
  .cms-side {
    position: sticky; top: 0; z-index: 10;
    height: auto;
    flex-direction: row; align-items: center;
    overflow-x: auto;
    padding: 8px 12px;
    border-right: none;
    border-bottom: 1px solid var(--line);
  }
  .cms-side .brand { margin: 0 6px 0 0 }
  .cms-side nav { flex-direction: row; flex: 1 }
  .cms-main { padding: 16px 16px 40px }
  .auth-wrap { margin-top: 6vh }
}
