.dark{--background: #0f1012;--foreground: #edeef0;--sidebar: #0a0b0d;--card: #141517;--card-foreground: #edeef0;--popover: #1a1b1d;--popover-foreground: #edeef0;--primary: #edeef0;--primary-foreground: #0a0b0d;--secondary: #1c1d1f;--secondary-foreground: #edeef0;--muted: #17181a;--muted-foreground: #8c8e91;--accent: #212224;--accent-foreground: #edeef0;--destructive: #f87171;--destructive-foreground: #2a0a0a;--destructive-muted: rgb(248 113 113 / 0.14);--destructive-strong: #fca5a5;--border: #252628;--input: #2d2e30;--ring: #2fc3b0;--brand: #2fc3b0;--brand-strong: #0b978a;--brand-foreground: #06322d;--brand-muted: rgb(47 195 176 / 0.14);--success: #22c55e;--success-foreground: #052e16;--success-muted: rgb(34 197 94 / 0.14);--success-strong: #4ade80;--warning: #f59e0b;--warning-foreground: #271804;--warning-muted: rgb(245 158 11 / 0.14);--warning-strong: #fbbf24;--subject-tickets: oklch(0.82 0.16 73);--subject-orders: oklch(0.78 0.11 195);--subject-customers: oklch(0.74 0.15 300);--subject-ledger: oklch(0.76 0.13 150);--chart-1: #0fa093;--chart-2: #8d79e2;--chart-3: #c98130;--chart-4: #5b8ede;--chart-other: #656769;--condition-muted: #252333;--condition-strong: #a397e7;--shadow-ink: #000;color-scheme: dark;}
.dark{--wb-text-body: var(--wb-text-1);--wb-text-muted: var(--wb-text-3);--wb-text-faint: var(--wb-text-4);--wb-text-link: var(--wb-brand);--wb-text-link-hover: var(--wb-brand-pressed);--wb-surface-page: var(--wb-surface-0);--wb-surface-rail: var(--wb-surface-1);--wb-surface-card: var(--wb-surface-0);--wb-surface-control: var(--wb-surface-2);--wb-surface-selected: var(--wb-brand-soft);--wb-divider: var(--wb-border-2);--wb-money-positive: var(--wb-success-fg);}
.dark{--wb-ink: #edeef0;--wb-ink-hover: #ffffff;--wb-text-1: #edeef0;--wb-text-2: #b6b7b9;--wb-text-3: #8c8e91;--wb-text-4: #6a6c6f;--wb-text-inverse: #0a0b0d;--wb-surface-0: #0f1012;--wb-surface-1: #0a0b0d;--wb-surface-2: #1c1d1f;--wb-surface-3: #212224;--wb-surface-hover: #18191b;--wb-surface-on-tint: rgb(255 255 255 / 0.08);--wb-surface-tile: #1e1f21;--wb-surface-selected: var(--wb-surface-3);--wb-border-1: #252628;--wb-border-2: #1e1f21;--wb-border-3: #1c1d1f;--wb-border-dashed: rgb(237 238 240 / 0.3);--wb-border-strong: rgb(237 238 240 / 0.2);--wb-border-check: rgb(237 238 240 / 0.25);--wb-border-on-tint: rgb(255 255 255 / 0.16);--wb-disabled-fill: #5d5f62;--wb-brand: #2fc3b0;--wb-brand-hover: #29ac9b;--wb-brand-pressed: #239284;--wb-brand-deep: #0b978a;--wb-brand-light: #5eead4;--wb-brand-soft: rgb(47 195 176 / 0.14);--wb-brand-soft-2: var(--wb-surface-3);--wb-brand-border: rgb(47 195 176 / 0.3);--wb-brand-stripe: rgb(47 195 176 / 0.5);--wb-warning-dot: #f59e0b;--wb-warning-fg: #fbbf24;--wb-warning-strong: #fcd34d;--wb-warning-soft: rgb(245 158 11 / 0.14);--wb-warning-border: rgb(245 158 11 / 0.3);--wb-info-dot: #5b8ede;--wb-info-fg: #93c5fd;--wb-info-strong: #bfdbfe;--wb-info-soft: rgb(91 142 222 / 0.14);--wb-success-dot: #22c55e;--wb-success-fg: #4ade80;--wb-success-strong: #86efac;--wb-success-soft: rgb(34 197 94 / 0.14);--wb-danger-dot: #f87171;--wb-danger-fg: #fca5a5;--wb-danger-strong: #fecaca;--wb-danger-soft: rgb(248 113 113 / 0.14);--wb-danger-border: rgb(248 113 113 / 0.3);--wb-cat-teal: var(--wb-brand);--wb-cat-blue: #5b8ede;--wb-cat-amber: #f59e0b;--wb-cat-purple: #a78bfa;--wb-cat-grey: var(--wb-border-check);--wb-scrim: rgb(0 0 0 / 0.5);--wb-scrim-strong: rgb(0 0 0 / 0.6);--wb-shadow-thumb: 0 1px 2px rgb(0 0 0 / 0.4);--wb-shadow-raised: 0 1px 2px rgb(0 0 0 / 0.4);--wb-shadow-hover: 0 4px 14px rgb(0 0 0 / 0.4);--wb-shadow-drawer: -12px 0 40px rgb(0 0 0 / 0.5);--wb-shadow-sheet: 0 24px 64px rgb(0 0 0 / 0.6), 0 0 0 1px var(--wb-border-1);--wb-shadow-dialog: 0 24px 64px rgb(0 0 0 / 0.6), 0 0 0 1px var(--wb-border-1);--wb-shadow-menu: 0 12px 32px rgb(0 0 0 / 0.5);--wb-shadow-save-bar: 0 12px 32px rgb(0 0 0 / 0.5);--wb-float-surface: #1a1b1d;--wb-float-ink: var(--wb-text-1);--wb-float-ink-muted: var(--wb-text-2);--wb-float-edge: var(--wb-border-1);--wb-float-action-hover: var(--wb-ink-hover);--wb-float-action-disabled: var(--wb-surface-3);}
:root{--surface-canvas: #f4f6f5;--surface-raised: #ffffff;--surface-sunken: #eef1f0;--surface-skeleton: #eef1f0;--surface-hover: #f4f6f5;--surface-overlay: #ffffff;--surface-inverse: #16191a;--surface-scrim: rgb(22 25 26 / 0.22);--surface-scrim-strong: rgb(22 25 26 / 0.42);--text-primary: #16191a;--text-secondary: #3d4645;--text-quiet: #5f6b6a;--text-faint: #8a9493;--text-inverse: #ffffff;--text-link: #097a70;--text-link-hover: #086a61;--line-default: #e6e9e8;--line-strong: #d5dbda;--line-subtle: #eef1f0;--line-dashed: #b8c0bf;--line-focus: #0b978a;--control-line: #b8c0bf;--action-primary-bg: #097a70;--action-primary-bg-hover: #086a61;--action-primary-bg-active: #075a52;--action-primary-fg: #ffffff;--action-secondary-bg: #ffffff;--action-secondary-bg-hover: #f4f6f5;--action-secondary-fg: #16191a;--action-secondary-line: #d5dbda;--action-ghost-bg-hover: #eef1f0;--action-ghost-fg: #3d4645;--action-danger-bg: #a33b2f;--action-danger-bg-hover: #8a2f25;--action-danger-fg: #ffffff;--action-disabled-bg: #b8c0bf;--action-disabled-fg: #ffffff;--action-selected-bg: #e7f3f1;--action-selected-fg: #097a70;--action-selected-line: #b9d9d4;--status-success-dot: #2a9a58;--status-success-fg: #1c7a43;--status-success-strong: #155f34;--status-success-soft: #e6f4ec;--status-success-line: #bfe3cd;--status-success-on-inverse: #4ade80;--status-warning-dot: #d68a00;--status-warning-fg: #8a5a00;--status-warning-strong: #6b4600;--status-warning-soft: #fdf3e1;--status-warning-line: #f0dcb4;--status-warning-on-inverse: #fbbf24;--status-danger-dot: #c4473a;--status-danger-fg: #a33b2f;--status-danger-strong: #8a2f25;--status-danger-soft: #fbecea;--status-danger-line: #f0c9c4;--status-danger-on-inverse: #fca5a5;--status-info-dot: #3d6fd1;--status-info-fg: #2f5bb3;--status-info-strong: #24478f;--status-info-soft: #eaf0fb;--status-info-line: #c7d7f3;--status-info-on-inverse: #93c5fd;--status-neutral-dot: #8a9493;--status-neutral-fg: #3d4645;--status-neutral-strong: #16191a;--status-neutral-soft: #eef1f0;--status-neutral-line: #d5dbda;--status-brand-dot: #0b978a;--status-brand-fg: #097a70;--status-brand-strong: #075a52;--status-brand-soft: #e7f3f1;--status-brand-line: #b9d9d4;--money-fg: #1c7a43;--money-negative-fg: #a33b2f;--brand-mark: #0b978a;--brand-soft: #e7f3f1;--brand-soft-2: #f3faf8;--brand-line: #b9d9d4;--focus-ring: #0b978a;--radius-control: 8px;--radius-card: 12px;--radius-sheet: 14px;--radius-pill: 999px;--control-xs: 28px;--control-sm: 32px;--control-md: 36px;--control-lg: 40px;--control-xl: 44px;--shadow-popover: 0 4px 16px rgb(22 25 26 / 0.12), 0 0 0 1px rgb(22 25 26 / 0.06);--shadow-dialog: 0 16px 48px rgb(22 25 26 / 0.22);--motion-fast: 120ms;--motion-base: 200ms;--motion-slow: 320ms;--ease-enter: cubic-bezier(0.2, 0.7, 0.2, 1);--ease-exit: ease-in;--font-ui: 'attendee loading Sans', 'IBM Plex Sans', ui-sans-serif, system-ui, sans-serif;}
.dark{--surface-canvas: #0f1012;--surface-raised: #141617;--surface-sunken: #1c1d1f;--surface-skeleton: rgb(237 238 240 / 0.1);--surface-hover: #18191b;--surface-overlay: #212224;--surface-inverse: #edeef0;--surface-scrim: rgb(0 0 0 / 0.5);--surface-scrim-strong: rgb(0 0 0 / 0.6);--text-primary: #edeef0;--text-secondary: #b6b7b9;--text-quiet: #8c8e91;--text-faint: #6a6c6f;--text-inverse: #0f1012;--text-link: #2fc3b0;--text-link-hover: #29ac9b;--line-default: rgb(237 238 240 / 0.1);--line-strong: rgb(237 238 240 / 0.2);--line-subtle: #1c1d1f;--line-dashed: rgb(237 238 240 / 0.3);--line-focus: #2fc3b0;--control-line: #6a6c6f;--action-primary-bg: #2fc3b0;--action-primary-bg-hover: #29ac9b;--action-primary-bg-active: #0b978a;--action-primary-fg: #0f1012;--action-secondary-bg: #141617;--action-secondary-bg-hover: #18191b;--action-secondary-fg: #edeef0;--action-secondary-line: rgb(237 238 240 / 0.2);--action-ghost-bg-hover: #1c1d1f;--action-ghost-fg: #b6b7b9;--action-danger-bg: #f87171;--action-danger-bg-hover: #ef4444;--action-danger-fg: #0f1012;--action-disabled-bg: #5d5f62;--action-disabled-fg: #b6b7b9;--action-selected-bg: rgb(47 195 176 / 0.14);--action-selected-fg: #2fc3b0;--action-selected-line: rgb(47 195 176 / 0.3);--status-success-dot: #22c55e;--status-success-fg: #4ade80;--status-success-strong: #86efac;--status-success-soft: rgb(34 197 94 / 0.14);--status-success-line: rgb(34 197 94 / 0.3);--status-success-on-inverse: #1c7a43;--status-warning-dot: #f59e0b;--status-warning-fg: #fbbf24;--status-warning-strong: #fcd34d;--status-warning-soft: rgb(245 158 11 / 0.14);--status-warning-line: rgb(245 158 11 / 0.3);--status-warning-on-inverse: #8a5a00;--status-danger-dot: #f87171;--status-danger-fg: #fca5a5;--status-danger-strong: #fecaca;--status-danger-soft: rgb(248 113 113 / 0.14);--status-danger-line: rgb(248 113 113 / 0.3);--status-danger-on-inverse: #a33b2f;--status-info-dot: #5b8ede;--status-info-fg: #93c5fd;--status-info-strong: #bfdbfe;--status-info-soft: rgb(91 142 222 / 0.14);--status-info-line: rgb(91 142 222 / 0.3);--status-info-on-inverse: #2f5bb3;--status-neutral-dot: #6a6c6f;--status-neutral-fg: #b6b7b9;--status-neutral-strong: #edeef0;--status-neutral-soft: #1c1d1f;--status-neutral-line: rgb(237 238 240 / 0.2);--status-brand-dot: #2fc3b0;--status-brand-fg: #2fc3b0;--status-brand-strong: #29ac9b;--status-brand-soft: rgb(47 195 176 / 0.14);--status-brand-line: rgb(47 195 176 / 0.3);--money-fg: #4ade80;--money-negative-fg: #fca5a5;--brand-mark: #2fc3b0;--brand-soft: rgb(47 195 176 / 0.14);--brand-soft-2: rgb(47 195 176 / 0.14);--brand-line: rgb(47 195 176 / 0.3);--focus-ring: #2fc3b0;}
@font-face {
  font-family: 'attendee loading Mono';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url('data:font/woff2;base64,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') format('woff2');
}
@font-face {
  font-family: 'attendee loading Mono';
  font-style: normal;
  font-weight: 500;
  font-display: block;
  src: url('data:font/woff2;base64,d09GMgABAAAAACOUABEAAAAAXvQAACMyAAIAxAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbIByCYgZgAIF+CEQJgnMREAqBpHCBknwBNgIkA4IsC4IsAAQgBYNKByAMg2AbrlNFB2LYOABwcN+cAXcYNg4iZti5KMokZ/3i/9sBHUNs0QDi/WKEJ0pUqEsZIfBDgjjYXJXN0cmy+Y2NZ1t67kDsreBqbomoglGe8lYt5DLxm8dz9Aj+6i8oQVBebem5ab5oWD4sNxu+6AiNfZLrw+Pm++dKjECaFJbygl3wuozCM3FkLgIzZi5fFB6+9ns9H1xoM7EMVweLrlOFLIF1dWtEbTWQkXf8FmTHP50d4OfWny4YzADZSDfXso1YRL8lq7dmbMIAB5ykNipTzMJo/onRX7Ai0MvivLx3P73Yy6sbArhfyBjknBm7ErL/qvv33kDhHFuZ9k6zYwce+afSh6g7oFd7WAqkHddqZ0gAAUCL1vam84pJ98jRjtJogdpnNnZ8aK7PN5ABTib0k9nl7MccYYEdoL4K1zpTpStMfU+6bi73RsJO7l1/eXT7zNUwl/DIWaeCC17QgAwNCw/X9vkpnUQoxEBsZvXdUJvedu+b+7sKb3FrcdEcmPxaxTT63+vUVd+OCuyEJ6KpdDsALXum5281In85PoVkhUpsu2QnSoFw7AQ4bE4JVQIeFoINJhq2DsNW9v/fptnqvq9ZaVN5TArQnL/YbVHKECgBS2yK2bdvR5a+vr/shGWFaMI0eqNzFI3sKsA9Nz1gU6Ro+pSBf9yltfYXh/h7K9AM4wwTTMJDvh3rmS01SwYRk8YgFlEvz2v/r6li5gCE/VmCo0HTd++p13JVcfZaecV3iDBAaKyhkct1BQG4AQBAUYSG0PUhCMAlKIycnzp7MVQcgHodAFCK7rAY6+F7dNDeu5+hTzbsW2QNpEGlWe3jYqkA3382KALn2X6FvSHEuDXiahOM6jv8HQcQKuI5yBptdrCLXe9hqkaOmBY9Rkw005GYlQYddQgYckzAsOMCRpwUMOqUgDGnBuzpzKJZlMxwNITxeHEknr4mv2Mh6RPIaW1fgjtRwMCQk72Nf7qa7QzGrmQDBg0ZNmIM6eX8PoM3VZYfi833ywJ4fzn5K5CAfsAuAGbt7zJyF3N6/apGdVmTKAMdHAkwgAAAAGacnSNIjVhs5OT/f+A94gVAAKBDWgUgMAAFKtqHISbuh+ubInCyTsNyVlrvYIe7yQPeFT4xQYRESoxEz1w4e7Gx3oDQZUTeKhscohzpFX4RrHG4pwT1DxS68jvp/naoLf4Xn/V91vOZ+KzpU/LaJ4tApAATAbMBiz3vvnMtNMsGu6wxbqbFllhvs+nyplhpmhm222aHRXKWWmWZjSY7x3JrrbBJk6lmWS5rsYVOEe3+tTKyVivYF+BuQ9y9GZB7uxjNo/ZK1Odw96vUV3flLwAybAq0nv0SsoiE1B/iTS7+oHlsvYoEJAQwV81kfSSgoYAojAQshJRZMh1Yn8AJN+PgRAqX7YF5kjK3izm6FQkwFtnrY8jFFjlH+Y4CR6JKJOBgRg47wOlwgzHezI7/j2ZJYZN1slTP9i0fqfOc05RHBMO1Xp2qKUg0a5PjNUPO/ZqJHCl2WTmrCsUNhcu5LljhTmbl+8hHSre8i9NtYYLarpEEdE4WwA7IkkbIkT0J7kgS8hsoIGyO8kg6Emhhc2iNtsCTqFZcXFgjqVrTAYC/ASCbAfAPuKkA8TOQH4B/Bbd7NU4qeGC0vAxdn3iqXkkUypgGpiTYbKa8wFrLEB/koEPGlBgbS6AetYMq2F97Mm8HQyfsRvJ4em5+X3euDSOMDcEs6xkNCIexus3rKo19pXhTmVNpnLlrXAtR56fFqglBPRRT1YyNaUe4/avmt2foLcIeL+un4AkFxNcqpQgbDKtCffZmyi5gvtrlrnNOTQ139KErFW4y6UKw20vND0voCaHH7tzHyD2f5kMbXAqYNUlIqcnMvwF5IC0KohwVJIps8L9mRaGwVq8xAILK1pPGnMlUgC8332ZdgROq8gc2SXOCGQBFCx3nJ9zjucP9KWoUGRv4Uiq1RFOgsDxGBIKkgu4Uwlds+yy/XHeCa9KMNZSxKwJRVCWbKxF6JTQkHef19W+KClWbKMsPexYd4U1P+FTYUn9bwTllUYLUIGrovzU8K5JoEpgZwNPv/DB0WjOjok5Jm7HTmg8E1r3sge4lKMFGovRscY3NXUDckMT21hcC3QjvBEG6IMWwpfAp4loLSTrjAj9+R2LZUQYzkpLh9CAR0egwRV3INWX4Wk0xj2x8EKn1xGTeTfgw9SZPWGSOXLw51qr/QMFDu5RI6mT/yRjg9KxmZ43ZuO7l3T2tx8BbEQhU3+IS5eC5L7jn2Uwo7szqbs87niG9uGPfZ26AzZ4jZ8xpgwkDSuIlcEl7eDi3xmpeA0IZpuKox0atXLZih7TYc3uGgftsOHbkLbGrXAlNKJRoIgiZaSnmY5i0v5XGgcIxl4u2Sm0zT0+pkj0bfggaNGytGMFYhlj1EMVGDav64/Qz81ZWOEaF9rL0X9Q5YhcEea3idcpaFB5zFmQWlWMnG5ZJRQ1Apdi4HwcME3pbppGzskdjmLZsx3CyABObWMeqZvFAQgx+pvrOfGEC4Y5gN5BgxISwKyVR2pocg4k9/04H9jLdzbvOhX1APt4btNBO9pW46yu0tMbqjMASIsbP14xGamZofCNhZ+0mQg7maWrkDaw7cqvOTIjRz0X6yzcuCsuOXcilxQas8QhzPnCQzmj4jhWiV4ssrll7xvwguQUyjotMEhiRyTGJ0huIXLEeJX6774JeDZ7xONVN0flzcGrV6DErCuSINVbj+Apeypl1G/l28wHX6vE7vcpfxpcguXWYP6Ezqj/qYfZajUCtbB6GguNYPxHMfFYP5KPPkelOeF4RhQ/o/AV4FdPA3danZwuhxZSyTigAIEIZO3uphbRgzm/7bY00JlOo+xot5OpBZj7FdgQewQiDxzMQle+wvADgtxi1wYLiXvdByfvGVUt+la6QPj6lL0ei6YD5BJyZWpnVSq2d9Gol1uSJCMd6dFnejAPmmtUKGHu/i9fQuz4EH3pxy6SUwXlwMP1fDJHMFcOEHdGZzCgN6/kYogeZvuQvQlUn63O+0UM4r8DKElZG0oXnK4N8ztQJJWYx5LRTKusvKxDM6grRZTnUd77/u6Jc81LvLtJma08+zHbkLYe9ge788ACTtXAwI9afspqjeF0377gM9mz5H3gRV9mtB03ngCS5r+8ESeHwJFyyCvQ3eDVe57WsCC5L4+XpxA4F6tL3z2p1FpclPM9zy8+T4lJyAPNslmzsS5VD4wYGLPe2ma/A/Lg4lDJGnHMqlFi13GClo2CPcDxh8DPHJZOx+wEzdIhzz//obU8LdvMlsEWZWaMs00heHLzliJn8QT1/0EUOEiUseqRRDsvYyrf/vos5szq19PVkSvl7FT6TOdV7V359NX1e7O7ud/XPKJE9eS+fM4VCKrCs0grLUytsRstkwPE51V2qqoY8h+8058jRWA3BxFVaaeHwWmXrIRQcZ9KUjuoVF//KEZXGJp0HtvLrbr1djzLvYXiGhrSXhCqcOfah1jhVHuWHrR8RIu6dBr1pXHqsR5GNM+oF2O82O1MG3EEUff3hn4nP2LlBPKFIb0IhSzhfaPAnbxR4MeV82yMxmxq3mauB1XmoR7EW93UV6/a2xHO9j3VLH4Vrf43DJUF7h3+SoKRuuydW7pXnuIYNGe7OlXmc7ojX7fq27Acd7HsrW2oLlRuBemtTrKimgfXIpuD4qiXllQ0hH0Tpoai56jIKEG3Vo4ij5loHkgJ4PcARBurmpFIqNSA0Tk89HEy+NctUgNwlVwGyvO5BQt7uPMJgd4cMKfKTZVpcTCYjTkufidBeoW5xldzvKpGpTTKPVA0oGNfRNkbnOI2622t/NYLk+2SzGVbK8/X0d/CQ4hBZrsVXymSEmEznI/N5XpJUjQsJqROypIBZzdLRnGrx+lqp9woGQmJi0yAZUo1hmsW7w7UP3BcSyQ2aveDFuRfBi6694JkJQr69E+hS+zMXL8TQvt+VsXYAQ+F1wT6wbQIqRlVvzmfwNmdhc4lhT3teDlFXxjtHeQzCQxQfnfec0JwIWMfpCjbyDzmKMOlCh0xB6nVys2iFtCwucW72OweSAljTbNF/YI2MC5uTksl16Em/4XPCyTogShuSj84fQm0+6sj0/a79IGb3DvBcLNrwfvTXoNcoUhg0N7IO0eQvu9c7kDwNs5cvmd9x59oXglmH/tSrjiVjJm8vpxfMW9ALntcXQ0Nq2P6bNOoND/ReZpmk1OmoC4V4azAFBGLr0zQXU7jsHhc0CYbYqY6OFI4kwvvhR8b0ELglOoPBasglCbkMtRWSBMd0cbjkW9RkmeTU8a8EJm/UFnXLAN4uVxf4exe8dmnzqrGyRJUE0EnOHgcPTChGutq5ZpUY5aKIuAoiJfNI6PJPjmH3734yMGBrd8QMCRr5Ns9IkSa1+C9/aZd+f1uvtR2sAzRyg4i6CfwU04rtqDr6AnzhUouIr/KWZbO43HASmqz56hjkU91T1S14hOIWTB6DaLIhIeaBdPOBWuBAOuuATw9JaRanaxenJpWchv3/n+nqKNcC51jU0dZjH8+mzzDXcwA4GwDq285B6j9WMxVMqRecVNp6++8Jjsfy/XDyAi0VQqAM/Oxy1oDOW5y+VxQ64Xrf2kcpx4BwMw/Hy/t+iiSibqlYXwq7abQa6IV6jmF08bCv3IKTbBL7pGDK53V8boJBYiS44x8l5cjOGcf37JlxvJNtKghbD8XxbcKXHViTurGitULdaMJ2vBS2xfGHrGFTgdrRdyc140Bvr/KRunMlYDFVVTRX+NvX4h8KePqPhLXXhWHhQ23Y6+k/G3ZcZ4VZbMueSNrslIVJSCb7dh2cenwm21wYlm2N41sFtzswRkVjRQNjuA1ho0gVBqF8juu7cVWtm1hfshv7G6lfUs9qVtnd2zO3u48dPvBt338R1jjLVsgMjg+MtNeg5+VzmbXSZb+E5VkKZ+LJ2rWxwlxNu552fCB/v3xGbHx/Y1AW5p6wDL2LmF81vwox9K411t9Vi0qrQ3X0xz49mJeeX9m/5AaxmSgdqapgyAKYTo8bk/JgWFXMqJTbg+n0UAYBaWO0pSLngbJ0Raun2tUPiycaKivVJxlfmdM0O1FBjyRmuz/unaER60QUg4XP8udOtthN/rpYX02mc/3N3uzo+YbdI2y3VBuQm4lTlueHOn2JCD2SSH3VSEYGJsub9ZrpvmKhSicWlDC+BpC5atKyUmJselWjs5kj12rPWWkimYLDpuMUGcZhoUx3lYmBsyn4YWwsFgg2Bp+HKWHp4b49dKi28SON9rERqqXvaVwLZDYyTX6y0cgAYPgE1upeXeibGIhIvoVnWcFIc823BmD2VeatzDiIsG5qIA5ReuavDDP7VumWI0hvm266tcs4Cw7McnS1PRx3xTldN0U/A3boM05pu+ps+zXti4NTwT36FXDDCnDPpLOYNH/RH7H6P6LhF+85nOocAueAWdFY0V4RKzdTgjkjzIx2xvpyguS7xF5UDqqXePgfTIChC0jElt0a6YEze0KfhQL4d3UDlyIiNwPJ7xeKvnsdJS0J7rMXcnku7EqMqYSWpytWPLf8b2GNc8RatUJAT2O847J1JW2A4ve1Ye2oYqYz9xVeRcNrDflHYA/96yZRSokmFTc0WsQ0oZbtHiyXr9VxZCqthIfgGQRaIBytnWuuIN5d/qwSrJzrff1dEzzyLyjNGkS0qxniEjNmDs7O5uA9/4YIkjIDaub6QYf8/Dnhd1ilWidFSDVqRZmDExyWP3uZtwQpDpDlOnxMbi7pNDb4PCdW9UdsOmdZ8Ep0+4PJcnwJgGnH2lgcgkchDRAEPoVWI8+QU7pCfjslkc+GBjM7oq/eVv7l1dORshD2N5yxWGdxvkGUKx0SR3u0oUEBwaWrHPHG4tQV44y/hbBSUKUTctHcXFK1WqVB8p4xnPFess/eRDgSWFN4j8uiYBoZg+vOkjzSn3fsAbJUj4Xl66hCfrWG9IhgpFFuYTR5Y4nLbz9ptlNP5RAp35PTRk4ec8kEhGTlsDgkkr7BbfSN0KVPWTnRGYNvLZeQQELtsHWn/IUKcjr7q6PnGpptdSxV1ejuRBOuWxYJFklkIFmoLPBzmj1i+N5HVLG2qqFBWyWmPt4Dz9+1jPpirDI7AXSIsiroWhNF0Kw9hnMSVhCcOKJdrpDbZ6z4mCxN5oo/CX8Wzh0SBsPDxQc7tPR0RjWmAFPNIIrNTUBJ3+WQcr4jEf85yv2zeZLEx6HHf1ndPbnIjf7YR4vTsMwBF5fajU0b6J5CdWFbS6/3VmX5OMP8lc6BPt22gZpF4IHO+7ZoyPX267l21O+lbkwexl26+XLVb19124eGRPIRrH1Mzp8nwuRFpjqggMWyFy7DGopLxmiZqjFkkPmlqU7HaZ4RlxI0AcFNyds2t7ia2KwIKhhKqPW4ndwIhAZgKB29WrZxoY0Bm4DgBm91zaRb735+10qdO0jfDWR1FxdaxC9YPYI/D3IjUznVaXVOVWbegMwT/NNTwC+CcvdbTyhQwZ6BidDXONpWD9yzlYZ7DZ040BNEKU5Y9dmDIK3o+UcQPp8/YtWCRZN+2Tt+mVS0dynvQmfPjKpM9Da6wGCfezvdvTV683DuDGjLgyDIREtpNWq8jMagyfDb12B8vn893bc36uum+3cgDXRd/LtrZngmmp4lH19id5dOtJhLJzEYopwJlGq2dHDr63O2hyxTEX1sCTuHEmoTZXdfDqHPCsbdbn/czFMy05SEHmQBcQpZThpPxpQcVRBhGnbySJmZ07alX1bo7pNdqbjSx8DA0NLVsiUrdWuSqyu7qd01h3QrMKkvwMsmIF6drj7L2GNJo4jysddTrR8kdmE/eVVHIy8bg9fttY0cWW1OKK6FjX9KL5/0nbxc+djMWCnU98KXS/9xXbdC0e1M6xQKlqGUSeuH7M/v83ZZrr8Te36sNR1FmI7UoV0tJNjmayFo+sufz+lDZthgSWmZXpMHFP/6IZanJR6Skdw18Uh6tataCY+wiw3KaR9WPNjWPwXn5CRPbTKGrHFFmmjfB67EkXmrSkbMe8T39tDjeqXfWa5K6fWlyp1aHZ+wu0hZtJtwqh4PZp3MSM84mfV7jxzf7n/spG2p4VnRdtEvgX29SffjVC501Mqc/Oupx3bZF6cw4ic09LslUpmKuUf0t5cS513907VdjCm8jEpDk7Fj+HjskUxE1vbcsmOPRdNKheoyKi51AQrdSSzRc9sUuzYq594MPCvllip0LWug41bXUOPctV9zDtMLMa/zoLnf5KMPVD8eduqZeAeiAbYTQyx9z2Zr1dXFcbnGICHWc67WV6mK7ebN9o4J5JLVDI5OeWT0jbyMvBuY5pR5o9OblfLJf8taMi1yelyu5tEIqS+gPVws5Z5Eco+C5fZAv0gRaF2t7ErB0WxE9tECVH3+ssInKATqSeHCuq/WerPJ4rg8YbscPxmhw0pdEbYpOsJA3g7rA8uoMVI67M6Da9vX3yxn6ONZM75loNS7uvdEYt9emPnxR89zdx3Rs5lhxpcXuTf/v9N+ds/ZSDdNYQpAwRd5Y/n0feZHkM18BCmz3yuz3yHNiXN+sYZCWwEpqwGKA51vo4O46AUdzCUv6BAuconLXtChvJcX+DAdziXei/fxQjxiPveIS+QS/kG9Prxd/12PoQYebQ29M+DUC3tV8nj/vexhKmEVYifqQC/S6pXbv0NNKKiiplREG1RLgJdS/leq15SzO/eTo6NzIZ8B4dvrNMZORuX4202yJSVCHb8li+zoznjSCDrw8Y7PiOV2zk/zoHEDdYoAyuDJnLTZ4tLMJbg/CUOkRexJtIRCDi77oLpfj+euSL6eZTLRFMVN30k0cXyNpLazz44n89VGkfqjRpKNxwanFCX9BOLTnFFTb2DM1hJbHNzko15m8uLazaadUh4HkxKhsCJioLAif9+nflT7oEZfipRvjC4VO6p13brz6BHp9HhTnZ70l2p7WRuFWmrTNyDSOTaENs5xeN5HDJCA3TrPTZjf/C4b8BVY+E56mttnOk2fxoktMo07ScRS2hUz91Z1nPiH1V/W2p0uGzVf21dWX//iq5BP+M4zH32QgBXfpYjZfw+TJBldlYM4qXZFPXrF5n/RUD01Obof0Vh/4nT06cAovpFiIakYatobGvrDOac0RQDVvVSSHQ0RQZYF9nko1JrAalcmaB8+lNvOWGXDwJ09GA1z73KajqoitIOq9op0uyZ/yA8rXlRQZ8VPCMOOE7tiv6/GGIRGeOP1Y25ViZwfYhQqgztm41TaC2XKrzYMIO+9xvgae0WY7Jq/wWEBg4RlvwcE1Yp3omjC66IJy67S0iDu6usDE+DoxECZNAQNpRUZZj8zHhCuG1AygFc1HpOFzCqKBVEqHccp3sBRWafZCO0hxS8fjPappDwlTiiATeMRAXAk4EaRh7LJR4HVIx3/CXWEMdnbaAdNpCVJx5FM0Z5Joy8EQOB41VZHtmVtSWwsxGyoeCi40Kg+ZIchQF6/ryzxKNZUleLicwYwsLkTjy+CIMHqqwwbAkpGdEIdrjLAzb2kJlTAtsrypkhxjGopMQLs0FQswXamU1HWVRuZ6L6pDHo6SioUUrSB4hKiEmrknER5b8VEJX291mS2FvzNNH1xevc5aFjfuKxVfN1YYew1MaP4c6S45AH1JVUGKWjOrf8T+mAwhucmhHogKqNfKC6uSdudJAehOZEAKBkuh82B78QugPnuJeLaC9Ji8tDhmYetHZ2ci/qdb+tyD9Z8nmu8lbIWslILW7QhkzocoaKmp5WsOFEJkUDA2TTLHJqhjphBc7+RDSufN3fu3JOLnB5A6JZuJeT6wVArA/FGAwhLIsI+RSy4iEVfs+MVFc/a5rJ6JGAbN5w18lYf+58id0qKeFn/L059eOZPBF1lHqcMoYqWOYOe2g1B5fjwTpWhINJj0IDy+lk4xp6fzvYTFEksoyXSG2mdjQTNtgQtIvVnYARpS8xfhLNMrdEv0zlb95ViuUjJ+wi+pWABq9DNKgOjsv8bCxfBiBwff7FVwySUbjPbhjc+uLgBBzWZXvn9YgIspDj454nYQT65cbvpe6dCkaphW4QqpZ0x1VRY6GM0pKWaqRsxHERv9YZGINpOicxD/M92KJJ3IT5AW63jQaPWSg/WArEro2oj0WOTig02gPBOn+akJ6dx8uc0+bUV7cVEiWb+C+/A4+bZZKYrutLjY7F2+VAg2ReP0CTnkSHbcXFCIi9ldiILO2lFMyRQfQ4FywT64Q9QECYFdrjm4ToASUIqgJF82RDraJJJR8SyLsesys+JbpoSZiA34zsXioHKm/f6KsOCQrs0HyPZS5YyIaHEtiAlZqy88FL0e+CX2JGKvZjh5ZeQlWyvLCRr5ct0RGpzCj6oN1gS6IeKikJ6uh3Z3kHRDbbSXDRbZGcWntswCLt58sZbStOJMy39hSENJd9iaiWLe71gJ6+9ai4lPPKtYZQ+A49Yk+C0EPQ6tqPZFgRWC1yMv/nsthmihdJIq4nrznTR+3MmxqS3eSwq5GOmzeRghQ6dEAcAuDgRSG2aC5rp8Hb/ckWwhSh8CxoXZRF4G5pzAOVmeA6MGJ30YWBXtGGOyhkNobdLjDBTwZVe4bfkJXyKpF9VjxKx7mMlEToSd9z86WFF2w6Jqk0yxchWVDkr0PzUkyH/dDlAejIqrE4l0hyVvGW8rvt7YERp5eRnDTW2Swdb6qIuUQX6xTrQLzbhJix0h8EjEg5jhoc+sTkltDq81mwN09zoth0Suv0QY9GtblwOOsa+Si5wwuVoH4NoRZdjcjCs6D7NenVrykOa6NsQauoFiRRBTCdCYagZFnPSy/AQwjM639bsuI1zEQ7LhoYHFa5fwXjCgXGnnoNvFklgoN51fIv5i1J/2SNCMfFtKhZzZSLZeSO9n61uIRzC5ukRiULdZfFHdFOcM7KXqwnB6ypQNb2q2HV1HuHVBuleq7b7r5UQ4kRWu0UhCvEPMmREyCX4RsHg7uKdwV7XeN0pfS5YMkxJeZkj0gqkDAciaYqvh/ICjQrW6Y3kI25Z4z6yZ4j8V8MaYuANx2f3iS2GnBiNHvEaMYrhrlB+2LpZZctDxHY8DkC46JakjcHizylm5kAMWYm5TBeCPLMYfBVSVWyG8x/W0ucVCN02acyePpnSkPQNgygURT7ecHZFyJl2xinaijIpRrEXqoBov7CDrJ1Ob57hiG15VSYeFKwuh7CLJXR+BRn0l1PZd4EpptIsanGudUymIu4iw57vV6/C4aEHddUYDyJocdn/zto+g7KDvrAaeZc/0hvkYhuwDU3PSmiCppEwvSQgfR69z2oZld5j6HjiFZg7MNxZKGP9O93tmnW21/jTDEfgI6cXTz4TdyWeMpQRGR1Pb1XNvlFpfo8noFIFkVjw2YrHPdQguNCDbw3wkUCTB5BzaAH3nNg8vL1Da7ien98RwM0DahjYnUo+SME1DhuM1tlDuar6wFQIFVkx/+E9U4QE/mieIaK6YhTqVmlEsRT04TnwcR9ApFhFvwEoaIUyT08k1UtZWKZtRdUG605vHTDY0RYCR3DndMmnB0ASeG2qVrWyKqoHuwVypYCWgXe/8ImcbITWbLbjwB0Z3DpkeNqJimhH9Bbr3OU4k6vuasBQy1AuxxCAeKcJk1jCIpNgkxxgnF28JlZscTK84uOem0AVUosPJ76MO4XnCasCCkeEEMaRt+QVdDHkFOa/g73KM/zGyFmddRUX7hvzy88lWIzfgVUrYA0PsSqmNmEtxuUM3gllYNIUA7lLTdav4evLo2KlXHkpuwEySggcxugCg43xoEEp9Lx9/yMgUadVhAKieqCxrUllD8ywEg+bmc4gJL71TTWu1h7Zjldd6Tr/ypLH3oBBqJ61+UaGPBt5pOkolp0i4DN2vxUliWw15y15BQ0cEYXOHfaqjjtRo9e27mybzp6y8owCvXcozV9RmzQ4D8i+nA/xzppdTsH+OETJjDK5t6/r34R5gwDedf0wr3jr+q9wU1XFf58Rr+JqE1Zb7XmtOeJ17K6lvyazPSu8tFEfyLJ2bFNr6a/JpDg16r9RC8h6dwsZHpvkzDJ9aXrkIMfPqVTmMCBAzox53fnVz+DMC1LeZsU2IvHB+45maBgu9IxpkKilv5ZmmwIhwQ1OJpeJVTHSeGQWKQZ5xDIGU1MTQyfzdGbhSBi8hiAA6qlgy9+nfcPY35TGvgPg4zFWB+DTs6YrJ1+ebO0YvhuAhgIAAn9OZqfXZ6gv8W3E591J+sshjJlnpl5jJhu12BarLTdLm8UGzdNrtlEZ83TxaZc2h88iIxZaaqlO0803aq7dhkw3xlhk2gRTQBQv9wdQ2+4PSAkb029Upx4+fc4zBmx6Gyn+Uf5R/7cL3ecNZK1yixrew1Q1rPIq1tpss0UW0en+B0jxSGqXlTVf1hJLvI1W17jBja51jVvd5A43uV4wZTo6sw2CbgEQwHm9fwYtdpARAOACin0CQwCqrXSRoQZgJRxiiSErYynD2bHMVFeOzxVjJbZvYmV9/ns2DX29LkxSUnaQve2wzXb7Enp06TZImGGiOcThWfdW1kHI2203YSbuw+K3ANrC7y/em3XYYF/7GkrRZjqaLYTdSjbYbIeibYQ5SopKNDZMvMN+Chby22jTu22wtx4deo3GM/FR8Aln71P2Nbejpb33to8dKkS0Yx0O99p7X2UjOnUGtAlOsVwKscOPultHyVy36TTP1FNmnsmrH2cOgNiTB6FVFeFBt0gVBkqix46mV4ewJo0AdesxDbqkRdg87E3iMcRUI9pEZAlFQSFWQmZcnwx7duVWmGH4SRy0IclEY7okNDWrl002qBV+Q4qMqCAvvVFUo5soRUzUW5PV65G2FJcY97WZXGhDupPtZblxqYa4owpKsnmP9O2WFgQT8HUaWKNsPQh/eIe7833IG6BzdJkep680mNRbOldynNggtM0g+gr6SvrVgBI/OgKjSus5wmshcpgWI9KAjFcAAAAA') format('woff2');
}
@font-face {
  font-family: 'attendee loading Mono';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url('data:font/woff2;base64,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') format('woff2');
}
@font-face {
  font-family: 'attendee loading Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: block;
  src: url('data:font/woff2;base64,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') format('woff2');
}
/* Fixed loading copy uses the same Plex outlines and metrics before the external sheet activates. */
[data-admin-ui] {
  --font-geist-sans:
    'IBM Plex Sans', 'attendee loading Sans', ui-sans-serif, system-ui, -apple-system, sans-serif;
  --font-geist-mono:
    'IBM Plex Mono', 'attendee loading Mono', ui-monospace, 'SFMono-Regular', 'Menlo', monospace;
  --font-sans: var(--font-geist-sans);
  --font-mono: var(--font-geist-mono);
  --font-sans: var(--font-geist-sans);
  font-family: var(--font-geist-sans);
}
.admin-loading,
.dashboard-loading,
[data-loading-body] {
  --font-geist-sans: 'attendee loading Sans', 'IBM Plex Sans', ui-sans-serif, system-ui, sans-serif;
  --font-geist-mono: 'attendee loading Mono', 'IBM Plex Mono', ui-monospace, monospace;
  --font-mono: var(--font-geist-mono);
  --font-sans: var(--font-geist-sans);
  font-family: var(--font-geist-sans);
}

.nl-kind-specific{display:none}[data-admin-email-kind="receipt"] .nl-kind-specific[data-email-kind="receipt"]{display:contents}[data-admin-email-kind="receipt"] .nl-kind-fallback{display:none}[data-admin-email-kind="tickets"] .nl-kind-specific[data-email-kind="tickets"]{display:contents}[data-admin-email-kind="tickets"] .nl-kind-fallback{display:none}[data-admin-email-kind="refund"] .nl-kind-specific[data-email-kind="refund"]{display:contents}[data-admin-email-kind="refund"] .nl-kind-fallback{display:none}[data-admin-email-kind="payment_failed"] .nl-kind-specific[data-email-kind="payment_failed"]{display:contents}[data-admin-email-kind="payment_failed"] .nl-kind-fallback{display:none}[data-admin-email-kind="reminder"] .nl-kind-specific[data-email-kind="reminder"]{display:contents}[data-admin-email-kind="reminder"] .nl-kind-fallback{display:none}[data-admin-email-kind="event_cancelled"] .nl-kind-specific[data-email-kind="event_cancelled"]{display:contents}[data-admin-email-kind="event_cancelled"] .nl-kind-fallback{display:none}[data-admin-email-kind="event_updated"] .nl-kind-specific[data-email-kind="event_updated"]{display:contents}[data-admin-email-kind="event_updated"] .nl-kind-fallback{display:none}[data-admin-email-kind="registration_confirmed"] .nl-kind-specific[data-email-kind="registration_confirmed"]{display:contents}[data-admin-email-kind="registration_confirmed"] .nl-kind-fallback{display:none}[data-admin-email-kind="registration_received"] .nl-kind-specific[data-email-kind="registration_received"]{display:contents}[data-admin-email-kind="registration_received"] .nl-kind-fallback{display:none}[data-admin-email-kind="registration_approved"] .nl-kind-specific[data-email-kind="registration_approved"]{display:contents}[data-admin-email-kind="registration_approved"] .nl-kind-fallback{display:none}[data-admin-email-kind="registration_declined"] .nl-kind-specific[data-email-kind="registration_declined"]{display:contents}[data-admin-email-kind="registration_declined"] .nl-kind-fallback{display:none}[data-admin-email-kind="waitlist_joined"] .nl-kind-specific[data-email-kind="waitlist_joined"]{display:contents}[data-admin-email-kind="waitlist_joined"] .nl-kind-fallback{display:none}[data-admin-email-kind="waitlist_offer"] .nl-kind-specific[data-email-kind="waitlist_offer"]{display:contents}[data-admin-email-kind="waitlist_offer"] .nl-kind-fallback{display:none}[data-admin-email-kind="waitlist_offer_expired"] .nl-kind-specific[data-email-kind="waitlist_offer_expired"]{display:contents}[data-admin-email-kind="waitlist_offer_expired"] .nl-kind-fallback{display:none}[data-admin-email-kind="registration_approved_pay"] .nl-kind-specific[data-email-kind="registration_approved_pay"]{display:contents}[data-admin-email-kind="registration_approved_pay"] .nl-kind-fallback{display:none}[data-admin-email-kind="registration_pay_reminder"] .nl-kind-specific[data-email-kind="registration_pay_reminder"]{display:contents}[data-admin-email-kind="registration_pay_reminder"] .nl-kind-fallback{display:none}[data-admin-email-kind="registration_pay_expired"] .nl-kind-specific[data-email-kind="registration_pay_expired"]{display:contents}[data-admin-email-kind="registration_pay_expired"] .nl-kind-fallback{display:none}
/* Reset on each React shell so the initial document route cannot leak into SPA navigation. */
[data-admin-loading] {
  /* The app chrome's ground; the studio and onsite rules below re-declare it on their own
     root, and loading-shell.js leaves their `data-admin-chrome` stamp on <html>. */
  --al-ground: var(--surface-canvas);
  --al-table: none;
  --al-rows: none;
  --al-settings: none;
  --al-detail: none;
  --al-overview: none;
  --al-hub: none;
  --al-welcome: none;
  --al-editor: none;
  --al-canvas: none;
  --al-workbench: none;
  --al-figures: none;
  --al-sections: none;
  --al-case: none;
  --al-event: none;
  --al-report: none;
  --al-report-new: none;
  --al-report-library: none;
  --al-page-display: block;
  --al-studio-bar: none;
  --al-app-bar: flex;
  --al-scan: none;
  --al-sales: none;
  --al-stats: none;
  --al-stat-columns: 4;
  --al-body-margin: 24px;
  --al-stat-third: block;
  --al-stat-fourth: block;
  --al-rail: none;
  --al-page-rail: none;
  --al-rail-width: 240px;
  --al-section-nav: none;
  --al-filters: none;
  --al-heading: block;
  --al-record-avatar: none;
  --al-breadcrumb: none;
  --al-mobile-nav: flex;
  --al-page-padding: initial;
  --al-tab-strip: none;
  --al-heading-tabs: none;
  --al-zen: none;
  --al-zen-off: inline-flex;
}
[data-admin-loading='table'] {
  --al-table: block;
}
[data-admin-loading='rows'] {
  --al-rows: block;
}
[data-admin-loading='settings'] {
  --al-settings: block;
}
[data-admin-loading='detail'] {
  --al-detail: block;
}
[data-admin-loading='overview'] {
  --al-overview: block;
}
[data-admin-loading='hub'] {
  --al-hub: block;
}
[data-admin-loading='editor'] {
  --al-editor: block;
}
/* The page draws its own bar and no heading, so the page heading ghosts above the
   column would be a band the real surface never fills. */
[data-admin-loading='welcome'] {
  --al-welcome: flex;
  --al-heading: none;
}
[data-admin-loading='canvas'] {
  --al-canvas: grid;
}
/* The workbench fills the column edge to edge under the bar, which holds its title. */
[data-admin-loading='workbench'] {
  --al-workbench: flex;
  --al-page-display: none;
}
/* A page of figures keeps its title in the bar too, and pads itself. */
[data-admin-loading='figures'] {
  --al-figures: block;
  --al-page-display: none;
}
/* A page of sections keeps the area's title in the bar, and pads itself. */
[data-admin-loading='sections'] {
  --al-sections: block;
  --al-page-display: none;
}
/* A dispute case keeps its trail in the bar, and pads itself. */
[data-admin-loading='case'] {
  --al-case: block;
  --al-page-display: none;
}
/* So does the event page. */
[data-admin-loading='event'] {
  --al-event: block;
  --al-page-display: none;
}
[data-admin-loading='report-library'] {
  --al-report-library: block;
  --al-page-display: none;
}
[data-admin-loading='report-new'] {
  --al-report-new: flex;
  --al-page-display: none;
}
[data-admin-loading='report'] {
  --al-report: flex;
  --al-page-display: none;
  --al-heading: none;
  --al-page-padding: 0;
  --al-body-margin: 0;
}
[data-admin-loading='scan'] {
  --al-scan: block;
}
[data-admin-loading='sales'] {
  --al-sales: grid;
}
[data-admin-stats='2'],
[data-admin-stats='3'],
[data-admin-stats='4'] {
  --al-stats: grid;
}
[data-admin-stats='2'] {
  --al-stat-third: none;
  --al-stat-fourth: none;
  --al-stat-columns: 2;
}
[data-admin-stats='3'] {
  --al-stat-fourth: none;
  --al-stat-columns: 3;
}
[data-admin-rail='app'] {
  --al-rail: flex;
}
[data-admin-rail='onsite'] {
  --al-rail: flex;
  --al-page-rail: flex;
  --al-rail-width: 320px;
}
/* The visitor's collapsed sidebar, read from localStorage by loading-shell.js
   before the body paints: the ghost narrows to the 64px spine and its blocks to
   the centred column the live spine keeps (a 14px gutter each side), so first
   paint can't reserve 240px the app is about to give back. Stamped on the root,
   so the dashboard skeleton — which carries no data-admin-* attributes —
   inherits it too. The onsite workstation's own rail is
   a different surface and keeps its width. */
html[data-admin-rail-collapsed]:not([data-admin-rail='onsite']),
/* Second selector: the SPA re-renders this shell as a route placeholder, and its
   own root re-declares the variables above — the flag has to reach that root too. */
html[data-admin-rail-collapsed] [data-admin-loading]:not([data-admin-rail='onsite']),
/* Third: the SPA placeholder carries the flag itself when the root stamp is gone. */
.admin-loading[data-admin-rail-collapsed]:not([data-admin-rail='onsite']) {
  --al-rail-width: 64px;
  --al-rail-pad-x: 14px;
  --al-rail-brand-pad-x: 0;
  --al-rail-switcher-height: 36px;
}
/* Collapsed, the lockup is the ticket symbol alone — centred over the tiles below it. */
html[data-admin-rail-collapsed]:not([data-admin-rail='onsite']) .al-rail .al-brand,
html[data-admin-rail-collapsed]
  [data-admin-loading]:not([data-admin-rail='onsite'])
  .al-rail
  .al-brand,
.admin-loading[data-admin-rail-collapsed]:not([data-admin-rail='onsite']) .al-rail .al-brand {
  width: 18.27px;
  margin-inline: auto;
}
[data-admin-nav='section'] {
  --al-section-nav: block;
}
[data-admin-nav='filters'] {
  --al-filters: block;
}
[data-admin-nav='tabs'] {
  --al-tab-strip: block;
}
[data-admin-header='tabbed'] {
  --al-heading-tabs: block;
}
[data-admin-header='detail'] {
  --al-record-avatar: block;
  --al-breadcrumb: block;
}
[data-admin-chrome='studio'] {
  --al-studio-bar: flex;
  --al-app-bar: none;
}
[data-admin-chrome='studio'],
[data-admin-chrome='onsite'] {
  --al-mobile-nav: none;
}
/* Zen mode on `/welcome` (`attendee.assistantZen`): the shell draws no sidebar, top
   bar or tab bar, only the test-mode strip. loading-shell.js stamps the flag on
   `<html>` before the body paints; a React placeholder states it on its own root,
   which re-declares the variables above. */
html[data-admin-zen][data-admin-layout='welcome'],
.admin-loading[data-admin-zen][data-admin-layout='welcome'] {
  --al-rail: none;
  --al-app-bar: none;
  --al-mobile-nav: none;
  --al-zen: flex;
  --al-zen-off: none;
}
/* `/welcome`'s conversations column put away (`attendee.assistantConversationsCollapsed`):
   stamped and stated the same way as zen mode, and the page keeps the stamp honest. */
html[data-admin-conversations-collapsed][data-admin-layout='welcome'],
.admin-loading[data-admin-conversations-collapsed][data-admin-layout='welcome'] {
  --al-convos: none;
  --al-convos-bar: flex;
}
/* The deployment's Stripe test-mode strip. AppShell pins it above the whole
   shell (sidebar included) on a test-mode build, so a first paint without it
   lays the chrome out 31.5px too high and shoves it down once the app mounts.
   A test-mode build stamps the flag on <html> (vite.config.ts); a React
   placeholder states it on its own root from the same build constant
   (lib/stripe-mode.ts). The strip is app chrome only: the studio and the
   onsite shell never draw it. */
[data-admin-test-mode='true'] {
  --al-testbar: flex;
  --al-testbar-height: 31.5px;
}
/* Studio and onsite have no bare selector of their own and take the descendant
   route on the boot shell, which reads the flags off `<html>`. */
[data-admin-test-mode='false'],
html[data-admin-chrome='studio'] .boot-shell,
html[data-admin-chrome='onsite'] .boot-shell {
  --al-testbar: none;
  --al-testbar-height: 0px;
}
/* A studio placeholder states the build's flag on its own root too; its column still keeps the
   whole viewport under the bar. */
.admin-loading[data-admin-chrome='studio'] {
  --al-testbar-height: 0px;
}

.admin-loading,
.admin-loading * {
  box-sizing: border-box;
}
/* The shell's ground: AppShell paints the whole frame, page column included, on the
   canvas. The studio and the onsite workstation keep their own grounds. */
.admin-loading {
  min-width: 0;
  width: 100%;
  background: var(--al-ground, var(--surface-canvas));
}
/* The studio bar and its pages sit on the canvas, like the live ReportStudioShell. */
[data-admin-chrome='studio'] {
  --al-ground: var(--surface-canvas);
}
[data-admin-chrome='onsite'] {
  --al-ground: var(--surface-canvas);
}
.al-scope-full {
  min-height: 100svh;
}
/* 6px + 13px × 1.5 + 6px: StripeTestModeBar, the ds warning NoticeBanner strip at
   `py-1.5`, its one line centred and no hairline. Not sticky like the live one — a
   placeholder never scrolls far enough to tell — but the workspace under it gives up
   the same height so the rail's ghost still ends at the bottom of the viewport. */
.al-testbar {
  display: var(--al-testbar, none);
  align-items: center;
  justify-content: center;
  height: var(--al-testbar-height, 0px);
  background: var(--status-warning-soft);
}
.al-testbar-line {
  width: 250px;
  height: 10px;
  background: color-mix(in oklab, var(--status-warning-strong) 22%, transparent);
}
.admin-loading .dl-mobile-nav {
  display: var(--al-mobile-nav, none);
}
.al-workspace {
  display: flex;
  min-width: 0;
}
/* The rail is the first column of the whole shell, so it has to reach the bottom
   of the viewport rather than stopping under its last nav ghost. */
.al-scope-full .al-workspace,
.dashboard-loading .al-workspace {
  min-height: calc(100svh - var(--al-testbar-height, 0px));
}
/* Everything beside the rail: the header ghost, then the page. */
.al-shell-column {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}
.al-rail {
  display: none;
  position: sticky;
  top: 0;
  height: calc(100svh - var(--al-testbar-height, 0px));
  flex-direction: column;
  flex-shrink: 0;
  /* The fallbacks are the expanded defaults: the dashboard skeleton draws this
     same rail without the [data-admin-loading] variable block above it. */
  width: var(--al-rail-width, 240px);
  border-right: 1px solid var(--line-default);
  background: var(--surface-canvas);
}
/* The sidebar's blocks are ds Buttons and IconButtons: their ghosts take the control radius. */
.al-rail .dl-ghost {
  border-radius: var(--radius-control);
}
/* The top bar's height, so the wordmark sits on the bar's centre line. */
.al-rail-brand {
  display: flex;
  flex-shrink: 0;
  height: 56px;
  align-items: center;
  padding-inline: var(--al-rail-brand-pad-x, 22px);
}
/* Match the sidebar's 18px wordmark and its nav-icon alignment. */
.al-rail .al-brand {
  width: 105.9px;
  height: 18px;
  border-radius: 1.5px;
}
.al-rail-workspace {
  flex-shrink: 0;
  padding: 0 var(--al-rail-pad-x, 12px) 8px;
}
/* The switcher trigger: the 32px tile and the name over the role, `py-1.5`; collapsed,
   the tile alone at `py-0.5`. */
.al-switcher {
  height: var(--al-rail-switcher-height, 48.3px);
}
/* One list, as the live nav is: rows 2px apart, the seam a hairline with 8px each side. */
.al-rail-nav {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  padding: 8px var(--al-rail-pad-x, 12px) 16px;
}
.al-rail .al-nav-rows {
  gap: 2px;
}
.al-rail-divider {
  height: 1px;
  margin-block: 8px;
  background: var(--line-default);
}
/* The toggle is a 36px IconButton at the gutter's start: the icon shares the rows'
   22px edge expanded, and sits in the spine's centred column collapsed. */
.al-rail-footer {
  flex-shrink: 0;
  padding: 12px var(--al-rail-pad-x, 12px);
}
.al-collapse {
  width: 36px;
  max-width: none;
  height: 36px;
}
.al-nav-rows {
  display: grid;
  gap: 12px;
}
.al-nav-row {
  width: 100%;
  height: 36px;
}
/* The AI row is the workspace's and the viewer's (`canUseAssistant`), which no first
   paint knows, so the ghost keeps the row the sidebar drew last time: AppShell
   remembers it (`attendee.sidebarAiRow`) and keeps the flag on `<html>` honest,
   loading-shell.js stamps it before the body paints, and the app layout's
   placeholder states it on its own root. */
.al-rail .al-nav-row-ai {
  display: none;
}
[data-admin-rail-ai] .al-rail .al-nav-row-ai {
  display: block;
}
.al-page {
  display: var(--al-page-display, block);
  flex: 1;
  width: 100%;
  min-width: 0;
  max-width: 1600px;
  margin: 0 auto;
  padding: var(--al-page-padding, 32px 20px);
}
/* The dashboard skeleton's body is a `.dl-page` — its own width, max-width and
   padding live inline in index.html; all it needs here is to take the remainder
   beside the rail. Deliberately no `padding` shorthand: this rule lands after
   index.html's `.dashboard-loading .dl-page` and would drop its mobile-bar
   clearance. */
.al-shell-column > .dl-page {
  flex: 1;
  min-width: 0;
}
.al-scope-full .al-page {
  padding-bottom: 88px;
}
.al-section-grid,
.al-content-grid {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.al-section-nav {
  display: var(--al-section-nav, none);
  flex-shrink: 0;
}
.al-section-nav .al-nav-rows {
  display: flex;
  overflow: hidden;
}
.al-section-nav .al-nav-row {
  flex-shrink: 0;
  width: 96px;
}
.al-filters {
  display: none;
  flex-shrink: 0;
  width: 208px;
}
.al-main,
.al-grow {
  flex: 1;
  min-width: 0;
}
.al-heading {
  display: var(--al-heading, block);
}
.al-identity {
  display: flex;
  align-items: center;
  gap: 16px;
}
.al-heading .dl-title {
  margin-top: 0;
}
.al-breadcrumb {
  display: var(--al-breadcrumb, none);
  width: 160px;
  height: 14px;
  margin-bottom: 24px;
}
.al-record-avatar {
  display: var(--al-record-avatar, none);
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  border-radius: 4.5px;
}
.al-action {
  width: 112px;
  height: 36px;
  flex-shrink: 0;
  border-radius: 3.75px;
}
.al-heading .al-action {
  display: none;
}
/* RouteTabs strips: 2px + a 13px × 1.45 line + 12px of `pt-0.5 pb-3 text-body`
   tabs, then the hairline. The Marketing strip (`.al-tab-strip`, above the
   heading) hides from `lg`, where the contextual sidebar carries those
   sections; the Promotions strip under its heading stands at every width. */
.al-tab-strip {
  display: var(--al-tab-strip, none);
  height: 33.85px;
  margin-bottom: 24px;
}
.al-heading-tabs {
  display: var(--al-heading-tabs, none);
  height: 33.85px;
  margin-top: 24px;
}
.al-body {
  margin-top: var(--al-body-margin, 24px);
}
.al-stats {
  display: var(--al-stats, none);
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}
.al-stats > :nth-child(3) {
  display: var(--al-stat-third, block);
}
.al-stats > :nth-child(4) {
  display: var(--al-stat-fourth, block);
}
.al-view-table {
  display: var(--al-table, none);
}
.al-view-rows {
  display: var(--al-rows, none);
}
.al-view-settings {
  display: var(--al-settings, none);
}
.al-view-detail {
  display: var(--al-detail, none);
}
.al-view-overview {
  display: var(--al-overview, none);
}
.al-view-hub {
  display: var(--al-hub, none);
}
.al-view-welcome {
  display: var(--al-welcome, none);
}
.al-view-editor {
  display: var(--al-editor, none);
}
.al-view-canvas {
  display: var(--al-canvas, none);
}
.al-view-report {
  display: var(--al-report, none);
}
.al-view-scan {
  display: var(--al-scan, none);
}
.al-view-sales {
  display: var(--al-sales, none);
}
.al-table {
  overflow: hidden;
  border: 1px solid var(--border, #e7e7ea);
  border-radius: 6px;
  background: var(--card, #fff);
}
.al-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 16px;
}
.al-toolbar > :last-child {
  margin-left: auto;
}
.al-toolbar .al-action:nth-child(2) {
  display: none;
}
.al-search {
  width: 240px;
  max-width: 60%;
  height: 36px;
  border-radius: 3.75px;
}
.al-table-head,
.al-table-row {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  align-items: center;
  gap: 24px;
  padding: 20px;
  border-top: 1px solid var(--border, #e7e7ea);
}
.al-table-head {
  padding-block: 16px;
}
.al-table-head > :nth-child(n + 3),
.al-table-row > :nth-child(n + 3) {
  display: none;
}
.al-table > .al-toolbar:last-child {
  border-top: 1px solid var(--border, #e7e7ea);
}
.al-cell-identity,
.al-list-row {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.al-cell {
  width: 96px;
  height: 14px;
}
.al-icon {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border-radius: 3.75px;
}
.al-list-row {
  padding: 24px 20px;
  border-top: 1px solid var(--border, #e7e7ea);
}
.al-list-row .al-action {
  width: 64px;
}
.al-settings {
  border-block: 1px solid var(--border, #e7e7ea);
}
.al-setting {
  display: grid;
  gap: 24px;
  padding: 32px 0;
}
.al-setting + .al-setting {
  border-top: 1px solid var(--border, #e7e7ea);
}
.al-setting > :last-child {
  width: 100%;
  max-width: 672px;
}
.al-fields {
  display: grid;
  gap: 20px;
}
.al-input {
  width: 100%;
  height: 38px;
  margin-top: 12px;
  border-radius: 3.375px;
}
.al-fields + .al-action {
  margin-top: 24px;
}
.al-facts {
  margin-top: 24px;
}
.al-fact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 0;
}
.al-fact + .al-fact {
  border-top: 1px solid var(--border, #e7e7ea);
}
.al-detail-grid,
.al-overview-grid,
.al-editor-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}
.al-detail-list,
.al-essentials {
  margin-top: 24px;
}
.al-donut {
  width: 220px;
  max-width: 100%;
  aspect-ratio: 1;
  border-radius: 50%;
  margin: 32px auto;
}
.al-hub-group + .al-hub-group {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--border, #e7e7ea);
}
.al-hub-grid {
  display: grid;
  gap: 24px;
  margin-top: 20px;
}
.al-hub-item .al-icon {
  margin-bottom: 16px;
}
/* The takeover's stage, ghosted. Every box below was measured off the real
   surface at 1440px rather than sketched: eyebrow 20px at 240px, the H1's two
   48px lines, the composer shell 100px (its scope-chip row sits inside the same
   border), and the four prompt cards 78px in a 2x2 at 12px gap. */
.al-view-welcome {
  margin: 56px auto 0;
  width: 100%;
  max-width: 820px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
}
.al-welcome-eyebrow {
  width: 240px;
  height: 20px;
}
.al-welcome-title {
  width: 520px;
  max-width: 100%;
  height: 96px;
  border-radius: 8px;
}
.al-welcome-input {
  width: 100%;
  height: 100px;
  border-radius: 16px;
}
.al-welcome-grid {
  display: grid;
  width: 100%;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
/* assistant.css turns the same corner at 640px: the takeover's gutter drops to
   16px, the prompt grid drops to one column, and the H1 steps down to 30px, so
   its two lines measure 69px there. The ghost has to follow all three or the
   placeholder is the wrong width and half the height of the page it stands in
   for. The gutter is set on this shape alone; every other one keeps the 20px the
   admin pages use. */
@media (max-width: 640px) {
  [data-admin-loading='welcome'] {
    --al-page-padding: 32px 16px;
  }
  .al-welcome-grid {
    grid-template-columns: 1fr;
  }
  .al-welcome-title {
    height: 69px;
  }
}
.al-welcome-card {
  height: 78px;
  border-radius: 12px;
}
.al-progress {
  height: 8px;
  width: 100%;
  margin-bottom: 24px;
}
.al-textarea {
  height: 180px;
  margin: 24px 0;
}
.al-preview-image {
  height: 160px;
  margin-top: 24px;
}
.al-view-canvas {
  grid-template-columns: minmax(0, 1fr);
  min-height: 520px;
  border: 1px solid var(--border, #e7e7ea);
  border-radius: 4.5px;
}
.al-flow {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 40px 20px;
}
.al-flow-node {
  width: 240px;
  max-width: 100%;
  min-height: 80px;
}
.al-flow-step {
  max-width: 100%;
}
.al-connector {
  width: 1px;
  height: 40px;
  margin: 0 auto;
  background: var(--border, #e7e7ea);
}
.al-inspector {
  display: none;
  padding: 24px;
  border-left: 1px solid var(--border, #e7e7ea);
}
.al-view-scan {
  max-width: 576px;
  margin: 0 auto;
}
.al-camera {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  margin-top: 24px;
  padding: 40px 24px;
}
.al-camera-frame {
  width: 280px;
  max-width: 100%;
  aspect-ratio: 1;
}
.al-view-sales {
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
}
.al-catalog > .al-input {
  margin: 0 0 24px;
}
.al-scope-section .al-page {
  padding: 0;
}
.al-scope-section .al-section-nav,
.al-scope-section .al-tab-strip {
  display: none;
}
/* Promotions leaves load under a heading and strip the layout already drew. */
.al-scope-section[data-admin-header='tabbed'] {
  --al-heading: none;
  --al-body-margin: 0;
}

.boot-shell > .admin-loading {
  display: none;
}
html[data-admin-loading] .boot-shell {
  padding: 0;
}
html[data-admin-loading] .boot-shell > .boot-sr-only,
html[data-admin-loading] .boot-shell > .boot-shell-inner {
  display: none;
}
html[data-admin-loading] .boot-shell > .admin-loading {
  display: block;
}
html[data-admin-loading] .boot-shell[data-failed='true'] > .admin-loading {
  display: none;
}
html[data-admin-loading] .boot-shell[data-failed='true'] > .boot-shell-inner {
  display: block;
  padding: 32px;
}

@media (min-width: 640px) {
  .al-page {
    padding: var(--al-page-padding, 40px 32px);
  }
  .al-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .al-heading .al-action,
  .al-toolbar .al-action:nth-child(2) {
    display: block;
  }
  .al-table-head,
  .al-table-row {
    grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr));
  }
  .al-table-head > :nth-child(n + 3),
  .al-table-row > :nth-child(n + 3) {
    display: block;
  }
  .al-hub-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .admin-loading .dl-mobile-nav,
  .al-tab-strip {
    display: none;
  }
  .al-scope-full .al-page {
    padding-bottom: 40px;
  }
  .al-rail {
    display: var(--al-rail, none);
  }
  .al-scope-page .al-rail {
    display: var(--al-page-rail, none);
  }
  /* The sidebar stands beside the dashboard at every `lg+` width, and the
     dashboard shell sets no --al-rail of its own. */
  .dashboard-loading .al-rail {
    display: flex;
  }
  .al-section-grid,
  .al-content-grid {
    flex-direction: row;
    gap: 32px;
  }
  .al-section-nav {
    width: 208px;
  }
  .al-section-nav .al-nav-rows {
    display: grid;
  }
  .al-section-nav .al-nav-row {
    width: 100%;
  }
  .al-filters {
    display: var(--al-filters, none);
  }
  .al-setting {
    grid-template-columns: minmax(200px, 300px) minmax(0, 1fr);
    column-gap: 40px;
  }
  .al-detail-grid,
  .al-editor-grid {
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
  }
  .al-view-canvas {
    grid-template-columns: minmax(0, 1fr) 280px;
  }
  .al-inspector {
    display: block;
  }
  .al-view-sales {
    grid-template-columns: minmax(0, 1fr) 360px;
  }
}
@media (min-width: 1280px) {
  .al-stats {
    grid-template-columns: repeat(var(--al-stat-columns, 4), minmax(0, 1fr));
  }
  .al-overview-grid {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  }
  .al-hub-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* The queue workbench: strip, queue, and from `lg` the open item beside it. Dimensions follow
   components/disputes/queue-workbench.tsx. */
.al-view-workbench {
  display: var(--al-workbench, none);
  flex: 1;
  flex-direction: column;
  min-width: 0;
}
.al-scope-page .al-view-workbench {
  min-height: calc(100svh - var(--app-header-height, 3.5rem));
}
.al-wb-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
  padding: 14px 24px;
  border-bottom: 1px solid var(--border, #e7e7ea);
}
.al-wb-figure {
  width: 148px;
  height: 20px;
}
.al-wb-panes {
  display: flex;
  flex: 1;
  min-height: 0;
}
.al-wb-queue {
  flex: 1;
  min-width: 0;
  padding: 14px 16px 20px;
}
.al-wb-control {
  height: 34px;
  margin-bottom: 10px;
}
.al-wb-group {
  width: 112px;
  height: 12px;
  margin: 24px 6px 8px;
}
.al-wb-item {
  padding: 12px 6px;
}
.al-wb-detail {
  display: none;
  flex: 1 1 420px;
  min-width: 0;
  max-width: 820px;
  padding: 32px clamp(20px, 4vw, 40px);
}
.al-wb-detail .dl-title {
  margin-top: 12px;
}
.al-wb-banner {
  height: 80px;
  margin-top: 40px;
}
.al-wb-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 32px 40px;
  margin-top: 36px;
}
@media (min-width: 1024px) {
  .al-wb-queue {
    flex: 0 1 380px;
    min-width: 280px;
    border-right: 1px solid var(--border, #e7e7ea);
  }
  .al-wb-detail {
    display: block;
  }
}

/* A page of figures: the period control, eight summary cards, two columns of rows. Dimensions
   follow routes/dispute-outcomes.tsx. */
.al-view-figures {
  display: var(--al-figures, none);
  flex: 1;
  min-width: 0;
  padding: 28px clamp(20px, 4vw, 40px) 80px;
  container-type: inline-size;
}
.al-fg-control {
  width: 384px;
  max-width: 100%;
  height: 34px;
}
/* The cards' rows are always full: two to a row, four from 696px, all eight in one row from
   1284px, as routes/dispute-outcomes.tsx lays them out. */
.al-fg-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 24px;
}
.al-fg-card {
  box-sizing: border-box;
  min-height: 124px;
  padding: 16px 18px;
  border-radius: 12px;
}
@container (min-width: 696px) {
  .al-fg-cards {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@container (min-width: 1284px) {
  .al-fg-cards {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
}
.al-fg-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 40px;
  margin-top: 36px;
}

/* A page of titled sections: its heading, then a card of rows under each section's heading.
   Dimensions follow routes/dispute-settings.tsx. */
.al-view-sections {
  display: var(--al-sections, none);
  box-sizing: border-box;
  width: 100%;
  max-width: 760px;
  padding: 28px clamp(20px, 4vw, 40px) 80px;
}
.al-view-sections > .dl-title {
  margin-top: 0;
}
.al-sc-section {
  margin-top: 36px;
}
.al-sc-card {
  margin-top: 12px;
  padding: 0 16px;
  border: 1px solid var(--border, #e7e7ea);
  border-radius: 12px;
}
.al-sc-card .al-facts {
  margin-top: 0;
}

/* One dispute case, one page: the head, the band, then the case and its decisions beside the
   rail, which drops below it when the two no longer fit. Dimensions follow
   routes/dispute-detail.tsx. */
.al-view-case {
  display: var(--al-case, none);
  box-sizing: border-box;
  width: 100%;
  max-width: 1180px;
  padding: 20px clamp(20px, 4vw, 40px) 80px;
}
/* The back row is a 32px control with 14px under it; its ghost is the label's line inside it. */
.al-case-back {
  width: 104px;
  height: 14px;
  margin: 9px 0 23px;
}
.al-case-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px 24px;
}
.al-case-head .al-grow {
  flex: 1 1 260px;
}
.al-case-head .dl-title {
  margin-top: 0;
}
.al-case-amount {
  width: 160px;
  margin-left: auto;
}
.al-view-case .al-wb-banner {
  margin-top: 18px;
}
.al-case-body {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 36px 40px;
  margin-top: 28px;
}
.al-case-main {
  flex: 1 1 520px;
  min-width: 0;
}
.al-case-rail {
  flex: 1 1 260px;
  min-width: 0;
  max-width: 300px;
}

/* The event page: the name and its facts beside the actions, the tab bar, then the open tab.
   Dimensions follow routes/event-detail.tsx. A route loading under the page itself
   (`event-section`: the comps page) draws the body alone, where the page's Outlet sits. */
.al-view-event {
  display: var(--al-event, none);
  box-sizing: border-box;
  width: 100%;
  padding: 30px clamp(20px, 4vw, 40px) 72px;
}
.al-event-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px 24px;
}
.al-event-head .al-grow {
  flex: 1 1 260px;
}
.al-event-head .dl-title {
  margin-top: 0;
}
.al-event-actions {
  width: 232px;
  max-width: 100%;
  height: 36px;
}
.al-event-bar {
  width: 520px;
  max-width: 100%;
  height: 40px;
  margin-top: 22px;
}
.al-event-body {
  max-width: 720px;
  margin-top: 24px;
}
.al-scope-event-section .al-view-event {
  padding: 0;
}
.al-scope-event-section .al-event-head,
.al-scope-event-section .al-event-bar {
  display: none;
}
.al-scope-event-section .al-event-body {
  margin-top: 0;
}

/* Report routes use these same shapes before React, during routing and while
   their data loads. Keep dimensions aligned with the library and BuilderView. */
.admin-loading .dl-topbar {
  display: var(--al-app-bar, flex);
}
.al-view-report-library {
  display: var(--al-report-library, none);
}
/* The Report studio bar (report-studio-shell.tsx): 56px on the canvas over a hairline, the
   "Report studio" wordmark (15px/1.4 semibold) and the 32px ghost exit at the right; 16px in,
   24px from 640px. */
.report-studio-loading-bar {
  display: var(--al-studio-bar, none);
  box-sizing: border-box;
  flex-shrink: 0;
  align-items: center;
  gap: 12px;
  height: 56px;
  padding: 0 16px;
  border-bottom: 1px solid var(--line-default);
  background: var(--surface-canvas);
  color: var(--text-primary);
  font: 600 15px/1.4 var(--font-ui);
}
/* The exit's X glyph: two 16px strokes crossed in a 32px square. */
.rl-close {
  position: relative;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  margin-left: auto;
  color: var(--action-ghost-fg);
}
.rl-close::before,
.rl-close::after {
  content: '';
  position: absolute;
  top: 15.375px;
  left: 9.5px;
  width: 13px;
  height: 1.25px;
  border-radius: 1px;
  background: currentColor;
  transform: rotate(45deg);
}
.rl-close::after {
  transform: rotate(-45deg);
}
@media (min-width: 640px) {
  .report-studio-loading-bar {
    padding-inline: 24px;
  }
}

.report-library-loading,
.report-builder-loading {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  color: var(--text-primary);
  font-family: var(--font-ui);
}
.report-library-loading *,
.report-builder-loading * {
  box-sizing: border-box;
}
.report-library-loading :where(h1, h2, p),
.report-builder-loading :where(h1, h2, p) {
  margin: 0;
}
.rl-ghost {
  display: block;
  min-width: 0;
}
/* A text line's ghost: the line box keeps its height, the bar draws inside its padding. */
.rl-ghost.rl-line {
  background-clip: content-box;
}
.rl-ghost.rl-square {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border-radius: var(--radius-control);
}
/* ds Button size sm: 32px, 10px sides, 13px medium, the 16px glyph 8px before the label. Primary
   and ghost buttons have no edge; secondary ones (`rl-outline`) a 1px one. */
.lp-control.rl-control {
  height: 32px;
  padding: 0 10px;
  border: 0;
  gap: 8px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
}
.lp-control.rl-outline {
  border: 1px solid transparent;
}

/* The library (report-builder-list.tsx): PageContainer's frame; the ds PageHeader with no eyebrow
   (the 22px title on its 36px row, the 14px/1.5 description 4px under it, at most 672px) with
   "New report" at the right, wrapping under it when narrow. */
.report-library-loading {
  max-width: 1600px;
  margin: 0 auto;
  padding: 32px 20px;
}
.rl-page-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.rl-page-header-copy {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  min-width: 0;
}
.rl-page-header-copy > div {
  min-width: 0;
}
.rl-title-row {
  display: flex;
  align-items: center;
  min-height: 36px;
}
.rl-title {
  font-size: 22px;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: -0.025em;
  text-wrap: balance;
}
p.rl-page-description {
  max-width: 672px;
  margin-top: 4px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text-secondary);
}
/* ds SectionHeader titles: 15px/1.4 semibold, top-aligned like the loaded heading. */
.rl-section-title {
  width: fit-content;
  font-size: 15px;
  line-height: 1.4;
  font-weight: 600;
}
/* "Create a report" (create-report-gallery.tsx), 40px under the header: the title 12px over the ds
   underline Tabs (40px tabs 4px apart, 14px sides, the open one ink-ruled and medium), the panel
   16px under the strip. */
.rl-create {
  margin-top: 40px;
}
.rl-create > .rl-section-title {
  margin-bottom: 12px;
}
.rl-tabs {
  display: flex;
  gap: 4px;
  overflow: hidden;
  padding-bottom: 1px;
  border-bottom: 1px solid var(--line-default);
}
.rl-tab,
.rl-view-tabs > span {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  gap: 6px;
  height: 40px;
  margin-bottom: -1px;
  padding: 0 14px;
  border-bottom: 2px solid transparent;
  font-size: 14px;
  line-height: 1.5;
  white-space: nowrap;
  color: var(--text-secondary);
}
.rl-tab[data-selected],
.rl-view-tabs > span[data-selected] {
  border-bottom-color: var(--text-primary);
  font-weight: 500;
  color: var(--text-primary);
}
.rl-ghost.rl-tab-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
p.rl-blurb {
  margin: 16px 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
p.rl-template-search {
  display: flex;
  width: fit-content;
  align-items: center;
  gap: 6px;
  margin-bottom: 16px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.rl-ghost.rl-search-icon {
  width: 14px;
  height: 14px;
}
/* The templates: one column, two from 640px, three from 1280px, 12px apart. The blank tile is the
   LinkTile hub form on a dashed edge; the templates are its article form (176px at least, 16px
   inset, title, two description lines, meta, and the "Use template" foot with Details and the
   favourite). A phone shows two templates and the "Show all" button under them. */
.rl-gallery {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
}
.rl-gallery > .rl-card:nth-child(n + 4) {
  display: none;
}
/* LinkTile's dashed hub form: the article frame (16px, 176px minimum) with the icon above the copy. */
.rl-blank {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  min-height: 176px;
  padding: 16px;
  border: 1px dashed var(--line-dashed);
  border-radius: var(--radius-card);
}
.rl-ghost.rl-blank-icon {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border-radius: var(--radius-control);
}
.rl-blank-copy {
  min-width: 0;
  padding-top: 1px;
}
.rl-blank-title {
  display: block;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
}
.rl-blank-description {
  display: block;
  margin-top: 2px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.rl-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 176px;
  padding: 16px;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  background: var(--surface-raised);
}
.rl-ghost.rl-card-title {
  width: 60%;
  height: 21px;
  padding-block: 3.5px;
}
.rl-card-description {
  display: block;
  margin-top: 6px;
}
.rl-card-description > .rl-ghost {
  width: 92%;
  height: 19.5px;
  padding-block: 3px;
}
.rl-card-description > .rl-ghost:last-child {
  width: 64%;
}
.rl-ghost.rl-card-meta {
  width: 40%;
  height: 16.8px;
  margin-top: 6px;
  padding-block: 2.5px;
}
.rl-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: auto;
  padding-top: 12px;
}
.rl-card-cta {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.rl-card-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}
.rl-show-all {
  display: flex;
  justify-content: center;
  margin-top: 16px;
}
.rl-ghost.rl-show-all-control {
  width: 152px;
  height: 32px;
  border-radius: var(--radius-control);
}
/* "Saved reports" (report-library-content.tsx), 40px under the gallery: the SectionHeader with its
   count line 3px under the title, 16px over the toolbar (the search, Filters, the view segments
   and help, the sort; 8px apart, wrapping), 16px over the list Card (14px/16px rows on hairlines). */
.rl-saved {
  margin-top: 40px;
}
/* The heading block is as wide as its title, and the count line spans it. */
.rl-saved-head {
  width: fit-content;
  margin-bottom: 16px;
}
.rl-saved-head > .rl-section-title {
  width: auto;
}
.rl-ghost.rl-saved-count {
  height: 19.5px;
  margin-top: 3px;
  padding: 3px 32px 3px 0;
}
.rl-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}
.rl-ghost.rl-saved-search {
  flex: 1 1 0%;
  min-width: 160px;
  height: 32px;
  border-radius: var(--radius-control);
}
.rl-library-view-group {
  display: flex;
  align-items: center;
  gap: 4px;
}
/* ds SegmentedControl size sm: 3px inset and gap, 22px items on 10px sides, 12.5px. */
.lp-segments.rl-library-view {
  gap: 3px;
  padding: 3px;
  border-radius: var(--radius-control);
}
.lp-segments.rl-library-view > span {
  height: 22px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  font-size: 12.5px;
  line-height: 1.5;
}
.rl-ghost.rl-library-sort {
  width: 160px;
  height: 32px;
  border-radius: var(--radius-control);
}
.rl-saved-list {
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  background: var(--surface-raised);
}
.rl-saved-row {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 14px 16px;
}
.rl-saved-row:not(:last-child) {
  border-bottom: 1px solid var(--line-default);
}
.rl-saved-copy {
  flex: 1;
  min-width: 0;
}
.rl-ghost.rl-saved-name {
  width: 40%;
  height: 21px;
  padding-block: 3.5px;
}
.rl-ghost.rl-saved-source {
  width: 28%;
  height: 19.5px;
  margin-top: 2px;
  padding-block: 3px;
}
.rl-ghost.rl-saved-date {
  display: none;
  width: 72px;
  height: 19.5px;
  padding-block: 3px;
}
@media (min-width: 640px) {
  .report-library-loading {
    padding: 40px 32px;
  }
  .rl-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rl-gallery > .rl-card:nth-child(n + 4) {
    display: flex;
  }
  /* Five templates fill the gallery; "Show all" appears only when there are more. */
  .rl-show-all {
    display: none;
  }
  .rl-ghost.rl-saved-search {
    max-width: 384px;
  }
  .rl-library-view-group {
    margin-left: auto;
  }
  .rl-saved-row {
    gap: 12px;
  }
}
@media (min-width: 1024px) {
  .rl-ghost.rl-saved-date {
    display: block;
  }
}
@media (min-width: 1280px) {
  .rl-gallery {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* The builder (builder-view.tsx): one column; from 1280px the 320px setup rail beside a header
   row over the results (`grid-cols-report-workspace` / `grid-rows-report-workspace`). The header
   and results are raised, the rail sunken. Below 1280px Build shows the rail and Results the
   results, under the header's Build / Results tabs. */
.report-builder-loading {
  display: flex;
  flex: 1;
  flex-direction: column;
}
.rl-workspace {
  display: grid;
  flex: 1;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  min-width: 0;
}
/* The header: 20px/16px inset (24px sides from 640px), its parts 12px apart. */
.rl-header {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  padding: 20px 20px 16px;
  background: var(--surface-raised);
}
.rl-header-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.rl-header-copy {
  min-width: 0;
}
.rl-header-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.rl-header-title {
  min-width: 0;
  font-size: 22px;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: -0.025em;
  text-wrap: balance;
}
.rl-ghost.rl-header-title-ghost {
  width: 200px;
  max-width: 100%;
  height: 26.4px;
  padding-block: 4px;
}
/* StatusPill: the data-source tag (20px, the 12px glyph) and the state pill (22px, round). */
.rl-tag,
.rl-state {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  line-height: 1.4;
  font-weight: 500;
  color: transparent;
}
.rl-tag {
  gap: 4px;
  height: 20px;
  padding: 0 6px;
  border-radius: var(--radius-control);
}
.rl-tag > span {
  width: 12px;
  height: 12px;
}
.rl-state {
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
}
/* A saved report's tag and state are known to exist; their words are its own. */
.rl-tag-ghost {
  width: 64px;
}
.rl-state-ghost {
  width: 40px;
}
.rl-header-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 6px;
  margin-top: 4px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.rl-ghost.rl-meta-ghost {
  width: 150px;
  height: 19.5px;
  padding-block: 3px;
}
.rl-header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
/* The scope, filter, grouping and sorting pills of a saved report: their count is the
   definition's. */
.rl-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.rl-ghost.rl-pill {
  width: 104px;
  height: 32px;
  border-radius: 999px;
}
.rl-ghost.rl-pill:first-child {
  width: 210px;
}
.rl-view-tabs {
  display: flex;
  gap: 4px;
  padding-bottom: 1px;
  border-bottom: 1px solid var(--line-default);
}
/* The rail: 20px/16px/24px inset, "Customize report" (14px medium) 16px over the View group (its
   label and help, then the ds RadioCards: dot left, glyph, title, description; stacked until the
   group is 28rem wide), 16px over the step Card (five 10px/12px toggles on hairlines, Columns
   open). */
.rl-setup {
  display: none;
  min-width: 0;
  padding: 20px 16px 24px;
  border-bottom: 1px solid var(--line-default);
  background: var(--surface-sunken);
}
[data-report-view='build'] .rl-setup {
  display: block;
}
p.rl-setup-title {
  margin-bottom: 16px;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
}
.rl-view {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}
.rl-view-label {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.rl-view-tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  container-type: inline-size;
}
.rl-view-tile {
  display: flex;
  grid-column: span 2;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  background: var(--surface-raised);
}
@container (min-width: 28rem) {
  .rl-view-tile {
    grid-column: span 1;
  }
}
.rl-view-tile[data-selected] {
  border-color: var(--action-primary-bg);
  background: var(--brand-soft-2);
}
.rl-view-dot {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 1px;
  border: 1px solid var(--control-line);
  border-radius: 999px;
  background: var(--surface-raised);
}
.rl-view-tile[data-selected] .rl-view-dot {
  border: 5px solid var(--action-primary-bg);
}
.rl-view-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}
/* The glyph row spans the body; the 20px glyph sits at its start. */
.rl-ghost.rl-view-icon {
  width: 100%;
  height: 20px;
  margin-bottom: 8px;
  padding-right: calc(100% - 20px);
  background-clip: content-box;
}
.rl-view-title {
  align-self: flex-start;
  font-size: 13.5px;
  line-height: 1.5;
  font-weight: 500;
}
.rl-view-description {
  margin-top: 2px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.rl-steps {
  overflow: hidden;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  background: var(--surface-raised);
}
.rl-step:not(:last-child) {
  border-bottom: 1px solid var(--line-default);
}
.rl-step-trigger {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
}
.rl-step-trigger[data-selected] {
  background: var(--action-selected-bg);
  color: var(--action-selected-fg);
}
.rl-ghost:is(.rl-step-icon, .rl-step-caret) {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.rl-step-copy {
  flex: 1;
  min-width: 0;
}
.rl-step-label {
  display: block;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
}
.rl-step-value {
  display: block;
  margin-top: 2px;
  overflow: hidden;
  font-size: 12px;
  line-height: 1.4;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--text-secondary);
}
.rl-ghost.rl-step-value-ghost {
  width: 60%;
  height: 16.8px;
  padding-block: 2.5px;
}
/* A data source's name is one short word ("Orders", "Tickets"). */
.rl-step:first-child .rl-ghost.rl-step-value-ghost {
  width: 48px;
}
.rl-step-panel {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
}
.rl-empty-columns {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.lp-control.rl-add-columns {
  width: 100%;
}
.rl-column {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 0;
}
.rl-column:not(:last-child) {
  border-bottom: 1px solid var(--line-default);
}
.rl-ghost.rl-column-name {
  flex: 1;
  height: 19.5px;
  padding-block: 3px;
}
/* The results: 20px sides (24px from 640px) and 32px foot, 16px between the bar (the census or
   its 180px ghost, Display at the right), the table or the configure well, and "About this
   report". */
.rl-results {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  padding: 0 20px 32px;
  background: var(--surface-raised);
}
.rl-results-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-height: 32px;
}
.rl-result-status {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.rl-ghost.rl-census {
  width: 180px;
  height: 19.6px;
  border-radius: var(--radius-control);
}
.lp-control.rl-display {
  margin-left: auto;
}
/* ds EmptyState well: dashed, 48px/24px inset, the 44px round glyph 16px over the title. */
.rl-configure {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 48px 24px;
  border: 1px dashed var(--line-dashed);
  border-radius: var(--radius-card);
  text-align: center;
}
.rl-ghost.rl-configure-icon {
  width: 44px;
  height: 44px;
  margin-bottom: 16px;
  border-radius: 999px;
}
.rl-configure-title {
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
}
p.rl-configure-description {
  max-width: 384px;
  margin-top: 4px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.rl-configure-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 16px;
}
/* ReportTable's ds Table frame: the 40px head row over 42.5px body rows on hairlines. */
.rl-results-table {
  overflow: hidden;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  background: var(--surface-raised);
}
.rl-results-row {
  display: flex;
  align-items: center;
  gap: 32px;
  height: 42.5px;
  padding: 0 16px;
}
.rl-results-row:first-child {
  height: 40px;
}
.rl-results-row:not(:last-child) {
  border-bottom: 1px solid var(--line-default);
}
.rl-results-row > .rl-ghost {
  flex: 1;
  height: 12px;
}
.rl-about {
  width: fit-content;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 500;
  color: transparent;
}
@media (min-width: 640px) {
  .rl-header,
  .rl-results {
    padding-inline: 24px;
  }
}
@media (max-width: 1279px) {
  [data-report-view='build'] .rl-results {
    display: none;
  }
}
@media (min-width: 1280px) {
  .rl-workspace {
    grid-template-columns: 320px minmax(0, 1fr);
    grid-template-rows: auto 1fr;
  }
  .rl-header {
    grid-column: 2;
    grid-row: 1;
  }
  /* The tabs leave with the narrow layout; the 12px gap above them stays, as in the live header. */
  .rl-view-tabs {
    visibility: hidden;
    height: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
  }
  .rl-setup {
    display: block;
    grid-column: 1;
    grid-row: 1 / span 2;
    border-bottom: 0;
    border-right: 1px solid var(--line-default);
  }
  .rl-results {
    grid-column: 2;
    grid-row: 2;
  }
}

.al-view-report-new {
  display: var(--al-report-new, none);
}
/* The builder fills the column under the bar, so its rail reaches the foot of the viewport. */
.al-view-report,
.al-view-report-new {
  flex: 1;
  flex-direction: column;
  min-width: 0;
}

/* Domain bodies share the actual page wrappers. These selections apply to the static
   all-body markup and reset on each React root during navigation. */
[data-admin-loading] {
  --al-domain: none;
}
[data-admin-layout] {
  --al-page-display: none;
  --al-event: none;
  --al-welcome: none;
  --al-editor: none;
}
.al-domain {
  display: none;
  min-width: 0;
}
[data-admin-layout='orders-list'] .al-domain-orders-list,
[data-admin-layout='customers-list'] .al-domain-customers-list,
[data-admin-layout='order-detail'] .al-domain-order-detail,
[data-admin-layout='customer-detail'] .al-domain-customer-detail,
[data-admin-layout='welcome'] .al-domain-welcome {
  display: block;
}
/* The page fills the column under the bar, on its own background. */
[data-admin-layout='welcome'] .al-domain-welcome {
  display: flex;
  flex: 1;
}
[data-admin-layout='events-list'][data-admin-view='list'][data-admin-list-tab='upcoming']
  .al-domain-list-upcoming,
[data-admin-layout='events-list'][data-admin-view='list'][data-admin-list-tab='drafts']
  .al-domain-list-drafts,
[data-admin-layout='events-list'][data-admin-view='list'][data-admin-list-tab='past']
  .al-domain-list-past {
  display: block;
}
[data-admin-layout='events-list'][data-admin-view='calendar']
  .al-domain-events-list.al-domain-view-calendar {
  display: block;
}
[data-admin-layout='event-detail'][data-admin-view='overview']
  .al-domain-event-detail.al-domain-view-overview {
  display: block;
}
[data-admin-layout='event-detail'][data-admin-view='schedule']
  .al-domain-event-detail.al-domain-view-schedule {
  display: block;
}
/* Setup draws one variant per open section; `loading-shell.js` stamps which. */
[data-admin-layout='event-detail'][data-admin-view='setup'][data-admin-setup-section='type']
  .al-domain-view-setup.al-domain-setup-type,
[data-admin-layout='event-detail'][data-admin-view='setup'][data-admin-setup-section='when']
  .al-domain-view-setup.al-domain-setup-when,
[data-admin-layout='event-detail'][data-admin-view='setup'][data-admin-setup-section='times']
  .al-domain-view-setup.al-domain-setup-times,
[data-admin-layout='event-detail'][data-admin-view='setup'][data-admin-setup-section='tickets']
  .al-domain-view-setup.al-domain-setup-tickets,
[data-admin-layout='event-detail'][data-admin-view='setup'][data-admin-setup-section='seats']
  .al-domain-view-setup.al-domain-setup-seats,
[data-admin-layout='event-detail'][data-admin-view='setup'][data-admin-setup-section='registrationTypes']
  .al-domain-view-setup.al-domain-setup-registrationTypes,
[data-admin-layout='event-detail'][data-admin-view='setup'][data-admin-setup-section='checkout']
  .al-domain-view-setup.al-domain-setup-checkout,
[data-admin-layout='event-detail'][data-admin-view='setup'][data-admin-setup-section='checkoutApproval']
  .al-domain-view-setup.al-domain-setup-checkoutApproval,
[data-admin-layout='event-detail'][data-admin-view='setup'][data-admin-setup-section='policies']
  .al-domain-view-setup.al-domain-setup-policies,
[data-admin-layout='event-detail'][data-admin-view='setup'][data-admin-setup-section='page']
  .al-domain-view-setup.al-domain-setup-page,
[data-admin-layout='event-detail'][data-admin-view='setup'][data-admin-setup-section='review']
  .al-domain-view-setup.al-domain-setup-review,
[data-admin-layout='event-detail'][data-admin-view='setup'][data-admin-setup-section='status']
  .al-domain-view-setup.al-domain-setup-status {
  display: block;
}
[data-admin-layout='event-detail'][data-admin-view='registrations']
  .al-domain-event-detail.al-domain-view-registrations {
  display: block;
}
[data-admin-layout='event-detail'][data-admin-view='finance']
  .al-domain-event-detail.al-domain-view-finance {
  display: block;
}
[data-admin-layout='event-detail'][data-admin-view='door']
  .al-domain-event-detail.al-domain-view-door {
  display: block;
}
[data-admin-layout='event-detail'][data-admin-view='comps']
  .al-domain-event-detail.al-domain-view-comps {
  display: block;
}
[data-admin-layout='event-new'][data-admin-view='type'] .al-domain-event-new.al-domain-view-type {
  display: block;
}
[data-admin-layout='event-new'][data-admin-view='when'] .al-domain-event-new.al-domain-view-when {
  display: block;
}
[data-admin-layout='event-new'][data-admin-view='times'] .al-domain-event-new.al-domain-view-times {
  display: block;
}
[data-admin-layout='event-new'][data-admin-view='tickets']
  .al-domain-event-new.al-domain-view-tickets {
  display: block;
}
[data-admin-layout='event-new'][data-admin-view='seats'] .al-domain-event-new.al-domain-view-seats {
  display: block;
}
[data-admin-layout='event-new'][data-admin-view='registrationTypes']
  .al-domain-event-new.al-domain-view-registrationTypes {
  display: block;
}
[data-admin-layout='event-new'][data-admin-view='checkout']
  .al-domain-event-new.al-domain-view-checkout {
  display: block;
}
[data-admin-layout='event-new'][data-admin-view='checkoutApproval']
  .al-domain-event-new.al-domain-view-checkoutApproval {
  display: block;
}
[data-admin-layout='event-new'][data-admin-view='policies']
  .al-domain-event-new.al-domain-view-policies {
  display: block;
}
[data-admin-layout='event-new'][data-admin-view='page'] .al-domain-event-new.al-domain-view-page {
  display: block;
}
[data-admin-layout='event-new'][data-admin-view='review']
  .al-domain-event-new.al-domain-view-review {
  display: block;
}

.lp-status > [aria-hidden='true'] {
  display: contents;
}
/* The inert half of a loading status: the status and its label stay announced, the copy under it
   is unreachable, and the box adds nothing to the layout. */
.lp-inert {
  display: contents;
}
.lp-status,
.lp-status *,
.lp-card,
.lp-card * {
  box-sizing: border-box;
}
.lp-ghost {
  display: block;
  min-width: 0;
  max-width: 100%;
  width: 100%;
  border-radius: 4px;
  background: var(--surface-skeleton);
}
.lp-grow {
  flex: 1;
  min-width: 0;
}
.lp-subline {
  margin-top: 8px;
}
.lp-fields {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.lp-input {
  margin-top: 8px;
  border-radius: 8px;
}
.lp-facts {
  margin-top: 12px;
}
.lp-fact {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 0;
}
.lp-fact + .lp-fact {
  border-top: 1px solid var(--wb-border-2, #eceeea);
}
.lp-section {
  min-width: 0;
}
.lp-card {
  margin-top: 12px;
  padding: 20px;
  min-width: 0;
  border: 1px solid var(--wb-border-1, #e3e6df);
  border-radius: 12px;
  background: var(--wb-surface-0, #fff);
}
.lp-table-scroll {
  overflow-x: auto;
}
.cl-order {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
}
.cl-order-title,
.cl-profile {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.cl-order-title {
  align-items: center;
  flex-wrap: wrap;
}
.cl-avatar {
  border-radius: 50%;
  flex-shrink: 0;
}
.cl-actions {
  margin-top: 16px;
}
.cl-summary {
  margin-top: 8px;
}
.cl-order-tabs {
  display: flex;
  gap: 24px;
  overflow: hidden;
  border-bottom: 1px solid var(--wb-border-1, #e3e6df);
}
.cl-customer-identity {
  display: flex;
  align-items: center;
  gap: 12px;
}
.cl-customer-identity > div {
  min-width: 0;
}
.lp-control {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 34px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  font-size: 13.5px;
  font-weight: 400;
  line-height: 1.5;
  white-space: nowrap;
}
.lp-control > span {
  visibility: hidden;
  flex-shrink: 0;
}
.lp-segments {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px;
  border-radius: 8px;
  flex-shrink: 0;
}
.lp-segments > span {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 12px;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  white-space: nowrap;
}
.lp-segments > span[data-selected] {
  font-weight: 500;
}
.lp-segments > span > span {
  visibility: hidden;
}
.lp-segments[data-compact] > span {
  height: 26px;
  padding-inline: 5px;
  font-size: 12.5px;
}
.ml-overview-new-link,
.ml-overview-new-email {
  height: 32px;
  padding-inline: 10px;
  font-size: 13px;
  border-radius: 7px;
}
.cl-export {
  padding-inline: 12px;
}
.ml-overview-new-email {
  border-width: 0;
  font-weight: 500;
}
.ml-overview-range-label {
  font: 12px/1.5 var(--font-geist-mono, monospace);
  letter-spacing: 0.04em;
  color: var(--wb-text-4, #8a9493);
}
html[data-admin-range] .ml-overview-range-label {
  font-size: 0;
}
html[data-admin-range] .ml-overview-range-label::after {
  content: var(--loading-marketing-range);
  font-size: 12px;
}
.wl-zen {
  height: 30px;
  padding: 0 9px;
  font-size: 12px;
  font-weight: 600;
}
/* Both of the bar's states are in the markup; the zen flag above picks one. The
   home link is the 22px lockup. */
.wl-home {
  width: 129.43px;
}
.wl-home,
.wl-zen-on {
  display: var(--al-zen, none);
}
.wl-zen-off {
  display: var(--al-zen-off, inline-flex);
}
/* The header's Create: the ds primary md button (36px, 16px icon). */
.el-create {
  height: 36px;
  padding-inline: 14px;
  gap: 8px;
  border: 0;
  border-radius: var(--radius-control);
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.5;
}
.el-page {
  padding: 30px var(--wb-page-padding, clamp(20px, 4vw, 40px)) 72px;
}
.el-event-tabs {
  margin-top: 22px;
}
.el-event-panel {
  margin-top: 24px;
}
.el-stack {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.el-columns {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 28px;
}
.el-primary {
  display: flex;
  min-width: 0;
  flex: 999 1 560px;
  flex-direction: column;
  gap: 20px;
}
.el-secondary {
  display: flex;
  min-width: 0;
  flex: 1 1 280px;
  flex-direction: column;
  gap: 16px;
}
.el-chart-house {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 20px;
}
.el-chart-house > :first-child {
  flex: 999 1 380px;
  min-width: 0;
}
.el-chart-house > :last-child {
  flex: 1 1 270px;
  min-width: 0;
}
.el-overview-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 20px;
}
/* The Overview tab: one column of blocks, 24px apart. */
.el-overview-columns {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 24px;
}
/* The three sales boards, stacked under lg. */
.el-boards {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
}
.el-board {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 12px;
  padding: 18px 20px;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 12px;
  background: var(--wb-surface-0, #fff);
}
.el-board-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.el-board .el-board-foot {
  margin-top: auto;
}
/* The tickets a day card beside the ticket mix, stacked under lg. */
.el-two-up {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
}
@media (min-width: 1024px) {
  .el-boards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .el-two-up[data-pair='true'] {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  }
}
.el-recent {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 14px;
}
.el-recent-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}
.el-recent .el-recent-title {
  width: auto;
  margin: 0;
  border-radius: 0;
  background: transparent;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
}
.el-recent-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 12px;
  background: var(--wb-surface-0, #fff);
}
.el-recent-card .el-recent-th {
  border-radius: 0;
}
.el-recent-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 16px;
  border-top: 1px solid var(--wb-border-2, #eef1f0);
}
.el-registration-card {
  overflow-x: auto;
}
/* The Pending reader: its rail and detail, drawn by EventTabLoading and by the reader's own page
   loads (`.el-registration-reader-rows`). */
.el-registration-reader {
  display: flex;
  flex-wrap: wrap;
  min-height: 600px;
  padding: 0;
  overflow: hidden;
}
.el-registration-rail {
  display: flex;
  flex: 0 0 340px;
  flex-direction: column;
  gap: 10px;
  max-width: 100%;
  min-width: 0;
  padding: 14px 10px 12px;
  background: var(--wb-surface-rail, #fafbfa);
  box-shadow: 1px 0 0 var(--wb-border-1, #e3e6df);
}
.el-registration-rail-head {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-inline: 2px;
}
.el-registration-rail-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-left: 10px;
}
.el-registration-reader-rows {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.el-registration-reader-row {
  display: flex;
  align-items: flex-start;
  gap: 4px;
}
.el-registration-reader-row > .el-registration-select {
  flex: none;
  margin: 15px 0 0 8px;
}
.el-registration-reader-item {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  padding: 12px;
}
.el-registration-detail {
  display: flex;
  flex: 999 1 300px;
  flex-direction: column;
  gap: 18px;
  min-width: 0;
  padding: 22px 24px 28px;
}
.el-registration-detail-head {
  display: flex;
  align-items: center;
  gap: 12px;
}
.el-registration-detail-head > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.el-registration-row {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(100px, 1fr);
  gap: 20px;
  min-width: 650px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--wb-border-2, #eceeea);
}
.el-registration-head {
  padding-block: 12px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
}
.el-end-action {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  height: 32px;
  padding: 0 12px;
  border: 1px solid transparent;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 500;
}
.el-end-action > span {
  visibility: hidden;
}
.el-policy-footer .el-end-action {
  font-weight: 400;
}
.el-simple-door .el-primary,
.el-simple-door .el-secondary {
  flex-basis: 100%;
}
.db-page.dl-page {
  padding: 36px clamp(20px, 4vw, 40px) 96px;
}
.db-body {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
/* The ds PageHeader (routes/dashboard.tsx): the title row (36px, the actions' height) over the
   meta line, with Create event at the right. */
.db-greeting {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.db-greeting-text {
  flex-grow: 1;
  min-width: 0;
}
.db-greeting-title-row {
  display: flex;
  align-items: center;
  min-height: 36px;
}
.db-greeting-create {
  height: 36px;
  padding-inline: 14px;
  border-radius: var(--radius-control);
  font-size: 13.5px;
}
.db-greeting-date {
  margin-top: 6px;
}
.db-section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px 16px;
}
.db-card {
  margin-top: 12px;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  overflow: hidden;
}
.db-sales-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px 16px;
}
.db-sales-sub {
  margin-top: 3px;
}
.db-sales-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
.db-sales-head > .db-sales-controls {
  gap: 10px;
}
/* The dashboard's sales: the figures in one row of hairline-separated cells, two to a line on a
   narrow section, then the chart band (`sales-overview.tsx`). */
.db-sales-ledger {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.db-sales > .db-sales-ledger {
  margin-top: 18px;
}
.db-sales-ledger > .db-sales-frame {
  margin-top: 0;
}
.db-figures {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  row-gap: 20px;
}
.db-figure {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  padding: 0 28px;
  border-left: 1px solid var(--line-subtle);
}
.db-figure:nth-child(odd) {
  padding-left: 0;
  border-left: 0;
}
/* Two to a line on a phone, the delta ("up 18.6% · $20,810 before") wraps to a second line. */
@container (max-width: 479.98px) {
  /* min-height: the ghost's inline height is the one-line 19.5. */
  .db-figure-delta {
    min-height: 39px;
  }
}
@container (min-width: 720px) {
  .db-figures {
    display: flex;
  }
  .db-figure:nth-child(odd) {
    padding-left: 28px;
    border-left: 1px solid var(--line-subtle);
  }
  .db-figure:first-child {
    padding-left: 0;
    border-left: 0;
  }
}
.db-sales-legend {
  align-self: flex-end;
  margin-top: -10px;
}
.db-sales-frame {
  margin-top: 12px;
}
.db-sales {
  container-type: inline-size;
}
.db-events,
.db-todo,
.db-money,
.db-orders {
  display: flex;
  flex-direction: column;
}
.db-events {
  gap: 14px;
}
.db-events > .db-card,
.db-todo > .db-card,
.db-money > .db-card,
.db-orders > .db-card {
  margin-top: 14px;
}
.db-events > .db-card {
  margin-top: 0;
  overflow-x: auto;
}
/*
 * The events table (`upcoming-events.tsx`, ds Table): the 40px head, then rows of an 11px cell
 * padding around the name and venue lines. Both are 780px at the least, the sum of the table's
 * columns, so they scroll with the table on a narrow screen. Wider than that, a fixed-layout table
 * shares the extra width out in proportion to its columns, so the row's tracks are `fr` of the
 * same widths, and each ghost keeps the cell's 16px inline padding.
 */
.db-table-head {
  height: 40px;
  min-width: 780px;
  border-bottom: 1px solid var(--line-default);
}
.db-event-row {
  display: grid;
  grid-template-columns:
    minmax(0, 180fr) minmax(0, 150fr) minmax(0, 104fr) minmax(0, 96fr) minmax(0, 80fr)
    minmax(0, 70fr) minmax(0, 100fr);
  align-items: center;
  gap: 0;
  min-width: 780px;
  padding: 11px 0;
  border-bottom: 1px solid var(--line-default);
}
/* No Gross column: the six columns a viewer without the money is shown. */
.db-event-row-no-gross {
  grid-template-columns:
    minmax(0, 200fr) minmax(0, 168fr) minmax(0, 112fr) minmax(0, 104fr) minmax(0, 108fr)
    minmax(0, 88fr);
}
.db-event-row > * {
  margin-inline: 16px;
}
.db-event-venue {
  margin-top: 2px;
}
.db-event-row > .db-event-bar {
  grid-column: 5;
  /* Stretch inside the cell padding, as the loaded bar fills its cell. */
  width: auto;
}
.db-lower {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}
@media (min-width: 1024px) {
  .db-lower {
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  }
}
.db-aside {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}
.db-todo-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px 12px 36px;
  border-bottom: 1px solid var(--line-default);
}
.db-balance-card {
  padding: 0;
}
/* The balance (`balance.tsx`, ds KeyValueList inside a padding="none" Card): two hairline rows. */
.db-balance {
  display: flex;
  flex-direction: column;
  padding: 0 16px;
}
.db-balance-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px solid var(--line-default);
}
.db-balance-row:last-child {
  border-bottom: 0;
}
.db-order-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line-default);
}
.db-order-row > .lp-ghost,
.db-order-meta {
  flex-shrink: 0;
}
.db-order-meta {
  display: flex;
}
/* The recent orders' card is the rows' container, as each `OrderRow` is its own: under 420px the
   row drops the amount to a second line, 8px under the detail and starting under the name (the
   28px tile and the 14px gap after it). */
.db-orders > .db-card {
  container-type: inline-size;
}
/* 451.98 is OrderRow's 419.98 plus its 32px inline padding: its own box is the container there,
   the unpadded card is here. */
@container (max-width: 451.98px) {
  .db-order-row {
    flex-wrap: wrap;
    row-gap: 8px;
  }
  .db-order-meta {
    flex-basis: 100%;
    padding-left: 42px;
  }
}

.db-setup-progress {
  max-width: 360px;
  padding: 18px 22px 16px;
}
.db-setup-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  padding: 14px 22px;
  border-top: 1px solid var(--line-subtle);
}
.wl-page {
  flex: 1;
  display: flex;
  background: var(--ai-bg, #fbfcfa);
}
/* The `--ai-*` dialect lives in assistant.css, which arrives with the page's chunk, so a
   hard load paints the fallbacks above. On dark they take the values assistant.css's
   `.dark` block maps them to, or the stage flashes paper white before the page mounts. */
.dark .wl-page {
  --ai-bg: var(--background);
  --ai-line: var(--border);
  --ai-line-card: var(--border);
  --ai-muted: var(--muted-foreground);
}
/* The status's inner wrapper is the row: the conversations column, then the bar
   and the body. */
.wl-page > div,
.wl-main {
  flex: 1;
  min-width: 0;
}
.wl-page > div {
  display: flex;
}
/* The conversations column (`.asst-convos`): 16rem from `lg` with a hairline at its
   end, unless the visitor put it away; then, and below `lg`, the bar's way back to
   it and New chat (`.asst-takeover-bar-start`) stand in for it. */
.wl-convos {
  display: none;
  flex: none;
  flex-direction: column;
  width: 16rem;
  border-right: 1px solid var(--ai-line, #e6eaea);
}
.wl-convos-head {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 12px 12px 8px;
}
.wl-convos-new {
  flex: 1;
}
.wl-convos-hide {
  margin-left: auto;
}
.wl-convos-search,
.wl-convos-row {
  width: auto;
}
.wl-convos-search {
  margin: 0 12px 8px;
}
.wl-convos-list {
  padding: 0 8px 12px;
}
.wl-convos-row {
  margin: 11px 8px;
}
.wl-convos-row:nth-child(odd) {
  width: 70%;
}
.wl-bar-start {
  display: flex;
  gap: 4px;
}
@media (min-width: 64rem) {
  .wl-convos {
    display: var(--al-convos, flex);
  }
  .wl-bar-start {
    display: var(--al-convos-bar, none);
  }
}
.wl-bar {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 40px;
}
.wl-bar-end {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-left: auto;
}
.wl-body {
  padding: 0 40px;
}
.wl-stage {
  width: 100%;
  max-width: 820px;
  margin: 0 auto;
  padding: 56px 0 40px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.wl-greeting {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 10px;
}
.wl-prompts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.wl-prompt {
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  border: 1px solid var(--wb-border-1, #e3e6df);
  border-radius: 12px;
}
.wl-prompt-title {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
}
.wl-prompt-hint {
  font-size: 13px;
  line-height: 1.5;
  color: var(--ai-muted, #647069);
}
.el-calendar-today {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  height: 32px;
  padding: 0 10px;
  gap: 8px;
  border-radius: var(--radius-control);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
  color: var(--action-ghost-fg);
}
.wl-greeting h1 {
  margin: 0;
  font-size: 42px;
  line-height: 1.15;
  font-weight: 600;
  letter-spacing: -0.025em;
  text-wrap: balance;
  text-align: center;
}
@media (max-width: 640px) {
  .wl-prompts {
    grid-template-columns: 1fr;
  }
  .wl-greeting h1 {
    font-size: 30px;
  }
}
@media not all and (min-width: 40rem) {
  .wl-bar,
  .wl-body {
    padding-inline: 16px;
  }
  .wl-stage {
    padding-top: 32px;
    gap: 20px;
  }
  /* The ticket symbol alone, as the zen bar draws it on a phone. */
  .wl-home {
    width: 22.33px;
  }
}

/* The comps page: SECTION_FRAME's 24px rhythm, the ghost sm back link (32px, 10px sides, pulled
   10px left), the SectionIntro row (the 14px/1.5 lede at most 65ch, the primary sm action at the
   right), then the Comp drops SectionHeader (15px/1.4) 12px over the ds Table in its Card. */
.el-comps-page {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.el-comps-back,
.el-comps-action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: auto;
  height: 32px;
  padding: 0 10px;
  border-radius: var(--radius-control);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
}
.el-comps-back {
  margin-left: -10px;
  background: transparent;
}
.el-comps-action {
  color: transparent;
}
.el-comps-back > span:last-child {
  visibility: hidden;
}
.el-comps-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.el-comps-intro {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 24px;
}
.el-comps-intro > p {
  max-width: 65ch;
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  text-wrap: pretty;
  color: var(--text-secondary);
}
.el-comps-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}
.el-comps-drops {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
/* Two classes, so the boot shell's later h2 margin reset keeps the same zero. */
.el-comps-drops > .el-comps-heading {
  align-self: flex-start;
  margin: 0;
  font: 600 15px/1.4 var(--font-ui);
  color: var(--text-primary);
}
.el-comps-frame {
  overflow: hidden;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  background: var(--surface-raised);
}
/* The ds Table, fixed layout: a 40px head in 12px/500 sentence case, 11px/16px cells on 13px. */
.el-comp-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 13px;
}
.el-comp-table thead,
.el-comp-table tbody tr {
  border-bottom: 1px solid var(--line-default);
}
.el-comp-table tbody tr:last-child {
  border-bottom: 0;
}
.el-comp-table th {
  height: 40px;
  padding: 0 16px;
  text-align: start;
  vertical-align: middle;
  white-space: nowrap;
  font: 500 12px/1.4 var(--font-ui);
  color: var(--text-secondary);
}
.el-comp-table td {
  padding: 11px 16px;
  vertical-align: middle;
  white-space: nowrap;
  line-height: 1.5;
}
/* w-comps-status, w-24 (Issued, actions) and w-36 (Face value). */
.el-comp-table th.el-comp-status {
  width: clamp(6.5rem, 20vw, 8.5rem);
}
.el-comp-table th.el-comp-issued,
.el-comp-table th.el-comp-actions {
  width: 6rem;
}
.el-comp-table th.el-comp-value {
  width: 9rem;
}
.el-comp-table .el-comp-issued,
.el-comp-table .el-comp-value,
.el-comp-table td.el-comp-actions {
  text-align: end;
}
/* `hidden md:table-cell` and `hidden sm:table-cell`. */
@media (max-width: 767.98px) {
  .el-comp-table .el-comp-value {
    display: none;
  }
}
@media (max-width: 639.98px) {
  .el-comp-table .el-comp-issued {
    display: none;
  }
}
.el-comp-identity {
  display: flex;
  align-items: center;
  gap: 12px;
}
/* IdentityTile square lg: 32px at the control radius. */
.el-comp-tile {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border-radius: var(--radius-control);
}
/* StatusPill md: 24px. */
.el-comp-pill {
  display: inline-block;
  width: 85px;
  height: 24px;
  vertical-align: middle;
  border-radius: 999px;
}
.el-comp-figure {
  display: inline-block;
  width: 40px;
  height: 19.5px;
  vertical-align: middle;
}

/* The real topbar's Onsite label supplies its font metrics. A fixed84px width
   shifted the neighboring search by1.4375px once IBM Plex Sans loaded. */
.dl-topbar .dl-onsite {
  width: auto;
  display: flex;
  align-items: center;
  gap: 8px;
  padding-inline: 10px;
  border: 1px solid transparent;
  font: 500 13px/1.45 var(--font-geist-sans, 'IBM Plex Sans', ui-sans-serif, system-ui, sans-serif);
}
.dl-onsite-glyph {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.dl-onsite-label {
  display: none;
  visibility: hidden;
}
@media (min-width: 640px) {
  .dl-onsite-label {
    display: inline;
  }
}

.el-settlement-card {
  padding: 22px;
  margin-top: 0;
  border: 1px solid var(--wb-border-1, #e3e6df);
  border-radius: 12px;
}
.el-settlement-figure {
  margin-top: 10px;
}
.el-settlement-bar {
  margin-top: 32px;
}
.el-settlement-foot {
  margin-top: 24px;
}
.el-entrance-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 18px;
  border-bottom: 1px solid var(--wb-border-2, #eceeea);
}
.el-canvas-loading {
  width: 100%;
  height: 100%;
}
.el-canvas-loading > [aria-hidden],
.el-canvas-loading .lp-ghost {
  width: 100%;
  height: 100%;
}

.el-registration-email,
.el-registration-type,
.el-registration-date {
  min-width: 0;
}
@media (max-width: 1023px) {
  .el-registration-type {
    display: none;
  }
}
@media (max-width: 767px) {
  .el-registration-email {
    display: none;
  }
}
@media (max-width: 639px) {
  .el-registration-date {
    display: none;
  }
}
.el-registration-row {
  min-width: 0;
  grid-auto-columns: minmax(0, 1fr);
}

.db-runway {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 18px;
  container-type: inline-size;
}
/* The sentence and, for a viewer who may create, the Create event button beside it. */
.db-runway-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
}
/* The runway has no breakpoint of its own; its copy wraps by width. The 364px sentence takes two
   lines under its own width, and there the ways on (the rerun, Connect payments, All events)
   take two lines of links 8px apart too. */
@container (max-width: 363.98px) {
  .db-runway-sentence {
    min-height: 39px;
  }
  .db-runway-actions {
    min-height: 48.5px;
  }
}

/* Geometry tokens needed before the app stylesheet arrives; values match theme.css. */
.admin-loading {
  --wb-text-2xs: 10.5px;
  --wb-text-xs: 11px;
  --wb-text-sm: 12px;
  --wb-text-sm-plus: 12.5px;
  --wb-text-md: 13px;
  --wb-text-md-plus: 13.5px;
  --wb-text-base: 14px;
  --wb-text-base-plus: 14.5px;
  --wb-text-lg: 15px;
  --wb-text-xl: 17px;
  --wb-text-2xl: 20px;
  --wb-text-3xl: 22px;
  --wb-text-4xl: 26px;
  --wb-text-5xl: 30px;
  --wb-leading-tight: 1.2;
  --wb-leading-relaxed: 1.6;
  --wb-tracking-display: -0.02em;
  --wb-page-padding: clamp(20px, 4vw, 40px);
  --wb-control-height-sm-plus: 30px;
  --wb-control-height-md-minus: 32px;
  --wb-radius-md-plus: 7px;
  --wb-radius-lg: 8px;
  --wb-radius-xl: 10px;
  --wb-radius-2xl: 12px;
  --wb-radius-3xl: 14px;
  line-height: 1.5;
}

.el-simple-door .el-secondary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
  gap: 28px;
}

/* Raw domain markup needs the same semantic baseline as app preflight. */
.admin-loading :where(h1, h2, h3, h4, p, ul, ol, figure) {
  margin: 0;
}
.admin-loading :where(ul, ol) {
  padding: 0;
  list-style: none;
}
.el-setup-choice {
  display: flex;
  /* The loaded radio card is a button at the root size; the route pending can sit under a 14px parent. */
  font-size: 16px;
  line-height: 24px;
}
.el-setup-choice > span:nth-child(2) {
  display: flex;
  flex: 1;
  flex-direction: column;
}
.el-control-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
/* A label's own text sizes and wraps the ghost; only its ink is pending. */
.lp-ghost.el-review-ink {
  width: auto;
  color: transparent;
}
.el-section-price-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px 64px;
  align-items: center;
  gap: 12px;
}
.el-ticket-add {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}
.el-free-fees {
  padding: 16px;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 8px;
  background: var(--wb-surface-1, #fafbfa);
  font-size: 14px;
  line-height: 1.5;
}
.el-registration-panel {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.el-registration-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
}
.el-registration-search {
  padding: 14px 16px;
  border-bottom: 1px solid var(--wb-border-2, #eef1f0);
}
.el-registration-row {
  padding: 14px 16px;
  gap: 0;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
}
.el-registration-row > span {
  min-width: 0;
  padding-inline: 12px;
}
.el-ga-card,
.el-door-card {
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 14px;
  overflow: hidden;
}
.el-ga-card > [data-loading-group='ticket-types'] {
  padding: 14px 18px;
  border-top: 1px solid var(--wb-border-2, #eef1f0);
}
.el-setting-help {
  text-wrap: pretty;
}
.el-policy-versions {
  font-size: 13.5px;
  line-height: 1.5;
  font-weight: 500;
  white-space: nowrap;
}
.el-policy-versions > span {
  visibility: hidden;
}
.el-policy-heading.el-policy-footer {
  align-items: center;
  row-gap: 10px;
}
/* The saved meta (count, date, author) wraps to two mono lines at phone width. */
.el-policy-meta-ghost {
  width: 270px;
  height: 36px;
}
@media (min-width: 640px) {
  .el-policy-meta-ghost {
    height: 18px;
  }
}
.el-door-heading {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 22px 22px 18px;
}
.el-door-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 32px;
  padding: 0 22px 16px;
}
.el-door-stats > div {
  flex: 1 1 150px;
}
.el-door-type-bar {
  margin: 0 22px 16px;
  width: calc(100% - 44px);
}
.el-door-chart {
  margin: 6px 22px 8px;
  width: calc(100% - 44px);
}
.el-door-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 24px;
  padding: 11px 22px;
  border-top: 1px solid var(--wb-border-2, #eef1f0);
}
.el-setup-heading {
  padding: 20px 22px 16px;
}
.el-setup-row {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  gap: 14px;
  padding: 16px 22px;
  border-top: 1px solid var(--wb-border-2, #eef1f0);
}
.el-setup-row > .lp-grow {
  flex: 1 1 300px;
}
.el-fresh-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 12px 24px;
}
.el-fresh-heading > div {
  min-width: 0;
  flex: 1 1 320px;
}
.el-fresh-heading > .lp-ghost {
  min-width: 180px;
  flex-basis: 220px;
}
.el-fresh-heading h2 {
  font-size: 18px;
  line-height: 1.5;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.el-fresh-heading p {
  margin-top: 4px;
  font-size: 13.5px;
  line-height: 1.5;
  text-wrap: pretty;
}
.el-fresh-row > .lp-grow {
  min-width: 0;
  margin-top: 1px;
}
.el-fresh-row .lp-grow > span {
  font-size: 14.5px;
  line-height: 1.5;
}
.el-fresh-row p {
  margin-top: 2px;
  font-size: 13px;
  line-height: 1.5;
  text-wrap: pretty;
}
.el-preview-panes {
  display: flex;
  flex-wrap: wrap;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 14px;
  overflow: hidden;
}
.el-preview-panes > .lp-ghost {
  flex: 1 1 260px;
}
.el-preview-panes > div {
  flex: 1 1 280px;
  padding: 20px 22px;
}
@media (max-width: 1023px) {
  .el-registration-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .el-registration-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 639px) {
  .el-registration-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

[data-admin-calendar-rows='4'] .el-static-calendar .events-cal-cell:nth-child(n + 29),
[data-admin-calendar-rows='5'] .el-static-calendar .events-cal-cell:nth-child(n + 36) {
  display: none;
}
.el-setting-label {
  display: block;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
}
.el-setting-help {
  margin-top: 3px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--wb-text-3, #5f6b6a);
}
.el-policy-loading {
  flex-direction: column;
  gap: 12px;
  padding: 18px 22px 20px;
}
.el-policy-heading {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 16px;
  width: 100%;
  align-items: start;
}
.el-policy-heading > .lp-grow {
  flex: 1 1 300px;
}
.el-policy-textarea {
  width: 100%;
}
.el-draft-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  border-top: 1px solid var(--wb-border-2, #eef1f0);
}
.el-registration-search {
  padding: 12px 18px;
}
.el-registration-search > .lp-ghost {
  width: 320px !important;
}
@media (max-width: 639px) {
  .el-registration-search > .lp-ghost {
    width: 100% !important;
  }
}

.el-registration-row {
  padding: 12px 0;
}
.el-registration-row > span {
  padding-inline: 20px;
}
.el-registration-head {
  height: 40px;
  padding-block: 0;
  align-items: center;
}
.el-registration-mobile-email {
  display: none !important;
}
@media (max-width: 767px) {
  .el-registration-mobile-email {
    display: block !important;
  }
}

.el-door-before-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 18px 32px;
  padding: 22px 22px 18px;
}
.el-door-before-heading > .el-door-heading {
  flex: 1 1 300px;
  padding: 0;
}
.el-door-ready {
  flex: 0 1 240px;
  min-width: 200px;
}
.el-door-live-heading {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 10px 16px;
  padding: 16px 22px 0;
}
.el-door-live-figure {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 16px 40px;
  padding: 10px 22px 16px;
}
.el-door-live-figure > .el-door-stats {
  padding: 0;
}
.el-door-live-figure .el-door-stats > div {
  flex: none;
}
.el-door-after-heading {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: start;
  gap: 14px 24px;
  padding: 20px 22px 0;
}
.el-door-after-heading > .el-door-heading {
  padding: 0;
  margin-bottom: 18px;
}

/* Door hero: the loaded Card rows, with the phase's known words as text. */
.el-door-card {
  background: var(--wb-surface-0, #fff);
}
.el-door-before-heading > .el-door-heading {
  display: block;
  min-width: 0;
}
.el-door-before-heading > .el-door-heading > * + *,
.el-door-ready > * + * {
  margin-top: 6px;
}
.el-dh-eyebrow,
.el-dh-row-title,
.el-dh-row-sub,
.el-dh-title,
.el-dh-when,
.el-dh-stat-label,
.el-dh-foot-copy:not(:empty),
.el-dh-link {
  width: auto;
  border-radius: 0;
  background: transparent;
}
.el-dh-eyebrow {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--wb-text-4, #8a9493);
}
.el-setup-row.el-dh-check {
  gap: 14px;
  padding: 14px 22px;
}
.el-dh-check > .lp-grow {
  flex: 1 1 260px;
}
.el-setup-row.el-dh-simple {
  flex-wrap: nowrap;
}
.el-dh-simple > .lp-grow {
  flex: 1 1 0;
}
.el-dh-simple > .lp-ghost:first-child {
  flex-shrink: 0;
  border-radius: 8px;
}
.el-dh-tile {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
}
.el-dh-tile-icon {
  width: 17px;
  height: 17px;
}
.el-dh-mark {
  box-sizing: border-box;
  width: 22px;
  height: 22px;
  margin-top: 1px;
  flex-shrink: 0;
  border: 1.5px dashed var(--wb-border-dashed, #b8c0bf);
  border-radius: 999px;
}
.el-dh-mark[data-done] {
  border: 0;
  background: var(--wb-brand, #0f6e5b);
}
.el-dh-row-title {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
}
.el-dh-row-sub {
  margin-top: 2px;
  font-size: 13px;
  line-height: 1.5;
  text-wrap: pretty;
  color: var(--wb-text-3, #5f6b6a);
}
.el-dh-title {
  display: block;
  font-size: 26px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.015em;
}
.el-dh-when {
  display: block;
  font-size: 13.5px;
  line-height: 1.5;
  text-wrap: pretty;
  color: var(--wb-text-3, #5f6b6a);
}
.el-dh-when-count {
  display: inline-block;
  width: 11ch;
  height: 10px;
  border-radius: 2px;
  background: var(--wb-surface-3, #e3e7e6);
}
.el-dh-button {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: auto;
  height: 30px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 7px;
  font-size: 13px;
  line-height: 1.5;
  white-space: nowrap;
}
.el-dh-button[data-size='md-minus'] {
  height: 32px;
}
.el-dh-button[data-icon] {
  padding: 0 10px;
}
/* A done checklist row's action is a ghost button: no border. */
.el-dh-button[data-ghost] {
  border-width: 0;
}
.el-dh-button > span {
  visibility: hidden;
}
.el-dh-button-icon {
  width: 15px;
  height: 15px;
}
.el-dh-live-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--wb-text-3, #5f6b6a);
}
.el-dh-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  flex-shrink: 0;
  border-radius: 999px;
  background: var(--wb-success-dot, #2a9a58);
}
.el-dh-live {
  font-weight: 600;
  color: var(--wb-success-strong, #155f34);
}
.el-door-live-figure {
  gap: 16px 40px;
  padding: 10px 22px 0;
}
.el-dh-figure-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px;
}
.el-door-live-figure > .el-door-stats {
  gap: 16px 32px;
}
.el-dh-stat {
  min-width: 0;
}
.el-dh-stat-label {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--wb-text-3, #5f6b6a);
}
.el-dh-stat-value,
.el-dh-stat-sub {
  margin-top: 2px;
}
.el-dh-bar-row {
  padding: 16px 22px 0;
}
.el-dh-bar-row > .el-door-type-bar {
  width: 100%;
  margin: 0;
  border-radius: 5px;
}
.el-door-after-heading > .el-door-heading {
  display: block;
  min-width: 0;
  margin-bottom: 0;
}
.el-door-after-heading > .el-door-heading > :nth-child(2) {
  margin-top: 8px;
}
.el-door-after-heading > .el-ticket-add {
  margin-top: 0;
  align-items: stretch;
}
.el-door-stats.el-dh-after-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 14px 20px;
  margin-top: 18px;
  padding: 0 22px;
}
.el-dh-chart-row {
  padding: 22px 22px 8px;
}
.el-dh-chart-row[data-phase='after'] {
  padding-top: 24px;
}
.el-dh-chart-row > .el-door-chart {
  width: 100%;
  margin: 0;
}
.el-dh-after-gap {
  height: 20px;
}
.el-door-card > [aria-hidden='true'] > .el-door-foot {
  gap: 6px 24px;
  padding: 11px 22px;
  border-top: 1px solid var(--wb-divider, #eceeea);
  background: var(--wb-surface-1, #fafbfa);
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--wb-text-3, #5f6b6a);
}
.el-dh-foot-copy {
  flex: 1 1 320px;
  min-width: 0;
  text-wrap: pretty;
}
.el-dh-link {
  white-space: nowrap;
  color: var(--wb-text-link, #0f6e5b);
}

.el-finance-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.el-finance-section > .lp-card,
.el-finance-section > .el-settlement-card {
  margin-top: 0;
}
.el-finance-fees {
  flex: 1 1 280px;
}
/* FinancePanel's activity and fees sections: 480px and 280px bases, so Fees wraps under the
   activity chart until the row fits both. */
.el-chart-house > [data-layout-region='activity'] {
  flex: 999 1 480px;
}
.el-chart-house > .el-finance-fees {
  flex: 1 1 280px;
}

/* SectionHeader: a 15px title and 13px line on the left, controls wrapping under them. */
.el-sh {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px 16px;
}
.el-sh-text {
  min-width: 0;
}
.el-sh-title {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
}
.el-sh-sub {
  margin: 3px 0 0;
  font-size: 13px;
  line-height: 1.45;
  color: var(--wb-text-3, #5f6b6a);
}
.el-sh-sub[data-pending],
.el-sh-title[data-pending] {
  color: transparent;
}
.el-door-aside-section {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 12px;
}
/* The Schedule tab's month (schedule.css: .sched-cal and its parts), with wells for the label
   and the day numbers. */
.el-schedule {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.el-schedule-cal {
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 14px;
  overflow: hidden;
  line-height: 1.5;
}
.el-schedule-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--wb-border-2, #eef1f0);
}
.el-schedule-dows {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  background: var(--wb-surface-1, #fafbfa);
  border-bottom: 1px solid var(--wb-border-2, #eef1f0);
}
.el-schedule-dows span {
  padding: 8px 10px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--wb-text-4, #8a9493);
}
.el-schedule-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.el-schedule-cell {
  height: 112px;
  padding: 6px;
  border-right: 1px solid var(--wb-border-3, #f0f2f1);
  border-bottom: 1px solid var(--wb-border-3, #f0f2f1);
  min-width: 0;
}
.el-door-aside-section > .lp-card {
  margin-top: 0;
}
.el-sh-title[data-pending] > span,
.el-sh-sub[data-pending] > span {
  border-radius: 4px;
  background: var(--wb-surface-2, #eff0ed);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.el-sh-aside {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}
.lp-control.el-sh-button {
  height: 32px;
  padding: 0 12px;
  border-width: 0;
  border-radius: 7px;
  font-size: 13px;
}
.lp-control.el-sh-button[data-outline] {
  border-width: 1px;
}
.lp-control.el-sh-button[data-size='sm-plus'] {
  height: 30px;
}
.lp-control.el-sh-button[data-square] {
  width: 32px;
  padding: 0;
}
.lp-control.el-sh-button[data-size='sm'] {
  height: 28px;
  padding: 0 14px;
  border-radius: 8px;
}
.lp-control.el-sh-button[data-icon] {
  gap: 8px;
  padding: 0 10px;
}
.el-sh-button-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.el-sh.el-registration-heading {
  display: flex;
  align-items: flex-end;
  gap: 10px 16px;
}

/* Marketing, finance and disputes use these same bodies for raw boot and mounted reads. */
.ml-range-copy > span {
  display: none;
}
[data-admin-range='7d'] .ml-range-copy > [data-range='7d'],
[data-admin-range='30d'] .ml-range-copy > [data-range='30d'],
[data-admin-range='90d'] .ml-range-copy > [data-range='90d'] {
  display: inline;
}
[data-admin-layout] {
  --al-workbench: none;
  --al-figures: none;
  --al-sections: none;
  --al-case: none;
}
[data-admin-layout='marketing'][data-admin-view='overview'] .al-domain-marketing-overview,
[data-admin-layout='marketing'][data-admin-view='links'] .al-domain-marketing-links,
[data-admin-layout='marketing'][data-admin-view='emails'] .al-domain-marketing-emails,
[data-admin-layout='marketing'][data-admin-view='automations'] .al-domain-marketing-automations,
[data-admin-layout='marketing'][data-admin-view='promos'] .al-domain-marketing-promos,
[data-admin-layout='payouts'] .al-domain-payouts,
[data-admin-layout='payout-detail'] .al-domain-payout-detail,
[data-admin-layout='settlement-statement'] .al-domain-settlement-statement,
[data-admin-layout='reconciliation'] .al-domain-reconciliation,
[data-admin-layout='dispute-queue'][data-admin-view='cases'] .al-domain-dispute-cases,
[data-admin-layout='warning-list'] .al-domain-warning-list,
[data-admin-layout='warning-detail'] .al-domain-warning-detail,
[data-admin-layout='dispute-case'][data-admin-view='overview'] .al-domain-dispute-case,
[data-admin-layout='dispute-case'][data-admin-view='sent'] .al-domain-dispute-sent,
[data-admin-layout='dispute-settings'] .al-domain-dispute-settings,
[data-admin-layout='dispute-outcomes'] .al-domain-dispute-outcomes {
  display: block;
}
:is(
  .ml-page,
  .ml-table,
  .ml-section,
  .ql-case-page,
  .ql-settings-page,
  .ql-outcomes-page,
  .fl-page,
  .fl-table
) {
  min-width: 0;
}
:is(
  .ml-page,
  .ml-table,
  .ml-section,
  .ql-case-page,
  .ql-settings-page,
  .ql-outcomes-page,
  .fl-page,
  .fl-table
),
:is(
    .ml-page,
    .ml-table,
    .ml-section,
    .ql-case-page,
    .ql-settings-page,
    .ql-outcomes-page,
    .fl-page,
    .fl-table
  )
  * {
  box-sizing: border-box;
}
[data-loading-body^='marketing'] :is(p, h1, h2, h3),
[data-loading-body^='finance'] :is(p, h1, h2, h3),
[data-loading-body^='payout'] :is(p, h1, h2, h3),
[data-loading-body^='dispute'] :is(p, h1, h2, h3),
[data-loading-body^='warning'] :is(p, h1, h2, h3) {
  margin: 0;
}
.ml-page,
.ql-settings-page,
.ql-outcomes-page {
  padding: 28px var(--wb-page-padding, clamp(20px, 4vw, 40px)) 80px;
}
.ml-page-stack {
  display: flex;
  flex-direction: column;
}
.ml-gap-20 {
  gap: 20px;
}
.ml-gap-36 {
  gap: 36px;
}
.ml-gap-44 {
  gap: 44px;
}
.ml-stats {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.ml-stat {
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 12px;
  padding: 16px 18px;
  background: var(--wb-surface-0, #fff);
}
.ml-stat-label {
  font-size: 13px;
  line-height: 1.5;
  color: var(--wb-text-3, #5f6b6a);
}
.ml-stat .ml-stat-figure {
  margin-top: 10px;
  font-size: 26px;
  line-height: 1.5;
}
.ml-stat .ml-stat-subline {
  margin-top: 10px;
  font-size: 13px;
  line-height: 1.5;
}
.ml-pending-figure {
  display: inline-block;
  max-width: 100%;
  border-radius: 6px;
  vertical-align: middle;
}
.ml-table {
  overflow: hidden;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 12px;
  background: var(--wb-surface-0, #fff);
}
.ml-scroller {
  position: relative;
  overflow-x: auto;
}
.ml-table-header,
.ml-table-row {
  display: grid;
  align-items: center;
  gap: 16px;
  padding: 0 18px;
  border-bottom: 1px solid var(--wb-border-2, #eef1f0);
}
.ml-table-header {
  height: 40px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--wb-text-4, #8a9493);
}
.ml-table-row {
  padding-top: 10px;
  padding-bottom: 10px;
}
.ml-table-row > div {
  min-width: 0;
}
.ml-row-title {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ml-row-title > div {
  flex: 1;
  min-width: 0;
}
.ml-table-footer {
  padding: 10px 18px;
  font-size: 12.5px;
  line-height: 1.5;
}
.ml-overview-controls,
.ml-overview-controls > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.ml-overview-controls {
  justify-content: space-between;
  gap: 12px 16px;
}
.ml-overview-body > div {
  display: flex;
  flex-direction: column;
  gap: 44px;
}
.ml-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ml-section-heading {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  row-gap: 10px;
  column-gap: 16px;
}
.ml-section-heading[data-has-sub='true'] {
  align-items: flex-end;
}
.ml-section-copy {
  min-width: 0;
}
.ml-section-aside {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}
.ml-share-metric {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px;
  border-radius: 8px;
}
.ml-share-metric > span {
  height: 26px;
  padding: 0 5px;
  font-size: 12.5px;
  line-height: 1.5;
  display: inline-flex;
  align-items: center;
}
.ml-share-metric > span:first-child {
  font-weight: 500;
}
.ml-all-links {
  font-size: 13.5px;
  line-height: 1.5;
  white-space: nowrap;
}
.ml-heading-icon {
  width: 14px;
  height: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ml-new-automation {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 32px;
  padding: 0 12px;
  font-size: 13px;
  line-height: 1.5;
  white-space: nowrap;
}
.ml-section-heading h2 {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
}
.ml-section-heading p {
  font-size: 13px;
  line-height: 1.45;
  color: var(--wb-text-3, #5f6b6a);
  margin-top: 3px !important;
}
.ml-source-summary {
  padding: 20px 22px 18px;
}
/* The loaded WhereSalesCameFrom summary, header and channel rows (components/marketing/overview). */
.ml-source-totals {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--wb-text-1, #16191a);
}
.ml-source-totals > span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.ml-source-totals > span[data-muted] {
  color: var(--wb-text-3, #5f6b6a);
}
.ml-source-total-label {
  font-weight: 500;
}
.ml-source-header > span[data-align='right'] {
  text-align: right;
}
.ml-source-row {
  display: grid;
  align-items: center;
  gap: 16px;
  padding: 10px 22px;
  border-top: 1px solid var(--wb-border-2, #eef1f0);
}
.ml-source-row[data-direct] {
  background: var(--wb-surface-1, #f6f7f6);
  color: var(--wb-text-3, #5f6b6a);
}
.ml-source-channel {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 10px;
}
.ml-source-copy {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
}
.ml-source-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13.5px;
  line-height: 1.5;
  font-weight: 500;
}
.ml-source-sub {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  line-height: 1.5;
  color: var(--wb-text-4, #8a9493);
}
.ml-source-figure {
  display: flex;
  min-height: 19.5px;
  align-items: center;
  justify-content: flex-end;
}
.ml-source-share {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 10px;
}
.ml-source-share > .lp-ghost:first-child {
  flex: 1;
}
.ml-running {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(290px, 100%), 1fr));
  gap: 16px;
}
/* RunningNow card: h3 (17px glyph + title) with its "All …" link, then two-line rows with a pill. */
.ml-running-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 18px;
}
.ml-running-heading {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 600;
  color: var(--wb-text-1, #16191a);
}
.ml-running-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  border-top: 1px solid var(--wb-border-2, #eef1f0);
  padding: 12px 18px;
}
.ml-running-row > .lp-ghost {
  margin-top: 0 !important;
}
.ml-running-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.ml-top-link-row > div {
  min-width: 0;
}
.ml-list-footer {
  display: flex;
  align-items: center;
  min-height: 38.75px;
  padding: 10px 18px;
  border-top: 1px solid var(--wb-border-2, #eef1f0);
}
.ml-recipes {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr));
}
.ml-recipe {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 12px;
}
.ml-recipe-footer {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border-top: 1px solid var(--wb-border-2, #eef1f0);
  padding-top: 12px;
  margin-top: auto;
}
.ml-topbar-tabs {
  display: flex;
  align-items: center;
  gap: 2px;
}
.ml-tab-metric {
  color: transparent;
  font-size: 13.5px;
  font-weight: 400;
  line-height: 1.5;
  padding: 6px 10px;
  white-space: nowrap;
  border-radius: 6px;
  background: var(--accent, #f4f4f5);
}
/* The current section's chip is medium (tabChipVariants active), which widens it. */
[data-admin-layout='marketing'][data-admin-view='overview'] .ml-topbar-tabs > :nth-child(1),
[data-admin-layout='marketing'][data-admin-view='links'] .ml-topbar-tabs > :nth-child(2),
[data-admin-layout='marketing'][data-admin-view='emails'] .ml-topbar-tabs > :nth-child(3),
[data-admin-layout='marketing'][data-admin-view='automations'] .ml-topbar-tabs > :nth-child(4),
[data-admin-layout='marketing'][data-admin-view='promos'] .ml-topbar-tabs > :nth-child(5),
[data-admin-layout='marketing'][data-admin-view='promos-presale'] .ml-topbar-tabs > :nth-child(5) {
  font-weight: 500;
}
/* Reconciliation (reconciliation.tsx): PageContainer's 1600px frame; the ds PageHeader (the
   12.5px/1.5 Settings trail 16px above the 22px title on its 36px row, the 14px/1.5 description
   4px under it, at most 672px); 32px below, the Exceptions SectionHeader (15px/1.4 title, the
   controls as its aside 14px apart, wrapping under the title 10px down when narrow) 12px over
   the table's Card. */
.fl-page {
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
  padding: 32px 20px;
}
@media (min-width: 640px) {
  .fl-page {
    padding: 40px 32px;
  }
}
.fl-page :is(p, h1, h2) {
  margin: 0;
}
.fl-trail {
  display: flex;
  margin-bottom: 16px;
}
.fl-trail-list {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  font: 400 12.5px/1.5 var(--font-ui);
  color: var(--text-secondary);
}
.fl-trail-current {
  color: var(--text-primary);
}
.fl-header h1 {
  display: flex;
  align-items: center;
  min-height: 36px;
  font-size: 22px;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: -0.025em;
  text-wrap: balance;
  color: var(--text-primary);
}
.fl-description {
  max-width: 672px;
  margin-top: 4px !important;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.fl-reconciliation {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 32px;
}
.fl-section-header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px 16px;
}
.fl-section-header h2 {
  font-size: 15px;
  line-height: 1.4;
  font-weight: 600;
  color: var(--text-primary);
}
.fl-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}
/* The ds SegmentedControl (md): 3px inset and gap, 26px items on 12px sides with a 1px edge. */
.fl-controls .lp-segments > span {
  height: 26px;
  padding: 0 12px;
  border: 1px solid transparent;
  font-size: 13px;
}
/* The ds Select (sm, w-52): 208×32, 13px on 12px/32px sides. */
.fl-kind {
  width: 208px;
  height: 32px;
  justify-content: flex-start;
  padding: 0 32px 0 12px;
  border-color: var(--action-secondary-line);
  font-size: 13px;
}
.fl-card {
  overflow: hidden;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  background: var(--surface-raised);
}
.fl-table {
  overflow: hidden;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  background: var(--surface-raised);
}
.fl-frameless {
  border: 0;
  border-radius: 0;
}
.fl-table-scroll {
  position: relative;
  width: 100%;
  overflow-x: auto;
}
/* The ds Table: a 40px head in 12px/500 sentence case, 11px/16px cells on 13px, hairline rows. */
.fl-table table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.fl-table :is(th, td) {
  padding: 11px 16px;
  text-align: start;
  white-space: nowrap;
  vertical-align: middle;
}
.fl-table :is(th, td)[data-align='end'] {
  text-align: end;
}
.fl-table td[data-align='end'] .lp-ghost {
  margin-left: auto;
}
.fl-table th {
  height: 40px;
  padding-block: 0;
  font: 500 12px/1.4 var(--font-ui);
  color: var(--text-secondary);
}
.fl-table thead,
.fl-table tbody tr {
  border-bottom: 1px solid var(--line-default);
}
.fl-table tbody tr:last-child {
  border-bottom: 0;
}
/* Payouts (settings-payouts.tsx). The page frame, trail and heading are the `.sl-page.sl-ds`
   rules SettingsPage's skeletons share. The status block and the statement are also drawn inside
   the loaded page while their own reads are pending. */
.pyl-connect,
.pyl-connect *,
.pyl-statement,
.pyl-statement * {
  box-sizing: border-box;
}
.pyl-statement :is(h2, p) {
  margin: 0;
}
.pyl-connect,
.pyl-statement {
  color: var(--text-primary);
  font: 400 14px/1.5 var(--font-ui);
}
/* The column, then the 300px help rail once the block is 56rem wide (`@4xl:grid-cols-payouts`,
   a container query, so an open sidebar counts); stacked below that. */
.pyl-connect {
  container-type: inline-size;
}
.pyl-connect > [aria-hidden='true'] {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.pyl-column {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 20px;
}
.pyl-status-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
}
.pyl-card {
  border-radius: 12px;
}
@container (min-width: 56rem) {
  .pyl-connect > [aria-hidden='true'] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
  }
}
.pyl-statement {
  margin-top: 8px;
}
.pyl-statement > [aria-hidden='true'] {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
/* ds SectionHeader with a sub line: the aside sits at the foot of the sub. */
.pyl-section-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px 16px;
}
.pyl-section-header > div:first-child {
  min-width: 0;
}
.pyl-section-header h2 {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
}
.pyl-section-header p {
  margin-top: 3px !important;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.pyl-section-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}
/* ds Button secondary sm (font-medium, so the label is as wide as the loaded one). */
.pyl-statement-action {
  height: var(--control-sm);
  padding: 0 10px;
  font-size: 13px;
  font-weight: 500;
}
/* ds KeyValueList dense: one row, so no hairline under it. */
.pyl-ledger-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.pyl-caption {
  max-width: 65ch;
  margin-top: 8px !important;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-faint);
}
/* ds Table, frameless in a Card padding="none": fixed columns over a 32rem minimum, scrolling
   sideways inside the card below it. */
.pyl-table {
  overflow-x: auto;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: var(--surface-raised);
}
.pyl-table table {
  width: 100%;
  min-width: 32rem;
  table-layout: fixed;
  border-collapse: collapse;
}
.pyl-table thead {
  border-bottom: 1px solid var(--line-default);
}
.pyl-table :is(th, td) {
  padding: 11px 16px;
  text-align: start; /* ds Table's text-start/text-end, so the computed value matches. */
  vertical-align: middle;
}
.pyl-table th {
  height: 40px;
  padding-block: 0;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
  color: var(--text-secondary);
}
.pyl-table :is(th, td)[data-align='right'] {
  text-align: end;
}
.pyl-table td[data-align='right'] .lp-ghost {
  margin-left: auto;
}
.pyl-table tbody tr {
  border-bottom: 1px solid var(--line-default);
}
.pyl-table tbody tr:last-child {
  border-bottom: 0;
}
/* The payout detail table takes auto columns (settings-payout-detail.tsx); same grammar. */
.pyl-table[data-layout='auto'] table {
  table-layout: auto;
}
/* Payout detail (settings-payout-detail.tsx) and Settlement statement
   (settings-settlement-statement.tsx). The page frame, trail and heading are the `.sl-page.sl-ds`
   rules; the bodies are also drawn inside the loaded page while their reads are pending. */
.pdl-title-row {
  display: flex;
  min-height: var(--control-md);
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
}
/* PageHeader meta: one 13px line, 6px under the title. */
.pdl-meta {
  margin-top: 6px;
}
.pdl-status {
  border-radius: 999px;
}
/* Over `.sl-loading > [aria-hidden]`'s `display: contents`, which comes later in the file. */
.sl-loading.pdl-body > [aria-hidden='true'],
.sl-loading.ssl-body > [aria-hidden='true'] {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
/* StatCardGrid columns 3: two columns, three once the grid is 42rem wide. */
.pdl-breakdown {
  container-type: inline-size;
}
.pdl-breakdown-items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
@container (min-width: 42rem) {
  .pdl-breakdown-items {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.pdl-tile {
  min-width: 0;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: var(--surface-raised);
  padding: 16px 18px;
}
.pdl-section,
.ssl-ledger {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.pdl-section h2 {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
}
.pdl-section .pyl-table table {
  min-width: 32rem;
}
/* ds PageHeader with actions: the title group keeps its content width (`grow basis-auto`), so
   the actions wrap under it only once the description's one line and the buttons no longer fit;
   the title and description are each as wide as their words (a column of flex items). */
.ssl-page .sl-heading > div:first-child {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
}
/* ds Button secondary md. */
.ssl-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.ssl-export {
  height: var(--control-md);
  padding: 0 14px;
  border-color: var(--line-default);
  font-size: 13.5px;
  font-weight: 500;
}
.ssl-journal-note {
  max-width: 65ch;
  margin-top: -16px !important;
  font-size: 13px;
  line-height: 1.5;
  text-wrap: pretty;
  color: var(--text-secondary);
}
/* FormField: label, 6px, the 36px select, 6px, the hint. */
.ssl-month {
  display: flex;
  width: 176px;
  flex-direction: column;
  gap: 6px;
}
.ssl-month-label {
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1;
}
.ssl-month-select {
  border-radius: var(--radius-control);
}
.ssl-month-hint {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-secondary);
}
/* ds KeyValueList: 11px rows on hairlines; a total takes the rule above it instead. */
.ssl-ledger-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--line-default);
  padding: 11px 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.ssl-ledger-row:last-child,
.ssl-ledger-row[data-before-total] {
  border-bottom: 0;
}
.ssl-ledger-row[data-total] {
  border-top: 1px solid var(--line-default);
  border-bottom: 0;
  font-weight: 500;
}
.ql-summary-heading {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: start;
  gap: 16px 24px;
}
.ql-summary-heading > div {
  min-width: 0;
  max-width: 100%;
}
.ql-summary-heading > div:last-child {
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: end;
}
.ql-ledger h3 {
  font-size: 15px;
  line-height: 1.5;
  font-weight: 600;
}
.ql-ledger > div {
  padding: 12px 0;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--wb-divider, #eef1f0);
}
.ql-ledger > div:first-of-type {
  margin-top: 12px;
}
.ql-ledger + .ql-ledger {
  margin-top: 28px;
}
/* The warning page's "Fewer warnings" card in its rail (routes/dispute-warning-detail.tsx). */
.ql-warning-tip {
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 14px;
  padding: 14px 16px;
}
/* The cases list (routes/disputes.tsx): a padded column up to 1120px, the lead sentence beside the
   search and the event picker (under it on a phone), then one card of grouped rows. Its own
   container, as the page's, answers the 761px break. */
.ql-cases {
  container-type: inline-size;
}
.ql-cases-page {
  max-width: 1120px;
  padding: 28px var(--wb-page-padding, clamp(20px, 4vw, 40px)) 80px;
}
.ql-cases-lead {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
  margin-bottom: 16px;
}
.ql-cases-sentence {
  max-width: 100%;
  margin-block: 2.5px;
}
.ql-cases-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
}
.ql-cases-search {
  flex: 1;
  min-width: 0;
  border-radius: 8px;
}
.ql-cases-event {
  min-width: 0;
  max-width: 40%;
  border-radius: 8px;
}
.ql-cases-card {
  overflow: hidden;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 8px;
  background: var(--wb-surface-0, #fff);
}
.ql-case-group {
  height: 38.75px;
  background: var(--wb-surface-1, #fafbfa);
}
.ql-case-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 2px 12px;
  border-top: 1px solid var(--wb-border-2, #eef1f0);
  padding: 11px 14px;
}
.ql-case-row > span:first-child {
  grid-row: span 2;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.ql-case-row > span:first-child > span {
  display: flex;
  align-items: center;
  height: 20.25px;
}
.ql-case-row > span:first-child > span + span {
  height: 19.5px;
}
.ql-case-event {
  display: none;
}
.ql-case-amount,
.ql-case-due {
  display: flex;
  justify-content: flex-end;
}
.ql-case-amount {
  grid-column: 2;
  grid-row: 1;
}
.ql-case-due {
  grid-column: 2;
  grid-row: 2;
}
@container (min-width: 761px) {
  .ql-cases-tools {
    width: auto;
    margin-left: auto;
  }
  .ql-cases-search {
    flex: none;
    width: 260px;
  }
  .ql-cases-event {
    max-width: 224px;
  }
  .ql-case-row {
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) 100px 128px;
    gap: 2px 16px;
    padding-inline: 16px;
  }
  .ql-case-row > span:first-child {
    grid-row: auto;
  }
  .ql-case-event {
    display: block;
  }
  .ql-case-amount {
    grid-column: 3;
  }
  .ql-case-due {
    grid-column: 4;
    grid-row: 1;
  }
}
.ql-case-page {
  padding: 20px var(--wb-page-padding, clamp(20px, 4vw, 40px)) 80px;
  width: 100%;
  max-width: var(--wb-page-max, 1180px);
}
.ql-case-banner {
  margin-top: 18px;
}
/* The case beside its rail; under it when the page is too narrow for both. */
.ql-case-columns {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  gap: 32px 40px;
  margin-top: 28px;
}
.ql-case-columns > div {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.ql-case-columns > div:first-child {
  flex: 1 1 520px;
  gap: 32px;
}
.ql-case-columns > div:last-child {
  flex: 0 1 288px;
  gap: 24px;
}
@media (max-width: 1023.98px) {
  .ql-case-columns > div:last-child {
    flex-grow: 1;
  }
}
.ql-case-section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 12px;
  margin-bottom: 10px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--wb-text-3, #5f6b6a);
}
.ql-case-section-head h3,
.ql-case-activity {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 600;
  color: var(--wb-text-1, #171a19);
}
.ql-case-list {
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 12px;
  overflow: hidden;
}
.ql-case-list > div {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 16px;
  border-top: 1px solid var(--wb-border-2, #eef1f0);
}
.ql-case-list > div:first-child {
  border-top: 0;
}
.ql-case-list > [data-layout-region='strength'] {
  padding-block: 12px;
}
.ql-case-list > .ql-case-decision {
  flex-direction: column;
  align-items: stretch;
  padding-block: 14px;
}
@media (min-width: 640px) {
  .ql-case-list > .ql-case-decision {
    flex-direction: row;
    align-items: center;
    gap: 20px;
  }
}
.ql-case-decision > div {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
/* The row's button: full width while the row is stacked, its own width beside the text. */
.ql-case-decision > .lp-ghost {
  flex-shrink: 0;
  width: 100%;
}
@media (min-width: 640px) {
  .ql-case-decision > .lp-ghost {
    width: 132px;
  }
}
.ql-case-fact > .lp-ghost:last-child {
  margin-left: auto;
}
.ql-case-columns .ql-ledger + .ql-ledger {
  margin-top: 0;
}
.ql-case-links {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ql-case-links > .lp-ghost {
  margin-block: 3px;
}
.ql-settings-page {
  max-width: 880px;
}
.ql-settings-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
  margin-bottom: 18px;
}
.ql-settings-head > .lp-ghost {
  margin-left: auto;
}
.ql-settings-page h2 {
  font-size: 17px;
  line-height: 1.2;
  font-weight: 600;
}
.ql-settings-section {
  display: grid;
  gap: 8px 32px;
  padding: 20px 0;
  border-top: 1px solid var(--wb-divider, #eef1f0);
}
.ql-settings-section:first-child {
  border-top: 0;
  padding-top: 4px;
}
@media (min-width: 768px) {
  .ql-settings-section {
    grid-template-columns: 260px minmax(0, 1fr);
  }
}
.ql-settings-section h3 {
  font-size: 14px;
  line-height: 1.5;
  font-weight: 600;
}
.ql-settings-description {
  margin-top: 4px !important;
  max-width: 40ch;
  font-size: 12.5px;
  line-height: 1.45;
}
.ql-settings-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ql-settings-stripe {
  font-size: 13px;
  line-height: 1.5;
  color: var(--wb-text-2, #3d4645);
}
/* The rail's labels are `p`s on the loaded page (RailBlock), never headings. */
.ql-rail-ledger > p {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 600;
  color: var(--wb-text-3, #5f6b6a);
}
.ql-rail-ledger > div {
  min-height: 39.25px;
  align-items: center;
  padding: 9px 0;
  font-size: 13.5px;
  line-height: 1.5;
}
.ql-rail-ledger > div:first-of-type {
  margin-top: 8px;
}
.ql-outcome-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.ql-period-scroll {
  display: flex;
  max-width: 100%;
  overflow-x: auto;
}
.ql-custom-range {
  display: var(--ql-custom-display, none);
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--wb-text-3, #5f6b6a);
}
.ql-custom-range > label {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ql-range-date {
  width: auto;
  min-width: 0;
  height: 34px;
  border: 1px solid var(--input, #e4e4e7);
  border-radius: 8px;
  padding: 0 12px;
  font: 400 13px/1.5 var(--font-geist-sans, sans-serif);
  color: transparent;
  background: var(--card, #fff);
}
[data-admin-outcome-period] {
  --ql-custom-display: none;
}
[data-admin-outcome-period='custom'] {
  --ql-custom-display: flex;
}
[data-admin-outcome-period] .ql-period-scroll .lp-segments > span {
  font-weight: 400;
}
[data-admin-outcome-period='30'] .ql-period-scroll .lp-segments > :nth-child(1),
[data-admin-outcome-period='90'] .ql-period-scroll .lp-segments > :nth-child(2),
[data-admin-outcome-period='365'] .ql-period-scroll .lp-segments > :nth-child(3),
[data-admin-outcome-period='all'] .ql-period-scroll .lp-segments > :nth-child(4),
[data-admin-outcome-period='custom'] .ql-period-scroll .lp-segments > :nth-child(5) {
  font-weight: 500;
}
.ql-outcome-export {
  height: 32px;
  margin-left: auto;
  padding: 0 10px;
  border-color: var(--wb-border-1, #e6e9e8);
  font-size: 13px;
}
.ql-outcome-body {
  margin-top: 24px;
}
.ql-outcome-container {
  container-type: inline-size;
}
.ql-outcome-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.ql-outcome-stat {
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 12px;
  padding: 16px 18px;
}
.ql-outcome-stat > p {
  font-size: 13px;
  line-height: 1.5;
  color: var(--muted-foreground, #71717a);
}
.ql-outcome-stat > p:first-child {
  font-weight: 500;
}
.ql-outcome-stat > p:last-child {
  margin-top: 2px;
}
.ql-outcome-stat p .dl-ghost {
  display: inline-block;
}
.ql-outcome-figure {
  margin-top: 10px;
}
.ql-outcome-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
  gap: 16px;
  margin-top: 16px;
}
.ql-outcome-card {
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 12px;
  padding: 18px;
}
.ql-outcome-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 12px;
}
.ql-outcome-head h3 {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
}
.ql-outcome-head p {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--wb-text-3, #5f6b6a);
}
.ql-standing-list {
  margin-top: 8px;
  font-size: 13.5px;
  line-height: 1.5;
}
.ql-standing-list > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--wb-divider, #edf0ef);
  padding-block: 8px;
}
.ql-standing-list > div:last-child {
  border-bottom: 0;
}
.ql-standing-list dt {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--wb-text-3, #5f6b6a);
}
.ql-outcome-report {
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.5;
}
.ql-report-link {
  color: var(--wb-text-link, #097a70);
}
@container (min-width: 696px) {
  .ql-outcome-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
[data-admin-layout='marketing'][data-admin-view='promos-presale']
  .al-domain-marketing-promos-presale {
  display: block;
}
.ml-controls {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ml-control-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.ml-control {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  min-height: 30px;
  max-width: 100%;
  padding: 5px 10px;
  border-radius: 6px;
  background: var(--accent, #f4f4f5);
  color: transparent;
  white-space: nowrap;
  font-size: 13px;
  line-height: 20px;
}
.ml-control-search {
  flex: 1 1 240px;
  min-width: 0;
  height: 32px;
}
.ml-channels {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
/* FilterChip: 30px, 12px sides, 13px. Inline-block, not flex, so the space before the count
   slot survives (a flex item trims its trailing space). */
.ml-channel {
  display: inline-block;
  flex-shrink: 0;
  box-sizing: border-box;
  height: 30px;
  padding: 0 12px;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 999px;
  font-size: 13px;
  line-height: 28px;
  white-space: nowrap;
  color: transparent;
}
.ml-stat .ml-stat-subline {
  margin-top: 2px;
}
.ml-boot-slot,
.ml-boot-strip {
  display: none;
}
[data-admin-layout='marketing'] .ml-boot-strip {
  display: flex;
  min-height: 56px;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 14px;
  overflow-x: auto;
  border-bottom: 1px solid var(--wb-border-1, #e6e9e8);
  padding: 8px 20px;
}
@media (min-width: 640px) {
  [data-admin-layout='marketing'] .ml-boot-strip {
    padding-inline: 24px;
  }
}
@media (min-width: 1024px) {
  [data-admin-layout='marketing'] .ml-boot-strip {
    display: none;
  }
  [data-admin-layout='marketing'] .ml-boot-slot {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 14px;
    overflow: hidden;
  }
}
.ql-boot-slot,
.ql-boot-strip {
  display: none;
}
:is(
    [data-admin-layout='dispute-queue'],
    [data-admin-layout='warning-list'],
    [data-admin-layout='dispute-settings'],
    [data-admin-layout='dispute-outcomes']
  )
  .ql-boot-strip {
  display: flex;
  min-height: 56px;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 14px;
  overflow-x: auto;
  border-bottom: 1px solid var(--wb-border-1, #e6e9e8);
  padding: 8px 20px;
}
@media (min-width: 640px) {
  :is(
      [data-admin-layout='dispute-queue'],
      [data-admin-layout='warning-list'],
      [data-admin-layout='dispute-settings'],
      [data-admin-layout='dispute-outcomes']
    )
    .ql-boot-strip {
    padding-inline: 24px;
  }
}
@media (min-width: 1024px) {
  :is(
      [data-admin-layout='dispute-queue'],
      [data-admin-layout='warning-list'],
      [data-admin-layout='dispute-settings'],
      [data-admin-layout='dispute-outcomes']
    )
    .ql-boot-strip {
    display: none;
  }
  :is(
      [data-admin-layout='dispute-queue'],
      [data-admin-layout='warning-list'],
      [data-admin-layout='dispute-settings'],
      [data-admin-layout='dispute-outcomes']
    )
    .ql-boot-slot {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 14px;
    overflow: hidden;
  }
}
.ql-loading-trail {
  display: flex;
  min-width: 0;
  flex-wrap: nowrap;
  align-items: center;
  gap: 1ch;
  font-size: 12.5px;
  line-height: 1.5;
  white-space: nowrap;
  color: transparent;
}
.ql-loading-trail > span:not(.lp-ghost) {
  background: var(--accent, #f4f4f5);
  border-radius: 3px;
}
.ql-boot-trail,
.ql-boot-case-slot,
.ql-trail-warning {
  display: none;
}
:is([data-admin-layout='dispute-case'], [data-admin-layout='warning-detail']) .ql-boot-trail {
  display: flex;
  min-height: 56px;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 14px;
  overflow-x: auto;
  border-bottom: 1px solid var(--wb-border-1, #e6e9e8);
  padding: 8px 20px;
}
[data-admin-layout='warning-detail'] :is(.ql-boot-trail, .ql-boot-case-slot) > .ql-loading-trail {
  display: none;
}
[data-admin-layout='warning-detail'] .ql-trail-warning {
  display: contents;
}
@media (min-width: 640px) {
  .ql-boot-trail {
    padding-inline: 24px;
  }
}
@media (min-width: 1024px) {
  :is([data-admin-layout='dispute-case'], [data-admin-layout='warning-detail']) .ql-boot-trail {
    display: none;
  }
  :is([data-admin-layout='dispute-case'], [data-admin-layout='warning-detail']) .ql-boot-case-slot {
    display: flex;
    align-items: center;
    min-width: 0;
  }
}
.ml-topbar-title {
  display: block;
  flex-shrink: 0;
  color: transparent;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 600;
  white-space: nowrap;
}
.ml-stat-label {
  font-weight: 500;
}

/* Settings, admin tools and onsite use their actual page grammar at every stage. */
.sl-loading,
.sl-loading *,
.sl-page,
.sl-page * {
  box-sizing: border-box;
}
.sl-loading {
  min-width: 0;
  color: var(--text-primary);
  font: 400 13px/1.45 var(--font-ui);
}
.sl-loading > [aria-hidden='true'] {
  display: contents;
}
.sl-loading :is(p, h1, h2, h3, ul, ol, dl, dd, fieldset, legend) {
  margin: 0;
}
.sl-loading :is(ul, ol) {
  padding: 0;
  list-style: none;
}
.sl-loading fieldset {
  border: 0;
  padding: 0;
  min-width: 0;
}
.sl-loading strong {
  font-weight: 500;
}
.sl-page {
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
  padding: 32px 20px;
}
.sl-trail {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line-default);
  margin-bottom: 24px;
  font-size: 12px;
  line-height: 1.4;
  font-weight: 500;
  font-family: var(--font-geist-mono);
  color: var(--text-quiet);
}
.sl-trail-current {
  font-weight: 400;
  color: var(--text-primary);
  opacity: 0.8;
}
.sl-heading > div > .sl-eyebrow {
  font-weight: 400;
}
.sl-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}
.sl-heading > div:first-child {
  flex: 1;
  min-width: 0;
}
.sl-heading h1 {
  font-size: 28px;
  line-height: 1.15;
  font-weight: 600;
  letter-spacing: var(--tracking-title, -0.02em);
}
.sl-heading .sl-eyebrow + h1 {
  margin-top: 8px;
}
.sl-description {
  max-width: 65ch;
  margin-top: 6px !important;
  font-size: 14px;
  line-height: 1.4;
  color: var(--text-quiet);
  text-wrap: pretty;
}
.sl-eyebrow {
  font: 600 10px/1.3 var(--font-geist-mono, 'IBM Plex Mono', monospace);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--text-quiet);
}
/* The ds settings grammar (SettingsPage, SettingsStack, SettingsRow): hub, general and fees. */
.sl-page.sl-ds {
  max-width: 1024px;
  margin: 0;
}
.sl-ds .sl-trail {
  gap: 8px;
  padding-bottom: 0;
  border-bottom: 0;
  margin-bottom: 16px;
  font: 400 12.5px/1.5 var(--font-ui);
}
.sl-ds .sl-trail-current {
  opacity: 1;
}
.sl-ds .sl-heading {
  align-items: flex-start;
}
.sl-ds .sl-heading h1 {
  font-size: 22px;
  line-height: 36px;
  letter-spacing: -0.025em;
}
.sl-ds .sl-description {
  max-width: 672px;
  margin-top: 4px !important;
  line-height: 1.5;
}
.sl-ds-body {
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin-top: 32px;
}
.sl-rows {
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: var(--surface-raised);
}
.sl-rows > * + *,
.sl-row + .sl-row {
  border-top: 1px solid var(--line-default);
}
.sl-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px 40px;
  padding: 24px 22px;
}
.sl-row h2 {
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
}
.sl-row > div:first-child > p {
  margin-top: 4px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.sl-row-controls {
  max-width: 672px;
  min-width: 0;
}
.sl-row-action {
  display: flex;
  margin-top: 12px;
}
/* Fees: the two channel lists (gap-6), each an h3 over one 41.5px KeyValueList row (mt-1). */
.sl-fee-schedules {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.sl-fee-schedules h3 {
  font-size: 13px;
  line-height: 1.5;
  font-weight: 500;
}
.sl-fee-tier {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 41.5px;
  margin-top: 4px;
}
/* The ds field kinds on branding: a 120px dropzone, swatch and hex input, a slider row. */
.sl-ds .sl-upload {
  border-radius: 12px;
}
/* 42px: the 36px native range, its 2px default margins and the inline box's descent. */
.sl-range {
  display: flex;
  align-items: center;
  gap: 12px;
  height: 42px;
}
.sl-range > :first-child {
  flex: 1;
  margin-inline: 8px;
  border-radius: 999px;
}
.sl-switch-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sl-switch {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  line-height: 1.5;
}
.sl-switch > .lp-ghost {
  flex-shrink: 0;
  border-radius: 999px;
}
.sl-switch-field > p {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.sl-preferences > li {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 0;
}
.sl-preferences > li:first-child {
  padding-top: 0;
}
.sl-preferences > li:last-child {
  padding-bottom: 0;
}
.sl-preferences > li + li {
  border-top: 1px solid var(--line-default);
}
.sl-preferences strong {
  display: block;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
}
.sl-preferences p {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.sl-preference-set {
  height: 32px;
  padding-inline: 10px;
  font-size: 13px;
  font-weight: 500;
}
.sl-embed {
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.sl-loading .sl-keys {
  margin: -12px 0;
}
.sl-row-save {
  display: flex;
  align-items: center;
  padding: 0 22px 24px;
}
.sl-row-save .lp-control {
  height: 36px;
  padding-inline: 14px;
  border: 0;
  font-weight: 500;
}
.sl-ds .sl-label {
  font-size: 13.5px;
  line-height: 1;
}
.sl-ds .sl-help {
  font-size: 12.5px;
  line-height: 1.5;
}
.sl-ds .sl-control {
  border-radius: 8px;
}
.sl-subdomain-control {
  width: 100%;
  max-width: 448px;
}
.sl-org-identity {
  display: flex;
  align-items: center;
  gap: 12px;
}
.sl-org-identity > div {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
/* Under .sl-loading, whose list reset would otherwise win over the pull-out margin. */
.sl-loading .sl-tiles {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  margin: -12px;
}
.sl-tiles li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px;
}
.sl-tiles li > .lp-ghost {
  flex-shrink: 0;
  border-radius: 8px;
}
.sl-tiles li > div {
  min-width: 0;
  padding-top: 1px;
}
.sl-tiles strong {
  display: block;
  font-size: 14px;
  line-height: 1.5;
}
.sl-tiles p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin-top: 2px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.sl-section {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px 40px;
  border-top: 1px solid var(--line-default);
  padding: 32px 0;
}
.sl-section h2 {
  font-size: 14px;
  line-height: 1.4;
  font-weight: 600;
}
.sl-section > div:first-child > p {
  margin-top: 6px;
  color: var(--text-quiet);
}
.sl-section-controls {
  max-width: 672px;
  min-width: 0;
}
.sl-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.sl-label {
  font-size: 12px;
  line-height: 1.4;
  font-weight: 500;
}
.sl-help {
  font-size: 11px;
  line-height: 1.4;
  color: var(--text-quiet);
}
.sl-control {
  border-radius: 3.375px;
}
.sl-stack {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.sl-gap16 {
  gap: 16px;
}
.sl-gap24 {
  gap: 24px;
}
.sl-address-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
}
.sl-color {
  display: flex;
  align-items: center;
  gap: 8px;
}
.sl-color > :first-child {
  flex-shrink: 0;
}
.sl-save {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 24px 0;
}
.sl-radio-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sl-radio {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--line-default);
  border-radius: 12px;
}
.sl-radio > .lp-ghost {
  flex-shrink: 0;
  margin-top: 1px;
  border-radius: 50%;
}
.sl-radio strong {
  display: block;
  font-size: 13.5px;
  line-height: 1.5;
}
.sl-radio p {
  margin-top: 2px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.sl-frame {
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: var(--surface-raised);
  overflow: hidden;
}
.sl-card {
  padding: 20px;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: var(--surface-raised);
}
.sl-toolbar {
  padding: 12px 16px;
  border-bottom: 1px solid var(--line-default);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.sl-toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.sl-grow {
  flex: 1;
  min-width: 0;
}
.sl-key-row {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line-default);
}
.sl-key-row:last-child {
  border-bottom: 0;
}
.sl-key-dates {
  display: none;
}
.sl-save-button {
  height: 36px;
  padding-inline: 16px;
  border: 0;
  font-size: 14px;
  font-weight: 500;
  border-radius: 3.375px;
}
.sl-header-reference {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
}
.sl-create-key {
  height: 32px;
  padding-inline: 10px;
  gap: 8px;
  border: 0;
  font-size: 13px;
  font-weight: 500;
}
.sl-account,
.sl-team {
  padding: 28px clamp(20px, 4vw, 40px) 80px;
  font-size: 14px;
  line-height: 1.5;
}
.sl-account {
  max-width: 760px;
  color: var(--text-primary);
}
.sl-account h1 {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
}
.sl-account .sl-account-identity {
  margin-top: 6px;
  font-size: 14px;
  line-height: 1.5;
}
.sl-account-section {
  margin-top: 36px;
}
.sl-account h2 {
  width: fit-content;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
}
.sl-account-section p {
  margin-top: 6px;
  font-size: 13.5px;
  color: var(--text-quiet);
}
.sl-account-theme {
  margin-top: 12px;
}
.sl-consent {
  margin-top: 12px;
  border: 1px solid var(--line-default);
  border-radius: 12px;
}
.sl-consent-row {
  padding: 12px 16px;
}
.sl-team {
  max-width: 1180px;
  padding-bottom: 96px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.sl-team > [aria-hidden='true'] {
  display: contents;
}
.sl-team h1 {
  font-size: 26px;
  font-weight: 600;
  line-height: 1.2;
}
.sl-team h1 {
  letter-spacing: -0.02em;
}
.sl-team-row,
.sl-team-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line-subtle);
}
.sl-team-head {
  gap: 16px;
  padding: 10px 16px;
  font-size: 12px;
  font-weight: 500;
  /* The loaded head is --wb-surface-1 (#0a0b0d dark): --surface-canvas (#0f1012) is nearest. */
  background: var(--surface-canvas);
}
.sl-team-head .sl-team-member {
  padding-left: 46px;
}
.sl-team-member {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1 1 260px;
  min-width: 220px;
}
.sl-team-cells {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-left: auto;
}
.sl-team-cells > * {
  flex-shrink: 0;
}
.sl-team-row:last-child {
  border-bottom: 0;
}
.sl-team-lock {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 40px 24px;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  text-align: center;
}
.sl-team-lock h2 {
  font-size: 15px;
  font-weight: 600;
}
.sl-team-lock p {
  font-size: 13.5px;
  color: var(--text-quiet);
  max-width: 48ch;
  text-wrap: pretty;
}
.sl-workbench-trail {
  display: flex;
  align-items: center;
  gap: 1ch;
  font: 400 12.5px/1.5 var(--font-geist-mono, 'IBM Plex Mono', monospace);
}
.sl-boot-slot {
  display: none;
}
/* The venue page (settings-venue.tsx) in SettingsPage: the `.sl-page.sl-ds` frame, trail and
   heading. The PageHeader title row is 36px (the name and the seating tag, 12px apart); the meta
   line (address, timezone) is one 13px line 6px under it. */
.vl-heading-name,
.vl-heading-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.vl-heading-name {
  min-height: var(--control-md);
  gap: 6px 12px;
}
.vl-heading-meta {
  min-height: 19.5px;
  margin-top: 6px;
  gap: 2px 18px;
}
.vl-list-row {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 6px 16px;
  align-items: center;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line-subtle);
}
/* The thumbnail (`rounded-card`). */
.vl-list-row > .lp-ghost:first-child {
  border-radius: 12px;
}
/* The venues list (settings-venues.tsx) in SettingsPage: the `.sl-page.sl-ds` frame, trail and
   heading, then the ds SegmentedControl 12px over the list's card. */
.vl-list-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.vl-list-body > .vl-filter {
  align-self: flex-start;
}
.vl-filter > span {
  height: 26px;
  /* The ds segment's 1px border on each side, transparent until chosen. */
  border: 1px solid transparent;
}
.vl-list-meta {
  grid-column: 2;
}
.vl-list-caret {
  display: none;
}
.vl-event-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 16px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line-subtle);
}
.vl-event-row > .sl-grow {
  flex-basis: 220px;
}
/* The ds underline Tabs strip: 40px tabs on a hairline, 4px apart, 24px over the panel. */
.vl-tabs {
  display: flex;
  align-items: center;
  white-space: nowrap;
}
.vl-panel {
  padding-top: 24px;
}
/* The ds FormField grammar: a 13.5px label, the control 6px under it, then the 12.5px hint. */
.vl-details {
  display: flex;
  flex-direction: column;
  max-width: 640px;
  gap: 22px;
}
/* ds Label: a flex row, so "Optional" sits 8px after the name. */
.vl-details .sl-label,
.vl-details legend {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1;
}
.vl-optional {
  font-size: 12.5px;
  font-weight: 400;
  line-height: 1;
  color: var(--text-quiet);
}
.vl-details .sl-help,
.vl-coordinates p {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.vl-coordinates legend {
  margin-bottom: 6px;
}
.vl-coordinates p {
  margin-top: 6px;
}
.vl-coordinates > div {
  display: grid;
  gap: 12px;
}
.vl-details-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  border-top: 1px solid var(--line-default);
  margin-top: 2px;
  padding-top: 16px;
}
/* The lead's second line: the copy wraps once the column is under about 650px. */
.vl-maps-lead-wrap {
  display: none;
}
@media (max-width: 689px) {
  .vl-maps-lead-wrap {
    display: block;
  }
}
/* 16px under the lead's 20px line, whose 14px ghost sits 3px down it. */
.vl-map-grid {
  margin-top: 19px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
  gap: 14px;
}
.vl-map {
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  background: var(--surface-raised);
  overflow: hidden;
}
.vl-map > div {
  /* A column, as the loaded card's body: the ghosts' margins add up rather than collapse. */
  display: flex;
  flex-direction: column;
  padding: 14px 16px 16px;
}
/* The loaded name row is 24px high (status pill) with the title centred in it. */
.vl-map > div > .lp-ghost:first-child {
  margin-block: 3px;
}
.vl-chips {
  display: flex;
  gap: 6px;
  margin-top: 10px;
}
.vl-map-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 18px;
}
/* Edit map, then the 32px ⋯ button. */
.vl-map-actions {
  display: flex;
  gap: 8px;
}
.vl-wizard {
  font-size: 14px;
  line-height: 1.5;
}
.vl-progress {
  display: flex;
  max-width: 1120px;
  align-items: center;
  gap: 20px;
  padding: 16px clamp(20px, 5vw, 56px) 14px;
}
.vl-progress > span:first-child {
  flex-shrink: 0;
  font-size: 13.5px;
  font-weight: 500;
}
.vl-progress > .lp-ghost:first-of-type {
  flex: 1;
}
.vl-progress > .lp-ghost:last-child {
  flex-shrink: 0;
}
.vl-flow {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  max-width: 1120px;
  gap: clamp(32px, 5vw, 72px);
  padding: clamp(28px, 7vh, 72px) clamp(20px, 5vw, 56px) 64px;
}
.vl-flow-main {
  flex: 1 1 440px;
  max-width: 560px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
/* The payouts flows (FocusedFlow `wide`) carry Stripe's embedded components across the page. */
.vl-wizard-wide :is(.vl-progress, .vl-flow, .vl-flow-main) {
  max-width: none;
}
.vl-step {
  display: block;
  font-size: 13px;
  margin-bottom: 12px;
  font-family: var(--font-geist-mono, 'IBM Plex Mono', monospace);
}
.vl-flow h1 {
  font-size: 30px;
  line-height: 1.15;
  font-weight: 600;
  letter-spacing: -0.02em;
}
.vl-flow-main > div:first-child > p {
  margin-top: 12px;
  font-size: 15px;
  line-height: 1.55;
}
.vl-flow-fields {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.vl-flow-fields .sl-label {
  font-size: 13.5px;
}
.vl-flow-fields .sl-help {
  font-size: 12.5px;
  line-height: 1.5;
}
.vl-flow-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 4px;
  font-size: 12.5px;
}
.vl-preview {
  flex: 0 1 340px;
  min-width: 260px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.vl-preview > span {
  font-size: 12px;
  line-height: 1.4;
  font-weight: 600;
}
/* The venue wizard's own trail (ds PageTrail) above the flow's strip, on the flow's gutter. */
.sl-trail.vl-wizard-trail {
  gap: 8px;
  padding: 16px clamp(20px, 5vw, 56px) 8px;
  border-bottom: 0;
  margin-bottom: 0;
  font: 400 12.5px/1.5 var(--font-ui);
  color: var(--text-secondary);
}
.vl-wizard-trail > .sl-trail-current {
  opacity: 1;
}
.vl-preview .sl-frame > div {
  padding: 14px 16px;
}
.vl-preview h2 {
  font-size: 15px;
  font-weight: 600;
}
.vl-preview p {
  margin-top: 3px;
  font-size: 13px;
}
.vl-preview p:last-child {
  margin-top: 10px;
}
.vl-designer {
  display: flex;
  flex-direction: column;
  font-size: 14px;
  line-height: 1.5;
}
.vl-designer-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  padding: 10px 20px;
  border-bottom: 1px solid var(--line-default);
}
.vl-designer-toolbar > .lp-ghost {
  flex-shrink: 0;
}
.vl-divider {
  height: 20px;
  width: 1px;
  background: var(--line-default);
}
.vl-designer-actions {
  display: flex;
  margin-left: auto;
  gap: 8px;
}
/* Preview as buyer: a ds md Button (36px, 500 weight). */
.lp-control.vl-designer-preview {
  height: var(--control-md);
  font-weight: 500;
}
.vl-designer-wide {
  display: none;
}
.vl-designer-canvas {
  position: relative;
  height: 70vh;
  min-width: 0;
}
.vl-canvas-loading {
  height: 100%;
  position: absolute;
  inset: 0;
}
.vl-designer-panel {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.vl-checks-loading {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}
.vl-designer-narrow > section {
  padding: 20px 20px 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
/* The summary is a ds Card: 18px padding, the card radius. */
.vl-summary-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  background: var(--surface-raised);
}
.vl-summary-card > .lp-ghost:first-child {
  flex-shrink: 0;
}
.atl-table table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}
/* The ds Table, in a list's Card or in a page's in-place pending state: a 40px head in 12px/500
   sentence case on 16px insets, 11px-padded cells. */
.atl-table th {
  white-space: nowrap;
  height: 40px;
  padding: 0 16px;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  text-transform: none;
  letter-spacing: 0;
  text-align: left;
  color: var(--text-secondary);
}
.atl-table td {
  padding: 11px 16px;
}
.atl-table :is(th, td) {
  border-bottom: 1px solid var(--line-default);
}
/* The scanners' Claim code column keeps an 8px inset for its code and two 28px controls. */
.atl-table [data-tight='true'] {
  padding-left: 8px;
  padding-right: 8px;
}
.atl-table .atl-identity > .lp-ghost {
  border-radius: 8px;
}
.atl-table [data-align='right'] {
  text-align: right;
}
.atl-table [data-align='right'] > .lp-ghost {
  margin-left: auto;
}
.atl-table [data-align='center'] {
  text-align: center;
}
.atl-table [data-align='center'] > .lp-ghost {
  margin-inline: auto;
}
.atl-table [data-hide-below] {
  display: none;
}
.atl-table tbody tr:last-child td {
  border-bottom: 0;
}
.atl-scroll {
  width: 100%;
  overflow-x: auto;
}
/* The hardware tables' container column hiding (scanners, readers): the table's own width
   decides, as the `@container` Card's `hidden @lg:table-cell` do (lg 32rem, 2xl 42rem, 3xl
   48rem). */
.atl-scroll:has([data-hide-under]) {
  container-type: inline-size;
}
@container (width < 32rem) {
  .atl-table [data-hide-under='lg'] {
    display: none;
  }
}
@container (width < 42rem) {
  .atl-table [data-hide-under='2xl'] {
    display: none;
  }
}
@container (width < 48rem) {
  .atl-table [data-hide-under='3xl'] {
    display: none;
  }
}
.atl-identity {
  display: flex;
  align-items: center;
  gap: 12px;
}
.atl-identity > .lp-ghost {
  flex-shrink: 0;
  /* The loaded tile keeps its 32px even when a fixed-width table squeezes the column. */
  max-width: none;
}
/* Super admin list headings are not workbench pages: the action is a default 14px button. */
:is([data-loading-body='admin-orgs'], [data-loading-body='admin-users'])
  .sl-heading-actions
  > .sl-action {
  font-size: 14px;
}
/* Known-label buttons in the super admin skeletons: default 36px buttons with a 14px label. */
.lp-control.lp-ghost.atl-button {
  display: inline-flex;
  width: auto;
  max-width: none;
  height: 36px;
  padding: 0 16px;
  border: 0;
  border-radius: var(--radius-control);
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
}
.lp-control.lp-ghost.atl-button-outline {
  border: 1px solid transparent;
}
/* The revenue list's export: a small secondary ds Button, its 16px glyph 8px before the label. */
.lp-control.lp-ghost.atl-export {
  display: inline-flex;
  gap: 8px;
  width: auto;
  max-width: none;
  height: 32px;
  padding: 0 10px;
  border-radius: var(--radius-control);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
}
/* A list page on the ds grammar (organizations, revenue, super admins): 32px under the header,
   its parts 32px apart. A list's section: the 15px/1.4 SectionHeader title with its control at the
   right (the 256px small search, or the export; wrapping under it when narrow), 12px above the
   table's card. The ds Table: 40px 12px/500 sentence-case heads, 11px-padded cells, 16px insets.
   The header's action is a small (32px) primary Button. */
.atl-ds-body {
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin-top: 32px;
}
.atl-list-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.atl-list-head {
  display: flex;
  flex-wrap: wrap;
  /* The loaded title sits on the search's text baseline, which the ghost below stands in for. */
  align-items: baseline;
  justify-content: space-between;
  gap: 10px 16px;
}
.sl-loading .atl-list-head h2 {
  font-size: 15px;
  line-height: 1.4;
  font-weight: 600;
}
.atl-list-head > .lp-ghost,
.atl-list-aside > .lp-ghost {
  display: flex;
  align-items: center;
  max-width: 100%;
  border-radius: 8px;
}
/* The search's first item is its 16px icon, centred in the 32px box; its bottom edge is the
   baseline the loaded title sits on. The export draws its own glyph, so it takes no spacer (the
   spacer and the 8px gap after it made the ghost 8px wider than the Button). */
.atl-list-head > .lp-ghost:not(.atl-export)::before,
.atl-list-aside > .lp-ghost::before {
  content: '';
  height: 16px;
}
/* The batch list's aside: the small search, then its two filter menus 8px apart; 14px between
   the two, wrapping under the title when narrow. Its baseline is the search's. */
.atl-list-aside {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  max-width: 100%;
}
/* The ds aside's filter group starts at the aside's left edge when it wraps under the search; the
   shared toolbar's `margin-left: auto` from 640px would push it right. */
.atl-list-aside > .sl-toolbar-actions {
  margin-left: 0;
}
.atl-list-card {
  overflow: hidden;
}
:is(
    [data-loading-body='admin-orgs'],
    [data-loading-body='admin-users'],
    [data-loading-body='admin-ai'],
    [data-loading-body='admin-scanners'],
    [data-loading-body='admin-readers'],
    [data-loading-body='admin-batches']
  )
  .sl-heading-actions
  > .sl-action {
  height: 32px;
  padding: 0 10px;
  border-radius: 8px;
  font-size: 13px;
}
/* The AI models page's Sync now: a small secondary Button, room for its 16px glyph and gap. It
   follows the rule above, which sets the same specificity's padding. */
[data-loading-body='admin-ai'] .sl-heading-actions > .sl-action {
  padding-left: 34px;
  /* The Button's 1px edge (border-box): 2px of its width. */
  border: 1px solid transparent;
}
/* The ds PageHeader's title block grows from its content width (basis auto), so the actions wrap
   under the description whenever both do not fit on one row (1024 here; 640 on organizations).
   The actions keep their own width at every size (the shared heading stretches them to a full
   row below 640px, which the ds PageHeader does not). */
:is(
    [data-loading-body='admin-orgs'],
    [data-loading-body='admin-ai'],
    [data-loading-body='admin-users'],
    [data-loading-body='admin-scanners'],
    [data-loading-body='admin-readers'],
    [data-loading-body='admin-batches'],
    [data-loading-body='admin-presets'],
    [data-loading-body='import-new']
  )
  .sl-heading
  > div:first-child {
  flex: 1 1 auto;
}
:is(
    [data-loading-body='admin-orgs'],
    [data-loading-body='admin-ai'],
    [data-loading-body='admin-users'],
    [data-loading-body='admin-scanners'],
    [data-loading-body='admin-readers'],
    [data-loading-body='admin-batches'],
    [data-loading-body='admin-presets'],
    [data-loading-body='import-new']
  )
  .sl-heading
  > .sl-heading-actions {
  width: auto;
}
/* The AI models page (admin-ai.tsx): the open tab 24px under the strip, its sections 32px apart.
   The strip's current tab carries the 2px ink rule. A boxed section's body is a ds Card (20px
   inset, 13.5px/1.5 secondary copy); its rows are hairline-divided. Toolbar controls are 32px. */
.atl-org-tabs > span[data-selected] {
  height: 100%;
  display: inline-flex;
  align-items: center;
  border-bottom: 2px solid var(--surface-skeleton);
  color: var(--text-primary);
}
.atl-ai-body {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 32px;
  margin-top: 24px;
}
/* In the loaded page the tab's own content sits where the tab strip leaves it. */
.atl-ai-inplace .atl-ai-body {
  margin-top: 0;
}
.atl-ai-aside {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}
.atl-ai-aside > .lp-ghost {
  max-width: 100%;
  border-radius: var(--radius-control);
}
/* Task routes' catalog summary opens with a 14px provider logo centred in its 19.5px line; the ds
   SectionHeader puts the title on that logo's bottom edge (the summary's synthesized baseline).
   Each ghost centres a 14px strut the same way, so the head's baseline alignment holds cold. */
.atl-ai-aside > .lp-ghost.atl-ai-summary {
  display: flex;
  align-items: center;
}
.atl-ai-aside > .lp-ghost.atl-ai-summary::before {
  content: '';
  height: 14px;
}
/* The Models header's aside opens with the ds Switch, whose baseline is its 18px thumb's bottom
   edge (2px inset in the 22px track); the title sits on it. The track ghost centres an 18px strut
   the same way. */
.atl-ai-aside .lp-ghost.atl-ai-switch-track {
  display: flex;
  align-items: center;
}
.atl-ai-aside .lp-ghost.atl-ai-switch-track::before {
  content: '';
  height: 18px;
}
.atl-ai-segments {
  background: var(--surface-sunken);
}
/* The ds SegmentedControl items carry a 1px edge (border-box), so each is 2px wider than its
   padding and label. */
.atl-ai-segments > span {
  height: 22px;
  padding-inline: 10px;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  font-size: 12.5px;
}
.atl-ai-records {
  align-self: flex-start;
}
.atl-ai-records > span {
  height: 26px;
  padding-inline: 12px;
  font-size: 13px;
}
.atl-ai-card {
  /* A ds Card at padding md (p-4.5). */
  padding: 18px;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  background: var(--surface-raised);
}
.sl-loading .atl-ai-card > p {
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.atl-ai-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 4px 16px;
  margin-top: 16px;
}
.atl-ai-switch-card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
}
.atl-ai-switch-card > p {
  flex: 1 1 20rem;
  min-width: 0;
}
/* The ds Switch's label sits 8px after its track. */
.atl-ai-switch-card > .atl-switch {
  gap: 8px;
}
/* The Skill gaps header lines its title up with the search's text baseline, as the orgs list
   does: a 16px box centred in the 32px ghost gives the aside that baseline. */
.atl-ai-aside > .lp-ghost.atl-ai-search {
  display: flex;
  align-items: center;
}
.atl-ai-aside > .lp-ghost.atl-ai-search::before {
  content: '';
  height: 16px;
}
.atl-ai-rows {
  margin-top: 8px;
}
.atl-ai-rows > li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line-default);
}
.atl-ai-rows > li:last-child {
  border-bottom: 0;
}
.atl-ai-models {
  margin-top: 4px;
}
.atl-ai-models > li {
  align-items: flex-start;
  padding: 12px 0;
}
.atl-ai-task {
  flex-shrink: 0;
}
/* Task routes (admin-ai.tsx): the list is an `@container`; below `@md` (28rem) each row's task
   sits 2px over its model summary, Change beside both, and from it they share one line 16px
   apart. */
.atl-ai-route-rows {
  container-type: inline-size;
}
.atl-ai-route-rows > li {
  flex-wrap: nowrap;
}
.atl-ai-route {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
/* In the column the summary keeps its own 21px height; the row's flex basis would zero it. */
.atl-ai-route > .atl-ai-grow {
  flex: none;
}
@container (min-width: 28rem) {
  .atl-ai-route {
    flex-direction: row;
    align-items: center;
    gap: 16px;
  }
  .atl-ai-route > .atl-ai-grow {
    flex: 1 1 0;
  }
}
.atl-ai-grow {
  flex: 1 1 0;
  min-width: 0;
}
.atl-ai-models .atl-ai-grow {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.lp-control.lp-ghost.atl-ai-button {
  display: inline-flex;
  width: auto;
  max-width: none;
  height: 32px;
  padding: 0 10px;
  border-radius: var(--radius-control);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
}
/* A StatCardGrid: two to a row until its container is 42rem wide, then all of them (three for
   revenue, four for AI usage), 12px apart. LoadingStatus holds the tiles in its inner div. */
.atl-stats {
  container-type: inline-size;
}
/* The doubled class outranks `.sl-loading > [aria-hidden='true']`, which flattens LoadingStatus's
   wrapper with display: contents; here that wrapper is the grid. */
.atl-stats.atl-stats > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
@container (width >= 42rem) {
  .atl-stats.atl-stats > div {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .atl-ai-stats.atl-ai-stats > div {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.atl-section-shell {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
/* The ds SectionNav (hardware, imports): a scrolling row of 37px links 6px apart, a 208px column
   with 2px between rows from lg. A link: 8px 11px, an 18px glyph 8px before its 14px/1.5 label. */
.atl-subnav {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  display: flex;
  gap: 6px;
  overflow-x: auto;
}
.atl-subnav > div {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 11px;
  border-radius: var(--radius-control);
  white-space: nowrap;
  color: var(--text-secondary);
}
/* The current section, as `aria-current="page"` draws it. */
.atl-subnav > div[data-active] {
  background: var(--action-selected-bg);
  color: var(--action-selected-fg);
}
.atl-subnav .lp-ghost {
  flex-shrink: 0;
}
.atl-detail-name {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
.atl-detail-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  margin-top: 10px;
}
/* The workbench underline tabs: 40px tall, 14px labels on 14px side padding, 4px apart. */
.atl-org-tabs {
  display: flex;
  align-items: center;
  height: 40px;
  gap: 4px;
  margin-top: 32px;
  font-size: 14px;
  line-height: 1.5;
  border-bottom: 1px solid var(--line-default);
}
.atl-org-tabs > span {
  padding: 0 14px;
}
/* The General and Advanced tabs' TabsContent is `max-w-5xl` (64rem). */
.atl-org-rows {
  max-width: 1024px;
  margin-top: 24px;
}
/* The Danger zone row's two parts: each a 13px/1.5 paragraph over its button 8px below. */
.atl-org-rows .sl-row-controls p {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.atl-org-rows .sl-stack > div > .lp-control {
  margin-top: 8px;
}
.atl-pair {
  display: grid;
  gap: 16px;
}
/* The archive form spaces label, input and button 12px apart. */
.atl-org-rows [data-loading-field='Order IDs, separated by spaces or commas'] {
  width: 100%;
}
.atl-danger {
  padding-top: 24px;
  border-top: 1px solid var(--status-danger-line);
}
.atl-switch {
  display: flex;
  gap: 12px;
  align-items: center;
  font-size: 14px;
  line-height: 1.5;
}
/* The AI row: two switches with their labels 8px after the track, each over its readout, then the
   spend cap and step limits lines (a 13.5px label, the summary, a small secondary button), 16px
   apart; the task routes are three 16px lines 8px apart. */
.atl-ai {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.atl-ai .atl-switch {
  gap: 8px;
}
.atl-ai-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 16px;
  font-size: 13.5px;
  line-height: 1.5;
}
.atl-ai-routes {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.atl-switch .lp-ghost {
  flex-shrink: 0;
}
/* The organization's ds PageHeader: the 12.5px/1.5 trail on its own line 16px above the title
   row; the 56px square tile (control radius) 14px before the title block; the 22px/1.2 title and
   its 24px pill 12px apart on a 36px row; the 13px/1.5 meta 6px under it, 8px between parts. */
.atl-org-header {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.atl-org-trail {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 8px;
  font: 400 12.5px/1.5 var(--font-ui);
  color: var(--text-secondary);
}
.atl-org-identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 14px;
}
.atl-org-identity > .lp-ghost {
  flex-shrink: 0;
  border-radius: 8px;
}
.atl-org-header .atl-detail-name {
  min-height: 36px;
  gap: 6px 12px;
}
.atl-org-header .atl-detail-name > .lp-ghost:last-child {
  border-radius: 999px;
}
.atl-org-header .atl-detail-meta {
  /* A wrapping row at every width (the import header's meta stacks below 640px). */
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 6px;
  gap: 2px 8px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-faint);
}
/* The page's controls are ds ones: 36px buttons with a 13.5px/500 label on 14px sides, 32px
   small ones with 13px on 10px sides, 36×22 switch tracks. */
[data-loading-body='admin-org-detail'] .lp-control.lp-ghost.atl-button {
  height: 36px;
  padding: 0 14px;
  border-radius: 8px;
  font-size: 13.5px;
  line-height: 1.5;
}
[data-loading-body='admin-org-detail'] .lp-control.lp-ghost.atl-button.atl-button-sm {
  height: 32px;
  padding: 0 10px;
  font-size: 13px;
}
[data-loading-body='admin-org-detail'] .atl-switch > .lp-ghost:first-child {
  border-radius: 999px;
}
/* The Fees tab (fee design handoff): 24px under the tabs, two sections at most 980px wide, each a
   wrapping row of a 200–260px title column and a 400px-plus controls column, a hairline between
   them with 32px below it. */
.atl-fee-tab {
  display: flex;
  flex-direction: column;
  max-width: 980px;
  margin-top: 24px;
}
.sl-section.atl-fee-section {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 40px;
  border-top: 0;
  padding: 0 0 32px;
}
.atl-fee-section > div:first-child {
  display: flex;
  flex: 1 1 200px;
  flex-direction: column;
  gap: 6px;
  max-width: 260px;
}
.atl-fee-section h2 {
  font-size: 15px;
  line-height: 1.4;
  font-weight: 600;
}
.atl-fee-section > div:first-child > p {
  margin-top: 0;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--text-secondary);
  /* The loaded paragraph is text-pretty, so its lines break at the same words. */
  text-wrap: pretty;
}
.atl-fee-controls {
  display: flex;
  flex: 2 1 400px;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
.atl-fee-rule {
  height: 1px;
  margin-bottom: 32px;
  background: var(--line-default);
}
/* One tier card: the 12.5px/500 column header, 36px tier fields on a 170px | 1fr | 32px grid
   (1fr | 1fr | 32px below 640px); the fee cell wraps its type select under its amount whenever
   the column is narrower than both (two 36px lines 8px apart), Add price tier (a small ghost
   Button), and the "We collect" footer strip, whose label takes its own line below 640px. */
.atl-fee-card {
  overflow: hidden;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: var(--surface-raised);
}
.atl-fee-head,
.atl-fee-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 32px;
  gap: 10px;
  align-items: start;
}
.atl-fee-head {
  padding: 10px 16px 4px;
  font-size: 12.5px;
  line-height: 1.5;
  font-weight: 500;
  color: var(--text-quiet);
}
.atl-fee-row {
  padding: 6px 16px;
}
.atl-fee-row > .lp-ghost {
  border-radius: 8px;
}
/* The editor's fee cell: a `min-w-20 flex-1` amount and a 110px type select, `flex-wrap gap-2`. */
.atl-fee-fee {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}
.atl-fee-fee > .lp-ghost:first-child {
  flex: 1 1 0%;
  min-width: 80px;
}
.atl-fee-fee > .lp-ghost:last-child {
  flex: none;
}
.atl-fee-add {
  padding: 4px 16px 10px;
}
.lp-control.lp-ghost.atl-fee-add-button {
  display: inline-flex;
  gap: 6px;
  width: auto;
  max-width: none;
  height: 32px;
  margin-left: -10px;
  padding: 0 10px;
  border: 0;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
}
.atl-fee-foot {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: center;
  padding: 10px 16px;
  border-top: 1px solid var(--line-default);
  background: var(--surface-sunken);
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.atl-fee-foot > span:first-child {
  grid-column: 1 / -1;
}
.atl-fee-foot > .lp-ghost {
  justify-self: end;
}
@media (min-width: 640px) {
  .atl-fee-head,
  .atl-fee-row {
    grid-template-columns: 170px minmax(0, 1fr) 32px;
  }
  .atl-fee-foot {
    grid-template-columns: auto repeat(3, minmax(0, 1fr));
  }
  .atl-fee-foot > span:first-child {
    grid-column: auto;
  }
}
/* The "Same as online" box: the switch and its 14px label 8px after it, the 13px/1.5 sub-line
   4px under it in line with the label, on a sunken card; the cash footnote under the box. */
.atl-fee-switch {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: var(--surface-sunken);
}
.atl-fee-switch > .atl-switch {
  gap: 8px;
}
.atl-fee-switch .atl-switch > .lp-ghost {
  border-radius: 999px;
}
.atl-fee-switch > .lp-ghost {
  margin-left: 44px;
}
/* Ghosts on the sunken strips would vanish into them; they take the hairline colour instead. */
.atl-fee-foot > .lp-ghost,
.atl-fee-switch .lp-ghost {
  background: var(--line-default);
}
.atl-fee-note {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.atl-import-body {
  margin-top: 32px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
/* The batch header: the trail row, the identity block, and the 32px "More actions" at the right,
   top-aligned with the title block. */
.atl-import-header {
  align-items: flex-start;
  justify-content: space-between;
}
.atl-import-header .atl-org-identity > .lp-ghost {
  border-radius: var(--radius-control);
}
.atl-import-more {
  flex-shrink: 0;
  border-radius: var(--radius-control);
}
/* The step rail (step-rail.tsx) inside its lg Card: stacked 16px apart below 640px, one row from
   640px. A 32px chip 12px before the 13px/500 label over its 12px caption. */
.atl-steps {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.atl-steps li {
  display: flex;
  flex: 1;
  min-width: 0;
  align-items: center;
  gap: 12px;
}
.atl-steps li > .lp-ghost {
  flex-shrink: 0;
  border-radius: var(--radius-control);
}
.sl-loading .atl-steps strong {
  display: block;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 500;
}
/* The Files card's ds Dropzone: 120px tall, a dashed line-dashed edge on the sunken surface, the
   24px icon over the 14px/500 label and the 12.5px hint, 6px apart; 16px under it inside the card. */
.atl-upload {
  --atl-upload-hint-height: 18.75px;
  min-height: 120px;
  margin-bottom: 16px;
  padding: 20px 16px;
  border: 1px dashed var(--line-dashed);
  border-radius: var(--radius-card);
  background: var(--surface-sunken);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.atl-upload > .lp-ghost {
  max-width: 100%;
}
@media (max-width: 639.98px) {
  .atl-upload {
    --atl-upload-hint-height: 37.5px;
  }
}
/* The form's footer buttons are default ds Buttons: 36px, 14px sides, a 13.5px/500 label. */
[data-loading-body='import-new'] .lp-ghost.atl-button {
  padding: 0 14px;
  border-radius: var(--radius-control);
  font-size: 13.5px;
}
/* The small ghost "All imports" link under the body: 32px, its 16px arrow 8px before the label. */
.lp-ghost.atl-back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: auto;
  height: 32px;
  padding: 0 10px;
  border-radius: var(--radius-control);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
}
.lp-ghost.atl-back-link::before {
  content: '';
  width: 16px;
  height: 16px;
}
.atl-back-link > span {
  visibility: hidden;
}
.atl-new-import {
  max-width: 768px;
  margin-top: 32px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.atl-new-import > .sl-toolbar-actions {
  justify-content: flex-end;
  margin-left: 0;
}
/* A ds Card at padding="lg": 22px at the sides, 20px top and bottom. */
.sl-card.atl-card-lg {
  padding: 20px 22px;
}
/* "Currency is USD for every import." in the SectionHeader's aside: 13px/1.5 secondary. */
.sl-loading .atl-entities-note {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
/* A record type: the ds Switch with its 14px label 8px after it, the 12.5px/1.5 description under
   the label (indented past the 36px track and its gap). Rows are hairline-divided, 12px tall. */
.atl-entities > div {
  padding: 12px 0;
  border-top: 1px solid var(--line-default);
}
.atl-entities > div:first-child {
  padding-top: 0;
  border-top: 0;
}
.atl-entities > div:last-child {
  padding-bottom: 0;
}
.atl-entities > div > div {
  display: flex;
  align-items: center;
  gap: 8px;
}
.atl-entities > div > div > .lp-ghost {
  flex-shrink: 0;
  border-radius: 999px;
}
.sl-loading .atl-entities strong {
  font-size: 14px;
  line-height: 1.5;
  font-weight: 400;
}
.sl-loading .atl-entities p {
  max-width: 65ch;
  margin-top: 2px;
  padding-left: 44px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-secondary);
}
/* The header's "All imports": a small ghost Button, its 16px arrow 8px before the label. */
[data-loading-body='import-new'] .sl-action {
  gap: 8px;
  height: 32px;
  padding: 0 10px;
  border-radius: var(--radius-control);
  font-size: 13px;
}
[data-loading-body='import-new'] .sl-action::before {
  content: '';
  width: 16px;
  height: 16px;
}
.lp-ghost.atl-button {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  width: auto;
  height: 36px;
  padding: 0 16px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  white-space: nowrap;
}
.atl-button > span {
  visibility: hidden;
}
/* A list filter's trigger, a small secondary ds Button: 1px border, 10px inline padding, the
   13px/500 "Status: Any", then the 16px caret 8px after it. */
.lp-ghost.atl-filter {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  gap: 8px;
  width: auto;
  max-width: none;
  height: 32px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
}
.atl-filter > span {
  visibility: hidden;
  flex-shrink: 0;
}
.atl-filter > span:last-child {
  width: 16px;
  height: 16px;
}
.ol-page,
.ol-check-in,
.ol-station,
.ol-sell {
  font-size: 13px;
  line-height: 1.45;
}
.ol-page {
  max-width: 1152px;
  margin: 0 auto;
  padding: 24px 20px;
}
.ol-check-in {
  max-width: 768px;
  margin: 0 auto;
  padding: 24px 20px;
}
.ol-station {
  max-width: 672px;
  margin: 0 auto;
  padding: 32px 20px;
}
/* The ds Label over a control (the event pickers' "Event", "Time", "Scanning for"). */
.ol-label {
  font: 500 13.5px/1 var(--font-ui);
}
/* The ds SectionHeader title (the rail's "Credentialing" and "Just arrived"): a flex item in the
   header, so its box is the text's width. */
.ol-section-title {
  width: fit-content;
  font: 600 15px/21px var(--font-ui);
}
.ol-selector {
  margin-bottom: 20px;
}
.ol-selector p {
  margin-bottom: 8px;
}
.ol-check-in .ol-selector {
  margin-bottom: 24px;
}
/* The ds Card (rounded-card, 12px). */
.ol-card {
  border: 1px solid var(--line-default);
  background: var(--surface-raised);
  border-radius: 12px;
}
/* The sell catalogue's grid (grid-cols-ticket-tiles, gap-3). */
.ol-catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 12px;
}
/* The ds TicketTile: a 12px-radius tile, 16px inset, its lines 4px apart. */
.ol-ticket {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px;
  border-radius: 12px;
}
.ol-sell {
  display: flex;
  flex-direction: column;
}
.ol-catalog {
  flex: 1;
  min-width: 0;
  padding: 24px 16px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.ol-catalog .ol-selector {
  margin-bottom: 0;
}
/* The Event picker and, on a timed event, the Time select: stacked, then side by side from sm. */
.ol-sell-header {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.ol-cart {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--line-default);
  background: var(--surface-raised);
}
/* The ds SectionHeader title "Current sale". */
.ol-cart h2 {
  padding: 20px 20px 12px;
  font: 600 15px/21px var(--font-ui);
}
.ol-empty-cart {
  flex: 1;
  min-height: 176px;
  margin: 0 16px;
  padding: 64px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 16px;
  text-align: center;
}
/* The empty cart's line, text-13. */
.ol-empty-cart > span:last-child {
  font: 400 13px/19.5px var(--font-ui);
}
/* The price line sits on the tile floor below a 12px rule-free gap, as the loaded pt-3 does; the
   ghost's height is the text-22 line alone. */
.ol-ticket > .ol-ticket-price {
  margin-top: auto;
  padding-top: 12px;
  box-sizing: content-box;
  background-clip: content-box;
}
.ol-cart footer {
  padding: 16px 20px;
  border-top: 1px solid var(--line-default);
}
/* The ds `xl` SearchInput: a 44px box, 14px inset, the 16px glyph 10px before the input; a query
   brings the 28px clear button 6px from the edge. */
.ol-search-hero {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 44px;
  padding-inline: 14px;
  border: 1px solid var(--line-default);
  border-radius: 8px;
}
.ol-search-hero:has(> .ol-search-clear) {
  padding-right: 6px;
}
/* The ds SearchInput's xl glyph is 20px (9b sweep: was 16px). */
.ol-search-hero > span:first-child {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.ol-search-hero > .lp-ghost {
  flex: 1;
  width: auto;
}
.ol-search-hero > .ol-search-clear {
  width: 28px;
  height: 28px;
  flex-shrink: 0;
}
.ol-results {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 20px;
}
.ol-result {
  display: flex;
  align-items: center;
  gap: 16px;
}
/* The result card is a ds secondary Button (rounded-card, px-6 py-5). */
.ol-results .ol-result {
  padding: 20px 24px;
  border-radius: 12px;
}
.ol-result > .lp-ghost {
  flex-shrink: 0;
}
.ol-result-date {
  display: none;
}
.ol-workspace-heading {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
/* The ds PageHeader title (station.tsx): 22/26.4, as wide as its text. */
.ol-station h1 {
  width: fit-content;
  font-size: 22px;
  line-height: 26.4px;
  font-weight: 600;
  letter-spacing: -0.025em;
}
/* The ds PageHeader title: 22/26.4 in its 36px row. */
.ol-workspace-heading h1 {
  display: flex;
  align-items: center;
  min-height: 36px;
  font-size: 22px;
  line-height: 26.4px;
  font-weight: 600;
  letter-spacing: -0.025em;
}
/* The ds Card padding="lg" (px-5.5 py-5). */
.ol-workspace-identity {
  margin-top: 24px;
  padding: 20px 22px;
  border-radius: 12px;
}
.ol-workspace-identity .ol-result {
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 12px;
}
.ol-rule {
  height: 1px;
  background: var(--line-default);
  margin: 20px 0;
}
.ol-contact {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
}
.ol-guests {
  margin-top: 32px;
}
.ol-guest-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.ol-guest-list {
  margin-top: 8px;
  overflow: hidden;
  border-radius: 12px;
}
/* GuestRow: px-4 py-3, top-aligned, the 10px dot 6px down to centre on the 21px name line.
   Below 640 the controls stack under the name (flex-col gap-2.5); from 640 one line (gap-3). */
.ol-guest-list > div {
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  border-bottom: 1px solid var(--line-default);
}
.ol-guest-identity {
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: flex-start;
  gap: 12px;
}
@media (min-width: 640px) {
  .ol-guest-list > div {
    flex-direction: row;
    gap: 12px;
  }
  .ol-guest-identity {
    flex: 1;
  }
}
.ol-guest-list > div > .lp-ghost {
  flex-shrink: 0;
}
.ol-guest-identity > .lp-ghost:first-child {
  flex-shrink: 0;
  margin-top: 6px;
  border-radius: 50%;
}
.ol-notes {
  margin-top: 8px;
  overflow: hidden;
  padding: 0;
  border-radius: 12px;
}
.ol-notes > .lp-ghost {
  margin: 16px;
  width: calc(100% - 32px);
}
.ol-notes > div {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  border-top: 1px solid var(--line-default);
  padding: 12px 16px;
}
/* The ds Textarea's box: min-h-20 (80px) on the control radius. */
.ol-note-input {
  flex: 1;
  min-width: 0;
  height: 80px;
  border: 1px solid var(--line-default);
  border-radius: 8px;
}
.ol-note-add,
.ol-pair-button {
  height: 36px;
  border: 0;
  padding-inline: 16px;
  font-size: 14px;
  font-weight: 500;
  border-radius: 3.375px;
}
/* The ds primary md Button. */
.ol-note-add,
.ol-pair-button {
  padding-inline: 14px;
  font-size: 13.5px;
  border-radius: 8px;
}
.ol-workspace-heading > .lp-ghost:first-child {
  margin-top: 2px;
}
.ol-station h1 {
  /* Centred in the header's 36px row, then the header's mb-6. */
  margin: 4.8px 0 28.8px;
}
.ol-station-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
/* A station group: the carded section (rounded-card, line-default border, p-4.5). */
.ol-station-card {
  padding: 18px;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: var(--surface-raised);
}
/* The station name (text-17, 12px under the section title) and the help line under it. */
.ol-station-body section:first-child > .lp-ghost {
  margin-top: 12px;
}
.ol-station-body p {
  margin-top: 4px;
  font-size: 13px;
  line-height: 19.5px;
  color: var(--text-quiet);
}
.ol-station-devices {
  margin-top: 4px;
}
/* The ds Checkbox with its 14px label, the help line under the label. */
.ol-device-checkbox {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  column-gap: 8px;
  align-items: center;
  margin-top: 12px;
}
.ol-device-checkbox strong,
.ol-toggle strong {
  justify-self: start;
  font-size: 14px;
  line-height: 21px;
  font-weight: 400;
}
.ol-station-body .ol-device-checkbox p,
.ol-station-body .ol-toggle p {
  grid-column: 2;
  font-size: 12.5px;
  line-height: 18.75px;
}
.ol-station-body .ol-toggle p {
  margin-top: 2px;
}
/* The ds FormField: the 13.5px label 6px over the md control. */
.ol-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ol-field > span:first-child {
  font-size: 13.5px;
  line-height: 1;
  font-weight: 500;
}
.ol-device-checkbox + .ol-field {
  margin-top: 16px;
}
.ol-terminal-fields {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 12px;
}
/* The pairing box: a ds muted Card (padding md) headed by a SectionHeader title. */
.ol-pairing {
  padding: 18px;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: var(--surface-sunken);
}
.ol-pairing > strong {
  display: block;
  width: fit-content;
  font-size: 15px;
  line-height: 21px;
  font-weight: 600;
}
.ol-station-body .ol-pairing > p {
  margin-top: 2px;
  color: var(--text-secondary);
}
/* The two fields' label line (13.5px + 6px) reserved over the inputs and the Pair button. */
.ol-pairing > div {
  display: flex;
  gap: 8px;
  margin-top: 12px;
  padding-top: 19.5px;
}
.ol-pairing > div > .lp-ghost {
  flex: 1;
  min-width: 0;
}
.ol-pairing > .ol-pairing-hint {
  margin-top: 8px;
}
/* The ds Switch rows: the 36x22 switch, its label 8px after it, the description under the label;
   rows divided by a hairline. */
.ol-toggles {
  margin-top: 4px;
}
.ol-toggle {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  column-gap: 8px;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid var(--line-default);
}
.ol-toggle:last-child {
  border-bottom: 0;
}
@media (min-width: 640px) {
  .sl-page {
    padding: 40px 32px;
  }
  .sl-address-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sl-address-grid .sl-wide {
    grid-column: 1/-1;
  }
  .sl-key-dates {
    display: block;
  }
  .sl-loading .sl-tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sl-toolbar-actions {
    margin-left: auto;
  }
  .vl-list-row {
    grid-template-columns: 84px minmax(0, 1fr) auto auto auto;
  }
  .vl-list-meta {
    grid-column: auto;
  }
  .vl-list-caret {
    display: block;
  }
  .vl-coordinates > div,
  .atl-pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .vl-designer-toolbar {
    padding-inline: 24px;
  }
  .atl-table [data-hide-below='sm'] {
    display: table-cell;
  }
  .atl-detail-meta {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 12px;
  }
  .atl-steps {
    flex-direction: row;
    gap: 0;
  }
  .ol-page {
    padding-inline: 32px;
  }
  .ol-catalog {
    padding-inline: 28px;
  }
  .ol-sell-header {
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
  }
  .ol-sell-header > .ol-selector {
    flex: 1;
    min-width: 0;
    max-width: 384px;
  }
  .ol-sell-header > .ol-sell-time {
    flex: none;
    width: 224px;
  }
  .ol-result-date {
    display: block;
  }
}
@media (min-width: 768px) {
  .atl-table [data-hide-below='md'] {
    display: table-cell;
  }
  .vl-designer-wide {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
  }
  .vl-designer-wide .vl-designer-panel {
    border-top: 1px solid var(--line-default);
  }
  .vl-designer-narrow {
    display: none;
  }
}
@media (min-width: 900px) {
  .vl-designer-wide {
    flex-direction: row;
  }
  .vl-designer-canvas {
    flex: 1;
  }
  .vl-designer-wide .vl-designer-panel {
    width: 340px;
    flex-shrink: 0;
    overflow-y: auto;
    border-top: 0;
    border-left: 1px solid var(--line-default);
  }
}
@media (min-width: 1024px) {
  .sl-section,
  .sl-row {
    grid-template-columns: minmax(200px, 300px) minmax(0, 1fr);
  }
  .atl-table [data-hide-below='lg'] {
    display: table-cell;
  }
  .atl-section-shell {
    flex-direction: row;
    gap: 32px;
  }
  .atl-subnav {
    flex-direction: column;
    width: 208px;
    flex-shrink: 0;
    gap: 2px;
  }
  .vl-designer {
    height: calc(100svh - var(--app-header-height, 3.5rem));
    overflow: hidden;
  }
  .vl-designer-canvas {
    height: auto;
  }
  .ol-sell {
    flex-direction: row;
    height: calc(100dvh - 56px);
  }
  .ol-catalog {
    overflow-y: auto;
  }
  .ol-cart {
    width: 384px;
    flex-shrink: 0;
    border-top: 0;
    border-left: 1px solid var(--line-default);
  }
  :is(
      [data-admin-layout='focused-flow'],
      [data-admin-layout='seating-designer'],
      [data-admin-layout='settings'][data-admin-view='account'],
      [data-admin-layout='settings'][data-admin-view='team']
    )
    .sl-boot-slot {
    display: block;
  }
}
@media (min-width: 1280px) {
  .atl-table [data-hide-below='xl'] {
    display: table-cell;
  }
}

[data-admin-layout='settings'][data-admin-view='hub'] .al-task4-settings-hub,
[data-admin-layout='settings'][data-admin-view='general'] .al-task4-settings-general,
[data-admin-layout='settings'][data-admin-view='branding'] .al-task4-settings-branding,
[data-admin-layout='settings'][data-admin-view='fees'] .al-task4-settings-fees,
[data-admin-layout='settings'][data-admin-view='developers'] .al-task4-settings-developers,
[data-admin-layout='settings'][data-admin-view='ai'] .al-task4-settings-ai,
[data-admin-layout='settings'][data-admin-view='email-settings'] .al-task4-settings-email-settings,
[data-admin-layout='settings'][data-admin-view='account'] .al-task4-settings-account,
[data-admin-layout='settings'][data-admin-view='team'] .al-task4-settings-team,
[data-admin-layout='venues'] .al-task4-venues,
[data-admin-layout='venue-wizard'] .al-task4-venue-wizard,
[data-admin-layout='focused-flow'] .al-task4-focused-flow,
[data-admin-layout='seating-designer'] .al-task4-designer,
[data-admin-layout='import-detail'] .al-task4-import-detail,
[data-admin-layout='import-new'] .al-task4-import-new,
[data-admin-layout='venue-detail'][data-admin-view='maps'] .al-task4-venue-maps,
[data-admin-layout='venue-detail'][data-admin-view='details'] .al-task4-venue-details,
[data-admin-layout='venue-detail'][data-admin-view='events'] .al-task4-venue-events,
[data-admin-layout='org-detail'][data-admin-view='general'] .al-task4-org-general,
[data-admin-layout='org-detail'][data-admin-view='fees'] .al-task4-org-fees,
[data-admin-layout='org-detail'][data-admin-view='advanced'] .al-task4-org-advanced,
[data-admin-layout='admin-ai'][data-admin-view='usage'] .al-task4-ai-usage,
[data-admin-layout='admin-ai'][data-admin-view='models'] .al-task4-ai-models,
[data-admin-layout='admin-ai'][data-admin-view='gaps'] .al-task4-ai-gaps,
[data-admin-layout='admin-list'][data-admin-view='orgs'] .al-task4-admin-orgs,
[data-admin-layout='admin-list'][data-admin-view='fees'] .al-task4-admin-fees,
[data-admin-layout='admin-list'][data-admin-view='users'] .al-task4-admin-users,
[data-admin-layout='admin-list'][data-admin-view='scanners'] .al-task4-admin-scanners,
[data-admin-layout='admin-list'][data-admin-view='readers'] .al-task4-admin-readers,
[data-admin-layout='admin-list'][data-admin-view='batches'] .al-task4-admin-batches,
[data-admin-layout='admin-list'][data-admin-view='presets'] .al-task4-admin-presets,
[data-admin-layout='email-tools'][data-admin-view='templates'] .al-task4-email-templates,
[data-admin-layout='email-tools'][data-admin-view='editor'] .al-task4-email-editor,
[data-admin-layout='email-tools'][data-admin-view='delivery'] .al-task4-email-delivery,
[data-admin-layout='onsite'][data-admin-view='sell'] .al-task4-onsite-sell,
[data-admin-layout='onsite'][data-admin-view='search'] .al-task4-onsite-search,
[data-admin-layout='onsite'][data-admin-view='search-query'] .al-task4-onsite-search-query,
[data-admin-layout='onsite'][data-admin-view='workspace'] .al-task4-onsite-workspace,
[data-admin-layout='onsite'][data-admin-view='check-in'] .al-task4-onsite-check-in,
[data-admin-layout='onsite'][data-admin-view='station'] .al-task4-onsite-station {
  display: block;
}
.sl-team-matrix {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sl-team-matrix h2 {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
}
.sl-team-matrix-box {
  border: 1px solid var(--line-default);
  border-radius: 14px;
  overflow: auto;
}
.sl-team-matrix-grid {
  min-width: 640px;
  display: grid;
  grid-template-columns: minmax(220px, 1.6fr) repeat(4, minmax(96px, 1fr));
}
.sl-team-matrix-head {
  padding: 12px;
  border-bottom: 1px solid var(--line-subtle);
  background: var(--surface-canvas);
  font-size: 13.5px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.sl-team-matrix-row {
  display: contents;
}
.sl-team-matrix-row > span {
  padding: 11px 16px;
  font-size: 13.5px;
  border-bottom: 1px solid var(--line-subtle);
}
.sl-team-matrix-row > div {
  font-size: 12.5px;
  padding: 11px 12px;
  display: flex;
  align-items: center;
  gap: 6px;
  border-bottom: 1px solid var(--line-subtle);
}
.sl-team-matrix-row:last-child > * {
  border-bottom: 0;
}
.sl-team-scoped {
  font-size: 12.5px;
  line-height: 1.5;
}
.sl-team-matrix > p {
  max-width: 80ch;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--text-faint);
}
.ol-loading-shell {
  display: none;
}
html[data-admin-chrome='onsite'] .admin-loading:not([data-admin-chrome]) > .al-workspace,
.admin-loading[data-admin-chrome='onsite'] > .al-workspace {
  display: none;
}
[data-admin-chrome='onsite'] .ol-loading-shell {
  display: block;
}
/* OnsiteShell's bar: h-14 with its hairline inside, px-4 at every width. */
.ol-shell-header {
  height: 56px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 16px;
  border-bottom: 1px solid var(--line-default);
  background: var(--surface-raised);
  font: 500 13px/1.45 var(--font-ui);
}
/* The org link: a ghost md Button, px-2 gap-2.5. */
.ol-shell-org {
  display: flex;
  min-width: 0;
  height: 36px;
  align-items: center;
  gap: 10px;
  padding: 0 8px;
}
.ol-role,
.ol-shell-user {
  display: none;
}
/* The verbs: a ds chip TabNav (tabs-classes.ts), no track; each item h-8 px-2.5 gap-1.5 at 13.5px. */
.ol-shell-verbs {
  display: flex;
  align-items: center;
  gap: 2px;
  margin: auto;
}
.ol-shell-verbs > span {
  display: flex;
  height: 32px;
  align-items: center;
  gap: 6px;
  padding: 0 10px;
  border-radius: var(--radius-control);
  font: 400 13.5px/1.5 var(--font-ui);
}
.ol-shell-verbs > span > span:last-child {
  display: none;
}
/* The current verb (aria-current="page") is font-medium on the sunken chip. */
[data-admin-layout='onsite'][data-admin-view='sell'] .ol-shell-verbs > span:nth-child(1),
[data-admin-layout='onsite'][data-admin-view^='search'] .ol-shell-verbs > span:nth-child(2),
[data-admin-layout='onsite'][data-admin-view='workspace'] .ol-shell-verbs > span:nth-child(2),
[data-admin-layout='onsite'][data-admin-view='check-in'] .ol-shell-verbs > span:nth-child(3) {
  font-weight: 500;
  background: var(--surface-sunken);
}
.ol-shell-utilities {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ol-shell-workspace {
  display: flex;
  min-height: calc(100dvh - 56px);
}
.ol-shell-sidebar {
  display: none;
  width: 320px;
  flex-shrink: 0;
  border-right: 1px solid var(--line-default);
  background: var(--surface-raised);
  padding: 24px;
}
.ol-shell-sidebar section + section {
  margin-top: 24px;
}
/* CredentialingSidebar: mt-2.5 then space-y-2 event rows and the station line (space-y-1 when empty). */
.ol-cred-events {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ol-cred-events.ol-cred-none {
  gap: 4px;
}
.ol-cred-none > p {
  font: 13px/19.5px var(--font-ui);
  color: var(--text-quiet);
}
.ol-cred-event {
  display: flex;
  align-items: center;
  gap: 12px;
}
.ol-cred-event > .lp-ghost {
  flex-shrink: 0;
}
/* CredentialingSidebar's arrivals sit mt-2 under the title; each is a ghost Button, p-2.5 gap-3. */
.ol-shell-sidebar section > h2 + .ol-arrival {
  margin-top: 8px;
}
.ol-arrival {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px;
}
.ol-arrival > .lp-ghost {
  flex-shrink: 0;
}
.al-scope-onsite-section .ol-shell-workspace {
  min-height: 0;
}
@media (min-width: 640px) {
  .ol-role,
  .ol-shell-verbs > span > span:last-child {
    display: block;
  }
}
@media (min-width: 768px) {
  .ol-shell-user {
    display: block;
  }
}
@media (min-width: 1024px) {
  [data-admin-rail='onsite'] .ol-shell-sidebar {
    display: block;
  }
}
.vl-canvas-status {
  position: absolute;
  top: 20px;
  left: 20px;
  font-size: 14px;
  color: var(--text-quiet);
}
.sl-workbench-trail {
  font-size: 12.5px;
  line-height: 1.5;
  gap: 1ch;
  white-space: nowrap;
}
/* The designer trail truncates its current crumb (the map name) when the bar runs out of room. */
.sl-trail-designer {
  min-width: 0;
  overflow: hidden;
}
/* The designer's trail is a ds PageTrail: sans, 8px between crumbs, ancestors in secondary ink. */
.sl-workbench-trail.sl-trail-designer {
  gap: 8px;
  font-family: var(--font-ui);
  color: var(--text-secondary);
}
.sl-trail-designer > * {
  flex-shrink: 0;
}
.sl-trail-designer > .sl-trail-current {
  flex-shrink: 1;
}
.sl-trail-choice,
.sl-boot-trail {
  display: none;
}
.sl-boot-trail {
  min-height: 56px;
  align-items: center;
  padding: 8px 20px;
  border-bottom: 1px solid var(--line-default);
}
:is(
    [data-admin-layout='focused-flow'],
    [data-admin-layout='seating-designer'],
    [data-admin-layout='settings'][data-admin-view='account'],
    [data-admin-layout='settings'][data-admin-view='team']
  )
  .sl-boot-trail {
  display: flex;
}
[data-admin-layout='focused-flow'] .sl-trail-focused-flow,
[data-admin-layout='seating-designer'] .sl-trail-seating-designer,
[data-admin-layout='settings'][data-admin-view='account'] .sl-trail-account,
[data-admin-layout='settings'][data-admin-view='team'] .sl-trail-team {
  display: flex;
}
@media (min-width: 640px) {
  .sl-boot-trail {
    padding-inline: 24px;
  }
}
@media (min-width: 1024px) {
  :is(
      [data-admin-layout='focused-flow'],
      [data-admin-layout='seating-designer'],
      [data-admin-layout='settings'][data-admin-view='account'],
      [data-admin-layout='settings'][data-admin-view='team']
    )
    .sl-boot-trail {
    display: none;
  }
}
.sl-heading-actions {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  gap: 8px;
}
.sl-action {
  display: inline-flex;
  align-items: center;
  height: 36px;
  padding: 0 16px;
  color: transparent;
  background: var(--surface-skeleton);
  border-radius: 3.375px;
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
}
/* A ds StatCard (revenue, AI usage): the bordered raised tile, 16px by 18px inset; the 13px/500
   label after its 7px tone dot; the 26px/1.1 figure 10px under it. */
.atl-stat-card {
  min-width: 0;
  padding: 16px 18px;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  background: var(--surface-raised);
}
.sl-loading .atl-stat-label {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 500;
  color: var(--text-secondary);
}
.atl-stat-dot {
  flex-shrink: 0;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--surface-skeleton);
}
.atl-stat-figure {
  margin-top: 10px;
}
@media (min-width: 640px) {
  .sl-heading-actions {
    width: auto;
  }
}

.sl-label {
  font-size: 14px;
  line-height: 1;
}
.vl-flow-fields .sl-label {
  line-height: 1.5;
}

/* The ds EmptyState well: dashed frame, py-12 px-6, the 44px icon disc 16px over the title. */
.ol-station-permission {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 48px 24px;
  border: 1px dashed var(--line-dashed);
  border-radius: 12px;
  text-align: center;
}
/* Descendant selectors: the parts sit in LoadingStatus's display:contents wrapper. */
.ol-station-permission .lp-ghost {
  border-radius: 9999px;
}
.ol-station-permission h2 {
  margin-top: 16px;
  font-size: 14px;
  line-height: 21px;
  font-weight: 500;
}
.ol-station-permission p {
  margin-top: 4px;
  max-width: 384px;
  font-size: 13px;
  line-height: 19.5px;
  color: var(--text-secondary);
}

.atl-step-connector {
  display: none;
  height: 1px;
  flex: 1;
  margin-left: 8px;
  background: var(--line-default);
}
@media (min-width: 640px) {
  .atl-step-connector {
    display: block;
  }
}
/* CodeBlock: a muted card, the pre beside its Copy button. */
.sl-snippet {
  display: flex;
  align-items: flex-start;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: var(--surface-sunken);
}
.sl-snippet pre {
  flex: 1;
  min-width: 0;
  margin: 0;
  overflow-x: auto;
  padding: 14px 4px 14px 14px;
  font-family: var(--font-code, 'IBM Plex Mono', ui-monospace, monospace);
  font-size: 13px;
  line-height: 1.5;
  font-weight: 400;
  white-space: pre;
  color: transparent;
}
.sl-snippet-copy {
  flex-shrink: 0;
  margin: 8px 8px 8px 0;
}
.sl-feed-explanation code {
  padding: 2px 4px;
  font-family: var(--font-code, 'IBM Plex Mono', ui-monospace, monospace);
  font-size: 13px;
}
.vl-maps-label {
  display: block;
  font-size: 13.5px;
  line-height: 1.5;
  font-weight: 500;
}
.vl-map-choices {
  margin-top: 6px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.vl-map-choice {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 18px;
  border: 1px solid var(--line-default);
  border-radius: 14px;
  background: var(--surface-raised);
}
/* FocusedFlowChoice (focused-flow.tsx, shared, phase 11) still draws the workbench check ring;
   line-strong is the v2 line nearest it in both themes. */
.vl-choice-radio {
  flex-shrink: 0;
  margin-top: 2px;
  border-radius: 50%;
  border: 1.5px solid var(--line-strong);
}
.vl-checks-loading {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
/* ds SectionHeader's title: 15px at the text-15 leading. */
.vl-checks-loading h2 {
  font-size: 15px;
  line-height: 1.4;
  font-weight: 600;
}
.vl-checks-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px 16px;
}
.vl-checks-progress {
  margin-top: 10px;
  border-radius: var(--radius-pill);
}
.vl-checks-count {
  border-radius: 4px;
  font-family: var(--font-ui);
  font-size: 12.5px;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
}
.vl-checks-count > span {
  visibility: hidden;
}
/* Section titles are as wide as their text, as in the loaded SectionHeader. */
.vl-checks-loading section > h2 {
  width: fit-content;
}
.sl-loading .vl-checklist-rows {
  margin-top: 14px;
}
.vl-checklist-rows li {
  display: flex;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line-subtle);
}
.vl-checklist-rows li > div {
  min-width: 0;
  flex: 1;
}
.vl-checklist-rows strong {
  display: block;
  font-size: 13.5px;
  line-height: 1.5;
}
.vl-check-circle {
  margin-top: 1px;
  flex-shrink: 0;
  border-radius: 50%;
}
.vl-check-note {
  margin-top: 2px;
}
.vl-checks-prose {
  margin-top: 4px;
}
.vl-checks-loading section > p {
  margin-top: 4px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.vl-category-pending {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-top: 10px;
}
/* The ds EmptyState well (py-12, top-aligned, the dashed card frame) on the onsite panes' 288px
   floor (min-h-72). */
.ol-idle {
  min-height: 288px;
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 48px 24px;
  border: 1px dashed var(--line-dashed);
  border-radius: 12px;
  text-align: center;
}
.ol-idle-icon {
  border-radius: 50%;
  flex-shrink: 0;
}
.sl-loading .ol-idle p {
  margin-top: 16px;
  font-size: 14px;
  font-weight: 500;
  line-height: 21px;
}
/* Check in's well has no pane floor of its own and sits right under the selector. */
.ol-idle-scan {
  min-height: 160px;
  margin-top: 0;
}
/* Events pages claim the desktop header slot and own a separate mobile strip. */
.el-boot-strip,
.el-boot-slot,
.el-list-trail,
.el-setup-trail {
  display: none;
}
:is(
    [data-admin-layout='events-list'],
    [data-admin-layout='event-new'],
    [data-admin-layout='event-detail']
  )
  .el-boot-strip {
  display: flex;
  min-height: 56px;
  align-items: center;
  gap: 14px;
  padding: 8px 20px;
  border-bottom: 1px solid var(--wb-border-1, #e6e9e8);
}
[data-admin-layout='events-list'] .el-list-trail {
  display: inline;
}
[data-admin-layout='event-new'] .el-setup-trail {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--muted-foreground, #71717a);
}
.el-setup-trail strong {
  font-weight: 500;
  color: var(--foreground, #18181b);
}
.el-setup-trail > span {
  color: var(--border, #e4e4e7);
}
@media (min-width: 640px) {
  .el-boot-strip {
    padding-inline: 24px;
  }
}
@media (min-width: 1024px) {
  :is(
      [data-admin-layout='events-list'],
      [data-admin-layout='event-new'],
      [data-admin-layout='event-detail']
    )
    .el-boot-strip {
    display: none;
  }
  :is(
      [data-admin-layout='events-list'],
      [data-admin-layout='event-new'],
      [data-admin-layout='event-detail']
    )
    .el-boot-slot {
    display: flex;
  }
}

/* Match the actual workbench buttons used by the venue form and wizard. */
/* ds primary md buttons: the venue form's Save and the venues list's New venue. */
.vl-save,
.vl-new {
  font-weight: 500;
  height: var(--control-md);
  padding-inline: 14px;
  font-size: 13.5px;
  border: 0;
}
.vl-details-footer p {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.vl-cancel {
  height: 32px;
  font-size: 13.5px;
  padding-inline: 12px;
  border: 0;
  font-weight: 400;
}
.vl-continue {
  height: 38px;
  font-size: 13.5px;
  padding-inline: 14px;
  border: 0;
  font-weight: 500;
}

.db-greeting-line {
  font-size: 22px;
  line-height: 1.2;
}
.wl-greeting h1 {
  width: 100%;
}
.wl-composer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--ai-line-card, #dfe6e4);
  border-radius: 16px;
  padding: 6px 6px 6px 18px;
}
.wl-composer .asst-composer-mark,
.wl-composer .asst-composer-attach,
.wl-composer .asst-send {
  flex: none;
}
.wl-composer .asst-composer-field {
  flex: 1;
  min-width: 0;
  border: 0;
  resize: none;
  font: inherit;
  font-size: 16px;
  line-height: 24px;
  padding: 10px 0;
}
.wl-composer .asst-send {
  border-radius: 11px;
}
.wl-composer .asst-composer-meta {
  flex-basis: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 0 0 4px;
}
.wl-composer .ai-scope {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 8px;
  border: 0;
  border-radius: 7px;
  font-size: 12px;
  line-height: 18px;
  font-weight: 600;
  color: transparent;
}
/* The two ds SegmentedControls at md: a 32px sunken track of 26px items. A counted ds item draws
   its count two 6px gaps after the label (the space after its hidden comma is a flex item of its
   own; a held slot takes a 6px margin instead), so the skeleton's one-digit ghost sits 12px out. */
.el-time-segments,
.el-view-segments {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px;
  border-radius: var(--radius-control);
  background: var(--surface-sunken);
  flex-shrink: 0;
}
.el-time-segments > button,
.el-view-segments > button {
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  height: 26px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  background: transparent;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 400;
  white-space: nowrap;
  color: transparent;
}
.el-time-segments > button[data-selected],
.el-view-segments > button[data-selected] {
  font-weight: 500;
  background: var(--surface-raised);
  border-color: var(--line-default);
}
/* The ds SearchInput at sm: a 32px box, 10px in, 6px from glyph to input. */
.el-search {
  display: flex;
  height: 32px;
  align-items: center;
  gap: 6px;
  padding: 0 10px;
  border: 1px solid var(--action-secondary-line);
  border-radius: var(--radius-control);
  background: var(--surface-raised);
}
.el-search [data-slot='search-input-glyph'] {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.el-search input {
  height: 100%;
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  font-size: 13px;
  line-height: 1.5;
}

.vl-heading-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
/* ds secondary md Button: 36px, a 1px line, 14px inset, 13.5px medium label. */
.vl-create-event {
  height: var(--control-md);
  padding-inline: 14px;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.5;
  border: 1px solid transparent;
}
.vl-more-actions {
  border-radius: var(--radius-control);
}
/* ds TabsList underline: 4px apart, pb-px over the hairline, each tab's 2px rule reaching into it. */
.vl-tabs {
  gap: 4px;
  padding-bottom: 1px;
  overflow-x: auto;
  overflow-y: hidden;
  border-bottom: 1px solid var(--line-default);
}
.vl-tabs > span {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  height: 40px;
  margin-bottom: -1px;
  padding-inline: 14px;
  border-bottom: 2px solid transparent;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--text-secondary);
}
.vl-tabs > span[data-selected] {
  border-bottom-color: var(--text-primary);
  font-weight: 500;
  color: var(--text-primary);
}

.cl-order-tab {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  gap: 8px;
  border-bottom: 2px solid transparent;
  padding: 4px 0 12px;
  font-size: 14px;
  line-height: 20px;
  font-weight: 400;
}
.cl-order-tab[data-selected] {
  font-weight: 500;
}
.cl-attention-count {
  padding-inline: 6px;
  font-family: var(--font-geist-mono);
  font-size: 12px;
  line-height: 16px;
}
.cl-search input {
  display: block;
  width: 100%;
  border: 1px solid transparent;
  padding-right: 12px;
  border-radius: 8px;
  font: inherit;
}
.cl-select {
  position: relative;
  flex-shrink: 0;
}
.cl-select-event {
  width: 220px;
}
.cl-select select {
  display: block;
  width: 100%;
  height: 34px;
  border: 1px solid transparent;
  border-radius: 8px;
  appearance: none;
}
.cl-select [data-slot='select-chevron'] {
  position: absolute;
  top: 50%;
  right: 9px;
  transform: translateY(-50%);
  color: var(--wb-text-3, #5f6b6a);
  pointer-events: none;
}
/* SortHeading: a preflight button (so not uppercased), 4px from label to caret. */
.cl-sort {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  letter-spacing: inherit;
  text-transform: none;
  color: inherit;
}
/* The drawer header sits directly on its body, as RecordDrawer does. */
.cl-order[data-detail-layout='drawer'] {
  gap: 0;
}
.cl-order-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
}
.cl-order-action {
  height: 28px;
  padding-inline: 14px;
  font-size: 13px;
  line-height: 19.5px;
}
.cl-customer-all {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.cl-new-segment {
  height: 28px;
  padding-inline: 10px;
  border: 0;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
}

.cl-buyer-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
  padding-block: 12px;
  border-block: 1px solid var(--wb-border-2, #eef1f0);
  font-size: 12px;
  line-height: 18px;
}
.cl-ticket-frame {
  border: 1px solid var(--border, #e6e9e8);
  border-radius: 12px;
  overflow: hidden;
}
.cl-ticket-table-container {
  width: 100%;
  overflow-x: auto;
}
.cl-ticket-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 14px;
  line-height: 21px;
}
.cl-ticket-table th {
  height: 40px;
  padding-inline: 20px;
  text-align: left;
  font: 600 11px/1.5 var(--font-geist-mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.cl-ticket-table th:nth-child(n + 3) {
  text-align: right;
}
.cl-ticket-table :is(th, td):last-child {
  padding-inline: 10px;
}
.cl-ticket-table td {
  padding: 12px 20px;
}
.cl-ticket-table thead tr,
.cl-ticket-table tbody tr:not(:last-child) {
  border-bottom: 1px solid var(--border, #e6e9e8);
}
.cl-net-definition {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  line-height: 1.5;
  color: var(--wb-text-4, #8a9493);
}
.cl-money-key {
  margin: 8px 0 20px;
  font-size: 11px;
  line-height: 1.5;
}
.cl-timeline-row {
  display: flex;
  gap: 12px;
  margin-top: 20px;
}
.cl-timeline-row > .lp-ghost {
  border-radius: 50%;
}

.cl-marketing-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 12.8px;
}
.cl-marketing-card > .lp-ghost:first-child {
  flex-shrink: 0;
}
.cl-marketing-copy {
  flex: 1;
}

/* The loaded CRM display owner uses the workbench 14px base. Inline child
   line boxes must inherit it before the main application stylesheet arrives. */
[data-loading-body='customer-detail'],
[data-loading-body='order-detail'] {
  font-size: 14px;
  line-height: 1.5;
}
.cl-kv-value {
  font-size: 12px;
  line-height: 18px;
}
.cl-summary {
  font-size: 16px;
  line-height: 26px;
}
[data-detail-layout='drawer'] .cl-summary {
  font-size: 12.5px;
  line-height: 18.75px;
}

.db-setup-row {
  align-items: flex-start;
}
.db-setup-row > .lp-grow {
  flex: 1 1 300px;
}
.db-setup-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  line-height: 21px;
}
.db-setup-flag {
  height: 20px;
  padding: 0 6px;
  border-radius: var(--radius-control);
  font-size: 12px;
  line-height: 20px;
  font-weight: 500;
  background: var(--status-warning-soft);
  color: var(--status-warning-fg);
}
.db-setup-help {
  margin-top: 2px;
  font-size: 13px;
  line-height: 19.5px;
  text-wrap: pretty;
  color: var(--text-quiet);
}
.db-setup-action {
  height: 36px;
  padding-inline: 14px;
  border-radius: var(--radius-control);
  font-size: 13.5px;
  font-weight: 500;
}

.cl-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  line-height: 20px;
  color: var(--wb-text-3, #5f6b6a);
}

.cl-customer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.cl-customer-action {
  height: 28px;
  padding-inline: 10px;
  font-size: 13px;
  line-height: 19.5px;
  font-weight: 400;
}
.cl-customer-action:last-child {
  border: 0;
}
.cl-customer-event-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.cl-customer-event-name {
  font-size: 14px;
  line-height: 20px;
}
.cl-customer-order-row {
  display: grid;
  grid-template-columns: 100px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 13px 16px;
  border-top: 1px solid var(--wb-border-2, #eef1f0);
  font-size: 13px;
  line-height: 19.5px;
}
.cl-customer-order-copy {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

[data-loading-body='dashboard-setup'] {
  margin-top: 0;
}
.el-registration-row {
  padding-block: 0;
  align-items: stretch;
}
.el-registration-row > span {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: 12px;
}
.el-registration-row.el-registration-head > span {
  padding-block: 0;
}
.el-registration-name-line {
  display: flex;
  align-items: center;
  gap: 6px;
}

.el-detail-trail {
  display: none;
}
[data-admin-layout='event-detail'] .el-detail-trail {
  display: flex;
  align-items: center;
  gap: 8px;
  font: 400 12px/18px var(--font-geist-mono, monospace);
  color: var(--muted-foreground, #73737b);
}
.el-registration-head {
  letter-spacing: 0.06em;
}
.el-registration-row:not(.el-registration-head) > span {
  border-bottom: 1px solid transparent;
}
/* The loaded rows collapse their divider into the cells' own 1px border, so the row is no taller
   than its cells: draw the divider inside the row instead of below it. */
.el-registration-row:not(.el-registration-head) {
  border-bottom: 0;
  box-shadow: inset 0 -1px 0 var(--wb-border-2, #eceeea);
}

.el-registration-status-line {
  display: flex;
  align-items: center;
  gap: 8px;
}
@media (max-width: 767px) {
  .el-registration-action {
    display: none;
  }
}

.el-registration-head {
  color: var(--wb-text-4, #8a9493);
}
.el-registration-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.el-registration-action.lp-control {
  height: 26px;
  padding: 0 9px;
  border-radius: 6px;
  font-size: 12.5px;
}
@media (max-width: 767px) {
  .el-registration-actions {
    display: none;
  }
}

.ml-stat .ml-stat-figure {
  font-weight: 500;
}
[data-layout-region='sales-sources'] .ml-table-header {
  height: auto;
  min-height: 35px;
  padding: 8px 22px;
  border-bottom: 0;
  border-top: 1px solid var(--wb-border-2, #eef1f0);
}
.ml-source-summary {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ml-source-summary > .lp-ghost + .lp-ghost {
  margin-top: 0 !important;
}
.ql-default-owner {
  padding: 0 36px 0 12px;
  border-radius: 8px;
  font-size: 13px;
  line-height: 20px;
}

.ml-count-slot {
  display: inline-block;
  width: 1ch;
}
/* Button size="md-minus" with a leading icon: has-[>svg] pads it 10px a side. */
.ml-control-action {
  height: 32px;
  padding-inline: 10px;
  font-size: 13px;
}
/* PromosFilters' SearchInput grows from 220px, the other tabs' from 240px. */
.ml-control-search.ml-control-search-promos {
  flex-basis: 220px;
}
/* SegmentedControl's count sits on a 6px margin (the Emails views). */
.ml-segment-count {
  margin-left: 6px;
}
/* The disabled "Access codes" segment and its sm workbench StatusPill ("Soon"). */
.ml-soon-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.ml-soon-pill {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
}
/* Button size="md-minus": the outline Export keeps its 1px border at weight 400; the filled
   "New …" has no border and a 500 label. */
.ml-control-action.ml-control-primary {
  border-width: 0;
  font-weight: 500;
}
.ml-control-search {
  height: 34px;
}

/* Known controls preserve the same text metrics as their loaded owners. */
/* The loaded Revoke is a ds ghost sm button: 13px/500 label, 10px sides. */
.sl-revoke {
  height: 32px;
  padding-inline: 10px;
  border: 0;
  font-size: 13px;
  font-weight: 500;
}
.sl-team-invite {
  height: 36px;
  padding-inline: 16px;
  gap: 7px;
  font-size: 14px;
  line-height: 1.5;
}
.sl-team-matrix .sl-matrix-toggle {
  align-self: flex-start;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
}
.sl-matrix-toggle svg {
  width: 13px;
  height: 13px;
  color: var(--text-quiet);
}
/* The setup editor's section navigation (events/setup/setup-loading.tsx), twin of setup.css §7-10:
   the 232px rail of 38px rows from 900px, the 44px picker and its strip below. */
.el-setup-nav {
  display: contents;
}
.el-setup-nav-rail {
  display: flex;
  flex: 0 0 232px;
  flex-direction: column;
  gap: 2px;
  width: 232px;
}
.el-setup-nav-rail-row {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 38px;
  padding: 0 12px;
}
.el-setup-nav-seam {
  display: block;
  margin: 10px 12px;
  border-top: 1px solid var(--wb-border-2, #eef1f0);
}
/* The dot's box with no mark: which sections have a dot is known only once the page loads. */
.el-setup-nav-dot {
  flex: none;
  width: 16px;
  height: 16px;
}
.el-setup-nav-help {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px;
}
.el-setup-nav-picker {
  display: none;
  flex-direction: column;
  gap: 8px;
}
.el-setup-nav-picker-button {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 44px;
  box-sizing: border-box;
  padding: 0 12px;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 10px;
}
.el-setup-nav-strip {
  display: flex;
  gap: 6px;
}
.el-setup-nav-strip > span {
  flex: 1;
  height: 4px;
  border-radius: 2px;
  background: var(--wb-border-1, #e6e9e8);
}
@media (max-width: 899px) {
  .el-setup-nav-rail {
    display: none;
  }
  .el-setup-nav-picker {
    display: flex;
  }
}
.el-setup-nav-rail-row[data-current] {
  border-radius: 8px;
  background: var(--wb-brand-soft, #e7f3f1);
}
.el-setup-nav-strip > span[data-current] {
  background: var(--wb-ink, #16191a);
}

/* The new-event page (events-loading.tsx `EventNewLoading`, editor-loading.tsx), twin of
   setup.css §1, §2, §11 and §12, which loads with the editor and not with this sheet: the header,
   the rail and form columns, the open section and its footer. A fresh page and a resumed draft differ
   only in `.el-setup-fresh` / `.el-setup-resumed`: the frame's `data-setup-resumed`
   decides once React knows; the static shell has none, and `loading-shell.js` stamps the answer
   on <html> from `?draft=`. */
:is(
    html:not([data-admin-setup-resumed='true']) .el-setup-frame:not([data-setup-resumed]),
    .el-setup-frame[data-setup-resumed='false']
  )
  .el-setup-resumed,
:is(
    html[data-admin-setup-resumed='true'] .el-setup-frame:not([data-setup-resumed]),
    .el-setup-frame[data-setup-resumed='true']
  )
  .el-setup-fresh {
  display: none;
}
/* Before the draft exists only Type is open; the rail draws the rest quiet. */
:is(
    html:not([data-admin-setup-resumed='true']) .el-setup-frame:not([data-setup-resumed]),
    .el-setup-frame[data-setup-resumed='false']
  )
  .el-setup-nav-rail-row:not([data-current])
  .lp-ghost {
  opacity: 0.5;
}
.el-setup-page {
  padding: 0 var(--wb-page-padding, clamp(20px, 4vw, 40px)) 64px;
}
.el-setup-frame {
  display: contents;
}
.el-setup-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    'title actions'
    'meta actions';
  column-gap: 24px;
  row-gap: 4px;
  align-items: center;
  padding: 24px 0 20px;
  border-bottom: 1px solid var(--wb-divider, #eef1f0);
}
.el-setup-head-title {
  grid-area: title;
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.el-setup-head-title h1 {
  min-width: 0;
  overflow: hidden;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lp-ghost.el-setup-pill {
  flex: none;
  border-radius: 999px;
}
.el-setup-head-meta {
  grid-area: meta;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--wb-text-3, #5f6b6a);
  text-wrap: pretty;
}
.el-setup-head-actions {
  grid-area: actions;
  display: flex;
  align-items: center;
  gap: 8px;
}
.el-setup-head-preview {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  height: 34px;
  padding: 0 14px;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 7px;
  font-size: 13px;
  font-weight: 500;
}
.setup-primary.el-setup-head-publish {
  height: 34px;
  padding: 0 16px;
  font-size: 13px;
}
.el-setup {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  padding-top: 24px;
}
.el-setup-form {
  display: flex;
  flex-direction: column;
  gap: 28px;
  min-width: 0;
  max-width: 720px;
}
.el-setup-sec {
  display: flex;
  flex-direction: column;
  gap: 28px;
  min-width: 0;
}
/* A body's status adds no box: its parts are the section's own children, under its gaps. */
.el-setup-sec-body {
  display: contents;
}
.el-setup-sec-head h2,
.el-setup-sec-head h3 {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
  text-wrap: balance;
}
.el-setup-sec-head p {
  margin-top: 6px;
  max-width: 64ch;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--wb-text-3, #5f6b6a);
  text-wrap: pretty;
}
.el-setup-group {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}
.el-setup-kinds > .setup-choices--columns > .setup-choice {
  align-items: flex-start;
}
.el-setup-three {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.el-setup-three-times {
  display: contents;
}
.el-setup-rows {
  display: flex;
  flex-direction: column;
}
.el-setup-row {
  padding: 14px 0;
  border-top: 1px solid var(--wb-divider, #eef1f0);
}
.el-setup-row:last-child {
  border-bottom: 1px solid var(--wb-divider, #eef1f0);
}
.el-setup-row-head {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 28px;
}
.el-setup-row-label {
  flex: 0 0 150px;
  min-width: 0;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.4;
}
.el-setup-row-value {
  flex: 1 1 0;
  min-width: 0;
  font-size: 13.5px;
  line-height: 1.45;
}
/* A switch row's Switch (36 x 22), a pill or Map tools' caret, in the head's action slot. */
.el-setup-row-control {
  flex: none;
  display: inline-flex;
  align-items: center;
  min-height: 28px;
}
/* The refund policy block inside a row (setup.css §25 `.setup-policy`). */
.setup-policy > .el-policy-loading {
  display: flex;
}
/* The always-open row's fields (setup.css §2 `.setup-row__body`), the list's outline Add button
   and the hero row's listing-image link. */
.el-setup-row-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 12px 0 2px;
}
/* A row with no head line (setup.css §2) starts its fields flush. */
.el-setup-row-bare > .el-setup-row-body {
  padding-top: 0;
}
.el-setup-row-add {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 12px 0 30px;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
}
/* Status's outline buttons (Pause sales, Unpublish to draft…) carry no icon. */
.el-setup-row-button {
  padding: 0 12px;
}
.el-setup-row-link {
  align-self: flex-start;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--wb-text-link, var(--wb-brand, #097a70));
}
/* A notice (setup.css §13, `.setup-notice`): neutral as Tickets' fee example, red as Review's
   blocker. The list card (§3): the Tickets type list and Review's two cards. Review and publish
   (§13 and §16) puts its check rows and key-value summary in the cards, then the footer below. */
.el-setup-notice {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 8px;
  background: var(--wb-surface-1, #fafbfa);
  font-size: 13px;
  line-height: 1.45;
}
.el-setup-notice[data-loading-group='review-notice'] {
  border-color: var(--wb-danger-border, #f0c9c4);
  background: var(--wb-danger-soft, #fbecea);
}
/* The loaded icon sits 1px down, beside the first 18.85px line. */
.el-setup-notice > .lp-ghost:first-child {
  flex: none;
  margin-top: 1px;
}
.el-setup-notice > .lp-ghost:last-child {
  margin-left: auto;
}
.el-setup-notice-text {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  gap: 4.85px;
  min-width: 0;
}
.el-setup-card {
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 10px;
  background: var(--wb-surface-card, var(--wb-surface-0, #fff));
  overflow: hidden;
}
.el-setup-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--wb-divider, #eef1f0);
}
.el-setup-card-head h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
}
.el-setup-card-link {
  font-size: 13px;
  font-weight: 500;
  color: var(--wb-text-link, var(--wb-brand, #097a70));
  white-space: nowrap;
}
.el-setup-review-checks {
  display: flex;
  flex-direction: column;
  padding: 0 16px;
  list-style: none;
}
.el-setup-check {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-top: 1px solid var(--wb-divider, #eef1f0);
  font-size: 13px;
  line-height: 1.45;
}
.el-setup-check:first-child {
  border-top: 0;
}
.lp-ghost.el-setup-check-ic {
  flex: none;
  border-radius: 50%;
}
.el-setup-check-text {
  flex: 1 1 0;
  min-width: 0;
}
.el-setup-check-fix {
  flex: none;
  margin-left: auto;
  font-weight: 500;
  color: var(--wb-text-link, var(--wb-brand, #097a70));
  white-space: nowrap;
}
.el-setup-review-summary {
  padding: 14px 16px;
}
.el-setup-kv {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 8px 16px;
  font-size: 13px;
  line-height: 1.45;
}
.el-setup-kv dt {
  color: var(--wb-text-3, #5f6b6a);
}
.el-setup-kv dd {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
@media (max-width: 899px) {
  .el-setup-kv {
    grid-template-columns: 1fr;
    gap: 2px;
  }
  .el-setup-kv dd + dt {
    margin-top: 10px;
  }
}
.el-setup-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 20px;
  padding-top: 20px;
  border-top: 1px solid var(--wb-divider, #eef1f0);
}
.el-setup-foot-status {
  display: flex;
  align-items: center;
  min-height: 28px;
  font-size: 12.5px;
  color: var(--wb-text-3, #5f6b6a);
}
/* Tickets: the type list card's actions and rows (`ListRow`, setup.css §3 and §14), the Fees
   and tax head at 16px, its rows (the `.el-setup-row` twins above) and the example notice. */
.el-setup-card-actions {
  flex: none;
  display: flex;
  align-items: center;
  gap: 14px;
}
.el-setup-list {
  display: flex;
  flex-direction: column;
}
.el-setup-li {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border-top: 1px solid var(--wb-divider, #eef1f0);
}
.el-setup-li:first-child {
  border-top: 0;
}
.el-setup-li-grip {
  flex: none;
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  margin: 0 -4px;
}
/* The name: its 13.5px title line (the Main offer chip beside it) over the 12.5px meta line. */
.el-setup-li-name {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.el-setup-li-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-height: 18.9px;
}
.el-setup-li-meta {
  display: block;
  margin-top: 2px;
}
.el-setup-li-figures {
  flex: none;
  display: flex;
  justify-content: flex-end;
  gap: 16px;
  min-width: 96px;
}
.el-setup-li-remove {
  flex: none;
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 6px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  color: var(--wb-text-3, #5f6b6a);
  white-space: nowrap;
}
.el-setup-list-empty {
  margin: 0;
  padding: 18px 16px;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--wb-text-3, #5f6b6a);
  text-wrap: pretty;
}
.el-setup-fees {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.el-setup-sec-head-sub h3 {
  font-size: 16px;
  letter-spacing: 0;
}
.el-setup-sec-head-sub p {
  margin-top: 4px;
  font-size: 13px;
}
@media (min-width: 900px) {
  .el-setup {
    grid-template-columns: 232px minmax(0, 720px);
    column-gap: 48px;
  }
  .el-setup-kinds > .setup-choices--columns {
    grid-template-columns: repeat(var(--setup-kinds, 3), minmax(0, 1fr));
  }
}
@media (max-width: 899px) {
  .el-setup-page {
    padding-bottom: 40px;
  }
  .el-setup-head {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      'title'
      'meta'
      'actions';
    row-gap: 8px;
    padding-top: 16px;
  }
  .el-setup-head-title h1 {
    font-size: 17px;
    white-space: normal;
  }
  .el-setup-head-actions {
    justify-content: flex-start;
  }
  /* setup.css §6 under 900px: Preview page and a row's outline buttons (Save as v1 among them)
     stand 44px. */
  .el-setup-head-preview,
  .el-setup-row-add,
  .el-setup-row-body .el-policy-footer .el-end-action {
    height: 44px;
  }
  .el-setup-sec {
    gap: 20px;
  }
  .el-setup-row {
    padding: 12px 0;
  }
  .el-setup-row-head {
    flex-wrap: wrap;
    gap: 2px 12px;
  }
  .el-setup-row-label {
    flex: 0 1 auto;
  }
  .el-setup-row-value {
    flex: 1 1 12ch;
  }
  .el-setup-row-control {
    margin-left: auto;
  }
  .el-setup-li {
    gap: 12px;
    padding: 10px 12px 10px 14px;
  }
  .el-setup-li-figures {
    min-width: 0;
  }
  /* setup.css §14 under 900px: the handle widens to 28px (20px net of its pulls), and it, Remove
     and Edit stand 44px tall. */
  .el-setup-li-grip {
    width: 28px;
    height: 44px;
  }
  .el-setup-li-remove,
  .el-setup-li > .lp-ghost:last-child {
    min-height: 44px;
  }
  .el-setup-card-head {
    padding: 8px 12px 8px 16px;
  }
}
@media (max-width: 599px) {
  /* setup.css §3 and §13 under 600px: the card head's actions under its title; a row's grip,
     name and Edit, then its meta line, then its figures; a notice's action under its text. */
  .el-setup-card-head {
    flex-wrap: wrap;
    row-gap: 4px;
  }
  .el-setup-card-head h3 {
    flex: 1 1 100%;
  }
  .el-setup-li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas:
      'grip title edit'
      '. meta meta'
      '. figures actions';
    align-items: center;
    gap: 2px 0;
  }
  /* The handle keeps its -4px left pull; 8px here nets the loaded 12px to the name. */
  .el-setup-li > .el-setup-li-grip {
    grid-area: grip;
    margin-right: 8px;
  }
  .el-setup-li-name {
    display: contents;
  }
  .el-setup-li-title {
    grid-area: title;
  }
  .el-setup-li-meta {
    grid-area: meta;
    margin-top: 0;
  }
  .el-setup-li-figures {
    grid-area: figures;
    justify-content: flex-start;
  }
  .el-setup-li > .el-setup-li-remove {
    grid-area: actions;
    justify-self: end;
  }
  .el-setup-li > .lp-ghost:last-child {
    grid-area: edit;
    margin-left: 12px;
  }
  .el-setup-notice {
    flex-wrap: wrap;
    row-gap: 0;
  }
  .el-setup-notice::after {
    content: '';
    flex-basis: 100%;
    order: 1;
  }
  .el-setup-notice > .lp-ghost:last-child {
    order: 2;
    margin-top: 6px;
    margin-left: 28px;
  }
  .el-setup-three {
    grid-template-columns: minmax(0, 1fr);
  }
  .el-setup-three-times {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
}

/* Door setup card (Door tab, managers): the two choice cards the loaded DoorSetupCard draws. */
.el-setting-choices {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 20px 22px;
}
.el-setting-choice {
  display: flex;
  align-items: start;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 10px;
}
/* The loaded radio dot sits 1px below the choice title's line box. */
.el-setting-choice > .lp-ghost {
  margin-top: 1px;
}
.el-choice-title {
  display: block;
  font-size: 13.5px;
  line-height: 1.5;
  font-weight: 500;
}
.el-choice-help {
  display: block;
  margin-top: 4px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--wb-text-3, #5f6b6a);
}

/* Notifications on the ds settings grammar (phase 7): the templates list, the delivery sections and
   the email editor. The page frame, trail, heading and cards are the `.sl-ds` and `.sl-rows` rules. */
.nl-template-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 22px;
}
.nl-template-row:not(:last-child),
.nl-suppression-row:not(:last-child),
.nl-editor-aside li:not(:last-child) {
  border-bottom: 1px solid var(--line-default);
}
.nl-template-row > div:first-child {
  min-width: 0;
  max-width: 100%;
}
.nl-template-name {
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
}
.sl-loading .nl-template-description {
  max-width: 576px;
  margin-top: 2px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.nl-template-actions {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.nl-template-actions > .lp-ghost {
  border-radius: 999px;
}
.nl-template-edit,
.nl-delivery-kind {
  height: 32px;
  padding-inline: 10px;
  font-size: 13px;
  font-weight: 500;
}
.nl-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.nl-section-header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px 16px;
}
.sl-loading .nl-section-header h2 {
  font-size: 15px;
  line-height: 1.4;
  font-weight: 600;
}
.sl-loading .nl-section-header p {
  margin-top: 3px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.nl-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.nl-delivery-filter > span {
  height: 26px;
  border: 1px solid transparent;
}
.nl-delivery-kind > span:last-child {
  display: flex;
  align-items: center;
  gap: 8px;
}
.nl-kind-caret {
  width: 16px;
  height: 16px;
}
/* The ds Table's min-w-120: below 480px the table scrolls inside its card, not squeezes. */
.nl-deliveries .atl-table table {
  min-width: 480px;
}
/* The ds Table: a 40px head in 12px/500 sentence case, 11px-padded cells, 16px insets. */
.nl-deliveries .atl-table th {
  height: 40px;
  padding: 0 16px;
  font: 500 12px/1.4 var(--font-ui);
  text-transform: none;
  letter-spacing: 0;
  color: var(--text-quiet);
}
.nl-deliveries .atl-table td {
  padding: 11px 16px;
}
.nl-suppression-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 16px;
}
.nl-suppression-row > div {
  display: flex;
  align-items: center;
  gap: 12px;
}
.nl-suppression-row .lp-ghost:first-child {
  max-width: 60%;
}
.nl-editor {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
}
.nl-editor-main {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.nl-editor-frame {
  overflow: hidden;
}
.nl-editor-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  padding: 6px 8px;
  border-bottom: 1px solid var(--line-default);
  background: var(--surface-sunken);
}
.nl-editor-toolbar .lp-ghost {
  flex-shrink: 0;
}
.nl-toolbar-divider {
  width: 1px;
  height: 20px;
  flex-shrink: 0;
  margin: 0 2px;
  background: var(--line-default);
}
.nl-toolbar-select {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
}
.nl-toolbar-select select {
  appearance: none;
  height: 32px;
  padding: 0 32px 0 12px;
  border: 1px solid var(--action-secondary-line);
  border-radius: var(--radius-control);
  background: var(--surface-raised);
  font: 400 13px/1.5 var(--font-ui);
  color: transparent;
  opacity: 1;
}
.nl-toolbar-select > .lp-ghost {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
}
.nl-editor-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 288px;
  padding: 12px 16px;
}
.nl-editor-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.nl-editor-actions > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.nl-action {
  display: inline-flex;
  align-items: center;
  height: 36px;
  padding: 0 14px;
  border-radius: 8px;
  font-size: 13.5px;
  line-height: 1.5;
  font-weight: 500;
}
.nl-action > span {
  visibility: hidden;
}
.nl-action-outline {
  border: 1px solid transparent;
}
.nl-editor-aside header {
  padding: 12px 16px;
  border-bottom: 1px solid var(--line-default);
}
.sl-loading .nl-editor-aside h2 {
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
}
.sl-loading .nl-editor-aside header p {
  margin-top: 4px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.nl-editor-aside li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 16px;
}
.nl-editor-aside li > div {
  min-width: 0;
  font-size: 13px;
  line-height: 1.5;
}
.nl-editor-aside li strong {
  font-weight: 500;
}
.nl-editor-aside li > div > span {
  display: block;
  font-size: 12px;
  line-height: 1.4;
  color: var(--text-quiet);
}
.nl-editor-aside .nl-required {
  margin-left: 4px;
  color: var(--status-danger-fg);
}
@media (min-width: 640px) {
  .nl-template-row {
    flex-direction: row;
  }
  .nl-template-row > div:first-child {
    max-width: none;
  }
  .nl-template-actions {
    width: auto;
    justify-content: flex-start;
  }
}
@media (min-width: 1024px) {
  .nl-editor-aside > .sl-rows {
    position: sticky;
    top: 24px;
  }
}
@media (min-width: 1280px) {
  .nl-editor {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .nl-editor-main {
    grid-column: span 3;
  }
  .nl-editor-aside {
    grid-column: span 2;
  }
}

.crm-page {
  padding: 30px clamp(20px, 4vw, 40px) 72px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  color: var(--wb-text-1, #16191a);
}
.crm-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 12px 24px;
  flex-wrap: wrap;
}
.crm-header h1 {
  margin: 0;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.crm-header p {
  margin-top: 6px;
  font-size: 14px;
  color: var(--wb-text-3, #5f6b6a);
}
.crm-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.crm-search {
  flex: 1 1 280px;
  position: relative;
}
.crm-search > svg {
  position: absolute;
  top: 10px;
  left: 11px;
  color: var(--wb-text-4, #8a9493);
  width: 15px;
  height: 15px;
}
.crm-search input {
  padding-left: 34px;
  padding-block: 0;
  height: 34px;
}
.crm-card {
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 12px;
  overflow: hidden;
  background: var(--wb-surface-0, #fff);
}
.crm-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 13.5px;
}
.crm-table th {
  height: 42px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--wb-text-4, #8a9493);
  text-align: left;
}
.crm-table td,
.crm-table th {
  padding: 10px 14px;
  border-bottom: 1px solid var(--wb-border-2, #eef1f0);
}
.crm-table tr[data-selected='true'] {
  background: var(--wb-brand-soft);
  outline: 1px solid var(--wb-brand-border);
  outline-offset: -1px;
}
.crm-table tbody tr {
  cursor: pointer;
}
.crm-table tbody tr:hover {
  background: var(--wb-surface-hover);
}
.crm-table td:first-child,
.crm-table th:first-child {
  width: 48px;
  padding-left: 18px;
  padding-right: 8px;
}
.crm-table .crm-right {
  text-align: right;
}
.crm-table td {
  height: 63px;
}
.crm-table .crm-name {
  font-size: 14px;
  font-weight: 500;
}
.crm-table .crm-sub {
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12.5px;
  color: var(--wb-text-4, #8a9493);
}
.crm-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.crm-mono {
  font-family: var(--font-geist-mono);
  font-variant-numeric: tabular-nums;
}
.crm-table a {
  color: inherit;
}
.crm-footer,
.crm-bulk {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  font-size: 12.5px;
  color: var(--wb-text-4, #8a9493);
}
.crm-footer {
  justify-content: space-between;
}
.crm-bulk {
  height: 42px;
  background: var(--wb-brand-soft);
  color: var(--wb-text-1, #16191a);
}
.crm-bulk [data-slot='button'] {
  height: 28px;
}
.crm-avatar {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--wb-surface-2, #eef1f0);
  color: var(--wb-text-2, #3d4645);
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 500;
}
.crm-avatar-lg {
  width: 44px;
  height: 44px;
  font-size: 16px;
}
.crm-chips {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.crm-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 7px;
  padding: 6px 11px;
  font-size: 13px;
  cursor: pointer;
}
.crm-chip[aria-pressed='true'] {
  background: var(--wb-brand-soft);
  border-color: var(--wb-brand-border);
  color: var(--wb-brand-deep);
}
.crm-segment-bar {
  padding: 16px 18px;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 12px;
  background: var(--wb-surface-1, #fafbfa);
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
}
.crm-segment-bar p {
  color: var(--wb-text-3, #5f6b6a);
  font-size: 13px;
  margin-top: 4px;
}
.crm-drawer {
  gap: 0;
  width: min(760px, 100vw);
  max-width: none;
  box-shadow: -24px 0 64px rgb(22 25 26 / 18%);
}
.crm-drawer-header {
  padding: 18px 22px 16px;
  border-bottom: 1px solid var(--wb-border-1, #e6e9e8);
}
.crm-drawer-tools {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.crm-drawer-tools button,
.crm-drawer-tools a {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 7px;
  color: var(--wb-text-3, #5f6b6a);
}
.crm-drawer-tools button:disabled {
  opacity: 0.3;
}
.crm-drawer-tools button:hover,
.crm-drawer-tools a:hover {
  background: var(--wb-surface-2, #eef1f0);
}
.crm-drawer-body {
  min-height: 0;
  overflow-y: auto;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 26px;
}
.crm-section h2 {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 12px;
}
.crm-section-sub {
  font-size: 12.5px;
  color: var(--wb-text-4, #8a9493);
  margin: -7px 0 12px;
}
.crm-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--wb-border-1, #e6e9e8);
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 12px;
  overflow: hidden;
}
.crm-stat {
  padding: 14px;
  background: var(--wb-surface-0, #fff);
}
.crm-stat > span {
  font-size: 12px;
  color: var(--wb-text-3, #5f6b6a);
}
.crm-stat strong {
  display: block;
  margin: 5px 0;
  font-family: var(--font-geist-mono);
  font-weight: 500;
  font-size: 19px;
}
.crm-stat small {
  font-size: 11.5px;
  color: var(--wb-text-4, #8a9493);
}
.crm-detail-columns {
  display: grid;
  grid-template-columns: minmax(0, 1.8fr) minmax(280px, 1fr);
  gap: 36px;
  align-items: start;
}
.crm-detail-main,
.crm-detail-aside {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 30px;
}
.crm-buyer {
  padding: 16px;
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 12px;
}
.crm-buyer a {
  color: var(--wb-text-1, #16191a);
}
.crm-kv {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 7px 0;
  font-size: 13px;
}
.crm-kv > :first-child {
  color: var(--wb-text-3, #5f6b6a);
}
.crm-kv > :last-child {
  text-align: right;
  overflow-wrap: anywhere;
}
.crm-money-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 16px;
}
.crm-money-stats small {
  color: var(--wb-text-3, #5f6b6a);
  font-size: 12px;
}
.crm-money-stats strong {
  display: block;
  font-family: var(--font-geist-mono);
  font-size: 23px;
  font-weight: 500;
  margin-top: 4px;
}
.crm-banner {
  border: 1px solid var(--wb-warning-border);
  background: var(--wb-warning-soft);
  color: var(--wb-warning-fg);
  border-radius: 12px;
  padding: 14px 16px;
  font-size: 13px;
}
.crm-banner p {
  margin-top: 5px;
  line-height: 1.55;
}
.crm-event-orders {
  border: 1px solid var(--wb-border-1, #e6e9e8);
  border-radius: 12px;
  overflow: hidden;
}
.crm-event-orders header {
  padding: 14px 16px;
  background: var(--wb-surface-1, #fafbfa);
}
.crm-event-orders a {
  display: grid;
  grid-template-columns: 100px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 13px 16px;
  border-top: 1px solid var(--wb-border-2, #eef1f0);
  font-size: 13px;
  color: var(--wb-text-1, #16191a);
}
.crm-event-orders a:hover {
  background: var(--wb-surface-hover);
}
@media (max-width: 900px) {
  .crm-detail-columns {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 560px) {
  .crm-page {
    padding: 24px 16px 72px;
  }
  .crm-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .crm-drawer-header,
  .crm-drawer-body {
    padding: 16px;
  }
  .crm-segment-bar {
    align-items: flex-start;
    flex-direction: column;
  }
  .crm-money-stats strong {
    font-size: 18px;
  }
}

.crm-drawer .crm-drawer-header > div:first-child {
  padding-right: 215px;
}
@media (max-width: 560px) {
  .crm-drawer .crm-drawer-header {
    padding-top: 56px;
  }
  .crm-drawer .crm-drawer-header > div:first-child {
    padding-right: 0;
  }
}

.crm-drawer-scrim {
  background: rgba(22, 25, 26, 0.28);
}
.crm-segment-dialog {
  inset: auto !important;
  left: 50% !important;
  top: 50% !important;
  height: auto !important;
  max-height: 90vh;
  width: min(640px, calc(100vw - 32px)) !important;
  max-width: none !important;
  transform: translate(-50%, -50%);
  gap: 0;
  overflow: hidden;
  border-radius: 14px;
  animation: none !important;
}
.crm-banner.crm-banner-info {
  border-color: color-mix(in srgb, var(--wb-info-dot) 25%, transparent);
  background: var(--wb-info-soft);
  color: var(--wb-info-fg);
}
.crm-banner.crm-banner-danger {
  border-color: var(--wb-danger-border);
  background: var(--wb-danger-soft);
  color: var(--wb-danger-fg);
}

.crm-orders-table {
  min-width: 940px;
}
/* The card's brand and last four, as the last column. It is secondary, so it shows from 1440px
   only: there, beside the 240px sidebar, the Buyer column keeps about the width it has at 1280px
   without these 136px. Narrower, the table keeps its seven columns rather than squeeze Buyer. */
.crm-orders-table .crm-orders-payment {
  display: none;
  width: 136px;
}
@media (min-width: 1440px) {
  .crm-orders-table .crm-orders-payment {
    display: table-cell;
  }
}
.crm-customers-table {
  min-width: 900px;
}
.crm-order-summary {
  max-width: 85ch;
}
.crm-record-navigation {
  position: absolute;
  right: 16px;
  top: 18px;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.crm-customer-page {
  max-width: 1000px;
}
.crm-timeline-connector {
  position: absolute;
  bottom: 0;
  left: 13px;
  top: 28px;
  width: 1px;
  background: var(--wb-border-1, #e6e9e8);
}
.crm-email-filter {
  width: 180px;
}
.crm-date-filter {
  width: 160px;
}

/*
 * The Events list (/events). Side-imported by events-page.tsx, so it ships with the page's lazy
 * chunk and stays out of the app stylesheet; the loading shell's hashed first-paint stylesheet
 * carries it too (`loading-shell-assets.ts`), so the skeleton and the live page draw from one source. Every colour is a v2 token and every size a step of the type scale. The
 * `.events-*` classes are the skeleton's and the geometry matrix's contract: keep their names.
 */

/* ── Page ─────────────────────────────────────────────────────────────────── */

.events-page {
  padding: 28px clamp(20px, 4vw, 40px) 96px;
  display: flex;
  flex-direction: column;
  gap: 22px;
  color: var(--text-primary);
}
.events-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}
.events-header h1 {
  margin: 0;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
}
.events-top-title {
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
}

/* ── Toolbar ──────────────────────────────────────────────────────────────── */

.events-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.events-search {
  flex: 1 1 220px;
  max-width: 320px;
}
.events-spacer {
  flex: 1;
}
.events-sort {
  width: 150px;
}

/* ── Empty states ─────────────────────────────────────────────────────────── */

.events-first-run {
  border: 1px dashed var(--line-dashed);
  border-radius: var(--radius-card);
  padding: 56px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
}
.events-first-run > svg {
  width: 28px;
  height: 28px;
  color: var(--brand-mark);
}
.events-first-run-title {
  font-size: 17px;
  font-weight: 600;
}
.events-first-run-body {
  font-size: 14px;
  color: var(--text-quiet);
  max-width: 46ch;
  text-wrap: pretty;
}
.events-first-run .events-create {
  margin-top: 8px;
}
.events-empty {
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  padding: 48px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
}
.events-empty-title {
  font-size: 15px;
  font-weight: 600;
}
.events-empty-body {
  font-size: 13.5px;
  color: var(--text-quiet);
}

/* ── List ─────────────────────────────────────────────────────────────────── */

.events-list {
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  container-type: inline-size;
}
.events-thead {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 16px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--line-subtle);
  background: var(--surface-sunken);
  border-radius: var(--radius-card) var(--radius-card) 0 0;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--text-quiet);
}
.events-thead .events-col-event {
  padding-left: 68px;
}
/* Under about 760px of content the cells drop below the name, so the header would point at
   nothing. */
@container (max-width: 760px) {
  .events-thead {
    display: none;
  }
}
.events-col-event {
  flex: 1 1 280px;
  min-width: 240px;
}
.events-cells {
  flex: 0 1 auto;
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 100%;
}
.events-col-status {
  width: 110px;
  flex-shrink: 0;
}
.events-col-a {
  flex: 0 1 220px;
  min-width: 150px;
  width: 220px;
}
.events-col-b {
  width: 64px;
  flex-shrink: 0;
  text-align: right;
}
.events-col-c {
  width: 90px;
  flex-shrink: 0;
  text-align: right;
}
.events-col-menu {
  width: 32px;
  flex-shrink: 0;
}
/* Keep every metric reachable when the identity and metrics use separate rows. */
@container (max-width: 560px) {
  .events-cells {
    width: 100%;
    flex-wrap: wrap;
    gap: 10px 16px;
  }
  .events-col-status {
    width: 110px;
  }
  .events-col-a {
    flex: 1 1 150px;
  }
  .events-col-menu {
    margin-left: auto;
  }
}

.events-group {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 16px 16px 6px;
  border-bottom: 1px solid var(--line-subtle);
  line-height: 1.5;
}
.events-group h2 {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
}
.events-group span {
  font-size: 12.5px;
  color: var(--text-faint);
}

.events-row {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line-subtle);
  cursor: pointer;
  /* Set here, not inherited: the status pill sits on this line, so its strut sets the column's
     height (14px × 1.5 = 21px, under the 22px pill). */
  font-size: 14px;
  line-height: 1.5;
  transition: background var(--motion-fast);
}
.events-row:hover {
  background: var(--surface-hover);
}
.events-who {
  display: flex;
  align-items: center;
  gap: 16px;
}

.events-tile {
  flex-shrink: 0;
  width: 52px;
  height: 56px;
  border-radius: var(--radius-control);
  border: 1px solid var(--line-default);
  background: var(--surface-raised);
  color: var(--text-primary);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
}
.events-tile-dow {
  font-size: 11px; /* the type scale's smallest step */
  font-weight: 600;
  color: var(--text-faint);
}
.events-tile-day {
  font-size: 20px;
  font-weight: 600;
  line-height: 1;
}
.events-tile-mon {
  font-size: 11px;
  font-weight: 500;
  color: var(--text-quiet);
}
.events-tile[data-soon] {
  border-color: var(--brand-line);
  background: var(--brand-soft);
  color: var(--status-brand-fg);
}
.events-tile[data-soon] .events-tile-dow,
.events-tile[data-soon] .events-tile-mon {
  color: inherit;
}

.events-text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.events-name-line {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.events-name {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-decoration: none;
}
.events-name:hover {
  color: var(--text-primary);
  text-decoration: underline;
}
.events-name:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
  border-radius: 2px;
}
.events-seated {
  width: 14px;
  height: 14px;
  color: var(--text-faint);
  flex-shrink: 0;
}
.events-line,
.events-note,
.events-hint {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.events-line {
  font-size: 13px;
  color: var(--text-quiet);
}
.events-note {
  font-size: 12.5px;
  color: var(--status-warning-fg);
}
.events-hint {
  font-size: 12.5px;
  color: var(--text-faint);
}

/* Column A: a labelled bar, a draft's setup, or one quiet line. */
.events-col-a {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.events-a-text {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 12.5px;
}
.events-a-quiet {
  font-size: 12.5px;
  color: var(--text-faint);
}
.events-tabular {
  font-variant-numeric: tabular-nums;
}
.events-a-label {
  font-weight: 500;
  color: var(--text-secondary);
}
.events-a-label[data-tone='ahead'] {
  color: var(--status-success-fg);
}
.events-a-label[data-tone='behind'] {
  color: var(--status-warning-fg);
}
.events-a-label[data-tone='muted'] {
  color: var(--text-quiet);
}
.events-setup-label {
  font-weight: 500;
}
.events-setup-next {
  color: var(--text-faint);
}
.events-bar {
  position: relative;
  height: 6px;
  border-radius: var(--radius-pill);
  background: var(--surface-sunken);
}
.events-bar-fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  border-radius: var(--radius-pill);
  background: var(--brand-mark);
}
.events-bar-fill[data-fill='behind'] {
  background: var(--status-warning-dot);
}
.events-bar-fill[data-fill='soldout'] {
  background: var(--status-info-dot);
}
.events-bar-fill[data-fill='inactive'] {
  background: var(--line-dashed);
}
.events-tick {
  position: absolute;
  top: -3px;
  bottom: -3px;
  width: 2px;
  margin-left: -1px;
  border-radius: var(--radius-pill);
  background: var(--text-primary);
}
.events-steps {
  display: flex;
  gap: 3px;
}
.events-step {
  flex: 1;
  height: 6px;
  border-radius: var(--radius-pill);
  background: var(--line-default);
}
.events-step[data-done] {
  background: var(--brand-mark);
}
@media (prefers-reduced-motion: reduce) {
  .events-row {
    transition: none;
  }
}

.events-figure {
  font-variant-numeric: tabular-nums;
  font-size: 13px;
  color: var(--text-primary);
}
.events-figure[data-tone='muted'] {
  color: var(--text-faint);
}
.events-figure-sub {
  display: block;
  font-size: 11px;
  color: var(--text-faint);
}

.events-foot {
  padding: 12px 16px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-faint);
}

.events-skel-tile {
  width: 52px;
  height: 56px;
  border-radius: var(--radius-control);
  flex-shrink: 0;
}

/* ── Dialogs ──────────────────────────────────────────────────────────────── */

.events-facts {
  border: 1px solid var(--line-default);
  border-radius: var(--radius-control);
  padding: 4px 14px;
  /* ConfirmDialog's body has no gap, so the facts hold the 16px above the acknowledgement. */
  margin: 0 0 16px;
}
.events-fact {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid var(--line-subtle);
  font-size: 13.5px;
}
.events-fact dt {
  color: var(--text-quiet);
}
.events-fact dd {
  margin: 0;
  font-variant-numeric: tabular-nums;
}
.events-fact-error {
  color: var(--status-danger-fg);
}
/* ── Calendar ─────────────────────────────────────────────────────────────── */

.events-cal {
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  overflow: hidden;
  line-height: 1.5;
  container-type: inline-size;
}
.events-cal-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line-subtle);
}
.events-cal-month {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  min-width: 150px;
  text-align: center;
}
.events-cal-meta {
  margin-left: auto;
  font-size: 12.5px;
  color: var(--text-quiet);
}
@container (max-width: 560px) {
  .events-cal-bar {
    flex-wrap: wrap;
  }
  .events-cal-meta {
    flex: 1 0 100%;
    margin-left: 0;
    min-height: 18.75px;
  }
}
.events-cal-dows {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  background: var(--surface-sunken);
  border-bottom: 1px solid var(--line-subtle);
}
.events-cal-dows span {
  padding: 8px 10px;
  font-size: 12px; /* the weekday labels, in sentence case */
  font-weight: 600;
  color: var(--text-faint);
}
.events-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.events-cal-cell {
  min-height: 112px;
  padding: 6px;
  border-right: 1px solid var(--line-subtle);
  border-bottom: 1px solid var(--line-subtle);
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  background: var(--surface-raised);
}
.events-cal-cell[data-outside] {
  background: var(--surface-sunken);
}
.events-cal-day {
  align-self: flex-start;
  min-width: 24px;
  height: 24px;
  padding: 0 4px;
  font-size: 12.5px;
  display: grid;
  place-items: center;
  color: var(--text-primary);
}
.events-cal-cell[data-past] .events-cal-day {
  color: var(--text-faint);
}
.events-cal-cell[data-outside] .events-cal-day {
  color: var(--text-faint);
}
/* 10b: the token map's brand-mark row is amended here. A filled pill that carries text takes the
   primary action pair, which holds text contrast; brand-mark is for marks without text. */
.events-cal-day[data-today] {
  padding: 0 6px;
  border-radius: var(--radius-pill);
  background: var(--action-primary-bg);
  color: var(--action-primary-fg);
  font-weight: 600;
}
.events-chip {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 5px 7px;
  border-radius: var(--radius-control);
  background: var(--surface-hover);
  border: 1px solid var(--line-subtle);
  color: var(--text-primary);
  text-decoration: none;
  min-width: 0;
}
.events-chip:hover {
  background: var(--brand-soft);
  border-color: var(--brand-line);
  color: var(--text-primary);
  text-decoration: none;
}
.events-chip:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 1px;
}
.events-chip[data-draft] {
  background: var(--surface-raised);
  border: 1px dashed var(--line-dashed);
  color: var(--text-secondary);
}
.events-chip[data-draft]:hover {
  border-color: var(--brand-mark);
}
.events-chip-head {
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
}
.events-chip-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--status-neutral-dot);
}
.events-chip-dot[data-tone='success'] {
  background: var(--status-success-dot);
}
.events-chip-dot[data-tone='info'] {
  background: var(--status-info-dot);
}
.events-chip-dot[data-tone='warning'] {
  background: var(--status-warning-dot);
}
.events-chip-dot[data-tone='danger'] {
  background: var(--status-danger-dot);
}
.events-chip-name,
.events-chip-meta {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.events-chip-name {
  font-size: 12px;
  font-weight: 500;
}
.events-chip-meta {
  font-size: 11px;
  color: var(--text-quiet);
  padding-left: 11px;
}
.events-chip[data-draft] .events-chip-meta {
  color: var(--text-faint);
  padding-left: 0;
}
.events-cal-undated {
  padding: 10px 14px;
  font-size: 12.5px;
  color: var(--text-quiet);
  border-top: 1px solid var(--line-subtle);
}

/*
 * The event setup editor's own sheet. It loads with the components that import it (a side effect of
 * `import './setup.css'`), never with the app-wide stylesheet, so nothing here counts against the
 * `styles` budget. Sections 1-16 are plain CSS on the workbench tokens only (`--wb-*`, plus
 * `--ring`, the app's one focus colour, and the mono faces `--font-geist-mono` and, for
 * `.setup-mono`, `--font-mono`); every colour re-themes for `.dark`, `.hc-light` and `.hc-dark`
 * through them. No transitions there: workbench primitives do not animate. The one motion is the
 * saving spinner, which stops under `prefers-reduced-motion`.
 * Sections 17-24 are the editor page's own rules, folded in from its old stylesheet as they were,
 * with their transitions and the app tokens they read (`--destructive`, `--input`, `--brand-foreground`).
 *
 * Sections, in order. A later task appends its own section at the end and lists it here.
 *   1. Section head    .setup-sec-head            the question and its one lead sentence; no ring on its script focus
 *   2. Setting rows    .setup-rows, .setup-row     always open: head (label, value), fields; headless and switch rows
 *   3. List card       .setup-card, .setup-list    a card header and its rows (grip, name, meta, Edit)
 *   4. Saved indicator .setup-saved               saved / saving / couldn't save
 *   5. Save bar        .setup-savebar             the live event's unsaved-changes bar
 *   6. Phone           @media (max-width: 899px)  row heads keep label and value on a line, 44px targets (the ui kit's controls in a row, a switch's hit area); list rows and notices wrap again under 600px (3, 13)
 *   7. Section dot     .setup-dot                 none / started / complete / missing / locked
 *   8. Rail            .setup-rail                the section links from 900px, seam, help
 *   9. Picker          .setup-picker, .setup-strip the phone's section button, list and strip
 *  10. Nav switch      .setup-nav                 rail from 900px, picker below
 *  11. Section body    .setup-sec, .setup-group   head, fields, rows; kind cards, time row, links
 *  12. Shell           .setup-head, .setup, .setup-foot   the new-event page's header, two columns, footer
 *  13. Notices, checks, key-value, chips, pills   .setup-notice (__title), .setup-checks, .setup-kv, .setup-chip, .setup-pill
 *  14. Tickets section .setup-li__handle, .setup-li--group, .setup-fees, .setup-fee-modes   the type list's handle, groups, Fees and tax, the service fee tiles, the breakdown dialog
 *  15. Page section   .setup-media, .setup-thumb, .setup-mono   row values: art, link
 *  16. Review section  .setup-review__*          card bodies, stacked lines, fix links, the external glyph
 *  17. Setup root      .setup-root, .setup-section   the page's tokens, the section column, reduced motion
 *  18. Field kit       .setup-fields, .setup-field, .setup-label (--sr), .setup-hint, .setup-error, .setup-input; the ui kit's fields in a row on the same surface
 *  19. Choices         .setup-choices, .setup-choice   radio cards, the columns variant, the mark's pop
 *  20. Buttons         .setup-primary, .setup-secondary, .setup-text-button, .setup-ticket-add, .setup-enter
 *  21. Approval        .setup-approval            the registration's approval switches
 *  22. Public link     .setup-public-link         the slug input behind its host prefix
 *  23. Done screen     .setup-heading, .setup-eyebrow, .setup-summary, .setup-exit, .setup-next-link
 *  24. Timed rules     .setup-rule, .setup-rule-dates, .setup-rule-grid, .setup-day-chips, .setup-exceptions, .setup-week, .setup-slot-count
 *  25. Checkout rows   .setup-checkout-group, .setup-number, .setup-checkline, .setup-policy   sub-head groups, unit inputs, the checkbox line, the policy block in a row
 *  26. Policies        .setup-policies, .setup-amount   the timed policy groups; a number with its unit and range note
 *  27. Seats and pricing .setup-seats, .setup-price, .setup-prices__foot, .setup-disclosure   the seat map's rows, a section's price, its save state, the 3D fields, the Map tools fold
 *  28. Live event      .setup-page--tab, .setup-input--changed, .setup-lock   the editor on the event page, a changed field, a locked field's reason
 *  29. Status          .setup-status-group, .setup-status-action   the take-it-down group under its sub head; a button over its hint
 *  30. Seat notices    .setup-seats__notices      what the live seat map needs from the organizer, above the prices
 *  31. Ticket type sheet .setup-sheet             the sheet's 44px targets on the phone
 */

/* 1. Section head (a sub head's heading is an h3) */
.setup-sec-head h3,
.setup-sec-head h2 {
  margin: 0;
  font-size: var(--wb-text-3xl);
  font-weight: 600;
  line-height: var(--wb-leading-tight);
  letter-spacing: var(--wb-tracking-display);
  color: var(--wb-text-1);
  text-wrap: balance;
}
/* A section's heading takes focus only from script (tabindex -1: the landing, a section change),
   for assistive tech. Tab never reaches it, so it draws no ring. */
.setup-sec-head [tabindex='-1']:focus {
  outline: none;
}
.setup-sec-head p {
  margin: 6px 0 0;
  max-width: 64ch;
  font-size: var(--wb-text-md-plus);
  line-height: 1.5;
  color: var(--wb-text-3);
  text-wrap: pretty;
}

/* 2. Setting rows, always open: the head line (label, value summary, a switch at the right on a
   switch row), then the fields. A default's value reads muted, a set value strong; there is no
   "default" tag. A row with no head starts its fields flush. */
.setup-rows {
  display: flex;
  flex-direction: column;
}
.setup-row {
  border-top: 1px solid var(--wb-divider);
  padding: 14px 0;
}
.setup-row:last-child {
  border-bottom: 1px solid var(--wb-divider);
}
.setup-row__head {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: var(--wb-control-height-sm);
}
.setup-row__label {
  flex: 0 0 150px;
  min-width: 0;
  font-size: var(--wb-text-md-plus);
  font-weight: 500;
  line-height: 1.4;
  color: var(--wb-text-1);
}
.setup-row__value {
  flex: 1 1 0;
  min-width: 0;
  font-size: var(--wb-text-md-plus);
  line-height: 1.45;
  color: var(--wb-text-3);
}
.setup-row__value[data-default='false'] {
  font-weight: 500;
  color: var(--wb-text-1);
}
/* A value that mixes a kept default with a changed part strongs only the changed part. */
.setup-row__value strong {
  font-weight: 500;
  color: var(--wb-text-1);
}
.setup-row__lock {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-weight: 400;
  color: var(--wb-text-3);
}
.setup-row__lock::before {
  content: '·' / '';
  margin: 0 3px 0 6px;
}
/* A head with the label alone has no value for the lock to join. */
.setup-row__value[data-empty] > .setup-row__lock::before {
  content: none;
}
.setup-row__lock svg {
  flex: none;
  width: 12px;
  height: 12px;
}
.setup-row__actions {
  flex: none;
  display: flex;
  align-items: center;
  gap: 4px;
}
.setup-row__body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 0 0 2px;
}
.setup-row__head + .setup-row__body {
  padding-top: 12px;
}

/* 3. List card: a header with its action, then rows of grip, name and meta, figures, Edit. */
.setup-card {
  border: 1px solid var(--wb-border-1);
  border-radius: var(--wb-radius-xl);
  background: var(--wb-surface-card);
  overflow: hidden;
}
.setup-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--wb-divider);
}
.setup-card__head h3 {
  margin: 0;
  font-size: var(--wb-text-base);
  font-weight: 600;
  line-height: var(--wb-leading-tight);
  color: var(--wb-text-1);
}
.setup-list {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}
.setup-li {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border-top: 1px solid var(--wb-divider);
}
.setup-li:first-child {
  border-top: 0;
}
.setup-li__grip {
  flex: none;
  width: 14px;
  height: 14px;
  color: var(--wb-text-4);
}
.setup-li__name {
  flex: 1 1 0;
  min-width: 0;
  font-size: var(--wb-text-md-plus);
  font-weight: 500;
  line-height: 1.4;
  color: var(--wb-text-1);
}
.setup-li__meta {
  display: block;
  margin-top: 2px;
  font-size: var(--wb-text-sm-plus);
  font-weight: 400;
  color: var(--wb-text-3);
}
.setup-li__figures {
  flex: none;
  min-width: 96px;
  font-family: var(--font-geist-mono);
  font-size: var(--wb-text-sm);
  font-variant-numeric: tabular-nums;
  text-align: right;
  color: var(--wb-text-2);
}
/* Under 600px the card header's actions drop under its title, and a row wraps into three lines:
   grip, name (and tag) and Edit; the meta line; the figures and the row's own actions (Remove).
   The second and third lines start at the name's left edge. */
@media (max-width: 599px) {
  .setup-card__head {
    flex-wrap: wrap;
    row-gap: 4px;
  }
  .setup-card__head h3 {
    flex: 1 1 100%;
  }
  .setup-li:not(.setup-li--group) {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas:
      'grip title edit'
      '. meta meta'
      '. figures actions';
    align-items: center;
    gap: 2px 0;
  }
  .setup-li > .setup-li__grip {
    grid-area: grip;
    margin-right: 12px;
  }
  /* The handle keeps its -4px left pull from §14; 8px here nets the same 12px to the name. */
  .setup-li > .setup-li__handle {
    grid-area: grip;
    margin-right: 8px;
  }
  .setup-li__name {
    display: contents;
  }
  .setup-li__title {
    grid-area: title;
  }
  .setup-li__meta {
    grid-area: meta;
    margin-top: 0;
  }
  .setup-li__figures {
    grid-area: figures;
    text-align: left;
  }
  .setup-li > .setup-li__remove {
    grid-area: actions;
    justify-self: end;
  }
  .setup-li > .setup-li__edit {
    grid-area: edit;
    margin-left: 12px;
  }
}

/* 4. Saved indicator */
.setup-saved {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: var(--wb-text-sm-plus);
  color: var(--wb-text-3);
  white-space: nowrap;
}
.setup-saved__status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.setup-saved[data-state='saved'] .setup-saved__status::before,
.setup-saved[data-state='error'] .setup-saved__status::before {
  content: '';
  flex: none;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--wb-success-dot);
}
.setup-saved[data-state='error'] .setup-saved__status {
  color: var(--wb-danger-fg);
}
.setup-saved[data-state='error'] .setup-saved__status::before {
  background: var(--wb-danger-dot);
}
.setup-saved__spinner {
  flex: none;
  width: 13px;
  height: 13px;
  animation: setup-spin 900ms linear infinite;
}
@keyframes setup-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .setup-saved__spinner {
    animation: none;
  }
}
.setup-saved__retry {
  margin: 0;
  padding: 0 4px;
  min-height: var(--wb-control-height-xs);
  border: 0;
  border-radius: var(--wb-radius-md);
  background: none;
  font: inherit;
  font-weight: 500;
  color: var(--wb-text-link);
  cursor: pointer;
}
.setup-saved__retry:hover {
  color: var(--wb-text-link-hover);
}
.setup-saved__retry:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}

/* 5. Save bar: stuck above the phone's tab bar under lg, 16px off the window's bottom from lg. */
.setup-savebar {
  position: sticky;
  bottom: calc(3.5rem + env(safe-area-inset-bottom) + 16px);
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 12px 12px 16px;
  border: 1px solid var(--wb-border-1);
  border-radius: var(--wb-radius-xl);
  background: var(--wb-surface-0);
  box-shadow: var(--wb-shadow-save-bar);
}
@media (min-width: 1024px) {
  .setup-savebar {
    bottom: 16px;
  }
}
.setup-savebar__message {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  font-size: var(--wb-text-md-plus);
  line-height: 1.45;
  color: var(--wb-text-2);
  text-wrap: pretty;
}
.setup-savebar__message strong {
  font-weight: 500;
  color: var(--wb-text-1);
}
.setup-savebar__actions {
  flex: none;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* 6. Phone: the label and the value share the head line (the value wraps under the label only
   when both do not fit), a switch stays at the right; the fields follow full width. */
@media (max-width: 899px) {
  .setup-row {
    padding: 12px 0;
  }
  .setup-row__head {
    flex-wrap: wrap;
    gap: 2px 12px;
  }
  .setup-row__label {
    flex: 0 1 auto;
  }
  .setup-row__value {
    flex: 1 1 12ch;
  }
  .setup-row__actions {
    margin-left: auto;
  }
  /* The lock gets its own line under the value, without the joining dot. */
  .setup-row__lock {
    display: flex;
    margin-top: 2px;
  }
  .setup-row__lock::before {
    content: none;
  }
  .setup-saved__retry {
    min-height: 44px;
  }
  .setup-li {
    gap: 12px;
    padding: 10px 12px 10px 14px;
  }
  .setup-li__figures {
    min-width: 0;
  }
  .setup-card__head {
    padding: 8px 12px 8px 16px;
  }
  .setup-li__edit,
  .setup-card__head > button,
  .setup-savebar__actions > button {
    min-height: 44px;
  }
  /* The ui kit's buttons and fields inside a row (Add a fee, Save as v2, Add a question, Manage
     list, the tax and hex fields), Status's actions, a section price's Edit and the header's
     Preview page stand 44px. Link-styled buttons inside a line of text keep their line. */
  .setup-row__body [data-slot='button'],
  .setup-row__body [data-slot='input'],
  .setup-status-action > [data-slot='button'],
  [data-slot='section-prices'] [data-slot='button'],
  .setup-head__preview {
    min-height: 44px;
  }
  /* A row's switch keeps its 36px track; its target grows to 44px tall around it. */
  .setup-row__actions > [role='switch'] {
    position: relative;
  }
  .setup-row__actions > [role='switch']::before {
    content: '';
    position: absolute;
    top: calc(50% - 22px);
    bottom: calc(50% - 22px);
    left: -8px;
    right: -8px;
  }
  .setup-savebar {
    flex-wrap: wrap;
  }
  .setup-savebar__message {
    flex-basis: 100%;
  }
  .setup-savebar__actions {
    flex: 1 1 100%;
    justify-content: flex-end;
  }
}

/*
 * 7. Section dot: a 16px disc. The check and the lock are drawn; the state's words are sr-only.
 * A section not opened (`--none`) keeps the empty box, so its label does not move when a dot comes.
 */
.setup-dot {
  flex: none;
  display: grid;
  place-items: center;
  width: 16px;
  height: 16px;
  box-sizing: border-box;
  border: 1.5px solid transparent;
  border-radius: 50%;
}
.setup-dot--complete {
  border-color: var(--wb-brand);
  background: var(--wb-brand);
  color: var(--wb-text-inverse);
}
.setup-dot--complete svg {
  width: 10px;
  height: 10px;
}
.setup-dot--locked {
  border-color: var(--wb-border-1);
  background: var(--wb-surface-2);
  color: var(--wb-text-3);
}
.setup-dot--locked svg {
  width: 9px;
  height: 9px;
}
.setup-dot--started {
  border-color: var(--wb-warning-dot);
  background: var(--wb-warning-soft);
}
.setup-dot--missing {
  border-color: var(--wb-danger-dot);
  background: var(--wb-danger-soft);
}
.setup-dot i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--wb-warning-dot);
}
.setup-dot--missing i {
  background: var(--wb-danger-dot);
}

/* 8. Rail: 232px of 38px links, sticky under the app's top bar. */
.setup-rail {
  position: sticky;
  top: calc(var(--app-header-height, 0px) + 16px);
  display: flex;
  flex: 0 0 232px;
  flex-direction: column;
  gap: 2px;
  width: 232px;
}
.setup-rail__link {
  display: flex;
  align-items: center;
  gap: 10px;
  height: var(--wb-control-height-xl);
  padding: 0 12px;
  border-radius: var(--wb-radius-lg);
  font-size: var(--wb-text-md);
  font-weight: 500;
  color: var(--wb-text-2);
  text-decoration: none;
}
.setup-rail__link:hover {
  background: var(--wb-surface-hover);
}
.setup-rail__link[aria-current='page'] {
  background: var(--wb-brand-soft);
  color: var(--wb-brand);
}
/* Not navigable yet (before the draft exists): drawn, quiet, no hover. */
.setup-rail__link[aria-disabled='true'] {
  color: var(--wb-text-4);
  cursor: default;
}
.setup-rail__link[aria-disabled='true']:hover {
  background: none;
}
.setup-rail__link:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}
.setup-rail__name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.setup-rail__link small,
.setup-picker__option small {
  flex: none;
  margin-left: auto;
  font-size: var(--wb-text-xs);
  font-weight: 400;
  color: var(--wb-text-4);
}
.setup-rail__seam {
  margin: 10px 12px;
  border-top: 1px solid var(--wb-border-2);
}
.setup-rail__help {
  padding: 12px;
  font-size: var(--wb-text-sm);
  line-height: 1.5;
  color: var(--wb-text-3);
  text-wrap: pretty;
}

/* 9. Picker: the 44px button, its list, and the strip of one bar per section under it. */
.setup-picker {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.setup-picker__button {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: 44px;
  margin: 0;
  padding: 0 12px;
  border: 1px solid var(--wb-border-1);
  border-radius: var(--wb-radius-xl);
  background: var(--wb-surface-0);
  font: inherit;
  font-size: var(--wb-text-base);
  font-weight: 500;
  color: var(--wb-text-1);
  text-align: left;
  cursor: pointer;
}
.setup-picker__button:focus-visible,
.setup-picker__option:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}
.setup-picker__name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.setup-picker__step {
  flex: none;
  margin-left: auto;
  font-size: var(--wb-text-sm);
  font-weight: 400;
  color: var(--wb-text-3);
}
.setup-picker__chevron {
  flex: none;
  width: 16px;
  height: 16px;
  color: var(--wb-text-3);
}
/* Unlayered, so it wins over the popover's utility classes. */
.setup-picker__list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: var(--radix-popover-trigger-width);
  padding: 4px;
  border: 1px solid var(--wb-border-1);
  border-radius: var(--wb-radius-xl);
  background: var(--wb-surface-0);
  box-shadow: var(--wb-shadow-menu);
  color: var(--wb-text-2);
}
.setup-picker__option {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 0 10px;
  border-radius: var(--wb-radius-lg);
  font-size: var(--wb-text-base);
  font-weight: 500;
  cursor: pointer;
}
.setup-picker__option:hover {
  background: var(--wb-surface-hover);
}
.setup-picker__option[aria-selected='true'] {
  background: var(--wb-brand-soft);
  color: var(--wb-brand);
}
.setup-picker__option[aria-disabled='true'] {
  color: var(--wb-text-4);
  cursor: default;
}
.setup-picker__option[aria-disabled='true']:hover {
  background: none;
}
.setup-strip {
  display: flex;
  gap: 6px;
  overflow: hidden;
}
.setup-strip span {
  flex: 1;
  height: 4px;
  border-radius: 2px;
  background: var(--wb-border-1);
}
.setup-strip span[data-state='complete'] {
  background: var(--wb-brand);
}
.setup-strip span[data-state='current'] {
  background: var(--wb-ink);
}

/* 10. Nav switch: the rail from 900px, the picker below; both are in the DOM. */
.setup-nav {
  display: contents;
}
.setup-nav > .setup-picker {
  display: none;
}
@media (max-width: 899px) {
  .setup-nav > .setup-rail {
    display: none;
  }
  .setup-nav > .setup-picker {
    display: flex;
  }
}

/* 11. Section body: the head, one group of fields (label above, hint below), then the rows. */
.setup-sec {
  display: flex;
  flex-direction: column;
  gap: 28px;
  min-width: 0;
}
.setup-group {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}
/* The three event kinds side by side from 900px (two when timed admission is not offered). */
@media (min-width: 900px) {
  .setup-kinds > .setup-choices--columns {
    grid-template-columns: repeat(var(--setup-kinds, 3), minmax(0, 1fr));
  }
}
.setup-kinds > .setup-choices--columns > .setup-choice {
  align-items: flex-start;
}
/* Date, show time and end in one row; under 600px the date takes the row and the times share one. */
.setup-three {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.setup-three__times {
  display: contents;
}
.setup-two {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width: 599px) {
  .setup-three {
    grid-template-columns: minmax(0, 1fr);
  }
  .setup-three__times {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
  .setup-two {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* A quiet line under a control: a lock reason, a notice. */
.setup-note {
  margin: 0;
  font-size: var(--wb-text-sm-plus);
  line-height: 1.5;
  color: var(--wb-text-3);
  text-wrap: pretty;
}
/* A link or a link-styled button inside a hint or note. */
.setup-link {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  color: var(--wb-text-link);
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, currentColor 40%, transparent);
  text-underline-offset: 2px;
  cursor: pointer;
}
.setup-link:hover {
  color: var(--wb-text-link-hover);
  text-decoration-color: currentColor;
}
.setup-link:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
  border-radius: 2px;
}
.setup-row__body .setup-input {
  max-width: 420px;
}
@media (max-width: 899px) {
  .setup-sec {
    gap: 20px;
  }
}

/* 12. Shell: the page header (name, Draft pill, the saved line and its facts, Preview and Publish),
   then the rail and the form side by side from 900px (the rail is 232px, the form at most 720px,
   left aligned); stacked below. The footer holds the saved indicator (or the reason Continue
   waits) and Continue. */
.setup-page {
  padding: 0 var(--wb-page-padding) 64px;
}
.setup-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    'title actions'
    'meta actions';
  column-gap: 24px;
  row-gap: 4px;
  align-items: center;
  padding: 24px 0 20px;
  border-bottom: 1px solid var(--wb-divider);
}
.setup-head__title {
  grid-area: title;
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.setup-head__title h1 {
  margin: 0;
  min-width: 0;
  overflow: hidden;
  font-size: var(--wb-text-2xl);
  font-weight: 600;
  line-height: var(--wb-leading-tight);
  letter-spacing: var(--wb-tracking-display);
  color: var(--wb-text-1);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.setup-head__meta {
  grid-area: meta;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-size: var(--wb-text-sm-plus);
  line-height: 1.5;
  color: var(--wb-text-3);
  text-wrap: pretty;
}
.setup-head__sep {
  color: var(--wb-text-4);
}
.setup-head__actions {
  grid-area: actions;
  display: flex;
  align-items: center;
  gap: 8px;
}
.setup-head__preview {
  display: inline-flex;
  align-items: center;
  height: var(--wb-control-height-md);
  padding: 0 14px;
  border: 1px solid var(--wb-border-1);
  border-radius: var(--wb-radius-md-plus);
  background: var(--wb-surface-0);
  font-size: var(--wb-text-md);
  font-weight: 500;
  color: var(--wb-text-1);
  text-decoration: none;
}
.setup-head__preview:hover {
  background: var(--wb-surface-tile);
  border-color: var(--wb-border-check);
}
.setup-head__preview:focus-visible,
.setup-head__publish:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}
.setup-head__publish {
  height: var(--wb-control-height-md);
  padding: 0 16px;
  font-size: var(--wb-text-md);
}
.setup {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  padding-top: 24px;
}
.setup-form {
  display: flex;
  flex-direction: column;
  gap: 28px;
  min-width: 0;
  max-width: 720px;
}
.setup-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 20px;
  padding-top: 20px;
  border-top: 1px solid var(--wb-divider);
}
.setup-foot__status {
  display: flex;
  align-items: center;
  min-height: var(--wb-control-height-sm);
  font-size: var(--wb-text-sm-plus);
  color: var(--wb-text-3);
}
@media (min-width: 900px) {
  .setup {
    grid-template-columns: 232px minmax(0, 720px);
    column-gap: 48px;
  }
}
@media (max-width: 899px) {
  .setup-head {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      'title'
      'meta'
      'actions';
    row-gap: 8px;
    padding-top: 16px;
  }
  .setup-head__title h1 {
    white-space: normal;
    font-size: var(--wb-text-xl);
  }
  .setup-head__actions {
    justify-content: flex-start;
  }
  .setup-page {
    padding-bottom: 40px;
  }
}

/* 13. Notices, checks, key-value, chips, pills: the small pieces Tickets and Review share. */
.setup-notice {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--wb-border-1);
  border-radius: var(--wb-radius-lg);
  background: var(--wb-surface-1);
  font-size: var(--wb-text-md);
  line-height: 1.45;
  color: var(--wb-text-2);
}
.setup-notice[data-tone='warn'] {
  border-color: var(--wb-warning-border);
  background: var(--wb-warning-soft);
  color: var(--wb-warning-strong);
}
.setup-notice[data-tone='block'] {
  border-color: var(--wb-danger-border);
  background: var(--wb-danger-soft);
  color: var(--wb-danger-strong);
}
.setup-notice[data-tone='ok'] {
  border-color: var(--wb-border-on-tint);
  background: var(--wb-success-soft);
  color: var(--wb-success-strong);
}
.setup-notice > svg {
  flex: none;
  width: 16px;
  height: 16px;
  margin-top: 1px;
}
.setup-notice__text {
  flex: 1 1 0;
  min-width: 0;
  text-wrap: pretty;
}
.setup-notice__title {
  display: block;
  font-weight: 600;
  color: var(--wb-text-1);
}
.setup-notice__action {
  flex: none;
  margin-left: auto;
  font-weight: 500;
  white-space: nowrap;
}
.setup-checks {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}
.setup-check {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-top: 1px solid var(--wb-divider);
  font-size: var(--wb-text-md);
  line-height: 1.45;
  color: var(--wb-text-2);
}
.setup-check:last-child {
  border-bottom: 1px solid var(--wb-divider);
}
.setup-check__ic {
  flex: none;
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  box-sizing: border-box;
  border-radius: 50%;
}
.setup-check__ic svg {
  width: 10px;
  height: 10px;
}
.setup-check__ic[data-tone='ok'] {
  background: var(--wb-brand);
  color: var(--wb-text-inverse);
}
.setup-check__ic[data-tone='block'] {
  background: var(--wb-danger-dot);
  color: var(--wb-text-inverse);
}
.setup-check__ic[data-tone='warn'] {
  border: 1.5px solid var(--wb-warning-dot);
  background: var(--wb-warning-soft);
  color: var(--wb-warning-strong);
}
.setup-check__text {
  flex: 1 1 0;
  min-width: 0;
}
.setup-check__fix {
  flex: none;
  margin-left: auto;
  font-weight: 500;
  color: var(--wb-text-link);
  white-space: nowrap;
}
.setup-kv {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 8px 16px;
  margin: 0;
  font-size: var(--wb-text-md);
  line-height: 1.45;
}
.setup-kv dt {
  color: var(--wb-text-3);
}
.setup-kv dd {
  margin: 0;
  min-width: 0;
  color: var(--wb-text-1);
}
.setup-chip {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 8px;
  border-radius: var(--wb-radius-md);
  background: var(--wb-surface-2);
  font-size: var(--wb-text-sm);
  font-weight: 500;
  color: var(--wb-text-2);
  white-space: nowrap;
}
.setup-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 22px;
  box-sizing: border-box;
  padding: 0 8px;
  border: 1px solid var(--wb-border-1);
  border-radius: var(--wb-radius-pill);
  background: var(--wb-surface-0);
  font-size: var(--wb-text-xs);
  font-weight: 500;
  color: var(--wb-text-2);
  white-space: nowrap;
}
.setup-pill[data-tone='warn'] {
  border-color: var(--wb-warning-border);
  background: var(--wb-warning-soft);
  color: var(--wb-warning-strong);
}
.setup-pill[data-tone='ok'] {
  border-color: var(--wb-border-on-tint);
  background: var(--wb-success-soft);
  color: var(--wb-success-strong);
}
.setup-pill[data-tone='brand'] {
  border-color: var(--wb-brand-border);
  background: var(--wb-brand-soft);
  color: var(--wb-brand);
}
.setup-pill i {
  flex: none;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
}
/* Under 600px the action takes its own line under the text, so the text keeps the width. */
@media (max-width: 599px) {
  .setup-notice {
    flex-wrap: wrap;
    row-gap: 6px;
  }
  .setup-notice > .setup-notice__action {
    flex: 0 0 calc(100% - 28px);
    margin-left: 28px;
    white-space: normal;
  }
}
@media (max-width: 899px) {
  .setup-kv {
    grid-template-columns: 1fr;
    gap: 2px;
  }
  .setup-kv dd + dt {
    margin-top: 10px;
  }
}

/* 14. Tickets section: the type list's handle, tag, remove and figures, group sub-headings, the
   card header's two actions, the empty line, the Fees and tax group with its 16px head. */
.setup-li__handle {
  flex: none;
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  margin: 0 -4px;
  padding: 0;
  border: 0;
  border-radius: var(--wb-radius-md);
  background: none;
  color: var(--wb-text-4);
  cursor: grab;
  touch-action: none;
}
.setup-li__handle:hover {
  color: var(--wb-text-2);
  background: var(--wb-surface-hover);
}
.setup-li__handle:active {
  cursor: grabbing;
}
.setup-li__handle:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}
.setup-li[data-dragging] {
  opacity: 0.4;
}
.setup-li__overlay {
  padding: 8px 12px;
  border: 1px solid var(--wb-border-1);
  border-radius: var(--wb-radius-lg);
  background: var(--wb-surface-0);
  box-shadow: var(--wb-shadow-menu);
  font-size: var(--wb-text-md-plus);
  font-weight: 500;
  color: var(--wb-text-1);
}
.setup-li__title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.setup-li__figures > span + span {
  margin-left: 16px;
}
.setup-li__remove {
  flex: none;
  margin: 0;
  padding: 0 6px;
  min-height: var(--wb-control-height-sm);
  border: 0;
  border-radius: var(--wb-radius-md);
  background: none;
  font: inherit;
  font-size: var(--wb-text-md);
  font-weight: 500;
  color: var(--wb-text-3);
  white-space: nowrap;
  cursor: pointer;
}
.setup-li__remove:hover {
  color: var(--wb-danger-fg);
  background: var(--wb-surface-hover);
}
.setup-li__remove:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}
.setup-li--group {
  gap: 12px;
  padding-top: 10px;
  padding-bottom: 6px;
  background: var(--wb-surface-1);
}
.setup-li__group {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  font-size: var(--wb-text-sm-plus);
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--wb-text-3);
}
.setup-li--group .setup-link {
  font-size: var(--wb-text-sm-plus);
  text-decoration: none;
  color: var(--wb-text-3);
}
.setup-li--group .setup-link:hover {
  color: var(--wb-text-1);
}
.setup-card__actions {
  flex: none;
  display: flex;
  align-items: center;
  gap: 14px;
}
.setup-list-empty {
  margin: 0;
  padding: 18px 16px;
  font-size: var(--wb-text-md-plus);
  line-height: 1.5;
  color: var(--wb-text-3);
  text-wrap: pretty;
}
.setup-fees {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
/* The fee breakdown dialog: narrower than the default dialog, keeping its 1rem gutters on phone. */
.setup-fees__dialog {
  max-width: min(400px, calc(100% - 2rem));
}
.setup-sec-head--sub h3 {
  font-size: 16px;
  letter-spacing: 0;
}
.setup-sec-head--sub p {
  margin-top: 4px;
  font-size: var(--wb-text-md);
}
.setup-notice b {
  font-weight: 600;
  color: var(--wb-text-1);
}
.setup-notice__action .setup-link {
  text-decoration: none;
}
@media (max-width: 899px) {
  .setup-card__actions > button,
  .setup-li__remove,
  .setup-li__handle {
    min-height: 44px;
  }
  .setup-li__handle {
    width: 28px;
  }
}

/* Service fees' two tiles stack under 600px, each as tall as its words, so neither crops them. */
@media (max-width: 599px) {
  .setup-fee-modes {
    grid-template-columns: minmax(0, 1fr);
  }
  .setup-fee-modes > * {
    aspect-ratio: auto;
    max-height: none;
    justify-content: flex-start;
  }
}

/* 15. Page section: what a Page row's value carries beside its words. */
.setup-media {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
  vertical-align: middle;
}
/* "Use a different image for listings": a text toggle under the hero's hint, not a full-width bar. */
.setup-row__body > .setup-disclose {
  align-self: flex-start;
  margin-top: -6px;
  font-size: var(--wb-text-md);
  font-weight: 500;
  text-decoration: none;
}
/* The hero (or the listing image), small enough to sit on the row's 28px line. */
.setup-thumb {
  flex: none;
  width: 44px;
  height: 28px;
  border: 1px solid var(--wb-border-1);
  border-radius: var(--wb-radius-xs);
  object-fit: cover;
  background: var(--wb-surface-1);
}
.setup-mono {
  font-family: var(--font-mono), ui-monospace, monospace;
  font-size: 0.92em;
  overflow-wrap: anywhere;
}

/* 16. Review section: the readiness card's check list and the summary card's key-value list sit
   inset in their cards; a fix is a quiet link; a link that leaves the editor ends in ↗. */
.setup-review__checks {
  padding: 0 16px;
}
.setup-review__checks .setup-check:first-child {
  border-top: 0;
}
.setup-review__checks .setup-check:last-child {
  border-bottom: 0;
}
.setup-review__summary {
  padding: 14px 16px;
}
.setup-review__line {
  display: block;
}
.setup-review__fix {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: var(--wb-text-md);
  font-weight: 500;
  color: var(--wb-text-link);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}
.setup-review__fix:hover {
  color: var(--wb-text-link-hover);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.setup-review__fix:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
  border-radius: 2px;
}
.setup-review__ext::after {
  content: '\2197' / '';
  margin-left: 4px;
}

/* 17. Setup root: the page's colour tokens (each one the workbench token that already held the
   page's light value, so all four themes follow), the open section's column, and no motion at
   all under prefers-reduced-motion. The only literals left are the white type and the photo scrim on the
   preview's hero, which sit on the event's own colour or photo and read the same in every theme. */
.setup-root {
  color: var(--wb-text-1);
  background: var(--wb-surface-0);
  min-height: calc(100vh - 56px);
  --brand: var(--wb-brand);
  --brand-strong: var(--wb-brand-hover);
  --brand-muted: var(--wb-brand-soft);
  --border: var(--wb-border-1);
  --input: color-mix(in srgb, var(--wb-border-1), var(--wb-border-strong));
  --muted-foreground: var(--wb-text-3);
}
.setup-root .setup-section {
  animation: none;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
@media (prefers-reduced-motion: reduce) {
  .setup-root * {
    animation: none !important;
    transition: none !important;
  }
}

/* 18. Field kit: a column of fields; each is its label, control, then hint or error. */
.setup-fields {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.setup-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.setup-label {
  font-size: 14px;
  font-weight: 500;
  color: var(--wb-text-2);
  line-height: 1.45;
}
/* A setting row's lone field whose label repeats the row's: named for assistive tech only, so the
   row label is the one visible line. Out of flow, so the field's gap does not count it. */
.setup-label--sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.setup-hint {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--wb-text-3);
  margin: 0;
}
.setup-error {
  font-size: 13px;
  color: var(--destructive);
}
.setup-input {
  width: 100%;
  min-width: 0;
  height: 50px;
  border: 1px solid var(--input);
  border-radius: 10px;
  padding: 0 14px;
  font: inherit;
  font-size: 15px;
  color: var(--wb-text-1);
  background: var(--wb-surface-0);
  outline: none;
  transition:
    border-color 140ms,
    box-shadow 140ms;
}
.setup-input:focus {
  border-color: var(--wb-brand);
  box-shadow: 0 0 0 3px var(--wb-brand-soft);
}
.setup-input::placeholder {
  color: var(--wb-text-4);
  opacity: 1;
}
.setup-input[aria-invalid='true'] {
  border-color: var(--destructive);
}
.setup-input--description {
  height: auto;
  padding: 14px 16px;
  resize: vertical;
  line-height: 1.55;
}
/* One field surface per section: the ui kit's Input and Textarea inside a row (the fee and tax
   fields, FAQs, the hex fields, the refund policy, the wallet note) take .setup-input's border,
   ground and ink; an Input takes its type and 50px height too. Their own side padding stays, so a
   "$" or "%" keeps its room, and a Textarea keeps the height its rows give it. */
.setup-row__body [data-slot='input'],
.setup-row__body [data-slot='textarea'] {
  border-color: var(--input);
  border-radius: 10px;
  background: var(--wb-surface-0);
  color: var(--wb-text-1);
}
.setup-row__body [data-slot='input'] {
  height: 50px;
  font-size: 15px;
}
.setup-row__body :is([data-slot='input'], [data-slot='textarea']):focus-visible {
  border-color: var(--wb-brand);
  box-shadow: 0 0 0 3px var(--wb-brand-soft);
}
.setup-row__body :is([data-slot='input'], [data-slot='textarea'])[aria-invalid='true'] {
  border-color: var(--destructive);
}
/* The colour field's swatch matches the hex field beside it. */
.setup-row__body label:has(> input[type='color']) {
  width: 50px;
  height: 50px;
  border-radius: 10px;
}

/* 19. Choices: radio cards (the mark at the right), stacked or in columns. */
.setup-choices {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.setup-choices > * {
  margin: 0 !important;
}
.setup-choices--columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  gap: 8px;
}
.setup-root .setup-choice {
  position: relative;
  padding: 14px 16px;
  border: 1px solid var(--wb-border-1);
  border-radius: 12px;
  background: var(--wb-surface-0);
  gap: 14px;
  align-items: center;
  transition:
    transform 180ms,
    border-color 180ms,
    box-shadow 180ms;
  cursor: pointer;
  color: var(--wb-text-1);
}
.setup-root .setup-choice:hover {
  border-color: var(--wb-border-check);
  transform: translateX(3px);
}
.setup-root .setup-choice[aria-checked='true'] {
  border-color: var(--wb-brand);
  background: var(--wb-brand-soft-2);
  box-shadow: 0 0 0 3px var(--wb-brand-soft);
}
.setup-choice > span:first-child {
  order: 2;
  width: 18px;
  height: 18px;
  margin: 0;
  border-color: var(--wb-border-dashed);
  background: var(--wb-surface-0);
}
.setup-choice[aria-checked='true'] > span:first-child {
  border-color: var(--wb-brand);
}
.setup-choice[aria-checked='true'] > span:first-child > span {
  width: 10px;
  height: 10px;
  background: var(--wb-brand);
  animation: setup-radio-pop 360ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
.setup-choice > span:nth-child(2) > span:first-child {
  font-size: 15px;
  line-height: 1.5;
  font-weight: 500;
}
.setup-choice > span:nth-child(2) > span + span {
  font-size: 13px;
  line-height: 1.45;
  color: var(--wb-text-3);
  margin-top: 3px;
}
.setup-choice [data-slot='radio-card-mark'] {
  font-family: var(--font-geist-mono);
  font-size: 11.5px;
  white-space: nowrap;
  font-weight: 400;
  color: var(--wb-text-3);
}
@keyframes setup-radio-pop {
  from {
    transform: scale(0.4);
  }
  to {
    transform: none;
  }
}

/* 20. Buttons: the brand primary (Continue, Publish), the outline secondary, the text button, the
   dashed add row, and the "Press Enter" line beside Continue. */
.setup-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 44px;
  padding: 0 20px;
  border: 0;
  border-radius: 8px;
  background: var(--wb-brand);
  color: var(--brand-foreground);
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  transition:
    background 200ms,
    transform 200ms,
    box-shadow 200ms;
}
.setup-primary:not(:disabled, [aria-disabled='true']):hover {
  background: var(--wb-brand-hover);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px -6px color-mix(in srgb, var(--wb-brand) 50%, transparent);
}
.setup-primary:not(:disabled, [aria-disabled='true']):active {
  transform: scale(0.97);
}
/* Blocked by a missing field it stays pressable (aria-disabled), drawn the same as disabled. */
.setup-primary:disabled,
.setup-primary[aria-disabled='true'] {
  background: var(--wb-disabled-fill);
  color: var(--wb-text-inverse);
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}
.setup-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 44px;
  padding: 0 20px;
  border: 1px solid var(--wb-border-1);
  border-radius: 8px;
  background: var(--wb-surface-0);
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
}
.setup-secondary:hover {
  background: var(--wb-surface-tile);
  border-color: var(--wb-border-check);
}
.setup-text-button {
  color: var(--wb-brand);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  background: none;
  border: 0;
  padding: 4px 8px;
  border-radius: 6px;
}
.setup-text-button:hover {
  background: var(--wb-surface-selected);
}
.setup-ticket-add {
  height: 34px;
  border: 1px dashed var(--wb-border-dashed);
  border-radius: 8px;
  text-align: left;
  padding: 0 12px;
  color: var(--wb-text-2);
  font-size: 13.5px;
  font-weight: 500;
  cursor: pointer;
}
.setup-enter {
  font-size: 12.5px;
  color: var(--wb-text-4);
  display: flex;
  align-items: center;
  gap: 6px;
}

/* 21. Approval: the registration's switches in one bordered group. */
.setup-approval {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--wb-border-1);
  border-radius: 12px;
}
.setup-approval label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
}

/* 22. Public link: the host as a fixed prefix, the slug as the input. */
.setup-public-link {
  display: flex;
  min-width: 0;
  height: 50px;
  align-items: center;
  border: 1px solid var(--input);
  border-radius: 10px;
  overflow: hidden;
  font-family: var(--font-geist-mono);
  font-size: 13px;
}
.setup-public-link > span {
  padding: 15px 12px;
  background: var(--wb-surface-1);
  color: var(--wb-text-3);
  border-right: 1px solid var(--wb-border-1);
  flex-shrink: 0;
}
.setup-public-link input {
  border: 0;
  border-radius: 0;
  font-family: inherit;
  font-size: 14px;
}
.setup-public-link:focus-within {
  border-color: var(--wb-brand);
  box-shadow: 0 0 0 3px var(--wb-brand-soft);
}

/* 23. Done screen (done-screen.tsx): the eyebrow and heading, the live link with its copy button,
   the next-step links, Open event and Create another event. */
.setup-heading {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.setup-eyebrow {
  font-family: var(--font-geist-mono);
  font-size: 13px;
  font-weight: 500;
  color: var(--wb-brand);
}
.setup-heading h1 {
  margin: 0;
  font-size: 30px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.15;
  text-wrap: pretty;
  outline: none;
}
.setup-heading p {
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  color: var(--wb-text-3);
  max-width: 60ch;
  text-wrap: pretty;
}
.setup-summary {
  border: 1px solid var(--wb-border-1);
  border-radius: 12px;
  overflow: hidden;
}
.setup-exit {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  height: 32px;
  padding: 0 12px;
  border: 1px solid var(--wb-border-1);
  border-radius: 8px;
  font-size: 13px;
  background: var(--wb-surface-0);
  cursor: pointer;
}
.setup-exit:hover {
  background: var(--wb-surface-tile);
  border-color: var(--wb-border-check);
}
.setup-next-link {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 4px;
  border-bottom: 1px solid var(--wb-border-2);
  color: var(--wb-text-1);
  text-decoration: none;
}
.setup-next-link:hover {
  background: var(--wb-surface-hover);
}
.setup-next-link > span:first-child {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.setup-next-link strong {
  font-size: 14.5px;
  font-weight: 500;
}
.setup-next-link > span:first-child > span {
  font-size: 13px;
  color: var(--wb-text-3);
}
.setup-next-link > span:last-child {
  margin-left: auto;
  color: var(--wb-text-4);
}

/* 24. Timed rules: the Times section's rules editor (schedule/timed-schedule-editor.tsx, also the
   detail route's sheet): one bordered rule, its head and grid, the day chips, the exceptions
   disclosure, the first-week preview and the slot count under it. */
.setup-rule {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
  margin: 0;
  padding: 18px;
  border: 1px solid var(--wb-border-1);
  border-radius: 12px;
}
.setup-rule-head {
  display: flex;
  align-items: flex-end;
  gap: 12px;
}
.setup-rule-head > .setup-field {
  flex: 1 1 auto;
}
.setup-rule-head > .setup-text-button {
  margin-bottom: 11px;
}
/* The rule's dates and its hours share one column grid, so First day sits over Opens and Last day
   over Minutes per slot: four columns from 620px of rule, two below, one under 300px. Each label
   holds one line (a longer one ends in an ellipsis) so a row's controls share one top edge. */
.setup-rule {
  container-type: inline-size;
}
.setup-rule-dates,
.setup-rule-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 14px;
}
.setup-rule-dates .setup-label,
.setup-rule-grid .setup-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@container (min-width: 620px) {
  .setup-rule-dates,
  .setup-rule-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .setup-rule-dates > .setup-field {
    grid-column: span 2;
  }
}
@container (max-width: 299px) {
  .setup-rule-dates,
  .setup-rule-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
.setup-day-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
@media (max-width: 899px) {
  .setup-day-chips > *,
  .setup-ticket-add {
    min-height: 44px;
  }
}
.setup-exceptions {
  border: 1px solid var(--wb-border-1);
  border-radius: 12px;
  padding: 14px 18px;
}
.setup-exceptions > summary {
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  color: var(--wb-text-2);
}
.setup-exceptions > * + * {
  margin-top: 14px;
}
.setup-exceptions > .setup-ticket-add {
  display: block;
}
.setup-exception {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr));
  align-items: end;
  gap: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--wb-border-2);
}
.setup-exception > .setup-text-button {
  justify-self: start;
  margin-bottom: 11px;
}
.setup-week {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid var(--wb-border-1);
  border-radius: 12px;
  overflow: hidden;
}
.setup-week > li {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 12px;
  padding: 8px 14px;
  border-bottom: 1px solid var(--wb-border-2);
  font-size: 13px;
  line-height: 1.45;
}
.setup-week > li:last-child {
  border-bottom: 0;
}
.setup-week > li > span:first-child {
  color: var(--wb-text-3);
}
.setup-week > li > span:last-child {
  font-family: var(--font-geist-mono);
  overflow-wrap: anywhere;
}
.setup-slot-count {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  color: var(--wb-text-1);
}
/* The venue ceiling's advisory under the count: warning ink, never an error. */
.setup-slot-warning {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--wb-warning-fg);
}

/* 25. Checkout rows: a sub-head over its rows (Who gets in, After registering), a number input
   beside its unit, a checkbox on one line with its words, and the shared refund policy block
   shown inside a row without the card padding and hairline it draws on its own. */
.setup-checkout-group {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.setup-number {
  display: flex;
  align-items: center;
  gap: 10px;
}
.setup-number > .setup-input {
  max-width: 160px;
}
.setup-number__unit {
  font-size: 14px;
  color: var(--wb-text-3);
}
.setup-checkline {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--wb-text-1);
}
.setup-policy > div {
  padding: 0;
  border: 0;
}
.setup-counter {
  font-family: var(--font-geist-mono);
}

/* 26. Policies (timed): each sub-head over its rows, and a number field's line: a short input,
   its unit and its range note, wrapping under 600px rather than scrolling. */
.setup-policies {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.setup-amount {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  min-width: 0;
}
.setup-amount > .setup-input {
  width: 112px;
  flex: none;
  font-variant-numeric: tabular-nums;
}
.setup-amount__unit {
  font-size: 14px;
  color: var(--wb-text-2);
}
.setup-amount__note {
  font-size: 12.5px;
  color: var(--wb-text-3);
}

/* 27. Seats and pricing: the seat map's rows under the section prices, the 3D view's two fields
   side by side (stacked on a phone), and Map tools, a row whose whole head is the fold's button. */
.setup-seats {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.setup-seats__display {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
}
.setup-disclosure__head {
  display: flex;
  align-items: center;
  gap: 12px;
  /* The hover tint bleeds 8px past the row's text on each side, so the words stay aligned. */
  width: calc(100% + 16px);
  min-height: var(--wb-control-height-sm);
  margin: 0 -8px;
  padding: 0 8px;
  border: 0;
  border-radius: var(--wb-radius-md);
  background: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.setup-disclosure__head:hover {
  background: var(--wb-surface-hover);
}
.setup-disclosure__head:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}
.setup-disclosure__mark {
  flex: none;
  width: 16px;
  height: 16px;
  color: var(--wb-text-2);
}
.setup-disclosure__head[aria-expanded='true'] .setup-disclosure__mark {
  transform: rotate(180deg);
}
/* A section's price: the "$" sits in the field's left padding on both hosts, so the workbench
   Input's own padding on the live tab cannot run it into the digits. Under the rows, the seat
   count and the last price save's state. */
.setup-price {
  position: relative;
}
.setup-price > .setup-input {
  padding-left: 28px;
  font-family: var(--font-geist-mono);
}
.setup-prices__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 4px 16px;
  margin-top: 12px;
}
.setup-prices__foot > p {
  margin: 0;
}
/* The seat controls' frame and the sync's facts scroll inside the fold, never the page. */
.setup-disclosure__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  margin-top: 12px;
  overflow-x: auto;
}
.setup-disclosure__body[hidden] {
  display: none;
}

/* 28. Live event: the editor inside the event page's Setup tab takes the page's gutters and
   background; a field the bar has not saved yet carries a strong border over its "Was 7:00 PM"
   hint; a field sales hold shows the lock and its reason where the row's lock would sit. */
.setup-page--tab {
  min-height: 0;
  padding: 0;
  background: none;
}
.setup-page--tab .setup {
  padding-top: 8px;
}
.setup-input--changed,
.setup-input--changed:focus {
  border-color: var(--wb-border-strong);
}
.setup-lock {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--wb-text-3);
}
.setup-lock svg {
  flex: none;
  width: 12px;
  height: 12px;
}

/* 29. Status: the live event's last section. The take-it-down rows sit under their own sub head;
   each row's button keeps its own width, with the reason it is disabled under it. */
.setup-status-group {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.setup-status-action {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}

/* 30. Seat notices: the live seat map's notices (a setup error, mismatches, a shortfall, counts to
   refresh) stacked above the section prices, most pressing first. */
.setup-seats__notices {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  margin-bottom: 20px;
}

/* 31. Ticket type sheet (ticket-type-sheet.tsx), opened from Tickets and Seats and pricing: on the
   phone its close, its section tabs, its fields and pickers, and its footer stand 44px. A date and
   time picker's button is a popover trigger, so it carries that slot instead of the button's. */
@media (max-width: 899px) {
  .setup-sheet [data-slot='button'],
  .setup-sheet [data-slot='popover-trigger'],
  .setup-sheet [data-slot='input'],
  .setup-sheet [data-slot='select'],
  .setup-sheet nav > button {
    min-height: 44px;
  }
  .setup-sheet [data-slot='sheet-scaffold-header'] [data-slot='button'] {
    min-width: 44px;
  }
}

/* Inlined by Vite so the organizer grid is styled before React or app CSS loads. */
.public-organizer-loading,
.public-organizer-loading * {
  box-sizing: border-box;
}
.public-organizer-loading {
  display: flex;
  flex-direction: column;
  min-height: 100svh;
  background: var(--ev-bg, #f2f2ef);
}
.pol-ghost {
  display: block;
  max-width: 100%;
  border-radius: 4px;
  background: var(--ev-border-2, #e6e6e1);
  animation: boot-pulse 1.8s ease-in-out infinite;
}
.pol-hero,
.pol-events {
  width: 100%;
  max-width: 1360px;
  margin-inline: auto;
  padding-inline: 24px;
}
.pol-hero {
  padding-top: 48px;
  padding-bottom: 8px;
}
/* TestModeBanner's "Test checkout" strip under the hero, on a test-mode build only: the build
   stamps the flag on <html> (vite.config.ts) and this sheet is inlined there, so the first paint
   and the React fallbacks reserve it alike. 6px + 12px × 1.4 + 6px + the 1px hairline. */
.pol-testbar {
  display: none;
}
html[data-admin-test-mode='true'] .pol-testbar {
  display: block;
  height: 29.8px;
  border-bottom: 1px solid color-mix(in oklab, var(--warning, #d97706) 30%, transparent);
  background: var(--warning-muted, #fdf1e3);
}
.pol-eyebrow {
  width: 80px;
  height: 11px;
}
.pol-name {
  width: 480px;
  height: clamp(38px, 6.58vw, 60px);
  margin-top: 12px;
}
.pol-bio,
.pol-bio-short {
  height: 15px;
  margin-top: 16px;
  width: 560px;
}
.pol-bio-short {
  margin-top: 9px;
  width: 380px;
}
.pol-contact {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  margin-top: 16px;
}
.pol-socials {
  display: flex;
  gap: 8px;
}
.pol-social {
  width: 36px;
  height: 36px;
  border-radius: 50%;
}
.pol-support {
  width: 160px;
  height: 38px;
  border-radius: 999px;
}
.pol-events {
  flex: 1;
  padding-top: 36px;
  padding-bottom: 72px;
}
.pol-section-title {
  width: 240px;
  height: 36px;
}
.pol-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
  margin-top: 20px;
}
.pol-card {
  overflow: hidden;
  border: 1px solid var(--ev-border-2, #e6e6e1);
  border-radius: var(--ev-radius, 14px);
  background: var(--ev-surface, #fff);
}
.pol-image {
  aspect-ratio: 3 / 2;
  border-radius: 0;
}
.pol-details {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px 18px 14px;
}
.pol-date {
  width: 140px;
  height: 14px;
}
.pol-event-name {
  width: 90%;
  height: 22px;
}
.pol-venue {
  width: 65%;
  height: 18px;
}
.pol-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  border-top: 1px solid var(--ev-border, #edede8);
  padding-top: 12px;
}
.pol-price {
  width: 72px;
  height: 24px;
}
.pol-tickets {
  width: 84px;
  height: 18px;
}
.pol-footer {
  border-top: 1px solid var(--ev-border, #edede8);
  padding: 18px 24px;
}
.pol-credit {
  width: 140px;
  height: 14px;
  margin-inline: auto;
}
.boot-shell > .public-organizer-loading {
  display: none;
}
[data-organizer-loading] .boot-shell {
  padding: 0;
}
[data-organizer-loading] .boot-shell > .boot-sr-only,
[data-organizer-loading] .boot-shell > .boot-shell-inner {
  display: none;
}
[data-organizer-loading] .boot-shell > .public-organizer-loading {
  display: flex;
}
.boot-shell[data-failed='true'] > .public-organizer-loading {
  display: none;
}
[data-organizer-loading] .boot-shell[data-failed='true'] > .boot-shell-inner {
  display: block;
  padding: 32px;
}
@media (min-width: 640px) {
  .pol-hero {
    padding-top: 72px;
  }
  .pol-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1100px) {
  .pol-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (prefers-reduced-motion: reduce) {
  .pol-ghost {
    animation: none;
  }
}

/* Inlined by Vite so the sign-in and account pages have their shape before
   React or the app stylesheet loads. Ghost colour and pulse come from
   `.dl-ghost`, which index.html defines inline for every shell. */
.login-loading,
.login-loading *,
.account-loading,
.account-loading * {
  box-sizing: border-box;
}
.login-loading,
.account-loading {
  min-height: 100svh;
  background: var(--surface-canvas);
}

/* Sign-in: the page's max-w-6xl column, `px-5 pb-9 pt-7` (sm: px-8 pb-12). */
.ll-frame {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100svh;
  max-width: 1152px;
  margin: 0 auto;
  padding: 28px 20px 36px;
}
.ll-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
/* BrandLockup at height 20. */
.ll-brand,
.au-brand {
  display: block;
  height: 20px;
  width: auto;
  flex-shrink: 0;
}
/* The loaded "Request access" link Button (sm, 13px text and a 16px arrow), measured at 1280. */
.ll-link {
  width: 116.31px;
  height: 19.5px;
}
.ll-sheet {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: center;
  padding: 40px 0;
}
/* A zero minimum keeps naturally wrapping text inside the mobile column. */
.ll-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 48px;
}
/* Shared with the loaded sign-in page. Natural text wrapping reserves each line. */
.ll-title {
  margin: 0;
  font-size: 30px;
  line-height: 1.1;
  font-weight: 600;
  text-wrap: balance;
}
.auth-ghost-text {
  color: transparent;
  background: var(--surface-skeleton);
  border-radius: var(--radius-control);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
.login-loading,
.account-loading,
.auth-login,
.auth-account {
  font-family: var(--font-ui);
  line-height: 1.5;
}
.ll-form {
  width: 100%;
  max-width: 384px;
}
/* A ds FormField: the Label (13.5px, leading-none), `gap-1.5`, the md control and the 12.5px
   hint. Fields sit in a `gap-3.5` column. */
.au-field + .au-field {
  margin-top: 14px;
}
.au-label {
  width: 100%;
  height: 13.5px;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 13.5px;
  margin-bottom: 6px;
}
.au-input {
  display: block;
  width: 100%;
  height: var(--control-md);
  border-radius: var(--radius-control);
}
.au-hint {
  margin: 6px 0 0;
  font-size: 12.5px;
  line-height: 1.5;
}
/* The link Button "Forgot password?" (13px, line 1.5), right-aligned. */
.ll-forgot {
  display: flex;
  justify-content: flex-end;
  height: 19.5px;
  margin-top: 14px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
}
/* Button size="lg", full width. */
.ll-form .al-button,
.au-button {
  display: block;
  width: 100%;
  height: var(--control-lg);
  margin-top: 14px;
  border-radius: var(--radius-control);
}
.ll-footer,
.au-foot {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 16px;
  border-top: 1px solid var(--line-default);
  font-size: 12px;
  line-height: 1.4;
  color: var(--text-quiet);
}
/* Account pages: AccountUtilityShell's max-w-md column, `px-5 py-7` (sm: px-8 py-9). */
.au-frame {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100svh;
  max-width: 448px;
  margin: 0 auto;
  padding: 28px 20px;
}
.au-head {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line-default);
}
.au-main {
  display: flex;
  flex: 1;
  align-items: center;
  padding: 36px 0;
}
.au-body {
  width: 100%;
}
.au-heading {
  margin-bottom: 20px;
  text-align: center;
}
.au-title {
  margin: 0;
  font-size: 22px;
  line-height: 1.2;
  font-weight: 600;
  text-wrap: balance;
}
.au-copy {
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text-secondary);
  text-wrap: balance;
}
/* A Counter card: raised, hairline, p-5 (sm: p-6). */
.au-panel {
  padding: 20px;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  background: var(--surface-raised);
}

@media (min-width: 640px) {
  .ll-frame {
    padding: 28px 32px 48px;
  }
  .au-frame {
    padding: 36px 32px;
  }
  .au-head {
    justify-content: flex-start;
  }
  .au-main {
    padding: 48px 0;
  }
  .au-panel {
    padding: 24px;
  }
  .ll-footer,
  .au-foot {
    justify-content: flex-start;
  }
}
@media (min-width: 1024px) {
  .ll-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    gap: 64px;
  }
  .ll-title {
    font-size: 40px;
    line-height: 1.05;
  }
  .ll-form-column {
    padding-left: 48px;
    border-left: 1px solid var(--line-default);
  }
}
@media (min-width: 1280px) {
  .ll-form-column {
    padding-left: 64px;
  }
}

/* Selected by loading-shell.js from the path, the way the other shells are. */
.boot-shell > .login-loading,
.boot-shell > .account-loading {
  display: none;
}
[data-login-loading] .boot-shell,
[data-account-loading] .boot-shell {
  padding: 0;
}
[data-login-loading] .boot-shell > .boot-sr-only,
[data-login-loading] .boot-shell > .boot-shell-inner,
[data-account-loading] .boot-shell > .boot-sr-only,
[data-account-loading] .boot-shell > .boot-shell-inner {
  display: none;
}
[data-login-loading] .boot-shell > .login-loading,
[data-account-loading] .boot-shell > .account-loading {
  display: block;
}
.boot-shell[data-failed='true'] > .login-loading,
.boot-shell[data-failed='true'] > .account-loading {
  display: none;
}
[data-login-loading] .boot-shell[data-failed='true'] > .boot-shell-inner,
[data-account-loading] .boot-shell[data-failed='true'] > .boot-shell-inner {
  display: block;
  padding: 32px;
}

.au-state {
  text-align: center;
}
.au-icon {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-control);
  margin: 0 auto;
}
/* Loaded only: the skeleton's icon keeps the `.dl-ghost` fill. */
.auth-account .au-icon {
  display: grid;
  place-items: center;
  background: var(--surface-sunken);
  color: var(--text-quiet);
}
.au-state-title {
  margin: 0;
  font-size: 17px;
  line-height: 1.3;
  font-weight: 600;
  text-wrap: balance;
}
.au-icon-title {
  margin-top: 16px;
}
.au-state-copy {
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text-secondary);
  text-wrap: pretty;
}
/* The unsubscribe ghost's address wraps like the loaded email (`font-medium wrap-anywhere`). */
.au-state-email {
  font-weight: 500;
  overflow-wrap: anywhere;
}
.au-state-button {
  margin-top: 20px;
}
/* The roadmap Connect ghost sits on the loaded button's `mt-6` row. */
.au-connect-button {
  margin-top: 24px;
}
/* The static HTML includes each account shape; only the selected one may paint. */
[data-account-loading='invite']
  .boot-shell
  > .account-loading:not([data-account-variant='invite']) {
  display: none;
}
[data-account-loading='admin-invite']
  .boot-shell
  > .account-loading:not([data-account-variant='admin-invite']) {
  display: none;
}
[data-account-loading='reset'] .boot-shell > .account-loading:not([data-account-variant='reset']) {
  display: none;
}
[data-account-loading='unsubscribe']
  .boot-shell
  > .account-loading:not([data-account-variant='unsubscribe']) {
  display: none;
}
[data-account-loading='unavailable']
  .boot-shell
  > .account-loading:not([data-account-variant='unavailable']) {
  display: none;
}
