:root{--ion-primary:#1a1f2e;--ion-primary-dark:#0f1219;--ion-secondary:#2d3548;--ion-accent:#c9a962;--ion-accent-hover:#b8983f;--ion-white:#fff;--ion-gray-100:#f8f9fa;--ion-gray-200:#e9ecef;--ion-gray-300:#dee2e6;--ion-gray-400:#ced4da;--ion-gray-500:#adb5bd;--ion-gray-600:#6c757d;--ion-text:#1a1f2e;--ion-text-light:#6c757d;--ion-success:#28a745;--ion-error:#dc3545;--ion-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--ion-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--ion-radius:8px;--ion-radius-lg:12px;--ion-transition:all 0.3s ease}.ion-appointment-scheduler{color:var(--ion-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;margin:0 auto;max-width:800px;padding:40px 24px}.ion-appointment-scheduler *{box-sizing:border-box}.ion-scheduler__header{margin-bottom:40px;text-align:center}.ion-scheduler__title{color:var(--ion-primary);font-size:32px;font-weight:700;letter-spacing:-.5px;margin:0 0 12px}.ion-scheduler__subtitle{color:var(--ion-text-light);font-size:16px;margin:0 auto;max-width:500px}.ion-scheduler__progress{align-items:center;display:flex;justify-content:center;margin-bottom:48px;padding:0 20px}.ion-scheduler__step{align-items:center;display:flex;flex-direction:column;gap:8px;position:relative}.ion-scheduler__step-number{align-items:center;background:var(--ion-gray-200);border-radius:50%;color:var(--ion-gray-600);display:flex;font-size:16px;font-weight:600;height:40px;justify-content:center;transition:var(--ion-transition);width:40px}.ion-scheduler__step.active .ion-scheduler__step-number{background:var(--ion-primary);box-shadow:0 0 0 4px rgba(26,31,46,.15);color:var(--ion-white)}.ion-scheduler__step.completed .ion-scheduler__step-number{background:var(--ion-success);color:var(--ion-white)}.ion-scheduler__step.completed .ion-scheduler__step-number:after{content:"✓";font-size:18px}.ion-scheduler__step.completed .ion-scheduler__step-number span{display:none}.ion-scheduler__step-label{color:var(--ion-gray-500);font-size:13px;font-weight:500;text-align:center;transition:var(--ion-transition);white-space:nowrap}.ion-scheduler__step.active .ion-scheduler__step-label,.ion-scheduler__step.completed .ion-scheduler__step-label{color:var(--ion-primary)}.ion-scheduler__step-line{background:var(--ion-gray-200);border-radius:2px;flex:1;height:3px;margin:0 16px 28px;max-width:100px;transition:var(--ion-transition)}.ion-scheduler__step-line.active{background:var(--ion-success)}.ion-scheduler__form-container{background:var(--ion-white);border-radius:var(--ion-radius-lg);box-shadow:var(--ion-shadow-lg);overflow:hidden}.ion-scheduler__panel{animation:fadeIn .4s ease;display:none;padding:40px}.ion-scheduler__panel.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ion-scheduler__panel-title{color:var(--ion-primary);font-size:20px;font-weight:600;margin:0 0 8px}.ion-scheduler__panel-subtitle{color:var(--ion-text-light);font-size:14px;margin:0 0 24px}.ion-scheduler__form-grid{display:grid;gap:20px;grid-template-columns:repeat(2,1fr);margin-bottom:32px}.ion-scheduler__field{display:flex;flex-direction:column;gap:6px}.ion-scheduler__field label{color:var(--ion-text);font-size:14px;font-weight:500}.ion-scheduler__field label .required{color:var(--ion-error)}.ion-scheduler__field input{background:var(--ion-white);border:2px solid var(--ion-gray-300);border-radius:var(--ion-radius);color:var(--ion-text);font-size:15px;padding:14px 16px;transition:var(--ion-transition)}.ion-scheduler__field input:focus{border-color:var(--ion-primary);box-shadow:0 0 0 3px rgba(26,31,46,.1);outline:none}.ion-scheduler__field input.error{background:#fff5f5;border-color:var(--ion-error)}.ion-scheduler__field input::placeholder{color:var(--ion-gray-500)}.ion-scheduler__ionists-grid{display:grid;gap:16px;grid-template-columns:repeat(2,1fr);margin-bottom:32px}.ion-scheduler__ionist-card{cursor:pointer;position:relative}.ion-scheduler__ionist-card input{opacity:0;pointer-events:none;position:absolute}.ion-scheduler__ionist-content{align-items:center;background:var(--ion-gray-100);border:2px solid transparent;border-radius:var(--ion-radius);display:flex;gap:16px;padding:20px;transition:var(--ion-transition)}.ion-scheduler__ionist-card:hover .ion-scheduler__ionist-content{background:var(--ion-gray-200)}.ion-scheduler__ionist-card input:checked+.ion-scheduler__ionist-content,.ion-scheduler__ionist-card.selected .ion-scheduler__ionist-content{background:rgba(26,31,46,.05);border-color:var(--ion-primary)}.ion-scheduler__ionist-avatar{align-items:center;background:linear-gradient(135deg,var(--ion-primary) 0,var(--ion-secondary) 100%);border-radius:50%;display:flex;flex-shrink:0;height:56px;justify-content:center;overflow:hidden;width:56px}.ion-scheduler__ionist-avatar img{height:100%;object-fit:cover;width:100%}.ion-scheduler__ionist-avatar svg{stroke:var(--ion-white)}.ion-scheduler__ionist-initials{color:var(--ion-white);font-size:18px;font-weight:600;letter-spacing:.5px}.ion-scheduler__ionist-card--no-pref{grid-column:1/-1}.ion-scheduler__ionist-card--no-pref .ion-scheduler__ionist-content{background:linear-gradient(135deg,var(--ion-gray-100) 0,var(--ion-gray-200) 100%);justify-content:center}.ion-scheduler__ionist-card--no-pref .ion-scheduler__ionist-avatar{background:var(--ion-primary)}.ion-scheduler__ionist-card--no-pref input:checked+.ion-scheduler__ionist-content,.ion-scheduler__ionist-card--no-pref.selected .ion-scheduler__ionist-content{background:linear-gradient(135deg,rgba(26,31,46,.08),rgba(26,31,46,.12))}.ion-scheduler__ionist-info{flex:1;min-width:0}.ion-scheduler__ionist-name{color:var(--ion-primary);display:block;font-size:15px;font-weight:600;margin-bottom:4px}.ion-scheduler__ionist-role{color:var(--ion-text-light);display:block;font-size:13px;line-height:1.4}.ion-scheduler__ionist-check{align-items:center;background:var(--ion-gray-300);border-radius:50%;display:flex;flex-shrink:0;height:28px;justify-content:center;transition:var(--ion-transition);width:28px}.ion-scheduler__ionist-check svg{opacity:0;stroke:var(--ion-white);transform:scale(.5);transition:var(--ion-transition)}.ion-scheduler__ionist-card input:checked+.ion-scheduler__ionist-content .ion-scheduler__ionist-check,.ion-scheduler__ionist-card.selected .ion-scheduler__ionist-check{background:var(--ion-success)}.ion-scheduler__ionist-card input:checked+.ion-scheduler__ionist-content .ion-scheduler__ionist-check svg,.ion-scheduler__ionist-card.selected .ion-scheduler__ionist-check svg{opacity:1;transform:scale(1)}.ion-scheduler__dates-grid{display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin-bottom:32px}.ion-scheduler__date-card{cursor:pointer;position:relative}.ion-scheduler__date-card input{opacity:0;pointer-events:none;position:absolute}.ion-scheduler__date-content{align-items:center;background:var(--ion-gray-100);border:2px solid transparent;border-radius:var(--ion-radius);display:flex;flex-direction:column;padding:24px 16px;position:relative;text-align:center;transition:var(--ion-transition)}.ion-scheduler__date-card:hover .ion-scheduler__date-content{background:var(--ion-gray-200)}.ion-scheduler__date-card input:checked+.ion-scheduler__date-content,.ion-scheduler__date-card.selected .ion-scheduler__date-content{background:rgba(26,31,46,.05);border-color:var(--ion-primary)}.ion-scheduler__date-day{color:var(--ion-text-light);font-size:13px;font-weight:500;letter-spacing:1px;margin-bottom:8px;text-transform:uppercase}.ion-scheduler__date-number{color:var(--ion-primary);font-size:36px;font-weight:700;line-height:1;margin-bottom:4px}.ion-scheduler__date-month{color:var(--ion-text-light);font-size:14px;font-weight:500}.ion-scheduler__date-check{align-items:center;background:var(--ion-gray-300);border-radius:50%;display:flex;height:24px;justify-content:center;position:absolute;right:12px;top:12px;transition:var(--ion-transition);width:24px}.ion-scheduler__date-check svg{height:14px;opacity:0;stroke:var(--ion-white);transform:scale(.5);transition:var(--ion-transition);width:14px}.ion-scheduler__date-card input:checked+.ion-scheduler__date-content .ion-scheduler__date-check,.ion-scheduler__date-card.selected .ion-scheduler__date-check{background:var(--ion-success)}.ion-scheduler__date-card input:checked+.ion-scheduler__date-content .ion-scheduler__date-check svg,.ion-scheduler__date-card.selected .ion-scheduler__date-check svg{opacity:1;transform:scale(1)}.ion-scheduler__message-field{margin-bottom:24px}.ion-scheduler__message-field label{color:var(--ion-gray-700);display:block;font-family:var(--ion-font);font-size:14px;font-weight:500;margin-bottom:8px}.ion-scheduler__message-field textarea{background:#fff;border:2px solid var(--ion-gray-300);border-radius:var(--ion-radius);color:var(--ion-primary);font-family:var(--ion-font);font-size:15px;min-height:100px;padding:14px 16px;resize:vertical;transition:var(--ion-transition);width:100%}.ion-scheduler__message-field textarea:focus{border-color:var(--ion-primary);box-shadow:0 0 0 3px rgba(26,31,46,.1);outline:none}.ion-scheduler__message-field textarea::placeholder{color:var(--ion-gray-400)}.ion-scheduler__opt-in{background:var(--ion-gray-100);border-radius:var(--ion-radius);margin-bottom:32px;padding:20px}.ion-scheduler__checkbox-label{align-items:flex-start;cursor:pointer;display:flex;gap:12px}.ion-scheduler__checkbox-label input{opacity:0;pointer-events:none;position:absolute}.ion-scheduler__checkbox-custom{align-items:center;border:2px solid var(--ion-gray-400);border-radius:4px;display:flex;flex-shrink:0;height:22px;justify-content:center;margin-top:1px;transition:var(--ion-transition);width:22px}.ion-scheduler__checkbox-custom:after{color:var(--ion-white);content:"✓";font-size:14px;font-weight:700;opacity:0;transform:scale(.5);transition:var(--ion-transition)}.ion-scheduler__checkbox-label input:checked+.ion-scheduler__checkbox-custom{background:var(--ion-primary);border-color:var(--ion-primary)}.ion-scheduler__checkbox-label input:checked+.ion-scheduler__checkbox-custom:after{opacity:1;transform:scale(1)}.ion-scheduler__checkbox-text{color:var(--ion-text);font-size:14px;line-height:1.5}.ion-scheduler__checkbox-text a{color:var(--ion-primary);text-decoration:underline}.ion-scheduler__checkbox-text a:hover{color:var(--ion-secondary)}.ion-scheduler__actions{border-top:1px solid var(--ion-gray-200);display:flex;gap:16px;justify-content:space-between;padding-top:16px}.ion-scheduler__btn{align-items:center;border:none;border-radius:var(--ion-radius);cursor:pointer;display:inline-flex;font-size:15px;font-weight:600;gap:8px;padding:14px 28px;transition:var(--ion-transition)}.ion-scheduler__btn:disabled{cursor:not-allowed;opacity:.5}.ion-scheduler__btn--primary{background:var(--ion-primary);color:var(--ion-white);margin-left:auto}.ion-scheduler__btn--primary:hover:not(:disabled){background:var(--ion-primary-dark);box-shadow:var(--ion-shadow);transform:translateY(-1px)}.ion-scheduler__btn--secondary{background:transparent;border:2px solid var(--ion-gray-300);color:var(--ion-text)}.ion-scheduler__btn--secondary:hover:not(:disabled){background:var(--ion-gray-100);border-color:var(--ion-gray-400)}.ion-scheduler__btn--submit .ion-scheduler__btn-loading,.ion-scheduler__btn--submit.loading .ion-scheduler__btn-text,.ion-scheduler__btn--submit.loading svg:last-child{display:none}.ion-scheduler__btn--submit.loading .ion-scheduler__btn-loading{display:flex}.ion-scheduler__spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ion-scheduler__panel--success{padding:60px 40px;text-align:center}.ion-scheduler__success-icon{align-items:center;background:linear-gradient(135deg,#d4edda,#c3e6cb);border-radius:50%;display:flex;height:80px;justify-content:center;margin:0 auto 24px;width:80px}.ion-scheduler__success-icon svg{stroke:var(--ion-success)}.ion-scheduler__success-title{color:var(--ion-primary);font-size:24px;font-weight:700;margin:0 0 12px}.ion-scheduler__success-message{color:var(--ion-text-light);font-size:16px;margin:0 auto 32px;max-width:400px}.ion-scheduler__success-details{background:var(--ion-gray-100);border-radius:var(--ion-radius);display:inline-block;padding:20px 24px;text-align:left}.ion-scheduler__success-details p{color:var(--ion-text);font-size:14px;margin:0}.ion-scheduler__success-details p+p{margin-top:8px}.ion-scheduler__success-details strong{color:var(--ion-primary)}@media (max-width:768px){.ion-appointment-scheduler{padding:24px 16px}.ion-scheduler__header{margin-bottom:32px}.ion-scheduler__title{font-size:24px}.ion-scheduler__subtitle{font-size:14px}.ion-scheduler__progress{margin-bottom:32px;padding:0}.ion-scheduler__step-number{font-size:14px;height:32px;width:32px}.ion-scheduler__step-label{font-size:11px;line-height:1.3;max-width:70px;white-space:normal}.ion-scheduler__step-line{margin:0 8px 32px;max-width:50px}.ion-scheduler__panel{padding:24px 20px}.ion-scheduler__panel-title{font-size:18px}.ion-scheduler__form-grid{gap:16px;grid-template-columns:1fr;margin-bottom:24px}.ion-scheduler__field input{font-size:16px;padding:12px 14px}.ion-scheduler__ionists-grid{gap:12px;grid-template-columns:1fr;margin-bottom:24px}.ion-scheduler__ionist-content{gap:12px;padding:16px}.ion-scheduler__ionist-avatar{height:48px;width:48px}.ion-scheduler__ionist-avatar svg{height:24px;width:24px}.ion-scheduler__ionist-initials{font-size:16px}.ion-scheduler__ionist-card--no-pref{grid-column:1/-1}.ion-scheduler__ionist-name{font-size:14px}.ion-scheduler__ionist-role{font-size:12px}.ion-scheduler__ionist-check{height:24px;width:24px}.ion-scheduler__dates-grid{gap:12px;grid-template-columns:1fr;margin-bottom:24px}.ion-scheduler__date-content{flex-direction:row;gap:16px;justify-content:flex-start;padding:16px 20px;text-align:left}.ion-scheduler__date-day{margin-bottom:0;min-width:80px}.ion-scheduler__date-number{font-size:28px;margin-bottom:0}.ion-scheduler__date-month{flex:1}.ion-scheduler__date-check{position:relative;right:auto;top:auto}.ion-scheduler__opt-in{margin-bottom:24px;padding:16px}.ion-scheduler__checkbox-text{font-size:13px}.ion-scheduler__actions{flex-direction:column-reverse;gap:12px;padding-top:20px}.ion-scheduler__btn{justify-content:center;padding:16px 24px;width:100%}.ion-scheduler__btn--primary{margin-left:0}.ion-scheduler__panel--success{padding:40px 20px}.ion-scheduler__success-icon{height:64px;width:64px}.ion-scheduler__success-icon svg{height:48px;width:48px}.ion-scheduler__success-title{font-size:20px}.ion-scheduler__success-message{font-size:14px}.ion-scheduler__success-details{width:100%}}@media (max-width:480px){.ion-scheduler__title{font-size:20px}.ion-scheduler__step-label{font-size:10px}.ion-scheduler__panel{padding:20px 16px}}@media (prefers-color-scheme:dark){.ion-appointment-scheduler.dark-mode{--ion-primary:#fff;--ion-primary-dark:#e9ecef;--ion-secondary:#adb5bd;--ion-text:#fff;--ion-text-light:#adb5bd;--ion-gray-100:#2d3548;--ion-gray-200:#3d4560;--ion-gray-300:#4d5570;--ion-gray-400:#6c757d;--ion-white:#1a1f2e}}