/* ==========================================================================
   Precedentia — «Dosar» design system

   THESIS   The product is a case file, not a SaaS landing page. Every piece of
            content is a white A4 sheet lying on a light, slowly living ground
            (teal/blue light pools); the home page is the teal folder cover. Search results are an "opis" (the file's
            inventory), a decision is a sheet with its requisites on top, an
            outcome is a stamp.
   READERS  Advocates 45+ on a 13–15" laptop. Body 17px, decision text 19px,
            nothing interactive under 44px, no tracked monospace caps as
            labels, light by default (dark stays as an option).
   ACCENT   #09E1AC is a fill (primary action, active tab marker, highlight),
            never text: as type it reads 1.6:1 on white. Text-coloured brand is
            --brand-ink.
   ========================================================================== */

:root {
  /* Cardboard and paper */
  --bg: #dde3e8;            /* folder cardboard — page ground */
  --bg-2: #ced6dd;          /* darker cardboard — inactive tabs, footer */
  --bg-card: #ffffff;       /* the sheet */
  --bg-elev: #f4f6f8;       /* band inside a sheet (filters, table head) */
  --surface: #eaeef1;       /* inset field inside a sheet */

  /* Ink — audited: --ink-mute ≥ 4.5:1 on --bg (the darkest light surface) */
  --ink: #14181d;
  --ink-dim: #39424b;
  --ink-mute: #4f5963;
  --ink-faint: #6c7680;     /* decoration only, never text people must read */

  --border: #c4ccd4;
  --border-soft: #e2e7eb;
  --border-strong: #8d98a3;

  /* Brand */
  --brand: #09E1AC;
  --brand-hover: #2cf0c0;
  --brand-edge: #04b489;    /* border on teal fills, so they hold on white */
  --brand-on: #032a20;      /* text on a teal fill — 11.9:1 */
  --brand-ink: #00694f;     /* brand as text — 6.6:1 on white, 5.1:1 on --bg */
  --brand-light: var(--brand-ink);
  --brand-dim: var(--brand-edge);
  --brand-glow: #c9f6ea;    /* highlight wash, <mark> */
  --mark: #c9f6ea;

  /* Outcome stamps — the only saturated colour besides the brand */
  --st-admis: #1c6b39;
  --st-partial: #275f8f;
  --st-respins: #a3222b;
  --st-casat: #8a5200;
  --st-inadmisibil: #4f5963;
  --st-incetat: #5b4a8a;

  --warn: #7f5a00;
  --danger: #a3222b;
  --ok: #1c6b39;

  /* Legacy names some templates still reference */
  --indigo: #3a4fa0;
  --indigo-deep: #24357a;
  --gold: #8a5200;
  --rose: #a3222b;

  --font-sans: "PT Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
  --font-serif: "PT Serif", Georgia, "Times New Roman", serif;
  --font-mono: "PT Mono", ui-monospace, Menlo, Consolas, monospace;

  /* Type scale, ratio ≈1.2, fixed rem — no fluid sizes in product UI */
  --fs-meta: 15px;
  --fs-small: 16px;
  --fs-body: 17px;
  --fs-lead: 19px;
  --fs-h3: 21px;
  --fs-h2: 26px;
  --fs-h1: 32px;

  --shadow-sheet: 0 1px 0 var(--bg-2), 0 12px 32px -20px rgba(20, 24, 29, .45);
  --radius: 4px;
  --page-max: 1200px;
  --page-max-wide: 1280px;
  --page-pad: 24px;
  color-scheme: light;
}

html[data-theme="dark"],
:root[data-theme="dark"] {
  /* The same folder at night: graphite board, slate sheets */
  --bg: #101418;
  --bg-2: #0a0d10;
  --bg-card: #181d22;
  --bg-elev: #1e242a;
  --surface: #232a31;
  --ink: #e8ecf0;
  --ink-dim: #c3cbd3;
  --ink-mute: #a2adb8;
  --ink-faint: #7d8893;
  --border: #2f373f;
  --border-soft: #262d34;
  --border-strong: #56616c;
  --brand-ink: #3ff0c4;
  --brand-glow: #0f3b31;
  --mark: #145243;
  --st-admis: #58c27f;
  --st-partial: #6aa8de;
  --st-respins: #f07a80;
  --st-casat: #e3a64a;
  --st-inadmisibil: #a2adb8;
  --st-incetat: #b5a3ea;
  --warn: #e3b14a;
  --danger: #f07a80;
  --ok: #58c27f;
  --indigo: #8e9ee8;
  --gold: #e3a64a;
  --rose: #f07a80;
  --shadow-sheet: 0 1px 0 #000, 0 12px 32px -20px rgba(0, 0, 0, .8);
  color-scheme: dark;
}

