/* Lapin Cherry reservations - guest pages (/terminy, /r/<token>, /rezervacni-podminky) on top of /assets/lc.css.
   Ported from the approved prototype (lapincherry/_explore/reservations/proto.css), demo and team parts removed.
   Booking states never rely on colour alone: every state has its own fill pattern and its own word. Hyphen only. */
/* ---------- state patterns: free / few / full / held / booked / closed / prep ---------- */
:root{ --held-bg:#ffc9d7; --held-line:rgba(0,19,222,.88); --seat-r:3px; }
html[data-theme="night"]{ --held-bg:#0013de; --held-line:#ffc9d7; }
.st-free,.st-some,.rv-pill.st-free::before,.sw.st-free{ background-color:var(--bg); box-shadow:inset 0 0 0 1px var(--line-strong); }
.st-few,.rv-pill.st-few::before,.sw.st-few{ background-color:var(--bg); background-image:radial-gradient(circle,var(--ink) .95px,transparent 1.35px); background-size:5px 5px; box-shadow:inset 0 0 0 1px var(--line-strong); }
.st-full,.rv-pill.st-full::before,.sw.st-full{ background-color:var(--bg-2); background-image:radial-gradient(circle,var(--ink) 1px,transparent 1.45px); background-size:3px 3px; box-shadow:inset 0 0 0 1px var(--line-strong); }
.st-held,.rv-pill.st-held::before,.sw.st-held{
  background-color:var(--held-bg); background-image:repeating-linear-gradient(45deg,var(--held-line) 0 1.3px,transparent 1.3px 4.6px); }
.st-booked,.rv-pill.st-booked::before,.sw.st-booked{ background-color:var(--ink); color:var(--bg); }
.st-closed,.rv-pill.st-closed::before,.sw.st-closed{
  background-color:color-mix(in srgb,var(--ink) 9%,var(--bg));
  background-image:repeating-linear-gradient(45deg,var(--line-strong) 0 1px,transparent 1px 5px),repeating-linear-gradient(-45deg,var(--line-strong) 0 1px,transparent 1px 5px); }
.st-prep,.sw.st-prep{ background-color:var(--bg); background-image:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--ink) 40%,transparent) 0 1px,transparent 1px 4px); box-shadow:inset 0 0 0 1px var(--line); }
.st-after{ background-color:transparent; box-shadow:inset 0 0 0 1px var(--line); }
.st-na{ background:transparent; box-shadow:none; }
.is-past{ opacity:.38; }
.sw{ display:inline-block; width:26px; height:18px; border-radius:5px; flex:none; }


/* pills: a small pattern swatch + the word, on a quiet plate */
.rv-pill{ display:inline-flex; align-items:center; gap:7px; border-radius:999px; font-family:var(--f-mono); text-transform:uppercase; letter-spacing:.12em; white-space:nowrap;
  background:var(--panel) !important; background-image:none !important; color:var(--ink) !important; box-shadow:inset 0 0 0 1px var(--line-strong) !important; outline:0 !important; opacity:1 !important; }
.rv-pill{ padding:6px 12px 6px 7px; font-size:.58rem; }
.rv-pill::before{ content:""; width:14px; height:14px; border-radius:4px; flex:none; position:relative; }
.rv-pill.st-booked{ background:var(--ink) !important; color:var(--bg) !important; }
.rv-pill.st-booked::before{ background-color:var(--bg); box-shadow:inset 0 0 0 3px var(--ink), 0 0 0 1px var(--bg); }

/* ---------- public: hero + board ---------- */
.rv-main{ outline:none; min-height:60vh; }
.rv-hero{ padding-top:clamp(36px,7vh,80px); padding-bottom:clamp(18px,3vh,28px); }
.rv-hero.is-compact{ padding-top:clamp(20px,3vh,32px); padding-bottom:0; }
.rv-hero .eyebrow{ margin-bottom:18px; flex-wrap:wrap; }
.rv-livepill{ margin-left:auto; color:var(--ink); }
.rv-h1{ margin:0; max-width:14ch; }
.rv-lede{ margin:18px 0 0; text-align:left; max-width:620px; }
.rv-priv{ margin:18px 0 0; text-transform:lowercase; letter-spacing:.06em; }
.rv-board{ padding-bottom:clamp(40px,8vh,90px); }
.rv-weekend{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:22px; }
.rv-weekend .chips{ gap:6px; }
.rv-weekend .chip{ text-decoration:none; }
.rv-wnone{ color:var(--muted); font-size:.9rem; }
.rv-tools{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; margin-bottom:14px; }
.rv-mlabel{ font-size:clamp(20px,2.2vw,28px); font-weight:600; letter-spacing:-.03em; min-width:9.5em; }
.rv-seg{ display:inline-grid; grid-auto-flow:column; padding:3px; border:1px solid var(--line-strong); border-radius:999px; }
.rv-seg button{ font-family:var(--f-mono); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; padding:9px 16px; border-radius:999px; border:0; background:none; color:var(--muted); cursor:pointer; min-height:36px; transition:background-color .3s,color .3s; }
.rv-seg button[aria-pressed="true"]{ background:var(--ink); color:var(--bg); }
.rv-live{ margin-left:auto; color:var(--muted); text-transform:lowercase; letter-spacing:.04em; }
.rv-legend{ display:flex; flex-wrap:wrap; gap:10px 18px; padding:12px 0 18px; }
.rv-lg{ display:inline-flex; align-items:center; gap:9px; }
.rv-lg > span{ display:flex; flex-direction:column; line-height:1.2; }
.rv-lg b{ font-weight:500; font-size:.84rem; }
.rv-lg small{ font-family:var(--f-mono); font-size:.52rem; letter-spacing:.04em; color:var(--dim); }
@media(max-width:560px){
  .rv-legend{ display:grid; grid-template-columns:1fr 1fr; gap:8px 12px; }
  .rv-lg small{ display:none; }
  .rv-lg b{ font-size:.78rem; }
  .rv-lg .sw{ width:22px; height:15px; }
  .rv-live{ margin-left:0; }
}
.rv-note{ font-size:.82rem; color:var(--muted); margin:14px 0 0; }
.rv-note.mono{ font-size:.56rem; text-transform:lowercase; letter-spacing:.06em; }
.rv-small{ font-size:.8rem; color:var(--muted); margin:10px 0 0; line-height:1.45; }
.rv-small.mono{ font-size:.55rem; letter-spacing:.06em; text-transform:lowercase; }

