/* Termin-Buchung – Frontend */
.termin-widget{max-width:640px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:#2C2C2A}
.termin-header{display:flex;align-items:center;gap:12px;margin-bottom:1.5rem}
.termin-logo{width:44px;height:44px;border-radius:50%;background:#534AB7;color:white;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.termin-title{font-size:20px !important;font-weight:600 !important;color:#26215C !important;margin:0 !important;padding:0 !important;border:none !important}
.termin-subtitle{font-size:13px;color:#888780;margin:2px 0 0 !important}
.termin-card{background:#fff;border:1px solid #e0dff8;border-radius:12px;padding:1.5rem;margin-bottom:1rem}
.termin-card--success{border-color:#9FE1CB;text-align:center}
.termin-step-label{font-size:11px !important;text-transform:uppercase;letter-spacing:.07em;color:#888780;margin:0 0 1rem !important;font-weight:500}

/* Services */
.termin-services{display:flex;flex-direction:column;gap:10px}
.termin-service-item{border:1.5px solid #E0DFF8;border-radius:10px;padding:1rem 1.25rem;cursor:pointer;transition:all .2s;display:flex;justify-content:space-between;align-items:center}
.termin-service-item:hover{border-color:#7F77DD;background:#EEEDFE}
.termin-service-item.active{border-color:#534AB7;background:#EEEDFE;box-shadow:0 0 0 3px rgba(83,74,183,.12)}
.termin-service-name{font-size:15px;font-weight:600;color:#26215C;margin-bottom:3px}
.termin-service-meta{font-size:12px;color:#888780}
.termin-service-price{font-size:16px;font-weight:600;color:#534AB7;text-align:right}
.termin-service-type{font-size:11px;color:#888780;text-align:right;margin-top:2px}

/* Calendar */
.termin-cal-wrap{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:1rem}
.termin-calendar{border:1px solid #E0DFF8;border-radius:10px;overflow:hidden}
.termin-cal-nav{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#EEEDFE}
.termin-month-label{font-size:14px;font-weight:600;color:#26215C}
.termin-nav-btn{background:transparent;border:none;font-size:18px;cursor:pointer;color:#534AB7;padding:0 8px;line-height:1}
.termin-cal-days-header{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:11px;color:#888780;font-weight:500;padding:8px 4px 4px;gap:2px}
.termin-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:4px 4px 8px}
.termin-cal-day{text-align:center;padding:6px 2px;font-size:13px;border-radius:6px;cursor:default;color:#B4B2A9}
.termin-cal-day.available{color:#2C2C2A;cursor:pointer;background:#F1EFE8}
.termin-cal-day.available:hover{background:#EEEDFE;color:#534AB7;font-weight:500}
.termin-cal-day.selected{background:#534AB7;color:white !important;font-weight:600}
.termin-cal-day.today{font-weight:600;color:#534AB7}
.termin-cal-day.other-month{opacity:.3}

/* Slots */
.termin-slots-wrap{border:1px solid #E0DFF8;border-radius:10px;padding:1rem;max-height:260px;overflow-y:auto}
.termin-slots-hint{font-size:13px;color:#888780;text-align:center;margin:2rem 0 !important}
.termin-slots-list{display:flex;flex-direction:column;gap:6px}
.termin-slot{padding:9px 14px;border:1px solid #D3D1C7;border-radius:8px;font-size:14px;cursor:pointer;text-align:center;transition:all .15s}
.termin-slot:hover{border-color:#7F77DD;background:#EEEDFE;color:#534AB7}
.termin-slot.selected{background:#534AB7;color:white;border-color:#534AB7;font-weight:500}

/* Contact form */
.termin-booking-summary{background:#E1F5EE;border:1px solid #9FE1CB;border-radius:8px;padding:12px 16px;font-size:14px;margin-bottom:1rem;line-height:1.8}
.termin-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.termin-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.termin-field label{font-size:12px !important;color:#5F5E5A;font-weight:500;margin:0 !important}
.termin-field input,.termin-field textarea{padding:9px 12px;border:1px solid #D3D1C7;border-radius:8px;font-size:14px;color:#2C2C2A;background:#fff;width:100%;box-sizing:border-box;margin:0 !important;font-family:inherit}
.termin-field input:focus,.termin-field textarea:focus{outline:none;border-color:#7F77DD;box-shadow:0 0 0 3px rgba(127,119,221,.15)}

/* Buttons */
.termin-btn{display:block;width:100%;padding:11px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid #D3D1C7;background:transparent;color:#2C2C2A;text-align:center;margin-top:.75rem;transition:all .15s}
.termin-btn--primary{background:#534AB7;color:white;border-color:#534AB7;margin-top:1rem}
.termin-btn--primary:hover{background:#3C3489}
.termin-btn--ghost{font-size:13px;color:#888780;border-color:transparent;padding:6px 0;margin-top:4px}
.termin-btn--ghost:hover{background:transparent;text-decoration:underline}

/* Success */
.termin-success-icon{width:52px;height:52px;border-radius:50%;background:#E1F5EE;color:#0F6E56;font-size:24px;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}
.termin-success-title{font-size:20px !important;font-weight:600 !important;color:#0F6E56 !important;margin:0 0 .5rem !important;border:none !important;padding:0 !important}
.termin-success-sub{font-size:14px;color:#888780;margin:0 0 1rem !important}

/* Loading */
.termin-loading{display:flex;align-items:center;gap:10px;padding:.75rem 0;font-size:13px;color:#888780}
.termin-dots{display:flex;gap:4px}
.termin-dot{width:6px;height:6px;border-radius:50%;background:#7F77DD;animation:tpulse 1.2s ease-in-out infinite}
.termin-dot:nth-child(2){animation-delay:.2s}.termin-dot:nth-child(3){animation-delay:.4s}
@keyframes tpulse{0%,100%{opacity:.25}50%{opacity:1}}
.termin-error{font-size:13px;color:#993C1D;background:#FAECE7;border-radius:6px;padding:8px 12px;margin:.5rem 0 0 !important}

@media(max-width:520px){
  .termin-cal-wrap{grid-template-columns:1fr}
  .termin-form-row{grid-template-columns:1fr}
}
