/* estibe-events — seat-picker.css (frontend) */
.estibe-pk { position: relative; margin: 2rem 0; }
.estibe-pk__loading, .estibe-pk-closed { color: var(--estibe-text-muted, #5C5A52); padding: 1rem 0; }
.estibe-pk__head h2 { margin: 0 0 .2rem; }
.estibe-pk__free { margin: 0 0 1rem; color: var(--estibe-text-muted, #5C5A52); }

.estibe-pk__legend { display: flex; flex-wrap: wrap; gap: .4rem .9rem; align-items: center; font-size: .82rem; margin-bottom: .5rem; }
.estibe-pk__lg { display: inline-flex; align-items: center; }
.estibe-pk__sw { display: inline-block; width: 14px; height: 14px; border-radius: 4px; vertical-align: middle; margin-right: .35rem; border: 1px solid rgba(0,0,0,.15); }
.estibe-pk__limit {
  margin: 0 0 .6rem; padding: .5rem .8rem; font-size: .85rem;
  background: var(--estibe-surface-alt, #F4F1E9); border-radius: 8px; color: var(--estibe-text-muted, #6b6864);
}
.estibe-pk__checkout { margin-top: .6rem; display: grid; gap: .5rem; }
.estibe-pk__checkout[hidden] { display: none; }
.estibe-pk__recap-h { margin: .2rem 0 0; font-size: .8rem; font-weight: 700; letter-spacing: .04em; color: var(--estibe-text-muted, #6b6864); text-transform: uppercase; }
.estibe-pk__sw.estibe-pk--free { background: #fff; }
.estibe-pk__sw.estibe-pk--vip { background: var(--estibe-gold, #8F6E2D); }
.estibe-pk__sw.estibe-pk--sel { background: var(--estibe-vermilion, #F1491F); }
.estibe-pk__sw.estibe-pk--sold { background: #c9ccce; }

.estibe-pk__zoom {
  position: absolute; top: 10px; right: 10px; z-index: 5;
  display: flex; flex-direction: column; gap: 6px; margin: 0;
}
.estibe-pk__zoom button {
  width: 40px; height: 40px; border-radius: 10px; cursor: pointer;
  border: 1px solid var(--estibe-border-strong, rgba(35,31,32,.28));
  background: var(--estibe-surface, #fff); color: var(--estibe-text, #231F20);
  font-size: 1.25rem; line-height: 1; box-shadow: 0 1px 3px rgba(0,0,0,.18);
  display: flex; align-items: center; justify-content: center;
}
.estibe-pk__zoom button:hover { background: var(--estibe-surface-alt, #E3EAE7); }

.estibe-pk__stage {
  position: relative;
  border: 1px solid var(--estibe-border, rgba(35,31,32,.14)); border-radius: var(--estibe-radius, 14px);
  background: var(--estibe-surface-alt, #E3EAE7); overflow: hidden; touch-action: none;
}
/* Celý sál se vejde do plochy (contain přes viewBox); výška je stabilní, obsah se neposouvá ven. */
.estibe-pk__svg { width: 100%; height: 56vh; max-height: 560px; min-height: 300px; display: block; cursor: grab; }
.estibe-pk__svg:active { cursor: grabbing; }

/* Sedadla */
.estibe-pk__seat { stroke: rgba(35,31,32,.18); stroke-width: 1; }
.estibe-pk--free { cursor: pointer; }
.estibe-pk--free:hover { stroke: var(--estibe-vermilion, #F1491F); stroke-width: 1.8; }
.estibe-pk--vip { fill: var(--estibe-gold, #8F6E2D); cursor: pointer; }
.estibe-pk--sel { fill: var(--estibe-vermilion, #F1491F); }
.estibe-pk--sold { fill: #e6e8e9; stroke: rgba(35,31,32,.12); }
.estibe-pk--held { fill: var(--estibe-amber, #F49E37); opacity: .55; }
.estibe-pk__seatnum { font-size: 9px; fill: #45413f; pointer-events: none; }
.estibe-pk--sel + .estibe-pk__seatnum, .estibe-pk--vip + .estibe-pk__seatnum { fill: #fff; }
.estibe-pk__seatx { font-size: 12px; fill: #9aa0a3; pointer-events: none; text-anchor: middle; }
.estibe-pk__rowlabel { font-size: 11px; font-weight: 700; fill: #6b6864; }
.estibe-pk__screen-rect { fill: #cdd6d2; }
.estibe-pk__screen-text { font-size: 10px; letter-spacing: .25em; fill: #5b5f5c; }

/* Bublinová nápověda nad sedadlem */
.estibe-pk__tip {
  position: absolute; left: 0; top: 0; z-index: 6;
  transform: translate(-50%, calc(-100% - 14px));
  pointer-events: none; opacity: 0; transition: opacity .12s ease;
  background: var(--estibe-surface, #fff); color: var(--estibe-text, #231F20);
  border: 1px solid var(--estibe-border-strong, rgba(35,31,32,.28));
  border-radius: 10px; padding: .5rem .7rem; min-width: 130px; text-align: center;
  box-shadow: 0 6px 22px rgba(0,0,0,.22); font-size: .82rem; line-height: 1.5;
  white-space: nowrap;
}
.estibe-pk__tip.is-on { opacity: 1; }
.estibe-pk__tip--below { transform: translate(-50%, 22px); }
.estibe-pk__tip--below::after {
  top: -7px; bottom: auto;
  border-top-color: transparent; border-bottom-color: var(--estibe-surface, #fff);
  filter: drop-shadow(0 -1px 0 rgba(35,31,32,.28));
}
.estibe-pk__tip strong { display: block; font-size: .88rem; margin-bottom: .1rem; }
.estibe-pk__tip span { display: block; color: var(--estibe-text-muted, #6b6864); }
.estibe-pk__tip .estibe-pk__tipprice { color: var(--estibe-text, #231F20); font-weight: 700; margin-top: .15rem; }
.estibe-pk__tip .estibe-pk__tipsold { color: #C2371A; font-weight: 600; }
/* špička bubliny */
.estibe-pk__tip::after {
  content: ''; position: absolute; left: 50%; bottom: -7px; transform: translateX(-50%);
  border: 7px solid transparent; border-top-color: var(--estibe-surface, #fff);
  filter: drop-shadow(0 1px 0 rgba(35,31,32,.28));
}

/* Souhrn */
.estibe-pk__summary {
  position: sticky; bottom: 0; z-index: 10; margin-top: 1rem;
  background: var(--estibe-surface, #fff); border: 1px solid var(--estibe-border, rgba(35,31,32,.14));
  border-radius: var(--estibe-radius, 14px); padding: 1rem; display: grid; gap: .6rem;
  box-shadow: 0 -6px 20px rgba(0,0,0,.06);
}
.estibe-pk__sum-line { display: flex; justify-content: space-between; align-items: baseline; font-size: 1.05rem; }
.estibe-pk__sum-line strong { font-size: 1.3rem; }
.estibe-pk__timer { margin: 0; color: var(--estibe-amber-deep, #8A540A); font-size: .85rem; min-height: 1em; }
.estibe-pk__summary input {
  width: 100%; padding: .7em .9em; border-radius: var(--estibe-radius-sm, 8px);
  border: 1px solid var(--estibe-border-strong, rgba(35,31,32,.28)); font: inherit;
}
.estibe-pk__buy {
  width: 100%;
  background: var(--estibe-vermilion, #F1491F); color: #fff; border: 0; cursor: pointer;
  border-radius: var(--estibe-radius-pill, 999px); padding: .9em 1.4em; font: inherit; font-weight: 600;
}
.estibe-pk__buy:disabled { background: #c9ccce; cursor: not-allowed; }
.estibe-pk__note { margin: 0; color: var(--estibe-text-muted, #5C5A52); font-size: .85rem; }

.estibe-pk__done { text-align: center; padding: 2rem 1rem; }
.estibe-pk__done h2 { color: #3B6D11; }

.estibe-pk__toast {
  position: fixed; left: 50%; bottom: 1.5rem; transform: translateX(-50%); z-index: 9999;
  background: var(--estibe-ink, #231F20); color: #fff; padding: .7em 1.2em; border-radius: 999px;
  font-size: .9rem; box-shadow: 0 6px 20px rgba(0,0,0,.25);
}

@media (min-width: 640px) {
  .estibe-pk__summary { grid-template-columns: 1fr; }
}

/* sektory a neaktivní místa (v0.5.0) */
.estibe-pk__sectlabel { font-size: 12px; font-weight: 700; letter-spacing: .08em; fill: #45413f; text-transform: uppercase; }
.estibe-pk--off { fill: #e7e7e4; stroke: #d4d4d0; }

/* výpis vybraných míst (v0.5.1) */
.estibe-pk__seats { list-style: none; margin: 0 0 .5rem; padding: 0; display: grid; gap: .25rem; max-height: 30vh; overflow: auto; }
.estibe-pk__seats li { display: flex; justify-content: space-between; gap: .5rem; font-size: .9rem; padding: .35rem .5rem; background: var(--estibe-surface-alt, #E3EAE7); border-radius: 8px; }
.estibe-pk__note:not(:empty) { color: #C2371A; font-weight: 600; }

/* rezervace (v0.7.0) */
.estibe-pk__reserve {
  width: 100%; margin-top: .1rem; padding: .85em 1em;
  border: 1.5px solid currentColor; background: transparent; color: inherit;
  font: inherit; font-weight: 600; border-radius: var(--estibe-radius-pill, 999px); cursor: pointer;
}
.estibe-pk__reserve:hover { background: rgba(127,127,127,.12); }
.estibe-pk__reserve:disabled { opacity: .45; cursor: not-allowed; }

/* platba na fakturu – jen admin (0.17.0) */
.estibe-pk__invoice {
  width: 100%; margin-top: .1rem; padding: .85em 1em;
  border: 1.5px dashed var(--estibe-amber-deep, #8A540A); background: transparent; color: var(--estibe-amber-deep, #8A540A);
  font: inherit; font-weight: 600; border-radius: var(--estibe-radius-pill, 999px); cursor: pointer;
}
.estibe-pk__invoice:hover { background: rgba(138,84,10,.1); }
.estibe-pk__invoice:disabled { opacity: .45; cursor: not-allowed; }
.estibe-pk__names[hidden], input#estibe-pk-phone[hidden], input#estibe-pk-email[hidden] { display: none; }

/* vyřazení z prodeje (neprodejná místa) – jen admin */
.estibe-pk__wdreason {
  width: 100%; box-sizing: border-box; margin-top: .5rem; padding: .7em .85em; resize: vertical;
  border: 1.5px solid var(--estibe-border-strong, rgba(35,31,32,.28)); border-radius: 10px; font: inherit; font-size: .95em;
}
.estibe-pk__withdraw {
  width: 100%; margin-top: .5rem; padding: .85em 1em;
  border: 1.5px dashed #a50e0e; background: transparent; color: #a50e0e;
  font: inherit; font-weight: 600; border-radius: var(--estibe-radius-pill, 999px); cursor: pointer;
}
.estibe-pk__withdraw:hover { background: rgba(165,14,14,.08); }
.estibe-pk__withdraw:disabled { opacity: .45; cursor: not-allowed; }

.estibe-pk__done { text-align: center; padding: 1.5rem 1rem; }
.estibe-pk__done strong { display: block; font-size: 1.2rem; color: #2F7D17; margin-bottom: .4rem; }

/* jméno + příjmení (v0.8.0) */
.estibe-pk__names { display: flex; gap: .5rem; }
.estibe-pk__names input { flex: 1; }

/* Mobilní kompaktní zobrazení (inspirace referencí) – v0.5.x */
@media (max-width: 640px) {
  .estibe-pk__head h2 { font-size: 1.1rem; }
  .estibe-pk__free { font-size: .85rem; }
  .estibe-pk__legend { gap: .35rem .9rem; font-size: .78rem; margin-bottom: .4rem; }
  .estibe-pk__svg { height: 52vh; min-height: 280px; }
  .estibe-pk__zoom button { width: 36px; height: 36px; font-size: 1.15rem; }
}

/* IAB varování (Facebook/Instagram prohlížeč) */
.estibe-iab-warning {
  background: #fff3cd; border: 1px solid #ffc107; border-radius: 8px;
  padding: .8rem 1rem; margin-bottom: 1rem; font-size: .9rem; line-height: 1.5;
}
.estibe-iab-warning strong { display: block; margin-bottom: .25rem; }
.estibe-iab-warning p { margin: 0; color: #555; }

/* Souhlasy a novinky v košíku (0.42) */
.estibe-pk__mk { display: grid; gap: .45rem; margin: .2rem 0 .3rem; font-size: .86rem; line-height: 1.4; color: var(--estibe-text-muted, #5C5A52); }
.estibe-pk__mk[hidden] { display: none; }
.estibe-pk__mk-info { margin: 0; }
.estibe-pk__mk-info a { color: inherit; text-decoration: underline; }
.estibe-pk__mk-row { display: flex; gap: .55rem; align-items: flex-start; cursor: pointer; color: var(--estibe-ink, #231F20); }
.estibe-pk__mk-row input { width: 18px; height: 18px; margin: .1rem 0 0; flex: 0 0 auto; accent-color: var(--estibe-ink, #231F20); }

/* Volná (nečíslovaná) místa – výběr počtu vstupenek v zónách */
.estibe-pk__zones { display: grid; gap: .6rem; margin: .4rem 0 1rem; }
.estibe-pk__zone {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .8rem 1rem; border-radius: var(--estibe-radius, 14px);
  border: 1px solid var(--estibe-border, rgba(35,31,32,.14)); background: var(--estibe-surface, #fff);
}
.estibe-pk__zone.is-out { opacity: .55; }
.estibe-pk__zinfo { display: grid; gap: .15rem; }
.estibe-pk__zinfo span { font-size: .85rem; color: var(--estibe-text-muted, #5C5A52); }
.estibe-pk__qty { display: inline-flex; align-items: center; gap: .6rem; }
.estibe-pk__qty button {
  width: 40px; height: 40px; border-radius: 999px; cursor: pointer; font-size: 1.3rem; line-height: 1;
  border: 1px solid var(--estibe-border-strong, rgba(35,31,32,.28)); background: var(--estibe-surface, #fff); color: var(--estibe-text, #231F20);
}
.estibe-pk__qty button:disabled { opacity: .4; cursor: not-allowed; }
.estibe-pk__qval { min-width: 1.6em; text-align: center; font-weight: 700; font-size: 1.1rem; }
