= 4.0.0 =
* Formal major release combining the complete private 4.x testing line.
* Added a durable background queue, retries, performance monitoring, and fast booking confirmation.
* Added orders, invoices, payment/refund history, balances, and delayed workflow automation.
* Added shared-resource capacity, server-side booking pagination/search, Gutenberg blocks, and Elementor integration.
* Included contextual compressed image uploads, manager all-team calendars, mobile category fitting, and full interface polish.
* Preserved public 3.6.0 data, shortcodes, permissions, settings, and customer links.

= 3.6.0 =
* Added a Today workspace with next-client and daily attention indicators.
* Added Staff, Manager, and Owner presets with granular permission overrides.
* Added staff time-off requests, manager approvals, and automatic schedule blocking.
* Added client history, allergies, preferences, and recent notes to appointment details.
* Added top employee tabs so mobile calendars show one staff schedule at a time.
* Maintains compatibility with existing appointments, staff PINs, availability, shortcodes, and settings.

= 3.5.0 =
* Added a dedicated Yatoon admin shell and fixed right-edge clipping across plugin screens.
* Refined the staff portal with Day, Week, and Agenda views plus a compact mobile workflow.
* Added secure customer design-reference uploads for enabled services and Nail Art / Custom Design add-ons.
* Design images now appear in booking administration, staff appointment details, and admin notifications.
* Added global and per-service controls for customer image uploads.
* Added reusable existing-item selection when creating service options, with shared Square or local IDs.
* Improved the mobile booking progress header while retaining the original two-column staff cards.
* Fixed visible encoding artifacts and strengthened service-schema repair during upgrades.
* Maintains compatibility with existing bookings, shortcodes, services, staff, and settings from 3.4.0.

= 3.4.0 =
* Preserved the 3.3.20-3.3.29 Services admin fixes as the new release baseline.
* Added a privacy-aware five-step activation funnel for opted-in Freemius installs.
* Added anonymous event queuing, background delivery, retry limits, and local-only fallback.
* Kept the database schema version pinned because this release has no table changes.

= 3.3.29 =
* Replaced the Services list status checkbox with a clear Active/Hidden status button so selection and visibility controls are no longer confused.
* Widened the Edit Service modal, added an explicit close button, and prevented option action controls from being clipped.

= 3.3.28 =
* Made Service Options / Variations editable directly inside the Edit Service modal, including name, duration, price, and type.
* Added per-option Save and Delete controls so add-ons no longer need to be deleted and recreated for small changes.

= 3.3.27 =
* Reworked the Services admin page into self-contained service rows that show key details without dragging right.
* Disabled resizable-column behavior for the Services list so old saved column widths cannot squeeze the visible content.

= 3.3.26 =
* Reworked the Services admin list into a compact overview that fits common admin screens without hunting for far-right actions.
* Added click-row-to-edit behavior so service details, categories, options, and add-ons are managed in the edit modal instead of a wide inline table.

= 3.3.25 =
* Moved Services admin management actions into the top toolbar: select one service, then Edit Selected, Add Add-on, or Delete Selected.
* Hid the far-right row Actions column from the Services table so important controls no longer require horizontal scrolling.

= 3.3.24 =
* Fixed the Services admin table column initialization so Service Name no longer expands and pushes Duration, Price, Category, Status, and Actions off-screen.
* Preserved resizable columns while applying practical default widths and a one-time reset of older saved oversized Services table widths.

= 3.3.23 =
* Refined the Services admin table so default columns start narrower while remaining resizable by the user.
* Reset old saved Services table widths and made service selection update immediately on pointer down.

= 3.3.22 =
* Improved the Services admin table so key actions stay visible without horizontal hunting on desktop screens.
* Made service row selection more reliable by increasing checkbox hit targets and allowing the checkbox cell to toggle selection.

= 3.3.21 =
* Improved the Services admin option editor with visible Save/Delete actions, Unsaved/Saved feedback, and clearer inline option management.
* Fixed duplicate horizontal scrollbars on the Services admin table so option editing is easier to use.

