/* ==========================================================================
   AkademiaSSH — motyw Pelican
   Ciemny, prosty, oparty na stylach. Zero zewnętrznych zasobów.
   --------------------------------------------------------------------------
   1. Czcionki            6. Treść wpisu (.prose)
   2. Zmienne             7. Kod, terminal, klawisze
   3. Baza                8. Admonicje (!!! note)
   4. Nagłówek i stopka   9. Kolorowanie składni (Pygments)
   5. Listy wpisów       10. Drobiazgi i responsywność
   ========================================================================== */


/* 1. Czcionki (SIL OFL 1.1, licencje w static/fonts/) ===================== */

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("../fonts/inter-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("../fonts/inter-latin-wght-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url("../fonts/inter-latin-ext-wght-italic.woff2") format("woff2");
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Inter";
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url("../fonts/inter-latin-wght-italic.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 100 800;
  src: url("../fonts/jetbrains-mono-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-display: swap;
  font-weight: 100 800;
  src: url("../fonts/jetbrains-mono-latin-wght-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: italic;
  font-display: swap;
  font-weight: 100 800;
  src: url("../fonts/jetbrains-mono-latin-ext-wght-italic.woff2") format("woff2");
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: italic;
  font-display: swap;
  font-weight: 100 800;
  src: url("../fonts/jetbrains-mono-latin-wght-italic.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* 2. Zmienne ============================================================== */

:root {
  /* Tła — od najgłębszego do najjaśniejszego */
  --bg:          #0a0e13;
  --surface:     #0f151c;
  --surface-2:   #151d26;
  --surface-3:   #1c2631;
  --border:      #1f2a36;
  --border-strong: #2c3a49;

  /* Tekst */
  --text:        #cfd8e2;
  --text-strong: #f3f7fb;
  --muted:       #8796a6;
  --faint:       #5d6b7a;

  /* Akcent z logo */
  --accent:      #00abff;
  --accent-hi:   #4cc4ff;
  --accent-soft: rgba(0, 171, 255, .12);
  --accent-line: rgba(0, 171, 255, .35);

  /* Kolory stanów (admonicje) */
  --ok:     #3ddc97;
  --warn:   #ffb547;
  --danger: #ff5f6d;

  /* Typografia */
  --font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  /* Układ */
  --measure: 46rem;
  --gutter: clamp(1rem, 4vw, 2rem);
  --radius: 8px;
  --radius-sm: 5px;
}


/* 3. Baza ================================================================= */

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scrollbar-color: var(--border-strong) var(--bg);
}

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-sans);
  font-size: 1.0625rem;
  line-height: 1.7;
  font-feature-settings: "cv11", "ss01";  /* Inter: prostsze „a” i cyfry */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: var(--accent);
  text-decoration-color: var(--accent-line);
  text-underline-offset: .2em;
  text-decoration-thickness: 1px;
  transition: color .15s, text-decoration-color .15s;
}
a:hover { color: var(--accent-hi); text-decoration-color: currentColor; }

:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 2px;
}

::selection { background: var(--accent); color: #001018; }

img, svg, video { max-width: 100%; height: auto; }

.wrap {
  width: 100%;
  max-width: calc(var(--measure) + 2 * var(--gutter));
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: absolute;
  left: 1rem;
  top: -3rem;
  padding: .5rem .75rem;
  background: var(--accent);
  color: #001018;
  font-weight: 600;
  border-radius: var(--radius-sm);
  z-index: 10;
}
.skip-link:focus { top: 1rem; }


/* 4. Nagłówek i stopka ==================================================== */

.site-header { border-bottom: 1px solid var(--border); }

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 2rem;
  flex-wrap: wrap;
  padding-block: 1.4rem;
}

.site-logo { display: block; margin: 0; line-height: 0; font-size: 1rem; }  /* na stronie głównej to <h1> */
.site-logo a { display: block; }
.site-logo img { width: 240px; height: auto; }

.site-nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-nav a {
  color: var(--muted);
  text-decoration: none;
  font-size: .9375rem;
  font-weight: 500;
}
.site-nav a:hover,
.site-nav a[aria-current="page"] { color: var(--text-strong); }
.site-nav a[aria-current="page"] {
  text-decoration: underline;
  text-decoration-color: var(--accent);
  text-decoration-thickness: 2px;
  text-underline-offset: .45em;
}

.site-main {
  flex: 1;
  padding-block: clamp(2rem, 6vw, 3.5rem) 4rem;
}

.site-footer {
  border-top: 1px solid var(--border);
  color: var(--faint);
  font-size: .875rem;
}
.site-footer__inner {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .5rem 2rem;
  padding-block: 1.5rem;
}
.site-footer p { margin: 0; }
.site-footer__built { font-family: var(--font-mono); font-size: .8125rem; }

.prompt-sign { color: var(--accent); font-family: var(--font-mono); }


/* 5. Listy wpisów ========================================================= */

/* Wstęp na stronie głównej — linia „terminala” z migającym kursorem */
.intro { margin-bottom: 2.5rem; }
.intro__line {
  margin: 0;
  font-family: var(--font-mono);
  font-size: .9375rem;
  color: var(--muted);
}
.cursor {
  display: inline-block;
  width: .6em;
  height: 1.15em;
  margin-left: .2em;
  vertical-align: text-bottom;
  background: var(--accent);
  animation: blink 1.1s steps(1) infinite;
}
@keyframes blink { 50% { opacity: 0; } }

.post-list { list-style: none; margin: 0; padding: 0; }

.post-card {
  padding-block: 1.75rem;
  border-top: 1px solid var(--border);
}
.post-card:first-child { border-top: 0; padding-top: 0; }

.post-date {
  display: block;
  font-family: var(--font-mono);
  font-size: .8125rem;
  color: var(--faint);
  letter-spacing: .02em;
}

.post-card__title {
  margin: .3rem 0 .5rem;
  font-size: 1.5rem;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: -.02em;
}
.post-card__title a { color: var(--text-strong); text-decoration: none; }
.post-card__title a:hover { color: var(--accent); }

.post-card__summary { color: var(--muted); }
.post-card__summary p { margin: 0; }
.post-card__summary p + p { margin-top: .75em; }

/* Tagi */
.tag-list, .tag-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
}
.tag {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  padding: .15em .6em;
  font-family: var(--font-mono);
  font-size: .8125rem;
  color: var(--muted);
  text-decoration: none;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 999px;
}
.tag::before { content: "#"; color: var(--accent); }
.tag:hover { color: var(--text-strong); border-color: var(--accent-line); }
.tag__count { color: var(--faint); font-size: .75rem; }
.tag-cloud { gap: .65rem; margin-top: 0; }
.tag-cloud .tag { font-size: .875rem; padding: .3em .8em; }

