{# Design tokens + frontend runtime.
The variables below are shadcn/ui's stock Zinc theme, and every class
string in polyadmin/ui.py resolves to them rather than to a literal
Tailwind palette -- so restyling the admin, or flipping it to dark, is
a change to these variables and nothing else.
Script order is load-order-critical, top to bottom:
1. the dark-class script must run synchronously before paint, or a
dark-mode reload flashes the light palette for a frame;
2. the Tailwind CDN script must load *before* `tailwind.config` is
assigned -- backwards from what you would guess. That script is
what defines the global `tailwind`, so assigning to it first
throws a ReferenceError the browser swallows, and every
token-based utility then resolves to nothing;
3. Alpine plugins must load before Alpine core, which initializes
on load and only sees directives registered by then.
Everything is CDN-loaded: there is no frontend build step. #}
{# (3) Alpine plugins, then Alpine core, then HTMX. SortableJS is
deferred so it is ready before any x-init calling Sortable.create,
and is the one non-Alpine dependency: drag-and-drop has no small
CSS-only equivalent. #}