= 3.3.19 =
* Stability: Free and Pro now load the same shared core before all business classes.
* Upgrade safety: UI-only releases no longer rerun the full database schema migration.
* Testing: Added automated shared-core, schema-upgrade, package parity, and WP-CLI smoke tests.
* Onboarding: Added package-aware setup, optional demo data, automatic pages, and direct test booking.
* Insights: Added a local activation funnel from activation through the first real booking.
* UI: Balanced mobile booking-page endings while keeping Pro free of public attribution.

= 3.3.18 =
* Improved: Client profiles now surface VIP, upcoming booking, no-show, and unpaid signals directly in the client list.
* Improved: Square no-show fee statuses are clearer across Staff Portal, admin calendar, and bookings.
* Improved: Booking payment status labels now include no-show fee charged and waived states for cleaner operations.

= 3.3.17 =
* New: Added a Square-only no-show fee workflow for Staff Portal and admin calendar.
* New: Staff can open Square, copy the Square booking ID, mark a no-show fee charged in Square, or waive the fee after marking an appointment No Show.
* Improved: No-show appointments remain visible in operational calendar views so staff can finish the charge/waive decision.

= 3.3.16 =
* Refined mobile booking polish, admin clarity, license messaging, and package metadata for a cleaner production release.
* Improved touch targets, focus states, and card spacing across the booking UI without changing existing workflows.

= Changelog =

= 3.3.20 =
* Fixed Android/narrow-browser wrapping in option and add-on cards so long labels no longer collapse into vertical text.
* Improved mobile booking container width and option-card spacing for a cleaner, less cramped layout.

= 3.3.15 =
* Final polish: mobile steps, service cards, category tabs, AI helper, and license/upgrade wording are cleaner and easier to scan.
* Improved: Booking flow copy is clearer across group bookings, staff choice, appointment length, review, and mobile cart states.
* Improved: Add guests and services review uses numbered guest labels and a consistent primary action style.
* Improved: Time selection now uses an Edit Services action that returns customers to the service/guest review instead of defaulting to adding another service for Me.

= 3.3.14 =
* Improved: Group guest appointments now show the time range first and Reserved Time underneath, with guests clearly shown as starting together instead of implying sequential service order.

= 3.3.12 =
* New: Added separate mobile and desktop Popular Picks count controls with custom 1 to 12 item limits.
* Improved: Reduced the spacing between service category tabs and the first category heading for a cleaner mobile storefront.
* Improved: Popular Picks now adapts per screen size while keeping full, uncropped service cards.

= 3.3.5 =
* Improved: Popular Picks on mobile now uses complete service cards instead of a horizontal rail that can show a cropped second card.
* Improved: Popular service cards now adapt to two-column mobile layouts and single-column ultra-narrow screens for a cleaner storefront feel.
* New: Added a Brand Settings toggle to show or hide the Popular Picks section on the booking page.
* Improved: Added a SaaS-style polish pass for admin cards, tables, forms, customer booking surfaces, and staff portal tap targets.
* Fixed: Staff Portal calendar now loads the selected week instead of only today, so staff can view past and upcoming appointments.
* Improved: Staff Portal More sheet now shows current Add Appointment, Customers, and All Schedules permission status.
* Improved: Staff Portal bottom navigation now stays fixed to the screen bottom and adapts when all feature buttons are enabled.
* Improved: Staff Portal multi-staff timeline is more compact and scannable on mobile, closer to a professional calendar app.

= 3.3.4 =
* Improved: Staff Portal now feels more like a native mobile app with icon-style navigation, compact top actions, clearer empty-day actions, richer timeline cards, and a more useful appointment detail sheet.
* Improved: Owner Dashboard now opens with a daily command center focused on today's visits, unpaid appointments, and quick operational actions.
* Improved: Customer booking pages received another mobile polish pass for quick date choices, no-availability actions, mobile cart bar, and success confirmation cards.
* Improved: Staff Portal production assets were refreshed so minified CSS/JS builds load the same app polish.

