> ## Documentation Index
> Fetch the complete documentation index at: https://docs.maska.co.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Admin Dashboard

> Manage all incoming and confirmed reservations from the staff dashboard.

The admin dashboard is at `/admin`. It requires staff to be signed in via magic link
(see [Admin Login](/reservations/admin-login)). Access is protected — unauthenticated
users are redirected to the login page automatically.

## Page views stats

At the top of the dashboard, two stat tiles show booking page traffic:

* **Today's visits** — unique page views on the guest booking page today (IST)
* **Last 30 days** — total views over the past 30 days

## Tabs

Three tabs filter the booking list:

| Tab              | Shows                                                          |
| ---------------- | -------------------------------------------------------------- |
| **Incoming**     | Pending (unactioned) bookings; auto-refreshes every 30 seconds |
| **Confirmed**    | Confirmed bookings only                                        |
| **All bookings** | Every booking regardless of status                             |

The active tab shows a count badge when bookings are loaded.

## Filters

### Date strip

Filter by a specific date using the 7-day scrollable date strip, or select **All dates**
to see bookings across all dates.

### Zone filter

Chips appear for each zone that has bookings in the current view. Select a zone to
narrow results, or **All zones** to show all.

### Reference search

Type a booking reference (e.g. `RES-ABC123`) to find a specific booking. The input
auto-uppercases. Works across all tabs and in combination with date/zone filters.

## Booking cards

Each card shows:

* Party size pill
* Guest name + booking reference (monospace)
* Zone · date · time range
* Phone (tappable `tel:` link) · email (tappable `mailto:` link)
* Request timestamp
* Audit trail: confirmed by / rejected by / no-show marked by (staff email)
* Dietary restriction chips (if any)
* Special requests (if any)
* Status badge (Pending / Confirmed / Rejected / Expired / Cancelled / No show)

### Inactive zone / slot indicator

If a booking references a zone or slot that has since been deactivated, an
**(inactive)** label appears in red next to the zone name or time range. This
helps staff identify bookings that were made before a zone or slot was taken
offline, without affecting the booking itself.

### Confirming a booking

**Incoming tab only.** Each pending card has **Confirm** and **Reject** buttons.

* **Confirm** — marks the booking as confirmed and triggers the confirmation email to the guest
* **Reject** — marks the booking as rejected

### Marking a no-show

**Confirmed tab only.** Each confirmed card has a **Mark no-show** button. Tapping it
shows a two-button confirmation row:

* **Keep my booking** — dismisses
* **Confirm no-show** — marks the booking as `no_show`

## Sound alerts

A **Sound alerts: On/Off** toggle in the filter bar plays a short audio beep when new
pending bookings arrive while the Incoming tab is active. The setting is persisted in
`localStorage`. The browser requires a user interaction (tap or keypress) before audio
can play — the first interaction on the page unlocks audio automatically.

## Export

Select a date and then tap **Export** to download a `.xls` (TSV) file of all visible
bookings for that date. Bookings are sorted by slot time, then zone, then guest name.
The export includes: date, slot, zone, guest name, party size, phone, email, status,
reference, dietary requirements, special requests, and blank check-in / remarks columns
for use at the door.

Export is only enabled when a date is selected and bookings are loaded.

## Sign out

The **Sign out** button in the header ends the Supabase session and redirects to the
login page.
