body { margin:0; background:#f7f8fc; color:#283049; font-family:system-ui,sans-serif; }
.public-booking { max-width:780px; padding:28px 20px; margin:auto; }
.public-booking h1 { font-size:26px; font-weight:700; }.public-intro { margin:5px 0 22px; color:#6f7785; }
.public-step { margin-top:16px; padding:22px; background:#fff; border:1px solid #e4e7f0; border-radius:14px; }
.public-step h2 { font-size:17px; font-weight:600; margin:0 0 14px; }
.public-step[hidden], .public-offering[hidden], .public-services button[hidden] { display:none; }
.public-search { display:grid; gap:5px; color:#6f7785; font-size:13px; }
.public-search input { border:1px solid #dce0ec; border-radius:9px; padding:10px; color:#283049; }
.public-services { display:grid; gap:9px; margin-top:12px; }
.public-services button { padding:13px; border:1px solid #e0e3ef; border-radius:10px; background:#fff; text-align:left; }
.public-services button[aria-pressed=true] { border-color:#8e80e5; background:#f1edff; }
.public-services button span { display:block; font-size:12px; color:#6f7785; margin-top:3px; }
.public-month-heading { display:flex; justify-content:space-between; align-items:center; margin:15px 0; }
.public-month-heading button { width:36px; height:36px; border:1px solid #e0e3ef; border-radius:8px; }
.public-month-heading button:disabled { opacity:.3; }
.public-weekdays, .public-month { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; text-align:center; }
.public-weekdays { font-size:12px; color:#8990a0; margin-bottom:8px; }
.public-month button { position:relative; min-height:42px; border-radius:9px; border:1px solid transparent; font-size:14px; }
.public-month button:disabled { color:#c3c8d3; }
.public-month button.is-available { background:#f1edff; color:#6254dc; }
.public-month button.is-available::after { content:''; display:block; width:4px; height:4px; margin:2px auto 0; border-radius:50%; background:#8f80e2; }
.public-month button[aria-pressed=true] { background:#6254dc; color:#fff; }
.public-month button[aria-pressed=true]::after { background:#fff; }
.public-hint { font-size:12px; color:#6f7785; margin-top:13px; }
.public-offerings { display:grid; gap:9px; margin-top:12px; }
.public-offering { display:flex; gap:10px; padding:13px; border:1px solid #e0e3ef; border-radius:10px; cursor:pointer; }
.public-offering:has(input:checked) { background:#f1edff; border-color:#8e80e5; }
.public-offering span span { display:block; font-size:13px; margin-top:3px; color:#6f7785; }
.public-offering time { display:none; }
.public-selection { padding:10px; border-radius:8px; background:#f3f1fc; margin-bottom:16px; font-size:13px; }
.public-empty { padding:20px; border:1px solid #e4e7f0; border-radius:12px; background:#fff; margin-top:18px; }
.public-booking input:focus-visible, .public-booking button:focus-visible, .public-booking select:focus-visible { outline:2px solid #8f80e2; outline-offset:2px; }
@media(max-width:600px) { .public-booking { padding:18px 12px; }.public-step { padding:16px; }.public-month button { min-height:38px; } }
