/* GoldWax Kassza - arculat: mélyfekete + arany, mobil-első */
:root {
  --ink: #211b14;
  --ink-soft: #5d544a;
  --paper: #f7f4ee;
  --card: #ffffff;
  --gold: #c9a227;
  --gold-deep: #a8851a;
  --line: #e5dfd4;
  --ok: #2e7d4f;
  --err: #b3392e;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: 'Inter', system-ui, sans-serif;
  background: var(--paper);
  color: var(--ink);
  font-size: 16px;
}
h1, h2, h3 { font-family: 'Marcellus', Georgia, serif; font-weight: 400; }
h1 { font-size: 1.6rem; margin: 18px 0 12px; }
h2 { font-size: 1.2rem; margin: 26px 0 10px; }
a { color: var(--gold-deep); }

/* Fejléc */
.topbar {
  background: var(--ink);
  color: #f3ead6;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 10px 14px;
  flex-wrap: wrap;
  position: sticky;
  top: 0;
  z-index: 20;
}
.brand {
  font-family: 'Marcellus', Georgia, serif;
  font-size: 1.25rem;
  color: #fff;
  text-decoration: none;
  letter-spacing: .5px;
}
.brand span { color: var(--gold); }
.brand em { font-style: normal; font-size: .75rem; color: #b8ad99; margin-left: 4px; }
.nav { display: flex; gap: 2px; flex-wrap: wrap; flex: 1; align-items: center; overflow: visible; }
.nav a {
  color: #d9d0bf;
  text-decoration: none;
  padding: 7px 11px;
  border-radius: 8px;
  font-size: .9rem;
}
.nav a.on, .nav a:hover { background: rgba(201,162,39,.18); color: var(--gold); }
.navdrop { position: relative; }
.navdrop-btn {
  border: 0;
  background: transparent;
  color: #d9d0bf;
  padding: 7px 11px;
  border-radius: 8px;
  font: inherit;
  font-size: .9rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 4px;
}
.navdrop.on .navdrop-btn,
.navdrop.open .navdrop-btn,
.navdrop:hover .navdrop-btn { background: rgba(201,162,39,.18); color: var(--gold); }
.navdrop-menu {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 230px;
  padding: 8px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 18px 44px rgba(0,0,0,.18);
  z-index: 30;
}
.navdrop.open .navdrop-menu,
.navdrop:hover .navdrop-menu { display: grid; gap: 2px; }
.navdrop-menu a {
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 11px;
  border-radius: 8px;
}
.navdrop-menu a i { display: inline; font-style: normal; }
.nav .navdrop-menu a i { display: inline; font-style: normal; }
.navdrop-menu a[href^="admin.php#arak"] { border-top: 1px solid var(--line); margin-top: 6px; padding-top: 14px; }
.navdrop-menu a.on,
.navdrop-menu a:hover { background: #f5eddc; color: var(--gold-deep); }
.userbox { display: flex; align-items: center; gap: 10px; font-size: .85rem; color: #b8ad99; }
.logout { color: var(--gold); text-decoration: none; }

.wrap { max-width: 1100px; margin: 0 auto; padding: 8px 14px 40px; }
.foot { text-align: center; font-size: .75rem; color: var(--ink-soft); padding: 20px; }

/* Üzenetek */
.flash { padding: 12px 14px; border-radius: 10px; margin: 14px 0; font-weight: 500; }
.flash-ok { background: #e3f1e8; color: var(--ok); }
.flash-err { background: #f8e4e1; color: var(--err); }
.empty { color: var(--ink-soft); }
.muted { color: var(--ink-soft); font-size: .85rem; }
.gold { color: var(--gold-deep); }

/* Gombok, űrlapok */
.btn {
  border: 1px solid var(--line);
  background: var(--card);
  border-radius: 10px;
  padding: 10px 16px;
  font: inherit;
  cursor: pointer;
  color: var(--ink);
}
.btn-gold { background: var(--gold); border-color: var(--gold); font-weight: 600; }
.btn-gold:hover { background: var(--gold-deep); border-color: var(--gold-deep); color: #fff; }
.btn-ghost { background: transparent; }
.btn-sm { padding: 6px 10px; font-size: .85rem; border-radius: 8px; }
.btn-block { width: 100%; display: block; text-align: center; text-decoration: none; }
.btn-big { padding: 16px; font-size: 1.1rem; }
.btn:focus-visible, input:focus-visible, .chip:focus-visible { outline: 2px solid var(--gold-deep); outline-offset: 2px; }
input, select {
  font: inherit;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--card);
  color: var(--ink);
  max-width: 100%;
}
label.lbl, .login-card label { display: block; font-size: .85rem; color: var(--ink-soft); margin: 10px 0 4px; }
.login-card input { width: 100%; margin-top: 4px; }
.w-num { width: 90px; }
.inlineform { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.guest-note-input {
  flex: 1 1 100%;
  width: 100%;
  min-height: 9rem;
  line-height: 1.45;
  resize: vertical;
}
.pagehead { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; }

/* Bejelentkezés */
.login-card {
  max-width: 360px;
  margin: 8vh auto 0;
  background: var(--card);
  border: 1px solid var(--line);
  border-top: 4px solid var(--gold);
  border-radius: 14px;
  padding: 28px 24px;
}
.login-title { text-align: center; margin: 0; font-size: 2rem; }
.login-title span { color: var(--gold); }
.login-sub { text-align: center; color: var(--ink-soft); margin: 4px 0 16px; font-size: .9rem; }
.login-card .btn { margin-top: 16px; }

/* Rögzítés (POS) */
.pos { display: grid; grid-template-columns: 1fr 360px; gap: 20px; align-items: start; margin-top: 14px; }
.cat { font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ink-soft); margin: 18px 0 8px; font-family: 'Inter', sans-serif; font-weight: 600; }
.chipgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.chip {
  border: 1px solid var(--line);
  background: var(--card);
  border-radius: 12px;
  padding: 14px 12px;
  text-align: left;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 4px;
  transition: border-color .12s, transform .06s;
}
.chip:active { transform: scale(.97); }
.chip:hover { border-color: var(--gold); }
.chip-name { font-weight: 600; }
.chip-price { color: var(--gold-deep); font-size: .9rem; }

/* A blokk - szaggatott "nyugta" szegéllyel */
.pos-bill {
  background: var(--card);
  border-radius: 4px 4px 14px 14px;
  padding: 18px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--gold);
  position: sticky;
  top: 64px;
}
.bill-title { margin: 0 0 10px; border-bottom: 1px dashed var(--line); padding-bottom: 8px; }
.guestbox { position: relative; display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.suggest {
  position: absolute;
  top: 100%;
  left: 0; right: 0;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  z-index: 10;
  overflow: hidden;
}
.suggest-note {
  display: block;
  margin-top: 4px;
  color: var(--ink-soft);
  line-height: 1.35;
}
.sitem { display: block; width: 100%; text-align: left; border: 0; background: none; padding: 10px 12px; cursor: pointer; font: inherit; }
.sitem:hover { background: var(--paper); }
.sitem em { color: var(--gold-deep); font-style: normal; font-size: .8rem; float: right; }
.sitem small { color: var(--ink-soft); }
.loyalty { background: #faf3df; border-radius: 8px; padding: 8px 10px; font-size: .85rem; }
.loyalty-apply { font-size: .85rem; display: flex; gap: 8px; align-items: center; }

.bill-items { list-style: none; margin: 0; padding: 0; }
.bill-items li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px dashed var(--line);
  font-size: .95rem;
}
.bill-items .ip { margin-left: auto; white-space: nowrap; color: var(--ink-soft); }
.rm { border: 0; background: none; color: var(--err); font-size: 1.2rem; cursor: pointer; padding: 0 4px; line-height: 1; }
.bill-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 14px 0;
  font-size: 1.05rem;
}
.bill-total strong { font-size: 1.5rem; font-family: 'Marcellus', serif; color: var(--gold-deep); }
.payrow { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; }
.payopt { position: relative; }
.payopt input { position: absolute; opacity: 0; }
.payopt span {
  display: block;
  text-align: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  cursor: pointer;
  font-weight: 500;
}
.payopt input:checked + span { background: var(--ink); color: var(--gold); border-color: var(--ink); }
.payopt input:focus-visible + span { outline: 2px solid var(--gold-deep); outline-offset: 2px; }
.payopt.disabled { opacity: .45; pointer-events: none; }
.bill-actions {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}
.bill-actions .btn {
  margin: 0;
}

/* Kártyák, táblázatok */
.cards3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 14px 0; }
.card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.card strong { font-size: 1.3rem; font-family: 'Marcellus', serif; }
.card-lbl { font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; color: var(--ink-soft); }
.card-wide { margin: 0 0 16px; }
.card-wide strong { font-size: 1.8rem; }

.tablewrap { overflow-x: auto; background: var(--card); border: 1px solid var(--line); border-radius: 12px; }
.tbl { width: 100%; border-collapse: collapse; font-size: .92rem; }
.tbl th, .tbl td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.tbl th { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-soft); }
.tbl tr:last-child td { border-bottom: 0; }
.tbl .num { text-align: right; white-space: nowrap; }
.voided { opacity: .45; text-decoration: line-through; }
.voided input, .voided button { text-decoration: none; }
.totalrow td { border-top: 2px solid var(--ink); }
.badge { background: var(--gold); color: var(--ink); border-radius: 99px; padding: 2px 9px; font-size: .75rem; font-weight: 600; white-space: nowrap; }
.badge-soft { background: var(--line); }
.actions { display: flex; gap: 6px; flex-wrap: wrap; }
.actions summary { list-style: none; display: inline-block; }
.editform { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; min-width: 180px; }

.chartbox { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 14px; }
.closeform { display: flex; gap: 10px; margin: 16px 0; flex-wrap: wrap; }
.closeform input[type=text] { flex: 1; min-width: 200px; }

/* Árlista szerkesztő */
.svclist { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 8px; }
.svcrow {
  display: grid;
  grid-template-columns: 1.4fr 1fr 100px 80px 50px 80px;
  gap: 8px;
  align-items: center;
  padding: 6px;
  border-bottom: 1px solid var(--line);
}
.svcrow:last-child { border-bottom: 0; }
.svchead { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-soft); }
.svcnew { background: var(--paper); border-radius: 8px; }

@media (max-width: 900px) {
  .pos { grid-template-columns: 1fr; }
  .pos-bill { position: static; }
  .svcrow { grid-template-columns: 1fr 1fr; }
  .svchead { display: none; }
  .svcrow .w-num { width: 100%; }
}
@media (max-width: 600px) {
  .cards3 { grid-template-columns: 1fr; gap: 8px; }
  .card { flex-direction: row; justify-content: space-between; align-items: baseline; }
  .nav { order: 3; width: 100%; }
  .stackmobile { flex-direction: column; align-items: stretch; }
  .stackmobile input, .stackmobile select { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}

/* === v2: naptár, foglalás, készlet === */
.svcrow { grid-template-columns: 1.4fr 1fr 90px 70px 70px 44px 76px; }
.prodrow { grid-template-columns: 1.4fr 90px 70px 80px 44px 44px 76px; }

.calgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.calcol { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 12px; }
.calname { margin: 0 0 10px; font-size: 1.05rem; border-bottom: 2px solid var(--gold); padding-bottom: 6px; }
.appt { border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 10px; padding: 10px; margin-bottom: 10px; font-size: .92rem; }
.appt-megjelent { border-left-color: var(--ok); }
.appt-lemondva, .appt-nem_jott_el { border-left-color: var(--err); opacity: .6; }
.appt-time { font-weight: 600; display: flex; justify-content: space-between; gap: 6px; flex-wrap: wrap; }
.appt-name { margin-top: 2px; }
.appt-svc { color: var(--ink-soft); }
.appt-actions { margin-top: 8px; display: flex; gap: 6px; flex-wrap: wrap; }
.badge-dark { background: var(--ink); color: #fff; }

.apptform { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 14px; }
.apptform-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; margin-bottom: 10px; }
.svcpick { border: 1px solid var(--line); border-radius: 10px; padding: 10px; margin: 0 0 12px; }
.svcpick legend { font-size: .85rem; color: var(--ink-soft); padding: 0 6px; }
.svcopt { display: block; padding: 6px 2px; }
.svcopt small { color: var(--ink-soft); }

.chip-product { border-style: dashed; }
.chip-product .chip-price { color: var(--ink-soft); }

.schedbox { margin-bottom: 10px; }
.schedbox summary { list-style: none; cursor: pointer; display: inline-block; }
.schedform { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 12px; margin-top: 8px; max-width: 420px; }
.schedrow { display: grid; grid-template-columns: 90px 1fr 1fr; gap: 8px; align-items: center; margin-bottom: 6px; }

/* Publikus foglalási oldal */
.bookbody { background: var(--paper); }
.bookhead { background: var(--ink); color: #fff; padding: 18px 14px; text-align: center; }
.bookhead .brand { font-size: 1.6rem; }
.booksub { display: block; color: #b8ad99; font-size: .85rem; letter-spacing: .15em; text-transform: uppercase; margin-top: 2px; }
.bookwrap { max-width: 640px; }
.bookwrap h2 { border-bottom: 1px dashed var(--line); padding-bottom: 6px; }
.bookrow { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.bookrow input, .bookrow select { width: 100%; }
.slots { display: flex; flex-wrap: wrap; gap: 8px; min-height: 44px; }
.slot { border: 1px solid var(--line); background: var(--card); border-radius: 10px; padding: 10px 14px; font: inherit; font-weight: 600; cursor: pointer; display: flex; flex-direction: column; align-items: center; }
.slot small { font-weight: 400; color: var(--ink-soft); font-size: .72rem; }
.slot.on { background: var(--ink); color: var(--gold); border-color: var(--ink); }
.slot.on small { color: #b8ad99; }
.bookwrap .btn-big { margin-top: 14px; }

@media (max-width: 600px) {
  .bookrow { grid-template-columns: 1fr; }
  .svcrow, .prodrow { grid-template-columns: 1fr 1fr; }
}

/* === v2.1: app-szerű felület, alsó mobilnav, modulok === */
.nav a i { display: none; font-style: normal; }
.nav a b { font-weight: 500; }

.modulegrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; align-items: start; }
.module {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 2px 10px;
  cursor: pointer;
}
.module input { grid-row: span 2; align-self: center; width: 20px; height: 20px; accent-color: var(--gold-deep); }
.module small { color: var(--ink-soft); grid-column: 2; }
.module:has(input[type="checkbox"]:checked) { border-color: var(--gold); background: #fffaf0; }
.module.modnum { cursor: default; }
.module-subopts { display: grid; gap: 6px; margin: 6px 0; }
.module-subopts label { display: flex; align-items: center; gap: 8px; font-size: .9rem; }
.module-subopts input { width: 16px; height: 16px; grid-row: auto; }
.modulegrid .btn { grid-column: 1 / -1; }

/* Mobilon: alsó, app-szerű navigációs sáv */
@media (max-width: 768px) {
  .topbar { flex-wrap: nowrap; }
  .nav {
    position: fixed;
    bottom: 0; left: 0; right: 0;
    background: var(--ink);
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 0;
    padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
    box-shadow: 0 -4px 16px rgba(0,0,0,.25);
    z-index: 30;
    order: 0; width: auto;
  }
  .nav a {
    flex: 1 0 64px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 6px 4px;
    font-size: .62rem;
    border-radius: 10px;
  }
  .nav a i { display: block; font-size: 1.2rem; }
  .navdrop { flex: 1 0 82px; }
  .navdrop-btn {
    width: 100%;
    height: 100%;
    justify-content: center;
    flex-direction: column;
    gap: 2px;
    padding: 6px 4px;
    font-size: .62rem;
    border-radius: 10px;
  }
  .navdrop-btn i { font-size: 1.2rem; }
  .navdrop-btn span { display: none; }
  .navdrop-menu {
    position: fixed;
    left: 10px;
    right: 10px;
    bottom: 72px;
    top: auto;
    min-width: 0;
  }
  .navdrop-menu a {
    flex: none;
    flex-direction: row;
    justify-content: flex-start;
    font-size: .9rem;
    padding: 10px 11px;
  }
  body { padding-bottom: 76px; }
  .userbox { margin-left: auto; }
}

/* === v2.2: reszponzív rendrakás + vonalkódolvasó === */
html, body { max-width: 100%; overflow-x: clip; }
.wrap > * { min-width: 0; }
input, select, button { max-width: 100%; }
img, canvas, video { max-width: 100%; height: auto; }

/* asztali: termék sor most 8 oszlopos (vonalkóddal) */
.prodrow { grid-template-columns: 1.3fr 1fr 86px 64px 76px 44px 44px 72px; }
.bcfield { display: flex; gap: 4px; min-width: 0; }
.bcfield input { flex: 1; min-width: 0; }
.bc-pos { float: right; }
.bill-title { display: flex; justify-content: space-between; align-items: center; }

.scanmove {
  background: var(--card);
  border: 1px solid var(--gold);
  border-radius: 12px;
  padding: 12px;
  margin: 12px 0;
}
.scanmove .inlineform { margin-top: 8px; }

/* Szkenner modál */
#gwScanModal {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(15, 12, 8, .82);
  z-index: 100;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.gwscan-box {
  background: var(--card);
  border-radius: 16px;
  width: 100%;
  max-width: 420px;
  overflow: hidden;
}
.gwscan-head { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; }
.gwscan-close { border: 0; background: none; font-size: 1.6rem; line-height: 1; cursor: pointer; padding: 0 6px; }
#gwScanView { min-height: 240px; background: #000; }
#gwScanView video { display: block; width: 100% !important; }
.gwscan-hint { margin: 10px 14px 14px; font-size: .82rem; color: var(--ink-soft); }

/* Mobil: stabil, kártyás elrendezés - nincs többé ugrálás */
@media (max-width: 768px) {
  h1 { font-size: 1.35rem; }
  .wrap { padding: 8px 10px 40px; }
  .pagehead { flex-direction: column; align-items: stretch; }
  .pagehead .inlineform { justify-content: space-between; }
  .inlineform input[type="date"], .inlineform input[type="search"],
  .inlineform input[type="month"], .inlineform input[type="text"] { flex: 1 1 140px; min-width: 0; }

  /* Árlista / termék sorok: címkézett kártyák */
  .svclist { padding: 6px; }
  .svchead { display: none; }
  .svcrow, .prodrow {
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 8px;
  }
  .svcrow > input[name="name"], .prodrow > input[name="name"],
  .svcrow > .bcfield, .prodrow > .bcfield { grid-column: 1 / -1; }
  .svcrow .w-num, .prodrow .w-num { width: 100%; }
  .svcrow button, .prodrow button { grid-column: 1 / -1; }
  .svcrow input[type="checkbox"], .prodrow input[type="checkbox"] {
    width: 22px; height: 22px; justify-self: start; accent-color: var(--gold-deep);
  }

  .cards3 .card strong { font-size: 1.1rem; }
  .tbl { font-size: .85rem; }
  .tbl th, .tbl td { padding: 8px; }
  .apptform-grid { grid-template-columns: 1fr; }
  .calgrid { grid-template-columns: 1fr; }
  .chipgrid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px; }
  .chip { padding: 12px 10px; }
  .schedform { max-width: none; }
  .modulegrid { grid-template-columns: 1fr; }
}

/* iOS: ne zoomoljon rá a mezőkre (min. 16px betű) */
input, select, textarea { font-size: max(16px, 1em); }

/* === v3: fizetési csatornák, bérlet, vegyes fizetés === */
.pay4 { grid-template-columns: 1fr 1fr; }
.vrow { margin: 10px 0; }
.vrow input { width: 100%; }
.mixedbox { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 10px 0; }
.mixedbox label { font-size: .8rem; color: var(--ink-soft); display: flex; flex-direction: column; gap: 2px; }
.mixedbox input { width: 100%; }
.mixedbox p { grid-column: 1 / -1; margin: 0; }
.passbox { display: flex; flex-wrap: wrap; gap: 6px; }

/* === v3.1: beállítások olvasható elrendezése === */
.setlist { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 14px; max-width: 680px; }
.setlist h2 { margin-top: 20px; }
.setrow { padding: 10px 0; border-bottom: 1px dashed var(--line); }
.setrow:last-of-type { border-bottom: 0; }
.setrow label { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-weight: 500; }
.setrow small { display: block; color: var(--ink-soft); margin-top: 4px; line-height: 1.45; }
.setlist .btn { margin-top: 14px; }

/* === v3.2: beállítások mobilon - cím / mező / magyarázat egymás alatt === */
.setrow { padding: 14px 0; }
.setrow label { display: block; font-weight: 600; line-height: 1.4; }
.setrow label input[type="number"],
.setrow label input[type="email"],
.setrow label input[type="text"] {
  display: block;
  margin-top: 8px;
  font-weight: 400;
}
.setrow label input[type="number"] { width: 120px; }
.setrow label input[type="email"],
.setrow label input[type="text"] { width: 100%; max-width: 420px; }
.setrow label.loyalty-apply {
  display: flex;
  align-items: center;
  gap: 10px;
}
.setrow label.loyalty-apply input { width: 22px; height: 22px; margin: 0; accent-color: var(--gold-deep); }
.setrow small { margin-top: 8px; }
.setlist h2 {
  margin: 26px 0 4px;
  padding-top: 16px;
  border-top: 2px solid var(--gold);
}
.setlist h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }

/* v3.3: fix költség sorok */
.fixrow { grid-template-columns: 1.6fr 110px 44px 72px 72px; }
@media (max-width: 768px) { .fixrow { grid-template-columns: 1fr 1fr; } .fixrow > input[name="name"] { grid-column: 1 / -1; } }

/* v3.4: tétel-kedvezmény gomb + kereső */
.pctbtn { border: 1px solid var(--line); background: var(--paper); border-radius: 8px; padding: 2px 8px; font: inherit; font-size: .8rem; cursor: pointer; }
.idisc { color: var(--gold-deep); font-style: normal; font-size: .8rem; }
#svcSearch { width: 100%; }

/* v3.5: bérlet-figyelmeztetés a kasszában */
.passbox { display: flex; flex-direction: column; gap: 6px; background: #faf3df; border: 1px solid var(--gold); border-radius: 10px; padding: 10px; }
.passwarn { font-weight: 600; color: var(--gold-deep); font-size: .9rem; }
.passbox .btn { width: 100%; }

/* v3.6: több bérlet külön gombként */
.passbtn { text-align: left; }
.passleft { font-weight: 400; opacity: .8; font-size: .82em; }

/* v3.7: statisztika időszak-szűrő */
.periodbar { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 12px; }
.pchip { padding: 7px 14px; border: 1px solid var(--line); border-radius: 999px; font-size: .9rem; color: var(--ink); text-decoration: none; background: var(--card); }
.pchip.on { background: var(--gold-deep); color: #fff; border-color: var(--gold-deep); font-weight: 600; }
.customrange { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; margin-bottom: 8px; }
.customrange label { display: flex; flex-direction: column; font-size: .8rem; color: var(--ink-soft); gap: 3px; }
.periodinfo { color: var(--ink-soft); margin: 4px 0 16px; }

/* v3.8: tételes lista a statisztikában */
.tbl-sm th, .tbl-sm td { padding: 6px 8px; font-size: .86rem; }
.tbl .daysep td { background: var(--paper); border-top: 2px solid var(--gold); color: var(--gold-deep); padding-top: 10px; }

/* v3.9: 3-szintű jogosultság UI */
.permform { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.permrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 4px 0; border-bottom: 1px dashed var(--line); }
.permname { font-size: .9rem; }
.permrow select { min-width: 140px; }

/* v4.0: duplikátum-megerősítő jelölő */
.dupconfirm { font-size: .85rem; color: var(--ink-soft); margin: 6px 0; }

/* v4.1: hidden mindig erősebb (sárga csík bug fix) + új mezők */
[hidden] { display: none !important; }
.datetime { display: flex; gap: 8px; }
.datetime input { flex: 1; }
#contactFields { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
#contactFields input, #contactFields textarea { width: 100%; }
.contactToggleRow { margin-top: 8px; }
.passSaleToggleRow { margin-top: 8px; color: var(--gold-deep); font-weight: 600; }

/* v4.2: manuális kedvezmény + modul-kategóriák */
.manualdisc { margin: 10px 0; }
.discrow { display: flex; gap: 8px; }
.discrow input { flex: 1; }
.discrow select { width: 80px; }
.modcat { grid-column: 1 / -1; margin: 16px 0 4px; font-size: 1rem; color: var(--gold-deep); border-bottom: 1px solid var(--gold); padding-bottom: 4px; }

/* v4.3: bérlet chip-választó */
.chip.passpick.sel { background: var(--gold-deep); color: #fff; border-color: var(--gold-deep); }
.selpass { padding: 10px; background: var(--paper); border: 1px solid var(--line); border-radius: 10px; margin-bottom: 10px; }
.passfields { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 10px; }
.passfields label { display: flex; flex-direction: column; font-size: .8rem; color: var(--ink-soft); gap: 4px; flex: 1; min-width: 90px; }
.passfields input { width: 100%; }
.passsale {
  background: #fbfaf7;
  border: 1px solid var(--gold);
  border-radius: 8px;
  padding: 10px;
  margin: 10px 0;
}
.passsale-selected {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 10px;
  margin-bottom: 10px;
  font-weight: 600;
}
.passsale-total {
  color: var(--gold-deep);
  font-weight: 700;
  margin: 6px 0 10px;
}
.passsale-note {
  margin: 8px 0 0;
  line-height: 1.35;
}
.passsale-pay {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.chip.pass-sale-selected-chip {
  border-color: var(--gold-deep);
  box-shadow: 0 0 0 2px rgba(183, 134, 0, .16);
}
.bill-items li.passsale-billitem {
  background: #fbf4df;
  border-color: var(--gold);
}
.bill-items li.passsale-billitem span:first-child {
  font-weight: 700;
}

/* v4.4: bérlet kiválasztás törlés gomb */
.rmpass { background: none; border: 1px solid var(--line); border-radius: 6px; padding: 2px 8px; font-size: .8rem; color: #b3261e; cursor: pointer; margin-left: 6px; }
.rmpass:active { background: #fde8e6; }

/* v4.5: várakozási sor */
.queue-board { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 12px 0; }
@media (max-width: 640px) { .queue-board { grid-template-columns: 1fr; } }
.qcol h2 { font-size: 1rem; margin: 0 0 8px; }
.qcard { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; margin-bottom: 10px; }
.qcard.inprog { border-color: var(--gold); background: #faf7ef; }
.qcard-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.cabinbadge { background: var(--gold-deep); color: #fff; border-radius: 999px; padding: 2px 10px; font-size: .78rem; white-space: nowrap; }
.waitbadge { background: #eee; color: var(--ink); border-radius: 999px; padding: 2px 10px; font-size: .78rem; white-space: nowrap; }
.qmeta { font-size: .82rem; color: var(--ink-soft); margin-top: 4px; }
.qactions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.qpick { max-height: 320px; overflow-y: auto; border: 1px solid var(--line); border-radius: 10px; padding: 8px; margin: 8px 0; }
.qpick-cat { font-weight: 600; color: var(--gold-deep); font-size: .85rem; margin: 8px 0 4px; }
.qpickitem { display: block; padding: 5px 0; font-size: .9rem; }
.qpickitem small { color: var(--ink-soft); }

/* nyilvános várakozás-kijelző (sor-kijelzo.php) */
.qpublic { text-align: center; padding: 20px; }
.qpublic .big { font-size: 3rem; font-weight: 700; color: var(--gold-deep); }

/* v4.6: folyamatban lévő sáv a Rögzítés tetején */
.inprog-bar { background: #faf7ef; border: 1px solid var(--gold); border-radius: 14px; padding: 12px; margin-bottom: 14px; }
.inprog-title { font-size: 1rem; margin: 0 0 10px; color: var(--gold-deep); }
.inprog-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.inprog-card { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 10px; }
.inprog-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 4px; }
.inprog-meta { font-size: .8rem; color: var(--ink-soft); margin-bottom: 6px; }
.inprog-card .btn { margin-top: 4px; }
.inprog-actions {
  display: grid;
  gap: 6px;
  margin-top: 8px;
}
.inprog-actions .btn {
  margin: 0;
}
.inprog-actions form {
  margin: 0;
}

/* v4.7: kozmetikus-szám mező a modulok közt (külön elrendezés, ne csússzon össze) */
.module.modnum { display: block; cursor: default; }
.module.modnum strong { display: block; margin-bottom: 8px; }
.module.modnum input[type="number"] {
  grid-row: auto; width: 90px; height: auto;
  font-size: 1.1rem; padding: 8px 10px; text-align: center;
  border: 1px solid var(--line); border-radius: 8px; display: block; margin-bottom: 6px;
}
.module.modnum small { display: block; color: var(--ink-soft); }

/* v4.8: ebédidő mezők */
.lunchrow { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.lunchrow input[type="time"] { width: 110px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; font-size: 1rem; }

/* v4.9: sorban váró (még nem kezdődött) kártya */
.inprog-card.waiting { opacity: .85; border-style: dashed; }
.inprog-card.waiting .cabinbadge { background: #8a7a4a; }

/* v5.0: sztornó-kérelem rendszer */
.navbadge { background: #c0392b; color: #fff; border-radius: 999px; font-size: .7rem; padding: 1px 6px; margin-left: 4px; font-weight: 700; vertical-align: top; }
.void-popup { display: block; background: #fff4e5; border: 1px solid #e0a44a; color: #7a4e00; border-radius: 10px; padding: 10px 14px; margin: 10px 16px; text-decoration: none; font-size: .9rem; }
.void-popup strong { text-decoration: underline; }
.void-alert { background: #fff4e5; border: 1px solid #e0a44a; color: #7a4e00; border-radius: 10px; padding: 12px 14px; margin-bottom: 14px; }
.voidform { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }
.voidform select { font-size: .82rem; padding: 4px 6px; border: 1px solid var(--line); border-radius: 6px; }
.voiddecide { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }
.badge-warn { background: #f6d68a; color: #6b4e00; border-radius: 999px; padding: 2px 8px; font-size: .75rem; }

/* v5.1: veszélyes zóna (vendég törlés) */
.danger-zone { margin-top: 28px; padding: 16px; border: 1px solid #e0b4b4; border-radius: 12px; background: #fdf6f6; }
.danger-zone h3 { margin: 0 0 6px; color: #a13b3b; font-size: 1rem; }
.danger-zone p { margin: 0 0 10px; font-size: .85rem; }
.btn-danger { color: #a13b3b; border-color: #d99; }
.btn-danger:hover { background: #a13b3b; color: #fff; }

/* v5.2: beállítások fülek */
.admintabs { display: flex; gap: 8px; margin: 0 0 20px; flex-wrap: wrap; }
.admintab { padding: 10px 18px; border: 1px solid var(--line, #e5ddd0); background: #fff; border-radius: 10px; font: inherit; font-weight: 600; color: #7a6f5d; cursor: pointer; transition: all .15s; }
.admintab:hover { border-color: var(--gold, #c9a227); }
.admintab.on { background: var(--gold, #c9a227); color: #fff; border-color: var(--gold, #c9a227); }
.tabpane { animation: fadein .2s; }
@keyframes fadein { from { opacity: 0; } to { opacity: 1; } }

/* v6.0: asztali kassza/admin rendezés */
@media (min-width: 1000px) {
  .wrap { max-width: 1360px; padding-left: 24px; padding-right: 24px; }
  .topbar { gap: 12px; padding: 9px 14px; flex-wrap: nowrap; overflow: visible; }
  .brand { flex: 0 0 auto; }
  .nav { flex: 1 1 auto; min-width: 0; gap: 3px; flex-wrap: nowrap; overflow: visible; scrollbar-width: auto; }
  .nav a { flex: 0 0 auto; padding: 8px 9px; font-size: .84rem; white-space: nowrap; }
  .navdrop { flex: 0 0 auto; }
  .navdrop-btn { padding: 8px 9px; font-size: .84rem; white-space: nowrap; }
  .navdrop-menu a { padding: 10px 11px; font-size: .9rem; }
  .userbox { flex: 0 0 auto; }
  .pos { grid-template-columns: minmax(0, 1fr) minmax(360px, 440px); gap: 26px; }
  .pos-bill { top: 76px; }
  .chipgrid { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
  .chip { min-height: 98px; border-radius: 8px; }
  .chip-name { line-height: 1.25; }
  .inprog-list { grid-template-columns: repeat(auto-fit, minmax(250px, 320px)); }
  .inprog-bar { padding: 14px; }
}

.pos-services { min-width: 0; }
.voucherbox,
.manualdisc {
  background: #fbfaf7;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
}

.voucherbox input[type="text"] { width: 100%; margin-top: 8px; }
.bill-items li span:first-child { min-width: 0; overflow-wrap: anywhere; }

/* v6.1: admin fulrendezes es tisztabb modulkapcsolok */
.admintabs { position: sticky; top: 50px; z-index: 9; background: var(--paper); padding: 8px 0 10px; }
.admintab { border-radius: 8px; padding: 9px 16px; }
.tabpane > h2:first-child { margin-top: 4px; }
.modulegrid { grid-template-columns: repeat(auto-fill, minmax(265px, 1fr)); gap: 12px; }
.module {
  min-height: 84px;
  align-content: center;
  transition: border-color .15s, background .15s, box-shadow .15s;
}
.module:hover { border-color: var(--gold); box-shadow: 0 2px 10px rgba(80,60,30,.06); }
.module strong { line-height: 1.25; }
.module small { font-size: .82rem; line-height: 1.35; }
.module.modnum { min-height: 84px; }
.module.modnum strong { margin-bottom: 6px; }
.modcat {
  margin-top: 20px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.modulegrid .btn-gold {
  justify-self: start;
  margin-top: 8px;
}
.setlist { max-width: 760px; }
.setrow small { max-width: 620px; }
.compact-settings {
  max-width: 900px;
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr)) auto;
  gap: 12px;
  align-items: end;
}
.compact-settings .setrow {
  padding: 0;
  border-bottom: 0;
}
.compact-settings .btn {
  margin-top: 0;
  align-self: end;
}
@media (max-width: 760px) {
  .compact-settings { grid-template-columns: 1fr; }
}

/* v6.2: kezelhetobb arlista */
.pricebar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(180px, 260px) auto;
  gap: 10px;
  align-items: end;
  margin: 0 0 12px;
}
.pricebar label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: .82rem;
  color: var(--ink-soft);
  font-weight: 600;
}
.pricebar .loyalty-apply {
  flex-direction: row;
  align-items: center;
  min-height: 44px;
  color: var(--ink);
}
.pricebar input[type="search"],
.pricebar select {
  width: 100%;
  min-height: 42px;
}
.svcaddbox {
  margin: 0 0 12px;
}
.svcaddbox summary {
  list-style: none;
  display: inline-flex;
}
.svcaddbox .svcnew {
  margin-top: 10px;
  border: 1px solid var(--line);
}
.svclist {
  max-height: min(68vh, 820px);
  overflow: auto;
}
.svchead {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--card);
}
.svc-save {
  min-width: 38px;
  padding-left: 0;
  padding-right: 0;
  font-weight: 700;
}
.svcrow[hidden] { display: none !important; }
@media (max-width: 900px) {
  .pricebar { grid-template-columns: 1fr; }
}

/* v6.3: modernebb naptar nezet */
.cal-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}
.cal-toolbar h1 {
  margin-bottom: 2px;
}
.cal-toolbar p {
  margin: 0;
  font-weight: 700;
}
.cal-toolbar p span {
  display: inline-block;
  margin-left: 8px;
  color: var(--ink-soft);
  font-size: .82rem;
  font-weight: 500;
}
.cal-controls {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.cal-controls select {
  min-width: 180px;
}
.cal-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin: 12px 0 18px;
}
.cal-summary > div {
  background: var(--card);
  border: 1px solid var(--line);
  border-left: 4px solid var(--gold);
  border-radius: 8px;
  padding: 12px 14px;
}
.cal-summary strong {
  display: block;
  font-size: 1.35rem;
  color: var(--gold-deep);
}
.cal-summary span {
  color: var(--ink-soft);
  font-size: .82rem;
}
.week-calendar {
  --time-w: 72px;
  --cal-row-h: 36px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: auto;
  box-shadow: 0 8px 24px rgba(80,60,30,.06);
}
.week-employee {
  min-width: 980px;
  height: 74px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-bottom: 1px solid var(--line);
  background: #fff;
}
.avatar {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #e9edf1;
  color: var(--ink-soft);
  font-weight: 700;
}
.week-head,
.week-grid {
  min-width: 980px;
  display: grid;
  grid-template-columns: var(--time-w) repeat(7, minmax(120px, 1fr));
}
.week-head {
  position: sticky;
  top: 0;
  z-index: 3;
  background: #fff;
  border-bottom: 1px solid var(--line);
}
.time-head {
  border-right: 1px solid var(--line);
}
.day-head {
  text-align: center;
  padding: 14px 8px 12px;
  border-right: 1px solid var(--line);
}
.day-head:last-child {
  border-right: 0;
}
.day-head strong {
  display: block;
  font-size: 1.05rem;
}
.day-head span {
  color: #5a78ff;
  font-size: .88rem;
}
.day-head.today span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 28px;
  border-radius: 999px;
  background: #5a78ff;
  color: #fff;
  padding: 0 8px;
}
.time-col,
.day-col {
  position: relative;
  min-height: calc(var(--slot-count) * var(--cal-row-h));
}
.time-col {
  background: #fff;
  border-right: 1px solid var(--line);
}
.time-slot {
  height: var(--cal-row-h);
  padding: 4px 8px 0 0;
  text-align: right;
  color: #888;
  font-size: .78rem;
  border-bottom: 1px solid var(--line);
}
.time-slot.major {
  color: #5a78ff;
  font-weight: 700;
}
.day-col {
  border-right: 1px solid var(--line);
  background: #fff;
}
.day-col:last-child {
  border-right: 0;
}
.grid-slot {
  height: var(--cal-row-h);
  border-bottom: 1px solid var(--line);
}
.grid-slot.off {
  background:
    repeating-linear-gradient(45deg, rgba(0,0,0,.035) 0, rgba(0,0,0,.035) 2px, rgba(0,0,0,.015) 2px, rgba(0,0,0,.015) 5px);
}
.week-appt {
  position: absolute;
  left: 6px;
  right: 6px;
  z-index: 2;
  overflow: hidden;
  border: 1px solid rgba(190,150,40,.35);
  border-left: 4px solid var(--gold);
  border-radius: 8px;
  background: #fff8df;
  padding: 7px 8px;
  box-shadow: 0 4px 12px rgba(80,60,30,.14);
  font-size: .78rem;
}
.week-appt strong,
.week-appt span,
.week-appt em {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.week-appt-time {
  color: var(--gold-deep);
  font-weight: 700;
  margin-bottom: 2px;
}
.week-appt-actions {
  display: flex;
  gap: 6px;
  align-items: center;
  margin-top: 4px;
}
.week-appt-actions a,
.week-appt-actions button {
  border: 0;
  background: transparent;
  color: var(--gold-deep);
  padding: 0;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  text-decoration: underline;
}
.week-appt.appt-lemondva,
.week-appt.appt-nem_jott_el {
  opacity: .65;
  border-left-color: var(--err);
  background: #fff3f1;
}
.apptform {
  border-radius: 8px;
  margin-top: 8px;
}
.appt-create {
  margin-top: 18px;
}
.appt-create summary {
  display: inline-flex;
  list-style: none;
}
.svcfilterbar {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(180px, 260px);
  gap: 8px;
  margin-bottom: 8px;
}
.svcfilterbar input,
.svcfilterbar select {
  width: 100%;
}
.svcopt {
  border-bottom: 1px dashed var(--line);
  padding: 8px 2px;
}
.svcopt:last-child {
  border-bottom: 0;
}
.svcopt[hidden] {
  display: none !important;
}
@media (max-width: 700px) {
  .svcfilterbar { grid-template-columns: 1fr; }
  .cal-toolbar { align-items: stretch; flex-direction: column; }
  .cal-controls { align-items: stretch; }
  .cal-controls .inlineform,
  .cal-controls input,
  .cal-controls select,
  .cal-controls .btn { width: 100%; }
}
