/* Responsive enhancement release 2026-10-16. Loaded after existing themes.
   Screen-only presentation: does not alter printed tickets or pass artwork. */
@media screen {
  :is(body.ui2026,body.admin-shell) :is(input,select,textarea){max-width:100%}
  :is(body.ui2026,body.admin-shell) :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #e78a24;outline-offset:3px}
  :is(body.ui2026,body.admin-shell) :is(h1,h2,h3){overflow-wrap:anywhere;text-wrap:balance}
  :is(body.ui2026,body.admin-shell) :is(.ui-card,.ui-panel,.ui-row-body,.ui-choice-body,.card,.toolbar>div){min-width:0}
  body.ui2026 :is(.ui-card,.ui-panel,.ui-row-body) :is(p,small,dd){overflow-wrap:anywhere}
  body.ui2026 :is(.ui-wrap,.ev-main,.ev-side){min-width:0}
  body.ui2026 [id]{scroll-margin-top:100px}
  body.ui2026 .ui-btn{white-space:normal;text-align:center}
  body.ui2026 .ui-actionbar{gap:12px}
  body.ui2026 .ui-actionbar-price strong{overflow-wrap:anywhere}
  body.ui2026 .ui-actionbar .ui-btn{min-width:0;max-width:65%;line-height:1.35}
  body.ui2026.has-actionbar .public-main{padding-bottom:calc(140px + env(safe-area-inset-bottom,0px))}
  /* Search lives in the discovery area and uses the existing server search. */
  body.home-page .home-discovery{padding-block:clamp(24px,4vw,52px);gap:32px}
  body.home-page .home-discovery>*{min-width:0}
  body.home-page .home-discovery-search{display:flex;gap:8px;padding:6px;margin:0 0 18px;border:1px solid var(--line,#d5d8df);background:var(--surface,#fff);border-radius:16px;box-shadow:0 8px 30px #141b3010;max-width:580px}
  body.home-page .home-discovery-search input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink,#111827);font:inherit;font-size:16px;padding:10px 12px;border-radius:10px}
  body.home-page .home-discovery-search button{flex-shrink:0;min-height:46px;border-radius:11px}
  body.home-page .home-discovery-dates a{min-height:88px;border-radius:16px;transition:transform .18s,border-color .18s}
  body.home-page .home-discovery-dates a:hover{transform:translateY(-2px)}
  body.home-page .home-discovery-actions{gap:10px 20px}
  /* Event content stays readable with long names and dense ticket options. */
  body.page-event .ev-title{font-size:clamp(1.65rem,3.7vw,2.65rem);line-height:1.17;letter-spacing:-.025em}
  body.page-event .ev-meta{border:1px solid var(--line);border-radius:16px;padding:8px 14px;margin-block:20px}
  body.page-event .ev-meta-row{min-height:48px}
  body.page-event .ev-meta-row>*{min-width:0;overflow-wrap:anywhere}
  body.page-event .ev-jump{gap:8px;padding-block:10px;scrollbar-width:thin}
  body.page-event .ev-jump a{min-height:44px;flex-shrink:0;border:1px solid var(--line);border-radius:999px;padding-inline:16px}
  body.page-event .ev-about{line-height:1.8;overflow-wrap:anywhere}
  body.page-event .ev-side-card{border-radius:20px}
  body.page-event .ev-main>.ui-sec{padding-block:24px;border-top:1px solid var(--line)}
  /* Checkout retains a single form and the live quote hooks. */
  body.page-checkout .co-review{max-width:720px;padding-top:26px}
  body.page-checkout .co-review-heading{margin:0 0 26px}
  body.page-checkout .co-review-heading>span{font-size:.7rem;letter-spacing:.15em;font-weight:750;color:var(--ink-2)}
  body.page-checkout .co-review-heading h1{font-size:clamp(1.7rem,4vw,2.3rem);margin:8px 0;line-height:1.2;letter-spacing:-.03em}
  body.page-checkout .co-review-heading p{color:var(--ink-2);line-height:1.6;margin:0;font-size:.9rem}
  body.page-checkout .co-steps{padding:18px 8px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
  body.page-checkout .ui-card{border-radius:18px;padding:clamp(16px,3vw,24px)}
  body.page-checkout .co-sep{font-size:.82rem;letter-spacing:.045em;margin-top:26px}
  body.page-checkout .co-item-body{min-width:0;overflow-wrap:anywhere}
  body.page-checkout .ui-lines>div{gap:16px;align-items:flex-start}
  body.page-checkout .ui-lines dt{min-width:0;overflow-wrap:anywhere}
  body.page-checkout .ui-lines dd{flex-shrink:0;max-width:55%;text-align:right}
  body.page-checkout .ui-lines .is-total{padding-top:16px;margin-top:12px;font-size:1.12rem}
  body.page-checkout .co-total-link{color:var(--ink-2);font-size:.72rem;text-decoration:underline;text-underline-offset:3px;margin-bottom:5px}
  /* Shared admin shell: compact surfaces and accessible scrolling tables. */
  .admin-skip-link{position:fixed;left:12px;top:-100px;z-index:11000;padding:12px 18px;border-radius:8px;background:#fff;color:#111827}
  .admin-skip-link:focus{top:12px}
  body.admin-shell main{margin-inline:auto;min-width:0}
  body.admin-shell :is(.card,.dash-command){border-radius:16px;box-shadow:0 4px 20px #17203306}
  body.admin-shell .topbar{gap:12px;flex-wrap:wrap}
  body.admin-shell .topbar form{min-width:0;max-width:100%}
  body.admin-shell .topbar select{min-width:0;width:100%}
  body.admin-shell .topbar-tools{min-width:0;flex-wrap:wrap}
  body.admin-shell .who{white-space:normal;overflow-wrap:anywhere}
  body.admin-shell .dash-shortcuts a{min-width:0;transition:border-color .15s,background .15s}
  body.admin-shell .dash-shortcuts a:hover{background:var(--lv-bg,#fafafa)}
  body.admin-shell :is(.dash-snapshot strong,.stat-card .num){overflow-wrap:anywhere}
  body.admin-shell .re-table-scroll{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--lv-border,#e5e7eb);border-radius:12px;margin-block:12px}
  body.admin-shell .re-table-scroll table{margin:0;width:100%}
  body.admin-shell .re-table-scroll:focus-visible{outline:3px solid #e78a24;outline-offset:2px}
  body.admin-shell .re-scroll-hint{font-size:.75rem;color:var(--lv-muted,#64748b);margin:6px 0}
  body.admin-shell.lv-dark .dash-shortcuts a:hover{background:#29263c}
  @media(max-width:820px){
    :is(body.ui2026,body.admin-shell) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){font-size:16px}
    body.admin-shell .topbar{position:relative;padding:14px 16px 14px 64px}
    body.admin-shell .topbar>form{width:100%}
    body.admin-shell .topbar-tools{justify-content:flex-start;width:100%}
    body.admin-shell .who{max-width:100%}
    body.admin-shell :is(.toolbar,.actions,.quick-actions){gap:10px;flex-wrap:wrap}
    body.admin-shell .re-table-scroll table.data{min-width:620px}
    body.home-page .home-discovery{grid-template-columns:1fr;gap:20px}
    body.home-page .home-discovery-dates{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
    body.home-page .home-discovery-dates a{padding:12px;min-width:0}
    body.home-page .home-discovery-dates span{line-height:1.4}
  }
  @media(max-width:480px){
    body.ui2026 .ui-actionbar{width:calc(100% - 20px);padding:12px;bottom:calc(10px + env(safe-area-inset-bottom,0px))}
    body.page-checkout .co-coupon-row{gap:8px}
    body.page-checkout .co-coupon-row input{min-width:0}
    body.page-checkout :is(.co-offer,.co-group-nudge){flex-wrap:wrap;gap:10px}
    body.page-checkout .co-offer-body{min-width:0;flex-basis:60%;overflow-wrap:anywhere}
    body.page-event .ev-meta{padding:6px 10px}
    body.home-page .home-discovery-dates span{font-size:.69rem}
    body.home-page .home-discovery-dates b{font-size:.84rem;overflow-wrap:anywhere}
    body.home-page .home-discovery-search input{padding-inline:8px;font-size:16px}
    body.home-page .home-discovery-search button{padding-inline:14px}
  }
  @media(prefers-reduced-motion:reduce){
    html:has(body.ui2026){scroll-behavior:auto!important}
    body.home-page .home-discovery-dates a,body.admin-shell .dash-shortcuts a{transition:none}
  }
}
@media print{.admin-skip-link,.re-scroll-hint,.home-discovery-search,.co-total-link{display:none!important}.re-table-scroll{overflow:visible!important}}

/* Round 2: actionable feedback, with hidden states preserved. */
@media screen {
  body.home-page .re-filter-summary:not([hidden]){display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 18px;padding:12px 16px;margin:0 0 18px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:.82rem}
  body.home-page .re-filter-summary span{min-width:0;overflow-wrap:anywhere;flex:1 1 220px;line-height:1.6}
  body.home-page .re-filter-summary a{min-height:44px;display:inline-flex;align-items:center;font-weight:700;text-underline-offset:3px}
  body.admin-shell .re-nav-feedback{padding:8px 12px 12px;font-size:.8rem;color:#eef2ff}
  body.admin-shell .re-nav-feedback p{line-height:1.5;margin:0 0 6px}
  body.admin-shell .re-nav-feedback button{min-height:44px;border:1px solid #ffffff50;background:transparent;color:#fff;border-radius:8px;padding:8px 12px;cursor:pointer}
  body.page-checkout .re-validation{padding:16px;margin:16px 0;border:1px solid #fda4af;border-radius:12px;background:#3d1420;color:#ffe4e6}
  body.page-checkout .re-validation ul{padding-left:20px;margin-bottom:0}
  body.page-checkout .re-validation button{background:none;border:0;padding:8px 0;color:inherit;font:inherit;font-size:.85rem;text-decoration:underline;text-underline-offset:3px;text-align:left;cursor:pointer;line-height:1.5;overflow-wrap:anywhere}
  body.page-checkout [aria-invalid="true"]{border-color:#fda4af;box-shadow:0 0 0 1px #fda4af}
  body.page-event [data-more]{min-height:44px}
}
@media print{.re-filter-summary,.re-nav-feedback,.re-validation{display:none!important}}
@media screen {
  body.page-checkout .re-quote-status{border:1px solid var(--line);border-left:3px solid #fbbf24;background:var(--surface);color:var(--ink);border-radius:10px;padding:12px 14px;font-size:.85rem;line-height:1.6;overflow-wrap:anywhere}
}
@media print{.re-quote-status{display:none!important}}

/* ---------------------------------------------------------------------
   Mobile tap targets (2026-10-23). Measured at 390px: breadcrumb links, FAQ questions, the guest-names
   toggle and "View price details" were 13–23px tall — under the WCAG 2.2
   24px minimum and hard to hit with a thumb. The visible look is unchanged;
   only the hit area grows.
   ------------------------------------------------------------------- */
/* Dots already get an invisible 44px hit area (ui-2026.css); with a 5px gap
   neighbouring areas overlapped, so a tap often opened the next slide. */
body.ui2026 .ui-dots{gap:12px}
nav[aria-label="Breadcrumb"] a,.breadcrumbs a,ol.ui-crumbs a{display:inline-flex;align-items:center;min-height:28px}
details.ev-faq>summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
details.co-guests>summary{min-height:44px;display:flex;align-items:center;gap:8px;cursor:pointer}
.co-total-link{display:inline-block;padding-block:6px;margin-block:-6px}
.co-trustbox a{display:inline-flex;align-items:center;min-height:28px}
@media (max-width:480px){
  /* Long organiser / sponsor names never push their cards wider than the screen. */
  .ev-spon-name,.ap-spon-name,.op-hero h1,.ev-title{overflow-wrap:anywhere}
}

/* Typographic placeholder for events without a poster (event_placeholder_art). */
body.ui2026 .ev-ph-text{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:6px;padding:14px;text-align:left;
  background:radial-gradient(120% 90% at 100% 0%,rgba(225,29,46,.55) 0%,rgba(225,29,46,0) 60%),linear-gradient(160deg,#1b1640 0%,#2a1a4a 55%,#5a1524 100%);color:#fff;font-size:1rem;letter-spacing:0}
body.ui2026 .ev-ph-badge{position:absolute;top:12px;left:12px;font-size:.62rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
body.ui2026 .ev-ph-name{font-size:clamp(1rem,4.6vw,1.25rem);line-height:1.18;font-weight:850;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
body.ui2026 .ev-ph-sub{font-size:.72rem;font-weight:700;opacity:.8;text-transform:uppercase;letter-spacing:.08em}
body.ui2026 .ui-poster-ph.ev-ph-text,body.ui2026 .op-card-ph.ev-ph-text{position:relative;width:100%;height:100%}
body.ui2026 .op-past-art .ev-ph-text .ev-ph-name{font-size:.5rem}
/* The price is the one line a buyer must read in full: on two-column phone
   grids it was cut to "Bookings from ₹6…". Let it wrap instead. */
body.ui2026 .ui-poster-body .ui-poster-price{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
/* Placeholder badge sits top-right so it never collides with the date chip. */
body.ui2026 .ev-ph-badge{left:auto;right:12px}
body.ui2026 .ev-rel-ph.ev-ph-text{position:relative;height:100%;color:#fff}
body .discovery-filters.df-collapsed .df-adv{display:none}
body .discovery-more-toggle{min-height:44px}
/* "More filters" sits on its own line as a quiet text-style control, with the
   two main actions side by side underneath (phones, 2026-10-23). */
body .discovery-filters .discovery-more-toggle{grid-column:1/-1;justify-self:start;height:auto;border-radius:999px;padding:.5rem 1rem;font-size:.9rem}
@media(max-width:719px){body .discovery-filters .discovery-filter-actions{grid-column:1/-1;flex-wrap:nowrap}body .discovery-filters .discovery-filter-actions>*{flex:1 1 0;justify-content:center;text-align:center}body .discovery-filters{gap:.75rem}}
/* Organizer header on phones: "Follow" was breaking as "Foll / ow" and
   "View events" was clipped. Two equal text buttons + two 44px icon buttons. */
html body.ui2026 .op-actions .ui-btn{white-space:nowrap;min-width:0}
@media(max-width:480px){
  html body.ui2026 .op-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) 44px 44px;gap:8px}
  html body.ui2026 .op-actions>*{min-width:0;width:auto}
  html body.ui2026 .op-actions .fa-follow-form{display:flex}
  html body.ui2026 .op-actions .fa-follow-form .ui-btn,html body.ui2026 .op-actions a.ui-btn.op-btn-main{width:100%;padding-left:8px;padding-right:8px;gap:6px}
  html body.ui2026 .op-actions button.ui-btn.op-share,html body.ui2026 .op-actions a.ui-btn.op-icon-btn{width:44px;min-width:44px;padding:0}
  html body.ui2026 .op-actions button.ui-btn.op-share span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}
@media(max-width:350px){html body.ui2026 .op-actions .op-btn-main svg,html body.ui2026 .op-actions .fa-follow-form .ui-btn svg{display:none}}
