/* Mike's page structure with Feelix Brand Guidelines / Print Edition 02.
   Preserve readable type, generous controls and bounded result pages. */
body.ticket-app{background:var(--cream);color:var(--ink);font:400 18px/1.45 Inter,sans-serif;min-height:100svh;margin:0}
.ticket-app *{box-sizing:border-box;letter-spacing:normal}
.ticket-app .app-shell{width:min(500px,100%);min-height:100svh;margin:auto;padding:0;display:flex;flex-direction:column;background:var(--cream);box-shadow:0 0 0 1px #071d1b15}
.ticket-app .topbar,.ticket-app .restaurant-topbar{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:92px;padding:12px 20px;background:var(--midnight);border:0;flex-wrap:wrap}
.ticket-app .brand-wordmark{display:block;width:218px;height:65px;object-fit:contain}
.ticket-app .topbar .top-actions,.ticket-app .header-search{display:none}
.ticket-app .page,.ticket-app .restaurant-shell{width:100%;max-width:100%;padding:18px 18px 24px;margin:0}
.ticket-app #dinerApp{flex:1}
.ticket-app h1,.ticket-app h2,.ticket-app h3{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;line-height:1.25;letter-spacing:-.02em;overflow-wrap:break-word;word-break:normal}
.ticket-app h1{font-size:28px;margin:0 0 18px}.ticket-app h2{font-size:24px;margin:12px 0}.ticket-app h3{font-size:22px;margin:8px 0}
.ticket-app p,.ticket-app .muted,.ticket-app small,.ticket-app label,.ticket-app summary{font-size:18px;line-height:1.45}
.ticket-app .muted{color:var(--muted)}.ticket-app .eyebrow,.ticket-app .panel-kicker{font-size:18px;color:var(--ink)}
.ticket-app .btn,.ticket-app .btn.compact,.ticket-app .text-action,.ticket-app .menu-view-button,.ticket-app .restaurant-more,.ticket-app .task-menu-button{font:600 18px/1.35 Inter,sans-serif;min-height:52px;padding:12px 18px;border-radius:12px;white-space:normal;color:var(--ink)}
.ticket-app .btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;max-width:100%}
.ticket-app .wide{display:flex;width:100%}
.ticket-app .btn.primary{border:2px solid var(--ink);background:var(--orange);color:var(--ink);box-shadow:none}
.ticket-app .btn.secondary,.ticket-app .menu-view-button{border:2px solid var(--ink);background:var(--cream);color:var(--ink)}
.ticket-app .btn:hover{filter:brightness(.98)}
.ticket-app .text-action{display:inline-flex;align-items:center;border:0;background:transparent;text-decoration:underline;text-underline-offset:4px}
.ticket-app button:disabled{opacity:.5;cursor:default}
.ticket-app input,.ticket-app select,.ticket-app textarea{font:400 18px/1.4 Inter,sans-serif;min-height:50px;padding:10px 12px;background:var(--paper);color:var(--ink);border:1px solid #87948c;border-radius:5px;min-width:0;max-width:100%}
.ticket-app input[type=checkbox]{width:28px;height:28px;min-width:28px;min-height:28px;flex-shrink:0;margin:0;accent-color:var(--midnight)}
.ticket-app :focus-visible{outline:3px solid var(--ink);outline-offset:4px}
.ticket-app [hidden]{display:none!important}
.ticket-app .mockup-tagline{font:800 25px/1.25 'Plus Jakarta Sans',sans-serif;margin:0 0 8px;letter-spacing:-.04em;text-align:center}
.ticket-app .mockup-tagline em{font-style:normal;color:var(--ink)}
.ticket-app .mockup-fee{font-size:20px;text-align:center;margin:0 0 24px}.ticket-app .mockup-fee span{font-size:18px}
.ticket-app .entry-diner,.ticket-app .entry-restaurant{min-height:118px;font-size:30px;margin:24px 0;background:var(--orange)}
.ticket-app .entry-restaurant{background:var(--midnight)!important;color:var(--cream)!important}
.ticket-app .entry-location{font-size:24px;font-weight:700;text-align:center;margin:36px 0 8px}
.ticket-app .featured-deal{width:100%;min-height:150px;padding:24px 20px;background:var(--midnight);color:var(--cream);border:0;border-radius:18px;font:700 25px/1.4 'Plus Jakarta Sans',sans-serif;margin:0 0 20px}
.ticket-app .featured-deal span{display:block;font:400 18px/1.4 Inter,sans-serif;margin-top:16px}
.ticket-app .mockup-page>.btn,.ticket-app #dinerStartView>.btn{margin:12px 0}
.ticket-app #dinerStartView label{display:grid;gap:6px;margin:12px 0}.ticket-app #dinerStartView h2{text-align:center;font-size:21px;background:var(--orange);padding:12px}
.ticket-app #dinerForgot{background:var(--cream)}
.ticket-app .section-strip{background:var(--soft);font-size:22px;padding:10px 14px;margin:16px -18px;text-align:center}
.ticket-app .menu-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.ticket-app .list-heading{font-size:27px;margin:0 0 4px}.ticket-app .list-order{font-size:18px;margin:0 0 16px}
.ticket-app .diner-intro,.ticket-app #liveDropsSection>.section-head{display:none}
.ticket-app #liveDropsSection{padding:0}.ticket-app .filter-status{font-size:18px;line-height:1.45;margin:0 0 14px}
.ticket-app .drop-grid{display:flex;flex-direction:column;gap:14px}
.ticket-app .drop-card{display:block;position:relative;padding:0;border:0;border-radius:12px;background:var(--orange);color:var(--ink);box-shadow:none;transform:none;overflow:hidden;min-width:0;width:100%}
.ticket-app .drop-card:nth-child(even){background:var(--midnight);color:var(--cream)}
.ticket-app .drop-card:hover{transform:none;box-shadow:none}
.ticket-app .offer-row{display:block;text-align:left;width:100%;min-width:0;padding:16px 18px;border:0;background:transparent;color:inherit;font:400 18px/1.4 Inter,sans-serif;border-radius:12px;white-space:normal;overflow-wrap:break-word;word-break:normal}
.ticket-app .offer-row>span{display:block;min-width:0;width:100%}
.ticket-app .row-title{font-weight:700;font-size:21px;line-height:1.3;margin-bottom:6px}
.ticket-app .row-offer{font-size:20px;line-height:1.35;margin-bottom:8px}
.ticket-app .row-meta,.ticket-app .row-value{font-size:18px;line-height:1.4}
.ticket-app .row-value{margin-top:8px;font-weight:600}
.ticket-app .drop-card.between-card{background:var(--soft);color:var(--muted)}
.ticket-app .between-card .row-offer{text-align:center;padding:8px 0}
.ticket-app .page-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px;font-size:18px;min-height:56px}
.ticket-app .page-arrow{font:600 18px/1.35 Inter,sans-serif;min-height:52px;padding:10px 14px;background:var(--cream);color:var(--ink);border:2px solid var(--ink);border-radius:10px}
.ticket-app .page-controls span{font-size:18px;white-space:nowrap}
.ticket-app .bottom-nav{display:none!important}
.ticket-app>.app-footer,.ticket-app>nav[aria-label=Policies]{display:none}
.ticket-app #menuView .top-actions{display:grid;grid-template-columns:1fr;gap:12px;margin:0 0 16px}
.ticket-app .top-actions>*{display:flex;align-items:center;justify-content:center;min-height:52px;padding:12px 18px;border:2px solid var(--ink);border-radius:12px;background:var(--cream);color:var(--ink);font:600 18px/1.35 Inter,sans-serif;text-decoration:none}
.ticket-app .top-actions>a:last-child,.ticket-app #customerLink{border:2px solid var(--ink);border-radius:12px;padding:12px 18px;font-size:18px;color:var(--ink)}
.ticket-app #menuView nav[aria-label=Policies]{font-size:18px!important;line-height:2.5;padding:20px 0!important}
.ticket-app .discovery-tools{display:block}.ticket-app .search-box{width:100%;min-height:52px;padding:8px 12px;background:var(--paper);border:1px solid #87948c;border-radius:5px}
.ticket-app .search-box input{border:0;background:transparent;padding:4px 0;min-width:0;font-size:18px}
.ticket-app .discovery-tools>label[for]{display:block;margin-bottom:8px}
.ticket-app .discovery-filters>summary{display:none}.ticket-app .filter-row{display:grid;grid-template-columns:1fr;gap:18px;margin:16px 0}
.ticket-app .filter-row label{display:grid;gap:8px}.ticket-app .filter-select{width:100%;font-size:18px;border-radius:5px}
/* Reset the previous mobile image grid completely: text always uses the full row. */
.ticket-app .restaurant-directory,.ticket-app .following-list,.ticket-app .my-deals-list{display:flex;flex-direction:column;gap:14px}
.ticket-app .restaurant-card{display:block;grid-template-columns:none;grid-template-rows:none;width:100%;min-width:0;max-width:100%;background:var(--cream);color:var(--ink);border:1px solid #87948c;border-radius:12px;overflow:visible}
.ticket-app .restaurant-art{display:none}
.ticket-app .restaurant-card-body{display:block;grid-column:auto;grid-row:auto;width:100%;min-width:0;max-width:100%;padding:18px}
.ticket-app .restaurant-card h3{display:block;font-size:23px;line-height:1.3;letter-spacing:normal;width:100%;max-width:100%;overflow-wrap:break-word;word-break:normal;margin:0 0 10px}
.ticket-app .restaurant-card-body p{display:block;font-size:18px;width:100%;max-width:100%;overflow-wrap:break-word;word-break:normal;margin:8px 0}
.ticket-app .restaurant-card-body>.eyebrow{display:none}
.ticket-app .restaurant-card-actions{display:flex;flex-wrap:wrap;gap:12px;width:100%;margin-top:16px}
.ticket-app .restaurant-card-actions .btn{flex:1 1 130px;font-size:18px;min-height:52px;padding:12px}
.ticket-app .directory-section{padding:0;margin:0;border:0}.ticket-app .directory-section .small-tag{display:none}.ticket-app .directory-section .section-head h2{font-size:27px}
.ticket-app .directory-section>.muted{display:none}
.ticket-app .small-tag{font-size:18px;white-space:normal}
.ticket-app .narrow-page>.eyebrow,.ticket-app .account-save-note{display:none}
.ticket-app .following-card,.ticket-app .wallet-card{display:block;padding:20px;background:var(--cream);border:1px solid #87948c;border-radius:12px;color:var(--ink)}
.ticket-app .follow-actions,.ticket-app .my-deal-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-top:16px}
.ticket-app .wallet-art{background:transparent!important;padding:0;min-height:0}.ticket-app .wallet-content{padding:12px 0 0}.ticket-app .wallet-offer{font-size:23px;font-weight:700}
.ticket-app .wallet-clock{display:grid;gap:6px}.ticket-app .wallet-upcoming{background:var(--soft)}.ticket-app .wallet-ready{background:var(--cream)}.ticket-app .wallet-checked_in,.ticket-app .wallet-payment{background:#d7f3df}.ticket-app .wallet-grace{background:var(--sun)}
.ticket-app .history-row{display:block;font-size:18px;background:var(--cream);padding:16px;margin-top:12px}
/* Full offer and checkout are consecutive pages, with Stripe collecting card data. */
.ticket-app .modal-wrap{padding:12px;background:#071d1bb8;align-items:center}
.ticket-app .modal{border-radius:12px}
.ticket-app .deal-modal{display:flex;flex-direction:column;width:min(476px,100%);height:auto;max-height:calc(100dvh - 24px);padding:0;background:var(--cream);overflow:hidden}
.ticket-app .deal-masthead{display:flex;align-items:center;justify-content:center;padding:12px 64px;background:var(--midnight);flex-shrink:0}
.ticket-app .deal-masthead img{display:block;max-width:100%;height:52px;object-fit:contain}
.ticket-app .modal-close{position:absolute;right:8px;top:8px;min-height:52px;width:52px;height:52px;background:var(--cream);color:var(--ink);border-radius:8px;font-size:30px;z-index:3}
.ticket-app .deal-pages,.ticket-app .deal-modal-image{display:none}
.ticket-app .deal-scroll{overflow-y:auto;min-height:0;flex:1}
.ticket-app .deal-modal-body{padding:18px}
.ticket-app .deal-modal-top{display:block;text-align:center}.ticket-app .deal-modal-top h2{font-size:25px;margin:0 0 8px}.ticket-app #dealCluster,.ticket-app #modalFavorite{display:none}
.ticket-app .deal-offer{padding:18px 14px;background:var(--cream);border:1px dashed var(--ink);text-align:center;margin:16px 0}
.ticket-app .deal-offer strong{font-size:29px;line-height:1.2}.ticket-app .deal-offer span{font-size:18px;line-height:1.45;margin-top:10px}
.ticket-app .deal-location{text-align:center;font-size:18px;line-height:1.45;margin:8px 0}.ticket-app .deal-location a{display:inline-flex;min-height:48px;align-items:center;font-size:18px}
.ticket-app .deal-facts{display:grid;gap:8px;margin:16px 0}.ticket-app .deal-facts span{font-size:18px;line-height:1.4;padding:6px 10px}
.ticket-app .deal-rules,.ticket-app .purchase-help{font-size:18px;line-height:1.45}
.ticket-app .savings-details{margin:16px 0;padding:12px 0;border-block:1px solid #071d1b70}.ticket-app .savings-details summary{font-size:18px;min-height:48px;padding:10px 0}
.ticket-app .calculator-label,.ticket-app .value-box span,.ticket-app .value-box b{font-size:18px}
.ticket-app .deal-secondary-actions{display:grid;gap:10px}.ticket-app .deal-secondary-actions>*{font-size:18px;min-height:48px}
.ticket-app .purchase-panel{background:var(--cream);padding:16px 18px;border-top:1px solid #071d1b70;flex-shrink:0;box-shadow:none}
.ticket-app .purchase-estimate{display:block;margin:0 0 12px}.ticket-app .purchase-estimate b,.ticket-app .purchase-estimate span{display:block;font-size:18px;line-height:1.4}
.ticket-app .unlock-button{width:100%;min-height:56px;font-size:20px}
.ticket-app .secure-note,.ticket-app .guest-purchase-note{font-size:18px;line-height:1.4;color:var(--ink);margin:10px 0 0}.ticket-app .guest-purchase-note{display:none}
.ticket-app #dealModal[data-page=checkout] .deal-scroll{display:none}.ticket-app #dealModal[data-page=checkout] .purchase-estimate{display:none}
.ticket-app #checkoutReview{padding:18px;overflow-y:auto;min-height:0;flex:1}.ticket-app #checkoutReview .section-strip{margin-top:0}
.ticket-app .checkout-summary{padding:16px;border:1px dashed var(--ink);text-align:center;background:var(--cream)}.ticket-app .checkout-summary strong{font-size:24px}.ticket-app .checkout-summary p{font-size:18px}
/* Redemption status follows the four panels in Mike's reference. */
.ticket-app .pass-modal{width:min(440px,100%);max-height:calc(100dvh - 24px);overflow-y:auto;padding:0 0 20px;background:var(--cream);color:var(--ink);border:0;border-radius:12px;text-align:center}
.ticket-app .pass-brand{display:block;width:100%;height:90px;padding:15px 80px;background:var(--midnight);object-fit:contain;margin:0}
.ticket-app .pass-status{display:block;padding:16px 20px;background:var(--soft);color:var(--ink);font-size:20px;line-height:1.4;margin:0}.ticket-app .pass-check{display:none}
.ticket-app .pass-modal[data-phase=ready] .pass-status{background:var(--green);color:var(--ink)}.ticket-app .pass-modal[data-phase=checked_in] .pass-status,.ticket-app .pass-modal[data-phase=payment] .pass-status{background:#d7f3df}.ticket-app .pass-modal[data-phase=grace] .pass-status{background:var(--sun);color:var(--ink)}
.ticket-app .pass-modal[data-phase=expired]{background:var(--soft)}.ticket-app .pass-modal[data-phase=expired] .pass-status{background:var(--midnight);color:var(--cream)}
.ticket-app .pass-reservation-note{background:var(--cream);padding:10px 18px;margin:0;font-size:18px;font-weight:600}
.ticket-app .pass-modal h2{font-size:25px;margin:16px 20px 8px}.ticket-app #passAddress{font-size:18px;margin:0 20px 16px}
.ticket-app .pass-discount{font-size:26px;line-height:1.25;margin:16px 20px 10px}.ticket-app #passTerms{font-size:18px;line-height:1.45;background:var(--cream);padding:12px;margin:0 20px 16px}
.ticket-app .pass-qr-frame{padding:8px;background:white;width:164px;max-width:100%;margin:16px auto 10px}.ticket-app .pass-qr-frame img{width:100%}.ticket-app .deal-code{font-size:18px}
.ticket-app .pass-expiry{padding:16px 20px;border-top:1px dashed #071d1b80}.ticket-app .pass-expiry span{font-size:18px}.ticket-app .pass-expiry b{font-size:22px}
.ticket-app .pass-instruction,.ticket-app .pass-save-note{font-size:18px;line-height:1.45;margin:12px 20px;color:inherit}
.ticket-app .pass-details{padding:0 20px;text-align:left}.ticket-app .pass-details summary{font-size:18px;min-height:52px;padding:12px 0}
/* Restaurant tasks retain the existing controls and records. */
.ticket-app .restaurant-dashboard{min-height:0}.ticket-app .restaurant-heading{display:block;margin:0 0 18px}.ticket-app .restaurant-heading .eyebrow,.ticket-app .restaurant-heading p{display:none}.ticket-app .restaurant-heading h1{font-size:26px;margin:0;text-align:center}
.ticket-app .restaurant-topbar .ghost-link{display:none}
.ticket-app .restaurant-pages{display:flex;gap:8px;margin-bottom:18px}.ticket-app .restaurant-pages button{flex:1 1 0;min-width:0;font:600 18px/1.3 Inter,sans-serif;min-height:52px;padding:10px;border:1px solid var(--ink);border-radius:10px;background:var(--cream);color:var(--ink)}
.ticket-app .restaurant-pages button[aria-current=true]{background:var(--midnight);color:var(--cream)}
.ticket-app .restaurant-task-menu{display:flex;flex-direction:column;gap:12px}.ticket-app .task-menu-button{border:2px solid var(--ink);background:var(--cream)}
.ticket-app .restaurant-task>.main-grid{display:block}.ticket-app .restaurant-task .panel{display:block;width:100%;max-width:100%;padding:0;background:transparent;border:0;box-shadow:none;margin:0 0 18px}
.ticket-app #offerChoices>.panel-kicker{display:none}.ticket-app #offerChoices h2{font-size:22px;margin:0 0 12px}
.ticket-app .preset-list{display:flex;flex-direction:column;gap:12px;border:1px dashed var(--ink);border-radius:12px;padding:12px}
.ticket-app .preset{min-height:86px;padding:14px 16px;border:2px solid var(--ink);border-radius:12px;background:var(--paper);color:var(--ink);text-align:center}
.ticket-app .preset b{font-size:22px}.ticket-app .preset small{display:block;font-size:18px;line-height:1.4;margin-top:8px;color:inherit}.ticket-app .preset>span{display:none}
.ticket-app #moreOfferOptions{margin:16px 0;width:100%}.ticket-app #offerChoices[data-mode=more] .preset-list,.ticket-app #offerChoices[data-mode=more]>h2{display:none}
.ticket-app .more-offers{display:flex;flex-direction:column;gap:12px}.ticket-app .more-offers button{font-size:21px;min-height:88px;padding:16px;border:2px solid var(--ink);border-radius:12px;background:var(--paper);color:var(--ink)}.ticket-app .more-offers small{font-size:18px;line-height:1.4}
.ticket-app .repeat-card .panel-kicker,.ticket-app .repeat-card h2,.ticket-app .repeat-card p{display:none}.ticket-app .repeat-btn{background:var(--midnight);color:var(--cream)}
.ticket-app .restaurant-edit-shortcut{margin-bottom:18px;background:var(--soft)}
.ticket-app .form-grid{display:grid;grid-template-columns:1fr;gap:14px}.ticket-app .form-grid label{display:grid;gap:6px;font-size:18px}.ticket-app .form-grid input,.ticket-app .form-grid select{width:100%;font-size:18px;min-height:50px;border-radius:5px}
.ticket-app .form-grid label[data-offer-types=percentage]{grid-template-columns:1fr 108px;align-items:center}.ticket-app .form-grid label:has(#rMaxClaims){grid-template-columns:1fr 108px;align-items:center}
.ticket-app .offer-limit-options{margin:18px 0}.ticket-app .offer-limit-options summary{font-size:18px}.ticket-app .offer-limit-options .form-grid{margin-top:12px}
.ticket-app .consent-row,.ticket-app .launch-card label.consent-row{font-size:18px;line-height:1.4;display:flex;gap:12px;align-items:flex-start;margin:18px 0;color:var(--ink)}
.ticket-app .purchase-scheduling{margin:18px 0}.ticket-app .timing-note{font-size:18px;line-height:1.4}.ticket-app .step-heading{font-size:18px}.ticket-app .step-actions{display:flex;gap:12px;justify-content:space-between;margin-top:20px}
.ticket-app .offer-review{background:var(--cream);color:var(--ink);border:2px solid var(--ink);border-radius:12px;padding:18px;margin:0}.ticket-app .offer-review h3{font-size:27px}.ticket-app .offer-review p{font-size:18px;line-height:1.45}.ticket-app .offer-review button{margin-top:12px}
.ticket-app .report-pages{display:flex;gap:10px;flex-wrap:wrap}.ticket-app .report-pages button{font-size:18px;min-height:52px;padding:10px;border:1px solid var(--ink);border-radius:8px;background:var(--cream)}.ticket-app .analytics-table-wrap{overflow-x:auto}.ticket-app .analytics-table,.ticket-app .analytics-note,.ticket-app .metric span{font-size:18px}.ticket-app .metric-grid{grid-template-columns:1fr 1fr}
.ticket-app .manager-exception{padding:16px;border:1px solid var(--ink)}.ticket-app .manager-exception label{display:block;margin:16px 0}
/* Authentication and registration match the compact cream-field pages. */
.ticket-app.account-page,.ticket-app.owner-registration-page{width:min(500px,100%);margin:auto;background:var(--cream);min-height:100svh}
.ticket-app.account-page>header,.ticket-app.owner-registration-page>header{display:flex;align-items:center;justify-content:center;padding:14px 20px;background:var(--midnight)}
.ticket-app.account-page>header .signin,.ticket-app.owner-registration-page>header .signin{display:none}
.ticket-app.account-page main,.ticket-app.owner-registration-page main{width:100%;max-width:100%;margin:0;padding:18px}
.ticket-app.account-page main>.eyebrow,.ticket-app.owner-registration-page main>.eyebrow{display:none}
.ticket-app.account-page main>h1,.ticket-app.owner-registration-page main>h1{font-size:26px;text-align:center;margin:0 0 12px}
.ticket-app.account-page main>.intro,.ticket-app.owner-registration-page main>.intro{font-size:18px;text-align:center}
.ticket-app.account-page main>section,.ticket-app.owner-registration-page main>section{padding:0;border:0;background:transparent;border-radius:0}
.ticket-app.account-page main label,.ticket-app.owner-registration-page main label,.ticket-app .signup-options .check span{font-size:18px;line-height:1.4}
.ticket-app.account-page main button,.ticket-app.owner-registration-page main button{font-size:18px;min-height:52px;border-radius:10px}
.ticket-app .check{gap:12px;align-items:flex-start}.ticket-app .restaurant-review{padding:18px;background:var(--cream);border:1px dashed var(--ink)}.ticket-app .restaurant-review p{font-size:18px}
.ticket-app .map-title{display:block}.ticket-app .map-canvas{height:35svh;min-height:220px}.ticket-app .map-credit{font-size:16px}.ticket-app .map-list{display:block}.ticket-app .map-list-card{font-size:18px;margin-bottom:12px;padding:16px}
.ticket-app .skip-link:not(:focus){clip-path:inset(100%);width:1px;height:1px;overflow:hidden;padding:0}
@media(max-width:360px){.ticket-app .page,.ticket-app .restaurant-shell{padding-inline:14px}.ticket-app .offer-row{padding:14px}.ticket-app .row-title{font-size:21px}.ticket-app .btn,.ticket-app .page-arrow{padding-inline:12px}.ticket-app .mockup-tagline{font-size:24px}}
@media(prefers-reduced-motion:reduce){.ticket-app *{scroll-behavior:auto!important;transition:none!important}}
.ticket-app .page-middle{display:grid;justify-items:center;gap:6px}.ticket-app .page-more{font:700 19px/1.3 Inter,sans-serif;min-height:52px;padding:10px 20px;background:var(--orange);border:2px solid var(--ink);border-radius:10px;color:var(--ink)}.ticket-app .page-controls>button{flex:0 1 auto}
.ticket-app .restaurant-dashboard,.ticket-app .restaurant-login{background:transparent}
.ticket-app .restaurant-shell:has(#offerDetails:not([hidden])) .restaurant-pages{display:none}
.ticket-app .restaurant-shell:has(#offerDetails:not([hidden])) .restaurant-edit-shortcut{display:none}
.ticket-app #offerDetails>.panel-kicker{display:none}
.ticket-app #offerDetailsTitle{font-size:23px;background:var(--soft);padding:10px 14px;margin:12px -18px 18px;text-align:center}
.ticket-app #backToOffers{font-size:18px;min-height:48px;padding:8px 0}
.ticket-app .offer-limit-options{border:0;background:none;padding:0;display:contents}
.ticket-app .offer-limit-options>summary{display:none}
.ticket-app .offer-limit-options .form-grid{margin:14px 0}
.ticket-app label:has(>#rDiscountCap),.ticket-app label:has(>#rVisitType){display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,46%);align-items:center}
.ticket-app label:has(>#rDiscountCap)>small{grid-column:1/-1}
.ticket-app .timing-note{padding:0;background:none;border:0;margin:16px 0}
.ticket-app .pass-discount{color:var(--ink)}
.ticket-app .pass-expiry span,.ticket-app .pass-expiry b{color:var(--ink)}
.ticket-app .pass-qr-frame{height:164px;border-radius:6px}
.ticket-app .pass-qr-frame img{display:block;width:100%;height:100%}
.ticket-app .mockup-page>.btn{margin:8px 0}
.ticket-app .featured-deal{min-height:130px;padding:20px}
.ticket-app .mockup-fee{margin-bottom:18px}
.ticket-app .owner-back{display:none;position:absolute;left:10px;top:20px;width:52px;height:52px;border:1px solid #f7efdf70;border-radius:8px;color:var(--cream);background:transparent;font:600 28px/1 Inter,sans-serif}
.ticket-app:has(#offerDetails:not([hidden])) .owner-back{display:block}
.ticket-app #backToOffers{display:none}
.ticket-app .restaurant-shell:has(#offerDetails:not([hidden])){padding-top:14px}
.ticket-app .restaurant-shell:has(#offerDetails:not([hidden])) .restaurant-heading{margin-bottom:8px}
.ticket-app .cap-hint{position:absolute;clip-path:inset(100%);width:1px;height:1px;overflow:hidden}
.ticket-app .purchase-scheduling>summary{min-height:48px;display:flex;align-items:center;cursor:pointer}
.ticket-app #searchView .section-strip{margin-block:12px}
.ticket-app #searchView .featured-deal{margin-bottom:16px}
.ticket-app .mockup-page>.btn{margin-block:6px}

/* Finish: quiet surfaces, one clear action, and status colors with explicit labels. */
.ticket-app .brand{padding:5px 0;line-height:1}
.ticket-app .brand-wordmark{height:auto;aspect-ratio:2712/880;object-position:center}
.ticket-app .topbar,.ticket-app .restaurant-topbar{padding-block:18px;min-height:112px}
.ticket-app .btn.primary{border-color:var(--orange)}
.ticket-app .btn.primary:hover{background:var(--orange);border-color:var(--orange);color:var(--ink)}
.ticket-app .btn.secondary,.ticket-app .menu-view-button,.ticket-app .page-arrow,.ticket-app .top-actions>*,.ticket-app .task-menu-button{border-width:1px;border-color:#87948c;background:var(--paper)}
.ticket-app .btn.entry-diner{background:var(--orange);border-color:var(--orange)}
.ticket-app .entry-restaurant{border-color:var(--midnight)!important}
.ticket-app .section-strip,.ticket-app #dinerStartView h2,.ticket-app #offerDetailsTitle{border-block:1px solid var(--line);background:var(--soft)}
.ticket-app .featured-deal{border:1px solid var(--midnight);background:var(--midnight);color:var(--cream);box-shadow:none}
.ticket-app .page-more{background:var(--orange);border-color:var(--orange);font-weight:600}
.ticket-app .drop-card{border:1px solid var(--orange);border-radius:14px}
.ticket-app .drop-card:nth-child(even){border-color:var(--midnight)}
.ticket-app .drop-card.between-card{border-color:var(--line)}
.ticket-app .row-title{font-family:'Plus Jakarta Sans',sans-serif}
.ticket-app .offer-row:focus-visible{outline:3px solid var(--cream);outline-offset:-6px;box-shadow:inset 0 0 0 3px var(--midnight)}
.ticket-app .restaurant-card,.ticket-app .following-card,.ticket-app .wallet-card,.ticket-app .offer-review{background:var(--paper);border-color:#87948c}
.ticket-app .wallet-upcoming{background:var(--soft)}
.ticket-app .wallet-checked_in,.ticket-app .wallet-payment{background:#d7f3df}
.ticket-app .wallet-grace{background:var(--sun)}
.ticket-app .deal-offer,.ticket-app .checkout-summary,.ticket-app #passTerms{background:var(--paper)}
.ticket-app .purchase-panel{border-color:var(--line)}
.ticket-app .pass-reservation-note{border-bottom:1px solid var(--line)}
.ticket-app .pass-modal[data-phase=ready]{background:var(--cream)}
.ticket-app .pass-modal[data-phase=checked_in],.ticket-app .pass-modal[data-phase=payment]{background:#d7f3df}
.ticket-app .pass-status b{color:inherit}
.ticket-app .preset-list{border-color:#87948c}
.ticket-app .preset,.ticket-app .more-offers button{border:1px solid #87948c;background:var(--paper)}
.ticket-app .preset:hover,.ticket-app .more-offers button:hover{border-color:var(--midnight);background:var(--soft)}
.ticket-app .preset.active{border:2px solid var(--midnight);background:var(--cream)}
.ticket-app .repeat-btn{background:var(--midnight);border-color:var(--midnight);color:var(--cream)}
.ticket-app .restaurant-login:before{display:none}
.ticket-app .login-card{padding:20px;background:var(--cream);border:1px solid var(--line);box-shadow:none}
.ticket-app .login-card h1{font-size:28px}
.ticket-app .login-card p,.ticket-app .login-card .fine-print{font-size:18px}
.ticket-app .topbar :focus-visible,.ticket-app .restaurant-topbar :focus-visible{outline-color:var(--cream)}
.ticket-app .pass-modal :focus-visible{outline-color:var(--ink)}
.ticket-app .owner-back:focus-visible{outline-color:var(--cream)}
.ticket-app.account-page main>h1 em{font-style:normal;color:var(--ink)}
.ticket-app.account-page main input,.ticket-app.account-page main select,.ticket-app.owner-registration-page main input,.ticket-app.owner-registration-page main select{font-size:18px;min-height:50px;background:var(--paper)}
.ticket-app.account-page main input[type=checkbox],.ticket-app.owner-registration-page main input[type=checkbox]{min-height:28px}
.ticket-app.account-page main button:not(.link),.ticket-app.owner-registration-page main button:not(.link){background:var(--orange);color:var(--ink);font-size:18px;min-height:52px}
.ticket-app.account-page main button.secondary,.ticket-app.owner-registration-page main button.secondary{background:var(--paper)!important;border:1px solid #87948c}
.ticket-app.account-page main .muted,.ticket-app.account-page main details,.ticket-app.owner-registration-page main .muted,.ticket-app.owner-registration-page main details{font-size:18px}
@media(max-width:360px){.ticket-app .topbar,.ticket-app .restaurant-topbar{min-height:102px;padding-block:14px}}