/* Nagłówek stron list (archiwum, tagi) */
.page-header { margin-bottom: 2.5rem; }
.page-header h1 {
  margin: 0;
  color: var(--text-strong);
  font-size: clamp(1.9rem, 5vw, 2.4rem);
  letter-spacing: -.025em;
  line-height: 1.2;
}
.page-header__meta, .page-header__kicker {
  margin: .25rem 0 0;
  font-family: var(--font-mono);
  font-size: .8125rem;
  color: var(--faint);
}
.page-header__kicker { margin: 0 0 .25rem; }
.page-header__kicker a { color: var(--muted); text-decoration: none; }
.page-header__kicker a::after { content: " /"; color: var(--faint); }
.tag-hash { color: var(--accent); margin-right: .05em; }

/* Archiwum */
.archive-year { margin-top: 2.5rem; }
.archive-year:first-of-type { margin-top: 0; }
.archive-year__label {
  margin: 0 0 .5rem;
  font-family: var(--font-mono);
  font-size: .875rem;
  font-weight: 600;
  color: var(--accent);
}
.post-rows { list-style: none; margin: 0; padding: 0; }
.post-rows li {
  display: grid;
  grid-template-columns: 4.5rem 1fr;
  gap: 1rem;
  padding-block: .55rem;
  border-bottom: 1px solid var(--border);
}
.post-rows time {
  font-family: var(--font-mono);
  font-size: .8125rem;
  color: var(--faint);
  padding-top: .2em;
}
.post-rows a { color: var(--text); text-decoration: none; }
.post-rows a:hover { color: var(--accent); }