= 3.3.3 =
* New: Added a customer-facing popular services rail so visitors can start from featured or commonly booked services faster.
* New: Added booking highlight cards and quick date shortcuts for Today, Tomorrow, and This week.
* Improved: Staff Portal now includes daily appointment insights, customer list insights, message templates, and a direct message action from appointment details.
* Improved: Staff Portal calendar styling now better matches the Yatoon booking theme with a brighter app-like interface.
* Improved: Saved Square, Vagaro, Stripe, Twilio, and Google secrets are now masked in admin forms and are not overwritten by blank credential fields.
* New: Added Yatoon-specific capability names for future owner, manager, booking, service, staff, and report role delegation.
* New: Added market positioning and security notes for launch, support, and customer evaluation.

= 3.3.2 =
* Improved: Booking pages in immersive mode now suppress common theme page titles and top spacing for a more app-like customer experience.
* Improved: Mobile booking action bar is constrained inside the viewport with cleaner spacing, rounded edges, and safer small-screen button sizing.
* Improved: Time selection, date cards, empty availability states, and calendar panels received another visual polish pass.
* New: Added a one-click Staff Portal page creator in Settings so merchants can quickly create the staff mobile app page with [yatoon_staff_portal].
* Improved: Setup readiness now tracks whether the Staff Portal page exists.

= 3.3.1 =
* Improved: Added a full experience polish pass across the customer booking flow, Staff Portal, Dashboard, Bookings, Services, settings cards, modals, and setup wizard.
* Improved: Customer booking cards, category tabs, option choices, time slots, checkout panels, mobile cart bar, and form focus states now share a cleaner premium Yatoon visual system.
* Improved: Staff Portal now feels more app-like with refined top bar, day tabs, calendar shell, client cards, bottom navigation, empty states, and checkout controls.
* Improved: Admin screens now have more consistent SaaS-style cards, KPI panels, table surfaces, toolbar spacing, status badges, rounded controls, and modal styling.
* Improved: Mobile spacing and touch targets were refined for a simpler, more practical booking and staff workflow.

= 3.3.0 =
* New: Staff Portal Checkout adds Square-focused in-person checkout helpers, including Open Square App, Open pay link, Copy pay link, and clearer mark-paid controls.
* New: Added admin settings for Square Checkout URL, Square App URL, and a staff-facing Square checkout note.
* Improved: Payment requests now prefer the Square Checkout URL when configured, then fall back to the generic Payment Request URL or manage-booking link.
* Improved: Staff checkout messaging now better explains that Stripe/hosted links support online wallet payments, while NFC Tap to Pay is handled through Square App or a native Square SDK app.

= 3.2.5 =
* New: Staff Portal now supports Square-style owner-controlled calendar permissions for each PIN.
* New: Authorized staff can add appointments, edit appointment time/service/staff/notes, cancel appointments, and search existing client profiles while booking.
* Improved: Staff Portal now uses a Square-style mobile calendar timeline with staff columns, appointment blocks, and tap-to-create empty time slots.
* New: Staff Portal adds Customers and Messages tabs with client list/search, client detail profiles, add/edit/delete client controls, Twilio SMS sending, and WhatsApp quick-open links.
* New: Staff Portal adds a Checkout tab and appointment checkout sheet for marking in-person payments, Square POS/Tap to Pay payments, waived balances, and sending payment requests by email, SMS, or WhatsApp.
* Improved: Staff Portal visual styling now follows the Yatoon booking brand instead of forcing a dark calendar theme.
* Improved: Staff Portal appointment management now enforces server-side permission checks, staff schedule conflict checks, and Square create/update/cancel calls when the site is in Square mode.
* Changed: Staff Portal cancellation preserves appointment history; hard delete remains limited to WordPress administrators.

