:root{--bg: #f0f4f8;--primary: #1e3a8a;--primary-light: #dbeafe;--primary-dark: #1e40af;--accent: #3b82f6;--accent-light: #60a5fa;--border: #cbd5e1;--text-main: #1e293b;--muted: #64748b;--card-bg: #ffffff;--hover-bg: #e0e7ff}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text-main)}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-header{background:var(--card-bg);border-bottom:2px solid var(--primary);padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;box-shadow:0 2px 4px #0000000d}.app-logo{font-weight:700;font-size:1.4rem;letter-spacing:.06em;text-transform:uppercase;color:var(--primary);text-decoration:none;transition:color .2s}.app-logo:hover{color:var(--accent)}.app-nav{display:flex;gap:1.5rem;align-items:center}.nav-link{color:var(--text-main);text-decoration:none;font-weight:500;padding:.5rem 1rem;border-radius:.5rem;transition:all .2s}.nav-link:hover{background:var(--hover-bg);color:var(--primary)}.app-header-right{display:flex;align-items:center;gap:1rem}.app-header-tagline{font-size:.9rem;color:var(--muted)}.app-main{flex:1;padding:1rem 2rem 2rem;max-width:1200px;margin:0 auto}.filters-bar{display:grid;grid-template-columns:2fr 1.2fr 1.2fr 1.2fr 1.4fr;gap:.75rem;background:var(--primary-light);border-radius:.75rem;padding:.75rem .9rem;margin-bottom:1rem}.filters-bar label{font-size:.75rem;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:.2rem}.filters-bar select,.filters-bar input{width:100%;padding:.4rem .5rem;border-radius:.4rem;border:1px solid var(--border);font-size:.9rem}.filters-bar .sort-select{justify-self:end}.summary-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;font-size:.9rem}.summary-row span{color:var(--muted)}.summary-row strong{color:var(--primary)}.spa-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,.9fr);gap:1rem}@media(max-width:900px){.filters-bar{grid-template-columns:1fr 1fr}.spa-layout{grid-template-columns:1fr}}.spa-list{display:flex;flex-direction:column;gap:.7rem}.spa-card{background:var(--card-bg);border-radius:.75rem;border:1px solid var(--border);padding:.75rem .9rem;display:grid;grid-template-columns:minmax(0,3fr) minmax(140px,1fr);gap:.75rem}@media(max-width:700px){.spa-card{grid-template-columns:1fr}}.spa-card-title{font-weight:600;font-size:1rem;margin-bottom:.1rem}.spa-card-location{font-size:.85rem;color:var(--muted);margin-bottom:.3rem}.spa-card-address{font-size:.85rem;margin-bottom:.25rem}.spa-card-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.8rem;margin-bottom:.25rem}.badge{border-radius:999px;border:1px solid var(--border);padding:.1rem .45rem;font-size:.75rem;background:#fff}.badge-rating{border-color:#f0b429}.badge-budget{border-color:#4caf50}.badge-time{border-color:var(--primary)}.spa-card-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;font-size:.8rem}.spa-card-actions a{color:var(--primary);text-decoration:none}.spa-card-actions a:hover{text-decoration:underline}.button-outline{border-radius:999px;border:1px solid var(--primary);background:#fff;color:var(--primary);padding:.25rem .65rem;font-size:.8rem;cursor:pointer}.button-outline:hover{background:var(--primary-light)}.side-panel{background:#fff;border-radius:.75rem;border:1px solid var(--border);padding:.7rem .8rem;font-size:.85rem;max-height:600px;overflow-y:auto}.side-panel-section+.side-panel-section{margin-top:.75rem}.side-panel h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.4rem}.side-panel ul{list-style:none;padding:0;margin:0}.side-panel li{margin-bottom:.25rem}.side-panel button{border:none;padding:0;background:none;font-size:.85rem;cursor:pointer;color:var(--text-main)}.side-panel button:hover{color:var(--primary);text-decoration:underline}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:.4rem;margin-top:.75rem;font-size:.85rem}.pagination button{border-radius:.4rem;border:1px solid var(--border);background:#fff;padding:.2rem .5rem;cursor:pointer}.pagination button[disabled]{opacity:.4;cursor:not-allowed}.pagination .page-info{color:var(--muted)}.app-footer{border-top:1px solid var(--border);padding:.8rem 2rem;font-size:.8rem;color:var(--muted);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.page-title{font-size:2rem;font-weight:700;color:var(--primary);margin-bottom:1.5rem;text-align:center}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.back-button{background:var(--primary);color:#fff;border:none;padding:.6rem 1.2rem;border-radius:.5rem;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.back-button:hover{background:var(--primary-dark);transform:translate(-2px)}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;margin-top:2rem}.location-card,.treatment-card{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);border-radius:1rem;padding:2rem 1.5rem;cursor:pointer;transition:all .3s;box-shadow:0 4px 6px #0000001a;text-align:center;min-height:120px;display:flex;align-items:center;justify-content:center}.location-card:hover,.treatment-card:hover{transform:translateY(-4px);box-shadow:0 8px 12px #00000026}.location-card h3,.treatment-card h3{color:#fff;font-size:1.2rem;font-weight:600;margin:0;text-shadow:0 2px 4px rgba(0,0,0,.2)}.sort-dropdown{display:flex;align-items:center;gap:.5rem}.sort-dropdown label{font-weight:500;color:var(--text-main);font-size:.9rem}.sort-select{padding:.5rem .75rem;border-radius:.5rem;border:2px solid var(--primary);background:#fff;color:var(--text-main);font-size:.9rem;cursor:pointer;transition:all .2s}.sort-select:hover{border-color:var(--accent);background:var(--primary-light)}.sort-select:focus{outline:none;border-color:var(--accent-light);box-shadow:0 0 0 3px #3b82f61a}.badge-rating{border-color:var(--accent);color:var(--accent)}.badge-budget{border-color:#10b981;color:#10b981}.badge-time{border-color:var(--primary);color:var(--primary)}.button-outline{border-radius:999px;border:2px solid var(--primary);background:#fff;color:var(--primary);padding:.4rem 1rem;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.button-outline:hover{background:var(--primary);color:#fff}.pagination button{border-radius:.5rem;border:2px solid var(--border);background:#fff;padding:.4rem .8rem;cursor:pointer;color:var(--text-main);font-weight:500;transition:all .2s}.pagination button:hover:not([disabled]){border-color:var(--primary);background:var(--primary-light);color:var(--primary)}.pagination button[disabled]{opacity:.3;cursor:not-allowed}@media(max-width:768px){.app-header{flex-direction:column;align-items:flex-start;gap:1rem}.app-nav{width:100%;justify-content:space-around}.nav-link{padding:.5rem .75rem;font-size:.9rem}.page-header{flex-direction:column;align-items:stretch}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}}.cart-link{position:relative}.cart-badge{position:absolute;top:-8px;right:-10px;background:#ef4444;color:#fff;font-size:.7rem;font-weight:700;padding:.15rem .4rem;border-radius:999px;min-width:20px;text-align:center}.button-cart{background:var(--primary);color:#fff;border:none;padding:.5rem 1rem;border-radius:.5rem;font-weight:600;cursor:pointer;transition:all .2s;width:100%}.button-cart:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px)}.button-cart:disabled{background:#cbd5e1;cursor:not-allowed}.empty-cart{text-align:center;padding:3rem 1rem}.empty-cart p{color:var(--muted);margin:1.5rem 0}.cart-container{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.cart-item{background:#fff;border:2px solid var(--border);border-radius:1rem;padding:1.5rem;box-shadow:0 2px 4px #0000000d}.cart-item-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.cart-item-spa{font-size:1.3rem;font-weight:700;color:var(--primary);margin:0 0 .25rem}.cart-item-location{font-size:.9rem;color:var(--muted);margin:0 0 .5rem}.cart-item-treatment{font-size:1rem;font-weight:500;color:var(--text-main);margin:0}.delete-button{background:#fee2e2;border:none;padding:.5rem;border-radius:.5rem;cursor:pointer;font-size:1.2rem;transition:all .2s}.delete-button:hover{background:#fecaca;transform:scale(1.1)}.cart-item-inputs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.input-group{display:flex;flex-direction:column}.input-group label{font-size:.85rem;font-weight:600;color:var(--text-main);margin-bottom:.5rem}.required{color:#ef4444}.date-input,.time-select,.quantity-select{padding:.75rem;border:2px solid var(--border);border-radius:.5rem;font-size:1rem;transition:all .2s}.date-input:focus,.time-select:focus,.quantity-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1e3a8a1a}.validation-message{margin-top:.75rem;padding:.75rem;background:#fef3c7;border-left:4px solid #f59e0b;border-radius:.5rem;font-size:.85rem;color:#92400e}.user-info-section{background:#fff;border:2px solid var(--border);border-radius:1rem;padding:2rem;margin-bottom:2rem;box-shadow:0 2px 4px #0000000d}.section-title{font-size:1.5rem;font-weight:700;color:var(--primary);margin:0 0 .5rem}.section-description{font-size:.95rem;color:var(--muted);margin:0 0 1.5rem}.user-info-form{display:grid;grid-template-columns:1fr;gap:1.5rem}.text-input{padding:.75rem;border:2px solid var(--border);border-radius:.5rem;font-size:1rem;transition:all .2s;width:100%}.text-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1e3a8a1a}.validation-message-inline{margin-top:.5rem;font-size:.85rem;color:var(--muted)}.validation-message-inline.error{color:#ef4444;font-weight:500}.cart-footer{background:#fff;border:2px solid var(--primary);border-radius:1rem;padding:2rem;display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}.cart-summary{font-size:1.1rem;font-weight:600;color:var(--text-main)}.button-payment{background:var(--primary);color:#fff;border:none;padding:1rem 2rem;border-radius:.5rem;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s}.button-payment.active:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 4px 8px #0003}.button-payment.disabled{background:#cbd5e1;cursor:not-allowed}.payment-container{display:grid;grid-template-columns:2fr 1fr;gap:2rem;margin-bottom:2rem}.payment-summary{background:#fff;border-radius:1rem;padding:2rem;box-shadow:0 2px 8px #0000001a}.payment-summary h2{color:var(--primary);margin-bottom:1.5rem}.payment-item{border:2px solid var(--primary-light);border-radius:.75rem;padding:1.5rem;margin-bottom:1.5rem;background:linear-gradient(to right,var(--primary-light),white)}.payment-item-number{font-size:.75rem;text-transform:uppercase;color:var(--muted);font-weight:700;letter-spacing:.1em;margin-bottom:.5rem}.payment-item-details h3{font-size:1.3rem;color:var(--primary);margin:0 0 .25rem}.payment-location{font-size:.9rem;color:var(--muted);margin:0 0 1rem}.payment-treatment{font-size:1rem;margin-bottom:.75rem;padding:.5rem;background:#fff;border-radius:.5rem}.payment-datetime{display:flex;gap:2rem;flex-wrap:wrap;margin-top:.75rem}.payment-datetime div{font-size:.95rem}.payment-info{display:flex;flex-direction:column;gap:1.5rem}.info-box{background:#fff;border:2px solid var(--border);border-radius:1rem;padding:1.5rem;box-shadow:0 2px 8px #0000000d}.info-box h3{color:var(--primary);margin-bottom:1rem}.info-box ul{list-style:none;padding:0;margin:0}.info-box li{padding:.5rem 0 .5rem 1.5rem;position:relative}.info-box li:before{content:"✓";position:absolute;left:0;color:var(--primary);font-weight:700}.payment-total{background:var(--primary);color:#fff;border-radius:1rem;padding:1.5rem}.payment-total h3{margin:0 0 .5rem}.payment-total .note{font-size:.85rem;opacity:.9;margin:0}.payment-actions{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.button-primary,.button-secondary{padding:1rem 2rem;border-radius:.5rem;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s;border:none}.button-primary{background:var(--primary);color:#fff}.button-primary:hover{background:var(--primary-dark);transform:translateY(-2px)}.button-secondary{background:#fff;color:var(--primary);border:2px solid var(--primary)}.button-secondary:hover{background:var(--primary-light)}@media(max-width:768px){.cart-item-inputs{grid-template-columns:1fr}.cart-footer{flex-direction:column;align-items:stretch}.payment-container{grid-template-columns:1fr}.payment-actions{flex-direction:column}}.treatments-list{margin-top:.75rem;padding:.75rem;background:var(--primary-light);border-radius:.5rem}.treatment-badge{display:inline-block;background:#fff;border:1px solid var(--primary);color:var(--primary);padding:.3rem .6rem;border-radius:999px;font-size:.75rem;font-weight:500}.cart-item-price{font-size:1.1rem;font-weight:700;color:var(--primary);margin-top:.5rem}.cart-total{font-size:1.3rem;color:var(--primary);margin-top:.5rem}.payment-price{font-size:1.1rem;margin-bottom:.75rem;padding:.5rem;background:#fef3c7;border-radius:.5rem;color:#92400e}.payment-price strong{color:#78350f}.payment-success-container{max-width:600px;margin:4rem auto;text-align:center;background:#fff;border:2px solid var(--border);border-radius:1rem;padding:3rem 2rem;box-shadow:0 4px 6px #0000001a}.success-icon{width:80px;height:80px;margin:0 auto 1.5rem;background:#10b981;color:#fff;font-size:3rem;font-weight:700;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #10b9814d}.success-title{font-size:2rem;font-weight:700;color:var(--primary);margin:0 0 1rem}.success-message{font-size:1.1rem;color:var(--text-main);margin:0 0 1rem;line-height:1.6}.success-details{font-size:.95rem;color:var(--muted);margin:0 0 2rem}.browse-again-btn{background:var(--primary);color:#fff;border:none;padding:1rem 2.5rem;border-radius:.5rem;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s}.browse-again-btn:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 4px 12px #1e3a8a4d}.confirmation-page{max-width:1000px;margin:0 auto}.confirmation-header{text-align:center;margin-bottom:2rem;padding:2rem;background:#fff;border-radius:1rem;box-shadow:0 2px 4px #0000001a}.confirmation-subtitle{font-size:1.1rem;color:var(--muted);margin-top:.5rem}.back-to-booking-btn{margin-bottom:2rem}.confirmation-section{background:#fff;border:2px solid var(--border);border-radius:1rem;padding:2rem;margin-bottom:2rem;box-shadow:0 2px 4px #0000000d}.section-header{font-size:1.5rem;font-weight:700;color:var(--primary);margin:0 0 1.5rem;padding-bottom:.75rem;border-bottom:2px solid var(--primary)}.booking-items{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.confirmation-item{border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;background:#f9fafb}.item-number{display:inline-block;background:var(--primary);color:#fff;padding:.25rem .75rem;border-radius:.5rem;font-size:.85rem;font-weight:600;margin-bottom:1rem}.item-details h3{font-size:1.3rem;color:var(--primary);margin:0 0 .25rem}.item-location{font-size:.9rem;color:var(--muted);margin:0 0 1rem}.detail-row{padding:.5rem 0;border-bottom:1px solid #e5e7eb;font-size:.95rem}.detail-row:last-child{border-bottom:none}.detail-row.subtotal{background:#fef3c7;padding:.75rem;border-radius:.5rem;margin-top:.5rem;border:none;color:#92400e}.total-amount{background:var(--primary);color:#fff;padding:1.5rem;border-radius:.75rem;text-align:center}.total-amount h3{margin:0;font-size:1.8rem}.payment-note{margin:.5rem 0 0;font-size:.9rem;opacity:.9}.customer-email-section{border-left:4px solid #3b82f6}.spa-email-section{border-left:4px solid #10b981}.email-preview{display:flex;flex-direction:column;gap:1rem}.email-item{padding:1rem;background:#f9fafb;border-radius:.5rem;border-left:3px solid var(--border)}.email-item strong{color:var(--primary);display:block;margin-bottom:.5rem}.email-item ul{margin:.5rem 0 0;padding-left:1.5rem}.email-item li{margin:.25rem 0;color:var(--text-main)}.email-booking-item{padding:1rem;background:#fff;border:1px solid var(--border);border-radius:.5rem}.email-booking-item h4{margin:0 0 .75rem;color:var(--primary);font-size:1.1rem}.email-booking-item ul{margin:0;padding-left:1.5rem;list-style-type:none}.email-booking-item li{margin:.5rem 0;padding-left:1.5rem;position:relative}.email-booking-item li:before{content:"•";position:absolute;left:0;color:var(--primary);font-weight:700}.email-theme-note{padding:.75rem;background:#e0e7ff;border-radius:.5rem;text-align:center;font-size:.9rem;color:var(--primary);font-weight:500}.customer-email-section .email-theme-note{background:#dbeafe}.spa-email-section .email-theme-note{background:#d1fae5;color:#059669}.confirmation-footer{text-align:center;padding:2rem 0}.confirmation-footer .button-primary{padding:1rem 3rem;font-size:1.1rem}@media(max-width:768px){.confirmation-section,.confirmation-header{padding:1.5rem}.section-header{font-size:1.25rem}.total-amount h3{font-size:1.5rem}}.stripe-payment-page{max-width:1000px;margin:0 auto}.stripe-container{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2rem}.order-summary-card,.stripe-form-card{background:#fff;border:2px solid var(--border);border-radius:1rem;padding:2rem;box-shadow:0 2px 4px #0000000d}.order-summary-card h2{font-size:1.3rem;color:var(--primary);margin:0 0 1.5rem;padding-bottom:.75rem;border-bottom:2px solid var(--border)}.summary-items{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.summary-item{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid #f3f4f6}.summary-total{display:flex;justify-content:space-between;padding:1rem;background:var(--primary-light);border-radius:.5rem;font-size:1.2rem}.stripe-logo{text-align:center;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid var(--border)}.stripe-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column}.form-group label{font-size:.9rem;font-weight:600;color:var(--text-main);margin-bottom:.5rem}.form-group input{padding:.875rem;border:2px solid var(--border);border-radius:.5rem;font-size:1rem;transition:all .2s}.form-group input:focus{outline:none;border-color:#635bff;box-shadow:0 0 0 3px #635bff1a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.stripe-pay-button{background:#635bff;color:#fff;border:none;padding:1rem;border-radius:.5rem;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:.5rem}.stripe-pay-button:hover:not(:disabled){background:#5145e5;transform:translateY(-2px);box-shadow:0 4px 12px #635bff4d}.stripe-pay-button:disabled{opacity:.6;cursor:not-allowed}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stripe-secure{text-align:center;font-size:.85rem;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.5rem}@media(max-width:768px){.stripe-container{grid-template-columns:1fr}.order-summary-card{order:2}.stripe-form-card{order:1}}