/* Stronicowanie */
.pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
  font-family: var(--font-mono);
  font-size: .875rem;
}
.pagination__link { text-decoration: none; }
.pagination__link.is-disabled { color: var(--faint); opacity: .5; }
.pagination__status { color: var(--faint); }

.empty { color: var(--muted); }


/* 6. Treść wpisu ========================================================== */

.post__header { margin-bottom: 2.25rem; }
.post__meta { margin: 0 0 .5rem; }
.post__title {
  margin: 0;
  color: var(--text-strong);
  font-size: clamp(1.9rem, 5.5vw, 2.6rem);
  line-height: 1.18;
  font-weight: 750;
  letter-spacing: -.028em;
  text-wrap: balance;
}

.post__footer {
  margin-top: 3rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
}
.post__footer .tag-list { margin: 0; }

.post-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 2rem;
}
.post-nav__item {
  display: flex;
  flex-direction: column;
  gap: .2rem;
  padding: 1rem 1.1rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  text-decoration: none;
}
.post-nav__item:hover { border-color: var(--accent-line); }
.post-nav__item--next { grid-column: 2; text-align: right; }
.post-nav__label { font-family: var(--font-mono); font-size: .75rem; color: var(--faint); }
.post-nav__title { color: var(--text-strong); font-weight: 600; line-height: 1.4; }

/* Typografia treści */
.prose > :first-child { margin-top: 0; }
.prose p, .prose ul, .prose ol, .prose dl, .prose blockquote,
.prose table, .prose figure, .prose .highlight, .prose .admonition {
  margin-block: 0 1.35rem;
}

.prose h2, .prose h3, .prose h4 {
  color: var(--text-strong);
  line-height: 1.3;
  letter-spacing: -.018em;
  scroll-margin-top: 1.5rem;
}
.prose h2 { font-size: 1.55rem; margin: 3rem 0 1rem; }
.prose h3 { font-size: 1.22rem; margin: 2.25rem 0 .75rem; }
.prose h4 { font-size: 1.05rem; margin: 1.75rem 0 .5rem; }

/* Krótki akcent przed nagłówkami sekcji */
.prose h2::before {
  content: "";
  display: block;
  width: 2rem;
  height: 2px;
  margin-bottom: .9rem;
  background: var(--accent);
}

.prose strong { color: var(--text-strong); font-weight: 650; }

.prose ul, .prose ol { padding-left: 1.4rem; }
.prose li { margin-block: .3rem; }
.prose li::marker { color: var(--faint); }
.prose ul > li::marker { content: "› "; color: var(--accent); font-family: var(--font-mono); }
.prose li > p { margin-bottom: .5rem; }

.prose blockquote {
  padding: .1rem 0 .1rem 1.25rem;
  margin-left: 0;
  border-left: 2px solid var(--border-strong);
  color: var(--muted);
  font-style: italic;
}

.prose hr {
  margin: 3rem 0;
  border: 0;
  border-top: 1px solid var(--border);
}

.prose img { display: block; border-radius: var(--radius); border: 1px solid var(--border); }
.prose figcaption { margin-top: .5rem; font-size: .875rem; color: var(--faint); text-align: center; }

.prose table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  font-size: .9375rem;
}
.prose th, .prose td {
  padding: .55rem .9rem;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: top;
}
.prose th {
  color: var(--text-strong);
  font-weight: 600;
  border-bottom-color: var(--border-strong);
  white-space: nowrap;
}

.prose dt { color: var(--text-strong); font-weight: 600; }
.prose dd { margin: 0 0 .75rem 1.25rem; }

/* Przypisy (markdown extra) */
.prose .footnote { margin-top: 3rem; font-size: .875rem; color: var(--muted); }
.prose .footnote hr { margin: 0 0 1rem; width: 4rem; }
.prose .footnote-ref a { text-decoration: none; font-family: var(--font-mono); font-size: .8em; }