/* ── Base ─────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html, body { overflow-x: clip; }
body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
input, textarea, select, button { font-family: inherit; color: inherit; font-size: inherit; }
::selection { background: var(--brand); color: var(--brand-on); }
input::placeholder, textarea::placeholder { color: var(--ink-mute); opacity: 1; }

input:focus:not(:focus-visible),
textarea:focus:not(:focus-visible),
select:focus:not(:focus-visible),
button:focus:not(:focus-visible) { outline: none; }
:focus-visible { outline: 3px solid var(--brand-edge); outline-offset: 2px; }

/* Body copy links inside prose and sheets read as links */
.pp-prose a, .pp-link { color: var(--brand-ink); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.pp-prose a:hover, .pp-link:hover { text-decoration-thickness: 2px; }

/* Font roles. .mono used to be a costume on labels; it now only means "data"
   (case numbers, dates) and keeps the body face with tabular figures. */
.serif { font-family: var(--font-serif); letter-spacing: 0; }
.sans { font-family: var(--font-sans); }
.mono { font-family: var(--font-sans); font-variant-numeric: tabular-nums; letter-spacing: 0 !important; }
.pp-num { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

/* Labels: small bold sans, sentence case. No tracking, no caps. */
.pp-label {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: var(--fs-meta);
  font-weight: 700;
  color: var(--ink-mute);
  letter-spacing: 0;
  text-transform: none;
}
.pp-em { font-style: normal; color: var(--brand-ink); }
.pp-vh {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
.hairline { background: var(--border); height: 1px; width: 100%; }

/* Skip link */
.pp-skip-link {
  position: absolute; top: 8px; left: 8px; z-index: 100;
  padding: 12px 18px; background: var(--brand); color: var(--brand-on);
  font-weight: 700; transform: translateY(-200%);
}
.pp-skip-link:focus { transform: translateY(0); }

/* ── Legacy Tailwind bridge (old account/payment templates) ───────────── */
.text-zinc-100, .text-zinc-200 { color: var(--ink); }
.text-zinc-300, .text-zinc-400 { color: var(--ink-dim); }
.text-zinc-500, .text-zinc-600, .text-zinc-700 { color: var(--ink-mute); }
.placeholder-zinc-600::placeholder { color: var(--ink-mute); }
.text-brand, .text-brand-light { color: var(--brand-ink); }
.bg-surface-100 { background-color: var(--bg-card); }
.bg-surface-200 { background-color: var(--bg-elev); }
.bg-surface-300\/50 { background-color: var(--border); }
.border-surface-300, .border-surface-300\/30, .border-surface-300\/50, .border-surface-300\/60 { border-color: var(--border); }
.text-red-400, .text-red-500 { color: var(--danger); }
.text-yellow-500, .text-yellow-500\/70 { color: var(--warn); }
.hover\:text-red-400:hover { color: var(--danger); }

/* ── Buttons ──────────────────────────────────────────────────────────── */
.pp-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 0 20px;
  border-radius: var(--radius);
  font-family: var(--font-sans); font-size: var(--fs-small); font-weight: 700;
  line-height: 1.2; letter-spacing: 0;
  border: 1px solid var(--ink); background: var(--bg-card); color: var(--ink);
  cursor: pointer; white-space: nowrap; text-decoration: none;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.pp-btn:hover { background: var(--bg-elev); }
.pp-btn-primary { background: var(--brand); border-color: var(--brand-edge); color: var(--brand-on); }
.pp-btn-primary:hover { background: var(--brand-hover); }
.pp-btn-ghost { background: var(--bg-card); border-color: var(--border-strong); color: var(--ink); }
.pp-btn-ghost:hover { border-color: var(--ink); background: var(--bg-elev); }
.pp-btn-dark { background: var(--ink); border-color: var(--ink); color: var(--bg-card); }
.pp-btn-dark:hover { background: var(--ink-dim); }
.pp-btn-lg { min-height: 56px; padding: 0 28px; font-size: var(--fs-lead); }
.pp-btn-block { width: 100%; }
.pp-btn:disabled, .pp-btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.pp-btn.hidden { display: none; }
@media (min-width: 640px) { .pp-btn.hidden.sm\:inline-flex { display: inline-flex; } }

.pp-btn__tag {
  margin-left: auto; padding: 2px 7px; border-radius: 3px;
  font-size: 14px; font-weight: 700; background: var(--surface); color: var(--ink-mute);
}

/* Quiet text action */
.pp-linkbtn {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0;
  border: 0; background: none; font: inherit; font-size: var(--fs-small);
  color: var(--ink-dim); cursor: pointer;
  text-decoration: underline; text-underline-offset: 3px;
}
.pp-linkbtn:hover { color: var(--ink); }
.pp-linkbtn--danger:hover { color: var(--danger); }

/* ── Tags, chips, badges ──────────────────────────────────────────────── */
.pp-pill, .pp-tag {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: 28px; padding: 2px 10px; border-radius: 3px;
  font-family: var(--font-sans); font-size: 14px; font-weight: 700;
  letter-spacing: 0; text-transform: none;
  border: 1px solid var(--border); color: var(--ink-dim); background: var(--bg-card);
}
a.pp-pill { min-height: 40px; padding: 4px 14px; font-size: var(--fs-small); font-weight: 400; color: var(--ink); }
a.pp-pill:hover { border-color: var(--ink); }

.pp-chip {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 44px; padding: 0 14px; border-radius: var(--radius);
  font-family: var(--font-sans); font-size: var(--fs-meta); line-height: 1.2;
  background: var(--bg-card); border: 1px solid var(--border); color: var(--ink);
  cursor: pointer; text-decoration: none;
}
button.pp-chip { font: inherit; font-size: var(--fs-meta); }
.pp-chip:hover { border-color: var(--ink); }
.pp-chip.is-active, .pp-chip[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: var(--bg-card); }
.pp-chip__count { color: var(--ink-mute); font-variant-numeric: tabular-nums; }
.pp-chip.is-active .pp-chip__count { color: inherit; opacity: .8; }
.pp-chip__x { font-weight: 700; font-size: 18px; line-height: 1; }

.pp-dot { width: 8px; height: 8px; border-radius: 2px; display: inline-block; }

/* Court tag: short official abbreviation + country square */
.pp-source-badge {
  display: inline-flex; align-items: center; gap: 7px;
  min-height: 26px; padding: 0 8px; border-radius: 3px;
  border: 1px solid var(--border);
  font-family: var(--font-sans); font-size: 14px; font-weight: 700;
  letter-spacing: 0; text-transform: none;
  color: var(--ink); background: var(--bg-card); white-space: nowrap;
}
.pp-source-badge.md { min-height: 30px; font-size: 15px; padding: 0 10px; }
.pp-source-badge__dot { width: 8px; height: 8px; border-radius: 2px; display: inline-block; background: var(--ink-faint); }
.pp-source-badge--csj .pp-source-badge__dot,
.pp-source-badge--cc .pp-source-badge__dot,
.pp-source-badge--ccrm .pp-source-badge__dot { background: #1f4fa3; }          /* Moldova */
.pp-source-badge--ctedo .pp-source-badge__dot,
.pp-source-badge--echr .pp-source-badge__dot { background: var(--brand-edge); } /* Strasbourg */
.pp-source-badge--iccj .pp-source-badge__dot { background: #b8860b; }         /* Romania */
.source-badge { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 3px; font-size: 14px; font-weight: 700; }

/* Outcome stamp — the signature mark of the system */
.pp-stamp {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 5px 9px 4px;
  border: 2px solid currentColor; border-radius: 3px;
  outline: 1px solid currentColor; outline-offset: 2px;
  font-family: var(--font-sans); font-size: 14px; font-weight: 700; line-height: 1.1;
  text-transform: uppercase; letter-spacing: .06em; text-align: center;
  color: var(--st-inadmisibil); background: transparent;
  transform: rotate(-2.5deg); white-space: normal; max-width: 100%;
}
.pp-stamp--lg { font-size: 18px; padding: 8px 14px 7px; border-width: 3px; }
.pp-stamp--admis { color: var(--st-admis); }
.pp-stamp--partial { color: var(--st-partial); }
.pp-stamp--respins { color: var(--st-respins); }
.pp-stamp--casat { color: var(--st-casat); }
.pp-stamp--inadmisibil { color: var(--st-inadmisibil); }
.pp-stamp--incetat { color: var(--st-incetat); }
@media (prefers-reduced-motion: reduce) { .pp-stamp { transform: none; } }

/* ── Sheets and cards ─────────────────────────────────────────────────── */
.pp-card, .pp-sheet {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 2px;
  box-shadow: var(--shadow-sheet);
}
.pp-sheet__head {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 16px 24px; border-bottom: 2px solid var(--ink);
}
.pp-sheet__title { margin: 0; font-size: var(--fs-h3); font-weight: 700; line-height: 1.25; }
.pp-sheet__body { padding: 20px 24px; }
.pp-lift { transition: border-color .15s ease; }
.pp-lift:hover { border-color: var(--ink); }
.pp-divider-v { width: 1px; background: var(--border); align-self: stretch; }

mark, mark.pp-hl, .search-highlight {
  background: var(--mark); color: inherit; padding: 0 2px; border-radius: 2px;
}

/* ── Page frame ───────────────────────────────────────────────────────── */
.pp-page { max-width: var(--page-max); margin: 0 auto; padding: 0 var(--page-pad); }
.pp-page--wide { max-width: var(--page-max-wide); }
.pp-section { position: relative; }
.pp-section--elev { background: var(--bg-2); }
.pp-section__inner { max-width: var(--page-max); margin: 0 auto; padding: 56px var(--page-pad); position: relative; }
.pp-section__inner--tight { padding: 36px var(--page-pad); }
.pp-h1 { font-size: var(--fs-h1); line-height: 1.2; font-weight: 700; margin: 0; }
.pp-h2 { font-size: var(--fs-h2); line-height: 1.25; font-weight: 700; margin: 0; }
.pp-h3 { font-size: var(--fs-h3); line-height: 1.3; font-weight: 700; margin: 0; }
.pp-lead { font-size: var(--fs-lead); line-height: 1.5; color: var(--ink-dim); }
.pp-muted { color: var(--ink-mute); }
.pp-serif-display { font-family: var(--font-sans); font-weight: 700; line-height: 1.15; letter-spacing: 0; margin: 0; }

/* ── Navigation ───────────────────────────────────────────────────────── */
.pp-nav {
  position: sticky; top: 0; z-index: 50;
  background: var(--bg-card);
  border-bottom: 1px solid var(--border);
}
.pp-nav__inner {
  max-width: var(--page-max-wide); margin: 0 auto;
  padding: 10px var(--page-pad);
  display: flex; align-items: center; gap: 20px;
}
.pp-nav__left, .pp-nav__right { display: flex; align-items: center; gap: 12px; }
.pp-nav__right { margin-left: auto; }
.pp-nav__links { display: flex; align-items: center; gap: 2px; }
.pp-nav__link {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px;
  border-radius: var(--radius);
  font-size: var(--fs-small); color: var(--ink); white-space: nowrap; cursor: pointer;
}
.pp-nav__link:hover { background: var(--bg-elev); }
.pp-nav__link.is-active { font-weight: 700; box-shadow: inset 0 -3px 0 var(--brand); border-radius: 0; }

/* Search lives in the header on every page except the ones that are search */
.pp-nav__search { flex: 1 0 230px; max-width: 340px; display: flex; }
.pp-nav__search input {
  flex: 1; min-width: 0; height: 44px; padding: 0 14px;
  border: 1px solid var(--border-strong); border-right: 0; border-radius: var(--radius) 0 0 var(--radius);
  background: var(--bg-card); font-size: var(--fs-small);
}
.pp-nav__search button {
  height: 44px; padding: 0 16px; border: 1px solid var(--brand-edge);
  border-radius: 0 var(--radius) var(--radius) 0;
  background: var(--brand); color: var(--brand-on); font-weight: 700; cursor: pointer;
}
.pp-nav__search input:focus { outline: 3px solid var(--brand-edge); outline-offset: -1px; }

.pp-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; flex-shrink: 0; }
.pp-logo__mark {
  display: grid; place-items: center; width: 38px; height: 38px;
  background: var(--ink); color: var(--brand); border-radius: 3px;
}
.pp-logo__mark svg { height: 26px; width: auto; }
.pp-logo__word { font-family: var(--font-sans); font-size: 21px; font-weight: 700; letter-spacing: 0; color: var(--ink); }

.pp-lang { display: inline-flex; border: 1px solid var(--border-strong); border-radius: var(--radius); overflow: hidden; }
.pp-lang a, .pp-lang-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 42px; padding: 0 8px;
  font-size: 15px; font-weight: 700; color: var(--ink-dim); text-decoration: none;
}
.pp-lang a + a { border-left: 1px solid var(--border); }
.pp-lang a[aria-current="true"] { background: var(--ink); color: var(--bg-card); }

.pp-theme-toggle {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-width: 44px; height: 44px; padding: 0 10px;
  background: var(--bg-card); border: 1px solid var(--border-strong); border-radius: var(--radius);
  color: var(--ink); cursor: pointer; font-size: 15px;
}
.pp-theme-toggle:hover { border-color: var(--ink); }
.pp-theme-toggle__moon { display: block; }
.pp-theme-toggle__sun { display: none; }
html[data-theme="dark"] .pp-theme-toggle__sun { display: block; }
html[data-theme="dark"] .pp-theme-toggle__moon { display: none; }

.pp-nav__burger {
  display: none; align-items: center; gap: 8px; min-height: 44px; padding: 0 12px;
  background: var(--bg-card); border: 1px solid var(--border-strong); border-radius: var(--radius);
  color: var(--ink); cursor: pointer; font-weight: 700; font-size: var(--fs-small);
}
#mobile-menu { display: grid; grid-template-rows: 0fr; overflow: hidden; transition: grid-template-rows .2s ease; border-top: 0; background: var(--bg-card); }
#mobile-menu > * { min-height: 0; overflow: hidden; }
#mobile-menu.open { grid-template-rows: 1fr; border-top: 1px solid var(--border); }
.pp-mobile-menu__list { padding: 8px var(--page-pad) 16px; display: flex; flex-direction: column; }
.pp-mobile-menu__list a { display: flex; align-items: center; min-height: 48px; font-size: var(--fs-lead); border-bottom: 1px solid var(--border-soft); }
@media (min-width: 1101px) { #mobile-menu { display: none; } }
@media (max-width: 1100px) {
  .pp-nav__links, .pp-nav__right .pp-hide-sm { display: none !important; }
  .pp-nav__burger { display: inline-flex; }
}
@media (max-width: 720px) {
  .pp-nav__search { display: none; }
  .pp-logo__word { font-size: 21px; }
}

/* ── Footer ───────────────────────────────────────────────────────────── */
.pp-footer { background: var(--bg-2); border-top: 1px solid var(--border); }
.pp-footer__inner { max-width: var(--page-max-wide); margin: 0 auto; padding: 44px var(--page-pad) 32px; }
.pp-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr 1fr 1fr; gap: 24px; margin-bottom: 32px; }
.pp-footer__head { font-size: var(--fs-small); font-weight: 700; margin: 0 0 10px; color: var(--ink); }
.pp-footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; }
.pp-footer__col li a { display: inline-flex; align-items: center; min-height: 36px; font-size: var(--fs-small); color: var(--ink-dim); }
.pp-footer__col li a:hover { color: var(--ink); text-decoration: underline; }
.pp-footer__about { font-size: var(--fs-small); color: var(--ink-dim); max-width: 340px; margin: 14px 0 0; }
.pp-footer__bottom {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; align-items: center;
  padding-top: 20px; border-top: 1px solid var(--border);
  font-size: var(--fs-meta); color: var(--ink-mute);
}
.pp-footer__bottom a { color: var(--ink-mute); text-decoration: underline; }
@media (max-width: 960px) { .pp-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .pp-footer__grid { grid-template-columns: 1fr; } }

/* ── Forms ────────────────────────────────────────────────────────────── */
.pp-field {
  display: flex; align-items: center; gap: 10px;
  min-height: 48px; padding: 0 14px;
  border: 1px solid var(--border-strong); border-radius: var(--radius);
  background: var(--bg-card); color: var(--ink); font-size: var(--fs-small);
}
input.pp-field, select.pp-field { width: 100%; }
.pp-field input, .pp-field textarea { flex: 1; min-width: 0; background: transparent; border: 0; color: var(--ink); font-size: var(--fs-small); }
.pp-field input:focus:not(:focus-visible), .pp-field textarea:focus:not(:focus-visible) { outline: none; }
.pp-field:focus-within { border-color: var(--ink); }
.pp-input, .pp-select {
  width: 100%; min-height: 48px; padding: 0 14px;
  border: 1px solid var(--border-strong); border-radius: var(--radius);
  background: var(--bg-card); color: var(--ink); font-size: var(--fs-small);
}
.pp-select { appearance: none; -webkit-appearance: none; padding-right: 36px;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: right 18px center, right 12px center; background-size: 6px 6px; background-repeat: no-repeat; }
.pp-input:focus, .pp-select:focus { border-color: var(--ink); }
.pp-form-label { display: block; font-size: var(--fs-small); font-weight: 700; color: var(--ink); margin: 0 0 6px; }
.pp-form-hint { font-size: var(--fs-meta); color: var(--ink-mute); margin: 6px 0 0; }

.pp-seg { display: inline-flex; border: 1px solid var(--border-strong); border-radius: var(--radius); overflow: hidden; }
.pp-seg__btn {
  min-height: 44px; padding: 0 16px; border: 0; cursor: pointer;
  background: var(--bg-card); color: var(--ink); font-size: var(--fs-small); font-weight: 700;
  font-family: var(--font-sans); letter-spacing: 0; text-transform: none;
}
.pp-seg__btn + .pp-seg__btn { border-left: 1px solid var(--border); }
.pp-seg__btn.is-active, .pp-seg__btn.is-active-dark { background: var(--ink); color: var(--bg-card); }

/* ── The big search form ──────────────────────────────────────────────── */
.pp-search { display: flex; gap: 10px; }
.pp-search__input {
  flex: 1; min-width: 0; height: 60px; padding: 0 20px;
  border: 2px solid var(--ink); border-radius: var(--radius);
  background: var(--bg-card); color: var(--ink);
  font-size: 21px;
}
.pp-search__input:focus { outline: 3px solid var(--brand-edge); outline-offset: 2px; }
.pp-search__btn { height: 60px; padding: 0 30px; font-size: var(--fs-lead); }
.pp-search__hint { margin: 10px 2px 0; font-size: var(--fs-small); color: var(--ink-dim); }
.pp-search__hint b { color: var(--ink); font-weight: 700; }
@media (max-width: 600px) {
  .pp-search { flex-direction: column; }
  .pp-search__input { flex: none; width: 100%; }
  .pp-search__btn { width: 100%; }
  .pp-search__input { height: 56px; font-size: 18px; }
}

/* ── Folder tabs (court scope) ────────────────────────────────────────── */
.pp-tabs { display: flex; gap: 4px; align-items: flex-end; overflow-x: auto; scrollbar-width: none; }
.pp-tabs::-webkit-scrollbar { display: none; }
@media (max-width: 720px) {
  /* More tabs to the right: fade the edge so the strip reads as scrollable. */
  .pp-tabs { -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); padding-right: 32px; }
  .pp-home-examples .pp-chip { min-height: 36px; padding: 0 10px; }
}
.pp-tab {
  position: relative; flex-shrink: 0;
  display: flex; flex-direction: column; justify-content: center;
  min-height: 52px; padding: 8px 18px 9px;
  background: var(--bg-2); color: var(--ink);
  border: 1px solid var(--border); border-bottom: 0;
  border-radius: 8px 8px 0 0;
  font-size: var(--fs-small); line-height: 1.2; text-decoration: none; cursor: pointer;
  font-family: var(--font-sans);
}
.pp-tab small { display: block; font-size: 14px; color: var(--ink-mute); margin-top: 2px; }
.pp-tab:hover { background: var(--bg-elev); }
.pp-tab.is-active, .pp-tab[aria-current="true"] {
  background: var(--bg-card); font-weight: 700; z-index: 2;
  min-height: 58px; margin-bottom: -1px; box-shadow: inset 0 3px 0 var(--brand);
}
.pp-tab.is-active small { font-weight: 400; }
.pp-tab--extra { margin-left: auto; background: transparent; border-style: dashed; }
.pp-tab--extra.is-active { border-style: solid; }

/* ── Opis: the results list ───────────────────────────────────────────── */
.pp-opis-head {
  display: flex; align-items: center; gap: 12px 20px; flex-wrap: wrap;
  padding: 16px 24px; border-bottom: 2px solid var(--ink);
}
.pp-opis-head__title { margin: 0; font-size: var(--fs-h3); font-weight: 700; }
.pp-opis-head__count { font-size: var(--fs-small); color: var(--ink-dim); }
.pp-opis-head__tools { margin-left: auto; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.pp-filterbar {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
  padding: 12px 24px; background: var(--bg-elev); border-bottom: 1px solid var(--border);
}
.pp-filterbar__label { font-size: var(--fs-meta); font-weight: 700; color: var(--ink-mute); margin-right: 4px; }
.pp-filterbar__group { display: contents; }
.pp-opis { list-style: none; margin: 0; padding: 0; counter-reset: opis var(--opis-start, 0); }
.pp-opis__row {
  display: grid; grid-template-columns: 52px 164px minmax(0, 1fr) 150px;
  gap: 0 12px; padding: 18px 24px 18px 0;
  border-bottom: 1px solid var(--border-soft); position: relative;
}
.pp-opis__row:hover { background: color-mix(in oklab, var(--brand-glow) 35%, var(--bg-card)); }
.pp-opis__nr {
  text-align: right; font-family: var(--font-mono); font-size: 15px; color: var(--ink-mute); padding-top: 2px;
}
.pp-opis__nr::before { counter-increment: opis; content: counter(opis); }
.pp-opis__dos { font-family: var(--font-mono); font-size: 16px; font-weight: 700; line-height: 1.35; word-break: break-word; }
.pp-opis__dos-sub { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 6px; font-family: var(--font-sans); font-size: 15px; font-weight: 400; color: var(--ink-dim); }
.pp-opis__title { font-size: 18px; font-weight: 700; line-height: 1.35; color: var(--ink); text-decoration: none; }
.pp-opis__title::after { content: ""; position: absolute; inset: 0; } /* whole row clickable */
.pp-opis__title:hover { text-decoration: underline; text-decoration-color: var(--brand-edge); text-decoration-thickness: 3px; text-underline-offset: 3px; }
.pp-opis__title:focus-visible { outline: none; }
.pp-opis__row:has(.pp-opis__title:focus-visible) { outline: 3px solid var(--brand-edge); outline-offset: -3px; }
.pp-opis__parties { font-size: var(--fs-meta); color: var(--ink-dim); margin-top: 3px; }
.pp-opis__snip { font-size: var(--fs-small); color: var(--ink-dim); margin: 6px 0 0; line-height: 1.5; max-width: 75ch; }
.pp-opis__snip-label { font-size: 14px; font-weight: 700; color: var(--ink-mute); }
.pp-opis__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 8px; font-size: 15px; color: var(--ink-mute); }
.pp-opis__res { text-align: right; padding-top: 2px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.pp-opis__rel { font-size: 14px; color: var(--ink-mute); }
.pp-opis__more { display: flex; justify-content: center; padding: 18px; }
@media (max-width: 860px) {
  .pp-opis__row { grid-template-columns: 40px minmax(0, 1fr); padding: 16px 16px 16px 0; }
  .pp-opis__dos { grid-column: 2; }
  .pp-opis__main { grid-column: 2; margin-top: 6px; }
  .pp-opis__res { grid-column: 2; text-align: left; align-items: flex-start; flex-direction: row; margin-top: 10px; }
  .pp-opis-head, .pp-filterbar { padding-left: 16px; padding-right: 16px; }
}

/* Legacy card result (citations lists, saved) */
.pp-result {
  display: block; background: var(--bg-card); border: 1px solid var(--border);
  padding: 18px 22px; color: inherit; text-decoration: none;
}
.pp-result:hover { border-color: var(--ink); }
.pp-result__meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; font-size: var(--fs-meta); color: var(--ink-mute); }
.pp-result__title { font-family: var(--font-sans); font-size: 18px; font-weight: 700; line-height: 1.35; margin: 4px 0 8px; }
.pp-result__snip { font-size: var(--fs-small); color: var(--ink-dim); line-height: 1.5; margin: 0 0 10px; }
.pp-result__row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pp-result__sep { width: 1px; height: 14px; background: var(--border); }

/* Pager */
.pp-pager { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 6px; padding: 20px 16px 24px; }
.pp-pager a, .pp-pager span, .pp-pager button {
  min-width: 44px; height: 44px; padding: 0 12px;
  display: inline-grid; place-items: center;
  border: 1px solid var(--border-strong); border-radius: var(--radius);
  background: var(--bg-card); color: var(--ink); font-size: var(--fs-small); text-decoration: none; cursor: pointer;
  font-family: var(--font-sans);
}
.pp-pager a:hover, .pp-pager button:hover { border-color: var(--ink); }
.pp-pager [aria-current="page"] { background: var(--ink); border-color: var(--ink); color: var(--bg-card); font-weight: 700; }
.pp-pager .is-gap { border: 0; background: none; min-width: 24px; }
.pp-pager .is-disabled { opacity: .45; pointer-events: none; }

/* Notices */
.pp-notice {
  display: flex; gap: 14px; align-items: flex-start;
  padding: 16px 20px; border: 1px solid var(--border-strong); border-radius: var(--radius);
  background: var(--bg-elev); font-size: var(--fs-small); color: var(--ink);
}
.pp-notice--warn { border-color: var(--warn); }
.pp-notice__title { font-weight: 700; font-size: var(--fs-body); margin: 0 0 4px; }
.pp-notice p { margin: 0; }
.pp-quota { font-size: var(--fs-meta); color: var(--ink-dim); }
.pp-quota b { color: var(--ink); }

/* Loading */
.htmx-indicator { display: none; }
.htmx-request .htmx-indicator, .htmx-request.htmx-indicator { display: inline-flex; }
.pp-loading {
  align-items: center; gap: 12px; padding: 12px 16px;
  font-size: var(--fs-small); font-weight: 700; color: var(--ink);
}
.pp-loading__bar { width: 120px; height: 4px; background: var(--border); border-radius: 2px; overflow: hidden; position: relative; }
.pp-loading__bar::after {
  content: ""; position: absolute; inset: 0; width: 40%; background: var(--brand-edge);
  animation: pp-load 1.1s ease-in-out infinite;
}
@keyframes pp-load { 0% { transform: translateX(-100%); } 100% { transform: translateX(250%); } }
#results.htmx-request { opacity: .55; transition: opacity .15s ease; }

.pp-skeleton__bar { background: var(--surface); animation: pp-skeleton 1.4s ease-in-out infinite; border-radius: 2px; }
@keyframes pp-skeleton { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  .pp-loading__bar::after { animation: none; width: 100%; opacity: .5; }
  .pp-skeleton__bar { animation: none; opacity: .75; }
  #mobile-menu { transition: none; }
}

/* ── Case sheet (decision page) ───────────────────────────────────────── */
.pp-case { max-width: var(--page-max-wide); margin: 0 auto; padding: 20px var(--page-pad) 72px;
  display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 28px; align-items: start; }
.pp-case__crumbs { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; font-size: var(--fs-small); }
.pp-case__crumbs a { color: var(--ink-dim); text-decoration: underline; text-underline-offset: 3px; }
.pp-case__crumbs a:hover { color: var(--ink); }
.pp-case__mobile-actions { display: none; gap: 8px; width: 100%; }
@media (max-width: 1100px) { .pp-case__mobile-actions { display: flex; } .pp-case__mobile-actions .pp-btn { flex: 1; } }
.legal-doc-title { font-family: var(--font-sans); font-weight: 700; font-size: 21px; letter-spacing: .14em; text-align: center; margin: 0 0 18px; }
.pp-a4 {
  position: relative; min-width: 0;
  background: var(--bg-card); border: 1px solid var(--border); border-radius: 2px;
  box-shadow: var(--shadow-sheet);
  padding: 40px 56px 56px;
}
.pp-a4__stamp { position: absolute; top: 36px; right: 44px; }
.pp-req {
  display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 6px 18px;
  margin: 0 0 24px; padding: 0 160px 20px 0; border-bottom: 2px solid var(--ink);
  font-size: var(--fs-small);
}
.pp-req dt { color: var(--ink-mute); }
.pp-req dd { margin: 0; font-weight: 700; color: var(--ink); }
.pp-req dd.is-num { font-family: var(--font-mono); }
.pp-case__title { font-size: 28px; line-height: 1.3; font-weight: 700; margin: 0 0 8px; max-width: 40ch; }
.pp-case__sub { font-size: var(--fs-small); color: var(--ink-dim); margin: 0 0 24px; }
.pp-case__side { position: sticky; top: 84px; display: flex; flex-direction: column; gap: 10px; }
.pp-case__side .pp-btn { width: 100%; justify-content: flex-start; }
.pp-side-box { background: var(--bg-card); border: 1px solid var(--border); border-radius: 2px; padding: 16px 18px; }
.pp-side-box__title { font-size: var(--fs-small); font-weight: 700; margin: 0 0 10px; }
.pp-side-box a { color: var(--brand-ink); }
.pp-artlist { display: flex; flex-wrap: wrap; gap: 6px; }
.pp-artlist a, .pp-artlist span {
  display: inline-flex; align-items: center; min-height: 36px; padding: 0 10px;
  border: 1px solid var(--border); border-radius: 3px; background: var(--bg-card);
  font-size: 15px; color: var(--ink); text-decoration: none;
}
.pp-artlist a:hover { border-color: var(--ink); }
.pp-cite { background: var(--bg-elev); border: 1px solid var(--border); padding: 16px 18px; margin: 0 0 28px; }
.pp-cite__text { margin: 10px 0 0; padding: 12px 14px; background: var(--bg-card); border: 1px solid var(--border);
  font-family: var(--font-serif); font-size: var(--fs-small); line-height: 1.55; white-space: pre-wrap; }
.pp-doc-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--border); margin: 0 0 8px; }
.pp-doc-tabs button {
  min-height: 48px; padding: 0 18px; border: 1px solid transparent; border-bottom: 0;
  background: transparent; cursor: pointer; font-size: var(--fs-small); color: var(--ink-dim); border-radius: 6px 6px 0 0;
}
.pp-doc-tabs button[aria-selected="true"] { color: var(--ink); font-weight: 700; background: var(--bg-elev); border-color: var(--border); box-shadow: inset 0 3px 0 var(--brand); }
.pp-related { margin-top: 28px; }
.pp-related__list { display: flex; flex-direction: column; }
.pp-related__item { display: block; padding: 14px 0; border-top: 1px solid var(--border-soft); text-decoration: none; color: inherit; }
.pp-related__item:hover .pp-related__title { text-decoration: underline; }
.pp-related__meta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: var(--fs-meta); color: var(--ink-mute); }
.pp-related__title { font-size: var(--fs-body); font-weight: 700; margin-top: 4px; line-height: 1.35; }
@media (max-width: 1100px) {
  .pp-case { grid-template-columns: minmax(0, 1fr); }
  .pp-case__crumbs { order: -2; }
  .pp-case__side { position: static; order: 1; flex-direction: row; flex-wrap: wrap; }
  .pp-case__side .pp-btn { width: auto; flex: 1 1 auto; }
  .pp-case__side .pp-side-box { flex: 1 1 100%; }
  .pp-case__side .pp-cite, .pp-case__side nav.pp-side-box { display: none; }
}
@media (max-width: 720px) {
  .pp-a4 { padding: 24px 18px 32px; }
  .pp-a4__stamp { position: static; display: block; margin-bottom: 14px; }
  .pp-req { grid-template-columns: 1fr; padding-right: 0; gap: 0; }
  .pp-req dd { margin-bottom: 8px; }
  .pp-case__title { font-size: 21px; }
}

