.abp-booking{max-width:980px;margin:30px auto;padding:28px;border-radius:24px;background:#fff;box-shadow:0 18px 60px rgba(15,23,42,.12);font-family:inherit;color:#111827}
.abp-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:28px}
.abp-progress span{padding:12px;border-radius:999px;background:#f3f4f6;text-align:center;font-weight:700;color:#6b7280}
.abp-progress span.is-active{background:#111827;color:#fff}
.abp-step{display:none}
.abp-step.is-active{display:block}
.abp-step h2{font-size:28px;margin:0 0 22px}
.abp-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.abp-type-card,.abp-date-card,.abp-time-card{appearance:none;border:1px solid #e5e7eb;background:#fff;border-radius:18px;padding:20px;text-align:left;cursor:pointer;transition:.2s ease;box-shadow:0 8px 24px rgba(15,23,42,.06);font-family:inherit}
.abp-type-card:hover,.abp-date-card:hover,.abp-time-card:hover,.abp-type-card.is-selected,.abp-date-card.is-selected,.abp-time-card.is-selected{border-color:#111827;transform:translateY(-1px)}
.abp-type-card strong{display:block;font-size:20px;margin-bottom:8px}
.abp-type-card span{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eef2ff;font-weight:700;margin-bottom:10px}
.abp-type-card p{margin:8px 0 0;color:#4b5563;line-height:1.45}
.abp-date-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:12px;margin-bottom:24px}
.abp-date-card{text-align:center;padding:14px}
.abp-date-card span{display:block;color:#6b7280;font-size:13px;text-transform:uppercase}
.abp-date-card strong{display:block;font-size:20px;margin-top:4px}
.abp-time-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:16px 0}
.abp-time-card{text-align:center;font-weight:800;padding:16px}
.abp-form{display:grid;gap:16px}
.abp-form label{display:grid;gap:8px;font-weight:700}
.abp-form input,.abp-form textarea{width:100%;border:1px solid #d1d5db;border-radius:14px;padding:13px 14px;font:inherit;box-sizing:border-box}
.abp-form button[type="submit"]{border:0;border-radius:16px;background:#111827;color:#fff;padding:16px 22px;font-weight:800;cursor:pointer;font:inherit}
.abp-back{margin-top:14px;border:1px solid #d1d5db;border-radius:14px;background:#fff;padding:12px 18px;cursor:pointer;font:inherit}
.abp-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:16px;border-radius:16px;background:#f9fafb;margin-bottom:18px}
.abp-summary span{color:#4b5563}
.abp-message{margin-bottom:18px;border-radius:14px;padding:0;font-weight:700}
.abp-message.is-error,.abp-message.is-success{padding:14px 16px}
.abp-message.is-error{background:#fef2f2;color:#991b1b}
.abp-message.is-success{background:#ecfdf5;color:#065f46}
.abp-empty,.abp-loading{padding:18px;border-radius:16px;background:#f9fafb;color:#4b5563}

.abp-loading-animated{display:flex;align-items:center;gap:14px;min-height:72px;box-sizing:border-box}
.abp-loading-animated strong{display:block;color:#111827}
.abp-loading-animated small{display:block;color:#6b7280;margin-top:3px}
.abp-spinner{width:26px;height:26px;border:3px solid #e5e7eb;border-top-color:#111827;border-radius:999px;flex:0 0 auto;animation:abpSpin .8s linear infinite}
@keyframes abpSpin{to{transform:rotate(360deg)}}
@media (max-width:640px){.abp-booking{padding:18px}.abp-progress{grid-template-columns:1fr}.abp-summary{display:block}.abp-step h2{font-size:23px}}
.abp-date-grid .abp-empty,.abp-date-grid .abp-loading{grid-column:1/-1}

.abp-calendar-intro{margin:0 0 28px;color:#374151;line-height:1.65}
.abp-calendar-intro>:first-child{margin-top:0}
.abp-calendar-intro>:last-child{margin-bottom:0}
.abp-date-grid{grid-template-columns:1fr}
.abp-date-group{text-align:left;cursor:default}
.abp-date-group:hover,.abp-date-group.is-selected{transform:none}
.abp-date-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.abp-date-head span{font-size:13px;text-transform:uppercase;color:#6b7280;font-weight:800}
.abp-date-head strong{font-size:22px;margin:0}
.abp-date-head em{font-style:normal;font-size:13px;border-radius:999px;background:#f3f4f6;color:#4b5563;padding:5px 9px;font-weight:700}
.abp-time-grid-inline{margin:0}
@media (min-width:760px){.abp-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
