1/*
 2 * Plain admin — Tailwind entry.
 3 *
 4 * Auto-discovered by plain-tailwind: any package shipping a `tailwind.css`
 5 * next to its `__init__.py` is auto-`@import`-ed into the user's Tailwind
 6 * build. That's how the admin's `@theme` tokens, component rules, and
 7 * dark-mode variant end up compiled.
 8 *
 9 * Build-time only — this file is not served to the browser.
10 *
11 * Layout:
12 *   styles/tokens.css         design tokens (light + dark) + @theme
13 *   styles/base.css           @layer base resets
14 *   styles/components/*.css   one file per UI primitive, wrapped in
15 *                             @scope (.plain-admin) below so
16 *                             `class="card"` etc. on user pages don't
17 *                             pick up admin styling. To add one, drop
18 *                             a new file in components/ with a single
19 *                             @layer components { … } block, then add
20 *                             an @import in the @scope block below.
21 *   styles/admin/prose.css     element-level defaults for raw HTML
22 *                              content inside the admin (dl/dt, prose
23 *                              links, table link inheritance, code/pre,
24 *                              native select). Self-scoped via inner
25 *                              `.plain-admin { … }` selector.
26 *   styles/admin/nav.css       pinned-nav drag-and-drop states
27 *   styles/admin/scrollbar.css opt-in `.admin-scrollbar` / `.admin-scrollbar-hide`
28 *                              utilities themed via `--scrollbar-*`
29 *
30 * See ATTRIBUTIONS.md for credit / MIT license preservation.
31 */
32
33@import "./styles/tokens.css";
34@import "./styles/base.css";
35
36/* Safelist classes Tailwind can't see statically. Card sizes are an
37   Enum (Card.Sizes 1-4) interpolated into templates as
38   `col-span-{{ size.value }}`, which is invisible to the content scanner. */
39@source inline("col-span-{1,2,3,4}");
40
41/* Wrapped in @scope (.plain-admin) so generic class names — `.admin-card`,
42   `.admin-btn`, `.admin-nav-tab`, `.admin-scrollbar` — only style descendants of the
43   admin chrome. A user page with `class="card"` keeps its own look. */
44@scope (.plain-admin) {
45  @import "./styles/components/alert.css";
46  @import "./styles/components/badge.css";
47  @import "./styles/components/button.css";
48  @import "./styles/components/card.css";
49  @import "./styles/components/checkbox.css";
50  @import "./styles/components/collapsible.css";
51  @import "./styles/components/dialog.css";
52  @import "./styles/components/dropdown-menu.css";
53  @import "./styles/components/field.css";
54  @import "./styles/components/hovercard.css";
55  @import "./styles/components/input.css";
56  @import "./styles/components/kbd.css";
57  @import "./styles/components/label.css";
58  @import "./styles/components/popover.css";
59  @import "./styles/components/progress.css";
60  @import "./styles/components/radio.css";
61  @import "./styles/components/segmented.css";
62  @import "./styles/components/select.css";
63  @import "./styles/components/switch.css";
64  @import "./styles/components/table.css";
65  @import "./styles/components/tabs.css";
66  @import "./styles/components/textarea.css";
67  @import "./styles/components/tooltip.css";
68
69  @import "./styles/admin/nav.css";
70  @import "./styles/admin/scrollbar.css";
71}
72
73/* prose.css self-scopes via an inner `.plain-admin { … }` selector, so
74   it sits outside @scope to keep its element-level rules readable. */
75@import "./styles/admin/prose.css";