/* The judgment text */
.pp-case-reader, .pp-case-body { max-width: 70ch; }
.pp-case-body { font-family: var(--font-serif); font-size: var(--fs-lead); line-height: 1.7; color: var(--ink); }
.pp-case-body > p, .pp-case-body > .legal-para { margin: 0 0 .9em; }
.legal-ref { font-weight: 700; color: var(--ink); }
.legal-case-ref { color: var(--ink-dim); font-style: italic; }
.legal-header {
  font-family: var(--font-sans); font-size: 21px; font-weight: 700; color: var(--ink);
  margin: 2.2rem 0 .8rem; padding-bottom: .4rem; border-bottom: 1px solid var(--border);
  letter-spacing: .02em;
}
.legal-subheader { font-family: var(--font-sans); font-size: 18px; font-weight: 700; color: var(--ink-dim); margin: 1.6rem 0 .5rem; }
.legal-section-break { margin-top: 1.4rem; }
.legal-para { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 0 .5rem; }
.legal-para-num {
  font-family: var(--font-sans); font-size: 15px; font-weight: 700; color: var(--ink-mute);
  text-align: right; padding: .2rem .5rem 0 0; user-select: none;
}
.legal-para p { margin: 0; }
.legal-text p { margin-bottom: .6rem; }
.legal-text p, .legal-para p { word-break: normal; overflow-wrap: anywhere; }
.pp-case-body .legal-para:target { background: var(--brand-glow); box-shadow: -8px 0 0 var(--brand-glow); }
.pp-case-body .legal-para:target .legal-para-num { color: var(--brand-ink); }
@media (max-width: 720px) {
  .pp-case-body { font-size: 18px; }
  .legal-para { grid-template-columns: 2.2rem minmax(0, 1fr); }
}