/* Kotwice nagłówków (gdy włączone toc z permalink) */
.prose .headerlink {
  margin-left: .4rem;
  color: var(--faint);
  text-decoration: none;
  opacity: 0;
  transition: opacity .15s;
}
.prose :is(h2, h3, h4):hover .headerlink,
.prose .headerlink:focus { opacity: 1; }


/* 7. Kod, terminal, klawisze ============================================= */

code, kbd, samp, pre { font-family: var(--font-mono); font-variant-ligatures: none; }

/* Kod w linii: `kod` */
:not(pre) > code {
  padding: .12em .38em;
  font-size: .86em;
  color: var(--text-strong);
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 4px;
  overflow-wrap: anywhere;
}

/* Komenda w linii: `ls -la`{.cmd} — dostaje znak zachęty, którego nie da się skopiować */
:not(pre) > code.cmd::before {
  content: "$ ";
  color: var(--accent);
}
:not(pre) > code.cmd.root::before { content: "# "; color: var(--danger); }

/* Ścieżka / nazwa pliku w linii: `/etc/ssh/sshd_config`{.path} */
:not(pre) > code.path {
  color: var(--accent-hi);
  background: transparent;
  border-style: dashed;
}

/* Blok kodu */
.highlight {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}
.highlight pre {
  margin: 0;
  padding: 1rem 1.15rem;
  overflow-x: auto;
  font-size: .875rem;
  line-height: 1.65;
  color: var(--text-strong);
  tab-size: 4;
}
.highlight pre code { font-size: inherit; }

/* Wyróżnione linie: hl_lines="2 3" */
.highlight .hll {
  display: block;
  margin-inline: -1.15rem;
  padding-inline: calc(1.15rem - 2px) 1.15rem;
  background: var(--accent-soft);
  border-left: 2px solid var(--accent);
}

/* Pasek tytułu: nazwa pliku ``` { .ini filename="/etc/ssh/sshd_config" } ``` */
.highlight > .filename,
.highlight th.filename {
  display: block;
  padding: .5rem 1.15rem;
  font-family: var(--font-mono);
  font-size: .75rem;
  font-weight: 500;
  color: var(--muted);
  text-align: left;
  background: var(--surface-2);
  border-bottom: 1px solid var(--border);
}
.highlight th.filename { display: table-cell; }
.highlight th.filename .filename { padding: 0; background: none; border: 0; }

/*  Sesja terminala. Rozpoznawana automatycznie: każdy blok ```console
    (albo ```shell-session), w którym Pygments znajdzie znak zachęty $ / #.
    Dostaje pasek „terminal” z ikoną z logo, a znak zachęty
    nie jest kopiowany razem z komendą. */