= 3.2.0 =
* New: Staff Portal now supports owner-controlled calendar permissions for each PIN, including view-only access, all-staff schedule visibility, and status update permission.
* Fixed: Pro Staff Portal status updates now use permission checks instead of the Free-version upgrade block, so authorized staff can mark arrived, no-show, or completed.
* New: Completed the four-stage UI polish pass with a shared frontend and admin design layer for buttons, cards, forms, tables, modals, badges, toasts, empty states, and focus states.
* Improved: Mobile booking flow now has more consistent service selection, time selection, cart bar, drawer, empty states, and checkout review styling.
* Improved: Dashboard, Bookings, and Services admin screens now share a cleaner SaaS-style visual system with improved tables, toolbars, status badges, KPI cards, and dialogs.
* Improved: Reduced more high-impact inline styling in booking and admin templates by moving presentation into the shared UI polish stylesheet.
* Improved: Accessibility, keyboard focus, admin modal semantics, toast announcements, and privacy/external-resource presentation were refined.
= 3.1.5 =
* New: Added a premium booking flow refresh with a stronger venue hero, polished service list, sticky category navigation, and checkout-style summary sidebar.
* Improved: Mobile booking now uses a more refined bottom cart bar and drawer treatment for a cleaner Fresha/Square-like experience.
* Improved: Service cards, appointment type choices, AI helper, location banner, policy blocks, form fields, and success state have clearer spacing, depth, and selected states.
* Improved: Reduced visual dependence on inline template styles by moving more presentation into the shared UI polish stylesheet.
* Improved: Key booking hero strings are now localized for translation workflows.

= 3.1.0 =
* New: Added a unified UI polish layer for frontend booking pages and admin screens with more consistent cards, buttons, spacing, shadows, and mobile behavior.
* New: Added modern admin toast notifications to replace disruptive browser alerts on Yatoon admin pages.
* New: Added privacy controls for loading Google Fonts, international phone assets, and IP-based country detection.
* Improved: Booking form service cards, selected states, summary panels, AI assistant block, success areas, and mobile cart drawer now feel more cohesive.
* Improved: Key frontend labels such as Rating, Read more, and Show less are now localized.

= 3.0.7 =
* Improved: AI service recommendations now rank synced local availability by customer timing preferences such as today, tomorrow, morning, noon, afternoon, and evening without treating those preferences as hard limits.
* Improved: AI availability guidance now clarifies that Square and Vagaro times are based on synced local availability data and must be confirmed in the booking form, avoiding extra live API calls during AI suggestions.

= 3.0.6 =
* Improved: Staff editor modal adapts to wider and narrower admin windows so blocked-time controls remain visible.
* Fixed: Service order numbers are easier to read when they contain two or more digits.
* Fixed: Dragging services saves the new visual order reliably instead of snapping back to the previous order.
* Fixed: Long admin tables show a synced horizontal scrollbar so right-side columns remain reachable.
* New: The AI privacy note under the customer input can be edited from the AI Assistant settings page.
* Improved: AI service recommendations can use live staff assignments and upcoming availability snapshots when answering timing questions.
* New: AI provider order and model choices can be configured for OpenAI, Google Gemini, and Anthropic.

= 3.0.4 =
* Improved: Staff photos and names open the staff profile editor directly, alongside the existing Edit action.
* New: Staff profiles include photo upload/removal through the WordPress Media Library.
* Improved: Blocked Times now use a simple date/time editor with all-day support instead of requiring formatted text rules.

= 3.0.3 =
* Improved: AI Assistant collapsed button keeps the merchant's custom title, size, color, and background controls.
* Improved: Admin list tables keep long names and emails on one line with ellipsis instead of vertical wrapping.
* New: Desktop admin list tables support drag-to-resize columns with saved widths per table.

= 3.0.0 =
* New: AI-ready booking experience for WordPress 7.0 AI Client.
* New: Frontend AI service helper suggests clickable matching services from the salon's real service menu.
* New: AI service description helper improves customer-facing service descriptions from the Services editor.
* New: Pro adds AI reply drafts for Text Us messages, reviewed by staff before sending.
* Improved: AI Assistant page explains provider priority when multiple WordPress Connectors are connected.
* Improved: WordPress 6.9 and older remain fully compatible; AI actions show clear guidance when the AI Client is unavailable.
* Improved: Dedicated AI Assistant admin page now shows AI switches, availability, and connector guidance.