/* month grid */
.rv-dows{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:1px; margin-bottom:6px; }
.rv-dows span{ font-family:var(--f-mono); font-size:.56rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); padding:0 8px; }
.rv-grid{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.rv-cell{ position:relative; background:var(--bg); border:0; padding:10px 9px 9px; min-height:104px; display:flex; flex-direction:column; gap:8px; cursor:pointer; text-align:left; font:inherit; color:var(--ink); transition:background-color .3s; min-width:0; }
.rv-cell:hover{ background:var(--bg-2); }
.rv-cell:focus-visible,.rv-hrow:focus-visible,.rv-seats:focus-visible{ outline:2px solid var(--ink); outline-offset:-2px; z-index:3; }
.rv-cd{ font-size:clamp(17px,1.8vw,24px); font-weight:600; letter-spacing:-.03em; line-height:1; }
.rv-ticks{ display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:2px; height:24px; margin-top:auto; }
.rv-ticks i{ border-radius:3px 3px 2px 2px; }
.rv-parts{ display:none; }
.rv-cw{ font-family:var(--f-mono); font-size:.55rem; letter-spacing:.04em; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:clip; min-height:1em; }
.rv-cell.d-booked .rv-cw,.rv-cell.d-held .rv-cw{ color:var(--ink); font-weight:700; }
.rv-cell.d-closed{ background-color:color-mix(in srgb,var(--ink) 5%,var(--bg)); background-image:repeating-linear-gradient(45deg,var(--line) 0 1px,transparent 1px 7px),repeating-linear-gradient(-45deg,var(--line) 0 1px,transparent 1px 7px); }
.rv-cell.d-past,.rv-cell.d-beyond{ cursor:default; }
.rv-cell.d-past > *,.rv-cell.d-beyond > *{ opacity:.34; }
.rv-cell.d-past:hover,.rv-cell.d-beyond:hover{ background:var(--bg); }
.rv-cell.is-out > *{ opacity:.42; }
.rv-cell.is-today::before{ content:""; position:absolute; left:0; top:0; right:0; height:3px; background:var(--ink); }
.rv-cell.is-we .rv-cd{ color:var(--ink); }
.rv-grid.lit > .rv-cell{ animation:rvIn .5s var(--ease) both; animation-delay:calc(var(--n,0) * 10ms); }
@keyframes rvIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
.rv-cell.is-pulse,.rv-hrow.is-pulse{ animation:rvFlash .9s var(--ease) 1 !important; }
@keyframes rvFlash{ 0%{ box-shadow:inset 0 0 0 0 transparent; } 25%{ box-shadow:inset 0 0 0 3px var(--ink),0 0 0 4px var(--pink); } 100%{ box-shadow:inset 0 0 0 0 transparent; } }
@media(max-width:700px){
  .rv-cell{ min-height:76px; padding:7px 3px 6px; gap:5px; align-items:stretch; text-align:center; }
  .rv-cd{ font-size:16px; }
  .rv-ticks{ display:none; }
  .rv-parts{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2px; height:13px; margin-top:auto; }
  .rv-parts i{ border-radius:3px; }
  .rv-cw{ font-size:8px; letter-spacing:0; text-transform:lowercase; }
  .rv-dows span{ padding:0; text-align:center; font-size:.5rem; letter-spacing:.06em; }
}

/* cinema hall: days are rows, hours are seats */
.rv-screen{ position:relative; width:min(84%,640px); height:30px; margin:4px auto 16px; border-top:2px solid var(--ink); border-radius:50% 50% 0 0 / 16px 16px 0 0; display:flex; justify-content:center; }
.rv-screen span{ font-family:var(--f-mono); font-size:.52rem; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); margin-top:7px; }
.rv-hhead,.rv-hrow{ display:grid; grid-template-columns:70px minmax(0,1fr) 86px; gap:12px; align-items:center; }
.rv-hhours{ display:grid; grid-template-columns:repeat(var(--hc,13),minmax(0,1fr)); gap:4px; }
.rv-hhours i{ font-style:normal; font-family:var(--f-mono); font-size:.52rem; color:var(--dim); }
.rv-hrows{ display:flex; flex-direction:column; gap:3px; }
.rv-hrow{ width:100%; background:none; border:0; padding:3px 4px; margin:0 -4px; cursor:pointer; color:var(--ink); font:inherit; text-align:left; border-radius:8px; transition:background-color .25s; box-sizing:content-box; }
.rv-hrow:hover{ background:var(--bg-2); }
.rv-hrow.d-past,.rv-hrow.d-beyond{ opacity:.34; cursor:default; }
.rv-hrow.is-we{ background:color-mix(in srgb,var(--pink) 22%,transparent); }
.rv-hrow.is-today .rv-hd b{ background:var(--ink); color:var(--bg); border-radius:6px; padding:0 5px; }
.rv-hd{ display:flex; align-items:baseline; gap:7px; font-family:var(--f-mono); font-size:.58rem; color:var(--muted); text-transform:lowercase; }
.rv-hd b{ font-family:var(--f-sans); font-size:1.02rem; font-weight:600; color:var(--ink); letter-spacing:-.02em; min-width:1.4em; }
.rv-hseats{ display:grid; grid-template-columns:repeat(var(--hc,13),minmax(0,1fr)); gap:4px; }
.rv-hseats i{ height:22px; border-radius:7px 7px 3px 3px; }
.rv-hw{ font-family:var(--f-mono); font-size:.55rem; letter-spacing:.04em; color:var(--muted); white-space:nowrap; overflow:hidden; }
.rv-hrow.d-booked .rv-hw,.rv-hrow.d-held .rv-hw{ color:var(--ink); font-weight:700; }
.rv-hrows.lit i{ animation:rvSeat .42s var(--spring) both; animation-delay:calc((var(--r,0) + var(--i,0)) * 14ms); }
@keyframes rvSeat{ from{ opacity:0; transform:scale(.35); } to{ opacity:1; transform:none; } }
.rv-hrows.lit i.is-past{ animation-name:rvSeatPast; }
@keyframes rvSeatPast{ from{ opacity:0; transform:scale(.35); } to{ opacity:.38; transform:none; } }
@media(max-width:560px){
  .rv-hhead,.rv-hrow{ grid-template-columns:44px minmax(0,1fr) 50px; gap:7px; }
  .rv-hseats,.rv-hhours{ gap:2px; }
  .rv-hseats i{ height:16px; border-radius:5px 5px 2px 2px; }
  .rv-hd{ flex-direction:column; gap:0; font-size:.5rem; }
  .rv-hw{ font-size:.48rem; letter-spacing:0; }
}

