@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,500;0,600;0,900;1,600&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@500;700&family=Noto+Sans+Devanagari:wght@500;600;700&display=swap');

html,body{touch-action:manipulation; overscroll-behavior:none;}
.seat-scroll{touch-action:pan-x pan-y;}
* { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
:root {
  --maroon:#4A1220; --maroon-deep:#2E0A11; --gold:#C9A227; --gold-dim:#9C7C22;
  --cream:#F6EFE2; --paper:#FBF6EC; --ink:#241C1C; --ink-soft:#6B5F57;
  --sage:#A9AB9C; --sage-dark:#82847A; --slate:#C7C0B4; --rose:#B93B34; --rose-dark:#8C2B26;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --app-height: 100vh;
  --nav-height: 64px;
}
html, body { height:100%; min-height:100dvh; background:#1B1310; }
body { font-family:'Inter','Noto Sans Devanagari',sans-serif; display:flex; justify-content:center; overflow:hidden; background:#1B1310; }
body.seat-booking-active { overflow:hidden; }
.phone { width:100%; max-width:430px; height:var(--app-height); max-height:var(--app-height); background:var(--paper); overflow:hidden; position:relative; display:flex; flex-direction:column; margin:0 auto; border-radius:0; padding-top:var(--safe-top); padding-bottom:var(--safe-bottom); box-sizing:border-box; }
.portrait-seat-gate { display:none; }
@media (orientation:portrait) and (max-width:699px) {
  body.seat-booking-active .phone { max-width:none; }
  body.seat-booking-active .portrait-seat-gate { display:none; }
  body.seat-booking-active .quota-note { display:none; }
  body.seat-booking-active .legend { padding-top:6px; padding-bottom:6px; }
  body.seat-booking-active #screen-seats { min-width:0; width:100%; overflow:hidden; }
  body.seat-booking-active #screen-seats .seat-scroll { flex:1; min-height:0; }
  body.seat-booking-active #screen-seats { position:relative; width:100%; height:auto; transform:none; }
  body.seat-booking-active .seat-rotate-outer { overflow:hidden; }
  body.seat-booking-active .seat-map { gap:12px; }
  body.seat-booking-active .seat-row { min-height:39px; }
  body.seat-booking-active #persistentNav { display:flex; }
  body.seat-booking-active .sticky-bar { position:fixed; right:auto; bottom:calc(var(--nav-height) + var(--safe-bottom) + 8px); left:50%; width:min(calc(100% - 24px), 390px); transform:translate(-50%, calc(100% + 16px)); z-index:50; }
  body.seat-booking-active .sticky-bar.show { transform:translate(-50%, 0); }
}
@media (min-width:700px) { body:has(#screen-seats.active) { padding:18px; align-items:center; } body:has(#screen-seats.active) .phone { max-width:1200px; height:calc(100dvh - 36px); max-height:calc(100dvh - 36px); border-radius:18px; border:1px solid #111; box-shadow:0 20px 50px rgba(0,0,0,0.35); } }
@media (orientation:landscape) and (max-width:699px) { .phone { max-width:none; } .seat-header { padding-top:8px; padding-bottom:8px; } .seat-map { padding-top:8px; } .legend { padding-top:8px; padding-bottom:8px; } .quota-note { margin-bottom:8px; } .sticky-bar { position:absolute; right:16px; bottom:calc(var(--nav-height, 64px) + 16px); left:auto; width:auto; padding:10px 12px; background:#fff; border-radius:18px; box-shadow:0 6px 20px rgba(36,28,28,.28); display:flex; align-items:center; gap:10px; z-index:30; transform:translateY(120%); transition:transform .3s ease; pointer-events:none; } }
@media (min-width:481px) { body{padding:0; align-items:stretch;} .phone{height:100dvh; max-height:100dvh; border-radius:0; border:0; box-shadow:none;} }
.statusbar { height:calc(26px + var(--safe-top)); padding-top:var(--safe-top); background:var(--maroon-deep); display:flex; align-items:center; justify-content:space-between; padding-left:20px; padding-right:12px; font-size:11px; color:var(--gold); font-family:'JetBrains Mono',monospace; flex-shrink:0; }
.lang-switch { display:flex; gap:2px; background:rgba(255,255,255,0.08); border-radius:20px; padding:2px; }
.lang-btn { border:none; background:transparent; color:#D8C3A8; font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:600; padding:6px 14px; border-radius:18px; cursor:pointer; }
.lang-btn.active { background:var(--gold); color:var(--maroon-deep); font-weight:700; }
.screen { flex:1; overflow-y:auto; display:flex; flex-direction:column; min-height:0; position:absolute; inset:0 0 var(--nav-height); opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .25s ease, transform .25s ease, visibility 0s linear .25s; pointer-events:none; }
.screen.active { opacity:1; visibility:visible; transform:translateY(0); transition:opacity .25s ease, transform .25s ease; pointer-events:auto; z-index:1; }
.screen::-webkit-scrollbar { display:none; }
.screen#screen-home { overflow:hidden; padding-bottom:0; }
.home-hero { height:clamp(170px, 24dvh, 220px); overflow:hidden; }
.home-hero > img { height:100%; object-fit:contain; }
.hero { background:#ED1C24; padding:26px 20px 30px; position:relative; flex-shrink:0; text-align:center; }
.hero-eyebrow { font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:3px; color:var(--gold); text-transform:uppercase; }
.hero-brand { font-family:'Fraunces',serif; font-weight:900; font-style:italic; font-size:34px; color:var(--cream); margin-top:10px; line-height:1.12; letter-spacing:-0.3px; }
html[lang="mr"] .hero-brand, html[lang="hi"] .hero-brand { font-family:'Noto Sans Devanagari',serif; font-style:normal; font-weight:700; font-size:30px; }
.hero-rule { width:40px; height:2px; background:var(--gold); margin:14px auto 12px; }
.hero-venue { font-size:13px; color:var(--gold); font-family:'JetBrains Mono',monospace; letter-spacing:1px; margin-top:6px; }
.hero-sub { font-size:12.5px; color:#D8C3A8; line-height:1.55; max-width:280px; margin:0 auto; }
.curtain-edge { position:absolute; bottom:-1px; left:0; right:0; height:14px; background:var(--paper); border-radius:50% 50% 0 0 / 100% 100% 0 0; }
.hero { position:relative; }
.section-label { font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--ink-soft); padding:18px 20px 8px; flex-shrink:0; }
.show-list { flex:1; padding:0 20px 12px; display:flex; flex-direction:column; gap:12px; overflow-y:auto; min-height:0; }
.show-card { background:#fff; border:1px solid #E5DCC8; border-left:5px solid var(--gold); border-radius:14px; padding:18px; display:flex; gap:14px; cursor:pointer; box-shadow:0 8px 20px rgba(74,18,32,.12); }
.show-share-btn { align-self:center; background:#FBF0D6; border:1px solid #D8CDBA; border-radius:8px; color:var(--maroon); cursor:pointer; flex-shrink:0; font-size:11px; font-weight:700; padding:8px 12px; }
.poster { width:88px; height:124px; border-radius:12px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-weight:900; font-size:32px; color:var(--cream); background:linear-gradient(145deg,var(--maroon),var(--maroon-deep)); box-shadow:0 6px 14px rgba(74,18,32,.25); }
.show-card-poster { width:88px; height:124px; border-radius:12px; object-fit:cover; flex-shrink:0; box-shadow:0 6px 14px rgba(74,18,32,.25); }
.show-card-poster.is-landscape { width:124px; height:88px; }
.show-info { flex:1; min-width:0; }
.show-name { font-family:'Fraunces',serif; font-weight:700; font-size:21px; color:var(--maroon); line-height:1.2; }
.show-meta { font-size:13px; color:var(--ink-soft); margin-top:4px; font-weight:500; }
.show-tags { display:flex; gap:6px; margin-top:8px; }
.tag.quota { font-size:11px; font-family:'JetBrains Mono',monospace; padding:4px 10px 4px 22px; border-radius:20px; background:#E4F5E9; color:#1F7A3D; font-weight:800; position:relative; display:inline-block; }
.tag.quota::before { content:''; position:absolute; left:9px; top:50%; transform:translateY(-50%); width:7px; height:7px; border-radius:50%; background:#2FA84F; }
.tag.quota.low { background:#FBEAD9; color:#9A4E12; }
.tag.quota.low::before { background:#E07B1A; }
.admin-link { margin:4px 20px 16px; text-align:center; font-size:12px; color:var(--ink-soft); text-decoration:underline; cursor:pointer; flex-shrink:0; }
.phone-gate-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.55); display:flex; align-items:center; justify-content:center; z-index:9999; padding:20px; }
.phone-gate-card { background:var(--cream); border-radius:16px; padding:20px; width:100%; max-width:340px; }
.phone-gate-title { font-family:'Fraunces',serif; font-weight:700; font-size:18px; color:var(--ink); margin-bottom:4px; }
.phone-gate-sub { font-size:12px; color:var(--ink-soft); margin-bottom:14px; }
.seat-header { background:var(--maroon); padding:calc(14px + var(--safe-top)) 16px 14px; display:flex; align-items:center; gap:10px; flex-shrink:0; }
.back-btn { width:30px; height:30px; border-radius:50%; background:rgba(255,255,255,0.1); color:var(--cream); display:flex; align-items:center; justify-content:center; font-size:16px; cursor:pointer; flex-shrink:0; }
.seat-header-title { color:var(--cream); font-family:'Fraunces',serif; font-weight:600; font-size:15px; }
.seat-header-sub { color:#D8C3A8; font-size:11px; margin-top:1px; }
.seat-show-banner { align-items:center; background:var(--cream); border-bottom:1px solid #E5DCC8; display:flex; gap:8px; padding:8px 12px; flex-shrink:0; }
.seat-show-poster { border:1px solid #E5DCC8; border-radius:7px; display:none; flex-shrink:0; height:62px; object-fit:cover; width:46px; }
.seat-show-info { flex:1; min-width:0; }
.seat-show-name { color:var(--ink); font-family:'Fraunces',serif; font-size:16px; font-weight:600; line-height:1.15; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.seat-show-meta { color:var(--ink-soft); display:flex; flex-wrap:wrap; font-size:11px; gap:3px 10px; margin-top:5px; }
.seat-show-meta strong { color:var(--ink); font-weight:600; }
.seat-more-btn { background:var(--rose); border:0; border-radius:7px; color:#fff; cursor:pointer; flex-shrink:0; font-size:11px; font-weight:700; padding:9px 10px; }
.screen#screen-seats { overflow:hidden; }
.stage-arc { margin:16px 30px 4px; height:30px; border-radius:0 0 50% 50% / 0 0 100% 100%; background:var(--ink); display:flex; align-items:flex-start; justify-content:center; padding-top:7px; flex-shrink:0; }
.stage-arc span { font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:3px; color:var(--gold); text-transform:uppercase; }
.seat-scroll { overflow-y:auto; overflow-x:auto; flex:1; min-height:0; -webkit-overflow-scrolling:touch; }
.seat-rotate-outer { position:relative; flex:1; min-height:0; width:100%; overflow:hidden; touch-action:none; }
.seat-zoom-controls { position:absolute; top:12px; right:12px; z-index:5; display:flex; flex-direction:column; gap:5px; }
.seat-zoom-btn { width:34px; height:34px; border:1px solid #D8CDBA; border-radius:8px; background:rgba(255,255,255,.94); color:var(--ink); font-size:20px; line-height:1; box-shadow:0 2px 8px rgba(36,28,28,.18); cursor:pointer; }
.seat-zoom-btn:active { background:var(--gold); }
.seat-rotate-inner { position:absolute; top:0; left:0; width:max-content; height:max-content; transform-origin:top left; }
.seat-rotate-inner .seat-scroll { display:contents; overflow:visible; }
.seat-rotate-inner .seat-map { min-width:0; }
.seat-rotate-inner .seat:active { transform:scale(0.88); }
.seat-map { padding:12px 20px 8px; display:flex; flex-direction:column; align-items:center; gap:6px; width:max-content; min-width:100%; }
.seat-row { display:grid; grid-template-columns:20px max-content 48px max-content 48px max-content; align-items:center; min-height:31px; width:max-content; }
.seat-block { display:flex; gap:4px; width:max-content; }
.seat-row .seat-block.block-0 { justify-self:end; }
.seat-row .seat-block.block-1 { justify-self:center; }
.seat-row .seat-block.block-2 { justify-self:start; }
.seat-row.t-row .seat-block.block-0 { justify-self:end; }
.seat-row.t-row .seat-block.block-1 { grid-column:6; justify-self:start; }
.seat-tier-divider { align-self:stretch; margin:4px 0 2px; padding:4px 0; border-top:1px solid #E5DCC8; border-bottom:1px solid #E5DCC8; color:var(--ink-soft); font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:1px; text-align:center; }
.seat-tier-divider-bold { font-weight:800; font-size:15px; letter-spacing:2px; color:var(--maroon); border-top:1px solid var(--gold-dim); border-bottom:1px solid var(--gold-dim); text-transform:uppercase; }
.row-label { position:sticky; left:0; z-index:2; width:22px; font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:800; color:var(--maroon); background:var(--cream); text-align:center; flex-shrink:0; }
.seat-block-gap { width:48px; flex-shrink:0; }
.seat { width:32px; height:32px; border:1px solid rgba(36,28,28,.45); border-radius:3px; cursor:pointer; transition:transform .1s, box-shadow .1s; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:700; color:rgba(0,0,0,.65); }
.seat:active { transform:scale(0.88); }
.seat:focus-visible { outline:2px solid var(--rose); outline-offset:2px; }
.seat.other-venue { background:var(--sage); }
.seat.quota-sold { background:var(--slate); cursor:default; }
.seat.quota-held { background:#4A7FC9; cursor:default; opacity:0.9; }
.seat.quota-offline-locked { background:#D8CDBA; color:#8a7f6b; cursor:not-allowed; opacity:0.75; }
.seat.quota-offline-hidden { visibility:hidden; pointer-events:none; }
.seat.quota-available { background:var(--gold); }
.seat.selected { background:var(--rose); }
.seat.seat-context { background:repeating-linear-gradient(45deg, #DCD2BC, #DCD2BC 4px, #CFC3A8 4px, #CFC3A8 8px); border:1px dashed #B3A488; color:#8a7f6b; cursor:not-allowed; }
.tier-gap { height:14px; flex-shrink:0; }
.legend { display:flex; flex-wrap:wrap; gap:8px 14px; padding:12px 20px; justify-content:center; border-top:1px solid #E5DCC8; flex-shrink:0; }
.legend-item { display:flex; align-items:center; gap:6px; }
.legend-dot { width:11px; height:11px; border-radius:3px; flex-shrink:0; }
.legend-text { font-size:11px; color:var(--ink-soft); }
.quota-note { display:none; }
.sticky-bar { position:absolute; right:16px; bottom:16px; left:auto; width:auto; padding:10px 12px; background:#fff; border-radius:18px; box-shadow:0 6px 20px rgba(36,28,28,.28); display:flex; align-items:center; gap:10px; z-index:30; transform:translateY(120%); transition:transform .3s ease; pointer-events:none; }
.sticky-info .count { font-size:9px; color:var(--ink-soft); white-space:nowrap; }
.sticky-info .amount { font-family:'Fraunces',serif; font-weight:600; font-size:13px; color:var(--ink); white-space:nowrap; }
.cta-btn { background:var(--rose); color:var(--cream); border:none; padding:7px 14px; border-radius:9px; font-weight:600; font-size:12px; cursor:pointer; font-family:'Inter','Noto Sans Devanagari',sans-serif; }
.cta-btn:disabled { background:var(--slate); color:#fff; cursor:not-allowed; }
.toast { position:absolute; left:20px; right:20px; bottom:86px; background:var(--ink); color:var(--cream); font-size:12px; padding:10px 14px; border-radius:10px; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; transform:translateY(8px); z-index:20; }
.toast.show { opacity:1; transform:translateY(0); }
.summary-body { padding:20px; flex:1; overflow-y:auto; }
.summary-title { font-family:'Fraunces',serif; font-weight:600; font-size:20px; color:var(--ink); }
.summary-card { margin-top:16px; background:#fff; border:1px solid #E5DCC8; border-radius:14px; padding:16px; }
.field-label { font-size:11px; color:var(--ink-soft); margin-bottom:4px; display:block; }
.field-input { width:100%; padding:9px 10px; border:1px solid #E5DCC8; border-radius:8px; font-size:13px; margin-bottom:12px; font-family:'Inter',sans-serif; }
.field-input.field-error { border-color:var(--rose); box-shadow:0 0 0 2px rgba(185,59,52,0.15); }
.field-input:disabled { background:#ECE5D4; color:var(--ink-soft); cursor:not-allowed; }
.field-error-msg { color:var(--rose); font-size:11px; margin:-8px 0 12px; font-weight:600; }
.line { display:flex; justify-content:space-between; padding:7px 0; font-size:13px; color:var(--ink); }
.line.muted { color:var(--ink-soft); font-size:12px; }
.divider { height:1px; background:#E5DCC8; margin:8px 0; }
.line.total { font-weight:700; font-size:15px; }
.seat-chip-row { display:flex; flex-wrap:wrap; gap:6px; }
.seat-chip { font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:800; background:var(--gold); padding:6px 12px; border-radius:8px; color:var(--maroon-deep); box-shadow:0 2px 6px rgba(201,162,39,.4); }
.confirm-btn { margin-top:20px; width:100%; background:var(--rose); color:var(--cream); border:none; padding:14px; border-radius:12px; font-weight:600; font-size:14px; cursor:pointer; }
.confirm-btn:disabled { background:var(--slate); }
.confirmed-msg { margin-top:16px; text-align:center; font-size:12px; color:var(--sage-dark); display:none; }
.confirmed-msg.show { display:block; }
.admin-body { padding:20px; padding-bottom:calc(var(--nav-height, 64px) + 20px + env(safe-area-inset-bottom)); overflow-y:auto; }
.admin-section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.admin-section-heading .section-label { padding-left:0; }
.manage-shows-btn { border:1px solid var(--gold); background:#fff; color:var(--maroon); padding:8px 10px; border-radius:9px; font-size:11px; font-weight:700; cursor:pointer; white-space:nowrap; }
.show-manager { margin:0 0 20px; padding:12px; background:#FFF9EE; border:1px solid #E5DCC8; border-radius:12px; }
.show-manager-title { font-family:'Fraunces',serif; font-size:16px; font-weight:600; color:var(--ink); margin-bottom:10px; }
.manage-show-row { display:flex; align-items:center; gap:8px; padding:9px 0; border-bottom:1px solid #E5DCC8; }
.manage-show-row:last-child { border-bottom:none; }
.transaction-show-row { border:1px solid transparent; border-radius:8px; margin:2px 0; padding:8px 8px; }
.transaction-show-row.selected { background:#FBF0D6; border-color:var(--gold); box-shadow:inset 4px 0 0 var(--rose); }
.manage-show-info { flex:1; min-width:0; }
.manage-show-name { font-size:12px; font-weight:700; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.manage-show-meta { font-size:10px; color:var(--ink-soft); margin-top:2px; }
.manage-show-status { color:var(--rose); font-weight:700; }
.manage-show-actions { display:flex; gap:5px; flex-shrink:0; }
.manage-action { border:1px solid #D8CDBA; background:#fff; color:var(--ink); padding:6px 8px; border-radius:7px; font-size:10px; cursor:pointer; }
.manage-action.danger { color:var(--rose-dark); border-color:#D9A7A2; }
.show-editor { margin-top:12px; padding-top:12px; border-top:1px solid #E5DCC8; }
.show-editor-title { font-size:11px; font-weight:700; color:var(--ink-soft); text-transform:uppercase; letter-spacing:1px; margin-bottom:10px; }
.show-editor-actions { display:flex; gap:8px; }
.show-editor-actions .confirm-btn { flex:1; margin-top:20px; }
.admin-title { font-family:'Fraunces',serif; font-weight:600; font-size:18px; color:var(--ink); }
.admin-sub { font-size:12px; color:var(--ink-soft); margin-top:4px; margin-bottom:16px; line-height:1.5; }
.booking-card { background:#fff; border:1px solid #E5DCC8; border-radius:14px; padding:16px; margin-bottom:14px; }
.booking-show { font-family:'Fraunces',serif; font-weight:600; font-size:16px; color:var(--ink); }
.booking-meta { font-size:12px; color:var(--ink-soft); margin-top:2px; }
.booking-seats { margin-top:10px; display:flex; flex-wrap:wrap; gap:6px; }
.ticket-booking { width:100%; max-width:960px; margin:0 auto 16px; background:#FDF8F0; border:1px solid #E5DCC8; border-radius:16px; cursor:pointer; overflow:hidden; box-shadow:0 8px 18px rgba(73,38,28,.08); color:var(--ink); }
.ticket-header,.ticket-venue,.ticket-details,.ticket-perforation,.ticket-footer,.ticket-policy,.ticket-brand-footer { overflow:hidden; transition:max-height .38s ease, opacity .28s ease, padding .38s ease; }
.ticket-booking { transition: transform 0.28s cubic-bezier(0.34,1.56,0.64,1); }
.ticket-booking.is-collapsed:active { transform: scale(0.97); }
.ticket-booking .ticket-header,.ticket-booking .ticket-venue,.ticket-booking .ticket-details,.ticket-booking .ticket-perforation,.ticket-booking .ticket-footer,.ticket-booking .ticket-policy,.ticket-booking .ticket-brand-footer { transition: max-height 0.32s cubic-bezier(0.4,0,0.2,1), opacity 0.22s ease, padding 0.32s cubic-bezier(0.4,0,0.2,1); overflow: hidden; }
.ticket-booking.is-expanded .ticket-header,.ticket-booking.is-expanded .ticket-venue,.ticket-booking.is-expanded .ticket-details,.ticket-booking.is-expanded .ticket-perforation,.ticket-booking.is-expanded .ticket-footer,.ticket-booking.is-expanded .ticket-policy,.ticket-booking.is-expanded .ticket-brand-footer { max-height:600px; opacity:1; }
.ticket-booking.is-collapsed .ticket-header,.ticket-booking.is-collapsed .ticket-venue,.ticket-booking.is-collapsed .ticket-details,.ticket-booking.is-collapsed .ticket-perforation,.ticket-booking.is-collapsed .ticket-footer,.ticket-booking.is-collapsed .ticket-policy,.ticket-booking.is-collapsed .ticket-brand-footer { max-height:0; opacity:0; padding-top:0; padding-bottom:0; }
.ticket-booking.is-collapsed .ticket-show-row { min-height:82px; padding:12px 16px; }
.ticket-booking.is-collapsed .ticket-poster { height:72px; width:52px; }
.ticket-booking.is-expanded .ticket-summary { display:none; }
.ticket-eticket { background:#7A1515; color:#FDF8F0; text-align:center; padding:7px 12px; font:600 10px 'JetBrains Mono',monospace; letter-spacing:2px; }
.ticket-header { background:#ED1C24; color:#fff; line-height:0; text-align:center; }
.ticket-logo { display:block; height:auto; width:100%; max-width:640px; margin:0 auto; }
.ticket-venue { background:linear-gradient(180deg,#C41E1E 0%,#9B1B1B 100%); color:#fff; padding:8px 12px 10px; text-align:center; font-family:'Noto Sans Devanagari',sans-serif; font-size:11px; }
.ticket-show-row { align-items:center; background:#FDF8F0; display:flex; justify-content:space-between; min-height:92px; padding:16px; }
.ticket-show-name { color:var(--ink); font-family:'Fraunces',serif; font-size:18px; font-weight:600; line-height:1.2; padding-right:12px; }
.ticket-summary { color:var(--ink-soft); font-size:11px; margin-top:6px; }
.ticket-poster { border:1px solid #E5DCC8; border-radius:8px; flex-shrink:0; height:116px; object-fit:cover; width:82px; }
.ticket-details { min-height:0; padding:14px 16px 18px; display:grid; grid-template-columns:1fr 1fr; gap:14px 10px; background:#FDF8F0; overflow:hidden; position:relative; }
.ticket-ad-slot { width:100%; line-height:0; }
.ticket-ad-slot img { display:block; width:100%; height:auto; }
.ticket-details:before { background:url('kusumvandan-logo.png') center 130%/92% auto no-repeat; content:""; height:100%; left:0; opacity:.14; pointer-events:none; position:absolute; top:0; width:100%; }
.ticket-details > div { position:relative; z-index:1; }
.ticket-show-name { color:var(--ink); font-family:'Fraunces',serif; font-size:17px; font-weight:600; grid-column:1 / -1; }
.ticket-detail-label { color:var(--ink-soft); display:block; font:10px 'JetBrains Mono',monospace; letter-spacing:1px; margin-bottom:3px; text-transform:uppercase; }
.ticket-detail-value { color:var(--ink); display:block; font-size:14px; font-weight:600; }
.ticket-detail-value em { color:var(--rose); font-size:12px; font-style:normal; font-weight:500; }
.ticket-perforation { border-top:2px dashed rgba(155,44,44,.2); margin:5px 16px 0; position:relative; }
.ticket-perforation:before,.ticket-perforation:after { background:var(--cream); border:1px solid #E5DCC8; border-radius:50%; content:""; height:18px; position:absolute; top:-10px; width:18px; }
.ticket-perforation:before { left:-26px; }.ticket-perforation:after { right:-26px; }
.ticket-footer { align-items:center; display:flex; justify-content:space-between; gap:12px; padding:18px 16px 16px; }
.ticket-id-label { color:var(--ink-soft); display:block; font:10px 'JetBrains Mono',monospace; letter-spacing:1px; text-transform:uppercase; }
.ticket-id-value { color:var(--rose); display:block; font:12px 'JetBrains Mono',monospace; margin-top:4px; }
.ticket-hint { color:var(--ink-soft); font-size:11px; margin-top:7px; }
.ticket-qr { align-items:center; background:#fff; border:1px solid #F0E4D5; border-radius:10px; color:var(--rose); display:flex; flex-shrink:0; font-size:32px; height:64px; justify-content:center; width:64px; }
.ticket-policy { background:#FDF8F0; border-top:1px dashed #E5DCC8; color:var(--ink-soft); font-size:9.5px; line-height:1.5; text-align:center; padding:8px 16px; }
.ticket-brand-footer { background:#F5EBE0; border-top:1px solid #E5DCC8; color:var(--rose); display:flex; font-family:'Noto Sans Devanagari',sans-serif; font-size:10px; justify-content:space-between; padding:8px 16px; }
@media (max-width:480px) {
  .seat-show-banner { gap:8px; padding:8px 10px; }
  .seat-show-poster { height:56px; width:42px; }
  .seat-show-name { font-size:15px; }
  .seat-show-meta { gap:2px 7px; }
  .seat-more-btn { font-size:10px; padding:8px; }
  .ticket-booking { margin-bottom:10px; }
  .ticket-show-row { min-height:0; padding:12px; }
  .ticket-poster { height:100px; width:70px; }
  .ticket-details { min-height:0; padding:14px 12px 18px; gap:12px 10px; }
  .ticket-footer { padding:14px 12px 12px; }
  .ticket-brand-footer { padding:7px 12px; }
}
.empty-state { text-align:center; color:var(--ink-soft); font-size:13px; padding:40px 20px; }
.install-app-btn { box-shadow:0 6px 16px rgba(74,18,32,.26); min-height:54px; width:100%; max-width:340px; font-size:15px !important; }
.share-app-btn { display:block; margin:8px 0 0 auto; width:38px; height:38px; border:1px solid var(--rose); border-radius:50%; background:#fff; color:var(--rose); box-shadow:0 3px 9px rgba(74,18,32,.16); cursor:pointer; font-family:Arial,sans-serif; font-size:23px; line-height:36px; padding:0; }
.install-success-msg { background:#EEF5E9; border:1px solid #B7CCAA; border-radius:12px; color:#31552B; font-size:14px; font-weight:600; line-height:1.55; padding:13px 16px; }
.home-empty-state { position:relative; margin:4px 20px 10px; padding:18px 20px; border:1px solid rgba(201,162,39,.45); border-radius:16px; background:linear-gradient(145deg,#fffdf8 0%,#f8edda 100%); box-shadow:0 8px 20px rgba(74,18,32,.08); color:var(--maroon); font-family:'Noto Sans Devanagari',sans-serif; font-size:16px; font-weight:600; line-height:1.5; }
.home-empty-state::before,.home-empty-state::after { content:""; position:absolute; top:12px; width:42px; height:2px; background:var(--gold); }
.home-empty-state::before { left:24px; }
.home-empty-state::after { right:24px; }
.home-empty-state { display:flex; align-items:center; justify-content:center; min-height:0; }
.home-venue-heading { padding-top:10px !important; padding-bottom:10px !important; }
@media (min-width:481px) { .home-empty-state { max-width:560px; margin:8px auto 10px; font-size:16px; min-height:0; padding:18px 46px; } }
.home-ad-stack { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; justify-items:stretch; gap:6px; margin-top:6px; padding:0 20px; width:100%; }
.home-sponsor-label { grid-column:1 / -1; color:#856714; font-family:'Noto Sans Devanagari',sans-serif; font-size:15px; font-weight:700; line-height:1.3; margin:2px 0 4px; text-align:center; }
.home-ad { margin:0; border:1px solid #E5DCC8; border-radius:12px; overflow:hidden; background:#fff; box-shadow:0 4px 12px rgba(74,18,32,.10); line-height:0; height:56px; width:100%; display:flex; align-items:center; justify-content:center; padding:5px; }
.home-ad img { display:block; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; margin:0 auto; }
@media (min-width:481px) { .home-ad-stack { max-width:560px; margin:4px auto 0; } }
#screen-home #installBannerWrap { padding-bottom:0 !important; }
.quota-row { display:flex; align-items:center; gap:12px; background:#fff; border:1px solid #E5DCC8; border-radius:12px; padding:12px 14px; margin-bottom:10px; }
.quota-swatch { width:14px; height:14px; border-radius:4px; flex-shrink:0; }
.quota-info { flex:1; }
.quota-name { font-size:13px; font-weight:600; color:var(--ink); }
.quota-desc { font-size:11px; color:var(--ink-soft); margin-top:2px; }
.quota-nums { font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--ink-soft); text-align:right; }
.quota-nums b { color:var(--ink); font-size:14px; }
.counter-tabs { display:flex; gap:6px; margin:10px 0 14px; }
.counter-tab { flex:1; text-align:center; padding:8px 0; border-radius:10px; background:#fff; border:1px solid #E5DCC8; font-family:'JetBrains Mono',monospace; font-size:13px; cursor:pointer; color:var(--ink-soft); }
.counter-tab.active { background:var(--rose); color:var(--cream); border-color:var(--rose); }
.box-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; }
.box-tile { background:#fff; border:2px solid var(--gold); border-radius:14px; padding:14px 6px; text-align:center; cursor:pointer; }
.box-counter { font-family:'Fraunces',serif; font-weight:900; font-size:26px; color:var(--maroon); line-height:1; }
.box-token { font-family:'JetBrains Mono',monospace; font-size:15px; font-weight:700; color:var(--ink); margin-top:4px; }
.token-status.ready { background:var(--sage); color:#fff; }
.token-status.delivered { background:#E07A2F; color:#fff; }
.order-history-row { display:flex; justify-content:space-between; align-items:center; background:#fff; border:1px solid #E5DCC8; border-radius:10px; padding:10px 14px; margin-bottom:8px; }
.order-history-left { font-size:12.5px; color:var(--ink); }
.order-history-items { font-size:11px; color:var(--ink-soft); margin-top:2px; }
.token-display-status.ready { background:var(--sage); color:#fff; }
.bottomnav { position:absolute; left:0; right:0; bottom:0; z-index:40; display:flex; border-top:1px solid #E5DCC8; background:#fff; flex-shrink:0; padding-bottom:var(--safe-bottom); height:calc(var(--nav-height, 64px) + var(--safe-bottom)); box-sizing:border-box; }
.nav-item { position:relative; flex:1; padding:10px 0 8px; text-align:center; font-size:10px; color:var(--ink-soft); cursor:pointer; transition:color .15s; }
.nav-item.active { color:var(--rose); font-weight:700; }
.nav-item.active::after { content:""; position:absolute; top:2px; left:50%; transform:translateX(-50%); width:22px; height:3px; border-radius:2px; background:var(--rose); }
.nav-icon { font-size:16px; display:block; margin-bottom:2px; }



.current-row-badge { position:absolute; top:12px; left:12px; z-index:6; background:var(--maroon); color:var(--gold); font-family:'JetBrains Mono',monospace; font-weight:800; font-size:20px; min-width:38px; height:38px; padding:0 8px; border-radius:8px; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 8px rgba(0,0,0,.3); pointer-events:none; }
.row-label-column { position:absolute; left:0; top:0; bottom:0; width:22px; z-index:6; pointer-events:none; overflow:hidden; }
.sticky-row-label { position:absolute; left:0; width:22px; transform:translateY(-50%); font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:800; color:#fff; background:var(--ink); text-align:center; border-radius:3px; padding:2px 0; box-shadow:0 1px 3px rgba(0,0,0,.3); }
.confirm-overlay { position:fixed; inset:0; background:rgba(27,19,16,.55); display:flex; align-items:center; justify-content:center; z-index:100; padding:20px; opacity:0; visibility:hidden; transition:opacity .2s ease, visibility 0s linear .2s; }
.confirm-modal { background:var(--paper); border-radius:16px; max-width:340px; width:100%; padding:22px 20px 18px; box-shadow:0 12px 32px rgba(0,0,0,.3); transform:scale(.92); transition:transform .2s ease; }
.confirm-modal-title { font-family:'Fraunces',serif; font-weight:700; font-size:18px; color:var(--maroon); margin-bottom:8px; }
.confirm-modal-body { font-size:13px; color:var(--ink-soft); line-height:1.5; margin-bottom:20px; }
.confirm-modal-actions { display:flex; gap:10px; justify-content:flex-end; }
.confirm-modal-btn { padding:10px 18px; border-radius:10px; border:none; font-size:13px; font-weight:700; cursor:pointer; font-family:'Inter',sans-serif; }
.confirm-modal-cancel { background:var(--cream); color:var(--ink); border:1px solid #E5DCC8; }
.confirm-modal-ok { background:var(--rose); color:#fff; }
.lang-menu{position:absolute;top:44px;right:0;background:#fff;border-radius:10px;box-shadow:0 4px 14px rgba(0,0,0,0.2);overflow:hidden;min-width:110px;}
.lang-menu .lang-btn{display:block;width:100%;text-align:left;padding:10px 14px;background:none;border:none;font-size:13px;color:var(--ink);cursor:pointer;}
.lang-menu .lang-btn:hover{background:#FBF0D6;}
.lang-menu .lang-btn.active{font-weight:700;color:var(--maroon);}

.lang-globe-btn{min-width:36px;height:36px;padding:0 8px;border-radius:18px;background:var(--gold);border:none;font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--maroon-deep);}
.lang-menu{position:absolute;top:44px;right:0;background:#fff;border-radius:10px;box-shadow:0 4px 14px rgba(0,0,0,0.2);overflow:hidden;min-width:110px;}
.lang-menu .lang-btn{display:block;width:100%;text-align:left;padding:10px 14px;background:none;border:none;font-size:13px;color:var(--ink);cursor:pointer;}
.lang-menu .lang-btn:hover{background:#FBF0D6;}
.lang-menu .lang-btn.active{font-weight:700;color:var(--maroon);}

#screen-home .hero { padding-top: calc(env(safe-area-inset-top, 0px) + 22px) !important; padding-bottom: 34px !important; background: #ED1C24 !important; }

.offline-banner { display:none; position:fixed; top:0; left:0; right:0; z-index:9999; background:#7A1515; color:#fff; text-align:center; padding:calc(env(safe-area-inset-top, 0px) + 8px) 12px 8px; font-size:13px; font-weight:600; font-family:'Inter',sans-serif; }
.offline-banner.show { display:block; }

.ticket-share-btn { display:flex; align-items:center; justify-content:center; gap:8px; width:calc(100% - 32px); margin:16px auto 20px; padding:14px 20px; border:none; border-radius:999px; background:#ED1C24; color:#fff; font-weight:700; font-size:15px; font-family:'Inter',sans-serif; cursor:pointer; }
.sticky-bar.show { transform:translateY(0); pointer-events:auto; z-index:41; }

.confirm-overlay.show { opacity:1; visibility:visible; transition:opacity .2s ease; }
.confirm-overlay.show .confirm-modal { transform:scale(1); }

.ticket-modal-overlay { display:flex; opacity:0; visibility:hidden; transition:opacity .2s ease, visibility 0s linear .2s; }
.ticket-modal-overlay.show { opacity:1; visibility:visible; transition:opacity .2s ease; }

.crop-overlay { display:flex; opacity:0; visibility:hidden; transition:opacity .2s ease, visibility 0s linear .2s; }
.crop-overlay.show { opacity:1; visibility:visible; transition:opacity .2s ease; }
.crop-overlay .crop-modal { transform:scale(.92); transition:transform .2s ease; }
.crop-overlay.show .crop-modal { transform:scale(1); }

.ticket-details { display: flex; gap: 12px; align-items: stretch; }
.ticket-ad-details {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f0ede6;
  border-radius: 6px;
  min-height: 140px;
  overflow: hidden;
}
.ticket-ad-details img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
.ticket-details-info { flex: 0 0 auto; margin-left: auto; display: flex; flex-direction: column; gap: 6px; }
.ticket-details-info > div { display: flex; justify-content: flex-end; gap: 14px; }
.ticket-backdrop {
  position: fixed; inset: 0;
  background: rgba(20, 10, 8, 0.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  z-index: 9998;
  opacity: 0;
  transition: opacity 0.25s ease;
}
.ticket-backdrop.show { opacity: 1; }
.ticket-booking.ticket-popped {
  position: fixed !important;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%) scale(1);
  width: min(92vw, 400px);
  max-height: 88vh;
  overflow-y: auto;
  z-index: 9999;
  box-shadow: 0 20px 60px rgba(0,0,0,0.45);
  filter: none;
}
.ticket-show-row { padding: 14px 16px 8px; }
.ticket-details { padding: 2px 16px 16px; gap: 14px; }
.ticket-poster { width: 118px; flex: 0 0 118px; aspect-ratio: 2/3; object-fit: cover; border-radius: 10px; box-shadow: 0 4px 14px rgba(73,38,28,.22); display: block; }
.ticket-details-info { width: 118px; flex: 0 0 118px; }
.ticket-details-info > div { flex-direction: column; align-items: flex-end; gap: 2px; }
.ticket-ad-slot.ticket-ad-details { border-radius: 10px; }
.ticket-stub { display:flex; gap:14px; align-items:flex-start; padding:16px; background:#FDF8F0; }
.ticket-stub .ticket-poster { width:110px; flex:0 0 110px; height:auto; aspect-ratio:auto; object-fit:contain; background:#fff; border:1px solid #E5DCC8; border-radius:8px; box-shadow:none; }
.ticket-stub-right { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:8px; }
.ticket-stub .ticket-show-name { text-align:left; font-size:17px; }
.ticket-stub .ticket-details-info { width:auto; flex:1 1 auto; gap:6px; }
.ticket-stub .ticket-details-info > div { flex-direction:row; justify-content:space-between; align-items:baseline; gap:10px; }
.seat-row.t-row { grid-template-columns:20px 188px 353px max-content 353px max-content; }
.seat-row.s-row { grid-template-columns:20px max-content 151px max-content 151px max-content; }

.notify-panel { max-width: 420px; }
.notify-field { margin-bottom: 14px; position: relative; }
.notify-field label { display: block; font-family:'JetBrains Mono',monospace; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 6px; }
.notify-field input, .notify-field textarea, .notify-field select { width: 100%; padding: 9px 10px; border: 1px solid #E5DCC8; border-radius: 8px; font-size: 14px; font-family: inherit; background: #fff; color: var(--ink); box-sizing: border-box; }
.notify-field textarea { resize: vertical; }
.notify-field input:focus, .notify-field textarea:focus, .notify-field select:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 2px rgba(201,162,39,0.2); }
.notify-count { position: absolute; right: 2px; bottom: -16px; font-size: 11px; color: var(--ink-soft); font-family:'JetBrains Mono',monospace; }
.notify-preview { background: var(--cream); border: 1px dashed var(--gold-dim); border-radius: 10px; padding: 12px 14px; margin: 18px 0; }
.notify-preview-title { font-family:'Fraunces',serif; font-weight: 700; font-size: 15px; color: var(--maroon); }
.notify-preview-body { font-size: 13px; color: var(--ink-soft); margin-top: 3px; }
.notify-panel > button { width: 100%; padding: 11px; border: none; border-radius: 10px; background: var(--rose); color: var(--cream); font-size: 15px; font-weight: 700; cursor: pointer; }
.notify-panel > button:disabled { background: var(--sage); cursor: not-allowed; }
.notify-panel > button:not(:disabled):hover { background: var(--rose-dark); }
.notify-ok { margin-top: 10px; color: var(--sage-dark); font-size: 13px; font-weight: 600; }
.notify-error { margin-top: 10px; color: var(--rose-dark); font-size: 13px; font-weight: 600; }
.notify-history { margin-top: 26px; border-top: 1px solid #E5DCC8; padding-top: 14px; }
.notify-history-title { font-family:'JetBrains Mono',monospace; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 8px; }
.notify-history-row { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; border-bottom: 1px solid #F0E9DA; font-size: 13px; }
.notify-history-row span:first-child { color: var(--ink); }
/* ===== Kusumvandan light theme + card polish ===== */
:root { --brand:#ED1C24; --stage:#F1E8D6; }
html, body { background:var(--stage); }
.hero { background:var(--brand); }
.show-list { scrollbar-width:none; }
.show-list::-webkit-scrollbar { display:none; }
.show-card { border-radius:16px; box-shadow:0 2px 10px rgba(74,18,32,.08); }
.show-name { font-size:20px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
html[lang="mr"] .show-name, html[lang="hi"] .show-name { font-family:'Noto Sans Devanagari',sans-serif; font-weight:700; line-height:1.3; }
.show-meta { color:#5A4A45; }
.tag.quota { font-family:'Inter','Noto Sans Devanagari',sans-serif; font-weight:700; font-size:12.5px; }
.show-share-btn { min-height:44px; }
/* ===== Patch 2: header height + install button ===== */
.home-hero { height:clamp(120px, 17dvh, 160px); }
#screen-home #installBannerWrap { padding-top:14px !important; }
.install-app-btn { display:block; margin:0 auto; }
/* ===== Patch 3: keep content clear of floating buttons ===== */
#screen-home #installBannerWrap { margin-bottom:88px; }
#screen-home .show-list { padding-bottom:88px; }
/* ===== Patch 4: clear the chat bubble zone ===== */
#screen-home #installBannerWrap { margin-bottom:116px; }
/* ===== Patch 5: price + book button on show cards ===== */
.show-price { margin-top:8px; font-weight:700; font-size:15px; color:var(--maroon); }
.show-book-btn { display:flex; align-items:center; margin-top:8px; min-height:44px; padding:0 16px; border:0; border-radius:12px; background:#D0141C; color:#fff; font:700 15px 'Inter','Noto Sans Devanagari',sans-serif; cursor:pointer; }
.show-book-btn:focus-visible { outline:3px solid var(--gold); outline-offset:2px; }
#screen-home #installBannerWrap { margin-bottom:100px; }
/* ===== Patch 6: category chips ===== */
.category-chips { display:none; gap:8px; padding:4px 20px 10px; overflow-x:auto; flex-shrink:0; scrollbar-width:none; }
.category-chips::-webkit-scrollbar { display:none; }
.category-chip { flex:none; min-height:40px; padding:0 16px; border-radius:999px; border:1.5px solid #D8CDBA; background:#fff; color:var(--ink); font:600 14px 'Inter','Noto Sans Devanagari',sans-serif; cursor:pointer; }
.category-chip.active { background:var(--maroon); border-color:var(--maroon); color:#fff; }
.category-chip:focus-visible { outline:3px solid var(--gold); outline-offset:2px; }
/* ===== Patch 8: home screen scrolls as one page ===== */
.screen#screen-home { overflow-y:auto; padding-bottom:100px; }
#screen-home > * { flex-shrink:0; }
#screen-home .show-list { flex:none; overflow:visible; min-height:auto; padding-bottom:12px; }
#screen-home #installBannerWrap { margin-bottom:0; }
/* ===== Patch 9: slim sticky brand bar ===== */
.home-mini-wrap { position:sticky; top:0; height:0; z-index:25; overflow:visible; flex-shrink:0; }
.home-mini-bar { position:absolute; top:0; left:0; right:0; height:52px; background:#ED1C24; display:flex; align-items:center; justify-content:space-between; padding:0 12px 0 16px; box-shadow:0 2px 8px rgba(74,18,32,.25); transform:translateY(-100%); opacity:0; visibility:hidden; transition:transform .2s ease, opacity .2s ease, visibility 0s linear .2s; }
.home-mini-bar.show { transform:translateY(0); opacity:1; visibility:visible; transition:transform .2s ease, opacity .2s ease; }
.home-mini-logo { border:0; background:transparent; padding:0; cursor:pointer; display:flex; align-items:center; min-height:44px; }
.home-mini-logo img { height:40px; width:auto; display:block; }
.home-mini-lang { width:40px; height:40px; border-radius:50%; border:0; background:var(--gold); color:var(--maroon-deep); font:700 13px 'Inter','Noto Sans Devanagari',sans-serif; cursor:pointer; }
.home-mini-bar button:focus-visible { outline:3px solid #fff; outline-offset:2px; }
@media (prefers-reduced-motion: reduce) { .home-mini-bar, .home-mini-bar.show { transition:none; } }
/* ===== Patch 10: white logo in slim bar ===== */
.home-mini-logo img { height:52px; width:auto; max-width:62vw; object-fit:contain; object-position:left center; }
/* ===== Patch 11: brand bar with logo + sponsors ===== */
.home-mini-bar { height:56px; gap:8px; padding:0 10px; }
.home-mini-logo { flex:0 0 auto; height:44px; min-height:44px; padding:4px 10px; background:#fff; border-radius:12px; }
.home-mini-logo img { height:32px; width:auto; max-width:120px; max-height:none; object-fit:contain; }
.home-mini-sponsors { display:flex; align-items:center; justify-content:flex-end; gap:6px; flex:1 1 auto; min-width:0; }
.home-mini-sponsor { display:flex; align-items:center; flex:0 1 auto; min-width:0; height:40px; padding:4px 6px; background:#fff; border-radius:10px; overflow:hidden; }
.home-mini-sponsor img { display:block; height:30px; width:auto; max-width:100%; object-fit:contain; }
.home-mini-lang { flex:0 0 auto; }
/* ===== Patch 13: transparent white logo in slim bar ===== */
.home-mini-bar { --lw:128px; }
@media (max-width:400px) { .home-mini-bar { --lw:108px; } }
.home-mini-bar .home-mini-logo { position:relative; flex:0 0 auto; width:var(--lw); height:44px; min-height:44px; padding:0; background:transparent; border-radius:0; overflow:hidden; }
.home-mini-bar .home-mini-logo img { position:absolute; display:block; max-width:none; max-height:none; height:auto; width:calc(var(--lw) * 1.2299); left:calc(var(--lw) * -0.1701); top:calc((44px - var(--lw) * 0.2955) / 2 - var(--lw) * 0.0627); mix-blend-mode:lighten; }

/* ng-fit */
.phone { height:100vh; height:100dvh; max-height:100vh; max-height:100dvh; }

/* ng-logo */
.home-hero { height:clamp(150px, 22dvh, 200px) !important; display:flex; align-items:center; justify-content:center; }
.home-hero > img { height:auto !important; max-height:100%; width:100%; transform:scale(1.7); transform-origin:center; }

/* ng-rownote */
#offlineRowNote { display:none !important; }

/* ng-nopast */
#bookingsSubTabPast { display:none !important; }

/* Share ticket button: hidden while the ticket is collapsed in the list, pinned to the bottom of the popup. */
.ticket-booking.is-collapsed .ticket-share-btn[data-share="1"] { display: none; }
.ticket-booking.is-expanded .ticket-share-btn[data-share="1"] { position: sticky; bottom: 10px; z-index: 3; box-shadow: 0 4px 14px rgba(0,0,0,.25); }

/* show-card layout v2 */
.show-card { flex-wrap: wrap; }
.show-card .show-info { flex: 1 1 calc(100% - 103px); min-width: 0; }
.show-card > .show-share-btn { flex: 1 1 calc(50% - 7px); max-width: 260px; margin-right: 0 !important; align-self: auto; text-align: center; }
.show-card .show-name { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; white-space: normal; overflow-wrap: anywhere; text-overflow: ellipsis; }

/* fit-screen-ios: fill the full iPhone screen, respect the home indicator */
html { height: 100%; background: #faf3e8; }
body { min-height: 100vh; min-height: 100dvh; margin: 0; background: #faf3e8; }
@supports (-webkit-touch-callout: none) { body { min-height: -webkit-fill-available; } }
.bottom-nav, .bottom-tabs, .tabbar, .tab-bar, .app-nav, #bottomNav, #bottom-nav, nav.bottom {
  padding-bottom: env(safe-area-inset-bottom, 0px) !important;
  box-sizing: border-box;
}

/* fit-screen-v2: full-height app shell, safe area counted once (by .bottomnav) */
.phone { height:var(--app-height, 100%) !important; max-height:var(--app-height, 100%) !important; padding-bottom:0 !important; }
@supports (height:100dvh) { .phone { height:100dvh !important; max-height:100dvh !important; } }
.screen { inset:0 0 calc(var(--nav-height) + var(--safe-bottom)) !important; }
/* ===== premium seat map ===== */
.seat { border:0; border-radius:10px 10px 5px 5px; position:relative; font-size:10px; font-weight:700; box-shadow:0 2px 0 rgba(36,28,28,.28), inset 0 1px 0 rgba(255,255,255,.45); transition:transform .12s, box-shadow .12s; }
.seat::before { content:""; position:absolute; left:5px; right:5px; top:3px; height:3px; border-radius:2px; background:rgba(255,255,255,.38); pointer-events:none; }
.seat.quota-available { background:linear-gradient(180deg,#E6C355 0%,#C9A227 100%); color:var(--maroon-deep); }
.seat.selected { background:linear-gradient(180deg,#D24D45 0%,#A22F29 100%); color:#fff; box-shadow:0 0 0 2px rgba(185,59,52,.25), 0 3px 8px rgba(140,43,38,.45), inset 0 1px 0 rgba(255,255,255,.35); transform:translateY(-1px); }
.seat.quota-held { background:linear-gradient(180deg,#8FB2E3 0%,#4A7FC9 100%); color:#fff; opacity:1; }
.seat.quota-sold { background:#E6E0D3; color:transparent; box-shadow:none; }
.seat.quota-sold::before { display:none; }
.seat.quota-sold::after { content:"\2715"; color:#B8AD94; font-size:11px; font-weight:700; }
.seat.other-venue { background:linear-gradient(180deg,#B9BBAD 0%,#A0A292 100%); color:#fff; }
.seat.seat-context { border:0; box-shadow:none; opacity:.55; }
.seat.seat-context::before { display:none; }
.seat-block-gap { display:flex; align-items:center; font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:800; color:var(--gold-dim); }
.seat-block-gap.gap-0 { justify-content:flex-end; padding-right:6px; }
.seat-block-gap.gap-1 { justify-content:flex-start; padding-left:6px; }
.seat-row.t-row .seat-block-gap.gap-0 { justify-content:flex-start; padding-left:6px; }

/* ===== layout-based seat map ===== */
.lc-letter { position:absolute; width:18px; text-align:right; line-height:32px; font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:800; color:var(--gold-dim); pointer-events:none; }
.lc-letter.first { color:var(--maroon); font-size:13px; }

/* === home card polish v3 === */
.show-card { box-shadow: 0 4px 14px rgba(74,18,32,.16); }
.show-card .show-book-btn { width: 100%; justify-content: center; min-height: 48px; font-size: 16px; margin-top: 10px; }
.show-card > .show-share-btn { flex: 0 0 auto; max-width: none; min-height: 40px; padding: 0 16px; background: #fff; border: 1.5px solid var(--maroon); color: var(--maroon); font-size: 13px; }
.show-card .tag.quota { background: #FFE3B8; color: #6B3300; font-weight: 700; }
.show-card .tag.quota.low { background: #FBD5D5; color: #8F0E14; }
.nav-item { font-size: 12.5px; line-height: 1.25; }

/* === home card polish v3b: landscape poster fix === */
.show-card-poster.is-landscape + .show-info { flex: 1 1 100%; }
.show-card > .show-share-btn { align-self: flex-start; height: 40px; min-height: 40px; }

/* === ng-hc v1: React home show card === */
#homeShowList { display: flex; flex-direction: column; gap: 14px; }
.ng-hc { background: #fff; border: 1px solid #E5DCC8; border-left: 5px solid var(--gold); border-radius: 16px; padding: 14px; box-shadow: 0 4px 14px rgba(74,18,32,.16); cursor: pointer; display: flex; flex-direction: column; gap: 12px; -webkit-tap-highlight-color: transparent; }
.ng-hc-body { display: flex; gap: 14px; align-items: flex-start; }
.ng-hc-poster { flex: 0 0 42%; max-width: 150px; }
.ng-hc-poster img, .ng-hc-fallback { display: block; width: 100%; aspect-ratio: 5 / 7; object-fit: cover; border-radius: 12px; box-shadow: 0 6px 14px rgba(74,18,32,.25); }
.ng-hc-fallback { display: flex; align-items: center; justify-content: center; background: #FBF0D6; color: var(--maroon); font: 700 36px 'Noto Sans Devanagari','Inter',sans-serif; }
.ng-hc.is-landscape .ng-hc-body { flex-direction: column; }
.ng-hc.is-landscape .ng-hc-poster { flex: none; width: 100%; max-width: none; }
.ng-hc.is-landscape .ng-hc-poster img { aspect-ratio: 16 / 9; }
.ng-hc-info { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.ng-hc-name { margin: 0; font: 700 20px/1.25 'Noto Sans Devanagari','Inter',sans-serif; color: var(--maroon-deep, var(--maroon)); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; overflow-wrap: anywhere; }
.ng-hc-when { font-size: 14px; color: var(--ink-soft); }
.ng-hc-seats { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 999px; background: #FFE3B8; color: #6B3300; font-size: 13px; font-weight: 700; }
.ng-hc-seats::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #2E9B4E; }
.ng-hc-seats.low { background: #FBD5D5; color: #8F0E14; }
.ng-hc-seats.low::before { background: #E0701A; }
.ng-hc-price { font-size: 17px; font-weight: 700; color: var(--maroon); }
.ng-hc-actions { display: flex; gap: 8px; align-items: stretch; }
.ng-hc-book { flex: 1 1 auto; min-height: 48px; border: 0; border-radius: 12px; background: #D0141C; color: #fff; font: 700 16px 'Inter','Noto Sans Devanagari',sans-serif; cursor: pointer; }
.ng-hc-ghost { min-height: 48px; padding: 0 14px; border: 1.5px solid var(--maroon); border-radius: 12px; background: #fff; color: var(--maroon); font: 700 13px 'Inter',sans-serif; cursor: pointer; white-space: nowrap; }
.ng-hc-icon { flex: 0 0 48px; width: 48px; min-height: 48px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border: 1.5px solid var(--maroon); border-radius: 12px; background: #fff; color: var(--maroon); cursor: pointer; }
.ng-hc-icon svg { width: 22px; height: 22px; }
.ng-hc-views { font-size: 12px; opacity: .7; margin: 2px 0 4px; }
/* Hero: fixed aspect ratio so the logo crops the same on every screen */
#screen-home .home-hero { height:auto !important; aspect-ratio:5 / 2; }
#screen-home .home-hero > img { width:100% !important; height:100% !important; max-height:none !important; object-fit:contain; transform:scale(1.7); transform-origin:center; }
/* ===== Motion (appended) ===== */
@keyframes ngInFwd{from{opacity:0;translate:28px 0}to{opacity:1;translate:0 0}}
@keyframes ngInBack{from{opacity:0;translate:-28px 0}to{opacity:1;translate:0 0}}
@keyframes ngFadeIn{from{opacity:0}to{opacity:1}}
@keyframes ngRise{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
@keyframes ngBar{from{scale:0 1;opacity:0}to{scale:1 1;opacity:1}}
@keyframes ngPop{0%{scale:.8}60%{scale:1.18}100%{scale:1}}
@keyframes ngMenuIn{from{opacity:0;translate:0 -6px;scale:.97}to{opacity:1;translate:0 0;scale:1}}
@keyframes ngModalIn{from{opacity:0;translate:0 16px;scale:.96}to{opacity:1;translate:0 0;scale:1}}
@keyframes ngPopIn{from{opacity:0;translate:0 28px;scale:.94}to{opacity:1;translate:0 0;scale:1}}
@keyframes ngConfetti{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--dx),calc(var(--dy) + 140px)) rotate(var(--r))}}

.screen.active{animation:ngInFwd .28s cubic-bezier(.22,.8,.3,1) backwards}
body[data-nav-dir="back"] .screen.active{animation-name:ngInBack}
#screen-seats.active{animation:ngFadeIn .22s ease-out backwards}

.nav-item.active::after{animation:ngBar .25s cubic-bezier(.22,.8,.3,1) backwards}
.nav-item.active .nav-icon{animation:ngPop .32s cubic-bezier(.34,1.56,.64,1)}

.confirm-btn,.show-share-btn,.lang-globe-btn,.back-btn,.nav-item{-webkit-tap-highlight-color:transparent;transition:scale .12s ease,background-color .2s,color .15s,opacity .2s,box-shadow .2s}
.confirm-btn:active:not(:disabled),.show-share-btn:active,.lang-globe-btn:active,.back-btn:active{scale:.97}
.nav-item:active{scale:.94}

#homeShowList>*{animation:ngRise .42s cubic-bezier(.22,.8,.3,1) backwards}
#homeShowList>*:nth-child(2){animation-delay:.05s}
#homeShowList>*:nth-child(3){animation-delay:.1s}
#homeShowList>*:nth-child(4){animation-delay:.15s}
#homeShowList>*:nth-child(5){animation-delay:.2s}
#homeShowList>*:nth-child(n+6){animation-delay:.25s}

.lang-menu{transform-origin:top right;animation:ngMenuIn .16s ease-out}
.phone-gate-overlay{animation:ngFadeIn .18s ease-out}
.phone-gate-card{animation:ngModalIn .24s cubic-bezier(.22,1,.36,1) backwards}
#confirmedMsg.show{animation:ngRise .4s ease-out backwards}

.ticket-booking.ticket-popped{animation:ngPopIn .34s cubic-bezier(.22,1,.36,1) backwards}
.ng-confetti{position:fixed;left:50%;top:38%;width:0;height:0;pointer-events:none;z-index:10001}
.ng-confetti i{position:absolute;width:8px;height:12px;border-radius:2px;animation:ngConfetti 1.2s cubic-bezier(.15,.7,.3,1) forwards}

@media (prefers-reduced-motion: reduce){
  .screen.active,#screen-seats.active,.nav-item.active::after,.nav-item.active .nav-icon,#homeShowList>*,.lang-menu,.phone-gate-overlay,.phone-gate-card,#confirmedMsg.show,.ticket-booking.ticket-popped,.ng-confetti i{animation:none!important}
  .confirm-btn,.show-share-btn,.lang-globe-btn,.back-btn,.nav-item{transition:none}
}
/* compact ticket: tighter middle section */
.ticket-booking .ticket-show-row { padding: 10px 16px 4px; min-height: 0; }
.ticket-booking .ticket-poster, .ticket-stub .ticket-poster { width: 96px; flex: 0 0 96px; }
.ticket-booking .ticket-details { padding: 0 16px 10px; gap: 10px; }
.ticket-booking .ticket-details-info { gap: 3px; }
.ticket-booking .ticket-details-info > div { gap: 10px; }
.ticket-booking .ticket-detail-label { font-size: 9px; margin-bottom: 0; }
.ticket-booking .ticket-detail-value { font-size: 13px; }
.ticket-booking .ticket-perforation { margin-top: 2px; }
.ticket-booking .ticket-footer { padding: 10px 16px; }
.ticket-booking .ticket-policy { padding: 5px 16px; }
.ticket-booking .ticket-brand-footer { padding: 5px 16px; }