/* assets/fonts/fonts.css */
/* Önhosztolt betűk (OFL), hogy a látogatók IP-címe ne jusson el a Google-höz. Figtree 400-700, Bricolage Grotesque 700-800. */
/* figtree-latin-ext-400-normal */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(assets/fonts/figtree-latin-ext-400-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* figtree-latin-400-normal */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(assets/fonts/figtree-latin-400-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* figtree-latin-ext-500-normal */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(assets/fonts/figtree-latin-ext-500-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* figtree-latin-500-normal */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(assets/fonts/figtree-latin-500-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* figtree-latin-ext-600-normal */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(assets/fonts/figtree-latin-ext-600-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* figtree-latin-600-normal */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(assets/fonts/figtree-latin-600-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* figtree-latin-ext-700-normal */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(assets/fonts/figtree-latin-ext-700-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* figtree-latin-700-normal */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(assets/fonts/figtree-latin-700-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* bricolage-grotesque-latin-ext-700-normal */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(assets/fonts/bricolage-grotesque-latin-ext-700-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* bricolage-grotesque-latin-700-normal */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(assets/fonts/bricolage-grotesque-latin-700-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* bricolage-grotesque-latin-ext-800-normal */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(assets/fonts/bricolage-grotesque-latin-ext-800-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* bricolage-grotesque-latin-800-normal */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(assets/fonts/bricolage-grotesque-latin-800-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* assets/css/falka.css */
/* ==========================================================================
   Bundee design rendszer
   Szilva + menta. Kutya: vajsárga, macska: palakék. Világos és sötét téma.
   Címek: Bricolage Grotesque · Szöveg: Figtree
   ========================================================================== */

:root {
  --paper: #F7F6F9;
  --paper-2: #EEEBF4;
  --surface: #FFFFFF;
  --surface-glass: rgba(255, 255, 255, 0.78);
  --line: #E2DDEB;
  --ink: #221D2E;
  --muted: #655E74;
  --pine: #55407E;
  --pine-hover: #46336A;
  --pine-soft: #ECE7F4;
  --on-pine: #FFFFFF;
  --butter: #6FC7A6;
  --butter-soft: #DDF3EA;
  --slate: #8E9CB5;
  --blush: #F2A7A0;
  --good: #1F7A57;
  --good-soft: #DDF3EA;
  --warn: #9A6410;
  --warn-soft: #FBEFD3;
  --bad: #B3362B;
  --bad-soft: #FBE5E2;
  --paw-dog: #55407E;
  --paw-cat: #6FC7A6;

  /* Illusztráció */
  --ha-blob: #ECE7F4;
  --ha-shadow: rgba(34, 29, 46, 0.10);
  --ha-ink: #221D2E;

  --shadow-lift: 0 1px 2px rgba(30, 43, 42, 0.06), 0 8px 24px -12px rgba(30, 43, 42, 0.18);
  --r-lg: 22px;
  --r-md: 14px;
  --r-sm: 10px;
  --font-display: 'Bricolage Grotesque', 'Figtree', system-ui, sans-serif;
  --font-body: 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper: #14111B;
    --paper-2: #1C1826;
    --surface: #201B2B;
    --surface-glass: rgba(32, 27, 43, 0.78);
    --line: #322B40;
    --ink: #EEEAF5;
    --muted: #AAA2BA;
    --pine: #C2B0EA;
    --pine-hover: #D3C5F1;
    --pine-soft: #2E2640;
    --on-pine: #17121F;
    --butter-soft: #1C3A30;
    --good: #86D7B8;
    --good-soft: #1C3A30;
    --warn: #F2C25E;
    --warn-soft: #3A2F18;
    --bad: #F08C80;
    --bad-soft: #3D1F1C;
    --paw-dog: #C2B0EA;
    --paw-cat: #86D7B8;
    --ha-blob: #241E32;
    --ha-shadow: rgba(0, 0, 0, 0.35);
    --ha-ink: #17121F;
    --shadow-lift: 0 1px 2px rgba(0, 0, 0, 0.3), 0 10px 28px -14px rgba(0, 0, 0, 0.6);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --paper: #14111B;
  --paper-2: #1C1826;
  --surface: #201B2B;
  --surface-glass: rgba(32, 27, 43, 0.78);
  --line: #322B40;
  --ink: #EEEAF5;
  --muted: #AAA2BA;
  --pine: #C2B0EA;
  --pine-hover: #D3C5F1;
  --pine-soft: #2E2640;
  --on-pine: #17121F;
  --butter-soft: #1C3A30;
  --good: #86D7B8;
  --good-soft: #1C3A30;
  --warn: #F2C25E;
  --warn-soft: #3A2F18;
  --bad: #F08C80;
  --bad-soft: #3D1F1C;
  --paw-dog: #C2B0EA;
  --paw-cat: #86D7B8;
  --ha-blob: #241E32;
  --ha-shadow: rgba(0, 0, 0, 0.35);
  --ha-ink: #17121F;
  --shadow-lift: 0 1px 2px rgba(0, 0, 0, 0.3), 0 10px 28px -14px rgba(0, 0, 0, 0.6);
  color-scheme: dark;
}

/* --- Alap ------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.55;
  color: var(--ink);
  background: var(--paper);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
img { max-width: 100%; display: block; }
a { color: var(--pine); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
a:hover { color: var(--pine-hover); }
h1, h2, h3 { font-family: var(--font-display); line-height: 1.1; margin: 0 0 .4em; letter-spacing: -0.02em; font-weight: 700; }
h1 { font-size: clamp(30px, 4.2vw, 40px); }
h2 { font-size: 22px; }
h3 { font-size: 18px; }
p { margin: 0 0 1em; }
.muted { color: var(--muted); }
.inline { display: inline; margin: 0; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--surface); padding: 8px 12px; border-radius: 8px; z-index: 50; }
.skip:focus { left: 8px; }
:focus-visible { outline: 3px solid var(--pine); outline-offset: 2px; border-radius: 6px; }

.glass {
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-lift);
}

.container { width: 100%; max-width: 1120px; margin: 0 auto; padding: 0 16px; }
main { flex: 1; }

/* --- Felső sáv (egyetlen üveghatású elem) ----------------------------------- */
.topbar {
  position: sticky; top: 0; z-index: 20;
  background: var(--surface-glass);
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
  backdrop-filter: blur(16px) saturate(1.4);
  border: 0; border-bottom: 1px solid var(--line);
  box-shadow: none;
}
.topbar__inner { max-width: 1120px; margin: 0 auto; padding: 10px 16px; display: flex; align-items: center; gap: 20px; }
.brand { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; color: var(--ink); font-family: var(--font-display); font-weight: 800; font-size: 24px; letter-spacing: -0.03em; }
.brand:hover { color: var(--ink); }
.brand .logo { width: 36px; height: 36px; }
.mainnav { display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; flex: 1; }
.mainnav a { padding: 8px 14px; border-radius: 999px; font-weight: 600; font-size: 16px; white-space: nowrap; text-decoration: none; color: var(--muted); }
.mainnav a:hover { color: var(--ink); background: var(--paper-2); }
.mainnav a.is-active { color: var(--ink); background: var(--pine-soft); }
.topbar__actions { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.iconbtn { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); background: transparent; color: var(--ink); display: inline-grid; place-items: center; cursor: pointer; }
.iconbtn:hover { background: var(--paper-2); }
.i-moon { display: none; }
:root[data-theme="dark"] .i-sun { display: none; }
:root[data-theme="dark"] .i-moon { display: block; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .i-sun { display: none; }
  :root:not([data-theme="light"]) .i-moon { display: block; }
}
.userchip { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 16px; }
.userchip__avatar { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--paw-cat); color: #17121F; font-family: var(--font-display); font-weight: 800; }
@media (max-width: 760px) {
  .topbar__inner { flex-wrap: wrap; row-gap: 6px; gap: 12px; }
  .mainnav { order: 3; flex-basis: 100%; }
  .userchip__name { display: none; }
}

/* --- Gombok ------------------------------------------------------------ */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 22px; border-radius: 999px; border: 1.5px solid transparent; font: inherit; font-weight: 700; font-size: 16px; cursor: pointer; text-decoration: none; transition: background .15s ease, border-color .15s ease, transform .1s ease; }
.btn:active { transform: translateY(1px); }
.btn--primary { background: var(--pine); color: var(--on-pine); }
.btn--primary:hover { background: var(--pine-hover); color: var(--on-pine); }
.btn--ghost { background: transparent; color: var(--ink); border-color: var(--line); }
.btn--ghost:hover { background: var(--paper-2); color: var(--ink); }
.btn--danger { background: transparent; color: var(--bad); border-color: var(--bad-soft); }
.btn--danger:hover { background: var(--bad-soft); color: var(--bad); }
.btn--sm { padding: 8px 16px; font-size: 15px; }
.btn--block { width: 100%; }

/* --- Értesítések -------------------------------------------------------- */
.flashes { max-width: 1120px; margin: 16px auto 0; padding: 0 16px; display: grid; gap: 8px; }
.alert { padding: 12px 16px; border-radius: var(--r-md); font-weight: 600; background: var(--surface); border: 1px solid var(--line); }
.alert--success { background: var(--good-soft); color: var(--good); border-color: transparent; }
.alert--error { background: var(--bad-soft); color: var(--bad); border-color: transparent; }
.alert--info { background: var(--pine-soft); color: var(--ink); border-color: transparent; }

/* --- Űrlapok ------------------------------------------------------------ */
.form { display: grid; gap: 16px; }
.field { display: grid; gap: 6px; font-weight: 600; font-size: 15px; }
.field small { font-weight: 500; }
.field input, .field select, .field textarea {
  width: 100%; font: inherit; font-weight: 500; color: var(--ink);
  background: var(--surface); border: 1.5px solid var(--line); border-radius: var(--r-sm);
  padding: 11px 14px; min-height: 48px;
}
.field textarea { min-height: 100px; resize: vertical; }
/* Lenyíló listák: saját nyíl, egységes távolsággal a jobb széltől (Chrome, Safari, Firefox) */
select:not([multiple]):not([size]) {
  -webkit-appearance: none; appearance: none;
  padding-right: 44px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23655E74' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center; background-size: 16px 16px;
}
select::-ms-expand { display: none; }
:root[data-theme="dark"] select:not([multiple]):not([size]) {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B3ABC2' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) select:not([multiple]):not([size]) {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B3ABC2' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  }
}
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--pine); box-shadow: 0 0 0 3px var(--pine-soft); }
.field-error { color: var(--bad); font-size: 14px; font-weight: 600; margin: 0; }
.check { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; font-size: 15px; }
.check input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--pine); flex: none; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 560px) { .grid-2 { grid-template-columns: 1fr; } }

.choice { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.choice legend { font-weight: 600; font-size: 15px; margin-bottom: 6px; padding: 0; }
.choice__item { position: relative; display: flex; }
.choice__item input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.choice__item span { flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px; text-align: center; min-height: 52px; text-wrap: balance; padding: 12px 10px; border-radius: var(--r-sm); border: 1.5px solid var(--line); background: var(--surface); font-weight: 700; }
.choice__item img { width: 22px; height: 22px; flex: none; }
@media (min-width: 421px) { .choice--oneline .choice__item span { white-space: nowrap; padding: 12px 8px; gap: 6px; } }
@media (max-width: 400px) { .choice__item span { font-size: 15px; gap: 6px; padding: 12px 8px; } }
.choice__item input:checked + span { border-color: var(--pine); background: var(--pine-soft); }
.choice__item input:focus-visible + span { outline: 3px solid var(--pine); outline-offset: 2px; }
.choice .field-error { grid-column: 1 / -1; }

/* --- Belépés / regisztráció ------------------------------------------------ */
.auth { display: grid; place-items: start center; padding: 48px 16px 72px; }
.auth__card { width: 100%; max-width: 460px; border-radius: var(--r-lg); padding: 32px; }
.auth__card h1 { font-size: 32px; }
.auth__switch { text-align: center; margin: 20px 0 0; font-weight: 500; }

/* --- Főoldal ------------------------------------------------------------ */
.hero { padding: 48px 0 24px; }
.hero__grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 32px; align-items: center; }
.hero h1 { font-size: clamp(40px, 6.4vw, 72px); line-height: 0.98; letter-spacing: -0.045em; font-weight: 800; margin-bottom: 20px; }
.hero__accent { display: block; color: var(--good); }
.hero__lead { font-size: 19px; color: var(--muted); max-width: 30em; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.hero__art { margin: 0; }
.hero-art { width: 100%; height: auto; display: block; }
.hero-photo { position: relative; padding-top: 6%; }
.hero-photo::before { content: ""; position: absolute; left: 6%; right: 2%; top: 0; bottom: 6%; border-radius: 48% 52% 44% 56% / 58% 50% 50% 42%; background: var(--ha-blob); }
.hero-photo::after { content: ""; position: absolute; left: 8%; right: 4%; bottom: 1%; height: 6%; border-radius: 50%; background: var(--ha-shadow); filter: blur(6px); }
.hero-photo img { position: relative; z-index: 1; width: 100%; height: auto; }
@media (max-width: 860px) { .hero__grid { grid-template-columns: 1fr; } .hero { padding-top: 28px; } .hero__art { max-width: 480px; margin: 0 auto; } }

.ha-blob { fill: var(--ha-blob); }
.ha-shadow { fill: var(--ha-shadow); }
.ha-dog-fur { fill: #E9B04F; } .ha-dog-dark { fill: #B9772E; } .ha-dog-light { fill: #FBE6BC; }
.ha-cat-fur { fill: #8E9CB5; } .ha-cat-dark { fill: #6B7891; } .ha-cat-light { fill: #DCE2EC; }
.ha-cat-stripe { fill: none; stroke: #6B7891; stroke-width: 5; stroke-linecap: round; }
.ha-ink { fill: #1E2B2A; } .ha-eye-hi { fill: #fff; } .ha-pink { fill: #F2A7A0; }
.ha-line { fill: none; stroke: #1E2B2A; stroke-width: 3; stroke-linecap: round; }
.ha-whisker { fill: none; stroke: #1E2B2A; stroke-width: 1.6; stroke-linecap: round; opacity: .55; }
.ha-spark { fill: var(--pine); } .ha-spark-line { fill: none; stroke: var(--paw-cat); stroke-width: 4; stroke-linecap: round; }
@media (prefers-reduced-motion: no-preference) {
  .ha-spark { transform-origin: 270px 180px; animation: pacsi 2.6s ease-in-out 0.4s 1 both; }
  @keyframes pacsi { 0% { opacity: 0; transform: scale(.4); } 30% { opacity: 1; transform: scale(1.15); } 45%, 100% { opacity: 1; transform: scale(1); } }
}

.offer { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; padding-top: 40px; padding-bottom: 72px; border-top: 1px solid var(--line); margin-top: 24px; }
.offer h2 { font-size: 26px; margin-bottom: 14px; }
.offer__list { list-style: none; margin: 0; padding: 0; }
.offer__item { display: grid; grid-template-columns: 44px 1fr; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.offer__item:last-child { border-bottom: 0; }
.offer__item h3 { margin: 0 0 2px; font-size: 18px; }
.offer__item p { margin: 0; color: var(--muted); }
.offer__icon { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); }
.offer__icon svg { width: 24px; height: 24px; }
.offer--later .offer__icon { background: var(--paper-2); color: var(--muted); }
@media (max-width: 760px) { .offer { grid-template-columns: 1fr; gap: 24px; } }

/* --- Oldalfej ------------------------------------------------------------ */
.pagehead { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 32px 0 20px; }
.pagehead p { margin: 0; }
.breadcrumb { font-size: 15px; font-weight: 600; margin-bottom: 6px; }
.breadcrumb a { color: var(--muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--pine); }

/* --- Kártyák ------------------------------------------------------------ */
.card { border-radius: var(--r-lg); padding: 22px; }
.card + .card { margin-top: 16px; }
.layout-2 > .card + .card { margin-top: 0; }
.card__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.card__head h2 { margin: 0; }
.layout-2 { display: grid; grid-template-columns: 1.4fr 1fr; gap: 16px; align-items: start; padding-bottom: 64px; }
@media (max-width: 900px) { .layout-2 { grid-template-columns: 1fr; } .layout-2 > aside { order: -1; } }

.pets { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.petcard { border-radius: var(--r-lg); overflow: hidden; text-decoration: none; color: var(--ink); display: flex; flex-direction: column; }
.petcard:hover { color: var(--ink); border-color: var(--pine); }
.petcard__photo { aspect-ratio: 4 / 3; background: var(--paper-2); display: grid; place-items: center; overflow: hidden; }
.petcard__photo img { width: 100%; height: 100%; object-fit: cover; }
.petcard__photo .placeholder { width: 64px; height: 64px; object-fit: contain; opacity: .7; }
.petcard__body { padding: 14px 16px 16px; }
.petcard__body h3 { margin: 0 0 2px; font-size: 20px; }
.petcard--add { align-items: center; justify-content: center; min-height: 220px; border: 2px dashed var(--line); background: transparent; box-shadow: none; font-weight: 700; color: var(--pine); gap: 10px; }
.petcard--add .plus { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--pine-soft); font-size: 28px; line-height: 1; }

.chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.chip { font-size: 14px; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: var(--paper-2); color: var(--muted); }
.chip--good { background: var(--good-soft); color: var(--good); }
.chip--warn { background: var(--warn-soft); color: var(--warn); }
.chip--bad { background: var(--bad-soft); color: var(--bad); }

.empty { text-align: center; padding: 28px 16px; }
.empty .paws { display: flex; justify-content: center; gap: 8px; margin-bottom: 12px; }
.empty .paws img { width: 44px; height: 44px; }

/* --- Emlékeztetők ----------------------------------------------------------- */
.reminders { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.reminder { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: var(--r-md); background: var(--paper); border: 1px solid var(--line); }
.reminder strong { display: block; }
.reminder small { color: var(--muted); font-weight: 500; font-size: 14px; }

/* --- Kedvenc profil ---------------------------------------------------------- */
.profile { display: grid; grid-template-columns: 200px 1fr; gap: 22px; align-items: center; }
.profile__photo { width: 200px; aspect-ratio: 1; border-radius: var(--r-lg); overflow: hidden; background: var(--paper-2); display: grid; place-items: center; }
.profile__photo img { width: 100%; height: 100%; object-fit: cover; }
.profile__photo .placeholder { width: 84px; height: 84px; object-fit: contain; opacity: .7; }
.facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin: 14px 0 0; }
.fact { padding: 10px 12px; border-radius: var(--r-md); background: var(--paper); border: 1px solid var(--line); }
.fact dt { font-size: 14px; font-weight: 500; color: var(--muted); }
.fact dd { margin: 2px 0 0; font-weight: 700; word-break: break-word; }
@media (max-width: 640px) { .profile { grid-template-columns: 1fr; } .profile__photo { width: 150px; } }

.timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tl { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 12px; border-radius: var(--r-md); background: var(--paper); border: 1px solid var(--line); }
.tl__icon { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); }
.tl__icon svg { width: 22px; height: 22px; }
.tl h3 { margin: 0; font-size: 16px; font-family: var(--font-body); letter-spacing: 0; }
.tl p { margin: 2px 0 0; font-size: 15px; color: var(--muted); }
.tl__del { background: none; border: 0; color: var(--muted); cursor: pointer; padding: 4px 8px; border-radius: 8px; font: inherit; font-size: 14px; font-weight: 600; }
.tl__del:hover { color: var(--bad); background: var(--bad-soft); }

.weight { width: 100%; height: auto; margin-top: 4px; }
.weight .line { fill: none; stroke: var(--pine); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.weight .area { fill: var(--pine-soft); }
.weight .dot { fill: var(--surface); stroke: var(--pine); stroke-width: 2; }
.weight text { fill: var(--muted); font-size: 12px; font-family: var(--font-body); font-weight: 600; }
.weight .grid { stroke: var(--line); }

details.addform > summary { list-style: none; cursor: pointer; display: inline-flex; }
details.addform > summary::-webkit-details-marker { display: none; }
details.addform[open] > summary { margin-bottom: 16px; }

.danger-zone { border-top: 1px solid var(--line); margin-top: 22px; padding-top: 16px; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }

/* --- Lábléc ------------------------------------------------------------ */
.footer { border-top: 1px solid var(--line); }
.footer__inner { max-width: 1120px; margin: 0 auto; padding: 24px 16px 32px; display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; justify-content: space-between; font-size: 15px; }
.footer__brand { display: inline-flex; align-items: center; gap: 8px; }
.footer__brand .logo { width: 24px; height: 24px; }
.footer__brand strong { font-family: var(--font-display); font-weight: 800; letter-spacing: -0.02em; }
.footer__note, .footer__copy { margin: 0; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ==========================================================================
   2. kör: album, közösség, emlékek
   ========================================================================== */
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pagehead__actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* Feltöltés */
.upload { margin-bottom: 20px; }
.upload__form { display: grid; grid-template-columns: 1.2fr 1fr; gap: 20px; align-items: stretch; }
.upload__side { display: grid; gap: 14px; align-content: start; }
.dropzone { position: relative; display: grid; place-content: center; gap: 6px; text-align: center; min-height: 170px; padding: 20px; border: 2px dashed var(--line); border-radius: var(--r-md); background: var(--paper); cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.dropzone:hover, .dropzone.is-over { border-color: var(--pine); background: var(--pine-soft); }
.dropzone input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.dropzone:focus-within { outline: 3px solid var(--pine); outline-offset: 2px; }
.dropzone__title { font-family: var(--font-display); font-weight: 700; font-size: 20px; }
@media (max-width: 760px) { .upload__form { grid-template-columns: 1fr; } }

/* Album rács */
.album { list-style: none; margin: 0 0 64px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; }
.album__item { position: relative; }
.album__open { display: block; width: 100%; padding: 0; border: 0; background: var(--paper-2); border-radius: var(--r-md); overflow: hidden; cursor: zoom-in; aspect-ratio: 1; }
.album__open img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.album__open:hover img { transform: scale(1.03); }
.album__badge { position: absolute; top: 8px; left: 8px; font-size: 13px; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: var(--surface-glass); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: var(--ink); }
.album__badge--hidden { background: var(--bad-soft); color: var(--bad); }
.album__edit { margin-top: 6px; font-size: 14px; }
.album__edit summary { cursor: pointer; color: var(--muted); font-weight: 600; list-style: none; padding: 4px 2px; }
.album__edit summary::-webkit-details-marker { display: none; }
.album__edit[open] { position: relative; z-index: 2; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); padding: 10px; box-shadow: var(--shadow-lift); }
.album__edit .form { gap: 10px; margin: 8px 0; }
.album--mini { grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0; }
.album--mini img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--r-sm); }

/* Nagyítás */
.lightbox { border: 0; padding: 0; background: transparent; max-width: min(92vw, 1100px); max-height: 92vh; overflow: visible; }
.lightbox::backdrop { background: rgba(14, 10, 20, 0.86); }
.lightbox img { max-width: min(92vw, 1100px); max-height: 82vh; border-radius: var(--r-md); margin: 0 auto; }
.lightbox__caption { color: #F1EDF7; text-align: center; margin: 12px 0 0; font-weight: 500; }
.lightbox__caption:empty { display: none; }
.lightbox__close { position: absolute; top: -52px; right: 0; background: rgba(255, 255, 255, 0.12); color: #fff; border-color: transparent; }

/* Szegmentált szűrő */
.segmented { display: inline-flex; padding: 4px; gap: 2px; border-radius: 999px; background: var(--paper-2); }
.segmented a, .segmented button { padding: 8px 16px; border-radius: 999px; font-weight: 600; text-decoration: none; color: var(--muted); }
.segmented a:hover, .segmented button:hover { color: var(--ink); }
.segmented a.is-active, .segmented button.is-active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(34, 29, 46, 0.12); }

/* Közösségi fal */
.feed { list-style: none; margin: 0; padding: 0; columns: 3 300px; column-gap: 16px; }
.post { break-inside: avoid; margin: 0 0 16px; border-radius: var(--r-lg); overflow: hidden; }
.post__photo { display: block; width: 100%; padding: 0; border: 0; background: var(--paper-2); cursor: zoom-in; }
.post__photo img { width: 100%; height: auto; }
.post__body { padding: 14px 16px 12px; }
.post__meta { display: flex; gap: 10px; align-items: center; }
.post__meta strong { display: block; font-size: 17px; line-height: 1.2; }
.post__meta .muted { font-size: 14px; }
.post__paw { width: 30px; height: 30px; flex: none; }
.post__caption { margin: 10px 0 0; }
.post__actions { display: flex; align-items: center; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
.post__date { font-size: 14px; margin-left: auto; }
.like { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; border: 1.5px solid var(--line); background: transparent; color: var(--muted); font: inherit; font-weight: 700; cursor: pointer; }
.like svg { fill: none; stroke: currentColor; stroke-width: 1.9; }
.like:hover { border-color: var(--blush); color: var(--ink); }
.like.is-liked { color: #D9506A; border-color: transparent; background: #FBE4EA; }
.like.is-liked svg { fill: currentColor; }
:root[data-theme="dark"] .like.is-liked { background: #3D1F2A; color: #F28BA0; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .like.is-liked { background: #3D1F2A; color: #F28BA0; } }
@media (prefers-reduced-motion: no-preference) { .like.is-liked svg { animation: pop .35s ease; } @keyframes pop { 50% { transform: scale(1.3); } } }
.report { width: 100%; font-size: 14px; }
.report summary { cursor: pointer; color: var(--muted); font-weight: 600; list-style: none; display: inline; }
.report summary::-webkit-details-marker { display: none; }
.report__form { display: grid; gap: 8px; margin-top: 10px; padding: 12px; border-radius: var(--r-md); background: var(--paper); border: 1px solid var(--line); }
.pager { display: flex; justify-content: center; gap: 10px; padding: 8px 0 64px; }

/* Emlékek és születésnapok */
.moments { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 10px; }
.moment { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: var(--r-md); background: var(--pine-soft); }
.moment img { width: 34px; height: 34px; flex: none; }
.moment p { margin: 0; flex: 1; }
.memories { margin-bottom: 16px; }
.memories__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
.memories__photo { display: block; width: 100%; padding: 0; border: 0; border-radius: var(--r-md); overflow: hidden; cursor: zoom-in; aspect-ratio: 1; background: var(--paper-2); }
.memories__photo img { width: 100%; height: 100%; object-fit: cover; }
.memories__list p { margin: 8px 0 0; font-size: 15px; }

/* Példaprofil a főoldalon */
.sample { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; padding-top: 48px; padding-bottom: 56px; }
.eyebrow { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pine); margin: 0 0 8px; }
.sample h2 { font-size: clamp(28px, 3.6vw, 40px); letter-spacing: -0.03em; margin: 0 0 12px; }
.sample__text p.muted { font-size: 18px; max-width: 26em; }
@media (max-width: 860px) { .sample { grid-template-columns: 1fr; gap: 20px; padding-top: 32px; } }
.sample__cards { display: grid; gap: 20px; }
.sample__switch { margin-top: 18px; display: inline-flex; }
.sample__switch[hidden] { display: none; }
.sample__switch button { border: 0; background: transparent; font: inherit; cursor: pointer; }
.js-sample [data-sample-card][hidden] { display: none; }

/* --- 3. kör: Felfedezés menü, prototípus-sáv, közös kiegészítők -------- */
.userchip { color: var(--ink); text-decoration: none; padding: 3px 10px 3px 3px; border-radius: 999px; }
.userchip:hover { background: var(--paper-2); color: var(--ink); }
.userchip__pro { font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: linear-gradient(135deg, #fff7e8, #fdecc9); border: 1px solid #efd39b; color: #7a4a10; }
:root[data-theme="dark"] .userchip__pro { background: #33270f; border-color: #6b5222; color: #F6CE8C; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .userchip__pro { background: #33270f; border-color: #6b5222; color: #F6CE8C; } }
.explore { position: relative; flex: none; }
.explore__btn { list-style: none; display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; font-weight: 600; color: var(--muted); cursor: pointer; user-select: none; }
.explore__btn::-webkit-details-marker { display: none; }
.explore__btn:hover, .explore[open] .explore__btn { color: var(--ink); background: var(--paper-2); }
.explore__panel { position: absolute; right: 0; top: calc(100% + 10px); width: min(900px, calc(100vw - 32px)); border-radius: var(--r-lg); padding: 14px; z-index: 60; box-shadow: var(--shadow-lift); background: var(--surface); max-height: calc(100vh - 110px); overflow-y: auto; }
.explore__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 2px; }
.explore__list a { display: flex; gap: 12px; align-items: center; padding: 8px 10px; border-radius: var(--r-md); text-decoration: none; color: var(--ink); }
.explore__list a:hover, .explore__list a.is-active { background: var(--paper-2); color: var(--ink); }
.explore__list strong { display: block; font-size: 15px; line-height: 1.25; }
.explore__list small { display: block; color: var(--muted); font-size: 13px; line-height: 1.3; }
.explore__icon { flex: none; width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); }
@media (max-width: 760px) {
  .explore { position: static; }
  .explore__btn span { display: none; }
  .explore__panel { left: 16px; right: 16px; width: auto; max-height: 75vh; overflow-y: auto; }
  .explore__list { grid-template-columns: 1fr; }
}
.protobar { background: var(--warn-soft); color: var(--warn); font-size: 14px; font-weight: 600; text-align: center; padding: 6px 16px; }
.chip--demo { background: var(--warn-soft); color: var(--warn); font-size: 12px; padding: 1px 8px; vertical-align: middle; }
.footer__links { display: flex; flex-wrap: wrap; gap: 4px 16px; width: 100%; order: 3; }
.footer__links a { color: var(--muted); font-size: 14px; text-decoration: none; }
.footer__links a:hover { color: var(--pine); text-decoration: underline; }
.footer__copy { order: 4; }
/* Közös modul-elemek */
.toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; margin-bottom: 20px; }
.toolbar .field { min-width: 180px; }
.list-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; padding-bottom: 64px; }
.tile { border-radius: var(--r-lg); overflow: hidden; display: flex; flex-direction: column; text-decoration: none; color: var(--ink); }
.tile:hover { color: var(--ink); }
.tile__media { aspect-ratio: 4 / 3; background: var(--paper-2); display: grid; place-items: center; overflow: hidden; }
.tile__media img { width: 100%; height: 100%; object-fit: cover; }
.tile__media .placeholder { width: 56px; height: 56px; object-fit: contain; opacity: .7; }
.tile__body { padding: 14px 16px 18px; display: grid; gap: 4px; }
.tile__body h3 { margin: 0; font-size: 19px; }
.tile__meta { font-size: 14px; color: var(--muted); }
.prose { max-width: 70ch; }
.prose p, .prose li { color: var(--ink); }
.prose h2 { margin-top: 1.4em; font-size: 24px; }
.stack { display: grid; gap: 16px; }
.section { padding-bottom: 64px; }
.note { padding: 12px 14px; border-radius: var(--r-md); background: var(--pine-soft); font-size: 15px; }
.note--warn { background: var(--warn-soft); color: var(--warn); }
.note--bad { background: var(--bad-soft); color: var(--bad); }
.price { font-family: var(--font-display); font-weight: 800; font-size: 32px; letter-spacing: -0.02em; }
.stars { color: #E3A23B; letter-spacing: 1px; }
@media (max-width: 1400px) { .userchip__name, .userchip__pro { display: none; } }
.reminder .chip { white-space: nowrap; }
/* Főoldal: modulrács */
.modules { border-top: 1px solid var(--line); padding-top: 40px; padding-bottom: 72px; }
.modules__head { margin-bottom: 20px; }
.modules__head h2 { font-size: clamp(28px, 3.4vw, 40px); max-width: 18em; letter-spacing: -0.03em; }
.modules__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.modules__item { position: relative; display: flex; flex-direction: column; gap: 8px; height: 100%; padding: 22px 20px 18px; border-radius: 22px; background: var(--surface); border: 1px solid var(--line); text-decoration: none; color: var(--ink); transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.modules__item:hover { color: var(--ink); border-color: var(--pine); transform: translateY(-3px); box-shadow: 0 18px 36px -22px rgba(85, 64, 126, .45); }
.modules__icon { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); margin-bottom: 6px; }
.modules__item strong { font-family: var(--font-display); font-size: 19px; line-height: 1.2; letter-spacing: -0.015em; }
.modules__item .muted { font-size: 15px; line-height: 1.45; }
.modules__more { margin-top: auto; padding-top: 10px; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; color: var(--pine); opacity: 0; transform: translateX(-4px); transition: opacity .18s, transform .18s; }
.modules__item:hover .modules__more, .modules__item:focus-visible .modules__more { opacity: 1; transform: none; }
.modules__grid li:nth-child(4n+2) .modules__icon { background: var(--butter-soft); color: #2F8F7A; }
.modules__grid li:nth-child(4n+3) .modules__icon { background: #FBF0DC; color: #B7791F; }
.modules__grid li:nth-child(4n+4) .modules__icon { background: #FBE5E2; color: #B3362B; }
@media (max-width: 980px) { .modules__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .modules__grid { grid-template-columns: 1fr; gap: 10px; } .modules__item { flex-direction: row; flex-wrap: wrap; align-items: center; padding: 16px; column-gap: 14px; } .modules__icon { margin: 0; } .modules__item strong { flex: 1; } .modules__item .muted { flex-basis: 100%; } .modules__more { display: none; } }
:root[data-theme="dark"] .modules__grid li:nth-child(4n+2) .modules__icon { background: #17302b; color: #6CCBB4; }
:root[data-theme="dark"] .modules__grid li:nth-child(4n+3) .modules__icon { background: #3a2e18; color: #E8B65C; }
:root[data-theme="dark"] .modules__grid li:nth-child(4n+4) .modules__icon { background: #3d1f22; color: #F08A80; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .modules__grid li:nth-child(4n+2) .modules__icon { background: #17302b; color: #6CCBB4; }
  :root:not([data-theme="light"]) .modules__grid li:nth-child(4n+3) .modules__icon { background: #3a2e18; color: #E8B65C; }
  :root:not([data-theme="light"]) .modules__grid li:nth-child(4n+4) .modules__icon { background: #3d1f22; color: #F08A80; }
}
.modules__premium { margin-top: 16px; border-radius: var(--r-lg); padding: 20px 22px; display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; background: linear-gradient(120deg, var(--pine-soft), var(--butter-soft)); }
.modules__premium h3 { margin: 0 0 4px; font-size: 22px; }
.modules__premium p { margin: 0; }
.stack > .card + .card { margin-top: 0; }
:root[data-theme="dark"] img[src*="paw-dog"] { filter: brightness(1.7); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) img[src*="paw-dog"] { filter: brightness(1.7); } }
/* Fejléc mobilon: logó | felfedezés, téma, fiók egy sorban; alatta a görgethető menü */
@media (max-width: 760px) {
  .topbar__inner { gap: 8px; }
  .explore { order: 1; margin-left: auto; }
  .explore__btn { padding: 8px 10px; }
  .topbar__actions { order: 2; margin-left: 0; gap: 6px; }
  .mainnav { order: 3; }
}
@media (max-width: 440px) {
  .topbar__actions .btn--primary { display: none; }
  .brand span { font-size: 22px; }
}
.protobar__short { display: none; }
@media (max-width: 600px) { .protobar__long { display: none; } .protobar__short { display: inline; } }

/* Példaprofil a főoldalon: nagy fotó felül, letisztult adatsor alatta */
.sample__cards { justify-self: end; width: 100%; max-width: 460px; }
.pcard { border-radius: 28px; overflow: hidden; background: var(--surface); border: 1px solid var(--line); box-shadow: 0 1px 2px rgba(30, 20, 50, .05), 0 24px 48px -24px rgba(34, 22, 58, .28); }
.pcard__media { position: relative; aspect-ratio: 4 / 3.4; overflow: hidden; }
.pcard__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.pcard__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(18, 12, 30, .72) 100%); pointer-events: none; }
.pcard__tag { position: absolute; top: 14px; left: 14px; z-index: 1; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px 6px 9px; border-radius: 999px; font-size: 13px; font-weight: 700; color: #221D2E; background: rgba(255, 255, 255, .86); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.pcard__name { position: absolute; left: 22px; right: 22px; bottom: 18px; z-index: 1; color: #fff; }
.pcard__name h3 { margin: 0; font-size: 34px; line-height: 1; letter-spacing: -0.03em; color: #fff; }
.pcard__name p { margin: 6px 0 0; font-size: 15px; font-weight: 500; opacity: .92; }
.pcard__body { padding: 18px 20px 20px; display: grid; gap: 16px; }
.pcard__stats { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; border: 1px solid var(--line); border-radius: 16px; }
.pcard__stats div { padding: 10px 12px; min-width: 0; }
.pcard__stats div + div { border-left: 1px solid var(--line); }
.pcard__stats dt { font-size: 12px; color: var(--muted); font-weight: 600; }
.pcard__stats dd { margin: 2px 0 0; font-weight: 700; font-size: 15px; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pcard__rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.pcard__rows li { display: flex; align-items: center; gap: 12px; padding: 8px 0; }
.pcard__rows li + li { border-top: 1px solid var(--line); padding-top: 12px; }
.pcard__rows div { display: grid; min-width: 0; flex: 1; }
.pcard__rows strong { font-size: 15px; }
.pcard__rows span { font-size: 14px; color: var(--muted); }
.pcard__ic { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; flex: none; background: var(--pine-soft); color: var(--pine); }
.pcard__ic--soon { background: #FBF0DC; color: #B7791F; }
.pcard__ic--ok { background: #E1F3EE; color: #2F8F7A; }
.pcard__pill { flex: none; font-size: 13px !important; font-weight: 700; color: #B7791F !important; background: #FBF0DC; padding: 4px 10px; border-radius: 999px; }
.pcard__avatars { display: flex; flex: none; width: 58px; }
.pcard__avatars img { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; border: 2px solid var(--surface); }
.pcard__avatars img + img { margin-left: -18px; }
:root[data-theme="dark"] .pcard__ic--soon, :root[data-theme="dark"] .pcard__pill { background: #3a2e18; color: #E8B65C !important; }
:root[data-theme="dark"] .pcard__ic--ok { background: #17302b; color: #6CCBB4; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .pcard__ic--soon, :root:not([data-theme="light"]) .pcard__pill { background: #3a2e18; color: #E8B65C !important; }
  :root:not([data-theme="light"]) .pcard__ic--ok { background: #17302b; color: #6CCBB4; }
}
@media (max-width: 860px) { .sample__cards { justify-self: stretch; max-width: none; } }
@media (max-width: 400px) { .pcard__stats dd { font-size: 14px; } .pcard__stats div { padding: 9px 10px; } }

/* Főoldal: elveszett állatok (érzelmes történet: plakát + értesítés) */
.lost { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; padding-top: 40px; padding-bottom: 64px; }
.lost h2 { font-size: clamp(28px, 3.6vw, 40px); letter-spacing: -0.03em; margin: 0 0 12px; }
.lost__text > p.muted { font-size: 18px; max-width: 30em; }
.lost__visual { position: relative; padding: 0 0 70px 0; }
.lost__photo { margin: 0 0 0 auto; width: min(400px, 82%); position: relative; border-radius: 28px; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(34, 22, 58, .5); }
.lost__photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 4.6; object-fit: cover; object-position: 30% 45%; }
.lost__photo figcaption { position: absolute; left: 0; right: 0; top: 0; padding: 18px 20px 48px; color: #fff; font-size: 15px; line-height: 1.4; font-weight: 600; background: linear-gradient(0deg, rgba(0,0,0,0), rgba(18, 12, 30, .72)); }
.lost__poster { position: absolute; left: 0; bottom: 34px; width: min(200px, 42%); background: #fffdf7; color: #221D2E; border-radius: 5px; padding: 10px 10px 12px; display: grid; gap: 3px; text-align: center; transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(30, 20, 50, .1), 0 22px 40px -18px rgba(34, 22, 58, .5); }
.lost__poster::before { content: ""; position: absolute; top: -8px; left: 50%; width: 54px; height: 16px; transform: translateX(-50%) rotate(3deg); background: rgba(232, 220, 190, .8); border-radius: 2px; }
.lost__poster-head { font-family: var(--font-display); font-weight: 800; font-size: 17px; letter-spacing: .12em; text-transform: uppercase; color: #B4232A; }
.lost__poster img { width: 100%; height: auto; aspect-ratio: 4 / 3.3; object-fit: cover; object-position: 55% 45%; border-radius: 3px; }
.lost__poster strong { font-family: var(--font-display); font-size: 20px; line-height: 1.05; margin-top: 4px; }
.lost__poster-sub { font-size: 12px; color: #655E74; }
.lost__stamp { position: absolute; right: -30px; top: 16%; transform: rotate(-14deg); padding: 4px 10px; border: 2.5px solid #2F8F7A; color: #2F8F7A; border-radius: 8px; font-family: var(--font-display); font-weight: 800; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; background: rgba(255, 255, 255, .9); }
.lost__note { position: absolute; bottom: 0; right: 0; width: min(310px, 74%); display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 18px; background: var(--surface-glass); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border: 1px solid var(--line); box-shadow: 0 18px 40px -18px rgba(34, 22, 58, .4); font-size: 14px; line-height: 1.35; }
.lost__note img { border-radius: 9px; flex: none; }
.lost__note div { display: grid; gap: 1px; }
.lost__note b { font-size: 12px; color: var(--muted); font-weight: 600; }
.lost__note span { color: var(--muted); }
.lost__steps { list-style: none; margin: 22px 0 26px; padding: 0; display: grid; gap: 14px; }
.lost__steps li { display: flex; gap: 14px; align-items: flex-start; }
.lost__steps li > span { flex: none; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); font-weight: 800; }
.lost__steps div { display: grid; gap: 2px; }
.lost__cta { display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 860px) { .lost { grid-template-columns: 1fr; gap: 28px; } .lost__visual { order: 2; max-width: 480px; } }
@media (max-width: 520px) { .lost__photo { width: 88%; } .lost__poster { width: 44%; bottom: 120px; } .lost__note { width: 88%; } .lost__visual { padding-bottom: 90px; } }

/* Főoldal: Prémium bemutató képernyőképekkel */
.prem { padding-top: 24px; padding-bottom: 72px; }
.prem__inner { display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: center; padding: 40px; border-radius: 32px; background: linear-gradient(135deg, var(--pine-soft) 0%, var(--paper-2) 60%, var(--surface) 100%); border: 1px solid var(--line); overflow: hidden; }
.prem h2 { font-size: clamp(28px, 3.4vw, 38px); letter-spacing: -0.03em; margin: 0 0 12px; }
.prem__text > p.muted { font-size: 17px; max-width: 34em; }
.prem__list { list-style: none; margin: 20px 0 24px; padding: 0; display: grid; gap: 14px; }
.prem__list li { display: flex; gap: 12px; align-items: flex-start; }
.prem__list li > svg { flex: none; margin-top: 2px; padding: 8px; box-sizing: content-box; border-radius: 12px; background: var(--surface); color: var(--pine); }
.prem__list div { display: grid; gap: 2px; }
.prem__list .muted { font-size: 15px; }
.prem__plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.prem__plan { position: relative; display: grid; gap: 2px; padding: 14px 14px 12px; border-radius: 18px; background: var(--surface); border: 1.5px solid var(--line); color: var(--ink); text-decoration: none; transition: border-color .15s, transform .15s; }
.prem__plan:hover { border-color: var(--pine); transform: translateY(-2px); color: var(--ink); }
.prem__plan span { font-size: 14px; font-weight: 600; color: var(--muted); }
.prem__plan strong { font-family: var(--font-display); font-size: 22px; letter-spacing: -0.02em; white-space: nowrap; }
.prem__plan small { font-size: 12.5px; color: var(--muted); }
.prem__plan--best { border-color: var(--pine); box-shadow: 0 10px 24px -14px rgba(85, 64, 126, .55); }
.prem__plan em { position: absolute; top: -10px; left: 12px; font-style: normal; font-size: 11.5px; font-weight: 800; letter-spacing: .02em; padding: 3px 9px; border-radius: 999px; background: var(--pine); color: #fff; }
.prem__fine { margin: 12px 0 0; font-size: 14px; color: var(--muted); }
.prem__shots { position: relative; height: 470px; }
.prem__phone { position: absolute; width: 200px; border-radius: 31px; padding: 3px; background: #0b0b0d; box-shadow: 0 0 0 1px #6c6873, 0 0 0 1.5px #a19cab, 0 24px 50px -18px rgba(34, 22, 58, .5); }
.prem__phone img { display: block; width: 100%; height: auto; border-radius: 28px; }
.prem__phone .dl-shot__img--dark { display: none; }
.prem__phone--back { right: 4%; top: 0; transform: rotate(6deg); }
.prem__phone--front { left: 4%; top: 36px; transform: rotate(-4deg); }
:root[data-theme="dark"] .prem__phone .dl-shot__img--light { display: none; }
:root[data-theme="dark"] .prem__phone .dl-shot__img--dark { display: block; }
:root[data-theme="dark"] .lost__poster { background: #f4f0e6; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .prem__phone .dl-shot__img--light { display: none; }
  :root:not([data-theme="light"]) .prem__phone .dl-shot__img--dark { display: block; }
}
@media (max-width: 980px) { .prem__inner { grid-template-columns: 1fr; padding: 28px 22px; } .prem__shots { height: 400px; max-width: 420px; width: 100%; justify-self: center; } .prem__phone { width: 170px; } }
@media (max-width: 520px) { .prem__plans { grid-template-columns: 1fr; } .prem__plan { grid-template-columns: 1fr auto; align-items: baseline; } .prem__plan small { grid-column: 1 / -1; } .prem__shots { height: 340px; } .prem__phone { width: 145px; } }

/* Főoldal: emlékfal (a Bundee saját kedvencei) */
.memories { padding-top: 24px; padding-bottom: 64px; }
.memories__head { max-width: 46em; margin-bottom: 24px; }
.memories h2 { font-size: clamp(28px, 3.6vw, 40px); letter-spacing: -0.03em; margin: 0 0 12px; }
.memories__head .muted { font-size: 18px; }
.memories__grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 200px; grid-auto-flow: dense; gap: 12px; }
.memories__item { position: relative; margin: 0; border-radius: 22px; overflow: hidden; background: var(--paper-2); }
.memories__item--wide { grid-column: span 2; }
.memories__item--tall { grid-row: span 2; }
.memories__item--big { grid-column: span 2; grid-row: span 2; }
.memories__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.memories__item:hover img { transform: scale(1.04); }
.memories__item figcaption { position: absolute; inset: auto 0 0 0; padding: 40px 16px 14px; display: grid; gap: 2px; color: #fff; background: linear-gradient(180deg, rgba(0,0,0,0), rgba(18, 12, 30, .74)); font-size: 14px; line-height: 1.3; }
.memories__item figcaption strong { font-size: 16px; }
.memories__item figcaption span { opacity: .9; }
@media (max-width: 860px) { .memories__grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 170px; } }
@media (max-width: 480px) { .memories__grid { grid-auto-rows: 150px; gap: 8px; } .memories__item figcaption { padding: 30px 10px 10px; font-size: 12.5px; } .memories__item figcaption strong { font-size: 14px; } }
@media (prefers-reduced-motion: reduce) { .memories__item img { transition: none; } }
.pcard__avatars { display: flex; flex: none; width: 76px; }

/* Viola emlékére (viola.php) */
.viola-hero { display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: center; padding-top: 48px; padding-bottom: 40px; }
.viola-hero__photo { margin: 0; border-radius: 32px; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(34, 22, 58, .5); }
.viola-hero__photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 4.8; object-fit: cover; object-position: 50% 35%; }
.viola-hero h1 { font-size: clamp(48px, 7vw, 84px); letter-spacing: -0.04em; line-height: 1; margin: 0 0 10px; }
.viola-hero__meta { font-size: 17px; color: var(--muted); font-weight: 600; margin: 0 0 22px; line-height: 1.5; }
.viola-hero__lead { font-size: 21px; line-height: 1.5; font-family: var(--font-display); letter-spacing: -0.01em; margin: 0 0 16px; }
.viola-hero__text .muted { font-size: 17px; line-height: 1.6; }
.viola-gallery { columns: 4 220px; column-gap: 12px; padding-bottom: 48px; }
.viola-gallery figure { margin: 0 0 12px; break-inside: avoid; position: relative; border-radius: 20px; overflow: hidden; }
.viola-gallery img { display: block; width: 100%; height: auto; }
.viola-gallery figcaption { position: absolute; inset: auto 0 0 0; padding: 36px 14px 12px; color: #fff; font-size: 14px; font-weight: 600; background: linear-gradient(180deg, rgba(0,0,0,0), rgba(18, 12, 30, .7)); }
.viola-found { padding-bottom: 72px; }
.viola-found__card { max-width: 760px; margin: 0 auto; padding: 36px; border-radius: 28px; border: 1px solid var(--line); background: linear-gradient(135deg, var(--pine-soft), var(--surface)); }
.viola-found h2 { font-size: clamp(28px, 3.4vw, 36px); letter-spacing: -0.03em; margin: 0 0 12px; }
.viola-found p { font-size: 17px; line-height: 1.6; }
.viola-found__cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
@media (max-width: 860px) { .viola-hero { grid-template-columns: 1fr; gap: 24px; padding-top: 24px; } .viola-hero__photo { max-width: 460px; } .viola-found__card { padding: 24px 20px; } }

/* Főoldal: Viola emlékkártya az emlékfal alatt */
.memories__viola { display: flex; gap: 18px; align-items: center; margin-top: 18px; padding: 16px; border-radius: 22px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); text-decoration: none; }
.memories__viola:hover { border-color: var(--pine); color: var(--ink); }
.memories__viola img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex: none; }
.memories__viola div { display: grid; gap: 2px; }
.memories__viola strong { font-size: 17px; }
.memories__viola span { color: var(--muted); font-size: 15px; }

.viola-found__card--soon { text-align: center; max-width: 560px; }
.viola-found__card--soon h2 { margin-top: 12px; }
.viola-found__card--soon p { margin: 0; color: var(--muted); }

.chip--soon { vertical-align: middle; margin-left: 8px; text-transform: none; letter-spacing: 0; font-size: 12px; background: var(--butter-soft); color: #23705f; }
.dl-shots__soon { margin: 8px 0 0; font-size: 16px; }

/* Felfedezés: csoportok, Prémium sáv, további linkek */
.explore__groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px 10px; }
.explore__gtitle { margin: 4px 10px 6px; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.explore__tag { font-style: normal; font-size: 11px; font-weight: 800; padding: 2px 7px; border-radius: 999px; background: var(--good-soft); color: var(--good); vertical-align: 1px; margin-left: 4px; white-space: nowrap; }
.explore__tag--soon { background: var(--warn-soft); color: var(--warn); }
.explore__foot { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 10px; padding-top: 12px; border-top: 1px solid var(--line); }
.explore__prem { flex: 1 1 320px; display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: var(--r-md); text-decoration: none; color: var(--ink); background: linear-gradient(120deg, rgba(232,196,120,.18), rgba(156,107,30,.08)); border: 1px solid rgba(201,146,47,.35); }
.explore__prem:hover { background: linear-gradient(120deg, rgba(232,196,120,.28), rgba(156,107,30,.14)); }
.explore__prem strong { display: block; font-size: 15px; }
.explore__prem small { display: block; color: var(--muted); font-size: 13px; line-height: 1.3; }
.explore__go { margin-left: auto; font-size: 22px; color: var(--muted); }
.explore__more { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 14px; }
.explore__more a { color: var(--muted); text-decoration: none; padding: 4px 2px; }
.explore__more a:hover { color: var(--ink); text-decoration: underline; }
@media (max-width: 960px) { .explore__groups { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .explore__groups { grid-template-columns: 1fr; } .explore__panel { max-height: 78vh; } }
@media (min-width: 641px) { .topbar__inner { position: relative; } .explore { position: static; } .explore__panel { right: 16px; top: calc(100% + 2px); } }
.dash-tip { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 18px; text-decoration: none; color: var(--ink); margin-bottom: 16px; }
.dash-tip__text { flex: 1 1 260px; font-weight: 600; }
.dash-tip__go { color: var(--pine); font-weight: 700; white-space: nowrap; }

/* Szöveg sehol nincs aláhúzva, rámutatáskor és kattintáskor sem (a linkeket a színük jelzi). */
a, a:link, a:visited, a:hover, a:focus, a:focus-visible, a:active,
u, ins, abbr[title], .link, .linklike, button, summary { text-decoration: none !important; }
/* Aláhúzás nélkül a szövegközi linkek kicsit vastagabbak, hogy látszódjanak. */
:where(p, li, dd, td, .note, .alert, .muted) a:not(.btn) { font-weight: 600; }

/* Szövegmezők a .field-en kívül is egységesek (pl. keresők), Safari saját keresőmező-stílusa nélkül. */
:where(input[type="search"], input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"]) {
  -webkit-appearance: none; appearance: none;
  font: inherit; font-weight: 500; color: var(--ink);
  background-color: var(--surface); border: 1.5px solid var(--line); border-radius: var(--r-sm);
  padding: 11px 14px; min-height: 44px;
}
:where(input, select, textarea):focus { outline: none; }
:where(input, select, textarea):focus-visible { border-color: var(--pine); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pine) 22%, transparent); }
input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
input::placeholder, textarea::placeholder { color: var(--muted); opacity: .85; }

/* Önálló be/ki kapcsolók (egy jelölőnégyzet gombként, nem csoportban): bekapcsolva zöld, kikapcsolva piros, jól elkülönül. */
:where(form, .form, .card, .adm-prices__introhead) > .choice__item > input[type="checkbox"] + span { justify-content: space-between; text-align: left; padding-inline: 16px; border-color: color-mix(in srgb, var(--bad) 55%, var(--line)); background: var(--bad-soft); }
:where(form, .form, .card, .adm-prices__introhead) > .choice__item > input[type="checkbox"] + span::after { content: "KI"; flex: none; padding: 3px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 800; letter-spacing: .04em; background: var(--bad); color: var(--surface); }
:where(form, .form, .card, .adm-prices__introhead) > .choice__item > input[type="checkbox"]:checked + span { border-color: color-mix(in srgb, var(--good) 60%, var(--line)); background: var(--good-soft); }
:where(form, .form, .card, .adm-prices__introhead) > .choice__item > input[type="checkbox"]:checked + span::after { content: "BE"; background: var(--good); }

/* Fájl ráhúzással (data-filedrop) */
.filedrop { position: relative; }
.filedrop__box { display: grid; justify-items: center; gap: 4px; padding: 22px 16px; border: 2px dashed var(--line); border-radius: var(--r-md); background: var(--paper); color: var(--muted); text-align: center; cursor: pointer; transition: border-color .15s, background .15s; }
.filedrop__box svg { color: var(--pine); }
.filedrop__box strong { color: var(--ink); }
.filedrop__box u { color: var(--pine); }
.filedrop__box small { font-size: 13px; }
.filedrop.is-over .filedrop__box, .filedrop__box:hover { border-color: var(--pine); background: var(--pine-soft); }
.filedrop.has-file .filedrop__box { border-style: solid; border-color: var(--good); }
.filedrop.has-file [data-filedrop-name] { color: var(--good); font-weight: 700; }
.filedrop__input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.filedrop:focus-within .filedrop__box { outline: 3px solid var(--pine-soft); outline-offset: 2px; }
.upload__form > .dz-picked { grid-column: 1; grid-row: 2; margin: 0; }
.upload__form > .upload__side { grid-column: 2; grid-row: 1 / span 2; }
@media (max-width: 760px) { .upload__form > .dz-picked, .upload__form > .upload__side { grid-column: auto; grid-row: auto; } }

/* Egészségnapló: szerkesztés és törlés egymás mellett */
.tl__acts { display: flex; align-items: flex-start; gap: 2px; }
.tl__edit { color: var(--muted); padding: 4px 8px; border-radius: 8px; font-size: 14px; font-weight: 600; text-decoration: none; }
.tl__edit:hover { color: var(--ink, inherit); background: color-mix(in srgb, var(--pine) 10%, transparent); }
.addform .form__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* Új tag: az első kedvenc felvétele az Áttekintés tetején (egyetlen, egyértelmű teendő). */
.dash-first { text-align: center; padding: 28px 22px; margin-bottom: 18px; border: 2px solid color-mix(in srgb, var(--pine) 22%, transparent); }
.dash-first__paws { display: flex; justify-content: center; gap: 10px; margin-bottom: 10px; }
.dash-first__paws img { width: 48px; height: 48px; }
.dash-first h2 { margin: 0 0 6px; font-size: clamp(1.3rem, 3.6vw, 1.6rem); }
.dash-first p { max-width: 460px; margin: 0 auto 18px; }
.dash-first__pick { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.dash-first__pick .btn { min-width: 150px; }
@media (max-width: 480px) { .dash-first__pick .btn { flex: 1 1 100%; } }

/* Napló sor keskeny kijelzőn: a Szerkesztés/Törlés a szöveg alá kerül, hogy ne lógjon ki. */
@media (max-width: 480px) {
  .tl { grid-template-columns: 36px minmax(0, 1fr); }
  .tl > .tl__acts { grid-column: 2; display: flex; gap: 6px; flex-wrap: wrap; }
  .tl h3, .tl p { overflow-wrap: anywhere; }
}

/* Érintőképernyőn a beviteli mezők legalább 16px-esek, különben az iPhone fókuszkor ránagyít az oldalra. */
@media (hover: none) and (pointer: coarse) {
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]), select, textarea { font-size: 16px !important; }
}

/* assets/css/mod-account.css */
/* Bundee: fiók, Prémium, QR-biléta, oltási könyv, admin, jogi oldalak */

.acc-small { font-size: 14px; margin: 0; }
.acc-forgot { margin: -6px 0 0; text-align: right; font-size: 15px; font-weight: 600; }
.acc-billing-row { display: grid; grid-template-columns: 130px 1fr; gap: 12px; }

/* Fiók */
.acc-orders { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; }
.acc-orders li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--r-md); background: var(--paper); border: 1px solid var(--line); }
.acc-orders li > div:first-child { display: grid; }
.acc-orders li .muted { font-size: 14px; }
.acc-orders__right { display: grid; justify-items: end; gap: 4px; white-space: nowrap; }
.acc-premium.is-on { border-color: #efd39b; }
:root[data-theme="dark"] .acc-premium.is-on { border-color: #6b5222; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .acc-premium.is-on { border-color: #6b5222; } }
.acc-premium p { margin: 0 0 12px; }
.acc-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.acc-links a { display: flex; gap: 10px; align-items: center; padding: 10px 8px; border-radius: var(--r-sm); text-decoration: none; color: var(--ink); font-weight: 600; }
.acc-links a:hover { background: var(--paper-2); color: var(--ink); }
.acc-links svg { color: var(--pine); flex: none; }
.acc-danger { border: 1px solid var(--bad-soft); }
.acc-danger .form { gap: 12px; }

/* Prémium */
.acc-current { display: flex; gap: 10px; align-items: center; margin-bottom: 20px; }
.acc-current svg { color: var(--pine); flex: none; }
.acc-plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 16px; }
.acc-plan { position: relative; display: flex; flex-direction: column; gap: 4px; }
.acc-plan + .acc-plan { margin-top: 0; }
.acc-plan h2 { font-size: 22px; margin: 0; }
.acc-plan .price { margin: 6px 0 0; }
.acc-plan__period { margin: 0; font-size: 15px; }
.acc-plan__hint { margin: 10px 0 16px; flex: 1; font-size: 15px; }
.acc-plan.is-featured { border: 2px solid var(--pine); }
.acc-plan__badge { position: absolute; top: 16px; right: 16px; font-size: 13px; font-weight: 700; padding: 3px 10px; border-radius: 999px; background: var(--pine); color: var(--on-pine); }
.acc-compare, .acc-checkout { margin-top: 16px; }
.acc-checkout { max-width: 640px; }
.acc-choice { grid-template-columns: repeat(3, 1fr); }
.acc-choice .choice__item span { font-size: 15px; padding: 10px 8px; }
.acc-yes { color: var(--good); display: inline-flex; }
.acc-no { color: var(--muted); }

/* Táblázatok */
.acc-table-wrap { overflow-x: auto; position: relative; }
.acc-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.acc-table th, .acc-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.acc-table thead th { font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); font-weight: 700; }
.acc-table tbody th { font-weight: 600; }
.acc-table tbody tr:last-child th, .acc-table tbody tr:last-child td { border-bottom: 0; }
.acc-compare .acc-table td { text-align: center; width: 22%; }
.acc-compare .acc-table thead th:not(:first-child) { text-align: center; }

/* QR-biléta */
.acc-tag { display: grid; gap: 14px; justify-items: center; text-align: center; }
.acc-tag__preview { padding: 8px; }
.acc-tag__disc { width: 260px; height: 260px; border-radius: 50%; background: #fff; color: #221D2E; display: grid; place-items: center; align-content: center; gap: 2px; box-shadow: 0 0 0 6px var(--pine-soft), var(--shadow-lift); }
.acc-tag__qr { width: 150px; height: 150px; }
.acc-tag__qr svg { width: 100%; height: 100%; display: block; }
.acc-tag__name { font-family: var(--font-display); font-size: 20px; font-weight: 800; line-height: 1.1; margin-top: 4px; }
.acc-tag__hint { font-size: 12px; font-weight: 600; color: #55407E; }
.acc-tag__url { margin: 0; font-size: 13px; word-break: break-all; max-width: 100%; }
.acc-tag__actions { justify-content: center; }
.acc-tag .acc-small { max-width: 44ch; }

/* Oltási könyv */
.acc-book { max-width: 860px; }
.acc-book__head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; border-bottom: 2px solid var(--pine); padding-bottom: 14px; }
.acc-book__head h2 { font-size: 34px; margin: 0; }
.acc-book__head p { margin: 0; }
.acc-book__eyebrow { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--pine); }
.acc-book__photo { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; }
.acc-book__facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px 20px; margin: 16px 0 8px; }
.acc-book__facts dt { font-size: 13px; color: var(--muted); }
.acc-book__facts dd { margin: 0; font-weight: 700; }
.acc-book__section { margin-top: 20px; }
.acc-book__section h3 { font-size: 18px; margin-bottom: 6px; }
.acc-weights { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px 16px; }
.acc-weights li { display: flex; justify-content: space-between; border-bottom: 1px dashed var(--line); padding: 4px 0; font-size: 15px; }
.acc-book__foot { margin-top: 24px; font-size: 13px; border-top: 1px solid var(--line); padding-top: 10px; }

/* Admin */
.acc-tabs { margin-bottom: 20px; max-width: 100%; overflow-x: auto; }
.acc-tabs a { white-space: nowrap; }
.acc-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.acc-stat { display: grid; gap: 2px; text-decoration: none; color: var(--ink); }
.acc-stat + .acc-stat { margin-top: 0; }
.acc-stat:hover { color: var(--ink); }
.acc-stat__n { font-family: var(--font-display); font-size: 30px; font-weight: 800; }
.acc-stat.has-items .acc-stat__n { color: var(--pine); }
.acc-abuse__title { font-size: 20px; }
.acc-abuse__photo { max-width: 260px; border-radius: var(--r-md); margin: 6px 0 12px; }
.acc-abuse__form { margin-top: 10px; border-top: 1px solid var(--line); padding-top: 12px; }
.acc-hidden { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.acc-hidden li { display: flex; gap: 16px; align-items: flex-start; }
.acc-hidden li + li { margin-top: 0; }
.acc-hidden img { width: 120px; height: 120px; border-radius: var(--r-md); object-fit: cover; flex: none; }
.acc-hidden form { display: inline; }

/* Jogi oldalak */
.acc-draft { margin-bottom: 16px; }
.acc-legal { max-width: none; }
.acc-legal > h2:first-child { margin-top: 0; }
.acc-legal .acc-table-wrap { margin: 8px 0; }

@media (max-width: 860px) {
  .acc-plans { grid-template-columns: 1fr; }
  .acc-book__facts { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
  .acc-choice { grid-template-columns: 1fr; }
  .acc-billing-row { grid-template-columns: 1fr; }
  .acc-hidden li { flex-direction: column; }
  .acc-book__head h2 { font-size: 28px; }
}

/* Nyomtatás: oltási könyv és biléta */
@media print {
  .topbar, .footer, .protobar, .flashes, .acc-noprint, .skip, .pagehead,
  .page-tag .acc-tag__actions, .page-tag .acc-tag__url, .page-tag .acc-tag .acc-small, .page-tag #rendeles { display: none !important; }
  body { background: #fff !important; color: #000 !important; }
  .card, .glass { box-shadow: none !important; border: 0 !important; background: #fff !important; padding: 0 !important; }
  .container { max-width: none; padding: 0; }
  .layout-2 { display: block; }
  .acc-book { max-width: none; }
  .acc-book__facts { grid-template-columns: repeat(3, 1fr); }
  .acc-table th, .acc-table td { padding: 6px 8px; border-bottom: 1px solid #ccc; color: #000; }
  .acc-book__section { break-inside: avoid; }
  .muted { color: #444 !important; }
  .page-tag .acc-tag__disc { box-shadow: 0 0 0 1px #999; }
}
.acc-gap { margin-bottom: 14px; }
.acc-table--book { table-layout: fixed; }
.acc-table--book th:first-child, .acc-table--book td:first-child { width: 25%; }
.acc-table--book th:nth-child(2), .acc-table--book td:nth-child(2) { width: 35%; }
.acc-weights { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.acc-weights li span, .acc-weights li strong { white-space: nowrap; }
@media (max-width: 520px) {
  .acc-table { font-size: 14px; }
  .acc-table th, .acc-table td { padding: 8px 6px; }
  .acc-compare .acc-table td { width: 24%; }
}
.acc-order-status { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.acc-order-status select { min-width: 9.5em; padding: 6px 30px 6px 8px; background-position: right 9px center; background-size: 14px 14px; }

/* --- Fiókbeállítások: fülek --- */
.acc-shell { display: grid; gap: 18px; max-width: 860px; }
.acc-tabs {
  display: grid; grid-template-columns: repeat(6, auto); justify-content: space-between; gap: 4px; padding: 6px; border-radius: 999px;
  background: var(--surface); border: 1px solid var(--line);
}
.acc-tab {
  display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 8px 14px; border-radius: 999px;
  color: var(--muted); font-weight: 700; font-size: 14.5px; white-space: nowrap;
}
.acc-tab svg { flex: none; }
.acc-tab:hover { color: var(--ink); background: var(--paper-2); }
.acc-tab.is-active { background: var(--pine-soft); color: var(--ink); }
.acc-tab.is-active svg { color: var(--pine); }
.acc-tab:focus-visible { outline: 3px solid var(--pine); outline-offset: 2px; }
.acc-panel[hidden] { display: none !important; }
.acc-panel > .card { scroll-margin-top: 90px; }
@media (max-width: 900px) {
  .acc-tabs { display: flex; flex-wrap: nowrap; overflow-x: auto; border-radius: var(--r-md); scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .acc-tabs::-webkit-scrollbar { display: none; }
}

/* E-mail küldés beállítása */
.mail-set__modes { border: 0; margin: 0; padding: 0; display: grid; gap: 10px; }
.mail-set__modes legend { font-weight: 700; margin-bottom: 8px; }
.mail-set__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 12px; }
@media (max-width: 520px) { .mail-set__grid { grid-template-columns: minmax(0, 1fr); } }
.mail-diag { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 6px; }
.mail-diag li { padding: 8px 12px; border-radius: var(--r-sm); font-size: 14.5px; }
.mail-diag li.is-ok { background: var(--good-soft); color: var(--good); }
.mail-diag li.is-bad { background: var(--warn-soft); color: var(--warn); font-weight: 600; }
.mail-log { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 8px; }
.mail-log li { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r-md); }
.mail-log li .chip { flex: none; }
.mail-log__main { display: grid; gap: 2px; min-width: 0; }
.mail-log__main small { color: var(--muted); font-size: 13px; overflow-wrap: anywhere; }
.mail-log__main .mail-log__err { color: var(--warn); }

/* Oltási könyv: szakaszonként hozzáadás, soronként szerkesztés (nyomtatásban rejtve) */
.acc-book__sechead { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.acc-book__sechead h3 { margin: 0; }
.acc-table__edit { text-align: right; white-space: nowrap; }
.acc-table__edit a { font-weight: 600; font-size: 14px; }

/* Regisztráció (register.php): kétoszlopos, görgetés nélkül */
.reg2 { width: min(1100px, 100% - 32px); margin: clamp(16px, 3vw, 40px) auto clamp(40px, 5vw, 64px); display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 20px; align-items: stretch; }
.reg2__story { position: relative; overflow: hidden; border-radius: var(--r-lg, 24px); padding: clamp(24px, 3vw, 40px); color: #fff;
  background: radial-gradient(120% 90% at 100% 0%, #7A5FB0 0%, transparent 60%), radial-gradient(90% 70% at 0% 100%, #2F6B5A 0%, transparent 55%), linear-gradient(160deg, #4B3672, #2B1F44); }
.reg2__eyebrow { display: inline-block; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .2); }
.reg2__story h1 { color: #fff; font-size: clamp(1.9rem, 3.2vw, 2.6rem); margin: 14px 0 8px; line-height: 1.08; }
.reg2__lead { color: rgba(255, 255, 255, .82); margin: 0 0 18px; }
.reg2__invited { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 12px; background: rgba(111, 199, 166, .18); border: 1px solid rgba(111, 199, 166, .4); margin: 0 0 16px; }
.reg2__story .signup-perks { background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); border-radius: 18px; padding: 16px; margin: 0; }
.reg2__story .signup-perks__title { color: #fff; margin: 0 0 10px; font-weight: 800; }
.reg2__story .signup-perks ul { display: grid; gap: 10px; }
.reg2__story .signup-perks li strong { color: #fff; font-size: .98rem; }
.reg2__story .signup-perks li small { color: rgba(255, 255, 255, .72); font-size: .84rem; }
.reg2__story .signup-perks__ic { background: rgba(255, 255, 255, .14); color: #F3CC6E; }
.reg2__switch { margin: 18px 0 0; color: rgba(255, 255, 255, .8); }
.reg2__switch a { color: #BFF0DC; font-weight: 700; }
.reg2__card { border-radius: var(--r-lg, 24px); padding: clamp(22px, 3vw, 34px); }
.reg2__title { font-size: 1.5rem; margin: 0 0 14px; }
.reg2__form { gap: 12px; }
.reg2__form .grid-2 { gap: 12px; }
.reg2__types { border: 0; padding: 0; margin: 0; }
.reg2__types legend { font-weight: 700; margin-bottom: 8px; padding: 0; }
.reg2__types { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.reg2__types legend, .reg2__types .field-error, .reg2__typehint { grid-column: 1 / -1; }
.reg2__type input { position: absolute; opacity: 0; pointer-events: none; }
.reg2__type span { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 8px; border-radius: 14px; border: 1.5px solid var(--line); background: var(--surface); font-weight: 700; cursor: pointer; transition: border-color .15s, background .15s; }
.reg2__type span img, .reg2__type span svg { width: 20px; height: 20px; }
.reg2__type input:checked + span { border-color: var(--pine); background: var(--pine-soft); color: var(--pine); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pine) 18%, transparent); }
.reg2__type input:focus-visible + span { outline: 3px solid var(--pine); outline-offset: 2px; }
.reg2__typehint { margin: 2px 2px 0; font-size: .86rem; min-height: 1.2em; }
.reg2__invite { border: 1px dashed var(--line); border-radius: 14px; padding: 10px 14px; }
.reg2__invite summary { cursor: pointer; display: flex; align-items: center; gap: 8px; font-weight: 700; list-style: none; }
.reg2__invite summary::-webkit-details-marker { display: none; }
.reg2__invite summary small { font-weight: 500; }
.reg2__invite[open] summary { margin-bottom: 8px; }
.reg2__switch--card { display: none; }
@media (max-width: 900px) {
  .reg2 { grid-template-columns: 1fr; }
  .reg2__story { padding: 22px; }
  .reg2__story .signup-perks, .reg2__story .reg2__switch { display: none; }
  .reg2__switch--card { display: block; }
}
@media (max-width: 460px) { .reg2__type span { flex-direction: column; gap: 4px; font-size: .9rem; } }

/* assets/css/mod-admin.css */
/* Admin felület: csoportosított oldalsáv, felhasználólista, gyors műveletek, tenyésztő-címke. */

/* Tenyésztő címke: a tenyésztő jelvény lilája, hogy elváljon a többi szerepkörtől. */
.chip--breeder { background: #EEE6FF; color: #5B2FC9; }
:root[data-theme="dark"] .chip--breeder { background: #2D2245; color: #CDB8FF; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .chip--breeder { background: #2D2245; color: #CDB8FF; }
}

.adm-head__eyebrow { margin: 0 0 2px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }

.adm-shell { display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: 24px; align-items: start; }
.adm-main { min-width: 0; }
.adm-side { position: sticky; top: 84px; max-height: calc(100vh - 100px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; border-radius: var(--r-md, 16px); }
.adm-jump { display: none; }

.adm-nav { padding: 12px; }
.adm-nav__group { margin: 14px 10px 6px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.adm-nav__group:first-child { margin-top: 4px; }
.adm-nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.adm-nav a { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: var(--r-sm); color: var(--ink); text-decoration: none; font-weight: 500; }
.adm-nav a:hover { background: var(--paper-2); }
.adm-nav a.is-active { background: var(--pine-soft); color: var(--pine); font-weight: 700; }
.adm-nav__count { min-width: 22px; padding: 1px 7px; border-radius: 999px; background: var(--warn-soft); color: var(--warn); font-size: 12.5px; font-weight: 700; text-align: center; }

@media (max-width: 960px) {
  .adm-shell { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .adm-side { position: static; max-height: none; overflow: visible; }
  .adm-nav { display: none; }
  .adm-jump { display: flex; gap: 8px; align-items: flex-end; }
  .adm-jump .field { flex: 1; margin: 0; }
}

/* Felhasználólista: soronként egy kártya (a táblázat jelölése megmarad a képernyőolvasóknak). */
.adm-chips { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.adm-users, .adm-users tbody, .adm-users tr, .adm-users th, .adm-users td { display: block; }
.adm-users thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.adm-users tr { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); column-gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.adm-users tr:last-child { border-bottom: 0; }
.adm-users th[scope="row"] { grid-row: span 4; border: 0; padding: 0; overflow-wrap: anywhere; }
.adm-users td { border: 0; padding: 2px 0; }
.adm-users td[data-label] { display: flex; justify-content: space-between; gap: 12px; font-size: 14.5px; }
.adm-users td[data-label]::before { content: attr(data-label); color: var(--muted); }
.adm-users__act { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; font-weight: 400; }
.adm-users__act .btn { white-space: nowrap; }
@media (max-width: 640px) {
  .adm-users tr { grid-template-columns: minmax(0, 1fr); }
  .adm-users th[scope="row"] { grid-row: auto; margin-bottom: 8px; }
}
.adm-main .card__head { flex-wrap: wrap; row-gap: 4px; }

/* Felhasználó adatlap: gyors műveletek a fejlécben */
.adm-quick { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 14px; }
.adm-quick:empty { display: none; }
.adm-quick__why { margin: -6px 0 14px; }

/* Mobilon az adatlap kerüljön előre, a műveletek alá. */
@media (max-width: 900px) {
  .adm-user > aside { order: 0; }
}

/* Ellenőrzött állapot és visszavonás: külön sorban, jól elkülönítve. */
.adm-verify { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin: 0; }
.adm-verify__state { display: inline-flex; align-items: center; gap: 5px; }
.adm-verify__undo { color: var(--bad); border-color: color-mix(in srgb, var(--bad) 35%, var(--line)); }
.adm-verify__undo:hover { background: var(--bad-soft); color: var(--bad); }

/* Csomagok és árak */
.adm-plans__stats { margin: 0; }
.adm-plans__table thead th { white-space: normal; font-size: 12px; }
.adm-plans__table td:nth-child(2) { white-space: nowrap; }
@media (max-width: 720px) {
  .adm-plans__table, .adm-plans__table tbody, .adm-plans__table tr, .adm-plans__table th, .adm-plans__table td { display: block; white-space: normal; }
  .adm-plans__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .adm-plans__table tr { padding: 12px 0; border-bottom: 1px solid var(--line); }
  .adm-plans__table th, .adm-plans__table td { border: 0; padding: 3px 0; }
  .adm-plans__table td[data-label] { display: flex; justify-content: space-between; gap: 12px; }
  .adm-plans__table td[data-label]::before { content: attr(data-label); color: var(--muted); }
}

/* --- Csomagok és árak: árszerkesztő --- */
.adm-prices__group { margin: 18px 0 8px; font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.adm-prices__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.adm-prices__row {
  display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 12px; align-items: center;
  padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface);
}
.adm-prices__n { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); font-weight: 800; font-size: 14px; }
.adm-prices__info { display: grid; gap: 4px; min-width: 0; }
.adm-prices__info .acc-small { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.adm-prices__field { display: flex; align-items: center; gap: 8px; }
.adm-prices__field input { width: 130px; text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
.adm-prices__unit { color: var(--muted); font-size: 14px; white-space: nowrap; min-width: 74px; }
.adm-prices__intro { margin: 0 0 4px 44px; padding: 12px 14px; border: 1px dashed color-mix(in srgb, var(--pine) 40%, var(--line)); border-radius: var(--r-md); background: color-mix(in srgb, var(--pine-soft) 45%, transparent); }
.adm-prices__introhead { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; justify-content: space-between; margin: 0 0 10px; }
.adm-prices__introgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.adm-prices__introgrid .field { margin: 0; }
.adm-prices__actions { display: flex; justify-content: flex-end; margin: 16px 0 0; }
.adm-prices__actions .btn { box-shadow: var(--shadow-lift); }
@media (max-width: 760px) {
  .adm-prices__row { grid-template-columns: 30px minmax(0, 1fr); }
  .adm-prices__field { grid-column: 2; }
  .adm-prices__field input { flex: 1; width: auto; min-width: 0; }
  .adm-prices__intro { margin-left: 0; }
  .adm-prices__introgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.adm-verify-mail { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.adm-verify-mail form { margin: 0; }

/* --- Admin › Rendelések: kártyák --- */
.adm-orders__sum { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0 0 12px; color: var(--muted); font-size: 15px; }
.adm-orders__sum strong { color: var(--ink); }
.adm-orders__sum { align-items: center; }
.adm-orders__export { display: inline-flex; gap: 8px; align-items: center; margin-left: auto; }
.adm-orders__export select { padding: 6px 10px; border-radius: var(--r-sm); border: 1px solid var(--line); background: var(--paper); color: var(--ink); font: inherit; font-size: 14px; }
.adm-orders__warn { color: var(--warn); }
.adm-orders__warn strong { color: var(--warn); }
.adm-orders { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.adm-order { padding: 16px 18px; display: grid; gap: 12px; }
.adm-order__top { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.adm-order__what { display: grid; gap: 2px; min-width: 0; }
.adm-order__what strong { font-size: 17px; }
.adm-order__what .muted { font-size: 14px; }
.adm-order__amount { display: grid; justify-items: end; gap: 6px; font-size: 20px; font-weight: 800; white-space: nowrap; }
.adm-order__label { display: inline-block; min-width: 56px; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.adm-order__who { display: flex; gap: 10px; align-items: baseline; font-size: 15px; min-width: 0; overflow-wrap: anywhere; }
.adm-order__bar { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; justify-content: space-between; padding-top: 12px; border-top: 1px solid var(--line); }
.adm-order__inv { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 15px; min-width: 0; }
.adm-order__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-left: auto; }
.adm-order__actions form { margin: 0; }
.adm-order__status select { min-height: 38px; padding: 6px 34px 6px 12px; border-radius: 999px; font-size: 14px; width: auto; }
@media (max-width: 560px) {
  .adm-order__who { flex-direction: column; gap: 2px; }
  .adm-order__actions { margin-left: 0; width: 100%; }
}
.adm-orders > .adm-order { margin: 0; }
.adm-orders__go { font-weight: 700; color: var(--pine); }
.adm-order__refunded { font-size: 13px; font-weight: 700; color: var(--bad); }
.adm-refund { position: relative; }
.adm-refund > summary { list-style: none; }
.adm-refund > summary::-webkit-details-marker { display: none; }
.adm-refund__btn { color: var(--bad); border-color: color-mix(in srgb, var(--bad) 45%, var(--line)); }
.adm-refund__form { position: absolute; right: 0; bottom: calc(100% + 8px); z-index: 20; width: min(340px, 86vw); display: grid; gap: 10px; padding: 16px; border-radius: var(--r-md); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lift); }
.adm-refund__form .field { margin: 0; }
.adm-refund__title { margin: 0; font-weight: 800; }
@media (max-width: 560px) { .adm-refund__form { position: fixed; left: 12px; right: 12px; bottom: 12px; width: auto; } }

/* Előregisztrációk: levélküldés állapota */
.prereg-mailwarn { border-left: 4px solid var(--warn); }
.prereg-resend { display: inline-block; margin-left: 6px; }

/* Kompakt admin: egy sorban a fő számok, szűrősáv, belül görgethető táblázat ragadós fejléccel. */
.adm-kpis { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.adm-kpi { display: grid; grid-template-columns: auto 1fr; column-gap: 8px; align-items: baseline; padding: 9px 14px; border-radius: 14px; background: var(--surface-glass); border: 1px solid var(--line); color: var(--ink); text-decoration: none; min-width: 150px; flex: 1 1 150px; transition: border-color .12s, background .12s; }
.adm-kpi b { font-family: var(--font-display); font-size: 24px; font-weight: 800; line-height: 1.1; grid-row: span 2; }
.adm-kpi span { font-weight: 600; font-size: 14px; }
.adm-kpi small { color: var(--muted); font-size: 12px; grid-column: 2; }
a.adm-kpi:hover { border-color: var(--pine); color: var(--ink); }
.adm-kpi.is-on { border-color: var(--pine); background: var(--pine-soft); }
.adm-alert { margin: 0 0 12px; padding: 10px 14px; border-radius: 12px; background: var(--warn-soft); color: var(--ink); font-size: 14px; }
.adm-panel { padding: 14px 16px; }
.adm-filter { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.adm-filter input, .adm-filter select { height: 38px; padding: 0 12px; font-size: 14px; border-radius: 10px; }
.adm-filter__q { flex: 1 1 220px; }
.adm-filter__q input { width: 100%; }
.adm-filter__end { margin-left: auto; }
.adm-src { margin: 10px 0 0; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 13px; }
.adm-src .chip { font-size: 12.5px; padding: 2px 9px; }
.adm-count { margin: 12px 0 6px; font-size: 13px; }
.adm-empty { margin: 16px 0 4px; }
.adm-tablewrap { overflow: auto; max-height: min(66vh, 720px); border: 1px solid var(--line); border-radius: 12px; }
.adm-table { font-size: 14px; }
.adm-table thead th { position: sticky; top: 0; z-index: 1; background: var(--surface); font-size: 11.5px; padding: 9px 8px; white-space: nowrap; box-shadow: 0 1px 0 var(--line); }
.adm-table td { padding: 8px 8px; vertical-align: middle; }
.adm-acts .iconbtn + form, .adm-acts form + form { margin-left: 2px; }
.adm-table tbody tr:hover td { background: var(--pine-soft); }
.adm-table .chip { font-size: 12px; padding: 2px 8px; white-space: nowrap; }
.adm-nowrap { white-space: nowrap; }
.adm-who { min-width: 170px; }
.adm-who > * { display: block; }
.adm-who a { font-size: 13px; color: var(--muted); word-break: break-all; }
.adm-acts { white-space: nowrap; text-align: right; }
.adm-acts form { display: inline-block; margin: 0; }
.adm-acts .iconbtn { width: 32px; height: 32px; }
.iconbtn--danger { color: var(--bad); }
.iconbtn--danger:hover { background: var(--bad-soft); }
.adm-pager { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 10px; }
.adm-foot { margin: 10px 0 0; }
/* A régi nagy statisztikakártyák is kisebbek az adminban. */
.admin-page .acc-stats { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; }
.admin-page .acc-stat { padding: 10px 14px; }
.admin-page .acc-stat__n { font-size: 24px; }
@media (max-width: 760px) {
  .adm-kpi { min-width: 0; flex-basis: calc(50% - 4px); }
  .adm-filter__end { margin-left: 0; }
  .adm-tablewrap { max-height: none; }
}
.adm-who small { font-size: 12.5px; }
.adm-stack { white-space: nowrap; }
.adm-stack > small { display: block; margin-top: 3px; }
.adm-stack small { font-size: 12px; }
.adm-ok { color: var(--good); }
.adm-bad { color: var(--bad); }
.adm-filter select { width: auto; max-width: 165px; }
.adm-filter__q { flex: 1 1 180px; }
.admin-page .pagehead { margin-bottom: 14px; }
.admin-page .pagehead h1 { font-size: clamp(26px, 3vw, 36px); }
.adm-camp { margin-top: 12px; }
.adm-camp > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.adm-camp > summary::-webkit-details-marker { display: none; }
.adm-camp > summary > span:first-child { display: grid; gap: 2px; }
.adm-camp[open] > summary { margin-bottom: 12px; }
.adm-camp__form textarea { font-family: inherit; line-height: 1.5; }
.adm-camp__acts { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }

/* assets/css/mod-ai-fab.css */
/* Bundee AI kiemelése: lebegő gomb, főoldali kártya, nyitóoldali bemutató. */

/* --- Lebegő gomb (jobb alsó sarok) --- */
.aifab {
  position: fixed; right: 20px; bottom: 24px; z-index: 36;
  display: block; width: 56px; height: 56px; padding: 0; border-radius: 50%;
  text-decoration: none; color: var(--ink);
  filter: drop-shadow(0 6px 16px rgba(74, 53, 112, .35));
  transition: transform .18s ease, filter .18s ease;
}
.aifab__mark { display: block; width: 56px; height: 56px; }
.aifab__label {
  position: absolute; right: calc(100% + 10px); top: 50%; translate: 0 -50%;
  padding: 8px 14px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line);
  font-weight: 700; font-size: 14px; white-space: nowrap; box-shadow: var(--shadow-lift);
  opacity: 0; transform: translateX(8px); pointer-events: none; transition: opacity .18s ease, transform .18s ease;
}
.aifab:hover, .aifab:focus-visible { transform: translateY(-2px); filter: drop-shadow(0 10px 22px rgba(74, 53, 112, .45)); }
.aifab:hover .aifab__label, .aifab:focus-visible .aifab__label { opacity: 1; transform: none; }
.aifab:focus-visible { outline: 3px solid var(--pine); outline-offset: 4px; }
/* Ha az Üzenetek-dokk is látszik (asztali gépen), fölé kerül. */
body:has(.sdock:not([hidden])) .aifab { bottom: 84px; }
@media (max-width: 999px) { .aifab { bottom: 20px; right: 16px; } }
/* Mobilon az alsó menüsor fölött. */
@media (max-width: 760px) {
  .aifab { bottom: calc(78px + env(safe-area-inset-bottom, 0px)); right: 14px; }
  .aifab, .aifab__mark { width: 52px; height: 52px; }
  .aifab__label { display: none; }
}
@media (prefers-reduced-motion: reduce) { .aifab, .aifab__label { transition: none; } }
@media print { .aifab { display: none !important; } }

/* --- Főoldali kártya --- */
.aicard {
  margin-bottom: 18px; border: 1.5px solid color-mix(in srgb, var(--pine) 30%, var(--line));
  background: linear-gradient(135deg, color-mix(in srgb, var(--pine-soft) 70%, var(--surface)) 0%, var(--surface) 70%);
}
.aicard__head { display: flex; gap: 14px; align-items: flex-start; }
.aicard__head svg { flex: none; }
.aicard__head h2 { margin: 2px 0 4px; font-size: 21px; }
.aicard__head p { margin: 0; }
.aicard__form { display: flex; gap: 8px; margin-top: 14px; }
.aicard__form input { flex: 1; min-width: 0; border-radius: 999px; padding-inline: 18px; min-height: 46px; }
.aicard__form .btn { border-radius: 999px; min-height: 46px; flex: none; }
.aicard__sugs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.aicard__sug {
  display: inline-flex; align-items: center; min-height: 36px; padding: 6px 14px; border-radius: 999px;
  background: var(--surface); border: 1px solid var(--line); color: var(--ink); font-size: 14px; font-weight: 600;
}
.aicard__sug:hover { border-color: var(--pine); color: var(--pine); }
.aicard__cta { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; }
.aicard__note { margin: 12px 0 0; font-size: 13px; }
.aicard__quota { margin: 10px 0 0; font-size: 14px; font-weight: 600; color: var(--muted); }
.aicard__quota a { color: var(--pine); }
.aicard--compact .aicard__head h2 { font-size: 18px; }
.aicard--compact .aicard__head p { font-size: 14.5px; }
@media (max-width: 520px) {
  .aicard__form { flex-direction: column; }
  .aicard__form .btn { width: 100%; }
}

/* --- Nyitóoldali bemutató --- */
.ailand {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: center;
  margin-block: 56px; padding: 32px; border-radius: var(--r-lg);
  background: linear-gradient(135deg, var(--pine-soft) 0%, var(--paper-2) 100%);
}
.ailand__text h2 { margin: 14px 0 8px; font-size: clamp(26px, 3.2vw, 36px); line-height: 1.1; }
.ailand__list { margin: 14px 0 18px; padding-left: 20px; display: grid; gap: 4px; }
.ailand__text p:last-child { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.ailand__chat { display: grid; gap: 10px; }
.ailand__q, .ailand__a { margin: 0; padding: 12px 16px; border-radius: 18px; font-size: 15.5px; line-height: 1.5; max-width: 92%; }
.ailand__q { justify-self: end; background: var(--pine); color: var(--on-pine); border-bottom-right-radius: 6px; }
.ailand__a { justify-self: start; background: var(--surface); border: 1px solid var(--line); border-bottom-left-radius: 6px; box-shadow: var(--shadow-lift); }
@media (max-width: 820px) {
  .ailand { grid-template-columns: minmax(0, 1fr); padding: 22px 18px; margin-block: 36px; }
}

/* Lebegő gombok: lefelé görgetéskor és az oldal alján elbújnak, felfelé görgetésre visszajönnek (ui-actions.js), így nem takarnak tartalmat. */
.aifab, .sdock__pill { transition: transform .22s ease, opacity .22s ease, filter .18s ease; }
body.fab-hide .aifab { transform: translateY(140%); opacity: 0; pointer-events: none; }
body.fab-hide .sdock:not(:has(.sdock__win:not([hidden]))) .sdock__pill { transform: translateY(140%); opacity: 0; pointer-events: none; }
@media (max-width: 760px) {
  .aifab, .aifab__mark { width: 46px; height: 46px; }
  body:has(.aifab) main { padding-bottom: 64px; }
}

/* assets/css/mod-ai.css */
/* Bundee AI asszisztens (5. kör) */
.ai-page { padding-bottom: 64px; }
.ai-quota { font-size: 14px; }
.ai-layout { display: grid; grid-template-columns: 280px 1fr; gap: 16px; align-items: start; }
.ai-side { display: grid; gap: 12px; position: sticky; top: 84px; }
.ai-history summary, .ai-privacy summary { cursor: pointer; font-weight: 700; font-size: 15px; padding: 6px 2px; }
.ai-chats { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 2px; }
.ai-chats a { display: grid; gap: 1px; padding: 9px 10px; border-radius: var(--r-md); text-decoration: none; color: var(--ink); }
.ai-chats a:hover { background: var(--paper-2); color: var(--ink); }
.ai-chats li.is-active a { background: var(--pine-soft); }
.ai-chats strong { font-size: 15px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ai-chats small { font-size: 12px; color: var(--muted); }
.ai-privacy { padding: 12px 14px; font-size: 14px; }
.ai-privacy p { margin: 8px 0 0; color: var(--muted); }

.ai-chat { padding: 0; overflow: hidden; display: flex; flex-direction: column; min-height: 520px; }
.ai-chat__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 20px; border-bottom: 1px solid var(--line); }
.ai-chat__head strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ai-thread { list-style: none; margin: 0; padding: 20px; display: flex; flex-direction: column; gap: 14px; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
/* Asztali gépen a csevegés kitölti a képernyőt, és csak a beszélgetés görget (küldéskor nem ugrik az oldal). */
@media (min-width: 521px) {
  .ai-chat { height: clamp(460px, calc(100dvh - 230px), 900px); min-height: 0; }
}

.ai-msg { display: flex; gap: 10px; align-items: flex-start; max-width: 100%; }
.ai-msg--user { align-self: flex-end; max-width: min(80%, 560px); }
.ai-msg--user .ai-msg__body { background: var(--pine); color: var(--on-pine); border-radius: 18px 18px 6px 18px; padding: 10px 14px; white-space: normal; overflow-wrap: anywhere; }
.ai-msg--pending { opacity: .7; }
.ai-msg--bot { align-self: flex-start; max-width: min(92%, 640px); }
.ai-msg__avatar { flex: none; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; }
.ai-msg__avatar svg { display: block; }
.ai-msg__main { display: grid; gap: 8px; min-width: 0; justify-items: start; }
.ai-msg--bot .ai-msg__body { background: var(--paper-2); color: var(--ink); border-radius: 18px 18px 18px 6px; padding: 10px 14px; overflow-wrap: anywhere; }
.ai-msg__body p { margin: 0; }
.ai-msg__body p + p, .ai-msg__body p + ul, .ai-msg__body ul + p, .ai-msg__body p + ol, .ai-msg__body ol + p { margin-top: 8px; }
.ai-msg__body ul, .ai-msg__body ol { margin: 0; padding-left: 20px; }
.ai-msg__body li + li { margin-top: 2px; }
.ai-msg--error .ai-msg__body { background: var(--bad-soft); color: var(--bad); }
.ai-msg__tag { font-size: 12px; font-weight: 600; color: var(--warn); background: var(--warn-soft); border-radius: 999px; padding: 1px 8px; }

.ai-typing .ai-msg__body { display: inline-flex; gap: 5px; align-items: center; padding: 14px 16px; }
.ai-typing .ai-msg__body span { width: 7px; height: 7px; border-radius: 50%; background: var(--muted); animation: ai-dot 1.2s infinite ease-in-out; }
.ai-typing .ai-msg__body span:nth-child(2) { animation-delay: .15s; }
.ai-typing .ai-msg__body span:nth-child(3) { animation-delay: .3s; }
@keyframes ai-dot { 0%, 80%, 100% { opacity: .3; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }
@media (prefers-reduced-motion: reduce) { .ai-typing .ai-msg__body span { animation: none; } }

.ai-card { border: 1px solid var(--line); background: var(--surface); border-radius: var(--r-lg); padding: 14px; display: grid; gap: 10px; width: min(100%, 460px); box-shadow: var(--shadow-lift); }
.ai-card__head { display: flex; align-items: center; gap: 8px; color: var(--pine); }
.ai-card__head strong { color: var(--ink); }
.ai-card__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; }
.ai-card__facts div { background: var(--paper-2); border-radius: var(--r-sm); padding: 8px 10px; min-width: 0; }
.ai-card__facts dt { font-size: 12px; color: var(--muted); }
.ai-card__facts dd { margin: 0; font-weight: 700; font-size: 15px; overflow-wrap: anywhere; }
.ai-card__facts dd small { display: block; font-weight: 500; font-size: 13px; color: var(--muted); }
.ai-card__note { margin: 0; font-size: 14px; }
.ai-card__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ai-card__actions .muted { font-size: 13px; }
.ai-card__done { margin: 0; display: flex; gap: 6px; align-items: center; color: var(--good); font-weight: 700; font-size: 15px; }
.ai-link { justify-self: start; }

.ai-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 20px 12px; }
.ai-chip { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 999px; padding: 8px 14px; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; text-align: left; }
.ai-chip:hover { border-color: var(--pine); background: var(--pine-soft); }
.ai-input { display: flex; gap: 10px; align-items: flex-end; padding: 14px 20px; border-top: 1px solid var(--line); background: var(--surface); }
.ai-input textarea { flex: 1; min-height: 48px; max-height: 180px; resize: vertical; font: inherit; padding: 11px 14px; border-radius: var(--r-md); border: 1.5px solid var(--line); background: var(--paper); color: var(--ink); }
.ai-input textarea:focus { outline: none; border-color: var(--pine); box-shadow: 0 0 0 3px var(--pine-soft); }
.ai-note { margin: 0; padding: 0 20px 14px; font-size: 13px; }
.ai-upsell { margin: 14px 20px 20px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }

@media (max-width: 860px) {
  .ai-layout { grid-template-columns: 1fr; }
  .ai-side { position: static; }
  .ai-history:not([open]) + .ai-privacy { margin-top: 0; }
}
@media (max-width: 520px) {
  .ai-thread { padding: 14px; max-height: none; }
  .ai-msg--bot, .ai-msg--user { max-width: 100%; }
  .ai-card__facts { grid-template-columns: 1fr; }
  .ai-input { padding: 12px 14px; }
  .ai-input .btn { padding: 12px 16px; }
  .ai-chips { padding: 0 14px 12px; }
  .ai-chat { min-height: 0; }
}

/* AI-beállítások: keretek és költség (ai-beallitasok.php) */
.ai-set__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px 14px; }
.ai-set__grid .field { min-width: 0; }
.ai-set__grid input { width: 100%; }
.ai-set__h3 { font-size: 17px; margin: 16px 0 6px; }
.ai-set__top { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; counter-reset: aitop; }
.ai-set__top li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 12px; border-radius: var(--r-sm); border: 1px solid var(--line); counter-increment: aitop; min-width: 0; }
.ai-set__top li span { overflow-wrap: anywhere; }
.ai-set__top li span::before { content: counter(aitop) ". "; color: var(--muted); font-weight: 700; }
.ai-set__top li strong { flex: none; }
.ai-upsell span { flex: 1 1 260px; }

/* assets/css/mod-api.css */
/* Rendelői API: kulcsok, webhookok, fejlesztői dokumentáció */
.api-page .card + .card, .api-page .note + .card { margin-top: 16px; }
.api-page { padding-bottom: 64px; }
.api-free { display: flex; gap: 8px; align-items: flex-start; margin: 16px 0; }
.api-free svg { flex: none; margin-top: 2px; color: var(--good); }
.api-free code, .api-docs code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .9em; background: var(--paper-2); padding: 1px 6px; border-radius: 6px; word-break: break-all; }
.api-reveal { border-color: var(--pine); }
.api-reveal h2 { margin-bottom: 4px; }
.api-copy { display: flex; gap: 8px; margin-top: 10px; }
.api-copy input { flex: 1; min-width: 0; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 14px; padding: 10px 12px; border-radius: var(--r-sm); border: 1.5px solid var(--line); background: var(--surface); color: var(--ink); }
.api-inline { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 14px; }
.api-inline .field { flex: 1; min-width: 220px; }
.api-list { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; }
.api-row { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 12px 14px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--paper); }
.api-row > div:first-child { display: grid; gap: 2px; min-width: 0; flex: 1 1 260px; }
.api-row.is-off { opacity: .65; }
.api-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 14px; color: var(--muted); }
.api-small { font-size: 13px; }
.api-url { word-break: break-all; }
.api-actions { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.api-actions form { margin: 0; }
.api-events { border: 0; margin: 0; padding: 0; display: grid; gap: 8px; }
.api-events legend { font-weight: 600; font-size: 15px; margin-bottom: 6px; }
.api-events code { font-size: 13px; }
.api-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.api-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.api-table th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); font-weight: 700; padding: 8px 10px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.api-table td { padding: 9px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.api-table tr:last-child td { border-bottom: 0; }

/* Dokumentáció */
.api-docs { padding-bottom: 64px; }
.api-docs__layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 16px; align-items: start; }
.api-docs__body { display: grid; gap: 16px; min-width: 0; }
.api-docs__body > .card { min-width: 0; overflow-wrap: anywhere; }
.api-docs .api-table td code { word-break: break-word; }
.api-docs__body .card + .card { margin-top: 0; }
.api-docs .prose { max-width: none; }
.api-docs h3 { font-size: 18px; margin-top: 1.2em; }
.api-toc { position: sticky; top: 84px; padding: 16px 18px; font-size: 15px; }
.api-toc ol { margin: 8px 0 0; padding-left: 20px; display: grid; gap: 4px; }
.api-toc a { text-decoration: none; }
.api-toc a:hover { text-decoration: underline; }
.api-code { margin: 10px 0 14px; padding: 14px 16px; border-radius: var(--r-md); border: 1px solid var(--line); background: #15111D; color: #EEEAF5; overflow-x: auto; font-size: 13.5px; line-height: 1.55; }
.api-code code { background: none !important; padding: 0 !important; color: inherit; word-break: normal !important; white-space: pre; }
.api-method { display: inline-block; font-size: 12px; font-weight: 800; letter-spacing: .03em; padding: 2px 8px; border-radius: 6px; background: var(--pine-soft); color: var(--pine); }
.api-method--post { background: var(--good-soft); color: var(--good); }
.api-method--delete { background: var(--bad-soft); color: var(--bad); }
.api-statuses { list-style: none; padding: 0; margin: 8px 0 0; display: flex; flex-wrap: wrap; gap: 8px 16px; }
@media (max-width: 860px) {
  .api-docs__layout { grid-template-columns: minmax(0, 1fr); }
  .api-toc { position: static; }
}
@media (max-width: 520px) {
  .api-copy { flex-direction: column; }
  .api-table { font-size: 13px; }
}

/* assets/css/mod-app.css */
/* Bundee a telefonodon (app-letoltes.php): natív app bemutató */
.dl-hero { display: grid; grid-template-columns: 1.15fr 1fr; gap: 36px; align-items: center; padding: 36px 0 28px; }
.dl-hero h1 { font-size: clamp(34px, 5vw, 54px); letter-spacing: -0.035em; line-height: 1.02; margin-bottom: 14px; }
.dl-lead { font-size: 18px; color: var(--muted); max-width: 32em; }
.dl-stores { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.dl-store { display: grid; grid-template-columns: auto auto; column-gap: 10px; align-items: center; min-width: 190px; padding: 10px 16px;
  border-radius: var(--r-md); background: var(--ink); color: var(--paper); text-decoration: none; }
.dl-store:hover { opacity: .92; }
.dl-store__small { grid-column: 1 / -1; font-size: 12px; opacity: .8; }
.dl-store strong { font-family: var(--font-display); font-size: 21px; letter-spacing: -0.01em; }
.dl-store--soon { background: var(--surface); color: var(--ink); border: 1px dashed var(--line); cursor: default; }
.dl-store--soon .dl-store__small { color: var(--muted); opacity: 1; }
.dl-store .chip { justify-self: start; }
.dl-note { margin-top: 14px; color: var(--muted); }
/* iPhone-előkép: valósághű keret, benne kipróbálható app-demó (assets/js/app-demo.js) */
.dl-device { justify-self: center; display: grid; justify-items: center; gap: 14px; }
.iphone {
  --w: min(300px, 76vw);
  position: relative; width: var(--w); aspect-ratio: 71.5 / 149.6; font-size: calc(var(--w) / 18.75);
  border-radius: 3.45em; padding: .62em; background: #0b0b0d;
  box-shadow:
    0 0 0 .12em #5d5a63, 0 0 0 .26em #2a282e, 0 0 0 .3em #8f8b96,
    0 2.4em 3.4em -1.2em rgba(34, 22, 58, .45), 0 .8em 1.6em -.6em rgba(34, 22, 58, .3);
}
.iphone__btn { position: absolute; width: .26em; border-radius: .2em; background: linear-gradient(90deg, #4b4850, #8f8b96 60%, #3a383e); }
.iphone__btn--action { left: -.5em; top: 7.6em; height: 1.9em; }
.iphone__btn--volup { left: -.5em; top: 10.6em; height: 3.4em; }
.iphone__btn--voldown { left: -.5em; top: 14.7em; height: 3.4em; }
.iphone__btn--power { right: -.5em; top: 11.4em; height: 5.2em; }
.iphone__screen {
  --ip-bg: #f4f2f8; --ip-card: #fff; --ip-text: #1c1826; --ip-muted: #7a7388; --ip-line: #eeebf3; --ip-accent: #55407e;
  --ip-accent-soft: #ece7f4; --ip-accent-text: #55407e; --ip-mint: #3fae96; --ip-seg: #e7e3ee; --ip-seg-on: #fff; --ip-bar: rgba(250, 249, 252, .97);
  --ip-off: #ece9f1; --ip-offtext: #bdb6c9; --ip-shadow: 0 1px 2px rgba(30, 20, 50, .07); --ip-danger: #c2364a;
  position: relative; height: 100%; overflow: hidden; border-radius: 2.85em; isolation: isolate;
  background: var(--ip-bg); color: var(--ip-text);
  font-family: -apple-system, 'SF Pro Text', 'Figtree', system-ui, sans-serif; letter-spacing: -0.01em; line-height: 1.3;
  -webkit-tap-highlight-color: transparent; user-select: none;
}
.iphone__screen button { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; text-align: inherit; letter-spacing: inherit; }
.iphone__screen button:disabled { cursor: default; }
.iphone__screen :focus-visible { outline: .14em solid var(--ip-mint); outline-offset: .12em; border-radius: .6em; }
.iphone__island { position: absolute; z-index: 9; top: .72em; left: 50%; width: 5.5em; height: 1.62em; transform: translateX(-50%); border-radius: 1em; background: #000; pointer-events: none; }
.iphone__home { position: absolute; z-index: 9; bottom: .45em; left: 50%; width: 8.4em; height: .3em; transform: translateX(-50%); border-radius: .2em; background: var(--ip-text); opacity: .85; pointer-events: none; transition: background .3s; }
.iphone__screen.is-dark-top .iphone__home { background: #fff; }
.iphone__screen.is-fading > *:not(.iphone__island):not(.iphone__home) { opacity: 0; transition: opacity .25s; }

/* Státuszsor */
.ip-status { position: absolute; z-index: 8; inset: 0 0 auto; display: flex; justify-content: space-between; align-items: center; height: 3.2em; padding: .3em 1.75em 0 1.6em; font-weight: 600; font-size: .88em; pointer-events: none; transition: color .3s; }
.ip-status__time { width: 3.4em; text-align: center; }
.ip-status__icons { display: flex; align-items: center; gap: .32em; }
.ip-status__icons svg { height: .72em; width: auto; fill: currentColor; }
.ip-batt { position: relative; width: 1.6em; height: .78em; border: .09em solid currentColor; border-radius: .26em; opacity: .9; padding: .09em; }
.ip-batt::after { content: ""; position: absolute; right: -.22em; top: .22em; width: .1em; height: .26em; border-radius: 0 .1em .1em 0; background: currentColor; }
.ip-batt span { display: block; width: 78%; height: 100%; border-radius: .12em; background: currentColor; }
.ip-status--light { color: #fff; }

/* Zárolt képernyő */
.ip-lock { position: absolute; z-index: 7; inset: 0; display: flex; flex-direction: column; color: #fff; transition: transform .45s cubic-bezier(.3, .7, .2, 1), opacity .45s;
  background:
    radial-gradient(80% 50% at 20% 15%, #8a6cc4 0%, transparent 60%),
    radial-gradient(70% 45% at 85% 70%, #3fae96 0%, transparent 65%),
    linear-gradient(170deg, #4a3577 0%, #2b1f47 55%, #1a1430 100%); }
.ip-lock.is-open { transform: translateY(-104%); opacity: .6; pointer-events: none; }
.ip-lock.no-anim { transition: none; }
.ip-lock.is-static { position: absolute; }
.ip-lock__date { text-align: center; font-weight: 600; font-size: 1.05em; margin-top: 3.9em; opacity: .92; }
.ip-lock__time { text-align: center; font-size: 5.4em; font-weight: 700; line-height: 1; letter-spacing: -0.04em; margin-top: .02em; font-family: -apple-system, 'SF Pro Display', 'Bricolage Grotesque', system-ui, sans-serif; }
.ip-lock__notes { margin-top: auto; padding: 0 .7em .9em; display: grid; gap: .45em; }
.ip-note { display: flex; gap: .65em; width: 100%; padding: .75em .8em; border-radius: 1.3em; background: rgba(255, 255, 255, .2); -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4); font-size: .82em; line-height: 1.3; color: #fff; text-align: left; transition: transform .15s, background .2s; }
.iphone__screen .ip-note { color: #fff; }
.ip-note:hover { background: rgba(255, 255, 255, .27); }
.ip-note:active { transform: scale(.98); }
.ip-note img { width: 2.3em; height: 2.3em; border-radius: .6em; flex: none; }
.ip-note__head { display: flex; justify-content: space-between; margin: 0 0 .1em; font-size: .9em; opacity: .75; }
.ip-note__head b { font-weight: 600; }
.ip-note strong { font-weight: 650; }
.ip-note--back { opacity: .85; transform: scale(.97); }
.ip-lock__dock { display: flex; justify-content: space-between; padding: 0 2.6em .4em; }
.ip-lock__dock span { width: 2.9em; height: 2.9em; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .18); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.ip-lock__dock svg { width: 1.3em; height: 1.3em; }
.iphone__screen .ip-unlock { display: grid; justify-items: center; gap: .35em; padding: .3em 0 1.5em; font-size: .7em; font-weight: 600; color: rgba(255, 255, 255, .85); text-align: center; }
.ip-unlock span { width: 1.6em; height: .8em; border-left: .18em solid currentColor; border-top: .18em solid currentColor; transform: rotate(45deg) translate(.15em, .15em); animation: ip-nudge 1.6s ease-in-out infinite; }
@keyframes ip-nudge { 50% { transform: rotate(45deg) translate(-.15em, -.15em); } }

/* Lapok és navigáció */
.ip-stage { position: absolute; inset: 0 0 4.3em; z-index: 1; overflow: hidden; transition: bottom .3s; }
.no-tabs .ip-stage { bottom: 0; }
.ipg { position: absolute; inset: 0; display: flex; flex-direction: column; background: var(--ip-bg); transition: transform .34s cubic-bezier(.3, .7, .2, 1), filter .34s; will-change: transform; }
.ipg.is-enter { transform: translateX(102%); box-shadow: -1em 0 2em rgba(0, 0, 0, .08); }
.ipg.is-under { transform: translateX(-28%); filter: brightness(.94); }
.ip-scroll { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; }
.ip-scroll::-webkit-scrollbar { display: none; }
.ip-pad { padding: 3.4em 1.05em 1.4em; display: flex; flex-direction: column; gap: .7em; font-size: .88em; }
.ip-pad > * { flex: none; }
.ip-pad--hero { padding-top: .8em; }
.ip-pad--nav { padding-top: .2em; }

.ip-tabs { position: absolute; z-index: 3; inset: auto 0 0; height: 4.3em; display: grid; grid-template-columns: repeat(5, 1fr); padding: .45em .3em 0; background: var(--ip-bar); border-top: 1px solid var(--ip-line); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); transition: transform .3s; }
.no-tabs .ip-tabs { transform: translateY(105%); }
.iphone__screen .ip-tabs button { position: relative; display: grid; justify-items: center; align-content: start; gap: .15em; font-size: .58em; font-weight: 600; color: var(--ip-muted); text-align: center; border-radius: .8em; }
.ip-tabs svg { width: 2.2em; height: 2.2em; }
.iphone__screen .ip-tabs .is-on { color: var(--ip-accent-text); }
.ip-badge { position: absolute; top: -.1em; left: 56%; min-width: 1.5em; height: 1.5em; padding: 0 .35em; border-radius: 1em; background: #e5484d; color: #fff; font-style: normal; font-size: .95em; display: grid; place-items: center; }
.ip-badge--inline { position: static; flex: none; font-size: .8em; }

/* Közös elemek */
.ip-col { display: grid; min-width: 0; text-align: left; }
.ip-col > span, .ip-col small { color: var(--ip-muted); font-size: .9em; }
.ip-kicker { margin: 0; color: var(--ip-muted); font-size: .82em; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.ip-hello, .ip-rowhead { display: flex; justify-content: space-between; align-items: center; gap: .5em; }
.ip-hello { margin-top: -.5em; }
.ip-hello h3, .ip-title { margin: 0; font-family: -apple-system, 'SF Pro Display', 'Bricolage Grotesque', system-ui, sans-serif; font-size: 1.9em; font-weight: 750; letter-spacing: -0.03em; line-height: 1.1; color: var(--ip-text); }
.ip-title--top { font-size: 2em; }
.iphone__screen .ip-avatar { width: 2.2em; height: 2.2em; border-radius: 50%; display: grid; place-items: center; background: var(--ip-accent); color: #fff; font-weight: 700; flex: none; text-align: center; }
.ip-avatar--lg { width: 3.2em; height: 3.2em; font-size: 1.1em; border-radius: 50%; display: grid; place-items: center; background: var(--ip-accent); color: #fff; font-weight: 700; flex: none; }
.ip-section { margin: .25em 0 -.3em; font-weight: 700; font-size: 1.02em; }
.ip-empty, .ip-note-small { margin: 0; color: var(--ip-muted); font-size: .88em; }
.ip-note-small { text-align: center; padding: 0 .5em; }
.iphone__screen .ip-link { display: inline-flex; align-items: center; gap: .15em; color: var(--ip-accent-text); font-weight: 600; font-size: .92em; }
.ip-link svg { width: 1.1em; height: 1.1em; }
.ip-card, .ip-list { background: var(--ip-card); border-radius: 1.1em; box-shadow: var(--ip-shadow); }
.ip-list { list-style: none; margin: 0; padding: 0; overflow: hidden; }
.ip-list > li { display: flex; gap: .7em; align-items: center; padding: .6em .8em; }
.ip-list > li + li { border-top: 1px solid var(--ip-line); }
.ip-list > li:has(> .ip-row) { padding: 0; }
.iphone__screen .ip-row { display: flex; gap: .7em; align-items: center; width: 100%; padding: .6em .8em; }
.ip-row:hover, .ip-petcard:hover, .ip-next:hover { filter: brightness(.98); }
.ip-row > svg, .ip-next > svg { width: 1.1em; height: 1.1em; color: var(--ip-muted); flex: none; margin-left: auto; }
.ip-row .ip-col { flex: 1; }
.ip-thumb { width: 2.8em; height: 2.8em; border-radius: .8em; object-fit: cover; flex: none; }
.ip-ellipsis { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.iphone__screen .ip-cta { display: block; width: 100%; text-align: center; padding: .85em; border-radius: 1em; background: var(--ip-accent); color: #fff; font-weight: 700; text-decoration: none; transition: opacity .2s, transform .12s; }
.iphone__screen .ip-cta:active { transform: scale(.98); }
.iphone__screen .ip-cta:disabled { opacity: .45; }
.iphone__screen .ip-ghostbtn { display: flex; justify-content: center; align-items: center; gap: .3em; width: 100%; padding: .75em; border-radius: 1em; background: var(--ip-card); color: var(--ip-accent-text); font-weight: 600; box-shadow: var(--ip-shadow); }
.ip-ghostbtn svg { width: 1.1em; height: 1.1em; }
.iphone__screen .ip-ghostbtn--danger { color: var(--ip-danger); }
.iphone__screen .ip-round { width: 2.1em; height: 2.1em; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .22); color: #fff; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); flex: none; transition: transform .15s; }
.ip-round:active { transform: scale(.92); }
.ip-round svg { width: 1.15em; height: 1.15em; }
.iphone__screen .ip-round.is-on { color: #ff6b81; }
.iphone__screen .ip-round--solid { background: var(--ip-accent); color: #fff; }

/* Kezdőlap */
.ip-pets { display: grid; grid-template-columns: repeat(3, 1fr); gap: .45em; }
.ip-pets .ip-petcard { font-size: .9em; padding: .35em .35em .5em; }
.ip-pets .ip-petcard img { aspect-ratio: 1; border-radius: .7em; }
.iphone__screen .ip-petcard { background: var(--ip-card); border-radius: 1.1em; padding: .45em .45em .6em; display: grid; gap: .1em; box-shadow: var(--ip-shadow); text-align: left; }
.ip-petcard img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: .75em; margin-bottom: .35em; }
.ip-petcard b, .ip-petcard span { padding: 0 .3em; }
.ip-petcard span { color: var(--ip-muted); font-size: .9em; }
.iphone__screen .ip-next { display: flex; gap: .7em; align-items: center; width: 100%; padding: .7em .8em; border-radius: 1.1em; background: var(--ip-accent); color: #fff; text-align: left; }
.ip-next .ip-col > span { color: rgba(255, 255, 255, .8); }
.iphone__screen .ip-next > svg { color: rgba(255, 255, 255, .7); }
.ip-pending { font-style: normal; font-size: .78em; font-weight: 700; color: #ffd98a; }
.ip-next__ic { width: 2.2em; height: 2.2em; border-radius: .7em; display: grid; place-items: center; background: rgba(255, 255, 255, .16); flex: none; }
.ip-next__ic svg { width: 1.2em; height: 1.2em; }
.iphone__screen .ip-tick { width: 1.45em; height: 1.45em; border-radius: 50%; border: .12em solid #c9c2d6; flex: none; display: grid; place-items: center; color: transparent; transition: background .25s, border-color .25s, color .25s, transform .25s; }
.iphone__screen .ip-tick.is-done { background: var(--ip-mint); border-color: var(--ip-mint); color: #fff; transform: scale(1.08); }
.ip-tick svg { width: .85em; height: .85em; stroke-width: 3; }
.ip-list > li.is-done b { text-decoration: line-through; color: var(--ip-muted); font-weight: 600; }

/* Kedvenc adatlap */
.ip-hero { flex: none; height: 42%; background-size: cover; background-position: center 30%; position: relative; display: flex; flex-direction: column; justify-content: space-between; padding: 3.3em 1em 1em; color: #fff; }
.ip-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .38) 0%, transparent 35%, transparent 55%, rgba(20, 12, 36, .78) 100%); }
.ip-hero__bar, .ip-hero__name { position: relative; }
.ip-hero__bar { display: flex; justify-content: space-between; }
.ip-hero__name h3 { margin: 0; font-family: -apple-system, 'SF Pro Display', 'Bricolage Grotesque', system-ui, sans-serif; font-size: 2em; font-weight: 750; letter-spacing: -0.03em; line-height: 1.05; color: #fff; }
.ip-hero__name span { font-size: .9em; opacity: .9; }
.ip-seg { display: grid; grid-template-columns: repeat(3, 1fr); padding: .18em; border-radius: .75em; background: var(--ip-seg); }
.iphone__screen .ip-seg button { padding: .38em 0; border-radius: .6em; color: var(--ip-muted); font-weight: 600; font-size: .92em; text-align: center; transition: background .2s, color .2s; }
.iphone__screen .ip-seg .is-on { background: var(--ip-seg-on); color: var(--ip-text); box-shadow: 0 1px 3px rgba(30, 20, 50, .14); }
.ip-weight { display: flex; justify-content: space-between; align-items: center; gap: .6em; padding: .7em .8em; }
.ip-weight b { font-size: 1.3em; letter-spacing: -0.02em; }
.ip-weight svg { width: 6.2em; color: var(--ip-mint); fill: var(--ip-mint); flex: none; }
.ip-dot { width: .7em; height: .7em; border-radius: 50%; background: var(--ip-accent); box-shadow: 0 0 0 .25em var(--ip-accent-soft); flex: none; margin: 0 .3em; }
.ip-album { display: grid; grid-template-columns: repeat(3, 1fr); gap: .3em; }
.iphone__screen .ip-photo { aspect-ratio: 1; border-radius: .6em; overflow: hidden; background: var(--ip-card); }
.ip-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s; }
.ip-photo:hover img { transform: scale(1.05); }
.iphone__screen .ip-photo--add { display: grid; place-content: center; justify-items: center; gap: .2em; color: var(--ip-accent-text); font-weight: 600; font-size: .85em; border: .1em dashed var(--ip-offtext); box-shadow: none; }
.ip-photo--add svg { width: 1.5em; height: 1.5em; }
.ip-hic { width: 2em; height: 2em; border-radius: .65em; display: grid; place-items: center; background: var(--ip-accent-soft); color: var(--ip-accent-text); flex: none; }
.ip-hic svg { width: 1.1em; height: 1.1em; }
.ip-list > li.is-due .ip-hic { background: #fff1d6; color: #b26a00; }
.ip-list > li.is-due .ip-col > span { color: #b26a00; font-weight: 600; }
.ip-kv { display: grid; grid-template-columns: auto 1fr; gap: .25em .8em; padding: .7em .9em; font-size: .92em; }
.ip-kv span { color: var(--ip-muted); }
.ip-kv b { text-align: right; }

/* Naptár */
.ip-calendar { padding: .6em .5em .5em; }
.ip-calhead { display: flex; justify-content: space-between; align-items: center; padding: 0 .3em .4em; }
.iphone__screen .ip-calhead button { width: 1.9em; height: 1.9em; border-radius: 50%; display: grid; place-items: center; color: var(--ip-accent-text); }
.ip-calhead svg { width: 1.1em; height: 1.1em; }
.ip-calhead b { text-transform: capitalize; }
.ip-calgrid { display: grid; grid-template-columns: repeat(7, 1fr); gap: .1em; text-align: center; }
.ip-calgrid--head span { font-size: .72em; font-weight: 700; color: var(--ip-muted); padding-bottom: .2em; }
.iphone__screen .ip-calday { position: relative; height: 2.05em; border-radius: 50%; display: grid; place-items: center; font-weight: 600; font-size: .9em; text-align: center; }
.ip-calday i { position: absolute; bottom: .12em; left: 50%; width: .32em; height: .32em; border-radius: 50%; transform: translateX(-50%); background: var(--ip-mint); }
.ip-calday i.is-appt { background: var(--ip-accent); }
.iphone__screen .ip-calday.is-today { color: var(--ip-accent-text); }
.iphone__screen .ip-calday.is-sel { background: var(--ip-accent); color: #fff; }
.ip-calday.is-sel i { background: #fff; }
.ip-time { min-width: 3em; padding: .3em .4em; border-radius: .6em; background: var(--ip-accent-soft); color: var(--ip-accent-text); font-weight: 700; font-size: .85em; text-align: center; flex: none; }
.ip-time.is-appt { background: var(--ip-accent); color: #fff; }

/* Üzenetek */
.ip-ava { width: 2.6em; height: 2.6em; border-radius: 50%; display: grid; place-items: center; color: #fff; font-weight: 700; flex: none; }
.ip-ava--sm { width: 1.7em; height: 1.7em; font-size: .85em; }
.ip-col b small { font-weight: 600; color: var(--ip-muted); font-size: .78em; }
.ip-navbar { flex: none; display: flex; align-items: center; gap: .4em; padding: 3.25em .7em .45em; background: var(--ip-bar); border-bottom: 1px solid var(--ip-line); font-size: .88em; min-height: 5.6em; }
.ip-pad--nav + * { margin: 0; }
.ipg--book .ip-navbar { border-bottom: 0; background: transparent; min-height: 0; padding-bottom: 0; }
.iphone__screen .ip-navback { display: flex; align-items: center; gap: .05em; color: var(--ip-accent-text); font-weight: 600; flex: none; }
.ip-navback svg { width: 1.3em; height: 1.3em; }
.ip-navtitle { display: flex; align-items: center; gap: .4em; min-width: 0; margin-left: .3em; }
.ip-navtitle b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ip-navtitle small { color: var(--ip-muted); font-size: .82em; white-space: nowrap; }
.ip-thread { padding: .8em .8em .6em; display: flex; flex-direction: column; gap: .4em; font-size: .86em; }
.ip-bubble { max-width: 80%; align-self: flex-start; padding: .5em .75em .4em; border-radius: 1.1em 1.1em 1.1em .35em; background: var(--ip-card); box-shadow: var(--ip-shadow); animation: ip-pop .25s ease-out; }
.ip-bubble p { margin: 0; user-select: text; }
.ip-bubble small { display: block; font-size: .72em; color: var(--ip-muted); margin-top: .15em; }
.ip-bubble.is-me { align-self: flex-end; background: var(--ip-accent); color: #fff; border-radius: 1.1em 1.1em .35em 1.1em; }
.ip-bubble.is-me small { color: rgba(255, 255, 255, .7); text-align: right; }
.ip-typing { display: flex; gap: .25em; padding: .7em .8em; }
.ip-typing i { width: .45em; height: .45em; border-radius: 50%; background: var(--ip-muted); animation: ip-blink 1s infinite; }
.ip-typing i:nth-child(2) { animation-delay: .15s; }
.ip-typing i:nth-child(3) { animation-delay: .3s; }
@keyframes ip-blink { 0%, 100% { opacity: .3; } 50% { opacity: 1; } }
@keyframes ip-pop { from { transform: translateY(.4em) scale(.96); opacity: 0; } }
.ip-compose { flex: none; display: flex; gap: .4em; align-items: center; padding: .5em .7em 1.7em; background: var(--ip-bar); border-top: 1px solid var(--ip-line); }
.ip-compose input { flex: 1; min-width: 0; font: inherit; font-size: .82em; padding: .6em .9em; border-radius: 1.2em; border: 1px solid var(--ip-line); background: var(--ip-card); color: var(--ip-text); user-select: text; }
.ip-compose input:focus { outline: none; border-color: var(--ip-accent); }
.iphone__screen .ip-compose button { width: 2em; height: 2em; border-radius: 50%; display: grid; place-items: center; background: var(--ip-accent); color: #fff; flex: none; }
.ip-compose svg { width: 1.1em; height: 1.1em; stroke-width: 2.4; }
.ip-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Profil */
.ip-me { display: flex; gap: .8em; align-items: center; padding: .8em; }
.ip-premium { display: flex; gap: .7em; align-items: center; padding: .8em; background: linear-gradient(135deg, var(--ip-accent-soft), var(--ip-card)); }
.iphone__screen .ip-pill { padding: .45em .9em; border-radius: 2em; background: var(--ip-accent); color: #fff; font-weight: 700; font-size: .88em; flex: none; }
.iphone__screen .ip-switch { position: relative; width: 2.6em; height: 1.55em; border-radius: 1em; background: #d6d1df; flex: none; margin-left: auto; transition: background .25s; }
.ip-switch i { position: absolute; top: .14em; left: .14em; width: 1.27em; height: 1.27em; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .25s; }
.iphone__screen .ip-switch.is-on { background: var(--ip-mint); }
.ip-switch.is-on i { transform: translateX(1.05em); }

/* Foglalás */
.ip-clinic { display: flex; gap: .7em; align-items: center; padding: .7em .8em; }
.ip-clinic .ip-next__ic { background: var(--ip-accent-soft); color: var(--ip-accent-text); }
.ip-chips { display: flex; gap: .5em; flex-wrap: wrap; }
.iphone__screen .ip-chips button { display: flex; align-items: center; gap: .45em; padding: .3em .8em .3em .3em; border-radius: 2em; background: var(--ip-card); font-weight: 600; box-shadow: var(--ip-shadow); transition: background .2s, color .2s; }
.ip-chips img { width: 1.7em; height: 1.7em; border-radius: 50%; object-fit: cover; }
.iphone__screen .ip-chips .is-on { background: var(--ip-accent); color: #fff; }
.ip-days { display: grid; grid-template-columns: repeat(5, 1fr); gap: .4em; }
.iphone__screen .ip-days button { display: grid; justify-items: center; padding: .45em 0; border-radius: .9em; background: var(--ip-card); box-shadow: var(--ip-shadow); text-align: center; transition: background .2s, color .2s; }
.ip-days small { font-size: .78em; color: var(--ip-muted); font-weight: 600; }
.ip-days b { font-size: 1.15em; }
.iphone__screen .ip-days .is-on { background: var(--ip-accent); color: #fff; }
.ip-days .is-on small { color: rgba(255, 255, 255, .8); }
.ip-slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4em; }
.iphone__screen .ip-slots button { text-align: center; padding: .5em 0; border-radius: .75em; background: var(--ip-card); font-weight: 600; box-shadow: var(--ip-shadow); transition: background .2s, color .2s; }
.iphone__screen .ip-slots .is-on { background: var(--ip-mint); color: #fff; }
.iphone__screen .ip-slots .is-off { color: var(--ip-offtext); text-decoration: line-through; box-shadow: none; background: var(--ip-off); }

/* Lap alja, fotónézegető, értesítő buborék */
.ip-sheetwrap { position: absolute; z-index: 6; inset: 0; background: rgba(10, 6, 20, 0); display: flex; align-items: flex-end; transition: background .3s; }
.ip-sheetwrap.is-open { background: rgba(10, 6, 20, .4); }
.ip-sheet { width: 100%; padding: 1.4em 1.2em 2.2em; border-radius: 1.6em 1.6em 0 0; background: var(--ip-bg); display: grid; gap: .65em; justify-items: center; text-align: center; font-size: .88em; transform: translateY(105%); transition: transform .34s cubic-bezier(.3, .7, .2, 1); }
.ip-sheetwrap.is-open .ip-sheet { transform: none; }
.ip-sheet h4 { margin: 0; font-size: 1.35em; letter-spacing: -0.02em; }
.ip-sheet p { margin: 0 0 .4em; color: var(--ip-muted); }
.ip-sheet__ok { width: 3em; height: 3em; border-radius: 50%; display: grid; place-items: center; background: var(--ip-mint); color: #fff; animation: ip-pop .35s ease-out; }
.ip-sheet__ok svg { width: 1.6em; height: 1.6em; stroke-width: 2.6; }
.ip-viewer { position: absolute; z-index: 6; inset: 0; background: #000; display: grid; place-items: center; opacity: 0; transition: opacity .3s; }
.ip-viewer.is-open { opacity: 1; }
.ip-viewer img { width: 100%; max-height: 80%; object-fit: contain; transform: scale(.94); transition: transform .3s; }
.ip-viewer.is-open img { transform: none; }
.iphone__screen .ip-viewer__close { position: absolute; top: 3.3em; right: .9em; }
.ip-toast { position: absolute; z-index: 8; top: 3.4em; left: 50%; width: max-content; max-width: 86%; transform: translate(-50%, -.6em); padding: .55em .9em; border-radius: 1em; background: rgba(28, 24, 38, .92); color: #fff; font-size: .74em; font-weight: 600; text-align: center; opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s; }
.ip-toast.is-on { opacity: 1; transform: translate(-50%, 0); }

/* Demó jelzés és gyorsgombok a telefon alatt */
.ip-demo-hint { margin: 2px 0 0; display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 14px; text-align: center; }
.ip-demo-pill { padding: 2px 9px; border-radius: 999px; background: var(--pine-soft); color: var(--pine); font-weight: 700; font-size: 12px; letter-spacing: .02em; text-transform: uppercase; }
.ip-dots { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.ip-dots button { border: 1px solid var(--line); background: var(--surface); color: var(--muted); border-radius: 999px; padding: 6px 12px; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.ip-dots button:hover { color: var(--ink); }
.ip-dots button.is-on { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.ip-dots button:focus-visible { outline: 2px solid var(--pine); outline-offset: 2px; }

/* Sötét mód: az app is sötét témát kap */
:root[data-theme="dark"] .iphone { box-shadow: 0 0 0 .12em #6c6873, 0 0 0 .26em #2a282e, 0 0 0 .3em #a19cab, 0 2.4em 3.4em -1.2em rgba(0, 0, 0, .7); }
:root[data-theme="dark"] .iphone__screen {
  --ip-bg: #0f0c15; --ip-card: #1d1828; --ip-text: #eeeaf5; --ip-muted: #9a93ab; --ip-line: #2b2539; --ip-accent: #6a52a0;
  --ip-accent-soft: #2c2440; --ip-accent-text: #b9a5e6; --ip-mint: #2f9a83; --ip-seg: #231d30; --ip-seg-on: #3a3150; --ip-bar: rgba(22, 18, 30, .96);
  --ip-off: #17131f; --ip-offtext: #5c5569; --ip-shadow: none; --ip-danger: #f0717f;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .iphone { box-shadow: 0 0 0 .12em #6c6873, 0 0 0 .26em #2a282e, 0 0 0 .3em #a19cab, 0 2.4em 3.4em -1.2em rgba(0, 0, 0, .7); }
  :root:not([data-theme="light"]) .iphone__screen {
    --ip-bg: #0f0c15; --ip-card: #1d1828; --ip-text: #eeeaf5; --ip-muted: #9a93ab; --ip-line: #2b2539; --ip-accent: #6a52a0;
    --ip-accent-soft: #2c2440; --ip-accent-text: #b9a5e6; --ip-mint: #2f9a83; --ip-seg: #231d30; --ip-seg-on: #3a3150; --ip-bar: rgba(22, 18, 30, .96);
    --ip-off: #17131f; --ip-offtext: #5c5569; --ip-shadow: none; --ip-danger: #f0717f;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ip-lock, .ipg, .ip-tabs, .ip-sheet, .ip-sheetwrap, .ip-viewer, .ip-viewer img, .ip-stage, .ip-toast { transition: none; }
  .ip-unlock span, .ip-bubble, .ip-sheet__ok, .ip-typing i { animation: none; }
}

/* Képernyőkép-körhinta (App Store stílus) */
.dl-shots { padding: 28px 0 36px; }
.dl-shots__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 18px; }
.dl-shots__head h2 { font-size: clamp(26px, 3.4vw, 36px); margin: 0; letter-spacing: -0.03em; }
.dl-shots__nav { display: flex; gap: 8px; }
.dl-shots__more { margin: 6px 0 0; }
.dl-shots__more a { font-weight: 600; }
.dl-shots__nav button[disabled] { opacity: .35; cursor: default; }
.dl-shots__track {
  display: grid; grid-auto-flow: column; grid-auto-columns: 272px; gap: 18px;
  overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  padding: 4px 4px 18px; margin: 0 -4px; scrollbar-width: none;
}
.dl-shots__track::-webkit-scrollbar { display: none; }
.dl-shots__track:focus-visible { outline: 2px solid var(--pine); outline-offset: 4px; border-radius: 28px; }
.dl-shot {
  scroll-snap-align: start; margin: 0; display: flex; flex-direction: column; gap: 18px; align-items: center;
  padding: 22px 20px 0; border-radius: 28px;
  background: linear-gradient(165deg, var(--pine-soft) 0%, var(--paper-2) 100%);
  border: 1px solid var(--line);
}
.dl-shot:nth-child(3n+2) { background: linear-gradient(165deg, #e3f3ee 0%, var(--paper-2) 100%); }
.dl-shot:nth-child(3n+3) { background: linear-gradient(165deg, #f5ece2 0%, var(--paper-2) 100%); }
.dl-shot figcaption { display: grid; gap: 6px; text-align: center; min-height: 6.2em; }
.dl-shot figcaption strong { font-family: var(--font-display); font-size: 21px; line-height: 1.12; letter-spacing: -0.02em; color: var(--ink); }
.dl-shot figcaption span { font-size: 14.5px; line-height: 1.4; color: var(--muted); }
.dl-shot__phone {
  width: 212px; border-radius: 33px; padding: 3px; background: #0b0b0d; margin-bottom: 24px;
  box-shadow: 0 0 0 1px #6c6873, 0 0 0 1.5px #a19cab, 0 18px 40px -16px rgba(34, 22, 58, .45);
}
.dl-shot__img { display: block; width: 100%; height: auto; border-radius: 30px; }
.dl-shot__img--dark { display: none; }
.dl-shots__dots { display: flex; justify-content: center; gap: 6px; }
.dl-shots__dots span { width: 7px; height: 7px; border-radius: 99px; background: var(--line); transition: width .25s, background .25s; }
.dl-shots__dots .is-on { width: 22px; background: var(--pine); }
:root[data-theme="dark"] .dl-shot__img--light { display: none; }
:root[data-theme="dark"] .dl-shot__img--dark { display: block; }
:root[data-theme="dark"] .dl-shot:nth-child(3n+2) { background: linear-gradient(165deg, #17302b 0%, var(--paper-2) 100%); }
:root[data-theme="dark"] .dl-shot:nth-child(3n+3) { background: linear-gradient(165deg, #33281e 0%, var(--paper-2) 100%); }
:root[data-theme="dark"] .dl-shot:nth-child(3n+1) { background: linear-gradient(165deg, #2a2140 0%, var(--paper-2) 100%); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .dl-shot__img--light { display: none; }
  :root:not([data-theme="light"]) .dl-shot__img--dark { display: block; }
  :root:not([data-theme="light"]) .dl-shot:nth-child(3n+2) { background: linear-gradient(165deg, #17302b 0%, var(--paper-2) 100%); }
  :root:not([data-theme="light"]) .dl-shot:nth-child(3n+3) { background: linear-gradient(165deg, #33281e 0%, var(--paper-2) 100%); }
  :root:not([data-theme="light"]) .dl-shot:nth-child(3n+1) { background: linear-gradient(165deg, #2a2140 0%, var(--paper-2) 100%); }
}
@media (prefers-reduced-motion: reduce) { .dl-shots__track { scroll-behavior: auto; } }
@media (max-width: 760px) {
  .dl-shots__track { grid-auto-columns: 78%; gap: 12px; }
  .dl-shots__nav { display: none; }
}
.dl-faq { margin-bottom: 64px; }
.dl-faq h2 { font-size: 22px; }
.dl-dev { margin: 16px 0 0; color: var(--muted); }
@media (max-width: 760px) {
  .dl-hero { grid-template-columns: 1fr; }
  .dl-store { flex: 1 1 100%; }
}
.ip-viewer[hidden], .ip-sheetwrap[hidden] { display: none; }
.ip-note .ip-col > span:not(.ip-note__head) { color: rgba(255, 255, 255, .92); font-size: 1em; }
.ip-note .ip-note__head { color: rgba(255, 255, 255, .75); opacity: 1; font-size: .9em; }

/* assets/css/mod-associations.css */
/* Bundee — egyesületek és ellenőrizhető törzskönyvek */
.assoc-filter { margin-bottom: 16px; }
.assoc-mine { margin-bottom: 16px; }
.assoc-mine h2 { font-size: 20px; }
.assoc-mine__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.assoc-mine__list li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.assoc-grid { padding: 0 0 24px; list-style: none; margin: 0; }
.assoc-tile { padding: 18px; gap: 12px; height: 100%; }
.assoc-tile:hover { border-color: var(--pine); }
.assoc-tile h3 { margin: 0 0 2px; font-size: 18px; line-height: 1.25; }
.assoc-tile__head { display: grid; grid-template-columns: 52px 1fr; gap: 12px; align-items: center; }
.assoc-tile .chips { margin-top: 0; }
.assoc-mark { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); font-family: var(--font-display); font-weight: 800; font-size: 15px; letter-spacing: .02em; }
.section-card { margin-bottom: 64px; }
.formfold > summary { list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.formfold > summary::-webkit-details-marker { display: none; }
.formfold > summary h2 { margin: 0; }
.formfold[open] > summary { margin-bottom: 16px; }

.assoc-members { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.assoc-members li { padding: 10px 0; border-bottom: 1px solid var(--line); display: grid; gap: 2px; }
.assoc-members li:last-child { border-bottom: 0; }
.assoc-members .muted { font-size: 15px; }

.assoc-rows { list-style: none; margin: 0; padding: 0; }
.assoc-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.assoc-row:last-child { border-bottom: 0; }
.assoc-row > div:first-child { display: grid; gap: 2px; min-width: 0; flex: 1 1 280px; }
.assoc-row .muted { font-size: 15px; }
.assoc-row code { font-size: 14px; }
.assoc-row__msg { font-size: 15px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-sm); padding: 8px 10px; margin-top: 6px; }
.assoc-row__msg p { margin: 0; }
.assoc-row__link { font-size: 14px; font-weight: 600; }
.assoc-row__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.assoc-inline { display: flex; gap: 8px; align-items: end; }
.assoc-inline .field { width: 150px; }
.assoc-inline .field input { padding-top: 8px; padding-bottom: 8px; }
.assoc-revoke summary { list-style: none; }
.assoc-revoke summary::-webkit-details-marker { display: none; }
.assoc-revoke[open] { flex-basis: 100%; }
.assoc-revoke[open] .form { margin-top: 10px; max-width: 460px; }
.ped-ancestors { border: 0; padding: 0; margin: 0; }
.ped-ancestors legend { font-weight: 600; font-size: 15px; margin-bottom: 8px; }

/* Ellenőrző oldal */
.ped-search { display: flex; gap: 12px; align-items: end; margin-bottom: 16px; }
.ped-search .field { flex: 1; }
.ped-search input { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; text-transform: uppercase; }
.ped-result { display: grid; grid-template-columns: 48px 1fr; gap: 14px; align-items: start; margin-bottom: 16px; }
.ped-result h2 { margin: 0 0 4px; font-size: 22px; }
.ped-result p { margin: 0 0 4px; }
.ped-result__icon { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; }
.ped-result--ok { border-color: transparent; background: var(--good-soft); }
.ped-result--ok .ped-result__icon { background: var(--good); color: var(--surface); }
.ped-result--bad { border-color: transparent; background: var(--bad-soft); }
.ped-result--bad .ped-result__icon { background: var(--bad); color: var(--surface); }
.ped-result--none .ped-result__icon { background: var(--paper-2); color: var(--muted); }

.ped-cert { margin-bottom: 16px; }
.ped-cert__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; align-items: flex-start; }
.ped-cert__head h2 { font-size: clamp(26px, 4vw, 36px); margin: 0 0 4px; }
.ped-cert__head p { margin: 0; }
.ped-cert__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ped-tree { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 16px; align-items: stretch; }
.ped-tree__col { display: grid; gap: 10px; }
.ped-tree__node { border: 1px solid var(--line); border-radius: var(--r-md); padding: 10px 12px; background: var(--paper); display: grid; align-content: center; }
.ped-tree__node small { color: var(--muted); font-size: 13px; }
.ped-tree__node strong { font-size: 15px; line-height: 1.3; }
.ped-tree__node--parent { border-color: var(--pine); background: var(--pine-soft); }
.ped-tree__node--parent strong { font-size: 17px; }
.ped-cert__foot { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); }
.ped-cert__foot p { margin: 0; }
.ped-code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 24px; font-weight: 700; letter-spacing: .1em; }
.ped-small { font-size: 13px; word-break: break-all; }
.ped-qr { width: 112px; height: 112px; flex: none; border-radius: 8px; overflow: hidden; background: #fff; }
.ped-qr svg { width: 100%; height: 100%; display: block; }
.ped-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }

.ped-integrity { margin-bottom: 16px; }
.ped-checks { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.ped-checks li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; align-items: start; font-size: 15px; }
.ped-checks li svg { margin-top: 3px; }
.ped-checks .is-ok svg { color: var(--good); }
.ped-checks .is-bad { color: var(--bad); font-weight: 600; }
.ped-hashes { margin: 0; display: grid; gap: 8px; }
.ped-hashes div { display: grid; grid-template-columns: 170px 1fr; gap: 12px; font-size: 14px; }
.ped-hashes dt { color: var(--muted); }
.ped-hashes dd { margin: 0; min-width: 0; }
.ped-hashes code { word-break: break-all; font-size: 13px; }
.ped-explain { max-width: none; margin-bottom: 16px; }
.ped-explain h2 { margin-top: 0; }

/* Kedvenc / alom jelvények */
.pedbadge { display: grid; grid-template-columns: 40px 1fr; gap: 12px; align-items: start; margin-bottom: 16px; padding: 14px 16px; }
.pedbadge__icon { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); }
.pedbadge__list { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 4px; font-size: 15px; }
.pedchip { text-decoration: none; justify-self: start; margin-top: 4px; display: inline-block; }
.assoc-chips { margin-top: 8px; }

@media (max-width: 640px) {
  .ped-search { flex-direction: column; align-items: stretch; }
  .ped-tree { grid-template-columns: 1fr; }
  .ped-hashes div { grid-template-columns: 1fr; gap: 2px; }
  .ped-cert__foot { flex-direction: column; align-items: flex-start; }
  .assoc-inline { flex-wrap: wrap; }
}

/* Nyomtatható tanúsítvány */
.page-cert .ped-cert { border: 2px solid var(--pine); }
@page { margin: 14mm; }
@media print {
  .topbar, .footer, .protobar, .flashes, .skip, .ped-noprint, .ped-actions { display: none !important; }
  body { background: #fff; color: #000; }
  .ped { padding: 0; }
  .ped-cert { box-shadow: none; border: 2px solid #55407E; break-inside: avoid; }
  .ped-tree__node, .ped-tree__node--parent { background: #fff; }
}
.assoc-row > div:first-child > .chip { justify-self: start; }

/* assets/css/mod-avatar.css */
/* Profilkép (avatar) a kezdőbetűs körök helyén */
.savatar--photo, .userchip__avatar.has-photo, .msg-avatar.has-photo { overflow: visible; padding: 0; background: var(--paper-2); }
.savatar--photo > img, .userchip__avatar.has-photo > img, .msg-avatar.has-photo > img {
  width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block;
}

/* Fiókom: profilkép kártya */
.acc-avatar { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.acc-avatar__pic .savatar { width: 96px; height: 96px; font-size: 38px; box-shadow: 0 0 0 3px var(--surface), 0 0 0 5px var(--line); }
.acc-avatar__body { flex: 1 1 220px; min-width: 0; display: grid; gap: 10px; }
.acc-avatar__body p { margin: 0; }
.acc-avatar__actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.acc-avatar__file { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.acc-avatar__file:focus-visible + label { outline: 2px solid var(--pine); outline-offset: 2px; }
.acc-avatar__name { font-size: 13px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }

/* Profil oldal: saját képre kattintva csere */
.sprofile__pic { position: relative; }
.sprofile__pic-edit {
  position: absolute; right: 4px; bottom: 4px; width: 36px; height: 36px; border-radius: 50%;
  display: grid; place-items: center; background: var(--surface); color: var(--ink);
  border: 1px solid var(--line); box-shadow: 0 2px 8px rgba(0,0,0,.18); text-decoration: none;
}
.sprofile__pic-edit:hover { color: var(--pine); border-color: var(--pine); }

/* Egységes Vissza gomb */
.backbar { padding-top: 18px; }
.backbtn {
  display: inline-flex; align-items: center; gap: 4px; padding: 6px 12px 6px 8px; border-radius: 999px;
  font-weight: 600; font-size: 15px; color: var(--ink); text-decoration: none;
  background: var(--surface); border: 1px solid var(--line);
  transition: background .15s, border-color .15s;
}
.backbtn:hover { border-color: var(--pine); color: var(--pine); }
.backbtn:focus-visible { outline: 2px solid var(--pine); outline-offset: 2px; }
.backbar + main > .pagehead:first-child, .backbar + main > :first-child > .pagehead:first-child { padding-top: 14px; }
@media print { .backbar { display: none; } }
.acc-avatar [data-avatar-save][hidden] { display: none; }

/* Profil: azonnali profilkép-feltöltés és kedvencek megosztása */
.sprofile__picform { position: static; margin: 0; }
label.sprofile__pic-edit { cursor: pointer; }
.sprofile__picmsg { position: absolute; left: 50%; top: calc(100% + 6px); transform: translateX(-50%); white-space: nowrap; font-size: 12px; color: var(--muted); }
.sprofile__picmsg:empty { display: none; }
.sprofile__nopets { margin: 4px 20px 16px; padding: 14px 16px; border: 1px dashed var(--line); border-radius: 14px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; justify-content: space-between; }
.sprofile__nopets p { margin: 0; flex: 1 1 260px; }
.sprofile__share { margin: 0 20px 18px; padding: 14px 16px; border-radius: 14px; background: var(--paper-2); display: grid; gap: 10px; }
.sprofile__sharefrm { display: grid; grid-template-columns: auto minmax(0, 320px); gap: 6px 12px; align-items: center; }
.sprofile__sharefrm small { grid-column: 1 / -1; }
.sprofile__sharefrm select { min-height: 40px; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); padding: 0 10px; font: inherit; }
.sprofile__sharebtns { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.sprofile__sharebtns .btn svg { vertical-align: -3px; margin-right: 4px; }
.sprofile__sharehint { margin: 0; font-size: 13px; }
@media (max-width: 560px) {
  .sprofile__sharefrm { grid-template-columns: 1fr; }
  .sprofile__share, .sprofile__nopets { margin-inline: 12px; }
}

/* Jogi oldalak */
.legal-dl { display: grid; grid-template-columns: minmax(140px, max-content) 1fr; gap: 6px 18px; margin: 0 0 8px; }
.legal-dl dt { font-weight: 700; color: var(--muted); }
.legal-dl dd { margin: 0; }
@media (max-width: 520px) { .legal-dl { grid-template-columns: 1fr; } .legal-dl dd { margin-bottom: 6px; } }
.legal-form { border: 1px dashed var(--line); border-radius: 14px; padding: 14px 16px; background: var(--paper-2); }
.legal-form p { margin: 0 0 8px; }
.legal-notice { margin-bottom: 16px; }
.legal-edit { display: grid; gap: 14px; max-width: 640px; padding: 22px; }
.legal-edit .field small { display: block; margin-top: 4px; }
.legal-edit__note { max-width: 640px; margin-top: 14px; font-size: 14px; }

/* Lábléc oszlopokban */
.footer--cols .footer__grid { display: grid; grid-template-columns: 1.3fr repeat(3, minmax(0, 1fr)); gap: 24px 32px; align-items: start; padding-top: 32px; }
.footer__col { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.footer__col a { color: var(--muted); font-size: 14px; text-decoration: none; }
.footer__col a:hover, .footer__col a:focus-visible { color: var(--pine); text-decoration: underline; }
.footer__h { margin: 0 0 2px; font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); }
.footer__tag { margin: 0; font-size: 14px; }
.footer--cols .footer__note { font-size: 14px; }
.footer--cols .footer__copy { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: 14px; font-size: 13px; }
@media (max-width: 860px) { .footer--cols .footer__grid { grid-template-columns: 1fr 1fr; } .footer__col--brand { grid-column: 1 / -1; } }
@media (max-width: 480px) { .footer--cols .footer__grid { grid-template-columns: 1fr; } }
.footer__mail { margin: 0; font-size: 14px; font-weight: 600; } .footer__mail a { color: var(--ink); text-decoration: none; } .footer__mail a:hover { color: var(--pine); text-decoration: underline; }
/* Lábléc linkcsoportok: asztalin nyitva, mobilon összecsukva (ui-actions.js), hogy ne legyen végtelen hosszú. */
.footer__acc > summary { list-style: none; cursor: default; }
.footer__acc > summary::-webkit-details-marker { display: none; }
.footer__links { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
@media (max-width: 760px) {
  .footer--cols .footer__grid { grid-template-columns: 1fr; }
  .footer__acc { border-top: 1px solid var(--line); }
  .footer__acc > summary { cursor: pointer; display: flex; justify-content: space-between; align-items: center; min-height: 44px; margin: 0; }
  .footer__acc > summary::after { content: '+'; font-size: 18px; color: var(--muted); }
  .footer__acc[open] > summary::after { content: '–'; }
  .footer__links { gap: 0; margin: 0 0 8px; }
  .footer__links > a { display: flex; align-items: center; min-height: 40px; }
}

/* assets/css/mod-badges.css */
/* Jelvények (includes/modules/badges.php) */
.badge-medal { display: inline-block; vertical-align: middle; flex: none; overflow: visible; filter: drop-shadow(0 2px 3px rgba(20, 12, 34, .25)); }
.badge-row { display: inline-flex; align-items: center; gap: 3px; vertical-align: middle; margin-left: 6px; }
.badge-pill { display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px 4px 5px; border-radius: 999px; font-size: 13.5px; font-weight: 700; line-height: 1; border: 1px solid var(--line); background: var(--surface); color: var(--ink); white-space: nowrap; }
.badge-pill--premium { background: linear-gradient(135deg, #fff7e8, #fdecc9); border-color: #efd39b; color: #7a4a10; }
.badge-pill--tenyeszto { background: linear-gradient(135deg, #f5f0ff, #e9e0ff); border-color: #d6c6fb; color: #4b2c94; }
:root[data-theme="dark"] .badge-pill--premium { background: #33270f; border-color: #6b5222; color: #F6CE8C; }
:root[data-theme="dark"] .badge-pill--tenyeszto { background: #261d3d; border-color: #4d3a80; color: #cbb6ff; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .badge-pill--premium { background: #33270f; border-color: #6b5222; color: #F6CE8C; }
  :root:not([data-theme="light"]) .badge-pill--tenyeszto { background: #261d3d; border-color: #4d3a80; color: #cbb6ff; }
}
.badge-showcase { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.badge-showcase figure { margin: 0; display: grid; justify-items: center; gap: 8px; text-align: center; font-size: 14px; font-weight: 700; }
.badge-showcase figcaption span { display: block; font-weight: 500; color: var(--muted); font-size: 13px; }
.badge-pill__tick { flex: none; margin-left: -2px; filter: drop-shadow(0 1px 1.5px rgba(20, 90, 50, .3)); }
.badge-pill { padding-right: 10px; }

/* Előfizetők kiemelése: más színű név és PRO jelölés (Prémium: arany, Tenyésztő Pro: lila). */
.uname--premium { color: #A86A12 !important; font-weight: 800; }
.uname--pro { color: #6B3FD6 !important; font-weight: 800; }
:root[data-theme="dark"] .uname--premium { color: #F0C674 !important; }
:root[data-theme="dark"] .uname--pro { color: #C4A8FF !important; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .uname--premium { color: #F0C674 !important; }
  :root:not([data-theme="light"]) .uname--pro { color: #C4A8FF !important; }
}
.badge-pro { display: inline-flex; align-items: center; height: 18px; padding: 0 6px; margin-left: 4px; border-radius: 6px; font-size: 10.5px; font-weight: 800; letter-spacing: .06em;
  color: #fff; background: linear-gradient(135deg, #8E63F0, #5A2FC2); vertical-align: middle; }
.sprofile__tier { display: inline-flex; align-items: center; gap: 6px; margin: 4px 0 0; padding: 3px 10px; border-radius: 999px; font-size: 13px; font-weight: 700; }
.sprofile__tier--premium { color: #8A5A0F; background: linear-gradient(135deg, #FFF3D6, #F6DFA8); }
.sprofile__tier--pro { color: #4B2AA8; background: linear-gradient(135deg, #EFE7FF, #DCCBFF); }
/* Kiemelt (előfizetői) bejegyzés: finom arany vagy lila keret. */
.spost.is-tier-premium { box-shadow: 0 0 0 1.5px rgba(214, 160, 60, .55), var(--shadow-sm, 0 1px 2px rgba(0,0,0,.06)); }
.spost.is-tier-pro { box-shadow: 0 0 0 1.5px rgba(124, 77, 224, .5), var(--shadow-sm, 0 1px 2px rgba(0,0,0,.06)); }

/* assets/css/mod-blog.css */
/* Bundee blog (blog.php) és a főoldali blog-előzetes */
.blog-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; font-size: 14px; color: var(--muted); font-weight: 600; }
.blog-meta .chip { margin: 0; }
.blog-feature { display: grid; grid-template-columns: 1.2fr 1fr; border-radius: 28px; overflow: hidden; background: var(--surface); border: 1px solid var(--line); color: var(--ink); text-decoration: none; margin-bottom: 20px; transition: border-color .18s, box-shadow .18s; }
.blog-feature:hover { color: var(--ink); border-color: var(--pine); box-shadow: 0 24px 48px -28px rgba(85, 64, 126, .45); }
.blog-feature__img { position: relative; min-height: 340px; }
.blog-feature__img img, .blog-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.blog-feature:hover img, .blog-card:hover img { transform: scale(1.03); }
.blog-feature__body { padding: 32px; display: flex; flex-direction: column; justify-content: center; gap: 12px; }
.blog-feature__body strong { font-family: var(--font-display); font-size: clamp(24px, 2.6vw, 32px); line-height: 1.15; letter-spacing: -0.025em; }
.blog-feature__body .muted { font-size: 17px; line-height: 1.5; }
.blog-feature__more { font-weight: 700; color: var(--pine); }
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; padding-bottom: 64px; }
.blog-grid--2 { grid-template-columns: repeat(2, 1fr); padding-bottom: 0; }
.blog-card { display: flex; flex-direction: column; border-radius: 22px; overflow: hidden; background: var(--surface); border: 1px solid var(--line); color: var(--ink); text-decoration: none; transition: border-color .18s, transform .18s; }
.blog-card:hover { color: var(--ink); border-color: var(--pine); transform: translateY(-3px); }
.blog-card__img { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.blog-card__body { padding: 18px 20px 20px; display: grid; gap: 8px; }
.blog-card__body strong { font-family: var(--font-display); font-size: 20px; line-height: 1.2; letter-spacing: -0.02em; }
.blog-card__body .muted { font-size: 15px; line-height: 1.45; }

.blog-post__head { max-width: 780px; padding-top: 32px; }
.blog-back { display: inline-block; margin-bottom: 18px; font-weight: 600; text-decoration: none; }
.blog-post__head h1 { font-size: clamp(32px, 4.6vw, 52px); line-height: 1.08; letter-spacing: -0.035em; margin: 12px 0 14px; }
.blog-post__lead { font-size: 20px; line-height: 1.5; color: var(--muted); margin: 0 0 28px; }
.blog-post__cover { margin: 0 auto 36px; max-width: 1040px; }
.blog-post__cover img { display: block; width: 100%; aspect-ratio: 16 / 8; object-fit: cover; border-radius: 28px; }
.blog-post__body { max-width: 720px; padding-bottom: 48px; font-size: 18px; line-height: 1.7; }
.blog-post__body h2 { font-size: 26px; letter-spacing: -0.02em; margin: 36px 0 12px; }
.blog-post__body ul { padding-left: 1.2em; }
.blog-post__body li { margin-bottom: 10px; }
.blog-lede { font-size: 21px; line-height: 1.6; font-family: var(--font-display); letter-spacing: -0.01em; }
.blog-note { font-size: 14px; color: var(--muted); }
.blog-more { padding-bottom: 72px; border-top: 1px solid var(--line); padding-top: 36px; }
.blog-more h2 { margin-bottom: 18px; }

/* Főoldali előzetes */
.home-blog { padding-top: 16px; padding-bottom: 64px; }
.home-blog__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.blog-grid--home { padding-bottom: 0; }
.home-blog__head h2 { font-size: clamp(28px, 3.6vw, 40px); letter-spacing: -0.03em; margin: 0; }

@media (max-width: 900px) { .blog-grid { grid-template-columns: repeat(2, 1fr); } .blog-feature { grid-template-columns: 1fr; } .blog-feature__img { min-height: 0; aspect-ratio: 16 / 10; } }
@media (max-width: 600px) { .blog-grid, .blog-grid--2 { grid-template-columns: 1fr; } .blog-feature__body { padding: 22px; } .blog-post__body { font-size: 17px; } .blog-post__cover img { aspect-ratio: 4 / 3; border-radius: 20px; } }
@media (prefers-reduced-motion: reduce) { .blog-feature img, .blog-card img { transition: none; } }
.blog-grid--pad { padding-bottom: 64px; }
.blog-figure { margin: 28px 0; }
.blog-figure img { display: block; width: 100%; max-height: 560px; object-fit: cover; object-position: 50% 30%; border-radius: 22px; }
.blog-figure figcaption { margin-top: 8px; font-size: 14px; color: var(--muted); }
.blog-figure--side { float: right; width: min(300px, 45%); margin: 6px 0 16px 28px; }
.blog-figure--side img { max-height: none; aspect-ratio: 3 / 4; }
@media (max-width: 600px) { .blog-figure--side { float: none; width: 100%; margin: 20px 0; } }

/* Témaszűrő és keresés */
.blog-filter { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 20px; }
.blog-topics { display: flex; flex-wrap: wrap; gap: 8px; }
.blog-topics a { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface);
  color: var(--ink); font-weight: 600; font-size: 14px; text-decoration: none; }
.blog-topics a small { font-size: 12px; color: var(--muted); font-weight: 700; }
.blog-topics a:hover { border-color: var(--pine); }
.blog-topics a.is-on { background: var(--pine); border-color: var(--pine); color: #fff; }
.blog-topics a.is-on small { color: rgba(255, 255, 255, .8); }
.blog-search { display: flex; gap: 8px; align-items: center; flex: 0 1 320px; }
.blog-search input { flex: 1; min-width: 0; padding: 9px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); font: inherit; color: var(--ink); }
a.blog-topic-chip { text-decoration: none; }
@media (max-width: 640px) {
  .blog-topics { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; margin: 0 -16px; padding-left: 16px; padding-right: 16px; }
  .blog-filter { display: block; }
  .blog-topics { margin-bottom: 10px; }
  .blog-search { width: 100%; }
}

/* assets/css/mod-breeders.css */
/* Bundee: tenyésztői rész: tenyésztők, almok, átadás, alomközösség */
.breeders__q { flex: 1; }
.breeders { list-style: none; margin: 0; padding: 0 0 64px; }
.breeders .tile__body .chips { margin-top: 6px; }

.breeder-hero { display: grid; grid-template-columns: 160px 1fr; gap: 20px; align-items: start; }
.breeder-hero__photo { aspect-ratio: 1; border-radius: var(--r-md); overflow: hidden; background: var(--paper-2); display: grid; place-items: center; }
.breeder-hero__photo img { width: 100%; height: 100%; object-fit: cover; }
.breeder-hero__photo .placeholder { width: 56px; height: 56px; object-fit: contain; opacity: .7; }
.breeder-hero .facts { margin-top: 12px; }

.ticklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ticklist li { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; }
.ticklist svg { color: var(--good); margin-top: 3px; }

.kittens, .litters, .mates, .handover { list-style: none; margin: 0; padding: 0; }
.kittens { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.kitten { display: grid; grid-template-columns: 64px 1fr; gap: 12px; align-items: center; padding: 10px; border-radius: var(--r-md); background: var(--paper); border: 1px solid var(--line); }
.kitten strong, .kitten .muted { display: block; }
.kitten .muted { font-size: 14px; }
.kitten__photo, .mate__photo { width: 64px; height: 64px; border-radius: 50%; overflow: hidden; background: var(--paper-2); display: grid; place-items: center; }
.kitten__photo img, .mate__photo img { width: 100%; height: 100%; object-fit: cover; }
.kitten__photo .placeholder, .mate__photo .placeholder { width: 30px; height: 30px; object-fit: contain; opacity: .75; }

.litters { display: grid; gap: 4px; }
.litterrow, .litterlink { display: grid; grid-template-columns: 40px 1fr auto; gap: 14px; align-items: center; }
.litterrow { padding: 10px 0; border-bottom: 1px solid var(--line); grid-template-columns: 40px 1fr; }
.litterrow:last-child { border-bottom: 0; }
.litterrow strong, .litterrow .muted, .litterlink strong, .litterlink .muted { display: block; }
.litterrow .muted, .litterlink .muted { font-size: 15px; }
.litterrow__icon { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); }
.litterlink { text-decoration: none; color: var(--ink); }
.litterlink:hover { color: var(--ink); border-color: var(--pine); }
.stack > .card + .card { margin-top: 0; }

.formfold > summary { list-style: none; cursor: pointer; }
.formfold > summary::-webkit-details-marker { display: none; }
.formfold > summary h2 { display: inline; }
.formfold[open] > summary { margin-bottom: 14px; }
#kolykok .formfold { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
#kolykok .formfold > summary { color: var(--pine); }

.mates { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.mate { display: grid; grid-template-columns: 64px 1fr; gap: 12px; align-items: center; padding: 10px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--paper); }
.mate--mine { border-color: var(--pine); background: var(--pine-soft); }
.mate__body strong, .mate__body .muted { display: block; }
.mate__body .muted { font-size: 14px; line-height: 1.35; }
.mate__link { font-size: 14px; font-weight: 600; }

.album--litter { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); margin-bottom: 0; }
.litterphoto__name { display: block; font-size: 13px; color: var(--muted); margin-top: 4px; }

.sharetoggle { gap: 10px; padding: 12px 0; border-top: 1px solid var(--line); }
.sharetoggle .btn { justify-self: start; }

.handover { display: grid; gap: 10px; margin-top: 12px; }
.handover__item { padding: 12px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--paper); display: grid; gap: 8px; }
.handover__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.handover__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; }
.handover__fold { flex-basis: 100%; }
.handover__fold > summary { list-style: none; display: inline-flex; }
.handover__fold > summary::-webkit-details-marker { display: none; }
.handover__fold[open] > summary { margin-bottom: 10px; }
.handover__actions > .btn { order: 0; }
.handover__fold { order: 1; flex-basis: auto; }
.handover__fold[open] { flex-basis: 100%; }

.codebox { display: grid; gap: 6px; padding: 10px 12px; border-radius: var(--r-sm); background: var(--warn-soft); }
.codebox .muted { font-size: 13px; color: var(--warn); }
.codebox__code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 24px; font-weight: 700; letter-spacing: .08em; color: var(--ink); }
.codebox__row { display: flex; gap: 6px; }
.codebox__row input { flex: 1; min-width: 0; font: inherit; font-size: 13px; padding: 6px 10px; border-radius: var(--r-sm); border: 1px solid var(--line); background: var(--surface); color: var(--ink); }

.transfer { display: grid; justify-items: center; }
.transfer__card { width: 100%; max-width: 560px; display: grid; gap: 16px; }
.transfer__input { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 22px !important; letter-spacing: .1em; text-transform: uppercase; text-align: center; }
.transfer__pet { display: grid; grid-template-columns: 96px 1fr; gap: 16px; align-items: center; }
.transfer__pet h2 { margin: 0 0 4px; }
.transfer__pet p { margin: 0; }
.transfer__photo { width: 96px; height: 96px; border-radius: 50%; overflow: hidden; background: var(--paper-2); display: grid; place-items: center; }
.transfer__photo img { width: 100%; height: 100%; object-fit: cover; }
.transfer__photo .placeholder { width: 44px; height: 44px; object-fit: contain; }

.litterbadge { display: grid; grid-template-columns: 40px 1fr auto; gap: 12px; align-items: center; padding: 14px 16px; }
.litterbadge strong, .litterbadge .muted { display: block; }
.litterbadge .muted { font-size: 14px; }
.litterbadge__icon { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); }

@media (max-width: 560px) {
  .breeder-hero { grid-template-columns: 1fr; }
  .breeder-hero__photo { max-width: 200px; }
  .litterlink { grid-template-columns: 40px 1fr; }
  .litterlink > :last-child { grid-column: 2; justify-self: start; }
  .litterbadge { grid-template-columns: 40px 1fr; }
  .litterbadge .btn { grid-column: 1 / -1; }
}
.layout-2 > .stack { min-width: 0; }
.layout-2 > .stack > * { min-width: 0; }
.layout-2 .grid-2 > * { min-width: 0; }
.layout-2 .field select, .layout-2 .field input { width: 100%; min-width: 0; }
.handover > li, .handover__item > *, .codebox > * { min-width: 0; }
.codebox__row input { width: 0; }

/* Profi tenyésztői profil (tenyeszto.php) */
.bprof-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 48px; align-items: center; padding-top: 32px; padding-bottom: 36px; }
.bprof-hero__photo { position: relative; margin: 0; border-radius: 28px; overflow: hidden; background: var(--paper-2); display: grid; place-items: center; min-height: 320px; box-shadow: 0 30px 60px -32px rgba(34, 22, 58, .5); isolation: isolate; }
.bprof-hero__photo::before { content: ""; position: absolute; inset: -30px; background: var(--bprof-bg) center / cover no-repeat; filter: blur(28px) saturate(1.1); opacity: .55; z-index: -1; }
.bprof-hero__zoom { all: unset; cursor: zoom-in; display: block; width: 100%; }
.bprof-hero__zoom:focus-visible { outline: 3px solid var(--pine); outline-offset: -3px; }
.bprof-hero__photo img { display: block; width: 100%; height: auto; max-height: 640px; object-fit: contain; }
.bprof-hero__photo .placeholder { width: 96px; height: 96px; opacity: .6; }
.bprof-hero h1 { font-size: clamp(36px, 5vw, 56px); line-height: 1.02; letter-spacing: -0.035em; margin: 4px 0 8px; }
.bprof-hero__who { font-size: 18px; font-weight: 600; color: var(--muted); margin: 0 0 16px; }
.bprof-badges { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 18px; }
.bprof-hero__lead { font-size: 17px; line-height: 1.6; color: var(--muted); margin: 0 0 20px; max-width: 36em; }
.bprof-stats { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0 0 22px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); }
.bprof-stats div { padding: 12px 16px; }
.bprof-stats div + div { border-left: 1px solid var(--line); }
.bprof-stats dt { font-size: 13px; color: var(--muted); font-weight: 600; }
.bprof-stats dd { margin: 2px 0 0; font-family: var(--font-display); font-size: 26px; font-weight: 800; letter-spacing: -0.02em; }
.bprof-cta { display: flex; flex-wrap: wrap; gap: 10px; }
.bprof-gallery { display: flex; flex-wrap: wrap; gap: 14px; padding-bottom: 40px; }
.bprof-gallery figure { margin: 0; flex: calc(var(--r) * 1) 1 calc(var(--r) * 300px); aspect-ratio: var(--r); border-radius: 20px; overflow: hidden; background: var(--paper-2); position: relative; }
.bprof-gallery figure button, .bprof-gallery figure img { width: 100%; height: 100%; }
.bprof-gallery figure img { object-fit: cover; }
.bprof-gallery button { all: unset; display: block; cursor: zoom-in; }
.bprof-gallery button:focus-visible { outline: 3px solid var(--pine); outline-offset: -3px; }
.bprof-gallery img { display: block; width: 100%; height: auto; transition: transform .4s ease; }
.bprof-gallery figure:hover img { transform: scale(1.03); }
.bprof-gallery figcaption { position: absolute; inset: auto 0 0 0; padding: 30px 14px 12px; color: #fff; font-size: 14px; font-weight: 600; background: linear-gradient(180deg, rgba(0,0,0,0), rgba(18, 12, 30, .7)); pointer-events: none; }
.bprof-body { padding-bottom: 64px; }
@media (max-width: 900px) { .bprof-hero { grid-template-columns: 1fr; gap: 24px; padding-top: 16px; } .bprof-hero__photo { max-width: 560px; } }
@media (max-width: 600px) { .bprof-gallery figure { flex-basis: calc(var(--r) * 200px); } }
@media (max-width: 480px) { .bprof-stats dd { font-size: 22px; } .bprof-stats div { padding: 10px 12px; } }
@media (prefers-reduced-motion: reduce) { .bprof-gallery img { transition: none; } }
/* Galéria kezelése (tenyeszto-profil.php) */
.bgal-admin { list-style: none; margin: 14px 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.bgal-admin li { display: grid; gap: 6px; font-size: 13px; }
.bgal-admin img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 14px; }
.bgal-upload { margin-top: 10px; }
.bprof-hero__tag { position: absolute; left: 16px; bottom: 16px; right: 16px; width: max-content; max-width: calc(100% - 32px); display: inline-flex; align-items: center; gap: 10px; padding: 8px 18px 8px 10px; border-radius: 999px; background: rgba(20, 14, 32, .62); -webkit-backdrop-filter: blur(10px) saturate(1.2); backdrop-filter: blur(10px) saturate(1.2); color: #fff; font-family: var(--font-display, inherit); font-weight: 800; font-size: clamp(17px, 2.2vw, 22px); letter-spacing: -.02em; line-height: 1.1; box-shadow: 0 10px 30px -12px rgba(0, 0, 0, .6); border: 1px solid rgba(255, 255, 255, .18); pointer-events: none; }
.bprof-hero__tag span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* A tenyésztő személyes profilja a tenyészet neve alatt */
.bprof-hero__person { display: inline-flex; align-items: center; gap: 8px; color: inherit; font-weight: 700; text-decoration: none; vertical-align: middle; }
.bprof-hero__person:hover span { text-decoration: underline; color: var(--pine); }
.bprof-hero__av { width: 32px; height: 32px; border-radius: 50%; overflow: hidden; display: inline-grid; place-items: center; flex: none; background: var(--pine-soft); color: var(--pine); font-size: 14px; font-weight: 800; border: 2px solid var(--surface); box-shadow: var(--shadow-lift); }
.bprof-hero__av img { width: 100%; height: 100%; object-fit: cover; }

/* Tenyésztő-ellenőrzés: „Mit ellenőriztünk?” doboz, saját kártya, admin sor */
.bvbox h2 { font-size: 1.15rem; margin-bottom: 10px; }
.bvbox ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.bvbox li { display: flex; gap: 10px; align-items: flex-start; }
.bvbox li > svg { flex: none; width: 22px; height: 22px; padding: 3px; border-radius: 50%; margin-top: 1px; }
.bvbox__ok > svg { background: color-mix(in srgb, var(--good, #1F9D7A) 16%, transparent); color: var(--good, #1F9D7A); stroke-width: 2.6; }
.bvbox__info > svg { background: var(--warn-soft); color: var(--warn); }
.bvbox li strong { display: block; font-size: .97rem; }
.bvbox li small { display: block; color: var(--muted); font-size: .86rem; line-height: 1.45; }
.bvbox__foot { margin: 14px 0 0; font-size: .82rem; }
.bvcard h3 { font-size: 1rem; margin: 18px 0 8px; padding-top: 14px; border-top: 1px solid var(--line); }
.bvcard__note { background: var(--warn-soft); color: var(--ink); padding: 10px 12px; border-radius: 12px; font-size: .92rem; }
.bvq { border: 1px solid var(--line); border-radius: 16px; padding: 14px 16px; margin-top: 12px; }
.bvq__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; align-items: center; }
.bvq__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px 18px; margin: 12px 0; }
.bvq__facts dt { font-size: .78rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.bvq__facts dd { margin: 2px 0 0; }
.bvq__form fieldset { border: 0; padding: 0; margin: 0 0 10px; display: flex; flex-wrap: wrap; gap: 6px 18px; }
.bvq__form legend { font-weight: 700; margin-bottom: 6px; }
.bvq__btns { display: flex; flex-wrap: wrap; gap: 8px; }

/* assets/css/mod-care-sheet.css */
/* Gondozási lap (gondozasi-lap.php): gazdi nézet, megosztott link, nyomtatás */

.cs-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 16px; align-items: start; padding-bottom: 64px; }
.cs-main, .cs-side { display: grid; gap: 16px; min-width: 0; }
.cs-main > .card + .card, .cs-side > .card + .card { margin-top: 0; }
@media (max-width: 900px) { .cs-layout { grid-template-columns: minmax(0, 1fr); } }
.cs-printonly { display: none; }

.cs-public { max-width: 720px; display: grid; gap: 16px; padding-bottom: 64px; }
.cs-public > .card + .card { margin-top: 0; }
.cs-public__intro { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--muted); font-weight: 600; }
.cs-public__intro svg { color: var(--pine); flex: none; }
.cs-public__actions { display: flex; justify-content: flex-end; }
.cs-public__foot { margin: 0; }

.cs-gone { text-align: center; padding: 32px 20px; }
.cs-gone h1 { font-size: 24px; margin: 10px 0 6px; }
.cs-gone__icon { display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--pine-soft); color: var(--pine); }

/* A lap */
.cs-sheet { border-radius: var(--r-lg); overflow: hidden; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lift); }
.cs-sheet__band { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 18px; background: var(--pine); color: var(--on-pine); }
.cs-sheet__brand { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.cs-sheet__app { font-family: var(--font-display); font-weight: 800; font-size: 16px; }
.cs-sheet__id { display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 18px 18px 6px; }
.cs-sheet__photo { width: 88px; aspect-ratio: 1; border-radius: var(--r-md); overflow: hidden; background: var(--paper-2); display: grid; place-items: center; box-shadow: 0 0 0 4px var(--pine-soft); }
.cs-sheet__photo img { width: 100%; height: 100%; object-fit: cover; }
.cs-sheet__photo .placeholder { width: 48px; height: 48px; object-fit: contain; opacity: .7; }
.cs-sheet__who h2 { margin: 0; font-size: 28px; line-height: 1.1; overflow-wrap: anywhere; }
.cs-sheet__who p { margin: 4px 0 0; color: var(--muted); }
.cs-sheet__qr { width: 84px; text-align: center; font-size: 9px; color: #555; }
.cs-sheet__qr svg { width: 84px; height: 84px; display: block; }
.cs-sheet__foot { margin: 0; padding: 0 18px 14px; font-size: 13px; color: var(--muted); }

.cs-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px 14px; margin: 0; padding: 12px 18px 14px; border-bottom: 1px solid var(--line); }
.cs-facts div { min-width: 0; }
.cs-facts dt { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.cs-facts dd { margin: 2px 0 0; font-weight: 600; overflow-wrap: anywhere; }
.cs-facts__sub { display: block; font-size: 12px; font-weight: 500; color: var(--muted); }
.cs-mono { font-variant-numeric: tabular-nums; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .95em; }

.cs-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 14px 18px 4px; }
@media (max-width: 640px) { .cs-grid { grid-template-columns: minmax(0, 1fr); } }
.cs-sec { min-width: 0; padding: 12px 14px; border-radius: var(--r-md); background: var(--paper-2); }
.cs-sec p { margin: 0; overflow-wrap: anywhere; }
.cs-sec p + p { margin-top: 6px; }
.cs-sec__h { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 8px; font-size: 15px; font-weight: 800; font-family: var(--font-display); }
.cs-sec__h svg { color: var(--pine); flex: none; }
.cs-sec--empty { background: transparent; border: 1px dashed var(--line); }
.cs-empty { color: var(--muted); font-size: 14px; }
.cs-sec--notes { background: var(--warn-soft); }
.cs-sec--notes .cs-sec__h svg { color: var(--warn); }
.cs-sec--sos { margin: 12px 18px 0; background: var(--bad-soft); }
.cs-sec--sos.cs-sec--empty { background: transparent; }
.cs-sec--sos .cs-sec__h svg { color: var(--bad); }
.cs-muted { color: var(--muted); }

.cs-tag { display: inline-flex; align-items: center; gap: 3px; font-family: var(--font-body); font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--surface); color: var(--muted); letter-spacing: 0; }
.cs-tag--auto { color: var(--pine); }

.cs-times { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.cs-times li { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 999px; background: var(--surface); font-weight: 700; font-variant-numeric: tabular-nums; }
.cs-times svg { color: var(--pine); }

.cs-meds { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cs-meds li { display: grid; gap: 1px; }
.cs-meds__when { font-size: 14px; color: var(--muted); }
.cs-meds__note { font-size: 14px; }

.cs-contacts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px 14px; }
.cs-contacts li { display: grid; gap: 2px; min-width: 0; }
.cs-contacts__name { font-weight: 700; overflow-wrap: anywhere; }
.cs-contacts__tel { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cs-vetbox { margin-top: 10px; padding-top: 10px; border-top: 1px solid color-mix(in srgb, var(--bad) 20%, transparent); }
.cs-vetbox__k { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); margin: 0 0 4px !important; }
.cs-vet + .cs-vet { margin-top: 6px; }

.cs-lost { display: flex; gap: 8px; align-items: flex-start; margin: 12px 18px 14px; font-size: 14px; color: var(--muted); }
.cs-lost svg { flex: none; margin-top: 2px; color: var(--warn); }

/* Szerkesztés */
.cs-edit details > summary { list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; }
.cs-edit details > summary::-webkit-details-marker { display: none; }
.cs-edit__sum h2 { margin: 0; font-size: 20px; }
.cs-edit__sum h2::after { content: ''; display: inline-block; width: 8px; height: 8px; margin-left: 10px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-3px) rotate(45deg); transition: transform .15s; }
.cs-edit details[open] .cs-edit__sum h2::after { transform: translateY(1px) rotate(-135deg); }
.cs-form { margin-top: 12px; display: grid; gap: 14px; }
.cs-fs { border: 0; margin: 0; padding: 14px 0 0; border-top: 1px solid var(--line); display: grid; gap: 10px; min-width: 0; }
.cs-fs legend { display: flex; align-items: center; gap: 8px; font-family: var(--font-display); font-weight: 800; font-size: 16px; padding: 0 0 6px; }
.cs-fs legend svg { color: var(--pine); }
.cs-fs .field { margin: 0; }
.cs-fs textarea { width: 100%; min-height: 76px; }
.cs-timeinputs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.cs-timeinputs input { min-width: 0; width: 100%; }
@media (max-width: 480px) { .cs-timeinputs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cs-contactinputs { display: grid; gap: 8px; }
.cs-contactrow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
@media (max-width: 480px) { .cs-contactrow { grid-template-columns: minmax(0, 1fr); padding-bottom: 8px; border-bottom: 1px dashed var(--line); } }
.cs-warn { display: flex; gap: 8px; align-items: flex-start; margin: 0; }
.cs-warn svg { flex: none; margin-top: 2px; }
.cs-autonote { padding: 10px 12px; border-radius: var(--r-sm); background: var(--paper-2); display: grid; gap: 6px; }
.cs-autonote p { margin: 0; }
.cs-autonote__text { font-size: 14px; overflow-wrap: anywhere; }
.cs-form__actions { display: flex; justify-content: flex-end; }

/* Megosztás */
.cs-links { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 10px; }
.cs-linkitem { display: grid; gap: 8px; padding: 12px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--surface); min-width: 0; }
.cs-linkitem.is-new { border-color: var(--pine); box-shadow: 0 0 0 3px var(--pine-soft); }
.cs-linkitem__top { display: grid; gap: 2px; min-width: 0; }
.cs-linkitem__top strong { overflow-wrap: anywhere; }
.cs-linkitem__url { width: 100%; min-width: 0; font-size: 13px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; padding: 8px 10px; border-radius: var(--r-sm); border: 1px solid var(--line); background: var(--paper-2); color: var(--ink); }
.cs-linkitem__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.cs-linkitem__actions form { margin-left: auto; }
.cs-newlink { display: grid; gap: 10px; }
.cs-newlink .field { margin: 0; }
.cs-newlink .btn { justify-self: start; }
.cs-copied { display: block; min-height: 1em; margin-bottom: 6px; }

/* Napló */
.cs-log__day { margin: 12px 0 6px; font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.cs-log__day:first-child { margin-top: 0; }
.cs-log { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.cs-log__item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 10px; border-radius: var(--r-sm); background: var(--paper-2); }
.cs-log__icon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--good-soft); color: var(--good); }
.cs-log__item--gyogyszer .cs-log__icon { background: var(--pine-soft); color: var(--pine); }
.cs-log__body { min-width: 0; overflow-wrap: anywhere; }
.cs-log__note { display: block; font-size: 14px; }
.cs-log__undo { margin: 0; }

/* Gondozó: mai teendők */
.cs-checkform { display: grid; gap: 12px; }
.cs-checkform .field { margin: 0; }
.cs-checkbtns { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.cs-checkbtn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; font-size: 16px; }
.cs-log-wrap { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }

@media (max-width: 560px) {
  .cs-sheet__id { grid-template-columns: 72px minmax(0, 1fr); gap: 12px; padding: 16px 16px 4px; }
  .cs-sheet__photo { width: 72px; }
  .cs-sheet__who h2 { font-size: 24px; }
  .cs-sheet__band { padding: 10px 16px; }
  .cs-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px 16px; }
  .cs-grid { padding: 12px 16px 2px; }
  .cs-sec--sos { margin: 12px 16px 0; }
  .cs-lost { margin: 12px 16px 14px; }
}

/* Nyomtatás: egy A4-es oldal */
@media print {
  /* Az álló A4-es @page szabályt a gondozasi-lap.php adja (CARE_PRINT_PAGE_CSS), mert a mod-family-tree.css
     általános, fekvő @page szabálya minden oldalra érvényes, és csak egy később betöltött szabály írja felül. */
  .page-cs .topbar, .page-cs .footer, .page-cs .protobar, .page-cs .flashes, .page-cs .skip, .page-cs .backbar,
  .page-cs .cs-noprint, .page-cs .cs-side, .page-cs .tabbar, .page-cs .chatdock { display: none !important; }
  body.page-cs { background: #fff !important; color: #000 !important; font-size: 10.5pt; padding: 0 !important; }
  .page-cs .container { max-width: none; padding: 0 !important; margin: 0 !important; }
  .page-cs .section { padding: 0 !important; }
  .page-cs .cs-layout, .page-cs .cs-public { display: block; padding: 0; max-width: none; }
  .page-cs .cs-printonly { display: block; }
  .page-cs .cs-sheet { box-shadow: none !important; border: 1.5px solid #55407E; border-radius: 10px; background: #fff !important; color: #000; }
  .page-cs .cs-sheet__band { padding: 6px 12px; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .page-cs .cs-sheet__id { grid-template-columns: 22mm minmax(0, 1fr) auto; padding: 8px 12px 2px; gap: 10px; }
  .page-cs .cs-sheet__photo { width: 22mm; box-shadow: none; }
  .page-cs .cs-sheet__who h2 { font-size: 20pt; }
  .page-cs .cs-sheet__qr { width: 22mm; }
  .page-cs .cs-sheet__qr svg { width: 22mm; height: 22mm; }
  .page-cs .cs-facts { padding: 6px 12px 8px; gap: 4px 10px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .page-cs .cs-facts dt { font-size: 7.5pt; }
  .page-cs .cs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 8px 12px 0; }
  .page-cs .cs-sec { padding: 6px 9px; border: 1px solid #ddd; background: #fff !important; break-inside: avoid; }
  .page-cs .cs-sec--empty, .page-cs .cs-tag--auto { display: none !important; }
  .page-cs .cs-sec__h { font-size: 11pt; margin-bottom: 3px; }
  .page-cs .cs-sec--notes { border-color: #e2b45c; }
  .page-cs .cs-sec--sos { margin: 6px 12px 0; border: 1.5px solid #B3362B; }
  .page-cs .cs-times li { border: 1px solid #ccc; padding: 1px 7px; }
  .page-cs .cs-lost { margin: 6px 12px 4px; font-size: 9pt; }
  .page-cs .cs-sheet__foot { padding: 0 12px 6px; font-size: 8pt; }
  .page-cs a { color: #000; text-decoration: none; }
  .page-cs .appshell__main, .page-cs main { padding: 0 !important; margin: 0 !important; }
}

/* assets/css/mod-challenges.css */
/* Kihívások. */
.ev-new { background: #6FC7A6 !important; color: #0E3B2C !important; }
.ch-badge { align-self: flex-start; padding: 6px 14px; border-radius: 999px; background: var(--pine-soft); color: var(--pine); font-weight: 800; white-space: nowrap; }
.ch-badge.is-closed { background: var(--paper-2); color: var(--muted); }
.ch-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 12px; }
.ch-card { display: grid; gap: 6px; padding: 16px; color: var(--ink); text-decoration: none; height: 100%; border-radius: var(--r-lg); border-top: 4px solid var(--pine); }
.ch-card:hover { color: var(--ink); box-shadow: 0 0 0 2px var(--pine-soft); }
.ch-card--foto, .ch-card--video { border-top-color: #E7A93B; }
.ch-card--kozos { border-top-color: #6FC7A6; }
.ch-card__kind { font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.ch-card strong { font-family: var(--font-display); font-size: 19px; line-height: 1.2; }
.ch-card__pts { font-weight: 800; color: var(--pine); }
.ch-card .ms-bar { margin: 2px 0; }
.ch-past { list-style: none; padding: 0; display: grid; gap: 6px; }
.ch-board__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ch-board__list li { display: grid; grid-template-columns: 26px 1fr auto; gap: 8px; align-items: center; padding: 6px 8px; border-radius: 10px; background: var(--paper-2); }
.ch-board__n { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 13px; background: var(--paper); }
.ch-board__list li:nth-child(1) .ch-board__n { background: #F6CE8C; }
.ch-board__list li:nth-child(2) .ch-board__n { background: #DADDE3; }
.ch-board__list li:nth-child(3) .ch-board__n { background: #E8B89A; }
.ch-how { padding-left: 18px; display: grid; gap: 6px; margin: 0; }
.ch-task { margin-bottom: 18px; }
.ch-enter { margin-bottom: 18px; }
.ch-enter summary { cursor: pointer; }
.ch-grid { list-style: none; margin: 0 0 40px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 14px; }
.ch-entry { padding: 0; overflow: hidden; border-radius: var(--r-lg); }
.ch-entry__media { position: relative; aspect-ratio: 1; background: var(--paper-2); }
.ch-entry__media button { display: block; width: 100%; height: 100%; border: 0; padding: 0; cursor: zoom-in; background: none; }
.ch-entry__media img, .ch-entry__media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ch-place { position: absolute; top: 8px; left: 8px; padding: 3px 10px; border-radius: 999px; font-weight: 800; font-size: 13px; background: #F6CE8C; color: #5A3A08; }
.ch-place--2 { background: #DADDE3; color: #333; }
.ch-place--3 { background: #E8B89A; color: #4A2410; }
.ch-entry__body { display: flex; justify-content: space-between; gap: 8px; align-items: center; padding: 10px 12px; flex-wrap: wrap; }
.ch-entry__body p { margin: 0; }

/* Kihívások: alnézet, szűrők, saját helyezés, ranglista oldal */
.ch-sub { display: flex; gap: 6px; margin: 0 0 16px; border-bottom: 1px solid var(--line); }
.ch-sub a { display: inline-flex; align-items: center; gap: 6px; padding: 10px 14px; font-weight: 700; color: var(--muted); text-decoration: none; border-bottom: 3px solid transparent; margin-bottom: -1px; }
.ch-sub a.is-on { color: var(--pine); border-bottom-color: var(--pine); }
.ch-sub a:hover { color: var(--ink); }
.ch-period { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.ch-period a { padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font-weight: 600; font-size: 14px; text-decoration: none; }
.ch-period a.is-on { background: var(--pine); border-color: var(--pine); color: var(--on-pine); }
.ch-me { display: flex; gap: 12px; align-items: center; padding: 14px 16px; margin: 0 0 16px; text-decoration: none; color: var(--ink); }
.ch-me > span:last-child, .ch-me:not(.is-in) { display: grid; gap: 2px; }
.ch-me.is-in { border: 2px solid var(--pine-soft); }
.ch-me__rank { min-width: 52px; height: 52px; padding: 0 8px; border-radius: 16px; display: grid; place-items: center; background: var(--pine); color: var(--on-pine); font-family: var(--font-display); font-size: 22px; font-weight: 800; }
.ch-av { width: 28px; height: 28px; flex: none; border-radius: 50%; overflow: hidden; display: inline-grid; place-items: center; background: var(--pine-soft); color: var(--pine); font-weight: 800; font-size: 13px; }
.ch-av img { width: 100%; height: 100%; object-fit: cover; }
.ch-av--lg { width: 72px; height: 72px; font-size: 28px; border: 3px solid var(--surface); box-shadow: var(--shadow-lift); }
.ch-board__who, .ch-table__who { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.ch-board__list li.is-me, .ch-table tr.is-me td { background: var(--pine-soft); }
.ch-podium { list-style: none; margin: 8px 0 20px; padding: 0; display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: end; gap: 10px; }
.ch-podium__item { display: grid; justify-items: center; gap: 4px; text-align: center; min-width: 0; }
.ch-podium__item--1 { order: 2; }
.ch-podium__item--2 { order: 1; }
.ch-podium__item--3 { order: 3; }
.ch-podium__av { position: relative; }
.ch-podium__item--1 .ch-av--lg { width: 92px; height: 92px; font-size: 34px; }
.ch-podium__n { position: absolute; right: -4px; bottom: -4px; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 14px; background: #DADDE3; border: 2px solid var(--surface); }
.ch-podium__item--1 .ch-podium__n { background: #F6CE8C; }
.ch-podium__item--3 .ch-podium__n { background: #E8B89A; }
.ch-podium__name { font-weight: 700; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ch-podium__item strong { font-family: var(--font-display); font-size: 20px; color: var(--pine); }
.ch-podium__item strong small { font-size: 13px; color: var(--muted); font-family: inherit; }
.ch-podium__meta { min-height: 20px; }
.ch-podium__step { width: 100%; border-radius: 14px 14px 4px 4px; background: linear-gradient(180deg, var(--pine-soft), var(--paper-2)); height: 56px; }
.ch-podium__item--1 .ch-podium__step { height: 96px; background: linear-gradient(180deg, #F6CE8C, #FBEFD3); }
.ch-podium__item--2 .ch-podium__step { height: 72px; }
.ch-podium__item.is-me .ch-podium__name { color: var(--pine); }
.ch-medal { font-size: 15px; margin-right: 2px; white-space: nowrap; }
.ch-table-wrap { padding: 6px; overflow-x: auto; }
.ch-table { width: 100%; border-collapse: collapse; }
.ch-table th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); padding: 8px 10px; }
.ch-table td { padding: 8px 10px; border-top: 1px solid var(--line); }
.ch-table__n { width: 40px; font-weight: 800; color: var(--muted); }
@media (max-width: 640px) { .ch-hide-m { display: none; } .ch-av--lg { width: 56px; height: 56px; } .ch-podium__item--1 .ch-av--lg { width: 72px; height: 72px; } }
.ch-board__list li.is-me { outline: 2px solid var(--pine); outline-offset: -2px; }
.ch-table tr.is-me td { background: var(--pine-soft); }
.ch-table tr.is-me td:first-child { box-shadow: inset 4px 0 0 var(--pine); }

/* Kihívások v2: összegzés, kiemelt kihívás, kártyák, mini ranglisták, kedvenc-ranglista */
.ch-stats { display: grid; grid-template-columns: repeat(3, auto) 1fr; gap: 10px 28px; align-items: center; padding: 14px 18px; margin: 0 0 16px; }
.ch-stats > div { display: grid; gap: 2px; }
.ch-stats__v { font-family: var(--font-display); font-size: 24px; font-weight: 800; color: var(--pine); line-height: 1.1; }
.ch-stats__l { font-size: 13px; color: var(--muted); }
.ch-stats__cap { min-width: 180px; }
.ch-feat { display: grid; grid-template-columns: 1.3fr 1fr; gap: 20px; margin: 0 0 22px; padding: 22px; border-radius: var(--r-lg); color: #fff;
  background: radial-gradient(120% 140% at 0% 0%, #6B4FA0 0%, #55407E 45%, #3B2C5C 100%); box-shadow: var(--shadow-lift); overflow: hidden; }
.ch-feat__kind { margin: 0 0 6px; font-size: 13px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: #F6CE8C; }
.ch-feat__kind span { color: #fff; opacity: .85; text-transform: none; letter-spacing: 0; font-weight: 600; }
.ch-feat h2 { margin: 0 0 8px; font-size: clamp(24px, 3vw, 34px); line-height: 1.1; color: #fff; }
.ch-feat p { margin: 0 0 10px; color: rgba(255,255,255,.88); }
.ch-feat__facts { display: flex; flex-wrap: wrap; gap: 8px; }
.ch-feat__facts span { padding: 5px 10px; border-radius: 999px; background: rgba(255,255,255,.12); font-size: 14px; }
.ch-feat__cta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 14px !important; }
.ch-feat .btn--primary { background: #F6CE8C; color: #2B2140; border-color: #F6CE8C; }
.ch-feat .btn--ghost { color: #fff; border-color: rgba(255,255,255,.4); background: transparent; }
.ch-feat__ok { font-weight: 800; color: #9BE3C6; }
.ch-feat__media { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 8px; align-items: stretch; min-height: 170px; }
.ch-feat__media img { width: 100%; height: 100%; min-height: 170px; object-fit: cover; border-radius: 14px; }
.ch-feat__ph { display: grid; place-items: center; align-content: center; gap: 8px; border: 2px dashed rgba(255,255,255,.35); border-radius: 16px; color: rgba(255,255,255,.85); text-align: center; padding: 16px; font-weight: 700; }
.ch-listhead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.ch-listhead h2 { margin: 0; font-size: 20px; }
.ch-listhead .ch-period { margin: 0; }
.ch-card__kind { display: flex; justify-content: space-between; gap: 8px; }
.ch-card__left { text-transform: none; letter-spacing: 0; font-weight: 600; }
.ch-card__foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: auto; padding-top: 6px; }
.ch-card__go { font-weight: 700; font-size: 14px; color: var(--pine); white-space: nowrap; }
.ch-card.is-done { border-top-color: var(--good); }
.ch-card.is-done .ch-card__go { color: var(--good); }
.ch-past { list-style: none; margin: 0; padding: 8px 14px; display: grid; }
.ch-past li { padding: 8px 0; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; }
.ch-past li:first-child { border-top: 0; }
.ch-howbox { padding: 14px 18px; }
.ch-howbox summary { cursor: pointer; }
.ch-mini { margin: 10px 0 2px; }
.ch-mini__h { margin: 0 0 6px; font-weight: 800; font-size: 14px; display: flex; align-items: center; gap: 6px; }
.ch-mini__more { display: inline-block; margin: 6px 0 8px; font-weight: 700; font-size: 14px; }
.ch-board h2 small { font-size: 14px; font-weight: 600; }
.ch-board__list strong small { font-weight: 600; font-size: 12px; }
.ch-av--pet { border-radius: 30%; }
.ch-av--pet img { object-fit: cover; }
.ch-podium__sub { font-size: 13px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ch-table__sub { display: block; font-size: 12px; }
.ch-rankbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin: 0 0 14px; }
.ch-rankbar .ch-period { margin: 0; }
.ch-seg { display: inline-flex; padding: 4px; border-radius: 14px; background: var(--paper-2); gap: 2px; }
.ch-seg a { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 10px; font-weight: 700; color: var(--muted); text-decoration: none; }
.ch-seg a.is-on { background: var(--surface); color: var(--ink); box-shadow: var(--shadow-lift); }
@media (max-width: 860px) {
  .ch-feat { grid-template-columns: 1fr; padding: 18px; }
  .ch-feat__media { min-height: 120px; }
  .ch-feat__media img { min-height: 120px; }
  .ch-stats { grid-template-columns: repeat(3, 1fr); }
  .ch-stats__cap { grid-column: 1 / -1; }
}
@media (max-width: 480px) { .ch-seg { width: 100%; } .ch-seg a { flex: 1; justify-content: center; padding: 8px 6px; } }
@media (max-width: 900px) { .ch-layout > aside { order: 0; } }
.ch-mini__btn { margin: 8px 0 10px; } .ch-mini__h small { font-weight: 600; font-size: 12px; }

/* Lezárult kihívások: csak egy ikon, kattintásra a legutóbbi három */
.ch-listhead h2 { flex: 1 1 auto; }
.ch-hist { position: relative; order: 3; }
.ch-hist > summary { list-style: none; cursor: pointer; display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: var(--surface); color: var(--muted); }
.ch-hist > summary::-webkit-details-marker { display: none; }
.ch-hist[open] > summary, .ch-hist > summary:hover { color: var(--ink); border-color: var(--pine); }
.ch-hist__pop { position: absolute; right: 0; top: calc(100% + 8px); z-index: 30; width: min(320px, 86vw); padding: 12px 14px; }
.ch-hist__h { margin: 0 0 6px; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.ch-hist__pop ul { list-style: none; margin: 0; padding: 0; display: grid; }
.ch-hist__pop li a { display: grid; gap: 1px; padding: 8px 0; border-top: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.ch-hist__pop li:first-child a { border-top: 0; }
.ch-hist__pop li a:hover strong { color: var(--pine); }
.ch-hist__pop .muted { font-size: 13px; }
.ch-listhead .ch-period { order: 2; }

/* assets/css/mod-chat.css */
/* Bundee chat: kétpaneles üzenetek (uzenetek.php, assets/js/chat.js) */
.chat-page { padding-top: 16px; padding-bottom: 24px; }
.chat {
  display: grid; grid-template-columns: minmax(280px, 340px) 1fr; gap: 16px;
  height: calc(100dvh - 120px); min-height: 520px;
}
.chat .card + .card { margin-top: 0; }
.chat-side, .chat-pane { padding: 0; display: flex; flex-direction: column; min-height: 0; overflow: hidden; }

/* Bal panel */
.chat-side__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 16px 8px; }
.chat-side__head h2 { margin: 0; font-size: 22px; }
.chat-new { display: inline-flex; align-items: center; gap: 6px; }
.chat-search { position: relative; margin: 4px 16px 10px; }
.chat-search input {
  width: 100%; font: inherit; font-size: 15px; color: var(--ink); background: var(--paper);
  border: 1.5px solid var(--line); border-radius: 999px; padding: 9px 14px 9px 38px;
}
.chat-search input:focus { outline: none; border-color: var(--pine); box-shadow: 0 0 0 3px var(--pine-soft); }
.chat-search__icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--muted); display: grid; }
.chat-tabs { margin: 0 16px 8px; align-self: flex-start; }
.chat-tabs a { padding: 6px 14px; font-size: 14px; }
.chat-list { list-style: none; margin: 0; padding: 4px 8px 12px; overflow-y: auto; flex: 1; }
.chat-list__empty { padding: 4px 18px 18px; margin: 0; font-size: 15px; }
.chat-row { border-radius: var(--r-md); }
.chat-row + .chat-row { margin-top: 2px; }
.chat-row__link { display: flex; align-items: center; gap: 12px; padding: 10px; text-decoration: none; color: var(--ink); border-radius: var(--r-md); }
.chat-row__link:hover { background: var(--paper-2); color: var(--ink); }
.chat-row__link:focus-visible { outline: 3px solid var(--pine); outline-offset: -3px; }
.chat-row.is-active .chat-row__link { background: var(--pine-soft); }
.chat-row__main { flex: 1; min-width: 0; display: grid; gap: 1px; }
.chat-row__top { display: flex; align-items: baseline; gap: 2px 8px; flex-wrap: wrap; }
.chat-row__top strong { flex: 1 1 auto; min-width: 0; font-size: 16px; line-height: 1.25; overflow-wrap: anywhere; }
.chat-row__top time { flex: none; margin-left: auto; font-size: 12.5px; color: var(--muted); }
.chat-row__pin { color: var(--pine); display: inline-grid; }
.chat-row__title, .chat-row__snippet { font-size: 13.5px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-row__title .chip { font-size: 11.5px; padding: 0 7px; }
.chat-row.is-unread .chat-row__snippet { color: var(--ink); font-weight: 650; }
.chat-row .msg-avatar { width: 42px; height: 42px; font-size: 18px; }

/* Jobb panel */
.chat-head { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--line); background: var(--surface); }
.chat-head .msg-avatar { width: 40px; height: 40px; font-size: 17px; }
.chat-head__who { flex: 1; min-width: 0; display: grid; }
.chat-head__who strong { font-size: 17px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: flex; align-items: center; gap: 2px; }
.chat-head__sub { font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-head__sub .chip { font-size: 11.5px; padding: 0 7px; }
.chat-head__actions { display: flex; align-items: center; gap: 8px; flex: none; }
.chat-back { display: none; }
.chat-menu { position: relative; }
.chat-menu > summary { list-style: none; }
.chat-menu > summary::-webkit-details-marker { display: none; }
.chat-menu__pop, .chat-pop {
  position: absolute; z-index: 15; min-width: 220px; padding: 6px; border-radius: var(--r-md);
  background: var(--surface); border: 1px solid var(--line); box-shadow: 0 12px 32px -10px rgba(20, 12, 34, .35);
}
.chat-menu__pop { right: 0; top: calc(100% + 6px); }
.chat-menu__pop form { margin: 0; }
.chat-menu__pop button, .chat-pop > button {
  display: block; width: 100%; text-align: left; padding: 10px 12px; border: 0; border-radius: var(--r-sm);
  background: none; font: inherit; font-size: 15px; color: var(--ink); cursor: pointer;
}
.chat-menu__pop button:hover, .chat-pop > button:hover, .chat-menu__pop button:focus-visible, .chat-pop > button:focus-visible { background: var(--paper-2); outline: none; }
.chat-menu__pop .is-danger, .chat-pop .is-danger { color: var(--bad); }

.chat-scroll { flex: 1; min-height: 0; overflow-y: auto; padding: 14px 18px 6px; position: relative; overscroll-behavior: contain; }
.chat-scroll:focus-visible { outline: 3px solid var(--pine-soft); outline-offset: -3px; }
.chat-empty { text-align: center; margin: 24px 0; }
.chat-msgs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.chat-day { align-self: center; margin: 14px 0 8px; font-size: 12.5px; color: var(--muted); }
.chat-day span { padding: 3px 11px; border-radius: 999px; background: var(--paper-2); font-weight: 650; }
.chat-newline { display: flex; align-items: center; gap: 10px; margin: 10px 0; font-size: 12.5px; color: var(--bad); font-weight: 700; }
.chat-newline::before, .chat-newline::after { content: ""; flex: 1; height: 1px; background: var(--bad-soft); }

.chat-msg { max-width: min(76%, 560px); align-self: flex-start; margin-top: 10px; display: grid; justify-items: start; }
.chat-msg.is-grouped { margin-top: 3px; }
.chat-msg.is-mine { align-self: flex-end; justify-items: end; }
.chat-msg__name { font-size: 12.5px; font-weight: 700; color: var(--muted); padding: 0 0 2px 12px; }
.chat-msg__line { display: flex; align-items: center; gap: 4px; position: relative; max-width: 100%; }
.chat-msg.is-mine .chat-msg__line { flex-direction: row-reverse; }
.chat-msg__bubble {
  position: relative; min-width: 0; padding: 8px 12px 6px; border-radius: 18px 18px 18px 6px;
  background: var(--paper-2); color: var(--ink); font-size: 16px; line-height: 1.42; overflow-wrap: anywhere;
}
.chat-msg.is-grouped .chat-msg__bubble { border-top-left-radius: 6px; }
.chat-msg.is-mine .chat-msg__bubble { background: var(--pine); color: var(--on-pine); border-radius: 18px 18px 6px 18px; }
.chat-msg.is-mine.is-grouped .chat-msg__bubble { border-top-right-radius: 6px; }
.chat-msg__text { white-space: normal; }
.chat-msg__time { display: block; text-align: right; font-size: 11px; opacity: .72; margin-top: 2px; }
.chat-msg__img { display: block; padding: 0; margin: 2px -6px 4px; border: 0; background: none; cursor: zoom-in; border-radius: 12px; overflow: hidden; }
.chat-msg__img img { display: block; max-width: min(300px, 62vw); max-height: 320px; width: auto; height: auto; object-fit: contain; border-radius: 12px; }
.chat-msg__img:focus-visible { outline: 3px solid var(--butter); outline-offset: 2px; }
.chat-msg.is-deleted .chat-msg__bubble { background: transparent; color: var(--muted); border: 1px dashed var(--line); }
.chat-msg__deleted { font-style: italic; font-size: 15px; }
.chat-msg.is-pending .chat-msg__bubble { opacity: .65; }
.chat-msg.is-failed .chat-msg__bubble { background: var(--bad-soft); color: var(--bad); }
.chat-retry { margin-top: 4px; border: 0; background: none; color: var(--bad); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; text-decoration: underline; }
.chat-msg__more {
  flex: none; width: 30px; height: 30px; border-radius: 50%; border: 0; background: transparent; color: var(--muted);
  display: grid; place-items: center; cursor: pointer; opacity: 0; transition: opacity .12s;
}
.chat-msg:hover .chat-msg__more, .chat-msg__more:focus-visible, .chat-msg__more[aria-expanded="true"] { opacity: 1; }
.chat-msg__more:hover { background: var(--paper-2); color: var(--ink); }
.chat-msg__more:focus-visible { outline: 2px solid var(--pine); }
@media (hover: none) { .chat-msg__more { opacity: .55; } }
.chat-pop { top: calc(100% + 4px); left: 0; }
.chat-msg.is-mine .chat-pop { left: auto; right: 0; }
.chat-pop__reacts { display: flex; gap: 2px; padding: 2px 2px 6px; border-bottom: 1px solid var(--line); margin-bottom: 4px; }
.chat-pop__reacts button { width: 42px; height: 42px; border-radius: 50%; border: 0; background: none; font-size: 22px; cursor: pointer; line-height: 1; }
.chat-pop__reacts button:hover, .chat-pop__reacts button:focus-visible { background: var(--paper-2); outline: none; transform: scale(1.08); }
.chat-pop__reacts button.is-mine { background: var(--pine-soft); }
.chat-reacts { display: flex; flex-wrap: wrap; gap: 4px; margin-top: -4px; padding: 0 8px; position: relative; z-index: 1; }
.chat-react {
  display: inline-flex; align-items: center; gap: 3px; padding: 2px 8px; border-radius: 999px; font: inherit; font-size: 13px; font-weight: 700;
  background: var(--surface); border: 1px solid var(--line); color: var(--ink); cursor: pointer; box-shadow: 0 1px 2px rgba(20, 12, 34, .08);
}
.chat-react.is-mine { border-color: var(--pine); background: var(--pine-soft); }
.chat-receipt { font-size: 12px; color: var(--muted); padding: 2px 6px 0; }
.chat-msg__nojs { display: inline; }
.chat.is-js .chat-msg__nojs { display: none; }
.linkbtn { border: 0; background: none; padding: 2px 6px; font: inherit; font-size: 12.5px; color: var(--muted); text-decoration: underline; cursor: pointer; }

.chat-typing { display: flex; align-items: center; gap: 8px; margin: 10px 0 4px; font-size: 13.5px; color: var(--muted); }
.chat-typing[hidden] { display: none; }
.chat-typing__dots { display: inline-flex; gap: 3px; padding: 8px 10px; border-radius: 14px; background: var(--paper-2); }
.chat-typing__dots i { width: 6px; height: 6px; border-radius: 50%; background: var(--muted); animation: chat-dot 1.2s infinite ease-in-out; }
.chat-typing__dots i:nth-child(2) { animation-delay: .15s; }
.chat-typing__dots i:nth-child(3) { animation-delay: .3s; }
@keyframes chat-dot { 0%, 60%, 100% { transform: translateY(0); opacity: .45; } 30% { transform: translateY(-3px); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .chat-typing__dots i { animation: none; } }

.chat-pane { position: relative; }
.chat-pill {
  position: absolute; left: 50%; transform: translateX(-50%); bottom: 118px; z-index: 5;
  display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; border: 0;
  background: var(--pine); color: var(--on-pine); font: inherit; font-size: 14px; font-weight: 700; cursor: pointer;
  box-shadow: 0 8px 20px -8px rgba(20, 12, 34, .5);
}
.chat-pill[hidden] { display: none; }
.chat-blocked { margin: 10px 16px; }

.chat-compose { border-top: 1px solid var(--line); background: var(--surface); padding: 10px 14px 8px; }
.chat-compose[hidden] { display: none; }
.chat-compose__row { display: flex; align-items: flex-end; gap: 8px; }
.chat-compose textarea {
  flex: 1; min-width: 0; min-height: 44px; max-height: 180px; resize: none; overflow-y: auto; font: inherit; font-size: 16px; line-height: 1.4;
  color: var(--ink); background: var(--paper); border: 1.5px solid var(--line); border-radius: 22px; padding: 10px 16px;
}
.chat-compose textarea:focus { outline: none; border-color: var(--pine); box-shadow: 0 0 0 3px var(--pine-soft); }
.chat-compose__attach { position: relative; flex: none; width: 44px; height: 44px; color: var(--muted); overflow: hidden; }
.chat-compose__attach input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.chat-compose__attach:focus-within { outline: 3px solid var(--pine-soft); border-color: var(--pine); color: var(--pine); }
.chat-compose__send { flex: none; height: 44px; border-radius: 22px; display: inline-flex; align-items: center; gap: 6px; }
.chat-compose__preview { display: flex; align-items: center; gap: 10px; padding: 6px; margin-bottom: 8px; border-radius: var(--r-md); background: var(--paper-2); font-size: 14px; }
.chat-compose__preview[hidden] { display: none; }
.chat-compose__preview img { width: 52px; height: 52px; object-fit: cover; border-radius: 10px; }
.chat-compose__preview span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
.chat-hint { font-size: 12.5px; margin: 6px 4px 0; }

.chat-placeholder { flex: 1; display: grid; place-content: center; justify-items: center; gap: 10px; text-align: center; padding: 24px; }
.chat-placeholder .paws img { width: 46px; }

.chat-picker { padding: 14px 16px; overflow-y: auto; flex: 1; }
.chat-picker__list { list-style: none; margin: 8px 0 0; padding: 0; }
.chat-picker__list form { margin: 0; }
.chat-picker__item { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px; border: 0; border-radius: var(--r-md); background: none; font: inherit; color: var(--ink); text-align: left; cursor: pointer; }
.chat-picker__item:hover, .chat-picker__item:focus-visible { background: var(--paper-2); outline: none; }
.chat-picker__item > span:last-child { display: grid; }
.chat-picker__item .muted { font-size: 13.5px; }

.chat-dialog { border: 0; border-radius: var(--r-lg); padding: 22px; max-width: 420px; width: calc(100% - 32px); background: var(--surface); color: var(--ink); }
.chat-dialog::backdrop { background: rgba(14, 10, 22, .55); }
.chat-dialog h2 { margin-top: 0; }
.chat-toast {
  position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); opacity: 0; pointer-events: none; z-index: 60;
  padding: 10px 16px; border-radius: 999px; background: var(--ink); color: var(--paper); font-size: 14.5px; font-weight: 600;
  transition: opacity .2s, transform .2s; max-width: calc(100% - 32px);
}
.chat-toast.is-on { opacity: 1; transform: translate(-50%, 0); }

/* Mobil: egy panel látszik, vissza gombbal */
@media (max-width: 800px) {
  .chat-page { padding: 8px 8px 8px; }
  .chat { grid-template-columns: 1fr; height: calc(100dvh - 84px); min-height: 420px; gap: 0; }
  .chat--open .chat-side { display: none; }
  .chat:not(.chat--open) .chat-pane { display: none; }
  .chat-back { display: inline-grid; flex: none; }
  .chat-head { padding: 8px 10px; gap: 8px; }
  .chat-head .msg-avatar { display: none; }
  .chat-ctx { display: none; }
  .chat-scroll { padding: 10px 10px 4px; }
  .chat-msg { max-width: 86%; }
  .chat-compose { padding: 8px 8px 6px; }
  .chat-compose__sendlabel { display: none; }
  .chat-compose__send { width: 44px; padding: 0; justify-content: center; }
  .chat-hint { display: none; }
  .chat-pill { bottom: 74px; }
}
.show-chat { margin: 0 0 0 auto; flex: none; }
.show-result + .show-chat { margin-left: 8px; }
.chat-picker__name { display: flex; align-items: center; gap: 2px; }
.chat-picker__name .badge-row { margin-left: 4px; }

/* A partner neve és képe a profiljára visz (teljes nézet és kis ablak). */
.chat-head__name, .sdock__who { color: inherit; text-decoration: none; }
.chat-head__name:hover, .sdock__who:hover { text-decoration: underline; text-underline-offset: 3px; }
.chat-head__av { display: inline-flex; border-radius: 50%; }

/* assets/css/mod-chip.css */
/* Chipszám láthatósága (kedvenc oldala), chip alapján keresés (chip-kereses.php), születési adatok mezői. */

/* --- Születési adatok -------------------------------------------------------- */
.birth-unit { display: flex; align-items: center; gap: 8px; }
.birth-unit input { flex: 1 1 auto; min-width: 0; }
.birth-unit > span { color: var(--muted); font-weight: 600; }
.lit-birth { display: block; font-size: 14px; margin-top: 2px; }
.weight .dot--birth { fill: var(--pine); stroke: var(--surface); stroke-width: 2; }
.chip-chartnote { margin: 8px 0 0; font-size: 13.5px; }

/* --- Chipszám láthatósága kártya ------------------------------------------- */
.chipset__lead { margin: 0 0 12px; font-size: 15px; }
.chipset .privopts { margin-bottom: 12px; }
.chipset__notify { margin: 4px 0 14px; }
.chipset__notify span { display: grid; gap: 4px; }
.chipset__notify small { font-size: 13.5px; line-height: 1.45; }
.chipset__sub { font-size: 15px; margin: 18px 0 8px; }
.chipset__small { margin: 0; font-size: 14px; }
.chipset__log { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.chipset__log li { display: grid; gap: 2px; padding: 8px 10px; border-radius: var(--r-md); background: var(--paper-2); font-size: 14px; overflow-wrap: anywhere; }
.chipset__when { font-weight: 700; font-size: 13px; color: var(--muted); }

/* --- Chip alapján keresés ----------------------------------------------------- */
.chipq .layout-2 { margin-top: 18px; }
.chipq-input { font-variant-numeric: tabular-nums; letter-spacing: .06em; font-size: 18px; }
.chipq-result { display: flex; gap: 16px; align-items: flex-start; margin-top: 4px; }
.chipq-result h2 { margin: 0 0 6px; }
.chipq-result p { margin: 0 0 8px; }
.chipq-result > div { min-width: 0; flex: 1; }
.chipq-result__icon { flex: none; width: 48px; height: 48px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--good-soft); color: var(--good); }
.chipq-result__icon--none { background: var(--paper-2); color: var(--muted); }
.chipq-result--elveszett { border: 2px solid var(--lost, var(--bad)); }
.chipq-small { font-size: 14px; }
.chipq-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.chipq-steps, .chipq-how { margin: 6px 0 0; padding-left: 20px; display: grid; gap: 6px; font-size: 15px; }
.chipq-lost { display: grid; grid-template-columns: 140px 1fr; gap: 16px; align-items: start; width: 100%; }
.chipq-lost__photo { width: 140px; height: 140px; border-radius: var(--r-md); overflow: hidden; background: var(--paper-2); display: grid; place-items: center; }
.chipq-lost__photo img { width: 100%; height: 100%; object-fit: cover; }
.chipq-lost__photo img.placeholder { width: 50%; height: auto; object-fit: contain; opacity: .5; }
.chipq-eyebrow { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--bad); text-transform: uppercase; letter-spacing: .05em; font-size: 13px; }
.chipq-side h2 { font-size: 18px; margin-top: 0; }

@media (max-width: 560px) {
  .chipq-result { flex-direction: column; }
  .chipq-lost { grid-template-columns: 1fr; }
  .chipq-lost__photo { width: 100%; height: 200px; }
}

/* assets/css/mod-club.css */
/* Bundee Klub (club.php) */
.club { padding-top: 22px; padding-bottom: 48px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.club-hero { display: flex; gap: 24px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: clamp(20px, 3vw, 32px); background: linear-gradient(120deg, color-mix(in srgb, #3E9B7A 14%, var(--surface)), var(--surface) 65%); }
.club-hero h1 { margin: 6px 0 8px; font-size: clamp(1.6rem, 3.4vw, 2.3rem); }
.club-hero__tx { max-width: 640px; flex: 1 1 300px; min-width: 0; }
.club-hero > .club-status { max-width: 100%; min-width: 0; }
.club-hero__count { margin: 10px 0 0; font-size: 15px; }
.club-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: #2F7F63; }
.club-status { display: flex; gap: 12px; align-items: center; padding: 14px 18px; border-radius: var(--r-lg, 18px); background: var(--surface); border: 1px solid color-mix(in srgb, #3E9B7A 40%, var(--line)); }
.club-status strong, .club-status span, .club-status small { display: block; }
.club-status small { color: var(--muted); }
.club-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.club-grid > .card, .club-compare { padding: clamp(18px, 2.6vw, 26px); }
.club h2 { margin-top: 0; }
.club-amounts { border: 0; padding: 0; margin: 0 0 12px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.club-amount { position: relative; cursor: pointer; }
.club-amount input { position: absolute; opacity: 0; inset: 0; }
.club-amount > span { display: grid; gap: 2px; text-align: center; padding: 12px 6px; border-radius: 14px; border: 1.5px solid var(--line); background: var(--surface); }
.club-amount b { font-size: 17px; }
.club-amount small { color: var(--muted); font-size: 13px; }
.club-amount input:checked + span { border-color: #3E9B7A; background: color-mix(in srgb, #3E9B7A 12%, var(--surface)); box-shadow: 0 0 0 3px color-mix(in srgb, #3E9B7A 22%, transparent); }
.club-amount input:focus-visible + span { outline: 2px solid var(--pine); outline-offset: 2px; }
.club-preview { margin: 2px 0 10px; font-weight: 700; color: #2F7F63; min-height: 1.4em; }
.club-billing { margin: 6px 0 14px; }
.club-billing summary { cursor: pointer; font-weight: 700; margin-bottom: 8px; }
.club-small { font-size: 13px; margin: 8px 0 0; }
.club-perklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.club-perklist li { display: flex; gap: 12px; align-items: flex-start; }
.club-perklist strong { display: block; }
.club-perklist li > span:last-child { color: var(--muted); }
.club-perklist li > span:last-child strong { color: var(--ink); }
.club-perk__ic { flex: none; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: color-mix(in srgb, #3E9B7A 12%, var(--surface)); font-size: 20px; }
.club-table { width: 100%; border-collapse: collapse; min-width: 560px; }
.club-table th, .club-table td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: center; font-size: 15px; }
.club-table th[scope=row] { text-align: left; font-weight: 600; }
.club-table thead th { font-weight: 800; }
.club-table .is-club { background: color-mix(in srgb, #3E9B7A 8%, transparent); }
.club-table tfoot td { font-weight: 700; border-bottom: 0; }
.club-yes { color: #2F9E6E; font-weight: 800; }
.club-no { color: var(--muted); }
.table-scroll { overflow-x: auto; }
.club-voteform, .club-results { display: grid; gap: 8px; margin: 0 0 4px; padding: 0; list-style: none; }
.club-opt, .club-results li { position: relative; display: flex; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--line); overflow: hidden; cursor: pointer; }
.club-results li { cursor: default; }
.club-opt input { accent-color: #3E9B7A; position: relative; z-index: 1; }
.club-opt__tx, .club-opt__n, .club-results li > span:first-child { position: relative; z-index: 1; }
.club-opt__tx { flex: 1; font-weight: 600; }
.club-opt__n { font-weight: 800; color: var(--muted); }
.club-opt__bar { position: absolute; inset: 0 auto 0 0; width: var(--p, 0%); background: color-mix(in srgb, #3E9B7A 14%, transparent); pointer-events: none; }
.club-opt.is-mine { border-color: #3E9B7A; }
.club-voteform .btn { justify-self: start; margin-top: 4px; }
.club-wall__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.club-wall__list li { display: flex; gap: 10px; align-items: flex-start; }
.club-wall__list p { margin: 2px 0 0; color: var(--muted); font-size: 14px; }
.club-wall__list .badge-medal { vertical-align: -3px; }
.club-wallform { margin-top: 12px; }
.badge-medal--klub { flex: none; vertical-align: middle; }
@media (max-width: 900px) { .club-grid { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .club-amounts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Átláthatóság: összegyűlt, alapítványnak jár, átutalva, egyenleg */
.club-charity { margin-bottom: 18px; }
.club-charity__head { display: flex; gap: 18px; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; }
.club-charity__head > div:first-child { flex: 1 1 360px; min-width: 0; }
.club-charity__head h2 { margin: 2px 0 6px; }
.club-charity__head p { margin: 0; }
.club-charity__eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #3E9B7A; }
.club-org { flex: 0 1 340px; display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: var(--r-md, 14px); border: 1px solid var(--line); background: var(--surface); color: inherit; text-decoration: none; min-width: 0; }
a.club-org:hover { border-color: #3E9B7A; }
.club-org__ic { flex: none; width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: color-mix(in srgb, #3E9B7A 16%, transparent); font-size: 20px; }
.club-org > span:last-child { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.club-org small { font-size: 12px; color: var(--muted); }
.club-org strong { font-size: 16px; }
.club-org .muted { font-size: 13px; }
.club-kpis { list-style: none; margin: 18px 0 12px; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.club-kpis li { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: var(--r-sm, 10px); border: 1px solid var(--line); background: var(--surface); min-width: 0; }
.club-kpis span { font-size: 13px; color: var(--muted); }
.club-kpis strong { font-size: 24px; line-height: 1.15; font-variant-numeric: tabular-nums; }
.club-kpis small { font-size: 12px; color: var(--muted); }
.club-kpis .is-charity { border-color: color-mix(in srgb, #3E9B7A 45%, var(--line)); background: color-mix(in srgb, #3E9B7A 8%, var(--surface)); }
.club-kpis .is-charity strong { color: #2F8466; }
.club-kpis .is-balance strong { color: var(--pine); }
.club-progress { height: 10px; border-radius: 99px; background: var(--line); overflow: hidden; }
.club-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #3E9B7A, #6FC7A6); min-width: 4px; }
.club-payouts { margin-top: 12px; }
.club-payouts > summary { cursor: pointer; font-weight: 600; color: var(--pine); }
.club-table--pay td, .club-table--pay th { text-align: left; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .club-kpis .is-charity strong { color: #7FD3B3; } }
:root[data-theme="dark"] .club-kpis .is-charity strong { color: #7FD3B3; }

/* assets/css/mod-community.css */
/* Építsd velünk a Bundee-t (kozosseg-epitese.php) */
.cm-page { padding-bottom: 30px; }
.cm-hero { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 28px; align-items: center; padding: 34px 38px; border-radius: 28px; border: 1px solid var(--line);
  background: radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, #6FC7A6 24%, var(--surface)) 0%, var(--surface) 62%); }
.cm-hero h1 { margin: 4px 0 10px; font-size: clamp(32px, 4.4vw, 52px); line-height: 1.02; letter-spacing: -0.03em; }
.cm-hero__lead { margin: 0; font-size: 17.5px; line-height: 1.55; color: var(--muted); max-width: 56ch; }
.cm-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.cm-stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.cm-stats li { display: grid; padding: 14px 16px; border-radius: 18px; background: var(--surface); border: 1px solid var(--line); }
.cm-stats strong { font-family: var(--font-display); font-size: 30px; line-height: 1.1; letter-spacing: -0.02em; }
.cm-stats span { color: var(--muted); font-weight: 600; }

.cm-founder { display: flex; gap: 16px; align-items: flex-start; margin: 18px 0; }
.cm-founder h2 { margin: 0 0 4px; font-size: 20px; }
.cm-founder p { margin: 0 0 10px; }
.cm-founder > div { flex: 1; }
.cm-founder__seal { flex: none; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, #F6D58A, #E9A93C); color: #5B3B00; }
.cm-meter { height: 10px; border-radius: 999px; background: var(--paper-2); overflow: hidden; }
.cm-meter span { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #6FC7A6, var(--pine)); }
.chip.cm-founder-chip { background: linear-gradient(135deg, #F6D58A, #E9A93C); color: #5B3B00; }

.cm-section { margin-top: 28px; }
.cm-section__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 14px; }
.cm-section__head h2 { margin: 0 0 4px; }
.cm-section__head p { margin: 0; max-width: 68ch; }
.cm-sort { margin: 0; }
.cm-ideas-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; }
.cm-ideas { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.cm-idea { display: flex; gap: 14px; align-items: flex-start; }
.cm-vote__btn { display: grid; justify-items: center; gap: 2px; min-width: 56px; padding: 8px 6px; border-radius: 14px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; font-weight: 800; cursor: pointer; }
.cm-vote__btn:hover:not([disabled]) { border-color: var(--pine); color: var(--pine); }
.cm-vote__btn.is-on { background: var(--pine); border-color: var(--pine); color: var(--on-pine); }
.cm-vote__btn[disabled] { cursor: default; }
.cm-idea__body { min-width: 0; flex: 1; }
.cm-idea__body h3 { margin: 6px 0 4px; font-size: 18px; }
.cm-idea__meta { margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.cm-idea__text p { margin: 0 0 6px; }
.cm-idea__reply { margin: 6px 0; padding: 8px 12px; border-radius: 12px; background: var(--pine-soft); font-size: 14.5px; }
.cm-idea__by { margin: 4px 0 0; font-size: 13.5px; }
.cm-st--tervezzuk { background: var(--pine-soft); color: var(--pine); }
.cm-st--keszul { background: var(--warn-soft); color: var(--warn); }
.cm-st--kesz { background: var(--good-soft); color: var(--good); }
.cm-st--most_nem { background: var(--paper-2); color: var(--muted); }
.cm-newidea { position: sticky; top: 84px; }
.cm-newidea h3, .cm-apply h3 { margin: 0 0 10px; }

.cm-roles { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.cm-role { display: flex; flex-direction: column; gap: 8px; height: 100%; }
.cm-role > .btn, .cm-role > .chip { margin-top: auto; align-self: flex-start; }
.cm-role h3 { margin: 0; font-size: 17px; }
.cm-role p { margin: 0; font-size: 14px; }

.cm-role__ic { width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); }

.cm-invite { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 20px; align-items: center; }
.cm-invite h2 { margin: 0 0 6px; }
.cm-invite p { margin: 0 0 6px; }
.cm-invite__btns { display: flex; gap: 8px; margin-top: 8px; }

@media (max-width: 1100px) { .cm-roles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .cm-hero { grid-template-columns: minmax(0, 1fr); padding: 24px 20px; }
  .cm-ideas-layout { grid-template-columns: minmax(0, 1fr); }
  .cm-newidea { position: static; }
  .cm-invite { grid-template-columns: minmax(0, 1fr); }
  .cm-section__head { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 560px) { .cm-roles { grid-template-columns: minmax(0, 1fr); } }
/* Ajánló sáv a Közösség oldalon és a hírfolyam oldalsávjában */
.cm-promo { display: flex; align-items: center; gap: 14px; margin: 0 0 18px; color: inherit; text-decoration: none; border-color: color-mix(in srgb, #6FC7A6 45%, var(--line)); }
.cm-promo > span:nth-child(2) { display: grid; flex: 1; }
.cm-promo__ic { flex: none; width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: color-mix(in srgb, #6FC7A6 22%, var(--surface)); color: #2F8A68; }
.cm-promo__go { font-size: 26px; color: var(--muted); }
.cm-promo:hover { border-color: #6FC7A6; }
.srail__cm { margin: 0 0 10px; font-size: 14px; line-height: 1.45; }
/* Admin › Ötletek és önkéntesek */
.adm-cm { margin-bottom: 18px; }
.adm-cm__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.adm-cm__item { padding: 14px; border-radius: 16px; border: 1px solid var(--line); background: var(--surface); }
.adm-cm__top { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.adm-cm__text { margin: 8px 0; }
.adm-cm__text p { margin: 0 0 6px; }
.adm-cm__form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.adm-cm__form input[type="text"] { flex: 1; min-width: 200px; }

.cm-apply .btn[type=submit], .cm-newidea .btn[type=submit] { width: auto; justify-self: start; }
.cm-roles > .card, .cm-ideas > .card, .adm-cm__list > li { margin: 0; }
/* Önkéntesség: mit kapsz, mit takar a szerep, szabályok */
.cm-perks { margin: 0 0 14px; }
.cm-perks h3 { margin: 0 0 10px; }
.cm-perks__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.cm-perks__list li { display: grid; gap: 2px; padding: 12px 14px; border-radius: 16px; background: color-mix(in srgb, #6FC7A6 14%, var(--surface)); border: 1px solid color-mix(in srgb, #6FC7A6 35%, var(--line)); }
.cm-perks__list strong { font-size: 18px; }
.cm-perks__list span { font-size: 14px; color: var(--muted); }
.cm-perks__note { margin: 10px 0 0; font-size: 14px; }
.cm-role__more { font-size: 14px; }
.cm-role__more summary { cursor: pointer; font-weight: 700; color: var(--pine); }
.cm-role__more ul { margin: 6px 0; padding-left: 18px; display: grid; gap: 4px; }
.cm-role__more p { margin: 4px 0; }
.cm-rules { margin: 0 0 14px; }
.cm-rules summary { cursor: pointer; }
.cm-rules ul { margin: 10px 0 0; padding-left: 20px; display: grid; gap: 4px; }
.chip.cm-volunteer-chip { background: color-mix(in srgb, #6FC7A6 26%, var(--surface)); color: #23704F; }
@media (max-width: 900px) { .cm-perks__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.adm-cm__award { margin: 8px 0 0; }

/* assets/css/mod-contest.css */
/* Események: alfülek (Kiállítások, Fotópályázat) és a Bundee fotópályázat oldala (fotopalyazat.php). */
.ev-tabs { display: flex; gap: 6px; margin: 4px 0 18px; overflow-x: auto; scrollbar-width: none; }
.ev-tabs a { flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font-weight: 700; text-decoration: none; transition: background .15s, border-color .15s; }
.ev-tabs a:hover { border-color: var(--pine); color: var(--pine); }
.ev-tabs a.is-on:hover { color: var(--surface); }
.ev-tabs a.is-on { background: var(--ink); border-color: var(--ink); color: var(--surface); }
.ev-soon { padding: 2px 8px; border-radius: 999px; background: #F6E3B4; color: #7A5300; font-size: 11.5px; font-weight: 800; letter-spacing: .02em; }

.ct-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 32px; align-items: center; padding: 36px 40px; border-radius: 28px; border: 1px solid var(--line);
  background: radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, #F2B84B 22%, var(--surface)) 0%, var(--surface) 60%); overflow: hidden; }
.ct-hero h1 { margin: 4px 0 10px; font-size: clamp(34px, 4.6vw, 56px); line-height: 1; letter-spacing: -0.03em; }
.ct-hero__lead { margin: 0; font-size: 18px; line-height: 1.5; color: var(--muted); max-width: 46ch; }
.ct-hero__theme { margin: 18px 0 0; display: inline-flex; flex-direction: column; gap: 2px; padding: 10px 16px; border-radius: 16px; background: var(--surface); border: 1px solid var(--line); }
.ct-hero__theme span { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.ct-hero__theme strong { font-size: 20px; }
.ct-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.ct-hero__stack { position: relative; min-height: 330px; }
.ct-hero__stack img { position: absolute; object-fit: cover; border-radius: 18px; border: 6px solid #fff; box-shadow: var(--shadow-lift); }
.ct-hero__stack img:nth-child(1) { width: 50%; height: 310px; left: 2%; top: 14px; z-index: 2; transform: rotate(-4deg); object-position: 50% 35%; }
.ct-hero__stack img:nth-child(2) { width: 50%; height: 310px; right: 2%; top: 30px; transform: rotate(4deg); }
.ct-hero__stack img:nth-child(2) { object-position: 50% 28%; }

.ct-vote { margin-top: 34px; }
.ct-vote__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 14px; }
.ct-vote__head h2 { margin: 0 0 4px; }
.ct-vote__head p { margin: 0; max-width: 60ch; }
.ct-badge { flex: none; padding: 6px 12px; border-radius: 999px; background: #F6E3B4; color: #7A5300; font-weight: 800; font-size: 13px; }
.ct-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ct-entry { overflow: hidden; border-radius: 20px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-soft, 0 2px 10px rgba(0,0,0,.04)); }
.ct-entry figure { position: relative; margin: 0; aspect-ratio: 4 / 3; }
.ct-entry img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ct-entry__no { position: absolute; top: 10px; left: 10px; padding: 3px 9px; border-radius: 999px; background: rgba(20, 14, 30, .55); color: #fff; font-size: 12.5px; font-weight: 800; backdrop-filter: blur(6px); }
.ct-entry__body { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 14px; }
.ct-entry__body p { margin: 0; display: grid; min-width: 0; }
.ct-entry__body strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ct-entry__body .muted { font-size: 13.5px; }
.ct-heart { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; border: 1px solid var(--line); background: var(--paper-2); color: var(--muted); font: inherit; font-size: 13px; font-weight: 700; cursor: not-allowed; }
.ct-note { margin: 10px 0 0; font-size: 13px; }

.ct-how { margin-top: 36px; }
.ct-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ct-steps li { display: flex; gap: 14px; padding: 18px; border-radius: 20px; background: var(--surface); border: 1px solid var(--line); }
.ct-steps li > span { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--pine); color: var(--on-pine); font-weight: 800; }
.ct-steps p { margin: 4px 0 0; }
.ct-rules { margin: 16px 0 0; padding-left: 20px; color: var(--muted); display: grid; gap: 4px; }
.ct-notify { margin: 30px 0 10px; display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap; }
.ct-notify h2 { margin: 0 0 4px; }
.ct-notify p { margin: 0; }

@media (max-width: 900px) {
  .ct-hero { grid-template-columns: minmax(0, 1fr); padding: 26px 20px; }
  .ct-hero__stack { min-height: 260px; }
  .ct-hero__stack img:nth-child(1) { height: 230px; }
  .ct-hero__stack img:nth-child(2) { height: 230px; }
  .ct-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ct-steps { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  .ct-grid { grid-template-columns: minmax(0, 1fr); }
  .ct-vote__head { flex-direction: column; }
}
.ct-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ct-grid--two .ct-entry figure { aspect-ratio: 16 / 11; }
@media (max-width: 560px) { .ct-grid--two { grid-template-columns: minmax(0, 1fr); } }
/* Két kategória egymás mellett */
.ct-cats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.ct-cat { padding: 14px; border-radius: 24px; border: 1px solid var(--line); background: var(--surface); }
.ct-cat h3 { margin: 2px 4px 12px; display: flex; align-items: center; gap: 8px; font-size: 19px; }
.ct-cat h3 svg { color: var(--pine); }
.ct-grid--one { grid-template-columns: minmax(0, 1fr); }
.ct-grid--one .ct-entry { box-shadow: none; }
.ct-grid--one .ct-entry figure { aspect-ratio: 16 / 11; }
@media (max-width: 720px) { .ct-cats { grid-template-columns: minmax(0, 1fr); } }
/* Ha a fülsor nem fér ki, jobb oldalt elhalványul: látszik, hogy görgethető. */
@media (max-width: 760px) {
  .ev-tabs { padding-right: 28px; -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent); }
}

/* assets/css/mod-datepicker.css */
/* Dátumválasztó (assets/js/datepicker.js) */
.bdp { position: relative; display: block; }
.bdp > input[type="text"] { width: 100%; padding-right: 48px; font-variant-numeric: tabular-nums; }
.bdp__btn { position: absolute; top: 50%; right: 6px; transform: translateY(-50%); width: 38px; height: 38px; border: 0; border-radius: 10px; background: transparent; color: var(--pine); display: grid; place-items: center; cursor: pointer; }
.bdp__btn:hover, .bdp__btn[aria-expanded="true"] { background: var(--pine-soft); }
.bdp__btn:focus-visible { outline: 3px solid var(--pine); outline-offset: 1px; }
.bdp__pop { position: absolute; z-index: 60; top: calc(100% + 6px); left: 0; width: 312px; max-width: calc(100vw - 32px); padding: 12px; border-radius: 18px; background: var(--surface); border: 1px solid var(--line); box-shadow: 0 18px 40px -12px rgba(30, 20, 60, .35); color: var(--ink); }
.bdp__pop.is-up { top: auto; bottom: calc(100% + 6px); }
.bdp__head { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; }
.bdp__sel { flex: 1; min-width: 0; height: 36px; padding: 0 8px; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font-family: inherit; font-weight: 600; font-size: .95rem; line-height: 1; cursor: pointer; }
.bdp__sel:first-of-type { flex: 0 0 84px; }
.bdp__nav { flex: none; width: 34px; height: 36px; border: 0; border-radius: 10px; background: transparent; color: var(--ink); font-size: 1.4rem; line-height: 1; cursor: pointer; }
.bdp__nav:hover { background: var(--pine-soft); }
.bdp__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.bdp__dow { text-align: center; font-size: .75rem; font-weight: 700; color: var(--muted); padding: 4px 0 6px; }
.bdp__day { height: 38px; border: 0; border-radius: 10px; background: transparent; color: var(--ink); font-family: inherit; font-weight: 600; font-size: .95rem; line-height: 1; cursor: pointer; font-variant-numeric: tabular-nums; }
.bdp__day:hover:not([disabled]) { background: var(--pine-soft); }
.bdp__day.is-today { box-shadow: inset 0 0 0 1.5px var(--pine); }
.bdp__day.is-sel { background: var(--pine); color: var(--on-pine); }
.bdp__day[disabled] { color: var(--muted); opacity: .4; cursor: default; }
.bdp__day:focus-visible, .bdp__sel:focus-visible, .bdp__nav:focus-visible, .bdp__link:focus-visible { outline: 3px solid var(--pine); outline-offset: 1px; }
.bdp__foot { display: flex; justify-content: space-between; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line); }
.bdp__link { border: 0; background: none; color: var(--pine); font-family: inherit; font-weight: 700; font-size: .92rem; padding: 6px 8px; border-radius: 8px; cursor: pointer; }
.bdp__link:hover:not([disabled]) { background: var(--pine-soft); }
.bdp__link[disabled] { opacity: .4; cursor: default; }
/* A .field lenyíló- és mezőstílusa ne nyomja össze a naptár fejlécét */
.bdp .bdp__pop { width: 330px; font-weight: 500; }
.bdp .bdp__pop select.bdp__sel { width: auto; min-height: 38px; height: 38px; padding: 0 30px 0 10px; background-position: right 9px center; background-size: 14px 14px; font-size: .95rem; font-weight: 600; border-radius: 10px; }
.bdp .bdp__pop select.bdp__sel:first-of-type { flex: 0 0 92px; }

/* assets/css/mod-discover.css */
/* Felfedezés modul: örökbefogadás, tápajánló, kiállítások, tudástár */
.disc-small { font-size: 14px; }
.disc-gap { margin-top: 16px; }
.disc-h2 { margin: 32px 0 14px; font-size: 26px; }

/* Átláthatósági doboz */
.disc-trust { display: grid; grid-template-columns: 48px 1fr; gap: 14px; align-items: start; margin-bottom: 20px; }
.disc-trust h2 { font-size: 20px; margin-bottom: 4px; }
.disc-trust p { margin: 0 0 6px; }
.disc-trust__icon { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: var(--butter-soft); color: var(--good); }

/* Saját támogatások / előjegyzések */
.disc-mine { margin-bottom: 20px; }
.disc-rows { list-style: none; margin: 0; padding: 0; display: grid; }
.disc-rows li { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 0; border-bottom: 1px solid var(--line); }
.disc-rows li:last-child { border-bottom: 0; }
.disc-rows li > div { flex: 1; min-width: 180px; display: grid; }
.disc-rows li > div a { text-decoration: none; }
.disc-rows .muted { font-size: 14px; }

/* Haladásjelző */
.disc-progress { height: 8px; border-radius: 999px; background: var(--paper-2); overflow: hidden; margin: 6px 0 2px; }
.disc-progress span { display: block; height: 100%; border-radius: inherit; background: var(--paw-cat); }
.disc-progress--lg { height: 12px; }

/* Állat adatlap */
.disc-animal__media { aspect-ratio: 16 / 9; border-radius: var(--r-md); background: var(--paper-2); display: grid; place-items: center; overflow: hidden; margin-bottom: 16px; }
.disc-animal__media img { width: 100%; height: 100%; object-fit: cover; }
.disc-animal__media .placeholder { width: 88px; height: 88px; object-fit: contain; opacity: .7; }
.disc-choice { grid-template-columns: 1fr 1fr; }
.disc-choice--4 { grid-template-columns: repeat(2, 1fr); }
.disc-choice .choice__item span { padding: 10px 8px; font-size: 15px; }
[data-custom-field][hidden] { display: none; }

/* Tápajánló */
.disc-petpick { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.disc-petpick .chip { text-decoration: none; }
.disc-kcal { margin: 0 0 10px; font-weight: 600; color: var(--muted); }
.disc-kcal .price { color: var(--ink); margin-right: 4px; }
.disc-result .note { margin-top: 12px; }
.disc-result h3 { margin-top: 18px; font-size: 18px; }
.disc-tips { margin: 0; padding-left: 20px; display: grid; gap: 6px; font-size: 15px; }
.disc-coupons { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); gap: 16px; align-items: stretch; }
.disc-coupon { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.card + .card.disc-coupon { margin-top: 0; }
.disc-coupon h3 { margin: 0; font-size: 18px; line-height: 1.25; min-height: 2.5em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.disc-coupon__desc { min-height: 3em; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.disc-coupon__desc:empty { visibility: hidden; }
.disc-coupon__tags { display: inline-flex; gap: 6px; flex: 0 0 auto; }
.disc-coupon__breeder { align-self: flex-start; }
.disc-coupon__pro { padding: 2px 8px; font-size: 13px; line-height: 1.3; background: #FCEFCF; color: #9A6A00; }
.disc-coupon--pro { box-shadow: inset 0 3px 0 #E5A92B; }
.disc-coupon p { margin: 0; }
.disc-coupon__head { display: flex; gap: 8px; align-items: center; min-height: 26px; }
.disc-coupon__partner { font-weight: 700; font-size: 14px; color: var(--pine); margin-right: auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.disc-coupon__foot { margin-top: auto; padding-top: 8px; display: flex; flex-direction: column; gap: 10px; align-items: stretch; }
.disc-coupon__foot .coupon-code { display: flex; flex-wrap: nowrap; gap: 8px; align-items: center; }
.disc-coupon__foot .coupon-code .disc-code { flex: 1 1 auto; min-width: 0; text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.disc-coupon__foot > .btn { align-self: flex-start; }
.disc-code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 700; font-size: 16px; letter-spacing: .06em; padding: 6px 12px; border-radius: var(--r-sm); border: 1.5px dashed var(--pine); color: var(--pine); background: var(--pine-soft); user-select: all; }
.disc-sources { margin-top: 18px; }

/* Kiállítások */
.disc-shows { list-style: none; margin: 0; padding: 0 0 64px; display: grid; gap: 10px; }
.disc-show { display: grid; grid-template-columns: 64px 1fr auto; gap: 16px; align-items: center; padding: 14px 16px; border-radius: var(--r-lg); text-decoration: none; color: var(--ink); }
.disc-show:hover { color: var(--ink); }
.disc-show__date { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 16px; background: var(--pine-soft); color: var(--pine); line-height: 1; }
.disc-show__date strong { font-family: var(--font-display); font-size: 26px; }
.disc-show__date span { font-size: 13px; font-weight: 700; text-transform: uppercase; }
.disc-show__body { display: grid; gap: 2px; min-width: 0; }
.disc-show__body .muted { font-size: 14px; }

/* Tudástár */
.disc-kb { list-style: none; margin: 0; padding: 0 0 64px; display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.disc-kb__item { display: flex; gap: 14px; align-items: flex-start; padding: 16px; border-radius: var(--r-lg); text-decoration: none; color: var(--ink); height: 100%; }
.disc-kb__item:hover { color: var(--ink); }
.disc-kb__item > span:last-child { display: grid; gap: 4px; justify-items: start; }
.disc-kb__item strong { font-size: 17px; line-height: 1.3; }
.disc-kb__item .muted { font-size: 14px; }
.disc-article .prose h2 { font-size: 21px; }
.disc-article .prose ul { padding-left: 20px; }
.disc-article .prose li { margin-bottom: 6px; }
.disc-sourcelist { padding-left: 20px; font-size: 15px; }
.disc-sourcelist li { margin-bottom: 4px; word-break: break-word; }

@media (max-width: 900px) {
  .disc-keep-order > aside { order: 0; }
}
@media (max-width: 520px) {
  .disc-show { grid-template-columns: 52px 1fr; gap: 12px; }
  .disc-show__date { width: 52px; height: 52px; }
  .disc-show > .chip { display: none; }
  .disc-kb { grid-template-columns: 1fr; }
  .disc-trust { grid-template-columns: 1fr; }
}
.disc-list { list-style: none; margin: 0; padding: 0 0 64px; }
.disc-list > li { display: flex; }
.disc-list .tile { flex: 1; }
.card .price { margin: 4px 0 8px; }
@media (max-width: 520px) { .disc-list .tile__media { aspect-ratio: 16 / 9; } }

/* assets/css/mod-docs.css */
/* Dokumentumtár, egészségügyi összefoglaló, költségnapló (includes/modules/documents.php) */
.dv-ico { flex: none; vertical-align: -3px; }
.dv-small { font-size: 14px; }
.dv-nowrap { white-space: nowrap; }
.dv-mono { font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.dv-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 16px; align-items: start; padding-bottom: 64px; }
@media (max-width: 900px) { .dv-layout { grid-template-columns: minmax(0, 1fr); } }
.dv-layout > * { min-width: 0; }
.dv .card h2 { display: flex; align-items: center; gap: 8px; }

/* Szűrő */
.dv-filter { display: flex; gap: 8px; flex-wrap: wrap; }
.dv-filter a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font-weight: 600; font-size: 15px; text-decoration: none; }
.dv-filter a span { font-size: 12.5px; color: var(--muted); background: var(--paper-2); border-radius: 999px; padding: 1px 7px; }
.dv-filter a:hover { border-color: var(--pine); }
.dv-filter a.is-active { background: var(--pine); border-color: var(--pine); color: var(--on-pine); }
.dv-filter a.is-active span { background: rgba(255, 255, 255, .2); color: inherit; }

/* Dokumentumlista */
.dv-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.dv-doc { display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 14px 16px; }
.dv-doc__thumb { width: 76px; height: 76px; border-radius: var(--r-sm); overflow: hidden; background: var(--paper-2); display: grid; place-items: center; color: var(--pine); text-decoration: none; border: 1px solid var(--line); }
.dv-doc__thumb img { width: 100%; height: 100%; object-fit: cover; }
.dv-doc__thumb.is-pdf { align-content: center; gap: 2px; background: var(--bad-soft); color: var(--bad); }
.dv-doc__thumb.is-pdf span { font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.dv-doc__title { font-size: 17px; margin: 0 0 6px; line-height: 1.3; overflow-wrap: anywhere; }
.dv-doc__title a { color: var(--ink); text-decoration: none; }
.dv-doc__title a:hover { color: var(--pine); text-decoration: underline; }
.dv-doc__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0; font-size: 14px; color: var(--muted); }
.dv-doc__note { margin: 8px 0 0; font-size: 15px; color: var(--muted); overflow-wrap: anywhere; }
.dv-doc__actions { display: flex; flex-direction: column; gap: 6px; align-items: stretch; }
.dv-doc__actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.dv-doc__actions form { margin: 0; }
.dv-doc__actions form .btn { width: 100%; }
.dv-danger:hover { color: var(--bad); border-color: var(--bad); }
@media (max-width: 560px) {
  .dv-doc { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; padding: 12px; }
  .dv-doc__thumb { width: 64px; height: 64px; }
  .dv-doc__actions { grid-column: 1 / -1; flex-direction: row; }
  .dv-doc__actions > * { flex: 1; }
}

/* Kategóriacímkék */
.dv-cat { font-size: 13px; padding: 2px 9px; }
.dv-cat--lelet { background: #E6F0FB; color: #1F5C99; }
.dv-cat--rontgen { background: #EFEAF7; color: #55407E; }
.dv-cat--oltasi { background: var(--good-soft); color: var(--good); }
.dv-cat--szamla { background: var(--warn-soft); color: var(--warn); }
.dv-cat--torzskonyv { background: #F7E8F1; color: #8A2F65; }
.dv-cat--biztositas { background: #E4F4F6; color: #1D6D78; }
:root[data-theme="dark"] .dv-cat--lelet { background: #1B2D44; color: #A9CBF2; }
:root[data-theme="dark"] .dv-cat--rontgen { background: #2E2640; color: #C2B0EA; }
:root[data-theme="dark"] .dv-cat--torzskonyv { background: #3A2232; color: #F0B5D7; }
:root[data-theme="dark"] .dv-cat--biztositas { background: #173338; color: #9BD9E1; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .dv-cat--lelet { background: #1B2D44; color: #A9CBF2; }
  :root:not([data-theme="light"]) .dv-cat--rontgen { background: #2E2640; color: #C2B0EA; }
  :root:not([data-theme="light"]) .dv-cat--torzskonyv { background: #3A2232; color: #F0B5D7; }
  :root:not([data-theme="light"]) .dv-cat--biztositas { background: #173338; color: #9BD9E1; }
}

/* Üres állapot, keret, ajánló */
.dv-empty { text-align: center; padding: 40px 24px; display: grid; justify-items: center; gap: 6px; }
.dv-empty .dv-ico { color: var(--pine); }
.dv-empty h1, .dv-empty h2 { margin: 6px 0 0; }
.dv-empty p { max-width: 46ch; margin: 0 0 8px; }
.dv-meter { height: 10px; border-radius: 999px; background: var(--paper-2); overflow: hidden; margin: 8px 0; }
.dv-meter span { display: block; height: 100%; border-radius: inherit; background: var(--pine); }
.dv-quota p { margin: 0; }
.dv-upsell { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 14px 16px; border-radius: var(--r-md); background: linear-gradient(135deg, #fff7e8, #fdecc9); border: 1px solid #efd39b; color: #5e3a0c; margin-bottom: 16px; }
.dv-upsell p { margin: 0; flex: 1 1 260px; }
.dv aside .dv-upsell { margin-bottom: 0; }
:root[data-theme="dark"] .dv-upsell { background: #33270f; border-color: #6b5222; color: #F6CE8C; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .dv-upsell { background: #33270f; border-color: #6b5222; color: #F6CE8C; } }

/* Egészségügyi összefoglaló */
.dv-hs-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: 16px; align-items: start; padding-bottom: 64px; }
.dv-hs-layout > .dv-hs:only-child { grid-column: 1 / -1; max-width: 860px; }
@media (max-width: 900px) { .dv-hs-layout { grid-template-columns: minmax(0, 1fr); } }
.dv-hs-layout > * { min-width: 0; }
.dv-hs { padding: 28px; }
.dv-hs__head { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding-bottom: 18px; border-bottom: 2px solid var(--pine); }
.dv-hs__head h2 { font-size: 34px; margin: 2px 0; }
.dv-hs__head p { margin: 0; }
.dv-hs__eyebrow { font-size: 12.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pine); }
.dv-hs__photo { width: 112px; height: 112px; border-radius: 18px; object-fit: cover; flex: none; }
.dv-hs__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 20px; margin: 20px 0 6px; }
.dv-hs__facts div { min-width: 0; }
.dv-hs__facts dt { font-size: 13px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.dv-hs__facts dd { margin: 2px 0 0; font-weight: 600; overflow-wrap: anywhere; }
@media (max-width: 640px) {
  .dv-hs { padding: 18px; }
  .dv-hs__facts { grid-template-columns: 1fr 1fr; }
  .dv-hs__head h2 { font-size: 28px; }
  .dv-hs__photo { width: 84px; height: 84px; }
}
.dv-hs__section { margin-top: 22px; }
.dv-hs__section h3 { font-size: 17px; margin: 0 0 8px; }
.dv-hs__section p { margin: 0; }
.dv-hs__alert { padding: 12px 16px; border-radius: var(--r-md); background: var(--warn-soft); border-left: 4px solid var(--warn); }
.dv-hs__alert h3 { color: var(--warn); }
.dv-table-wrap { overflow-x: auto; }
.dv-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.dv-table th { text-align: left; font-size: 13px; color: var(--muted); font-weight: 700; padding: 6px 10px 6px 0; border-bottom: 1px solid var(--line); }
.dv-table td { padding: 8px 10px 8px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.dv-table tr:last-child td { border-bottom: 0; }
.dv-hs__docs { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.dv-hs__docs li { display: grid; grid-template-columns: 165px minmax(0, 1fr) auto; gap: 10px; align-items: center; font-size: 15px; }
.dv-hs__docs a { overflow-wrap: anywhere; }
@media (max-width: 560px) { .dv-hs__docs li { grid-template-columns: 1fr auto; } .dv-hs__docs li > span:first-child { grid-column: 1 / -1; font-size: 13px; color: var(--muted); } }
.dv-hs__foot { margin-top: 26px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 13px; }
.dv-link { display: grid; gap: 8px; margin-bottom: 14px; padding: 12px; border-radius: var(--r-md); background: var(--good-soft); }
.dv-link input { font-size: 14px; }
.dv-check { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; }
.dv-check input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--pine); }
.dv-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.dv-links li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.dv-links li:last-child { border-bottom: 0; padding-bottom: 0; }
.dv-links li div { display: grid; }
.dv-links form { margin: 0; }
.dv-print-msg { display: none; }

/* Költségnapló */
.dv-toolbar { display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; margin-bottom: 16px; }
.dv-scroll { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.dv-scroll a { white-space: nowrap; }
.dv-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
@media (max-width: 760px) { .dv-stats { grid-template-columns: 1fr; } }
.dv-stats .card { margin: 0; }
.dv-stat { display: grid; gap: 4px; }
.dv-stat__label { font-size: 14px; font-weight: 700; color: var(--muted); }
.dv-stat__value { font-family: var(--font-display); font-size: 30px; line-height: 1.1; }
.dv-stat__hint { font-size: 14px; color: var(--muted); }
.dv-bars { width: 100%; height: auto; display: block; }
.dv-bars text { fill: var(--muted); font-size: 13px; font-family: var(--font-body); font-weight: 600; }
.dv-bars .dv-bars__val { fill: var(--ink); font-weight: 700; }
.dv-bars__base { stroke: var(--line); }
.dv-bars__bar { fill: var(--pine-soft); stroke: var(--pine); stroke-width: 1.5; }
.dv-bars__bar.is-current, .dv-bars__bar:hover { fill: var(--pine); }
.dv-cats { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.dv-cats li { display: grid; grid-template-columns: minmax(110px, 160px) minmax(0, 1fr) auto; gap: 12px; align-items: center; font-size: 15px; }
.dv-cats__label { font-weight: 600; }
.dv-cats__bar { height: 12px; border-radius: 999px; background: var(--paper-2); overflow: hidden; }
:where(.dv-cats__bar) span { display: block; height: 100%; border-radius: inherit; background: var(--pine); }
.dv-cats__val { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 480px) { .dv-cats li { grid-template-columns: minmax(0, 1fr) auto; } .dv-cats__bar { grid-column: 1 / -1; grid-row: 2; } }
.dv-sub { font-size: 16px; margin: 22px 0 10px; }
.dv-exp { list-style: none; margin: 0; padding: 0; }
.dv-exp li { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.dv-exp li:last-child { border-bottom: 0; }
.dv-exp__dot { width: 12px; height: 12px; border-radius: 50%; }
.dv-exp__main { display: grid; gap: 2px; min-width: 0; }
.dv-exp__main .dv-small { overflow-wrap: anywhere; }
.dv-exp__amount { font-variant-numeric: tabular-nums; white-space: nowrap; }
.dv-exp form { margin: 0; }
.dv-exp__del { width: 34px; height: 34px; color: var(--muted); }
.dv-exp__del:hover { color: var(--bad); }
.dv-exp--allatorvos { background: #55407E; }
.dv-exp--gyogyszer { background: #D2645A; }
.dv-exp--tap { background: #3E9C7A; }
.dv-exp--felszereles { background: #4F86C6; }
.dv-exp--kozmetika { background: #D58BB5; }
.dv-exp--panzio { background: #D9A13B; }
.dv-exp--biztositas { background: #3A9AA6; }
.dv-exp--egyeb { background: #8E9CB5; }

/* Nyomtatás (összefoglaló) */
@media print {
  .dv-noprint, .topbar, .footer, .protobar, .flashes, .skip { display: none !important; }
  .page-hs body, body.page-hs { background: #fff !important; color: #000 !important; }
  .page-hs .container { max-width: none; padding: 0; }
  .page-hs .dv-hs-layout { display: block; padding: 0; }
  .page-hs .dv-hs { box-shadow: none !important; border: 0 !important; background: #fff !important; padding: 0 !important; max-width: none; }
  .page-hs .dv-hs__facts { grid-template-columns: repeat(3, 1fr); }
  .page-hs .dv-hs__alert { background: #fff6e0 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .page-hs .dv-hs__section { break-inside: avoid; }
  .page-hs .dv-table tr { break-inside: avoid; }
  .page-hs a { color: #000; text-decoration: none; }
  .page-hs .chip { border: 1px solid #ccc; background: #fff !important; color: #333 !important; }
  .page-hs .weight { max-height: 48mm; width: auto; max-width: 100%; display: block; }
  .page-hs .weight .area { fill: #ece7f4; }
  .page-hs .weight .line, .page-hs .weight .dot { stroke: #55407E; }
  body.dv-print-locked main > * { display: none !important; }
  body.dv-print-locked .dv-print-msg { display: block !important; font-size: 18px; padding: 40px 0; }
}

/* assets/css/mod-dropzone.css */
/* Kisebb, ráhúzható fotófeltöltő doboz (assets/js/dropzone.js alakítja át a fájlmezőket). */
.dropzone--compact { display: flex; align-items: center; justify-content: flex-start; gap: 14px; min-height: 84px; padding: 14px 16px; text-align: left; }
.dropzone--compact .dropzone__text { display: grid; gap: 2px; min-width: 0; }
.dropzone--compact .dropzone__cta { font-weight: 700; font-size: 16px; }
.dropzone--compact .dropzone__hint { color: var(--muted, inherit); font-size: 14px; overflow-wrap: anywhere; }
.dropzone--compact::before { content: ""; flex: 0 0 auto; width: 40px; height: 40px; border-radius: 12px; background: var(--pine-soft) center / 22px no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23625093' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4M7 9l5-5 5 5'/%3E%3Cpath d='M4 16v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3'/%3E%3C/svg%3E"); }
.dropzone--compact.has-file::before { display: none; }
.dropzone__thumb { flex: 0 0 auto; width: 56px; height: 56px; border-radius: 12px; overflow: hidden; background: var(--paper); }
.dropzone__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dropzone--compact.has-file { border-style: solid; border-color: var(--pine); }
.dropzone.is-error { border-color: #c0392b; }
.dropzone.is-error .dropzone__hint { color: #c0392b; }
@media (hover: none) { .dropzone--compact .dropzone__cta { font-size: 15px; } }
/* Kiválasztott fotók előnézete (album): több körben is lehet hozzáadni, egyenként kivehetők */
.dz-picked { list-style: none; margin: 10px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 8px; }
.dz-picked[hidden] { display: none; }
.dz-picked li { position: relative; aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: var(--paper-2); }
.dz-picked img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dz-picked__x { position: absolute; top: 4px; right: 4px; width: 26px; height: 26px; border-radius: 50%; border: 0; background: rgba(23, 18, 31, .7); color: #fff; font-size: 16px; line-height: 1; cursor: pointer; display: grid; place-items: center; }
.dz-picked__x:hover { background: var(--bad); }

/* assets/css/mod-eu.css */
/* EU-s azonosítás és regisztráció: kártya, jelvény, tenyésztői sor, rokonsági figyelmeztetés */
.eut__lead { margin: 0 0 10px; font-size: 14px; }
.eut__src { margin: 12px 0 0; font-size: 12px; }
.eut-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.eut-check { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 10px; align-items: start; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r-sm, 10px); background: var(--surface); }
.eut-check > span:nth-child(2) { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.eut-check small { font-size: 13px; overflow-wrap: anywhere; }
.eut-check__ic { width: 24px; height: 24px; border-radius: 50%; border: 2px solid var(--line); display: grid; place-items: center; font-weight: 700; font-size: 13px; color: #fff; }
.eut-check.is-done .eut-check__ic { background: var(--good); border-color: var(--good); }
.eut-edit { margin-top: 12px; }
.eut-edit > summary { cursor: pointer; font-weight: 600; color: var(--pine); }
.eut-form { margin-top: 10px; }
.eut-badge { font-size: 12px; padding: 2px 8px; margin-top: 4px; align-self: flex-start; }
.eut-badge--missing { color: var(--muted); }
.eut-kline { display: block; font-size: 13px; color: var(--warn); margin-top: 2px; }
.eut-kline.is-ok { color: var(--good); }
.eut-kline a { font-weight: 600; }
.eut-notice { margin-top: 14px; padding: 12px 14px; border-radius: var(--r-sm, 10px); background: color-mix(in srgb, var(--pine) 8%, var(--surface)); border: 1px solid color-mix(in srgb, var(--pine) 25%, var(--line)); font-size: 14px; line-height: 1.5; }
.eut-mating { margin: 0 0 16px; padding: 12px 14px; border-radius: var(--r-sm, 10px); border: 1px solid color-mix(in srgb, var(--warn) 45%, var(--line)); background: color-mix(in srgb, var(--warn) 10%, var(--surface)); font-size: 14px; }
.eut-mating.is-sure { border-color: color-mix(in srgb, var(--bad) 50%, var(--line)); background: color-mix(in srgb, var(--bad) 9%, var(--surface)); }
.eut-mating ul { margin: 6px 0; padding-left: 18px; }
.eut-mating p { margin: 4px 0 0; font-size: 13px; }
.ft-card .eut-mating { margin: 0 0 12px; }

/* assets/css/mod-family-tree.css */
/* Családfa (csaladfa.php, kedvenc és alom kártya, poszter) és társgazdák */

.ft { --w0: 160px; --w: 188px; --wd: 158px; --gap: 14px; --ftline: color-mix(in srgb, var(--muted) 45%, transparent); position: relative; }
.ft--compact { --w: 196px; }
.ft-gens span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 6px; box-sizing: border-box; }
.ft-scroll { overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; padding: 4px 2px 10px; scrollbar-width: thin; }
.ft-scroll:focus-visible { outline: 2px solid var(--pine); outline-offset: 2px; border-radius: var(--r-sm); }
.ft-canvas { width: max-content; min-width: 100%; }
.ft-hint { display: none; margin: 4px 0 0; font-size: 13px; }

.ft-gens { display: flex; margin-bottom: 6px; }
.ft-gens span { flex: none; width: calc(var(--w) + var(--gap) * 2); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.ft-gens span:first-child { width: calc(var(--w0) + var(--gap) * 2); }
.ft-gens .ft-gens__g4, .ft-gens .ft-gens__g5 { width: calc(var(--wd) + var(--gap) * 2); }

/* Ágak és vonalak: a két szülő ága egymás alatt; a függőleges vonal a két szülő közepét köti össze. */
.ft-branch { display: flex; align-items: center; }
.ft-parents { position: relative; display: flex; flex-direction: column; justify-content: center; padding-left: var(--gap); }
.ft-parents::before { content: ''; position: absolute; left: 0; top: 50%; width: var(--gap); border-top: 2px solid var(--ftline); }
.ft-parents > .ft-branch { position: relative; padding: 4px 0 4px var(--gap); }
.ft-parents > .ft-branch::before { content: ''; position: absolute; left: 0; top: 50%; width: var(--gap); border-top: 2px solid var(--ftline); }
.ft-parents > .ft-branch::after { content: ''; position: absolute; left: 0; border-left: 2px solid var(--ftline); }
.ft-parents > .ft-branch:first-child::after { top: 50%; bottom: 0; }
.ft-parents > .ft-branch:last-child::after { top: 0; bottom: 50%; }

/* Csomópont */
.ft-node { flex: none; width: var(--w); display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: var(--r-md); background: var(--surface); border: 1px solid var(--line); border-left: 4px solid var(--slate); color: var(--ink); text-decoration: none; line-height: 1.25; box-shadow: 0 1px 2px rgba(0, 0, 0, .04); }
.ft-node--f { border-left-color: var(--blush); }
.ft-node--root { width: var(--w0); border-left-color: var(--pine); background: var(--pine-soft); flex-direction: column; text-align: center; padding: 12px 10px; gap: 8px; }
a.ft-node:hover { border-color: var(--pine); border-left-width: 4px; }
a.ft-node:focus-visible { outline: 2px solid var(--pine); outline-offset: 2px; }
.ft-node.is-sel { outline: 3px solid var(--pine); outline-offset: 1px; }
.ft-node--empty { background: transparent; border-style: dashed; border-left-style: solid; box-shadow: none; }
.ft-node__txt { display: grid; gap: 2px; min-width: 0; }
.ft-node__role { font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.ft-node__name { font-size: 15px; font-weight: 700; overflow-wrap: anywhere; }
.ft-node__meta { font-size: 12.5px; color: var(--muted); overflow-wrap: anywhere; }
.ft-node__none { font-size: 14px; color: var(--muted); }
.ft--edit .ft-node--empty .ft-node__none { color: var(--pine); font-weight: 700; }
.ft-node__bundee { font-size: 12px; font-weight: 700; color: var(--pine); }
.ft-node__titles { display: flex; flex-wrap: wrap; gap: 3px; }
.ft-title { font-size: 11px; font-weight: 800; letter-spacing: .03em; padding: 1px 6px; border-radius: 999px; background: var(--warn-soft); color: var(--warn); }
.ft-node__pic { flex: none; width: 44px; height: 44px; border-radius: 50%; overflow: hidden; background: var(--paper-2); display: grid; place-items: center; }
.ft-node__pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ft-node__pic img.placeholder { object-fit: contain; padding: 8px; }
.ft-node__pic--none { font-family: var(--font-display); font-weight: 800; color: var(--muted); font-size: 18px; }
.ft-node--root .ft-node__pic { width: 72px; height: 72px; }
.ft-node--root .ft-node__name { font-family: var(--font-display); font-size: 18px; }
.ft-node--g1 .ft-node__pic { width: 52px; height: 52px; }
.ft-node--g1 .ft-node__name { font-size: 16px; }
.ft-node--g4, .ft-node--g5 { width: var(--wd); padding: 5px 8px; gap: 8px; }
.ft-node--g4 .ft-node__pic, .ft-node--g5 .ft-node__pic { width: 30px; height: 30px; font-size: 13px; }
.ft-node--g4 .ft-node__name, .ft-node--g5 .ft-node__name { font-size: 13.5px; }
.ft-node--g5 .ft-node__role { display: none; }
.ft--d4 .ft-parents > .ft-branch, .ft--d5 .ft-parents > .ft-branch { padding-top: 3px; padding-bottom: 3px; }

/* Kártyák */
.ft-card .ft { margin-top: 2px; }
.ft-card__lead { margin: 0 0 12px; }
.ft-card__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.ft-upsell { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 14px 0 0; padding: 12px 14px; border-radius: var(--r-md); background: var(--warn-soft); color: var(--ink); font-size: 15px; }
.ft-upsell > svg { flex: none; color: var(--warn); }
.ft-upsell > span { flex: 1 1 240px; }
.ft-small { font-size: 14px; margin: 0; font-weight: 400; }

/* Szerkesztő */
.ft-page .pagehead p.muted { margin: 4px 0 0; }
.ft-editor { margin-bottom: 18px; scroll-margin-top: 90px; }
.ft-editor__head h2 { margin: 0 0 2px; }
.ft-editor__head p { margin: 0 0 12px; }
.ft-editor .note { margin: 0 0 14px; }
.ft-form { display: grid; gap: 14px; }
.ft-photo { display: flex; gap: 12px; align-items: center; }
.ft-photo__prev { flex: none; width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: var(--paper-2); border: 1px dashed var(--line); }
.ft-photo__prev img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ft-photo__ctl { display: grid; gap: 6px; min-width: 0; }
.ft-photo__ctl input[type=file] { max-width: 100%; font-size: 14px; }
.ft-link { border: 1px solid var(--line); border-radius: var(--r-md); padding: 10px 14px; }
.ft-link summary { cursor: pointer; font-weight: 700; }
.ft-link[open] summary { margin-bottom: 8px; }
.ft-link .grid-2 { margin-top: 10px; }
.ft-form__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.ft-del { margin-top: 10px; }
.ft-wrap { margin-bottom: 18px; }
.ft-listcard { margin-bottom: 40px; }
.ft-listcard summary { cursor: pointer; }
.ft-list h3 { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin: 18px 0 8px; }
.ft-list__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; }
.ft-list__grid li { display: grid; gap: 3px; }
.ft-list__grid .ft-node { width: auto; }
.ft-list__path { color: var(--muted); font-size: 12.5px; padding-left: 6px; }

@media (max-width: 720px) {
  .ft { --w0: 124px; --w: 168px; --wd: 148px; --gap: 12px; }
  .ft--d1 { --w: 176px; }
  .ft-hint { display: block; }
  .ft--d1 .ft-hint { display: none; }
  .ft-node { padding: 7px 8px; gap: 8px; }
  .ft-node__pic { width: 38px; height: 38px; }
  .ft-node--root .ft-node__pic { width: 56px; height: 56px; }
  .ft-node--g1 .ft-node__pic { width: 42px; height: 42px; }
  .ft-node--root .ft-node__name { font-size: 16px; }
  .ft-gens span { font-size: 11px; }
  .ft-editor .grid-2 { grid-template-columns: 1fr; }
  /* A kedvenc adatlapján mobilon csak a szülők; a teljes fa a Családfa oldalon. */
  .ft--compact { --w0: 112px; --w: 162px; }
  .ft--compact .ft-node--g1 + .ft-parents, .ft--compact .ft-gens span:nth-child(n+3) { display: none; }
  .ft--compact .ft-hint { display: none; }
}

/* --- Poszter ------------------------------------------------------------------ */
.ft-poster-page { margin: 0; background: #e9e6ee; color: #141118; font-family: var(--font-body); }
.ft-poster__bar { position: sticky; top: 0; z-index: 3; display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; justify-content: center; padding: 12px 16px; background: #221D2E; color: #fff; font-size: 15px; }
.ft-poster__bar a, .ft-poster__bar button { font: inherit; font-weight: 700; color: #221D2E; background: #fff; border: 0; border-radius: 999px; padding: 9px 16px; text-decoration: none; cursor: pointer; }
.ft-poster__bar a.ghost { background: transparent; color: #fff; border: 1.5px solid rgba(255, 255, 255, .6); }
.ft-poster__bar span { opacity: .8; font-size: 14px; }
.ft-sheet { flex: none; width: 297mm; height: 210mm; margin: 18px auto; background: #fff; padding: 10mm 12mm 8mm; box-sizing: border-box; display: grid; grid-template-rows: auto 1fr auto; gap: 4mm; overflow: hidden; box-shadow: 0 20px 50px -20px rgba(0, 0, 0, .35); }
.ft-sheet__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 10mm; border-bottom: 2px solid #55407E; padding-bottom: 3mm; }
.ft-sheet__eyebrow { margin: 0; font-size: 11pt; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #55407E; }
.ft-sheet__head h1 { margin: 0; font-family: var(--font-display); font-size: 28pt; line-height: 1.05; color: #221D2E; }
.ft-sheet__facts { margin: 1mm 0 0; font-size: 10pt; color: #4b4458; }
.ft-sheet__brand { display: flex; align-items: center; gap: 6px; font-family: var(--font-display); font-weight: 800; font-size: 14pt; color: #55407E; }
.ft-sheet__brand img { width: 28px; height: 28px; }
.ft-sheet__foot { font-size: 8.5pt; color: #6b6478; text-align: center; }
.ft--print { min-height: 0; overflow: hidden; }
.ft--print .ft-scroll { overflow: visible; padding: 0; }
.ft--print .ft-canvas { transform-origin: top left; }
.ft--print .ft-node { box-shadow: none; }
.ft--print .ft-node--g4 .ft-node__role, .ft--print .ft-node--g5 .ft-node__meta { display: none; }
.ft--print a.ft-node { pointer-events: none; }

@media print {
  /* A fekvő @page szabályt a poszter oldal maga adja (csaladfa.php), hogy más oldalak nyomtatását ne fordítsa el. */
  html, body.ft-poster-page { background: #fff !important; }
  .ft-poster__bar { display: none !important; }
  .ft-sheet { margin: 0; box-shadow: none; page-break-after: avoid; }
  .ft-sheet * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  /* A normál oldalon nyomtatva is olvasható maradjon a fa. */
  .ft-page .ft-scroll { overflow: visible; }
  .ft-page .ft-editor, .ft-page .pagehead__actions, .ft-page .ft-upsell, .ft-page .ft-hint { display: none !important; }
}

/* --- Társgazdák: ismerősök közül, kérések --------------------------------------- */
.fam-friends { display: grid; gap: 10px; }
.fam-friends__search { width: 100%; box-sizing: border-box; font: inherit; font-size: 16px; padding: 10px 14px; border-radius: var(--r-sm); border: 1.5px solid var(--line); background: var(--surface); color: var(--ink); }
.fam-friends__search:focus { outline: none; border-color: var(--pine); box-shadow: 0 0 0 3px var(--pine-soft); }
.fam-friends__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; max-height: 360px; overflow-y: auto; }
.fam-friend { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--paper); }
.fam-friend[hidden] { display: none; }
.fam-friend__who { flex: 1; min-width: 0; display: grid; line-height: 1.25; }
.fam-friend__who strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fam-friend__who small { color: var(--muted); font-size: 13px; }
.fam-friend form { margin: 0; flex: none; }
.fam-req { display: grid; gap: 8px; padding: 12px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--paper); }
.fam-req__head { display: flex; align-items: center; gap: 10px; }
.fam-req__head > span:last-child { display: grid; line-height: 1.25; min-width: 0; }
.fam-req__msg { margin: 0; font-size: 15px; white-space: pre-line; padding: 8px 10px; border-radius: var(--r-sm); background: var(--paper-2); }
.fam-req__act { display: flex; flex-wrap: wrap; gap: 8px; }
.fam-req__act form { margin: 0; }
.fam-reqs { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.fam-petline { display: flex; gap: 12px; align-items: center; }
.fam-petline img { width: 52px; height: 52px; border-radius: 14px; object-fit: cover; flex: none; background: var(--paper-2); }
.fam-petline img.placeholder { object-fit: contain; padding: 8px; }
.fam-petline > span { display: grid; line-height: 1.3; min-width: 0; }
.tg-page { max-width: 860px; }
.tg-page section { margin-bottom: 18px; }
.fam-ask { position: relative; }
.fam-ask > summary { list-style: none; }
.fam-ask[open] > summary::after { content: ''; position: fixed; inset: 0; z-index: 59; background: rgba(20, 17, 27, .35); cursor: default; }
.fam-ask > summary::-webkit-details-marker { display: none; }
/* A profilkártya levágja a túllógó tartalmat, ezért a panel a képernyőhöz igazodik. */
.fam-ask__panel { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 60; width: min(360px, calc(100vw - 32px)); padding: 14px; border-radius: var(--r-md); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lift); display: grid; gap: 10px; text-align: left; }
.fam-ask__panel p { margin: 0; font-size: 14px; }
.fam-ask__panel textarea { width: 100%; min-height: 70px; }
.fam-ask-state { display: inline-flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.fam-ask-state form { margin: 0; }
@media (max-width: 720px) {
  .fam-ask__panel { left: 16px; right: 16px; top: auto; bottom: 90px; width: auto; transform: none; }
}
.fam-requests { margin-top: 18px; scroll-margin-top: 90px; }
.fam-requests h3 { font-size: 17px; margin: 0 0 10px; }
.fam-req .savatar { flex: none; }

/* Poszter: szélesebb, alacsonyabb csomópontok, hogy a fa kitöltse a fekvő A4-et. */
.ft--print { --w0: 150px; --w: 250px; --wd: 220px; --gap: 14px; }
.ft--print .ft-node { padding: 5px 9px; gap: 8px; }
.ft--print .ft-node__txt { gap: 0; }
.ft--print .ft-node__pic { width: 38px; height: 38px; }
.ft--print .ft-node--root .ft-node__pic { width: 64px; height: 64px; }
.ft--print .ft-node--g3 .ft-node__pic, .ft--print .ft-node--g4 .ft-node__pic, .ft--print .ft-node--g5 .ft-node__pic { width: 26px; height: 26px; font-size: 12px; }
.ft--print .ft-node--g3 .ft-node__role { display: none; }
.ft--print .ft-parents > .ft-branch { padding-top: 2px; padding-bottom: 2px; }
.ft-form .grid-2 { align-items: start; }

/* Ős tenyésztője és a kedvenc törzskönyves neve a gyökérben */
.ft-node__breeder { font-size: 12px; color: var(--muted); overflow-wrap: anywhere; }
.ft-node__breeder a { color: var(--pine); font-weight: 700; text-decoration: none; }
.ft-node__breeder a:hover { text-decoration: underline; }
.ft-node__reg { font-size: 12.5px; font-weight: 600; color: var(--muted); overflow-wrap: anywhere; }
.kennel__cc { font-weight: 500; }
.kennel__ok { color: var(--good); font-weight: 800; }
.ft-sheet__reg { margin: 1mm 0 0; font-size: 12pt; font-weight: 700; color: #4b4458; }
.ft--print .ft-node--g5 .ft-node__breeder { display: none; }

/* ==========================================================================
   Fa nézet (csaladfa.php): a kedvenc a fa tövénél, az ősök felfelé ágaznak.
   A vászon belső mérete rögzített (family_tree.php FTT_*), a JS nagyít és mozgat.
   ========================================================================== */
.ftt {
  --ftt-sky1: #EFEAF8; --ftt-sky2: #FBF7EF;
  --ftt-bark: #8B6A52; --ftt-bark-hi: #A5836A;
  --ftt-leaf1: #6DB283; --ftt-leaf2: #4F9A6C; --ftt-leaf3: #9ACB8C;
  --ftt-canopy-a: #D3EAD6; --ftt-canopy-b: #BFE0C6;
  --ftt-ground: #CFE5C7; --ftt-ground2: #B5D7AC;
  --ftt-sire: #5A7DC4; --ftt-dam: #D46F86;
  --ftt-card: var(--surface); --ftt-card-line: rgba(34, 29, 46, .08);
  --ftt-shadow: 0 1px 2px rgba(34, 29, 46, .06), 0 10px 24px -14px rgba(34, 29, 46, .35);
  --ftt-wm: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='340' height='220'%3E%3Cg font-family='Figtree,Helvetica,Arial,sans-serif' font-size='18' font-weight='700' fill='rgba(85,64,126,0.15)' text-anchor='middle'%3E%3Ctext x='85' y='70' transform='rotate(-24 85 70)'%3EBundee el%C5%91n%C3%A9zet%3C/text%3E%3Ctext x='255' y='180' transform='rotate(-24 255 180)'%3EBundee el%C5%91n%C3%A9zet%3C/text%3E%3C/g%3E%3C/svg%3E");
  position: relative;
}
:root[data-theme="dark"] .ftt {
  --ftt-sky1: #17131F; --ftt-sky2: #1D1826;
  --ftt-bark: #7E6150; --ftt-bark-hi: #977663;
  --ftt-leaf1: #3F7F59; --ftt-leaf2: #33694B; --ftt-leaf3: #5C9466;
  --ftt-canopy-a: #1F2E28; --ftt-canopy-b: #24372D;
  --ftt-ground: #1F3027; --ftt-ground2: #263A2D;
  --ftt-sire: #8EA8E8; --ftt-dam: #F09AAE;
  --ftt-card: #241E30; --ftt-card-line: rgba(255, 255, 255, .07);
  --ftt-shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 12px 26px -14px rgba(0, 0, 0, .8);
  --ftt-wm: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='340' height='220'%3E%3Cg font-family='Figtree,Helvetica,Arial,sans-serif' font-size='18' font-weight='700' fill='rgba(214,200,245,0.12)' text-anchor='middle'%3E%3Ctext x='85' y='70' transform='rotate(-24 85 70)'%3EBundee el%C5%91n%C3%A9zet%3C/text%3E%3Ctext x='255' y='180' transform='rotate(-24 255 180)'%3EBundee el%C5%91n%C3%A9zet%3C/text%3E%3C/g%3E%3C/svg%3E");
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .ftt {
    --ftt-sky1: #17131F; --ftt-sky2: #1D1826;
    --ftt-bark: #7E6150; --ftt-bark-hi: #977663;
    --ftt-leaf1: #3F7F59; --ftt-leaf2: #33694B; --ftt-leaf3: #5C9466;
    --ftt-canopy-a: #1F2E28; --ftt-canopy-b: #24372D;
    --ftt-ground: #1F3027; --ftt-ground2: #263A2D;
    --ftt-sire: #8EA8E8; --ftt-dam: #F09AAE;
    --ftt-card: #241E30; --ftt-card-line: rgba(255, 255, 255, .07);
    --ftt-shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 12px 26px -14px rgba(0, 0, 0, .8);
    --ftt-wm: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='340' height='220'%3E%3Cg font-family='Figtree,Helvetica,Arial,sans-serif' font-size='18' font-weight='700' fill='rgba(214,200,245,0.12)' text-anchor='middle'%3E%3Ctext x='85' y='70' transform='rotate(-24 85 70)'%3EBundee el%C5%91n%C3%A9zet%3C/text%3E%3Ctext x='255' y='180' transform='rotate(-24 255 180)'%3EBundee el%C5%91n%C3%A9zet%3C/text%3E%3C/g%3E%3C/svg%3E");
  }
}

/* Színpad: égbolt, a vászon benne mozog. JS nélkül görgethető. */
.ftt-stage {
  position: relative; overflow: auto; height: min(72vh, 680px); min-height: 300px;
  border-radius: var(--r-md); background: linear-gradient(180deg, var(--ftt-sky1), var(--ftt-sky2) 78%);
  border: 1px solid var(--line);
  -webkit-user-select: none; user-select: none; -webkit-touch-callout: none;
  overscroll-behavior: contain;
}
.ftt-stage:focus-visible { outline: 2px solid var(--pine); outline-offset: 2px; }
.ftt--js .ftt-stage { overflow: hidden; touch-action: none; cursor: grab; }
.ftt--js .ftt-stage.is-dragging { cursor: grabbing; }
.ftt-canvas { position: absolute; left: 0; top: 0; transform-origin: 0 0; will-change: transform; }
.ftt-stage img { -webkit-user-drag: none; user-drag: none; pointer-events: none; }
.ftt-art { position: absolute; left: 0; top: 0; overflow: visible; pointer-events: none; }
.ftt-canopy--a { fill: var(--ftt-canopy-a); }
.ftt-canopy--b { fill: var(--ftt-canopy-b); opacity: .75; }
.ftt-ground { fill: var(--ftt-ground); }
.ftt-ground2 { fill: var(--ftt-ground2); }
.ftt-bark { fill: var(--ftt-bark); }
.ftt-leaf--1 { fill: var(--ftt-leaf1); }
.ftt-leaf--2 { fill: var(--ftt-leaf2); }
.ftt-leaf--3 { fill: var(--ftt-leaf3); }

/* Kártyák: a kerek kép kilóg a kártya tetején, mint egy gyümölcs az ágon. */
.ftt .ft-node {
  --av: 52px; --ov: 24px; --ring: var(--ftt-sire);
  position: absolute; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; align-items: stretch; width: 152px; height: 132px;
  padding: calc(var(--av) - var(--ov) + 7px) 8px 8px; gap: 0;
  border: 1px solid var(--ftt-card-line); border-radius: 16px; background: var(--ftt-card);
  box-shadow: inset 0 3px 0 var(--ring), var(--ftt-shadow);
  text-align: center; color: var(--ink); text-decoration: none; line-height: 1.22;
}
.ftt .ft-node--f { --ring: var(--ftt-dam); }
.ftt .ft-node--g1 { --av: 68px; --ov: 32px; width: 200px; height: 150px; padding-left: 12px; padding-right: 12px; }
.ftt .ft-node--g2 { --av: 60px; --ov: 28px; width: 176px; height: 142px; padding-left: 10px; padding-right: 10px; }
.ftt .ft-node--g3 { --av: 52px; --ov: 24px; width: 152px; height: 132px; }
.ftt .ft-node--g4 { --av: 44px; --ov: 20px; width: 128px; height: 122px; padding-left: 7px; padding-right: 7px; }
.ftt .ft-node--g5 { --av: 38px; --ov: 17px; width: 112px; height: 112px; padding-left: 6px; padding-right: 6px; }
.ftt .ft-node--root {
  --av: 104px; --ov: 48px; --ring: var(--pine);
  width: 256px; height: 150px; padding: 64px 14px 12px;
  background: linear-gradient(180deg, var(--pine-soft), var(--ftt-card) 85%);
  border-color: color-mix(in srgb, var(--pine) 30%, transparent); box-shadow: var(--ftt-shadow);
}
.ftt .ft-node__pic {
  position: absolute; top: calc(var(--ov) * -1); left: 50%; transform: translateX(-50%);
  width: var(--av); height: var(--av); border-radius: 50%; overflow: hidden; box-sizing: border-box;
  border: 3px solid var(--ring); background: var(--paper-2); box-shadow: 0 4px 12px -6px rgba(0, 0, 0, .45);
  display: grid; place-items: center;
}
.ftt .ft-node--root .ft-node__pic { border-width: 4px; }
.ftt .ft-node__pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ftt .ft-node__pic img.placeholder, .ftt .ft-node__pic--paw img { object-fit: contain; padding: 22%; box-sizing: border-box; opacity: .8; }
.ftt-sex {
  position: absolute; top: calc(var(--av) - var(--ov) - 15px); left: calc(50% + var(--av) / 2 - 15px);
  width: 19px; height: 19px; border-radius: 50%; display: grid; place-items: center;
  background: var(--ring); color: #fff; font-size: 12px; font-weight: 800; line-height: 1; border: 2px solid var(--ftt-card);
}
.ftt .ft-node--g4 .ftt-sex, .ftt .ft-node--g5 .ftt-sex { width: 15px; height: 15px; font-size: 9.5px; top: calc(var(--av) - var(--ov) - 12px); left: calc(50% + var(--av) / 2 - 12px); }
.ftt .ft-node__txt { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 0; max-height: 100%; overflow: hidden; }
.ftt .ft-node__txt > * { max-width: 100%; }
.ftt .ft-node__role { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ftt .ft-node__name {
  font-size: 14.5px; font-weight: 800; line-height: 1.2; overflow-wrap: anywhere;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.ftt .ft-node--g1 .ft-node__name { font-size: 16px; }
.ftt .ft-node--g4 .ft-node__name { font-size: 13px; }
.ftt .ft-node--g5 .ft-node__name { font-size: 12.5px; -webkit-line-clamp: 3; }
.ftt .ft-node--root .ft-node__name { font-family: var(--font-display); font-size: 22px; line-height: 1.1; -webkit-line-clamp: 1; }
.ftt .ft-node__titles { justify-content: center; flex-wrap: nowrap; overflow: hidden; }
.ftt .ft-title { font-size: 10px; padding: 1px 5px; white-space: nowrap; }
.ftt .ft-node__meta, .ftt .ft-node__regno, .ftt .ft-node__breeder, .ftt .ft-node__reg, .ftt .ft-node__bundee {
  font-size: 11.5px; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ftt .ft-node__meta { color: var(--muted); }
.ftt .ft-node__regno { font-size: 10.5px; color: var(--muted); font-variant-numeric: tabular-nums; }
.ftt .ft-node--g3 .ft-node__regno, .ftt .ft-node--g4 .ft-node__regno, .ftt .ft-node--g5 .ft-node__regno { display: none; }
.ftt .ft-node--g5 .ft-node__role { display: none; }
.ftt .ft-node--g5 .ft-node__meta, .ftt .ft-node--g4 .ft-node__meta { font-size: 10.5px; }
.ftt .ft-node--g5 .ft-node__breeder { font-size: 10.5px; }
.ftt .ft-node--root .ft-node__reg { font-size: 13px; font-weight: 700; color: var(--ink); opacity: .8; white-space: normal; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.ftt .ft-node--root .ft-node__meta { font-size: 12.5px; }
.ftt a.ft-node { cursor: pointer; transition: box-shadow .15s, transform .15s; }
.ftt a.ft-node:hover { border-left-width: 1px; border-color: var(--ftt-card-line); box-shadow: inset 0 3px 0 var(--ring), 0 0 0 2px var(--pine), var(--ftt-shadow); }
.ftt a.ft-node:focus-visible { outline: 3px solid var(--pine); outline-offset: 2px; }
.ftt .ft-node.is-sel { outline: none; box-shadow: inset 0 3px 0 var(--ring), 0 0 0 3px var(--pine), 0 0 0 8px color-mix(in srgb, var(--pine) 22%, transparent), var(--ftt-shadow); }

/* Üres és „Add meg” helyek */
.ftt .ft-node--empty { background: color-mix(in srgb, var(--ftt-card) 55%, transparent); border: 1.5px dashed color-mix(in srgb, var(--muted) 55%, transparent); box-shadow: none; }
.ftt .ftt-emptypic { border-style: dashed; border-color: color-mix(in srgb, var(--muted) 55%, transparent); background: var(--ftt-card); color: var(--muted); font-size: 20px; font-weight: 700; box-shadow: none; }
.ftt .ftt-card--add { border-color: color-mix(in srgb, var(--pine) 60%, transparent); }
.ftt .ftt-card--add .ftt-emptypic { border-color: var(--pine); color: var(--pine); }
.ftt .ftt-card--add .ft-node__none { color: var(--pine); font-weight: 800; font-size: 14px; }
.ftt .ft-node__none { font-size: 13px; color: var(--muted); margin-top: 2px; }
.ftt a.ftt-card--add:hover { background: var(--pine-soft); }

/* Zárolt ősök: nincs bennük adat, csak elmosott helykitöltő. */
.ftt .ft-node--locked { background: color-mix(in srgb, var(--ftt-card) 72%, transparent); box-shadow: inset 0 3px 0 color-mix(in srgb, var(--ring) 45%, transparent); }
.ftt .ftt-lockpic { color: var(--muted); border-color: color-mix(in srgb, var(--ring) 45%, transparent); background: var(--ftt-card); }
.ftt-skel { display: block; height: 9px; border-radius: 6px; margin: 4px auto 0; background: color-mix(in srgb, var(--muted) 35%, transparent); filter: blur(2px); }
.ftt-skel--a { width: 78%; height: 11px; }
.ftt-skel--b { width: 58%; }
.ftt-skel--c { width: 44%; }
.ftt-lockbadge {
  position: absolute; transform: translate(-50%, -50%); z-index: 2; display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 22px; border-radius: 999px; background: var(--ftt-card); color: var(--ink); font-size: 18px; text-decoration: none; white-space: nowrap;
  box-shadow: 0 0 0 1px var(--line), 0 18px 40px -16px rgba(0, 0, 0, .45);
}
.ftt-lockbadge svg { color: var(--pine); flex: none; }
.ftt-lockbadge strong { color: var(--pine); }
a.ftt-lockbadge:hover { box-shadow: 0 0 0 2px var(--pine), 0 18px 40px -16px rgba(0, 0, 0, .45); }

/* Vízjel: a látható terület fölött, csempézve; nem fogja meg az érintést. */
.ftt-wm { position: absolute; inset: 0; z-index: 3; pointer-events: none; background-image: var(--ftt-wm); background-size: 340px 220px; }

/* Vezérlők: a vászon alatti sávban, balra (a jobb alsó sarokban lebegő gombok vannak). */
.ftt-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 10px; min-height: 40px; }
.ftt-ctl { display: flex; gap: 6px; flex: none; }
.ftt-ctl[hidden] { display: none; }
.ftt-ctl button {
  font: inherit; font-weight: 700; font-size: 14px; min-width: 40px; height: 40px; padding: 0 14px; border-radius: 999px;
  border: 1px solid var(--line); background: var(--surface); color: var(--ink); cursor: pointer;
}
.ftt-ctl button[data-ftt-zoom] { font-size: 20px; line-height: 1; padding: 0; width: 40px; }
.ftt-ctl button:hover { border-color: var(--pine); }
.ftt-ctl button:focus-visible { outline: 2px solid var(--pine); outline-offset: 2px; }
.ftt-hint { margin: 0; font-size: 13px; color: var(--muted); transition: opacity .4s; min-width: 0; }
.ftt-hint[hidden] { display: none; }
.ftt-hint.is-gone { opacity: 0; }
.ftt-printlock { display: none; }

.ft-protect { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.ft-upsell__btns { display: flex; flex-wrap: wrap; gap: 8px; }
.ft-wrap .ftt { margin-top: 4px; }

/* Poszter vásárlás */
.ft-buy { margin-bottom: 18px; scroll-margin-top: 90px; }
.ft-buy__head { display: flex; gap: 14px; align-items: flex-start; }
.ft-buy__head h2 { margin: 0 0 4px; }
.ft-buy__head p { margin: 0; }
.ft-buy__icon { flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--warn-soft); color: var(--warn); }
.ft-buy > .ft-small { margin: 12px 0; }
.ft-buy__form { display: grid; gap: 12px; }
.ft-buy__form > .btn { justify-self: start; }

@media (max-width: 720px) {
  .ft-wrap .ftt { margin-left: -6px; margin-right: -6px; }
  .ftt-stage { height: min(70vh, 560px); }
  .ftt-hint { font-size: 12.5px; }
}

/* Nyomtatás a normál oldalról: a fa helyett üzenet (a poszter a nyomtatható változat). */
@media print {
  .ft-page .ftt-stage, .ft-page .ftt-bar { display: none !important; }
  .ft-page .ftt-printlock { display: block; margin: 12px 0; padding: 16px; border: 1px dashed #999; border-radius: 12px; font-size: 14pt; text-align: center; color: #333; }
  .ft-page .ft-protect, .ft-page .ft-buy, .ft-page .ps-card { display: none !important; }
}

/* --- Poszter (fa formában) ---------------------------------------------------- */
.ft-poster__size { display: inline-flex; border-radius: 999px; background: rgba(255, 255, 255, .14); padding: 3px; }
.ft-poster__bar .ft-poster__size a { background: transparent; color: #fff; padding: 6px 14px; }
.ft-poster__bar .ft-poster__size a[aria-current] { background: #fff; color: #221D2E; }
.ft-sheet--a3 { width: 420mm; height: 297mm; padding: 14mm 16mm 10mm; gap: 5mm; }
.ft-sheet--a3 .ft-sheet__head h1 { font-size: 38pt; }
.ft-sheet--a3 .ft-sheet__facts { font-size: 12pt; }
.ft-sheet--a3 .ft-sheet__foot { font-size: 10pt; }
.ft-sheet .ftt--print {
  position: relative; min-height: 0; overflow: hidden; border-radius: 6mm;
  background: linear-gradient(180deg, #F3EFFA, #FCF9F2 80%);
}
.ft-sheet .ftt--print .ftt-canvas { position: absolute; left: 0; top: 0; }
.ft-sheet .ftt--print .ft-node { box-shadow: inset 0 3px 0 var(--ring), 0 1px 0 rgba(0, 0, 0, .06), 0 6px 14px -10px rgba(0, 0, 0, .35); }
.ft-sheet .ftt--print .ft-node--root { box-shadow: 0 6px 14px -10px rgba(0, 0, 0, .35); }
.ft-sheet .ftt--print .ft-node__regno { display: block; }
@media print {
  .ft-sheet .ftt--print, .ft-sheet .ftt--print * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* A kedvenc adatlapján a mély (3 generációs) kártya ne tolja szét a rácsot: a fa a kártyán belül görög. */
.ft-card { min-width: 0; }
.pp-col:has(> .ft-card) { min-width: 0; }

/* Sorok neve a fa bal szélén */
.ftt-rowlbl { position: absolute; z-index: 3; transform: translate(-100%, -50%); padding: 5px 10px; border-radius: 999px;
  background: color-mix(in srgb, var(--surface) 88%, transparent); border: 1px solid var(--line); color: var(--pine);
  font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; box-shadow: var(--shadow-lift); pointer-events: none; }

/* Lista nézet: egy sorban egyforma magas kártyák, a kártyán belül a tartalom középen */
.ft-list__grid { align-items: stretch; gap: 12px; grid-auto-rows: 1fr; }
.ft-list__grid li { grid-template-rows: 1fr auto; }
.ft-list__grid .ft-node { height: 100%; box-sizing: border-box; align-items: center; }

/* Testvérek a családfa tövénél, egymás mellett */
.ftt-card--sib { text-decoration: none; color: inherit; outline: 2px dashed color-mix(in srgb, var(--pine) 35%, transparent); outline-offset: 3px; }
a.ftt-card--sib:hover { outline-style: solid; }
.ftt-sibbar { display: none; position: absolute; height: 12px; border: 3px solid #8B6A4E; border-bottom: 0; border-radius: 12px 12px 0 0; pointer-events: none; }

/* z59: testvérek összekötése a családfa kártyán */
.ft-card--crown .ftt-bar { margin-top: 6px; }
.ft-sibbox { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); display: grid; gap: 8px; }
.ft-sibbox__h { margin: 0; font-weight: 800; display: flex; align-items: center; gap: 6px; }
.ft-sibbox__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.ft-sibbox__list li { display: inline-flex; align-items: center; gap: 8px; padding: 4px 6px 4px 12px; border-radius: 999px; background: var(--pine-soft); font-weight: 700; }
.ft-sibbox__list form { margin: 0; }
.ft-sibbox__list .linkbtn { font-size: 12px; }
.ft-sibbox__sug { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 12px; border-radius: 12px; background: color-mix(in srgb, #E5A92B 14%, var(--surface)); margin: 0; }
.ft-sibbox__sug span { flex: 1; min-width: 180px; font-size: 14px; }
.ft-sibbox__add { display: flex; gap: 8px; flex-wrap: wrap; margin: 0; }
.ft-sibbox__add select { flex: 1; min-width: 160px; }
.ft-sibbox__note { margin: 0; font-size: 12.5px; }

/* assets/css/mod-family.css */
/* Családi megosztás */
.chip--family { background: var(--butter-soft); color: var(--good); font-size: 13px; vertical-align: middle; }
h1 .chip--family { font-family: var(--font-body); letter-spacing: 0; font-size: 14px; position: relative; top: -6px; }
.fam-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.fam-item { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: var(--r-md); background: var(--paper); border: 1px solid var(--line); flex-wrap: wrap; }
.fam-item__avatar { flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); font-family: var(--font-display); font-weight: 800; }
.fam-item__main { flex: 1; min-width: 160px; display: grid; line-height: 1.3; }
.fam-item__main .muted { font-size: 14px; word-break: break-all; }
.fam-item form { margin: 0; }
.fam-small { font-size: 14px; margin: 0; }
.fam-rights { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.fam-rights li { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; }
.fam-rights svg { flex: none; margin-top: 2px; }
.fam-rights .ok svg { color: var(--good); }
.fam-rights .no { color: var(--muted); }
.fam-leave { margin-bottom: 64px; max-width: 640px; }
.fam-leave h2 { margin-bottom: 6px; }
.fam-invite { display: grid; gap: 16px; }
.fam-invite__pet { display: flex; gap: 14px; align-items: center; }
.fam-invite__pet img { width: 72px; height: 72px; border-radius: 18px; object-fit: cover; flex: none; }
.fam-invite__pet .fam-invite__paw { object-fit: contain; padding: 12px; background: var(--paper-2); }
.fam-invite__pet h1 { margin: 0 0 2px; font-size: 30px; }
.fam-invite__pet p { margin: 0; }
.fam-invite .eyebrow { margin-bottom: 2px; }
.album__by { position: absolute; right: 8px; top: 8px; font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: rgba(23, 18, 31, .72); color: #fff; max-width: 55%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.album__date { font-size: 14px; color: var(--muted); font-weight: 600; margin: 6px 2px 0; }

/* assets/css/mod-feed.css */
/* Bundee közösségi tér: háromoszlopos keret, hírfolyam, profil, ismerősök, csevegődokk (includes/modules/social_ui.php) */

/* --- Vékonyabb fejléc a közösségi oldalakon ------------------------------------------ */
.is-social .topbar__inner { max-width: 1320px; padding-top: 6px; padding-bottom: 6px; }
.is-social .brand .logo { width: 32px; height: 32px; }
.is-social .brand { font-size: 22px; }

/* --- Keret ----------------------------------------------------------------------------- */
.sshell {
  max-width: 1320px; margin: 0 auto; padding: 16px 16px 40px;
  display: grid; grid-template-columns: 248px minmax(0, 1fr) 300px; gap: 24px; align-items: start;
}
.sshell__main { width: 100%; max-width: 680px; justify-self: center; min-width: 0; }
.sshell--chat-page { grid-template-columns: 248px minmax(0, 1fr); }
.sshell--chat-page .sshell__main { max-width: none; padding: 0; }
.sshell__left, .sshell__right {
  position: sticky; top: 72px; max-height: calc(100dvh - 88px); overflow-y: auto; scrollbar-width: thin;
  min-width: 0;
}
@media (max-width: 1199px) {
  .sshell { grid-template-columns: 220px minmax(0, 1fr); }
  .sshell__right { display: none; }
}
@media (max-width: 899px) {
  .sshell, .sshell--chat-page { grid-template-columns: minmax(0, 1fr); padding: 12px 12px 32px; gap: 0; }
  .sshell__left { display: none; }
  .sshell--chat-page { padding: 8px; }
}

/* Bal menü */
.sside ul { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 2px; }
.sside a { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 12px; color: var(--ink); font-weight: 600; text-decoration: none; min-height: 44px; }
.sside a:hover { background: var(--paper-2); }
.sside a.is-active, .sside a[aria-current="page"] { background: var(--pine-soft); color: var(--ink); }
.sside a.is-active .sside__ic { color: var(--pine); }
.sside__ic { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; color: var(--muted); flex: none; }
.sside .navbadge { margin-left: auto; }
.sside__me { margin-bottom: 4px; }
.sside__me span:last-child { display: grid; line-height: 1.2; min-width: 0; }
.sside__me small { color: var(--muted); font-weight: 500; font-size: 13px; }

/* --- Avatar és kedvenckép ------------------------------------------------------------- */
.savatar {
  --h: 260; position: relative; flex: none; display: inline-grid; place-items: center; border-radius: 50%;
  width: 40px; height: 40px; font-family: var(--font-display); font-weight: 800; font-size: 17px;
  background: hsl(var(--h) 52% 88%); color: hsl(var(--h) 45% 26%);
}
:root[data-theme="dark"] .savatar { background: hsl(var(--h) 26% 30%); color: hsl(var(--h) 70% 88%); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .savatar { background: hsl(var(--h) 26% 30%); color: hsl(var(--h) 70% 88%); } }
.savatar--sm { width: 32px; height: 32px; font-size: 14px; }
.savatar--md { width: 40px; height: 40px; }
.savatar--lg { width: 56px; height: 56px; font-size: 22px; }
.savatar--xl { width: 112px; height: 112px; font-size: 44px; }
.savatar__dot, .chat-online {
  position: absolute; right: -1px; bottom: -1px; width: 12px; height: 12px; border-radius: 50%;
  background: #2FA36B; border: 2px solid var(--surface);
}
.spet { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex: none; background: var(--paper-2); display: block; }
.spet.is-paw { padding: 18%; object-fit: contain; }
.spet--xs { width: 22px; height: 22px; }
.spet--sm { width: 32px; height: 32px; }
.spet--md { width: 40px; height: 40px; }
.spet--lg { width: 72px; height: 72px; }
.spet--xl { width: 112px; height: 112px; }

/* --- Kártyák ---------------------------------------------------------------------------- */
.spost, .scomposer, .sprofile, .sempty, .sstrip, .sbday, .is-social .sshell__main > .card {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-lift);
}
.sshell__main .card { padding: 16px; }
.sshell__main .card + .card, .sfeed > * + * { margin-top: 14px; }
.sfeed { margin-top: 14px; }
.sfeed__more { text-align: center; padding: 18px 0 8px; min-height: 40px; }
.sfeed__more.is-loading::after { content: ''; display: inline-block; width: 22px; height: 22px; border-radius: 50%; border: 3px solid var(--line); border-top-color: var(--pine); animation: sspin .8s linear infinite; }
@keyframes sspin { to { transform: rotate(360deg); } }
.sempty { text-align: center; padding: 28px 20px; }
.sempty h1, .sempty h2 { font-size: 22px; margin: 10px 0 6px; }
.sempty img { margin: 0 auto; }
.sback { margin: 0 0 10px; }
.ssection-title { font-size: 18px; margin: 22px 4px 0; }
.spagehead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.spagehead h1 { margin: 0; font-size: 28px; }
.stabs { margin: 0 0 14px; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.stabs a { white-space: nowrap; }
.schip { display: inline-flex; align-items: center; padding: 2px 10px; border-radius: 999px; background: var(--paper-2); color: var(--muted); font-size: 13px; font-weight: 600; }
.schip--ok { background: var(--good-soft); color: var(--good); }
.slink { color: var(--ink); font-weight: 700; text-decoration: none; }
.slink:hover { text-decoration: underline; }
.slinkbtn { border: 0; background: none; padding: 0; font: inherit; font-weight: 700; color: var(--muted); cursor: pointer; text-decoration: none; }
.slinkbtn:hover { color: var(--ink); text-decoration: underline; }
.sinline { display: inline; margin: 0; }
.sicon-btn { width: 36px; height: 36px; border-radius: 50%; border: 0; background: transparent; color: var(--muted); display: inline-grid; place-items: center; cursor: pointer; flex: none; }
.sicon-btn:hover { background: var(--paper-2); color: var(--ink); }
.sicon-btn--send { color: var(--pine); }

/* --- Íróablak ---------------------------------------------------------------------------- */
.scomposer__top { display: flex; gap: 10px; align-items: flex-start; }
.scomposer textarea {
  flex: 1; width: 100%; min-height: 48px; resize: vertical; border: 0; border-radius: 22px; background: var(--paper-2);
  padding: 12px 16px; font: inherit; font-size: 17px; color: var(--ink);
}
.scomposer textarea:focus { outline: 2px solid var(--pine); outline-offset: 0; }
.scomposer__pets { border: 0; padding: 0; margin: 10px 0 0 50px; display: flex; flex-wrap: wrap; gap: 6px; }
.scomposer__pets legend { font-size: 13px; color: var(--muted); font-weight: 600; padding: 0; margin-bottom: 4px; }
.spetchip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 4px; border-radius: 999px; border: 1.5px solid var(--line); cursor: pointer; font-weight: 600; font-size: 14px; }
.spetchip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.spetchip:has(input:checked) { border-color: var(--pine); background: var(--pine-soft); }
.spetchip:has(input:focus-visible) { outline: 3px solid var(--pine); outline-offset: 2px; }
.scomposer__bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.scomposer__photo { margin-right: auto; cursor: pointer; }
.scomposer__photo:focus-within { outline: 3px solid var(--pine); outline-offset: 2px; }
.scomposer__vis { width: auto; min-height: 36px; padding: 6px 32px 6px 12px; border-radius: 999px; font-size: 14px; }
.scomposer__previews { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 6px; margin: 10px 0 0 50px; }
.scomposer__previews:empty { display: none; }
.scomposer__previews figure { margin: 0; position: relative; aspect-ratio: 1; border-radius: 12px; overflow: hidden; background: var(--paper-2); }
.scomposer__previews img { width: 100%; height: 100%; object-fit: cover; }
.scomposer__previews button { position: absolute; top: 4px; right: 4px; width: 28px; height: 28px; border-radius: 50%; border: 0; background: rgba(20, 17, 27, .7); color: #fff; cursor: pointer; display: grid; place-items: center; }
.scomposer__err { color: var(--bad); margin: 8px 0 0; font-weight: 600; }

/* --- Bejegyzés -------------------------------------------------------------------------- */
.spost { padding: 14px 16px 6px; }
.spost.is-hidden { outline: 2px dashed var(--warn); }
.spost__flag { margin: 0 0 8px; color: var(--warn); font-weight: 700; font-size: 14px; }
.spost__head { display: flex; align-items: flex-start; gap: 10px; }
.spost__av { flex: none; text-decoration: none; }
.spost__who { flex: 1; min-width: 0; }
.spost__who p { margin: 0; line-height: 1.35; overflow-wrap: anywhere; }
.spost__meta { color: var(--muted); font-size: 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.spost__meta a { color: var(--muted); }
.stime { color: var(--muted); text-decoration: none; }
.stime:hover { text-decoration: underline; }
.svis { display: inline-flex; vertical-align: -2px; }
.spost__body { margin-top: 10px; font-size: 17px; line-height: 1.5; overflow-wrap: anywhere; }
.spost__body p { margin: 0 0 8px; }
.spost__body.is-long { max-height: 9.5em; overflow: hidden; -webkit-mask-image: linear-gradient(#000 70%, transparent); mask-image: linear-gradient(#000 70%, transparent); }
.smention { font-weight: 700; color: var(--pine); text-decoration: none; }
.smention:hover { text-decoration: underline; }
.sitem__ic { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); flex: none; }
.sitem__ic--alert { background: var(--bad-soft); color: var(--bad); }
.sitem__title { font-size: 18px; margin: 0 0 4px; }
.sitem__cta { margin: 10px 0 10px; }
.sitem__lost { display: flex; gap: 12px; margin-top: 10px; align-items: flex-start; }
.sitem__lost img { width: 112px; height: 112px; object-fit: cover; border-radius: 14px; flex: none; }
.sitem__lost p { margin: 0 0 4px; }
.sitem--lost { border-color: var(--bad-soft); }

/* Fotórács */
.sgrid { display: grid; gap: 3px; margin: 12px -16px 0; overflow: hidden; background: var(--paper-2); }
.sgrid img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sgrid__cell { position: relative; display: block; min-height: 0; overflow: hidden; }
.sgrid--1 img { max-height: 620px; height: auto; }
.sgrid--2 { grid-template-columns: 1fr 1fr; aspect-ratio: 2 / 1.2; }
.sgrid--3 { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; aspect-ratio: 4 / 3; }
.sgrid--3 .sgrid__cell:first-child { grid-row: span 2; }
.sgrid--4 { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; aspect-ratio: 1; }
.sgrid--5 { grid-template-columns: repeat(6, 1fr); grid-template-rows: 3fr 2fr; aspect-ratio: 1; }
.sgrid--5 .sgrid__cell:nth-child(-n+2) { grid-column: span 3; }
.sgrid--5 .sgrid__cell:nth-child(n+3) { grid-column: span 2; }
.sgrid__more { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(20, 17, 27, .55); color: #fff; font-size: 28px; font-weight: 800; }

/* Számok és gombok */
.spost__stats { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 30px; padding: 6px 0; color: var(--muted); font-size: 14px; }
.spost__stats a { color: var(--muted); text-decoration: none; }
.spost__stats a:hover { text-decoration: underline; }
.sreact-ic { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--paper-2); font-size: 12px; margin-right: -4px; border: 2px solid var(--surface); }
.spost__actions { display: flex; gap: 4px; border-top: 1px solid var(--line); padding: 4px 0; align-items: center; }
.spost__actions form { display: contents; }
.sact {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 40px; padding: 6px 8px;
  border: 0; border-radius: 10px; background: transparent; color: var(--muted); font: inherit; font-weight: 700; font-size: 15px; cursor: pointer; text-decoration: none; white-space: nowrap;
}
.sact:hover { background: var(--paper-2); color: var(--ink); }
.sact.is-on { color: var(--pine); background: var(--pine-soft); }
.sact[data-kind="sziv"].is-on { color: #C23B5A; background: #FBE4EA; }
:root[data-theme="dark"] .sact[data-kind="sziv"].is-on { color: #F28BA0; background: #3D1F2A; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .sact[data-kind="sziv"].is-on { color: #F28BA0; background: #3D1F2A; } }
.spost__actions .like { margin: 4px 0; }
.spost__actions > .sact:last-child { flex: 0 1 auto; }
@media (max-width: 480px) {
  .sact { font-size: 13px; gap: 4px; padding: 6px 4px; }
  .sact svg { width: 16px; height: 16px; }
}

/* Menü (…) */
.smenu { position: relative; flex: none; }
.smenu > summary { list-style: none; }
.smenu > summary::-webkit-details-marker { display: none; }
.smenu__pop {
  position: absolute; right: 0; top: calc(100% + 4px); z-index: 15; min-width: 220px; padding: 6px;
  background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-lift);
}
.smenu__pop > button, .smenu__pop > a, .smenu__pop form > button, .smenu__sub > summary {
  display: block; width: 100%; text-align: left; padding: 10px 12px; border: 0; border-radius: 10px; background: none;
  font: inherit; font-weight: 600; color: var(--ink); cursor: pointer; text-decoration: none; list-style: none;
}
.smenu__pop > button:hover, .smenu__pop > a:hover, .smenu__pop form > button:hover, .smenu__sub > summary:hover { background: var(--paper-2); }
.smenu__pop .is-danger { color: var(--bad); }
.smenu__sub > summary::-webkit-details-marker { display: none; }
.sreport { display: grid; gap: 8px; padding: 6px 8px 8px; }
.sreport label { font-size: 14px; font-weight: 600; }
.smenu--inline { display: inline-block; }
.smenu--inline > summary { display: inline; cursor: pointer; }
.smenu--inline .smenu__pop { left: 0; right: auto; }
.spost .mod-menu { flex: none; }

/* Hozzászólások */
.scomments { border-top: 1px solid var(--line); padding: 8px 0 6px; }
.scomments:has(.scomments__list:empty) .scomments__list { display: none; }
.scomments__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.scomments__list--replies { margin: 8px 0 0; }
.scomment { display: flex; gap: 8px; align-items: flex-start; }
.scomment > a { text-decoration: none; flex: none; }
.scomment__main { min-width: 0; flex: 1; }
.scomment__bubble { display: inline-block; max-width: 100%; background: var(--paper-2); border-radius: 18px; padding: 8px 14px; overflow-wrap: anywhere; }
.scomment__bubble .slink { font-size: 14px; }
.scomment__text p { margin: 0; }
.scomment__text p + p { margin-top: 6px; }
.scomment__meta { font-size: 13px; color: var(--muted); padding: 2px 12px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.scomment__meta .slinkbtn { font-size: 13px; }
.scomment__meta .mod-menu { display: inline-block; }
.scomment.is-hidden .scomment__bubble { outline: 2px dashed var(--warn); }
.scomments > .slinkbtn { display: inline-block; margin: 0 0 8px; font-size: 14px; }
.scomment-form { display: flex; gap: 8px; align-items: flex-start; margin-top: 10px; }
.scomment-form__box { flex: 1; display: flex; flex-wrap: wrap; align-items: center; background: var(--paper-2); border-radius: 20px; padding: 2px 4px 2px 12px; min-width: 0; }
.scomment-form__box:focus-within { outline: 2px solid var(--pine); }
.scomment-form textarea { flex: 1; min-width: 0; border: 0; background: transparent; resize: none; padding: 8px 0; font: inherit; color: var(--ink); min-height: 38px; max-height: 160px; }
.scomment-form textarea:focus { outline: none; }
.scomment-form__reply { flex-basis: 100%; margin: 6px 0 0; font-size: 13px; color: var(--muted); }
.scomment-form__reply button { margin-left: 6px; }

/* @említés lista */
.smention-pop {
  position: absolute; z-index: 40; min-width: 220px; max-width: 300px; padding: 4px; margin: 0; list-style: none;
  background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-lift);
}
.smention-pop li { padding: 8px 10px; border-radius: 8px; cursor: pointer; display: flex; gap: 8px; align-items: center; font-weight: 600; }
.smention-pop li[aria-selected="true"], .smention-pop li:hover { background: var(--pine-soft); }

/* Születésnap */
.sbday { display: flex; gap: 12px; padding: 14px 16px; align-items: flex-start; }
.sbday p { margin: 0; }
.sbday ul { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 2px; }

/* --- Követés gomb ----------------------------------------------------------------------- */
.sfollow { display: inline-block; margin: 0; }
.sfollow [data-on] { display: none; }
.sfollow .is-on [data-on] { display: inline; }
.sfollow .is-on [data-off] { display: none; }
.sfollow--block, .sfollow--block .btn { width: 100%; }

/* --- Jobb sáv --------------------------------------------------------------------------- */
.srail { display: grid; gap: 18px; padding-bottom: 84px; }
.srail__box { border-bottom: 1px solid var(--line); padding-bottom: 14px; }
.srail__head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.srail__head h2 { font-size: 16px; margin: 0; color: var(--muted); font-family: var(--font-body); font-weight: 700; }
.srail__head a { font-size: 14px; font-weight: 600; }
.srail__empty { font-size: 14px; margin: 0; }
.srail__foot { font-size: 13px; }
.scontacts, .sshows, .sbdays { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.scontacts a, .sshows a, .sbdays a { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 12px; color: var(--ink); text-decoration: none; font-weight: 600; min-height: 44px; }
.scontacts a:hover, .sshows a:hover, .sbdays a:hover { background: var(--paper-2); }
.scontacts span, .sshows span:last-child, .sbdays span { display: grid; line-height: 1.25; min-width: 0; }
.scontacts small, .sshows small, .sbdays small { color: var(--muted); font-weight: 500; font-size: 13px; }
.scontacts .navbadge { margin-left: auto; }
.sdate { flex: none; width: 44px; height: 44px; border-radius: 12px; background: var(--pine-soft); color: var(--pine); display: grid !important; place-items: center; text-align: center; font-size: 11px; font-weight: 700; text-transform: uppercase; line-height: 1; }
.sdate b { font-size: 18px; display: block; }

/* Javaslatok */
.ssug-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ssug-list--grid { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; margin-top: 12px; }
.ssug { display: grid; gap: 8px; }
.ssug-list--grid .ssug { border: 1px solid var(--line); border-radius: 16px; padding: 12px; align-content: space-between; }
.ssug__who { display: flex; gap: 10px; align-items: center; color: var(--ink); text-decoration: none; min-width: 0; position: relative; }
.ssug__who > span:last-child { display: grid; min-width: 0; line-height: 1.3; }
.ssug__who strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ssug__who small { color: var(--muted); font-size: 13px; }
.ssug__more { font-size: 12.5px !important; }
.ssug__pic { position: relative; flex: none; display: inline-flex; }
.ssug__pet { position: absolute; right: -4px; bottom: -4px; width: 24px; height: 24px; border-radius: 50%; object-fit: cover; border: 2px solid var(--surface); background: var(--paper-2); }
.ssug__pet.is-paw { padding: 3px; object-fit: contain; }
.ssug__act { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.ssug--compact .ssug__act { padding-left: 50px; }
.ssug__act form[data-soc-dismiss] { margin-left: auto; }

/* Javaslatsor a hírfolyamban */
.sstrip { padding: 14px 0 14px 16px; }
.sstrip .srail__head { padding-right: 16px; }
.sstrip__list { list-style: none; margin: 0; padding: 0 16px 4px 0; display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.sstrip__card { flex: 0 0 156px; scroll-snap-align: start; border: 1px solid var(--line); border-radius: 16px; padding: 0 0 10px; display: grid; gap: 8px; overflow: hidden; }
.sstrip__who { display: grid; gap: 2px; color: var(--ink); text-decoration: none; text-align: center; }
.sstrip__who strong { padding: 6px 8px 0; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sstrip__who small { padding: 0 8px; color: var(--muted); font-size: 12.5px; line-height: 1.3; min-height: 2.6em; }
.sstrip__img { width: 100%; height: 120px; object-fit: cover; display: grid; place-items: center; background: var(--paper-2); }
.sstrip__img.is-paw { padding: 28px; object-fit: contain; }
.sstrip__card .sfollow { padding: 0 8px; }

/* Keresés */
.ssearch { display: flex; gap: 8px; flex: 1 1 280px; max-width: 420px; }
.ssearch input { flex: 1; min-width: 0; border-radius: 999px; min-height: 44px; padding: 10px 16px 10px 42px;
  background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23887F99' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") no-repeat 15px center / 18px 18px; }
.ssearch .btn { min-height: 44px; border-radius: 999px; padding-inline: 20px; }

/* --- Profil ----------------------------------------------------------------------------- */
/* overflow: visible, hogy a „…” menü ne vágódjon le; a borító lekerekítését maga a borító adja. */
.sprofile { padding: 0 !important; overflow: visible; }
.sprofile > .sprofile__cover:first-child { border-radius: inherit; border-bottom-left-radius: 0; border-bottom-right-radius: 0; overflow: hidden; }
.sprofile__cover { height: 150px; background: linear-gradient(135deg, var(--pine-soft), var(--butter-soft)); }
.sprofile__head { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: flex-start; padding: 0 20px 16px; }
.sprofile__pic { border-radius: 50%; border: 4px solid var(--surface); background: var(--surface); flex: none; display: inline-flex; margin-top: -56px; }
.sprofile__id { padding-top: 10px; }
.sprofile__act { padding-top: 12px; margin-left: auto; }
.sprofile__id { flex: 1 1 220px; min-width: 0; }
.sprofile__id h1 { margin: 0; font-size: 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; overflow-wrap: anywhere; }
.sprofile__id p { margin: 2px 0 0; }
.sprofile__counts { color: var(--muted); }
.sprofile__counts a { color: var(--muted); text-decoration: none; }
.sprofile__counts a:hover { text-decoration: underline; }
.sprofile__counts strong { color: var(--ink); }
.sprofile__mutual { font-size: 14px; }
.sprofile__act { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.sprofile__act details { position: relative; }
.spetrow { list-style: none; margin: 0; padding: 4px 20px 18px; display: flex; gap: 14px; overflow-x: auto; }
.spetrow--wrap { flex-wrap: wrap; padding: 6px 0 0; }
.spetrow a { display: grid; justify-items: center; gap: 4px; width: 92px; text-align: center; color: var(--ink); text-decoration: none; }
.spetrow strong { font-size: 15px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.spetrow small { color: var(--muted); font-size: 12.5px; line-height: 1.25; }
.sphotos { list-style: none; margin: 0; padding: 0 20px 20px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.sphotos a { display: block; aspect-ratio: 1; overflow: hidden; border-radius: 10px; }
.sphotos img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 560px) {
  .sprofile__head { padding: 0 14px 14px; }
  .sprofile__id { flex-basis: 100%; padding-top: 0; }
  .sprofile__act { margin-left: 0; padding-top: 0; }
  .sprofile__cover { height: 110px; }
  .sprofile__id h1 { font-size: 24px; }
}

/* Üzenetkérés űrlap */
.sreq { position: relative; display: inline-block; }
.sreq > summary { list-style: none; cursor: pointer; }
.sreq > summary::-webkit-details-marker { display: none; }
.sreq__form {
  position: absolute; z-index: 15; right: 0; top: calc(100% + 6px); width: min(340px, calc(100vw - 32px)); display: grid; gap: 8px; padding: 14px;
  background: var(--surface); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow-lift);
}
.ssug .sreq__form { left: 0; right: auto; }
.sreq__form p { margin: 0; font-size: 14px; }
.sreq__form textarea { width: 100%; }

/* --- Csevegődokk ------------------------------------------------------------------------ */
.sdock { position: fixed; right: 20px; bottom: 0; z-index: 35; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; pointer-events: none; }
.sdock > * { pointer-events: auto; }
.sdock__pill {
  display: inline-flex; align-items: center; gap: 8px; margin-bottom: 16px; padding: 10px 18px; border-radius: 999px;
  border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; font-weight: 700; cursor: pointer; box-shadow: var(--shadow-lift);
}
.sdock__pill:hover { background: var(--paper-2); }
.sdock__win {
  width: 340px; height: min(480px, calc(100dvh - 160px)); display: flex; flex-direction: column; overflow: hidden;
  background: var(--surface); border: 1px solid var(--line); border-radius: 16px 16px 0 0; box-shadow: 0 10px 40px -10px rgba(0, 0, 0, .35);
}
.sdock__win[hidden] { display: none; }
.sdock__bar { display: flex; align-items: center; gap: 4px; padding: 6px 6px 6px 8px; border-bottom: 1px solid var(--line); }
.sdock__bar strong { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sdock__list { flex: 1; overflow-y: auto; padding: 6px; }
.sdock__list[hidden] { display: none; }
.sdock__row { display: flex; width: 100%; gap: 10px; align-items: center; padding: 8px; border: 0; border-radius: 12px; background: none; font: inherit; color: var(--ink); text-align: left; cursor: pointer; }
.sdock__row:hover { background: var(--paper-2); }
.sdock__row span:nth-child(2) { display: grid; min-width: 0; flex: 1; line-height: 1.3; }
.sdock__row strong, .sdock__row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sdock__row small { color: var(--muted); font-size: 13px; }
.sdock__row.is-unread strong, .sdock__row.is-unread small { color: var(--ink); font-weight: 700; }
.sdock__thread { flex: 1; display: flex; flex-direction: column; min-height: 0; }
.sdock__thread[hidden] { display: none; }
.sdock__msgs { flex: 1; overflow-y: auto; list-style: none; margin: 0; padding: 10px; display: flex; flex-direction: column; gap: 4px; }
.sdock__msg { max-width: 80%; align-self: flex-start; background: var(--paper-2); border-radius: 16px; padding: 7px 12px; overflow-wrap: anywhere; white-space: pre-wrap; font-size: 15px; }
.sdock__msg.is-mine { align-self: flex-end; background: var(--pine); color: var(--on-pine); }
.sdock__msg.is-deleted { font-style: italic; opacity: .7; }
.sdock__msg img { max-width: 100%; border-radius: 10px; display: block; }
.sdock__receipt { align-self: flex-end; font-size: 12px; color: var(--muted); }
.sdock__typing { margin: 0; padding: 0 12px 4px; font-size: 13px; }
.sdock__form { display: flex; align-items: flex-end; gap: 4px; padding: 6px; border-top: 1px solid var(--line); }
.sdock__form textarea { flex: 1; min-width: 0; resize: none; border: 0; border-radius: 18px; background: var(--paper-2); padding: 8px 12px; font: inherit; color: var(--ink); max-height: 120px; min-height: 38px; }
.sdock__empty { padding: 16px; color: var(--muted); font-size: 14px; }
@media (max-width: 999px) { .sdock { display: none !important; } }
@media print { .sdock, .sshell__left, .sshell__right { display: none !important; } }

/* --- Üzenetek oldal a keretben ------------------------------------------------------- */
.chat--shell { height: calc(100dvh - 92px); }
.chat-av { position: relative; display: inline-flex; flex: none; }
.chat-reqlink { display: flex; align-items: center; gap: 10px; margin: 0 8px 6px; padding: 10px 12px; border-radius: 14px; background: var(--pine-soft); color: var(--ink); text-decoration: none; }
.chat-reqlink span:nth-child(2) { display: grid; flex: 1; line-height: 1.25; }
.chat-reqlink small { color: var(--muted); font-size: 13px; }
.chat-reqlink__ic { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--surface); color: var(--pine); }
.chat-reqlink.is-active { outline: 2px solid var(--pine); }
.chat-reqs { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.chat-req { border: 1px solid var(--line); border-radius: 16px; padding: 14px; display: grid; gap: 10px; }
.chat-req__who { display: flex; gap: 10px; align-items: center; color: var(--ink); text-decoration: none; }
.chat-req__who span:last-child { display: grid; line-height: 1.3; }
.chat-req__body { background: var(--paper-2); border-radius: 14px; padding: 10px 14px; overflow-wrap: anywhere; }
.chat-req__act { display: flex; flex-wrap: wrap; gap: 8px; }
.chat-req__act form { margin: 0; }
.chat-head__presence { display: block; font-size: 13px; color: var(--muted); }
.chat-head__presence.is-online { color: var(--good); font-weight: 600; }
.chat-head__presence.is-online::before { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #2FA36B; margin-right: 6px; }
@media (max-width: 800px) {
  .chat--shell { height: calc(100dvh - 84px); }
}
@media (max-width: 760px) {
  .page-chat .chat--shell { height: calc(100dvh - 84px - 66px); }
  .page-chat:has(.chat--open) .chat--shell { height: calc(100dvh - 76px); }
}

@media (prefers-reduced-motion: reduce) { .sfeed__more.is-loading::after { animation: none; } }

/* Szerkesztés helyben és értesítő buborék */
.sedit { display: grid; gap: 8px; margin-top: 10px; }
.sedit textarea { width: 100%; border-radius: 14px; }
.sedit__bar { display: flex; gap: 8px; justify-content: flex-end; }
.stoast {
  position: fixed; left: 50%; bottom: 24px; z-index: 60; transform: translate(-50%, 20px); opacity: 0; pointer-events: none;
  max-width: calc(100vw - 32px); padding: 10px 18px; border-radius: 999px; background: var(--ink); color: var(--paper); font-weight: 600;
  transition: opacity .2s ease, transform .2s ease;
}
.stoast.is-on { opacity: 1; transform: translate(-50%, 0); }
.stoast.is-bad { background: var(--bad); color: #fff; }
@media (max-width: 760px) { .stoast { bottom: calc(80px + env(safe-area-inset-bottom, 0px)); } }

/* A kerek profilkép mindig a borító fölött legyen (Safari ezt másképp rétegezte, és a kör teteje levágódott). */
.sprofile__cover { position: relative; z-index: 0; }
.sprofile__head { position: relative; z-index: 1; }
.sprofile__pic { position: relative; z-index: 2; }
.sprofile__pic img.spet { display: block; border-radius: 50%; object-fit: cover; }
.sdock__note { align-self: center; max-width: 92%; margin: 6px 0; padding: 8px 12px; border-radius: 12px; background: var(--paper-2); color: var(--muted); font-size: 13px; line-height: 1.4; text-align: center; }
.sdock__form[hidden] { display: none; }

/* Csevegődokk: eszközök (fotó, hangulatjel), csatolt fotó előnézete, hangulatjel-választó. */
.sdock__win { width: 360px; }
.sdock__form { align-items: center; gap: 2px; padding: 8px 6px; }
.sdock__tool { flex: none; color: var(--pine); }
.sdock__tool span { font-size: 19px; line-height: 1; }
.sdock__form textarea { border-radius: 20px; }
.sdock__emoji { display: grid; grid-template-columns: repeat(8, 1fr); gap: 2px; padding: 8px; border-top: 1px solid var(--line); max-height: 150px; overflow-y: auto; background: var(--surface); }
.sdock__emoji[hidden] { display: none; }
.sdock__emoji button { border: 0; background: none; font-size: 21px; line-height: 1; padding: 5px 0; border-radius: 8px; cursor: pointer; }
.sdock__emoji button:hover, .sdock__emoji button:focus-visible { background: var(--paper-2); outline: none; }
.sdock__attach { display: flex; align-items: center; gap: 8px; padding: 8px 10px 0; font-size: 13px; color: var(--muted); }
.sdock__attach[hidden] { display: none; }
.sdock__attach img { width: 44px; height: 44px; object-fit: cover; border-radius: 10px; }
.sdock__attach span { flex: 1; }
/* Ha nyitva a csevegőablak, az AI-gomb a dokk mellé, balra kerül, hogy ne takarja a küldést. */
body:has(.sdock__win:not([hidden])) .aifab { right: 396px; bottom: 24px; }
body:has(.sdock__win:not([hidden])) .aifab__label { display: none; }
@media (min-width: 1200px) { .sshell:has(#rail-sug) .sstrip { display: none; } }

/* A görgethető oldalsávok görgetősávja ne lógjon a szövegbe (Safari/macOS: mindig látszó sáv). */
.sshell__left, .sshell__right { scrollbar-gutter: stable; padding-right: 10px; }
.sact__emo { font-size: 20px; line-height: 1; }

/* z58: további reakciók a „+” mögött */
.sreact-more { position: relative; display: inline-block; }
.sreact-more > summary { list-style: none; cursor: pointer; font-weight: 800; }
.sreact-more > summary::-webkit-details-marker { display: none; }
.sreact-more__pop { position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); display: flex; gap: 2px; padding: 4px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); box-shadow: 0 12px 28px -12px rgba(30, 20, 60, .45); z-index: 5; }
.sreact-more__pop form { margin: 0; }
.sreact-more__pop .sact { padding: 6px 8px; }
.sreact-more__pop .sact__emo { font-size: 20px; }

/* assets/css/mod-feedads.css */
/* Hírfolyam-hirdetések (includes/modules/feed_ads.php) */
.sad { padding: 14px 16px; border: 1px solid color-mix(in srgb, var(--gold, #d9a441) 35%, transparent); }
.sad__label { margin: 0 0 10px; font-size: .78rem; font-weight: 700; letter-spacing: .02em; color: var(--muted); text-transform: uppercase; }
.sad__label span { font-weight: 600; text-transform: none; letter-spacing: 0; }
.sad__link { display: flex; gap: 14px; align-items: stretch; color: inherit; text-decoration: none; border-radius: 14px; }
.sad__link:hover strong { text-decoration: underline; }
.sad__img { flex: 0 0 132px; aspect-ratio: 1; border-radius: 12px; overflow: hidden; background: color-mix(in srgb, var(--pine) 10%, transparent); }
.sad__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sad__txt { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.sad__txt strong { font-size: 1.02rem; line-height: 1.3; }
.sad__txt > span:not(.sad__cta) { color: var(--muted); font-size: .92rem; line-height: 1.45; overflow-wrap: anywhere; }
.sad__cta { margin-top: auto; align-self: flex-start; padding: 7px 14px; border-radius: 999px; font-weight: 700; font-size: .88rem;
  background: var(--pine); color: #fff; }
@media (max-width: 560px) {
  .sad__link { flex-direction: column; }
  .sad__img { flex-basis: auto; aspect-ratio: 16 / 9; }
}

/* assets/css/mod-food.css */
/* Tápja (tapja.php), a kedvenc kártyája, a kuponok tápos része és a gondozási lap Etetés része */

.fd-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 16px; align-items: start; padding-bottom: 64px; }
.fd-main, .fd-side { display: grid; gap: 16px; min-width: 0; }
.fd-main > .card + .card, .fd-side > .card + .card { margin-top: 0; }
@media (max-width: 900px) { .fd-layout { grid-template-columns: minmax(0, 1fr); } }

.fd-empty { text-align: center; padding: 28px 20px; }
.fd-empty h2 { margin: 10px 0 4px; font-size: 22px; }
.fd-empty p { margin: 0; }
.fd-empty__icon { display: inline-grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: var(--pine-soft); color: var(--pine); }

/* Egy táp */
.fd-food { display: grid; gap: 14px; min-width: 0; }
.fd-food__head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.fd-food__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--r-sm); background: var(--pine-soft); color: var(--pine); }
.fd-food__title h2 { margin: 0; font-size: 21px; line-height: 1.15; overflow-wrap: anywhere; }
.fd-food__title p { margin: 2px 0 0; color: var(--muted); font-weight: 600; overflow-wrap: anywhere; }

.fd-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; }
.fd-facts > div { min-width: 0; padding: 10px 12px; border-radius: var(--r-sm); background: var(--paper-2, var(--pine-soft)); }
.fd-facts dt { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.fd-facts dd { margin: 2px 0 0; font-weight: 700; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.fd-facts__sub { display: block; font-size: 12px; font-weight: 500; color: var(--muted); }
@media (max-width: 480px) { .fd-facts { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .fd-facts > div:last-child { grid-column: 1 / -1; } }

.fd-runbox { display: grid; gap: 8px; padding: 12px 14px; border-radius: var(--r-md); background: var(--good-soft); }
.fd-runbox--soon { background: var(--warn-soft); }
.fd-runbox--out { background: var(--bad-soft); }
.fd-runbox__text { display: flex; align-items: flex-start; gap: 8px; margin: 0; }
.fd-runbox__text svg { flex: none; margin-top: 2px; color: var(--good); }
.fd-runbox--soon .fd-runbox__text svg { color: var(--warn); }
.fd-runbox--out .fd-runbox__text svg { color: var(--bad); }
.fd-runbox__sub { margin: 0; font-size: 14px; }
.fd-meter { height: 8px; border-radius: 999px; background: color-mix(in srgb, var(--ink) 10%, transparent); overflow: hidden; }
.fd-meter span { display: block; height: 100%; border-radius: inherit; background: var(--good); }
.fd-runbox--soon .fd-meter span { background: var(--warn); }
.fd-runbox--out .fd-meter span { background: var(--bad); }

.fd-hint { margin: 0; font-size: 14px; }
.fd-food__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.fd-food__actions form { margin: 0; }
.fd-food__actions .btn { display: inline-flex; align-items: center; gap: 6px; }
.fd-del { color: var(--bad); }

.fd-edit { border-top: 1px solid var(--line); padding-top: 10px; }
.fd-edit > summary { cursor: pointer; font-weight: 700; color: var(--pine); width: max-content; max-width: 100%; }
.fd-edit[open] > summary { margin-bottom: 12px; }

.fd-coupons { display: grid; gap: 10px; border-top: 1px solid var(--line); padding-top: 12px; }
.fd-coupons h3 { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 16px; }
.fd-coupons h3 svg { color: var(--pine); flex: none; }

/* Űrlap */
.fd-form { display: grid; gap: 14px; }
.fd-form .grid-2 > *, .fd-form__nums > * { min-width: 0; }
.fd-types { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fd-types .choice__item span { min-height: 44px; padding: 10px 6px; font-size: 15px; }
@media (max-width: 420px) { .fd-types { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fd-side .fd-types { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fd-side .fd-form .grid-2 { grid-template-columns: minmax(0, 1fr); }
.fd-form__nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.fd-side .fd-form__nums { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.fd-side .fd-form__nums > :last-child { grid-column: 1 / -1; }
@media (max-width: 560px) { .fd-form__nums { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .fd-form__nums > :last-child { grid-column: 1 / -1; } }
.fd-pack { display: grid; grid-template-columns: minmax(0, 1fr) 72px; gap: 6px; }
.fd-pack input, .fd-pack select { min-width: 0; width: 100%; }
.fd-form__actions { display: flex; justify-content: flex-start; }
.fd-info h2 { display: flex; align-items: center; gap: 8px; font-size: 18px; }
.fd-info h2 svg { color: var(--pine); flex: none; }
.fd-info p { margin: 0 0 10px; }

/* Kártya a kedvenc oldalán */
.fd-card__empty { margin: 0 0 10px; }
.fd-card .btn { display: inline-flex; align-items: center; gap: 6px; }
.fd-mini { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.fd-mini__item { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: start; }
.fd-mini__icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: var(--r-sm); background: var(--pine-soft); color: var(--pine); }
.fd-mini__body { display: grid; gap: 1px; min-width: 0; }
.fd-mini__body strong { overflow-wrap: anywhere; }
.fd-mini__body .muted { font-size: 14px; }
.fd-runout { display: inline-flex; align-items: flex-start; gap: 5px; margin-top: 3px; font-size: 14px; font-weight: 700; color: var(--good); }
.fd-runout svg { flex: none; margin-top: 2px; }
.fd-runout--soon { color: var(--warn); }
.fd-runout--out { color: var(--bad); }
.fd-card__coupons { margin: 12px 0 0; }
.fd-card__coupons a { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }

/* Kuponjaim: a kedvencek tápjához */
.fd-forfood { display: grid; gap: 8px; margin-bottom: 28px; padding: 18px; border-radius: var(--r-lg); background: var(--pine-soft); }
.fd-forfood h2 { display: flex; align-items: center; gap: 8px; margin: 0; }
.fd-forfood h2 svg { color: var(--pine); flex: none; }
.fd-forfood > p { margin: 0 0 6px; }
.fd-forfood-hint { margin: 0 0 20px; }
.fd-tipnote { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 16px; }
.fd-tipnote svg { flex: none; margin-top: 2px; color: var(--pine); }

/* Gondozási lap: Etetés */
.fd-care-wrap { margin-top: 8px; }
.fd-care { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.fd-care li { overflow-wrap: anywhere; }
.fd-care-note { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 6px !important; font-size: 13px; }

/* Admin: kupon márkái, katalógus */
.fd-adminbrands { border: 1px solid var(--line); border-radius: var(--r-md); padding: 12px 14px; margin: 0; min-width: 0; }
.fd-adminbrands legend { font-weight: 700; padding: 0 4px; }
.fd-adminbrands__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 6px 12px; max-height: 260px; overflow-y: auto; }
.fd-admincat h3 { margin: 0 0 4px; font-size: 17px; }

@media print {
  .fd-care-note { display: none; }
}

/* Etetés módja: a mezők a választott módhoz igazodnak (JS nélkül, :has) */
.fd-modes { margin-top: 4px; }
.fd-form .fd-only-auto, .fd-form .fd-only-szabad { display: none; }
.fd-form:has(input[name="mode"][value="automata"]:checked) .fd-only-auto { display: grid; }
.fd-form:has(input[name="mode"][value="automata"]:checked) p.fd-only-auto { display: block; }
.fd-form:has(input[name="mode"][value="szabad"]:checked) .fd-only-szabad { display: block; }
.fd-form:has(input[name="mode"][value="automata"]:checked) .fd-not-auto,
.fd-form:has(input[name="mode"][value="szabad"]:checked) .fd-only-adag { display: none; }
.fd-share small { flex-basis: 100%; }

/* Kártya: mód, közös táp, ki mennyit eszik */
.fd-tags { margin: -4px 0 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.chip--soft { background: var(--pine-soft); color: var(--pine); }
.fd-eaters { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 6px; }
.fd-eaters li { display: grid; grid-template-columns: minmax(80px, auto) auto 1fr; gap: 4px 12px; align-items: baseline; padding: 8px 12px; border-radius: var(--r-sm); background: var(--paper-2, var(--pine-soft)); }
.fd-eaters li > span { font-weight: 700; font-variant-numeric: tabular-nums; }
.fd-eaters small { font-size: 13px; }
@media (max-width: 560px) { .fd-eaters li { grid-template-columns: auto 1fr; } .fd-eaters small { grid-column: 1 / -1; } }
.fd-modes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fd-modes .choice__item span { min-height: 44px; padding: 10px 6px; font-size: 14.5px; text-align: center; }
@media (max-width: 420px) { .fd-modes { grid-template-columns: minmax(0, 1fr); } }

/* assets/css/mod-groups-ext.css */
/* z58: csoportszabályok elfogadása, hivatalos csoport, jóváhagyás, ajánló kártya */
.grpx-official { background: color-mix(in srgb, var(--pine) 14%, var(--surface)); color: var(--pine); font-weight: 800; font-size: 12px; vertical-align: middle; }
.grpx-join { display: grid; gap: 8px; max-width: 460px; }
.grpx-join--hero { justify-items: start; }
.grpx-join__rules > summary { cursor: pointer; font-weight: 700; color: var(--pine); }
.grpx-join__rules[open] { padding: 10px 12px; border-radius: 12px; background: var(--paper-2, var(--pine-soft)); max-height: 320px; overflow: auto; }
.grpx-join__ok { font-size: 14px; }
.grpx-rules h3 { font-size: 1rem; margin: 12px 0 6px; }
.grpx-rules h3:first-child { margin-top: 0; }
.grpx-rules ol { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.grpx-rules--compact { font-size: 14px; }
.grpx-welcome { margin-bottom: 12px; }
.grpx-hint { margin: -4px 0 12px; }
.grpx-pend { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.grpx-pend__item { padding: 12px; border: 1px solid var(--line); border-radius: 14px; display: grid; gap: 8px; }
.grpx-pend__head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.grpx-prompt { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 16px; border: 1px solid color-mix(in srgb, var(--pine) 30%, var(--line)); background: linear-gradient(135deg, color-mix(in srgb, var(--pine) 10%, var(--surface)), var(--surface) 70%); }
.grpx-prompt__ic { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: var(--pine); color: #fff; flex: none; }
.grpx-prompt__body { flex: 1; min-width: 0; display: grid; gap: 6px; }
.grpx-prompt__body h2 { margin: 0; font-size: 1.3rem; }
.grpx-prompt__body .muted { margin: 0 0 4px; }
.grpx-prompt__eyebrow { margin: 0; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--pine); }
.grpx-prompt__later { margin: 0; }
@media (max-width: 560px) { .grpx-prompt { flex-direction: column; } }

/* Profilkép és Facebook-szerű fejléc */
.grpx-ava { display: grid; place-items: center; overflow: hidden; border-radius: 22px; background: linear-gradient(135deg, hsl(var(--h, 260) 45% 62%), hsl(calc(var(--h, 260) + 40) 50% 42%)); color: #fff; font-family: var(--font-display); font-weight: 800; flex: none; }
.grpx-ava img { width: 100%; height: 100%; object-fit: cover; display: block; }
.grpx-ava:not(.is-empty) { background: var(--surface); }
.grpx-ava--hero { width: clamp(84px, 11vw, 132px); height: clamp(84px, 11vw, 132px); font-size: clamp(34px, 5vw, 56px); margin-top: calc(clamp(84px, 11vw, 132px) * -0.55); border: 5px solid var(--surface); box-shadow: 0 10px 24px -12px rgba(30, 20, 60, .5); position: relative; z-index: 1; }
.grp-one .grp-hero__body { align-items: flex-end; flex-wrap: nowrap; justify-content: flex-start; padding: 0 20px 12px; }
.grp-one .grp-hero__title { flex: 1; min-width: 0; padding-top: 12px; }
.grp-one .grp-hero__acts { padding-top: 12px; }
.grpx-ava--card { width: 46px; height: 46px; border-radius: 14px; font-size: 20px; margin-top: -32px; border: 3px solid var(--surface); box-shadow: 0 6px 14px -8px rgba(30, 20, 60, .5); position: relative; }
.grp-cover--hero { height: clamp(150px, 26vw, 320px); }
.grp-cols[aria-busy="true"] { opacity: .6; transition: opacity .15s; }
@media (max-width: 760px) {
  .grp-one .grp-hero__body { flex-wrap: wrap; }
  .grp-one .grp-hero__acts { width: 100%; padding-top: 0; }
}
/* Az Áttekintésen tömörebb ajánló */
.grpx-prompt { padding: 14px 16px; gap: 12px; align-items: center; }
.grpx-prompt__ic { width: 44px; height: 44px; border-radius: 14px; }
.grpx-prompt__body { gap: 2px; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 14px; }
.grpx-prompt__body > :not(.grpx-join):not(.grpx-prompt__later) { grid-column: 1; }
.grpx-prompt__body h2 { font-size: 1.1rem; }
.grpx-prompt__body .muted { font-size: .9rem; }
.grpx-prompt .grpx-join { grid-column: 1 / -1; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; max-width: none; gap: 6px 12px; }
.grpx-prompt .grpx-join__rules { grid-column: 1; }
.grpx-prompt .grpx-join__rules[open] { grid-column: 1 / -1; grid-row: 2; }
.grpx-prompt .grpx-join__ok { grid-column: 2; font-size: 13px; }
.grpx-prompt .grpx-join .btn { grid-column: 3; }
.grpx-prompt__later { position: absolute; right: 14px; top: 10px; }
.grpx-prompt { position: relative; }
@media (max-width: 720px) { .grpx-prompt .grpx-join { grid-template-columns: minmax(0, 1fr); } .grpx-prompt .grpx-join > * { grid-column: 1 !important; } }
@media (max-width: 560px) {
  .grpx-prompt { flex-direction: row; align-items: flex-start; }
  .grpx-prompt__ic { width: 36px; height: 36px; border-radius: 11px; }
  .grpx-prompt__ic svg { width: 20px; height: 20px; }
  .grpx-prompt__body .muted { display: none; }
  .grpx-prompt__later { top: 8px; right: 10px; font-size: 13px; }
}
@media (max-width: 760px) {
  .grp-one .grp-hero__body { flex-direction: column; align-items: flex-start; gap: 6px; padding: 0 16px 12px; }
  .grp-one .grp-hero__title { padding-top: 0; }
  .grpx-ava--hero { width: 88px; height: 88px; font-size: 36px; margin-top: -48px; border-width: 4px; }
}
.grpx-official { white-space: nowrap; display: inline-flex; }

/* Csoport profilkép: kattintásra nagyban, adminnak kamera gomb a jobb alsó sarokban. */
.grpx-avawrap { position: relative; flex: none; margin-top: calc(clamp(84px, 11vw, 132px) * -0.55); z-index: 2; }
.grpx-avawrap .grpx-ava--hero { margin-top: 0; }
.grpx-avabtn { display: block; padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: 22px; }
.grpx-avabtn:focus-visible { outline: 3px solid var(--pine); outline-offset: 3px; }
.grpx-avabtn:hover .grpx-ava img { filter: brightness(.94); }
.grpx-cam { position: absolute; right: -6px; bottom: -6px; z-index: 3; }
.grpx-cam > summary { list-style: none; }
.grpx-cam > summary::-webkit-details-marker { display: none; }
.grpx-cam__btn { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; background: var(--paper-2); color: var(--ink); border: 3px solid var(--surface); box-shadow: 0 4px 12px -4px rgba(30, 20, 60, .45); transition: transform .12s, background .12s; }
.grpx-cam__btn:hover { transform: scale(1.06); background: var(--pine-soft); }
.grpx-cam.is-busy .grpx-cam__btn { opacity: .6; pointer-events: none; }
.grpx-cam__menu { position: absolute; left: 0; top: calc(100% + 8px); min-width: 250px; padding: 6px; border-radius: 14px; background: var(--surface); box-shadow: 0 16px 40px -14px rgba(30, 20, 60, .45), 0 0 0 1px var(--line); display: grid; gap: 2px; }
.grpx-cam__form { display: contents; }
.grpx-cam__item { display: block; width: 100%; white-space: nowrap; text-align: left; padding: 10px 12px; border: 0; border-radius: 10px; background: none; color: inherit; font: inherit; font-weight: 600; cursor: pointer; }
.grpx-cam__item:hover, .grpx-cam__item:focus-within, .grpx-cam__item:focus-visible { background: var(--pine-soft); }
.grpx-cam__item--danger { color: var(--bad); }
@media (max-width: 760px) {
  .grpx-avawrap { margin-top: -48px; }
  .grpx-cam__btn { width: 32px; height: 32px; }
}

/* Borító szerkesztése (adminnak) és a Bundee borítógaléria. */
header.grp-hero.card { overflow: visible; position: relative; }
.grpx-coverwrap { position: relative; }
.grpx-coverwrap > .grp-cover--hero { border-radius: var(--r-lg) var(--r-lg) 0 0; }
.grpx-cam.grpx-cam--cover { position: absolute; right: 14px; bottom: 14px; top: auto; z-index: 4; }
.grpx-cam--cover .grpx-cam__menu { left: auto; right: 0; }
.grpx-coverbtn { list-style: none; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 12px; cursor: pointer; font-weight: 700; font-size: 14px;
  background: var(--surface-glass); color: var(--ink); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 6px 18px -8px rgba(20, 12, 40, .5); }
.grpx-coverbtn::-webkit-details-marker { display: none; }
.grpx-coverbtn:hover { background: var(--surface); }
.grpx-cam__menu { z-index: 5; }
.grpx-themes { width: min(860px, calc(100vw - 32px)); max-height: calc(100vh - 48px); border: 0; border-radius: var(--r-lg); padding: 20px; background: var(--surface); color: var(--ink); box-shadow: 0 30px 80px -30px rgba(20, 12, 40, .6); }
.grpx-themes::backdrop { background: rgba(20, 14, 32, .55); }
.grpx-themes__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.grpx-themes__head h2 { margin: 0; font-size: 20px; }
.grpx-themes__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin-top: 14px; }
.grpx-theme { display: grid; gap: 6px; padding: 0 0 8px; border: 2px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--paper); color: inherit; font: inherit; text-align: left; cursor: pointer; transition: border-color .12s, transform .12s; }
.grpx-theme img { width: 100%; aspect-ratio: 5 / 2; object-fit: cover; display: block; }
.grpx-theme span { padding: 0 10px; font-weight: 600; font-size: 14px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.grpx-theme b { font-size: 11px; font-weight: 700; padding: 2px 7px; border-radius: 999px; background: var(--good-soft); color: var(--good); }
.grpx-theme:hover { border-color: var(--pine); transform: translateY(-1px); }
.grpx-theme.is-on { border-color: var(--pine); box-shadow: 0 0 0 2px var(--pine) inset; }
.grpx-themes.is-busy .grpx-themes__grid { opacity: .6; pointer-events: none; }
@media (max-width: 760px) {
  .grpx-cam.grpx-cam--cover { right: 10px; bottom: 10px; }
  .grpx-coverbtn span { display: none; }
  .grpx-coverbtn { padding: 9px; }
  .grpx-themes__grid { grid-template-columns: 1fr 1fr; }
}
.grp-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .grp-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .grp-grid--4 { grid-template-columns: 1fr; } }
.grp-more { margin-top: 12px; }
.grp-more > summary { list-style: none; }
.grp-more > summary::-webkit-details-marker { display: none; }
.grp-more[open] > summary { display: none; }
.grp-cover.is-theme img { object-position: center 40%; }
/* Kör alakú csoport-profilkép. */
.grpx-ava, .grpx-ava--hero, .grpx-ava--card, .grpx-avabtn { border-radius: 50%; }
.grpx-cam:not(.grpx-cam--cover) { right: 2px; bottom: 2px; }
/* Meghívó link megosztása. */
.grpx-share__h { font-size: 15px; margin: 6px 0 6px; }
.grpx-share { margin-bottom: 14px; }
.grpx-share__row { display: flex; gap: 8px; margin-top: 8px; }
.grpx-share__in { flex: 1; min-width: 0; height: 38px; padding: 0 12px; border-radius: 10px; border: 0; background: var(--paper-2); color: var(--ink); font-size: 13.5px; }
.grpx-share__apps { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.grpx-share__reset { margin: -6px 0 12px; font-size: 13px; }
@media (max-width: 560px) { .grpx-share__row { flex-direction: column; } }

/* assets/css/mod-groups.css */
/* Csoportok (csoportok.php, csoport.php) */
.grp-page { padding-bottom: 48px; }
.grp-search { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; gap: 10px; align-items: center; padding: 12px; margin-bottom: 16px; }
.grp-search__q { display: flex; align-items: center; gap: 8px; padding: 0 12px; border-radius: 12px; border: 1px solid var(--line); background: var(--paper); color: var(--muted); min-width: 0; }
.grp-search__q input { border: 0; background: none; padding: 11px 0; width: 100%; min-width: 0; font: inherit; color: var(--ink); outline: none; }
.grp-search select { padding: 10px 12px; border-radius: 12px; border: 1px solid var(--line); background: var(--paper); font: inherit; color: var(--ink); max-width: 200px; }
.grp-tabs { margin-bottom: 16px; flex-wrap: wrap; }
.grp-tabs small { font-size: 12px; padding: 1px 7px; border-radius: 999px; background: var(--paper-2); }
.grp-h { font-size: 18px; margin: 18px 0 10px; }
.grp-grid { list-style: none; margin: 0 0 8px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; }
.grp-card { display: flex; flex-direction: column; overflow: hidden; height: 100%; padding: 0; text-decoration: none; color: inherit; transition: transform .15s, box-shadow .15s; }
.grp-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lift); }
.grp-card__body { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px 14px; align-items: flex-start; }
.grp-card__body strong { font-size: 16px; line-height: 1.3; }
.grp-card__cat { color: var(--pine); font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.grp-cover { display: grid; place-items: center; aspect-ratio: 16 / 7; width: 100%; overflow: hidden;
  background: linear-gradient(135deg, hsl(var(--h) 45% 62%), hsl(calc(var(--h) + 40) 50% 42%)); color: #fff; font-family: var(--font-display); font-size: 40px; font-weight: 800; }
.grp-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.grp-cover--hero { aspect-ratio: auto; height: clamp(140px, 24vw, 260px); font-size: 64px; }
.grp-hero { padding: 0; overflow: hidden; margin: 6px 0 16px; }
.grp-hero__body { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; padding: 16px 20px 8px; }
.grp-hero__body h1 { margin: 0 0 4px; font-size: clamp(24px, 3.4vw, 34px); }
.grp-hero__body p { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.grp-hero__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.grp-hero__acts form { margin: 0; }
.grp-tabs-in { display: flex; gap: 4px; padding: 0 14px; border-top: 1px solid var(--line); overflow-x: auto; }
.grp-tabs-in a { padding: 12px 12px; font-weight: 700; color: var(--muted); text-decoration: none; border-bottom: 3px solid transparent; white-space: nowrap; }
.grp-tabs-in a.is-on { color: var(--pine); border-bottom-color: var(--pine); }
.badge-n { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--bad); color: #fff; font-size: 12px; }
.grp-cols { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; align-items: start; }
.grp-main { min-width: 0; max-width: 680px; }
.grp-side { position: sticky; top: 80px; }
.grp-sec { padding: 16px 18px; margin-bottom: 14px; }
.grp-sec h2, .grp-about h2 { font-size: 18px; margin: 0 0 10px; }
.grp-about { padding: 18px 20px; }
.grp-about h2:not(:first-child) { margin-top: 18px; }
.grp-text { line-height: 1.55; }
.grp-note { margin: 0 0 12px; }
.grp-composer { margin-bottom: 14px; }
.grp-feed { display: grid; gap: 14px; }
.grp-post { position: relative; }
.grp-post.is-pinned > .spost { border-color: color-mix(in srgb, var(--pine) 45%, transparent); }
.grp-post__pin { margin: 0 0 6px; font-size: 13px; font-weight: 700; color: var(--pine); }
.grp-post__mod { display: flex; gap: 14px; justify-content: flex-end; padding: 4px 6px 0; }
.grp-post__mod form { margin: 0; }
.grp-del { color: var(--bad) !important; }
.grp-pager { display: flex; justify-content: center; gap: 10px; margin: 16px 0; }
.grp-people { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.grp-people li { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.grp-people li:last-child { border-bottom: 0; }
.grp-people__acts { margin-left: auto; display: flex; gap: 6px; }
.grp-people__acts form { margin: 0; }
.grp-mm { margin-left: auto; position: relative; }
.grp-mm > summary { list-style: none; cursor: pointer; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-size: 20px; color: var(--muted); }
.grp-mm > summary::-webkit-details-marker { display: none; }
.grp-mm > summary:hover { background: var(--paper-2); }
.grp-mm__pop { position: absolute; right: 0; top: 38px; z-index: 20; min-width: 190px; padding: 6px; border-radius: 12px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lift); }
.grp-mm__pop form { margin: 0; }
.grp-mm__pop button { display: block; width: 100%; text-align: left; padding: 8px 10px; border: 0; background: none; border-radius: 8px; font: inherit; color: var(--ink); cursor: pointer; }
.grp-mm__pop button:hover { background: var(--paper-2); }
.grp-invite { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.grp-invite .field { margin: 0; flex: 1 1 220px; }
.grp-new { padding: 20px; }
.grp-new h2 { margin-top: 0; }
.grp-priv { border: 0; padding: 0; margin: 4px 0 12px; display: grid; gap: 8px; }
.grp-priv legend { font-weight: 700; margin-bottom: 6px; }
.grp-priv__opt { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; }
.grp-priv__opt span { display: flex; flex-direction: column; }
.grp-priv__opt:has(input:checked) { border-color: var(--pine); background: color-mix(in srgb, var(--pine) 6%, transparent); }
.grp-danger { border-color: color-mix(in srgb, var(--bad) 30%, transparent); }
.spost__grp { font-weight: 600; }
.spost__grp a { color: inherit; }
@media (max-width: 1100px) { .grp-cols { grid-template-columns: minmax(0, 1fr); } .grp-side { position: static; } .grp-main { max-width: none; } }
@media (max-width: 760px) {
  .grp-search { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .grp-search__q { grid-column: 1 / -1; }
  .grp-search select { max-width: none; width: 100%; min-width: 0; }
  .grp-search .btn { grid-column: 1 / -1; }
}
.grp-hero__meta span { display: inline-flex; align-items: center; gap: 4px; }
/* A kártyák alja egy vonalban: a „Tag vagy” jelzés mindig a kártya aljára kerül. */
.grp-card__body { flex: 1; }
.grp-card__body > .chip { margin-top: auto; }
.grp-card__body > .grp-card__cat { margin-bottom: 8px; }

/* assets/css/mod-growth.css */
/* Növekedés: meghívó program és nyilvános kedvencprofil */
.grow .layout-2 { align-items: start; }
.grow-small { font-size: 14px; }
.grow-link input { width: 100%; font: inherit; font-size: 15px; padding: 12px 14px; border-radius: var(--r-md); border: 1.5px solid var(--line); background: var(--paper); color: var(--ink); }
.grow-link input:focus { outline: none; border-color: var(--pine); box-shadow: 0 0 0 3px var(--pine-soft); }
.grow-code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; color: var(--ink); }
.grow-share { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.grow-share [data-copy].is-copied { background: var(--good); color: var(--on-pine); }
.grow-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 0 0 10px; }
.grow-stats div { background: var(--pine-soft); border-radius: var(--r-md); padding: 12px; }
.grow-stats dt { font-size: 13px; color: var(--muted); line-height: 1.3; }
.grow-stats dd { margin: 4px 0 0; font-family: var(--font-display); font-weight: 800; font-size: 28px; line-height: 1; }
.grow-rules { margin: 0 0 10px; padding-left: 20px; display: grid; gap: 6px; }
.grow-people { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.grow-people li { display: grid; grid-template-columns: 34px 1fr auto; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.grow-people li:last-child { border-bottom: 0; }
.grow-people strong { display: block; }
.grow-people .muted { font-size: 14px; }
.grow-invited { display: flex; gap: 10px; align-items: center; padding: 10px 14px; border-radius: var(--r-md); background: var(--butter-soft); color: var(--ink); margin: 0 0 14px; font-size: 15px; }
.grow-invited svg { color: var(--good); flex: none; }

/* Nyilvános profil az allat.php-n */
.grow-profile { display: grid; grid-template-columns: minmax(220px, 340px) 1fr; padding: 0; overflow: hidden; margin-bottom: 16px; }
.grow-profile__photo { background: var(--paper-2); display: grid; place-items: center; position: relative; min-height: 300px; }
.grow-profile__photo img:not(.placeholder) { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
.grow-profile__photo .placeholder { width: 96px; height: 96px; object-fit: contain; opacity: .7; }
.grow-profile__body { padding: 24px; display: flex; flex-direction: column; justify-content: center; }
.grow-profile__body h1 { font-size: clamp(32px, 5vw, 48px); margin-bottom: 4px; }
.grow-profile__meta { margin: 0 0 4px; font-size: 17px; }
.grow-profile .chips { margin-top: 6px; }
.grow-profile .chip { text-decoration: none; }
.grow-gallery { margin-bottom: 16px; }
.grow-gallery h2 { font-size: 22px; }
.grow-gallery__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.grow-gallery__item { display: block; width: 100%; padding: 0; border: 0; border-radius: var(--r-md); overflow: hidden; cursor: zoom-in; background: var(--paper-2); }
.grow-gallery__item img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.grow-finder-title { font-size: 24px; margin: 28px 0 12px; }
.grow-finder-note p:last-child { margin-bottom: 0; }
@media (max-width: 760px) {
  .grow-profile { grid-template-columns: 1fr; }
  .grow-profile__photo { aspect-ratio: 4 / 3; min-height: 0; }
  .grow-profile__photo img:not(.placeholder) { object-position: 50% 30%; }
  .grow-profile__body { padding: 18px; }
  .grow-stats dd { font-size: 24px; }
}

/* assets/css/mod-health-score.css */
/* Egészségpont kártya a kedvenc adatlap Egészség lapján */
.hs { margin-bottom: 16px; }
.hs__top { display: flex; gap: 18px; align-items: center; }
.hs__ring { position: relative; flex: 0 0 112px; width: 112px; height: 112px; }
.hs__ring svg { display: block; }
.hs__track { fill: none; stroke: var(--line); stroke-width: 9; }
.hs__bar { fill: none; stroke-width: 9; stroke-linecap: round; stroke: var(--good); transition: stroke-dasharray .6s ease; }
.hs__ring--warn .hs__bar { stroke: var(--warn); }
.hs__ring--bad .hs__bar { stroke: var(--bad); }
.hs__num { position: absolute; inset: 0; display: flex; align-items: baseline; justify-content: center; padding-top: 38px; }
.hs__num strong { font-size: 30px; line-height: 1; color: var(--ink); }
.hs__num small { font-size: 12px; color: var(--muted); margin-left: 1px; }
.hs__head h2 { margin: 0; font-size: 20px; }
.hs__level { margin: 2px 0 4px; font-weight: 700; font-size: 16px; color: var(--good); }
.hs__level--warn { color: var(--warn); }
.hs__level--bad { color: var(--bad); }
.hs__note { margin: 0; font-size: 13px; max-width: 46ch; }

.hs-facts { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.hs-facts li { display: flex; flex-direction: column; gap: 3px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--surface); min-width: 0; }
.hs-facts__k { font-size: 12px; color: var(--muted); }
.hs-facts strong { font-size: 15px; }
.hs-facts small { font-size: 12px; }
.hs-spark { color: var(--pine); margin-top: 2px; max-width: 100%; height: auto; }

.hs-why { margin-top: 14px; }
.hs-why > summary { cursor: pointer; font-weight: 600; color: var(--pine); list-style: none; display: inline-flex; align-items: center; gap: 6px; }
.hs-why > summary::-webkit-details-marker { display: none; }
.hs-why > summary::after { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s; }
.hs-why[open] > summary::after { transform: rotate(-135deg) translateY(-1px); }
.hs-factors { list-style: none; margin: 10px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px 18px; }
.hs-f__row { display: flex; justify-content: space-between; gap: 8px; font-size: 14px; }
.hs-f__label { font-weight: 600; }
.hs-f__pts { font-variant-numeric: tabular-nums; color: var(--muted); }
.hs-f__bar { display: block; height: 6px; border-radius: 99px; background: var(--line); margin: 5px 0 4px; overflow: hidden; }
.hs-f__bar i { display: block; height: 100%; border-radius: inherit; background: var(--good); }
.hs-f--warn .hs-f__bar i { background: var(--warn); }
.hs-f--bad .hs-f__bar i { background: var(--bad); }
.hs-f__text { margin: 0; font-size: 13px; color: var(--muted); }
.hs-f__tip { color: var(--ink); }
.hs__more { margin: 12px 0 0; font-size: 13px; }

@media (max-width: 520px) {
  .hs__top { gap: 12px; }
  .hs__ring { flex-basis: 92px; width: 92px; height: 92px; }
  .hs__ring svg { width: 92px; height: 92px; }
  .hs__num { padding-top: 30px; }
  .hs__num strong { font-size: 24px; }
  .hs-facts { grid-template-columns: 1fr 1fr; }
}
.hs-facts .chip { white-space: nowrap; font-size: 12.5px; padding: 3px 9px; }
.hs-facts .muted { font-size: 13.5px; }
/* Súlygörbe: valódi grafikon rácsvonalakkal, kg- és hónapfeliratokkal. */
.hs-facts li.hs-facts__weight.has-chart { grid-column: span 2; }
.hs-chart { margin: 6px 0 0; width: 100%; color: var(--pine); }
.hs-chart__cap { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12.5px; }
.hs-chart__cap .chip { font-size: 12px; padding: 2px 8px; }
.hs-chart__svg { display: block; width: 100%; height: auto; margin-top: 6px; overflow: visible; }
.hs-chart__grid { stroke: var(--line); stroke-width: 1; stroke-dasharray: 3 4; }
.hs-chart__ylab, .hs-chart__xlab { fill: var(--muted); font-size: 10.5px; font-family: inherit; }
.hs-chart__val { fill: var(--ink); font-size: 11.5px; font-weight: 700; font-family: inherit; }
.hs-chart__pt { fill: var(--surface); stroke: currentColor; stroke-width: 2; }
.hs-chart__pt.is-last { fill: currentColor; stroke: var(--surface); stroke-width: 2.5; }
@media (max-width: 760px) { .hs-facts li.hs-facts__weight.has-chart { grid-column: 1 / -1; } }
.hs-facts:has(.has-chart) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hs-facts li.hs-facts__weight.has-chart { grid-column: span 2; grid-row: span 2; }
@media (max-width: 760px) {
  .hs-facts:has(.has-chart) { grid-template-columns: 1fr 1fr; }
  .hs-facts li.hs-facts__weight.has-chart { grid-column: 1 / -1; grid-row: auto; }
}

/* assets/css/mod-help.css */
/* Bundee — „Nincs időd elvinni?” segítségkérés */
.help-hero { display: grid; grid-template-columns: 1.3fr 1fr; gap: 28px; align-items: center; margin: 32px 0 28px; padding: 28px; }
.help-hero h1 { font-size: clamp(32px, 4.6vw, 48px); letter-spacing: -0.03em; margin-bottom: 10px; }
.help-hero p.muted { font-size: 18px; max-width: 32em; }
.help-kinds-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.help-kinds-list li { display: flex; align-items: center; gap: 12px; font-weight: 600; }
.help-boardhead { padding-top: 0; }
.help-boardhead h2 { font-size: 26px; margin-bottom: 4px; }
.help-board { margin-bottom: 20px; }
.help-card h3 { margin: 0; font-size: 19px; }
.help-card__price { font-family: var(--font-display); font-size: 20px; color: var(--pine); white-space: nowrap; }
.help-card__when { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; font-weight: 600; }
.help-card__details { margin: 6px 0 0; font-size: 15px; }
.help-layout { padding-bottom: 64px; }
.help-appt { display: flex; gap: 10px; align-items: center; margin-bottom: 16px; }
.help-kinds { border: 0; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.help-kinds legend { font-weight: 600; font-size: 15px; margin-bottom: 6px; padding: 0; }
.help-kinds .choice__item span { justify-content: flex-start; text-align: left; font-weight: 600; font-size: 15px; }
.help-kinds .field-error { grid-column: 1 / -1; }
.help-fee { margin: 0; font-size: 15px; }
.help-facts { margin-top: 0; }
.help-facts__wide { grid-column: 1 / -1; }
.help-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 16px; }
.help-actions form { margin: 0; }
.help-wait { font-size: 14px; }
.help-pay { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.help-safety { font-size: 14px; margin: 16px 0 0; }
.help-row { display: block; text-decoration: none; color: var(--ink); }
.help-row:hover { color: var(--ink); }
.help-row:hover h2 { color: var(--pine); }
.help-todo { margin: 12px 0 0; padding: 8px 12px; border-radius: var(--r-md); background: var(--warn-soft); color: var(--warn); font-size: 14px; font-weight: 600; }
.help-btn { gap: 6px; }
@media (max-width: 760px) {
  .help-hero { grid-template-columns: 1fr; padding: 20px; margin-top: 20px; }
  .help-kinds { grid-template-columns: 1fr; }
}
@media (max-width: 900px) { .help-layout > aside { order: 2; } }

/* assets/css/mod-home.css */
/* Kezdőlap: meggyőzőbb hős, „miért”, Léna-adatlap, záró felhívás, ragadós gomb mobilon. */
.btn--light { background: #fff; color: #3A2560; border-color: #fff; }
.btn--light:hover { background: #F3ECFF; color: #3A2560; }
.hero__perks { list-style: none; padding: 0; margin: 16px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.hero__perks li { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: var(--pine-soft); color: var(--pine); font-weight: 700; font-size: 14px; }
.hero__proof { display: flex; align-items: center; gap: 12px; margin-top: 20px; font-size: 14.5px; color: var(--muted); max-width: 32em; }
.hero__faces { display: inline-flex; flex: none; }
.hero__faces img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 3px solid var(--paper); margin-left: -10px; box-shadow: 0 2px 6px rgba(0,0,0,.12); }
.hero__faces img:first-child { margin-left: 0; }
.hero__proof strong { color: var(--ink); }
.why { padding-top: 8px; padding-bottom: 32px; }
.why__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.why__item { display: grid; gap: 6px; align-content: start; padding: 20px; border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); }
.why__item strong { font-family: var(--font-display); font-size: 20px; }
.why__ic { width: 46px; height: 46px; border-radius: 15px; display: grid; place-items: center; margin-bottom: 4px; }
.why__ic--a { background: #EFE7FF; color: #6B4E9B; }
.why__ic--b { background: #FBE6E1; color: #B4232A; }
.why__ic--c { background: #E3F5EC; color: #1F7A55; }
/* Elveszett: Léna adatlapja (a megtaláló nézete). */
.lost__card { margin: 0 0 0 auto; width: min(360px, 84%); border-radius: 24px; overflow: hidden; background: var(--surface); border: 1px solid var(--line); box-shadow: 0 30px 60px -30px rgba(34, 22, 58, .5); display: grid; gap: 10px; padding-bottom: 16px; }
.lost__cardband { display: flex; align-items: center; gap: 6px; padding: 10px 16px; background: #B4232A; color: #fff; font-weight: 800; font-size: 14px; letter-spacing: .02em; }
.lost__cardtop { display: flex; gap: 14px; align-items: center; padding: 4px 16px 0; }
.lost__cardtop img { width: 96px; height: 116px; border-radius: 16px; object-fit: cover; object-position: 45% 40%; flex: none; }
.lost__cardtop div { display: grid; gap: 2px; }
.lost__cardtop strong { font-family: var(--font-display); font-size: 28px; line-height: 1; }
.lost__cardtop span { color: var(--muted); font-size: 14px; }
.lost__chipno { font-family: ui-monospace, Menlo, monospace; font-size: 12.5px !important; }
.lost__facts { list-style: none; margin: 0; padding: 0 16px; display: grid; gap: 6px; font-size: 14px; }
.lost__facts li { display: flex; gap: 8px; align-items: flex-start; }
.lost__facts svg { flex: none; color: var(--pine); margin-top: 2px; }
.lost__cardbtn { margin: 4px 16px 0; padding: 12px; border-radius: 14px; background: var(--pine); color: #fff; font-weight: 800; text-align: center; }
.lost__cardsub { padding: 0 16px; font-size: 12px; color: var(--muted); text-align: center; }
.lost__visual .lost__poster { bottom: 70px; }
@media (max-width: 520px) { .lost__card { width: 92%; } .lost__visual .lost__poster { bottom: 120px; width: 40%; } }
/* Záró felhívás. */
.join { padding-top: 24px; padding-bottom: 64px; }
.join__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: center; padding: 36px; border-radius: 32px; color: #fff;
  background: radial-gradient(120% 120% at 0% 0%, #8C6CC0 0%, #5B3E8A 50%, #3A2560 100%); box-shadow: 0 30px 60px -30px rgba(58, 37, 96, .8); }
.join h2 { color: #fff; font-size: clamp(28px, 3.6vw, 42px); letter-spacing: -0.03em; margin: 0 0 10px; }
.join__inner > div > p { color: rgba(255,255,255,.85); font-size: 18px; }
.join__fine { margin: 12px 0 0; font-size: 14px !important; }
.join__fine a { color: #fff; font-weight: 700; }
.join .signup-perks { margin: 0; background: rgba(255,255,255,.95); color: var(--ink); }
.join .inv-landing { margin-top: 16px; }
@media (max-width: 860px) { .join__inner { grid-template-columns: 1fr; padding: 24px; } .why__grid { grid-template-columns: 1fr; } }
/* Mobilon ragadós regisztráció gomb (a kezdőlapon, kijelentkezve). */
.home-sticky { display: none; }
@media (max-width: 720px) {
  .home-sticky { display: flex; justify-content: center; gap: 6px; position: fixed; left: 12px; right: 12px; bottom: calc(78px + env(safe-area-inset-bottom)); z-index: 40;
    padding: 15px; border-radius: 18px; background: var(--pine); color: #fff; font-weight: 800; font-size: 17px; text-decoration: none; box-shadow: 0 14px 30px -10px rgba(58, 37, 96, .7);
    transition: transform .25s ease, opacity .25s ease; }
  .home-sticky.is-hidden { transform: translateY(140%); opacity: 0; }
  .page-home .footer { padding-bottom: 160px; }
}
/* Elveszett: elrendezés, hogy semmi ne takarja az adatlapot. */
.lost__visual { padding-bottom: 170px; }
.lost__card { width: min(330px, 70%); }
.lost__visual .lost__poster { left: 0; bottom: 6px; width: min(180px, 34%); z-index: 2; }
.lost__visual .lost__note { right: 0; bottom: 0; width: min(300px, 62%); z-index: 3; }
@media (max-width: 520px) {
  .lost__visual { padding-bottom: 210px; }
  .lost__card { width: 100%; }
  .lost__visual .lost__poster { width: 42%; bottom: 0; }
  .lost__visual .lost__note { width: 62%; bottom: 70px; }
}
.lost__chipno { white-space: nowrap; font-size: 11.5px !important; }

/* z58: Kinek szól (képcsempék), képszalag, országos térkép a főoldalon */
.hwho { padding-top: 8px; padding-bottom: 36px; }
.hwho__head { max-width: 760px; margin-bottom: 18px; }
.hwho__head h2 { margin: 0; font-size: clamp(24px, 3vw, 34px); line-height: 1.15; text-wrap: balance; }
.hwho__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.hwho__item a { display: flex; flex-direction: column; height: 100%; border-radius: 20px; overflow: hidden; background: var(--surface); border: 1px solid var(--line); color: inherit; text-decoration: none; box-shadow: 0 10px 30px -18px rgba(52, 36, 84, .35); transition: transform .2s ease, box-shadow .2s ease; }
.hwho__item a:hover, .hwho__item a:focus-visible { transform: translateY(-3px); box-shadow: 0 18px 40px -18px rgba(52, 36, 84, .5); }
.hwho__item img { display: block; width: 100%; height: auto; aspect-ratio: 1000 / 405; object-fit: cover; object-position: left center; }
.hwho__txt { padding: 12px 16px 14px; font-size: 15px; line-height: 1.45; color: var(--ink); }
.hwho__txt b { color: var(--pine); font-weight: 800; }
@media (max-width: 960px) { .hwho__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .hwho__grid { grid-template-columns: minmax(0, 1fr); } }

.hband { overflow: hidden; padding: 8px 0 40px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.hband__track { display: flex; gap: 14px; width: max-content; animation: hband 60s linear infinite; }
.hband__track img { height: 170px; width: auto; aspect-ratio: 1000 / 420; object-fit: cover; border-radius: 18px; display: block; }
.hband:hover .hband__track { animation-play-state: paused; }
@keyframes hband { to { transform: translateX(calc(-50% - 7px)); } }
@media (prefers-reduced-motion: reduce) { .hband__track { animation: none; } .hband { overflow-x: auto; } }
@media (max-width: 600px) { .hband__track img { height: 120px; } }

.hmap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(24px, 4vw, 56px); align-items: center; padding-top: 24px; padding-bottom: 56px; }
.hmap__text h2 { margin: 0 0 12px; font-size: clamp(26px, 3.2vw, 38px); line-height: 1.12; text-wrap: balance; }
.hmap__list { list-style: none; margin: 18px 0 22px; padding: 0; display: grid; gap: 12px; }
.hmap__list li { display: flex; gap: 12px; align-items: flex-start; font-size: 15.5px; line-height: 1.45; }
.hmap__list svg { flex: none; color: var(--pine); margin-top: 2px; }
.hmap__list em { font-style: normal; font-weight: 700; color: #C93F3F; }
.hmap__cta { display: flex; flex-wrap: wrap; gap: 10px; }
.hmap__img { display: block; border-radius: 22px; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(52, 36, 84, .55); border: 1px solid var(--line); transition: transform .25s ease; }
.hmap__img:hover { transform: translateY(-3px); }
.hmap__img img { display: block; width: 100%; height: auto; }
.hmap__d { display: none !important; }
:root[data-theme="dark"] .hmap__l { display: none !important; }
:root[data-theme="dark"] .hmap__d { display: block !important; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .hmap__l { display: none !important; } :root:not([data-theme="light"]) .hmap__d { display: block !important; } }
@media (max-width: 860px) { .hmap { grid-template-columns: minmax(0, 1fr); } .hmap__img { order: -1; } }

/* assets/css/mod-household.css */
/* Közös háztartás (haztartas.php, includes/modules/household.php) */
.hh-page { padding-bottom: 64px; }
.hh-page .card { min-width: 0; }
.hh-invite { display: grid; gap: 10px; margin-bottom: 18px; max-width: 720px; }
.hh-invite h2 { margin: 0; }
.hh-invite p { margin: 0; }
.hh-actions { margin: 4px 0 0; }
.hh-page #meghivasok { margin-bottom: 18px; }
.hh-page .fam-item__main { min-width: 0; }
.hh-page .fam-item__main strong { overflow-wrap: anywhere; }
.hh-leave { margin: 14px 0 0; }
.hh-pets { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.hh-pet { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--paper); color: inherit; text-decoration: none; min-width: 0; }
.hh-pet:hover { border-color: var(--pine); }
.hh-pet__photo { flex: none; width: 44px; height: 44px; border-radius: 12px; overflow: hidden; background: var(--paper-2); display: grid; place-items: center; }
.hh-pet__photo img { width: 100%; height: 100%; object-fit: cover; }
.hh-pet__text { display: grid; line-height: 1.25; min-width: 0; }
.hh-pet__text strong, .hh-pet__text small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Kedvenc profil: „Közös kedvenc Adéllal” */
.hh-petline { margin: 4px 0 0; font-size: 14px; font-weight: 600; }
.hh-petline a { display: inline-flex; align-items: center; gap: 6px; color: var(--pine); text-decoration: none; }
.hh-petline a:hover span { text-decoration: underline; }
.hh-petline svg { flex: none; }

/* assets/css/mod-kb.css */
/* Tudástár: aktuális ajánló, keresés, kategóriák */
.kb-now { margin-bottom: 20px; }
.kb-now__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.kb-now__list a { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border-radius: 16px; background: var(--pine-soft); color: var(--ink); text-decoration: none; height: 100%; box-sizing: border-box; }
.kb-now__list a:hover { outline: 2px solid var(--pine); outline-offset: -2px; }
.kb-now__list strong { display: block; margin-bottom: 2px; }
.kb-now__list .muted { display: block; font-size: 14px; line-height: 1.4; }
.kb-filter { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; margin: 4px 0 10px; }
.kb-filter__q { flex: 1 1 260px; margin: 0; }
.kb-cats { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 4px; }
.kb-cats .chip { text-decoration: none; padding: 7px 14px; font-size: 14px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); }
.kb-cats .chip:hover { border-color: var(--pine); color: var(--pine); }
.kb-cats .chip.is-active { background: var(--pine); color: var(--on-pine); border-color: var(--pine); }
.kb-more { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.kb-more h2 { margin: 0 0 4px; }
.kb-cta p { margin: 4px 0 12px; }
.kb-more { margin: 28px 0 48px; }

/* --- Tudástár: fülek, friss írások, fajtakereső-ajánló --- */
.kb-tabs { margin-bottom: 8px; }
.kb-blog { margin: 0 0 18px; }
.kb-blog .card__head { margin-bottom: 10px; }
.kb-blog__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.kb-post { display: grid; height: 100%; overflow: hidden; border-radius: 20px; background: var(--surface); border: 1px solid var(--line); color: inherit; text-decoration: none; transition: transform .15s ease, box-shadow .15s ease; }
.kb-post:hover { transform: translateY(-2px); box-shadow: var(--shadow-lift); }
.kb-post__img { aspect-ratio: 16 / 9; overflow: hidden; }
.kb-post__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kb-post__body { display: grid; gap: 4px; padding: 12px 14px 16px; align-content: start; }
.kb-post__meta { font-size: 12.5px; font-weight: 700; color: var(--pine); }
.kb-post__body .muted { font-size: 14px; }
.kb-breeds { margin: 0 0 22px; }
.kb-breeds p { margin: 0 0 10px; }
.kbb-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.kbb-chips a, .kbb-mini a { display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px 4px 4px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: inherit; font-weight: 700; text-decoration: none; }
.kbb-chips a:hover, .kbb-mini a:hover { border-color: var(--pine); }
.kb-list-title { margin: 6px 0 10px; font-size: 22px; }
@media (max-width: 900px) { .kb-blog__list { grid-template-columns: minmax(0, 1fr); } .kb-post { grid-template-columns: 120px minmax(0, 1fr); } .kb-post__img { aspect-ratio: auto; height: 100%; } }

/* Fajtakép vagy színes kezdőbetűs csempe */
.kbb-media, .kbb-hero__media, .kbb-mini__media { position: relative; display: grid; place-items: center; overflow: hidden; background: var(--paper-2); }
.kbb-media img, .kbb-hero__media img, .kbb-mini__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.is-tile { background: linear-gradient(135deg, hsl(var(--h) 55% 88%), hsl(calc(var(--h) + 40) 50% 78%)); color: hsl(var(--h) 45% 28%); }
.is-tile > span { font-family: var(--font-display); font-weight: 800; font-size: 56px; line-height: 1; }
.is-tile .kbb-media__paw { position: absolute; right: 10%; bottom: 10%; width: 22% !important; height: auto !important; opacity: .35; }
:root[data-theme="dark"] .is-tile { background: linear-gradient(135deg, hsl(var(--h) 30% 26%), hsl(calc(var(--h) + 40) 30% 20%)); color: hsl(var(--h) 60% 82%); }
.kbb-mini__media { width: 30px; height: 30px; border-radius: 50%; flex: none; }
.kbb-mini__media.is-tile > span { font-size: 14px; }
.kbb-mini__media .kbb-media__paw { display: none; }

/* Fajtakereső */
.kbb-filter { display: grid; grid-template-columns: minmax(0, 2fr) repeat(4, minmax(0, 1fr)) auto; gap: 12px; align-items: end; padding: 16px; }
.kbb-filter .field { margin: 0; }
@media (max-width: 1000px) { .kbb-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); } .kbb-filter__q { grid-column: 1 / -1; } }
.kbb-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.kbb-card { display: grid; height: 100%; overflow: hidden; border-radius: 20px; background: var(--surface); border: 1px solid var(--line); color: inherit; text-decoration: none; transition: transform .15s ease, box-shadow .15s ease; }
.kbb-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lift); }
.kbb-card .kbb-media { aspect-ratio: 16 / 10; }
.kbb-card__body { display: grid; gap: 4px; padding: 12px 16px 16px; align-content: start; }
.kbb-card__body strong { font-size: 19px; }
.kbb-card__body .muted { font-size: 14px; }
.kbb-card__sp { font-size: 12.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--pine); }
.kbb-card__meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.kbb-card__meta span { padding: 3px 9px; border-radius: 999px; background: var(--paper-2); font-size: 12.5px; font-weight: 700; }
@media (max-width: 900px) { .kbb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .kbb-grid { grid-template-columns: minmax(0, 1fr); } }

/* Fajtaleírás */
.kbb-page .breadcrumb { margin-bottom: 10px; }
.kbb-hero { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 28px; align-items: stretch; padding: 18px; border-radius: 28px; background: var(--surface); border: 1px solid var(--line); }
.kbb-hero__media { border-radius: 20px; min-height: 320px; }
.kbb-hero__media.is-tile > span { font-size: 120px; }
.kbb-hero__text { display: grid; align-content: center; gap: 10px; padding: 8px 8px 8px 0; }
.kbb-hero__text h1 { margin: 0; font-size: clamp(32px, 4.4vw, 52px); line-height: 1; letter-spacing: -0.03em; }
.kbb-summary { margin: 0; padding: 14px 16px; border-radius: 16px; background: var(--pine-soft); font-size: 17px; line-height: 1.55; }
.kbb-facts { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.kbb-facts div { padding: 9px 12px; border-radius: 12px; background: var(--paper-2); }
.kbb-facts dt { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.kbb-facts dd { margin: 2px 0 0; font-weight: 700; }
.kbb-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 22px; align-items: start; margin: 22px 0 30px; }
.kbb-body h2 { scroll-margin-top: 90px; }
.kbb-side { position: sticky; top: 84px; display: grid; gap: 14px; }
.kbb-toc h2, .kbb-cta h2, .kbb-side h2 { margin: 0 0 8px; font-size: 17px; }
.kbb-toc ol { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.kbb-toc a { text-decoration: none; }
.kbb-cta { display: grid; gap: 8px; }
.kbb-cta p { margin: 0; }
.kbb-mini { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.kbb-mini a { width: 100%; }
@media (max-width: 900px) {
  .kbb-hero { grid-template-columns: minmax(0, 1fr); padding: 12px; }
  .kbb-hero__media { min-height: 220px; }
  .kbb-hero__text { padding: 4px; }
  .kbb-layout { grid-template-columns: minmax(0, 1fr); }
  .kbb-side { position: static; }
}
@media (max-width: 420px) { .kbb-facts { grid-template-columns: minmax(0, 1fr); } }

.kbb-filter { margin-bottom: 16px; }
.kbb-filter + .kb-cats { margin-bottom: 16px; }
.kb-cats + .kbb-grid { margin-top: 0; }
/* Fajta galéria */
.kbb-gallery { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.kbb-gallery__item { display: block; width: 100%; aspect-ratio: 1; padding: 0; border: 0; border-radius: 14px; overflow: hidden; cursor: zoom-in; background: var(--paper-2); }
.kbb-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .2s ease; }
.kbb-gallery__item:hover img { transform: scale(1.04); }
.kbb-gallery__note { font-size: 13px; margin: 8px 0 0; }
/* A kép mindig kitölti a keretet, és az object-position érvényesül */
.kbb-media, .kbb-hero__media { position: relative; }
.kbb-media > img:not(.kbb-media__paw), .kbb-hero__media > img:not(.kbb-media__paw) { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kbb-card { grid-template-rows: auto 1fr; align-content: stretch; }
.kbb-card__body { align-content: start; }
/* Hiányzó fajta: „+” csempe és jelzés */
.kbb-add { align-content: center; justify-items: center; gap: 8px; padding: 28px 20px; text-align: center; border: 2px dashed color-mix(in srgb, var(--pine) 40%, var(--line)); background: color-mix(in srgb, var(--pine) 5%, var(--surface)); min-height: 280px; }
.kbb-add strong { font-size: 18px; }
.kbb-add:hover { border-color: var(--pine); }
.kbb-add__plus { flex: none; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--pine); color: var(--on-pine); font-size: 34px; font-weight: 700; line-height: 1; }
.kbb-request { margin: 22px 0 10px; display: grid; gap: 14px; scroll-margin-top: 90px; }
.kbb-request__text { display: flex; gap: 14px; align-items: flex-start; }
.kbb-request__text h2 { margin: 0 0 4px; }
.kbb-request__text p { margin: 0; }
.kbb-request__form { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.7fr) minmax(0, 1.5fr) auto; gap: 12px; align-items: end; }
.kbb-request__form .field { margin: 0; }
@media (max-width: 900px) { .kbb-request__form { grid-template-columns: minmax(0, 1fr); } }
.kbb-card.kbb-add { grid-template-rows: none; align-content: center; }

/* assets/css/mod-kezeles.css */
/* Gyógyszer- és kezelésnapló, tünetnapló (kezeles.php, includes/modules/treatments.php) */
.med-sched ~ [hidden], .med-times[hidden], .med-weekdays[hidden] { display: none !important; }
.med-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media print { .med-table-wrap { overflow: visible; } }
.med-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.med-item { display: grid; grid-template-columns: 52px 1fr auto; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--surface); }
.med-item__time { font-weight: 800; font-variant-numeric: tabular-nums; font-size: 15px; }
.med-item__main { display: grid; gap: 2px; min-width: 0; }
.med-item__main strong { overflow-wrap: anywhere; }
.med-item__meta { display: inline-flex; align-items: center; gap: 4px; font-size: 13.5px; color: var(--muted); }
.med-item__actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.med-item--beadva { background: var(--good-soft); border-color: transparent; }
.med-item--beadva .med-item__meta { color: var(--good); font-weight: 600; }
.med-item--kihagyva { opacity: .75; }
.med-item--elmaradt { border-color: var(--bad); }
.med-item--elmaradt .med-item__meta { color: var(--bad); font-weight: 600; }
.med-item--esedekes { border-color: var(--warn); background: var(--warn-soft); }
.med-pet { display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--pine); margin-right: 4px; }
.med-inline { display: inline; margin: 0; }
.med-missed { margin-top: 14px; }
.med-missed summary { cursor: pointer; display: inline-flex; align-items: center; gap: 6px; color: var(--bad); font-weight: 700; margin-bottom: 8px; }
@media (max-width: 560px) {
  .med-item { grid-template-columns: 44px 1fr; }
  .med-item__actions { grid-column: 1 / -1; justify-content: flex-start; }
}

.med-treatments { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.med-tr { padding-bottom: 14px; border-bottom: 1px solid var(--line); display: grid; gap: 6px; }
.med-tr:last-child { border-bottom: 0; padding-bottom: 0; }
.med-tr p { margin: 0; }
.med-tr__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.med-tr__prog { margin-left: auto; font-variant-numeric: tabular-nums; font-weight: 600; }
.med-tr__notes { font-size: 14px; }
.med-tr__actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.med-bar { height: 8px; border-radius: 99px; background: var(--line); overflow: hidden; }
.med-bar span { display: block; height: 100%; background: var(--pine); border-radius: inherit; }
.med-stock { font-size: 14px; }
.med-stock.is-low { color: var(--bad); font-weight: 600; }
.med-refill { display: inline-flex; gap: 4px; align-items: center; }
.med-refill input { width: 76px; padding: 6px 8px; border-radius: var(--r-sm); border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; }

.med-weekdays, .med-times, .med-tags { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.med-weekdays legend, .med-times legend, .med-tags legend { font-weight: 600; margin-bottom: 6px; padding: 0; width: 100%; }
.med-weekdays label, .med-tags label { position: relative; }
.med-weekdays input, .med-tags input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.med-weekdays span, .med-tags span { display: inline-block; padding: 8px 12px; border-radius: 99px; border: 1.5px solid var(--line); background: var(--surface); font-weight: 600; font-size: 14px; }
.med-weekdays input:checked + span, .med-tags input:checked + span { background: var(--pine); border-color: var(--pine); color: var(--on-pine); }
.med-weekdays input:focus-visible + span, .med-tags input:focus-visible + span { outline: 2px solid var(--pine); outline-offset: 2px; }
.med-times__list { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; }
.med-times__list input { padding: 8px 10px; border-radius: var(--r-sm); border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; }
.med-times .btn { margin-top: 6px; }
.med-sched .choice__item span, .med-symform .choice__item span { min-height: 44px; }
.med-sched { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
@media (max-width: 560px) { .grid-3 { grid-template-columns: 1fr; } }
.med-delete { margin-top: 12px; }

.med-symform { margin-bottom: 16px; }
.med-symform > summary { list-style: none; display: inline-flex; margin-bottom: 12px; }
.med-symform > summary::-webkit-details-marker { display: none; }
.med-symform[open] > summary { display: none; }

.med-tl { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.med-tl__day { font-weight: 800; font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); margin-top: 10px; }
.med-tl__item { display: grid; grid-template-columns: 48px 1fr auto; gap: 10px; align-items: start; padding: 8px 10px; border-left: 3px solid var(--line); }
.med-tl__time { font-variant-numeric: tabular-nums; font-weight: 700; }
.med-tl__body { display: grid; gap: 4px; min-width: 0; }
.med-tl__body strong { display: inline; }
.med-tl__note { overflow-wrap: anywhere; }
.med-tl__by { font-size: 13px; }
.med-tl__photo { max-width: 180px; max-height: 140px; border-radius: var(--r-sm); object-fit: contain; }
.med-tl--beadva { border-left-color: var(--good); }
.med-tl--kihagyva { border-left-color: var(--muted); }
.med-tl--elmaradt { border-left-color: var(--bad); }
.med-tl--tunet { border-left-color: var(--warn); background: var(--warn-soft); border-radius: 0 var(--r-sm) var(--r-sm) 0; }

.med-finished { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.med-finished li { display: grid; gap: 2px; }

.med-report { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.med-report__head h2 { margin: 2px 0; }
.med-table { width: 100%; border-collapse: collapse; }
.med-table th, .med-table td { text-align: left; vertical-align: top; padding: 8px; border-bottom: 1px solid var(--line); }
.med-table__note td { font-size: 14px; color: var(--muted); }
.med-report__foot { font-size: 13px; }
@media print {
  .med-report { gap: 12px; }
  .med-table th, .med-table td { padding: 4px 6px; color: #000; border-bottom: 1px solid #bbb; }
  .med-report section { break-inside: auto; }
  .med-table tr { break-inside: avoid; }
}
.med-tl__body .chip { justify-self: start; }
@media (max-width: 900px) { .med-layout > aside { order: 2; } }

/* assets/css/mod-launch.css */
/* Indulás előtti „Hamarosan indul” oldal (hamarosan.php) és az admin kapcsoló. */
.launch { max-width: 760px; margin-inline: auto; padding: clamp(20px, 4vw, 44px) 0 40px; display: grid; gap: 18px; }
.launch__hero { position: relative; overflow: hidden; text-align: center; color: #fff; border-radius: 28px; padding: clamp(28px, 6vw, 52px) clamp(20px, 5vw, 44px);
  background: radial-gradient(120% 90% at 100% 0%, #7A5FB0 0%, transparent 60%), radial-gradient(90% 70% at 0% 100%, #2F6B5A 0%, transparent 55%), linear-gradient(160deg, #4B3672, #2B1F44); }
.launch__tick { width: 78px; height: 78px; margin: 0 auto 16px; border-radius: 50%; display: grid; place-items: center; color: #fff;
  background: linear-gradient(180deg, #3DBB93, #1F9D7A); box-shadow: 0 0 0 10px rgba(111, 199, 166, .18), 0 16px 30px -12px rgba(0, 0, 0, .5); }
.launch__tick svg { stroke: currentColor; }
@media (prefers-reduced-motion: no-preference) { .launch__tick { animation: launch-pop .55s cubic-bezier(.2, 1.4, .4, 1) both; } @keyframes launch-pop { from { transform: scale(.4); opacity: 0; } } }
.launch__eyebrow { margin: 0 0 6px; font-weight: 800; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: #BDF0DC; }
.launch__hero h1 { font-family: var(--font-display); font-size: clamp(1.8rem, 4.6vw, 2.6rem); line-height: 1.1; letter-spacing: -.02em; margin: 0 0 .45em; color: #fff; }
.launch__hero p { margin: 0 auto; max-width: 34em; color: rgba(255, 255, 255, .86); font-size: 1.05rem; }
.launch__hero strong { color: #fff; }
.launch .card h2 { font-family: var(--font-display); font-size: 1.25rem; line-height: 1.2; margin: 0 0 10px; }
.launch__verify { border-left: 4px solid var(--warn); }
.launch__verify form { margin-top: 12px; }
.launch__link { display: flex; gap: 10px; margin: 16px 0 12px; }
.launch__link input { flex: 1; min-width: 0; padding: 12px 14px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--paper); color: var(--ink); font: 600 .95rem var(--font-body); }
.launch__share { display: flex; flex-wrap: wrap; gap: 8px; }
.launch__stats { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.launch__stats li { padding: 14px 12px; border-radius: var(--r-md); background: var(--pine-soft); text-align: center; display: grid; gap: 2px; }
.launch__stats strong { font: 800 1.6rem/1.1 var(--font-display); color: var(--pine); }
.launch__stats span { font-size: .85rem; color: var(--muted); line-height: 1.3; }
.launch__stats .is-points { background: var(--butter-soft); }
.launch__stats .is-points strong { color: var(--good); }
.launch__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; counter-reset: ls; }
.launch__steps li { counter-increment: ls; position: relative; padding-left: 44px; display: grid; gap: 2px; }
.launch__steps li::before { content: counter(ls); position: absolute; left: 0; top: 0; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center;
  background: var(--pine-soft); color: var(--pine); font: 800 .9rem/1 var(--font-display); }
.launch__steps li.is-done::before { content: "✓"; background: #1F9D7A; color: #fff; }
.launch__steps li.is-now::before { background: var(--pine); color: var(--on-pine); }
.launch__steps span { color: var(--muted); font-size: .94rem; }
.launch__foot { text-align: center; font-size: .9rem; margin: 4px 0 0; }
@media (max-width: 560px) {
  .launch__link { flex-direction: column; }
  .launch__stats { grid-template-columns: 1fr; }
  .launch__stats li { grid-template-columns: auto 1fr; text-align: left; align-items: center; gap: 12px; }
}
/* Admin: indulás kapcsoló */
.launch-admin { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between; }
.launch-admin__state { font-weight: 700; }
.launch-admin__state.is-pre { color: var(--warn); }
.launch-admin__state.is-live { color: var(--good); }

/* assets/css/mod-litters.css */
/* Alom áttekintése: szülők (kattintható adatlap) és kölykök; láthatósági beállítások. */

.lit { display: grid; gap: 18px; }
.lit__block { display: grid; gap: 10px; min-width: 0; }
.lit__h { font-size: 15px; font-family: var(--font-body); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 0; display: flex; align-items: center; gap: 8px; }
.lit__count { font-size: 13px; padding: 1px 8px; border-radius: 999px; background: var(--paper-2); color: var(--muted); letter-spacing: 0; }
.lit__empty { margin: 0; font-size: 15px; }

.lit__parents { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 10px; }
.lit-parent { display: grid; grid-template-columns: 52px 1fr; gap: 12px; align-items: center; padding: 10px 12px; border-radius: var(--r-md); border: 1.5px solid var(--line); background: var(--paper); color: var(--ink); text-decoration: none; min-width: 0; }
a.lit-parent { transition: border-color .15s ease, background .15s ease; }
a.lit-parent:hover { border-color: var(--pine); background: var(--pine-soft); }
.lit-parent__pic { width: 52px; height: 52px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); font-weight: 800; font-size: 20px; }
.lit-parent--m .lit-parent__pic--none { background: var(--paper-2); color: var(--slate); }
.lit-parent__pic img { width: 100%; height: 100%; object-fit: cover; }
.lit-parent__txt { display: grid; gap: 1px; min-width: 0; }
.lit-parent__role { font-size: 12.5px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.lit-parent__name { line-height: 1.25; overflow-wrap: anywhere; }
.lit-parent__meta { font-size: 13.5px; color: var(--muted); overflow-wrap: anywhere; }
.lit-parent__go { font-size: 13.5px; font-weight: 700; color: var(--pine); }

.lit__kittens { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(210px, 100%), 1fr)); gap: 10px; }
.lit-kit { display: grid; grid-template-columns: 56px 1fr; gap: 12px; align-items: center; padding: 10px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--paper); min-width: 0; }
.lit-kit--mine { border-color: var(--pine); background: var(--pine-soft); }
.lit-kit__photo { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: var(--paper-2); display: grid; place-items: center; }
.lit-kit__photo img { width: 100%; height: 100%; object-fit: cover; }
.lit-kit__photo .placeholder { width: 28px; height: 28px; object-fit: contain; opacity: .75; }
.lit-kit__body { display: grid; gap: 1px; min-width: 0; font-size: 14px; line-height: 1.35; }
.lit-kit__name { font-size: 16px; font-weight: 700; overflow-wrap: anywhere; }
a.lit-kit__name { color: var(--ink); text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
a.lit-kit__name:hover { text-decoration-color: var(--pine); color: var(--pine); }
.lit-kit__sub, .lit-kit__owner { color: var(--muted); overflow-wrap: anywhere; }
.lit-kit__owner a { font-weight: 600; }
.lit-kit__vis { font-size: 12.5px; }

/* Tömör változat (tenyésztő nyilvános oldala, almok listája) */
.lit--compact { gap: 12px; margin-top: 12px; }
.lit--compact .lit__h { font-size: 12.5px; }
.lit--compact .lit-parent { grid-template-columns: 40px 1fr; padding: 8px 10px; }
.lit--compact .lit-parent__pic { width: 40px; height: 40px; font-size: 16px; }
.lit--compact .lit__kittens { grid-template-columns: repeat(auto-fill, minmax(min(180px, 100%), 1fr)); gap: 8px; }
.lit--compact .lit-kit { grid-template-columns: 44px 1fr; padding: 8px; gap: 10px; }
.lit--compact .lit-kit__photo { width: 44px; height: 44px; }
.lit--compact .lit-kit__name { font-size: 15px; }

/* tenyeszto.php almok listája */
.litters--rich { gap: 0; }
.litters--rich .litterrow { display: block; padding: 14px 0; }
.litterrow__top { display: grid; grid-template-columns: 40px 1fr auto; gap: 14px; align-items: center; }
.litterrow__top > div { min-width: 0; }
@media (max-width: 520px) {
  .litterrow__top { grid-template-columns: 40px 1fr; }
  .litterrow__go { grid-column: 1 / -1; justify-self: start; }
}

/* almok.php kártyái */
.littercard { display: grid; gap: 4px; }
.littercard .litterlink { color: inherit; text-decoration: none; }
.littercard .litterlink > div { min-width: 0; }
.littercard__vis { margin: 10px 0 0; font-size: 14px; }
@media (max-width: 520px) {
  .littercard .litterlink { grid-template-columns: 40px 1fr; }
  .littercard .litterlink > :last-child { grid-column: 2; justify-self: start; }
}

/* Beállítások */
.lit-myvis { margin: 10px 0 0; font-size: 14.5px; }
.lit-cardlead { margin: 0 0 12px; font-size: 15px; }
#lathatosag .privopts, #alom-lathatosag .privopts, #almok-lathatosaga .privopts { margin-bottom: 12px; }

/* assets/css/mod-lost.css */
/* Hazatalálás-védelem (includes/modules/lost_mode.php): Elveszett mód, megtaláló, plakát-ajánló */
:root { --lost: #C8372D; --lost-deep: #9E2A22; --lost-ink: #FFFFFF; }
:root[data-theme="dark"] { --lost: #E2584C; --lost-deep: #B8433A; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --lost: #E2584C; --lost-deep: #B8433A; } }

.lost-small { font-size: 13.5px; }
.btn--lost { background: var(--lost-ink); color: var(--lost-deep); border-color: transparent; font-weight: 800; display: inline-flex; align-items: center; gap: 8px; }
.btn--lost:hover { background: #fff3f1; color: var(--lost-deep); }
.btn--lost-ghost { background: transparent; color: var(--lost-ink); border: 1.5px solid rgba(255, 255, 255, .7); }
.btn--lost-ghost:hover { background: rgba(255, 255, 255, .14); color: var(--lost-ink); }
.lost-on__btn.btn--danger { background: var(--lost); color: #fff; border-color: var(--lost); font-size: 17px; padding-block: 14px; }
.lost-on__btn.btn--danger:hover { background: var(--lost-deep); color: #fff; }

/* Piros sáv a QR-biléta oldalán */
.tag__lost.lost-banner { display: grid; grid-template-columns: auto 1fr; gap: 10px 16px; align-items: start; background: linear-gradient(135deg, var(--lost), var(--lost-deep)); color: var(--lost-ink); padding: 20px 22px; box-shadow: 0 14px 34px -18px rgba(158, 42, 34, .7); }
.tag__lost.lost-banner span, .tag__lost.lost-banner strong { color: var(--lost-ink); }
.lost-banner__text { display: grid; gap: 6px; }
.lost-banner__text strong { font-size: clamp(20px, 3.4vw, 26px); line-height: 1.15; }
.lost-banner__text span { opacity: .95; }
.lost-banner__actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 4px; }
.tag__lost .lost-banner__link { color: var(--lost-ink); text-decoration: underline; font-weight: 600; }
.lost-banner__pulse, .lost-panel__pulse { width: 14px; height: 14px; border-radius: 50%; background: #fff; margin-top: 8px; box-shadow: 0 0 0 0 rgba(255, 255, 255, .7); animation: lost-pulse 1.8s infinite; display: inline-block; flex: none; }
.lost-panel__pulse { background: var(--lost); margin: 0; box-shadow: 0 0 0 0 rgba(200, 55, 45, .55); }
@keyframes lost-pulse { 70% { box-shadow: 0 0 0 12px rgba(255, 255, 255, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); } }
@media (prefers-reduced-motion: reduce) { .lost-banner__pulse, .lost-panel__pulse { animation: none; } }

.lost-found { display: grid; gap: 4px; padding: 16px 20px; border-radius: var(--r-lg); background: var(--good-soft); color: var(--good); margin-bottom: 18px; }
.lost-found strong { font-family: var(--font-display); font-size: 22px; }
.lost-found span { color: var(--ink); }

.lost-ownerbar { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; justify-content: space-between; padding: 10px 14px; border-radius: var(--r-md); border: 1px dashed var(--line); margin-bottom: 14px; font-size: 14.5px; }
.lost-ownerbar > span:first-child { display: inline-flex; gap: 8px; align-items: center; color: var(--muted); }
.lost-ownerbar__actions { display: inline-flex; gap: 8px; flex-wrap: wrap; }
.lost-ownerbar__actions form { margin: 0; }

/* Megtaláló: helymegosztás */
.lost-geo { margin-top: 18px; }
.lost-geo.is-lost { border: 2px solid var(--lost); }
.lost-geo__locate { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; }
.lost-geo__locate .btn { display: inline-flex; align-items: center; gap: 8px; }
.lost-geo__status { font-size: 14px; }
.lost-geo__status.is-ok { color: var(--good); font-weight: 600; }
.lost-geo__status.is-bad { color: var(--bad); }
.lost-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Elveszett mód oldal */
.lost-hero { display: grid; grid-template-columns: 200px 1fr; gap: 22px; align-items: center; padding: 22px; border-radius: var(--r-lg); background: linear-gradient(135deg, var(--lost), var(--lost-deep)); color: #fff; margin-bottom: 22px; box-shadow: 0 18px 40px -22px rgba(158, 42, 34, .8); }
.lost-hero__photo { aspect-ratio: 1; border-radius: var(--r-md); overflow: hidden; background: rgba(255, 255, 255, .15); border: 3px solid rgba(255, 255, 255, .85); }
.lost-hero__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lost-hero__photo img.placeholder { object-fit: contain; padding: 22%; filter: brightness(0) invert(1); opacity: .8; }
.lost-hero h2 { color: #fff; margin: 4px 0 6px; font-size: clamp(26px, 4vw, 36px); }
.lost-hero p { margin: 0 0 6px; color: rgba(255, 255, 255, .95); }
.lost-hero__eyebrow { display: inline-flex; gap: 10px; align-items: center; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; font-size: 13px; }
.lost-hero .lost-panel__pulse { background: #fff; }
.lost-hero__stat strong { font-size: 22px; font-family: var(--font-display); }
.lost-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.lost-hero__actions form { margin: 0; }
.lost-hero .btn--primary { background: #fff; color: var(--lost-deep); }
.lost-hero .btn--ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .7); }
.lost-hero .btn--ghost:hover { background: rgba(255, 255, 255, .14); }
.lost-link { word-break: break-all; font-size: 14px; }

.lost-on__head { display: flex; gap: 16px; align-items: center; margin-bottom: 16px; }
.lost-on__head h2 { margin: 0 0 4px; }
.lost-on__photo { width: 84px; height: 84px; flex: none; border-radius: 50%; overflow: hidden; background: var(--pine-soft); }
.lost-on__photo img { width: 100%; height: 100%; object-fit: cover; }
.lost-on__photo img.placeholder { object-fit: contain; padding: 20%; }

.lost-upsell { border: 1px solid #efd39b; background: linear-gradient(160deg, #fffaf0, var(--surface) 60%); }
:root[data-theme="dark"] .lost-upsell { border-color: #6b5222; background: linear-gradient(160deg, #2d2412, var(--surface) 60%); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .lost-upsell { border-color: #6b5222; background: linear-gradient(160deg, #2d2412, var(--surface) 60%); } }
.lost-upsell .eyebrow { display: inline-flex; gap: 8px; align-items: center; }
.lost-upsell h2 { margin-top: 4px; }

/* Panel a kedvenc oldalán */
.lost-panel { margin-bottom: 20px; }
.lost-panel.is-active { border: 2px solid var(--lost); background: var(--bad-soft); }
.lost-panel__head { display: flex; gap: 14px; align-items: flex-start; }
.lost-panel__head .lost-panel__pulse { margin-top: 10px; }
.lost-panel__head h2 { margin: 0 0 4px; color: var(--bad); }
.lost-panel__head p { margin: 0; }
.lost-panel__actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 4px; }
.lost-panel__actions form { margin: 0; }
.lost-panel__sub { font-size: 16px; margin: 16px 0 8px; }

.lost-finds { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.lost-find { display: flex; gap: 12px; padding: 12px 14px; border-radius: var(--r-md); background: var(--surface); border: 1px solid var(--line); }
.lost-find p { margin: 4px 0 0; }
.lost-find__icon { color: var(--lost); flex: none; margin-top: 2px; }

.lost-pref .check span { font-size: 15px; }
.lost-pref-card { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: start; }
.lost-pref-card__icon { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--bad-soft); color: var(--bad); }
.lost-pref-card h2 { margin: 0 0 4px; font-size: 19px; }

@media (max-width: 640px) {
  .lost-hero { grid-template-columns: 1fr; text-align: left; }
  .lost-hero__photo { width: 140px; }
  .lost-banner__actions .btn { width: 100%; justify-content: center; }
}
.tag__lost .btn--lost { color: var(--lost-deep); }
.tag__lost .btn--lost-ghost, .tag__lost .btn--lost-ghost:hover { color: var(--lost-ink); }
.lost-geo .btn--danger { background: var(--lost); color: #fff; border-color: var(--lost); }
.lost-geo .btn--danger:hover { background: var(--lost-deep); color: #fff; }
@media (max-width: 900px) { .lost-layout > aside { order: 0; } }
.lost-upsell > .btn { margin-top: 14px; }

/* Elveszett-térkép (bejelentesek.php) */
.lostmap { margin-top: 18px; padding: 16px; }
.lostmap__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin-bottom: 12px; }
.lostmap__head h2 { margin: 0; font-size: 1.2rem; }
.lostmap__legend { display: flex; flex-wrap: wrap; gap: 14px; list-style: none; margin: 0; padding: 0; font-size: .9rem; font-weight: 600; }
.lostmap__legend li { display: inline-flex; align-items: center; gap: 6px; }
.lm-dot { width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0, 0, 0, .15); }
.lm-dot--elveszett { background: #D94F4F; } .lm-dot--talalt { background: #1F9D7A; } .lm-dot--kobor { background: #C98A1A; }
.lostmap__map { height: clamp(300px, 46vh, 460px); border-radius: var(--r-md, 16px); overflow: hidden; border: 1px solid var(--line); z-index: 0; }
.lostmap__note { margin: 10px 2px 0; font-size: .85rem; }
.lm-pop { display: flex; gap: 10px; align-items: center; text-decoration: none; color: #221D2E; }
.lm-pop img { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; flex: none; background: #F2EFF7; }
.lm-pop img.is-paw { object-fit: contain; padding: 12px; }
.lm-pop__body { display: grid; gap: 2px; }
.lm-pop__body strong { font-size: .98rem; }
.lm-pop__meta { font-size: .82rem; color: #625B70; }
.lm-pop__kind { justify-self: start; font-size: .72rem; font-weight: 800; padding: 2px 8px; border-radius: 999px; color: #fff; background: #6A4FA8; }
.lm-pop__kind--elveszett { background: #D94F4F; } .lm-pop__kind--talalt { background: #1F9D7A; } .lm-pop__kind--kobor { background: #C98A1A; }
.lostmap .leaflet-container { font: inherit; }
.lostmap .leaflet-popup-content { margin: 12px 14px; }

/* Elveszett mód: jelzések térképe, útvonallal */
.lroute { margin: 6px 0 16px; }
.lroute__map { height: clamp(300px, 52vh, 460px); border-radius: var(--r-md, 16px); overflow: hidden; border: 1px solid var(--line); z-index: 0; }
.lroute__legend { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .86rem; color: var(--muted); }
.lroute__legend li { display: inline-flex; align-items: center; gap: 7px; }
.lroute__dot { width: 14px; height: 14px; border-radius: 50%; background: #6A4FA8; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0, 0, 0, .15); }
.lroute__dot--start { background: #221D2E; border-radius: 4px; }
.lroute__dot--last { background: #D94F4F; }
.lroute__line { width: 26px; border-top: 3px dotted #6A4FA8; }
.lr-pin { background: none; border: 0; }
.lr-pin b { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #6A4FA8; color: #fff; font: 800 13px/1 system-ui, sans-serif; border: 2.5px solid #fff; box-shadow: 0 3px 10px rgba(0, 0, 0, .35); }
.lr-pin--last b { background: #D94F4F; }
.lr-pin--last::before { content: ""; position: absolute; inset: -8px; border-radius: 50%; background: rgba(217, 79, 79, .35); animation: lrPulse 1.8s ease-out infinite; }
@keyframes lrPulse { from { transform: scale(.6); opacity: 1; } to { transform: scale(1.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .lr-pin--last::before { animation: none; } }
.lr-start { background: none; border: 0; }
.lr-start span { display: grid; place-items: center; height: 26px; border-radius: 8px; background: #221D2E; color: #fff; font: 800 12px/1 system-ui, sans-serif; box-shadow: 0 3px 10px rgba(0, 0, 0, .35); }
.lr-pop { display: grid; gap: 3px; color: #221D2E; }
.lr-pop__when { font-weight: 700; }
.lr-pop__sub { color: #625B70; font-size: .85rem; }
.lr-pop__note { margin: 4px 0; font-style: italic; }
.lr-pop__dir { font-weight: 700; margin-top: 4px; }

/* A közösség támogatása az Elveszett mód fejlécében */
.lost-support { margin: 12px 0 0; }
.lost-support a { display: inline-flex; flex-wrap: wrap; gap: 6px 14px; color: inherit; text-decoration: none; font-weight: 700; font-size: 14px; }
.lost-support a > span { display: inline-flex; align-items: center; gap: 5px; }
.lost-support a:hover { text-decoration: underline; }

/* assets/css/mod-map.css */
/* Országos térkép (map.php) */
.nmap { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 16px; align-items: stretch; }
.nmap__side { padding: 16px; display: flex; flex-direction: column; gap: 12px; align-self: start; }
.nmap__search input { width: 100%; }
.nmap__locate { align-self: flex-start; }
.nmap__layers { border: 0; margin: 0; padding: 0; display: grid; gap: 4px; }
.nmap__layers legend { font-weight: 800; margin-bottom: 6px; padding: 0; }
.nmap__layer { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 10px; cursor: pointer; font-weight: 600; font-size: .95rem; }
.nmap__layer:hover { background: var(--pine-soft); }
.nmap__layer input { width: 18px; height: 18px; accent-color: var(--pine); flex: none; }
.nmap__layer span { flex: 1; }
.nmap__layer b { font-variant-numeric: tabular-nums; color: var(--muted); font-size: .85rem; }
.nmap__dot { width: 14px; height: 14px; border-radius: 50%; background: var(--c); border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0, 0, 0, .15); flex: none; }
.nmap__status { font-size: .86rem; margin: 0; }
.nmap__cta { margin-top: 4px; padding: 14px; border-radius: 14px; background: var(--pine-soft); }
.nmap__cta strong { display: block; }
.nmap__cta p { font-size: .88rem; margin: 4px 0 10px; }
.nmap__main { display: grid; gap: 16px; min-width: 0; align-content: start; }
.nmap__map { height: clamp(460px, 72vh, 780px); border-radius: var(--r-lg, 22px); overflow: hidden; border: 1px solid var(--line); z-index: 0; }
.nmap__note { font-size: .84rem; margin-top: 12px; }
.nm-pin { background: none; border: 0; }
.nm-pin i { display: block; width: 16px; height: 16px; margin: 3px; border-radius: 50%; border: 2.5px solid #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .35); }
.nm-pin--bundee i { width: 20px; height: 20px; margin: 1px; box-shadow: 0 0 0 2px rgba(240, 194, 91, .95), 0 2px 8px rgba(0, 0, 0, .4); }
.nm-pop { display: grid; gap: 4px; color: #221D2E; font: 500 .9rem/1.4 var(--font, inherit); }
.nm-pop__head { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.nm-pop__layer { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: #625B70; }
.nm-pop__badge { font-size: .7rem; font-weight: 800; padding: 1px 7px; border-radius: 999px; background: linear-gradient(180deg, #F3CC6E, #D99A1E); color: #3A2600; }
.nm-pop__img { width: 100%; height: 120px; object-fit: cover; border-radius: 10px; }
.nm-pop__name { font-size: 1.02rem; }
.nm-pop__sub, .nm-pop__addr { color: #625B70; font-size: .85rem; }
.nm-pop__acts { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 6px; }
.nm-pop__acts a { font-weight: 700; }
.map-page .marker-cluster-small, .map-page .marker-cluster-medium, .map-page .marker-cluster-large { background-color: rgba(106, 79, 168, .28); }
.map-page .marker-cluster-small div, .map-page .marker-cluster-medium div, .map-page .marker-cluster-large div { background-color: #6A4FA8; color: #fff; font-weight: 800; font-family: inherit; }
.map-page .marker-cluster-large div { background-color: #4B3672; }
@media (max-width: 900px) { .nmap { grid-template-columns: 1fr; } .nmap__main { order: -1; } .nmap__map { height: 64vh; } }
/* Szervezetek */
.org-kind { font-weight: 700; }
.org-kind--egyesulet { background: color-mix(in srgb, #6A4FA8 14%, var(--surface)); color: #6A4FA8; }
.org-kind--alapitvany { background: color-mix(in srgb, #1F9D7A 14%, var(--surface)); color: #17876A; }
.org-kind--menhely { background: color-mix(in srgb, #DE6838 14%, var(--surface)); color: #C2531F; }
.org-pin-map { height: 300px; border-radius: 16px; overflow: hidden; border: 1px solid var(--line); z-index: 0; }
.org-members { width: 100%; border-collapse: collapse; }
.org-members th, .org-members td { text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
.org-perms { display: flex; flex-wrap: wrap; gap: 6px 12px; }
.org-perms label { display: inline-flex; gap: 6px; align-items: center; font-weight: 500; font-size: .9rem; }
.org-roleinfo { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin: 8px 0 0; padding: 0; list-style: none; }
.org-roleinfo li { padding: 10px 12px; border-radius: 12px; background: var(--pine-soft); font-size: .88rem; }
.org-roleinfo b { display: block; }
.org-people { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.org-people li { display: flex; gap: 10px; align-items: center; }
.org-people .av { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); font-weight: 800; flex: none; }
.org-people small { display: block; color: var(--muted); }
.plain-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }

/* Partnerszűrő, csoportok, partner-jelölő */
.nmap__partner { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; border: 1px solid color-mix(in srgb, #D99A1E 45%, var(--line)); background: color-mix(in srgb, #F3CC6E 14%, var(--surface)); cursor: pointer; }
.nmap__partner--osm { border-color: var(--line); background: var(--surface); }
.nmap__partner input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--pine); flex: none; }
.nmap__partner span { display: flex; flex-direction: column; gap: 1px; }
.nmap__partner small { font-size: .8rem; }
.nmap__allrow { display: flex; align-items: baseline; gap: 10px; margin-bottom: 4px; }
.nmap__legend { font-weight: 800; margin-right: auto; }
.nmap__group { border: 0; margin: 0 0 6px; padding: 0; display: grid; gap: 2px; }
.nmap__group legend { font-size: .74rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); padding: 6px 8px 2px; }
.nmap__layer { padding: 5px 8px; }
.nm-pin--partner i { position: relative; width: 26px; height: 26px; margin: 2px; display: grid; place-items: center; box-shadow: 0 0 0 3px rgba(240, 194, 91, .95), 0 3px 10px rgba(0, 0, 0, .45); }
.nm-pin--partner b { color: #fff; font-size: 13px; line-height: 1; text-shadow: 0 1px 2px rgba(0, 0, 0, .4); }
.nm-pop__badge--partner { background: linear-gradient(180deg, #F3CC6E, #D99A1E); }
.nm-pop__offer { font-weight: 700; color: #7A4E00; background: #FCEFCF; padding: 4px 8px; border-radius: 8px; font-size: .85rem; }
.nmap__side { max-height: calc(100vh - 110px); overflow-y: auto; position: sticky; top: 84px; }
@media (max-width: 900px) { .nmap__side { max-height: none; position: static; } }

/* z57: gyorsgombok, most nyitva, lista, javaslat, adatlap */
.nmap__quick { display: flex; flex-wrap: wrap; gap: 8px; }
.nmap__sos { background: #D94F4F; color: #fff; border-color: #D94F4F; }
.nmap__sos:hover { background: #BF3B3B; color: #fff; }
.nmap__partner--open { border-color: color-mix(in srgb, #1F9D7A 40%, var(--line)); background: color-mix(in srgb, #1F9D7A 8%, var(--surface)); }
.nm-open { font-size: .7rem; font-weight: 800; padding: 1px 7px; border-radius: 999px; background: #ECE9F1; color: #5E5870; }
.nm-open.is-open { background: #D7F2E8; color: #11684F; }
.nmap__results { padding: 16px; }
.nmap__rhead { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-bottom: 10px; }
.nmap__rhead h2 { margin: 0; font-size: 1.15rem; }
.nmap__rhead .muted { font-size: .85rem; }
.nmap__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 6px 12px; }
.nmap__ibtn { width: 100%; display: flex; align-items: flex-start; gap: 10px; padding: 9px 10px; border: 1px solid transparent; border-radius: 12px; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.nmap__ibtn:hover, .nmap__ibtn:focus-visible { background: var(--pine-soft); border-color: var(--line); }
.nmap__ibtn .nmap__dot { margin-top: 3px; }
.nmap__ibody { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.nmap__ibody strong { overflow-wrap: anywhere; }
.nmap__ibody small { font-size: .8rem; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.nmap__ioffer { color: #7A4E00; font-weight: 700; }
.nmap__iside { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; flex: none; }
.nmap__iside b { font-size: .82rem; font-variant-numeric: tabular-nums; color: var(--muted); }
.nmap__item.is-partner .nmap__ibtn { background: color-mix(in srgb, #F3CC6E 12%, transparent); }
.nmap__empty { margin: 0; }
.nmap__suggest { padding: 12px 14px; border-radius: 14px; background: var(--pine-soft); }
.nmap__suggest > summary { cursor: pointer; font-weight: 800; }
.nmap__suggest p { font-size: .88rem; margin: 8px 0 0; }
.nmap__sform { margin-top: 10px; display: grid; gap: 8px; }
.nmap__sform .field { margin: 0; }
.ptn-chip { background: linear-gradient(180deg, #F3CC6E, #D99A1E); color: #3A2600; font-weight: 800; }
.ptn-offer h2 { margin: 0 0 6px; font-size: 1.1rem; }
.ptn-offer { border: 1px solid color-mix(in srgb, #D99A1E 45%, var(--line)); }
.ptn-offer__text { font-size: 1.1rem; font-weight: 700; margin: 0 0 6px; }
.ptn-hours { width: 100%; border-collapse: collapse; font-size: .92rem; }
.ptn-hours th, .ptn-hours td { text-align: left; padding: 5px 4px; border-bottom: 1px solid var(--line); font-weight: 500; }
.ptn-hours th { font-weight: 700; width: 45%; }
.ptn-hours tr.is-today th, .ptn-hours tr.is-today td { color: var(--pine); font-weight: 800; }
.ptn-near { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.ptn-near a { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 10px; text-decoration: none; color: inherit; }
.ptn-near a:hover { background: var(--pine-soft); }
.ptn-near span { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ptn-near__km { font-size: .85rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.adm-hours { border: 0; padding: 0; margin: 0; }
.adm-hours legend { font-weight: 600; margin-bottom: 6px; }

.nmap__toggles { display: grid; gap: 8px; }
.nmap__layerbox > summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; }
.nmap__layerbox > summary::-webkit-details-marker { display: none; }
.nmap__layerbox > summary::after { content: "▾"; color: var(--muted); font-size: .9rem; transition: transform .15s; }
.nmap__layerbox:not([open]) > summary::after { transform: rotate(-90deg); }
.nmap__layerbox .nmap__allrow { justify-content: flex-end; margin: 4px 0; }
@media (max-width: 900px) {
  .nmap__main { order: 0; }
  .nmap__toggles { display: flex; flex-wrap: wrap; gap: 6px; }
  .nmap__toggles .nmap__partner { padding: 7px 10px; align-items: center; border-radius: 999px; }
  .nmap__toggles .nmap__partner small { display: none; }
  .nmap__toggles .nmap__partner input { margin-top: 0; }
  .nmap__side { gap: 10px; }
}

/* assets/css/mod-market.css */
/* Bundee Piac. */
.mk-tabs { margin-bottom: 16px; }
.mk-filter { display: grid; grid-template-columns: 2fr repeat(4, 1fr) auto; gap: 8px; align-items: end; padding: 12px; margin-bottom: 10px; }
.mk-filter .field { margin: 0; }
.mk-savealert { margin: 0 0 8px; }
.mk-count { margin: 4px 0 10px; }
.mk-grid { list-style: none; margin: 0 0 24px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(46%, 200px), 1fr)); gap: 12px; }
.mk-card { display: flex; flex-direction: column; padding: 0; overflow: hidden; color: var(--ink); text-decoration: none; height: 100%; border-radius: var(--r-lg); }
.mk-card:hover { color: var(--ink); box-shadow: 0 0 0 2px var(--pine-soft); }
.mk-card__img { position: relative; aspect-ratio: 4 / 3; background: var(--paper-2); overflow: hidden; }
.mk-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mk-card__feat, .mk-card__st { position: absolute; top: 8px; left: 8px; padding: 3px 9px; border-radius: 999px; font-size: 12px; font-weight: 800; background: #F6CE8C; color: #5A3A08; }
.mk-card__st { left: auto; right: 8px; background: rgba(0,0,0,.65); color: #fff; }
.mk-card__body { display: grid; gap: 3px; padding: 10px 12px 12px; }
.mk-card__body strong { line-height: 1.25; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.mk-card__price { font-family: var(--font-display); font-weight: 800; color: var(--pine); }
.mk-card__body .muted { font-size: 13px; }
.mk-detail { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 18px; align-items: start; padding-bottom: 48px; }
.mk-gallery { padding: 10px; }
.mk-gallery__main { display: block; width: 100%; border: 0; padding: 0; background: var(--paper-2); border-radius: 14px; overflow: hidden; cursor: zoom-in; aspect-ratio: 4 / 3; position: relative; }
.mk-gallery__main img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.mk-gallery__thumbs { list-style: none; margin: 8px 0 0; padding: 0; display: flex; gap: 6px; flex-wrap: wrap; }
.mk-gallery__thumbs button { width: 64px; height: 64px; border: 0; padding: 0; border-radius: 10px; overflow: hidden; cursor: zoom-in; }
.mk-gallery__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.mk-info h1 { margin: 4px 0; font-size: clamp(24px, 3vw, 32px); }
.mk-info__price { font-family: var(--font-display); font-size: 26px; font-weight: 800; color: var(--pine); margin: 0 0 8px; }
.mk-seller { display: flex; gap: 10px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); margin-top: 10px; }
.mk-seller > div { display: grid; }
.mk-own, .mk-contact { display: grid; gap: 8px; margin-top: 10px; }
.mk-close { display: grid; gap: 6px; padding: 10px; border-radius: 12px; background: var(--paper-2); }
.mk-phone summary { list-style: none; }
.mk-alerts { margin-bottom: 18px; }
.mk-alerts__list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
.mk-alerts__list li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 12px; border-radius: 10px; background: var(--paper-2); }
.mk-h2 { margin: 10px 0; }
.mk-editphotos { display: flex; flex-wrap: wrap; gap: 10px; }
.mk-editphotos label { display: grid; gap: 4px; width: 110px; }
.mk-editphotos img { width: 110px; height: 82px; object-fit: cover; border-radius: 10px; }
.mk-more { text-align: center; }
@media (max-width: 900px) { .mk-filter { grid-template-columns: 1fr 1fr; } .mk-filter__q { grid-column: 1 / -1; } .mk-detail { grid-template-columns: 1fr; } }

.mk-card__img.is-empty img { inset: 22%; width: 56%; height: 56%; object-fit: contain; opacity: .35; }
@media (max-width: 520px) { .mk-card__body { padding: 8px 10px 10px; } .mk-card__body strong { font-size: 14px; } }
@media (max-width: 560px) { .mk-filter select { font-size: 15px; padding-right: 30px; text-overflow: ellipsis; } }

/* assets/css/mod-messages.css */
/* Bundee — üzenetek és értesítések (4. kör) */

/* Fejléc: üzenet- és csengőikon jelvénnyel */
.iconbtn--badge { position: relative; text-decoration: none; }
.iconbtn--badge.is-active { background: var(--pine-soft); color: var(--pine); border-color: transparent; }
.iconbtn__badge {
  position: absolute; top: -4px; right: -4px; min-width: 19px; height: 19px; padding: 0 5px;
  border-radius: 999px; background: #D23F31; color: #fff; font-size: 11px; font-weight: 800; line-height: 19px; text-align: center;
  box-shadow: 0 0 0 2px var(--surface);
}
@media (max-width: 760px) {
  .topbar--auth .topbar__actions .iconbtn { width: 36px; height: 36px; }
}
@media (max-width: 440px) {
  .topbar--auth .topbar__actions .btn--sm { padding: 7px 12px; }
}
/* Bejelentkezve a témaváltó a Felfedezés menü aljára kerül (a fejlécben az üzenet- és csengőikon van). */
.explore__theme {
  display: flex; gap: 12px; align-items: center; width: 100%; margin-top: 6px; padding: 10px; border: 0; border-top: 1px solid var(--line);
  border-radius: 0 0 var(--r-md) var(--r-md); background: transparent; color: var(--ink); font: inherit; text-align: left; cursor: pointer;
}
.explore__theme:hover { background: var(--paper-2); }
.explore__theme strong { display: block; font-size: 15px; line-height: 1.25; }
.explore__theme small { display: block; color: var(--muted); font-size: 13px; line-height: 1.3; }

/* Beszélgetéslista */
.msg-list { list-style: none; margin: 0 0 64px; padding: 6px; }
.msg-row { display: flex; align-items: center; gap: 4px; border-radius: var(--r-md); }
.msg-row + .msg-row { border-top: 1px solid var(--line); }
.msg-row:hover { background: var(--paper-2); }
.msg-row__link { flex: 1; min-width: 0; display: flex; align-items: center; gap: 14px; padding: 14px 10px; text-decoration: none; color: var(--ink); }
.msg-row__link:hover { color: var(--ink); }
.msg-row__main { flex: 1; min-width: 0; display: grid; gap: 2px; }
.msg-row__top { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.msg-row__top strong { font-size: 17px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.msg-row__top time { flex: none; font-size: 13px; color: var(--muted); }
.msg-row__title { font-size: 14px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.msg-row__title .chip { font-size: 12px; padding: 1px 8px; }
.msg-row__snippet { font-size: 15px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.msg-row.is-unread .msg-row__snippet { color: var(--ink); font-weight: 600; }
.msg-row__archive { flex: none; padding-right: 8px; }
.msg-row__archive .iconbtn { width: 36px; height: 36px; color: var(--muted); }
.msg-avatar {
  flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
  background: var(--pine-soft); color: var(--pine); font-family: var(--font-display); font-weight: 800; font-size: 19px;
}
.msg-badge { flex: none; min-width: 24px; height: 24px; padding: 0 7px; border-radius: 999px; background: var(--pine); color: var(--on-pine); font-size: 13px; font-weight: 800; display: grid; place-items: center; }

/* Beszélgetés */
.msg-thread { margin-bottom: 64px; padding: 0; overflow: hidden; }
.msg-thread__empty { padding: 28px 22px 0; margin: 0; }
.msg-bubbles { list-style: none; margin: 0; padding: 22px 22px 8px; display: flex; flex-direction: column; gap: 8px; max-height: 62vh; overflow-y: auto; }
.msg-bubble { max-width: min(78%, 560px); align-self: flex-start; display: grid; gap: 2px; }
.msg-bubble.is-mine { align-self: flex-end; justify-items: end; }
.msg-bubble__name { font-size: 13px; font-weight: 700; color: var(--muted); padding-left: 4px; }
.msg-bubble__body {
  padding: 10px 14px; border-radius: 18px 18px 18px 6px; background: var(--paper-2); color: var(--ink);
  font-size: 16px; line-height: 1.45; overflow-wrap: anywhere;
}
.msg-bubble.is-mine .msg-bubble__body { background: var(--pine); color: var(--on-pine); border-radius: 18px 18px 6px 18px; }
.msg-bubble__time { font-size: 12px; color: var(--muted); padding: 0 6px; }
.msg-day, .msg-new { align-self: center; font-size: 13px; color: var(--muted); padding: 6px 0; }
.msg-day span { padding: 3px 10px; border-radius: 999px; background: var(--paper-2); font-weight: 600; }
.msg-new { color: var(--bad); font-weight: 700; display: flex; align-items: center; gap: 10px; width: 100%; }
.msg-new::before, .msg-new::after { content: ""; flex: 1; height: 1px; background: var(--bad-soft); }
.msg-compose { display: flex; gap: 10px; align-items: flex-end; padding: 14px 22px; border-top: 1px solid var(--line); background: var(--surface); }
.msg-compose textarea {
  flex: 1; min-height: 52px; max-height: 220px; resize: vertical; font: inherit; font-size: 16px; color: var(--ink);
  background: var(--paper); border: 1.5px solid var(--line); border-radius: var(--r-md); padding: 12px 14px;
}
.msg-compose textarea:focus { outline: none; border-color: var(--pine); box-shadow: 0 0 0 3px var(--pine-soft); }
.msg-hint { font-size: 13px; padding: 0 22px 16px; margin: 0; background: var(--surface); }
@media (max-width: 600px) {
  .msg-bubbles { padding: 16px 12px 6px; max-height: 58vh; }
  .msg-bubble { max-width: 88%; }
  .msg-compose { padding: 12px; flex-direction: column; align-items: stretch; }
  .msg-hint { padding: 0 12px 14px; }
  .msg-row__link { gap: 10px; padding: 12px 6px; }
  .msg-avatar { width: 38px; height: 38px; font-size: 16px; }
  .msg-row__archive { padding-right: 2px; }
}

/* Értesítések */
.notif-list { list-style: none; margin: 0 0 64px; padding: 6px; }
.notif + .notif { border-top: 1px solid var(--line); }
.notif__link { display: flex; align-items: center; gap: 14px; padding: 14px 10px; border-radius: var(--r-md); text-decoration: none; color: var(--ink); }
a.notif__link:hover { background: var(--paper-2); color: var(--ink); }
.notif__icon { flex: none; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--paper-2); color: var(--muted); }
.notif.is-unread .notif__icon { background: var(--pine-soft); color: var(--pine); }
.notif__main { flex: 1; min-width: 0; display: grid; gap: 2px; }
.notif__body { font-size: 16px; line-height: 1.4; }
.notif.is-unread .notif__body { font-weight: 600; }
.notif__main time { font-size: 13px; color: var(--muted); }
.notif__dot { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--pine); }

/* Kapcsolatfelvétel-dobozok a modulokban */
.msg-cta { display: grid; gap: 10px; }
.msg-cta .muted { font-size: 14px; margin: 0; }
.sit-ask { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.sit-ask h3 { margin: 0; font-size: 18px; }
/* Mobilon a kilépés is a Felfedezés menübe költözik, hogy a fejléc egy sorban maradjon. */
.explore__logout { display: none; margin: 0; }
.explore__logout .explore__theme { margin-top: 0; border-radius: var(--r-md); }
@media (max-width: 440px) {
  .topbar--auth .topbar__logout { display: none; }
  .explore__logout { display: block; }
}

/* assets/css/mod-moderation.css */
/* Moderálás: beágyazott „Moderálás” menü (admin, tulajdonos) és az admin „Felhasználók” fül. */
.mod-menu { position: relative; display: inline-block; vertical-align: middle; }
.mod-menu > summary {
  list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px; border-radius: 999px; font-size: 13px; font-weight: 650;
  color: var(--warn, #9A6410); background: var(--warn-soft, #FBEFD3); border: 1px solid transparent;
}
.mod-menu > summary::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.mod-menu > summary::-webkit-details-marker { display: none; }
.mod-menu > summary:focus-visible { outline: 3px solid var(--pine-soft, #ECE7F4); outline-offset: 2px; }
.mod-menu__pop {
  position: absolute; z-index: 40; right: 0; top: calc(100% + 6px); min-width: 210px; padding: 6px;
  border-radius: var(--r-md, 14px); background: var(--surface, #fff); border: 1px solid var(--line, #E2DDEB);
  box-shadow: 0 12px 32px -10px rgba(20, 12, 34, .35); text-align: left;
}
.mod-menu__pop form { margin: 0; }
.mod-menu__pop button, .mod-menu__pop a {
  display: block; width: 100%; padding: 9px 12px; border: 0; border-radius: var(--r-sm, 10px); background: none;
  font: inherit; font-size: 14.5px; color: var(--ink, #221D2E); text-align: left; text-decoration: none; cursor: pointer;
}
.mod-menu__pop button:hover, .mod-menu__pop a:hover, .mod-menu__pop button:focus-visible, .mod-menu__pop a:focus-visible { background: var(--paper-2, #EEEBF4); outline: none; }
.mod-menu__pop .is-danger { color: var(--bad, #B3362B); }
.post__actions .mod-menu, .show-wall__actions .mod-menu, .vrev__actions .mod-menu { margin-left: auto; }
.sit-reviews .mod-menu { margin-top: 6px; }

/* Admin: Felhasználók */
.adm-usearch { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; margin-bottom: 14px; }
.adm-usearch .field { flex: 1 1 260px; margin: 0; }
.adm-users th[scope="row"] { font-weight: 600; }
.adm-facts { margin-top: 0; }
.adm-inline { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; margin-bottom: 12px; }
.adm-inline .field { margin: 0; flex: 1 1 160px; }
.adm-danger { margin-top: 10px; border-top: 1px solid var(--line); padding-top: 10px; }
.adm-danger > summary { cursor: pointer; color: var(--bad); font-weight: 650; }
.adm-ctype { margin: 18px 0 8px; font-size: 16px; }
.adm-content { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.adm-content li { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--surface); }
.adm-content li.is-hidden { opacity: .7; border-style: dashed; }
.adm-content img { width: 56px; height: 56px; object-fit: cover; border-radius: 8px; flex: none; }
.adm-content__text { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.adm-log td { vertical-align: top; }
.mod-userlink { margin-top: 6px; }
/* Levágó (overflow: hidden) kártyákban a menü a kártyán belül nyílik. */
.post .mod-menu, .usite-card .mod-menu { display: block; }
.post .mod-menu__pop, .usite-card .mod-menu__pop { position: static; margin-top: 6px; box-shadow: none; }

/* assets/css/mod-nav.css */
/* Fejléc és főmenü: asztalon 4 főpont + Felfedezés + fiók menü, mobilon alsó fülsáv. */
.mainnav { overflow: visible; }
.mainnav a { display: inline-flex; align-items: center; gap: 6px; }
.navbadge, .tabbar__badge {
  display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px;
  background: var(--bad); color: #fff; font-size: 12px; font-weight: 800; line-height: 1;
}
:root[data-theme="dark"] .navbadge, :root[data-theme="dark"] .tabbar__badge { color: #17121F; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .navbadge, :root:not([data-theme="light"]) .tabbar__badge { color: #17121F; } }
.mainnav a:focus-visible, .explore__btn:focus-visible, .usermenu > summary:focus-visible, .tabbar__item:focus-visible,
.usermenu__list a:focus-visible, .usermenu__row:focus-visible, .iconbtn:focus-visible {
  outline: 3px solid var(--pine); outline-offset: 2px;
}

/* Fiók menü */
.usermenu { position: relative; }
.usermenu > summary { list-style: none; cursor: pointer; user-select: none; }
.usermenu > summary::-webkit-details-marker { display: none; }
.usermenu[open] > summary { background: var(--paper-2); }
.usermenu__caret { font-size: 11px; color: var(--muted); margin-left: -2px; }
.usermenu__pop {
  position: absolute; right: 0; top: calc(100% + 8px); width: 290px; padding: 8px; z-index: 60;
  border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lift);
}
.usermenu__who { margin: 6px 10px 10px; display: grid; gap: 2px; }
.usermenu__who small { color: var(--muted); font-size: 13px; overflow-wrap: anywhere; }
.usermenu__who .chip { justify-self: start; margin-top: 4px; }
.usermenu__list { list-style: none; margin: 0; padding: 6px 0 0; border-top: 1px solid var(--line); }
.usermenu__list a, .usermenu__row {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border: 0; border-radius: var(--r-sm);
  background: none; color: var(--ink); font: inherit; font-size: 15px; font-weight: 600; text-align: left; text-decoration: none; cursor: pointer;
}
.usermenu__list a svg, .usermenu__row svg { color: var(--pine); flex: none; }
.usermenu__list a:hover, .usermenu__row:hover, .usermenu__list a[aria-current="page"] { background: var(--paper-2); color: var(--ink); }
.usermenu__pop > .usermenu__row { margin-top: 6px; border-top: 1px solid var(--line); border-radius: 0 0 var(--r-sm) var(--r-sm); }
.usermenu__logout { margin: 0; }
.usermenu__logout .usermenu__row { color: var(--bad); }

/* Asztalon a fiók neve csak széles képernyőn (a régi szabály 1400px alatt elrejti). */
@media (min-width: 1100px) { .usermenu .userchip__name { display: inline; } }

.tabbar { display: none; }

@media (max-width: 760px) {
  .topbar__inner { flex-wrap: nowrap; gap: 8px; }
  .mainnav { display: none !important; }
  .explore { order: 1; margin-left: auto; }
  .explore__btn { display: none; }
  .explore { margin-left: auto; }
  .topbar__actions { margin-left: 0; }
  /* A fejléc backdrop-filtere miatt a fixed itt a fejléchez igazodna, ezért a fejléc alá nyílik. */
  .explore__panel {
    position: absolute; left: 8px; right: 8px; top: calc(100% + 4px); bottom: auto; width: auto;
    max-height: calc(100dvh - 150px - env(safe-area-inset-bottom, 0px));
  }
  .usermenu { position: static; }
  .usermenu__pop { position: absolute; left: 8px; right: 8px; top: calc(100% + 4px); width: auto; max-height: calc(100dvh - 150px); overflow-y: auto; }

  .tabbar {
    display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
    /* Oldalt is hagyunk levegőt, hogy a feliratok ne érjenek ki a lekerekített kijelzőszélig (iPhone, Android). */
    padding: 4px max(10px, env(safe-area-inset-left, 0px)) calc(4px + env(safe-area-inset-bottom, 0px)) max(10px, env(safe-area-inset-right, 0px));
    background: var(--surface-glass); -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4);
    border-top: 1px solid var(--line);
  }
  .tabbar__item {
    display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 0; padding: 5px 2px;
    border: 0; border-radius: 12px; background: none; color: var(--muted); font: inherit; font-size: 11px; font-weight: 700; letter-spacing: -.1px;
    text-decoration: none; cursor: pointer;
  }
  .tabbar__item:hover { color: var(--ink); }
  .tabbar__item.is-active { color: var(--pine); }
  .tabbar__item.is-active .tabbar__icon { background: var(--pine-soft); }
  .tabbar__icon { position: relative; display: grid; place-items: center; width: 46px; height: 28px; border-radius: 999px; }
  .tabbar__label { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .tabbar__badge { position: absolute; top: -5px; right: 0; min-width: 18px; height: 18px; padding: 0 5px; font-size: 11px; }
  body { padding-bottom: calc(66px + env(safe-area-inset-bottom, 0px)); }
  /* Vendég: kiemelt „Csatlakozom” a sáv közepén. */
  .tabbar__join { color: var(--pine); }
  .tabbar__join .tabbar__icon { background: var(--pine); color: var(--on-pine, #fff); }
  .tabbar__join .tabbar__label { color: var(--pine); letter-spacing: -.2px; }

  /* Üzenetek: nyitott szálnál a fülsáv eltűnik, hogy az írómező kényelmes legyen. */
  .page-chat .chat { height: calc(100dvh - 84px - 66px); }
  .page-chat:has(.chat--open) .tabbar { display: none; }
  .page-chat:has(.chat--open) { padding-bottom: 0; }
  .page-chat:has(.chat--open) .chat { height: calc(100dvh - 84px); }
}
@media (max-width: 380px) { .tabbar__item { font-size: 10.5px; } .tabbar__icon { width: 40px; } }
@media print { .tabbar, .usermenu { display: none !important; } body { padding-bottom: 0; } }
/* Áttekintés: üzenetek kártya */
.dash-chat { margin-bottom: 16px; }
.dash-chat h2 { display: inline-flex; align-items: center; gap: 8px; }
.dash-chat__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.dash-chat__list a { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: var(--r-md); color: var(--ink); text-decoration: none; }
.dash-chat__list a:hover { background: var(--paper-2); color: var(--ink); }
.dash-chat__list a > span:nth-child(2) { flex: 1; min-width: 0; display: grid; }
.dash-chat__list small { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Táblagép (761–1080px): tömör fejléc, hogy minden főpont kiférjen görgetés és levágás nélkül. */
@media (min-width: 761px) and (max-width: 1080px) {
  .topbar__inner { gap: 10px; padding-left: 12px; padding-right: 12px; }
  .brand span { display: none; }
  .mainnav { gap: 0; }
  .mainnav a { padding: 8px 10px; font-size: 15px; }
  .explore__btn { padding: 8px 10px; }
  .explore__btn span { display: none; }
  .topbar__actions { gap: 6px; }
  .topbar__actions .btn--sm { padding-left: 12px; padding-right: 12px; }
  .explore__panel { left: 12px; right: 12px; width: auto; }
}
/* Fiók menü: a hasonló nevű pontok alatt egy sor magyarázat. */
.usermenu__tx { display: grid; gap: 1px; line-height: 1.25; min-width: 0; }
.usermenu__tx small { font-size: 12.5px; font-weight: 500; color: var(--muted); white-space: normal; }

/* assets/css/mod-navpins.css */
/* Felfedezés: kiemelt csempék és gombostű; bal menü: kitűzött elemek. */
.explore__hl { list-style: none; margin: 0 0 12px; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.explore__hlitem { display: flex; gap: 12px; align-items: center; padding: 14px 16px; border-radius: 18px; text-decoration: none; color: #fff; min-height: 72px;
  background: linear-gradient(135deg, #7A57B8, #4E3384); box-shadow: 0 10px 24px -14px rgba(60, 30, 110, .7); }
.explore__hlitem--1 { background: linear-gradient(135deg, #E7A93B, #C27B17); }
.explore__hlitem--2 { background: linear-gradient(135deg, #4FB08D, #2F8F7A); }
.explore__hlitem:hover { color: #fff; filter: brightness(1.06); }
.explore__hlic { width: 42px; height: 42px; flex: none; border-radius: 14px; display: grid; place-items: center; background: rgba(255,255,255,.2); }
.explore__hlitem strong { display: block; font-family: var(--font-display); font-size: 17px; }
.explore__hlitem small { display: block; font-size: 12.5px; opacity: .9; line-height: 1.3; }
.explore__list li.has-pin { position: relative; }
.explore__list li.has-pin > a { padding-right: 44px; }
.navpin { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); margin: 0; }
.navpin__btn { width: 32px; height: 32px; border-radius: 10px; border: 0; background: transparent; color: var(--muted); display: grid; place-items: center; cursor: pointer; opacity: .55; }
.explore__list li:hover .navpin__btn, .navpin__btn:focus-visible { opacity: 1; background: var(--paper-2); }
.navpin__btn.is-on { opacity: 1; color: var(--pine); background: var(--pine-soft); }
.explore__hint { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 4px 4px 8px; font-size: 13px; color: var(--muted); }
.appside__pinhead { display: flex; justify-content: space-between; align-items: center; margin: 14px 10px 4px; }
.appside__pinhead .appside__label { margin: 0; }
.appside__edit { font-size: 12.5px; font-weight: 700; }
.appside__pin { position: relative; }
.appside__unpin { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); margin: 0; }
.appside__unpin button { width: 24px; height: 24px; border-radius: 8px; border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 17px; line-height: 1; opacity: 0; }
.appside__pin:hover .appside__unpin button, .appside__unpin button:focus-visible { opacity: 1; background: var(--paper-2); }
.appside__add { width: 100%; border: 0; background: transparent; cursor: pointer; text-align: left; font: inherit; color: var(--muted); }
.appside__add .appside__ic { font-size: 20px; font-weight: 700; }
.navcat { list-style: none; padding: 8px; margin: 0; display: grid; gap: 2px; }
.navcat li { position: relative; }
.navcat li > a { display: flex; gap: 12px; align-items: center; padding: 8px 48px 8px 10px; border-radius: 12px; color: var(--ink); text-decoration: none; }
.navcat li > a:hover { background: var(--paper-2); }
.navcat li > a span:last-child { display: grid; }
.navcat .navpin__btn { opacity: 1; }
@media (max-width: 640px) { .explore__hl { grid-template-columns: 1fr; } .appside__unpin button { opacity: .7; } }
.appside__addbtn { border: 0; background: none; padding: 0; cursor: pointer; color: var(--pine); font: inherit; }
.appside__pinhead span { font-size: 12.5px; color: var(--muted); }

/* Menüm oldal: kijelölés és sorrend */
.navedit__h { font-size: 1.1rem; margin: 24px 0 10px; }
.navedit__f { margin: 0; display: contents; }
.navorder { list-style: none; margin: 0; padding: 8px; display: grid; gap: 4px; }
.navorder li { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 12px; background: var(--paper-2); scroll-margin-top: 90px; }
.navorder li strong { flex: 1; min-width: 0; }
.navorder__n { width: 22px; color: var(--muted); font-weight: 700; font-size: .9rem; }
.navorder__btns { display: flex; gap: 4px; }
.navorder__btn { width: 36px; height: 36px; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font-size: 1.05rem; font-weight: 700; cursor: pointer; display: inline-grid; place-items: center; }
.navorder__btn:hover { border-color: var(--pine); color: var(--pine); }
.navorder__btn.is-off { opacity: .3; cursor: default; }
.navorder__btn--x:hover { border-color: var(--bad); color: var(--bad); }
.navcat--pick li { display: flex; align-items: center; gap: 4px; scroll-margin-top: 90px; }
.navcat__row { flex: 1; min-width: 0; display: flex; gap: 12px; align-items: center; padding: 8px 10px; border-radius: 12px; border: 2px solid transparent; background: none; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.navcat__row:hover { background: var(--paper-2); }
.navcat__txt { display: grid; flex: 1; min-width: 0; }
.navcat__check { width: 30px; height: 30px; flex: none; border-radius: 50%; display: grid; place-items: center; border: 2px solid var(--line); color: var(--muted); font-weight: 700; }
.navcat--pick li.is-on .navcat__row { background: color-mix(in srgb, var(--pine) 9%, transparent); border-color: color-mix(in srgb, var(--pine) 45%, transparent); }
.navcat--pick li.is-on .navcat__check { background: var(--pine); border-color: var(--pine); color: #fff; }
.navcat__open { width: 36px; height: 36px; flex: none; border-radius: 10px; display: grid; place-items: center; color: var(--muted); text-decoration: none; font-size: 1.3rem; }
.navcat__open:hover { background: var(--paper-2); color: var(--pine); }
.navorder__grip { width: 30px; height: 36px; flex: none; border: 0; background: none; color: var(--muted); font-size: 20px; cursor: grab; touch-action: none; border-radius: 8px; }
.navorder__grip:hover { color: var(--pine); background: var(--surface); }
.navorder li.is-drag { position: relative; z-index: 2; box-shadow: var(--shadow-lift); background: var(--surface); cursor: grabbing; }
.navorder li.is-drag .navorder__grip { cursor: grabbing; }
.navorder.is-saving { opacity: .6; pointer-events: none; }
@media (max-width: 760px) {
  .explore__more a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 6px; }
  .explore__hint a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 6px; font-weight: 700; }
}
/* A „Kitűzve” fejléc keskeny oldalsávon se törjön szét: a műveletek egyben maradnak, szükség esetén a felirat alá kerülnek. */
.appside__pinhead { flex-wrap: wrap; gap: 2px 10px; align-items: baseline; }
.appside__pinhead > span { white-space: nowrap; display: inline-flex; align-items: baseline; gap: 4px; }
.appside__pinhead .appside__edit, .appside__pinhead .appside__addbtn { font-family: inherit; font-weight: 700; font-size: 12.5px; line-height: 1.4; color: var(--pine); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: none; }
.appside__pinhead .appside__edit:hover, .appside__pinhead .appside__addbtn:hover { text-decoration: underline; }

/* assets/css/mod-pay.css */
/* Fizetési beállítások (fizetes-beallitasok.php) és a Stripe-gombok a fiókban. */
.pay-set__keys { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin: 0 0 6px; }
.pay-set__keys div { padding: 10px 12px; border-radius: var(--r-sm); background: var(--pine-soft); min-width: 0; }
.pay-set__keys dt { font-size: 12px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.pay-set__keys dd { margin: 2px 0 0; overflow-wrap: anywhere; }
.pay-set__mode .choice { display: flex; flex-wrap: wrap; gap: 8px 16px; border: 0; padding: 0; margin: 8px 0; }
.pay-set__url { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pay-set__url code { overflow-wrap: anywhere; min-width: 0; }
.pay-set__events { margin: 4px 0 0; padding-left: 20px; display: grid; gap: 4px; }
.pay-set .ai-set__tbl table { font-size: 14px; }
.acc-portal { display: grid; gap: 6px; justify-items: start; margin-top: 12px; }

/* Karbantartás kapcsoló */
.pay-set__pause.is-paused { border: 1.5px solid color-mix(in srgb, var(--warn) 55%, var(--line)); background: color-mix(in srgb, var(--warn-soft) 60%, var(--surface)); }
.pay-set__stop { color: var(--bad); border-color: color-mix(in srgb, var(--bad) 35%, var(--line)); }
.pay-set__stop:hover { background: var(--bad-soft); color: var(--bad); }

/* Számlázás (Billingo) */
.pay-set__help { margin: 12px 0 4px; }
.pay-set__help summary { cursor: pointer; font-weight: 700; }
.pay-set__err { display: inline-block; white-space: normal; min-width: 180px; max-width: 320px; }
#szamlazas h3 { margin: 16px 0 6px; }
#szamlazas select { max-width: 100%; }

/* Számlára váró fizetések (Fizetési beállítások › Számlázás) */
.pay-set__pending { margin: 4px 0 16px; padding: 16px; border-radius: var(--r-md); border: 1.5px solid color-mix(in srgb, var(--warn) 45%, var(--line)); background: var(--warn-soft); }
.pay-set__pending h3 { margin: 0 0 4px; font-size: 17px; }
.pay-set__pendlist { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; }
.pay-set__pendlist li { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; padding: 10px 12px; border-radius: var(--r-sm); background: var(--surface); border: 1px solid var(--line); }
.pay-set__pendlist li span { display: grid; gap: 2px; min-width: 0; }
.pay-set__pendlist small { color: var(--muted); font-size: 13px; }
.pay-set__pendlist form, .adm-inv-btn { margin: 6px 0 0; }
.pay-set__pendlist form { margin: 0; }

/* assets/css/mod-pedigree-scan.css */
/* Törzskönyv beolvasása fotóról: kártya a családfa oldalon és az ellenőrző képernyő */
.ps-card { padding: 0; overflow: hidden; margin-bottom: 18px; }
.ps-card__sum { list-style: none; display: flex; align-items: center; gap: 14px; padding: 16px 18px; cursor: pointer; }
.ps-card__sum::-webkit-details-marker { display: none; }
.ps-card__sum::after { content: ''; margin-left: auto; flex: none; width: 10px; height: 10px; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted); transform: rotate(45deg); transition: transform .15s; }
.ps-card[open] > .ps-card__sum::after { transform: rotate(-135deg); }
.ps-card__sum:focus-visible { outline: 2px solid var(--pine); outline-offset: -2px; }
.ps-card__icon { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: var(--pine); color: var(--on-pine); }
.ps-card__ttl { display: grid; gap: 2px; min-width: 0; }
.ps-card__ttl strong { font-size: 17px; }
.ps-card__ttl small { font-size: 14px; }
.ps-card__body { padding: 0 18px 18px; display: grid; gap: 12px; }
.ps-card__body > p { margin: 0; }
.ps-form { display: grid; gap: 12px; }
.ps-form input[type=file] { max-width: 100%; }
.ps-files { margin: 0; padding-left: 20px; font-size: 14px; color: var(--muted); overflow-wrap: anywhere; }
.ps-msg { margin: 0; padding: 10px 12px; border-radius: var(--r-sm); background: var(--bad-soft); color: var(--bad); font-weight: 600; font-size: 14.5px; }
.ps-tips { margin: 0; padding-left: 20px; font-size: 14.5px; display: grid; gap: 2px; }
.ps-privacy { margin: 0; font-size: 13.5px; }
.ps-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.ps-busy { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; color: var(--pine); }
.ps-busy[hidden] { display: none; }
.ps-spin { width: 20px; height: 20px; border-radius: 50%; border: 3px solid var(--pine-soft); border-top-color: var(--pine); animation: ps-spin .8s linear infinite; flex: none; }
@keyframes ps-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ps-spin { animation-duration: 2.4s; } }
.ps-form.is-busy input[type=file]:not(.dropzone input) { opacity: .5; pointer-events: none; }
.ps-form.is-busy .dropzone { opacity: .6; pointer-events: none; }
.ps-form .dropzone input[type=file] { opacity: 0 !important; }

/* Ellenőrző képernyő */
.ps-page { display: grid; gap: 18px; padding-bottom: 40px; min-width: 0; }
.ps-page > * { min-width: 0; }
.ps-note { margin: 0; }
.ps-note--good { background: var(--good-soft); color: var(--good); font-weight: 600; }
.ps-sum .card__head { flex-wrap: wrap; gap: 6px 12px; }
.ps-dl { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px 18px; margin: 0; }
.ps-dl div { min-width: 0; }
.ps-dl dt { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.ps-dl dd { margin: 2px 0 0; font-weight: 600; overflow-wrap: anywhere; }
.ps-review { display: grid; gap: 18px; }
.ps-fill h2, .ps-gen h2 { margin-top: 0; }
.ps-fill__list { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }
.ps-fill__list strong { overflow-wrap: anywhere; }
.ps-gen__list { display: grid; gap: 12px; }
.ps-anc { position: relative; border: 1px solid var(--line); border-left: 4px solid var(--slate); border-radius: var(--r-md); padding: 10px 14px 14px; margin: 0; min-width: 0; background: var(--surface); display: grid; gap: 10px; }
.ps-anc:has(.ps-anc__role--f) { border-left-color: var(--blush); }
.ps-anc--unsure { box-shadow: inset 0 0 0 1px var(--warn-soft); }
.ps-anc.is-skipped .ps-fields, .ps-anc.is-skipped .ps-cmp__ttl:last-of-type { opacity: .45; }
.ps-anc__head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 0 4px; font-weight: 700; max-width: 100%; }
.ps-anc__head small { font-weight: 500; }
.ps-anc__role { font-size: 15.5px; }
.ps-anc__skip { justify-self: start; font-size: 14px; font-weight: 600; }
.ps-fields { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px 12px; }
.ps-fields .field { font-size: 13.5px; gap: 4px; grid-column: span 2; min-width: 0; }
.ps-fields .field input { min-width: 0; width: 100%; }
.ps-fields .ps-f--name { grid-column: span 4; }
.ps-fields .ps-f--year, .ps-fields .ps-f--cc { grid-column: span 1; }
.ps-fields .ps-f--breeder { grid-column: span 3; }
.ps-fields .is-unsure input { background: var(--warn-soft); border-color: var(--warn); }
.ps-bundee { font-size: 11px; padding: 1px 7px; vertical-align: 1px; }
.ps-anc__notes { margin: 0; font-size: 13.5px; overflow-wrap: anywhere; }
.ps-cmp { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px 16px; padding: 10px 12px; border-radius: var(--r-sm); background: var(--pine-soft); }
.ps-cmp p { margin: 0; overflow-wrap: anywhere; }
.ps-cmp__old { display: grid; gap: 2px; font-size: 14.5px; }
.ps-cmp__choice { display: grid; gap: 6px; }
.ps-cmp__choice .check { font-size: 14.5px; }
.ps-cmp__ttl { margin: 0; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.ps-prev > summary { cursor: pointer; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.ps-prev > summary h2 { display: inline; margin: 0; }
.ps-prev[open] > summary { margin-bottom: 12px; }
.ps-savebar { position: sticky; bottom: 0; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 12px 16px; border-radius: var(--r-md); background: var(--surface-glass); backdrop-filter: blur(10px); border: 1px solid var(--line); box-shadow: var(--shadow-lift); }
.ps-savebar__hint { font-size: 13.5px; }

/* Tulajdonosi AI-beállítás */
.ai-set { display: grid; gap: 18px; padding-bottom: 40px; min-width: 0; }
.ai-set > *, .ai-set .card { min-width: 0; max-width: 100%; }
.ai-set code { overflow-wrap: anywhere; }
.ai-set__status { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; }
.ai-set__row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.ai-set__stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin: 0; }
.ai-set__stats div { padding: 10px 12px; border-radius: var(--r-sm); background: var(--pine-soft); }
.ai-set__stats dt { font-size: 12px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.ai-set__stats dd { margin: 2px 0 0; font-size: 20px; font-weight: 800; }
.ai-set__tbl { overflow-x: auto; }
.ai-set__tbl table { width: 100%; border-collapse: collapse; font-size: 14px; }
.ai-set__tbl th, .ai-set__tbl td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--line); white-space: nowrap; }

@media (max-width: 720px) {
  .ps-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ps-fields .field, .ps-fields .ps-f--breeder { grid-column: span 2; }
  .ps-fields .ps-f--name { grid-column: span 2; }
  .ps-fields .ps-f--year, .ps-fields .ps-f--cc { grid-column: span 1; }
  .ps-cmp { grid-template-columns: minmax(0, 1fr); }
  .ps-savebar { padding: 10px 12px; gap: 8px; flex-wrap: nowrap; bottom: calc(74px + env(safe-area-inset-bottom, 0px)); }
  .ps-savebar .btn { width: auto; flex: 0 1 auto; }
  .ps-savebar__hint { display: none; }
  .ps-card__sum { padding: 14px; gap: 12px; }
  .ps-card__body { padding: 0 14px 16px; }
}

/* Bekapcsolási útmutató a tulajdonosnak, ha még nincs AI-kulcs. */
.ps-setup p { margin: 0 0 8px; }
.ps-setup__steps { margin: 0 0 12px; padding-left: 20px; display: grid; gap: 4px; }
.ps-setup p:last-child { margin-bottom: 0; }

/* Oltási könyv beolvasása (oltas-beolvasas.php) */
.vscan-up { padding: 20px; }
.vscan-list { display: grid; gap: 12px; margin: 0 0 14px; padding: 0; list-style: none; }
.vscan-row { padding: 14px 16px; transition: opacity .15s; }
.vscan-row.is-skipped { opacity: .5; }
.vscan-row.is-unsure { border-color: color-mix(in srgb, var(--warn) 45%, transparent); }
.vscan-row__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 10px; }
.vscan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 12px; }
.vscan-grid .field { margin: 0; }
.vscan-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 40px; }
@media (max-width: 760px) { .vscan-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 460px) { .vscan-grid { grid-template-columns: 1fr; } }
.vscan-cta { display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin: 0 0 12px; border-radius: 14px; text-decoration: none; color: inherit;
  border: 1px dashed color-mix(in srgb, var(--pine) 35%, transparent); background: color-mix(in srgb, var(--pine) 5%, transparent); }
.vscan-cta:hover { background: color-mix(in srgb, var(--pine) 10%, transparent); }
.vscan-cta > span:nth-child(2) { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.vscan-cta svg { color: var(--pine); flex: 0 0 auto; }
.vscan-grid [hidden] { display: none; }

/* Következő oltás és figyelmeztetés (includes/modules/vaccine_alerts.php) */
.vnext { margin: 0 0 14px; display: grid; gap: 10px; }
.vnext__main { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-radius: 14px;
  background: color-mix(in srgb, var(--pine) 7%, transparent); border: 1px solid color-mix(in srgb, var(--pine) 18%, transparent); }
.vnext__main.is-soon { background: var(--warn-soft); border-color: color-mix(in srgb, var(--warn) 35%, transparent); }
.vnext__main.is-over { background: var(--bad-soft); border-color: color-mix(in srgb, var(--bad) 35%, transparent); }
.vnext__eyebrow { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.vnext__date { margin: 2px 0 0; font-family: var(--font-display); font-size: 24px; font-weight: 800; line-height: 1.15; }
.vnext__what { margin: 2px 0 0; color: var(--muted); }
.vnext__badge { flex: 0 0 auto; padding: 6px 12px; border-radius: 999px; font-weight: 700; font-size: 14px; background: var(--paper); border: 1px solid var(--line); }
.vnext__main.is-soon .vnext__badge { color: var(--warn); }
.vnext__main.is-over .vnext__badge { color: var(--bad); }
.vnext__more { list-style: none; margin: 0; padding: 0 4px; display: grid; gap: 4px; font-size: 14px; }
.vnext__more li { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); }
.vnext__more strong { color: var(--ink, inherit); font-weight: 600; }
.vnext__alert { padding: 10px 14px; border-radius: 14px; border: 1px solid var(--line); background: var(--paper); }
.vnext__alert > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 8px; }
.vnext__alert > summary::-webkit-details-marker { display: none; }
.vnext__alert > summary svg, .vnext__alert.is-on p svg { color: var(--pine); flex: 0 0 auto; }
.vnext__alert.is-on { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
.vnext__alert.is-on > p { margin: 0; display: flex; align-items: center; gap: 8px; flex: 1 1 260px; }
.vnext__edit > summary { cursor: pointer; color: var(--pine); font-weight: 600; font-size: 14px; }
.vnext__edit[open] { flex-basis: 100%; }
.vnext__form { display: grid; gap: 8px; margin-top: 10px; max-width: 420px; }
.vnext__form .field { margin: 0; }
.vnext__form .btn { justify-self: start; }
.vnext__offf { margin: 0; }
.vtoast__link { background: none; border: 0; padding: 4px 0; color: var(--muted); font: inherit; font-size: 14px; text-decoration: underline; cursor: pointer; }
.vtoast__link:hover { color: var(--ink, inherit); }
.vtoast__msg { margin: 0 0 12px; font-size: 15px; line-height: 1.45; }
.vtoast__ok { margin: 8px 0 0; text-align: center; }
.vtoast.is-over .ptoast__burst { background: var(--bad); }
@media (max-width: 520px) { .vnext__main { flex-direction: column; align-items: flex-start; } }
.vtoast .ptoast__burst { background: linear-gradient(135deg, #6E57B8, #4B3A8C); box-shadow: 0 6px 18px rgba(75, 58, 140, .35); }

/* Kedvenc-űrlap: törzskönyv beolvasása fotóról, a mezők kitöltésével */
.ps-prefill { display: flex; align-items: center; gap: 14px; padding: 14px 16px; margin-bottom: 18px; border-radius: var(--r-md, 16px); background: var(--pine-soft); border: 1px solid color-mix(in srgb, var(--pine) 22%, transparent); }
.ps-prefill__icon { flex: none; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--pine); color: var(--on-pine); }
.ps-prefill__body { flex: 1; min-width: 0; }
.ps-prefill__body strong { display: block; }
.ps-prefill__body small { display: block; margin-top: 2px; line-height: 1.45; }
.ps-prefill__pick { flex: none; cursor: pointer; }
.ps-prefill.is-busy .ps-prefill__pick { opacity: .6; pointer-events: none; }
.ps-prefill__ok { color: var(--good); font-weight: 600; }
.ps-filled { box-shadow: 0 0 0 3px color-mix(in srgb, var(--good) 45%, transparent) !important; transition: box-shadow .4s; }
@media (max-width: 560px) { .ps-prefill { flex-wrap: wrap; } .ps-prefill__pick { width: 100%; justify-content: center; } }

/* Törzskönyv rész: feltöltés és beolvasás */
.ps-up { margin: 4px 0 14px; scroll-margin-top: 120px; }
.ps-up__drop { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: var(--r-md, 16px); border: 1.5px dashed color-mix(in srgb, var(--pine) 45%, var(--line)); background: var(--pine-soft); cursor: pointer; transition: border-color .2s, background .2s; }
.ps-up__drop:hover, .ps-up__drop:focus-within { border-color: var(--pine); }
.ps-up__drop:focus-within { outline: 3px solid color-mix(in srgb, var(--pine) 35%, transparent); outline-offset: 2px; }
.ps-up__ic { flex: none; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--pine); color: var(--on-pine); }
.ps-up__txt strong { display: block; }
.ps-up__txt small { display: block; font-weight: 500; margin-top: 2px; }
.ps-up.is-busy .ps-up__drop { opacity: .75; pointer-events: none; }
.ps-up.is-busy .ps-up__ic { animation: psPulse 1.2s ease-in-out infinite; }
@keyframes psPulse { 50% { transform: scale(.88); } }
.ps-up__files { list-style: none; margin: 8px 0 0; padding: 0; font-size: .9rem; font-weight: 600; }
.ps-up__files li::before { content: "• "; color: var(--pine); }
.ps-up__msg { margin: 8px 2px 0; font-size: .92rem; font-weight: 500; }
.ps-up__have { margin: 4px 2px 0; font-size: .88rem; }

/* assets/css/mod-personalize.css */
/* Személyre szabás jelzése (includes/modules/personalize.php) */
.pz-note { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; color: var(--muted); font-size: 14px; }
.pz-note span[aria-hidden] { font-size: 18px; }
.pz-note--inline { margin: 6px 0 0; flex-basis: 100%; }

/* assets/css/mod-pet-pedigree.css */
/* Törzskönyves adatok (pet_pedigree): kis blokk és a szerkesztő mezőcsoportja */
.pped { display: grid; gap: 3px; padding: 10px 12px; border-radius: var(--r-md); background: var(--pine-soft); border: 1px solid var(--line); line-height: 1.35; min-width: 0; }
.pped__label { font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.pped__name { font-size: 16px; overflow-wrap: anywhere; }
.pped__meta, .pped__breeder { font-size: 14px; color: var(--muted); overflow-wrap: anywhere; }
.pped__breeder a { color: var(--pine); font-weight: 700; }
.pped__nfb { justify-self: start; margin-top: 2px; }
.pped-fs { border: 1px solid var(--line); border-radius: var(--r-md); padding: 12px 14px 14px; margin: 4px 0; display: grid; gap: 12px; min-width: 0; }
.pped-fs legend { font-weight: 800; padding: 0 6px; }
.pped-fs__body { display: grid; gap: 12px; }
.pped-fs__body[hidden] { display: none; }
.pped-fs__fixed { margin: 0; }
.lit-kit__reg, .handover__reg { display: block; font-size: 13px; color: var(--muted); font-weight: 600; overflow-wrap: anywhere; }

/* assets/css/mod-pet-profile.css */
/* Kedvenc profilja (kedvenc.php): borítókép, kerek profilkép, lapok.
   A design rendszer tokenjeit használja (falka.css), világos és sötét témában is. */

.pp { padding-bottom: 64px; }

/* --- Fejléc ------------------------------------------------------------------ */
.pp-head { position: relative; border-radius: var(--r-lg); margin-top: 12px; }
.pp-cover {
  position: relative; height: clamp(150px, 23vw, 270px);
  border-radius: var(--r-lg) var(--r-lg) 0 0;
  background: linear-gradient(120deg, var(--pine-soft) 0%, var(--paper-2) 48%, var(--butter-soft) 100%);
  isolation: isolate;
}
.pp-cover--kutya { background: linear-gradient(120deg, var(--pine-soft) 0%, var(--paper-2) 60%, var(--butter-soft) 100%); }
.pp-cover--macska { background: linear-gradient(120deg, var(--butter-soft) 0%, var(--paper-2) 50%, var(--pine-soft) 100%); }
/* Tappancsnyomok halványan, átlósan: a sablon a téma színét követi (maszk). */
.pp-cover:not(.has-img)::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
  background: var(--pine); opacity: .09;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='%23000'%3E%3Cg transform='translate(22 70) rotate(-24)'%3E%3Cellipse cx='0' cy='6' rx='9' ry='7.5'/%3E%3Cellipse cx='-9' cy='-6' rx='3.4' ry='4.4'/%3E%3Cellipse cx='-3' cy='-11' rx='3.4' ry='4.6'/%3E%3Cellipse cx='4' cy='-11' rx='3.4' ry='4.6'/%3E%3Cellipse cx='10' cy='-6' rx='3.4' ry='4.4'/%3E%3C/g%3E%3Cg transform='translate(80 32) rotate(-24)'%3E%3Cellipse cx='0' cy='6' rx='9' ry='7.5'/%3E%3Cellipse cx='-9' cy='-6' rx='3.4' ry='4.4'/%3E%3Cellipse cx='-3' cy='-11' rx='3.4' ry='4.6'/%3E%3Cellipse cx='4' cy='-11' rx='3.4' ry='4.6'/%3E%3Cellipse cx='10' cy='-6' rx='3.4' ry='4.4'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") 0 0 / 120px 120px repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='%23000'%3E%3Cg transform='translate(22 70) rotate(-24)'%3E%3Cellipse cx='0' cy='6' rx='9' ry='7.5'/%3E%3Cellipse cx='-9' cy='-6' rx='3.4' ry='4.4'/%3E%3Cellipse cx='-3' cy='-11' rx='3.4' ry='4.6'/%3E%3Cellipse cx='4' cy='-11' rx='3.4' ry='4.6'/%3E%3Cellipse cx='10' cy='-6' rx='3.4' ry='4.4'/%3E%3C/g%3E%3Cg transform='translate(80 32) rotate(-24)'%3E%3Cellipse cx='0' cy='6' rx='9' ry='7.5'/%3E%3Cellipse cx='-9' cy='-6' rx='3.4' ry='4.4'/%3E%3Cellipse cx='-3' cy='-11' rx='3.4' ry='4.6'/%3E%3Cellipse cx='4' cy='-11' rx='3.4' ry='4.6'/%3E%3Cellipse cx='10' cy='-6' rx='3.4' ry='4.4'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") 0 0 / 120px 120px repeat;
}
.pp-cover__img { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; object-position: center; border-radius: inherit; }
.pp-cover.is-over { box-shadow: inset 0 0 0 3px var(--pine); }
.pp-cover.is-over::after { content: "Engedd el a borítóhoz"; position: absolute; inset: 0; display: grid; place-items: center; font-weight: 700; color: var(--on-pine); background: color-mix(in srgb, var(--pine) 55%, transparent); border-radius: inherit; }
.pp-cover.is-busy .pp-cover__img { opacity: .6; }

.pp-pop { position: relative; }
.pp-pop > summary { list-style: none; cursor: pointer; }
.pp-pop > summary::-webkit-details-marker { display: none; }
.pp-pop--cover { position: absolute; right: 14px; bottom: 14px; z-index: 3; }
.pp-coverbtn {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px;
  background: var(--surface-glass); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border: 1px solid var(--line); color: var(--ink); font-weight: 700; font-size: 14px;
}
.pp-coverbtn:hover { background: var(--surface); }

.pp-menu {
  position: absolute; top: calc(100% + 6px); left: 0; z-index: 30; min-width: 250px; max-width: calc(100vw - 32px);
  display: grid; gap: 2px; padding: 6px; border-radius: var(--r-md);
}
.pp-pop--cover .pp-menu, .pp-menu--right { left: auto; right: 0; }
.pp-menu form { margin: 0; }
.pp-menu__item {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border-radius: var(--r-sm);
  background: none; border: 0; font: inherit; font-size: 15px; font-weight: 600; color: var(--ink); text-align: left;
  text-decoration: none; cursor: pointer;
}
.pp-menu__item svg { flex: none; color: var(--muted); }
.pp-menu__item:hover, .pp-menu__item:focus-visible { background: var(--paper-2); color: var(--ink); }
.pp-menu__item--danger, .pp-menu__item--danger svg { color: var(--bad); }
.pp-menu__hint { margin: 4px 12px 6px; font-size: 13px; color: var(--muted); }

.pp-busy {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 4;
  padding: 6px 12px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line);
  font-size: 14px; font-weight: 700; white-space: nowrap; box-shadow: var(--shadow-lift);
}

/* Profilkép, név, műveletek */
.pp-id {
  display: grid; grid-template-columns: auto minmax(220px, 1fr) auto; gap: 8px 22px; align-items: end;
  padding: 0 24px 20px;
}
.pp-avatar {
  position: relative; width: 172px; height: 172px; margin-top: -86px; border-radius: 50%;
  background: var(--paper-2); border: 5px solid var(--surface); box-shadow: var(--shadow-lift);
  display: grid; place-items: center; z-index: 2; align-self: start;
}
.pp-avatar > img:not(.pp-avatar__paw) { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.pp-avatar__paw { width: 64px; height: 64px; object-fit: contain; opacity: .55; }
.pp-avatar__add { display: grid; place-content: center; justify-items: center; gap: 6px; width: 100%; height: 100%; border-radius: 50%; cursor: pointer; text-align: center; font-size: 14px; font-weight: 700; line-height: 1.25; color: var(--pine); padding: 14px 24px 30px; }
.pp-avatar__add:hover { background: var(--pine-soft); }
.pp-avatar__add .pp-avatar__paw { width: 52px; height: 52px; }
.pp-avatar.is-over { outline: 3px dashed var(--pine); outline-offset: 4px; }
.pp-avatar.is-busy > img { opacity: .6; }
.pp-pop--avatar { position: absolute; right: 4px; bottom: 6px; }
.pp-cambtn {
  width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center;
  background: var(--paper-2); color: var(--ink); border: 3px solid var(--surface);
}
.pp-cambtn:hover { background: var(--pine-soft); color: var(--pine); }

.pp-id__text { min-width: 0; padding-top: 14px; }
.pp-crumb { margin: 0 0 2px; font-size: 14px; }
.pp-name { font-family: var(--font-display); font-weight: 800; font-size: clamp(32px, 4.4vw, 46px); line-height: 1.02; margin: 0; overflow-wrap: anywhere; }
.pp-name .chip { font-family: var(--font-body); font-size: 14px; vertical-align: middle; letter-spacing: 0; }
.pp-regname { margin: 4px 0 0; font-size: 17px; font-weight: 600; color: var(--muted); }
.pp-sub { margin: 4px 0 0; color: var(--muted); font-size: 16px; }
.pp-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
.pp-chips:not(:has(*)) { display: none; }
.pp-chips a.chip { text-decoration: none; }
.pp-chip-req { background: var(--pine-soft); color: var(--pine); }
.pp-stats { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 10px 0 0; padding: 0; font-size: 15px; }
.pp-stats a { color: var(--muted); text-decoration: none; }
.pp-stats a:hover { color: var(--pine); }
.pp-stats strong { color: var(--ink); font-weight: 700; }

.pp-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; align-items: center; }
.pp-act { padding: 10px 16px; font-size: 15px; }
.pp-act svg { width: 18px; height: 18px; flex: none; }
.pp-act--icon { padding: 10px 14px; }
.pp-more { padding: 10px 12px; }
.pp-act.pp-more > svg { width: 20px; height: 20px; }

/* --- Lapok ------------------------------------------------------------------ */
.pp-tabs {
  position: sticky; top: 61px; z-index: 15; margin: 14px 0 18px;
  background: var(--paper); border-bottom: 1px solid var(--line);
}
.pp-tabs__scroll { display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; overscroll-behavior-x: contain; }
.pp-tabs__scroll::-webkit-scrollbar { display: none; }
.pp-tab {
  flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 13px 16px 11px;
  border-bottom: 3px solid transparent; color: var(--muted); font-weight: 700; text-decoration: none; white-space: nowrap;
}
.pp-tab:hover { color: var(--ink); background: var(--paper-2); }
.pp-tab.is-active { color: var(--pine); border-bottom-color: var(--pine); }
.pp-tab:focus-visible { outline-offset: -3px; }
.pp-tab__n { font-size: 13px; padding: 1px 7px; border-radius: 999px; background: var(--paper-2); color: var(--muted); }
.pp-tab.is-active .pp-tab__n { background: var(--pine-soft); color: var(--pine); }

/* JavaScript nélkül minden rész látszik, egymás alatt, címmel. */
.pp-panel { scroll-margin-top: 130px; }
.pp-panel + .pp-panel { margin-top: 36px; }
.pp-panel__title { font-size: 26px; margin: 0 0 14px; }
.pp-js .pp-panel + .pp-panel { margin-top: 0; }
.pp-js .pp-panel__title { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pp-js .pp-nojs { display: none; }
.pp-panel [id] { scroll-margin-top: 130px; }

.pp-grid { display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: 16px; align-items: start; }
.pp-grid--health { grid-template-columns: minmax(0, 1fr) minmax(0, 340px); }
.pp-grid--even { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pp-col { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; min-width: 0; align-content: start; }
.pp-col > .card, .pp-col > .card + .card, .pp-panel > .card + .card { margin: 0; }
.pp-panel > .card + .card, .pp-panel > .card + section, .pp-panel > .pp-tiles + .pp-grid { margin-top: 16px; }
.pp-badges { display: grid; gap: 12px; margin-bottom: 16px; }
.pp-badges > .litterbadge, .pp-badges > .pedbadge { margin: 0; }
.pp-empty { margin: 0 0 12px; }
.pp-lead { margin: -6px 0 14px; font-size: 15px; }

/* Bemutatkozás */
.pp-facts { margin: 0; display: grid; }
.pp-facts > div { display: grid; grid-template-columns: 118px minmax(0, 1fr); gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.pp-facts > div:last-child { border-bottom: 0; }
.pp-facts dt { color: var(--muted); font-size: 15px; }
.pp-facts dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.pp-factlink { font-size: 14px; font-weight: 600; margin-left: 4px; }
.pp-notes { margin: 12px 0 0; padding: 12px 14px; border-radius: var(--r-md); background: var(--paper); border: 1px solid var(--line); white-space: pre-line; font-size: 15px; }
.pp-pedigree { margin-top: 12px; }
.pp-intro__more { margin: 12px 0 0; font-size: 15px; font-weight: 600; }

/* Fotók */
.pp-photos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.pp-photos--wide { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
.pp-photos li { aspect-ratio: 1; }
.pp-photos a, .pp-pickopt { display: block; width: 100%; height: 100%; border-radius: var(--r-sm); overflow: hidden; background: var(--paper-2); }
.pp-photos img { width: 100%; height: 100%; object-fit: cover; }
.pp-photos li:first-child a { border-radius: var(--r-md) var(--r-sm) var(--r-sm) var(--r-sm); }

.pp-own__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.pp-own__form { gap: 10px; }
.pp-pick { margin-top: 16px; border-top: 1px solid var(--line); padding-top: 14px; }
.pp-pick > summary { cursor: pointer; font-weight: 700; color: var(--pine); }
.pp-pick fieldset { border: 0; margin: 12px 0 0; padding: 0; min-width: 0; }
.pp-pick legend { font-size: 15px; margin-bottom: 10px; padding: 0; }
.pp-photos--pick { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
.pp-pickopt { position: relative; cursor: pointer; }
.pp-pickopt input { position: absolute; top: 6px; left: 6px; z-index: 1; width: 18px; height: 18px; accent-color: var(--pine); }
.pp-pickopt:has(input:checked) { outline: 3px solid var(--pine); outline-offset: 2px; }
.pp-pickopt:has(input:focus-visible) { outline: 3px solid var(--pine); outline-offset: 4px; }
.pp-pick__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }

/* Napló és közösség */
.pp-recent { gap: 6px; }
.tl--compact { grid-template-columns: 38px 1fr; padding: 10px 12px; }
.tl--compact .tl__icon { width: 38px; height: 38px; }
.pp-posts { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pp-post { display: flex; gap: 12px; align-items: center; padding: 10px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--paper); color: var(--ink); text-decoration: none; }
.pp-post:hover { border-color: var(--pine); color: var(--ink); }
.pp-post img { width: 64px; height: 64px; object-fit: cover; border-radius: var(--r-sm); flex: none; }
.pp-post__body { display: grid; gap: 2px; min-width: 0; }
.pp-post__text { font-size: 15px; overflow-wrap: anywhere; }
.pp-post__meta { font-size: 13px; }

/* Csempék (Egészség, Több) */
.pp-tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.pp-tile {
  display: flex; gap: 12px; align-items: flex-start; width: 100%; height: 100%; padding: 14px 16px;
  border-radius: var(--r-md); border: 1px solid var(--line); background: var(--surface);
  color: var(--ink); text-decoration: none; font: inherit; text-align: left; cursor: pointer;
}
.pp-tile:not(:has(.pp-tile__ic)) { flex-direction: column; gap: 2px; }
.pp-tile:hover { border-color: var(--pine); color: var(--ink); background: var(--surface); }
.pp-tile strong { display: block; font-weight: 700; }
.pp-tile small { display: block; color: var(--muted); font-size: 14px; line-height: 1.4; margin-top: 2px; }
.pp-tile__ic { flex: none; width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); }
.pp-morelist { display: grid; gap: 4px; }
.pp-more__group + .pp-more__group { margin-top: 14px; }
.pp-more__title { font-family: var(--font-body); font-size: 16px; font-weight: 700; color: var(--muted); letter-spacing: 0; margin: 0 0 8px; }
.pp-morelist + .chipset { margin-top: 22px; }
.pp-act.pp-more { display: inline-flex; }

/* --- Keskeny képernyő -------------------------------------------------------- */
@media (min-width: 761px) and (max-width: 1380px) {
  .pp-act--icon > span, .pp-act--sec > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .pp-act--icon, .pp-act--sec { width: 44px; height: 44px; padding: 0; }
}
@media (max-width: 980px) {
  .pp-grid, .pp-grid--health, .pp-grid--even { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .pp-head { margin-top: 8px; }
  .pp-cover { height: 150px; }
  .pp-coverbtn span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .pp-coverbtn { padding: 9px; }
  .pp-pop--cover { right: 10px; bottom: 10px; }
  .pp-id { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; padding: 0 16px 16px; }
  .pp-avatar { width: 132px; height: 132px; margin-top: -66px; border-width: 4px; }
  .pp-avatar__add { padding: 12px; }
  .pp-avatar__add span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .pp-avatar__add .pp-avatar__paw { width: 40px; height: 40px; }
  .pp-pop--avatar { right: -4px; bottom: 0; }
  .pp-pop--avatar .pp-menu { left: auto; right: 0; }
  .pp-id__text { padding-top: 4px; }
  .pp-crumb { display: none; }
  .pp-chips, .pp-stats { justify-content: center; }
  .pp-actions { justify-content: center; gap: 6px; }
  .pp-actions { flex-wrap: nowrap; max-width: 100%; }
  .pp-act.btn--primary { padding: 10px 12px; min-width: 0; flex: 0 1 auto; }
  .pp-act.btn--primary > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .pp-actions > * { flex-shrink: 0; }
  .pp-actions > .pp-act.btn--primary { flex-shrink: 1; }
  .pp-act:not(.btn--primary) > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .pp-act:not(.btn--primary) { width: 42px; height: 42px; padding: 0; }
  .pp-pop--more .pp-menu { right: 0; }
  .pp-tabs { margin-left: -16px; margin-right: -16px; }
  .pp-tabs__scroll { padding: 0 8px; }
  .pp-tab { padding: 12px 11px 10px; font-size: 16px; }
  .pp-own__grid { grid-template-columns: minmax(0, 1fr); }
  .pp-facts > div { grid-template-columns: 108px minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .pp * { scroll-behavior: auto !important; }
}


/* assets/css/mod-places.css */
/* Kutya- és macskabarát helyek */
.places { padding-top: 22px; padding-bottom: 48px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.places .pagehead { margin-bottom: 0; }
.pl-cats { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.pl-catbtn { flex: none; display: inline-flex; align-items: center; gap: 7px; padding: 7px 13px; border-radius: 99px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); text-decoration: none; font-size: 14px; font-weight: 600; white-space: nowrap; }
.pl-catbtn i { width: 10px; height: 10px; border-radius: 50%; background: var(--c, var(--pine)); }
.pl-catbtn:hover { border-color: var(--c, var(--pine)); }
.pl-catbtn.is-on { background: color-mix(in srgb, var(--c, var(--pine)) 14%, var(--surface)); border-color: var(--c, var(--pine)); }
.pl-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px 14px; align-items: end; padding: 14px 16px; }
.pl-filters .field { margin: 0; }
.pl-filters__check { align-self: center; }
.pl-filters__acts { display: flex; gap: 8px; flex-wrap: wrap; }
.pl-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 16px; align-items: start; }
.pl-map { position: sticky; top: 84px; height: min(70vh, 620px); padding: 0; overflow: hidden; z-index: 0; }
.pl-list__h { margin: 0 0 10px; font-size: 18px; }
.pl-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 12px; }
.pl-card { padding: 0; overflow: hidden; display: flex; flex-direction: column; min-width: 0; }
.pl-card__media { display: block; aspect-ratio: 16 / 9; background: var(--paper-2, var(--line)); overflow: hidden; }
.pl-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pl-card__ph { display: block; width: 100%; height: 100%; background: radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--c) 30%, transparent), transparent 70%), color-mix(in srgb, var(--c) 10%, var(--surface)); }
.pl-card__body { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.pl-card__top { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.pl-card__name { margin: 2px 0 0; font-size: 17px; line-height: 1.25; }
.pl-card__name a { color: inherit; text-decoration: none; }
.pl-card__name a:hover { text-decoration: underline; }
.pl-card__loc { margin: 0; font-size: 13px; }
.pl-card__dist { margin-left: 6px; font-weight: 600; color: var(--pine); }
.pl-card__dist::before { content: "· "; color: var(--muted); font-weight: 400; }
.pl-cat { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: color-mix(in srgb, var(--c) 80%, var(--ink)); }
.pl-cat::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--c); }
.pl-verified { font-size: 12px; padding: 2px 8px; }
.pl-rate { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
.pl-rate--none { color: var(--muted); }
.pl-paws { display: inline-flex; gap: 2px; }
.pl-paw { width: 13px; height: 13px; display: inline-block; background: var(--line); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cellipse cx='12' cy='16' rx='5' ry='4.2'/%3E%3Ccircle cx='5.5' cy='10.5' r='2.2'/%3E%3Ccircle cx='9.5' cy='6.5' r='2.2'/%3E%3Ccircle cx='14.5' cy='6.5' r='2.2'/%3E%3Ccircle cx='18.5' cy='10.5' r='2.2'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cellipse cx='12' cy='16' rx='5' ry='4.2'/%3E%3Ccircle cx='5.5' cy='10.5' r='2.2'/%3E%3Ccircle cx='9.5' cy='6.5' r='2.2'/%3E%3Ccircle cx='14.5' cy='6.5' r='2.2'/%3E%3Ccircle cx='18.5' cy='10.5' r='2.2'/%3E%3C/svg%3E") center / contain no-repeat; }
.pl-paw.is-on { background: #E5A92B; }
.pl-feats { list-style: none; margin: 4px 0 0; padding: 0; display: flex; gap: 5px; flex-wrap: wrap; }
.pl-feats li { font-size: 12px; padding: 2px 8px; border-radius: 99px; background: color-mix(in srgb, var(--pine) 9%, var(--surface)); color: var(--ink); }
.pl-feats--big li { font-size: 13px; padding: 4px 10px; }
.pl-empty { padding: 18px; }
.pl-note { font-size: 12.5px; margin: 0; }
.pl-pin i { display: block; width: 100%; height: 100%; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .35); }
.pl-pin.is-hot i { transform: scale(1.35); box-shadow: 0 0 0 4px rgba(229, 169, 43, .55), 0 2px 6px rgba(0, 0, 0, .35); }
.pl-pin i { transition: transform .15s; }
.pl-pop { display: flex; flex-direction: column; gap: 3px; }
.pl-pop__cat { font-size: 11.5px; color: #6b6478; font-weight: 600; }
.pl-pop__name { font-weight: 700; font-size: 15px; }
.pl-pop__sub { font-size: 12.5px; color: #555; }

/* Adatlap */
.place { padding-top: 18px; padding-bottom: 48px; }
.place__state { margin: 10px 0 14px; }
.place__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 340px); gap: 16px; align-items: start; margin-top: 10px; }
.place__main, .place__side { display: grid; gap: 16px; min-width: 0; }
.place__head { padding: 0; overflow: hidden; }
.place__photo { width: 100%; max-height: 360px; object-fit: cover; display: block; }
.place__headbody { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; }
.place__headbody h1 { margin: 0; font-size: clamp(24px, 3vw, 32px); }
.place__addr { margin: 0; }
.place__desc { font-size: 15px; line-height: 1.55; }
.place__acts { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.place__mapcard { padding: 0; overflow: hidden; }
.place__map { height: 260px; z-index: 0; }
.place__mapcard .place__small { padding: 8px 14px 12px; margin: 0; }
.place__small { font-size: 13px; }
.place__h3 { font-size: 16px; margin: 0 0 8px; }
.place__adminacts { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.place__revform { margin-bottom: 14px; }
.place__revform > summary, .place__report > summary { cursor: pointer; font-weight: 600; color: var(--pine); }
.place__revform form, .place__report form { margin-top: 10px; }
.place__visit { max-width: 260px; }
.place__reviews { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.place__review { padding: 12px 0 0; border-top: 1px solid var(--line); }
.place__rhead { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.place__ava { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; }
.place__when { font-size: 12.5px; }
.place__rbody { margin-top: 6px; font-size: 14.5px; line-height: 1.5; }
.place__rdel { margin-top: 4px; }
.pl-stars { border: 0; padding: 0; margin: 0 0 8px; display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.pl-stars legend { float: left; width: 100%; font-weight: 600; margin-bottom: 4px; }
.pl-stars input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pl-stars label { width: 34px; height: 34px; cursor: pointer; background: var(--line); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cellipse cx='12' cy='16' rx='5' ry='4.2'/%3E%3Ccircle cx='5.5' cy='10.5' r='2.2'/%3E%3Ccircle cx='9.5' cy='6.5' r='2.2'/%3E%3Ccircle cx='14.5' cy='6.5' r='2.2'/%3E%3Ccircle cx='18.5' cy='10.5' r='2.2'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cellipse cx='12' cy='16' rx='5' ry='4.2'/%3E%3Ccircle cx='5.5' cy='10.5' r='2.2'/%3E%3Ccircle cx='9.5' cy='6.5' r='2.2'/%3E%3Ccircle cx='14.5' cy='6.5' r='2.2'/%3E%3Ccircle cx='18.5' cy='10.5' r='2.2'/%3E%3C/svg%3E") center / contain no-repeat; }
.pl-stars input:checked ~ label, .pl-stars label:hover, .pl-stars label:hover ~ label { background: #E5A92B; }
.pl-stars input:focus-visible + label { outline: 2px solid var(--pine); outline-offset: 2px; }

/* Ajánlás */
.place-edit { padding-top: 18px; padding-bottom: 48px; max-width: 900px; }
.pe-form { display: grid; gap: 12px; }
.pe-species, .pe-feats { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; }
.pe-species legend, .pe-feats legend { width: 100%; font-weight: 600; margin-bottom: 4px; }
.pe-map { height: 320px; border-radius: var(--r-sm, 10px); border: 1px solid var(--line); margin-top: 6px; z-index: 0; cursor: crosshair; }
.pe-pin__state { margin: 6px 0 0; font-size: 13px; }
.pe-small { font-size: 13px; margin: 0; }

@media (max-width: 900px) {
  .pl-layout { grid-template-columns: minmax(0, 1fr); }
  .pl-map { position: relative; top: 0; height: 320px; }
  .place__grid { grid-template-columns: minmax(0, 1fr); }
}
.pl-grid > .pl-card, .place__main > .card, .place__side > .card { margin: 0; }
.pl-filters__acts { grid-column: span 2; justify-content: flex-end; align-self: end; }
@media (max-width: 560px) { .pl-filters__acts { grid-column: auto; justify-content: flex-start; } }

/* assets/css/mod-pontok.css */
/* Tenyésztő Pro, Bundee pontok, meghívó program (includes/modules/breeder_pro.php, mancs.php, invite.php, referral_perks.php) */

/* Pro jelvény */
.pro-chip { display: inline-flex; align-items: center; gap: 4px; font-weight: 800; letter-spacing: .02em;
  background: linear-gradient(135deg, var(--butter-soft), var(--pine-soft)); color: var(--pine); border: 1px solid var(--line); }
.pro-chip svg { flex: none; }
.pro-chip--lg { font-size: 14px; padding: 4px 10px; }

/* Kereseti kártya (tenyeszto-profil.php) */
.pro-earn__qr { width: 160px; max-width: 60%; margin: 6px 0 10px; background: #fff; border-radius: 14px; padding: 8px; border: 1px solid var(--line); }
.pro-earn__qr svg { display: block; width: 100%; height: auto; }
.pro-earn__code { margin: 0 0 8px; }
.pro-earn__code strong { font-family: var(--font-display); font-size: 20px; letter-spacing: .04em; color: var(--pine); overflow-wrap: anywhere; }
.pro-earn__btns, .inv-link__btns, .inv-banner__btns { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.pro-earn__stats { margin-top: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pro-earn__cta { margin-top: 12px; display: grid; gap: 8px; justify-items: start; }

/* Átvétel és átadócsomag márkajelzése */
.pro-brand { display: flex; gap: 14px; align-items: center; padding: 12px; margin-bottom: 14px; border-radius: var(--r-md); background: var(--paper-2); border: 1px solid var(--line); }
.pro-brand__logo, .perk-welcome__logo, .pack__logo { width: 64px; height: 64px; flex: none; border-radius: 14px; overflow: hidden; background: var(--surface); display: grid; place-items: center; }
.pro-brand__logo img, .perk-welcome__logo img, .pack__logo img { width: 100%; height: 100%; object-fit: cover; }
.pro-brand__logo img.placeholder, .perk-welcome__logo img.placeholder, .pack__logo img.placeholder { object-fit: contain; padding: 10px; }
.pro-brand p { margin: 0; }
.pro-brand__kennel { font-family: var(--font-display); font-weight: 800; font-size: 18px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.pro-brand__gift, .pack__gift, .perk-welcome__perks { display: flex; gap: 6px; align-items: flex-start; margin-top: 6px !important; color: var(--good); font-weight: 600; }
.pro-brand__gift svg, .pack__gift svg, .perk-welcome__perks svg { flex: none; margin-top: 2px; }
.pro-pack-link { margin: 8px 0 0; }

/* Pro oldal */
.pro-hero__visual { display: grid; place-items: center; }
.pro-hero__medal { width: 170px; height: 170px; border-radius: 50%; display: grid; place-items: center; align-content: center; gap: 2px;
  background: radial-gradient(circle at 30% 25%, var(--butter-soft), var(--pine-soft)); color: var(--pine); border: 1px solid var(--line); box-shadow: var(--shadow-lift); }
.pro-hero__medal span { font-family: var(--font-display); font-weight: 800; font-size: 30px; }
.pro-example h2 { margin-top: 0; }
.pro-example__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 14px; margin: 14px 0; }
.pro-example__col { padding: 16px; border-radius: var(--r-md); background: var(--paper-2); border: 1px solid var(--line); min-width: 0; }
.pro-example__col.is-pro { border-color: var(--pine); background: var(--pine-soft); }
.pro-example__col h3 { margin: 0 0 10px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 17px; }
.pro-example__rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.pro-example__rows li { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: 14.5px; }
.pro-example__rows strong { white-space: nowrap; }
.pro-example__sum { margin: 12px 0 4px; font-family: var(--font-display); font-weight: 800; font-size: 22px; color: var(--pine); overflow-wrap: anywhere; }

/* Bundee pontjaim */
.pont-balance { text-align: center; }
.pont-balance__n { font-family: var(--font-display); font-weight: 800; font-size: clamp(40px, 9vw, 56px); line-height: 1; margin: 6px 0 0; color: var(--pine); }
.pont-balance__unit { margin: 4px 0 12px; font-weight: 700; color: var(--muted); }
.pont-exp { text-align: left; margin-top: 10px; }
.pont-exp summary { cursor: pointer; color: var(--muted); font-weight: 600; }
.pont-opts { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pont-opt { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; align-items: center; padding: 12px; border-radius: var(--r-md); background: var(--paper-2); border: 1px solid var(--line); }
.pont-opt > div { display: grid; gap: 2px; min-width: 0; }
.pont-opt > div .muted { font-size: 13.5px; }
.pont-opt__cost { font-weight: 800; color: var(--pine); white-space: nowrap; }
.pont-opt > form, .pont-opt__more { grid-column: 1 / -1; }
.pont-opt__more > summary { list-style: none; display: inline-flex; cursor: pointer; }
.pont-opt__more > summary::-webkit-details-marker { display: none; }
.pont-opt__more[open] > summary { margin-bottom: 10px; }
.pont-soon { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border-radius: var(--r-md); background: var(--paper-2); border: 1px dashed var(--line); }
.pont-soon p { margin: 0; display: grid; gap: 2px; }
.pont-soon svg { flex: none; color: var(--pine); }

/* Admin */
.pont-adm__cash { margin-bottom: 14px; }
.pont-adm__stats { margin-bottom: 4px; }
.pont-adm__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 10px 14px; }
.pont-adm__adjust { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 10px 14px; align-items: end; }
.pont-adm__reqs, .pont-adm__rewards, .perk-adm { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pont-adm__reqs > li, .pont-adm__rewards > li { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: flex-start; justify-content: space-between; padding: 12px; border-radius: var(--r-md); background: var(--paper-2); border: 1px solid var(--line); }
.pont-adm__reqs > li > div { flex: 1 1 260px; min-width: 0; overflow-wrap: anywhere; }
.pont-adm__reqs > li.is-todo { border-color: var(--warn); }
.pont-adm__reqform { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; flex: 1 1 100%; }
.pont-adm__reqform input[type="text"] { flex: 1 1 200px; min-width: 0; }
.pont-adm__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pont-adm__reward { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.perk-adm > li { padding: 10px 12px; border-radius: var(--r-md); background: var(--paper-2); border: 1px solid var(--line); }
.perk-adm summary { cursor: pointer; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; overflow-wrap: anywhere; }
.perk-adm__form { margin-top: 10px; }
.inv-adm__filter { flex-wrap: wrap; }
.inv-adm__user a { font-weight: 600; }

/* Regisztráció: tenyésztői üdvözlés, meghívó mező */
.perk-welcome { display: flex; gap: 14px; align-items: center; padding: 14px; margin-bottom: 16px; border-radius: var(--r-md); background: var(--pine-soft); border: 1px solid var(--line); }
.perk-welcome p { margin: 0; }
.perk-welcome__kennel { font-family: var(--font-display); font-weight: 800; font-size: 18px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.perk-welcome__note { margin-top: 2px !important; }
.inv-field__msg { display: block; font-size: 13px; color: var(--muted); margin-top: 4px; min-height: 1.2em; }
.inv-field__msg.is-ok { color: var(--good); font-weight: 600; }
.inv-field__msg.is-bad { color: var(--bad); font-weight: 600; }
.inv-field input { text-transform: uppercase; }

/* Meghívó sávok */
.inv-banner { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; padding: 14px 16px; border-radius: var(--r-md); background: var(--butter-soft); border: 1px solid var(--line); }
.inv-banner__icon { width: 40px; height: 40px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--surface); color: var(--pine); }
.inv-banner__text { flex: 1 1 240px; display: grid; gap: 2px; min-width: 0; }
.inv-banner__text h2 { font-size: 18px; margin: 0; }
.inv-banner__text p { margin: 0; }
.inv-banner--register { margin-bottom: 16px; }
.inv-banner--dash { margin-bottom: 16px; }
.inv-banner--dash .inv-banner__btns { margin: 0; }
.inv-landing { margin-top: 24px; margin-bottom: 8px; }
.inv-tag { background: var(--butter-soft); color: var(--pine); }
.inv-link__code { margin: 0 0 10px; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.inv-link__code strong { font-family: var(--font-display); font-size: clamp(26px, 5vw, 34px); letter-spacing: .05em; color: var(--pine); overflow-wrap: anywhere; }

/* Nyomtatható átadócsomag */
.pack { max-width: 640px; margin: 0 auto; background: #fff; color: #221D2E; border-radius: 22px; padding: 30px 28px; border: 1px solid #E2DDEB; box-shadow: 0 24px 50px -28px rgba(34, 22, 58, .45); }
.pack__head { display: flex; gap: 14px; align-items: center; padding-bottom: 14px; border-bottom: 2px solid #F0EBF7; }
.pack__head p { margin: 0; }
.pack__logo { background: #F4F0FA; }
.pack__kennel { font-family: var(--font-display); font-weight: 800; font-size: 22px; color: #3a2d57; }
.pack__sub { color: #655E74; font-size: 14px; overflow-wrap: anywhere; }
.pack__title { font-family: var(--font-display); font-size: clamp(24px, 4.6vw, 32px); line-height: 1.1; margin: 18px 0 12px; color: #55407E; }
.pack__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px 16px; margin: 0 0 14px; }
.pack__facts div { display: grid; gap: 1px; }
.pack__facts dt { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: #655E74; font-weight: 700; }
.pack__facts dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.pack__msg { padding: 12px 14px; border-radius: 12px; background: #FBF7EE; margin-bottom: 14px; }
.pack__msg p { margin: 0 0 6px; }
.pack__events h2 { font-size: 16px; margin: 0 0 6px; }
.pack__events ul { margin: 0 0 14px; padding-left: 18px; font-size: 14px; }
.pack__qrrow { margin: 6px 0 12px; }
.pack__gift { color: #1F7A57; }
.pack__foot { margin-top: 16px; font-size: 12.5px; color: #655E74; text-align: center; }

@media (max-width: 520px) {
  .pack { padding: 22px 16px; }
  .pro-earn__stats { grid-template-columns: minmax(0, 1fr); }
  .perk-welcome, .pro-brand { align-items: flex-start; }
}
@media print {
  .page-print-pack .site-header, .page-print-pack .site-footer, .page-print-pack .no-print, .page-print-pack nav, .page-print-pack aside { display: none !important; }
  .page-print-pack .pack { box-shadow: none; border: 0; max-width: none; }
}
.pro-litter-cta { display: grid; gap: 8px; justify-items: start; margin-bottom: 8px; }
.pro-litter-cta p { margin: 0; }
/* Pontszerzés szabályai */
.pont-rules__g { margin: 14px 0 6px; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.pont-rules { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.pont-rules li { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; padding: 8px 12px; border-radius: var(--r-sm); background: var(--paper-2); font-size: 14.5px; }
.pont-rules li > span { flex: 1 1 60%; min-width: 0; }
.pont-rules li strong { flex: 0 1 auto; max-width: 45%; text-align: right; white-space: normal; overflow-wrap: break-word; color: var(--pine); }
.pont-rules li.is-soon { opacity: .75; }
.pont-rules li.is-soon strong { color: var(--muted); }
.pont-page h2 svg { vertical-align: -3px; color: var(--pine); }

/* Kezdő küldetések. */
.ms-card { margin-bottom: 20px; }
.ms-card__head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.ms-card__head h2 { margin: 0 0 4px; }
.ms-card__count { font-family: var(--font-display); font-weight: 800; font-size: 22px; color: var(--pine); white-space: nowrap; }
.ms-bar { height: 10px; border-radius: 999px; background: var(--paper-2); overflow: hidden; margin: 12px 0; }
.ms-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #6FC7A6, #4E9C80); }
.ms-welcome { display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; padding: 10px 12px; border-radius: 12px; background: #FFF4DC; color: #6B4A10; margin: 0 0 12px; }
.ms-welcome a { margin-left: auto; font-weight: 700; }
.ms-note { margin: 0 0 12px; }
.ms-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ms-item { display: grid; grid-template-columns: 28px 1fr auto auto; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 12px; background: var(--paper-2); }
.ms-item__ic { width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--line); display: grid; place-items: center; color: #fff; }
.ms-item.is-done .ms-item__ic { background: #3FAE7F; border-color: #3FAE7F; }
.ms-item.is-done .ms-item__txt strong { text-decoration: line-through; color: var(--muted); }
.ms-item__txt { display: grid; gap: 1px; min-width: 0; }
.ms-item__txt small { font-size: 13px; }
.ms-item__pts { font-weight: 800; color: var(--pine); white-space: nowrap; }
.ms-more { margin: 10px 0 0; }
@media (max-width: 520px) { .ms-item { grid-template-columns: 26px 1fr auto; } .ms-item .btn { grid-column: 2 / -1; justify-self: start; } }
/* Regisztráció: mit kapsz. */
.signup-perks { margin: 12px 0 16px; padding: 14px; border-radius: 16px; background: linear-gradient(135deg, var(--pine-soft), #FFF4DC); }
.signup-perks__title { margin: 0 0 8px; font-weight: 800; }
.signup-perks ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.signup-perks li { display: flex; gap: 10px; align-items: flex-start; }
.signup-perks li > span:last-child { display: grid; gap: 1px; }
.signup-perks small { color: var(--muted); font-size: 13px; }
.signup-perks__ic { flex: none; width: 30px; height: 30px; border-radius: 10px; display: grid; place-items: center; background: rgba(255,255,255,.7); color: var(--pine); }
.pont-more { margin-top: 8px; }
.pont-more > summary { list-style: none; display: inline-flex; }
.pont-more > summary::-webkit-details-marker { display: none; }
.pont-more[open] > summary { display: none; }
@media (max-width: 560px) {
  .pont-rules li { flex-direction: column; gap: 2px; align-items: flex-start; }
  .pont-rules li strong { white-space: normal; }
}
/* Prémium küldetések */
.ms-pitem { display: grid; grid-template-columns: 28px 1fr auto auto; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 12px; background: var(--paper-2); }
.ms-pitem.is-done .ms-item__ic { background: #3FAE7F; border-color: #3FAE7F; }
.ms-pitem.is-done .ms-item__txt strong { text-decoration: line-through; color: var(--muted); }
.ms-pitem.is-locked { opacity: .8; }
.ms-pitem.is-locked .ms-item__ic { border: 0; font-size: 14px; }
.ms-card--prem { border: 1px solid #EBC57A; background: linear-gradient(180deg, #FFF8E6, var(--surface) 140px); }
.ms-card--prem h2 { display: flex; align-items: center; gap: 6px; }
.ms-card--prem h2 svg { color: #E09A1C; }
:root[data-theme="dark"] .ms-card--prem { background: var(--surface); border-color: #6b5222; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ms-card--prem { background: var(--surface); border-color: #6b5222; } }
@media (max-width: 520px) { .ms-pitem { grid-template-columns: 26px 1fr auto; } .ms-pitem .btn { grid-column: 2 / -1; justify-self: start; } }

/* Felugró pontértesítés */
.ptoast { position: fixed; left: 50%; bottom: 28px; z-index: 80; width: min(380px, calc(100vw - 32px)); transform: translateX(-50%);
  padding: 18px 18px 16px; border-radius: 20px; background: var(--surface); border: 1px solid #EBC57A; box-shadow: 0 18px 50px -12px rgba(34, 29, 46, .45);
  text-align: center; animation: ptoast-in .45s cubic-bezier(.2, 1.4, .4, 1) both; }
.ptoast.is-out { animation: ptoast-out .3s ease both; }
.ptoast__x { position: absolute; top: 8px; right: 10px; width: 32px; height: 32px; border: 0; border-radius: 50%; background: none; color: var(--muted); font-size: 22px; cursor: pointer; }
.ptoast__x:hover { background: var(--paper-2); }
.ptoast__burst { width: 54px; height: 54px; margin: -42px auto 6px; border-radius: 50%; display: grid; place-items: center; color: #fff;
  background: linear-gradient(135deg, #F7C75C, #E09A1C); box-shadow: 0 6px 18px rgba(201, 138, 22, .45); }
.ptoast__title { margin: 0 0 6px; font-family: var(--font-display); font-size: 22px; font-weight: 800; color: var(--ink); }
.ptoast__list { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 2px; font-size: 14px; color: var(--muted); }
.ptoast__list strong { color: var(--pine); }
.ptoast__bal { margin: 0 0 12px; font-size: 14px; }
.ptoast__cta { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 0; }
.ptoast__cta .btn { display: inline-flex; align-items: center; gap: 6px; }
@keyframes ptoast-in { from { opacity: 0; transform: translate(-50%, 30px) scale(.92); } to { opacity: 1; transform: translate(-50%, 0) scale(1); } }
@keyframes ptoast-out { to { opacity: 0; transform: translate(-50%, 20px); } }
@media (max-width: 760px) { .ptoast { bottom: calc(86px + env(safe-area-inset-bottom, 0px)); } }
@media (prefers-reduced-motion: reduce) { .ptoast, .ptoast.is-out { animation: none; } }

/* Így szerzel pontot: teljes szélességű, csoportonként egy kártya; a pont elöl, jól láthatóan */
.pont-how { margin-top: 20px; padding: clamp(18px, 2.4vw, 26px); }
.pont-how__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.pont-how__head h2 { margin: 0; }
.pont-how__head .pagehead__actions { margin: 0; }
.pont-how__grid { columns: 3 260px; column-gap: 14px; }
.pont-how__grid > .pont-how__grp { break-inside: avoid; margin: 0 0 14px; }
.pont-how__grp { border: 1px solid var(--line); border-radius: var(--r-lg, 16px); padding: 12px 14px; background: var(--surface); }
.pont-how__grp h3 { margin: 0 0 8px; font-size: 15px; display: flex; gap: 6px; align-items: center; }
.pont-how__grp ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pont-how__grp li { display: grid; gap: 2px; padding-top: 8px; border-top: 1px solid var(--line); }
.pont-how__grp li:first-child { border-top: 0; padding-top: 0; }
.pont-how__pts { font-weight: 800; color: var(--pine); font-size: 15px; }
.pont-how__what { font-size: 14px; color: var(--ink); line-height: 1.4; }
.pont-how__grp li.is-soon { opacity: .7; }
.pont-how__grp li.is-soon .pont-how__pts { color: var(--muted); }

/* Így szerzel pontot: kategóriák lenyitható listában, összeggel */
.pont-how__total { margin: 0 0 14px; color: var(--muted); }
.pont-how__total strong { color: var(--ink); }
.pont-how__acc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-items: start; }
.pont-cat { border: 1px solid var(--line); border-radius: 16px; background: var(--surface); overflow: hidden; }
.pont-cat[open] { border-color: color-mix(in srgb, var(--pine) 45%, var(--line)); box-shadow: 0 8px 22px -16px rgba(40, 28, 70, .45); }
.pont-cat > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 12px 14px; }
.pont-cat > summary::-webkit-details-marker { display: none; }
.pont-cat > summary:focus-visible { outline: 2px solid var(--pine); outline-offset: -2px; border-radius: 16px; }
.pont-cat__ic { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-size: 20px; background: var(--paper-2); }
.pont-cat__name { display: grid; min-width: 0; }
.pont-cat__name strong { font-size: 16px; }
.pont-cat__name small { color: var(--muted); font-size: 13px; line-height: 1.35; }
.pont-cat__sum { text-align: right; font-weight: 800; color: var(--pine); white-space: nowrap; display: grid; }
.pont-cat__sum small { font-weight: 600; font-size: 12px; color: var(--muted); }
.pont-cat__chev { width: 10px; height: 10px; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted); transform: rotate(45deg); margin: -4px 4px 0; transition: transform .2s; }
.pont-cat[open] .pont-cat__chev { transform: rotate(-135deg); margin-top: 4px; }
.pont-cat__list { list-style: none; margin: 0; padding: 0 14px 10px; display: grid; }
.pont-cat__list li { display: flex; justify-content: space-between; gap: 14px; align-items: baseline; padding: 9px 0; border-top: 1px solid var(--line); font-size: 14.5px; }
.pont-cat__what { flex: 1 1 auto; min-width: 0; }
.pont-cat__pts { flex: 0 0 auto; max-width: 45%; text-align: right; font-weight: 800; color: var(--pine); }
.pont-cat__list li.is-soon { opacity: .7; }
.pont-cat__list li.is-soon .pont-cat__pts { color: var(--muted); }
@media (max-width: 860px) { .pont-how__acc { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .pont-cat > summary { grid-template-columns: auto minmax(0, 1fr) auto; } .pont-cat__chev { display: none; } .pont-cat__list li { flex-direction: column; gap: 2px; } .pont-cat__pts { max-width: none; text-align: left; } }

/* Pontjaim: egy rácsban az egyenleg és a beváltás; előzmények, beváltások, lejáratok csak gombok mögött */
.pont-main { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 20px; align-items: start; }
.pont-main > .pont-balance { grid-column: 1 / -1; }
.pont-tools { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 12px; }
.pont-pop { position: relative; }
.pont-pop > summary { list-style: none; cursor: pointer; }
.pont-pop > summary::-webkit-details-marker { display: none; }
.pont-pop > summary svg { vertical-align: -3px; }
.pont-pop[open] > summary { border-color: var(--pine); color: var(--pine); }
.pont-pop__panel { position: absolute; left: 50%; transform: translateX(-50%); top: calc(100% + 8px); z-index: 40; width: min(440px, 92vw); max-height: 60vh; overflow: auto; padding: 14px 16px; text-align: left; }
.pont-pop__h { margin: 0 0 8px; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }

/* assets/css/mod-post-owner.css */
/* Bejegyzések: „Lexi gazdija” sor a szerző neve alatt, és a láthatóság magyarázó sora az íróablakban. */

/* --- Gazdi-sor ---------------------------------------------------------------------------- */
.spost__who .spost__owner { margin: 1px 0 1px; line-height: 1.3; }
.sowner { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; min-width: 0; color: var(--muted); font-size: 14px; vertical-align: middle; }
.sowner__pets { display: inline-flex; flex: none; }
.sowner__pets a { display: block; line-height: 0; text-decoration: none; }
.sowner__pets a + a { margin-left: -5px; }
.sowner__img.spet { width: 20px; height: 20px; box-shadow: 0 0 0 2px var(--surface); }
.sowner__img.spet.is-paw { padding: 3px; }
.sowner__text { min-width: 0; overflow-wrap: anywhere; }
.sowner__text a { color: var(--ink); font-weight: 600; text-decoration: none; }
.sowner__text a:hover, .sowner__text a:focus-visible { text-decoration: underline; }

/* Hozzászólásnál kisebb, a név után. */
.sowner--c { gap: 4px; font-size: 13px; margin-left: 4px; }
.sowner--c .sowner__img.spet { width: 16px; height: 16px; box-shadow: 0 0 0 1.5px var(--paper-2); }
.sowner--c .sowner__img.spet.is-paw { padding: 2px; }
.sowner--c .sowner__text a { font-weight: 600; color: var(--muted); }

/* --- Láthatóság: magyarázó sor ------------------------------------------------------------ */
.svishint { display: flex; align-items: flex-start; gap: 6px; margin: 8px 0 0; color: var(--muted); font-size: 13.5px; line-height: 1.4; justify-content: flex-end; text-align: right; }
.svishint__ic { display: inline-flex; flex: none; margin-top: 1px; color: var(--pine); }
.svishint__ic[hidden] { display: none; }
.svis[data-vis="public"] { color: var(--pine); }

@media (max-width: 560px) {
  .svishint { justify-content: flex-start; text-align: left; }
}

/* --- Vendégnézet (Nyilvános bejegyzés belépés nélkül) ------------------------------------- */
.spost-guest { max-width: 640px; margin: 20px auto 40px; }
.spost__guest { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 6px 0 12px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 14px; }
.spost-guest__cta { text-align: center; margin: 16px 0 0; font-size: 14.5px; }
.spost-guest .spost__stats { display: flex; justify-content: space-between; color: var(--muted); font-size: 14px; margin-top: 8px; }

/* assets/css/mod-premium.css */
/* Prémium oldal (premium.php), emlékoldal (emlek*.php), éves emlékkönyv (evkonyv.php) */
.prm { padding-bottom: 56px; }
.prm > section { margin-top: 40px; }
.prm > section:first-child { margin-top: 0; }
.prm-hero { display: grid; grid-template-columns: 1.25fr .75fr; gap: 40px; align-items: center; padding-top: 44px; }
.prm-hero h1 { font-size: clamp(34px, 5vw, 58px); letter-spacing: -0.035em; margin: 0 0 14px; max-width: 14ch; }
.prm-hero__lead { font-size: 20px; line-height: 1.5; color: var(--muted); margin: 0 0 22px; max-width: 34ch; }
.prm-hero__cta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.prm-hero__cta form { margin: 0; }
.btn--lg { padding: 15px 26px; font-size: 17px; }
.prm-fine { font-size: 14px; color: var(--muted); margin: 12px 0 0; }
.prm-fine--center { text-align: center; }
.prm-hero__visual { position: relative; display: grid; place-items: center; padding: 34px 20px; border-radius: 32px; background: radial-gradient(120% 90% at 50% 0%, #3a2c55 0%, #1b1526 70%); color: #fff; min-height: 300px; overflow: hidden; }
.prm-hero__visual::after { content: ""; position: absolute; inset: auto -20% -40% -20%; height: 70%; background: radial-gradient(closest-side, rgba(246, 206, 140, .28), transparent); pointer-events: none; }
.prm-hero__medal { position: relative; z-index: 1; }
.prm-hero__chips { position: relative; z-index: 1; list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.prm-hero__chips li { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .16); font-size: 14px; font-weight: 600; }
.prm-hero__chips svg { color: #F6CE8C; }
.prm .acc-current { margin: 0 0 18px; }

.prm-head3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.prm-feat { display: flex; flex-direction: column; gap: 6px; }
.prm-feat + .prm-feat { margin-top: 0; }
.prm-feat__icon { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); margin-bottom: 8px; }
.prm-feat h2 { font-size: 23px; margin: 0; }
.prm-feat__lead { margin: 0 0 12px; color: var(--muted); }
.prm-feat .ticklist { flex: 1; font-size: 15.5px; }
.prm-feat__more { margin-top: 14px; font-weight: 700; text-decoration: none; }

.prm-more h2, .prm-sechead h2, .prm-faq h2 { font-size: clamp(26px, 3vw, 34px); letter-spacing: -0.03em; }
.prm-sechead { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin-bottom: 12px; }
.prm-sechead p { margin: 0; }
.prm-more__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.prm-more__grid li { display: flex; gap: 14px; align-items: flex-start; padding: 18px; border-radius: 20px; border: 1px solid var(--line); background: var(--surface); }
.prm-more__grid div { display: grid; gap: 4px; }
.prm-more__grid .muted { font-size: 15px; line-height: 1.45; }
.prm-more__icon { flex: none; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); }
.prm-plans .acc-plan h3 { font-size: 22px; margin: 0; }

.prm-faq { max-width: 820px; }
.prm-faq__item { border-bottom: 1px solid var(--line); }
.prm-faq__item summary { cursor: pointer; list-style: none; padding: 18px 36px 18px 0; font-weight: 700; font-size: 17px; position: relative; }
.prm-faq__item summary::-webkit-details-marker { display: none; }
.prm-faq__item summary::after { content: "+"; position: absolute; right: 6px; top: 14px; font-size: 24px; font-weight: 400; color: var(--pine); }
.prm-faq__item[open] summary::after { content: "–"; }
.prm-faq__item p { margin: 0 0 18px; color: var(--muted); line-height: 1.6; }

@media (max-width: 960px) {
  .prm-head3, .prm-more__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .prm-hero { grid-template-columns: 1fr; gap: 24px; padding-top: 24px; }
  .prm-hero__visual { min-height: 0; padding: 26px 16px; }
  .prm-head3, .prm-more__grid { grid-template-columns: 1fr; }
  .prm-hero__cta .btn { flex: 1 1 auto; }
}

/* --- Emlékoldal ------------------------------------------------------------- */
.mem-hero { display: grid; grid-template-columns: .9fr 1.1fr; gap: 48px; align-items: center; padding-top: 40px; padding-bottom: 32px; }
.mem-hero__photo { margin: 0; border-radius: 32px; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(34, 22, 58, .5); background: var(--pine-soft); }
.mem-hero__photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 4.6; object-fit: cover; }
.mem-hero__photo .placeholder { aspect-ratio: 4 / 4.6; display: grid; place-items: center; }
.mem-hero h1 { font-size: clamp(44px, 6.5vw, 78px); letter-spacing: -0.04em; line-height: 1; margin: 0 0 10px; }
.mem-hero__meta { font-size: 17px; color: var(--muted); font-weight: 600; margin: 0 0 22px; line-height: 1.5; }
.mem-hero__text blockquote { margin: 0 0 16px; font-size: 21px; line-height: 1.5; font-family: var(--font-display); letter-spacing: -0.01em; white-space: pre-line; }
.mem-hero__candle { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 15px; }
.mem-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.mem-gallery { columns: 4 200px; column-gap: 12px; padding-bottom: 32px; }
.mem-gallery figure { margin: 0 0 12px; break-inside: avoid; position: relative; border-radius: 18px; overflow: hidden; }
.mem-gallery img { display: block; width: 100%; height: auto; }
.mem-gallery figcaption { position: absolute; inset: auto 0 0 0; padding: 32px 12px 10px; color: #fff; font-size: 14px; font-weight: 600; background: linear-gradient(180deg, rgba(0,0,0,0), rgba(18, 12, 30, .7)); }
.mem-moments { max-width: 760px; padding-bottom: 48px; }
.mem-moments h2 { font-size: 26px; }
.mem-moments ul { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--line); }
.mem-moments li { position: relative; padding: 0 0 16px 22px; }
.mem-moments li::before { content: ""; position: absolute; left: -7px; top: 6px; width: 12px; height: 12px; border-radius: 50%; background: var(--surface); border: 2px solid var(--pine); }
.mem-moments time { display: block; font-size: 14px; color: var(--muted); font-weight: 600; }
.mem-owner { max-width: 760px; margin-bottom: 56px; }
.mem-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 999px; background: var(--pine-soft); color: var(--pine); font-weight: 700; font-size: 14px; }
.pet-memorial-card { opacity: .92; }
@media (max-width: 860px) { .mem-hero { grid-template-columns: 1fr; gap: 24px; padding-top: 24px; } .mem-hero__photo { max-width: 440px; } }

/* --- Éves emlékkönyv -------------------------------------------------------- */
.yb { padding-bottom: 56px; }
.yb-cover { position: relative; margin-top: 28px; border-radius: 32px; overflow: hidden; min-height: 380px; display: grid; align-items: end; color: #fff; background: #1b1526; }
.yb-cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .78; }
.yb-cover__text { position: relative; padding: 36px; background: linear-gradient(180deg, rgba(18, 12, 30, 0) 0%, rgba(18, 12, 30, .82) 70%); }
.yb-cover .eyebrow { color: #F6CE8C; }
.yb-cover h1 { font-size: clamp(42px, 7vw, 86px); letter-spacing: -0.04em; line-height: .95; margin: 0 0 10px; color: #fff; }
.yb-cover p { margin: 0; font-size: 18px; color: rgba(255, 255, 255, .86); }
.yb-years { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0 0; }
.yb-years a, .yb-years span { padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line); text-decoration: none; font-weight: 700; font-size: 14px; color: var(--ink); }
.yb-years span { background: var(--pine); border-color: var(--pine); color: var(--on-pine, #fff); }
.yb-stats { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.yb-stats li { padding: 20px; border-radius: 22px; background: var(--surface); border: 1px solid var(--line); }
.yb-stats strong { display: block; font-family: var(--font-display); font-size: 40px; letter-spacing: -0.03em; line-height: 1; color: var(--pine); }
.yb-stats span { color: var(--muted); font-size: 15px; font-weight: 600; }
.yb h2 { font-size: clamp(26px, 3vw, 34px); letter-spacing: -0.03em; margin-top: 40px; }
.yb-photos { columns: 3 220px; column-gap: 12px; }
.yb-photos figure { margin: 0 0 12px; break-inside: avoid; position: relative; border-radius: 18px; overflow: hidden; }
.yb-photos img { display: block; width: 100%; height: auto; }
.yb-photos figcaption { position: absolute; inset: auto 0 0 0; padding: 28px 12px 10px; color: #fff; font-size: 14px; font-weight: 600; background: linear-gradient(180deg, rgba(0,0,0,0), rgba(18, 12, 30, .7)); }
.yb-photos .yb-like { position: absolute; top: 10px; right: 10px; padding: 3px 9px; border-radius: 999px; background: rgba(18, 12, 30, .6); color: #fff; font-size: 13px; font-weight: 700; }
.yb-months { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-left: 2px solid var(--line); }
.yb-months li { position: relative; padding: 0 0 18px 24px; }
.yb-months li::before { content: ""; position: absolute; left: -8px; top: 4px; width: 14px; height: 14px; border-radius: 50%; background: var(--surface); border: 3px solid var(--pine); }
.yb-months time { display: block; font-size: 14px; color: var(--muted); font-weight: 700; text-transform: capitalize; }
.yb-months strong { font-size: 17px; }
.yb-share { display: grid; grid-template-columns: 240px 1fr; gap: 24px; align-items: center; margin-top: 40px; }
.yb-share__card { border-radius: 20px; overflow: hidden; box-shadow: 0 20px 40px -24px rgba(34, 22, 58, .6); }
.yb-share__card img { display: block; width: 100%; height: auto; }
.yb-share form { margin: 0; }
.yb-share__row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.yb-share input[type="text"] { width: 100%; }
.yb-teaser { position: relative; margin-top: 24px; }
.yb-teaser__lock { margin-top: 18px; text-align: center; padding: 28px 20px; border-radius: 24px; border: 1px solid var(--line); background: linear-gradient(135deg, var(--pine-soft), var(--surface)); }
.yb-teaser__lock h2 { margin-top: 10px; }
@media (max-width: 760px) {
  .yb-stats { grid-template-columns: 1fr 1fr; }
  .yb-cover { min-height: 300px; }
  .yb-cover__text { padding: 22px; }
  .yb-share { grid-template-columns: 1fr; }
  .yb-share__card { max-width: 260px; }
}
@media print {
  .topbar, .footer, .bottomnav, .yb-years, .yb-share, .no-print, .mem-owner, .mem-actions { display: none !important; }
  .yb-cover { min-height: 0; height: 9cm; border-radius: 0; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .yb-stats li { break-inside: avoid; }
  .yb-photos { columns: 3; }
  .yb h2 { break-after: avoid; }
  body { background: #fff !important; }
}
.acc-plan__badge--gold { background: linear-gradient(135deg, #F6CE8C, #C77F26); color: #3a2406; }
.acc-plan__intro { margin: 2px 0 6px; }

/* Prémium oldal: az AI és a törzskönyv-beolvasás a kiemelt funkciók elején (2 széles + 3 keskeny kártya) */
.prm-head3 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.prm-head3 .prm-feat { grid-column: span 2; }
.prm-head3 .prm-feat--top { grid-column: span 3; border: 1.5px solid color-mix(in srgb, var(--pine) 30%, var(--line)); }
.prm-feat__icon--ai { background: none; padding: 0; overflow: hidden; border-radius: 50%; }
.prm-feat__new { margin: 0; }
.prm-founder { margin: 14px 0 0; }
@media (max-width: 960px) {
  .prm-head3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .prm-head3 .prm-feat, .prm-head3 .prm-feat--top { grid-column: auto; }
  .prm-head3 .prm-feat:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .prm-head3 { grid-template-columns: minmax(0, 1fr); }
  .prm-head3 .prm-feat:last-child:nth-child(odd) { grid-column: auto; }
}

/* Bevezető ár (premium.php) */
.prm-intro { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; margin: 0 0 14px; }
.prm-intro span:last-child { flex: 1 1 260px; }
.prm-price__per { font-size: .45em; font-weight: 700; color: var(--muted); margin-left: 2px; }
.prm-price__was { margin: -4px 0 4px; color: var(--muted); font-size: 15px; }
.prm-price__was s { text-decoration-thickness: 2px; }

/* --- Hero: AI-jel a chipben --- */
.prm-hero__chips .prm-hero__ai { flex: none; }

/* --- „Mit kapsz?” körhinta --- */
.prm-show { margin-top: 8px; }
.prm-show__head { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.prm-show__head h2 { margin: 0; font-size: clamp(26px, 3vw, 34px); letter-spacing: -0.03em; }
.prm-show__nav { display: flex; gap: 8px; }
.prm-show__tabs { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding: 2px 2px 12px; margin: 0 -2px; }
.prm-show__tabs::-webkit-scrollbar { display: none; }
.prm-show__tab { flex: none; padding: 9px 16px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; font-weight: 700; font-size: 14.5px; cursor: pointer; white-space: nowrap; }
.prm-show__tab:hover { border-color: var(--pine); color: var(--pine); }
.prm-show__tab.is-on:hover { color: var(--surface); }
.prm-show__tab.is-on { background: var(--ink); border-color: var(--ink); color: var(--surface); }
.prm-show__tab:focus-visible { outline: 3px solid var(--pine); outline-offset: 2px; }
.prm-show__track { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: 28px; overscroll-behavior-x: contain; }
.prm-show__track::-webkit-scrollbar { display: none; }
.prm-show__track:focus-visible { outline: 3px solid var(--pine); outline-offset: 3px; }
.prm-slide { scroll-snap-align: start; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: center; gap: 36px; min-height: 420px; padding: 40px 48px;
  background: radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--pine) 22%, var(--surface)) 0%, var(--surface) 62%); border: 1px solid var(--line); border-radius: 28px; }
.prm-slide__visual { display: grid; place-items: center; min-height: 320px; }
.prm-slide__text { display: grid; gap: 10px; align-content: center; }
.prm-slide__num { font-family: var(--font-display); font-weight: 800; font-size: 15px; color: var(--pine); letter-spacing: .1em; }
.prm-slide__text h3 { margin: 0; font-size: clamp(28px, 3.4vw, 42px); line-height: 1.05; letter-spacing: -0.03em; }
.prm-slide__text p { margin: 0; font-size: 18px; line-height: 1.5; color: var(--muted); max-width: 30ch; }
.prm-slide__tags { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.prm-slide__tags li { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: var(--pine-soft); font-size: 14px; font-weight: 700; }
.prm-slide__tags svg { color: var(--pine); }

/* Illusztrációk */
.pv { position: relative; width: min(100%, 380px); }
.pv-toast { position: absolute; right: -14px; bottom: -18px; display: flex; gap: 10px; align-items: center; padding: 12px 16px; border-radius: 16px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lift); font-size: 14.5px; max-width: 270px; }
.pv-toast svg { flex: none; color: var(--good); }
.pv-chat { display: grid; gap: 12px; padding: 22px; border-radius: 24px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lift); }
.pv-chat__q { justify-self: end; margin: 0; max-width: 85%; padding: 11px 15px; border-radius: 18px 18px 6px 18px; background: var(--pine); color: var(--on-pine); font-size: 15px; }
.pv-chat__a { display: flex; gap: 10px; align-items: flex-start; }
.pv-chat__a svg { flex: none; }
.pv-chat__a p { margin: 0; padding: 11px 15px; border-radius: 18px 18px 18px 6px; background: var(--paper-2); font-size: 15px; line-height: 1.45; }
.pv-chat__typing { margin: 0 0 0 40px; display: flex; gap: 4px; }
.pv-chat__typing span { width: 7px; height: 7px; border-radius: 50%; background: var(--muted); opacity: .5; animation: pv-dot 1.2s infinite ease-in-out; }
.pv-chat__typing span:nth-child(2) { animation-delay: .15s; } .pv-chat__typing span:nth-child(3) { animation-delay: .3s; }
@keyframes pv-dot { 40% { opacity: 1; transform: translateY(-3px); } }
.pv-meds { padding: 20px; border-radius: 24px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lift); }
.pv-meds__head { margin: 0 0 10px; font-weight: 800; }
.pv-meds ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pv-meds li { display: flex; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 14px; background: var(--paper-2); }
.pv-meds li span:last-child { display: grid; }
.pv-meds small { color: var(--muted); font-size: 13px; }
.pv-meds__tick { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; border: 2px solid var(--line); }
.pv-meds li.is-done .pv-meds__tick { background: var(--good); border-color: var(--good); color: var(--surface); }
.pv-scan { display: flex; align-items: center; justify-content: center; gap: 16px; }
.pv-scan__doc { width: 110px; height: 150px; padding: 14px 12px; border-radius: 10px; background: #FBF6EA; box-shadow: var(--shadow-lift); display: grid; gap: 8px; align-content: start; transform: rotate(-4deg); }
.pv-scan__doc span { height: 7px; border-radius: 4px; background: #D8CDB3; }
.pv-scan__doc span:nth-child(odd) { width: 70%; }
.pv-scan__arrow { font-size: 28px; color: var(--pine); font-weight: 800; }
.pv-scan__tree { display: grid; grid-template-columns: repeat(4, auto); gap: 8px; justify-items: center; }
.pv-scan__tree span { padding: 6px 10px; border-radius: 10px; background: var(--surface); border: 1px solid var(--line); font-size: 13px; font-weight: 700; box-shadow: var(--shadow-lift); }
.pv-scan__tree .is-pet { grid-column: 1 / -1; background: var(--pine); color: var(--on-pine); border-color: var(--pine); font-size: 15px; }
.pv-scan__tree span:nth-child(2) { grid-column: 1 / 3; } .pv-scan__tree span:nth-child(3) { grid-column: 3 / 5; }
.pv-scan__tree .is-small { font-size: 11.5px; font-weight: 600; padding: 5px 7px; }
.pv-docs ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pv-docs li { display: grid; gap: 10px; padding: 16px; border-radius: 18px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lift); font-weight: 700; font-size: 14.5px; }
.pv-docs__ic { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; }
.pv-docs__ic--a { background: var(--pine-soft); color: var(--pine); } .pv-docs__ic--b { background: var(--good-soft); color: var(--good); }
.pv-docs__ic--c { background: var(--warn-soft); color: var(--warn); } .pv-docs__ic--d { background: var(--bad-soft); color: var(--bad); }
.pv-toast--link { bottom: -26px; }
.pv-mem__grid { display: grid; grid-template-columns: 1.3fr 1fr; grid-template-rows: 130px 130px; gap: 8px; }
.pv-mem__grid img { width: 100%; height: 100%; object-fit: cover; border-radius: 14px; }
.pv-mem__grid img:first-child { grid-row: 1 / 3; }
.pv-mem__title { position: absolute; left: 12px; bottom: 12px; margin: 0; padding: 8px 14px; border-radius: 999px; background: rgba(20, 14, 30, .72); color: #fff; font-weight: 800; font-size: 14px; backdrop-filter: blur(6px); }
@media (max-width: 820px) {
  .prm-slide { grid-template-columns: minmax(0, 1fr); padding: 28px 22px 30px; gap: 26px; min-height: 0; }
  .prm-slide__visual { min-height: 0; order: 0; }
  .prm-slide__text p { font-size: 16.5px; }
  .pv-toast { right: 0; }
  .prm-show__nav { display: none; }
}
@media (prefers-reduced-motion: reduce) { .pv-chat__typing span { animation: none; } }

/* --- „És még” rács tömörebben --- */
.prm-more__grid li span.muted { font-size: 14px; }

/* --- Összehasonlítás lenyitható --- */
.prm-compare > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; }
.prm-compare > summary::-webkit-details-marker { display: none; }
.prm-compare > summary h2 { margin: 0; font-size: 20px; }
.prm-compare__toggle { width: 34px; height: 34px; flex: none; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; }
.prm-compare__toggle::before { content: "+"; font-weight: 800; font-size: 20px; line-height: 1; }
.prm-compare[open] .prm-compare__toggle::before { content: "–"; }
.prm-compare[open] > summary { margin-bottom: 14px; }
.pv-scan__doc { flex: none; }

/* --- Hazatalálás-védelem: riasztáskártya Lénával --- */
.pv-alert { overflow: hidden; border-radius: 24px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lift); }
.pv-alert__media { position: relative; height: 200px; }
.pv-alert__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; display: block; }
.pv-alert__tag { position: absolute; left: 14px; bottom: 14px; padding: 5px 12px; border-radius: 8px; background: #B3362B; color: #fff; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; font-size: 13px; box-shadow: 0 4px 14px rgba(179, 54, 43, .35); }
.pv-alert__stats { position: absolute; top: 12px; right: 12px; display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 999px; background: rgba(20, 14, 30, .5); color: #fff; font-size: 12.5px; font-weight: 700; backdrop-filter: blur(6px); }
.pv-alert__body { display: grid; gap: 12px; padding: 16px 18px 18px; }
.pv-alert__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.pv-alert__head strong { display: block; font-family: var(--font-display); font-size: 26px; line-height: 1.05; letter-spacing: -0.02em; }
.pv-alert__head span { font-size: 13.5px; color: var(--muted); }
.pv-alert__qr { flex: none; width: 64px; height: 64px; padding: 3px; border-radius: 10px; background: #fff; border: 1px solid var(--line); }
.pv-alert__qr svg { width: 100%; height: 100%; display: block; }
.pv-alert__facts { margin: 0; display: grid; gap: 6px; }
.pv-alert__facts div { display: grid; grid-template-columns: 92px 1fr; gap: 8px; font-size: 13.5px; }
.pv-alert__facts dt { color: var(--muted); font-weight: 600; }
.pv-alert__facts dd { margin: 0; font-weight: 700; }
.pv-alert__comment { margin: 0; display: flex; gap: 8px; align-items: flex-start; padding: 9px 11px; border-radius: 4px 14px 14px 14px; background: var(--paper-2); font-size: 13.5px; line-height: 1.4; }
.pv-alert__comment strong { margin-right: 4px; }
.pv-alert__av { flex: none; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); font-weight: 800; font-size: 12px; }
.pv-alert__reach { margin: 0; display: flex; gap: 6px; align-items: center; font-size: 12.5px; color: var(--muted); }
.pv-alert__reach svg { flex: none; color: var(--good); }
.prm-manage { align-items: flex-start; }
.prm-manage > div { display: grid; gap: 4px; }
.prm-manage__btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.prm-manage__btns form { margin: 0; }

/* Emlékünkben: visszafogott kereszt a név mellett */
.mem-cross { display: inline-block; margin-left: .18em; font-size: .78em; font-weight: 400; line-height: 1; color: var(--muted); opacity: .8; vertical-align: .08em; }

/* assets/css/mod-promo.css */
/* Növekedés: ajánlói program, szórólapok, ajándék Prémium, kezdő lépések (includes/modules/promo.php) */
.promo-small { font-size: 13.5px; line-height: 1.5; }
.promo-code__big { font-family: var(--font-display); font-size: clamp(30px, 5vw, 42px); font-weight: 800; letter-spacing: .04em; margin: 4px 0 10px; color: var(--pine); overflow-wrap: anywhere; }
.promo-code__qr { width: 168px; max-width: 60%; margin: 0 0 14px; background: #fff; border-radius: 14px; padding: 8px; border: 1px solid var(--line); }
.promo-code__qr svg { display: block; width: 100%; height: auto; }
.promo-change { margin-top: 14px; }
.promo-change summary { cursor: pointer; color: var(--muted); font-weight: 600; }
.promo-history { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 6px; }
.promo-history li { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 10px; border-radius: var(--r-sm); background: var(--paper-2); font-size: 14px; }
.promo-plus { color: var(--good); }
.promo-minus { color: var(--muted); }
.promo-redeem { margin-top: 12px; }
.promo-types { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.promo-types h2 { margin-top: 0; }
.promo-redeem-card { max-width: 560px; margin: 0 auto; }
.promo-empty { max-width: 640px; }

/* Szórólap */
.flyer-tools { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 16px; }
.flyer { max-width: 560px; margin: 0 auto; background: #fff; color: #221D2E; border-radius: 22px; padding: 32px 30px; box-shadow: 0 24px 50px -28px rgba(34, 22, 58, .45); border: 1px solid #E2DDEB; }
.flyer__head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.flyer__brand { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-display); font-weight: 800; font-size: 24px; color: #221D2E; }
.flyer__tag { font-weight: 700; color: #1F7A57; font-size: 14px; }
.flyer__title { font-family: var(--font-display); font-size: clamp(26px, 4.6vw, 34px); line-height: 1.08; letter-spacing: -.02em; margin: 22px 0 10px; color: #55407E; }
.flyer__lead { font-size: 16.5px; line-height: 1.5; margin: 0 0 14px; color: #3a3346; }
.flyer__list { margin: 0 0 18px; padding-left: 20px; font-size: 15.5px; line-height: 1.6; }
.flyer__qrrow { display: flex; align-items: center; gap: 18px; padding: 16px; border-radius: 16px; background: #F4F0FA; flex-wrap: wrap; }
.flyer__qr { width: 150px; flex: none; background: #fff; border-radius: 12px; padding: 6px; }
.flyer__qr svg { display: block; width: 100%; height: auto; }
.flyer__scan { font-weight: 800; margin: 0 0 4px; }
.flyer__code { margin: 0 0 4px; font-size: 18px; }
.flyer__url { margin: 0; font-size: 13px; color: #655E74; overflow-wrap: anywhere; }

/* Ajándékkártya */
.giftcard { max-width: 620px; margin: 0 auto; text-align: center; padding: 40px 30px 34px; border-radius: 26px; color: #2b1d08;
  background: radial-gradient(120% 80% at 50% 0%, #fff7e6 0%, #f6e3bd 55%, #e8c478 100%); border: 1px solid rgba(156, 107, 30, .35); box-shadow: 0 30px 60px -30px rgba(120, 80, 20, .55); }
.giftcard__badge { display: flex; justify-content: center; margin-bottom: 6px; }
.giftcard__eyebrow { text-transform: uppercase; letter-spacing: .1em; font-weight: 800; font-size: 13px; color: #8a5a14; margin: 0; }
.giftcard__title { font-family: var(--font-display); font-size: clamp(30px, 5vw, 44px); margin: 6px 0 10px; color: #3a2406; }
.giftcard__msg { font-size: 18px; font-style: italic; margin: 0 auto 12px; max-width: 32em; }
.giftcard__lead { margin: 0 auto 18px; max-width: 34em; line-height: 1.5; color: #4a3410; }
.giftcard__code { display: inline-grid; gap: 4px; padding: 12px 22px; border-radius: 14px; background: #fff; border: 2px dashed #c9922f; }
.giftcard__code span { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: #8a5a14; font-weight: 800; }
.giftcard__code strong { font-family: ui-monospace, Menlo, monospace; font-size: clamp(20px, 4vw, 26px); letter-spacing: .08em; }
.giftcard__how { font-size: 13px; color: #6b4c18; margin: 16px 0 0; overflow-wrap: anywhere; }
.prm-gift { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 18px auto 0; max-width: 760px; padding: 14px 18px; }
.prm-gift > div { flex: 1 1 260px; display: grid; gap: 2px; }

/* Kezdő lépések */
.onb { margin-bottom: 16px; }
.onb__bar { height: 8px; border-radius: 999px; background: var(--paper-2); overflow: hidden; margin: 2px 0 12px; }
.onb__bar span { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--pine), var(--butter)); }
.onb__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 6px 16px; }
.onb__list li { display: flex; align-items: center; gap: 10px; min-height: 36px; }
.onb__list li.is-done { color: var(--muted); }
.onb__list li.is-done span:not(.onb__check) { text-decoration: line-through; }
.onb__check { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: var(--good-soft); color: var(--good); flex: none; }
.onb__dot { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--line); flex: none; }
.onb__list a { font-weight: 600; text-decoration: none; color: var(--ink); }
.onb__list a:hover, .onb__list a:focus-visible { color: var(--pine); }
.onb__hide { margin-top: 10px; }
.onb-family { display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-bottom: 16px; }
.onb-family h2 { margin: 0 0 4px; }
.onb-family > div:first-child { flex: 1 1 300px; }
.onb-family__actions { display: flex; gap: 8px; align-items: center; }

@media print {
  .page-flyer .topbar, .page-flyer .footer, .page-flyer .protobar, .page-flyer .flashes, .page-flyer .skip, .no-print { display: none !important; }
  .page-flyer, .page-flyer body { background: #fff !important; }
  .flyer, .giftcard { box-shadow: none !important; break-inside: avoid; }
  .flyer { border: 0; max-width: 148mm; padding: 10mm; }
}

/* assets/css/mod-pwa.css */
/* Telepíthető app (PWA): telepítési sáv és az app.php oldal */
.pwa-banner {
  position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); z-index: 70;
  display: flex; align-items: center; gap: 12px; padding: 12px 12px 12px 14px;
  background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: var(--r-lg);
  box-shadow: var(--shadow-lift); max-width: 560px; margin: 0 auto;
  animation: pwa-in .25s ease-out;
}
.pwa-banner img { width: 44px; height: 44px; border-radius: 12px; flex: none; }
.pwa-banner__text { flex: 1; min-width: 0; display: grid; gap: 2px; font-size: 14px; line-height: 1.35; }
.pwa-banner__text strong { font-size: 15px; }
.pwa-banner__text span { color: var(--muted); }
.pwa-banner__close { flex: none; width: 36px; height: 36px; border-radius: 50%; border: 0; background: transparent; color: var(--muted); font-size: 24px; line-height: 1; cursor: pointer; }
.pwa-banner__close:hover { background: var(--paper-2); color: var(--ink); }
@keyframes pwa-in { from { transform: translateY(16px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .pwa-banner { animation: none; } }

.app-hero { display: grid; grid-template-columns: 1.1fr 1fr; gap: 32px; align-items: center; padding: 32px 0 24px; }
.app-hero h1 { font-size: clamp(34px, 5vw, 52px); letter-spacing: -0.035em; line-height: 1.02; margin-bottom: 14px; }
.app-hero p { font-size: 18px; color: var(--muted); max-width: 32em; }
.app-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 18px; }
.app-phone { justify-self: center; width: min(280px, 80vw); aspect-ratio: 9 / 18; border-radius: 40px; padding: 12px;
  background: var(--ink); box-shadow: var(--shadow-lift); }
.app-phone__screen { width: 100%; height: 100%; border-radius: 30px; background: var(--paper); display: grid; grid-template-rows: auto 1fr; overflow: hidden; }
.app-phone__bar { display: flex; align-items: center; gap: 8px; padding: 18px 16px 12px; font-family: var(--font-display); font-weight: 800; font-size: 20px; }
.app-phone__bar img { width: 28px; height: 28px; }
.app-phone__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; padding: 8px 18px; align-content: start; }
.app-phone__grid span { aspect-ratio: 1; border-radius: 16px; background: var(--pine-soft); display: grid; place-items: center; color: var(--pine); }
.app-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding-bottom: 64px; }
.app-steps ol { margin: 0; padding-left: 22px; display: grid; gap: 8px; }
.app-steps h2 { display: flex; align-items: center; gap: 10px; font-size: 22px; }
.app-benefits { list-style: none; padding: 0; margin: 16px 0 0; display: grid; gap: 8px; }
.app-benefits li { display: flex; gap: 10px; align-items: flex-start; }
.app-benefits svg { flex: none; color: var(--good); margin-top: 3px; }
.app-installed { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--good); }
@media (max-width: 760px) {
  .app-hero { grid-template-columns: 1fr; }
  .app-phone { width: min(220px, 60vw); }
  .app-steps { grid-template-columns: 1fr; }
}
[data-pwa-install][hidden], [data-pwa-installed][hidden], [data-pwa-ios][hidden] { display: none !important; }
.app-steps > .card + .card { margin-top: 0; }
.app-phone { aspect-ratio: 9 / 14; }

/* assets/css/mod-ratings.css */
/* Értékelések és szívek (tenyésztő, kedvenc). */
.rv__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.rv__head h2 { margin: 0; }
.rv { margin-top: 0; }
.rv--pet { margin-top: 16px; padding: 18px 20px; }
.heartform { display: inline; margin: 0; }
.heartbtn { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 999px; border: 1.5px solid var(--line); background: var(--paper); color: #C2405A; font-weight: 800; cursor: pointer; text-decoration: none; font-size: 15px; }
.heartbtn:hover { border-color: #C2405A; }
.heartbtn.is-on { background: #FDE8EC; border-color: #F2B8C4; }
.heartbtn.is-own { cursor: default; }
.starrow { display: inline-flex; gap: 1px; vertical-align: -3px; }
.starrow__s { fill: var(--line); }
.starrow__s.is-full { fill: #E7A93B; }
.starrow__s.is-half { fill: #F3D08E; }
.rv__sum { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; margin: 14px 0; }
.rv__avg { display: grid; justify-items: start; gap: 2px; }
.rv__avg strong { font-family: var(--font-display); font-size: 40px; line-height: 1; }
.rv__dist { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; flex: 1; min-width: 200px; }
.rv__dist li { display: grid; grid-template-columns: 14px 1fr 28px; gap: 8px; align-items: center; font-size: 13px; }
.rv__bar { height: 8px; border-radius: 999px; background: var(--paper-2); overflow: hidden; }
.rv__bar span { display: block; height: 100%; background: #E7A93B; border-radius: inherit; }
.rv__form, .rv__replyform { margin: 12px 0; }
.rv__form summary, .rv__replyform summary { cursor: pointer; font-weight: 700; color: var(--pine); }
.rv__stars { border: 0; padding: 0; margin: 8px 0; display: inline-flex; flex-direction: row-reverse; gap: 2px; }
.rv__stars legend { width: 100%; margin-bottom: 4px; font-weight: 600; }
.rv__stars input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rv__stars label { font-size: 30px; line-height: 1; color: var(--line); cursor: pointer; }
.rv__stars input:checked ~ label, .rv__stars label:hover, .rv__stars label:hover ~ label { color: #E7A93B; }
.rv__stars input:focus-visible + label { outline: 2px solid var(--pine); border-radius: 4px; }
.rv__list { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 10px; }
.rv__item { padding: 12px 14px; border-radius: 14px; background: var(--paper-2); }
.rv__item p { margin: 6px 0 0; }
.rv__meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 14px; }
.rv__ver { font-size: 11.5px; }
.rv__reply { margin-top: 8px; padding: 8px 12px; border-left: 3px solid var(--pine); background: var(--paper); border-radius: 8px; font-size: 14px; }
.rv__petform { display: flex; gap: 8px; align-items: flex-end; margin: 10px 0; }
.rv__petform textarea { flex: 1; }
.rv__del { display: inline; }
.bcard-rating { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 700; }
@media (max-width: 520px) { .rv__petform { flex-direction: column; align-items: stretch; } }
.rv__av { width: 30px; height: 30px; border-radius: 999px; overflow: hidden; flex: none; display: inline-grid; place-items: center; vertical-align: middle;
  background: var(--pine-soft); color: var(--pine); font-weight: 800; font-size: 13px; margin-right: 2px; }
.rv__av img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* assets/css/mod-reels.css */
/* Reels: álló videók egymás alatt, görgetésre megálló kártyákkal. */
.reels__head { align-items: flex-start; }
.reels__new { position: relative; }
.reels__new > summary { list-style: none; }
.reels__new > summary::-webkit-details-marker { display: none; }
.reels__form { position: absolute; right: 0; top: calc(100% + 8px); width: min(420px, 92vw); z-index: 20; }
.reels__feed { list-style: none; margin: 0 auto 28px; padding: 0; display: grid; gap: 18px; justify-items: center; max-height: calc(100vh - 160px); overflow-y: auto; scroll-snap-type: y mandatory; }
.reel { position: relative; width: min(420px, 100%); aspect-ratio: 9 / 16; border-radius: 22px; overflow: hidden; background: #111; scroll-snap-align: center; }
.reel__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; cursor: pointer; }
.reel__info { position: absolute; left: 0; right: 64px; bottom: 0; padding: 40px 16px 16px; color: #fff; background: linear-gradient(transparent, rgba(0,0,0,.65)); }
.reel__info a, .reel__info .slink { color: #fff; font-weight: 800; }
.reel__who, .reel__cap { margin: 0 0 4px; text-shadow: 0 1px 2px rgba(0,0,0,.4); }
.reel__side { position: absolute; right: 10px; bottom: 18px; display: grid; gap: 12px; justify-items: center; }
.reel__btn { display: grid; justify-items: center; gap: 2px; width: 48px; padding: 8px 0; border: 0; border-radius: 16px; background: rgba(0,0,0,.35); color: #fff; font-weight: 800; cursor: pointer; list-style: none; }
.reel__btn.is-on { color: #FF6B88; }
.reel__btn span { font-size: 13px; }
.reel__more .smenu__pop { right: 0; bottom: 100%; top: auto; }
.reel__sound { position: absolute; top: 12px; right: 12px; display: inline-flex; gap: 4px; align-items: center; padding: 6px 10px; border: 0; border-radius: 999px; background: rgba(0,0,0,.4); color: #fff; font-weight: 700; cursor: pointer; }
.reel__sound.is-on { background: var(--pine); }
.reels__more { text-align: center; }

/* assets/css/mod-reports.css */
/* Bundee: bejelentések, QR-biléta oldal, állatbántalmazás, állatorvos-kereső */

.section-gap { margin-bottom: 64px; }
.rep-small { font-size: 14px; margin: 0; }

/* Lista */
.rep-grid { list-style: none; margin: 0; padding: 0 0 24px; }
.rep-grid > li { display: flex; }
.rep-grid .tile { width: 100%; }
.rep-tile__chips { margin-top: 0; }
.rep-tile__desc { margin: 2px 0 4px; font-size: 15px; color: var(--muted); }
.rep-filter { align-items: end; }
.rep-filter .field select { min-width: 160px; }
.rep-filter__check { align-self: center; margin-bottom: 0; padding-bottom: 10px; }
.rep-mine { margin-bottom: 20px; }
.rep-mine h2 { font-size: 20px; }
.rep-mine__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.rep-mine__list li { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* Részletek */
.rep-detail__photo { border-radius: var(--r-md); overflow: hidden; background: var(--paper-2); aspect-ratio: 4 / 3; display: grid; place-items: center; }
.rep-detail__photo img { width: 100%; height: 100%; object-fit: cover; }
.rep-detail__photo .placeholder { width: 88px; height: 88px; object-fit: contain; opacity: .7; }
.rep-detail__text { margin-top: 16px; }
.rep-detail__meta { font-size: 14px; margin: 8px 0 0; }
.rep-phone { font-weight: 700; font-size: 18px; margin: 0 0 12px; }
.rep-tips ul { margin: 8px 0 0; padding-left: 20px; }
.rep-tips li + li { margin-top: 6px; }
.rep-tips h2, .rep-detail h2 { font-size: 20px; }

/* Új bejelentés */
.rep-kinds { grid-template-columns: repeat(3, 1fr); }
.rep-petcard { display: flex; gap: 14px; align-items: center; }
.rep-petcard strong { display: block; font-size: 19px; }
.rep-petcard__photo { width: 72px; height: 72px; border-radius: 18px; overflow: hidden; background: var(--paper-2); display: grid; place-items: center; flex: none; }
.rep-petcard__photo img { width: 100%; height: 100%; object-fit: cover; }
.rep-petcard__photo .placeholder { width: 40px; height: 40px; object-fit: contain; }

/* QR-biléta nyilvános oldal */
.tag { padding-top: 28px; padding-bottom: 64px; }
.tag__lost { display: grid; gap: 4px; padding: 16px 20px; border-radius: var(--r-lg); background: var(--bad-soft); color: var(--bad); margin-bottom: 18px; }
.tag__lost strong { font-family: var(--font-display); font-size: 22px; letter-spacing: -0.01em; }
.tag__lost span { color: var(--ink); }
.tag__lost a { color: var(--bad); font-weight: 700; }
.tag__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 16px; align-items: start; }
.tag__card { padding: 0; overflow: hidden; }
.tag__photo { aspect-ratio: 4 / 3; background: var(--paper-2); display: grid; place-items: center; overflow: hidden; }
.tag__photo img { width: 100%; height: 100%; object-fit: cover; }
.tag__photo .placeholder { width: 96px; height: 96px; object-fit: contain; opacity: .7; }
.tag__body { padding: 20px 22px 22px; }
.tag__body h1 { font-size: clamp(28px, 4vw, 38px); margin-bottom: 6px; }
.tag__body p:last-child { margin-bottom: 0; }
.tag__meta { margin: 0 0 12px; }
.tag__sent { text-align: center; padding: 12px 0; }
.tag__sent-icon { width: 56px; height: 56px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--good-soft); color: var(--good); margin-bottom: 8px; }
.tag__help { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
.tag__help-item { display: flex; gap: 12px; align-items: center; padding: 14px; border-radius: var(--r-lg); text-decoration: none; color: var(--ink); }
.tag__help-item:hover { color: var(--ink); background: var(--paper-2); }
.tag__help-item strong { display: block; }
.tag__help-item small { color: var(--muted); font-size: 14px; }
@media (max-width: 760px) {
  .tag__grid, .tag__help { grid-template-columns: 1fr; }
}

/* Állatbántalmazás */
.abuse-alert { display: flex; gap: 14px; align-items: center; padding: 16px 20px; border-radius: var(--r-lg); background: var(--bad-soft); color: var(--ink); margin-bottom: 16px; }
.abuse-alert__icon { color: var(--bad); flex: none; display: grid; }
.abuse-alert div { flex: 1; display: grid; gap: 2px; }
.abuse-alert a:not(.btn) { color: var(--bad); }
.abuse-alert .btn { flex: none; }
.abuse-steps { display: grid; gap: 16px; margin: 6px 0 8px; }
.abuse-step { display: grid; grid-template-columns: 36px 1fr; gap: 12px; }
.abuse-step h3 { margin: 4px 0 2px; font-size: 19px; }
.abuse-step p { margin: 0; }
.abuse-step__no { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); font-weight: 800; font-family: var(--font-display); }
.abuse-guide ul { padding-left: 20px; }
.abuse-guide li + li { margin-top: 6px; }
.abuse-sources { font-size: 14px; margin-top: 16px; }
.abuse-sources a { color: var(--muted); }
.abuse-urgency { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; }
.abuse-urgency legend { font-weight: 600; font-size: 15px; margin-bottom: 6px; }
.abuse-mine { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.abuse-mine li { display: flex; justify-content: space-between; gap: 8px; align-items: center; font-size: 15px; }
.abuse-layout { padding-bottom: 64px; }
@media (max-width: 760px) {
  .abuse-alert { flex-wrap: wrap; }
  .abuse-alert .btn { width: 100%; }
}

/* Állatorvos a közelben */
.vet-layout { padding-bottom: 64px; }
.vet-finder__head { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.vet-finder__head h2 { margin: 0 0 2px; font-size: 22px; }
.vet-finder__head p { margin: 0; }
.vet-status:empty { display: none; }
.vet-status { margin: 12px 0 0; }
.vet-list { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 10px; }
.vet-list:empty { display: none; }
.vet-item { padding: 14px; border-radius: var(--r-md); border: 1px solid var(--line); }
.vet-item__head { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.vet-item__addr { margin: 4px 0 0; font-size: 15px; }
.vet-item__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.vet-attrib { font-size: 13px; margin: 12px 0 0; }
.vet-cityform { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; }
.vet-cityform .field { flex: 1; min-width: 180px; }
.vet-maplinks { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.vet-maplinks p { width: 100%; margin: 0 0 2px; }
#kereses.is-highlight { box-shadow: 0 0 0 3px var(--pine-soft), var(--shadow-lift); }
.vet-tips ul { padding-left: 20px; margin: 8px 0 0; }
.vet-tips li + li { margin-top: 8px; }
.vet-cta { padding: 0; }
@media (max-width: 900px) {
  .layout-2.vet-layout > aside, .layout-2.rep-detail-layout > aside { order: 0; }
}
.rep-tile .tile__media.is-empty { aspect-ratio: 2 / 1; }
.rep-detail__photo.is-empty { aspect-ratio: 3 / 1; }
.tag__grid > .card + .card, .stack > .card + .card { margin-top: 0; }
.tag__photo { aspect-ratio: 5 / 4; }
.tag__photo img { object-position: 50% 70%; }
.rep-detail__photo img, .rep-tile .tile__media img { object-position: 50% 65%; }
.card.prose > h2:first-child, .prose > h2:first-child { margin-top: 0; }

/* Megtekintések és hozzászólások száma a kép tetején, visszafogottan */
.rep-detail__photo { position: relative; }
.rep-stats { position: absolute; top: 12px; left: 12px; margin: 0; display: flex; gap: 6px; }
.rep-stats > * { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 999px; background: rgba(20, 14, 30, .55); color: #fff; font-size: 13px; font-weight: 700; text-decoration: none; backdrop-filter: blur(6px); }
.rep-stats a:hover { background: rgba(20, 14, 30, .75); }

/* Hozzászólások */
.rep-comments { margin-top: 18px; }
.rep-comments h2 { margin: 0 0 12px; font-size: 20px; }
.rep-comments__list { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 14px; }
.rep-comment { display: flex; gap: 12px; align-items: flex-start; }
.rep-comment__av { flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); font-weight: 800; }
.rep-comment.is-owner .rep-comment__av { background: var(--good-soft); color: var(--good); }
.rep-comment__body { min-width: 0; flex: 1; padding: 10px 14px; border-radius: 4px 16px 16px 16px; background: var(--paper-2); }
.rep-comment__head { margin: 0 0 4px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 14px; }
.rep-comment__text { overflow-wrap: anywhere; }
.rep-comment__text p { margin: 0; }
.rep-comment__del { font-size: 13px; color: var(--muted); margin-top: 4px; }
.rep-comments__form textarea { min-height: 70px; }

/* Reakciók a bejelentésen: szív, megosztás, figyelek */
.rep-react { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; align-items: center; }
.rep-react form { margin: 0; }
.rep-react__btn { display: inline-flex; align-items: center; gap: 6px; padding: 7px 13px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font-family: inherit; font-weight: 700; font-size: 14px; line-height: 1.2; cursor: pointer; }
.rep-react__btn:hover { border-color: var(--pine); }
.rep-react__btn:focus-visible { outline: 2px solid var(--pine); outline-offset: 2px; }
.rep-react__btn.is-on { background: var(--pine-soft); border-color: var(--pine); color: var(--pine); }
.rep-react__btn.is-static { cursor: default; }
.rep-react__n { font-weight: 800; padding-left: 2px; }
.rep-react__login { font-weight: 700; font-size: 14px; }


/* assets/css/mod-sajat-oldal.css */
/* Saját oldal szerkesztő (sajat-oldal.php) */
.sajat-grid { align-items: start; }
.sajat-settings fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.sajat-settings > fieldset { display: grid; gap: 16px; }
.sajat-settings legend { font-weight: 700; margin-bottom: 8px; padding: 0; }
.sajat-slug { display: flex; align-items: stretch; border: 1.5px solid var(--line); border-radius: var(--r-sm); background: var(--surface); overflow: hidden; }
.sajat-slug:focus-within { border-color: var(--pine); }
.sajat-slug__pre, .sajat-slug__post { display: flex; align-items: center; padding: 0 10px; background: var(--paper-2); color: var(--muted); font-size: 14px; white-space: nowrap; max-width: 52%; overflow: hidden; text-overflow: ellipsis; }
.sajat-slug__pre:empty { display: none; }
.sajat-slug input { border: 0 !important; box-shadow: none !important; flex: 1; min-width: 0; font-weight: 700; }
.sajat-slug__msg { display: block; margin-top: 6px; }
.sajat-slug__msg.is-ok { color: var(--good); }
.sajat-slug__msg.is-bad { color: var(--bad); }
.sajat-cover img { max-height: 180px; width: auto; border-radius: 12px; margin-bottom: 8px; }
.sajat-swatches { display: flex; flex-wrap: wrap; gap: 10px; }
.sajat-swatch { display: inline-flex; flex-direction: column; align-items: center; gap: 4px; cursor: pointer; font-size: 13px; }
.sajat-swatch input { position: absolute; opacity: 0; pointer-events: none; }
.sajat-swatch span { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg, var(--sw) 50%, var(--sw-d) 50%); box-shadow: 0 0 0 2px var(--surface), 0 0 0 3px var(--line); transition: box-shadow .15s; }
.sajat-swatch input:checked + span { box-shadow: 0 0 0 3px var(--surface), 0 0 0 5px var(--pine); }
.sajat-swatch input:focus-visible + span { outline: 3px solid var(--pine); outline-offset: 4px; }
.sajat-swatch em { font-style: normal; color: var(--muted); }
.sajat-checks { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.sajat-settings .check, .sajat-post .check { display: flex; gap: 8px; align-items: flex-start; }
.sajat-pin { align-self: end; padding-bottom: 12px; }
.sajat-post { display: grid; gap: 14px; margin-bottom: 18px; }
.sajat-thumbs { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.sajat-thumbs li { display: grid; gap: 6px; justify-items: center; }
.sajat-thumbs img { width: 96px; height: 96px; object-fit: cover; border-radius: 10px; }
.sajat-postlist { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.sajat-postlist li { display: flex; align-items: center; gap: 14px; padding: 12px 14px; flex-wrap: wrap; }
.sajat-postlist img { width: 64px; height: 64px; object-fit: cover; border-radius: 10px; flex: none; }
.sajat-postlist li > div:first-of-type, .sajat-postlist li > strong { flex: 1 1 200px; min-width: 0; }
.sajat-postlist strong { display: block; }
.sajat-postlist__act { display: flex; flex-wrap: wrap; gap: 6px; }
.sajat-postlist__act form { margin: 0; }
.sajat-status p { margin: 0 0 10px; word-break: break-all; }
.sajat-status form { display: inline-block; margin: 4px 6px 0 0; }
.sajat-upsell { max-width: 720px; }
.sajat-swatch { position: relative; }
.sajat-swatch input { width: 1px !important; height: 1px !important; margin: 0; left: 0; top: 0; }
.sajat-settings .check input, .sajat-post .check input { width: 20px; height: 20px; min-height: 0; padding: 0; flex: none; margin-top: 2px; }
.sajat-settings .check span, .sajat-post .check span { min-width: 0; }
.sajat-checks .check input { width: 20px !important; height: 20px; min-height: 0; padding: 0; margin: 2px 0 0; border-radius: 4px; box-shadow: none; }
.sajat-checks .check { align-items: center; }

/* Új oldal: kinek készül? */
.sajat-who h2 { margin-top: 0; }
.sajat-who__list { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.sajat-who__opt { display: grid; justify-items: center; gap: 4px; padding: 16px 10px; border-radius: 18px; border: 2px solid var(--line); text-decoration: none; color: var(--ink); text-align: center; }
.sajat-who__opt:hover { border-color: var(--pine); background: var(--pine-soft); color: var(--ink); }
.sajat-who__img { position: relative; width: 84px; height: 84px; border-radius: 50%; overflow: hidden; background: var(--paper-2); display: grid; place-items: center; color: var(--pine); margin-bottom: 4px; }
.sajat-who__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* assets/css/mod-shell.css */
/* Alkalmazáskeret belépett tagoknak: ikonos fejléc, lenyíló Üzenetek/Értesítések, globális keresés,
   bal oldali személyes menü, mobil fülsáv „Új” és „Menü” lappal (templates/header.php, includes/modules/appshell.php). */

/* --- Fejléc ---------------------------------------------------------------------------------- */
.topbar.topbar--app .topbar__inner.ahead {
  max-width: 1480px; margin: 0 auto; padding: 6px 16px;
  display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(max-content, 1fr); align-items: center; gap: 12px;
}
.ahead__left { display: flex; align-items: center; gap: 10px; min-width: 0; }
.topbar--app .brand { font-size: 22px; flex: none; }
.topbar--app .brand .logo { width: 34px; height: 34px; }
.topbar--app .brand span { display: none; }
@media (min-width: 1360px) { .topbar--app .brand span { display: inline; } }
.topbar--app .topbar__actions { justify-self: end; margin-left: 0; gap: 8px; flex-wrap: nowrap; }

/* Keresés */
.hsearch { position: relative; flex: 1 1 auto; min-width: 156px; max-width: 300px; margin: 0; }
.hsearch input {
  width: 100%; height: 40px; border-radius: 999px; padding: 0 14px 0 38px; border: 1px solid transparent;
  background: var(--paper-2); color: var(--ink); font: inherit; font-size: 15px;
}
.hsearch input::placeholder { color: var(--muted); }
.hsearch input:focus { outline: none; border-color: var(--pine); box-shadow: 0 0 0 3px var(--pine-soft); background: var(--surface); }
.hsearch input::-webkit-search-cancel-button { cursor: pointer; }
.hsearch__ic { position: absolute; left: 12px; top: 20px; transform: translateY(-50%); color: var(--muted); pointer-events: none; display: grid; }
.hsearch__close { display: none; }
.hsearch__open { display: none; }
.hsearch__pop {
  position: absolute; left: 0; top: calc(100% + 8px); width: min(420px, calc(100vw - 24px)); max-height: min(70vh, 560px); overflow-y: auto;
  z-index: 70; padding: 6px; border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lift);
}
.hsearch__pop[hidden] { display: none; }
.hsearch__gl { margin: 8px 10px 4px; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.hsearch__opt { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: var(--r-md); color: var(--ink); text-decoration: none; }
.hsearch__opt:hover, .hsearch__opt.is-active { background: var(--paper-2); color: var(--ink); }
.hsearch__opt > span:last-child { min-width: 0; display: grid; }
.hsearch__opt strong { font-size: 15px; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hsearch__opt small { color: var(--muted); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hsearch__k {
  width: 36px; height: 36px; border-radius: 50%; flex: none; display: grid; place-items: center;
  background: var(--pine-soft); color: var(--pine); font-family: var(--font-display); font-weight: 800;
}
.hsearch__k { overflow: hidden; }
.hsearch__k img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hsearch__k--pet { border-radius: 12px; background: var(--paper-2); color: var(--ink); }
.hsearch__k--breeder { border-radius: 10px; }
.hsearch__k--show, .hsearch__k--article { border-radius: 10px; background: var(--paper-2); color: var(--muted); }
.hsearch__all { justify-content: center; font-weight: 700; color: var(--pine); border-top: 1px solid var(--line); border-radius: 0 0 var(--r-md) var(--r-md); margin-top: 4px; }
.hsearch__all:hover, .hsearch__all.is-active { color: var(--pine); }

/* Ikonfülek középen */
.htabs { display: flex; align-items: center; gap: 4px; }
.htab {
  position: relative; display: grid; place-items: center; width: clamp(56px, 6.4vw, 104px); height: 48px; border-radius: var(--r-md);
  color: var(--muted); text-decoration: none; cursor: pointer; list-style: none; user-select: none;
}
.htab::-webkit-details-marker { display: none; }
.htab:hover, .explore[open] > .htab { background: var(--paper-2); color: var(--ink); }
.htab.is-active { color: var(--pine); }
.htab.is-active::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -7px; height: 3px; border-radius: 3px; background: var(--pine); }
.htab:focus-visible { outline: 3px solid var(--pine); outline-offset: 2px; }
.topbar--app .explore { position: static; }
.topbar--app .explore__panel { right: auto; left: 50%; transform: translateX(-50%); top: calc(100% + 6px); }

/* Buborék-tipp (a felirat egérrel és billentyűzettel is látszik) */
.topbar--app [data-tip] { position: relative; }
.topbar--app [data-tip]:hover::before, .topbar--app [data-tip]:focus-visible::before {
  content: attr(data-tip); position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(-50%);
  background: var(--ink); color: var(--surface); font-size: 13px; font-weight: 600; line-height: 1; padding: 6px 9px; border-radius: 8px;
  white-space: nowrap; z-index: 80; pointer-events: none;
}
.topbar--app [open] > [data-tip]::before { display: none; }
@media (hover: none) { .topbar--app [data-tip]:hover::before { display: none; } }

/* Ikongombok a jobb oldalon */
.topbar--app .iconbtn { border-color: transparent; background: var(--paper-2); list-style: none; }
.topbar--app .iconbtn::-webkit-details-marker { display: none; }
.topbar--app .iconbtn:hover { background: var(--line); }
.iconbtn--sm { width: 32px; height: 32px; }
.iconbtn__badge[hidden] { display: none !important; }
.hdrop { position: relative; }
.hdrop > summary { list-style: none; cursor: pointer; }
.hdrop > summary::-webkit-details-marker { display: none; }
.hdrop[open] > summary { background: var(--pine-soft); color: var(--pine); }
.hdrop > summary:focus-visible { outline: 3px solid var(--pine); outline-offset: 2px; }
.hdrop__pop {
  position: absolute; right: 0; top: calc(100% + 8px); width: 370px; max-height: min(600px, calc(100dvh - 90px)); overflow-y: auto;
  z-index: 65; padding: 8px; border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lift);
}
.hdrop__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 6px 8px 8px; }
.hdrop__head h2 { margin: 0; font-size: 21px; }
.hdrop__head form { margin: 0; }
.hdrop__req { display: flex; align-items: center; gap: 8px; padding: 9px 10px; margin: 0 0 6px; border-radius: var(--r-md); background: var(--pine-soft); color: var(--ink); font-weight: 700; text-decoration: none; }
.hdrop__req[hidden] { display: none; }
.hdrop__req .navbadge { margin-left: auto; }
.hdrop__list { display: grid; gap: 2px; }
.hdrop__list[aria-busy="true"] { opacity: .6; }
.hdrop__row { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: var(--r-md); color: var(--ink); text-decoration: none; }
.hdrop__row:hover, .hdrop__row:focus-visible { background: var(--paper-2); color: var(--ink); }
.hdrop__row:focus-visible { outline: 3px solid var(--pine); outline-offset: -3px; }
.hdrop__av {
  position: relative; width: 46px; height: 46px; border-radius: 50%; flex: none; display: grid; place-items: center;
  background: var(--paw-cat); color: #17121F; font-family: var(--font-display); font-weight: 800; font-size: 18px;
}
.hdrop__on { position: absolute; right: 0; bottom: 1px; width: 13px; height: 13px; border-radius: 50%; background: var(--good); border: 2px solid var(--surface); }
.hdrop__tx { flex: 1; min-width: 0; display: grid; line-height: 1.3; }
.hdrop__tx strong { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hdrop__tx > span { font-size: 14.5px; }
.hdrop__tx small { color: var(--muted); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hdrop__row.is-unread strong, .hdrop__row.is-unread .hdrop__tx > span { font-weight: 800; }
.hdrop__row.is-unread .hdrop__tx small { color: var(--pine); font-weight: 600; }
.hdrop__meta { display: grid; justify-items: end; gap: 4px; flex: none; }
.hdrop__meta small { color: var(--muted); font-size: 12px; }
.hdrop__ic { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); flex: none; }
.hdrop__ic svg { width: 20px; height: 20px; }
.hdrop__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--pine); flex: none; }
.hdrop__empty { color: var(--muted); padding: 12px 10px; margin: 0; font-size: 14.5px; }
.hdrop__all { display: block; text-align: center; padding: 10px; margin-top: 6px; border-top: 1px solid var(--line); font-weight: 700; color: var(--pine); text-decoration: none; }
.hdrop__all:hover { text-decoration: underline; }

/* Fiók menü */
.topbar--app .userchip { padding: 3px; gap: 2px; }
.topbar--app .usermenu__caret { display: none; }
.topbar--app .userchip__avatar { width: 40px; height: 40px; }
.usermenu__who .userchip__pro { justify-self: start; margin-top: 4px; }
.usermenu__theme { display: none; }
.usermenu__theme svg { color: var(--pine); }

/* --- Keret: bal menü + tartalom --------------------------------------------------------------- */
.appshell { display: grid; grid-template-columns: 264px minmax(0, 1fr); width: 100%; max-width: 1480px; min-width: 0; margin: 0 auto; align-items: start; }
.appshell--off { display: block; max-width: none; }
.appshell__main { min-width: 0; }
.appshell__side {
  /* max-height (nem height): így csak akkora, mint a tartalma, és nem tolódik fel, amikor az oldal alja (lábléc) közelébe érünk, vagy egy lenyíló rész megnyílik. */
  position: sticky; top: 61px; max-height: calc(100dvh - 90px); overflow-y: auto; overscroll-behavior: contain;
  padding: 14px 8px 24px 12px; scrollbar-width: thin;
}
.appshell__side--sheet { display: none; }
.has-appshell .appshell__main > .flashes { margin-top: 12px; }
.has-appshell .appshell__main > .container, .has-appshell .appshell__main > main.container { padding-left: 20px; padding-right: 20px; }

.appside { display: flex; flex-direction: column; gap: 2px; }
.appside__sheethead { display: none; }
.appside__me { display: flex; align-items: center; gap: 10px; padding: 8px 10px; margin-bottom: 4px; border-radius: var(--r-md); color: var(--ink); text-decoration: none; font-weight: 700; min-width: 0; }
.appside__me .appside__tx { display: grid; line-height: 1.2; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.appside__me small { color: var(--muted); font-weight: 500; font-size: 13px; }
.appside__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.appside__link {
  display: flex; align-items: center; gap: 12px; width: 100%; min-height: 44px; padding: 5px 10px; border: 0; background: none; border-radius: var(--r-md);
  color: var(--ink); font: inherit; font-weight: 600; font-size: 15px; text-decoration: none; cursor: pointer; text-align: left;
}
.appside__link:hover, .appside__me:hover { background: var(--paper-2); color: var(--ink); }
.appside__link.is-active, .appside__me.is-active { background: var(--pine-soft); color: var(--ink); }
.appside__link:focus-visible, .appside__me:focus-visible, .appside__petlink:focus-visible, .appside__sub a:focus-visible { outline: 3px solid var(--pine); outline-offset: -2px; }
.appside__ic { width: 34px; height: 34px; border-radius: 11px; display: grid; place-items: center; color: var(--pine); background: var(--paper-2); flex: none; }
.appside__link.is-active .appside__ic { background: var(--surface); }
.appside__pets > ul { list-style: none; margin: 0 0 4px 26px; padding: 2px 0 2px 10px; border-left: 2px solid var(--line); display: grid; gap: 1px; }
.appside__petlink { display: flex; align-items: center; gap: 8px; padding: 5px 8px; border-radius: var(--r-sm); color: var(--ink); text-decoration: none; font-size: 14.5px; font-weight: 600; min-height: 36px; }
.appside__petlink:hover, .appside__petlink.is-active { background: var(--paper-2); color: var(--ink); }
.appside__pet { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; flex: none; background: var(--paper-2); }
.appside__pet.is-paw { padding: 4px; object-fit: contain; }
.appside__sub { list-style: none; margin: 0 0 4px 34px; padding: 0; display: grid; }
.appside__sub a { display: block; padding: 5px 8px; font-size: 14px; color: var(--muted); text-decoration: none; border-radius: 8px; }
.appside__sub a:hover, .appside__sub a.is-active { color: var(--ink); background: var(--paper-2); }
.appside__mobile { display: none; }
.appside__label { margin: 14px 10px 4px; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.appside__foot { margin: 16px 10px 0; font-size: 13px; color: var(--muted); line-height: 1.7; }
.appside__foot a { color: var(--muted); }
.appside__foot a:hover, .appside__foot a[aria-current="page"] { color: var(--ink); }
.appside-backdrop { display: none; }

/* A közösségi oldalak belső kerete: tartalom + jobb sáv (a bal menüt a globális keret adja). */
.sshell.sshell--in { max-width: none; margin: 0; padding: 16px 16px 40px 12px; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; }
.sshell--in .sshell__right { top: 72px; }

/* Széles képernyőn kicsit keskenyebb bal menü */
@media (max-width: 1279px) {
  .appshell { grid-template-columns: 240px minmax(0, 1fr); }
  .hsearch { max-width: 240px; }
  .htab { width: 50px; }
}
@media (max-width: 1199px) {
  .sshell.sshell--in { grid-template-columns: minmax(0, 1fr); }
  .sshell--in .sshell__right { display: none; }
}

/* Táblagép: a bal menü ikonsáv lesz, a kereső ikonra nyílik. */
@media (max-width: 1099px) {
  .appshell { grid-template-columns: 76px minmax(0, 1fr); }
  .appshell__side { padding: 12px 8px 20px; }
  .appside__tx, .appside__me .appside__tx, .appside__pets, .appside__foot { display: none; }
  .appside__me, .appside__link { justify-content: center; padding-left: 0; padding-right: 0; }
  .appside__me .savatar, .appside__me .userchip__avatar { margin: 0; }
  .has-appshell .appshell__main > .container { padding-left: 14px; padding-right: 14px; }
}
@media (max-width: 1023px) {
  .hsearch { display: none; }
  .hsearch__open { display: inline-grid; }
  .htab { width: 52px; }
  body.hsearch-open .hsearch {
    display: block; position: absolute; left: 8px; right: 8px; top: 6px; max-width: none; z-index: 75;
    padding-right: 48px;
  }
  body.hsearch-open .hsearch__close { display: inline-grid; position: absolute; right: 0; top: 0; }
  body.hsearch-open .hsearch__pop { width: 100%; }
}

/* --- Mobil -------------------------------------------------------------------------------- */
@media (max-width: 760px) {
  .topbar.topbar--app .topbar__inner.ahead { display: flex; padding: 6px 10px; gap: 6px; }
  .ahead__left { flex: none; }
  .htabs { position: static; flex: 0 0 0; width: 0; gap: 0; }
  .topbar--app .topbar__actions { margin-left: auto; }
  .htabs > a.htab { display: none; }
  .topbar--app .explore__btn { display: none; }
  .topbar--app .explore__panel { left: 8px; right: 8px; transform: none; width: auto; }
  .ahead__theme { display: none; }
  .usermenu__theme { display: block; }
  .topbar--app .topbar__actions { gap: 6px; }
  .topbar--app .iconbtn { width: 38px; height: 38px; }
  .topbar--app .userchip__avatar { width: 36px; height: 36px; }
  .hdrop { position: static; }
  .hdrop__pop { position: absolute; left: 8px; right: 8px; width: auto; top: calc(100% + 4px); max-height: calc(100dvh - 150px); }

  .appshell { display: block; }
  .appshell__side, .appshell__side--sheet {
    display: block; position: fixed; left: 0; top: 0; bottom: 0; height: 100dvh; width: min(86vw, 340px); z-index: 90;
    padding: 0 10px calc(20px + env(safe-area-inset-bottom, 0px)); background: var(--surface); border-right: 1px solid var(--line);
    box-shadow: var(--shadow-lift); transform: translateX(-105%); visibility: hidden; transition: transform .22s ease, visibility 0s linear .22s;
  }
  .appshell__side:has(:target), body.appside-open .appshell__side { transform: none; visibility: visible; transition: transform .22s ease; }
  body.appside-open { overflow: hidden; }
  body.appside-open .appside-backdrop { display: block; position: fixed; inset: 0; z-index: 85; background: rgba(12, 9, 18, .45); }
  .appside__sheethead { display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 1; padding: 10px 4px 8px 10px; background: var(--surface); }
  .appside__sheethead strong { font-family: var(--font-display); font-size: 22px; }
  .appside__mobile { display: block; }
  /* A lapon a teljes menü látszik (a táblagépes ikonsáv szabályai itt nem érvényesek). */
  .appside__tx { display: inline; }
  .appside__me .appside__tx { display: grid; }
  .appside__pets, .appside__foot { display: block; }
  .appside__me, .appside__link { justify-content: flex-start; padding-left: 10px; padding-right: 10px; }
  .has-appshell .appshell__main > .container { padding-left: 16px; padding-right: 16px; }
  .sshell.sshell--in { padding: 12px 12px 32px; }

  /* Alsó fülsáv: Hírfolyam, Kedvenceim, Új, Közösség, Menü */
  .tabbar--app .tabcreate { display: flex; min-width: 0; }
  .tabbar--app .tabcreate > summary { list-style: none; flex: 1; }
  .tabbar--app .tabcreate > summary::-webkit-details-marker { display: none; }
  .tabbar__plus .tabbar__icon { background: var(--pine); color: var(--on-pine, #fff); }
  .tabcreate[open] .tabbar__plus .tabbar__icon { transform: rotate(45deg); }
  .tabcreate__sheet {
    position: absolute; left: 8px; right: 8px; bottom: calc(100% + 8px); z-index: 40; display: grid; gap: 2px; padding: 8px;
    border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lift);
  }
  .tabcreate__sheet a { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 8px 12px; border-radius: var(--r-md); color: var(--ink); text-decoration: none; font-weight: 700; }
  .tabcreate__sheet a:hover, .tabcreate__sheet a:focus-visible { background: var(--paper-2); }
  .tabcreate__sheet svg { color: var(--pine); flex: none; }
}
@media (max-width: 380px) {
  .topbar--app .brand .logo { width: 30px; height: 30px; }
  .topbar--app .iconbtn { width: 36px; height: 36px; }
  .topbar--app .topbar__actions { gap: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  .appshell__side, .appshell__side--sheet { transition: none !important; }
}
@media print {
  .appshell { display: block; }
  .appshell__side, .tabbar, .hdrop, .hsearch, .htabs, .appside-backdrop { display: none !important; }
}

/* --- Keresés oldal ------------------------------------------------------------------------- */
.search-page__form { display: flex; gap: 8px; padding: 12px; margin-bottom: 16px; }
.search-page__form input { flex: 1; min-width: 0; height: 44px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); padding: 0 16px; font: inherit; }
.search-group { padding: 14px 16px; margin-bottom: 14px; }
.search-group h2 { margin: 0 0 8px; font-size: 18px; }
.search-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.search-list a { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: var(--r-md); color: var(--ink); text-decoration: none; }
.search-list a:hover { background: var(--paper-2); }
.search-list a > span:last-child { display: grid; min-width: 0; }
.search-list small { color: var(--muted); }

/* --- Adatvédelmi beállítások ---------------------------------------------------------------- */
.privpage { max-width: 820px; }
.privtoc { display: flex; flex-wrap: wrap; gap: 6px 14px; padding: 12px 16px; margin-bottom: 16px; font-size: 14.5px; }
.privtoc a { color: var(--muted); text-decoration: none; font-weight: 600; }
.privtoc a:hover { color: var(--ink); text-decoration: underline; }
.privform { display: grid; gap: 16px; margin-bottom: 16px; }
.privsec { padding: 18px 20px; scroll-margin-top: 80px; }
.privpage > .privsec { margin-bottom: 16px; }
.privsec h2 { margin: 0 0 6px; font-size: 20px; }
.privsec__lead { margin: 0 0 12px; font-size: 14.5px; }
.privopts { border: 0; margin: 0; padding: 0; display: grid; gap: 8px; }
.privopt { position: relative; display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: var(--r-md); background: var(--surface); cursor: pointer; }
.privopt:hover { border-color: var(--muted); }
.privopt input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--pine); flex: none; }
.privopt span { display: grid; gap: 2px; }
.privopt strong { font-size: 15.5px; }
.privopt small { color: var(--muted); font-size: 13.5px; line-height: 1.4; }
.privopt:has(input:checked) { border-color: var(--pine); background: var(--pine-soft); }
.privopt:has(input:focus-visible) { outline: 3px solid var(--pine); outline-offset: 2px; }
.privcheck { margin: 4px 0 10px; }
.privnote { display: flex; gap: 10px; align-items: flex-start; margin: 12px 0 0; font-size: 14px; }
.privnote svg { flex: none; color: var(--pine); margin-top: 1px; }
.privsave { margin-top: 12px; display: flex; justify-content: flex-end; }
.privblocks { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.privblocks li { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: var(--r-md); background: var(--paper-2); }
.privblocks li > span:not(.savatar) { flex: 1; min-width: 0; display: grid; }
.privblocks small { color: var(--muted); }
.privblocks form { margin: 0; }
.sprofile__more { position: relative; }
.sprofile__more .smenu__pop { right: 0; left: auto; }
.smenu__item { display: block; width: 100%; text-align: left; padding: 8px 12px; border: 0; background: none; font: inherit; color: var(--bad); cursor: pointer; border-radius: 8px; }
.smenu__item:hover { background: var(--paper-2); }
.sprofile-guest { max-width: 760px; padding-top: 16px; padding-bottom: 40px; }

/* A keskeny középső oszlopban a rácselemek ne nyúljanak a tartalmuk minimális szélessége fölé. */
.appshell__main .layout-2 > *, .appshell__main .grid-2 > *, .appshell__main .stack > * { min-width: 0; }
@media (max-width: 400px) {
  .spost__actions .sact { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: 12.5px; padding: 6px 2px; gap: 3px; }
  .spost__actions > .sact:last-child { flex: 1; }
}

/* Fiók chip a fejlécben: avatar, név és Prémium egy sorban (széles képernyőn) */
.topbar--app .userchip__name, .topbar--app .userchip__pro--head { display: none; }
@media (min-width: 900px) {
  .topbar--app .userchip { gap: 10px; padding: 3px 12px 3px 3px; }
  .topbar--app .userchip__name { display: inline-block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 150px; font-size: 16px; font-weight: 700; }
  .topbar--app .userchip__pro--head { display: inline-flex; align-items: center; white-space: nowrap; font-size: 13px; padding: 4px 12px; }
  .topbar--app .usermenu__caret { display: inline; color: var(--muted); font-size: 11px; }
}
@media (min-width: 1280px) { .topbar--app .userchip__name { max-width: 190px; } }
@media (min-width: 900px) { .topbar--app .userchip__name--long { white-space: normal; text-overflow: clip; line-height: 1.15; max-width: 150px; display: -webkit-inline-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: 15px; } }

/* --- Prémium kiemelése: arany gomb a fejlécben és doboz a bal menü alján --- */
.hprem {
  display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 14px 0 11px; border-radius: 999px;
  background: linear-gradient(135deg, #FFE7A8, #F4BF55); border: 1px solid #E2A93A; color: #5A3606;
  font-weight: 800; font-size: 14.5px; white-space: nowrap; box-shadow: 0 4px 12px rgba(201, 138, 22, .25);
  transition: transform .15s ease, box-shadow .15s ease;
}
.hprem svg { flex: none; fill: currentColor; }
.hprem:hover { color: #5A3606; transform: translateY(-1px); box-shadow: 0 6px 16px rgba(201, 138, 22, .35); }
.hprem:focus-visible { outline: 3px solid var(--pine); outline-offset: 3px; }
.hprem.is-member { background: linear-gradient(135deg, #FFF6E0, #FCE6B5); box-shadow: none; }
:root[data-theme="dark"] .hprem.is-member { background: #33270f; border-color: #6b5222; color: #F6CE8C; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .hprem.is-member { background: #33270f; border-color: #6b5222; color: #F6CE8C; } }
@media (max-width: 1150px) { .hprem { width: 40px; padding: 0; justify-content: center; } .hprem__tx { display: none; } }
@media (max-width: 760px) { .hprem { width: 38px; height: 38px; } }

.appside__premwrap { display: grid; gap: 8px; margin: 10px 0 12px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.appside__prem {
  display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: var(--r-md); min-width: 0;
  background: linear-gradient(135deg, #FFF3D2, #FCE2A6); border: 1px solid #EBC57A; color: #4A2D05;
}
.appside__prem:hover { color: #4A2D05; filter: brightness(1.03); box-shadow: 0 4px 14px rgba(201, 138, 22, .2); }
.appside__prem:focus-visible { outline: 3px solid var(--pine); outline-offset: 2px; }
.appside__prem .appside__tx { display: grid; line-height: 1.25; min-width: 0; }
.appside__prem strong { font-size: 15px; }
.appside__prem small { font-size: 12.5px; font-weight: 600; opacity: .8; }
.appside__premic { width: 34px; height: 34px; border-radius: 11px; display: grid; place-items: center; flex: none; background: linear-gradient(135deg, #F7C75C, #E09A1C); color: #fff; }
.appside__prem:not(.appside__prem--pro) .appside__premic svg { fill: currentColor; }
.appside__prem--pro { background: var(--surface); border-color: color-mix(in srgb, #5B2FC9 35%, var(--line)); color: var(--ink); }
.appside__prem--pro:hover { color: var(--ink); }
.appside__prem--pro .appside__premic { background: linear-gradient(135deg, #8B6BE0, #5B2FC9); }
:root[data-theme="dark"] .appside__prem:not(.appside__prem--pro) { background: linear-gradient(135deg, #3A2C10, #2B210D); border-color: #6b5222; color: #F6CE8C; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .appside__prem:not(.appside__prem--pro) { background: linear-gradient(135deg, #3A2C10, #2B210D); border-color: #6b5222; color: #F6CE8C; } }
@media (max-width: 1099px) and (min-width: 761px) {
  .appside__prem { justify-content: center; padding: 8px 0; }
  .appside__prem .appside__tx { display: none; }
}
/* A lábléc belépve a tartalom oszlopában van (templates/footer.php). */
.footer--inshell { margin-top: 32px; }
.footer--inshell .footer__inner { max-width: none; }
/* A letiltottak listájában a profilkép nem nyúlhat meg (a név melletti span kapja a maradék helyet). */
.privblocks li > .savatar { flex: none; }
.privblocks li > span.savatar { flex: 0 0 auto; }

/* Újdonság-pötty a fejléc ikonján (Bundee zöld) */
.htab__new { position: absolute; top: 9px; left: calc(50% + 7px); width: 9px; height: 9px; border-radius: 50%; background: #6FC7A6; box-shadow: 0 0 0 2px var(--surface); }
.htab__new[hidden] { display: none; }
@media (prefers-reduced-motion: no-preference) { .htab__new { animation: htab-new 2.4s ease-in-out 3; } }
@keyframes htab-new { 50% { transform: scale(1.35); } }
.hdrop__av.has-photo { background: var(--paper-2); }
.hdrop__av img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }

/* Bundee pontok a fejlécben: mindig látszik az egyenleg */
.hpoints {
  display: inline-flex; align-items: center; gap: 5px; height: 40px; padding: 0 13px 0 10px; border-radius: 999px;
  background: var(--pine-soft); border: 1px solid color-mix(in srgb, var(--pine) 30%, transparent); color: var(--pine);
  font-weight: 800; font-size: 14.5px; white-space: nowrap; text-decoration: none; transition: transform .15s ease;
}
.hpoints svg { flex: none; }
.hpoints__u { font-weight: 600; font-size: 13px; opacity: .8; }
.hpoints:hover { color: var(--pine); transform: translateY(-1px); }
.hpoints.is-active { background: var(--pine); color: var(--on-pine); }
.hpoints:focus-visible { outline: 3px solid var(--pine); outline-offset: 3px; }
@media (max-width: 1150px) { .hpoints__u { display: none; } }
@media (max-width: 760px) { .hpoints { height: 38px; padding: 0 10px 0 8px; font-size: 13.5px; gap: 3px; } .hpoints svg { width: 16px; height: 16px; } }
@media (max-width: 370px) { .hpoints svg { display: none; } }
/* A bal menü görgetősávja külön sávban, ne takarja ki az aktív sort. */
.appshell__side { scrollbar-gutter: stable; }

/* Prémium-ajánló: alul felcsúszó kártya, nem modális, egy koppintással eltűnik. */
.pnudge {
  position: fixed; left: 50%; bottom: 22px; z-index: 45; width: min(420px, calc(100vw - 24px)); margin-left: max(-210px, calc(-50vw + 12px));
  display: flex; gap: 12px; align-items: flex-start; padding: 14px 14px 14px 16px; border-radius: var(--r-lg);
  background: var(--surface); border: 1px solid #EBC57A; box-shadow: var(--shadow-lift); animation: pnudge-in .35s ease-out both;
}
.pnudge__ic { flex: none; width: 36px; height: 36px; border-radius: 11px; display: grid; place-items: center; background: linear-gradient(135deg, #F7C75C, #E09A1C); color: #fff; }
.pnudge__ic svg { fill: currentColor; }
.pnudge__tx { flex: 1; min-width: 0; }
.pnudge__tx strong { display: block; margin-bottom: 2px; }
.pnudge__tx p { margin: 0 0 10px; font-size: .92rem; color: var(--muted); }
.pnudge form { margin: 0; }
.pnudge__x { border: 0; background: none; color: var(--muted); padding: 4px; border-radius: 8px; cursor: pointer; }
.pnudge__x:hover { color: var(--ink); background: var(--pine-soft); }
.pnudge.is-gone { display: none; }
@keyframes pnudge-in { from { transform: translateY(16px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .pnudge { animation: none; } }
@media (max-width: 760px) { .pnudge { left: 12px; right: 12px; width: auto; margin-left: 0; bottom: calc(78px + env(safe-area-inset-bottom, 0px)); } }

/* Prémium-sáv az Áttekintésen */
.pbanner { position: relative; display: grid; grid-template-columns: 1fr auto; grid-template-areas: "main cta" "perks cta"; gap: 14px 28px; align-items: center;
  margin: 0 0 20px; padding: 22px 26px; border-radius: 20px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--pine) 11%, var(--surface)), color-mix(in srgb, var(--pine) 6%, var(--surface)));
  border: 1px solid color-mix(in srgb, var(--pine) 16%, transparent); }
.pbanner.is-gone { display: none; }
.pbanner__main { grid-area: main; display: flex; gap: 16px; align-items: center; padding-right: 30px; }
.pbanner__medal { flex: none; display: grid; filter: drop-shadow(0 4px 8px rgba(91, 63, 143, .22)); }
.pbanner h2 { margin: 0 0 4px; font-size: clamp(1.1rem, 2.2vw, 1.35rem); line-height: 1.25; color: var(--pine); }
.pbanner__price { margin: 0; color: var(--muted); }
.pbanner__price s { opacity: .8; }
.pbanner__price mark { background: #FFE58A; color: #3a2a00; font-weight: 800; padding: 1px 6px; border-radius: 6px; }
.pbanner__left { display: inline-block; margin-left: 4px; padding: 2px 8px; border-radius: 999px; font-size: .8rem; font-weight: 700; background: color-mix(in srgb, var(--pine) 14%, transparent); color: var(--pine); }
.pbanner__perks { grid-area: perks; list-style: none; margin: 0; padding: 0 0 0 68px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 22px; }
.pbanner__perks li { display: flex; gap: 8px; align-items: flex-start; font-weight: 600; font-size: .95rem; }
.pbanner__perks svg { flex: none; margin-top: 3px; color: var(--pine); stroke-width: 2.4; }
.pbanner__cta { grid-area: cta; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.pbanner__cta form { margin: 0; }
.pbanner__btn { background: var(--surface); color: var(--ink); border: 0; font-weight: 700; padding: 12px 22px; border-radius: 999px; box-shadow: 0 4px 14px rgba(40, 25, 80, .12); white-space: nowrap; }
.pbanner__btn:hover { box-shadow: 0 6px 18px rgba(40, 25, 80, .18); }
.pbanner__more { font-size: .88rem; color: var(--pine); }
.pbanner__x { position: absolute; top: 12px; right: 12px; margin: 0; }
.pbanner__x button { display: grid; place-items: center; width: 34px; height: 34px; border: 0; border-radius: 50%; background: transparent; color: var(--muted); cursor: pointer; }
.pbanner__x button:hover { background: color-mix(in srgb, var(--pine) 10%, transparent); color: var(--ink); }
@media (max-width: 760px) {
  .pbanner { grid-template-columns: 1fr; grid-template-areas: "main" "perks" "cta"; padding: 18px; }
  .pbanner__main { align-items: flex-start; }
  .pbanner__medal svg { width: 42px; height: 42px; }
  .pbanner__perks { padding-left: 0; grid-template-columns: 1fr; }
  .pbanner__cta { align-items: stretch; } .pbanner__btn { width: 100%; }
}

/* assets/css/mod-shows.css */
/* Kiállítás-naptár (kiallitasok.php) és kiállítás-adatlap (kiallitas.php) */
.page-shows .sr-only, .page-show .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.page-show .linkbtn { border: 0; background: none; padding: 0; font: inherit; font-size: 13px; font-weight: 600; color: var(--muted); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.page-show .linkbtn:hover { color: var(--ink); }

/* Fejléc + következő kiállítás */
.shows-head { align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.shows-head .muted { max-width: 40em; }
.shows-next { display: grid; gap: 2px; min-width: 240px; max-width: 340px; padding: 14px 18px; border-radius: 20px; text-decoration: none; color: var(--ink);
  background: linear-gradient(135deg, var(--pine-soft), var(--surface)); border: 1px solid var(--line); }
.shows-next:hover { border-color: var(--pine); color: var(--ink); }
.shows-next__label { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--pine); }
.shows-next strong { font-size: 15px; line-height: 1.3; }
.shows-next__count { font-family: var(--font-display); font-size: 22px; font-weight: 800; letter-spacing: -0.02em; }

/* Szűrők */
.shows-filter { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 16px; margin: 24px 0 8px; padding: 14px 16px; border-radius: 20px; background: var(--surface); border: 1px solid var(--line); }
.shows-seg { align-self: flex-end; }
.shows-seg label { position: relative; padding: 9px 18px; border-radius: 999px; font-weight: 600; color: var(--muted); cursor: pointer; }
.shows-seg label:hover { color: var(--ink); }
.shows-seg label.is-active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(34, 29, 46, .12); }
.shows-seg input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.shows-seg label:has(input:focus-visible) { outline: 2px solid var(--pine); outline-offset: 2px; }
.shows-field { min-width: 180px; flex: 0 1 220px; }
.shows-field select { min-height: 44px; }
.shows-mine { align-self: center; margin-left: auto; }

/* Hónapok és kártyák */
.shows-month { margin-top: 28px; }
.shows-month__title { font-size: 22px; letter-spacing: -0.02em; margin: 0 0 12px; display: flex; align-items: baseline; gap: 10px; }
.shows-month__title .muted { font-size: 14px; font-weight: 600; font-family: var(--font-body); letter-spacing: 0; }
.shows-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.show-card { display: grid; grid-template-columns: 72px 1fr auto; gap: 16px; align-items: center; padding: 14px 18px 14px 14px; border-radius: 20px; text-decoration: none; color: var(--ink);
  background: var(--surface); border: 1px solid var(--line); transition: border-color .15s, transform .15s, box-shadow .15s; }
.show-card:hover { color: var(--ink); border-color: var(--pine); transform: translateY(-2px); box-shadow: 0 14px 30px -20px rgba(85, 64, 126, .45); }
.show-card__date { display: grid; place-items: center; align-content: center; height: 72px; border-radius: 16px; background: var(--pine-soft); color: var(--pine); text-align: center; line-height: 1.05; }
.show-card--macska .show-card__date { background: var(--butter-soft); color: #23705f; }
.show-card__date strong { font-family: var(--font-display); font-size: 22px; letter-spacing: -0.03em; }
.show-card__date span { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.show-card__body { display: grid; gap: 3px; min-width: 0; }
.show-card__title { font-size: 17px; line-height: 1.3; }
.show-card__body .muted { font-size: 14px; }
.show-card__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.show-card__side { display: grid; justify-items: end; gap: 4px; text-align: right; }
.show-card__count { font-weight: 800; font-size: 15px; white-space: nowrap; }
.show-card__people { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; white-space: nowrap; }
.show-tag { display: inline-flex; align-items: center; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; background: var(--paper-2); color: var(--muted); }
.show-tag--kutya { background: var(--pine-soft); color: var(--pine); }
.show-tag--macska { background: var(--butter-soft); color: #23705f; }
.show-tag--mine { background: #FBF0DC; color: #9a6618; }
.show-tag--go { background: #E1F3EE; color: #23705f; }
.shows-source { margin: 32px 0 56px; font-size: 14px; }

/* Adatlap: fejléc */
.show-hero { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: end; margin: 24px 0 20px; padding: 28px; border-radius: 28px; border: 1px solid var(--line);
  background: linear-gradient(135deg, var(--pine-soft) 0%, var(--surface) 70%); }
.show-hero--macska { background: linear-gradient(135deg, var(--butter-soft) 0%, var(--surface) 70%); }
.show-hero h1 { font-size: clamp(28px, 4vw, 44px); letter-spacing: -0.03em; margin: 10px 0 8px; }
.show-hero__meta { font-size: 17px; font-weight: 600; color: var(--muted); margin: 0 0 16px; }
.show-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.show-hero__actions .btn { display: inline-flex; align-items: center; gap: 8px; }
.show-hero__count { display: grid; justify-items: center; text-align: center; gap: 2px; padding: 18px 22px; border-radius: 22px; background: var(--surface); border: 1px solid var(--line); min-width: 190px; }
.show-hero__count strong { font-family: var(--font-display); font-size: 44px; line-height: 1; letter-spacing: -0.04em; color: var(--pine); }
.show-hero__count span { font-weight: 600; }
.show-hero__count em { margin-top: 8px; font-style: normal; font-size: 13px; color: var(--muted); max-width: 16em; }

.show-layout { align-items: start; }
.show-col { display: grid; gap: 16px; min-width: 0; }
.show-col > .card + .card { margin-top: 0; }
.show-subhead { font-size: 15px; margin: 18px 0 10px; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }

/* Résztvevők */
.show-avatar { width: 44px; height: 44px; border-radius: 50%; flex: none; display: grid; place-items: center; overflow: hidden; background: var(--pine-soft); color: var(--pine); font-weight: 800; }
.show-avatar img { width: 100%; height: 100%; object-fit: cover; }
.show-avatar--sm { width: 34px; height: 34px; font-size: 14px; }
.show-people { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.show-people li { display: flex; align-items: center; gap: 12px; padding: 8px 0; }
.show-people li + li { border-top: 1px solid var(--line); }
.show-people__txt { display: grid; min-width: 0; flex: 1; }
.show-people__txt .muted { font-size: 14px; }
.show-result { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 999px; background: #FBF0DC; color: #9a6618; font-weight: 700; font-size: 13px; white-space: nowrap; }
.show-faces { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.show-faces li { display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px 4px 4px; border-radius: 999px; background: var(--paper-2); font-weight: 600; font-size: 14px; }
.show-faces small { font-weight: 500; color: var(--muted); }
.show-visibility { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }

/* Fal */
.show-wall-form { display: grid; gap: 8px; margin-bottom: 8px; }
.show-wall-form .btn { justify-self: end; }
.show-wall { list-style: none; margin: 8px 0 0; padding: 0; display: grid; }
.show-wall li { display: flex; gap: 12px; padding: 14px 0; }
.show-wall li + li { border-top: 1px solid var(--line); }
.show-wall li.is-hidden { opacity: .6; }
.show-wall__body { min-width: 0; flex: 1; }
.show-wall__body p { margin: 0; overflow-wrap: anywhere; }
.show-wall__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin-bottom: 4px !important; }
.show-wall__meta .muted { font-size: 13px; }
.show-wall__actions { display: flex; gap: 14px; margin-top: 6px; }

/* Oldalsáv */
.show-going { display: flex; align-items: center; gap: 8px; font-weight: 700; color: #23705f; margin: 0 0 10px; }
.show-mine { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 10px; }
.show-mine li { padding: 12px; border-radius: 16px; background: var(--paper-2); }
.show-mine__head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.show-mine__head div { display: grid; }
.show-mine__head .muted { font-size: 14px; }
.show-result-form { display: grid; gap: 8px; margin-top: 10px; }
.show-result-form .btn { justify-self: start; }

:root[data-theme="dark"] .show-tag--mine, :root[data-theme="dark"] .show-result { background: #3a2e18; color: #E8B65C; }
:root[data-theme="dark"] .show-tag--go, :root[data-theme="dark"] .show-tag--macska, :root[data-theme="dark"] .show-card--macska .show-card__date { background: #17302b; color: #6CCBB4; }
:root[data-theme="dark"] .show-going { color: #6CCBB4; }
:root[data-theme="dark"] .show-hero--macska { background: linear-gradient(135deg, #17302b 0%, var(--surface) 70%); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .show-tag--mine, :root:not([data-theme="light"]) .show-result { background: #3a2e18; color: #E8B65C; }
  :root:not([data-theme="light"]) .show-tag--go, :root:not([data-theme="light"]) .show-tag--macska, :root:not([data-theme="light"]) .show-card--macska .show-card__date { background: #17302b; color: #6CCBB4; }
  :root:not([data-theme="light"]) .show-going { color: #6CCBB4; }
  :root:not([data-theme="light"]) .show-hero--macska { background: linear-gradient(135deg, #17302b 0%, var(--surface) 70%); }
}

@media (max-width: 760px) {
  .show-hero { grid-template-columns: 1fr; padding: 20px; }
  .show-hero__count { justify-self: stretch; grid-template-columns: auto 1fr; justify-items: start; text-align: left; column-gap: 12px; align-items: baseline; min-width: 0; }
  .show-hero__count strong { font-size: 34px; }
  .show-hero__count em { grid-column: 1 / -1; margin-top: 4px; max-width: none; }
  .show-card { grid-template-columns: 60px 1fr; gap: 12px; padding: 12px; }
  .show-card__date { height: 60px; }
  .show-card__date strong { font-size: 18px; }
  .show-card__side { grid-column: 2; justify-items: start; text-align: left; display: flex; flex-wrap: wrap; gap: 4px 12px; }
  .shows-field { flex: 1 1 100%; min-width: 0; }
  .shows-seg { align-self: flex-start; }
  .shows-mine { margin-left: 0; }
  .shows-next { max-width: none; width: 100%; }
}
/* Nevezési határidő, kezdő útmutató doboz */
.show-tag--deadline { background: #FBE5E2; color: #9b2f25; }
:root[data-theme="dark"] .show-tag--deadline { background: #3d1e1a; color: #F2A7A0; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .show-tag--deadline { background: #3d1e1a; color: #F2A7A0; } }
.show-hero__deadline { margin: 4px 0 12px; font-size: 15px; }
.shows-tips { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 24px 0 8px; padding: 16px 20px; }
.shows-tips > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

/* Régió és kategória */
.shows-seg__n { font-size: 12px; font-weight: 600; opacity: .7; margin-left: 2px; }
.show-tag--type { background: var(--paper-2); color: var(--ink); }
.show-tag--kiemelt { background: #FBF0DC; color: #8a5a10; }
:root[data-theme="dark"] .show-tag--type { background: rgba(255,255,255,.08); color: var(--ink); }
:root[data-theme="dark"] .show-tag--kiemelt { background: #3a2e18; color: #E8B65C; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .show-tag--type { background: rgba(255,255,255,.08); color: var(--ink); }
  :root:not([data-theme="light"]) .show-tag--kiemelt { background: #3a2e18; color: #E8B65C; }
}
.shows-region label { white-space: nowrap; }
@media (max-width: 480px) { .shows-region { width: 100%; } .shows-region label { flex: 1; justify-content: center; padding-inline: 8px; font-size: 15px; } }

/* Főoldal: közelgő kiállítások */
.home-shows { padding-top: 16px; padding-bottom: 40px; }
.home-shows__lead { margin: 6px 0 0; }
.home-shows__btns { display: flex; gap: 8px; flex-wrap: wrap; }
.home-shows__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.home-show {
  display: flex; gap: 14px; align-items: flex-start; height: 100%; padding: 14px 16px; border-radius: var(--r-lg, 18px);
  background: var(--surface); border: 1px solid var(--line); color: var(--ink); text-decoration: none;
  transition: border-color .15s, transform .15s;
}
.home-show:hover { border-color: var(--pine); transform: translateY(-1px); }
.home-show__date { flex: none; }
.home-show__body { display: grid; gap: 4px; min-width: 0; }
.home-show__body strong { font-size: 16px; line-height: 1.3; }
@media (max-width: 720px) { .home-shows__grid { grid-template-columns: 1fr; } }
.home-show__date { width: 72px; }

/* Automatikus naptár (feliratkozás). */
.calsync { margin: 12px 0; padding: 12px; border-radius: 14px; background: var(--pine-soft); }
.calsync__title { display: flex; align-items: center; gap: 6px; margin: 0 0 4px; }
.calsync__txt { margin: 0 0 10px; font-size: 14px; }
.calsync__btns { display: flex; flex-wrap: wrap; gap: 8px; }
.calsync__more { margin-top: 10px; font-size: 14px; }
.calsync__more summary { cursor: pointer; color: var(--pine); font-weight: 600; }
.calsync__url { width: 100%; max-width: 100%; font-size: 13px; margin: 6px 0; }
.calsync-card { margin-bottom: 20px; padding: 14px 16px; }
.calsync-card > summary { cursor: pointer; display: flex; align-items: center; gap: 8px; list-style: none; }
.calsync-card > summary::-webkit-details-marker { display: none; }

/* assets/css/mod-site-custom.css */
/* Saját oldal szerkesztő: személyre szabás (fülek, választókártyák, sorrend, linkek, előnézet). */
.sc-form { display: grid; gap: 18px; min-width: 0; }
.sc-form > *, .sc-panel > *, .sc-head > * { min-width: 0; }
.sc-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.sc-head h2 { margin: 0; }
.sc-tabs { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.sc-tabs::-webkit-scrollbar { display: none; }
.sc-tabs[hidden] { display: none !important; }
.sc-tabs button { border: 0; background: none; font: inherit; cursor: pointer; white-space: nowrap; }
.sc-tabs button:focus-visible { outline: 3px solid var(--pine); outline-offset: 1px; }
.sc-body { display: grid; gap: 0; }
.sc-panel { display: grid; gap: 18px; padding-top: 4px; }
.sc-panel + .sc-panel { border-top: 1px solid var(--line); margin-top: 22px; padding-top: 22px; }
.sc-panel__title { margin: 0; font-size: 19px; }
.sc-js .sc-panel + .sc-panel { border-top: 0; margin-top: 0; padding-top: 4px; }
.sc-js .sc-panel__title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sc-panel[hidden] { display: none; }
.sc-help { margin: -2px 0 10px; font-size: 14px; }
.sc-toggles { display: grid; gap: 10px; }
.sc-foot { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding-top: 16px; border-top: 1px solid var(--line); }

/* Választókártyák (elrendezés, betű, borító fókusz) */
.sc-choices { display: grid; gap: 10px; }
.sc-choices--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sc-choice { position: relative; cursor: pointer; min-width: 0; }
.sc-choice input { position: absolute; opacity: 0; width: 1px !important; height: 1px !important; margin: 0; pointer-events: none; }
.sc-choice__box { display: flex; flex-direction: column; gap: 3px; height: 100%; padding: 10px 10px 12px; border: 1.5px solid var(--line); border-radius: var(--r-md); background: var(--surface); transition: border-color .15s, box-shadow .15s; }
.sc-choice__box strong { font-size: 15px; line-height: 1.25; }
.sc-choice__box small { color: var(--muted); font-size: 12.5px; line-height: 1.35; }
.sc-choice:hover .sc-choice__box { border-color: color-mix(in srgb, var(--pine) 45%, var(--line)); }
.sc-choice input:checked + .sc-choice__box { border-color: var(--pine); box-shadow: 0 0 0 1.5px var(--pine); background: var(--pine-soft); }
.sc-choice input:focus-visible + .sc-choice__box { outline: 3px solid var(--pine); outline-offset: 2px; }

/* Mini drótvázak az elrendezésekhez */
.sc-lay { display: grid; gap: 3px; height: 54px; padding: 6px; border-radius: 8px; background: var(--paper-2); margin-bottom: 6px; }
.sc-lay i { border-radius: 3px; background: color-mix(in srgb, var(--muted) 35%, transparent); }
.sc-lay--klasszikus { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 6px 6px; }
.sc-lay--klasszikus i:nth-child(1) { grid-row: 1 / 4; background: var(--pine); opacity: .55; }
.sc-lay--klasszikus i:nth-child(4) { width: 60%; }
.sc-lay--magazin { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 8px; }
.sc-lay--magazin i:nth-child(1) { grid-column: 1 / 3; background: var(--pine); opacity: .55; }
.sc-lay--magazin i:nth-child(4) { display: none; }
.sc-lay--minimal { grid-template-columns: 1fr; grid-template-rows: 12px 6px 6px 6px; justify-items: center; align-content: center; }
.sc-lay--minimal i:nth-child(1) { width: 12px; border-radius: 50%; background: var(--pine); opacity: .55; }
.sc-lay--minimal i:nth-child(2) { width: 55%; }
.sc-lay--minimal i:nth-child(3) { width: 40%; }
.sc-lay--minimal i:nth-child(4) { width: 48%; }
.sc-font { display: block; font-size: 30px; font-weight: 700; line-height: 1.1; letter-spacing: -.02em; margin-bottom: 4px; color: var(--ink); }

/* Borító fókusz */
.sc-crop { display: block; aspect-ratio: 16 / 7; border-radius: 8px; overflow: hidden; background: var(--paper-2); margin-bottom: 6px; position: relative; }
.sc-crop img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sc-crop--empty i { position: absolute; left: 10%; right: 10%; height: 34%; border-radius: 4px; background: var(--pine); opacity: .45; }
.sc-crop--top i { top: 8%; }
.sc-crop--center i { top: 33%; }
.sc-crop--bottom i { bottom: 8%; }

/* Világos, sötét, automatikus */
.sc-seg { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 999px; background: var(--paper-2); max-width: 100%; }
.sc-seg label { position: relative; cursor: pointer; }
.sc-seg input { position: absolute; opacity: 0; width: 1px !important; height: 1px !important; margin: 0; pointer-events: none; }
.sc-seg span { display: block; padding: 8px 14px; border-radius: 999px; font-weight: 600; font-size: 14px; color: var(--muted); }
.sc-seg input:checked + span { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(34, 29, 46, .14); }
.sc-seg input:focus-visible + span { outline: 3px solid var(--pine); outline-offset: 1px; }

/* Kiemelt kedvenc */
.sc-pets { display: flex; flex-wrap: wrap; gap: 12px; }
.sc-pet { position: relative; cursor: pointer; }
.sc-pet input { position: absolute; opacity: 0; width: 1px !important; height: 1px !important; margin: 0; pointer-events: none; }
.sc-pet > span { display: grid; justify-items: center; gap: 4px; width: 76px; }
.sc-pet__img { width: 60px; height: 60px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: var(--paper-2); box-shadow: 0 0 0 2px var(--surface), 0 0 0 3px var(--line); color: var(--muted); font-weight: 700; transition: box-shadow .15s; }
.sc-pet__img img { width: 100%; height: 100%; object-fit: cover; }
.sc-pet__img.is-paw img { width: 30px; height: 30px; object-fit: contain; opacity: .6; }
.sc-pet em { font-style: normal; font-size: 13px; color: var(--muted); text-align: center; max-width: 76px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sc-pet input:checked + span .sc-pet__img { box-shadow: 0 0 0 3px var(--surface), 0 0 0 5px var(--pine); }
.sc-pet input:checked + span em { color: var(--ink); font-weight: 700; }
.sc-pet input:focus-visible + span .sc-pet__img { outline: 3px solid var(--pine); outline-offset: 5px; }

/* Szakaszok sorrendje */
.sc-order { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; counter-reset: sc; }
.sc-order__item { display: flex; align-items: center; gap: 10px; padding: 10px 8px 10px 12px; border: 1.5px solid var(--line); border-radius: var(--r-md); background: var(--surface); }
.sc-order__item::before { counter-increment: sc; content: counter(sc); flex: none; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 700; background: var(--paper-2); color: var(--muted); }
.sc-order__item.is-moved { animation: sc-flash .5s ease; }
@keyframes sc-flash { from { border-color: var(--pine); background: var(--pine-soft); } }
.sc-order .check { flex: 1; min-width: 0; align-items: flex-start; cursor: pointer; }
.sc-order .check input { width: 20px !important; height: 20px; min-height: 0; padding: 0; margin: 2px 0 0; flex: none; }
.sc-order .check span { display: grid; gap: 1px; }
.sc-order .check small { font-size: 13px; line-height: 1.35; }
.sc-order__btns { display: flex; gap: 2px; flex: none; }
.sc-move { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; border: 0; background: transparent; color: var(--muted); cursor: pointer; }
.sc-move:hover { background: var(--paper-2); color: var(--ink); }
.sc-order__item:first-child .sc-move[data-move="-1"], .sc-order__item:last-child .sc-move[data-move="1"] { opacity: .3; pointer-events: none; }
form:not(.sc-js) .sc-order__btns { display: none; }

/* Mérföldkövek */
.sc-ms { display: grid; gap: 8px; }
.sc-ms__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr); gap: 8px; }
.sc-ms__add { justify-self: start; margin-top: 8px; }

/* Linkek */
.sc-link { display: flex; align-items: stretch; border: 1.5px solid var(--line); border-radius: var(--r-sm); background: var(--surface); overflow: hidden; }
.sc-link:focus-within { border-color: var(--pine); }
.sc-link.has-error { border-color: var(--bad); }
.sc-link__ico { display: grid; place-items: center; width: 44px; flex: none; background: var(--paper-2); color: var(--ink); }
.sc-link input { border: 0 !important; box-shadow: none !important; flex: 1; min-width: 0; }

/* Előnézet */
.sc-prevcard .card__head { align-items: baseline; }
.sc-prevcard__open { margin-top: 12px; }
.sc-prev { --pa: #55407E; --ps: #ECE7F4; --pf: inherit; --pbg: #F7F6F9; --pcard: #FFFFFF; --pink: #221D2E; --pmuted: #655E74; --pline: #E2DDEB;
  border-radius: 16px; overflow: hidden; background: var(--pbg); color: var(--pink); border: 1px solid var(--line); font-size: 12px; user-select: none; transition: background .2s; }
.sc-prev.is-dark { --pbg: #14111B; --pcard: #201B2B; --pink: #EEEAF5; --pmuted: #AAA2BA; --pline: #322B40; }
.sc-prev__bar { display: flex; align-items: center; gap: 6px; padding: 7px 10px; border-bottom: 1px solid var(--pline); }
.sc-prev__bar i { width: 8px; height: 8px; border-radius: 50%; background: var(--pa); flex: none; }
.sc-prev__bar b { font-family: var(--pf); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sc-prev__hero { display: grid; grid-template-columns: 1fr 1.1fr; gap: 10px; padding: 12px 10px; align-items: center; background: linear-gradient(180deg, var(--ps), transparent 85%); position: relative; }
.sc-prev__cover { aspect-ratio: 4 / 3; border-radius: 10px; overflow: hidden; background: color-mix(in srgb, var(--pa) 22%, var(--pcard)); border: 3px solid var(--pcard); }
.sc-prev__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sc-prev__text { display: grid; gap: 4px; justify-items: start; min-width: 0; }
.sc-prev__avatar { width: 30px; height: 30px; border-radius: 50%; overflow: hidden; border: 2px solid var(--ps); background: var(--pcard); }
.sc-prev__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sc-prev__avatar[hidden], .sc-prev__tag[hidden], .sc-prev img[hidden] { display: none; }
.sc-prev__h { font-family: var(--pf); font-weight: 800; font-size: 17px; line-height: 1.1; letter-spacing: -.02em; overflow-wrap: anywhere; }
.sc-prev__tag { color: var(--pmuted); line-height: 1.3; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.sc-prev__btn { display: inline-block; margin-top: 2px; padding: 3px 9px; border-radius: 999px; background: var(--pa); color: var(--pbg); font-weight: 700; font-size: 10.5px; }
.sc-prev__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 2px 10px 12px; }
.sc-prev__cards i { height: 42px; border-radius: 8px; background: var(--pcard); border: 1px solid var(--pline); }
.sc-prev--magazin .sc-prev__hero { grid-template-columns: 1fr; padding: 0; background: none; }
.sc-prev--magazin .sc-prev__cover { aspect-ratio: 16 / 8; border: 0; border-radius: 0; grid-area: 1 / 1; }
.sc-prev--magazin .sc-prev__text { grid-area: 1 / 1; align-self: end; padding: 22px 10px 10px; color: #fff; background: linear-gradient(transparent, rgba(12, 8, 20, .72)); }
.sc-prev--magazin .sc-prev__tag { color: rgba(255, 255, 255, .85); }
.sc-prev--magazin .sc-prev__cards { padding-top: 10px; }
.sc-prev--minimal .sc-prev__hero { grid-template-columns: 1fr; justify-items: center; text-align: center; background: none; padding-top: 0; }
.sc-prev--minimal .sc-prev__cover { aspect-ratio: 16 / 5; width: calc(100% + 20px); margin: 0 -10px; border: 0; border-radius: 0; }
.sc-prev--minimal .sc-prev__text { justify-items: center; }
.sc-prev--minimal .sc-prev__avatar { width: 40px; height: 40px; margin-top: -26px; border: 3px solid var(--pbg); }
.sc-prev--minimal .sc-prev__cards { grid-template-columns: 1fr; max-width: 70%; margin: 0 auto; }
.sc-prev--minimal .sc-prev__cards i { height: 18px; }

@media (max-width: 560px) {
  .sc-choices--3 { grid-template-columns: 1fr 1fr 1fr; gap: 6px; }
  .sc-choice__box { padding: 8px 7px 10px; }
  .sc-choice__box small { display: none; }
  .sc-choice__box strong { font-size: 13.5px; }
  .sc-font { font-size: 24px; }
  .sc-lay { height: 44px; }
  .sc-ms__row { grid-template-columns: 1fr; gap: 4px; padding-bottom: 6px; border-bottom: 1px dashed var(--line); }
  .sc-head { flex-direction: column; align-items: stretch; }
  .sc-tabs { display: flex; }
  .sc-tabs button { flex: 1 1 auto; padding: 8px 6px; font-size: 14px; }
  .sc-seg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-radius: 16px; width: 100%; }
  .sc-seg span { padding: 8px 4px; text-align: center; font-size: 13px; line-height: 1.25; border-radius: 12px; }
}
@media (max-width: 900px) {
  .sc-tips { display: none; }
}

/* assets/css/mod-sitebuild.css */
/* Tenyésztői oldal: gyors indítás és „Elkészítjük helyetted” (oldalkeszites.php, sajat-oldal.php, admin) */
.sajat-start { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 14px; margin: 0 0 18px; }
.sajat-start__opt { display: grid; gap: 8px; align-content: start; padding: 20px; color: var(--ink); text-decoration: none; border: 2px solid transparent; }
a.sajat-start__opt:hover, form.sajat-start__opt:focus-within { border-color: var(--pine-soft); }
.sajat-start__opt h2 { margin: 0; font-size: 20px; }
.sajat-start__opt p { margin: 0; }
.sajat-start__opt .btn { justify-self: start; }
.sajat-start__icon { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); }
.sajat-upsell__cta { display: flex; flex-wrap: wrap; gap: 8px; }
.sb-how { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 0 0 18px; }
.sb-how > div { display: grid; gap: 4px; padding: 16px; }
.sb-how__n { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--pine); color: var(--on-pine); font-weight: 800; }
.sb-status { display: flex; gap: 14px; align-items: flex-start; padding: 18px; margin: 0 0 18px; border: 2px solid var(--pine-soft); }
.sb-status.is-done { border-color: var(--good); }
.sb-status h2 { margin: 0 0 4px; }
.sb-status__icon { width: 52px; height: 52px; flex: none; border-radius: 16px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); }
.sb-status.is-done .sb-status__icon { background: var(--good-soft); color: var(--good); }
.sb-form h2 { margin: 8px 0 4px; }
.sb-styles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; border: 0; padding: 0; }
.sb-styles legend { font-weight: 700; margin-bottom: 6px; }
.sb-style { display: flex; align-items: center; gap: 8px; padding: 10px; border: 2px solid var(--line); border-radius: 12px; cursor: pointer; }
.sb-style:has(input:checked) { border-color: var(--pine); background: var(--pine-soft); }
.sb-style input { margin: 0; }
.sb-style__sw { width: 26px; height: 26px; border-radius: 8px; flex: none; background: linear-gradient(135deg, var(--sw) 0 55%, var(--sws) 55%); }
.sb-price__v { font-family: var(--font-display); font-size: 32px; font-weight: 800; color: var(--pine); margin: 0 0 6px; }
.sb-price__v small { font-size: 15px; font-weight: 600; }
.sb-price__list { margin: 10px 0 0; padding-left: 18px; display: grid; gap: 4px; }
.sb-adm { padding: 14px 16px; margin-bottom: 10px; }
.sb-adm summary { cursor: pointer; }
.sb-adm__dl { display: grid; grid-template-columns: 160px 1fr; gap: 6px 12px; margin: 12px 0; }
.sb-adm__dl dt { font-weight: 700; color: var(--muted); }
.sb-adm__dl dd { margin: 0; overflow-wrap: anywhere; }
.sb-adm__photos { list-style: none; margin: 0 0 10px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); gap: 6px; }
.sb-adm__photos img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 10px; display: block; }
.sb-adm__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.sb-adm__status { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.sb-adm__status input[type=text] { min-width: 220px; }
@media (max-width: 760px) { .sb-how { grid-template-columns: 1fr; } .sb-adm__dl { grid-template-columns: 1fr; } }
.sb-how > .card { margin: 0; }
.sb-layout.is-noform { grid-template-columns: 1fr; }
.sb-layout.is-noform > aside { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 16px; align-items: start; }
.sb-layout.is-noform > aside > .card { margin: 0; }
.sb-style { position: relative; }
.sb-style input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sb-style:has(input:focus-visible) { outline: 3px solid var(--pine-soft); outline-offset: 2px; }
.sb-style span:last-child { font-weight: 600; font-size: 14.5px; }

/* assets/css/mod-sitters.css */
/* Bundee: szitterek modul */
.section-gap { margin-bottom: 64px; }
.sit-gap { margin-bottom: 16px; }
.sit-cta { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; margin-bottom: 24px; }
.sit-cta h2 { margin: 0 0 2px; font-size: 22px; }
.sit-cta p { margin: 0; }
.sit-cta__icon { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: var(--butter-soft); color: var(--good); }
.sit-filter .btn { align-self: end; }
.sit-count { margin: 0 0 10px; font-size: 15px; }
.sit-card { height: 100%; }
.sit-card__head { display: flex; gap: 12px; align-items: center; padding: 16px 16px 0; }
.sit-card__head h3 { margin: 0; font-size: 19px; }
.sit-card .tile__body { padding-top: 10px; gap: 8px; }
.sit-card__about { margin: 0; font-size: 15px; color: var(--muted); }
.sit-card__rating { font-size: 15px; }
.sit-card .chips { margin-top: 0; }
.sit-card__price { margin: 4px 0 0; font-weight: 700; color: var(--pine); }
.sit-avatar { flex: none; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); font-family: var(--font-display); font-weight: 800; font-size: 20px; }
.sit-avatar--lg { width: 72px; height: 72px; font-size: 30px; }
.sit-hero { display: flex; gap: 16px; align-items: center; }
.sit-hero h1 { margin-bottom: 2px; }
.sit-hero p { margin: 0 0 2px; }
.stars { white-space: nowrap; }
.stars__off { color: var(--line); }
.sit-prices { list-style: none; margin: 0; padding: 0; }
.sit-prices li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.sit-prices li:last-child { border-bottom: 0; }
.sit-prices li > div { display: grid; }
.sit-prices li .muted { font-size: 14px; }
.sit-prices__price { font-weight: 700; white-space: nowrap; }
.sit-reviews { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.sit-reviews li { padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.sit-reviews li:last-child { border-bottom: 0; padding-bottom: 0; }
.sit-reviews p { margin: 4px 0 0; }
.sit-reviews__head { font-size: 15px; }
.sit-book { position: sticky; top: 84px; }
.sit-book h2 { margin-bottom: 14px; }
.sit-quote { display: grid; gap: 6px; padding: 12px 14px; border-radius: var(--r-md); background: var(--pine-soft); font-size: 15px; }
.sit-quote div { display: flex; justify-content: space-between; gap: 10px; }
.sit-small { font-size: 14px; margin: 0; }
.sit-checks { border: 0; margin: 0; padding: 0; display: grid; gap: 10px; }
.sit-checks legend { font-weight: 600; font-size: 15px; margin-bottom: 8px; padding: 0; }
.sit-inline { display: flex; gap: 20px; flex-wrap: wrap; }
.sit-narrow { max-width: 320px; }
.sit-h3 { font-size: 19px; }
.sit-steps { margin: 0; padding-left: 20px; display: grid; gap: 6px; color: var(--ink); }
/* Foglalásaim */
.bk-list { list-style: none; margin: 0 0 64px; padding: 0; display: grid; gap: 16px; }
.bk-list .card + .card { margin-top: 0; }
.bk__head { display: flex; gap: 12px; align-items: flex-start; }
.bk__paw { width: 32px; height: 32px; margin-top: 2px; }
.bk__title { flex: 1; min-width: 0; }
.bk__title h2 { margin: 0; font-size: 21px; }
.bk__title p { margin: 2px 0 0; font-size: 15px; }
.bk__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin: 14px 0 0; }
.bk__facts div { padding: 10px 12px; border-radius: var(--r-md); background: var(--paper); border: 1px solid var(--line); }
.bk__facts dt { font-size: 14px; color: var(--muted); }
.bk__facts dd { margin: 2px 0 0; font-weight: 700; }
.bk__facts dd .muted { font-weight: 500; }
.bk__msg { margin: 12px 0 0; padding: 10px 12px; border-left: 3px solid var(--pine-soft); color: var(--muted); font-size: 15px; }
.bk__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.bk__actions:empty { display: none; }
.bk__pay { margin-top: 14px; }
.bk__pay summary { list-style: none; }
.bk__pay summary::-webkit-details-marker { display: none; }
.bk__pay[open] summary { margin-bottom: 14px; }
.bk__pay form { max-width: 460px; }
.bk__addr { display: grid; grid-template-columns: 130px 1fr; gap: 12px; }
.bk__review { margin-top: 14px; font-size: 15px; }
.bk__rate { margin-top: 16px; max-width: 520px; }
.rate { border: 0; margin: 0; padding: 0; }
.rate legend { font-weight: 600; font-size: 15px; padding: 0; margin-bottom: 4px; }
.rate__stars { display: inline-flex; flex-direction: row-reverse; gap: 2px; }
.rate__stars input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rate__stars label { font-size: 32px; line-height: 1; color: var(--line); cursor: pointer; padding: 2px; }
.rate__stars input:checked ~ label, .rate__stars label:hover, .rate__stars label:hover ~ label { color: #E3A23B; }
.rate__stars input:focus-visible + label { outline: 3px solid var(--pine); outline-offset: 2px; border-radius: 6px; }
.bk-mini { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 15px; }
@media (max-width: 900px) { .sit-book { position: static; } }
@media (max-width: 620px) {
  .sit-cta { grid-template-columns: auto 1fr; }
  .sit-cta .btn { grid-column: 1 / -1; }
  .sit-filter { display: grid; grid-template-columns: 1fr; }
  .sit-filter .field { min-width: 0; }
  .bk__addr { grid-template-columns: 1fr; }
  .sit-avatar--lg { width: 56px; height: 56px; font-size: 24px; }
}
.sit-grid { list-style: none; margin: 0; padding: 0 0 64px; }
.sit-grid > li { display: flex; }
.sit-grid .tile { width: 100%; }
.sit-jump { display: none; margin-top: 10px; }
@media (max-width: 900px) { .sit-jump { display: inline-flex; } }
.sit-grid { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
@media (max-width: 400px) { .sit-grid { grid-template-columns: 1fr; } }

/* Szitter-szintek és a „miért itt foglalj” doboz. */
.sit-level { display: inline-flex; align-items: center; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 800; background: var(--paper-2); color: var(--muted); }
.sit-level--megbizhato { background: #E3F5EC; color: #1F7A55; }
.sit-level--csillag { background: linear-gradient(135deg, #FFF3D6, #F6DFA8); color: #8A5A0F; }
.sit-why { margin-top: 10px; font-size: 14px; }
.sit-why summary { cursor: pointer; color: var(--pine); font-weight: 700; }
.sit-why ul { margin: 6px 0; padding-left: 18px; }
/* Mobilon tömör szűrő: a megye teljes szélességben, alatta két oszlopban a többi. */
@media (max-width: 560px) {
  .toolbar.sit-filter { grid-template-columns: 1fr 1fr; gap: 8px; }
  .toolbar.sit-filter .field:first-child, .toolbar.sit-filter .btn { grid-column: 1 / -1; }
  .toolbar.sit-filter .field select { font-size: 15px; }
}

/* assets/css/mod-social-mod.css */
/* Közösségi moderálás és reakciók (includes/modules/social_mod.php). */
.sm-creact { display: inline-flex; align-items: center; gap: 3px; }
.sm-creact span[aria-hidden] { filter: grayscale(1); opacity: .7; transition: transform .15s, filter .15s, opacity .15s; }
.sm-creact.is-on { color: #D0506F; font-weight: 700; }
.sm-creact.is-on span[aria-hidden] { filter: none; opacity: 1; transform: scale(1.12); }
.sm-sum { border: 0; background: none; padding: 0; color: inherit; font: inherit; cursor: pointer; border-radius: 8px; }
.sm-sum:hover span:last-of-type, .sm-sum:focus-visible span:last-of-type { text-decoration: underline; }
.sm-sum:has([data-react-summary]:empty) { display: none; }
.sm-locked { display: flex; align-items: center; gap: 6px; margin: 10px 0 2px; padding: 9px 12px; border-radius: 12px; background: var(--paper-2); color: var(--muted); font-size: 14px; }
.sm-muted-note { display: flex; gap: 8px; align-items: flex-start; background: var(--warn-soft); }
dialog.sm-who { width: min(420px, calc(100vw - 32px)); max-height: min(70vh, 560px); border: 0; border-radius: var(--r-lg); padding: 16px 18px; background: var(--surface); color: var(--ink); box-shadow: 0 30px 80px -30px rgba(20, 12, 40, .6); }
dialog.sm-who::backdrop { background: rgba(20, 14, 32, .5); }
.sm-who__head { display: flex; justify-content: space-between; align-items: center; }
.sm-who__head h2 { margin: 0; font-size: 18px; }
.sm-who__sum { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.sm-who__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.sm-who__list li { display: flex; align-items: center; gap: 10px; padding: 6px 4px; border-radius: 10px; }
.sm-who__list li:hover { background: var(--pine-soft); }
.sm-who__list a { font-weight: 600; color: var(--ink); text-decoration: none; flex: 1; }
.sm-who__k { font-size: 18px; }
.sm-reports { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sm-report { padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.sm-report__head { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.sm-report__body { margin: 8px 0 4px; white-space: pre-line; }
.sm-log { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 14px; }
.sm-log li { display: grid; grid-template-columns: 170px 1fr; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--line); }
.sm-log li:last-child { border-bottom: 0; }
.sm-log__t { font-size: 12.5px; white-space: nowrap; }
@media (max-width: 560px) { .sm-log li { grid-template-columns: 1fr; gap: 2px; } }

/* assets/css/mod-social-ui.css */
[data-dock-badge][hidden] { display: none !important; }

/* assets/css/mod-social.css */
/* Bundee: Google- és Apple-belépés */

.social-auth { display: grid; gap: 10px; margin: 20px 0 4px; }
.social-auth form { margin: 0; }
.btn-social { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 48px; padding: 10px 18px; border-radius: 999px; font: inherit; font-weight: 600; font-size: 16px; cursor: pointer; border: 1px solid transparent; transition: background .15s ease, border-color .15s ease; }
.btn-social:focus-visible { outline: 3px solid var(--pine); outline-offset: 2px; }
.btn-social__icon { flex: none; }
.btn-social--google { background: #FFFFFF; color: #1F1F1F; border-color: #747775; }
.btn-social--google:hover { background: #F2F2F2; }
.btn-social--apple { background: #000000; color: #FFFFFF; }
.btn-social--apple:hover { background: #222222; }

.social-or { display: flex; align-items: center; gap: 12px; margin: 18px 0; color: var(--muted); font-size: 14px; font-weight: 600; }
.social-or::before, .social-or::after { content: ""; flex: 1; height: 1px; background: var(--line); }

.social-who { display: flex; gap: 12px; align-items: center; padding: 14px; margin: 16px 0; border-radius: var(--r-md); background: var(--paper); border: 1px solid var(--line); }
.social-who > div { display: grid; gap: 2px; min-width: 0; }
.social-who .muted { font-size: 14px; overflow-wrap: anywhere; }
.social-who__note { font-size: 13px; }
.social-cancel { margin-top: 10px; text-align: center; }

/* Fiókom: belépési módok */
.social-methods { list-style: none; margin: 0 0 4px; padding: 0; display: grid; gap: 8px; }
.social-methods li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--r-md); background: var(--paper); border: 1px solid var(--line); }
.social-methods__who { display: flex; gap: 12px; align-items: center; min-width: 0; }
.social-methods__who > div { display: grid; min-width: 0; }
.social-methods__who .muted { font-size: 14px; overflow-wrap: anywhere; }
.social-methods__ico { width: 36px; height: 36px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--surface); border: 1px solid var(--line); color: var(--ink); }
.social-methods form { margin: 0; flex: none; }
@media (max-width: 520px) {
  .social-methods li { flex-direction: column; align-items: stretch; }
  .social-methods form .btn { width: 100%; }
  .social-methods li > .chip { align-self: flex-start; }
}

/* Sötét mód: a Google sötét gombja, az Apple fehér változata */
:root[data-theme="dark"] .btn-social--google { background: #131314; color: #E3E3E3; border-color: #8E918F; }
:root[data-theme="dark"] .btn-social--google:hover { background: #1F1F21; }
:root[data-theme="dark"] .btn-social--apple { background: #FFFFFF; color: #000000; }
:root[data-theme="dark"] .btn-social--apple:hover { background: #EDEDED; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .btn-social--google { background: #131314; color: #E3E3E3; border-color: #8E918F; }
  :root:not([data-theme="light"]) .btn-social--google:hover { background: #1F1F21; }
  :root:not([data-theme="light"]) .btn-social--apple { background: #FFFFFF; color: #000000; }
  :root:not([data-theme="light"]) .btn-social--apple:hover { background: #EDEDED; }
}

/* E-mail-megerősítés sávja és újrabelépés a fióktörléshez */
.acc-verify { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-bottom: 14px; }
.acc-verify span { flex: 1 1 260px; }
.acc-verify form { flex: 0 0 auto; margin: 0; }
.acc-reauth { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.acc-reauth form { margin: 0; }
.acc-reauth .btn svg { width: 16px; height: 16px; vertical-align: -3px; margin-right: 4px; }
.verify-banner { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; margin: 20px 0 18px; }
.verify-banner form { margin: 0; }
.acc-verify__msg { flex: 1 1 100%; margin: 0; padding: 10px 12px; border-radius: var(--r-sm); font-weight: 700; font-size: 14.5px; }
.acc-verify__msg.is-ok { background: var(--good-soft); color: var(--good); }
.acc-verify__msg.is-bad { background: var(--bad-soft); color: var(--bad); }
.acc-verify__msg.is-info { background: var(--warn-soft); color: var(--warn); }
.verify-banner { flex-wrap: wrap; }

/* Emlékoldal: élettartam a kedvenc profilján. */
.sprofile__memspan { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 6px 0 0; color: var(--ink); }
.sprofile__memspan svg { color: var(--plum, #6B4E9B); }
/* A partner neve a kis üzenetablakban a profiljára visz. */
.sdock__who { color: inherit; text-decoration: none; }
.sdock__who:hover { text-decoration: underline; text-underline-offset: 3px; }

/* „Mai nap” sáv a Hírfolyam tetején (egy kezdőlap: a saját teendő is itt van). */
.htoday { display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin-bottom: 12px; }
.htoday__ic { flex: none; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); }
.htoday--clear .htoday__ic { background: color-mix(in srgb, #2f9e6b 16%, transparent); color: #2f9e6b; }
.htoday__main { flex: 1 1 auto; min-width: 0; display: grid; color: inherit; text-decoration: none; line-height: 1.3; }
.htoday__main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.htoday__main small { color: var(--muted); }
.htoday__more { flex: none; font-weight: 700; font-size: .9rem; white-space: nowrap; }
@media (max-width: 480px) { .htoday { flex-wrap: wrap; } .htoday__more { margin-left: 52px; } }

/* assets/css/mod-sso.css */
/* Tulajdonosi oldal: Google- és Apple-belépés beállítása */
.sso-admin .sso-card { padding: 22px; margin-bottom: 18px; max-width: 820px; }
.sso-card__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.sso-card__head h2 { margin: 0; }
.sso-steps { padding-left: 20px; display: grid; gap: 10px; line-height: 1.55; }
.sso-copy { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 4px 0; max-width: 100%; }
.sso-copy code { background: var(--paper-2); border: 1px solid var(--line); border-radius: 8px; padding: 4px 8px; font-size: 14px; word-break: break-all; }
.sso-form { display: grid; gap: 12px; margin: 10px 0 12px; max-width: 560px; }
.sso-form input[type="text"], .sso-form input[type="password"] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 14px; }
.sso-actions { display: flex; gap: 8px; }

/* assets/css/mod-support.css */
/* Ügyfélszolgálati hozzáférés: ideiglenes jelszó, belépés a felhasználó nevében (includes/modules/support_access.php) */
:root { --imp-bg: #8A4B08; --imp-ink: #FFFFFF; --imp-btn-bg: #FFFFFF; --imp-btn-ink: #5E3204; --imp-ring: #D98A1E; }
:root[data-theme="dark"] { --imp-bg: #F2C25E; --imp-ink: #1E1606; --imp-btn-bg: #1E1606; --imp-btn-ink: #F6D58E; --imp-ring: #F2C25E; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --imp-bg: #F2C25E; --imp-ink: #1E1606; --imp-btn-bg: #1E1606; --imp-btn-ink: #F6D58E; --imp-ring: #F2C25E; }
}

/* A sáv minden oldalon látszik, görgetéskor is fent marad; a fejléc alatta tapad. */
.impbar { position: sticky; top: 0; z-index: 60; background: var(--imp-bg); color: var(--imp-ink); box-shadow: 0 2px 10px rgba(0, 0, 0, .18); }
.impbar__inner { max-width: 1200px; margin: 0 auto; padding: 8px 16px; display: flex; align-items: center; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; }
.impbar__text { display: flex; align-items: center; gap: 8px; font-size: 15px; line-height: 1.35; min-width: 0; overflow-wrap: anywhere; }
.impbar__ico { display: inline-flex; flex: none; }
.impbar__left { white-space: nowrap; opacity: .9; }
.impbar__form { margin: 0; flex: none; }
.impbar .impbar__btn { background: var(--imp-btn-bg); color: var(--imp-btn-ink); border: 0; font-weight: 700; }
.impbar .impbar__btn:hover, .impbar .impbar__btn:focus-visible { filter: brightness(.95); outline: 2px solid var(--imp-ink); outline-offset: 2px; }
.is-impersonating .topbar { top: var(--imp-h, 44px); }
.is-impersonating .appshell__side { top: calc(61px + var(--imp-h, 44px)); max-height: calc(100dvh - 61px - var(--imp-h, 44px)); }
html:has(body.is-impersonating) { box-shadow: inset 0 0 0 4px var(--imp-ring); }
@media (max-width: 560px) {
  .impbar__inner { padding: 8px 12px; }
  .impbar__text { font-size: 14px; }
  .impbar__form, .impbar .impbar__btn { width: 100%; }
}

/* Admin adatlap: Belépési segítség */
.supp .form { margin-top: 4px; }
.supp__once { border: 1px solid var(--line); border-radius: var(--r-md); padding: 14px; margin-bottom: 16px; background: var(--pine-soft); display: grid; gap: 10px; }
.supp__once p { margin: 0; }
.supp__pwrow { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.supp__pw { font-size: clamp(17px, 5vw, 22px); white-space: nowrap; font-weight: 700; letter-spacing: .04em; padding: 6px 12px; border-radius: var(--r-sm); background: var(--surface); border: 1px solid var(--line); color: var(--ink); user-select: all; }
.supp__msg { width: 100%; font: inherit; font-size: 14px; line-height: 1.45; resize: vertical; }
.supp__imp { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 14px; display: grid; gap: 8px; justify-items: start; }
.supp__imp p { margin: 0; }
.supp__h { font-size: 16px; margin: 18px 0 8px; }

/* Napló (admin és Fiókom) */
.implog { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 10px; }
.implog li { display: grid; gap: 2px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r-sm); overflow-wrap: anywhere; }

/* Megerősítő oldal */
.imp-confirm__card { max-width: 640px; }
.imp-confirm__card h1 { font-size: clamp(24px, 5vw, 32px); overflow-wrap: anywhere; }
.imp-confirm__facts { margin: 12px 0 18px; padding-left: 20px; display: grid; gap: 6px; }
.imp-confirm__actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* assets/css/mod-tagwl.css */
/* NFC-biléta előrendelés (nfc-bileta.php, bileta.php) és kuponok (kuponjaim.php) */
.tagwl-hero { margin-top: 12px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 40px; align-items: center; margin-bottom: 32px; }
.tagwl-hero h1 { font-size: clamp(34px, 5vw, 56px); line-height: 1.02; letter-spacing: -.035em; margin: 6px 0 14px; }
.tagwl-hero .lead { font-size: 18px; line-height: 1.6; max-width: 36em; }
.tagwl-visual { display: grid; place-items: center; min-height: 260px; }
.tagwl-disc { width: 230px; height: 230px; border-radius: 50%; display: grid; place-items: center; align-content: center; gap: 6px; text-align: center; padding: 26px;
  background: radial-gradient(circle at 35% 28%, #fff 0, #f1ecf8 45%, #d9cfe9 100%); color: #3b2a5c; border: 10px solid #fff;
  box-shadow: 0 30px 60px -28px rgba(34, 22, 58, .55), inset 0 0 0 2px rgba(85, 64, 126, .15); transform: rotate(-6deg); }
.tagwl-disc strong { font-size: 30px; letter-spacing: -.02em; }
.tagwl-disc > span:last-child { font-size: 13px; font-weight: 600; color: #5c4b7c; }
.tagwl-disc .tagwl-nfc { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: #55407E; color: #fff; justify-self: center; }
.tagwl-products-grid > .card { margin: 0; }
.tagwl-products-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 18px; }
.tagwl-product { display: flex; flex-direction: column; gap: 6px; }
.tagwl-product h2 { margin: 6px 0 0; font-size: 22px; }
.tagwl-product h2 .muted { font-weight: 500; font-size: 16px; }
.tagwl-product .price { font-size: 26px; font-weight: 800; margin: 0; }
.tagwl-product .btn { align-self: flex-start; margin-top: auto; }
.tagwl-product__icon img { width: 40px; height: 40px; }
.tagwl-how { margin-bottom: 18px; }
.tagwl-steps { list-style: none; padding: 0; margin: 12px 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; counter-reset: s; }
.tagwl-steps li { align-content: start; display: grid; gap: 4px; padding: 14px; border-radius: 16px; background: var(--pine-soft); counter-increment: s; }
.tagwl-steps li::before { content: counter(s); width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--pine); color: var(--on-pine); font-weight: 800; font-size: 14px; }
.tagwl-steps span { color: var(--muted); font-size: 14.5px; line-height: 1.5; }
.tagwl-order { max-width: 760px; }
.tagwl-form { margin-top: 14px; }
.tagwl-opt { display: grid !important; gap: 2px; text-align: center; line-height: 1.25; }
.tagwl-opt small { font-weight: 600; color: var(--muted); font-size: 14px; }
.tagwl-thanks { display: flex; gap: 10px; align-items: flex-start; margin: 10px 0 14px; background: var(--good-soft); color: var(--good); border: 0; }
.tagwl-thanks a { color: inherit; font-weight: 700; }
.tagwl-unsub { max-width: 560px; margin: 0 auto; }
.tagwl-unsub form { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.tagwl-mine { margin: 0 0 14px; padding: 0; list-style: none; display: grid; gap: 6px; }
.coupon-code { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.coupon-groups { display: grid; gap: 26px; }
.coupon-groups h2 { margin: 0 0 12px; display: flex; align-items: center; gap: 10px; }
@media (max-width: 860px) {
  .tagwl-hero { grid-template-columns: 1fr; gap: 20px; }
  .tagwl-visual { min-height: 0; }
  .tagwl-disc { width: 190px; height: 190px; }
  .tagwl-products-grid { grid-template-columns: 1fr; }
  .tagwl-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 420px) { .tagwl-steps { grid-template-columns: 1fr; } }

/* assets/css/mod-transfer.css */
/* Átadás megerősítése: összegző ablak (assets/js/mod-transfer.js) és JS nélküli megerősítő oldal. */

.tc-title { font-size: 22px; line-height: 1.25; margin: 0 0 14px; overflow-wrap: anywhere; }
.tc-title b { color: var(--pine); font-weight: 800; }

.tc-sum { display: grid; gap: 14px; }
.tc-pet { display: grid; grid-template-columns: 72px 1fr; gap: 14px; align-items: center; padding: 12px; border-radius: var(--r-md); background: var(--paper); border: 1px solid var(--line); }
.tc-pet__photo { width: 72px; height: 72px; border-radius: 50%; overflow: hidden; background: var(--paper-2); display: grid; place-items: center; }
.tc-pet__photo img { width: 100%; height: 100%; object-fit: cover; }
.tc-pet__photo .placeholder { width: 34px; height: 34px; object-fit: contain; opacity: .75; }
.tc-pet__txt { display: grid; gap: 2px; min-width: 0; color: var(--muted); font-size: 14.5px; }
.tc-pet__name { color: var(--ink); font-size: 18px; font-family: var(--font-display); }
.tc-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .02em; overflow-wrap: anywhere; }

.tc-flow { display: grid; grid-template-columns: 1fr auto 1fr; gap: 10px; align-items: center; }
.tc-flow__arrow { font-size: 22px; color: var(--pine); font-weight: 700; }
.tc-party { display: grid; grid-template-columns: 40px 1fr; gap: 10px; align-items: center; min-width: 0; padding: 10px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--surface); }
.tc-party__txt { display: grid; min-width: 0; }
.tc-party__txt small { color: var(--muted); font-size: 12.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.tc-party__txt strong { overflow-wrap: anywhere; line-height: 1.25; }
.tc-party__sub { color: var(--muted); font-size: 13.5px; overflow-wrap: anywhere; }
.tc-av { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); font-weight: 800; }
.tc-av img { width: 100%; height: 100%; object-fit: cover; }
.tc-av--none { background: var(--paper-2); color: var(--muted); }

.tc-points { margin: 0; padding: 0 0 0 20px; display: grid; gap: 6px; font-size: 15px; color: var(--ink); }
.tc-points li::marker { color: var(--pine); }

.tc-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 18px; }
@media (max-width: 480px) {
  .tc-actions { flex-direction: column-reverse; }
  .tc-actions .btn { width: 100%; }
  .tc-flow { grid-template-columns: 1fr; }
  .tc-flow__arrow { justify-self: center; transform: rotate(90deg); line-height: 1; }
}

/* Ablak */
.tc-dialog { border: 0; padding: 0; background: transparent; color: var(--ink); width: min(560px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: visible; }
.tc-dialog::backdrop { background: rgba(14, 10, 20, 0.62); }
.tc-dialog__box { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-lift); padding: 22px; max-height: calc(100dvh - 32px); overflow: auto; }
.tc-dialog__err { margin: 0; padding: 12px 14px; border-radius: var(--r-md); background: var(--bad-soft); color: var(--bad); font-weight: 600; }
.tc-dialog--fallback { position: fixed; inset: 0; width: auto; max-height: none; display: grid; place-items: center; padding: 16px; background: rgba(14, 10, 20, 0.62); z-index: 1000; }
.tc-dialog--fallback[hidden] { display: none; }
.tc-dialog--fallback .tc-dialog__box { width: min(560px, 100%); }
html.tc-lock { overflow: hidden; }

/* JS nélküli megerősítő oldal */
.tc-page { display: grid; justify-items: center; padding-bottom: 64px; }
.tc-page__card { width: 100%; max-width: 600px; }
.tc-page__card .tc-title { font-size: clamp(22px, 3vw, 28px); }

.transfer__hint { margin: 0; font-size: 14.5px; }

/* assets/css/mod-twofactor.css */
/* Kétlépcsős azonosítás */
.tfa .card { margin-bottom: 18px; }
.tfa-steps { padding-left: 20px; display: grid; gap: 12px; }
.tfa-qr { margin: 12px 0; width: 200px; height: 200px; background: #fff; border-radius: 12px; padding: 4px; }
.tfa-qr svg { display: block; width: 100%; height: 100%; }
.tfa-secret { font-size: 15px; letter-spacing: .04em; word-break: break-all; }
.tfa-codes__list { list-style: none; padding: 0; margin: 12px 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.tfa-codes__list code { display: block; padding: 8px 10px; border: 1px solid var(--line, #E2DDEB); border-radius: 10px; font-size: 15px; text-align: center; }
.tfa-help { margin-top: 14px; }
.tfa-help summary { cursor: pointer; font-weight: 600; }
.tfa-cancel { margin-top: 14px; text-align: center; }
.tfa-banner { margin: 0 auto 12px; }
@media print { .tfa > :not(.tfa-codes) { display: none; } }

/* assets/css/mod-ux-a.css */
/* ==========================================================================
   UX-finomítások (A terület): belépés, fiók, kedvencek, átadás, irányítópult.
   Csak megjelenés: viselkedést, URL-t, mezőneveket nem érint.
   ========================================================================== */

/* --- Értesítő sávok: a hosszú link ne lógjon ki a képernyőről --- */
.flashes > * { min-width: 0; overflow-wrap: anywhere; }

/* --- Kártyafejléc: a cím kapja a helyet, a jobb oldali link ne törjön két sorba --- */
.card__head h2 { flex: 1 1 auto; min-width: 0; }
.card__head > a { flex: none; white-space: nowrap; }

/* --- Jelölőnégyzet: sötét módban és Safariban is jól látható, egységes --- */
.check > input[type="checkbox"] {
  -webkit-appearance: none; appearance: none;
  width: 22px; height: 22px; margin: 1px 0 0; padding: 0; min-height: 0;
  border: 2px solid color-mix(in srgb, var(--muted) 70%, transparent);
  border-radius: 7px; background: var(--surface);
  display: grid; place-items: center; cursor: pointer; flex: none;
  transition: background-color .15s ease, border-color .15s ease;
}
.check > input[type="checkbox"]::after {
  content: ""; width: 6px; height: 11px; margin-top: -2px;
  border: solid var(--on-pine); border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg) scale(0); transition: transform .12s ease;
}
.check > input[type="checkbox"]:checked { background: var(--pine); border-color: var(--pine); }
.check > input[type="checkbox"]:checked::after { transform: rotate(45deg) scale(1); }
.check > input[type="checkbox"]:focus-visible { outline: 3px solid color-mix(in srgb, var(--pine) 45%, transparent); outline-offset: 2px; }
.check > input[type="checkbox"]:disabled { opacity: .5; cursor: not-allowed; }
.check { cursor: pointer; }

/* --- Új kedvenc űrlap: „További adatok” lenyitható blokk --- */
.ux-more { border: 1px solid var(--line); border-radius: var(--r-md); background: var(--paper); }
.ux-more > summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 16px; min-height: 48px; font-weight: 700;
}
.ux-more > summary::-webkit-details-marker { display: none; }
.ux-more > summary small { display: block; font-weight: 500; color: var(--muted); font-size: 13.5px; margin-top: 2px; }
.ux-more > summary::after {
  content: ""; width: 9px; height: 9px; flex: none; margin-right: 4px;
  border: solid var(--muted); border-width: 0 2px 2px 0; transform: rotate(45deg) translateY(-3px); transition: transform .15s ease;
}
.ux-more[open] > summary::after { transform: rotate(-135deg) translateY(-3px); }
.ux-more__body { display: grid; gap: 16px; padding: 4px 16px 16px; }

/* --- Kedvenceim: üres állapot --- */
.ux-empty-pets { display: grid; gap: 6px; margin: 0 0 16px; padding: 16px 18px; border-radius: var(--r-md); background: var(--pine-soft); }
.ux-empty-pets p { margin: 0; }

/* --- Átvétel: segédszöveg a kódmező alatt --- */
.transfer__help { margin: -4px 0 0; font-size: 14px; }
.transfer__cancel { text-align: center; margin: 4px 0 0; font-size: 14.5px; }

/* --- Fiók --- */
.btn.ux-btn-quiet { color: var(--bad); border-color: transparent; background: transparent; box-shadow: none; }
.btn.ux-btn-quiet:hover { background: var(--bad-soft); color: var(--bad); }
#biztonsag .chip--good { display: inline-flex; white-space: normal; line-height: 1.35; padding-top: 6px; padding-bottom: 6px; margin: 10px 0 0; }
#ertesitesek .form + .form, #ertesitesek .form + form, #ertesitesek form + .acc-links { margin-top: 18px; }
.acc-danger .acc-small + .form, .acc-danger .acc-small + form { margin-top: 16px; }
@media (max-width: 560px) {
  .acc-orders li { align-items: flex-start; }
  .acc-orders li > div:first-child { min-width: 0; }
  .acc-orders__right { white-space: normal; }
  .acc-orders__right .chip { white-space: nowrap; }
}

/* --- Adatvédelmi beállítások: tartalomjegyzék koppintható gombokként --- */
.privtoc { display: flex; flex-wrap: wrap; gap: 8px; }
.privtoc a {
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 999px;
  background: var(--paper); border: 1px solid var(--line); color: var(--ink); font-weight: 600; font-size: 14.5px; text-decoration: none;
}
.privtoc a:hover { border-color: var(--pine); color: var(--pine); }

/* --- Kétlépcsős: a kézi kulcs külön, jól másolható dobozban --- */
.tfa-secret {
  display: block; margin-top: 8px; padding: 10px 12px; border-radius: var(--r-sm);
  background: var(--paper); border: 1px solid var(--line); color: var(--ink);
  font-size: 16px; line-height: 1.5; -webkit-user-select: all; user-select: all;
}

/* --- Kedvenc profil: a chipszám egyben maradjon --- */
.ux-nowrap { white-space: nowrap; }

/* --- Kezdő lépések: a teendők látszódjanak linknek --- */
.onb__list li a { color: var(--ink); font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; }
.onb__list li a::after { content: "›"; color: var(--pine); font-weight: 800; }
.onb__list li a:hover { color: var(--pine); }

/* --- Mobil --- */
@media (max-width: 600px) {
  /* Fő gomb legyen elöl és teljes szélességű, a másodlagosak alatta, egymás mellett */
  .ux-actions { width: 100%; }
  .ux-actions .btn--primary { order: -1; flex: 1 1 100%; }
  .ux-actions .btn--ghost { flex: 1 1 0; min-width: 0; padding-left: 10px; padding-right: 10px; font-size: 14.5px; justify-content: center; text-align: center; white-space: nowrap; }
  .ux-pets-compact .petcard--add { min-height: 0; aspect-ratio: auto; padding: 24px 8px; }
  .ux-pets-compact .chips { gap: 4px; }

  /* Album és kedvenc-rácsok: két oszlop, hogy ne kelljen végtelenül görgetni */
  .album:not(.album--mini):not(.album--litter) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .album:not(.album--mini):not(.album--litter) .album__edit[open] { grid-column: 1 / -1; }
  .ux-pets-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .ux-pets-compact .petcard__photo { aspect-ratio: 1; }
  .ux-pets-compact .petcard__body { padding: 10px 12px 12px; }
  .ux-pets-compact .petcard__body h3 { font-size: 17px; display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; }
  .ux-pets-compact .petcard__body .muted { font-size: 13.5px; }

  /* Nyitóoldal: a mintakártya adatai ne vágódjanak le */
  .pcard__stats dd { white-space: normal; overflow: visible; font-size: 13.5px; line-height: 1.25; }
}

/* --- Irányítópult: a kedvencek és teendők blokk ugyanakkora térközzel, mint a többi kártya --- */
.ux-dash-main { margin: 16px 0; padding-bottom: 0; }

/* Kedvenceim: soros kártyák (fotó, alapadatok, következő teendő, gyors elérés). */
.petlist__grid { list-style: none; margin: 0 0 28px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap: 16px; }
.petrow { padding: 0; overflow: hidden; display: flex; flex-direction: column; border-radius: var(--r-lg); }
.petrow__main { display: flex; gap: 16px; padding: 16px; color: var(--ink); text-decoration: none; align-items: center; }
.petrow__main:hover { color: var(--ink); background: color-mix(in srgb, var(--pine-soft) 40%, transparent); }
.petrow__photo { position: relative; flex: none; width: 104px; height: 104px; border-radius: 22px; overflow: hidden; background: var(--paper-2); }
.petrow__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.petrow__photo img.placeholder { inset: 24%; width: 52%; height: 52%; object-fit: contain; opacity: .7; }
.petrow__info { display: grid; gap: 4px; min-width: 0; justify-items: start; }
.petrow__name { font-family: var(--font-display); font-size: 22px; line-height: 1.15; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.petrow__due { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--pine); background: var(--pine-soft); padding: 4px 10px; border-radius: 999px; }
.petrow__due.is-late { color: #9A3B2E; background: #FBE6E1; }
.petrow__due.is-ok { color: #1F7A55; background: #E3F5EC; }
.petrow__chip { font-size: 12.5px; }
.petrow__quick { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.petrow__quick a { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 4px; font-size: 13px; font-weight: 600; color: var(--muted); text-decoration: none; }
.petrow__quick a + a { border-left: 1px solid var(--line); }
.petrow__quick a:hover { color: var(--pine); background: var(--paper-2); }
.petrow.is-memorial { opacity: .92; }
.petlist__more { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 12px; padding-bottom: 56px; }
.petlist__link { display: flex; gap: 12px; align-items: center; padding: 14px 16px; color: var(--ink); text-decoration: none; border-radius: var(--r-md); }
.petlist__link span:last-child { display: grid; gap: 2px; }
.petlist__link small { font-size: 13px; }
.petlist__ic { width: 40px; height: 40px; border-radius: 12px; flex: none; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); }
@media (max-width: 520px) {
  .petrow__photo { width: 84px; height: 84px; border-radius: 18px; }
  .petrow__name { font-size: 19px; }
}
/* A régi rácskártya fotósávja: a kép mindig kitölti a keretet. */
.petcard__photo { position: relative; }
.petcard__photo img:not(.placeholder) { position: absolute; inset: 0; }

/* Faj választása nagy, koppintható gombokkal (a legördülő lista helyett). */
.pet-species { border: 0; padding: 0; margin: 0; min-width: 0; }
.pet-species legend { padding: 0; margin-bottom: 6px; font-weight: 600; font-size: .92rem; }
.pet-species__opts { display: flex; gap: 8px; flex-wrap: wrap; }
.pet-species__opt { position: relative; flex: 1 1 0; min-width: 84px; }
.pet-species__opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.pet-species__opt span { display: block; text-align: center; padding: 11px 10px; border-radius: 12px; border: 1.5px solid var(--line); background: var(--surface); font-weight: 600; transition: border-color .15s, background .15s; }
.pet-species__opt input:checked + span { border-color: var(--pine); background: color-mix(in srgb, var(--pine) 12%, var(--surface)); color: var(--pine); }
.pet-species__opt input:focus-visible + span { outline: 2px solid var(--pine); outline-offset: 2px; }

/* Kedvenc profilja: „Egészítsd ki” sáv a hiányzó alapadatokkal. */
.pet-complete { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 14px 18px; margin-bottom: 16px; }
.pet-complete__txt { flex: 1 1 220px; margin: 0; }
.pet-complete__txt strong { display: block; }
.pet-complete__list { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.pet-complete__list a { display: inline-flex; align-items: center; gap: 4px; padding: 7px 12px; border-radius: 999px; border: 1px dashed color-mix(in srgb, var(--pine) 45%, transparent); color: var(--pine); font-weight: 600; font-size: .9rem; text-decoration: none; background: var(--surface); }
.pet-complete__list a:hover { border-style: solid; }
/* A „+ Születésnap” és társai ide ugranak: a mező kiemelve. */
.form input:target, .form select:target { outline: 3px solid color-mix(in srgb, var(--pine) 45%, transparent); outline-offset: 2px; scroll-margin-top: 120px; }

/* assets/css/mod-ux-b.css */
/* UX-audit (B terület): egészség, gondozás, tenyésztés, kiállítások. Kis, célzott javítások. */

/* Kezelések: a hosszú napló korábbi napjai lenyithatók */
.med-tl-more { margin-top: 10px; }
.med-tl-more > summary { list-style: none; cursor: pointer; display: inline-flex; }
.med-tl-more > summary::-webkit-details-marker { display: none; }
.med-tl-more[open] > summary { margin-bottom: 10px; }
[aria-labelledby="h-sym"] .card__head > .muted { white-space: nowrap; }

/* Oltási igazolvány: a gomb ne tapadjon a szöveghez */
.vc-code-form { margin-top: 12px; }

/* Oltási könyv és egészségügyi összefoglaló: mobilon a táblázat sorai kártyaként,
   hogy ne csússzanak egymásra és ne vágódjanak le az oszlopok */
@media screen and (max-width: 600px) {
  :is(.acc-table--book, .ux-stack-table) thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  :is(.acc-table--book, .ux-stack-table), :is(.acc-table--book, .ux-stack-table) :is(tbody, tr, td) { display: block; width: 100%; }
  :is(.acc-table--book, .ux-stack-table) tr { padding: 10px 0; border-bottom: 1px solid var(--line); }
  :is(.acc-table--book, .ux-stack-table) tbody tr:last-child { border-bottom: 0; }
  :is(.acc-table--book, .ux-stack-table) td { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 8px; padding: 3px 0; border: 0; white-space: normal; }
  :is(.acc-table--book, .ux-stack-table) td::before { content: attr(data-label); font-size: 13px; color: var(--muted); font-weight: 600; }
  :is(.acc-table--book, .ux-stack-table) td:empty { display: none; }
}

/* Dokumentumok: a Törlés ne nézzen ki ugyanúgy, mint a Letöltés */
.dv-danger { color: var(--bad); }
.dv-jump { display: none; }
@media (max-width: 900px) { .dv-jump { display: inline-flex; } }
#feltoltes { scroll-margin-top: 80px; }

/* Költségek: olvasható diagramfeliratok mobilon, látható oszlopok sötét módban, nagyobb törlés-gomb */
@media (max-width: 600px) { .dv-bars text { font-size: 20px; } }
.dv-bars__bar { fill: color-mix(in srgb, var(--pine) 28%, transparent); }
.dv-exp__del { width: 40px; height: 40px; }
#uj-tetel { scroll-margin-top: 80px; }

/* Évkönyv: a hónapnevek nagybetűsítése ne tegye „Egész Évben” alakúvá a szöveget */
.yb-months time { text-transform: none; }
.yb-months time::first-letter { text-transform: uppercase; }

/* Gondozási lap: a link-űrlap ne tapadjon a bevezetőhöz */
.cs-newlink { margin-top: 14px; display: grid; gap: 12px; justify-items: start; }
.cs-newlink .field { width: 100%; margin: 0; }

/* Tápja: a mértékegység-választó ne vágja le a „kg” feliratot */
.fd-pack { grid-template-columns: minmax(56px, 1fr) 84px; }
.fd-pack select { padding-left: 12px; padding-right: 30px; text-overflow: clip; }

/* Tápajánló: a kedvenc-gyorsválasztó legyen érthető és jól koppintható */
.ux-petpick { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 6px; }
.ux-petpick__label { width: 100%; font-size: 14px; }
.ux-petpick .chip { min-height: 36px; padding: 6px 14px; font-size: 14px; display: inline-flex; align-items: center; text-decoration: none; }

/* Kuponjaim: kedvencenkénti Tápja-linkek a tippben */
.fd-forfood-hint p { margin: 0; }
.ux-pet-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px !important; }

/* Űrlap-központú oldalak mobilon: előbb az űrlap, utána a magyarázó oldalsáv */
@media (max-width: 900px) { .layout-2.ux-form-first > aside { order: 0; } }

/* Elveszett és talált: kompakt, egyforma szélességű szűrők mobilon */
@media (max-width: 600px) {
  .rep-filter { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; align-items: end; }
  .rep-filter .field { margin: 0; min-width: 0; }
  .rep-filter .field select { min-width: 0; width: 100%; }
  .rep-filter .field:nth-of-type(3) { grid-column: 1 / -1; }
  .rep-filter__check { padding-bottom: 0; align-self: center; }
  .rep-filter .btn { justify-self: end; }
}

/* Közös: törlés jellegű szöveges gomb pirosan, kényelmes koppintási mérettel */
.ux-del { color: var(--bad); min-height: 40px; }
/* Kártyafej, ahol a gomb ne törjön két sorba, inkább kerüljön a cím alá */
.ux-head-wrap { flex-wrap: wrap; gap: 8px 12px; }
.ux-head-wrap .btn { white-space: nowrap; }

/* Tenyésztői profil: a galéria kezelése mobilon is két oszlopban */
.bgal-admin { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }

/* Tenyésztők szűrője mobilon: két oszlop, a kereső teljes szélességben */
@media (max-width: 600px) {
  .ux-filter { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; align-items: end; }
  .ux-filter .field { margin: 0; min-width: 0; }
  .ux-filter .field select, .ux-filter .field input { min-width: 0; width: 100%; }
  .ux-filter .breeders__q { grid-column: 1 / -1; }
  .ux-filter .btn { width: 100%; }
}
.ux-head-wrap > .muted { white-space: nowrap; }

/* Elveszett mód sötét témában: mélyebb piros háttér, hogy a fehér szöveg jól olvasható legyen */
:root[data-theme="dark"] .lost-hero { background: linear-gradient(135deg, #B8433A, #8A2B24); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .lost-hero { background: linear-gradient(135deg, #B8433A, #8A2B24); } }

/* assets/css/mod-ux-c.css */
/* UX-audit (C): közösség, felfedezés, admin. Kis javítások, a meglévő modulok felett. */

/* Ismerősök / keresők: a kereső űrlap ne lógjon ki mobilon. */
.ssearch { min-width: 0; max-width: min(420px, 100%); }

/* Natív lenyíló listák (Safari/Chrome sötét mód): ne legyenek szürke rendszer-gombok. */
:where(select) { background-color: var(--surface); color: var(--ink); border-color: var(--line); }

/* „Demó” címke a címkesorokban: középre igazítva a többi címkéhez. */
.chip--demo { align-self: center; }

/* Bejegyzés gombsor: mobilon a feliratok szerint osztozzanak a helyen, az ikon ne zsugorodjon. */
.sact svg { flex: none; }
@media (max-width: 480px) {
  .spost__actions .sact, .spost__actions > .sact:last-child { flex: 1 1 auto; }
}

/* Állatorvos adatlap: a kijelölt kedvenc egyértelműen látsszon (pipa + erősebb keret). */
.vdir-petform .choice__item input:checked + span { border-width: 2px; font-weight: 800; }
.vdir-petform .choice__item input:checked + span::before { content: "✓"; color: var(--pine); font-weight: 800; }

/* Fejléc-kereső mobilon: a lenyitott kereső takarja el a fejléc ikonjait (ne lógjon ki mögüle a profilkép). */
@media (max-width: 1023px) {
  body.hsearch-open .hsearch { background: var(--paper); box-shadow: 0 0 0 8px var(--paper); border-radius: 999px; }
  body.hsearch-open .hsearch__close { width: 40px; height: 40px; place-items: center; border-radius: 50%; background: var(--paper-2); color: var(--ink); }
}

/* Admin áttekintés: a kattintható csempék nyíllal jelzik, hogy megnyithatók; mobilon két oszlop. */
.adm-shell a.acc-stat { position: relative; transition: border-color .15s ease, transform .15s ease; }
.adm-shell a.acc-stat::after { content: "›"; position: absolute; right: 16px; top: 14px; font-size: 22px; line-height: 1; color: var(--muted); }
.adm-shell a.acc-stat:hover { border-color: var(--pine); }
.adm-shell a.acc-stat:hover::after { color: var(--pine); }
@media (max-width: 560px) {
  .adm-shell .acc-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .adm-shell .acc-stat { padding: 14px; }
  .adm-shell .acc-stat .muted { font-size: 14px; line-height: 1.3; }
  .adm-shell a.acc-stat::after { right: 12px; top: 12px; }
}

/* Admin: a tab tetején álló magyarázó szöveg ne tapadjon a kártyához; a táblázatbeli lenyílók legyenek tapintható méretűek. */
.adm-main > p.acc-small { margin: 0 0 12px; line-height: 1.45; }
.adm-main > * + p.acc-small { margin-top: 12px; }
.adm-main .acc-table select { min-height: 36px; padding: 6px 36px 6px 12px; border: 1.5px solid var(--line); border-radius: var(--r-sm); font: inherit; font-size: 14px; background-position: right 10px center; }

/* Lebegő „Üzenetek” gomb (asztali): az oldal alja ne csússzon alá, legyen hova görgetni. */
@media (min-width: 1000px) {
  body:has(.sdock:not([hidden])) { padding-bottom: 76px; }
  .sdock__pill { padding: 8px 16px; margin-bottom: 14px; }
}

/* Lábléc mobilon: kényelmes, legalább 40 px magas koppintási felület a linkeknek. */
@media (max-width: 760px) {
  .footer__col { gap: 0; }
  .footer__col > a, .footer__col li > a, .footer__col nav > a { display: flex; align-items: center; min-height: 40px; }
  .footer__links a { display: inline-flex; align-items: center; min-height: 40px; }
}

/* Közösségi fülek keskeny kijelzőn: mindhárom fül férjen ki, ne vágódjon el a szöveg. */
@media (max-width: 420px) {
  .stabs a { padding-left: 11px; padding-right: 11px; font-size: 15px; }
}

/* assets/css/mod-ux-gap.css */
/* ==========================================================================
   Egységes térköz az egymás mellé vagy alá kerülő gombok között.
   Gombok: 8px (vízszintesen és tördeléskor függőlegesen is).
   Kis címkék (chip): 6px.
   A "body" előtag azért kell, hogy a később betöltődő mod-*.css fájlok
   (pl. mod-vetdir, mod-vets) ne írják felül.
   ========================================================================== */

/* --- Általános gombsor osztály (PHP-ban, ahol a tárolónak nem volt osztálya) */
body .ux-btnrow { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

/* --- Osztály nélküli p / div / form, amelyben csak gombok vannak ----------
   Csak akkor lép életbe, ha legalább két gomb áll közvetlenül egymás után,
   és a tárolóban nincs más elem (a rejtett mezők és a <br> kivételével). */
body :is(p, div):not([class]):has(> .btn + .btn):not(:has(> :not(.btn, br))),
body form:not([class]):has(> .btn ~ .btn):not(:has(> :not(.btn, input[type="hidden"], br))) {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
}

/* --- Konkrét gombsorok, amelyek eddig nem voltak flex/gap tárolók ---------- */
body .search-page__more { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
body .bprof-hero__info > p:has(> .mod-userlink + .mod-userlink) { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
body .bprof-hero__info > p:has(> .mod-userlink + .mod-userlink) > .mod-userlink { margin-top: 0; }
body .bprof-hero__info > p:has(> .mod-userlink + .mod-userlink) { margin-top: 6px; }

/* Megosztás gombsor + utána egy újabb gombsor (ajánló oldal) */
body .grow-share + .pagehead__actions { margin-top: 8px; }

/* Admin táblák: egymás alá kerülő Szerkesztés gomb és Törlés űrlap */
body td.acc-actions > .btn + form { margin-top: 8px; }
body .acc-table td > form:has(> .btn ~ .btn) { display: inline-flex !important; flex-wrap: wrap; align-items: center; gap: 8px; }

/* Saját oldal állapotkártya: egymás melletti, egygombos űrlapok */
body .sajat-status form { margin: 0 4px 8px 0; }

/* --- 6px helyett 8px a gombsorokban -------------------------------------- */
body .vdir-admin-actions,
body .dv-doc__actions,
body .cs-linkitem__actions,
body .vet-weeknav,
body .sajat-postlist__act,
body .adm-users__act,
body .med-item__actions,
body .med-tr__actions,
body .ssug__act,
body .acc-portal { gap: 8px; }

@media (max-width: 760px) {
  body .pp-actions { gap: 8px; }
}

/* assets/css/mod-vaccine-card.css */
/* Digitális oltási igazolvány (oltasi-igazolvany.php, igazolvany.php, rendelői oltásigazolás) */

.vc-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 16px; align-items: start; padding-bottom: 64px; }
.vc-main, .vc-side { display: grid; gap: 16px; min-width: 0; }
.vc-main > .card + .card, .vc-side > .card + .card { margin-top: 0; }
@media (max-width: 900px) { .vc-layout { grid-template-columns: minmax(0, 1fr); } }

.vc-public { max-width: 640px; display: grid; gap: 16px; padding-bottom: 64px; }
.vc-public > .card + .card { margin-top: 0; }

/* Igazolvány-kártya */
.vc-card { border-radius: var(--r-lg); overflow: hidden; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lift); }
.vc-card__band { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 18px; background: var(--pine); color: var(--on-pine); }
.vc-card__brand { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.vc-card__app { font-family: var(--font-display); font-weight: 800; font-size: 16px; }
.vc-card__id { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; align-items: center; padding: 18px 18px 6px; }
.vc-card__photo { width: 96px; aspect-ratio: 1; border-radius: var(--r-md); overflow: hidden; background: var(--paper-2); display: grid; place-items: center; box-shadow: 0 0 0 4px var(--pine-soft); }
.vc-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.vc-card__photo .placeholder { width: 52px; height: 52px; object-fit: contain; opacity: .7; }
.vc-card__who h1, .vc-card__who h2 { margin: 0; font-size: 28px; line-height: 1.1; overflow-wrap: anywhere; }
.vc-card__who p { margin: 4px 0 8px; color: var(--muted); }
.vc-card__facts { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 10px 14px; margin: 0; padding: 14px 18px; }
.vc-card__facts div { min-width: 0; }
.vc-card__facts dt { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.vc-card__facts dd { margin: 2px 0 0; font-weight: 600; overflow-wrap: anywhere; }
.vc-card__chip dd { font-variant-numeric: tabular-nums; letter-spacing: .02em; white-space: nowrap; }
.vc-card__warn { margin: 0 18px 12px; }
.vc-card__status { padding: 0 18px 18px; }
.vc-public .vc-card__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 560px) {
  .vc-card__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vc-card__chip { grid-column: 1 / -1; }
  .vc-card__id { grid-template-columns: 76px minmax(0, 1fr); gap: 12px; padding: 16px 16px 4px; }
  .vc-card__photo { width: 76px; }
  .vc-card__who h1, .vc-card__who h2 { font-size: 24px; }
  .vc-card__facts { padding: 12px 16px; }
  .vc-card__status { padding: 0 16px 16px; }
  .vc-card__band { padding: 10px 16px; }
  .vc-card__brand { font-size: 12px; letter-spacing: .04em; }
}

.vc-mono { font-variant-numeric: tabular-nums; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .95em; }

/* Veszettség-állapot */
.vc-rabies { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: start; padding: 14px 16px; border-radius: var(--r-md); background: var(--paper-2); color: var(--ink); }
.vc-rabies p { margin: 0; }
.vc-rabies__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--surface); }
.vc-rabies__k { font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.vc-rabies__k span { text-transform: none; letter-spacing: 0; font-weight: 600; padding: 1px 8px; margin-left: 4px; border-radius: 999px; background: var(--surface); }
.vc-rabies__v { font-family: var(--font-display); font-size: 22px; font-weight: 800; line-height: 1.2; margin-top: 2px !important; }
.vc-rabies__n { font-size: 15px; margin-top: 4px !important; }
.vc-rabies--good { background: var(--good-soft); }
.vc-rabies--good .vc-rabies__icon, .vc-rabies--good .vc-rabies__v { color: var(--good); }
.vc-rabies--warn { background: var(--warn-soft); }
.vc-rabies--warn .vc-rabies__icon, .vc-rabies--warn .vc-rabies__v { color: var(--warn); }
.vc-rabies--bad { background: var(--bad-soft); }
.vc-rabies--bad .vc-rabies__icon, .vc-rabies--bad .vc-rabies__v { color: var(--bad); }
.vc-rabies--neutral .vc-rabies__icon { color: var(--pine); }

.vc-sched { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.vc-sched li { display: grid; gap: 2px; padding: 10px 12px; border-radius: var(--r-sm); border: 1px dashed var(--line); font-size: 14px; position: relative; }
.vc-sched li span:last-child { color: var(--muted); }
.vc-sched li.is-done { border-style: solid; border-color: transparent; background: var(--good-soft); }
.vc-sched__dot { position: absolute; top: 10px; right: 10px; width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--line); display: grid; place-items: center; }
.vc-sched li.is-done .vc-sched__dot { border-color: var(--good); background: var(--good); color: var(--surface); }
@media (max-width: 560px) { .vc-sched { grid-template-columns: minmax(0, 1fr); } }

/* Jelvények */
.vc-badge { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; font-size: 13px; font-weight: 700; padding: 3px 10px; border-radius: 999px; background: var(--paper-2); color: var(--muted); }
.vc-badge--ok { background: var(--good-soft); color: var(--good); }

/* Oltások listája */
.vc-list { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; }
.vc-item { padding: 14px 16px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--surface); border-left: 4px solid var(--line); }
.vc-item--rabies { border-left-color: var(--pine); }
.vc-item__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 6px 10px; }
.vc-item__date { margin: 0; font-size: 14px; color: var(--muted); font-weight: 600; }
.vc-item__name { margin: 2px 0 0; font-size: 18px; }
.vc-item__meta { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px 16px; margin: 10px 0 0; }
.vc-item__meta div { min-width: 0; }
.vc-item__meta dt { font-size: 12px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.vc-item__meta dd { margin: 1px 0 0; overflow-wrap: anywhere; }
.vc-item__ok dt, .vc-item__ok dd { color: var(--good); }
.vc-item__ok { grid-column: 1 / -1; }
.vc-item__photo { display: inline-flex; align-items: center; gap: 10px; margin-top: 10px; text-decoration: none; font-weight: 600; font-size: 14px; }
.vc-item__photo img { width: 96px; height: 72px; object-fit: cover; border-radius: var(--r-sm); border: 1px solid var(--line); }
.vc-item__photo span { display: inline-flex; gap: 4px; align-items: center; }
.vc-item__edit { margin-top: 10px; }
.vc-item__edit summary { cursor: pointer; font-size: 14px; font-weight: 600; color: var(--pine); width: max-content; }
.vc-item__edit .form { margin-top: 12px; }
.vc-item__actions { display: flex; gap: 8px; }
.vc-item__del { margin-top: 8px; }
.vc-empty { margin: 14px 0 0; }

.vc-deworm { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 16px; margin: 0; }
.vc-deworm dt { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.vc-deworm dd { margin: 3px 0 0; font-weight: 600; }
@media (max-width: 560px) { .vc-deworm { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }

.vc-disclaimer { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: start; margin: 0; padding: 14px 16px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--paper-2); color: var(--muted); font-size: 15px; }
.vc-disclaimer svg { margin-top: 2px; color: var(--pine); }

/* QR és megosztás */
.vc-qr { display: grid; justify-items: center; gap: 10px; text-align: center; margin-top: 6px; }
.vc-qr__code { width: 184px; height: 184px; padding: 6px; border-radius: var(--r-md); background: #fff; box-shadow: 0 0 0 1px var(--line); }
.vc-qr__code svg { width: 100%; height: 100%; display: block; }
.vc-qr__url { margin: 0; font-size: 13px; word-break: break-all; max-width: 100%; }
.vc-qr__actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.vc-shares { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 6px; }
.vc-shares li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 10px; border-radius: var(--r-sm); background: var(--paper-2); }
.vc-shares li > div { display: grid; min-width: 0; }
.vc-shares li.is-current { box-shadow: inset 0 0 0 2px var(--pine-soft); }
.vc-shares a { font-weight: 600; }
.vc-share-new { display: flex; align-items: flex-end; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.vc-share-new .field { flex: 1 1 140px; }

.vc-code { margin: 10px 0 4px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 38px; font-weight: 800; letter-spacing: .12em; text-align: center; padding: 14px 8px; border-radius: var(--r-md); background: var(--pine-soft); color: var(--pine); }
.vc-code__exp { text-align: center; margin: 0 0 8px; }

/* Rendelői fül */
.vc-clinic .vc-codeform { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; margin-top: 12px; }
.vc-clinic .vc-codeform .field { flex: 0 1 220px; }
.vc-codeinput { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 22px !important; letter-spacing: .12em; text-transform: uppercase; }
.vc-clinic__pet { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 14px; align-items: center; margin-bottom: 12px; }
.vc-clinic__pet h3 { margin: 0; font-size: 22px; }
.vc-clinic__pet p { margin: 2px 0; }
.vc-clinic__photo { width: 84px; aspect-ratio: 1; border-radius: var(--r-md); overflow: hidden; background: var(--paper-2); display: grid; place-items: center; }
.vc-clinic__photo img { width: 100%; height: 100%; object-fit: cover; }
.vc-clinic__photo .placeholder { width: 46px; height: 46px; object-fit: contain; }
.vc-confirm-list { list-style: none; margin: 14px 0; padding: 0; display: grid; gap: 10px; }
.vc-confirm-item { padding: 12px 14px; border-radius: var(--r-md); border: 1px solid var(--line); }
.vc-confirm-item.is-confirmed { background: var(--good-soft); border-color: transparent; }
.vc-confirm-item__head { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.vc-confirm-item__fields { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin: 10px 0 6px; }
.vc-confirm-item p { margin: 4px 0 0; }
.vc-clinic-add { margin-top: 16px; }
.vc-clinic-end { margin-top: 12px; }
.vc-clinic__foot { margin: 16px 0 0; }

@media print {
  .vc-side, .vc-item__edit, .addform { display: none !important; }
  .vc-layout { grid-template-columns: 1fr; }
}

/* assets/css/mod-vbook.css */
/* Digitális oltási könyv (lapozható füzet). */
.vbook { --vb-w: 300px; position: relative; max-width: 100%; }
.vbook__pages { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px 4px 18px; scrollbar-width: none; }
.vbook__pages::-webkit-scrollbar { display: none; }
.vb-page { flex: 0 0 var(--vb-w); aspect-ratio: 3 / 4.15; scroll-snap-align: start; border-radius: 6px 16px 16px 6px; padding: 18px 18px 16px; position: relative; overflow: hidden;
  background: #FFFDF8; color: #2A2335; box-shadow: inset 6px 0 10px -6px rgba(60, 40, 90, .25), 0 18px 36px -22px rgba(34, 22, 58, .45); border: 1px solid #EDE6F5; display: flex; flex-direction: column; gap: 10px; }
.vb-page::before { content: ""; position: absolute; inset: 0; background-image: repeating-linear-gradient(0deg, transparent 0 27px, rgba(107, 78, 155, .06) 27px 28px); pointer-events: none; }
.vb-page__h { margin: 0; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; font-weight: 800; color: #6B4E9B; position: relative; }
.vb-cover { background: radial-gradient(120% 90% at 20% 10%, #8C6CC0 0%, #5B3E8A 45%, #3A2560 100%); color: #FBF7FF; border: 0; justify-content: flex-end; }
.vb-cover::before { display: none; }
.vb-cover__paws { position: absolute; inset: 0; opacity: .1; background-image: radial-gradient(circle at 20px 20px, #fff 4px, transparent 5px), radial-gradient(circle at 34px 14px, #fff 4px, transparent 5px), radial-gradient(circle at 48px 20px, #fff 4px, transparent 5px), radial-gradient(ellipse at 34px 34px, #fff 9px, transparent 10px); background-size: 70px 60px; transform: rotate(-12deg) scale(1.3); }
.vb-cover__brand { position: absolute; top: 18px; left: 18px; display: inline-flex; gap: 6px; align-items: center; font-family: var(--font-display); font-weight: 800; font-size: 17px; color: #fff; }
.vb-cover__brand svg { color: #7FD9B5; }
.vb-cover__title { font-family: var(--font-display); font-size: 34px; line-height: 1; font-weight: 800; letter-spacing: -.02em; position: relative; }
.vb-cover__sub { font-size: 13px; opacity: .8; position: relative; }
.vb-cover__name { margin-top: 18px; padding: 8px 12px; border: 1.5px solid rgba(255,255,255,.55); border-radius: 10px; font-family: var(--font-display); font-weight: 800; font-size: 20px; position: relative; align-self: flex-start; background: rgba(255,255,255,.08); }
.vb-id__top { display: flex; gap: 12px; align-items: center; position: relative; }
.vb-id__photo { width: 84px; height: 100px; border-radius: 8px; overflow: hidden; border: 3px solid #fff; box-shadow: 0 4px 10px rgba(0,0,0,.18); transform: rotate(-2deg); flex: none; background: #EEE8F5; }
.vb-id__photo img { width: 100%; height: 100%; object-fit: cover; }
.vb-id__name { display: block; font-family: var(--font-display); font-size: 24px; line-height: 1.05; }
.vb-id__top span { font-size: 13px; color: #6A6178; }
.vb-id__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; margin: 4px 0 0; position: relative; }
.vb-id__facts div { border-bottom: 1px dashed #DCD3E8; padding-bottom: 4px; }
.vb-id__facts dt { font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; color: #8A8198; font-weight: 700; }
.vb-id__facts dd { margin: 1px 0 0; font-weight: 700; font-size: 13.5px; }
.vb-id__chip { grid-column: 1 / -1; }
.vb-id__chip dd { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .04em; }
.vb-id__note { margin: auto 0 0; font-size: 11.5px; color: #6B4E9B; display: inline-flex; gap: 5px; align-items: center; position: relative; }
.vb-entry { display: grid; grid-template-columns: 96px 1fr; gap: 10px; align-items: start; padding: 10px 0; border-bottom: 1px dashed #DCD3E8; position: relative; }
.vb-sticker { display: grid; gap: 2px; padding: 7px 8px 6px; background: #fff; border: 1px solid #E3DCEC; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.12); transform: rotate(-1.5deg); font-size: 10.5px; line-height: 1.2; }
.vb-entry.is-rabies .vb-sticker { border-top: 4px solid #C2405A; }
.vb-entry:not(.is-rabies) .vb-sticker { border-top: 4px solid #4E9C80; }
.vb-sticker__prod { font-weight: 800; color: #2A2335; }
.vb-sticker__lot { color: #6A6178; font-family: ui-monospace, Menlo, monospace; }
.vb-sticker__bar { height: 12px; margin-top: 3px; background: repeating-linear-gradient(90deg, #2A2335 0 1px, transparent 1px 3px, #2A2335 3px 5px, transparent 5px 6px); opacity: .75; }
.vb-entry__txt { display: grid; gap: 1px; font-size: 13px; }
.vb-entry__txt strong { font-size: 14px; }
.vb-entry__until { color: #1F7A55; font-weight: 700; }
.vb-entry__vet { color: #6A6178; font-style: italic; font-size: 12px; }
.vb-stamp { position: absolute; right: -2px; bottom: 6px; display: grid; justify-items: center; padding: 4px 8px; border: 2px solid #8A8198; color: #8A8198; border-radius: 50%; width: 62px; height: 62px; align-content: center; transform: rotate(-14deg);
  font-family: var(--font-display); font-weight: 800; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; opacity: .85; background: rgba(255,255,255,.4); }
.vb-stamp small { font-size: 8px; letter-spacing: .02em; text-transform: none; font-weight: 700; }
.vb-stamp.is-ok { border-color: #2F8F7A; color: #2F8F7A; }
.vb-empty { color: #8A8198; font-size: 13px; position: relative; }
.vb-table { width: 100%; border-collapse: collapse; font-size: 13px; position: relative; }
.vb-table th { text-align: left; font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; color: #8A8198; padding: 4px 0; border-bottom: 1.5px solid #DCD3E8; }
.vb-table td { padding: 6px 0; border-bottom: 1px dashed #DCD3E8; }
.vb-fine { margin: auto 0 0; font-size: 10.5px; color: #8A8198; position: relative; }
.vbook__nav { display: flex; align-items: center; justify-content: center; gap: 12px; }
.vbook__btn { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line); background: var(--paper); color: var(--ink); font-size: 22px; line-height: 1; cursor: pointer; }
.vbook__dots { display: inline-flex; gap: 6px; }
.vbook__dots i { width: 7px; height: 7px; border-radius: 50%; background: var(--line); }
.vbook__dots i.is-on { background: var(--pine); width: 18px; border-radius: 4px; }
@media (max-width: 520px) { .vbook { --vb-w: 82vw; } }
/* Kezdőlap: oltási könyv bemutató. */
.home-vbook { display: grid; grid-template-columns: 1fr 1.25fr; gap: 48px; align-items: center; padding-top: 40px; padding-bottom: 56px; }
.home-vbook h2 { font-size: clamp(28px, 3.6vw, 40px); letter-spacing: -0.03em; margin: 0 0 12px; }
.home-vbook__list { list-style: none; padding: 0; margin: 18px 0 22px; display: grid; gap: 10px; }
.home-vbook__list li { display: flex; gap: 10px; align-items: flex-start; }
.home-vbook__list li > span:first-child { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); }
.home-vbook .vbook { min-width: 0; }
@media (max-width: 900px) { .home-vbook { grid-template-columns: 1fr; gap: 24px; } }
/* Oltási igazolvány oldal: könyvnézet. */
.vc-bookview { margin-bottom: 18px; }
.vc-bookview > summary { cursor: pointer; font-weight: 800; color: var(--pine); padding: 4px 0 10px; }
.vc-main { min-width: 0; }
.vc-bookview { min-width: 0; overflow: hidden; }
.vb-entry__txt { padding-right: 54px; }
.vb-stamp { width: 54px; height: 54px; font-size: 11px; top: 8px; bottom: auto; right: 0; }
.vbook__pages { scroll-padding-left: 4px; }
.vbook__btn:disabled { opacity: .35; cursor: default; }
.vbook.is-single .vbook__nav { display: none; }

/* assets/css/mod-vetdir.css */
/* Állatorvos-lista, kedvenc állatorvosok, értékelések (includes/modules/vet_directory.php) */
:root { --vstar: #E39B22; --vstar-empty: #d9d4e0; }
:root[data-theme="dark"] { --vstar: #F6CE8C; --vstar-empty: #4a4456; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --vstar: #F6CE8C; --vstar-empty: #4a4456; } }

/* Csillagok */
.vstars { display: inline-flex; gap: 1px; line-height: 1; font-size: 16px; vertical-align: -1px; }
.vstars__s--full { color: var(--vstar); }
.vstars__s--empty { color: var(--vstar-empty); }
.vstars__s--half { background: linear-gradient(90deg, var(--vstar) 50%, var(--vstar-empty) 50%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.vrating { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; }
.vrating--none { font-size: 14px; }

/* Kereső */
.vdir-filter { display: grid; grid-template-columns: 2fr 1.4fr 1.2fr 1fr 1.2fr auto; gap: 12px; align-items: end; margin: 0 0 10px; }
.vdir-filter .field { margin: 0; min-width: 0; }
.vdir-filter .btn { height: 46px; }
.vdir-count { margin: 0 0 14px; font-size: 14px; }
@media (max-width: 980px) { .vdir-filter { grid-template-columns: 1fr 1fr; } .vdir-filter__q { grid-column: 1 / -1; } }
@media (max-width: 520px) { .vdir-filter { grid-template-columns: 1fr; } .vdir-filter .btn { width: 100%; } }

/* Kártyák */
.vdir-card__rating { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
.vdir-fans { display: inline-flex; align-items: center; gap: 5px; font-size: 14px; color: var(--muted); }
.vdir-fans svg { color: var(--bad); }
.vdir-fans--big { margin: 12px 0 0; font-size: 15px; font-weight: 600; }
.vdir-icon--user { background: var(--pine-soft); color: var(--pine); }
.vdir-card__pets { margin: 0; display: flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--good); }
.vdir-card__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.vdir-card .vdir-card__actions .btn { margin-top: 0; }
.chip--fav { display: inline-flex; align-items: center; gap: 4px; background: var(--bad-soft); color: var(--bad); }
.vdir-join-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }

/* „Akikhez jársz” sáv a listaoldalon */
.vdir-strip { margin: 0 0 24px; }
.vdir-strip__title { font-size: 18px; margin: 0 0 10px; }
.vdir-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.vdir-chip { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px 8px 12px; border-radius: 999px; text-decoration: none; color: var(--ink); }
.vdir-chip svg { color: var(--bad); flex: none; }
.vdir-chip strong, .vdir-chip small { display: block; line-height: 1.25; }
.vdir-chip small { font-size: 13px; }
.vdir-chip:hover { color: var(--ink); border-color: var(--pine); }

/* Áttekintő / fiók kártya */
.vdir-mini { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.vdir-mini li { display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items: center; padding: 10px 12px; border-radius: var(--r-md); background: var(--paper); border: 1px solid var(--line); }
.vdir-mini a { color: var(--ink); text-decoration: none; }
.vdir-mini a:hover strong { text-decoration: underline; }
.vdir-mini strong, .vdir-mini span.muted { display: block; }
.vdir-mini span.muted { font-size: 14px; }
.vdir-mini__tel { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 999px; background: var(--good-soft); color: var(--good) !important; }

/* Adatlap */
.vdir-layout { align-items: start; }
.vdir-summary { display: grid; grid-template-columns: auto 1fr; gap: 10px 28px; align-items: center; }
.vdir-summary .vdir-fans--big { grid-column: 1 / -1; margin: 0; }
.vdir-score { display: grid; justify-items: center; gap: 4px; text-align: center; }
.vdir-score__n { font-family: var(--font-display); font-weight: 800; font-size: 44px; line-height: 1; letter-spacing: -0.02em; }
.vdir-score__stars { font-size: 20px; }
.vdir-dist { margin: 0; display: grid; gap: 4px; }
.vdir-dist div { display: grid; grid-template-columns: 34px 1fr; gap: 8px; align-items: center; font-size: 14px; }
.vdir-dist dt { color: var(--muted); font-weight: 600; white-space: nowrap; }
.vdir-dist dd { margin: 0; display: grid; grid-template-columns: 1fr 28px; gap: 8px; align-items: center; text-align: right; }
.vdir-dist__bar { display: block; height: 8px; border-radius: 99px; background: var(--paper-2); overflow: hidden; }
.vdir-dist__bar span { display: block; height: 100%; background: var(--vstar); border-radius: 99px; }
@media (max-width: 520px) { .vdir-summary { grid-template-columns: 1fr; } }
.vdir-facts { margin: 0; display: grid; gap: 10px; }
.vdir-facts div { display: grid; grid-template-columns: 110px 1fr; gap: 8px; }
.vdir-facts dt { color: var(--muted); font-weight: 600; font-size: 14px; }
.vdir-facts dd { margin: 0; overflow-wrap: anywhere; }
.vdir-notes { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.vdir-notes p { margin: 0 0 6px; }
.vdir-isfav { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-weight: 700; color: var(--bad); }
.vdir-petform { margin-bottom: 10px; }
.vdir-unfav { margin: 0; }
.vdir-dupes { margin-bottom: 20px; border-color: var(--warn); }
.vdir-dupes .vet-cards { margin: 12px 0; }

/* Csillagválasztó: jobbról balra, hogy a :checked ~ kijelölje a kisebbeket is */
.vstars-input { border: 0; padding: 0; margin: 0; display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 2px; }
.vstars-input legend { font-weight: 600; margin-bottom: 4px; padding: 0; }
.vstars-input input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.vstars-input label { font-size: 34px; line-height: 1; color: var(--vstar-empty); cursor: pointer; padding: 0 2px; transition: color .12s, transform .12s; }
.vstars-input label:hover, .vstars-input label:hover ~ label,
.vstars-input input:checked ~ label { color: var(--vstar); }
.vstars-input input:focus-visible + label { outline: 3px solid var(--pine); outline-offset: 2px; border-radius: 6px; }
.vstars-input label:active { transform: scale(.92); }

/* Értékelések */
.vrev-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.vrev { padding: 16px 0; border-top: 1px solid var(--line); }
.vrev:first-child { border-top: 0; padding-top: 4px; }
.vrev.is-hidden { opacity: .75; }
.vrev__head { display: grid; grid-template-columns: 40px 1fr auto; gap: 10px; align-items: center; }
.vrev__head strong { font-size: 16px; }
.vrev__avatar { width: 40px; height: 40px; border-radius: 999px; display: grid; place-items: center; background: var(--pine-soft); color: var(--pine); font-weight: 800; }
.vrev__meta { display: block; font-size: 13px; }
.vrev__stars { font-size: 17px; }
.vrev__body { margin-top: 8px; }
.vrev__body p { margin: 0 0 6px; }
.vrev__reply { margin: 10px 0 0 50px; padding: 10px 14px; border-radius: var(--r-md); background: var(--good-soft); }
.vrev__reply strong { display: inline-flex; align-items: center; gap: 6px; color: var(--good); }
.vrev__reply p { margin: 4px 0 0; }
.vrev__replyform { margin: 10px 0 0 50px; }
.vrev__replyform summary { cursor: pointer; font-weight: 600; color: var(--pine); }
.vrev__replyform form { margin-top: 8px; }
.vrev__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 10px 0 0 50px; }
.vrev__actions form { margin: 0; }
.vrev__assign { margin: 10px 0 0 50px; padding: 8px 12px; border: 1px dashed var(--line, rgba(0,0,0,.15)); border-radius: 12px; }
.vrev__assign summary { cursor: pointer; font-weight: 600; color: var(--pine); display: inline-flex; align-items: center; gap: 6px; }
.vrev__assignform { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; margin-top: 8px; }
.vrev__assignform .field { flex: 1 1 240px; margin: 0; }
@media (max-width: 560px) { .vrev__assign { margin-left: 0; } }
.vrev__report { display: inline-flex; align-items: center; gap: 4px; background: none; border: 0; padding: 4px 6px; border-radius: 8px; font: inherit; font-size: 13px; color: var(--muted); cursor: pointer; }
.vrev__report:hover { color: var(--bad); background: var(--bad-soft); }
@media (max-width: 520px) {
  .vrev__head { grid-template-columns: 40px 1fr; }
  .vrev__stars { grid-column: 2; }
  .vrev__reply, .vrev__replyform, .vrev__actions { margin-left: 0; }
}

/* Kedvenc oldal: állatorvosa */
.vdir-petvets { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.vdir-petvets li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; }
.vdir-petvets a { font-weight: 700; }

/* Admin */
.vdir-admin-merge { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 6px; }
.vdir-admin-merge input { width: 90px; padding: 6px 8px; border-radius: 8px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; font-size: 14px; }
.vdir-admin-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.vdir-admin-actions form { margin: 0; }
.vdir-pubform { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); display: grid; gap: 10px; justify-items: start; }
.tag__vet { grid-column: 1 / -1; } .tag__vet h2 { font-size: 20px; margin: 0 0 10px; }

/* Telefonos demó (app-letoltes.php): kedvenc állatorvos és értékelés */
.ip-vet { display: flex; gap: .7em; align-items: center; padding: .7em .8em; }
.ip-vet .ip-next__ic { background: var(--ip-accent-soft); color: var(--ip-accent-text); }
.ip-vet .ip-col { flex: 1; min-width: 0; }
.iphone__screen .ip-vet__fav { flex: none; color: var(--ip-danger); background: var(--ip-accent-soft); }
.ip-vetstats { display: flex; flex-wrap: wrap; align-items: center; gap: .35em .5em; font-size: .9em; color: var(--ip-muted); }
.ip-vetstats b { color: var(--ip-text); }
.ip-vetfans { display: inline-flex; align-items: center; gap: .25em; }
.ip-vetfans svg { width: 1.05em; height: 1.05em; color: var(--ip-danger); }
.ip-stars i { font-style: normal; color: var(--ip-off); }
.ip-stars i.is-on { color: #E39B22; }
.ip-stars i.is-half { background: linear-gradient(90deg, #E39B22 50%, var(--ip-off) 50%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ip-stars--sm { font-size: .82em; font-weight: 400; margin-left: .3em; }
.ip-vetbtns { display: flex; gap: .5em; }
.iphone__screen .ip-pill--ghost { background: var(--ip-card); color: var(--ip-accent-text); box-shadow: var(--ip-shadow); }
.ip-review { display: grid; gap: .55em; }
.ip-starpick { display: flex; gap: .15em; }
.iphone__screen .ip-starpick button { font-size: 1.7em; line-height: 1; padding: 0 .08em; color: var(--ip-off); background: none; transition: color .15s, transform .12s; }
.iphone__screen .ip-starpick button.is-on { color: #E39B22; }
.iphone__screen .ip-starpick button:active { transform: scale(.9); }
.ip-review textarea { font: inherit; font-size: .82em; padding: .6em .8em; border-radius: 1em; border: 1px solid var(--ip-line); background: var(--ip-card); color: var(--ip-text); resize: none; user-select: text; }
.ip-review textarea:focus { outline: none; border-color: var(--ip-accent); }
.ip-reviews p { margin: .3em 0 0; font-size: .92em; color: var(--ip-text); white-space: normal; }
.ip-reviews .ip-reply { padding: .45em .6em; border-radius: .7em; background: var(--ip-accent-soft); font-size: .85em; }

/* Szolgáltatótípusok (szolgaltatok.php): fülek, típus-címke, csoportosított „Akikhez jársz” */
.vdir-tabs { display: flex; gap: 8px; margin: 0 0 20px; overflow-x: auto; padding: 2px 2px 6px; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.vdir-tab { display: inline-flex; align-items: center; gap: 6px; flex: none; padding: 9px 15px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font-weight: 600; font-size: 14.5px; text-decoration: none; white-space: nowrap; }
.vdir-tab:hover { border-color: var(--pine); color: var(--pine); }
.vdir-tab.is-active { background: var(--pine); border-color: var(--pine); color: var(--on-pine); }
.vdir-tab--out { border-style: dashed; }
.vdir-tab:focus-visible { outline: 2px solid var(--pine); outline-offset: 2px; }
.chip--type { display: inline-flex; align-items: center; gap: 4px; background: var(--pine-soft); color: var(--pine); }
.vdir-card__services { margin: 0; font-size: 14px; }
.vdir-mine__group { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 14px 0 4px; }
.vdir-mine__group:first-of-type { margin-top: 4px; }
.vdir-typepick { display: flex; flex-wrap: wrap; gap: 8px; }
.vdir-typepick .choice__item span { display: inline-flex; align-items: center; gap: 6px; }
.vdir-tips { margin-top: 24px; }
[data-ptype-only][hidden] { display: none !important; }
.vrev__avatar { overflow: hidden; flex: none; }
.vrev__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Szolgáltató profilképe (adatlap fejléc és kártya) */
.vdir-head { display: flex; align-items: center; gap: 16px; }
.vdir-photo { display: block; flex: none; border-radius: 50%; overflow: hidden; background: var(--pine-soft); }
.vdir-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; display: block; }
.vdir-photo--lg { width: 96px; height: 96px; box-shadow: 0 0 0 4px var(--surface), 0 6px 18px rgba(30, 20, 60, .18); }
.vdir-photo--card { padding: 0 !important; overflow: hidden; border-radius: 50% !important; }
.vdir-photo-edit { margin-top: 10px; font-size: 14px; }
.vdir-photo-edit > summary { cursor: pointer; color: var(--pine); font-weight: 600; }
.vdir-photo-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0 4px; }
@media (max-width: 560px) { .vdir-photo--lg { width: 72px; height: 72px; } }
.vdir-photo--chip { width: 28px; height: 28px; }
.vdir-photo--mini { padding: 0 !important; overflow: hidden; border-radius: 50% !important; }
.vdir-photo-form .field { margin: 0; flex: 1 1 260px; }
.vdir-photo-edit { max-width: 560px; }
.vdir-photo-edit form + form { margin-top: 4px; }
/* A szakember (pl. az állatorvos) arcképe az adatlapon */
.vdir-person { display: flex; align-items: center; gap: 18px; padding: 18px; }
.vdir-person__photo { flex: none; width: 120px; height: 120px; border-radius: 18px; overflow: hidden; background: var(--pine-soft); box-shadow: 0 8px 20px -10px rgba(30, 20, 60, .35); }
.vdir-person__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; display: block; }
.vdir-person__eyebrow { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.vdir-person__name { margin: 2px 0 4px; font-family: var(--font-display); font-size: 22px; font-weight: 800; line-height: 1.2; }
.vdir-person p:last-child { margin-bottom: 0; }
@media (max-width: 520px) { .vdir-person__photo { width: 88px; height: 88px; } .vdir-person__name { font-size: 19px; } }
/* A profilkép többnyire logó: teljes egészében látsszon, fehér alapon (ne vágja le a kör). */
.vdir-photo { background: #fff !important; border: 1px solid var(--line); }
.vdir-photo img { object-fit: contain; object-position: center; padding: 6%; box-sizing: border-box; }

/* z58: Bundee-partner jelvény, foglalás kártya, üres értékelés */
.vpart-chip { background: linear-gradient(180deg, #F3CC6E, #D99A1E); color: #3A2600; font-weight: 800; border-color: transparent; }
.vpart-card { border: 1px solid color-mix(in srgb, #D99A1E 45%, var(--line)); background: linear-gradient(160deg, color-mix(in srgb, #F3CC6E 14%, var(--surface)), var(--surface) 60%); }
.vpart-card__eyebrow { margin: 0 0 4px; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #9A6A00; }
:root[data-theme="dark"] .vpart-card__eyebrow { color: #F2C46D; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .vpart-card__eyebrow { color: #F2C46D; } }
.vpart-card h2 { margin: 0 0 6px; font-size: 1.2rem; }
.vpart-card .muted { margin: 0 0 12px; }
.vpart-card__slot { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-size: .95rem; }
.vpart-card__slot svg { color: var(--pine); flex: none; }
.vpart-card__offer { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; padding: 8px 10px; border-radius: 10px; background: color-mix(in srgb, #F3CC6E 22%, var(--surface)); font-weight: 700; font-size: .92rem; }
.vdir-noreview { display: flex; gap: 12px; align-items: flex-start; padding: 12px; border-radius: 14px; background: var(--pine-soft); }
.vdir-noreview__ic { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--surface); color: #E5A92B; flex: none; }
.vdir-noreview div { display: flex; flex-direction: column; gap: 2px; }

/* assets/css/mod-vetint.css */
/* Rendelői integrációk: beágyazható foglaló, e-mailes műveletek, integrációk fül */
.vw { background: var(--paper); min-height: 100vh; }
.vw__main { max-width: 560px; margin: 0 auto; padding: 18px 16px 20px; display: grid; gap: 14px; }
.vw__eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pine); margin: 0 0 4px; }
.vw__title { font-size: 24px; margin: 0; }
.vw__addr { margin: 2px 0 0; font-size: 15px; }
.vw__nav { display: flex; gap: 8px; justify-content: flex-end; }
.vw__days { display: grid; gap: 12px; }
.vw__day h2 { font-family: var(--font-body); font-size: 15px; color: var(--muted); margin: 0 0 6px; }
.vw__slot { display: inline-block; min-width: 64px; text-align: center; padding: 8px 10px; border-radius: 999px; border: 1.5px solid var(--line); background: var(--surface); color: var(--ink); font-weight: 700; font-size: 15px; text-decoration: none; font-variant-numeric: tabular-nums; }
.vw__slot:hover, .vw__slot:focus-visible { border-color: var(--pine); color: var(--pine); }
.vw__foot { display: grid; gap: 6px; padding-top: 4px; }
.vw__hint { font-size: 13px; margin: 0; text-align: center; }
.vw__empty { text-align: center; padding: 40px 8px; }

.vet-mailaction { display: grid; place-items: center; }
.vet-mailaction__card { max-width: 520px; width: 100%; display: grid; gap: 12px; }
.vet-mailaction__card h1 { font-size: 26px; margin: 0; }
.vet-mailaction__card .facts { margin: 0; }
.vet-mailaction__icon { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; }
.vet-mailaction__icon.is-ok { background: var(--good-soft); color: var(--good); }
.vet-mailaction__icon.is-warn { background: var(--warn-soft); color: var(--warn); }

.vint-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 16px; align-items: start; padding-bottom: 64px; }
.vint-grid > .card + .card { margin-top: 0; }
.vint-step { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--pine-soft); color: var(--pine); font-weight: 800; font-size: 14px; margin-right: 6px; }
.vint-copy { display: flex; gap: 8px; align-items: stretch; }
.vint-copy input, .vint-copy textarea { flex: 1; min-width: 0; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; padding: 10px 12px; border-radius: var(--r-sm); border: 1.5px solid var(--line); background: var(--paper); color: var(--ink); }
.vint-copy textarea { min-height: 76px; resize: vertical; }
.vint-copy .btn { flex: none; align-self: flex-start; }
.vint-meta { font-size: 14px; color: var(--muted); margin: 0; }
.vint-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.vint-list li { display: flex; justify-content: space-between; gap: 10px; align-items: center; padding: 8px 10px; border-radius: var(--r-sm); background: var(--paper-2); font-size: 15px; }
.vint-list li form { margin: 0; }
.vint-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.vint-actions form { margin: 0; }
.vint-links { display: grid; gap: 8px; }
.vint-links a { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border-radius: var(--r-md); background: var(--paper-2); color: var(--ink); text-decoration: none; font-weight: 600; }
.vint-links a:hover { background: var(--pine-soft); color: var(--ink); }
.vint-staff { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.vint-staff li { display: flex; gap: 12px; align-items: center; padding: 10px 12px; border-radius: var(--r-md); background: var(--paper-2); }
.vint-staff li > div { flex: 1; min-width: 0; }
.vint-staff strong { display: block; }
.vint-staff small { color: var(--muted); overflow-wrap: anywhere; }
.vint-staff form { margin: 0; }
.vint-role { margin-bottom: 16px; }
.vet-busy-form { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.vet-busy-form .field:first-child { grid-column: 1 / -1; }
@media (max-width: 520px) {
  .vint-grid { grid-template-columns: 1fr; }
  .vint-copy { flex-direction: column; }
  .vet-busy-form { grid-template-columns: 1fr 1fr; }
}

/* Rendelői meghívás sáv (vezérlőpult, rendelő kezelése) */
.vint-invites { display: grid; gap: 10px; margin: 20px 0 8px; }
.vint-invite { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-left: 4px solid var(--pine, currentColor); }
.vint-invite__icon { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--pine-soft); color: var(--ink); }
.vint-invite__text { flex: 1; min-width: 0; display: grid; gap: 2px; }
.vint-invite__text small { color: var(--muted, inherit); }
.vint-invite__actions { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 520px) {
  .vint-invite { flex-wrap: wrap; }
  .vint-invite__actions { width: 100%; }
  .vint-invite__actions .btn { flex: 1; }
}

/* assets/css/mod-vets.css */
/* Partner állatorvosok és időpontfoglalás */
.vet-partners { margin-bottom: 40px; }
.vet-partners__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.vet-partners__head h2 { margin: 0; font-size: 26px; }
.vet-filter { margin-bottom: 0; }
.vet-filter .field { min-width: 160px; }
.vet-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.vet-card { display: flex; flex-direction: column; gap: 10px; margin: 0; }
.card + .vet-card, .vet-card + .vet-card { margin-top: 0; }
.vet-card__top { display: flex; gap: 12px; align-items: flex-start; }
.vet-card__top h3 { margin: 0 0 2px; font-size: 19px; }
.vet-card__top h3 a { color: var(--ink); text-decoration: none; }
.vet-card__top h3 a:hover { color: var(--pine); text-decoration: underline; }
.vet-card__top p { margin: 0; font-size: 15px; }
.vet-card__icon { flex: none; width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: var(--good-soft); color: var(--good); }
.vet-card .chips { margin-top: 0; }
.vet-card__services { margin: 0; font-size: 14px; }
.vet-card .btn { align-self: flex-start; margin-top: auto; }
.vet-join { display: flex; gap: 12px; align-items: center; margin-top: 14px; padding: 14px 16px; border-radius: var(--r-lg); text-decoration: none; color: var(--ink); }
.vet-join:hover { color: var(--ink); border-color: var(--pine); }
.vet-join strong { display: block; }
.vet-join small { display: block; font-size: 14px; }
.vet-osm-title { font-size: 22px; margin: 8px 0 14px; padding-top: 24px; border-top: 1px solid var(--line); }

/* Rendelő oldal */
.vet-weeknav { display: flex; gap: 6px; }
.vet-days { border: 0; margin: 0; padding: 0; display: grid; gap: 14px; }
.vet-day h3 { font-size: 15px; margin: 0 0 6px; color: var(--muted); font-family: var(--font-body); font-weight: 700; }
.vet-slots { display: flex; flex-wrap: wrap; gap: 6px; }
.vet-slot { position: relative; }
.vet-slot input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.vet-slot span { display: inline-block; min-width: 64px; text-align: center; padding: 8px 10px; border-radius: 999px; border: 1.5px solid var(--line); background: var(--surface); font-weight: 700; font-size: 15px; font-variant-numeric: tabular-nums; }
.vet-slot input:hover + span { border-color: var(--pine); }
.vet-slot input:checked + span { background: var(--pine); border-color: var(--pine); color: var(--on-pine); }
.vet-slot input:focus-visible + span { outline: 3px solid var(--pine); outline-offset: 2px; }
.vet-slot.is-static span { background: var(--paper-2); border-color: transparent; font-weight: 600; color: var(--muted); }
.vet-book { margin-top: 4px; }
.vet-picked:empty { display: none; }
.vet-picked { margin: 0; font-weight: 600; color: var(--ink); }
.vet-small { font-size: 14px; margin: 0; }
.vet-hours { margin: 0; display: grid; gap: 2px; }
.vet-hours div { display: flex; justify-content: space-between; gap: 12px; padding: 6px 8px; border-radius: var(--r-sm); }
.vet-hours div.is-today { background: var(--pine-soft); font-weight: 700; }
.vet-hours dt { font-weight: 600; }
.vet-hours dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }

/* Időpontok listája */
.vet-section-title { font-size: 22px; margin: 0; }
.vet-past { margin-top: 32px; }
.vet-appt { display: grid; grid-template-columns: 120px 1fr; gap: 16px; align-items: start; margin: 0; }
.stack > .vet-appt + .vet-appt { margin-top: 0; }
.vet-appt__when { display: grid; gap: 2px; padding: 10px 12px; border-radius: var(--r-md); background: var(--pine-soft); text-align: center; }
.vet-appt__when strong { font-size: 14px; line-height: 1.3; }
.vet-appt__time { font-family: var(--font-display); font-weight: 800; font-size: 26px; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.vet-appt--past .vet-appt__when { background: var(--paper-2); }
.vet-appt__body h3 { margin: 0 0 4px; font-size: 18px; }
.vet-appt__body p { margin: 0 0 6px; }
.vet-appt__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
.vet-appt__actions form { margin: 0; }
.vet-summary { margin-top: 8px; }
.vet-summary strong { display: block; margin-bottom: 4px; }
.vet-summary p { margin: 0 0 6px; }
.vet-summary p:last-child { margin-bottom: 0; }

/* Rendelő kezelése */
.vet-tabs { margin-bottom: 20px; max-width: 100%; overflow-x: auto; }
.vet-tabs a { white-space: nowrap; }
.vet-count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; margin-left: 4px; border-radius: 999px; background: var(--bad); color: #fff; font-size: 12px; font-weight: 700; }
.vet-decline, .vet-complete { position: relative; }
.vet-decline > summary, .vet-complete > summary { list-style: none; cursor: pointer; }
.vet-decline > summary::-webkit-details-marker, .vet-complete > summary::-webkit-details-marker { display: none; }
.vet-decline[open], .vet-complete[open] { flex-basis: 100%; }
.vet-decline[open] > form, .vet-complete[open] > form { margin-top: 10px; padding: 12px; border-radius: var(--r-md); background: var(--paper-2); }
.vet-daynav { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 16px; }
.vet-daynav__form { margin: 0; }
.vet-daynav__form input { font: inherit; padding: 7px 10px; border-radius: var(--r-sm); border: 1.5px solid var(--line); background: var(--surface); color: var(--ink); }
.vet-daynav__label { font-family: var(--font-display); font-size: 20px; margin-left: 4px; }
.vet-agenda { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.vet-agenda__item { display: grid; grid-template-columns: 110px 1fr; gap: 14px; align-items: start; margin: 0; }
.vet-agenda .card + .card { margin-top: 0; }
.vet-agenda__item.is-muted { opacity: .6; }
.vet-agenda__time { font-weight: 800; font-variant-numeric: tabular-nums; padding-top: 2px; }
.vet-hours-edit { display: grid; gap: 8px; }
.vet-hours-edit__row { border: 0; margin: 0; padding: 8px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; border-bottom: 1px solid var(--line); }
.vet-hours-edit__row legend { float: left; width: 96px; font-weight: 700; padding: 0; }
.vet-hours-edit__band { display: inline-flex; align-items: center; gap: 4px; }
.vet-hours-edit input { font: inherit; font-size: 15px; padding: 6px 8px; border-radius: var(--r-sm); border: 1.5px solid var(--line); background: var(--surface); color: var(--ink); width: 76px; text-align: center; font-variant-numeric: tabular-nums; }
.vet-hours-edit input:focus { outline: none; border-color: var(--pine); box-shadow: 0 0 0 3px var(--pine-soft); }
.vet-slotlen { max-width: 220px; }
.vet-closed { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 6px; }
.vet-closed li { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 8px 10px; border-radius: var(--r-sm); background: var(--paper-2); }
.vet-closed form { margin: 0; }
.vet-species { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px 16px; }
.vet-species legend { width: 100%; margin-bottom: 4px; }
.vet-benefits { padding-left: 18px; }

/* Áttekintő kártya */
.vet-dash { margin-bottom: 16px; }
.vet-mini { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.vet-mini li { display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items: center; padding: 10px 12px; border-radius: var(--r-md); background: var(--paper); border: 1px solid var(--line); }
.vet-mini strong, .vet-mini span.muted { display: block; }
.vet-mini span.muted { font-size: 14px; }
.vet-mini .chip { white-space: nowrap; }
.vet-mini__icon { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--good-soft); color: var(--good); }

@media (max-width: 560px) {
  .vet-appt, .vet-agenda__item { grid-template-columns: 1fr; gap: 10px; }
  .vet-appt__when { grid-auto-flow: column; justify-content: start; align-items: baseline; gap: 10px; text-align: left; }
  .vet-appt__time { font-size: 22px; }
  .vet-hours-edit__row legend { float: none; width: 100%; }
  .vet-mini li { grid-template-columns: 34px 1fr; }
  .vet-mini .chip { grid-column: 2; justify-self: start; }
}
/* Napválasztó: JS-sel egyszerre egy nap időpontjai látszanak */
.vet-daypick { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; margin-bottom: 12px; scrollbar-width: thin; }
.vet-daypick[hidden] { display: none; }
.vet-daypick__btn { flex: none; display: grid; gap: 2px; text-align: left; padding: 8px 12px; border-radius: var(--r-md); border: 1.5px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; cursor: pointer; }
.vet-daypick__btn strong { font-size: 14px; white-space: nowrap; }
.vet-daypick__btn span { font-size: 12px; color: var(--muted); }
.vet-daypick__btn:hover { border-color: var(--pine); }
.vet-daypick__btn.is-active { border-color: var(--pine); background: var(--pine-soft); }
.vet-days.is-picking .vet-day { display: none; }
.vet-days.is-picking .vet-day.is-active { display: block; }
.vet-days.is-picking .vet-day h3 { display: none; }
@media (max-width: 900px) { .layout-2.vet-clinic-layout > aside { order: 0; } }
.vet-clinic-layout > .stack, .vet-clinic-layout > aside { min-width: 0; }

