:root{--primary-color: #2563eb;--secondary-color: #059669;--success-color: #10b981;--error-color: #ef4444;--warning-color: #f59e0b;--text-primary: #1f2937;--text-secondary: #6b7280;--text-light: #9ca3af;--bg-primary: #ffffff;--bg-secondary: #f9fafb;--bg-card: #ffffff;--border-color: #e5e7eb;--border-radius: 12px;--shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 24px;--touch-target: 60px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-main);background:var(--bg-secondary);color:var(--text-primary);line-height:1.5;font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;padding-bottom:100px}.hidden{display:none !important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,0.95);display:flex;align-items:center;justify-content:center;z-index:1000}.loading-spinner{text-align:center}.spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto var(--spacing-md)}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.loading-dots::after{content:'';animation:dots 1.5s steps(5, end) infinite}@keyframes dots{0%,20%{content:''}40%{content:'.'}60%{content:'..'}80%,100%{content:'...'}}.message-bar{position:fixed;top:0;left:0;right:0;padding:var(--spacing-md);background:var(--success-color);color:white;text-align:center;font-weight:500;z-index:999;transform:translateY(-100%);transition:transform 0.3s ease}.message-bar.show{transform:translateY(0)}.message-bar.error{background:var(--error-color)}.message-bar.warning{background:var(--warning-color)}.site-header{background:var(--bg-primary);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:100}.header-content{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);max-width:600px;margin:0 auto}.supplier-info{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);width:100%;text-align:center}@media (min-width: 640px){.supplier-info{flex-direction:row;text-align:left}}.supplier-logo{max-width:280px;height:60px;object-fit:contain}.supplier-name{font-size:clamp(24px, 7vw, 48px);font-weight:600;color:var(--text-primary);margin:0;text-align:center;line-height:1.2}.main-content{max-width:600px;margin:0 auto;padding:var(--spacing-lg) var(--spacing-md)}.availabilities-section{margin-bottom:var(--spacing-xl)}.loading-message{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary);font-size:var(--font-size-lg)}.no-availabilities{text-align:center;padding:var(--spacing-xl)}.no-availabilities-content .no-availabilities-emoji{font-size:48px;display:block;margin-bottom:var(--spacing-md)}.no-availabilities-content h3{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm);color:var(--text-primary)}.no-availabilities-content p{color:var(--text-secondary)}.availabilities-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.availability-card{background:var(--bg-card);border-radius:var(--border-radius);padding:var(--spacing-md);box-shadow:var(--shadow);border:1px solid var(--border-color);transition:all 0.2s ease;width:100%}.availability-card:active{transform:scale(0.98);box-shadow:0 2px 4px -1px rgba(0,0,0,0.1)}.title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm);gap:var(--spacing-md)}.availability-title{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:var(--spacing-sm);flex:1;min-width:0}.description-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md)}.availability-description-section{flex:1;min-width:0}.availability-emoji{font-size:var(--font-size-xl)}.availability-details{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-xs)}.availability-price{font-size:var(--font-size-xl);font-weight:700;color:var(--primary-color);white-space:nowrap}.availability-description{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.4;margin-bottom:var(--spacing-xs)}.quantity-controls{display:flex;align-items:center;gap:var(--spacing-sm)}.quantity-btn{width:48px;height:48px;border:2px solid var(--primary-color);background:var(--bg-primary);color:var(--primary-color);border-radius:50%;font-size:var(--font-size-lg);font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s ease;user-select:none;-webkit-tap-highlight-color:transparent}.quantity-btn:hover{background:var(--primary-color);color:white}.quantity-btn:active{transform:scale(0.95)}.quantity-btn:disabled{opacity:0.4;cursor:not-allowed;transform:none}.quantity-display{min-width:48px;text-align:center;font-size:var(--font-size-lg);font-weight:600;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius);background:var(--bg-secondary);transition:all 0.2s ease}.quantity-display.has-items{background:var(--primary-color);color:white}.cart-footer{position:fixed;bottom:0;left:0;right:0;background:var(--bg-primary);border-top:1px solid var(--border-color);box-shadow:0 -4px 6px -1px rgba(0,0,0,0.1);z-index:200}.cart-summary{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);max-width:600px;margin:0 auto;gap:var(--spacing-md)}.cart-info{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs);font-weight:600;color:var(--text-primary);min-width:0}.cart-items-summary{display:flex;flex-direction:column;gap:var(--spacing-xs);font-size:var(--font-size-sm);line-height:1.3}.cart-item-group{display:flex;justify-content:space-between;align-items:center;color:var(--text-secondary)}.cart-item-name{font-weight:500;color:var(--text-primary);flex:1;min-width:0}.cart-item-quantity{opacity:0.8;text-align:right;flex:0 0 auto;min-width:60px;margin-left:var(--spacing-md)}.cart-total-line{display:flex;align-items:center;justify-content:space-between;font-size:var(--font-size-base)}.cart-bottom-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-top:var(--spacing-sm);padding:var(--spacing-sm) 0;border-top:1px solid var(--border-color)}.cart-bottom-row .cart-total-line{flex:1}.total-amount{margin-left:var(--spacing-xs);font-weight:700}.clear-cart-btn{background:none;border:none;font-size:var(--font-size-lg);cursor:pointer;padding:var(--spacing-xs);border-radius:4px;transition:all 0.2s ease;-webkit-tap-highlight-color:transparent}.clear-cart-btn:hover{background:var(--bg-secondary)}.payment-section{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;gap:var(--spacing-xs);min-width:160px}.checkout-btn{height:48px;padding:0 var(--spacing-lg);border:none;border-radius:var(--border-radius);background:var(--primary-color);color:white;font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all 0.2s ease;white-space:nowrap;position:relative;display:flex;align-items:center;gap:var(--spacing-xs)}.dropdown-arrow{font-size:12px;opacity:0.8;transition:transform 0.2s ease}.checkout-btn:hover .dropdown-arrow{transform:translateY(1px)}.checkout-btn:hover{background:#1d4ed8;transform:translateY(-1px)}.checkout-btn:active{transform:translateY(0)}.payment-options{position:absolute;bottom:100%;right:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--shadow);padding:var(--spacing-xs);margin-bottom:var(--spacing-xs);display:flex;flex-direction:column;gap:var(--spacing-xs);min-width:140px;z-index:300}.payment-option{height:40px;padding:0 var(--spacing-md);border:none;border-radius:calc(var(--border-radius) - 2px);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all 0.2s ease;white-space:nowrap;background:var(--bg-secondary);color:var(--text-primary);text-align:left;display:flex;align-items:center;gap:var(--spacing-xs)}.payment-option:hover{background:var(--border-color)}.payment-buttons{display:flex;gap:var(--spacing-sm)}.payment-btn{height:48px;padding:0 var(--spacing-md);border:none;border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all 0.2s ease;display:flex;align-items:center;gap:var(--spacing-xs);-webkit-tap-highlight-color:transparent}.apple-pay-btn{background:#000;color:white}.google-pay-btn{background:#4285f4;color:white}.card-pay-btn{background:var(--primary-color);color:white}.payment-btn:hover{opacity:0.9;transform:translateY(-1px)}.payment-btn:active{transform:translateY(0)}.payment-icon{font-size:var(--font-size-lg)}.payment-form{background:var(--bg-primary);border-top:1px solid var(--border-color);padding:var(--spacing-md);max-width:600px;margin:0 auto;animation:slideUp 0.3s ease}@keyframes slideUp{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.close-btn{width:40px;height:40px;border:none;background:var(--bg-secondary);border-radius:50%;font-size:var(--font-size-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s ease}.close-btn:hover{background:var(--border-color)}.customer-info{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.customer-info input{height:48px;padding:0 var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-base);background:var(--bg-primary);transition:border-color 0.2s ease}.customer-info input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(37,99,235,0.1)}.card-section{margin-bottom:var(--spacing-md)}#card-element{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--bg-primary);transition:border-color 0.2s ease}#card-element:focus-within{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(37,99,235,0.1)}.card-errors{color:var(--error-color);font-size:var(--font-size-sm);margin-top:var(--spacing-sm);min-height:20px}.submit-payment-btn{width:100%;height:48px;background:var(--success-color);color:white;border:none;border-radius:var(--border-radius);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all 0.2s ease}.submit-payment-btn:hover{background:#059669;transform:translateY(-1px)}.submit-payment-btn:disabled{opacity:0.6;cursor:not-allowed;transform:none}.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md)}.modal-content{background:var(--bg-primary);border-radius:var(--border-radius);padding:var(--spacing-xl);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;animation:modalSlide 0.3s ease}@keyframes modalSlide{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.success-header{text-align:center;margin-bottom:var(--spacing-xl)}.success-emoji{font-size:48px;display:block;margin-bottom:var(--spacing-md)}.success-header h2{font-size:var(--font-size-xl);color:var(--success-color);margin:0}.tickets-display{margin-bottom:var(--spacing-xl)}.success-actions{display:flex;flex-direction:column;gap:var(--spacing-md)}.email-btn,.start-over-btn{height:var(--touch-target);border:none;border-radius:var(--border-radius);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all 0.2s ease;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.add-to-wallet-link{text-decoration:none;display:inline-block;margin:4px}.add-to-wallet-link img{display:block;box-shadow:none;filter:none;border:none;border-radius:0}.email-btn{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.start-over-btn{background:var(--success-color);color:white}@media (max-width: 480px){.availability-title{font-size:var(--font-size-base)}.availability-price{font-size:20px}#selected-date-title{font-size:var(--font-size-base)}.header-content{padding:var(--spacing-md)}.supplier-logo{max-width:240px;height:48px}.main-content{padding:var(--spacing-md)}.availability-card{padding:var(--spacing-md)}.cart-summary{padding:var(--spacing-sm) var(--spacing-md)}.payment-buttons{gap:var(--spacing-xs)}.payment-btn{padding:0 var(--spacing-md);font-size:var(--font-size-sm)}}@media (prefers-color-scheme: dark){:root{--text-primary: #f9fafb;--text-secondary: #d1d5db;--text-light: #9ca3af;--bg-primary: #111827;--bg-secondary: #1f2937;--bg-card: #1f2937;--border-color: #374151}.loading-overlay{background:rgba(17,24,39,0.95)}.cart-summary{background:var(--bg-card);border-radius:var(--radius-md)}}@media print{.cart-footer,.payment-form,.loading-overlay,.message-bar{display:none !important}.main-content{padding-bottom:0}}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}}@media (prefers-contrast: high){:root{--border-color: #000;--shadow: 0 0 0 2px #000}.quantity-btn{border-width:3px}.payment-btn{border:2px solid}}