= 2.9.0 =
* New: Beauty-focused booking templates: Clean, Beauty, and Luxury.
* New: Launch Center preview action and setup readiness checks.
* New: Admin-only Test Booking Mode for local booking flow validation.
* Improved: Slimmer default admin menu with optional advanced tools.
* Improved: Mobile booking flow polish and refreshed starter salon data.
* Improved: Front-end style templates now apply consistently across booking views.
* Improved: Local booking race protection and cached next-opening lookups.
* Improved: Added official live demo links for easier customer evaluation.
= 2.8.5 =
* New: Services now include category management for renaming and deleting service categories.
* New: Service category selection now supports existing-category dropdowns plus quick creation of new categories.
* Improved: Add-on copying is now available directly from each service row.
* Fix: Service-row Add Add-on can now create manual local add-ons even when no Square-backed source options exist.

= 2.8.4 =
* Fix: Square and Vagaro no-slot responses now use a safer message that explains the business may be closed or fully booked.
* Fix: Square mode can read Square location hours when available, while keeping Square as the source of bookable time slots.

= 2.8.3 =
* Change: Removed separate plugin timezone controls; admin booking and calendar times now follow the WordPress site timezone.
* Fix: Customer self-service cancellation now cancels the full multi-service appointment group and immediately removes it from staff calendars and availability.
* Fix: Sidebar Confirm Booking button now performs the same checkout action as the main form button.
* Fix: Sidebar Confirm Booking button now shows the same confirming state as the main form button after it is clicked.
* Fix: Local multi-service bookings now normalize the whole group to the same auto-confirm status after creation.
* Fix: Local business hours now calculate weekdays in the WordPress site timezone, preventing Sunday/Monday open and closed days from shifting.
* Fix: Local-mode multi-service booking creation now uses the same staff-assignment search as availability display, preventing shown slots from failing at checkout due to a greedy Any staff assignment.
* Fix: Removed old admin placeholder cancel handlers so cancelling a booking shows only the plugin's cancellation dialog.

= 2.8.2 =
* Fix: Local-mode multi-service availability now validates the entire cart before showing a time slot, including Me/guest timing, Any staff assignment, named staff, and existing bookings.

= 2.8.1 =
* Fix: Local-mode Bookings admin list now displays local WordPress timezone correctly instead of converting local records as UTC.
* Fix: Frontend appointment summary no longer appends the slot check text ("Yes") to selected time labels.
* Fix: Local-mode multi-service cart submission keeps one visible appointment as one booking request, preventing partial "appointment 2 failed" results.
* Fix: Local-mode Any staff assignment now chooses a truly available eligible staff member at submit time.

= 2.8.0 =
This release brings the local-mode booking engine to full production quality. Salons that do not use Square or Vagaro now have a complete, reliable booking system ï¿½?multi-service, multi-guest, conflict-safe ï¿½?running entirely within WordPress with no external dependencies.

**Local mode ï¿½?now fully production-ready**

* New: Local mode now supports multi-service bookings. Clients can add Acrylic Fill, Pedicure, and Gel Manicure in a single checkout, and the engine calculates a start time that fits the entire combined duration.
* New: Local mode now supports group / guest bookings. A client can book services for herself and a guest simultaneously; each guest's services run in parallel from the same start time, and each person can have a different staff member.
* New: Double-booking prevention in local mode. Before saving, the booking engine checks both the existing appointments database and the in-progress bookings within the same group submission, so no two services can be assigned to the same staff member at the same time ï¿½?even in the same checkout session.
* New: "Any staff" assignment in local mode. When a client selects Any Staff, the engine finds the first available technician for each service, respecting the service-staff assignment matrix and skipping staff who are already booked in that window.
* New: Parallel vs. sequential timing in local mode. Services for the same guest are scheduled back-to-back (sequential); services for different guests in a group start at the same time (parallel) ï¿½?matching the logic customers expect.
* Fix: Confirmation emails now send correctly in local mode for both single and multi-service bookings, with all booked services listed in the email body.
* Fix: Local mode bookings now trigger the admin notification, Twilio SMS confirmation, and the scheduled reminder / review-request emails ï¿½?these were silently skipped in prior versions.
* Fix: Booking start and end times are stored in the correct local WordPress timezone, so the admin list, staff portal, and confirmation emails all show the right time without UTC offset issues.