/* "Pe scurt" facts */
.pp-facts__list { margin: 0; padding: 0; list-style: none; }
.pp-facts__list li { position: relative; padding-left: 16px; }
.pp-facts__list li + li { margin-top: 4px; }
.pp-facts__list li::before { content: ""; position: absolute; left: 0; top: .7em; width: 7px; height: 2px; background: var(--ink-mute); }
.pp-facts__note { display: inline-block; margin-top: 6px; font-size: 14px; color: var(--ink-mute); }

/* Case CTA for anonymous readers */
.pp-case-cta {
  max-width: var(--page-max-wide); margin: 0 auto 56px; padding: 28px 32px;
  display: flex; align-items: center; gap: 28px; flex-wrap: wrap;
  border: 1px solid var(--border); background: var(--bg-card); box-shadow: var(--shadow-sheet);
}
.pp-case-cta > div:first-child { flex: 1; min-width: 260px; }
.pp-case-cta__title { font-family: var(--font-sans); font-size: var(--fs-h3); font-weight: 700; line-height: 1.3; margin: 6px 0 8px; }
.pp-case-cta__body { font-size: var(--fs-small); line-height: 1.55; color: var(--ink-dim); margin: 0; max-width: 62ch; }
.pp-case-cta__actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.pp-case-cta__link { font-size: var(--fs-small); color: var(--ink); text-decoration: underline; text-underline-offset: 3px; padding: 10px 2px; }
@media (max-width: 720px) { .pp-case-cta { margin: 0 16px 40px; padding: 22px 18px; } }

