:root {
  --ink: #46525d;
  --muted: #646f77;
  --paper: #fffdf9;
  --cream: #f7f1e8;
  --sage: #aab89a;
  --sage-soft: #edf2e8;
  --teal: #6ca6ae;
  --teal-soft: #e8f3f4;
  --coral: #dc8793;
  --coral-soft: #faecee;
  --gold: #e9c86e;
  --gold-soft: #fbf4dc;
  --plum: #9b88a5;
  --plum-soft: #f0ebf3;
  --white: #ffffff;
  --danger: #b85f63;
  --shadow: 0 24px 70px rgba(70, 82, 93, .11);
  --radius: 34px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Nunito", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  font-size: 18px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.1; letter-spacing: -.035em; }
small { line-height: 1.45; }
[hidden], .is-hidden { display: none !important; }

.public-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(100% - 40px, 1440px);
  margin: 0 auto;
  padding: 22px 0;
}
.brand-lockup {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--ink);
  text-decoration: none;
}
.brand-lockup > span:last-child { display: grid; line-height: 1.05; }
.brand-lockup strong { color: #79886d; font-size: 25px; font-weight: 850; }
.brand-lockup small { margin-top: 5px; color: #9a765d; font-size: 13px; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.brand-mark {
  display: block;
  width: 52px;
  height: 52px;
  border-radius: 48% 52% 45% 55%;
  object-fit: cover;
  object-position: center;
}
.header-link { color: var(--muted); font-size: 16px; font-weight: 750; text-decoration-thickness: 1px; text-underline-offset: 5px; }

.booking-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(310px, .65fr);
  gap: clamp(40px, 7vw, 110px);
  align-items: end;
  overflow: hidden;
  padding: clamp(70px, 9vw, 135px) max(24px, calc((100vw - 1320px) / 2)) clamp(80px, 10vw, 145px);
  background:
    radial-gradient(circle at 88% 18%, rgba(220, 135, 147, .18) 0 120px, transparent 121px),
    radial-gradient(circle at 7% 86%, rgba(108, 166, 174, .19) 0 150px, transparent 151px),
    linear-gradient(132deg, #f8f1e7 0%, #fbf7f2 48%, #edf3eb 100%);
}
.booking-hero::after {
  content: "";
  position: absolute;
  right: -70px;
  bottom: -100px;
  width: 330px;
  height: 210px;
  border: 3px dashed rgba(155, 136, 165, .25);
  border-radius: 50%;
  transform: rotate(-13deg);
}
.booking-hero > div, .pass-note, .booking-note { position: relative; z-index: 1; }
.kicker {
  margin-bottom: 18px;
  color: #6f9aa0;
  font-size: 15px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.kicker span { display: inline-block; width: 12px; height: 12px; margin-right: 7px; border-radius: 50%; background: var(--coral); vertical-align: -1px; }
.booking-hero h1 {
  max-width: 890px;
  margin-bottom: 30px;
  font-size: clamp(48px, 5.6vw, 88px);
  font-weight: 780;
}
.booking-hero h1 em { color: var(--plum); font-family: Georgia, serif; font-weight: 400; }
.hero-lead { max-width: 770px; margin-bottom: 0; color: var(--muted); font-size: clamp(20px, 1.5vw, 24px); line-height: 1.68; }
.pass-note, .booking-note {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  padding: 28px;
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 42px 30px 48px 34px;
  background: rgba(255,255,255,.77);
  box-shadow: var(--shadow);
  backdrop-filter: blur(12px);
}
.pass-note-icon, .booking-note-icon { display: grid; place-items: center; flex: 0 0 62px; height: 62px; border-radius: 48% 52% 55% 45%; background: var(--gold-soft); color: #927530; font-size: 22px; font-weight: 900; transform: rotate(-5deg); }
.pass-note strong, .booking-note strong { display: block; margin-bottom: 6px; font-size: 20px; }
.pass-note p, .booking-note p { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.55; }
.pass-note .button, .booking-note .button { margin-top: 16px; }
.booking-pass-summary { display: flex; flex-direction: column; align-items: flex-start; }

.booking-browser { width: min(100% - 40px, 1320px); margin: 0 auto; padding: clamp(65px, 8vw, 110px) 0 120px; }
.filter-bar { display: flex; gap: 10px; overflow-x: auto; padding: 4px 2px 22px; scrollbar-width: thin; }
.filter-heading { display: none; }
.filter-chip { flex: 0 0 auto; padding: 12px 18px; border: 1px solid #dedfd8; border-radius: 999px; background: var(--white); color: var(--muted); cursor: pointer; font-size: 16px; font-weight: 750; transition: .2s ease; }
.filter-chip:hover, .filter-chip.is-active { border-color: var(--teal); background: var(--teal-soft); color: #3f7177; transform: translateY(-1px); }
.session-grid { display: grid; gap: 22px; }
.session-card {
  --accent: var(--sage);
  --accent-soft: var(--sage-soft);
  display: grid;
  grid-template-columns: 155px 1fr;
  overflow: hidden;
  border: 1px solid rgba(70,82,93,.08);
  border-radius: 46px 30px 48px 36px;
  background: var(--white);
  box-shadow: 0 18px 52px rgba(70,82,93,.08);
  transition: transform .2s ease, box-shadow .2s ease;
}
.session-card:nth-child(even) { border-radius: 30px 48px 35px 50px; }
.session-card:hover { transform: translateY(-3px); box-shadow: 0 26px 68px rgba(70,82,93,.12); }
.accent-coral { --accent: var(--coral); --accent-soft: var(--coral-soft); }
.accent-teal { --accent: var(--teal); --accent-soft: var(--teal-soft); }
.accent-gold { --accent: var(--gold); --accent-soft: var(--gold-soft); }
.accent-plum { --accent: var(--plum); --accent-soft: var(--plum-soft); }
.accent-sage { --accent: var(--sage); --accent-soft: var(--sage-soft); }
.date-tile { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 260px; padding: 28px 16px; background: var(--accent-soft); text-align: center; }
.date-tile strong { color: var(--accent); font-size: 58px; line-height: 1; }
.date-tile span { margin: 7px 0 18px; color: var(--ink); font-size: 14px; font-weight: 900; letter-spacing: .11em; }
.date-tile small { padding: 7px 13px; border-radius: 999px; background: rgba(255,255,255,.85); font-size: 16px; font-weight: 850; }
.session-main { padding: clamp(26px, 3.4vw, 45px); }
.session-topline { display: flex; flex-wrap: wrap; gap: 9px; justify-content: space-between; align-items: center; margin-bottom: 15px; }
.program-pill, .priority-pill { padding: 6px 11px; border-radius: 999px; font-size: 13px; font-weight: 850; letter-spacing: .04em; }
.program-pill { background: var(--accent-soft); color: var(--ink); }
.priority-pill { background: var(--gold-soft); color: #816923; }
.session-main h2 { margin-bottom: 9px; font-size: clamp(30px, 3vw, 44px); }
.session-main > p { max-width: 66ch; margin-bottom: 18px; color: var(--muted); font-size: 19px; line-height: 1.62; }
.session-meta { display: flex; flex-wrap: wrap; gap: 10px 18px; color: var(--muted); font-size: 15px; font-weight: 700; }
.together-note { display: grid; grid-template-columns: 38px 1fr; gap: 13px; align-items: start; max-width: 920px; margin-top: 22px; padding: 16px 18px; border: 1px solid #f0dfd2; border-radius: 19px 10px 19px 10px; background: #fff9f4; color: #6e665f; }
.together-note > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #f8e5de; color: #b86f72; font-weight: 900; }
.together-note p { margin: 0; font-size: 16px; line-height: 1.58; }
.together-note strong { color: #5f5550; }
.session-footer { display: flex; gap: 20px; align-items: center; justify-content: space-between; margin-top: 28px; padding-top: 22px; border-top: 1px solid #eeeae4; }
.availability { display: flex; align-items: center; gap: 9px; color: #5e806b; font-size: 16px; font-weight: 850; }
.availability.is-full { color: #9d6670; }
.availability-dots { width: 11px; height: 11px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 5px color-mix(in srgb, currentColor 14%, transparent); }

.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 20px; border: 0; border-radius: 999px; cursor: pointer; font-size: 16px; font-weight: 850; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: #53797c; color: var(--white); box-shadow: 0 12px 26px rgba(85,129,132,.2); }
.button-primary:hover { background: #496d70; box-shadow: 0 16px 32px rgba(85,129,132,.26); }
.button:disabled { cursor: not-allowed; opacity: .52; transform: none; box-shadow: none; }
.button-soft { background: var(--sage-soft); color: #5c6d4e; }
.button-danger { background: #b9696e; color: #fff; }
.button-large { width: 100%; min-height: 56px; font-size: 17px; }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; }

.global-alert { width: min(100% - 40px, 1320px); margin: 24px auto 0; }
.alert { padding: 15px 18px; border-radius: 16px; font-size: 16px; }
.alert-error { border: 1px solid #efc2c5; background: #fff0f1; color: #8b4d52; }
.alert-success { border: 1px solid #bed8c6; background: #eef8f1; color: #4d765a; }
.alert-info { border: 1px solid #c8dce0; background: #eff7f8; color: #4f7378; }

.empty-state { grid-column: 1 / -1; padding: 80px 30px; border: 2px dashed #d9ddd4; border-radius: 46px; background: var(--sage-soft); text-align: center; }
.empty-state > span { font-size: 50px; color: #8ba078; }
.empty-state h2 { margin: 12px 0; font-size: 34px; }
.empty-state p { margin: 0; color: var(--muted); font-size: 18px; }

.booking-dialog { width: min(720px, calc(100% - 24px)); max-height: calc(100vh - 24px); overflow-y: auto; padding: 0; border: 0; border-radius: 48px 34px 46px 36px; background: var(--paper); box-shadow: 0 32px 100px rgba(41,53,61,.25); }
.booking-dialog::backdrop { background: rgba(55,66,72,.5); backdrop-filter: blur(5px); }
.dialog-close { position: sticky; z-index: 3; top: 16px; float: right; display: grid; place-items: center; width: 42px; height: 42px; margin: 16px 16px -58px 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.88); color: var(--ink); cursor: pointer; font-size: 27px; box-shadow: 0 8px 22px rgba(70,82,93,.12); }
.dialog-heading { padding: 42px 50px 30px; background: linear-gradient(135deg, var(--coral-soft), var(--sage-soft)); }
.dialog-heading .kicker { margin-bottom: 10px; }
.dialog-heading h2 { margin-bottom: 10px; font-size: clamp(34px, 5vw, 48px); }
.dialog-heading > p:last-child { margin: 0; color: var(--muted); font-size: 18px; }
.booking-form, .form-stack { display: grid; gap: 18px; }
.booking-form { padding: 34px 50px 46px; }
label { display: grid; gap: 7px; }
label > span { color: var(--ink); font-size: 15px; font-weight: 800; }
label small { color: var(--muted); font-weight: 600; }
input, select, textarea { width: 100%; border: 1px solid #d9ded9; border-radius: 15px; background: #fff; color: var(--ink); outline: none; padding: 13px 15px; font-size: 17px; transition: border-color .15s, box-shadow .15s; }
input:focus, select:focus, textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 4px rgba(108,166,174,.15); }
textarea { resize: vertical; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.span-2 { grid-column: 1 / -1; }
.check-row { display: flex; grid-template-columns: none; gap: 10px; align-items: flex-start; }
.check-row input { flex: 0 0 auto; width: 20px; height: 20px; margin-top: 3px; accent-color: var(--teal); }
.check-row span { font-size: 14px; font-weight: 600; line-height: 1.5; }
.checkbox-row { display: flex; grid-template-columns: none; gap: 10px; align-items: flex-start; cursor: pointer; }
.checkbox-row input[type="checkbox"] { flex: 0 0 auto; width: 20px; height: 20px; margin: 3px 0 0; padding: 0; accent-color: var(--teal); }
.checkbox-row > span { font-size: 14px; font-weight: 600; line-height: 1.5; }
.alert .checkbox-row { margin-top: 10px; }
.form-note { margin: -5px 0 0; color: var(--muted); font-size: 14px; text-align: center; }

.narrow-section { min-height: calc(100vh - 170px); display: grid; place-items: center; padding: 70px 20px 110px; background: linear-gradient(145deg, var(--cream), var(--sage-soft)); }
.confirmation-card { width: min(100%, 720px); padding: clamp(34px, 6vw, 70px); border-radius: 54px 36px 60px 42px; background: #fff; box-shadow: var(--shadow); text-align: center; }
.confirmation-card h1 { font-size: clamp(38px, 6vw, 62px); }
.confirmation-card > p:not(.kicker):not(.muted) { font-size: 20px; line-height: 1.65; }
.success-icon { display: grid; place-items: center; width: 74px; height: 74px; margin: 0 auto 22px; border-radius: 50%; background: var(--sage-soft); color: #6b815c; font-size: 34px; }
.booking-code { margin: 25px 0; padding: 17px; border-radius: 16px; background: var(--gold-soft); }
.payment-next-step { margin: 22px 0; padding: 20px; border: 1px solid #c7ddd7; border-radius: 22px 14px 24px 16px; background: #f0f8f5; text-align: left; }
.payment-next-step strong { display: block; margin-bottom: 5px; font-size: 20px; }
.payment-next-step p { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.55; }
.muted { color: var(--muted); }
.confirmation-card form { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }

.public-footer { display: flex; flex-wrap: wrap; gap: 12px 35px; align-items: center; justify-content: center; padding: 40px 20px; background: #f4eee5; color: var(--muted); font-size: 14px; }
.public-footer strong { color: var(--ink); }
.public-footer a { margin-left: auto; opacity: .35; text-decoration: none; }

/* Sikeres fizetés utáni közös útvonal */
.payment-success-page {
  min-height: 100vh;
  background:
    radial-gradient(circle at 8% 18%, rgba(108, 166, 174, .14) 0 125px, transparent 126px),
    radial-gradient(circle at 92% 78%, rgba(220, 135, 147, .15) 0 155px, transparent 156px),
    linear-gradient(145deg, #fffdf9, #f8f1e8 55%, #edf2e8);
}
.payment-success-main { width: min(100% - 40px, 1140px); margin: 0 auto; padding: clamp(55px, 8vw, 105px) 0 110px; }
.payment-success-hero { max-width: 840px; margin: 0 auto clamp(38px, 6vw, 72px); text-align: center; }
.payment-success-hero .success-icon { margin-bottom: 25px; }
.payment-success-hero .kicker { margin-bottom: 16px; }
.payment-success-hero h1 { margin-bottom: 18px; font-size: clamp(48px, 7vw, 82px); font-weight: 760; }
.payment-success-hero > p:last-child { max-width: 650px; margin: 0 auto; color: var(--muted); font-size: clamp(19px, 2vw, 23px); line-height: 1.65; }
.payment-route-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 3vw, 34px); }
.payment-route-card { position: relative; display: flex; flex-direction: column; min-height: 480px; overflow: hidden; padding: clamp(30px, 4vw, 52px); border: 1px solid rgba(70,82,93,.09); background: rgba(255,255,255,.9); box-shadow: var(--shadow); }
.payment-route-card::after { content: ""; position: absolute; z-index: 0; width: 170px; height: 170px; border-radius: 50%; opacity: .55; }
.payment-route-booking { border-radius: 52px 31px 58px 38px; }
.payment-route-booking::after { top: -65px; right: -45px; background: var(--teal-soft); }
.payment-route-fixed { border-radius: 32px 56px 40px 60px; }
.payment-route-fixed::after { right: -50px; bottom: -70px; background: var(--coral-soft); }
.payment-route-card > * { position: relative; z-index: 1; }
.route-card-icon { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 28px; border-radius: 48% 52% 57% 43%; background: var(--teal-soft); color: #55898f; font-size: 29px; font-weight: 850; transform: rotate(-4deg); }
.payment-route-fixed .route-card-icon { background: var(--coral-soft); color: #b86f7c; transform: rotate(4deg); }
.route-eyebrow { margin-bottom: 10px; color: #6d989e; font-size: 14px; font-weight: 900; letter-spacing: .075em; text-transform: uppercase; }
.payment-route-fixed .route-eyebrow { color: #b4727d; }
.payment-route-card h2 { margin-bottom: 18px; font-size: clamp(30px, 3.2vw, 44px); }
.payment-route-card > p:not(.route-eyebrow) { margin-bottom: 30px; color: var(--muted); font-size: 19px; line-height: 1.65; }
.payment-route-card .button { margin-top: auto; }
.payment-help { max-width: 720px; margin: 42px auto 0; color: var(--muted); font-size: 16px; text-align: center; }

/* Telepítő és belépés */
.install-page, .admin-login-page { min-height: 100vh; background: radial-gradient(circle at 10% 15%, var(--teal-soft), transparent 28%), radial-gradient(circle at 90% 80%, var(--coral-soft), transparent 30%), var(--cream); }
.install-shell, .login-shell { width: min(100% - 32px, 900px); margin: 0 auto; padding: 55px 0 90px; }
.mini-brand { margin-bottom: 22px; color: #74866a; font-size: 19px; font-weight: 850; }
.mini-brand span { display: inline-grid; place-items: center; width: 38px; height: 38px; margin-right: 8px; border-radius: 50%; background: var(--sage-soft); }
.install-card, .login-card { padding: clamp(30px, 6vw, 65px); border-radius: 54px 36px 60px 42px; background: rgba(255,255,255,.92); box-shadow: var(--shadow); }
.install-card h1, .login-card h1 { font-size: clamp(38px, 6vw, 62px); }
.install-card .lead, .login-card > p:not(.kicker) { color: var(--muted); font-size: 19px; }
fieldset { margin: 0; padding: 22px; border: 1px solid #e4e2dc; border-radius: 22px; }
legend { padding: 0 8px; color: #74866a; font-weight: 850; }
code { padding: 2px 6px; border-radius: 7px; background: var(--cream); }
.login-shell { width: min(100% - 32px, 560px); }
.login-card { display: grid; gap: 18px; }
.text-link { color: var(--muted); font-size: 15px; text-align: center; }

/* Admin */
.admin-page { min-height: 100vh; background: #f7f7f3; }
.admin-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 10; display: flex; flex-direction: column; width: 260px; padding: 30px 24px; border-right: 1px solid #e2e4df; background: #fff; }
.admin-sidebar nav { display: grid; gap: 7px; min-height: 0; margin-top: 48px; overflow-y: auto; }
.admin-sidebar nav a, .admin-sidebar-bottom a { padding: 11px 13px; border-radius: 12px; color: var(--muted); font-size: 15px; font-weight: 750; text-decoration: none; }
.admin-sidebar nav a:hover { background: var(--sage-soft); color: var(--ink); }
.admin-sidebar nav a small { display: inline-grid; place-items: center; min-width: 20px; height: 20px; margin-left: 5px; padding: 0 6px; border-radius: 999px; background: var(--gold-soft); color: #876f45; font-size: 11px; }
.admin-sidebar-bottom { display: grid; gap: 4px; margin-top: auto; }
.admin-main { width: calc(100% - 260px); margin-left: 260px; padding: 42px clamp(24px, 4vw, 65px) 100px; }
.admin-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 34px; }
.admin-top h1 { margin: 0; font-size: clamp(34px, 4vw, 54px); }
.admin-top .kicker { margin-bottom: 8px; }
.admin-top > span { padding: 8px 13px; border-radius: 999px; background: var(--sage-soft); font-size: 14px; font-weight: 800; }
.admin-top-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px; }
.admin-top-actions > span { padding: 8px 13px; border-radius: 999px; background: var(--sage-soft); font-size: 14px; font-weight: 800; }
.admin-top-actions .button { white-space: nowrap; }
.admin-section { padding: 30px 0 45px; scroll-margin-top: 25px; }
.admin-section + .admin-section { border-top: 1px solid #e1e4de; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.stats-grid article { display: grid; gap: 14px; padding: 24px; border: 1px solid #e3e5e0; border-radius: 26px 20px 28px 22px; background: #fff; box-shadow: 0 12px 32px rgba(70,82,93,.05); }
.stats-grid span { color: var(--muted); font-size: 14px; font-weight: 750; }
.stats-grid strong { color: #6d8170; font-size: 42px; line-height: 1; }
.admin-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.admin-section-heading .kicker { margin-bottom: 5px; }
.admin-section-heading h2 { margin: 0; font-size: 36px; }
.section-help { max-width: 720px; margin: 8px 0 0; color: var(--muted); font-size: 17px; }
.program-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.program-editor-card { position: relative; overflow: hidden; border: 1px solid #e3e5df; border-radius: 32px 20px 34px 23px; background: var(--white); box-shadow: 0 14px 38px rgba(70,82,93,.07); }
.program-editor-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 7px; background: var(--sage); }
.program-editor-card.accent-border-coral::before { background: var(--coral); }
.program-editor-card.accent-border-teal::before { background: var(--teal); }
.program-editor-card.accent-border-gold::before { background: var(--gold); }
.program-editor-card.accent-border-plum::before { background: var(--plum); }
.program-editor-card.accent-border-sage::before { background: var(--sage); }
.program-editor-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 22px 24px 22px 29px; list-style: none; cursor: pointer; transition: background .18s ease; }
.program-editor-heading::-webkit-details-marker { display: none; }
.program-editor-heading::marker { display: none; content: ""; }
.program-editor-heading:hover { background: #fbfcf9; }
.program-editor-card[open] > .program-editor-heading { background: var(--sage-soft); }
.program-editor-heading > div { min-width: 0; }
.program-editor-heading > div > span { display: block; overflow: hidden; font-family: var(--font-display); font-size: 25px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.program-editor-heading > div > small { display: block; margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.program-editor-chevron { display: grid; flex: 0 0 auto; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #fff; color: #69806e; font-size: 22px; font-weight: 850; transition: transform .18s ease; }
.program-editor-card[open] .program-editor-chevron { transform: rotate(180deg); }
.program-editor-form { display: grid; gap: 15px; padding: 24px 26px 26px; border-top: 1px solid #dfe7e1; }
.program-editor-card label { display: grid; gap: 6px; }
.program-editor-card label > span { color: var(--muted); font-size: 14px; font-weight: 800; }
.program-editor-card input, .program-editor-card textarea { width: 100%; }
.program-number-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.capacity-field > small { color: var(--muted); font-size: 12px; line-height: 1.4; }
.program-editor-card label > small { color: var(--muted); font-size: 13px; line-height: 1.45; }
.admin-form { margin-bottom: 25px; padding: 25px; border: 1px solid #e1e3de; border-radius: 25px; background: #fff; }
.admin-form.is-collapsed { display: none; }
.reminder-panel { margin: 0 0 26px; padding: 25px; border: 1px solid #cfe0d5; border-radius: 30px 20px 32px 22px; background: linear-gradient(145deg, #f2f8f3, #fff); box-shadow: 0 14px 38px rgba(70,82,93,.06); }
.reminder-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.reminder-panel-heading h3 { margin: 3px 0 6px; font-size: 28px; }
.reminder-panel-heading p { max-width: 720px; margin: 0; color: var(--muted); line-height: 1.5; }
.reminder-panel-heading > strong { flex: 0 0 auto; padding: 9px 13px; border-radius: 999px; background: var(--teal-soft); color: #4f7f84; font-size: 14px; }
.reminder-filter-form { display: grid; grid-template-columns: minmax(170px, .55fr) minmax(260px, 1fr) auto; gap: 14px; align-items: end; margin-top: 22px; }
.reminder-filter-form label, .reminder-send-form label { display: grid; gap: 7px; }
.reminder-filter-form label > span, .reminder-send-form label > span { color: var(--muted); font-size: 13px; font-weight: 800; }
.reminder-summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 18px; margin-top: 22px; padding: 15px 17px; border-radius: 16px; background: var(--sage-soft); }
.reminder-summary span { color: var(--muted); }
.reminder-selection-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 18px; }
.reminder-selection-toolbar > strong { color: #5e7865; font-size: 15px; }
.reminder-selection-toolbar > div { display: flex; flex-wrap: wrap; gap: 7px; }
.reminder-selection-toolbar button { padding: 7px 11px; border: 1px solid #cfdcd3; border-radius: 999px; background: #fff; color: #5e7865; cursor: pointer; font-size: 12px; font-weight: 800; }
.reminder-selection-toolbar button:hover { background: var(--sage-soft); }
.reminder-recipient-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin: 13px 0; }
.reminder-recipient-card { position: relative; display: grid !important; grid-template-columns: 23px minmax(0, 1fr); gap: 11px !important; min-width: 0; padding: 13px 15px; border: 1px solid #dce4de; border-radius: 15px; background: #fff; cursor: pointer; transition: border-color .18s ease, background .18s ease; }
.reminder-recipient-card:has(input:checked) { border-color: #91b1a0; background: #f6faf6; }
.reminder-recipient-card > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.reminder-send-form .reminder-recipient-check { display: grid; place-items: center; width: 23px; height: 23px; border: 2px solid #c9d6ce; border-radius: 7px; background: #fff; color: transparent; font-size: 14px; font-weight: 900; }
.reminder-recipient-card input:checked + .reminder-recipient-check { border-color: #6f9598; background: #6f9598; color: #fff; }
.reminder-recipient-card input:focus-visible + .reminder-recipient-check { outline: 3px solid rgba(111,149,152,.24); outline-offset: 2px; }
.reminder-send-form .reminder-recipient-copy { display: grid; gap: 6px; min-width: 0; color: var(--ink); font-size: 14px; font-weight: 400; }
.reminder-recipient-copy > span { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; min-width: 0; }
.reminder-recipient-copy > span > span { overflow: hidden; color: #537f84; text-overflow: ellipsis; }
.reminder-recipient-copy > small { color: var(--muted); font-size: 13px; }
.reminder-send-form { display: grid; gap: 14px; margin-top: 17px; padding-top: 19px; border-top: 1px solid #dce6df; }
.reminder-send-form small { color: var(--muted); font-size: 12px; line-height: 1.45; }
.reminder-send-form .button { justify-self: start; }
.mailing-composer { overflow: hidden; border: 1px solid #cfded7; border-radius: 32px 21px 34px 23px; background: linear-gradient(145deg, #f4f9f5, #fff 46%, #f5f8ed); box-shadow: 0 16px 44px rgba(70,82,93,.07); }
.newsletter-template-composer { margin-bottom: 24px; border-color: #d8cfe1; background: linear-gradient(145deg, #f8f3fa, #fff 48%, #f2f7ed); }
.newsletter-template-actions { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.newsletter-template-actions .button:disabled { cursor: not-allowed; opacity: .5; }
.mailing-composer-heading, .mailing-archive-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.mailing-composer-heading { padding: 25px 27px 20px; border-bottom: 1px solid #dce6df; }
.mailing-composer-heading h3, .mailing-archive-heading h3, .mailing-recipient-heading h3 { margin: 3px 0 6px; font-size: 28px; }
.mailing-composer-heading p:not(.kicker) { max-width: 760px; margin: 0; color: var(--muted); line-height: 1.5; }
.mailing-composer-heading > strong, .mailing-archive-heading > strong { flex: 0 0 auto; padding: 9px 13px; border-radius: 999px; background: var(--teal-soft); color: #4f7f84; font-size: 13px; }
.mailing-form { display: grid; gap: 19px; padding: 25px 27px 29px; }
.mailing-form label { display: grid; gap: 7px; }
.mailing-form label > span { color: var(--muted); font-size: 13px; font-weight: 800; }
.mailing-form label > small { color: var(--muted); font-size: 12px; line-height: 1.45; }
.mailing-compose-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 18px; align-items: stretch; }
.mailing-editor { display: grid; gap: 15px; }
.mailing-editor input, .mailing-editor textarea { width: 100%; }
.mailing-editor textarea { min-height: 255px; resize: vertical; }
.mailing-format-picker { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin: 0; padding: 0; border: 0; }
.mailing-format-picker legend { grid-column: 1 / -1; margin-bottom: 1px; color: var(--muted); font-size: 13px; font-weight: 800; }
.mailing-format-picker label { position: relative; display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 9px; padding: 12px 13px; border: 1px solid #d8e2dc; border-radius: 15px 10px; background: #fff; cursor: pointer; }
.mailing-format-picker label:has(input:checked) { border-color: #83a79b; background: #f1f8f5; box-shadow: inset 0 0 0 1px rgba(111,149,152,.12); }
.mailing-format-picker input { align-self: start; width: 18px; height: 18px; margin: 2px 0 0; accent-color: #6f9598; }
.mailing-format-picker label > span { display: grid; gap: 3px; color: var(--ink); }
.mailing-format-picker strong { font-size: 13px; }
.mailing-format-picker small { color: var(--muted); font-size: 11px; font-weight: 500; line-height: 1.35; }
.mailing-preview { min-width: 0; padding: 20px; border: 1px solid #dce4de; border-radius: 23px 15px; background: #fff; box-shadow: 0 10px 28px rgba(70,82,93,.05); }
.mailing-preview > span { display: block; margin-bottom: 17px; color: var(--muted); font-size: 11px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.mailing-preview-brand { padding-bottom: 12px; border-bottom: 1px solid #e5e9e6; color: #64826e; font-family: var(--font-display); font-size: 18px; font-weight: 750; }
.mailing-preview h4 { margin: 19px 0 12px; overflow-wrap: anywhere; color: var(--ink); font: 750 25px/1.15 var(--font-display); }
.mailing-preview iframe { display: block; width: 100%; min-height: 330px; border: 0; background: #fff; }
.mailing-recipient-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; padding-top: 5px; border-top: 1px solid #dce6df; }
.mailing-recipient-heading .kicker { margin-top: 19px; }
.mailing-selection-count { display: flex; align-items: baseline; gap: 6px; padding: 9px 13px; border-radius: 999px; background: var(--sage-soft); color: #5e7865; }
.mailing-selection-count strong { font-size: 21px; }
.mailing-selection-count span { font-size: 12px; font-weight: 800; }
.mailing-controls { display: grid; grid-template-columns: minmax(220px, 1.2fr) minmax(180px, .75fr) minmax(190px, .85fr); gap: 12px; }
.mailing-controls input, .mailing-controls select { width: 100%; }
.mailing-selection-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 18px; }
.mailing-selection-toolbar > span { color: var(--muted); font-size: 14px; }
.mailing-selection-toolbar > span strong { color: #4f7160; }
.mailing-selection-toolbar > div { display: flex; flex-wrap: wrap; gap: 7px; }
.mailing-selection-toolbar button { padding: 8px 12px; border: 1px solid #cfdcd3; border-radius: 999px; background: #fff; color: #587367; cursor: pointer; font-size: 12px; font-weight: 850; }
.mailing-selection-toolbar button:hover { background: var(--sage-soft); }
.mailing-recipient-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; max-height: 560px; overflow-y: auto; padding: 3px 7px 3px 3px; scrollbar-width: thin; }
.mailing-recipient-card { position: relative; display: grid !important; grid-template-columns: 24px minmax(0, 1fr); gap: 11px !important; min-width: 0; padding: 14px 15px; border: 1px solid #dce4de; border-radius: 16px 11px; background: #fff; cursor: pointer; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.mailing-recipient-card[hidden] { display: none !important; }
.mailing-recipient-card:hover { transform: translateY(-1px); border-color: #b7cdbf; }
.mailing-recipient-card:has(input:checked) { border-color: #86aa97; background: #f4faf5; box-shadow: inset 0 0 0 1px rgba(111,149,128,.12); }
.mailing-recipient-card > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.mailing-form .mailing-recipient-check { display: grid; place-items: center; width: 24px; height: 24px; border: 2px solid #c9d6ce; border-radius: 7px; background: #fff; color: transparent; font-size: 14px; font-weight: 900; }
.mailing-recipient-card input:checked + .mailing-recipient-check { border-color: #6f9598; background: #6f9598; color: #fff; }
.mailing-recipient-card input:focus-visible + .mailing-recipient-check { outline: 3px solid rgba(111,149,152,.25); outline-offset: 2px; }
.mailing-recipient-copy { display: grid; gap: 6px; min-width: 0; }
.mailing-contact-line { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 3px 12px; min-width: 0; }
.mailing-contact-line strong { color: var(--ink); }
.mailing-contact-line > span { min-width: 0; overflow: hidden; color: #537f84; font-size: 13px; font-weight: 700; text-overflow: ellipsis; }
.mailing-contact-badges { display: flex; flex-wrap: wrap; gap: 5px; }
.mailing-contact-badges b { padding: 4px 7px; border-radius: 999px; background: #f1f3ef; color: #6a7670; font-size: 10px; font-weight: 800; }
.mailing-contact-badges .mailing-consent-badge.has-consent { background: #e9f4eb; color: #54745c; }
.mailing-contact-badges .mailing-consent-badge.no-consent { background: #fff0e8; color: #9a654d; }
.mailing-recipient-copy > small { overflow-wrap: anywhere; color: var(--muted); font-size: 11px; line-height: 1.4; }
.mailing-filter-empty { padding: 24px; border: 1px dashed #ccd9d1; border-radius: 18px; background: rgba(255,255,255,.7); color: var(--muted); text-align: center; }
.mailing-consent-warning { display: grid; gap: 4px; padding: 14px 16px; border: 1px solid #efcdbb; border-radius: 16px 11px; background: #fff7f2; color: #7f5c4d; font-size: 13px; line-height: 1.45; }
.mailing-consent-warning[hidden] { display: none; }
.mailing-confirm { padding: 14px 16px; border: 1px solid #d7e2d9; border-radius: 16px 11px; background: #fafcf9; }
.mailing-confirm span { color: var(--ink) !important; font-size: 14px !important; line-height: 1.45; }
.mailing-send-button { justify-self: start; }
.mailing-archive { margin-top: 30px; }
.mailing-archive-heading { align-items: flex-end; margin-bottom: 15px; }
.mailing-archive-list { display: grid; gap: 10px; }
.mailing-archive-card { overflow: hidden; border: 1px solid #dfe5e1; border-radius: 21px 14px; background: #fff; }
.mailing-archive-summary { display: grid; grid-template-columns: minmax(240px, 1fr) auto auto 32px; gap: 14px; align-items: center; padding: 16px 18px; cursor: pointer; list-style: none; transition: background .18s ease; }
.mailing-archive-summary::-webkit-details-marker { display: none; }
.mailing-archive-summary::marker { display: none; content: ""; }
.mailing-archive-summary:hover, .mailing-archive-card[open] > .mailing-archive-summary { background: #f7faf6; }
.mailing-archive-summary > span:first-child { display: grid; gap: 4px; min-width: 0; }
.mailing-archive-summary > span:first-child strong { overflow: hidden; color: var(--ink); text-overflow: ellipsis; white-space: nowrap; }
.mailing-archive-summary small { color: var(--muted); font-size: 11px; }
.mailing-archive-counts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.mailing-archive-counts b { padding: 5px 8px; border-radius: 999px; background: #edf5ee; color: #55745e; font-size: 11px; }
.mailing-archive-counts b.has-failures { background: #fff0ea; color: #9c5d4a; }
.mailing-status, .mailing-delivery { width: max-content; padding: 6px 9px; border-radius: 999px; font-size: 11px; font-style: normal; font-weight: 850; }
.mailing-status-completed, .mailing-delivery-accepted { background: #e9f4eb; color: #4f7459; }
.mailing-status-partial { background: #fff5dd; color: #8b6b2f; }
.mailing-status-failed, .mailing-delivery-failed { background: #feece8; color: #9b5347; }
.mailing-status-sending, .mailing-delivery-pending { background: #eef1f4; color: #68747e; }
.mailing-archive-summary > i { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--sage-soft); color: #668070; font-size: 20px; font-style: normal; transition: transform .18s ease; }
.mailing-archive-card[open] .mailing-archive-summary > i { transform: rotate(180deg); }
.mailing-archive-body { display: grid; gap: 20px; padding: 20px; border-top: 1px solid #e4e9e5; background: #fbfcfa; }
.mailing-archive-message { padding: 17px 18px; border: 1px solid #e0e6e2; border-radius: 17px 11px; background: #fff; }
.mailing-archive-message-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 9px 15px; margin-bottom: 10px; }
.mailing-archive-message-heading > span { color: var(--muted); font-size: 10px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.mailing-archive-message-heading > div { display: flex; flex-wrap: wrap; gap: 7px; }
.mailing-archive-message-heading button { padding: 7px 10px; border: 1px solid #cfdcd3; border-radius: 999px; background: #f7faf7; color: #587367; cursor: pointer; font-size: 11px; font-weight: 850; }
.mailing-archive-message-heading button:hover { background: var(--sage-soft); }
.mailing-archive-message textarea { display: block; width: 100%; min-height: 170px; resize: vertical; border: 1px solid #dce4de; border-radius: 12px; background: #f8faf8; color: #4f5d66; font: 12px/1.55 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre; }
.mailing-archive-recipient-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; margin-bottom: 9px; }
.mailing-archive-recipient-heading span { color: var(--muted); font-size: 12px; }
.mailing-archive-recipients { overflow: hidden; border: 1px solid #e0e6e2; border-radius: 17px 11px; }
.mailing-archive-recipient { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(240px, 1.2fr) auto; gap: 14px; align-items: center; padding: 12px 14px; border-bottom: 1px solid #e6ebe7; background: #fff; }
.mailing-archive-recipient:last-child { border-bottom: 0; }
.mailing-archive-recipient > span { display: grid; gap: 3px; min-width: 0; }
.mailing-archive-recipient strong, .mailing-archive-recipient small { overflow-wrap: anywhere; }
.mailing-archive-recipient small { color: var(--muted); font-size: 11px; }
.mailing-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 14px; margin-top: 15px; }
.mailing-pagination > span { color: var(--muted); font-size: 13px; font-weight: 800; }
.followup-panel { border-color: #d8dfc8; background: linear-gradient(145deg, #f5f8ed, #fff 58%, #f1f7f6); }
.followup-summary { background: #eef4e8; }
.followup-template-note { display: flex; align-items: center; gap: 10px 18px; margin: 14px 0; padding: 15px 17px; border: 1px solid #d9e3d1; border-radius: 16px; background: rgba(255,255,255,.78); color: var(--muted); font-size: 14px; line-height: 1.5; }
.followup-template-note strong { flex: 0 0 auto; color: #5e7865; }
.followup-email-preview { overflow: hidden; border: 1px solid #d9e3d1; border-radius: 18px; background: rgba(255,255,255,.86); }
.followup-email-preview > summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 17px; cursor: pointer; list-style: none; }
.followup-email-preview > summary::-webkit-details-marker { display: none; }
.followup-email-preview > summary > span { display: grid; gap: 3px; }
.followup-email-preview > summary strong { color: #4f6f59; }
.followup-email-preview > summary small { color: var(--muted); font-size: 12px; }
.followup-email-preview > summary b { color: #537f84; font-size: 13px; }
.followup-email-preview[open] > summary b { font-size: 0; }
.followup-email-preview[open] > summary b::after { content: "Bezárás"; font-size: 13px; }
.followup-email-preview-body { padding: 0 17px 18px; border-top: 1px solid #e4ebe5; }
.followup-email-preview-subject { display: grid; gap: 4px; margin: 16px 0; padding: 13px 15px; border-radius: 13px; background: #f4f1e9; }
.followup-email-preview-subject span { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.followup-email-preview-message { max-width: 720px; margin: 0 auto; padding: 28px; border: 1px solid #e2e6e0; border-radius: 20px; background: #fff; box-shadow: 0 10px 30px rgba(70,82,93,.07); }
.followup-email-preview-message h3 { margin: 10px 0 24px; font-family: var(--font-display); font-size: 29px; color: #344a3f; }
.followup-email-preview-brand { color: #6f9598; font-size: 14px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.followup-consent-selection { margin: 0; color: #8a5961; font-size: 13px; }
.reminder-recipient-card.has-no-marketing-consent { border-color: #ead3d7; background: #fffafb; }
.followup-consent-badge { justify-self: start; padding: 4px 8px; border-radius: 999px; background: #f6e8eb; color: #9b5f69; font-size: 11px; font-style: normal; font-weight: 850; }
.reminder-recipient-card.needs-attendance-check { border-style: dashed; }
.reminder-recipient-card.needs-attendance-check:not(:has(input:checked)) { background: #fffdf8; }
.monthly-schedule-form { display: grid; grid-template-columns: 1fr minmax(180px, 230px) auto; gap: 18px; align-items: end; margin: 0 0 25px; padding: 22px 25px; border: 1px solid #d9e5dc; border-radius: 26px 18px 28px 20px; background: var(--sage-soft); }
.monthly-schedule-form strong { display: block; margin-bottom: 5px; font-size: 19px; }
.monthly-schedule-form p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.5; }
.global-search-section { scroll-margin-top: 20px; }
.global-search-form { display: grid; grid-template-columns: minmax(280px, 1fr) auto auto; gap: 11px; align-items: end; margin-bottom: 18px; padding: 19px; border: 1px solid #d6e3df; border-radius: 22px 15px 24px 17px; background: linear-gradient(135deg, #eef5f1, #f8fbfa); }
.global-search-form label { display: grid; gap: 6px; }
.global-search-form label > span { color: #5d716b; font-size: 13px; font-weight: 850; }
.global-search-form input { min-height: 48px; background: #fff; }
.global-search-counts { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0; }
.global-search-counts > span { display: inline-flex; align-items: center; gap: 6px; padding: 7px 11px; border: 1px solid #dce6e0; border-radius: 999px; background: #fff; color: var(--muted); font-size: 12px; font-weight: 750; }
.global-search-counts strong { color: #4f7779; font-size: 14px; }
.global-search-group { overflow: hidden; margin-top: 10px; border: 1px solid #dee5e0; border-radius: 19px; background: #fff; }
.global-search-group > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 17px; list-style: none; cursor: pointer; font-weight: 850; }
.global-search-group > summary::-webkit-details-marker { display: none; }
.global-search-group > summary::after { content: "⌄"; display: grid; place-items: center; width: 27px; height: 27px; margin-left: auto; border-radius: 50%; background: var(--sage-soft); color: #667c6a; font-size: 18px; transition: transform .18s ease; }
.global-search-group[open] > summary::after { transform: rotate(180deg); }
.global-search-group > summary > strong { display: grid; place-items: center; min-width: 27px; height: 27px; padding: 0 7px; border-radius: 999px; background: var(--teal-soft); color: #527c81; font-size: 12px; }
.global-search-results { border-top: 1px solid #e7ece8; }
.global-search-result { display: grid; grid-template-columns: 82px minmax(185px, 1fr) minmax(210px, 1fr) minmax(180px, .9fr) auto; gap: 14px; align-items: center; padding: 14px 17px; border-top: 1px solid #edf0ed; font-size: 13px; }
.global-search-result:first-child { border-top: 0; }
.global-search-result:hover { background: #fbfcfa; }
.global-search-result-no-action { grid-template-columns: 82px minmax(185px, 1fr) minmax(210px, 1fr) minmax(180px, .9fr); }
.global-search-result > span { display: block; min-width: 0; }
.global-search-result > span:not(.global-result-kind) > strong, .global-search-result > span:not(.global-result-kind) > small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.global-search-result > span:not(.global-result-kind) > small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.global-search-result .button { min-height: 38px; padding: 8px 12px; font-size: 12px; white-space: nowrap; }
.global-result-kind { justify-self: start; padding: 5px 8px; border-radius: 999px; background: #edf0ed; color: #67736c; font-size: 10px; font-weight: 900; letter-spacing: .03em; text-transform: uppercase; }
.global-result-kind.is-active { background: var(--sage-soft); color: #55725b; }
.global-result-kind.is-archive { background: #eef0f1; color: #69737b; }
.global-result-kind.is-pass { background: var(--plum-soft); color: #715e7c; }
.global-result-kind.is-hold { background: var(--gold-soft); color: #826a3c; }
.global-result-span-2 { grid-column: span 2; }
.booking-accordion { scroll-margin-top: 20px; }

/* Áttekinthető admin naptár és férőhelyjelzés. */
.admin-calendar { overflow: hidden; margin: 2px 0 30px; border: 1px solid #dbe4de; border-radius: 30px 20px 32px 22px; background: #fff; box-shadow: 0 18px 48px rgba(70,82,93,.08); }
.admin-calendar-heading { display: grid; grid-template-columns: 46px minmax(0, 1fr) 46px; gap: 16px; align-items: center; padding: 22px 25px 18px; border-bottom: 1px solid #e5eae6; background: linear-gradient(135deg, #f8fbf8, #fff); text-align: center; }
.admin-calendar-heading > div { min-width: 0; }
.admin-calendar-heading span { display: block; margin-bottom: 3px; color: #6f9598; font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.admin-calendar-heading h3 { margin: 0; color: #3e4d55; font: 750 30px/1.1 Georgia, serif; text-transform: capitalize; }
.calendar-nav-button { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid #d4e1db; border-radius: 50%; background: #fff; color: #557c7f; font-size: 22px; font-weight: 900; line-height: 1; text-decoration: none; transition: transform .16s ease, background .16s ease, border-color .16s ease; }
.calendar-nav-button:hover { border-color: #abc6c0; background: var(--teal-soft); transform: translateY(-1px); }
.admin-calendar-overview { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 16px 18px 12px; background: #fafbf8; }
.admin-calendar-overview article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; min-width: 0; padding: 13px 15px; border: 1px solid #e1e7e2; border-radius: 16px 11px 17px 12px; background: #fff; }
.admin-calendar-overview span { align-self: center; overflow: hidden; color: var(--muted); font-size: 12px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.admin-calendar-overview strong { grid-row: 1 / span 2; grid-column: 2; align-self: center; color: #557a67; font-size: 25px; line-height: 1; white-space: nowrap; }
.admin-calendar-overview small { overflow: hidden; color: #89928d; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.admin-calendar-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 15px; padding: 9px 20px 14px; border-bottom: 1px solid #e3e9e5; background: #fafbf8; color: var(--muted); font-size: 11px; }
.admin-calendar-legend > strong { color: #56666e; }
.admin-calendar-legend > span { --occupancy-color: #80928a; display: inline-flex; align-items: center; gap: 6px; }
.admin-calendar-legend i { display: block; width: 10px; height: 10px; border-radius: 50%; background: var(--occupancy-color); box-shadow: 0 0 0 3px color-mix(in srgb, var(--occupancy-color) 16%, white); }
.admin-calendar-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
.admin-calendar-scroll:focus-visible { outline: 3px solid rgba(108,166,174,.35); outline-offset: -3px; }
.admin-calendar-canvas { min-width: 1050px; }
.admin-calendar-weekdays { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); background: #f1f5f1; }
.admin-calendar-weekdays span { padding: 11px 7px; border-right: 1px solid #e0e7e2; color: #708078; text-align: center; font-size: 11px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.admin-calendar-weekdays span:last-child { border-right: 0; }
.admin-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; padding-top: 1px; background: #dfe6e1; }
.admin-calendar-day { min-width: 0; min-height: 152px; padding: 9px; background: #fff; }
.admin-calendar-day:nth-child(7n + 6), .admin-calendar-day:nth-child(7n) { background: #fdfcf9; }
.admin-calendar-day.is-outside { background: #f6f7f5; }
.admin-calendar-day-heading { display: flex; align-items: center; justify-content: space-between; gap: 5px; min-height: 31px; margin-bottom: 6px; }
.admin-calendar-day-heading time { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 50%; color: #66747b; font-size: 13px; font-weight: 900; }
.admin-calendar-day-heading span { padding: 3px 6px; border-radius: 999px; background: #eef3ef; color: #78847e; font-size: 9px; font-weight: 850; line-height: 1.2; white-space: nowrap; }
.admin-calendar-day.is-today { box-shadow: inset 0 0 0 2px #6f999c; }
.admin-calendar-day.is-today .admin-calendar-day-heading time { background: #6f9598; color: #fff; }
.admin-calendar-day.is-today .admin-calendar-day-heading span { background: var(--teal-soft); color: #4f7d81; }
.admin-calendar-day.is-outside .admin-calendar-day-heading { opacity: .42; }
.calendar-day-sessions { display: grid; gap: 7px; }
.calendar-session-chip { --occupancy-color: #799087; --occupancy-soft: #f1f5f2; --occupancy-ink: #4d655a; display: grid; gap: 5px; width: 100%; min-width: 0; padding: 8px 9px 9px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--occupancy-color) 34%, white); border-left: 4px solid var(--occupancy-color); border-radius: 12px 8px 12px 8px; background: var(--occupancy-soft); color: var(--ink); text-align: left; box-shadow: 0 4px 12px rgba(70,82,93,.045); transition: transform .15s ease, box-shadow .15s ease; }
button.calendar-session-chip { cursor: pointer; }
button.calendar-session-chip:hover { box-shadow: 0 8px 18px rgba(70,82,93,.11); transform: translateY(-1px); }
button.calendar-session-chip:focus-visible { outline: 3px solid color-mix(in srgb, var(--occupancy-color) 38%, white); outline-offset: 2px; }
.calendar-session-chip.is-past { filter: saturate(.55); opacity: .48; }
.calendar-session-chip.is-locked { opacity: .72; }
.calendar-session-topline { display: flex; align-items: center; justify-content: space-between; gap: 7px; }
.calendar-session-topline strong { color: var(--occupancy-ink); font-size: 12px; line-height: 1.1; }
.calendar-session-topline b { padding: 3px 6px; border-radius: 999px; background: #fff; color: var(--occupancy-ink); font-size: 9px; font-weight: 900; line-height: 1.1; white-space: nowrap; }
.calendar-session-name { display: block; overflow-wrap: anywhere; color: #46545b; font-size: 11px; font-weight: 900; line-height: 1.25; }
.calendar-session-progress { display: block; height: 5px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.9); }
.calendar-session-progress i { display: block; height: 100%; border-radius: inherit; background: var(--occupancy-color); }
.calendar-session-chip > small { display: flex; flex-wrap: wrap; gap: 3px 7px; color: #69757a; font-size: 9px; line-height: 1.25; }
.calendar-session-chip > small > span { position: relative; }
.calendar-session-chip > small > span + span::before { content: "·"; position: absolute; left: -5px; }
.occupancy-low { --occupancy-color: #c86e78 !important; --occupancy-soft: #fff0f2 !important; --occupancy-ink: #95515b !important; }
.occupancy-warning { --occupancy-color: #c49a3e !important; --occupancy-soft: #fff7df !important; --occupancy-ink: #80652f !important; }
.occupancy-medium { --occupancy-color: #6f9ca0 !important; --occupancy-soft: #edf7f7 !important; --occupancy-ink: #4f777b !important; }
.occupancy-high { --occupancy-color: #72a174 !important; --occupancy-soft: #eef8ee !important; --occupancy-ink: #507653 !important; }
.occupancy-full { --occupancy-color: #4f8154 !important; --occupancy-soft: #e7f3e8 !important; --occupancy-ink: #3f6843 !important; }
.form-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 17px; }
.admin-table-wrap { overflow-x: auto; border: 1px solid #e0e3dd; border-radius: 24px; background: #fff; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.admin-table th, .admin-table td { padding: 15px 17px; border-bottom: 1px solid #eceeea; text-align: left; vertical-align: middle; }
.admin-table th { color: var(--muted); background: #fafaf7; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
.admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-table strong { display: block; }
.admin-table small { display: block; margin-top: 4px; color: var(--muted); }
.admin-table a { color: #537f84; }
.email-log-totals { display: flex; flex-wrap: wrap; gap: 8px; }
.email-log-total, .email-log-status { display: inline-flex; align-items: center; width: max-content; max-width: 100%; padding: 7px 11px; border-radius: 999px; font-size: 12px; font-weight: 850; line-height: 1.2; }
.email-log-total-success, .email-log-status-success { background: var(--sage-soft); color: #54725c; }
.email-log-total-failed, .email-log-status-failed { background: var(--coral-soft); color: #985863; }
.email-log-list { overflow-x: auto; border: 1px solid #e0e3dd; border-radius: 24px; background: #fff; }
.email-log-head, .email-log-row { display: grid; grid-template-columns: minmax(145px, .72fr) minmax(185px, .9fr) minmax(190px, 1fr) minmax(270px, 1.5fr) minmax(145px, .72fr); gap: 14px; align-items: center; min-width: 980px; }
.email-log-head { padding: 14px 17px; background: #fafaf7; color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.email-log-row { padding: 15px 17px; border-top: 1px solid #eceeea; font-size: 14px; }
.email-log-row > div { min-width: 0; }
.email-log-row strong, .email-log-row span, .email-log-row a { display: block; min-width: 0; overflow-wrap: anywhere; }
.email-log-row a { color: #537f84; }
.pass-webhook-log { overflow: hidden; margin-top: 14px; border: 1px solid #e0e3dd; border-radius: 16px; background: #fff; }
.pass-webhook-log-row { display: grid; grid-template-columns: minmax(150px,.85fr) minmax(220px,1.4fr) 90px auto; gap: 12px; align-items: center; padding: 12px 14px; border-top: 1px solid #eceeea; font-size: 13px; }
.pass-webhook-log-row:first-child { border-top: 0; }
.pass-webhook-log-row > span:first-child { color: var(--muted); }
.pass-webhook-log-row strong small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 700; overflow-wrap: anywhere; }
.table-edit-button { padding: 8px 12px; border: 1px solid #cfdcd3; border-radius: 999px; background: var(--sage-soft); color: #5e7865; cursor: pointer; font-size: 13px; font-weight: 800; }
.booking-program-filter { display: grid; gap: 11px; margin: 4px 0 18px; padding: 17px 19px; border: 1px solid #dce6df; border-radius: 20px; background: #fafcf9; }
.booking-program-filter > span { color: var(--muted); font-size: 13px; font-weight: 800; }
.booking-program-filter-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.booking-filter-button { display: inline-flex; align-items: center; gap: 7px; padding: 9px 13px; border: 1px solid #d5dfd8; border-radius: 999px; background: #fff; color: #607078; cursor: pointer; font-size: 13px; font-weight: 800; transition: background .18s ease, border-color .18s ease, color .18s ease; }
.booking-filter-button:hover { border-color: #bfcfc3; background: var(--sage-soft); }
.booking-filter-button.is-active { border-color: #6f9598; background: #6f9598; color: #fff; }
.booking-filter-button small { display: grid; place-items: center; min-width: 21px; height: 21px; padding: 0 6px; border-radius: 999px; background: rgba(111,149,152,.13); color: inherit; font-size: 11px; }
.booking-filter-button.is-active small { background: rgba(255,255,255,.22); }
.booking-filter-empty { margin: 0; padding: 24px; color: var(--muted); text-align: center; }
.booking-accordion-list { overflow: hidden; border: 1px solid #e0e3dd; border-radius: 24px; background: #fff; }
.booking-accordion-head, .booking-summary { display: grid; grid-template-columns: minmax(230px, 1.35fr) minmax(145px, .8fr) minmax(145px, .8fr) minmax(190px, 1fr) minmax(125px, .65fr) minmax(95px, .55fr) 28px; gap: 15px; align-items: center; }
.booking-accordion-head { padding: 15px 17px; background: #fafaf7; color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.booking-accordion { border-top: 1px solid #eceeea; }
.booking-accordion:first-of-type { border-top: 0; }
.booking-summary { padding: 15px 17px; list-style: none; cursor: pointer; transition: background .18s ease; }
.booking-summary::-webkit-details-marker { display: none; }
.booking-summary::marker { display: none; content: ""; }
.booking-summary:hover { background: #fbfcf9; }
.booking-accordion[open] > .booking-summary { background: var(--sage-soft); }
.booking-summary-cell { display: block; min-width: 0; }
.booking-summary-cell > strong, .booking-summary-cell > small { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.booking-summary-cell > strong { font-size: 14px; }
.booking-summary-cell > small { margin-top: 4px; color: var(--muted); font-size: 12px; }
.booking-summary-contact > strong { color: #537f84; font-weight: 600; }
.booking-summary-chevron { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #fff; color: #69806e; font-size: 20px; font-weight: 850; transition: transform .18s ease; }
.booking-accordion[open] .booking-summary-chevron { transform: rotate(180deg); }
.payment-badge { display: inline-flex; max-width: 100%; padding: 5px 9px; border-radius: 999px; font-size: 12px; font-weight: 850; line-height: 1.2; }
.payment-prepaid { background: var(--teal-soft); color: #537a80; }
.payment-onsite { background: var(--gold-soft); color: #8a7041; }
.payment-pass { background: #eee8f5; color: #735f86; }
.payment-neutral { background: #edf0ed; color: #6b746e; }
.status-waitlist { background: var(--gold-soft); color: #8a7041; }
.status-attended { background: var(--sage-soft); color: #5e7865; }
.status-no_show { background: var(--coral-soft); color: #9c5c66; }
.booking-accordion-body { padding: 22px; border-top: 1px solid #dfe7e1; background: #fcfdfb; }
.booking-quick-actions { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.booking-quick-actions .kicker { margin-bottom: 4px; }
.booking-quick-actions > div:first-child > strong { font-size: 17px; }
.booking-action-forms { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: flex-end; gap: 10px; }
.booking-status-form label { display: grid; gap: 5px; }
.booking-status-form label > span { color: var(--muted); font-size: 12px; font-weight: 800; }
.booking-status-form select { min-width: 145px; }
.booking-resend-form { padding-bottom: 1px; }
.table-delete-button { padding: 8px 12px; border: 1px solid #e4c7cc; border-radius: 999px; background: #fff6f7; color: #9c5c66; cursor: pointer; font-size: 13px; font-weight: 800; }
.table-delete-button:hover { border-color: #d9aeb5; background: var(--coral-soft); }
.booking-no-email { align-self: center; color: var(--muted); font-size: 13px; }
.booking-order-id { margin: -5px 0 18px; color: var(--muted); font-size: 13px; }
.booking-edit-form { padding-top: 20px; border-top: 1px solid #e1e6e2; }
.booking-edit-form .form-grid { margin-bottom: 16px; }
.booking-pass-fields { gap: 12px; margin: 0; padding: 15px; border: 1px solid #ded3e8; border-radius: 18px; background: #faf7fc; }
.waitlist-total { flex: 0 0 auto; padding: 9px 13px; border-radius: 999px; background: var(--gold-soft); color: #876f45; font-size: 14px; font-weight: 850; }
.waitlist-admin-list { overflow-x: auto; border: 1px solid #e4dfd2; border-radius: 24px; background: #fff; }
.waitlist-admin-head, .waitlist-admin-row { display: grid; grid-template-columns: minmax(210px, 1.2fr) minmax(130px, .7fr) minmax(130px, .7fr) minmax(175px, .9fr) minmax(210px, 1fr); gap: 12px; align-items: center; min-width: 930px; }
.waitlist-admin-head { padding: 14px 17px; background: #fdfaf2; color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.waitlist-admin-row { padding: 15px 17px; border-top: 1px solid #eee9df; }
.waitlist-admin-row > div { min-width: 0; }
.waitlist-admin-row strong, .waitlist-admin-row small { display: block; }
.waitlist-admin-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.waitlist-admin-row small { margin-top: 4px; color: var(--muted); font-size: 12px; }
.waitlist-admin-row a:not(.table-edit-button) { display: block; overflow: hidden; color: #537f84; text-overflow: ellipsis; white-space: nowrap; }
.waitlist-phone { margin-top: 5px; }
.waitlist-actions { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.waitlist-actions .table-edit-button { text-decoration: none; }
.waitlist-promote-button { padding: 8px 11px; border: 1px solid #d9c99e; border-radius: 999px; background: var(--gold-soft); color: #80693e; cursor: pointer; font-size: 12px; font-weight: 850; }
.waitlist-promote-button:hover { background: #f3e3b8; }
.session-edit-row > td { padding: 0 !important; border-bottom: 0 !important; }
.session-edit-form { margin: 0 14px 18px; padding: 22px; border: 1px solid #dce3dc; border-radius: 22px; background: #fafcf9; }
.session-edit-form.is-collapsed { display: none; }
.session-edit-form .form-grid { margin-bottom: 16px; }
.inline-form select { min-width: 110px; padding: 7px 9px; border-radius: 10px; font-size: 13px; }
.status { display: inline-flex; padding: 5px 9px; border-radius: 999px; background: var(--teal-soft); color: #537a80; font-size: 12px; font-weight: 850; }
.status-cancelled { background: var(--coral-soft); color: #9c5c66; }
.status-completed { background: #edf0ed; color: #6b746e; }
.status-select.status-confirmed { background: var(--sage-soft); }
.status-select.status-waitlist { background: var(--gold-soft); }
.status-select.status-cancelled, .status-select.status-no_show { background: var(--coral-soft); }
.new-pass-banner { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 10px 0 20px; padding: 18px 22px; border-radius: 18px; background: var(--gold-soft); }
.new-pass-banner strong { font-size: 22px; letter-spacing: .08em; }
.new-pass-banner button { margin-left: auto; padding: 8px 12px; border: 0; border-radius: 10px; background: #fff; cursor: pointer; font-weight: 800; }
.giveaway-note { margin-top: 18px; padding: 17px 20px; border-radius: 16px; background: var(--plum-soft); color: #715f79; font-size: 15px; }

.schedule-label, .deadline-label { margin: 15px 0 0 !important; padding: 12px 15px; border-radius: 14px; background: var(--accent-soft); color: var(--ink) !important; font-size: 16px !important; line-height: 1.5 !important; }
.deadline-label { margin-top: 8px !important; background: #fff8e3; }
.schedule-date-tile small { max-width: 125px; font-size: 12px; letter-spacing: .04em; }

@media (max-width: 1350px) {
  .booking-accordion-head, .booking-summary { grid-template-columns: minmax(210px, 1.25fr) minmax(145px, .8fr) minmax(145px, .8fr) minmax(130px, .7fr) 28px; }
  .booking-accordion-head span:nth-child(4), .booking-accordion-head span:nth-child(5), .booking-summary-contact, .booking-summary-cell[data-label="Fizetés"] { display: none; }
}

@media (max-width: 1050px) {
  .booking-hero { grid-template-columns: 1fr; align-items: start; }
  .pass-note, .booking-note { width: min(100%, 620px); }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .form-grid-3 { grid-template-columns: repeat(2, 1fr); }
  .monthly-schedule-form { grid-template-columns: 1fr 220px; }
  .monthly-schedule-form .button { grid-column: 1 / -1; }
  .global-search-form { grid-template-columns: 1fr 1fr; }
  .global-search-form label { grid-column: 1 / -1; }
  .global-search-result, .global-search-result-no-action { grid-template-columns: 82px repeat(2, minmax(0, 1fr)); }
  .global-search-result .button { justify-self: start; }
  .global-result-span-2 { grid-column: span 2; }
  .admin-calendar-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reminder-filter-form { grid-template-columns: 1fr 1fr; }
  .reminder-filter-form .button { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 780px) {
  body { font-size: 17px; }
  .public-header { width: min(100% - 28px, 1440px); padding: 14px 0; }
  .brand-mark { width: 44px; height: 44px; }
  .brand-lockup strong { font-size: 21px; }
  .brand-lockup small { font-size: 11px; }
  .header-link { font-size: 13px; }
  .booking-hero { padding: 65px 20px 85px; }
  .booking-hero h1 { font-size: clamp(42px, 12vw, 62px); }
  .hero-lead { font-size: 19px; }
  .pass-note, .booking-note { padding: 22px; }
  .booking-browser { width: min(100% - 28px, 1320px); padding-top: 55px; }
  .session-card { grid-template-columns: 90px 1fr; border-radius: 32px 22px 36px 26px; }
  .date-tile { min-height: 100%; padding: 24px 8px; }
  .date-tile strong { font-size: 42px; }
  .date-tile span { font-size: 11px; }
  .date-tile small { padding: 5px 8px; font-size: 13px; }
  .session-main { padding: 24px 20px; }
  .session-main h2 { font-size: 30px; }
  .session-main > p { font-size: 17px; }
  .session-meta { display: grid; gap: 6px; }
  .together-note { grid-template-columns: 1fr; padding: 16px; }
  .session-footer { align-items: stretch; flex-direction: column; }
  .session-footer .button { width: 100%; }
  .dialog-heading { padding: 38px 25px 25px; }
  .booking-form { padding: 28px 25px 38px; }
  .form-grid { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .admin-sidebar { position: static; width: 100%; padding: 18px; border-right: 0; border-bottom: 1px solid #e2e4df; }
  .admin-sidebar nav { display: flex; gap: 5px; overflow-x: auto; overflow-y: hidden; margin: 18px 0 0; }
  .admin-sidebar nav a { flex: 0 0 auto; background: #f7f7f3; }
  .admin-sidebar-bottom { display: none; }
  .admin-main { width: 100%; margin-left: 0; padding: 28px 16px 70px; }
  .admin-top { align-items: flex-start; }
  .admin-top > span { display: none; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .stats-grid article { padding: 19px; }
  .stats-grid strong { font-size: 34px; }
  .admin-section-heading { align-items: flex-start; flex-direction: column; }
  .program-editor-grid { grid-template-columns: 1fr; }
  .form-grid-3 { grid-template-columns: 1fr; }
  .monthly-schedule-form { grid-template-columns: 1fr; align-items: stretch; }
  .monthly-schedule-form .button { grid-column: auto; }
  .global-search-form { grid-template-columns: 1fr; padding: 16px; }
  .global-search-form label { grid-column: auto; }
  .global-search-form .button { width: 100%; }
  .global-search-result, .global-search-result-no-action { grid-template-columns: 1fr; gap: 9px; padding: 16px; }
  .global-search-result > span:not(.global-result-kind) > strong, .global-search-result > span:not(.global-result-kind) > small { overflow: visible; text-overflow: clip; white-space: normal; }
  .global-search-result .button { width: 100%; justify-self: stretch; text-align: center; }
  .global-result-span-2 { grid-column: auto; }
  .admin-calendar { margin-right: -16px; margin-left: -16px; border-right: 0; border-left: 0; border-radius: 0; }
  .admin-calendar-heading { grid-template-columns: 42px minmax(0, 1fr) 42px; gap: 10px; padding: 18px 16px 15px; }
  .admin-calendar-heading h3 { font-size: 25px; }
  .calendar-nav-button { width: 42px; height: 42px; }
  .admin-calendar-overview { padding: 13px 13px 9px; }
  .admin-calendar-overview article { padding: 11px 12px; }
  .admin-calendar-overview strong { font-size: 22px; }
  .admin-calendar-legend { padding-right: 14px; padding-left: 14px; }
  .admin-calendar-canvas { min-width: 980px; }
  .reminder-panel { padding: 20px 16px; }
  .reminder-panel-heading { flex-direction: column; gap: 12px; }
  .reminder-filter-form, .reminder-recipient-list { grid-template-columns: 1fr; }
  .reminder-filter-form .button, .reminder-send-form .button { width: 100%; justify-self: stretch; }
  .mailing-composer-heading, .mailing-archive-heading, .mailing-recipient-heading { align-items: flex-start; flex-direction: column; }
  .mailing-form, .mailing-composer-heading { padding-right: 16px; padding-left: 16px; }
  .mailing-compose-grid, .mailing-controls, .mailing-recipient-list, .mailing-format-picker { grid-template-columns: 1fr; }
  .mailing-recipient-list { max-height: 620px; padding-right: 3px; }
  .mailing-selection-count { align-self: flex-start; }
  .mailing-selection-toolbar { align-items: stretch; flex-direction: column; }
  .mailing-selection-toolbar > div { display: grid; grid-template-columns: 1fr; }
  .mailing-selection-toolbar button, .mailing-send-button { width: 100%; justify-self: stretch; }
  .mailing-archive-summary { grid-template-columns: minmax(0, 1fr) 32px; gap: 9px 12px; }
  .mailing-archive-summary > span:first-child { grid-column: 1; }
  .mailing-archive-counts { grid-column: 1; justify-content: flex-start; }
  .mailing-archive-summary > .mailing-status { grid-column: 1; }
  .mailing-archive-summary > i { grid-column: 2; grid-row: 1 / span 3; }
  .mailing-archive-recipient { grid-template-columns: 1fr; gap: 8px; }
  .mailing-archive-body { padding: 14px; }
  .followup-template-note { align-items: flex-start; flex-direction: column; gap: 4px; }
  .followup-email-preview-body { padding: 0 10px 10px; }
  .followup-email-preview-message { padding: 20px 16px; border-radius: 15px; }
  .followup-email-preview-message h3 { font-size: 24px; }
  .pass-webhook-log-row { grid-template-columns: 1fr; gap: 7px; }
  .booking-accordion-list { border-radius: 20px; }
  .booking-program-filter { margin-right: -16px; margin-left: -16px; padding-right: 0; padding-left: 16px; border-right: 0; border-left: 0; border-radius: 0; }
  .booking-program-filter-buttons { flex-wrap: nowrap; overflow-x: auto; padding: 0 16px 5px 0; scrollbar-width: thin; }
  .booking-filter-button { flex: 0 0 auto; }
  .booking-accordion-head { display: none; }
  .booking-summary { grid-template-columns: minmax(0, 1fr) auto; gap: 12px 15px; padding: 17px 16px; }
  .booking-summary-cell { display: grid !important; grid-template-columns: 105px minmax(0, 1fr); grid-column: 1; gap: 4px 10px; align-items: baseline; }
  .booking-summary-cell::before { content: attr(data-label); color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
  .booking-summary-cell > strong, .booking-summary-cell > small, .booking-summary-cell > .payment-badge, .booking-summary-cell > .status { grid-column: 2; }
  .booking-summary-cell > small { margin-top: -1px; }
  .booking-summary-program { margin-bottom: 4px; }
  .booking-summary-chevron { grid-column: 2; grid-row: 1 / span 6; align-self: center; }
  .booking-accordion-body { padding: 20px 16px; }
  .booking-quick-actions { align-items: stretch; flex-direction: column; }
  .booking-action-forms { align-items: stretch; justify-content: stretch; flex-direction: column; }
  .booking-status-form select, .booking-resend-form .table-edit-button, .booking-delete-form .table-delete-button { width: 100%; }
  .email-log-totals { align-self: flex-start; }
  .email-log-list { overflow: hidden; border-radius: 20px; }
  .email-log-head { display: none; }
  .email-log-row { grid-template-columns: 1fr; gap: 11px; min-width: 0; padding: 18px 16px; }
  .email-log-row > div { display: grid; grid-template-columns: 95px minmax(0, 1fr); gap: 4px 10px; align-items: baseline; }
  .email-log-row > div::before { content: attr(data-label); grid-column: 1; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
  .email-log-row > div > * { grid-column: 2; }
  .waitlist-total { align-self: flex-start; }
  .waitlist-admin-list { overflow: hidden; border-radius: 20px; }
  .waitlist-admin-head { display: none; }
  .waitlist-admin-row { grid-template-columns: 1fr; gap: 12px; min-width: 0; padding: 18px 16px; }
  .waitlist-admin-row > div { display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 4px 10px; align-items: baseline; }
  .waitlist-admin-row > div::before { content: attr(data-label); grid-column: 1; grid-row: 1 / span 3; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
  .waitlist-admin-row > div > * { grid-column: 2; }
  .waitlist-actions { align-items: stretch !important; }
  .waitlist-actions .inline-form, .waitlist-actions .table-edit-button, .waitlist-promote-button { width: 100%; text-align: center; }
  .public-footer a { margin-left: 0; }
  .payment-success-main { width: min(100% - 28px, 1140px); padding-top: 45px; }
  .payment-route-grid { grid-template-columns: 1fr; }
  .payment-route-card { min-height: 0; }
}

@media (max-width: 480px) {
  .public-header .header-link { max-width: 100px; text-align: right; }
  .booking-hero { padding-top: 48px; }
  .booking-hero h1 { font-size: 42px; }
  .pass-note, .booking-note { display: grid; }
  .program-number-grid { grid-template-columns: 1fr; }
  .session-card { grid-template-columns: 1fr; }
  .date-tile { flex-direction: row; gap: 10px; min-height: 0; justify-content: flex-start; padding: 15px 20px; }
  .date-tile strong { font-size: 35px; }
  .date-tile span { margin: 0; }
  .date-tile small { margin-left: auto; }
  .session-topline { align-items: flex-start; flex-direction: column; }
  .booking-dialog { border-radius: 30px 22px 32px 24px; }
  .stats-grid { grid-template-columns: 1fr; }
  .admin-calendar-overview { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .admin-top--with-action { flex-direction: column; gap: 18px; }
  .admin-top--with-action .admin-top-actions { width: 100%; justify-content: stretch; }
  .admin-top--with-action .admin-top-actions .button { width: 100%; text-align: center; }
  .admin-top--with-action .admin-top-actions > span { display: none; }
}

/* Naptárnézet – a foglalási és adatbázis-működést nem módosítja. */
.booking-browser { width: min(100% - 36px, 1500px); padding-top: 42px; }
.calendar-workspace { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(330px, .72fr); gap: 22px; align-items: start; }
.calendar-panel, .calendar-detail-stack { min-width: 0; }
.calendar-panel { overflow: hidden; border: 1px solid #dfe7e2; border-radius: 34px 20px 34px 20px; background: #fff; box-shadow: 0 18px 52px rgba(70,82,93,.08); }
.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 25px 18px; border-bottom: 1px solid #e4eae6; }
.calendar-toolbar .kicker { margin-bottom: 2px; font-size: 11px; }
.calendar-toolbar h2 { margin: 0; font: 750 31px/1.1 Georgia, serif; text-transform: capitalize; }
.calendar-navigation { display: flex; gap: 8px; }
.calendar-navigation button { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #dbe4df; border-radius: 50%; background: #f7faf8; color: var(--ink); cursor: pointer; font-size: 21px; font-weight: 800; }
.calendar-navigation button:hover { background: var(--teal-soft); }
.calendar-navigation button:disabled { cursor: not-allowed; opacity: .35; }
.calendar-scroll { overflow-x: auto; }
.calendar-months { min-width: 735px; }
.calendar-month { display: none; grid-template-columns: repeat(7, minmax(100px, 1fr)); }
.calendar-month.is-active { display: grid; }
.calendar-weekday { padding: 10px 7px; border-right: 1px solid #e7ece9; border-bottom: 1px solid #e3e9e6; background: #f7faf8; color: #758087; text-align: center; font-size: 11px; font-weight: 850; }
.calendar-weekday:nth-child(7) { border-right: 0; }
.calendar-day { min-height: 116px; padding: 7px; border-right: 1px solid #e7ece9; border-bottom: 1px solid #e7ece9; background: #fff; }
.calendar-day:nth-child(7n) { border-right: 0; }
.calendar-day.is-weekend { background: #fdfcf9; }
.calendar-day.is-outside { background: #fafbfa; }
.calendar-day.has-events { background: #fffefa; }
.calendar-day-number { display: grid; place-items: center; width: 25px; height: 25px; margin-left: auto; border-radius: 50%; color: #68757c; font-size: 12px; font-weight: 850; }
.calendar-day-events { display: grid; gap: 5px; margin-top: 3px; }
.calendar-event { --accent: var(--sage); --accent-soft: var(--sage-soft); display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0 5px; width: 100%; padding: 7px 8px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--accent) 44%, white); border-radius: 11px 7px 11px 7px; background: var(--accent-soft); color: #4f5c62; text-align: left; cursor: pointer; }
.calendar-event:hover { transform: translateY(-1px); }
.calendar-event.is-selected { outline: 2px solid var(--accent); outline-offset: 1px; }
.calendar-event strong { font-size: 12px; }
.calendar-event span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 850; }
.calendar-event small { grid-column: 1 / -1; margin-top: 2px; overflow: hidden; color: #68757c; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }
.calendar-event-mobile-name { display: none; }
.calendar-legend { display: flex; flex-wrap: wrap; gap: 9px 17px; padding: 13px 21px 15px; color: #738087; font-size: 11px; }
.calendar-legend span { display: flex; align-items: center; gap: 6px; }
.calendar-legend i { --accent: var(--sage); display: block; width: 9px; height: 9px; border-radius: 50%; background: var(--accent); }
.calendar-detail-stack { position: sticky; top: 18px; }
.calendar-session-detail { display: none; grid-template-columns: 1fr; border-radius: 20px 34px 20px 34px; }
.calendar-session-detail.is-selected { display: grid; }
.calendar-session-detail:hover { transform: none; box-shadow: 0 18px 52px rgba(70,82,93,.08); }
.calendar-session-detail .date-tile { flex-direction: row; justify-content: flex-start; gap: 9px; min-height: 0; padding: 15px 20px; text-align: left; }
.calendar-session-detail .date-tile strong { font-size: 37px; }
.calendar-session-detail .date-tile span { margin: 0; }
.calendar-session-detail .date-tile small { margin-left: auto; }
.calendar-session-detail .session-main { padding: 25px 23px 24px; }
.calendar-session-detail .session-topline { margin-bottom: 10px; }
.calendar-session-detail .session-main h2 { font-size: 31px; }
.calendar-session-detail .session-meta { display: grid; gap: 5px; font-size: 13px; }
.calendar-session-detail .schedule-label, .calendar-session-detail .deadline-label { padding: 10px 12px; font-size: 13px !important; }
.calendar-session-detail .together-note, .calendar-session-detail .prepay-note { grid-template-columns: 32px 1fr; margin-top: 14px; padding: 12px; }
.calendar-session-detail .together-note > span, .calendar-session-detail .prepay-note > span { width: 29px; height: 29px; }
.calendar-session-detail .together-note p, .calendar-session-detail .prepay-note p { font-size: 12px; }
.calendar-session-detail .session-footer { align-items: stretch; flex-direction: column; gap: 13px; margin-top: 18px; padding-top: 17px; }
.calendar-session-detail .session-actions { display: grid; gap: 8px; }
.calendar-session-detail .session-actions .button { width: 100%; min-height: 44px; padding: 10px 15px; font-size: 13px; line-height: 1.35; }
.calendar-detail-empty { padding: 55px 25px; border: 1px dashed #cfdad4; border-radius: 20px 34px; background: rgba(255,255,255,.74); color: var(--muted); text-align: center; }
.mobile-day-heading { display: none; }

@media (max-width: 1100px) {
  .calendar-workspace { grid-template-columns: 1fr; }
  .calendar-detail-stack { position: static; }
  .calendar-session-detail { grid-template-columns: 110px 1fr; }
  .calendar-session-detail .date-tile { flex-direction: column; justify-content: center; text-align: center; }
  .calendar-session-detail .date-tile small { margin-left: 0; }
}

@media (max-width: 620px) {
  .booking-browser { width: min(100% - 24px, 1500px); padding-top: 28px; }
  .filter-bar { display: grid; gap: 8px; overflow: visible; padding: 0 0 18px; }
  .filter-heading { display: block; margin: 0 0 3px; color: var(--ink); font-size: 17px; font-weight: 850; }
  .filter-chip { display: flex; width: 100%; min-height: 48px; align-items: center; justify-content: space-between; padding: 12px 16px; border-radius: 17px 11px; text-align: left; }
  .filter-chip.is-active::after { content: "✓"; margin-left: 12px; color: #3f7177; font-size: 18px; }
  .calendar-workspace, .calendar-panel, .calendar-scroll, .calendar-months, .calendar-month, .calendar-day, .calendar-event { min-width: 0; max-width: 100%; }
  .calendar-panel { border-radius: 26px 15px; }
  .calendar-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding: 17px 13px 14px; }
  .calendar-toolbar h2 { overflow-wrap: anywhere; font-size: 23px; }
  .calendar-navigation { gap: 6px; }
  .calendar-navigation button { width: 42px; height: 42px; font-size: 23px; }
  .calendar-scroll { width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
  .calendar-months { width: 602px; min-width: 602px; }
  .calendar-month { grid-template-columns: repeat(7, 86px); width: 602px; }
  .calendar-weekday { min-width: 0; padding: 9px 1px; font-size: 0; }
  .calendar-weekday::after { content: attr(data-short); font-size: 12px; line-height: 1; }
  .calendar-day { position: relative; min-width: 86px; max-width: none; min-height: 66px; padding: 5px 5px 7px; transition: background .16s ease, box-shadow .16s ease; }
  .calendar-day.has-events:not(.has-visible-events) { background: #fff; }
  .calendar-day.has-visible-events { cursor: pointer; }
  .calendar-day.has-visible-events:focus-visible { z-index: 1; outline: 3px solid rgba(108,166,174,.55); outline-offset: -3px; }
  .calendar-day.is-selected { z-index: 1; background: var(--teal-soft); box-shadow: inset 0 0 0 2px var(--teal); }
  .calendar-day-number { width: 28px; height: 28px; margin: 0 auto; font-size: 15px; }
  .calendar-day.is-selected .calendar-day-number { background: var(--teal); color: #fff; }
  .calendar-day-events { display: grid; gap: 3px; min-height: 18px; margin-top: 5px; }
  .calendar-event { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 21px; padding: 3px 4px; border: 0; border-left: 3px solid var(--accent); border-radius: 7px 4px; background: var(--accent-soft); box-shadow: none; opacity: 1; pointer-events: none; }
  .calendar-event:hover { transform: none; }
  .calendar-event.is-selected { outline: 0; }
  .calendar-event strong, .calendar-event span, .calendar-event small { display: none; }
  .calendar-event .calendar-event-mobile-name { display: block; max-width: 100%; overflow: hidden; color: #4f5c62; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; font-weight: 850; line-height: 1.1; }
  .calendar-legend { gap: 8px 12px; padding: 13px; font-size: 13px; }
  .calendar-detail-stack { display: grid; gap: 15px; }
  .mobile-day-heading { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; scroll-margin-top: 12px; padding: 5px 3px 2px; }
  .mobile-day-heading .kicker { width: 100%; margin: 0 0 3px; font-size: 11px; }
  .mobile-day-heading h2 { flex: 1 1 auto; margin: 0; font: 750 25px/1.12 Georgia, serif; text-transform: capitalize; }
  .mobile-day-heading > span { flex: 0 0 auto; padding: 7px 10px; border-radius: 999px; background: var(--teal-soft); color: #4f7f84; font-size: 12px; font-weight: 850; line-height: 1.2; text-align: center; }
  .calendar-session-detail { grid-template-columns: 1fr; border-radius: 17px 28px; }
  .calendar-session-detail .date-tile { flex-direction: row; justify-content: flex-start; text-align: left; }
  .calendar-session-detail .date-tile small { margin-left: auto; }
  .calendar-session-detail .session-main { min-width: 0; padding: 22px 17px 24px; }
  .calendar-session-detail .session-main h2 { overflow-wrap: anywhere; font-size: 29px; }
  .calendar-session-detail .session-meta { font-size: 15px; }
  .calendar-session-detail .schedule-label, .calendar-session-detail .deadline-label { font-size: 15px !important; }
  .calendar-session-detail .together-note, .calendar-session-detail .prepay-note { grid-template-columns: 32px minmax(0, 1fr); }
  .calendar-session-detail .together-note p, .calendar-session-detail .prepay-note p { overflow-wrap: anywhere; font-size: 15px; }
  .calendar-session-detail .availability { font-size: 15px; }
  .calendar-session-detail .session-actions { min-width: 0; }
  .calendar-session-detail .session-actions .button { min-width: 0; min-height: 48px; padding: 11px 13px; overflow-wrap: anywhere; white-space: normal; font-size: 15px; }
}

@media (max-width: 360px) {
  .booking-browser { width: min(100% - 16px, 1500px); }
  .calendar-toolbar { padding-inline: 10px; }
  .calendar-toolbar h2 { font-size: 21px; }
  .calendar-navigation button { width: 39px; height: 39px; }
  .calendar-weekday::after { font-size: 11px; }
  .calendar-day { min-width: 86px; min-height: 62px; padding-inline: 5px; }
  .calendar-day-number { width: 26px; height: 26px; font-size: 14px; }
  .calendar-day-events { gap: 2px; }
  .calendar-event { min-height: 20px; border-left-width: 2px; }
  .calendar-event .calendar-event-mobile-name { font-size: 10px; }
  .mobile-day-heading { align-items: flex-start; flex-direction: column; gap: 7px; }
  .mobile-day-heading h2 { font-size: 23px; }
}

/* Élménybérlet – a meglévő szín- és kártyarendszerre építve. */
.button-pass { border-color: #b8c99d; background: #edf5e8; color: #526743; }
.button-pass:hover { background: #e1edd8; }
.pass-code-field small { display: block; margin-top: 7px; color: var(--muted); font-size: 13px; }
.pass-purchase-main { width: min(100% - 36px, 980px); margin: 0 auto; padding: 70px 0 100px; }
.pass-purchase-card { overflow: hidden; padding: clamp(28px, 6vw, 64px); border: 1px solid #dfe7e2; border-radius: 42px 24px; background: linear-gradient(145deg, #fff 20%, #f3f7ed); box-shadow: 0 24px 70px rgba(70,82,93,.1); }
.pass-purchase-card h1 { max-width: 760px; margin: 8px 0 16px; font: 750 clamp(40px, 7vw, 68px)/1.02 Georgia, serif; color: var(--ink); }
.pass-purchase-card > .button { margin: 8px 8px 0 0; }
.pass-purchase-summary { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; justify-content: space-between; margin: 0 0 16px; padding: 18px 20px; border: 1px solid #d7e2d4; border-radius: 20px 13px; background: var(--sage-soft); }
.pass-purchase-price { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; margin: 0; }
.pass-purchase-price strong { color: #4f6744; font: 750 28px/1.1 Georgia, serif; }
.pass-purchase-price span { color: var(--muted); font-size: 16px; font-weight: 800; }
.pass-purchase-condition { flex: 1 1 300px; margin: 0; color: var(--ink); font-size: 15px; line-height: 1.5; }
.pass-benefit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 32px 0; }
.pass-benefit-grid article { display: grid; gap: 7px; min-height: 130px; padding: 22px; border-radius: 24px 15px; background: #fff; box-shadow: 0 12px 35px rgba(70,82,93,.07); }
.pass-benefit-grid strong { color: #637d4c; font: 750 24px/1.1 Georgia, serif; }
.pass-benefit-grid span { color: var(--muted); font-size: 15px; line-height: 1.5; }
.pass-registry-section { padding-top: 10px; }
.pass-stats-grid { margin-bottom: 22px; }
.pass-stats-grid article small { color: var(--muted); font-size: 12px; line-height: 1.35; }
.pass-admin-filter { display: grid; grid-template-columns: minmax(280px, 1.7fr) minmax(180px, .7fr) minmax(210px, .8fr) auto; gap: 13px; align-items: end; margin-bottom: 18px; padding: 17px 19px; border: 1px solid #dce6df; border-radius: 20px; background: #fafcf9; }
.pass-admin-filter label { display: grid; gap: 6px; min-width: 0; }
.pass-admin-filter label > span { color: var(--muted); font-size: 12px; font-weight: 800; }
.pass-admin-filter input, .pass-admin-filter select { width: 100%; min-width: 0; }
.pass-admin-filter > strong { padding: 12px 0; color: #607078; font-size: 13px; white-space: nowrap; }
.pass-admin-table-head, .pass-admin-summary { display: grid; grid-template-columns: minmax(230px, 1.35fr) minmax(135px, .72fr) minmax(185px, .9fr) minmax(80px, .38fr) minmax(105px, .55fr) minmax(105px, .55fr); gap: 14px; align-items: center; }
.pass-admin-table-head { padding: 14px 18px; border: 1px solid #dde5df; border-bottom: 0; border-radius: 20px 20px 0 0; background: #fafaf7; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.pass-admin-list { display: grid; gap: 10px; }
.pass-admin-table-head + .pass-admin-list .pass-admin-card:first-child { border-radius: 0 0 22px 14px; }
.pass-admin-card { overflow: hidden; scroll-margin-top: 20px; border: 1px solid #dde5df; border-radius: 22px 14px; background: #fff; }
.pass-admin-summary { min-height: 76px; padding: 15px 18px; cursor: pointer; list-style: none; transition: background .18s ease; }
.pass-admin-summary:hover, .pass-admin-card[open] > .pass-admin-summary { background: var(--sage-soft); }
.pass-admin-summary:focus-visible { outline: 3px solid rgba(111,149,152,.34); outline-offset: -3px; }
.pass-admin-card > summary::-webkit-details-marker { display: none; }
.pass-admin-card > summary::marker { display: none; content: ""; }
.pass-admin-summary > span { display: grid; gap: 4px; min-width: 0; }
.pass-admin-summary strong, .pass-admin-summary small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pass-admin-summary > span > strong { font-size: 14px; }
.pass-admin-summary small { color: var(--muted); font-size: 12px; }
.pass-admin-summary .pass-same-email { width: max-content; max-width: 100%; padding: 3px 7px; border-radius: 999px; background: #eee8f5; color: #735f86; font-size: 10px; font-weight: 800; }
.pass-admin-summary > b { display: grid; gap: 2px; color: #587348; font-size: 20px; line-height: 1; }
.pass-admin-summary > b small { color: var(--muted); font-size: 10px; font-weight: 750; text-transform: uppercase; }
.pass-admin-summary > em { justify-self: start; font-style: normal; }
.pass-summary-edit { display: inline-flex !important; align-items: center; justify-content: flex-end; gap: 7px !important; color: #587578; font-size: 12px; font-weight: 850; }
.pass-summary-chevron { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #fff; color: #69806e; font-size: 21px; font-style: normal; font-weight: 850; transition: transform .18s ease; }
.pass-admin-card[open] .pass-summary-chevron { transform: rotate(180deg); }
.pass-form-group-title { display: flex; align-items: center; gap: 12px; margin: 8px 0 2px; padding: 14px 16px; border: 1px solid #dce6df; border-radius: 17px 11px; background: #f8faf6; }
.pass-form-group-title > span { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%; background: #6f9598; color: #fff; font-size: 15px; font-weight: 900; }
.pass-form-group-title > div { display: grid; gap: 3px; }
.pass-form-group-title strong { color: var(--ink); font-size: 16px; }
.pass-form-group-title small { color: var(--muted); font-size: 12px; line-height: 1.4; }
.pass-balance-editor { align-self: stretch; padding: 12px; border: 1px solid #d8c887; border-radius: 16px 11px; background: #fff9e6; }
.pass-balance-editor input { border-color: #c9b55f; font-size: 22px; font-weight: 900; }
.pass-admin-body { padding: 22px; border-top: 1px solid #e4e9e5; background: #fbfcfa; }
.pass-detail-section + .pass-detail-section { margin-top: 24px; padding-top: 24px; border-top: 1px solid #e0e6e2; }
.pass-detail-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.pass-detail-heading .kicker { margin-bottom: 3px; }
.pass-detail-heading h3 { margin: 0; font-size: 24px; }
.pass-detail-heading > strong { color: var(--muted); font-size: 13px; }
.pass-metadata-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
.pass-metadata-grid dl { min-width: 0; margin: 0; padding: 13px 14px; border: 1px solid #e3e8e4; border-radius: 15px 10px; background: #fff; }
.pass-metadata-grid dt { margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.pass-metadata-grid dd { margin: 0; overflow-wrap: anywhere; color: var(--ink); font-size: 13px; font-weight: 700; line-height: 1.45; }
.pass-metadata-grid dd small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; font-weight: 500; }
.pass-admin-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.pass-admin-actions form { margin: 0; }
.pass-booking-list { overflow-x: auto; border: 1px solid #e0e6e2; border-radius: 18px; background: #fff; }
.pass-booking-head, .pass-booking-row { display: grid; grid-template-columns: minmax(210px, 1.2fr) minmax(170px, .95fr) minmax(125px, .65fr) minmax(130px, .7fr) minmax(100px, .5fr); gap: 13px; align-items: center; min-width: 880px; }
.pass-booking-head { padding: 12px 15px; background: #fafaf7; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.pass-booking-row { padding: 14px 15px; border-top: 1px solid #e7ebe8; font-size: 13px; }
.pass-booking-row > span { display: grid; gap: 3px; min-width: 0; }
.pass-booking-row > span > strong, .pass-booking-row > span > small { overflow-wrap: anywhere; }
.pass-booking-row small { color: var(--muted); font-size: 11px; }
.pass-booking-extra { display: flex; grid-column: 1 / -1; flex-wrap: wrap; gap: 6px 18px; padding-top: 10px; border-top: 1px dashed #e2e7e3; color: var(--muted); font-size: 11px; }
.pass-booking-extra span { overflow-wrap: anywhere; }
.pass-movement-list { overflow: hidden; border: 1px solid #e0e6e2; border-radius: 20px; }
.pass-movement-row { display: grid; grid-template-columns: 150px 100px 110px minmax(220px, 1fr); gap: 14px; align-items: center; padding: 14px 17px; border-bottom: 1px solid #e7ebe8; background: #fff; }
.pass-movement-row:last-child { border-bottom: 0; }
.pass-movement-row > span:last-child { display: grid; gap: 3px; }
.pass-movement-row small { color: var(--muted); }
.integration-card { margin-top: 18px; padding: 20px; border: 1px solid #e0e6e2; border-radius: 20px; background: #fff; }
.integration-card h3 { margin-top: 0; }
.integration-card pre { max-width: 100%; overflow: auto; padding: 15px; border-radius: 13px; background: #f4f6f3; white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 1180px) {
  .pass-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pass-admin-filter { grid-template-columns: 1fr; align-items: stretch; }
  .pass-admin-filter > strong { padding: 2px 0; }
  .pass-admin-table-head { display: none; }
  .pass-admin-table-head + .pass-admin-list .pass-admin-card:first-child { border-radius: 22px 14px; }
  .pass-admin-summary { grid-template-columns: minmax(0, 1fr) auto auto; gap: 9px 11px; padding: 16px; }
  .pass-summary-owner { grid-column: 1 / 2; }
  .pass-summary-purchase { display: none !important; }
  .pass-summary-validity { grid-column: 1 / 2; }
  .pass-admin-summary > b { grid-column: 2; grid-row: 1; }
  .pass-admin-summary > em { grid-column: 2; grid-row: 2; justify-self: end; }
  .pass-summary-edit { grid-column: 3; grid-row: 1 / span 2; }
  .pass-admin-body { padding: 18px 14px; }
  .pass-metadata-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pass-detail-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  .pass-movement-row { grid-template-columns: 1fr; gap: 5px; }
  .pass-admin-actions, .pass-admin-actions form, .pass-admin-actions .button { width: 100%; }
}

@media (max-width: 780px) {
  .pass-benefit-grid { grid-template-columns: 1fr; }
  .pass-benefit-grid article { min-height: 0; }
}

@media (max-width: 480px) {
  .pass-stats-grid, .pass-metadata-grid { grid-template-columns: 1fr; }
  .pass-admin-summary { grid-template-columns: minmax(0, 1fr) auto; }
  .pass-summary-owner, .pass-summary-validity { grid-column: 1; }
  .pass-admin-summary > b { grid-column: 2; grid-row: 1; }
  .pass-admin-summary > em { grid-column: 1; grid-row: 3; justify-self: start; }
  .pass-summary-edit { grid-column: 2; grid-row: 2 / span 2; }
  .pass-summary-edit { font-size: 0; }
}

/* Havi programmenetrend – önálló ÉlményTÉR-feliratkozó oldal. */
.newsletter-page {
  min-height: 100vh;
  background:
    radial-gradient(circle at 8% 24%, rgba(108,166,174,.16) 0 130px, transparent 131px),
    radial-gradient(circle at 91% 76%, rgba(220,135,147,.16) 0 165px, transparent 166px),
    linear-gradient(137deg, #fffdf9 0%, #f8f1e8 50%, #edf2e8 100%);
}
.newsletter-header { position: relative; z-index: 2; }
.newsletter-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(390px, .72fr);
  gap: clamp(38px, 7vw, 105px);
  align-items: center;
  width: min(100% - 40px, 1260px);
  min-height: calc(100vh - 190px);
  margin: 0 auto;
  padding: clamp(52px, 7vw, 95px) 0 clamp(75px, 9vw, 125px);
}
.newsletter-copy h1 {
  max-width: 820px;
  margin-bottom: 25px;
  font-size: clamp(50px, 6.2vw, 86px);
  font-weight: 780;
}
.newsletter-copy h1 em { color: #927f9c; font-family: Georgia, serif; font-weight: 400; }
.newsletter-lead { max-width: 760px; margin-bottom: 38px; color: var(--muted); font-size: clamp(20px, 1.6vw, 24px); line-height: 1.66; }
.newsletter-benefits { display: grid; gap: 13px; max-width: 760px; }
.newsletter-benefits article { display: grid; grid-template-columns: 52px 1fr; gap: 15px; align-items: start; padding: 17px 19px; border: 1px solid rgba(70,82,93,.07); border-radius: 23px 15px 25px 16px; background: rgba(255,255,255,.72); box-shadow: 0 12px 34px rgba(70,82,93,.06); }
.newsletter-benefits article > span { display: grid; place-items: center; width: 47px; height: 47px; border-radius: 50%; background: var(--sage-soft); color: #718365; font-size: 14px; font-weight: 900; }
.newsletter-benefits article:nth-child(2) > span { background: var(--coral-soft); color: #aa6c76; }
.newsletter-benefits article:nth-child(3) > span { background: var(--gold-soft); color: #8c7332; }
.newsletter-benefits strong { display: block; margin-bottom: 3px; font-size: 18px; }
.newsletter-benefits p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.5; }
.newsletter-form-card { position: relative; overflow: hidden; padding: clamp(29px, 4vw, 48px); border: 1px solid rgba(255,255,255,.88); border-radius: 52px 31px 58px 38px; background: rgba(255,255,255,.92); box-shadow: 0 30px 90px rgba(70,82,93,.15); backdrop-filter: blur(14px); }
.newsletter-form-card::after { position: absolute; z-index: 0; right: -75px; bottom: -90px; width: 210px; height: 210px; border-radius: 50%; background: rgba(170,184,154,.17); content: ""; }
.newsletter-form-card > * { position: relative; z-index: 1; }
.newsletter-form-icon, .newsletter-state-icon { display: grid; place-items: center; width: 68px; height: 68px; margin-bottom: 23px; border-radius: 48% 52% 57% 43%; background: var(--teal-soft); color: #58858a; font-size: 29px; font-weight: 850; transform: rotate(-4deg); }
.newsletter-form-card h2 { margin-bottom: 10px; font-size: clamp(34px, 4vw, 48px); }
.newsletter-form-card > p:not(.kicker):not(.newsletter-privacy) { margin-bottom: 23px; color: var(--muted); font-size: 16px; line-height: 1.58; }
.newsletter-form { display: grid; gap: 16px; }
.newsletter-form .check-row span { font-size: 13px; }
.newsletter-honeypot { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.newsletter-privacy { margin: 16px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; text-align: center; }
.newsletter-privacy a { color: #527b80; font-weight: 800; }
.newsletter-state-shell { display: grid; min-height: calc(100vh - 190px); place-items: center; padding: 60px 20px 110px; }
.newsletter-state-card { width: min(100%, 760px); padding: clamp(36px, 6vw, 70px); border: 1px solid rgba(70,82,93,.08); border-radius: 55px 34px 61px 39px; background: rgba(255,255,255,.94); box-shadow: 0 28px 85px rgba(70,82,93,.14); text-align: center; }
.newsletter-state-card .newsletter-state-icon { margin-right: auto; margin-left: auto; }
.newsletter-state-card h1 { margin-bottom: 20px; font-size: clamp(40px, 6vw, 66px); }
.newsletter-state-card > p:not(.kicker):not(.newsletter-soft-note) { max-width: 610px; margin-right: auto; margin-bottom: 22px; margin-left: auto; color: var(--muted); font-size: 19px; line-height: 1.65; }
.newsletter-soft-note { margin: 0 0 24px; padding: 17px 20px; border-radius: 19px 12px 21px 14px; background: var(--sage-soft); color: #63745a; font-size: 16px; }
.newsletter-state-actions, .newsletter-unsubscribe-form { justify-content: center; margin-top: 25px; }
.newsletter-unsubscribe-form { display: flex; flex-wrap: wrap; gap: 11px; }
.newsletter-footer a { margin-left: 0; opacity: 1; text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 900px) {
  .newsletter-hero { grid-template-columns: 1fr; min-height: 0; }
  .newsletter-copy { text-align: center; }
  .newsletter-copy h1, .newsletter-lead, .newsletter-benefits { margin-right: auto; margin-left: auto; }
  .newsletter-benefits { text-align: left; }
  .newsletter-form-card { width: min(100%, 650px); margin: 0 auto; }
}

@media (max-width: 600px) {
  .newsletter-header { width: min(100% - 28px, 1440px); }
  .newsletter-header .brand-lockup strong { font-size: 21px; }
  .newsletter-header .brand-lockup small { font-size: 10px; }
  .newsletter-header .brand-mark { width: 44px; height: 44px; }
  .newsletter-header .header-link { max-width: 105px; font-size: 13px; text-align: right; }
  .newsletter-hero { width: min(100% - 28px, 1260px); padding-top: 38px; }
  .newsletter-copy h1 { font-size: clamp(42px, 13vw, 62px); }
  .newsletter-benefits article { grid-template-columns: 44px 1fr; padding: 15px; }
  .newsletter-benefits article > span { width: 40px; height: 40px; }
  .newsletter-form-card { padding: 28px 20px 32px; border-radius: 34px 21px 38px 24px; }
  .newsletter-state-card { padding: 36px 21px 42px; border-radius: 36px 23px 40px 26px; }
  .newsletter-state-actions .button, .newsletter-unsubscribe-form .button { width: 100%; }
}