**Booking confirmation page**

* Fix: "Manage Appointment" links on the confirmation page now show the correct service name for each button when multiple services are booked by the same person. Previously, all buttons showed "Manage appointment for Me" regardless of which appointment they linked to ï¿½?making it impossible to tell them apart.
* Fix: The AJAX response for every booking path (local single, local multi, Square single, Square multi) now includes the service name, so the confirmation page can label each manage link correctly.
* Fix: Square single-service booking response now includes `manage_url` directly. Previously only `manage_token` was returned; the URL had to be reconstructed client-side, which could silently break if the manage booking page URL changed.

**Settings**

* New: Auto-Confirm Bookings toggle in Settings ï¿½?Hours. When ON (default), new bookings are immediately set to Confirmed ï¿½?the existing behavior. When OFF, bookings start as Pending and must be manually approved in the Bookings list. Useful for salons that review requests before committing.


= 2.7.8 =
* New: Display Timezone setting under Business Identity ï¿½?choose which timezone is used when showing appointment times in the admin booking list.


= 2.7.7 =
* Fix: Bookings now complete successfully. In 2.7.6 the phone validation helpers (`validateUSPhone`, `showPhoneError`) were defined inside a jQuery document-ready handler, which placed them outside the class's lexical scope. When the booking submit handler tried to call `validateUSPhone`, it threw a ReferenceError before the AJAX request was sent, leaving the button stuck on "Confirming your booking...". Helpers are now hoisted to the IIFE scope.

= 2.7.6 =
* Improved: Refined the mobile booking flow with shorter step labels, cleaner sticky cart actions, and full service descriptions restored in the service detail view.
* Improved: Pick Time now lets customers switch staff from the appointment summary and refreshes available times immediately.
* Improved: Service detail images now display fully on mobile instead of cropping important content.
* Tweak: Review & Book now shows selected staff as read-only so customers use Edit for appointment changes.

= 2.7.5 =
* Tweak: Align Freemius initialization with the Menu & Online Ordering plugin so the pricing screen can render the Free and Pro plans consistently.

= 2.7.4 =
* Fix: Send the plugin-list Upgrade to Pro link directly to Freemius checkout to avoid confusing free users with the internal pricing table.
* Tweak: Align the Freemius SDK initialization with the WordPress.org compliant setup used by the menu plugin.

= 2.7.3 =
* Fix: Added the missing Upgrade to Pro action link on the WordPress Plugins screen.

= 2.7.2 =
* Fix: Removed placeholder image file from assets
* Fix: Staff limit now shown in admin UI before hitting the cap (disabled button + upgrade notice)

= 2.7.1 =
* Fix: Resolved Plugin Check warnings in class-yatoon-staff-portal.php (sanitization and unslash)
* Updated: Plugin description

= 2.7.0 =
* New: Setup Wizard - guided 5-step onboarding for new installs
* Fix: Appointment reminder and review request emails now actually send (cron was not registered)
* Fix: Confirmation email now lists all services when multiple services are booked
* Fix: Timezone now reads from WordPress site settings instead of a hardcoded fallback
* Fix: Added database columns for reminder/review tracking on existing installs

= 2.6.2 =
* Improved: "Make Another Booking" button now clearly separated from action buttons with a divider line

= 2.6.1 =
* Fix: Business phone number now correctly appears in confirmation emails

