.wppa-booking{display:block;max-width:100%;}

/* Theme-friendly variables (can be overridden by theme). Scoped to .wppa-booking so themes may scope safely. */
.wppa-booking{
    --wppa-accent: var(--wp--preset--color--primary, #2271b1);
    --wppa-bg: transparent;
    --wppa-text: inherit;
    --wppa-border: rgba(0,0,0,.12);
    --wppa-radius: 12px;
    --wppa-spacing: .5rem;
    --wppa-fade: 40px;
}

.wppa-days{display:flex;gap:var(--wppa-spacing);flex-wrap:nowrap;overflow-x:auto;padding-bottom:.25rem;margin-bottom:var(--wppa-spacing);scrollbar-width:none;--wppa-fade:var(--wppa-fade);-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--wppa-fade),#000 calc(100% - var(--wppa-fade)),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 var(--wppa-fade),#000 calc(100% - var(--wppa-fade)),transparent 100%)}
.wppa-days::-webkit-scrollbar{display:none}
.wppa-booking{position:relative}

/* Align Book button visually with inputs */
.wppa-form.row{align-items:stretch}
.wppa-form .btn{height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;border-radius:.375rem;display:inline-flex;align-items:center;justify-content:center}
.wppa-days.dragging{cursor:grabbing}
.wppa-days{position:relative}

/* Fake scrollbar */
.wppa-days-scrollbar{position:relative;height:6px;margin:.25rem 8px 1rem;}
.wppa-days-scrollbar .wppa-scrollbar-track{position:absolute;left:0;right:0;top:0;bottom:0;background:rgba(0,0,0,.08);border-radius:999px}
.wppa-days-scrollbar .wppa-scrollbar-thumb{position:absolute;top:0;bottom:0;left:0;height:6px;background:var(--wppa-accent,#9aaec4);border-radius:999px;transition:transform .08s linear}
.wppa-day{display:flex;flex-direction:column;align-items:center;gap:.15rem;min-width:100px;padding:calc(var(--wppa-spacing) * .9);border:1px solid var(--wppa-border);border-radius:calc(var(--wppa-radius) / 1.5);cursor:pointer;background:var(--wppa-bg);flex:0 0 auto}
.wppa-day .wppa-day-dow{font-weight:600}
.wppa-day .wppa-day-date{opacity:.7;font-size:.9em}
.wppa-day:hover{border-color:var(--wppa-accent)}
.wppa-day.active{background:var(--wppa-accent);color:#fff;border-color:var(--wppa-accent)}
.wppa-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:calc(var(--wppa-spacing) * 1.5);margin:0 0 1rem;width:100%}
.wppa-slots:empty{min-height:2rem}
.wppa-slot{padding:calc(var(--wppa-spacing) * 1.8) 0;text-align:center;border:1px solid var(--wppa-border);border-radius:var(--wppa-radius);cursor:pointer;background:color-mix(in srgb, var(--wppa-accent) 12%, transparent);user-select:none}
/* Fallback for browsers that don't support color-mix */
@supports not (background: color-mix(in srgb, var(--wppa-accent) 12%, transparent)) {
    .wppa-slot{background: #e8f6ff}
}
.wppa-slot.skeleton{background:linear-gradient( 90deg, #f1f5f9 25%, #e9eef5 37%, #f1f5f9 63% );background-size:400% 100%;animation:wppa-shimmer 1.2s ease-in-out infinite}
@keyframes wppa-shimmer{0%{background-position:100% 0}100%{background-position:0 0}}
.wppa-slot:hover{border-color:var(--wppa-accent);box-shadow:0 0 0 1px var(--wppa-accent) inset}
.wppa-slot.busy{opacity:.45;pointer-events:none}
.wppa-slot.selected{background:var(--wppa-accent);color:#fff;border-color:var(--wppa-accent)}
.wppa-success {
        /* sensible default */
        background: #d4edda;
        border: 1px solid #c3e6cb;
        color: #155724;
        padding: 1rem;
        border-radius: 8px;
        text-align: center;
        margin: 1rem 0;
        animation: wppa-fade-in 0.3s ease-in;
}

/* If advanced color functions are supported, slightly tint success with accent */
@supports (background: color-mix(in srgb, var(--wppa-accent) 12%, #d4edda)) {
    .wppa-success {
        background: color-mix(in srgb, var(--wppa-accent, #2271b1) 12%, #d4edda 88%);
        border: 1px solid color-mix(in srgb, var(--wppa-accent, #2271b1) 14%, #c3e6cb 86%);
        color: #155724;
    }
}
@keyframes wppa-fade-in {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes wppa-fade-out {
    from { opacity: 1; transform: translateY(0); }
    to { opacity: 0; transform: translateY(-10px); }
}
@media (max-width: 782px){.wppa-slots{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}

/* Edge fades for days strip (no arrows) */
.wppa-days-fade{position:absolute;top:0;bottom:auto;width:120px;display:none;z-index:3;pointer-events:none;border-radius:12px;mix-blend-mode:normal}
.wppa-days-fade.right{right:0;left:auto;background:linear-gradient(270deg, rgba(255,255,255,.95), rgba(255,255,255,0))}
.wppa-days-fade.left{left:0;background:linear-gradient(90deg, rgba(255,255,255,.95), rgba(255,255,255,0))}
.wppa-booking{position:relative}