.pp-sticky-actions { display: none; } /* replaced by the side action column */
.pp-action-btn {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px;
  background: var(--bg-card); color: var(--ink); border: 1px solid var(--border-strong); border-radius: var(--radius);
  cursor: pointer; font-size: var(--fs-small); font-weight: 700;
}
.pp-action-btn.is-active { background: var(--ink); color: var(--bg-card); border-color: var(--ink); }

/* Timeline */
.pp-timeline { position: relative; padding-left: 20px; }
.pp-timeline::before { content: ""; position: absolute; left: 5px; top: 6px; bottom: 6px; width: 2px; background: var(--border); }
.pp-timeline__item { position: relative; margin-bottom: 16px; }
.pp-timeline__item:last-child { margin-bottom: 0; }
.pp-timeline__dot { position: absolute; left: -20px; top: 6px; width: 12px; height: 12px; border-radius: 2px; background: var(--bg-card); border: 2px solid var(--border-strong); }
.pp-timeline__item.is-active .pp-timeline__dot { background: var(--brand); border-color: var(--brand-edge); }

.pp-cluster { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 720px) { .pp-cluster { grid-template-columns: 1fr; } }

/* ── Home ─────────────────────────────────────────────────────────────── */
.pp-registry__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pp-registry__cell { padding: 18px 20px; border-right: 1px solid var(--border-soft); text-decoration: none; color: inherit; display: block; }
.pp-registry__cell:last-child { border-right: 0; }
.pp-registry__cell:hover { background: var(--bg-elev); }
.pp-registry__num { font-family: var(--font-sans); font-variant-numeric: tabular-nums; font-size: 26px; font-weight: 700; color: var(--ink); line-height: 1.2; }
.pp-registry__name { font-size: var(--fs-small); font-weight: 700; margin-top: 4px; }
.pp-registry__sub { font-size: var(--fs-meta); color: var(--ink-mute); margin-top: 2px; }
@media (max-width: 860px) {
  .pp-registry__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pp-registry__cell:nth-child(2) { border-right: 0; }
  .pp-registry__cell:nth-child(-n+2) { border-bottom: 1px solid var(--border-soft); }
}
.pp-home-cols { max-width: 980px; margin: 0 auto; padding: 32px var(--page-pad) 56px; display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 24px; align-items: start; }
@media (max-width: 860px) { .pp-home-cols { grid-template-columns: 1fr; } }
.pp-howto { list-style: none; margin: 0; padding: 0; }
.pp-howto li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; padding: 14px 0; border-top: 1px solid var(--border-soft); }
.pp-howto li:first-child { border-top: 0; padding-top: 0; }
.pp-howto__n { display: grid; place-items: center; width: 30px; height: 30px; border: 2px solid var(--ink); border-radius: 50%; font-weight: 700; font-size: 15px; }
.pp-howto__t { font-weight: 700; margin: 0 0 2px; }
.pp-howto__d { margin: 0; color: var(--ink-dim); font-size: var(--fs-small); }
.pp-howto code { font-family: var(--font-mono); font-size: 15px; background: var(--surface); padding: 1px 6px; border-radius: 3px; }

/* ── FAQ ──────────────────────────────────────────────────────────────── */
.pp-faq__row { border-bottom: 1px solid var(--border); }
.pp-faq__btn {
  width: 100%; min-height: 56px; padding: 14px 0; background: transparent; border: 0;
  color: var(--ink); cursor: pointer; text-align: left;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  font-size: var(--fs-body); font-weight: 700;
}
.pp-faq__ans { padding: 0 0 18px; font-size: var(--fs-small); color: var(--ink-dim); line-height: 1.6; max-width: 70ch; display: none; }
.pp-faq__row.is-open .pp-faq__ans { display: block; }
.pp-faq__row.is-open .pp-faq__plus { display: none; }
.pp-faq__row:not(.is-open) .pp-faq__minus { display: none; }
details.pp-faq__row > summary { list-style: none; }
details.pp-faq__row > summary::-webkit-details-marker { display: none; }
details.pp-faq__row[open] .pp-faq__ans { display: block; }