/* ---------- public: the day ---------- */
.rv-day{ padding-bottom:clamp(40px,8vh,90px); }
.rv-dayhead{ display:flex; flex-direction:column; gap:12px; margin:14px 0 6px; }
.rv-back{ align-self:flex-start; }
.ic{ width:16px; height:16px; flex:none; }
.ic.flip{ transform:rotate(180deg); }
.rv-dtitle{ display:flex; align-items:center; gap:12px; }
.rv-h2{ margin:0; font-size:clamp(30px,5.4vw,64px); font-weight:600; letter-spacing:-.045em; line-height:.98; flex:1; min-width:0; }
.rv-dmeta{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; }
.rv-dmeta .live{ color:var(--ink); }
.rv-daynote{ margin:4px 0 0; font-size:.95rem; color:var(--muted); }
.rv-daynote.is-big{ font-size:clamp(18px,2.2vw,24px); color:var(--ink); font-weight:500; margin:10px 0 18px; }
.rv-daygrid{ display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.9fr); gap:clamp(20px,3.2vw,48px); align-items:start; }
@media(max-width:820px){ .rv-daygrid{ grid-template-columns:1fr; } }
.rv-cinema{ --tw:46px; --rh:19px; }
.rv-rows{ position:relative; display:grid; grid-template-columns:var(--tw) minmax(0,1fr); grid-auto-rows:var(--rh); row-gap:3px; }
.rv-t{ grid-column:1; align-self:center; font-family:var(--f-mono); font-size:.56rem; letter-spacing:.04em; color:var(--dim); line-height:1; }
.rv-seats{ grid-column:2; position:relative; display:grid; grid-template-columns:repeat(var(--seats),minmax(0,1fr)); gap:2px; padding:0; margin:0; border:0; background:none; height:100%; cursor:pointer; border-radius:5px; color:inherit; font:inherit; }
.rv-seats:disabled{ cursor:default; }
.rv-seats .s{ display:block; border-radius:var(--seat-r) var(--seat-r) 2px 2px; background-color:var(--bg); box-shadow:inset 0 0 0 1px var(--line-strong); transition:background-color .35s,box-shadow .35s,transform .35s var(--spring); }
.rv-seats .s.is-taken{ background-color:var(--bg-2); background-image:radial-gradient(circle,var(--ink) 2.3px,transparent 2.8px); background-position:center; background-repeat:no-repeat; box-shadow:inset 0 0 0 1px var(--line-strong); }
.rv-seats.st-booked .s{ background-color:var(--ink); box-shadow:none; }
.rv-seats.st-held .s{ background-color:var(--held-bg); background-image:repeating-linear-gradient(45deg,var(--held-line) 0 1.3px,transparent 1.3px 4.6px); box-shadow:none; }
.rv-seats.st-closed .s{ background-color:color-mix(in srgb,var(--ink) 9%,var(--bg)); background-image:repeating-linear-gradient(45deg,var(--line-strong) 0 1px,transparent 1px 5px),repeating-linear-gradient(-45deg,var(--line-strong) 0 1px,transparent 1px 5px); box-shadow:none; }
.rv-seats.st-prep .s{ background-color:var(--bg); background-image:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--ink) 42%,transparent) 0 1px,transparent 1px 4px); box-shadow:inset 0 0 0 1px var(--line); }
.rv-seats.st-after .s{ background:transparent; box-shadow:inset 0 0 0 1px var(--line); }
.rv-seats.is-past{ opacity:.36; }
.rv-seats:not(:disabled):hover .s:not(.is-taken){ box-shadow:inset 0 0 0 1.5px var(--ink); }
.rv-pick{ position:absolute; right:4px; top:50%; transform:translateY(-50%); font-family:var(--f-mono); font-size:.5rem; letter-spacing:.06em; background:var(--ink); color:var(--bg); border-radius:999px; padding:3px 8px; opacity:0; pointer-events:none; transition:opacity .2s; white-space:nowrap; }
.rv-seats:not(:disabled):hover .rv-pick,.rv-seats:focus-visible .rv-pick{ opacity:1; }
.rv-seats.is-selx .s{ background-color:var(--pink); background-image:none; box-shadow:inset 0 0 0 1.5px #0013de; }
.rv-seats.is-selprep .s{ background-color:var(--pink); background-image:repeating-linear-gradient(-45deg,rgba(0,19,222,.55) 0 1px,transparent 1px 4px); box-shadow:none; }
.rv-seats .s.is-pick{ background-color:var(--pink); background-image:none; box-shadow:inset 0 0 0 1.5px #0013de; transform:translateY(-2px); }
.rv-rows.lit .s{ animation:rvSeat .4s var(--spring) both; animation-delay:calc(var(--ri,0) * 20ms + var(--k,0) * 8ms); }
.rv-rows.is-pulse{ animation:rvRowsFlash .8s var(--ease); }
@keyframes rvRowsFlash{ 0%{ filter:none; } 30%{ filter:drop-shadow(0 0 6px var(--pink)); } 100%{ filter:none; } }
.rv-band{ grid-column:2; position:relative; z-index:2; pointer-events:none; display:flex; align-items:flex-start; gap:6px; padding:4px; border-radius:7px; min-width:0; }
.rv-band.is-booked,.rv-band.is-held,.rv-band.is-closed,.rv-band.is-mine{ box-shadow:0 0 0 2px var(--bg),0 0 0 3px var(--ink); }
.rv-band.is-mine{ box-shadow:0 0 0 2px var(--bg),0 0 0 3.5px #0013de; }
.rv-blab{ display:inline-flex; flex-direction:column; gap:2px; max-width:calc(100% - 4px); padding:6px 10px; border-radius:7px; background:var(--panel); color:var(--ink); box-shadow:0 8px 20px -10px rgba(0,19,222,.5); }
.rv-blab b{ font-size:.8rem; font-weight:600; letter-spacing:-.01em; line-height:1.15; }
.rv-blab small{ font-family:var(--f-mono); font-size:.52rem; letter-spacing:.04em; color:var(--muted); line-height:1.35; }
.rv-band.is-booked .rv-blab{ border-left:4px solid var(--ink); }
.rv-band.is-held .rv-blab{ border-left:4px solid var(--pink); }
.rv-band.is-mine .rv-blab{ background:#0013de; color:#f8f1e6; }
.rv-band.is-prep,.rv-band.is-after{ align-items:center; justify-content:center; }
.rv-band.is-prep span,.rv-band.is-after span{ font-family:var(--f-mono); font-size:.48rem; letter-spacing:.08em; background:var(--bg); color:var(--muted); border-radius:999px; padding:2px 8px; box-shadow:inset 0 0 0 1px var(--line); white-space:nowrap; }
.rv-watch{ pointer-events:auto; margin-left:auto; display:inline-flex; align-items:center; gap:6px; font-family:var(--f-mono); font-size:.52rem; letter-spacing:.06em; padding:7px 11px; border-radius:999px; border:0; background:var(--ink); color:var(--bg); cursor:pointer; white-space:nowrap; min-height:30px; transition:transform .35s var(--spring),background-color .3s; }
.rv-watch:hover{ background:var(--pink); color:#0013de; }
.rv-watch:active{ transform:scale(.95); }
.rv-watch .ic{ width:14px; height:14px; }
@media(max-width:560px){
  .rv-cinema{ --tw:38px; --rh:15px; --seat-r:2px; }
  .rv-rows{ row-gap:2px; }
  .rv-seats{ gap:1.5px; }
  .rv-seats .s.is-taken{ background-image:radial-gradient(circle,var(--ink) 1.6px,transparent 2px); }
  .rv-blab{ padding:4px 7px; }
  .rv-blab b{ font-size:.7rem; }
  .rv-watch{ padding:5px 8px; font-size:.48rem; }
  .rv-pick{ display:none; }
}

/* the slot panel (glass = the site's inverted card) */
.rv-dright{ position:sticky; top:calc(var(--hdr) + 14px); }
.rv-slot{ padding:clamp(20px,2.2vw,28px); }
.rv-slot .sublabel{ color:var(--card-muted); }
.rv-kinds{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.rv-kind{ text-align:left; display:flex; flex-direction:column; gap:4px; padding:12px; border-radius:14px; border:1px solid var(--card-line); background:transparent; color:var(--card-ink); cursor:pointer; font:inherit; transition:background-color .3s,border-color .3s,transform .35s var(--spring); min-height:44px; }
.rv-kind b{ font-size:1rem; font-weight:600; letter-spacing:-.02em; }
.rv-kind small{ font-size:.72rem; color:var(--card-muted); line-height:1.35; }
.rv-kind[aria-pressed="true"]{ background:var(--pink); border-color:var(--pink); color:#0013de; }
.rv-kind[aria-pressed="true"] small{ color:#0013de; }
.rv-kind:active{ transform:scale(.97); }
.rv-modes{ margin-top:10px; }
.glass .chip{ border-color:var(--card-line); color:var(--card-ink); }
.glass .chip:hover{ border-color:var(--card-ink); }
.glass .chip[aria-pressed="true"]{ background:var(--pink); color:#0013de; border-color:var(--pink); }
.glass .chip.is-no{ opacity:.45; text-decoration:line-through; text-decoration-thickness:1px; }
.glass .step-btn{ border-color:var(--card-line); color:var(--card-ink); }
.glass .step-btn:hover{ border-color:var(--card-ink); }
.glass .stepper .sl{ color:var(--card-muted); }
.rv-steppers{ margin-top:14px; }
.rv-starts{ gap:6px; }
.rv-checkwrap{ min-height:44px; margin-top:14px; }
.rv-check{ margin:0; font-size:.86rem; display:flex; gap:8px; align-items:flex-start; line-height:1.4; }
.rv-check .ic{ width:18px; height:18px; color:var(--pink); margin-top:1px; }
html[data-theme="night"] .rv-check .ic{ color:#0013de; }
.rv-check.is-idle,.rv-check.is-wait{ color:var(--card-muted); }
.rv-check.is-bad{ display:block; background:var(--pink); color:#0013de; border-radius:14px; padding:12px 14px; animation:rvNudge .45s var(--spring); }
.rv-check.is-bad p{ margin:0; }
.rv-check.is-bad .chip{ border-color:rgba(0,19,222,.4); color:#0013de; }
.rv-check.is-bad .chip:hover{ background:#0013de; color:#f8f1e6; }
.rv-alts{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:10px; }
.rv-alts .mono{ color:#0013de; }
@keyframes rvNudge{ 0%{ transform:translateX(0); } 30%{ transform:translateX(-5px); } 60%{ transform:translateX(4px); } 100%{ transform:none; } }
.rv-q{ margin-top:14px; border-top:1px solid var(--line); }
.glass .rv-q{ border-color:var(--card-line); }
.rv-ql{ display:flex; justify-content:space-between; gap:12px; padding:7px 0; font-size:.86rem; border-bottom:1px solid var(--line); }
.glass .rv-ql{ border-color:var(--card-line); }
.rv-ql b{ font-family:var(--f-mono); font-weight:400; font-size:.76rem; white-space:nowrap; }
.rv-ql.tot b{ font-family:var(--f-sans); font-weight:700; font-size:1.25rem; letter-spacing:-.03em; }
.rv-ql.tot{ align-items:baseline; }
.rv-ql.dep b{ background:var(--pink); color:#0013de; border-radius:999px; padding:1px 8px; }
html[data-theme="night"] .glass .rv-ql.dep b{ background:#0013de; color:#f8f1e6; }
.glass .rv-small{ color:var(--card-muted); }
.rv-go{ width:100%; margin-top:16px; }
.glass .btn{ background:var(--pink); color:#0013de; border-color:var(--pink); }
.glass .btn:hover{ background:var(--card-ink); color:var(--card); border-color:var(--card-ink); }
html[data-theme="night"] .glass .btn{ background:#0013de; color:#f8f1e6; border-color:#0013de; }
html[data-theme="night"] .glass .btn:hover{ background:var(--pink); color:#0013de; border-color:var(--pink); }
.rv-builder{ display:inline-flex; align-items:center; gap:8px; margin-top:14px; font-family:var(--f-mono); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; border-bottom:1px solid var(--card-line); padding-bottom:3px; color:var(--card-ink); }
.rv-builder .ic{ width:13px; height:13px; }

/* ---------- sheets ---------- */
.rv-sheetwrap{ position:fixed; inset:0; z-index:600; }
.rv-scrim{ position:absolute; inset:0; background:color-mix(in srgb,var(--bg) 55%,transparent); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); opacity:0; transition:opacity .35s; }
.rv-sheetwrap.open .rv-scrim{ opacity:1; }
.rv-sheet{ position:absolute; left:50%; bottom:0; width:min(560px,100%); transform:translate(-50%,105%); transition:transform .55s var(--spring); }
.rv-sheetwrap.open .rv-sheet{ transform:translate(-50%,0); }
.rv-sheet-in{ max-height:92svh; overflow:auto; border-radius:24px 24px 0 0; padding:22px clamp(18px,4vw,30px) calc(22px + env(safe-area-inset-bottom)); background:var(--panel); box-shadow:0 -30px 60px -30px rgba(0,19,222,.5); }
.rv-sheet-in.glass{ background:var(--card); }
@media(min-width:700px){
  .rv-sheet{ top:50%; bottom:auto; transform:translate(-50%,-44%) scale(.97); opacity:0; transition:transform .5s var(--spring),opacity .3s; }
  .rv-sheetwrap.open .rv-sheet{ transform:translate(-50%,-50%); opacity:1; }
  .rv-sheet-in{ border-radius:24px; max-height:88vh; }
}
.rv-sheet-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.rv-sheet-top h2{ margin:0; font-size:clamp(26px,3.4vw,36px); font-weight:600; letter-spacing:-.035em; }
.rv-form{ grid-template-columns:1fr; gap:10px; margin-top:16px; max-width:none; }
.glass .fld label{ color:var(--card-muted); }
.glass .fld input,.glass .fld textarea{ border-color:var(--card-line); color:var(--card-ink); padding:12px 14px; }
.glass .fld input::placeholder,.glass .fld textarea::placeholder{ color:var(--card-muted); }
.glass .fld input:focus,.glass .fld textarea:focus{ border-color:var(--card-ink); background:transparent; }
.glass .fld textarea{ min-height:64px; }
.glass .fld .err{ color:var(--pink); }
html[data-theme="night"] .glass .fld .err{ color:#b0103e; }
.rv-hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.rv-check-opt{ display:flex; gap:10px; align-items:flex-start; font-size:.84rem; line-height:1.4; cursor:pointer; margin:4px 0; }
.rv-check-opt input{ position:absolute; opacity:0; width:1px; height:1px; }
.rv-check-opt .box{ width:20px; height:20px; border-radius:6px; flex:none; display:grid; place-items:center; box-shadow:inset 0 0 0 1.5px currentColor; transition:background-color .25s; margin-top:1px; }
.rv-check-opt .box .ic{ width:13px; height:13px; opacity:0; transform:scale(.4); transition:opacity .2s,transform .35s var(--spring); color:#0013de; }
.rv-check-opt input:checked ~ .box{ background:var(--pink); box-shadow:inset 0 0 0 1.5px #0013de; }
.rv-check-opt input:checked ~ .box .ic{ opacity:1; transform:none; }
.rv-check-opt input:focus-visible ~ .box{ outline:2px solid currentColor; outline-offset:3px; }
.rv-agree.is-bad .box{ box-shadow:inset 0 0 0 2px var(--err); animation:rvNudge .45s var(--spring); }
.rv-in-link{ text-decoration:underline; text-underline-offset:3px; }
.rv-formerr{ margin:0; min-height:1em; font-size:.84rem; color:var(--pink); }
html[data-theme="night"] .rv-formerr{ color:#b0103e; }
.rv-form .btn{ width:100%; margin-top:6px; }
.rv-sheet .sub{ margin-top:10px; font-size:1rem; }

/* ---------- after sending + the guest page ---------- */
.rv-done,.rv-manage{ padding-top:clamp(30px,6vh,70px); padding-bottom:clamp(40px,8vh,90px); }
.rv-done .eyebrow,.rv-manage .eyebrow{ flex-wrap:wrap; }
.rv-done .lead,.rv-manage .lead{ margin-top:16px; }
.rv-donegrid,.rv-mgrid{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(20px,4vw,56px); margin-top:clamp(20px,4vh,40px); align-items:start; }
@media(max-width:860px){ .rv-donegrid,.rv-mgrid{ grid-template-columns:1fr; } }
.rv-donecol,.rv-mcol{ display:flex; flex-direction:column; gap:18px; min-width:0; }
.rv-holdcard,.rv-paidcard{ padding:clamp(22px,2.6vw,32px); }
.rv-clock{ display:flex; flex-direction:column; gap:6px; }
.rv-count{ font-family:var(--f-mono); font-weight:700; font-size:clamp(40px,7vw,76px); letter-spacing:-.04em; line-height:1; font-variant-numeric:tabular-nums; }
.rv-count.is-low{ color:var(--pink); }
html[data-theme="night"] .rv-count.is-low{ color:#0013de; }
.rv-holdcard p{ margin:12px 0 0; }
.rv-paidcard h2{ margin:6px 0 4px; font-size:clamp(28px,3.6vw,44px); font-weight:600; letter-spacing:-.04em; line-height:1; }
.rv-paidcard p{ margin:0; color:var(--card-muted); }
.rv-paidcard.is-paid{ animation:rvPaid .9s var(--spring); }
@keyframes rvPaid{ 0%{ transform:scale(.96); box-shadow:0 0 0 0 var(--pink); } 50%{ box-shadow:0 0 0 10px color-mix(in srgb,var(--pink) 60%,transparent); } 100%{ transform:none; } }
.rv-payacts{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin-top:16px; }
.rv-payacts .glass-btn .ic{ width:14px; height:14px; }
.rv-bind{ border:1px solid var(--line-strong); border-radius:18px; padding:clamp(20px,2.4vw,28px); }
.rv-bind h2{ margin:0 0 6px; font-size:clamp(22px,2.6vw,30px); font-weight:600; letter-spacing:-.03em; }
.rv-bind .sub{ font-size:.95rem; margin-bottom:14px; }
.rv-bind .btn{ margin-top:12px; white-space:normal; text-align:center; }
.rv-pay{ display:grid; grid-template-columns:minmax(150px,210px) minmax(0,1fr); gap:20px; border:1px solid var(--line-strong); border-radius:18px; padding:18px; align-items:start; animation:rvIn .5s var(--ease); }
@media(max-width:520px){ .rv-pay{ grid-template-columns:1fr; } .rv-qr{ max-width:240px; } }
.rv-qr{ display:flex; flex-direction:column; align-items:center; gap:8px; background:#f8f1e6; border-radius:16px; padding:10px 10px 12px; box-shadow:0 18px 40px -22px rgba(0,19,222,.6); }
.rv-qr .mono{ color:#4a52a3; }
.rv-qrsvg,.qr{ width:100%; height:auto; display:block; border-radius:6px; }
.rv-payr dl{ margin:0; }
.rv-prow{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); }
.rv-prow dt{ font-family:var(--f-mono); font-size:.56rem; letter-spacing:.12em; text-transform:uppercase; color:var(--dim); }
.rv-prow dd{ margin:0; display:flex; align-items:center; gap:8px; font-weight:600; font-variant-numeric:tabular-nums; }
.rv-copy{ width:34px; height:34px; border-radius:50%; border:1px solid var(--line-strong); background:none; color:var(--ink); display:grid; place-items:center; cursor:pointer; transition:transform .35s var(--spring),background-color .25s; }
.rv-copy:hover{ background:var(--pink); color:#0013de; }
.rv-copy:active{ transform:scale(.9); }
.rv-copy .ic{ width:15px; height:15px; }
.rv-doneacts{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px; margin-top:clamp(24px,4vh,40px); }
.rv-doneacts .btn .ic{ width:18px; height:18px; }
.rv-steps{ list-style:none; margin:clamp(20px,3vh,30px) 0 0; padding:0; display:flex; gap:0; counter-reset:x; }
.rv-steps li{ flex:1; display:flex; flex-direction:column; align-items:flex-start; gap:8px; position:relative; min-width:0; }
.rv-steps li::before{ content:""; position:absolute; left:0; right:0; top:14px; height:1px; background:var(--line-strong); z-index:0; }
.rv-steps li i{ position:relative; z-index:1; width:28px; height:28px; border-radius:50%; display:grid; place-items:center; background:var(--bg); box-shadow:inset 0 0 0 1px var(--line-strong); font-style:normal; font-family:var(--f-mono); font-size:.6rem; color:var(--dim); }
.rv-steps li.is-done i{ background:var(--ink); color:var(--bg); box-shadow:none; }
.rv-steps li.is-done::before{ background:var(--ink); }
.rv-steps li i .ic{ width:14px; height:14px; }
.rv-steps li span{ font-family:var(--f-mono); font-size:.52rem; letter-spacing:.06em; text-transform:lowercase; color:var(--muted); padding-right:6px; line-height:1.3; }
.rv-steps li.is-done span{ color:var(--ink); }
.rv-calc .rv-q{ margin-top:0; }
.rv-self{ display:flex; flex-direction:column; border-top:1px solid var(--line); }
.rv-selfrow{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px 12px; align-items:center; text-align:left; padding:15px 4px; border:0; border-bottom:1px solid var(--line); background:none; color:var(--ink); font:inherit; cursor:pointer; transition:background-color .25s; min-height:56px; }
.rv-selfrow:hover{ background:color-mix(in srgb,var(--pink) 25%,transparent); }
.rv-selfrow b{ font-size:1.05rem; font-weight:600; letter-spacing:-.02em; grid-column:1; }
.rv-selfrow small{ grid-column:1; font-size:.8rem; color:var(--muted); }
.rv-selfrow .rv-plus,.rv-selfrow .ic{ grid-column:2; grid-row:1 / span 2; font-family:var(--f-mono); color:var(--muted); transition:transform .3s; }
.rv-selfrow.is-open .rv-plus{ transform:rotate(45deg); }
.rv-selfrow.is-off{ opacity:.55; cursor:default; }
.rv-selfrow.is-off:hover{ background:none; }
.rv-panel{ padding:14px 4px 18px; border-bottom:1px solid var(--line); animation:rvIn .4s var(--ease); }
.rv-panel p{ margin:0 0 12px; }
.rv-panel .chips{ gap:6px; margin-bottom:12px; }
.chip.is-no{ opacity:.4; }
.rv-mvdates{ max-height:120px; overflow:auto; }
.rv-terms ul{ margin:0; padding-left:18px; color:var(--muted); font-size:.9rem; }
.rv-terms li{ margin:4px 0; }
.rv-foot{ border-top:1px solid var(--line); }


/* ---------- motion + print ---------- */
::view-transition-old(rvday),::view-transition-new(rvday){ animation-duration:.42s; animation-timing-function:cubic-bezier(.2,.7,.2,1); }
@media(prefers-reduced-motion:reduce){
  .rv-grid.lit > .rv-cell,.rv-hrows.lit i,.rv-rows.lit .s{ animation:none !important; opacity:1; }
}

/* ---------- critic pass 2026-10-03: partly-booked days, tap targets >= 44 px, legibility ---------- */
/* "zčásti": something is taken, something still sells. ink word, lighter than a fully booked day */
.rv-cell.d-part .rv-cw,.rv-hrow.d-part .rv-hw{ color:var(--ink); font-weight:600; }
.rv-pill.st-part::before{ background:linear-gradient(90deg,var(--ink) 0 50%,var(--bg) 50% 100%); box-shadow:inset 0 0 0 1px var(--ink); }
/* out-of-month days are still bookable: dim the seats, keep the text readable (AA) */
.rv-cell.is-out > *{ opacity:1; }
.rv-cell.is-out .rv-parts,.rv-cell.is-out .rv-ticks{ opacity:.42; }
.rv-cell.is-out .rv-cd{ color:var(--muted); font-weight:500; }
.rv-cell.is-out .rv-cw{ color:var(--muted); }
@media(max-width:700px){
  .rv-cell{ padding:7px 2px 6px; }
  .rv-cw{ font-size:9px; }
}
/* every control a thumb can hit: 44 px */
.rv-main .cal-arrow,.rv-done .cal-arrow{ width:44px; height:44px; }
.rv-seg button{ min-height:44px; }
.hdr .langm-btn{ min-height:44px; min-width:44px; justify-content:center; }
.hdr .toggle{ min-height:44px; }
.hdr .brand{ min-height:44px; display:inline-flex; align-items:center; }
.rv-starts .chip,.rv-modes .chip,.rv-alts .chip,.rv-panel .chip,.rv-weekend .chip{ min-height:44px; display:inline-flex; align-items:center; }
.rv-cw2{ font-weight:400; color:var(--muted); }
@media(max-width:700px){ .rv-cw2{ display:none; } }
/* touch: two half-hour rows = one hour = one 44 px target (a tap on either row picks that hour) */
@media(pointer:coarse){
  .rv-cinema{ --rh:21px; }
  .rv-rows{ row-gap:2px; }
}
.rv-copy{ width:44px; height:44px; }
.rv-watch{ min-height:44px; padding:9px 14px; font-size:.56rem; }
.rv-back,.rv-builder,.rv-doneacts .lnk,.rv-chatlink{ min-height:44px; display:inline-flex; align-items:center; }
.foot-links a{ display:inline-flex; align-items:center; min-height:44px; }

/* ---------- production pages (2026-10-04): site chrome, pilot mode, form, states, terms ---------- */
.rv-page{ overflow-x:hidden; }
.hdr{ background:var(--bg); }
.hdr .links a.is-on{ color:var(--ink); }
.hdr .links a.is-on::after{ content:""; width:6px; height:6px; border-radius:50%; background:var(--pink); box-shadow:0 0 0 1.5px var(--ink) inset; }
.hdr .links a{ min-height:44px; }
.hdr-cta{ display:inline-flex; align-items:center; min-height:44px; text-decoration:none; }
.mnav-links a[aria-current="page"] span{ text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:6px; }
@media(max-width:1180px){ .hdr .links{ gap:18px; } }
@media(max-width:560px){ .hdr .hdr-cta{ display:none; } }
.rv-main{ display:block; }
.rv-loading{ padding:clamp(60px,14vh,140px) 0; color:var(--muted); }
.rv-loading .mono{ font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; }
.rv-loading .mono::after{ content:""; display:inline-block; width:7px; height:7px; margin-left:10px; border-radius:50%; background:var(--pink); box-shadow:0 0 0 1.5px var(--ink) inset; animation:pulse 1.6s ease-in-out infinite; }
.rv-fail .lead,.rv-lost .lead{ max-width:34ch; }
.rv-lost{ padding-top:clamp(40px,8vh,90px); padding-bottom:clamp(40px,8vh,90px); }
.live.is-off{ color:var(--muted); }
.live.is-off b{ background:transparent; box-shadow:0 0 0 1.5px var(--muted) inset; animation:none; }
.rv-pilot{ margin:14px 0 0; max-width:620px; font-size:.92rem; line-height:1.5; color:var(--ink); padding:12px 14px 12px 40px; position:relative; border:1px solid var(--line-strong); border-radius:14px; background:var(--panel); }
.rv-pilot::before{ content:""; position:absolute; left:15px; top:17px; width:12px; height:12px; border-radius:4px; background-color:var(--held-bg); background-image:repeating-linear-gradient(45deg,var(--held-line) 0 1.3px,transparent 1.3px 4.6px); }
.rv-pilotcard p{ margin:0 0 10px; line-height:1.5; }
.rv-pilotcard p:last-child{ margin-bottom:0; }
.rv-pilot-h{ font-size:clamp(1.05rem,2vw,1.25rem); font-weight:600; letter-spacing:-.02em; line-height:1.3 !important; }
.rv-mailnote p{ margin:0 0 10px; line-height:1.5; }
.rv-two{ display:grid; grid-template-columns:1fr; gap:0 14px; }
@media(min-width:560px){ .rv-two{ grid-template-columns:1fr 1fr; } }
.rv-hint{ margin:-4px 0 10px; }
.rv-form input,.rv-form textarea{ font-size:16px; }
.rv-form input[aria-invalid="true"],.rv-form textarea[aria-invalid="true"]{ box-shadow:inset 0 0 0 2px var(--pink); }
.rv-chatlink{ font-family:var(--f-mono); font-size:.58rem; letter-spacing:.08em; text-transform:lowercase; color:inherit; opacity:.85; text-decoration:underline; text-underline-offset:4px; margin-top:4px; }
.rv-chatlink:hover{ opacity:1; }
.rv-form .rv-chatlink{ align-self:center; }
.rv-agreeerr:empty{ display:none; }
.rv-agreeerr{ margin:6px 0 0; font-size:.85rem; color:var(--ink); font-weight:600; }
.rv-check-opt{ min-height:44px; }
.rv-doneacts{ flex-wrap:wrap; }
.rv-checkoutonly{ margin-top:0; }
.rv-pay:focus{ outline:none; }
.rv-pay:focus-visible{ outline:2px solid var(--ink); outline-offset:4px; border-radius:12px; }
.rv-steps li[aria-current="step"] span{ color:var(--ink); }
@media(max-width:420px){ .rv-steps li span{ font-size:.48rem; letter-spacing:.02em; } }
.rv-h1:focus{ outline:none; }
.rv-selfrow{ min-height:44px; }
a.rv-selfrow{ text-decoration:none; color:inherit; }
/* terms page */
.rv-termspage .rv-main .pv{ padding-top:clamp(24px,5vh,56px); }
.rv-ttools{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 16px; margin:0 0 clamp(18px,3vh,28px); }
.rv-print{ display:inline-flex; align-items:center; gap:8px; min-height:44px; }
.rv-print .ic{ width:16px; height:16px; }
.rv-tlang{ margin:0 0 22px; padding:12px 14px; border:1px dashed var(--line-strong); border-radius:12px; font-size:.92rem; line-height:1.5; }
.rv-tcard{ border:1px solid var(--line-strong); border-radius:18px; background:var(--panel); padding:clamp(16px,3vw,26px); margin:22px 0; }
.rv-tcard .sublabel{ margin-top:0; }
.rv-tshort{ margin:0; padding:0; list-style:none; display:grid; gap:10px; }
.rv-tshort li{ position:relative; padding-left:22px; line-height:1.5; }
.rv-tshort li::before{ content:""; position:absolute; left:2px; top:.55em; width:8px; height:8px; border-radius:50%; background:var(--pink); box-shadow:0 0 0 1px var(--ink); }
.rv-tmissing{ max-width:640px; line-height:1.55; }
.rv-legal{ overflow-wrap:anywhere; }
@media print{
  .hdr,.mnav,.rv-foot,.rv-ttools,.toast,#chromeTop,#chromeBottom{ display:none !important; }
  body{ background:#fff !important; color:#000 !important; }
}
.rv-pilotcard p{ font-size:1rem; }
.rv-pilotcard .rv-pilot-h{ font-size:clamp(1.08rem,2vw,1.25rem); }
.rv-pilotcard .rv-small{ font-size:.86rem; }
.rv-print{ padding:0 18px; border:1px solid var(--line-strong); border-radius:999px; background:transparent; color:var(--ink); font-family:var(--f-mono); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; transition:background-color .25s,color .25s; }
.rv-print:hover{ background:var(--ink); color:var(--bg); }
/* critic pass: standalone text links and text buttons get a 44 px tap area too */
.rv-small > .lnk:only-child, button.lnk{ min-height:44px; display:inline-flex; align-items:center; }

/* /w/<token>: the waitlist offer - headcount stepper */
.rv-claimn{ display:flex; align-items:center; gap:14px; margin-top:8px; }
.rv-claimn b{ min-width:9ch; text-align:center; font-size:1.15rem; }
.rv-claimn .glass-btn{ min-width:44px; min-height:44px; justify-content:center; font-size:1.2rem; }
.rv-claimn .glass-btn[disabled]{ opacity:.35; }
.rv-claim .rv-form{ display:grid; gap:14px; }
