# Service-day visibility and guided completion flow

## Objective
Make “View service days” and “Set service for today” prominent, clearly usable controls on `admin/service_days.php`, and turn service configuration into a guided two-step flow. When at least one service day exists but today has not been assigned a service, automatically open the Set Service dialog as the logical Continue/Complete configuration step.

## Files and output
- Primary page: `C:\xampp\htdocs\jsowbkm\admin\service_days.php`
- Modal fragments: `admin/service_modal.php`, `admin/service_set.php`
- Shared assets: `assets/portal/css/admin.css`, `assets/portal/js/admin.js`
- Do not modify process endpoints or database schema.

## Functional rules
- Preserve `services.view` page access.
- Determine `$canManage = appStaffCan($dbh, 'services.manage')`.
- View-only staff may view service days/current setup, but cannot see creation, deletion, or set-today mutation controls.
- Query service-day count/list and today’s configured service before rendering/including dialogs.
- Use Africa/Accra application timezone; do not override to UTC.
- Prominent actions in the page intro:
  - “View service days” — visible styled secondary/glass action for authorized viewers, opens list dialog.
  - “Set service for today” — lemon primary action for managers, opens set dialog.
- Both actions must be real 44px+ controls with icons or small descriptive text if useful, not unstyled list links.
- Add a compact two-step configuration status:
  1. Create service day — complete when `tblservice` has a record.
  2. Set today’s service — complete when `tblserviceset` has a row for `CURRENT_DATE()`.
- If services exist and today is not set and user has `services.manage`, auto-open the Set Service dialog after DOM ready. The dialog should label the action as “Continue setup” / “Complete service configuration.”
- Do not auto-open if today is already configured, if no service day exists, for view-only users, or after the user closes it during that page load.
- If no service days exist, make the creation form the obvious first step and explain that setting today becomes available afterward.
- Today’s date field in the set dialog defaults to the current Africa/Accra date. The user may change it if the existing processor supports it, but copy should remain accurate.
- Set-service select options must use safe IDs if the processor supports IDs; otherwise preserve the currently expected service-name input contract. Escape all option output.
- Service list output must be escaped, mobile responsive with server `data-label`s, and deletion visible only with `services.manage`.
- Correct “Servie Days” typo.
- Remove obsolete Bootstrap-only/card/column/DataTables markup and inline 8px delete buttons from modal fragments.
- Preserve existing accessible modal controller: ARIA, focus trap, Escape, backdrop close. Add a declarative auto-open hook rather than duplicating modal logic.

## Visual direction
Stay in the established photo/forest/lemon/glass admin system. The completion strip should feel like a short Apple setup assistant embedded in the page: two clear steps, calm status markers, and one unmistakable next action. Avoid wizard clutter or full-page takeover.

## Responsive behavior
- Desktop: intro actions remain visible at top right; status steps display side by side.
- Tablet/mobile: actions stack full-width without overflow; status becomes vertical; modal fits viewport and form controls remain reachable above bottom navigation.
- 1440, 1024, 768, 430, 375 widths.

## Verification
- PHP lint changed PHP files.
- Confirm auto-open condition for these cases: no services/no today = false; services/no today/manager = true; services/today set = false; view-only = false.
- Verify visible action classes and modal target IDs.
- Update CSS/JS cache keys on the page.
