/* Majd meglátjuk – modern, clean, accessible. System fonts only (no external requests). */
:root {
  color-scheme: light;
  --font: "Inter", "InterVariable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --bg: #f5f7f9; --surface: #ffffff; --surface-2: #f0f3f6; --fg: #111827; --muted: #4b5563; --line: #e2e7ec;
  --acc: #0f6b56; --acc-strong: #0b5444; --acc-soft: #e3f3ee; --acc-ring: rgba(15,107,86,.28);
  --warn: #92400e; --warn-soft: #fef3e2;
  --shadow-sm: 0 1px 2px rgba(16,24,40,.05);
  --shadow: 0 1px 2px rgba(16,24,40,.04), 0 4px 14px rgba(16,24,40,.06);
  --shadow-lg: 0 2px 4px rgba(16,24,40,.04), 0 12px 32px rgba(16,24,40,.09);
  --r: 14px; --r-sm: 10px; --ease: 160ms cubic-bezier(.2,.7,.3,1);
  --header-h: 60px;
  /* type badges: bg / fg */
  --b-def-bg:#eef1f5; --b-def-fg:#374151;
  --b-rend-bg:#dcf2e8; --b-rend-fg:#0e5a45;
  --b-hat-bg:#e4e8fb; --b-hat-fg:#2e3a8c;
  --b-tv-bg:#fbe4e4; --b-tv-fg:#8a1f1f;
  --b-terv-bg:#fdf0d5; --b-terv-fg:#7a4a00;
  --b-mk-bg:#eef0f2; --b-mk-fg:#4b5563;
}
/* dark mode: the boot script in <head> sets <html data-mode> from the system setting (Modern theme: or the saved choice) */
:root:where([data-mode="dark"]) {
    color-scheme: dark;
    --bg: #0d1117; --surface: #151b23; --surface-2: #1c232d; --fg: #e8edf2; --muted: #a3adb9; --line: #2a333f;
    --acc: #4fd1a5; --acc-strong: #7ee0bd; --acc-soft: #12302a; --acc-ring: rgba(79,209,165,.35);
    --warn: #f5b04c; --warn-soft: #33260f;
    --shadow-sm: 0 1px 2px rgba(0,0,0,.35);
    --shadow: 0 1px 2px rgba(0,0,0,.3), 0 6px 18px rgba(0,0,0,.28);
    --shadow-lg: 0 2px 4px rgba(0,0,0,.3), 0 14px 36px rgba(0,0,0,.4);
    --b-def-bg:#232b36; --b-def-fg:#cbd3dc;
    --b-rend-bg:#123a30; --b-rend-fg:#86e3c3;
    --b-hat-bg:#1f2550; --b-hat-fg:#b3bcff;
    --b-tv-bg:#431c1c; --b-tv-fg:#ffb4b4;
    --b-terv-bg:#3d2c0c; --b-terv-fg:#f8cf7c;
    --b-mk-bg:#232b36; --b-mk-fg:#a3adb9;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 12px); }
body { margin:0; font: 16px/1.6 var(--font); color:var(--fg); background:var(--bg);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-feature-settings: "cv11", "ss01"; }
a { color: var(--acc); text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color var(--ease); }
a:hover { color: var(--acc-strong); }
:focus-visible { outline: 3px solid var(--acc-ring); outline-offset: 2px; border-radius: 6px; }
::selection { background: var(--acc-soft); }
h1, h2, h3, h4 { letter-spacing: -.015em; line-height: 1.25; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; } }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* ---- header ---- */
header.top { display:flex; flex-wrap:wrap; gap:.6rem 1.5rem; align-items:center; justify-content:space-between;
  min-height: var(--header-h); padding:.55rem max(1.2rem, calc((100vw - 1240px)/2 + 1.2rem));
  background: color-mix(in srgb, var(--surface) 82%, transparent);
  -webkit-backdrop-filter: saturate(1.6) blur(12px); backdrop-filter: saturate(1.6) blur(12px);
  border-bottom:1px solid var(--line); position:sticky; top:0; z-index:5; }
.brand { display:inline-flex; align-items:center; gap:.55rem; font-weight:750; text-decoration:none; color:var(--fg); font-size:1.12rem; letter-spacing:-.02em; }
.brand::before { content:""; width:30px; height:30px; border-radius:8px; flex:none;
  background: url("logo.svg") center / cover no-repeat; }
.brand:hover { color: var(--fg); }
:root:where([data-mode="dark"]) .brand::before { filter: invert(1); }
nav { display:flex; flex-wrap:wrap; gap:.25rem; }
nav a { padding:.42rem .8rem; border-radius:999px; text-decoration:none; color:var(--muted); font-weight:550; font-size:.94rem;
  transition: background var(--ease), color var(--ease); }
nav a:hover { background: var(--surface-2); color: var(--fg); }
nav a[aria-current=page] { background: var(--acc-soft); color: var(--acc-strong); }

/* ---- theme switcher ("Kinézet") ---- */
.top-end { display:flex; flex-wrap:wrap; align-items:center; gap:.25rem .75rem; }
.dateline { display:none; }   /* newspaper themes only */
.theme-switch { position:relative; display:flex; align-items:center; gap:.4rem; }
.mode-btn { display:none; }
html[data-theme="modern"] .mode-btn { display:inline-flex; }
.mode-btn::before { content:"☾"; }
html[data-mode="dark"] .mode-btn::before { content:"☀"; }
.theme-btn { display:inline-flex; align-items:center; gap:.4rem; }
.theme-btn::after { content:""; width:.38rem; height:.38rem; border:solid currentColor; border-width:0 2px 2px 0; transform:rotate(45deg) translateY(-2px); }
.theme-btn[aria-expanded=true]::after { transform:rotate(-135deg); }
.theme-menu { position:absolute; right:0; top:calc(100% + .35rem); z-index:20; min-width:10rem; display:flex; flex-direction:column; gap:2px; padding:.3rem;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-sm); box-shadow:var(--shadow-lg); }
.theme-menu button { text-align:left; border:0; background:none; border-radius:8px; padding:.45rem .7rem .45rem 1.6rem; position:relative; font-weight:550; }
.theme-menu button:hover { background:var(--surface-2); }
.theme-menu button[aria-pressed=true] { color:var(--acc-strong); }
.theme-menu button[aria-pressed=true]::before { content:"✓"; position:absolute; left:.6rem; }