.highlight:has(.gp) { background: #070a0e; border-color: var(--border-strong); }

.highlight:has(.gp)::before,
.highlight:has(.gp) > .filename {
  display: block;
  padding: .5rem 1.15rem .5rem 2.6rem;
  font-family: var(--font-mono);
  font-size: .75rem;
  font-weight: 500;
  color: var(--muted);
  background: var(--surface-2) url("../img/prompt.svg") no-repeat 1.15rem center / 1.05rem auto;
  border-bottom: 1px solid var(--border-strong);
}
.highlight:has(.gp)::before { content: "terminal"; }
.highlight:has(.gp):has(> .filename)::before { content: none; display: none; }

.highlight .gp {                      /* znak zachęty: $  #  >>>  */
  color: var(--accent);
  font-weight: 600;
  user-select: none;
  -webkit-user-select: none;
}
.highlight .go { color: var(--muted); }  /* wynik komendy */

/* Numery linii (linenums="1") */
.highlight table { border-collapse: collapse; width: 100%; margin: 0; display: table; font-size: inherit; }
.highlight td { padding: 0; border: 0; vertical-align: top; }
.highlight td.code { width: 100%; }
.highlight .linenos pre,
.highlight .linenodiv pre {
  padding-right: .75rem;
  color: var(--faint);
  text-align: right;
  user-select: none;
  -webkit-user-select: none;
  border-right: 1px solid var(--border);
}
.highlight .linenos .normal { color: inherit; background: none; }

/* Skróty klawiaturowe
   - <kbd>Ctrl</kbd>+<kbd>C</kbd>          (czysty HTML w Markdown)
   - ++ctrl+alt+t++                      (rozszerzenie pymdownx.keys)  */
kbd {
  display: inline-block;
  min-width: 1.6em;
  padding: .08em .42em .02em;
  font-size: .8em;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  color: var(--text-strong);
  white-space: nowrap;
  vertical-align: .08em;
  background: linear-gradient(180deg, var(--surface-3), var(--surface-2));
  border: 1px solid var(--border-strong);
  border-bottom-width: 3px;
  border-radius: var(--radius-sm);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
}
/* Kombinacja zagnieżdżona: <kbd><kbd>Ctrl</kbd>+<kbd>C</kbd></kbd> */
kbd:has(kbd) {
  padding: 0;
  font-size: 1em;
  min-width: 0;
  color: var(--faint);
  background: none;
  border: 0;
  box-shadow: none;
}
.keys { white-space: nowrap; }
.keys > span { margin-inline: .12em; color: var(--faint); font-family: var(--font-mono); font-size: .85em; }

/* Ścieżka w menu programu: <span class="menu">Plik › Ustawienia › SSH</span> */
.menu {
  padding: .1em .45em;
  font-size: .9em;
  font-weight: 500;
  color: var(--text-strong);
  background: var(--accent-soft);
  border-radius: 4px;
  white-space: nowrap;
}

/* Wynik / tekst wyświetlany przez program: <samp>Permission denied</samp> */
samp {
  font-size: .86em;
  color: var(--warn);
}


/* Ukryty adres e-mail: [[email]] w treści (wtyczka ukryj_email) */
.email-hidden { white-space: nowrap; }
.email-reveal, .email-copy {
  font: inherit;
  font-family: var(--font-mono);
  font-size: .86em;
  cursor: pointer;
  border-radius: 4px;
}
.email-reveal {
  padding: .12em .5em;
  color: var(--accent);
  background: var(--accent-soft);
  border: 1px dashed var(--accent-line);
}
.email-reveal::before { content: "$ "; color: var(--faint); }
.email-reveal:hover { color: var(--accent-hi); border-style: solid; }
.email-link { font-family: var(--font-mono); font-size: .92em; }
.email-copy {
  margin-left: .5em;
  padding: .05em .45em;
  color: var(--muted);
  background: var(--surface-2);
  border: 1px solid var(--border);
}
.email-copy:hover { color: var(--text-strong); border-color: var(--border-strong); }


/* 8. Admonicje: !!! note | tip | warning | danger "Tytuł" ================= */

.admonition {
  --adm: var(--accent);
  padding: .9rem 1.1rem;
  background: color-mix(in srgb, var(--adm) 7%, var(--surface));
  border: 1px solid color-mix(in srgb, var(--adm) 28%, var(--border));
  border-left: 3px solid var(--adm);
  border-radius: var(--radius-sm);
  font-size: .96875rem;
}
.admonition > :last-child { margin-bottom: 0; }
.admonition-title {
  margin: 0 0 .35rem !important;
  font-family: var(--font-mono);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--adm);
}
.admonition.tip, .admonition.hint, .admonition.success { --adm: var(--ok); }
.admonition.warning, .admonition.caution, .admonition.attention { --adm: var(--warn); }
.admonition.danger, .admonition.error { --adm: var(--danger); }


/* 9. Kolorowanie składni (Pygments, klasa .highlight) ===================== */

