:root {
  --bg: #fff; --text: #3d4144; --muted: #7a8288; --border: #dde1e4; --link: #26385f; --danger: #d91a1a;
}
html[data-theme="dark"] {
  --bg: #1a1c1e; --text: #d0d3d6; --muted: #9aa1a7; --border: #3a3e42; --link: #8fb3f0; --danger: #ff6b6b;
}

*, *::before, *::after { box-sizing: border-box; }
html { font-size: 17px; }
body {
  margin: 0; background: var(--bg); color: var(--text); line-height: 1.55;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
a { color: var(--link); }

.site-header {
  display: flex; align-items: center; justify-content: space-between;
  max-width: 62rem; margin: 0 auto; padding: 0.9rem 1rem; border-bottom: 1px solid var(--border);
}
.site-header__title { color: var(--text); font-weight: 700; text-decoration: none; }
.site-header__theme {
  border: 0; background: none; color: var(--muted); font-size: 1.2rem; cursor: pointer; line-height: 1;
}
.site-header__theme:hover { color: var(--text); }

.page { max-width: 62rem; margin: 0 auto; padding: 1rem; }

/* embedded in another site: no own header, tighter padding */
.embed .site-header { display: none; }
.embed .page { padding: 0.5rem 0.25rem; }
.embed .site-footer { margin-top: 1rem; }
.page h1, .page h2 { line-height: 1.2; }

.site-footer {
  max-width: 62rem; margin: 2rem auto 0; padding: 1rem; border-top: 1px solid var(--border);
  font-size: 0.8rem; color: var(--muted);
}
.site-footer p { margin: 0.3rem 0; }

.credits table { font-size: 0.8em; border-collapse: collapse; width: 100%; }
.credits th, .credits td { text-align: left; padding: 0.4em 0.6em; border-bottom: 1px solid var(--border); vertical-align: top; }

/* password lock (assets/js/site-lock.js, only used when a page sets `protect:`) */
.site-lock__form { max-width: 24em; margin: 2em 0; }
.site-lock__msg { margin: 0 0 0.6em; font-size: 0.85rem; }
.site-lock__row { display: flex; flex-wrap: wrap; gap: 0.5em; }
.site-lock__row input {
  width: 100%; margin: 0; padding: 0.55em 2.4em 0.55em 0.7em; font: inherit;
  border: 1px solid var(--border); border-radius: 0.4em; background: var(--bg); color: var(--text);
}
.site-lock__row .btn, .site-lock__cancel {
  padding: 0.5em 1em; font: inherit; font-size: 0.85rem; border: 1px solid var(--border); border-radius: 0.4em;
  background: transparent; color: inherit; cursor: pointer;
}
.site-lock__field { position: relative; flex: 1 1 10em; }
.site-lock__eye {
  position: absolute; top: 0; right: 0; bottom: 0; display: flex; align-items: center; padding: 0 0.6em;
  border: 0; background: none; color: var(--muted); cursor: pointer; line-height: 0;
}
.site-lock__error { min-height: 1.2em; margin: 0.4em 0 0; font-size: 0.8rem; color: var(--danger); }
