.app-booking-wrap{--app-color-calendar:#e07a5f;--app-color-button:#3d405b;--app-color-form:#f4f1de;max-width:1200px;margin:0 auto;font-family:inherit;position:relative}.app-alert{padding:12px 16px;border-radius:6px;margin-bottom:16px}.app-alert-success{background:#e7f6ec;color:#1e7e34;border:1px solid #b7e4c7}.app-alert-error{background:#fdecea;color:#c0392b;border:1px solid #f5c6cb}.app-calendar-header{display:flex;align-items:center;justify-content:center;gap:24px;margin-bottom:20px}.app-calendar-header button{background:none;color:#333;border:none;cursor:pointer;font-size:20px;line-height:1;padding:4px 8px}.app-calendar-header button:hover{color:var(--app-color-button)}.app-calendar-header button:disabled{opacity:.25;cursor:default}.app-calendar-title{margin:0;font-size:22px;font-weight:700;min-width:220px;text-align:center}.app-week-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid #e3e3e3;border-left:1px solid #e3e3e3}.app-day-col{border-right:1px solid #e3e3e3;background:#fff;min-height:120px}.app-day-col-empty{background:#f4f4f2}.app-day-col-header{text-align:center;padding:14px 6px 10px;border-bottom:1px solid #e3e3e3}.app-day-col-weekday{display:block;font-size:13px;color:#8a8a86;font-weight:600;text-transform:capitalize}.app-day-col-date{display:block;font-size:20px;font-weight:700;color:#1a1a1a;margin-top:2px}.app-day-col-body{padding:8px;display:flex;flex-direction:column;gap:0}.app-no-classes{color:#9a9a95;font-size:14px;text-align:center;padding:40px 8px}.app-slot-card{padding:14px 8px 14px 14px;border-bottom:1px solid #ececec;border-left:4px solid #e07a5f;border-radius:4px;margin-bottom:4px}.app-slot-card:last-child{border-bottom:none;margin-bottom:0}.app-slot-card-time{font-weight:700;font-size:15px;color:#1a1a1a;margin-bottom:2px}.app-slot-card-title{font-weight:600;font-size:14px;color:#1a1a1a;margin-bottom:10px}.app-slot-card-duration{font-size:12px;color:#9a9a95;margin-bottom:4px}.app-slot-card-status{font-size:12px;color:#9a9a95;margin-bottom:10px}.app-status-open{color:#6b6b66}.app-status-full{color:#c0392b;font-weight:600}.app-status-closed{color:#9a9a95;font-style:italic}.app-btn,.app-btn-submit{background:var(--app-color-button);color:#fff;border:none;border-radius:6px;padding:10px 16px;cursor:pointer;font-size:13px;font-weight:600;width:100%}.app-btn:hover,.app-btn-submit:hover{opacity:.88}.app-modal-overlay{position:fixed;inset:0;background:rgb(0 0 0 / .5);display:flex;align-items:center;justify-content:center;z-index:99999;padding:16px}.app-modal{background:var(--app-color-form);border-radius:14px;padding:28px;max-width:440px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 12px 40px rgb(0 0 0 / .25)}.app-modal h4{margin:0 0 4px;font-size:19px}.app-modal-close{position:absolute;top:12px;right:16px;border:none;background:none;font-size:22px;cursor:pointer;color:#888;line-height:1}.app-modal-close:hover{color:#222}.app-booking-form{display:flex;flex-direction:column;gap:12px}.app-booking-form label{font-size:13px;font-weight:600;display:flex;flex-direction:column;gap:5px;color:#333}.app-booking-form input[type=text],.app-booking-form input[type=email],.app-textarea{padding:10px 12px;border:1px solid #d8d8d3;border-radius:8px;font-weight:400;font-size:14px;background:#fff;transition:border-color 0.15s,box-shadow 0.15s;font-family:inherit;resize:vertical}.app-booking-form input[type=text]:focus,.app-booking-form input[type=email]:focus,.app-textarea:focus,.app-select:focus{outline:none;border-color:var(--app-color-button);box-shadow:0 0 0 3px rgb(0 0 0 / .06)}.app-field-checkbox{flex-direction:row!important;align-items:center;gap:8px!important}.app-select-wrap{position:relative}.app-select{width:100%;padding:11px 40px 11px 14px;border:1px solid #d8d8d3;border-radius:8px;font-size:14px;font-weight:400;color:#222;background-color:#fff;appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer;transition:border-color 0.15s,box-shadow 0.15s;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23666' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}.app-select:hover{border-color:#b8b8b0}.app-price-options{display:flex;flex-direction:column;gap:6px;margin:2px 0}.app-price-option{font-weight:normal!important;flex-direction:row!important;align-items:center;gap:8px!important;font-size:13px;padding:8px 10px;border:1px solid #e5e5e0;border-radius:8px;background:#fff;cursor:pointer;transition:border-color 0.15s}.app-price-option:has(input:checked){border-color:var(--app-color-button)}.app-price-display{font-size:19px;font-weight:700;margin:2px 0 4px}.app-coupon-row{display:flex;gap:8px}.app-coupon-row input{flex:1;padding:10px 12px;border:1px solid #d8d8d3;border-radius:8px;font-weight:400;font-size:14px;background:#fff;text-transform:uppercase}.app-btn-secondary{background:#fff;color:var(--app-color-button);border:1px solid var(--app-color-button)!important;width:auto;white-space:nowrap;padding:10px 16px}.app-btn-secondary:hover{background:var(--app-color-button);color:#fff}.app-coupon-message{font-size:12px;min-height:14px}.app-coupon-message.app-error{color:#c62828}.app-coupon-message.app-success{color:#2e7d32;font-weight:600}.app-form-msg{font-size:13px}.app-form-msg.app-error{color:#c62828}.app-form-msg.app-success{color:#2e7d32}.app-loading{position:absolute;inset:0;background:rgb(255 255 255 / .6);display:flex;align-items:center;justify-content:center}.app-spinner{width:28px;height:28px;border:3px solid #ddd;border-top-color:var(--app-color-button);border-radius:50%;animation:app-spin 0.8s linear infinite}@keyframes app-spin{to{transform:rotate(360deg)}}@media (max-width:900px){.app-week-grid{grid-template-columns:repeat(7,minmax(120px,1fr));overflow-x:auto;display:flex}.app-day-col{flex:0 0 130px;border-right:1px solid #e3e3e3}}