= 2.6.0 =
* Fix: Booking confirmation no longer hangs - extended server timeout for booking submission
* Fix: Business phone number now appears correctly in confirmation emails
* Fix: "Make Another Booking" button now has proper spacing below the action buttons

= 2.5.4 =
* Fix: {business_phone} variable now correctly shows the phone number in confirmation emails

= 2.5.3 =
* Improved: "Make Another Booking" button spacing increased for a cleaner separation from the action buttons above

= 2.5.2 =
* Fix: Booking confirmation no longer hangs indefinitely - PHP execution time limit extended to prevent silent timeouts during booking submission
* Fix: "Make Another Booking" button now appears on its own line below the action buttons for a cleaner layout

= 2.5.1 =
* Fix: Customer self-service cancel/reschedule (Manage Booking) now works in Square mode - token is generated for all booking platforms
* Fix: Multi-service bookings now show correct service names in Staff Portal (booking_options populated on Square sync)
* Fix: Appointment times display correctly across all browsers including Safari (Unix timestamp format)
* Fix: Staff Portal day tabs now show text in correct color on all backgrounds
* Fix: ZIP package folder name corrected to yatoon-booking-system for proper WordPress installation

= 2.5.0 =
* New: Staff Portal PWA - technicians can view their weekly schedule and manage appointment status from their phone. Add [yatoon_staff_portal] to any page, set a 4-digit PIN per staff member under Settings > Staff, and share the link. Installable as a home screen app on iOS and Android.
* New: Set PIN button in Staff admin table - securely hashed, with brute-force rate limiting (10 attempts per 5 minutes per IP)

= 2.4.0 =
* New: Checkout Options - Gift Card and Coupon Code fields can now be individually toggled on/off in Settings > Checkout Options
* New: Coupon Code now has an Apply button with real-time validation and discount preview at checkout
* New: Multi-Location support - add unlimited locations under Yatoon Booking > Locations, each with its own address, description, phone, email, timezone, and accent color. Use [yatoon_booking location="2"] or [yatoon_booking location="downtown"] to scope a booking form to a specific location
* Improved: Location banner shown on booking form when a specific location is selected via shortcode
* Note: Pro users can assign a separate Square Location ID per location for independent live availability sync

= 2.3.6 =
* Fix: Removed "Checking availability..." indicator on service cards - availability is shown at the time selection step instead

= 2.3.5 =
* New: Multi-person booking gets a cleaner, more intuitive interface - each person's services are clearly grouped and easier to manage
* Improved: No-availability message now shows the specific service name (single service) or total appointment count (multiple services) for clearer feedback
* Improved: Service menu category tabs now sit closer to the first section heading for a tighter, more polished layout
* Removed: "Checking availability..." indicator on service cards - availability is shown at the time selection step instead
* Fix: Duplicate service modal - "Dismiss" button now closes the popup and keeps the client on the service menu instead of jumping to the time selection step
* Fix: UP/DOWN reorder buttons now only appear when the same person has 2 or more services

= 2.2.0 =
* New: Apple-style service cards with hero image, rounded corners, soft shadow, and Book pill button
* New: Star rating and review count on each service card
* New: "Next Available" hint on service cards with green pulsing dot
* New: Week/Month calendar in local mode replaces native date picker
* Improved: Service card typography, padding, and selected-state ring

= 2.1.2 =
* New: International phone number support with country flag picker
* New: Email OTP and SMS OTP verification before booking confirmation
* New: Phone number optional toggle

= 2.1.0 =
* New: [yatoon_gallery] infinite-loop auto-scrolling photo carousel
* New: [yatoon_catalog] service image card grid with popup booking
* New: Custom booking form fields with drag-and-drop builder
* New: Tip / gratuity at checkout
* New: Star rating collection and Reviews admin page
* New: Recurring appointments
* New: Closed Dates manager
* New: Redesigned dashboard with KPI cards and trend chart

= 2.0.0 =
* Initial public release