.highlight .c, .highlight .ch, .highlight .cm, .highlight .cpf,
.highlight .c1, .highlight .cs          { color: #5f7186; font-style: italic; }   /* komentarze */
.highlight .cp                          { color: #8aa0b5; }
.highlight .k, .highlight .kc, .highlight .kd, .highlight .kn,
.highlight .kp, .highlight .kr          { color: #c792ea; }                       /* słowa kluczowe */
.highlight .kt                          { color: #4cc4ff; }
.highlight .o, .highlight .ow           { color: #89ddff; }                       /* operatory */
.highlight .p                           { color: #a6b3c1; }
.highlight .s, .highlight .sa, .highlight .sb, .highlight .sc,
.highlight .dl, .highlight .sd, .highlight .s2, .highlight .se,
.highlight .sh, .highlight .si, .highlight .sx, .highlight .sr,
.highlight .s1, .highlight .ss          { color: #a5e07a; }                       /* napisy */
.highlight .se, .highlight .si          { color: #ffcb6b; }
.highlight .m, .highlight .mb, .highlight .mf, .highlight .mh,
.highlight .mi, .highlight .il, .highlight .mo { color: #f78c6c; }                /* liczby */
.highlight .na                          { color: #7fdbca; }                       /* atrybuty / klucze */
.highlight .nb, .highlight .bp          { color: #4cc4ff; }                       /* polecenia wbudowane */
.highlight .nc, .highlight .nn          { color: #ffcb6b; }
.highlight .nf, .highlight .fm          { color: #82aaff; }
.highlight .nt                          { color: #ff7a93; }                       /* tagi, sekcje */
.highlight .nv, .highlight .vc, .highlight .vg,
.highlight .vi, .highlight .vm          { color: #ffcb6b; }                       /* zmienne $VAR */
.highlight .no, .highlight .nd          { color: #f78c6c; }
.highlight .ne                          { color: #ff5f6d; }
.highlight .gh                          { color: var(--text-strong); font-weight: 700; }
.highlight .gu                          { color: #82aaff; }
.highlight .gd                          { color: #ff5f6d; background: rgba(255, 95, 109, .08); }  /* diff - */
.highlight .gi                          { color: #3ddc97; background: rgba(61, 220, 151, .08); }  /* diff + */
.highlight .gr, .highlight .gt          { color: #ff5f6d; }
.highlight .ge                          { font-style: italic; }
.highlight .gs                          { font-weight: 700; }
.highlight .err                         { color: #ff5f6d; }
.highlight .w                           { color: inherit; }


/* Strony błędów: errors/NNN.html (szablon error.html) */
.error-page { padding-block: 1rem 2rem; }
.error-page__term { margin-bottom: 2.25rem; }
.error-page__status { color: var(--danger); font-weight: 600; }
.error-page__title {
  margin: 0 0 1rem;
  color: var(--text-strong);
  font-size: clamp(1.7rem, 5vw, 2.3rem);
  line-height: 1.2;
  letter-spacing: -.025em;
}
.error-page__code {
  display: block;
  margin-bottom: .35rem;
  font-family: var(--font-mono);
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--accent);
}
.error-page__code::before { content: "HTTP "; color: var(--faint); }
.error-page__body { color: var(--muted); }
.error-page__links {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: 2rem;
}
.error-page__links a {
  padding: .45em .9em;
  font-size: .9375rem;
  font-weight: 500;
  color: var(--text);
  text-decoration: none;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}
.error-page__links a:first-child { color: #001018; background: var(--accent); border-color: var(--accent); }
.error-page__links a:hover { border-color: var(--accent-line); color: var(--text-strong); }
.error-page__links a:first-child:hover { color: #001018; background: var(--accent-hi); }


/* 10. Drobiazgi i responsywność =========================================== */

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 10px; border: 2px solid var(--bg); }
.highlight ::-webkit-scrollbar-thumb { border-color: var(--surface); }

@media (max-width: 40rem) {
  body { font-size: 1rem; }
  .site-header__inner { padding-block: 1.1rem; }
  .site-logo img { width: 200px; }
  .site-nav ul { gap: .25rem 1.1rem; }
  .post-card__title { font-size: 1.3rem; }
  .post-nav { grid-template-columns: 1fr; }
  .post-nav__item--next { grid-column: auto; }
  .highlight pre { font-size: .8125rem; padding-inline: 1rem; }
  /* Blok kodu na pełną szerokość ekranu — więcej miejsca na długie komendy */
  .prose .highlight { margin-inline: calc(-1 * var(--gutter)); border-radius: 0; border-inline: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .cursor { animation: none; }
  * { transition: none !important; }
}

@media print {
  body::before, .site-nav, .post-nav, .pagination, .cursor { display: none; }
  body { background: #fff; color: #000; }
  .highlight, :not(pre) > code, kbd { background: #f5f5f5 !important; color: #000 !important; }
}
