:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-text:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, ui-sans-serif, system-ui, sans-serif;--ink:#27233a;--ink-strong:#151225;--muted:#736d82;--subtle:#a49cad;--line:#28233a1f;--paper:#ffffffe0;--soft:#f7f4fb;--canvas:#fffdf8;--canvas-end:#f2f7f4;--glass:#ffffffb8;--glass-strong:#ffffffe6;--control-active:#27233a;--control-active-text:#fff;--violet:#7335f5;--mint:#17b889;--coral:#ff735f;--amber:#f5bb45;--blue:#4d82ff;--leaf:#65bf48;--radius:8px;--pill:999px;font-family:var(--font-text);color:var(--ink)}*{box-sizing:border-box}body{background:linear-gradient(140deg, #17b8892e, transparent 30%), linear-gradient(40deg, #f5bb4529, transparent 34%), linear-gradient(180deg, var(--canvas), var(--canvas-end));min-width:320px;min-height:100vh;font-family:var(--font-text);letter-spacing:0;-webkit-font-smoothing:antialiased;margin:0}button,input,select{font:inherit;letter-spacing:0}button{cursor:pointer;-webkit-tap-highlight-color:transparent;border:0}.app-shell{justify-content:center;min-height:100vh;padding:0;display:flex}.phone-surface{background:var(--glass-strong);width:100%;height:100vh;min-height:720px;box-shadow:none;-webkit-backdrop-filter:blur(28px)saturate(1.25);backdrop-filter:blur(28px)saturate(1.25);border:0;flex-direction:column;display:flex;position:relative;overflow:hidden}.app-header{z-index:4;background:var(--glass);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);grid-template-columns:minmax(0,1fr) 48px;align-items:center;gap:12px;min-height:84px;padding:18px 18px 12px;display:grid}.brand-lockup{justify-content:flex-start;align-items:center;gap:9px;min-width:0;display:flex}.brand-lockup strong,.brand-lockup span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.brand-lockup strong{color:var(--ink-strong);font-size:15px}.brand-lockup span{color:var(--muted);font-size:12px}.brand-mark,.icon-button{justify-content:center;align-items:center;display:inline-flex}.brand-mark{border-radius:var(--radius);background:0 0;width:34px;height:34px;overflow:hidden}.brand-mark img{width:100%;height:100%;display:block}.icon-button{border-radius:var(--pill);width:40px;height:40px;color:var(--ink);background:#ffffffa3;position:relative}.notification-badge{border-radius:var(--pill);color:#fff;background:#e5484d;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:900;line-height:1;display:grid;position:absolute;top:5px;right:5px;box-shadow:0 0 0 2px #fff}.confetti-layer{pointer-events:none;z-index:80;position:fixed;inset:0;overflow:hidden}.confetti-layer span{--hue:calc((var(--i) * 47) % 360);left:calc(50% + (var(--i) - 17) * 2.8%);background:hsl(var(--hue), 82%, 58%);width:9px;height:14px;transform:translate(-50%, -50%) rotate(calc(var(--i) * 18deg));animation:1.85s cubic-bezier(.16,.84,.26,1) forwards confetti-pop;animation-delay:calc((var(--i) % 7) * 18ms);border-radius:3px;position:absolute;top:42%}.confetti-layer span:nth-child(3n){border-radius:50%;width:7px;height:7px}.confetti-layer span:nth-child(4n){width:12px;height:6px}@keyframes confetti-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)rotate(0)}12%{opacity:1}to{opacity:0;transform:translate(calc(-50% + (var(--i) - 17) * 11px), calc(-50% + 46vh + (var(--i) % 9) * 18px)) rotate(calc(220deg + var(--i) * 31deg))}}.scanner-panel,.attendee-panel,.managed-ticket-panel,.vendor-account-card,.location-capture,.color-picker,.tag-picker{border:1px solid var(--line);border-radius:var(--radius);background:#ffffffb8;gap:12px;padding:14px;display:grid}.vendor-account-card{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.vendor-account-card.pending,.vendor-account-card.rejected,.empty-card.warning{background:#fff8e6;border-color:#f5bb457a}.vendor-account-card.rejected{background:#fff2f0;border-color:#eb575761}.vendor-account-card strong,.vendor-account-card small{display:block}.vendor-account-card strong{color:var(--ink-strong)}.vendor-account-card small{color:var(--muted);margin-top:4px;font-size:13px;font-weight:700;line-height:1.35}.vendor-account-card .rejection-note,.admin-row .rejection-note{color:#8d3b15;margin-top:5px;line-height:1.35}.vendor-account-image{border-radius:var(--radius);color:#fff;place-items:center;width:56px;height:56px;display:grid;overflow:hidden}.vendor-account-image img{object-fit:cover;width:100%;height:100%}.vendor-colour-swatch{border-radius:var(--pill);width:28px;height:28px;box-shadow:0 0 0 3px #ffffffe6, 0 0 0 4px var(--line)}.color-picker{grid-template-columns:minmax(160px,220px) minmax(180px,1fr);align-items:end}.color-field{min-width:0}.color-control{border:1px solid var(--line);min-height:48px;color:var(--ink-strong);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:10px;padding:8px 12px;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex;position:relative;box-shadow:0 1px #20193408}.color-control:hover,.color-field:focus-within .color-control{border-color:#7335f575;box-shadow:0 0 0 3px #7335f51a}.color-control-swatch{background:var(--selected-color,#17b889);width:28px;height:28px;box-shadow:inset 0 0 0 1px #2019341f, 0 0 0 3px #fffffff2, 0 0 0 4px var(--line);border-radius:50%;flex:0 0 28px}.color-control span:not(.color-control-swatch){flex:1;min-width:0;font-weight:800}.color-control svg{color:var(--muted)}.color-control input[type=color]{opacity:0;cursor:pointer;border:0;width:100%;height:100%;position:absolute;inset:0}.tag-picker div{flex-wrap:wrap;gap:8px;display:flex}.tag-picker>span{color:var(--muted);font-size:12px;font-weight:850}.tag-picker button{border:1px solid var(--line);border-radius:var(--pill);min-height:34px;color:var(--muted);background:#ffffffbd;padding:0 11px;font-size:12px;font-weight:850}.tag-picker button.active{color:#fff;background:var(--control-active)}.tag-custom span{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.tag-custom input{min-width:0}.kyc-panel{border:1px solid var(--line);border-radius:var(--radius);background:#ffffffb8;gap:18px;padding:18px;display:grid}.kyc-header{gap:6px;max-width:760px;display:grid}.kyc-panel h3{color:var(--ink-strong);margin:0;font-size:18px;line-height:1.15}.kyc-panel p{color:var(--muted);margin:0;font-size:13px;font-weight:700;line-height:1.45}.kyc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.kyc-document-card{border:1px solid var(--line);border-radius:var(--radius);background:#ffffffc2;min-height:116px;position:relative;overflow:hidden}.kyc-document-target{min-height:116px;color:inherit;cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;padding:16px;display:grid}.kyc-document-card strong,.kyc-document-card span,.kyc-document-card small{min-width:0}.kyc-document-card strong{color:var(--ink-strong);font-size:14px;line-height:1.2;display:block}.kyc-document-card span,.kyc-document-card small{color:var(--muted);margin-top:5px;font-size:13px;font-weight:700;line-height:1.35;display:block}.kyc-document-card input[type=file]{display:none}.kyc-document-card:hover,.upload-picker:hover{background:#f7f4fbfa;border-color:#7335f55c}.kyc-remove-button{position:absolute;bottom:12px;right:14px}.scanner-panel strong,.attendee-panel strong{color:var(--ink-strong)}.scanner-panel>div,.attendee-panel .section-head>div,.admin-row>div{min-width:0}.scanner-panel .eyebrow,.scanner-panel strong,.scanner-panel small{display:block}.scanner-panel>div:first-child{gap:5px;display:grid}.scanner-panel small,.muted-line{color:var(--muted);font-size:12px}.scanner-form{grid-template-columns:minmax(0,1fr) auto auto;gap:10px;display:grid}.scanner-form input,.location-capture input{min-width:0}.scanner-result{border-radius:var(--pill);width:fit-content;padding:8px 10px;font-size:12px;font-weight:800;display:inline-flex}.scanner-result.success{color:#087a56;background:#17b88924}.scanner-result.error{color:#9f2f24;background:#ff735f24}.scanner-video{object-fit:cover;border:1px solid var(--line);border-radius:var(--radius);background:#151225;width:100%;max-height:280px}.attendee-row{border:1px solid var(--line);border-radius:var(--radius);background:#ffffffb3;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.attendee-row strong,.attendee-row span{min-width:0;display:block}.attendee-row span{color:var(--muted);font-size:12px}.status-pill{border-radius:var(--pill);color:var(--ink);text-transform:capitalize;white-space:nowrap;background:#27233a14;padding:7px 9px;font-size:11px}.status-pill.confirmed,.status-pill.checked_in{color:#087a56;background:#17b88924}.status-pill.payment_pending{color:#8a5b00;background:#f5bb452e}.status-pill.cancelled{color:#9f2f24;background:#ff735f24}.section-head.compact{margin:0}.location-summary{color:var(--muted);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;font-size:12px;display:grid}.location-summary span{overflow-wrap:anywhere;min-width:0}.location-summary b{color:#087a56;white-space:nowrap}.location-capture.compact{grid-column:1/-1;padding:10px}.map-link-button{align-self:end;height:42px;text-decoration:none}.content-scroll,.sheet-scroll{-webkit-overflow-scrolling:touch;overflow-y:auto}.content-scroll{flex:1;padding:18px 20px 104px}.screen-stack{gap:14px;display:grid}.notification-panel{z-index:15;border:1px solid var(--line);border-radius:var(--radius);background:#fffffff5;gap:10px;width:min(320px,100vw - 28px);padding:14px;display:none;position:absolute;top:78px;right:14px;box-shadow:0 18px 48px #27233a2e}.notification-panel.open{display:grid}.notification-panel strong{color:var(--ink-strong)}.notification-panel>span{color:var(--muted);font-size:12px}.notification-item{border-radius:var(--radius);background:var(--soft);color:var(--ink);font-size:13px;font:inherit;text-align:left;cursor:pointer;border:0;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:10px;display:grid}.notification-item:hover{background:#27233a1a}.notification-item.unread{background:linear-gradient(135deg,#2ec4b624,#6d4df21a);box-shadow:inset 3px 0 #2ec4b6}.notification-item.ticket_confirmed svg,.notification-item.tone-success svg{color:#169b7a}.notification-item.payment_requested svg,.notification-item.tone-warning svg{color:#a26a00}.notification-item.booking_cancelled svg,.notification-item.tone-error svg{color:#b23b36}.notification-item.booking_updated svg,.notification-item.tone-info svg{color:#6d4df2}.notification-item.ticket_confirmed.unread{background:#2ec4b624;box-shadow:inset 3px 0 #2ec4b6}.notification-item.payment_requested.unread{background:#f5bb4529;box-shadow:inset 3px 0 #f5bb45}.notification-item.booking_cancelled.unread{background:#fff2f0eb;box-shadow:inset 3px 0 #b23b36}.notification-item.booking_updated.unread{background:#6d4df21a;box-shadow:inset 3px 0 #6d4df2}.profile-completion-banner,.profile-form-callout,.profile-photo-picker,.brand-image-picker,.listing-image-picker{border-radius:var(--radius);background:#f7f4fbeb;border:1px solid #7335f52e}.profile-completion-banner{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;display:grid}.profile-completion-banner strong,.profile-form-callout strong,.profile-photo-picker strong,.brand-image-picker strong,.listing-image-picker strong{color:var(--ink-strong);font-size:13px;display:block}.profile-photo-picker strong span{color:var(--muted);font-size:11px;font-weight:800}.profile-completion-banner p,.profile-form-callout span,.profile-photo-picker p,.brand-image-picker p,.listing-image-picker p{color:var(--muted);margin:4px 0 0;font-size:13px;font-weight:700;line-height:1.4}.profile-form-callout{gap:4px;padding:12px;display:grid}.profile-photo-picker,.brand-image-picker,.listing-image-picker{position:relative;overflow:hidden}.profile-photo-target,.upload-picker-target{color:inherit;cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 58px 10px 10px;display:grid}.profile-photo-target.has-photo{grid-template-columns:auto minmax(0,1fr)}.profile-photo-target .small-button,.upload-picker-target .small-button{white-space:nowrap;flex:none}.profile-photo-preview,.brand-image-preview,.listing-image-preview{aspect-ratio:1;border-radius:var(--radius);width:44px;height:44px;color:var(--muted);background:#ffffffd1;place-items:center;display:grid;overflow:hidden}.profile-avatar-editor{cursor:pointer;width:58px;height:58px;display:block;position:relative}.profile-avatar-editor input[type=file]{display:none}.profile-avatar-editor .avatar{width:100%;height:100%}.profile-avatar-edit-badge{color:#302a45;background:#fff;border:2px solid #302a45;border-radius:999px;place-items:center;width:20px;height:20px;transition:transform .18s,box-shadow .18s;display:grid;position:absolute;bottom:-1px;right:-1px;box-shadow:0 2px 8px #20193433}.profile-avatar-editor:hover .profile-avatar-edit-badge,.profile-avatar-editor:focus-within .profile-avatar-edit-badge{transform:translateY(-1px);box-shadow:0 5px 12px #2019343d}.profile-photo-error{color:#ffd7d7!important}.profile-photo-preview{border-radius:50%;position:relative}.photo-edit-badge{color:#302a45;background:#fff;border:2px solid #fff;border-radius:999px;place-items:center;width:20px;height:20px;display:grid;position:absolute;bottom:-2px;right:-2px;box-shadow:0 2px 8px #2019342e}.profile-photo-preview img,.brand-image-preview img,.listing-image-preview img,.avatar img{object-fit:cover;border-radius:inherit;width:100%;height:100%}.upload-picker input[type=file]{display:none}.upload-remove-button{position:absolute;top:50%;right:12px;transform:translateY(-50%)}.hero-panel,.operator-panel,.profile-panel{border-radius:var(--radius);color:#fff;background:linear-gradient(135deg,#27233af0,#151225eb);padding:18px;overflow:hidden}.hero-panel{grid-template-columns:1fr 112px;align-items:center;gap:12px;min-height:218px;display:grid;position:relative}.hero-dismiss{z-index:2;border-radius:var(--pill);color:#fff;background:#ffffff21;border:1px solid #ffffff2e;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:12px;right:12px}.hero-dismiss:hover{background:#ffffff38}.hero-copy{z-index:1;position:relative}.eyebrow{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800}.hero-panel .eyebrow,.operator-panel .eyebrow{color:#ffffffb8}h1,h2,h3,p{margin:0}h1{color:#fff;margin-top:8px;font-size:30px;line-height:1.05}h2{color:var(--ink-strong);font-size:22px;line-height:1.1}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hero-panel p,.operator-panel p{color:#ffffffc2;margin-top:10px;font-size:14px;line-height:1.36}.hero-ticket{border-radius:var(--radius);color:#211d34;background:radial-gradient(circle at 20% 18%,#ffffff6b,#0000 20%),linear-gradient(145deg,#fff8d8,#a9f0db 52%,#d4c3ff);align-content:center;justify-items:center;gap:8px;min-height:150px;display:grid;position:relative;transform:rotate(4deg);box-shadow:0 18px 42px #00000038}.hero-ticket strong,.hero-ticket span{display:block}.hero-ticket span{color:#5d556e;font-size:12px}.hero-ticket-notch{background:#211d34;border-radius:50%;width:26px;height:26px;position:absolute;top:calc(50% - 13px)}.hero-ticket-notch.left{left:-13px}.hero-ticket-notch.right{right:-13px}.search-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);grid-template-columns:22px 1fr auto;align-items:center;gap:8px;padding:11px 12px;display:grid}.search-row input,.field-label input,.field-label select{width:100%;color:var(--ink);background:0 0;border:0;outline:0}.cart-chip,.small-button,.primary-button{border-radius:var(--pill);justify-content:center;align-items:center;gap:7px;font-weight:800;display:inline-flex}.cart-chip{color:#fff;background:var(--mint);min-width:44px;height:32px}.segmented-scroll{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.segmented-scroll button{border-radius:var(--pill);min-height:36px;color:var(--muted);border:1px solid var(--line);background:#ffffffad;flex:none;padding:0 13px;font-size:14px;font-weight:750}.segmented-scroll button.active,.tab-bar button.active{color:var(--control-active-text);background:var(--control-active)}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.metric-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);align-content:space-between;gap:7px;min-height:92px;padding:12px;display:grid}.metric-card span{color:var(--muted);font-size:12px}.metric-card strong{color:var(--ink-strong);font-size:17px}.section-head{justify-content:space-between;align-items:end;display:flex}.section-head h2{margin-top:5px}.ticket-list,.vendor-list,.occurrence-list{gap:10px;display:grid}.ticket-list{grid-template-columns:repeat(auto-fit,minmax(310px,1fr))}.vendor-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.admin-section,.admin-list{gap:10px;display:grid}.list-search{border:1px solid var(--line);border-radius:var(--radius);min-height:44px;color:var(--muted);background:#ffffffd1;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;padding:0 12px;display:grid}.list-search input{min-width:0;color:var(--ink-strong);font:inherit;background:0 0;border:0;outline:0;font-weight:800}.list-search input::placeholder{color:#756d84b8}.admin-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:13px;display:grid}.admin-row.selectable-row{text-align:left;cursor:pointer;width:100%}.admin-row.selectable-row.active{background:#f7f4fbf5;border-color:#7335f56b}.admin-row .ticket-visual{width:54px;min-height:54px}.admin-row .ticket-visual:after,.admin-row .ticket-visual-map{display:none}.admin-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;display:flex}.see-more-button{justify-self:start;min-width:132px}.modal-backdrop{z-index:80;background:#100c20a3;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.admin-reject-modal{border:1px solid var(--line);background:var(--paper);border-radius:18px;gap:16px;width:min(560px,100%);padding:20px;display:grid;box-shadow:0 24px 80px #14102447}.admin-reject-modal h2,.admin-reject-modal p{margin:0}.admin-reject-modal p{color:var(--muted);margin-top:6px;line-height:1.4}.admin-reject-modal .admin-actions{justify-content:flex-end}.ticket-edit-backdrop{align-items:stretch;overflow:auto}.ticket-edit-modal{border:1px solid var(--line);background:var(--paper);border-radius:18px;align-self:center;gap:14px;width:min(860px,100%);max-height:calc(100vh - 44px);padding:20px;display:grid;overflow:auto;box-shadow:0 24px 80px #14102447}.ticket-edit-header{justify-content:space-between;gap:16px;display:flex}.ticket-edit-header h2,.ticket-edit-header p{margin:0}.ticket-edit-header p{color:var(--muted);margin-top:6px;line-height:1.4}.change-summary{border-radius:var(--radius);color:#176b55;background:#e8fff7db;border:1px solid #17b8893d;gap:5px;padding:12px;font-size:13px;font-weight:750;display:grid}.change-summary strong{color:#114f40}.admin-row strong,.admin-row span{overflow-wrap:anywhere;min-width:0;display:block}.admin-row span{color:var(--muted);margin-top:4px;font-size:13px;font-weight:700;line-height:1.32}.avatar.small{width:34px;height:34px;font-size:12px}.role-pill{border-radius:var(--pill);color:var(--muted);background:var(--soft);text-transform:capitalize;padding:6px 9px;font-size:11px}.role-pill.admin{color:#1e654d;background:#17b88924}.role-pill.vendor{color:#4c2db8;background:#7335f51f}.skeleton-row{background:linear-gradient(90deg,#f5f2fab8,#fffffff5,#f5f2fab8) 0 0/220% 100%;min-height:62px;animation:1.15s ease-in-out infinite skeleton-shimmer}.ticket-card,.route-card{border:1px solid var(--line);border-radius:var(--radius);width:100%;min-width:0;color:inherit;text-align:left;background:var(--paper);align-items:stretch;gap:12px;padding:12px;display:grid}.ticket-card{grid-template-columns:96px 1fr}.route-card{grid-template-columns:84px 1fr 24px;align-items:center}.ticket-visual{border-radius:var(--radius);color:#fff;place-items:center;min-height:112px;display:grid;position:relative;overflow:hidden}.ticket-visual:after{content:"";border-radius:var(--radius);border:1px dashed #ffffff8f;position:absolute;inset:10px}.ticket-visual.has-image:after{border-color:#ffffffb8}.ticket-visual.has-image img{object-fit:cover;width:100%;height:100%}.ticket-visual svg{z-index:1;position:relative}.ticket-visual-map{opacity:.28;position:absolute;inset:0}.ticket-visual-map span{background:#ffffff9e;border-radius:999px;width:130px;height:24px;position:absolute;transform:rotate(-26deg)}.ticket-visual-map span:first-child{top:18px;left:-34px}.ticket-visual-map span:nth-child(2){top:56px;right:-46px}.ticket-visual-map span:nth-child(3){bottom:14px;left:-18px}.tone-mint{background:linear-gradient(135deg,#0d9c75,#7ddfc6)}.tone-coral{background:linear-gradient(135deg,#e84f3f,#ffb199)}.tone-amber{background:linear-gradient(135deg,#c78313,#ffd66e)}.tone-violet{background:linear-gradient(135deg,#5c25d5,#bda4ff)}.tone-blue{background:linear-gradient(135deg,#255ed5,#9ab8ff)}.tone-leaf{background:linear-gradient(135deg,#3f9228,#b7e99b)}.ticket-card-body{min-width:0}.ticket-card-top,.ticket-meta,.total-box span,.total-box strong{justify-content:space-between;align-items:center;gap:8px;display:flex}.ticket-card-top span,.ticket-meta span{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:inline-flex}.ticket-card h3{color:var(--ink-strong);margin-top:7px;font-size:17px;line-height:1.15}.ticket-card p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:6px;font-size:13px;line-height:1.3;display:-webkit-box;overflow:hidden}.ticket-card-skeleton{pointer-events:none}.skeleton-block,.skeleton-line{border-radius:var(--radius);background:linear-gradient(90deg,#27233a12,#27233a21,#27233a12) 0 0/220% 100%;animation:1.35s ease-in-out infinite skeleton-shimmer;position:relative;overflow:hidden}.skeleton-block:after,.skeleton-line:after{content:"";background:linear-gradient(90deg,#0000,#ffffff61,#0000);animation:1.35s ease-in-out infinite skeleton-sheen;position:absolute;inset:0;transform:translate(-100%)}.skeleton-block{min-height:112px}.skeleton-line{border-radius:var(--pill);height:13px;display:block}.skeleton-heading{width:min(260px,66vw);height:28px;margin-top:5px}.skeleton-kicker{width:86px}.skeleton-price{width:42px}.skeleton-title{width:min(280px,82%);height:21px;margin-top:10px}.skeleton-copy{width:100%;margin-top:10px}.skeleton-copy.short{width:68%;margin-top:8px}.skeleton-meta{width:92px;height:12px}.skeleton-meta.wide{width:132px}.spin{animation:.9s linear infinite spin}@keyframes skeleton-shimmer{0%{background-position:220% 0}to{background-position:-220% 0}}@keyframes skeleton-sheen{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.skeleton-block,.skeleton-line,.skeleton-block:after,.skeleton-line:after,.spin{animation:none}}.ticket-meta{flex-wrap:wrap;justify-content:flex-start;margin-top:10px}.route-card-main{min-width:0}.route-card-main strong,.route-card-main span{display:block}.route-card-main strong{color:var(--ink-strong)}.route-card-main>span,.vendor-card span,.alert-card span,.settings-row span,.empty-state span,.booking-card p,.builder-preview span{color:var(--muted);font-size:13px;line-height:1.32}.stop-pills{gap:6px;margin-top:9px;display:flex;overflow-x:auto}.stop-pills span{border-radius:var(--pill);background:var(--soft);color:var(--muted);flex:none;padding:5px 8px;font-size:11px;font-weight:750}.operator-panel{gap:14px;display:grid}.operator-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.operator-panel h2{color:#fff}.operator-panel p{color:#ffffffc7}.primary-button{color:#fff;background:linear-gradient(135deg, var(--mint), var(--violet));min-height:46px;padding:0 16px}.primary-button.full{width:100%}.small-button{color:#fff;background:var(--control-active);min-height:36px;padding:0 12px}.small-button.contrast{color:var(--ink);background:var(--soft)}.small-button.danger{color:#8d1f1f;background:#fff2f0}.primary-button:disabled,.small-button:disabled,.cart-chip:disabled{cursor:not-allowed;opacity:.58}.vendor-card,.alert-card,.settings-row,.checkout-line,.occurrence-card,.booking-card,.empty-state,.builder-preview{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.vendor-card,.alert-card,.settings-row,.checkout-line,.occurrence-card{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:13px;display:grid}.vendor-card>div:nth-child(2){min-width:0}.vendor-card strong,.vendor-card span{overflow-wrap:anywhere;display:block}.vendor-card span{margin-top:4px}.vendor-dot{border-radius:var(--pill);width:34px;height:34px}.profile-panel{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;display:grid}.profile-panel h2{color:#fff}.profile-panel span{color:#ffffffbd;overflow-wrap:anywhere;margin-top:4px;font-size:13px;display:block}.account-screen{max-width:920px}.account-panel,.account-form{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.account-panel{justify-content:space-between;align-items:center;gap:16px;padding:18px;display:flex}.account-panel h2{margin-top:4px}.account-form{gap:14px;padding:18px;display:grid}.preference-list{color:var(--ink);gap:10px;display:grid}.preference-list label{border:1px solid var(--line);border-radius:var(--radius);background:var(--soft);align-items:center;gap:10px;min-height:42px;padding:10px 12px;font-weight:800;display:flex}.preference-list input{flex:none;width:18px;height:18px}.avatar{color:#211d34;background:linear-gradient(135deg,#fff8d8,#a9f0db);border-radius:50%;place-items:center;width:58px;height:58px;font-weight:900;display:grid;overflow:hidden}.tab-avatar{color:#211d34;background:linear-gradient(135deg,#fff8d8,#a9f0db);border-radius:999px;place-items:center;width:22px;height:22px;font-size:9px;font-weight:900;line-height:1;display:grid;overflow:hidden}.tab-avatar img{object-fit:cover;width:100%;height:100%}.empty-state{text-align:center;align-content:center;place-items:center;gap:8px;min-height:220px;padding:22px;display:grid}.empty-state.compact{min-height:180px}.tab-bar{z-index:5;border-radius:var(--radius);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#fffc;border:1px solid #ffffffc2;grid-template-columns:repeat(5,1fr);gap:6px;padding:7px;display:grid;position:absolute;bottom:12px;left:12px;right:12px;box-shadow:0 16px 42px #27233a29}.tab-bar button{border-radius:var(--radius);min-width:0;min-height:54px;color:var(--muted);background:0 0;align-content:center;justify-items:center;gap:3px;display:grid}.tab-bar span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px;font-weight:800;overflow:hidden}.sheet-scrim{z-index:20;background:#14121eb8;justify-content:center;align-items:flex-end;padding:18px 18px 0;display:flex;position:fixed;inset:0}.bottom-sheet{background:#fffffff0;border-radius:18px 18px 0 0;flex-direction:column;width:min(100%,860px);max-height:min(90vh,820px);display:flex;overflow:hidden;box-shadow:0 22px 70px #00000038}.sheet-scrim.full-screen-flow{align-items:stretch;padding:0}.bottom-sheet.checkout-full-screen{background:#fffffffa;border-radius:0;width:100%;height:100dvh;max-height:none}.checkout-full-screen .sheet-header{min-height:72px;padding:max(14px, env(safe-area-inset-top)) 20px 14px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffe6}.checkout-full-screen .sheet-scroll{width:min(100%,960px);padding:22px 20px max(36px, env(safe-area-inset-bottom));margin:0 auto}.sheet-handle{border-radius:var(--pill);background:#27233a2e;width:42px;height:5px;margin:9px auto 4px}.sheet-header{border-bottom:1px solid var(--line);grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;padding:6px 14px 10px;display:grid}.sheet-header strong{text-align:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sheet-scroll{padding:18px}.detail-hero{grid-template-columns:148px 1fr;align-items:center;gap:18px;margin-bottom:16px;display:grid}.detail-hero .ticket-visual{min-height:160px}.detail-hero h2{margin-top:5px}.detail-hero p{color:var(--muted);margin-top:7px;font-size:14px;line-height:1.34}.subhead{color:var(--ink-strong);margin:18px 0 9px;font-size:15px}.selected-ticket-box,.checkout-step,.checkout-choice,.checkout-auth-form,.payment-explainer{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.selected-ticket-box{grid-template-columns:1fr auto;align-items:center;gap:12px;margin-bottom:12px;padding:13px;display:grid}.selected-ticket-box strong,.selected-ticket-box small{display:block}.selected-ticket-box small,.checkout-step small,.payment-explainer span,.section-note{color:var(--muted);font-size:13px;line-height:1.35}.selected-ticket-box b{color:var(--ink-strong);font-size:18px}.quantity-control{grid-auto-flow:column;align-items:center;gap:6px;display:inline-grid}.quantity-control strong{text-align:center;min-width:24px;color:var(--ink-strong)}.quantity-control.compact{justify-content:end}.icon-quantity{border-radius:var(--pill);width:34px;height:34px;color:var(--ink);background:var(--soft);border:1px solid var(--line);place-items:center;display:inline-grid}.icon-quantity.danger{color:#8d1f1f;background:#fff2f0}.icon-quantity:disabled{cursor:not-allowed;opacity:.45}.detail-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.occurrence-card{grid-template-columns:1fr auto}.occurrence-card.selected{background:#effaf6;border-color:#17b88961}.occurrence-card strong,.occurrence-card span{display:block}.occurrence-card span{color:var(--muted);margin-top:3px;font-size:12px}.occurrence-skeleton{pointer-events:none}.empty-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);gap:4px;padding:14px;display:grid}.empty-card strong{color:var(--ink-strong)}.empty-card span{color:var(--muted);font-size:13px;line-height:1.35}.skeleton-title.small{width:min(260px,76%);height:16px;margin:0 0 8px}.skeleton-action{width:86px;height:34px}.section-note{margin:-2px 0 12px}.sticky-checkout{margin-top:4px;position:sticky;bottom:0;box-shadow:0 -8px 24px #ffffffd1}.checkout-step{gap:5px;padding:14px;display:grid}.checkout-step strong,.checkout-choice strong,.checkout-auth-form strong{color:var(--ink-strong)}.checkout-choice,.checkout-auth-form{gap:13px;padding:14px;display:grid}.checkout-choice small,.checkout-auth-form small{color:var(--muted);margin-top:5px;font-size:13px;line-height:1.35;display:block}.checkout-choice-actions{flex-wrap:wrap;gap:9px;display:flex}.checkout-line-actions{justify-items:end;gap:8px;display:grid}.payment-explainer{background:#fff8d8;grid-template-columns:auto 1fr;align-items:start;gap:9px;padding:12px;display:grid}.timeline{gap:0;margin-bottom:14px;display:grid}.timeline-row{grid-template-columns:24px 1fr;gap:8px;padding:0 0 16px;display:grid;position:relative}.timeline-row:before{content:"";background:var(--line);width:2px;position:absolute;top:16px;bottom:0;left:8px}.timeline-row:last-child:before{display:none}.timeline-dot{background:var(--mint);width:18px;height:18px;box-shadow:0 0 0 1px var(--line);border:4px solid #fff;border-radius:50%}.timeline-row strong,.timeline-row span{display:block}.timeline-row span{color:var(--muted);margin-top:3px;font-size:12px}.form-stack{gap:11px;display:grid}.form-grid{align-items:start;gap:11px;display:grid}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field-label{color:var(--muted);grid-template-rows:18px auto;align-items:start;gap:8px;font-size:11px;font-weight:800;line-height:1.2;display:grid}.field-label input,.field-label select,.field-label textarea{border:1px solid var(--line);border-radius:var(--radius);min-height:48px;color:var(--ink-strong);box-sizing:border-box;font:inherit;background:#ffffffc7;padding:0 12px;font-weight:800}.field-label textarea{resize:vertical;min-height:92px;padding:12px;line-height:1.35}.phone-field{min-width:0}.phone-control{border:1px solid var(--line);border-radius:var(--radius);background:#ffffffc7;grid-template-columns:minmax(108px,max-content) minmax(0,1fr);align-items:center;min-height:48px;display:grid;overflow:hidden}.phone-control select,.phone-control input{background:0 0;border:0;border-radius:0;width:100%;min-height:46px}.phone-control select{border-right:1px solid var(--line);text-overflow:ellipsis;width:auto;max-width:154px;padding-right:24px;font-size:11px}.phone-country option[value=ZM]{font-weight:900}.phone-hint{color:var(--muted);margin-top:-1px;font-size:10px;font-weight:750;line-height:1.35}.phone-hint.error{color:#b42318}.phone-field.invalid input,.phone-field.invalid select,.phone-field.invalid .phone-control{background:#fff6f4eb;border-color:#b423186b}.mode-switch,.preset-row,.day-picker{gap:8px;display:flex;overflow-x:auto}.mode-switch{border:1px solid var(--line);border-radius:var(--radius);background:#f7f4fbf5;margin:0 0 12px;padding:8px;overflow:visible}.mode-switch button{flex:1 1 0}.mode-switch button,.preset-row button,.day-picker button{border-radius:var(--pill);min-height:36px;color:var(--muted);border:1px solid var(--line);background:#ffffffb8;flex:none;padding:0 12px;font-size:12px;font-weight:850}.mode-switch button.active,.preset-row button.active,.day-picker button.active{color:#fff;background:var(--control-active)}.builder-block{border:1px solid var(--line);border-radius:var(--radius);background:#ffffff94;gap:10px;padding:12px;display:grid}.builder-block-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.builder-block-head strong{color:var(--ink-strong)}.builder-list{gap:9px;display:grid}.ticket-group-editor .builder-block-head>div{gap:3px;display:grid}.ticket-group-editor .builder-block-head span{color:var(--muted);font-size:13px;line-height:1.35}.ticket-group-row,.ticket-group-option{border:1px solid var(--line);border-left:4px solid var(--group-color,#17b889);background:#fff;border-radius:8px;align-items:center;gap:12px;display:flex}.ticket-group-row{padding:12px 44px 12px 12px;position:relative}.ticket-group-row .remove-button{position:absolute;top:12px;right:10px}.ticket-group-mark{color:#fff;background:var(--group-color,#17b889);border-radius:50%;flex:0 0 34px;place-items:center;width:34px;height:34px;font-weight:900;display:grid}.ticket-group-options,.group-add-list{gap:8px;display:grid}.ticket-group-option{padding:10px}.ticket-group-option>div{flex:1;gap:3px;min-width:0;display:grid}.ticket-group-option span,.group-chip{color:var(--muted);font-size:13px}.ticket-group-option b{color:var(--ink);white-space:nowrap}.group-add-list{min-width:min(320px,100%)}.group-chip{min-height:26px;color:var(--group-color,#17b889);background:color-mix(in srgb, var(--group-color,#17b889) 12%, #fff);border-radius:999px;align-items:center;padding:0 9px;font-weight:800;display:inline-flex}.schedule-row,.stop-editor-row{border:1px solid var(--line);border-radius:var(--radius);background:#ffffffb8;align-items:start;gap:8px;padding:10px;display:grid}.schedule-row{grid-template-columns:minmax(0,1fr) minmax(120px,.75fr) 34px}.event-date-time-row{grid-template-columns:minmax(170px,1fr) minmax(120px,.7fr) minmax(140px,.8fr)}.stop-editor-row{grid-template-columns:28px minmax(130px,1.1fr) minmax(100px,.8fr) minmax(140px,1fr) minmax(110px,.7fr) 34px}.movie-showtime-row{border:1px solid var(--line);border-left:5px solid var(--group-color,#17b889);border-radius:var(--radius);background:#ffffffc2;grid-template-columns:34px minmax(0,1fr) 34px;align-items:start;gap:10px;padding:12px;display:grid}.movie-showtime-fields{grid-template-columns:minmax(180px,1.4fr) minmax(140px,.9fr) minmax(110px,.7fr) minmax(110px,.7fr) minmax(110px,.7fr) minmax(100px,.7fr) minmax(130px,.8fr);align-items:start;gap:10px;display:grid}.stop-index{border-radius:var(--pill);color:#fff;background:var(--control-active);align-self:center;place-items:center;width:28px;height:28px;font-size:12px;font-weight:900;display:grid}.small-button.subtle{min-height:34px;color:var(--ink);background:var(--soft)}.remove-button{background:var(--soft);align-self:center;width:34px;height:34px}.checkout-line{grid-template-columns:1fr auto}.checkout-line strong,.checkout-line span{display:block}.checkout-line span{margin-top:3px}.total-box{border-radius:var(--radius);color:#fff;background:#27233a;gap:8px;padding:14px;display:grid}.total-box span{color:#ffffffbd}.booking-card{grid-template-columns:72px 1fr;align-items:center;gap:12px;padding:14px;display:grid}.booking-card.large{text-align:center;grid-template-columns:1fr;justify-items:center;padding:22px}.qr-box{border-radius:var(--radius);background:linear-gradient(90deg,#111 2px,#0000 2px) 0 0/8px 8px,linear-gradient(#111 2px,#0000 2px) 0 0/8px 8px,#fff;place-items:center;width:64px;height:64px;display:grid}.qr-box.pending{color:var(--ink);background:#fff8d8}.qr-box.cancelled{color:#8d1f1f;background:#fff2f0}.booking-card.large .qr-box{width:132px;height:132px}.booking-card h3{color:var(--ink-strong);margin:4px 0 5px;font-size:17px}.booking-card code{border-radius:var(--radius);background:var(--soft);color:var(--ink);white-space:pre-wrap;word-break:break-word;margin-top:12px;padding:10px;display:block}.payment-wait{border-radius:var(--radius);color:var(--ink);background:#fff8d8;border:1px solid #f5bb4557;gap:7px;margin-top:12px;padding:12px;display:grid}.payment-wait.error{color:#8d1f1f;background:#fff2f0;border-color:#c628283d}.payment-status-button{margin-top:12px}.payment-status-button:disabled{opacity:1}.payment-wait span{justify-content:center;align-items:center;gap:7px;font-weight:900;display:inline-flex}.payment-wait small{color:inherit;opacity:.76;font-weight:750;line-height:1.35}.builder-preview{padding:14px}.builder-preview strong,.builder-preview span{display:block}.builder-preview span{margin-top:5px}.notice-banner{border-radius:var(--radius);border:1px solid var(--line);min-height:48px;color:var(--ink);background:var(--paper);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-bottom:14px;padding:10px 12px;display:grid}.notice-banner span{overflow-wrap:anywhere;min-width:0;font-size:13px;line-height:1.34}.notice-banner .icon-button{background:#ffffffad;width:32px;height:32px}.notice-banner.error{color:#8d1f1f;background:#fff2f0;border-color:#c6282842}.notice-banner.success{color:#0d6f57;background:#effaf6;border-color:#0d9c753d}.notice-banner.info{color:#234c9e;background:#f1f5ff;border-color:#4d82ff3d}@media (width>=760px){.phone-surface{grid-template-rows:76px minmax(0,1fr);grid-template-columns:236px minmax(0,1fr);display:grid}.app-header{grid-column:1/-1;grid-template-columns:minmax(0,1fr) 48px;min-height:76px;padding:14px 28px}.brand-lockup{justify-content:flex-start}.brand-mark{width:42px;height:42px}.brand-lockup strong{font-size:18px}.brand-lockup span{font-size:13px}.content-scroll{grid-area:2/2;padding:24px 34px 36px}.screen-stack{gap:18px}.tab-bar{box-shadow:none;background:#ffffff9e;border-width:0 1px 0 0;border-radius:0;flex-direction:column;grid-area:2/1;align-self:stretch;gap:8px;padding:22px 14px;display:flex;position:static}.tab-bar button{grid-template-columns:24px 1fr;align-content:center;justify-items:start;min-height:48px;padding:0 14px}.tab-bar span{font-size:13px}.hero-panel{grid-template-columns:minmax(0,1fr) minmax(190px,300px);min-height:260px;padding:30px}h1{max-width:740px;font-size:46px}.hero-panel p{max-width:700px;font-size:17px}.hero-ticket{min-height:190px}.metric-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}.ticket-card{grid-template-columns:116px 1fr;min-height:168px}.route-card{grid-template-columns:112px 1fr 24px;min-height:136px}.operator-panel{grid-template-columns:minmax(0,1fr) auto;align-items:center}}@media (width<=760px){.schedule-row,.event-date-time-row,.stop-editor-row,.movie-showtime-row,.movie-showtime-fields,.scanner-form,.coordinate-grid{grid-template-columns:1fr}.stop-index,.remove-button{justify-self:start}}@media (width<=520px){.app-shell{padding:0}.phone-surface{border:0;width:100%;height:100vh;min-height:100vh}.hero-panel{grid-template-columns:1fr}.hero-ticket{min-height:112px;transform:rotate(0)}.ticket-card{grid-template-columns:84px 1fr}.ticket-visual{min-height:104px}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card{padding:10px}.form-grid.two,.phone-control,.kyc-grid{grid-template-columns:1fr}.profile-completion-banner,.profile-photo-picker,.brand-image-picker{grid-template-columns:1fr;align-items:stretch}.profile-photo-actions,.brand-image-actions{justify-content:flex-start}.route-card{grid-template-columns:72px 1fr 20px}.sheet-scrim{align-items:flex-end;padding:0}.bottom-sheet{border-radius:18px 18px 0 0;width:100%}.detail-hero{grid-template-columns:96px 1fr;gap:12px}.detail-hero .ticket-visual{min-height:112px}.selected-ticket-box,.occurrence-card,.checkout-line{grid-template-columns:1fr}.quantity-control,.checkout-line-actions{justify-content:start;justify-items:start}.checkout-choice-actions .primary-button,.checkout-choice-actions .small-button{width:100%}}
