.calendar{background:#f8f9fa;border-radius:12px;padding:16px;border:1px solid #e0e0e0;max-width:360px;height:fit-content}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.calendar-title{font-size:16px;font-weight:600;color:#333}.calendar-nav-btn{background:#fff;border:1px solid #e0e0e0;border-radius:6px;width:28px;height:28px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s}.calendar-nav-btn:hover{background:#667eea;color:#fff;border-color:#667eea;transform:scale(1.05)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-weekday{text-align:center;font-weight:600;color:#666;padding:4px;font-size:11px}.calendar-day{aspect-ratio:1;border:1px solid #e0e0e0;background:#fff;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s;display:flex;align-items:center;justify-content:center;min-height:32px}.calendar-day.empty{background:transparent;border:none;cursor:default}.calendar-day:not(.disabled):not(.empty):hover{background:#667eea;color:#fff;border-color:#667eea;transform:scale(1.05)}.calendar-day.disabled{background:#f0f0f0;color:#ccc;cursor:not-allowed;border-color:#f0f0f0}.calendar-day.selected{background:#667eea;color:#fff;border-color:#667eea;font-weight:700;transform:scale(1.05)}.calendar-legend{display:flex;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid #e0e0e0}.legend-item{display:flex;align-items:center;gap:4px;font-size:11px;color:#666}.legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.legend-dot.disabled{background:#f0f0f0;border:1px solid #ddd}.legend-dot.available{background:#667eea}.time-slots{background:#f8f9fa;border-radius:12px;padding:16px;border:1px solid #e0e0e0;height:fit-content;overflow:visible}.time-slots-header{margin-bottom:16px}.time-slots-header h3{font-size:16px;font-weight:600;color:#333;margin-bottom:6px}.selected-date{color:#667eea;font-weight:500;font-size:13px;text-transform:capitalize}.time-select-wrapper{margin-bottom:16px}.time-select-label{display:block;font-size:13px;font-weight:600;color:#333;margin-bottom:8px}.time-select{width:100%;padding:10px 36px 10px 12px;font-size:14px;font-weight:500;color:#333;background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s;font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 10px center;background-size:16px}.time-select:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea1a}.time-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.time-select option:disabled{color:#999}.time-slots-info{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid #e0e0e0}.info-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#666}.info-icon{font-size:16px;flex-shrink:0}.booked-info{color:#667eea;font-weight:500}.timezone-info{color:#555;font-weight:500;font-size:11px}.reschedule-section{margin-top:16px;padding-top:16px;border-top:1px solid #e0e0e0;width:100%;box-sizing:border-box}.reschedule-checkbox{display:flex;align-items:center;gap:8px;margin-bottom:12px}.reschedule-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#667eea}.reschedule-checkbox label{font-size:14px;font-weight:500;color:#333;cursor:pointer;-webkit-user-select:none;user-select:none}.reschedule-input-wrapper{background:#fff;border-radius:8px;padding:16px 16px 20px;border:2px solid #e0e0e0;margin-top:8px;margin-bottom:20px;animation:slideDown .3s ease;animation-fill-mode:both;box-sizing:border-box;width:100%}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.reschedule-label{display:block;font-size:12px;font-weight:600;color:#555;margin-bottom:8px}.email-verification-block{margin-top:12px}.reschedule-ticket-input{width:100%;padding:8px 10px;background:#fff;border:2px solid #e0e0e0;border-radius:6px;transition:all .2s;font-size:14px;font-weight:500;outline:none;box-sizing:border-box}.reschedule-ticket-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.reschedule-ticket-input.has-error{background:#fff5f5;border-color:#fecaca}.reschedule-ticket-input.has-success{background:#f0fdf4;border-color:#bbf7d0}.ticket-message{margin-top:8px;padding:8px 10px;border-radius:6px;font-size:12px;line-height:1.4}.ticket-message.error-message{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.ticket-message.success-message{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.existing-booking-info{display:flex;gap:12px;margin:6px 0;font-weight:600;font-size:13px}.existing-booking-info span{display:flex;align-items:center;gap:4px}.ticket-message small{display:block;margin-top:4px;font-size:11px;color:#059669;font-style:italic}.cancel-booking-btn{width:100%;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s;margin:12px 0 0;box-sizing:border-box}.cancel-booking-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #ef444466}.cancel-booking-btn:active{transform:translateY(0)}@media (max-width: 768px){.time-select{font-size:15px;padding:12px 36px 12px 14px}.existing-booking-info{flex-direction:column;gap:4px}}.booking-form{background:#f8f9fa;border-radius:12px;padding:16px;border:1px solid #e0e0e0;height:fit-content}.booking-form-header{margin-bottom:16px}.booking-form-header h3{font-size:16px;font-weight:600;color:#333;margin-bottom:12px}.reschedule-notice{background:#fff3cd;border:2px solid #ffc107;border-radius:8px;padding:10px 12px;margin-bottom:12px}.reschedule-notice-title{font-size:12px;font-weight:600;color:#856404;margin-bottom:6px}.old-booking-info{display:flex;gap:12px;font-size:12px;font-weight:500;color:#856404;padding:4px 0}.old-booking-info span{display:flex;align-items:center;gap:4px}.booking-summary{display:flex;gap:12px;flex-wrap:wrap}.summary-item{display:flex;align-items:center;gap:6px;background:#fff;padding:8px 12px;border-radius:6px;border:1px solid #e0e0e0}.summary-icon{font-size:14px}.summary-text{font-size:12px;font-weight:500;color:#333;text-transform:capitalize}.form{display:flex;flex-direction:column;gap:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:600;color:#333}.ticket-input-wrapper{display:flex;align-items:center;gap:0;position:relative}.ticket-prefix{position:absolute;left:12px;font-size:14px;font-weight:600;color:#667eea;pointer-events:none;z-index:1}.ticket-input{padding-left:44px!important}.form-input,.form-textarea{padding:10px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;font-family:inherit;transition:all .2s;background:#fff}.form-input:focus,.form-textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-input.error,.form-textarea.error{border-color:#e74c3c}.form-input:read-only{background:#f0f0f0;cursor:not-allowed;color:#666}.masked-info-box{background:#f0f4ff;border:2px solid #d0d9ff;border-radius:8px;padding:16px;margin-bottom:16px;display:flex;flex-direction:column;gap:12px}.masked-info-item{display:flex;flex-direction:column;gap:6px}.masked-label{font-size:13px;font-weight:600;color:#333;display:flex;align-items:center;gap:6px}.masked-value{background:#fff;border:2px solid #e0e0e0;border-radius:8px;padding:10px 12px;font-size:14px;font-weight:500;color:#333;font-family:Courier New,monospace;letter-spacing:1px}.form-textarea{resize:vertical;min-height:100px}.error-message{font-size:11px;color:#e74c3c;margin-top:-2px}.active-booking-warning{background:#fff3cd;border:2px solid #ffc107;border-radius:8px;padding:10px 12px;margin-top:8px;animation:slideDown .3s ease}.warning-title{font-size:12px;font-weight:600;color:#856404;margin-bottom:6px}.warning-details{display:flex;gap:12px;font-size:12px;font-weight:500;color:#856404;padding:4px 0;margin-bottom:4px}.warning-details span{display:flex;align-items:center;gap:4px}.active-booking-warning small{display:block;font-size:11px;color:#856404;font-style:italic;margin-bottom:12px}.email-verification-block{margin-top:12px;padding-top:12px;border-top:1px solid #ffc107}.form-input.success{border-color:#10b981}.success-message{font-size:11px;color:#10b981;margin-top:4px;display:block;font-weight:500}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:200px}}.submit-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s;margin-top:4px}.submit-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.submit-btn:active{transform:translateY(0)}.submit-btn:disabled,.submit-btn.submitting{opacity:.6;cursor:not-allowed;pointer-events:none}.submit-btn.submitting{background:linear-gradient(135deg,#9ca3af,#6b7280)}.btn-icon{font-size:16px}.action-buttons{display:flex;flex-direction:column;gap:12px;margin-top:4px}.reschedule-btn{background:linear-gradient(135deg,#10b981,#059669)}.reschedule-btn:hover{box-shadow:0 8px 20px #10b98166}.cancel-btn{background:linear-gradient(135deg,#ef4444,#dc2626)}.cancel-btn:hover{box-shadow:0 8px 20px #ef444466}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.booking-summary{flex-direction:column;gap:10px}.summary-item{width:100%}.old-booking-info{flex-direction:column;gap:4px}.masked-value{font-size:13px}}.confirmation{width:100%;display:flex;justify-content:center;align-items:flex-start;margin-top:20px}.confirmation-container{background:#f8f9fa;border-radius:12px;padding:24px;border:1px solid #e0e0e0;max-width:600px;width:100%;text-align:center}.confirmation-icon{margin-bottom:16px}.checkmark-circle{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);margin:0 auto;display:flex;align-items:center;justify-content:center;animation:scaleIn .5s ease-out}.checkmark{font-size:36px;color:#fff;font-weight:700;animation:checkmarkPop .6s ease-out .2s both}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes checkmarkPop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.confirmation-title{font-size:20px;font-weight:700;color:#333;margin-bottom:8px}.confirmation-subtitle{font-size:14px;color:#666;margin-bottom:20px}.reschedule-info-box{background:#d1f4e0;border:2px solid #4caf50;border-radius:8px;padding:12px;margin-bottom:20px;text-align:left}.reschedule-info-title{font-size:13px;font-weight:600;color:#2e7d32;margin-bottom:8px}.reschedule-old-time{display:flex;gap:12px;font-size:12px;font-weight:500;color:#1b5e20;padding:4px 0}.reschedule-old-time span{display:flex;align-items:center;gap:4px}.confirmation-details{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;text-align:left}.detail-card{background:#fff;padding:12px;border-radius:8px;display:flex;gap:10px;align-items:center;border:1px solid #e0e0e0}.detail-card.full-width{width:100%}.detail-icon{font-size:18px;flex-shrink:0}.detail-content{flex:1;display:flex;align-items:center;gap:8px}.detail-label{font-size:12px;color:#666;font-weight:500;min-width:80px}.detail-value{font-size:13px;color:#333;font-weight:600;word-break:break-word;text-transform:capitalize}.detail-card.full-width .detail-value{text-transform:none}.confirmation-info{margin-bottom:20px}.info-box{background:#e8eaf6;padding:16px;border-radius:8px;border:1px solid #c5cae9;text-align:left}.info-box h3{font-size:14px;color:#333;margin-bottom:12px;font-weight:600}.info-box ul{list-style:none;padding:0;margin:0}.info-box li{font-size:12px;color:#555;padding:6px 0 6px 20px;position:relative}.info-box li:before{content:"→";position:absolute;left:0;color:#667eea;font-weight:700}.new-booking-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s}.new-booking-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.new-booking-btn:active{transform:translateY(0)}@media (max-width: 768px){.confirmation-container{padding:20px 16px}.confirmation-title{font-size:18px}.detail-content{flex-direction:column;align-items:flex-start;gap:4px}.detail-label{min-width:auto}.reschedule-old-time{flex-direction:column;gap:4px}}.app{width:100%}.container{background:#fff;border-radius:20px;padding:40px;box-shadow:0 20px 60px #0000004d}.header{text-align:center;margin-bottom:40px}.header h1{color:#333;font-size:32px;margin-bottom:10px;font-weight:700}.header p{color:#666;font-size:16px}.booking-layout{display:flex;flex-direction:column;gap:20px}.calendar-section,.time-section,.form-section,.cancel-section{animation:slideIn .4s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 768px){.booking-layout{display:grid;grid-template-columns:450px 1fr;gap:20px;align-items:start;justify-items:center;max-width:1200px;margin:0 auto}.calendar-section{grid-column:1 / 2;justify-self:end;width:100%}.time-section,.cancel-section{grid-column:2 / 3;justify-self:start;width:100%}.form-section{grid-column:1 / 3;max-width:700px;margin:0 auto;width:100%}}.cancel-confirmation{background:#f8f9fa;border-radius:12px;padding:24px;border:1px solid #e0e0e0;text-align:center}.cancel-confirmation-icon{margin-bottom:16px}.cancel-circle{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#ef4444,#dc2626);margin:0 auto;display:flex;align-items:center;justify-content:center;animation:scaleIn .5s ease-out}.cancel-mark{font-size:36px;color:#fff;font-weight:700;animation:checkmarkPop .6s ease-out .2s both}.cancel-confirmation-title{font-size:20px;font-weight:700;color:#333;margin-bottom:8px}.cancel-confirmation-subtitle{font-size:14px;color:#666;margin-bottom:20px}.cancel-details{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;text-align:left}.cancel-detail-card{background:#fff;padding:12px;border-radius:8px;display:flex;gap:10px;align-items:center;border:1px solid #e0e0e0}