/* ── Pricing ──────────────────────────────────────────────────────────── */
.pp-plan {
  background: var(--bg-card); border: 1px solid var(--border); border-radius: 2px;
  padding: 28px 26px 26px; display: flex; flex-direction: column; position: relative;
  box-shadow: var(--shadow-sheet);
}
.pp-plan.is-recommended { border: 2px solid var(--ink); }
.pp-plan.is-recommended::before { display: none; }
.pp-plan__badge {
  position: absolute; top: -15px; left: 24px;
  background: var(--brand); color: var(--brand-on); border: 1px solid var(--brand-edge);
  padding: 4px 12px; font-size: 14px; font-weight: 700; font-family: var(--font-sans);
  letter-spacing: 0; text-transform: none; border-radius: 3px; white-space: nowrap; z-index: 2;
}
.pp-plan__price-row { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.pp-plan__price { font-family: var(--font-sans); font-size: 44px; font-weight: 700; line-height: 1; letter-spacing: 0; }
.pp-plan__suffix { font-family: var(--font-sans); font-size: var(--fs-small); color: var(--ink-dim); }
.pp-plan__feat { display: flex; align-items: flex-start; gap: 10px; padding: 7px 0; font-size: var(--fs-small); }
.pp-plan__feat--off { color: var(--ink-mute); }
.pp-plan__feat--muted { color: var(--ink-dim); }
.pp-plan__approx { font-size: var(--fs-meta); color: var(--ink-mute); margin-top: 6px; letter-spacing: 0; }
.pp-plans-note { max-width: 70ch; margin: 24px auto 0; font-size: var(--fs-meta); line-height: 1.6; color: var(--ink-mute); text-align: center; }
.pp-table { border: 1px solid var(--border); background: var(--bg-card); box-shadow: var(--shadow-sheet); }
.pp-table__head, .pp-table__row { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; }
.pp-table__head { background: var(--bg-elev); border-bottom: 2px solid var(--ink); font-weight: 700; }
.pp-table__row { border-bottom: 1px solid var(--border-soft); }
.pp-table__group { padding: 12px 20px; background: var(--bg-elev); border-bottom: 1px solid var(--border); font-weight: 700; }
.pp-table__cell { padding: 12px 20px; font-size: var(--fs-small); border-left: 1px solid var(--border-soft); }
.pp-table__cell:first-child { border-left: 0; }
.pp-table__cell--center { text-align: center; }
.pp-table__cell--pro { background: var(--bg-elev); font-weight: 700; }

/* ── Accounts, auth, outcomes ─────────────────────────────────────────── */
.pp-acct { max-width: 820px; margin: 0 auto; padding: 40px var(--page-pad) 80px; }
.pp-acct__tabs { display: flex; gap: 4px; margin-bottom: 28px; border-bottom: 1px solid var(--border); overflow-x: auto; }
.pp-acct__tab {
  display: inline-flex; align-items: center; min-height: 48px; padding: 0 14px;
  font-size: var(--fs-small); color: var(--ink-dim); text-decoration: none;
  border-bottom: 3px solid transparent; margin-bottom: -1px; white-space: nowrap;
}
.pp-acct__tab:hover { color: var(--ink); }
.pp-acct__tab.is-active { color: var(--ink); font-weight: 700; border-bottom-color: var(--brand); }
.pp-acct__title { font-family: var(--font-sans); font-size: var(--fs-h1); font-weight: 700; letter-spacing: 0; line-height: 1.2; margin: 0 0 24px; }
.pp-acct__card { border: 1px solid var(--border); background: var(--bg-card); padding: 24px; box-shadow: var(--shadow-sheet); }
.pp-acct__section + .pp-acct__section { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--border); }
.pp-dl { margin: 0; display: grid; gap: 10px; }
.pp-dl__row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.pp-dl__row dt { font-size: var(--fs-small); color: var(--ink-mute); }
.pp-dl__row dd { margin: 0; font-size: var(--fs-small); color: var(--ink); text-align: right; font-weight: 700; }
.pp-dl__row dd.is-num { font-variant-numeric: tabular-nums; }
.pp-dl__row dd.is-brand { color: var(--brand-ink); }
.pp-dl__row dd.is-warn { color: var(--warn); }
.pp-code { display: block; font-family: var(--font-mono); font-size: 15px; color: var(--ink); background: var(--bg-elev); border: 1px solid var(--border); padding: 10px 12px; word-break: break-all; }
.pp-note { border: 1px solid var(--brand-edge); background: var(--brand-glow); padding: 14px 16px; margin-bottom: 14px; }
.pp-note__label { display: flex; align-items: center; font-size: var(--fs-small); font-weight: 700; color: var(--ink); margin: 0 0 8px; }
.pp-hint { font-size: var(--fs-meta); color: var(--ink-mute); line-height: 1.6; margin: 12px 0 0; }
.pp-hint code { font-family: var(--font-mono); color: var(--ink-dim); }
.pp-outcome { max-width: 560px; margin: 0 auto; padding: 72px var(--page-pad) 96px; text-align: center; }
.pp-outcome__mark { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border: 1px solid var(--border-strong); background: var(--bg-card); margin-bottom: 22px; }
.pp-outcome__title { font-family: var(--font-sans); font-size: 28px; font-weight: 700; line-height: 1.25; margin: 0 0 12px; }
.pp-outcome__body { font-size: var(--fs-body); line-height: 1.6; color: var(--ink-dim); margin: 0 0 26px; }
.pp-outcome__actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.pp-empty { text-align: center; padding: 56px 24px; color: var(--ink-dim); }
.pp-empty__title { font-size: var(--fs-h3); font-weight: 700; color: var(--ink); margin: 0 0 8px; }
.pp-empty__body { font-size: var(--fs-small); margin: 0 0 20px; }
.pp-listrow {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 14px;
  padding: 16px 18px; border: 1px solid var(--border); background: var(--bg-card);
  text-decoration: none; color: inherit;
}
.pp-listrow + .pp-listrow { border-top: 0; }
.pp-listrow:hover { background: var(--bg-elev); }
.pp-listrow__main { flex: 1; min-width: 0; }
.pp-listrow__meta { display: flex; align-items: center; gap: 9px; margin-bottom: 6px; flex-wrap: wrap; font-size: var(--fs-meta); color: var(--ink-mute); }
.pp-listrow__title { font-size: var(--fs-body); font-weight: 700; line-height: 1.4; color: var(--ink); margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pp-listrow__sub { font-size: var(--fs-meta); color: var(--ink-mute); margin: 5px 0 0; }
.pp-listrow__aside { font-size: var(--fs-meta); color: var(--ink-mute); white-space: nowrap; flex-shrink: 0; }
.pp-listrow__act { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: -10px -8px -10px 0; border: 0; background: none; color: var(--brand-ink); cursor: pointer; flex-shrink: 0; }
.pp-listrow__act:hover { color: var(--danger); }
.pp-auth { max-width: 460px; margin: 0 auto; padding: 48px var(--page-pad) 80px; }
.pp-auth__card { background: var(--bg-card); border: 1px solid var(--border); box-shadow: var(--shadow-sheet); padding: 32px 30px; }
.pp-auth__head { margin-bottom: 24px; }
.pp-auth__mark { display: none; }
.pp-auth__title { font-family: var(--font-sans); font-size: 28px; font-weight: 700; letter-spacing: 0; line-height: 1.2; margin: 0 0 8px; }
.pp-auth__sub { font-size: var(--fs-small); color: var(--ink-dim); margin: 0; }
.pp-auth__provider {
  display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%;
  min-height: 52px; padding: 0 16px; border: 1px solid var(--border-strong); border-radius: var(--radius);
  background: var(--bg-card); color: var(--ink); font-size: var(--fs-small); font-weight: 700; text-decoration: none; margin-bottom: 20px;
}
.pp-auth__provider:hover { border-color: var(--ink); }
.pp-auth__divider { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.pp-auth__divider::before, .pp-auth__divider::after { content: ""; flex: 1; height: 1px; background: var(--border); }
.pp-auth__divider span { font-size: var(--fs-meta); color: var(--ink-mute); letter-spacing: 0; text-transform: none; font-family: var(--font-sans); }
.pp-auth__form { display: grid; gap: 18px; }
.pp-auth__label { display: block; font-family: var(--font-sans); font-size: var(--fs-small); font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--ink); margin-bottom: 6px; }
.pp-auth__input {
  width: 100%; min-height: 52px; padding: 0 14px;
  background: var(--bg-card); border: 1px solid var(--border-strong); border-radius: var(--radius);
  color: var(--ink); font: inherit; font-size: var(--fs-body);
}
.pp-auth__input:hover { border-color: var(--ink-mute); }
.pp-auth__input:focus { border-color: var(--ink); }
.pp-auth__input[aria-invalid="true"] { border-color: var(--danger); border-width: 2px; }
.pp-auth__error { display: flex; align-items: flex-start; gap: 6px; font-size: var(--fs-small); color: var(--danger); margin: 7px 0 0; line-height: 1.5; font-weight: 700; }
.pp-auth__hint { font-size: var(--fs-meta); color: var(--ink-mute); margin: 6px 0 0; line-height: 1.5; }
.pp-auth__foot { text-align: center; font-size: var(--fs-small); color: var(--ink-dim); margin: 22px 0 0; }
.pp-auth__foot a { color: var(--brand-ink); text-decoration: underline; text-underline-offset: 3px; font-weight: 700; }

/* ── Icons ────────────────────────────────────────────────────────────── */
.pp-icon { display: inline-block; vertical-align: -0.15em; flex-shrink: 0; }
.pp-icon--lead { margin-right: 6px; }
.pp-icon--block { display: block; margin: 0 auto 12px; vertical-align: baseline; }
.pp-icon--brand { color: var(--brand-ink); }
.pp-icon--mute { color: var(--ink-mute); }
.pp-icon--faint { color: var(--ink-faint); }
.pp-icon--warn { color: var(--warn); }

/* Sort select */
.pp-sort { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: var(--fs-small); }
.pp-sort__label { font-size: var(--fs-small); color: var(--ink-dim); letter-spacing: 0; }
.pp-sort__select {
  appearance: none; -webkit-appearance: none; min-height: 44px; padding: 0 36px 0 12px;
  background: var(--bg-card); border: 1px solid var(--border-strong); border-radius: var(--radius);
  color: var(--ink); font: inherit; font-size: var(--fs-small); cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: right 18px center, right 12px center; background-size: 6px 6px; background-repeat: no-repeat;
}

/* Disclosure panel (advanced filters) */
.pp-disclosure > summary {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px;
  border: 1px solid var(--border-strong); border-radius: var(--radius); background: var(--bg-card);
  cursor: pointer; font-weight: 700; font-size: var(--fs-small); list-style: none;
}
.pp-disclosure > summary::-webkit-details-marker { display: none; }
.pp-disclosure > summary::after { content: "▾"; font-size: 14px; }
.pp-disclosure[open] > summary::after { content: "▴"; }
.pp-disclosure[open] > summary { background: var(--ink); color: var(--bg-card); border-color: var(--ink); }
.pp-filters-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 20px; padding: 18px 24px 20px; background: var(--bg-elev); border-bottom: 1px solid var(--border); }
@media (max-width: 860px) { .pp-filters-grid { grid-template-columns: 1fr 1fr; padding: 16px; } }
@media (max-width: 520px) { .pp-filters-grid { grid-template-columns: 1fr; } }

/* ── Print: a decision prints as a decision ───────────────────────────── */
@media print {
  @page { margin: 18mm 16mm; }
  :root, html[data-theme="dark"] {
    --bg: #fff; --bg-card: #fff; --bg-elev: #fff; --ink: #000; --ink-dim: #000; --ink-mute: #333; --border: #999;
  }
  html, body { background: #fff !important; color: #000 !important; overflow: visible !important; }
  .pp-nav, .pp-footer, #mobile-menu, .pp-skip-link, .pp-case__side, .pp-case__crumbs,
  .pp-case-cta, .pp-cite, .pp-doc-tabs, .pp-related, .pp-no-print, .pp-sticky-actions,
  [data-cookie-banner], .cookie-banner, #cookie-banner, script, noscript { display: none !important; }
  .pp-case { display: block; padding: 0; max-width: none; }
  .pp-a4 { border: 0; box-shadow: none; padding: 0; }
  .pp-a4__stamp { top: 0; right: 0; }
  .pp-case-body, .pp-case-reader { max-width: none; font-size: 12pt; line-height: 1.5; }
  .pp-req { font-size: 11pt; }
  .pp-case__title { font-size: 16pt; }
  .legal-para { break-inside: avoid-page; }
  .legal-header { break-after: avoid-page; }
  mark, .search-highlight { background: none !important; }
  a { color: #000 !important; text-decoration: none !important; }
  #tab-orig[hidden], [hidden] { display: none !important; }
}

/* ── Consent (Law RM 195/2024) ────────────────────────────────────────── */
.pp-check { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; font-size: var(--fs-meta); line-height: 1.5; color: var(--ink-dim); text-align: left; }
.pp-check__box {
  appearance: none; -webkit-appearance: none; flex: 0 0 auto;
  width: 24px; height: 24px; margin: 0;
  border: 2px solid var(--ink-mute); border-radius: 3px; background: var(--bg-card);
  display: inline-grid; place-content: center; cursor: pointer;
}
.pp-check__box::after {
  content: ""; width: 12px; height: 6px;
  border-left: 3px solid var(--brand-on); border-bottom: 3px solid var(--brand-on);
  transform: translateY(-2px) rotate(-45deg) scale(0); transition: transform .12s ease;
}
.pp-check:hover .pp-check__box { border-color: var(--ink); }
.pp-check__box:checked { background: var(--brand); border-color: var(--brand-edge); }
.pp-check__box:checked::after { transform: translateY(-2px) rotate(-45deg) scale(1); }
.pp-check__box[aria-invalid="true"] { border-color: var(--danger); }
.pp-check a { color: var(--brand-ink); text-decoration: underline; text-underline-offset: 2px; }
.pp-check--compact { font-size: var(--fs-meta); color: var(--ink-mute); }
.pp-consent { border-top: 1px solid var(--border); padding-top: 16px; }
.pp-consent .pp-auth__hint { margin-left: 36px; }

/* ── Cookie notice: a slip of paper along the bottom edge ─────────────── */
.pp-cookiebar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  background: var(--bg-card); border-top: 2px solid var(--ink);
  box-shadow: 0 -10px 28px -16px rgba(20, 24, 29, .5);
  font-size: var(--fs-small); color: var(--ink);
}
.pp-cookiebar[hidden] { display: none; }
.pp-cookiebar__inner { max-width: var(--page-max-wide); margin: 0 auto; padding: 10px var(--page-pad); display: flex; align-items: center; gap: 16px; min-height: 60px; }
.pp-cookiebar__tag { flex: 0 0 auto; font-weight: 700; font-size: var(--fs-small); }
.pp-cookiebar__text { flex: 1 1 auto; margin: 0; line-height: 1.45; }
.pp-cookiebar__text a { color: var(--brand-ink); text-decoration: underline; text-underline-offset: 2px; white-space: nowrap; }
.pp-cookiebar__btn { flex: 0 0 auto; }
@media (max-width: 640px) {
  .pp-cookiebar__inner { padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); flex-wrap: wrap; gap: 10px; }
  .pp-cookiebar__tag { display: none; }
  .pp-cookiebar__btn { width: 100%; }
}
@media print { .pp-cookiebar { display: none !important; } }