/* ---- page frame ---- */
main { max-width: 920px; margin: 0 auto; padding: 1.5rem 1.2rem 4rem; }
h1 { font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.35rem); font-weight: 800; margin:.4rem 0 .6rem; letter-spacing:-.03em; }
main h2 { font-size:1.35rem; margin:2rem 0 .8rem; }
.intro { margin-bottom: 1.4rem; }
.intro p { color: var(--muted); max-width: 66ch; font-size: 1.03rem; margin:.4rem 0; }
.stats { color: var(--fg) !important; font-size: .95rem !important; }
.muted { color: var(--muted); }
p.more { margin: 2rem 0 1rem; font-weight: 550; }
footer { max-width:1240px; margin:2rem auto 0; padding:2rem 1.2rem 2.5rem; color:var(--muted); font-size:.82rem; line-height:1.6; border-top:1px solid var(--line); }
[hidden] { display:none !important; }
/* csak JavaScripttel működő vezérlők (a <head> boot-szkriptje teszi a <html>-re a `js` osztályt) */
html:not(.js) :is(.mode-btn, .theme-btn, .theme-menu, .cal-toggle, [data-expand]) { display:none !important; }
/* Nyelvváltó (HU/EN): kis, szöveges link a Kinézet gomb előtt; JavaScript nélkül is működik. */
.lang-switch { display:inline-flex; align-items:center; line-height:0; text-decoration:none; padding:2px; border-radius:3px; }
.lang-switch .flag { display:block; width:1.6rem; height:auto; border-radius:2px; box-shadow:0 0 0 1px rgba(0,0,0,.35), 0 1px 2px rgba(0,0,0,.25); transition:transform .15s; }
.lang-switch:hover .flag, .lang-switch:focus-visible .flag { transform:scale(1.12); }
.lang-switch:focus-visible { outline:2px solid currentColor; outline-offset:2px; }