/* ── Legacy page bridge ───────────────────────────────────────────────────
   Pages not rebuilt by hand still carry the old editorial inline styles
   (light-weight serif display headings at 42–54px). In this system headings
   are bold sans at the fixed scale; PT Serif belongs to decision text only. */
h1.serif, h2.serif, h3.serif, h4.serif, div.serif, span.serif, a.serif, p.serif {
  font-family: var(--font-sans) !important; font-weight: 700 !important; letter-spacing: 0 !important; font-style: normal;
}
h1.serif { font-size: var(--fs-h1) !important; line-height: 1.2 !important; }
h2.serif { font-size: var(--fs-h2) !important; line-height: 1.25 !important; }
h3.serif { font-size: var(--fs-h3) !important; line-height: 1.3 !important; }
.mono { text-transform: none !important; }

/* ── Responsive helpers for pages with inline grids (pricing, about) ───── */
@media (max-width: 960px) {
  .pp-plans-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 28px !important; max-width: 460px; margin: 0 auto; }
  .pp-faq-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 20px !important; }
  .pp-about-sources { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 720px) {
  .pp-page { padding-left: 16px !important; padding-right: 16px !important; }
  .pp-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .pp-table__head, .pp-table__row, .pp-table__group { min-width: 560px; }
  .pp-faq-wrap { padding: 40px 16px !important; }
  .pp-about-sources { grid-template-columns: 1fr !important; }
  /* Results first on phones: facet chips fold into "Mai multe filtre". */
  .pp-filterbar--facets { display: none; }
  .pp-search-hint--results { display: none; }
}

/* ── Home: the cover of the case file ─────────────────────────────────────
   The one Committed-colour surface in the product: the folder board itself
   is teal. Ink on #09E1AC measures 12.4:1; secondary copy uses a deep teal
   ink (--cover-ink-2, 7.9:1). Stamps carry the real corpus counts. */
.pp-cover {
  --cover: #09E1AC; --cover-2: #07c898; --cover-ink: #0b1712; --cover-ink-2: #0a3d30;
  position: relative; overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,0) 40%),
    var(--cover);
  color: var(--cover-ink);
  border-bottom: 1px solid var(--cover-2);
}
.pp-cover::after { /* the folder's fold line along the spine */
  content: ""; position: absolute; top: 0; bottom: 0; left: 64px; width: 2px;
  background: linear-gradient(90deg, rgba(0,0,0,.08), rgba(255,255,255,.25));
}
.pp-cover__holes { position: absolute; left: 22px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 120px; }
.pp-cover__holes i { display: block; width: 18px; height: 18px; border-radius: 50%; background: var(--bg); box-shadow: inset 0 2px 3px rgba(0,0,0,.25); }
.pp-cover__inner {
  max-width: var(--page-max-wide); margin: 0 auto; padding: 56px var(--page-pad) 72px 104px;
  display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 40px; align-items: center;
}
.pp-cover__kicker { margin: 0 0 14px; font-size: var(--fs-small); font-weight: 700; color: var(--cover-ink-2); }
.pp-cover__title { margin: 0 0 14px; font-size: 46px; line-height: 1.08; font-weight: 700; letter-spacing: -.01em; max-width: 18ch; text-wrap: balance; }
.pp-cover__sub { margin: 0 0 28px; font-size: var(--fs-lead); line-height: 1.5; color: var(--cover-ink-2); max-width: 54ch; }
.pp-cover__form {
  background: #fff; color: var(--ink); border-radius: 3px; padding: 18px 20px 16px;
  box-shadow: 0 2px 0 var(--cover-2), 0 18px 40px -22px rgba(4, 40, 30, .7);
  max-width: 640px;
}
.pp-cover__label { display: block; font-size: var(--fs-small); font-weight: 700; color: var(--ink-dim); margin: 0 0 8px; }
.pp-cover__field { display: flex; gap: 10px; }
.pp-cover__field input {
  flex: 1; min-width: 0; height: 58px; padding: 0 4px; border: 0; border-bottom: 2px dashed var(--ink);
  background: transparent; font-family: var(--font-mono); font-size: 21px; color: var(--ink);
}
.pp-cover__field input::placeholder { color: var(--ink-faint); }
.pp-cover__field input:focus { outline: none; border-bottom-style: solid; border-bottom-color: var(--brand-edge); }
.pp-cover__examples { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 16px 0 0; }
.pp-cover__examples-label { font-size: var(--fs-small); font-weight: 700; color: var(--ink); margin-right: 2px; }
.pp-cover__examples a {
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px;
  border: 1px solid var(--border-strong); border-radius: var(--radius); background: var(--bg-elev);
  color: var(--ink); font-size: var(--fs-small); font-weight: 700; text-decoration: none;
  transition: background-color .15s ease, border-color .15s ease, transform .12s var(--ease-press);
}
.pp-cover__examples a:hover { background: var(--brand-glow); border-color: var(--brand-edge); }
.pp-cover__examples a:active { transform: translateY(1px); }
.pp-cover__stamps { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 18px; justify-items: center; }
/* Each stamp = a link box (static, carries the descending-block shadow)
   holding the ink impression (animated). Split so the shadow can show while
   the ink is still invisible. */