/* ---- summary card ---- */
.card { position:relative; background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:1.4rem 1.6rem; margin:1rem 0 1.5rem; box-shadow: var(--shadow); }
.card.latest { padding:1.8rem 2rem 1.6rem; box-shadow: var(--shadow-lg); overflow:hidden; }
.card.latest::before { content:""; position:absolute; inset:0 0 auto 0; height:4px; background: linear-gradient(90deg, var(--acc), color-mix(in srgb, var(--acc) 40%, #3b82f6)); }
.card .date { display:inline-flex; align-items:center; gap:.4rem; margin:0; font-size:.8rem; font-weight:650; color:var(--acc-strong);
  background: var(--acc-soft); padding:.25rem .7rem; border-radius:999px; letter-spacing:.01em; }
.card h2 { font-size: clamp(1.4rem, 1.15rem + 1vw, 1.9rem); font-weight:800; margin:.8rem 0 .6rem; line-height:1.22; letter-spacing:-.025em; }
.card h3 { font-size:1.1rem; margin:.3rem 0 .4rem; line-height:1.35; }
p.sum-text { font-size:1.12rem; line-height:1.65; margin:.4rem 0; max-width: 68ch; color: var(--fg); }
.sum-text ul { padding-left:1.2rem; margin:.4rem 0; }
.sum-text li { margin:.25rem 0; }
.sum-text p { margin:.4rem 0; }
.highlights { list-style:none; padding:0; margin:1.1rem 0 0; display:grid; gap:.6rem; }
.highlights li { background: var(--surface-2); border-radius: var(--r-sm); padding:.75rem .95rem; font-size:.95rem; line-height:1.55; }
.highlights strong { display:block; margin-bottom:.1rem; }
.highlights .more, .cardlink a { white-space:nowrap; }
details.hl summary { cursor:pointer; color:var(--acc); font-size:.9rem; margin-top:.3rem; }
.cardlink { margin:1.2rem 0 0; }
.cardlink a { display:inline-flex; align-items:center; gap:.3rem; font-weight:650; text-decoration:none; padding:.5rem 1rem; border-radius:999px;
  background: var(--acc); color: #fff; transition: background var(--ease), transform var(--ease), box-shadow var(--ease); }
.cardlink a:hover { background: var(--acc-strong); color:#fff; transform: translateY(-1px); box-shadow: var(--shadow); }
:where(html[data-mode="dark"]) :is(.cardlink a, .cardlink a:hover) { color:#06231b; }
.allitems > summary { display:inline-flex; align-items:center; gap:.3rem; margin:.2rem 0 1rem; cursor:pointer; list-style:none; font-weight:650; padding:.5rem 1rem; border-radius:999px;
  background: var(--acc); color: #fff; transition: background var(--ease); }
.allitems > summary::-webkit-details-marker { display:none; }
.allitems > summary::after { content:"↓"; }
.allitems[open] > summary::after { content:"↑"; }
.allitems > summary:hover { background: var(--acc-strong); }
:where(html[data-mode="dark"]) .allitems > summary { color:#06231b; }
.feedtitle { font-size:1.15rem; margin:2rem 0 .5rem; color:var(--muted); }
.toplist { font-size:.95rem; padding-left:1.2rem; }
.crumbs { font-size:.85rem; color:var(--muted); margin:.2rem 0 .4rem; }
.crumbs a { text-decoration:none; }
.pager { display:flex; justify-content:space-between; gap:1rem; font-size:.9rem; margin:.4rem 0 .8rem; }
.pager a { text-decoration:none; font-weight:550; }

/* ---- day section / item list ---- */
.day { margin: 2.2rem 0; }
.day h2 { display:flex; align-items:baseline; flex-wrap:wrap; gap:.2rem .6rem; font-size:1.35rem; font-weight:750; margin:0 0 .6rem; padding-bottom:.6rem; border-bottom:1px solid var(--line); }
.day h2 a { color: inherit; text-decoration:none; }
.day h2 a:hover { color: var(--acc); }
.day h2 small { font-weight:600; color:var(--muted); font-size:.78rem; background:var(--surface-2); padding:.15rem .6rem; border-radius:999px; letter-spacing:0; }
.chips { display:flex; flex-wrap:wrap; gap:.4rem; margin:.6rem 0 1rem; }
.chip { display:inline-flex; align-items:center; font-size:.8rem; font-weight:550; color:var(--muted); background:var(--surface); border:1px solid var(--line); border-radius:999px; padding:.2rem .7rem; }
.summary { background: var(--acc-soft); border:1px solid color-mix(in srgb, var(--acc) 22%, transparent); border-radius: var(--r-sm); padding:.75rem 1rem; margin:.5rem 0 1rem; line-height:1.55; }
.summary .headline { font-weight:750; font-size:1.12rem; margin:.1rem 0 .4rem; }
.group { margin-top: 1.4rem; }
.group h4 { display:flex; align-items:center; gap:.6rem; margin:0 0 .6rem; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.group h4::after { content:""; flex:1; height:1px; background: var(--line); }
.item { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-sm); padding:.9rem 1.1rem; margin:.6rem 0; box-shadow: var(--shadow-sm);
  transition: box-shadow var(--ease), border-color var(--ease), transform var(--ease); scroll-margin-top: calc(var(--header-h) + 16px); }
.item:hover { box-shadow: var(--shadow); border-color: color-mix(in srgb, var(--acc) 25%, var(--line)); }
.item:target { border-color: var(--acc); box-shadow: 0 0 0 3px var(--acc-ring), var(--shadow); }
.item { padding:0; }
.item summary { display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem .55rem; padding:.7rem 2.2rem .7rem 1.1rem; cursor:pointer; list-style:none; position:relative; border-radius:var(--r-sm); }
.item summary::-webkit-details-marker { display:none; }
.item summary::after { content:""; position:absolute; right:1rem; top:1.05rem; width:.5rem; height:.5rem; border:solid var(--muted); border-width:0 2px 2px 0; transform:rotate(45deg); transition: transform var(--ease); }
.item[open] > summary::after { transform:rotate(-135deg); top:1.2rem; }
.item summary:hover .t { color: var(--acc); }
.item summary:focus-visible { outline-offset:-3px; }
.item .t { flex:1 1 20ch; min-width:0; font-size:1rem; font-weight:620; line-height:1.4; letter-spacing:-.005em; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.item[open] .t { display:block; -webkit-line-clamp:unset; }
.item .by { flex:0 0 100%; font-size:.8rem; color:var(--muted); }
.item .body { padding:0 1.1rem .9rem; border-top:1px solid var(--line); }
.item .body > :first-child { margin-top:.8rem; }
.meta { font-size:.85rem; color:var(--muted); margin:.25rem 0; }
.item .desc { font-size:.97rem; line-height:1.62; margin:.35rem 0 .45rem; color:var(--fg); max-width:78ch;
  padding:.1rem 0 .1rem .85rem; border-left:3px solid var(--acc-soft); }
.item .src { margin:.5rem 0 0; font-size:.88rem; font-weight:600; }
.expandbar { margin:.4rem 0 .8rem; }
.expandbar button[hidden] { display:none; }
.lead { font-size:.93rem; margin:.45rem 0; color: var(--fg); opacity:.92; }
.docs { list-style:none; margin:.6rem 0 0; padding:0; font-size:.86rem; display:flex; flex-direction:column; gap:.2rem; }
.docs li { position:relative; padding-left:1.25rem; overflow-wrap:anywhere; }
.docs li::before { content:""; position:absolute; left:0; top:.32em; width:.75em; height:.95em; border:1.5px solid var(--muted); border-radius:2px 5px 2px 2px; opacity:.7; }
.size { color:var(--muted); }
.badges { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; }
.badge { display:inline-flex; align-items:center; font-size:.72rem; font-weight:650; padding:.15rem .55rem; border-radius:999px; background:var(--b-def-bg); color:var(--b-def-fg); letter-spacing:.01em; }
.badge.g-kormanyrendeletek, .badge.g-miniszteri-rendeletek { background:var(--b-rend-bg); color:var(--b-rend-fg); }
.badge.g-kormanyhatarozatok, .badge.g-miniszterelnoki-dontesek { background:var(--b-hat-bg); color:var(--b-hat-fg); }
.badge.g-torvenyek, .badge.g-alaptorveny { background:var(--b-tv-bg); color:var(--b-tv-fg); }
.badge.g-jogszabalytervezetek-tarsadalmi-egyeztetes { background:var(--b-terv-bg); color:var(--b-terv-fg); }
.badge.g-kozlony-lapszamok { background:var(--b-mk-bg); color:var(--b-mk-fg); }
.late { font-size:.72rem; font-weight:600; color:var(--warn); background:var(--warn-soft); padding:.12rem .5rem; border-radius:999px; }

/* ---- type filter (chips) ---- */
.filters { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-sm); padding:.75rem 1rem; margin:1rem 0; box-shadow: var(--shadow-sm); }
.filters summary { cursor:pointer; font-weight:650; font-size:.95rem; list-style-position: inside; }
.boxes { display:flex; flex-wrap:wrap; gap:.45rem; margin:.8rem 0 .6rem; font-size:.86rem; }
.boxes label { display:inline-flex; align-items:center; gap:.4rem; padding:.3rem .75rem .3rem .55rem; border:1px solid var(--line); border-radius:999px; cursor:pointer;
  background: var(--surface); color: var(--muted); user-select:none; transition: background var(--ease), border-color var(--ease), color var(--ease); }
.boxes label:hover { border-color: color-mix(in srgb, var(--acc) 45%, var(--line)); }
.boxes label:has(input:checked) { background: var(--acc-soft); border-color: color-mix(in srgb, var(--acc) 40%, transparent); color: var(--fg); }
.boxes input { accent-color: var(--acc); width:1rem; height:1rem; margin:0; }
.boxes .n { color:var(--muted); font-size:.75rem; font-weight:650; background: var(--surface-2); border-radius:999px; padding:0 .45rem; }
.filters p { display:flex; flex-wrap:wrap; gap:.4rem; margin:.3rem 0 .1rem; }
button { font:inherit; font-size:.84rem; font-weight:600; padding:.35rem .85rem; border:1px solid var(--line); background:var(--surface-2); color:var(--fg); border-radius:999px; cursor:pointer;
  transition: background var(--ease), border-color var(--ease); }
button:hover { background: var(--acc-soft); border-color: color-mix(in srgb, var(--acc) 40%, transparent); }

/* ---- archive table ---- */
.tablewrap { overflow-x:auto; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-sm); box-shadow: var(--shadow-sm); margin-bottom:1.5rem; }
table.arch { border-collapse:collapse; width:100%; font-size:.9rem; }
.arch th { font-size:.75rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); background: var(--surface-2); font-weight:700; }
.arch th, .arch td { border-bottom:1px solid var(--line); padding:.6rem .8rem; text-align:left; vertical-align:top; }
.arch tbody tr:last-child td { border-bottom:0; }
.arch tbody tr { transition: background var(--ease); }
.arch tbody tr:hover { background: var(--surface-2); }
.arch td:first-child a { white-space:nowrap; font-weight:600; text-decoration:none; }

/* ---- glossary ---- */
.glossary { margin:2rem 0; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-sm); padding:.8rem 1.1rem; box-shadow: var(--shadow-sm); }
.glossary summary { cursor:pointer; font-weight:650; }
.glossary dt { font-weight:650; margin-top:.8rem; }
.glossary dd { margin:.15rem 0 0; color:var(--muted); }

/* ---- layout with sticky day sidebar ---- */
.layout { max-width:1240px; margin:0 auto; display:grid; grid-template-columns:280px minmax(0,1fr); gap:0 2.2rem; padding:0 1.2rem; }
.layout main { max-width:none; margin:0; padding:1.5rem 0 3rem; min-width:0; }
aside.days { position:sticky; top: var(--header-h); align-self:start; padding-top:1.5rem; max-height:calc(100vh - var(--header-h) - 3rem); display:flex; flex-direction:column; }
.days-title { font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin:0 0 .6rem .2rem; }
.daylist { flex:1 1 auto; min-height:8rem; overflow-y:auto; border:1px solid var(--line); border-radius:var(--r); background:var(--surface); padding:.3rem; box-shadow: var(--shadow);
  scrollbar-width: thin; scrollbar-color: var(--line) transparent; overscroll-behavior: contain; }
.daylist .mon { margin:0; padding:.6rem .7rem .35rem; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted);
  background: color-mix(in srgb, var(--surface) 92%, transparent); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); position:sticky; top:-.3rem; z-index:1; }
.daylist ol { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.daylist a { position:relative; display:block; padding:.5rem .75rem .5rem .9rem; text-decoration:none; color:var(--fg); border-radius:var(--r-sm); font-size:.85rem; line-height:1.35;
  transition: background var(--ease), color var(--ease); }
.daylist a:hover { background: var(--surface-2); }
.daylist a.cur { background: var(--acc-soft); }
.daylist a.cur::before { content:""; position:absolute; left:.3rem; top:.55rem; bottom:.55rem; width:3px; border-radius:3px; background: var(--acc); }
.daylist a.cur .dd { color: var(--acc-strong); }
.daylist .dd { display:block; font-weight:650; }
.daylist .dd small { font-weight:500; color:var(--muted); margin-left:.15rem; }
.daylist .hl { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; color:var(--muted); font-size:.82rem; margin-top:.1rem; }
.daylist .n { display:none; }


/* ---- calendar (above the day list) ---- */
.calbox { flex:none; margin-bottom:1rem; }
.cal { background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:.55rem .6rem .6rem; box-shadow:var(--shadow); }
.cal-head { display:flex; align-items:center; justify-content:space-between; margin:0 0 .3rem; }
.cal-title { font-size:.85rem; font-weight:700; }
.cal-nav { width:1.9rem; height:1.9rem; padding:0; border-radius:50%; font-size:1.15rem; line-height:1; display:inline-flex; align-items:center; justify-content:center; }
.cal-nav:disabled { opacity:.3; cursor:default; background:none; border-color:transparent; }
.cal-grid { width:100%; border-collapse:separate; border-spacing:2px; table-layout:fixed; text-align:center; }
.cal-grid th { font-size:.68rem; font-weight:650; color:var(--muted); padding:.1rem 0 .2rem; }
.cal-grid abbr { text-decoration:none; }
.cal-grid td { padding:0; }
.cal-grid a, .cal-grid .none { position:relative; display:flex; align-items:center; justify-content:center; height:1.95rem; border-radius:8px; font-size:.8rem; font-variant-numeric:tabular-nums; text-decoration:none; }
.cal-grid .none { color:var(--muted); opacity:.4; cursor:default; }
.cal-grid a { color:var(--fg); font-weight:600; background:var(--surface-2); transition: background var(--ease), color var(--ease); }
.cal-grid a:hover { background:var(--acc-soft); color:var(--acc-strong); }
.cal-grid a.cur { background:var(--acc); color:#fff; }
.cal-grid a.dec::after { content:""; position:absolute; left:50%; bottom:3px; transform:translateX(-50%); border-radius:50%; background:var(--acc); width:5px; height:5px; }
.cal-grid a.dec.l2::after { width:6px; height:6px; }
.cal-grid a.dec.l3::after { width:8px; height:8px; }
.cal-grid a.dec { padding-bottom:5px; }
.cal-grid a.dec.l3:not(.cur, :hover) { background:var(--acc-soft); }
.cal-grid a.cur::after { background:#fff; }
.cal-legend { display:flex; align-items:center; gap:.25rem; margin:.45rem 0 0 .2rem; font-size:.72rem; color:var(--muted); }
.dot { display:inline-block; border-radius:50%; background:var(--acc); width:5px; height:5px; }
.dot.l2 { width:7px; height:7px; } .dot.l3 { width:9px; height:9px; }
.cal-toggle { display:none; }
:where(html[data-mode="dark"]) .cal-grid a.cur { color:#06231b; } :where(html[data-mode="dark"]) .cal-grid a.cur::after { background:#06231b; }

/* ---- responsive ---- */
@media (max-width:860px) {
  :root { --header-h: 64px; }
  html { scroll-padding-top: 5rem; }
  header.top { position:static; padding:.6rem .9rem; gap:.4rem; }
  nav { gap:.15rem; margin-left:-.5rem; }
  nav a { padding:.35rem .6rem; font-size:.9rem; }
  .layout { display:block; padding:0; }
  .layout main { padding:1rem .9rem 2.5rem; }
  aside.days { position:sticky; top:0; z-index:4; padding:.5rem 0; background: color-mix(in srgb, var(--bg) 88%, transparent);
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom:1px solid var(--line); }
  aside.days { display:block; max-height:none; }
  .days-title { display:none; }
  .calbox { margin:0; padding:0 .9rem .35rem; }
  .cal-toggle { display:inline-flex; align-items:center; gap:.4rem; padding:.25rem .75rem; font-size:.8rem; }
  .cal-toggle::after { content:""; width:.4rem; height:.4rem; border:solid currentColor; border-width:0 2px 2px 0; transform:rotate(45deg) translateY(-2px); transition:transform var(--ease); }
  .calbox.open .cal-toggle { background:var(--acc-soft); border-color:color-mix(in srgb, var(--acc) 40%, transparent); }
  .calbox.open .cal-toggle::after { transform:rotate(-135deg); }
  .js .calbox:not(.open) .cal { display:none; }
  .calbox.open .cal { margin-top:.4rem; max-width:22rem; }
  .cal-grid a, .cal-grid .none { height:2.2rem; font-size:.85rem; }
  .daylist { margin-bottom:0; min-height:0; display:flex; flex-wrap:nowrap; align-items:stretch; overflow-x:auto; overflow-y:hidden; max-height:none; border:0; border-radius:0; background:none; box-shadow:none; padding:.1rem .9rem; gap:.4rem;
    scrollbar-width:none; scroll-snap-type:x proximity; }
  .daylist::-webkit-scrollbar { display:none; }
  .daylist .mon { position:static; align-self:center; padding:0 .1rem 0 .3rem; font-size:.66rem; background:none; backdrop-filter:none; flex:none; white-space:nowrap; }
  .daylist .mon .y { display:none; }
  .daylist ol { flex-direction:row; gap:.4rem; }
  .daylist li { flex:none; scroll-snap-align:center; }
  .daylist a { border:1px solid var(--line); border-radius:12px; background:var(--surface); padding:.35rem .7rem; text-align:center; white-space:nowrap; box-shadow: var(--shadow-sm); }
  .daylist a.cur { background: var(--acc); border-color: var(--acc); }
  .daylist a.cur::before { display:none; }
  .daylist a.cur .dd, .daylist a.cur .dd small, .daylist a.cur .n { color:#fff; }
  .daylist .hl { display:none; }
  .daylist .n { display:block; font-size:.7rem; color:var(--muted); }
  main { padding: 1rem .9rem 3rem; }
  .card, .card.latest { padding:1.2rem 1.1rem; border-radius:12px; }
  .card h2 { font-size:1.35rem; }
  p.sum-text { font-size:1.04rem; }
  .item summary { padding:.65rem 2rem .65rem .9rem; }
  .item .t { flex-basis:100%; }
  .item .body { padding:0 .9rem .8rem; }
  footer { padding:1.5rem .9rem 2rem; }
}
@media (max-width:860px) {
  :where(html[data-mode="dark"]) :is(.daylist a.cur .dd, .daylist a.cur .dd small, .daylist a.cur .n) { color:#06231b; }
}

/* ---- promise tracker (/igeretek/) ---- */
:root { --p-ok:#0f7a4f; --p-ok-soft:#dff3e8; --p-wip:#a15c00; --p-wip-soft:#fdf0d5; --p-none:#6b7280; --p-none-soft:#eef1f5; --p-contra:#b42318; --p-contra-soft:#fde7e5; }
:root:where([data-mode="dark"]) { --p-ok:#5fd39b; --p-ok-soft:#123a2a; --p-wip:#f5b04c; --p-wip-soft:#3d2c0c; --p-none:#a3adb9; --p-none-soft:#232b36; --p-contra:#ff8a80; --p-contra-soft:#431c1c; }
.psummary { padding:1.2rem 1.4rem; }
.pbar { display:flex; height:12px; border-radius:999px; overflow:hidden; background:var(--surface-2); margin-bottom:1rem; }
.pbar span { display:block; height:100%; }
.pbar-ok { background:var(--p-ok); } .pbar-wip { background:var(--p-wip); } .pbar-none { background:var(--p-none); opacity:.45; } .pbar-contra { background:var(--p-contra); }
.ptiles { display:grid; grid-template-columns:repeat(auto-fit, minmax(140px, 1fr)); gap:.6rem; }
.ptile { font:inherit; text-align:left; cursor:pointer; border:1px solid var(--line); border-radius:var(--r-sm); padding:.7rem .9rem; background:var(--surface);
  color:var(--fg); display:flex; flex-direction:column; gap:.1rem; transition:border-color var(--ease), box-shadow var(--ease), background var(--ease); }
.ptile:hover { box-shadow:var(--shadow-sm); border-color:var(--muted); }
.ptile[aria-pressed=true] { box-shadow:0 0 0 3px var(--acc-ring); }
.ptile-n { font-size:1.7rem; font-weight:800; letter-spacing:-.03em; line-height:1.1; }
.ptile-l { font-size:.9rem; font-weight:600; }
.ptile.ps-ok { background:var(--p-ok-soft); } .ptile.ps-ok .ptile-n, .ptile.ps-ok .ptile-l { color:var(--p-ok); }
.ptile.ps-wip { background:var(--p-wip-soft); } .ptile.ps-wip .ptile-n, .ptile.ps-wip .ptile-l { color:var(--p-wip); }
.ptile.ps-none { background:var(--p-none-soft); } .ptile.ps-none .ptile-n, .ptile.ps-none .ptile-l { color:var(--p-none); }
.ptile.ps-contra { background:var(--p-contra-soft); } .ptile.ps-contra .ptile-n, .ptile.ps-contra .ptile-l { color:var(--p-contra); }
.pfilters { display:flex; flex-wrap:wrap; gap:.6rem 1rem; align-items:center; margin:0 0 1rem; padding:.7rem .9rem; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--r-sm); position:sticky; top:calc(var(--header-h) + 6px); z-index:3; box-shadow:var(--shadow-sm); }
.pfilters label { display:flex; gap:.45rem; align-items:center; font-weight:600; font-size:.92rem; }
.pfilters select { font:inherit; font-weight:500; padding:.38rem .6rem; border-radius:8px; border:1px solid var(--line); background:var(--surface-2); color:var(--fg); max-width:58vw; }
.ptopic h2 { font-size:1.15rem; margin:1.8rem 0 .6rem; color:var(--muted); }
.pcard { background:var(--surface); border:1px solid var(--line); border-left:5px solid var(--p-none); border-radius:var(--r); padding:1rem 1.2rem; margin:.7rem 0; box-shadow:var(--shadow-sm); }
.pcard.ps-ok { border-left-color:var(--p-ok); } .pcard.ps-wip { border-left-color:var(--p-wip); } .pcard.ps-contra { border-left-color:var(--p-contra); }
.phead { display:flex; flex-wrap:wrap; gap:.4rem .8rem; justify-content:space-between; align-items:center; font-size:.85rem; }
.pstatus { font-weight:700; padding:.18rem .6rem; border-radius:999px; background:var(--p-none-soft); color:var(--p-none); }
.ps-ok .pstatus { background:var(--p-ok-soft); color:var(--p-ok); } .ps-wip .pstatus { background:var(--p-wip-soft); color:var(--p-wip); }
.ps-contra .pstatus { background:var(--p-contra-soft); color:var(--p-contra); }
.pref { color:var(--muted); font-variant-numeric:tabular-nums; }
.pcard h3 { font-size:1.05rem; margin:.55rem 0 .35rem; }
.pcard blockquote { margin:.3rem 0 .5rem; padding:.1rem 0 .1rem .8rem; border-left:3px solid var(--line); color:var(--muted); font-size:.9rem; font-style:italic; }
.pnote { margin:.35rem 0; font-size:.93rem; }
.pev summary { cursor:pointer; font-weight:600; font-size:.92rem; color:var(--acc); margin-top:.3rem; }
.pev ul { list-style:none; padding:0; margin:.5rem 0 0; }
.pev li { padding:.5rem 0; border-top:1px solid var(--line); font-size:.92rem; line-height:1.5; }
.pev time { font-weight:600; font-variant-numeric:tabular-nums; margin-right:.3rem; white-space:nowrap; }
.pmethod { margin:0 0 1rem; } .pmethod summary { cursor:pointer; font-weight:650; } .pmethod li { margin:.3rem 0; }
@media (max-width: 600px) {
  .pcard { padding:.85rem .95rem; }
  .pfilters { position:static; }
  .pfilters label { width:100%; justify-content:space-between; }
  .pfilters select { max-width:70vw; }
  .ptile-n { font-size:1.4rem; }
}
.prel summary { color:var(--muted); font-weight:550; }

/* ---- small screens, Modern theme only (the newspaper themes have their own mobile layout) ---- */
@media (max-width:860px) {
  html[data-theme="modern"] {
    /* brand + "Kinézet" on one row, the menu on one scrollable row below */
    header.top { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.3rem .5rem; padding:.5rem .9rem .45rem; position:relative; }
    .top-end { display:contents; }
    .brand { min-width:0; white-space:nowrap; }
    .theme-switch { grid-row:1; grid-column:2; }
    .theme-btn, .mode-btn { padding:.3rem .7rem; font-size:.8rem; }
    nav { grid-column:1 / -1; flex-wrap:nowrap; gap:.2rem; overflow-x:auto; scrollbar-width:none; margin:0 -.9rem; padding:0 .9rem; }
    nav::-webkit-scrollbar { display:none; }
    nav a { flex:none; white-space:nowrap; padding:.35rem .45rem; font-size:.86rem; }
    nav a:first-child { margin-left:-.45rem; }
    aside.days { background: color-mix(in srgb, var(--bg) 96%, transparent); }
    /* archive: one block per day instead of a wide table */
    .tablewrap { overflow:visible; }
    table.arch, .arch tbody, .arch tr, .arch td { display:block; }
    .arch thead { display:none; }
    .arch tr { padding:.75rem 1rem; border-bottom:1px solid var(--line); }
    .arch tbody tr:last-child { border-bottom:0; }
    .arch td { border:0; padding:0; }
    .arch td:nth-child(2) { margin:.15rem 0 .35rem; line-height:1.45; }
    .arch td[data-label] { display:inline; font-size:.8rem; color:var(--muted); }
    .arch td[data-label]::before { content:attr(data-label) ": "; }
    .arch td[data-label] + td[data-label]::before { content:" · " attr(data-label) ": "; }
  }
}
@media (max-width:600px) {
  html[data-theme="modern"] {
    .psummary { padding:1rem; }
    .ptiles { grid-template-columns:repeat(2, minmax(0,1fr)); gap:.5rem; }
    .ptile { padding:.6rem .7rem; }
    .ptile-l { font-size:.82rem; }
    .pfilters { display:grid; grid-template-columns:auto minmax(0,1fr); gap:.5rem .75rem; }
    .pfilters label { display:contents; }
    .pfilters select { width:100%; max-width:none; }
    .pfilters > span { grid-column:1 / -1; }
    .pfilters > span:empty { display:none; }
  }
}

/* ---- Modern theme: clean and flat (white page, no shadows, no gradients, few pills) ---- */
html[data-theme="modern"] {
  --bg: #ffffff; --surface: #ffffff; --surface-2: #f5f6f7; --line: #e6e8eb; --muted: #5f6670;
  --shadow-sm: none; --shadow: none; --shadow-lg: 0 8px 24px rgba(16,24,40,.08);
  --r: 10px; --r-sm: 8px;
  &[data-mode="dark"] {
    --bg: #0f1115; --surface: #0f1115; --surface-2: #181b21; --line: #262a31; --muted: #9aa3ad;
    --shadow-lg: 0 8px 24px rgba(0,0,0,.5);
  }

  /* header: solid, plain text links, active page underlined */
  header.top { background: var(--bg); -webkit-backdrop-filter: none; backdrop-filter: none; }
  .brand { font-weight: 700; }
  nav a { border-radius: 0; padding: .4rem .7rem; font-weight: 500; }
  nav a:hover { background: none; color: var(--fg); }
  nav a[aria-current=page] { background: none; color: var(--fg); box-shadow: inset 0 -2px 0 var(--fg); }
  button { border-radius: 6px; background: var(--surface); font-weight: 500; }
  button:hover { background: var(--surface-2); border-color: var(--line); }

  /* front-page card: one thin frame, plain date and link */
  .card, .card.latest { border-radius: var(--r); padding: 1.5rem 1.6rem; box-shadow: none; }
  .card.latest::before { display: none; }
  .card .date { background: none; padding: 0; border-radius: 0; color: var(--muted); font-weight: 500; font-size: .88rem; }
  .card h2 { font-weight: 700; margin-top: .4rem; }
  .highlights { gap: 0; }
  .highlights li { background: none; border-radius: 0; padding: .75rem 0; border-top: 1px solid var(--line); }
  .cardlink a, .allitems > summary { background: none; color: var(--acc); padding: 0; border-radius: 0; font-weight: 600; }
  .cardlink a:hover, .allitems > summary:hover { background: none; color: var(--acc-strong); transform: none; box-shadow: none; text-decoration: underline; }
  .day h2 small, .chip, .boxes label, .boxes .n { border-radius: 6px; }
  .boxes label:has(input:checked) { background: var(--surface); border-color: var(--line); }
  .boxes .n { background: none; padding: 0; }
  .summary { background: var(--surface-2); border: 0; border-radius: var(--r-sm); }

  /* items: rows with dividers instead of separate boxes */
  .item { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; margin: 0; }
  .item:hover { border-color: var(--line); }
  .item:target { box-shadow: none; background: var(--surface-2); }
  .item summary { padding-left: 0; border-radius: 0; }
  .item .body { padding-left: 0; border-top: 0; }
  .item .body > :first-child { margin-top: 0; }
  .item .desc { border-left: 0; padding-left: 0; }
  .badge, .late { border-radius: 4px; }

  /* boxes */
  :is(.filters, .glossary, .tablewrap, .pfilters) { border-radius: var(--r-sm); }
  .arch th { background: none; }

  /* day column: plain list, no box */
  .daylist { border: 0; background: none; padding: 0; }
  .daylist .mon { background: var(--bg); padding-left: .75rem; }
  .daylist a { border-radius: 6px; }
  .daylist a.cur { background: var(--surface-2); }
  .daylist a.cur::before { display: none; }
  .daylist a.cur .dd { color: var(--fg); }
  .cal { border-radius: var(--r); }
  .cal-grid a { background: none; border-radius: 6px; }
  .cal-grid a.dec.l3:not(.cur, :hover) { background: none; }
  .cal-grid a.cur { background: var(--fg); color: var(--bg); }
  .cal-grid a.cur::after { background: var(--bg); }
  .cal-grid a:hover { background: var(--surface-2); color: var(--fg); }

  /* promise tracker: flat tiles, thin status line on the cards */
  .ptile, .ptile:is(.ps-ok, .ps-wip, .ps-none, .ps-contra) { border-radius: var(--r-sm); background: var(--surface); }
  .pbar { height: 8px; }
  .ptile[aria-pressed=true] { box-shadow: 0 0 0 2px var(--fg); }
  .pcard { border-left-width: 3px; border-radius: var(--r-sm); }
  .pstatus { border-radius: 4px; }

  @media (max-width:860px) {
    aside.days { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--bg); }
    .daylist { padding: .1rem .9rem; }
    .daylist a { border-radius: 6px; }
    .daylist a.cur { background: var(--fg); border-color: var(--fg); }
    .daylist a.cur .dd, .daylist a.cur .dd small, .daylist a.cur .n { color: var(--bg); }
  }
}
.consult { list-style:none; padding:0; margin:0; }
.consult .card h2 { font-size:1.15rem; margin:.5rem 0 .3rem; }
.consult .soon { color:var(--acc-strong); font-weight:700; }
.orig { display:block; font-size:.78em; font-weight:400; color:var(--muted); margin-top:.15rem; }

/* értékelés: súly és minőség */
.rbadge { display:inline-flex; align-items:center; font-size:.68rem; font-weight:650; padding:.1rem .45rem; border-radius:999px; border:1px solid var(--line); color:var(--muted); background:var(--surface); }
.rbadge.rw3 { border-color:transparent; background:var(--p-wip-soft); color:var(--p-wip); }
.rbadge.q-erdemi { color:var(--p-ok); } .rbadge.q-reszleges { color:var(--p-wip); } .rbadge.q-latszat { color:var(--p-contra); }
.item.w3 { border-left:3px solid var(--p-wip); }
.rnote { font-size:.88rem; color:var(--muted); }
.pscore { display:flex; align-items:baseline; gap:.5rem; margin:0 0 .8rem; }
.pscore-n { font-size:2.2rem; font-weight:800; letter-spacing:-.03em; }
.pscore-l { color:var(--muted); }
.pw { letter-spacing:.05em; }
.pdeg { font-weight:600; }
.ptile.ps-nke { background:var(--p-none-soft); } .ptile.ps-nke .ptile-n, .ptile.ps-nke .ptile-l { color:var(--p-none); }
.pbar-nke { background:var(--p-none); opacity:.2; }
.method h2 { font-size:1.15rem; margin-top:1.2rem; } .method li { margin:.35rem 0; }
.imprint { max-width:40rem; }
.imprint .author { display:flex; align-items:center; gap:1rem; padding-bottom:1rem; margin-bottom:1rem; border-bottom:1px solid var(--line); }
.imprint .author img { width:72px; height:72px; border-radius:50%; object-fit:cover; flex:none; border:1px solid var(--line); }
.imprint .author div { display:flex; flex-direction:column; line-height:1.35; }
.imprint .aname { font-size:1.2rem; font-weight:800; letter-spacing:-.01em; }
.imprint .ilabel, .imprint dt { font-size:.75rem; font-weight:650; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.imprint dl { display:grid; grid-template-columns:max-content 1fr; gap:.55rem 1.2rem; margin:0; align-items:baseline; }
.imprint dd { margin:0; }

html { scrollbar-gutter: stable; }

/* Ígéret-változások grafikonja (PromiseChart.astro) és az ígéretkártya előzményei */
.pchart { margin:0 0 1rem; padding:.8rem 1rem .6rem; }
.pchart figcaption { display:flex; flex-wrap:wrap; gap:.4rem 1rem; align-items:center; font-size:.9rem; margin-bottom:.3rem; }
.pchart-legend { display:flex; flex-wrap:wrap; gap:.25rem .8rem; color:var(--muted); font-size:.8rem; }
.pchart-legend span { display:inline-flex; align-items:center; gap:.3rem; }
.pchart-svg { display:block; width:100%; height:auto; overflow:visible; }
.pc-ok { fill:var(--p-ok); } .pc-wip { fill:var(--p-wip); } .pc-other { fill:var(--p-none); }
.pc-hatch-bg { fill:none; } .pc-hatch-ln { stroke:var(--fg); stroke-width:1.6; } .pc-dot { fill:var(--fg); }
.pc-line { fill:none; stroke:var(--fg); stroke-width:1.6; stroke-linejoin:round; }
.pc-axis { stroke:var(--line); }
.pc-tick { fill:var(--muted); font-size:10px; font-family:inherit; }
.pc-hit { fill:transparent; }
.pc-week:hover .pc-hit { fill:var(--surface-2); }
.pchanged { white-space:nowrap; margin-left:.5rem; color:var(--muted); font-size:.78rem; }
.ptimeline { list-style:none; margin:.3rem 0 0; padding:0 0 0 .9rem; border-left:2px solid var(--line); font-size:.85rem; }
.ptimeline li { position:relative; margin:.2rem 0; }
.ptimeline li::before { content:""; position:absolute; left:calc(-.9rem - 5px); top:.45em; width:8px; height:8px; border-radius:50%; background:var(--p-none); }
.ptimeline li.ps-ok::before { background:var(--p-ok); } .ptimeline li.ps-wip::before { background:var(--p-wip); } .ptimeline li.ps-contra::before { background:var(--p-contra); }
.ptimeline time { color:var(--muted); margin-right:.3rem; }