.pp-cover__stamp {
  position: relative; display: block; width: 100%; max-width: 250px;
  color: var(--cover-ink); text-decoration: none; transform: rotate(var(--r, -4deg));
}
.pp-cover__ink {
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  min-height: 128px; padding: 14px 12px;
  border: 3px solid currentColor; outline: 1.5px solid currentColor; outline-offset: 4px; border-radius: 6px;
  mix-blend-mode: multiply;
  animation: pp-stamp-ink 1.2s linear var(--d, 0ms) both;
}
.pp-cover__ink b { font-size: 36px; line-height: 1.05; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.pp-cover__ink > span { margin-top: 6px; font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; line-height: 1.25; }
.pp-cover__stamp:hover .pp-cover__ink { background: rgba(255, 255, 255, .18); }
.pp-cover__stamp--quiet { color: var(--cover-ink-2); }
.pp-cover__stamp--quiet .pp-cover__ink { border-style: dashed; outline-style: dashed; }
.pp-cover__stamp--quiet b { font-size: 28px; }
/* The asset no one else has: a solid, inked stamp. */
.pp-cover__stamp--solid .pp-cover__ink { background: var(--cover-ink); color: var(--cover); mix-blend-mode: normal; outline-color: var(--cover-ink); }
.pp-cover__stamp--solid:hover .pp-cover__ink { background: #000; }
/* The rubber block coming down: a soft shadow that tightens and darkens as
   it nears the paper, gone at the moment of impact. */
.pp-cover__stamp::after {
  content: ""; position: absolute; inset: -6px; border-radius: 8px; pointer-events: none;
  background: rgba(4, 30, 22, .55); filter: blur(22px); opacity: 0;
  animation: pp-stamp-shadow 1.2s linear var(--d, 0ms) both;
}
@keyframes pp-stamp-ink {
  0%, 54%  { opacity: 0; transform: scale(1.06); filter: blur(1.5px); }
  58%      { opacity: 1; transform: scale(1.035); filter: blur(.8px); }   /* impact: ink spreads */
  66%      { transform: scale(.985); filter: blur(0); }
  76%      { transform: scale(1.006); }
  100%     { opacity: 1; transform: scale(1); filter: none; }
}
@keyframes pp-stamp-shadow {
  0%   { opacity: 0; transform: scale(1.7) translateY(-26px); filter: blur(30px); }
  20%  { opacity: .18; }
  52%  { opacity: .5; transform: scale(1.04) translateY(-2px); filter: blur(8px); }
  57%  { opacity: 0; transform: scale(1); filter: blur(4px); }
  100% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .pp-cover__ink, .pp-cover__stamp::after { animation: none; }
}
/* The opis sheet slides out from under the cover. */
.pp-home-cols--sheet { margin-top: -40px; position: relative; z-index: 2; }
html[data-theme="dark"] .pp-cover { --cover: #0bbf93; --cover-2: #099e7a; }
@media (max-width: 960px) {
  .pp-cover__inner { grid-template-columns: 1fr; padding: 36px var(--page-pad) 64px 64px; gap: 32px; }
  .pp-cover__title { font-size: 36px; }
  .pp-cover::after { left: 44px; }
  .pp-cover__holes { left: 14px; }
}
@media (max-width: 600px) {
  .pp-cover__inner { padding: 28px 16px 56px 40px; }
  .pp-cover::after { left: 30px; }
  .pp-cover__holes { left: 8px; gap: 80px; }
  .pp-cover__holes i { width: 14px; height: 14px; }
  .pp-cover__title { font-size: 28px; }
  .pp-cover__sub { font-size: var(--fs-small); margin-bottom: 20px; }
  .pp-cover__form { padding: 14px 14px 12px; }
  .pp-cover__field { flex-direction: column; }
  .pp-cover__field input { font-size: 19px; height: 52px; }
  .pp-cover__stamps { gap: 18px 14px; padding: 6px 8px; }
  .pp-cover__stamp { transform: rotate(calc(var(--r) / 2)); }
  .pp-cover__ink { min-height: 104px; }
  .pp-cover__ink b { font-size: 26px; }
  .pp-cover__ink > span { font-size: 14px; }
}

/* ── Living ground ────────────────────────────────────────────────────────
   Instead of flat cardboard grey: soft brand-teal and cool-blue light pools
   that drift very slowly (28s). One fixed, GPU-composited layer (transform
   only). Off on the decision page (reading must not move), for
   prefers-reduced-motion, and in print. */
html { background: var(--bg); }
body { background: transparent; }
body::before {
  content: ""; position: fixed; inset: -25%; z-index: -1; pointer-events: none;
  background:
    radial-gradient(40% 45% at 16% 20%, rgba(9, 225, 172, .48), transparent 70%),
    radial-gradient(44% 50% at 84% 16%, rgba(76, 140, 245, .34), transparent 72%),
    radial-gradient(48% 48% at 64% 90%, rgba(9, 225, 172, .30), transparent 70%),
    radial-gradient(42% 42% at 6% 88%, rgba(150, 118, 245, .22), transparent 70%),
    radial-gradient(36% 36% at 50% 50%, rgba(255, 214, 140, .16), transparent 70%),
    #f4f9f8;
  animation: pp-drift 28s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes pp-drift {
  0%   { transform: translate3d(0, 0, 0) scale(1); }
  50%  { transform: translate3d(-7%, 5%, 0) scale(1.1) rotate(4deg); }
  100% { transform: translate3d(6%, -4%, 0) scale(1.05) rotate(-3deg); }
}
html[data-theme="dark"] body::before {
  background:
    radial-gradient(38% 42% at 18% 22%, rgba(9, 225, 172, .14), transparent 70%),
    radial-gradient(42% 48% at 82% 18%, rgba(84, 140, 235, .12), transparent 72%),
    radial-gradient(46% 46% at 62% 88%, rgba(9, 225, 172, .08), transparent 70%),
    #0e1317;
}
body.pp-reading::before { display: none; }
body.pp-reading { background: #edf1f3; }
html[data-theme="dark"] body.pp-reading { background: var(--bg); }
@media (prefers-reduced-motion: reduce) { body::before { animation: none; } }
@media print { body::before { display: none; } }
/* Bands that used to sit on darker cardboard now let the ground show. */
/* One continuous ground: sections and the footer carry no fill of their
   own (a translucent band made the gradient visibly break at its edges);
   a hairline separates them instead. */
.pp-section--elev { background: transparent; border-top: 1px solid rgba(20, 24, 29, .08); border-bottom: 1px solid rgba(20, 24, 29, .08); }
.pp-footer { background: transparent; border-top: 1px solid rgba(20, 24, 29, .12); }
html[data-theme="dark"] .pp-section--elev, html[data-theme="dark"] .pp-footer { border-color: rgba(255, 255, 255, .08); }

/* Inactive folder tabs read as translucent paper over the living ground. */
.pp-tab { background: rgba(255, 255, 255, .55); }
.pp-tab:hover { background: rgba(255, 255, 255, .85); }
html[data-theme="dark"] .pp-tab { background: rgba(255, 255, 255, .06); }
html { background: #f4f9f8; }
html[data-theme="dark"] { background: var(--bg); }

/* ══ Motion ═══════════════════════════════════════════════════════════════
   Motion explains, in the case-file world: pages arrive as the next sheet,
   result rows are filed into the opis, outcomes are stamped, tabs lift like
   folder tabs. Routine feedback 120–200 ms, arrivals ≤ 450 ms, decelerating
   curves only. Everything here switches off under prefers-reduced-motion. */
:root { --ease-out: cubic-bezier(.16, 1, .3, 1); --ease-press: cubic-bezier(.3, 0, .2, 1); }

/* Cross-document navigation: the new page slides in as the next sheet. */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: pp-vt-out .18s var(--ease-press) both; }
::view-transition-new(root) { animation: pp-vt-in .34s var(--ease-out) both; }
@keyframes pp-vt-out { to { opacity: 0; transform: translateY(-6px); } }
@keyframes pp-vt-in { from { opacity: 0; transform: translateY(14px); } }
.pp-nav { view-transition-name: pp-nav; }               /* header stays put */
::view-transition-old(pp-nav), ::view-transition-new(pp-nav) { animation: none; }

/* Press feedback on every control. */
.pp-btn, .pp-chip, .pp-tab, .pp-pager a, .pp-seg__btn, .pp-nav__link, .pp-lang a, .pp-theme-toggle {
  transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .12s var(--ease-press), box-shadow .15s ease;
}
.pp-btn:active, .pp-chip:active, .pp-pager a:active, .pp-seg__btn:active, .pp-theme-toggle:active { transform: translateY(1px) scale(.985); }
.pp-btn-primary:hover { box-shadow: 0 6px 16px -10px rgba(3, 42, 32, .7); }

/* Folder tabs lift when pointed at, like a tab pulled from the drawer. */
.pp-tab { transition: background-color .15s ease, transform .18s var(--ease-out); }
.pp-tab:not(.is-active):hover { transform: translateY(-3px); }

/* Opis rows are filed in one by one (first 8, capped total delay). */
.pp-opis__row { animation: pp-file-in .38s var(--ease-out) both; }
.pp-opis__row:nth-child(2) { animation-delay: 35ms; }
.pp-opis__row:nth-child(3) { animation-delay: 70ms; }
.pp-opis__row:nth-child(4) { animation-delay: 105ms; }
.pp-opis__row:nth-child(5) { animation-delay: 140ms; }
.pp-opis__row:nth-child(6) { animation-delay: 175ms; }
.pp-opis__row:nth-child(7) { animation-delay: 210ms; }
.pp-opis__row:nth-child(n+8) { animation-delay: 245ms; }
@keyframes pp-file-in { from { opacity: 0; transform: translateX(18px); } }
/* …and each outcome is stamped just after its row lands. */
.pp-opis__row .pp-stamp { animation: pp-stamp-small .42s var(--ease-out) both; animation-delay: inherit; }
.pp-opis__row:nth-child(1) .pp-stamp { animation-delay: 220ms; }
.pp-opis__row:nth-child(2) .pp-stamp { animation-delay: 255ms; }
.pp-opis__row:nth-child(3) .pp-stamp { animation-delay: 290ms; }
.pp-opis__row:nth-child(4) .pp-stamp { animation-delay: 325ms; }
.pp-opis__row:nth-child(5) .pp-stamp { animation-delay: 360ms; }
.pp-opis__row:nth-child(n+6) .pp-stamp { animation-delay: 400ms; }
@keyframes pp-stamp-small {
  0%   { opacity: 0; transform: rotate(-2.5deg) scale(1.35); }
  60%  { opacity: 1; transform: rotate(-2.5deg) scale(.96); }
  100% { opacity: 1; transform: rotate(-2.5deg) scale(1); }
}
/* While a search is running the current list dims instead of vanishing. */
#search-main:has(.htmx-request) .pp-sheet { opacity: .5; transition: opacity .2s ease; }

/* The decision's outcome is stamped once when the sheet opens. */
.pp-a4__stamp.pp-stamp--lg { animation: pp-stamp-big .9s var(--ease-out) .25s both; }
@keyframes pp-stamp-big {
  0%, 30% { opacity: 0; transform: rotate(-2.5deg) scale(1.6); filter: blur(2px); }
  55%     { opacity: 1; transform: rotate(-2.5deg) scale(.95); filter: blur(0); }
  75%     { transform: rotate(-2.5deg) scale(1.02); }
  100%    { opacity: 1; transform: rotate(-2.5deg) scale(1); }
}

/* Saving a decision presses the bookmark like a stamp. */
.pp-btn[aria-pressed="true"] svg { animation: pp-pop .45s var(--ease-out); }
@keyframes pp-pop { 0% { transform: scale(.4); } 60% { transform: scale(1.25); } 100% { transform: scale(1); } }
/* Copy-citation acknowledgement. */
.pp-btn.is-done { background: var(--brand-glow); border-color: var(--brand-edge); }

/* Home: the white sheets slide out from under the cover as they scroll in. */
@supports (animation-timeline: view()) {
  .pp-home-cols > .pp-sheet, .pp-home-cols > div > .pp-sheet {
    animation: pp-sheet-out linear both;
    animation-timeline: view();
    animation-range: entry 0% entry 60%;
  }
}
@keyframes pp-sheet-out { from { opacity: .3; transform: translateY(40px); } }

/* Related decisions and browse lists: quiet hover drift. */
.pp-related__item { transition: transform .18s var(--ease-out), background-color .15s ease; }
.pp-related__item:hover { transform: translateX(4px); }
.pp-registry__cell, .pp-cover__stamp { transition: transform .2s var(--ease-out); }
.pp-cover__stamp:hover { transform: rotate(var(--r)) translateY(-3px); }

/* Notices and the cookie slip arrive from where they belong. */
.pp-notice { animation: pp-notice-in .3s var(--ease-out) both; }
@keyframes pp-notice-in { from { opacity: 0; transform: translateY(-6px); } }
.pp-cookiebar:not([hidden]) { animation: pp-slip-up .45s var(--ease-out) .6s both; }
@keyframes pp-slip-up { from { transform: translateY(100%); } }
details.pp-disclosure[open] > form, details.pp-faq__row[open] .pp-faq__ans { animation: pp-unfold .25s var(--ease-out); }
@keyframes pp-unfold { from { opacity: 0; transform: translateY(-4px); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
  body::before { animation: none !important; }
}
@media print { .pp-opis__row, .pp-stamp, .pp-a4__stamp { animation: none !important; } }
