.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;}
: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;--series-1: #0b978a;--series-2: #3d6fd1;--series-3: #8a5a00;--series-4: #8a5fc4;--series-5: #8a9493;--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;--series-1: #2fc3b0;--series-2: #5b8ede;--series-3: #f59e0b;--series-4: #a78bfa;--series-5: #8c8e91;--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-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-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-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-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;
}
.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-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(--line-default);
  border-radius: 6px;
  background: var(--surface-raised);
}
.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(--line-default);
}
.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(--line-default);
}
.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(--line-default);
}
.al-list-row .al-action {
  width: 64px;
}
.al-settings {
  border-block: 1px solid var(--line-default);
}
.al-setting {
  display: grid;
  gap: 24px;
  padding: 32px 0;
}
.al-setting + .al-setting {
  border-top: 1px solid var(--line-default);
}
.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(--line-default);
}
.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(--line-default);
}
.al-hub-grid {
  display: grid;
  gap: 24px;
  margin-top: 20px;
}
.al-hub-item .al-icon {
  margin-bottom: 16px;
}
/* assistant.css turns a corner at 640px: the takeover's gutter drops to 16px. 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-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(--line-default);
  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(--line-default);
}
.al-inspector {
  display: none;
  padding: 24px;
  border-left: 1px solid var(--line-default);
}
.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 {
  display: none;
}

.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 {
    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(--line-default);
}
.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(--line-default);
  }
  .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(--line-default);
  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-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(--line-default);
}
.lp-section {
  min-width: 0;
}
.lp-card {
  margin-top: 12px;
  padding: 20px;
  min-width: 0;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: var(--surface-raised);
}
.lp-table-scroll {
  overflow-x: auto;
}
.cl-order {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
}
.cl-order-title {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.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;
}
/* The order views: the ds TabsList underline, 4px apart, pb-px over the hairline. */
.cl-order-tabs {
  display: flex;
  gap: 4px;
  overflow: hidden;
  padding-bottom: 1px;
  border-bottom: 1px solid var(--line-default);
}
.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;
}
/* ds Button secondary sm: 32px, 10px inline, 13px/500, a 16px icon 8px from the label. */
.cl-export {
  height: 32px;
  padding-inline: 10px;
  font-size: 13px;
  font-weight: 500;
}
.ml-overview-new-email {
  border-width: 0;
  font-weight: 500;
}
.ml-overview-range-label {
  font-size: 12px;
  color: var(--text-faint);
}
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;
}
/* The zen toggle: the ds secondary sm button (32px, 10px sides inside its hairline, 13px at 500). */
.wl-zen {
  height: 32px;
  padding: 0 10px;
  font-size: 13px;
  font-weight: 500;
}
/* 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 clamp(20px, 4vw, 40px) 72px;
}
/* EventHeader's identity (`min-w-0 shrink grow basis-90`) and its meta row (`mt-2 flex
   flex-wrap gap-x-4 gap-y-1.5`). */
.el-event-identity {
  flex: 1 1 360px;
  min-width: 0;
}
.el-event-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  margin-top: 8px;
}
.el-event-meta > .lp-ghost {
  flex: none;
}
.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;
}
/* The Overview tab: one column of blocks, 24px apart. */
.el-overview-columns {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 24px;
}
.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(--surface-sunken);
  border-right: 1px solid var(--line-default);
}
.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;
  /* The QueueItem's own 1px border, transparent until it is open. */
  border: 1px solid transparent;
}
.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(--line-default);
}
/* ds TableHead: 12px medium, sentence case. */
.el-registration-head {
  padding-block: 12px;
  font-size: 12px;
  font-weight: 500;
}
.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(--surface-canvas);
}
/* The ground, the hairlines and the quiet text are the entry sheet's own tokens, which are
   defined before any skeleton draws, in light and in dark: assistant.css arrives with the
   page's chunk, and nothing here waits for it. */
/* 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(--line-default);
}
.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;
}
/* The library's 8px, as the column's own loading rows have. */
.wl-convos-row {
  margin: 11px 8px;
  border-radius: var(--radius-control);
}
.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;
}
/* A prompt card: the ds secondary button with card corners, its title (15px at 1.4) 4px over
   its hint. */
.wl-prompt {
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  border: 1px solid var(--action-secondary-line);
  border-radius: var(--radius-card);
}
.wl-prompt-title {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
}
.wl-prompt-hint {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.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(--line-default);
  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(--line-default);
}
.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;
  }
}

.admin-loading {
  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-ticket-add {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}
.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(--line-default);
}
.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;
}
/* The Registrations card and reader's ds frame: `rounded-card border-line-default`. */
.el-ga-card {
  border: 1px solid var(--line-default);
  border-radius: 12px;
  overflow: hidden;
}
.el-door-card {
  border: 1px solid var(--line-default);
  border-radius: 12px;
  overflow: hidden;
}
.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(--line-default);
}
.el-dh-row {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  gap: 14px;
  padding: 16px 22px;
  border-top: 1px solid var(--line-default);
}
.el-dh-row > .lp-grow {
  flex: 1 1 300px;
}
@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-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;
  }
}

/* ds TableCell: 16px sides. */
.el-registration-row {
  padding: 12px 0;
}
.el-registration-row > span {
  padding-inline: 16px;
}
.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(--surface-raised);
}
.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: 12.5px;
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: none;
  color: var(--text-quiet);
}
.el-dh-row.el-dh-check {
  gap: 14px;
  padding: 14px 22px;
}
.el-dh-check > .lp-grow {
  flex: 1 1 260px;
}
.el-dh-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: 1px dashed var(--line-dashed);
  border-radius: 999px;
}
.el-dh-mark[data-done] {
  border: 0;
  background: var(--action-primary-bg);
}
.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(--text-quiet);
}
.el-dh-title,
.el-dh-figure {
  font-size: 26px;
  line-height: 1.1;
}
.el-dh-title {
  display: block;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.el-dh-when {
  display: block;
  font-size: 13.5px;
  line-height: 1.5;
  text-wrap: pretty;
  color: var(--text-quiet);
}
.el-dh-when-count {
  display: inline-block;
  width: 11ch;
  height: 10px;
  border-radius: 8px;
  background: var(--line-default);
}
/* A ds `Button sm`: 32px, 10px sides, 8px radius, medium weight. */
.el-dh-button {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: auto;
  height: 32px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
}
/* 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: 16px;
  height: 16px;
}
.el-dh-live-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.el-dh-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  flex-shrink: 0;
  border-radius: 999px;
  background: var(--status-success-dot);
}
.el-dh-live {
  font-weight: 600;
  color: var(--status-success-fg);
}
.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(--text-quiet);
}
.el-dh-stat-value {
  font-size: 17px;
  line-height: 1.3;
}
.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: 8px;
}
.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(--line-default);
  background: var(--surface-sunken);
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.el-dh-foot-copy {
  flex: 1 1 320px;
  min-width: 0;
  text-wrap: pretty;
}
.el-dh-link {
  font-size: 13.5px;
  white-space: nowrap;
  color: var(--text-link);
}

.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 340px;
}
/* FinancePanel's activity and fees sections: 480px and 340px 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 340px;
}

/* 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(--text-quiet);
}
.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(--line-default);
  border-radius: var(--radius-card);
  overflow: hidden;
  line-height: 1.5;
  background: var(--surface-raised);
}
.el-schedule-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line-subtle);
}
.el-schedule-dows {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  background: var(--surface-sunken);
  border-bottom: 1px solid var(--line-subtle);
}
.el-schedule-dows span {
  padding: 8px 10px;
  font-size: 12px;
  font-weight: 500;
  color: var(--text-secondary);
}
.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(--line-subtle);
  border-bottom: 1px solid var(--line-subtle);
  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(--surface-skeleton);
  -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-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-ds`: the loaded header is a ds `SectionHeader` (15px title at 1.4, a 13px line 3px under
   it) and its controls ds `Button sm` / `IconButton sm`. */
.el-sh-ds .el-sh-title {
  line-height: 1.4;
}
.el-sh-ds .el-sh-title > span {
  display: block;
}
.el-sh-ds .el-sh-sub {
  line-height: 1.5;
}
.el-sh-ds .lp-control.el-sh-button {
  height: 32px;
  padding: 0 10px;
  border-radius: 8px;
  gap: 8px;
  font-weight: 500;
}
.el-sh-ds .lp-control.el-sh-button[data-square] {
  width: 32px;
  padding: 0;
}
.el-sh.el-registration-heading {
  display: flex;
  align-items: flex-end;
  gap: 10px 16px;
}
/* Export attendees and Import sit 8px apart (`registrations-panel.tsx`'s `gap-2` row). */
.el-sh.el-registration-heading .el-sh-aside {
  gap: 8px;
}

/* 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 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;
}
/* ds StatCardGrid columns={4}: two across, four across from 672px of its container. */
.ml-stats-grid {
  container-type: inline-size;
}
.ml-stats {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@container (min-width: 672px) {
  .ml-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.ml-stat {
  border: 1px solid var(--line-default);
  border-radius: 12px;
  padding: 16px 18px;
  background: var(--surface-raised);
}
.ml-stat-label {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.ml-stat .ml-stat-figure {
  margin-top: 10px;
  font-size: 26px;
  line-height: 1.1;
}
.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;
}
/* The 26px ghost sits on top of the ds figure's 28.6px line (26px at 1.1), so it does not
   stretch the line the way a middle-aligned box does. */
.ml-stat-figure > .ml-pending-figure {
  vertical-align: top;
}
.ml-table {
  overflow: hidden;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: var(--surface-raised);
}
.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(--line-default);
}
.ml-table-header {
  height: 40px;
  font-size: 12px;
  line-height: 1.4;
  font-weight: 500;
  color: var(--text-secondary);
}
.ml-table-row {
  padding-top: 10px;
  padding-bottom: 10px;
}
/* The loaded rows: 20px padding and the 1px rule around two lines. A link's name (13.5px at 1.5),
   1px, its code (12px at 1.4): 59.05px. A code's 22px pill line and its offer (12px at 1.4): 59.8px. */
[data-loading-body='marketing-links-rows'] .ml-table-row {
  min-height: 59px;
}
[data-loading-body='marketing-promos-rows'] .ml-table-row {
  min-height: 59.8px;
}
.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;
  background: var(--surface-sunken);
}
.ml-share-metric > span {
  height: 26px;
  line-height: 1.5;
  display: inline-flex;
  align-items: center;
  border-radius: 8px;
}
/* The chosen segment (Gross sales): raised, inside the line border. Outranks the transparent
   border of `.ml-overview-body .ml-share-metric > span`. */
.ml-overview-body .ml-share-metric > span:first-child {
  font-weight: 500;
  border-color: var(--line-default);
  background: var(--surface-raised);
}
.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;
}
.ml-section-heading p {
  font-size: 13px;
  color: var(--text-quiet);
  margin-top: 3px !important;
}
.ml-source-summary {
  padding-top: 20px;
  padding-bottom: 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(--text-primary);
}
.ml-source-totals > span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.ml-source-totals > span[data-muted] {
  color: var(--text-quiet);
}
.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-block: 10px;
  border-top: 1px solid var(--line-default);
}
.ml-source-row[data-direct] {
  background: var(--surface-sunken);
  color: var(--text-quiet);
}
.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(--text-faint);
}
.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(--text-primary);
}
.ml-running-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  border-top: 1px solid var(--line-default);
  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(--line-default);
}
.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(--line-default);
  border-radius: 12px;
}
.ml-recipe-footer {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border-top: 1px solid var(--line-default);
  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(--surface-skeleton);
}
/* 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;
}
/* Cause AG (phase 11b): the Disputes tabs (disputes-top-bar.tsx) are the ds chip TabNav: the
   current page's chip is medium, and Early warnings carries its to-review count as a badge after
   a 6px gap (18px tall, at least 18px wide, 6px each side of an 11px semibold figure). The pending
   page marks its tab `data-current`; the boot shell, which knows no route, marks none, and there
   the document's layout names the tab. */
.ql-topbar-tabs > [data-current],
[data-admin-layout='dispute-queue'] .ql-topbar-tabs:not(:has(> [data-current])) > :nth-child(1),
[data-admin-layout='warning-list'] .ql-topbar-tabs:not(:has(> [data-current])) > :nth-child(2),
[data-admin-layout='dispute-outcomes'] .ql-topbar-tabs:not(:has(> [data-current])) > :nth-child(3),
[data-admin-layout='dispute-settings'] .ql-topbar-tabs:not(:has(> [data-current])) > :nth-child(4) {
  font-weight: 500;
}
.ql-tab-badge {
  display: inline-block;
  min-width: 18px;
  height: 18px;
  margin-left: 6px;
  padding: 0 6px;
  font-size: 11px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  line-height: 18px;
  text-align: center;
  vertical-align: top;
}
/* 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(--line-default);
}
.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(--line-default);
  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 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%;
  /* Two 21px lines on a phone, where the loaded sentence wraps; one from 761px. */
  margin-block: 13px;
}
.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(--line-default);
  border-radius: var(--radius-card);
  background: var(--surface-raised);
}
.ql-case-group {
  height: 38.75px;
  background: var(--surface-sunken);
}
.ql-case-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 2px 12px;
  border-top: 1px solid var(--line-default);
  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-sentence {
    margin-block: 2.5px;
  }
  .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;
  }
  /* The loaded desktop row's two lines are blocks with no gap between them. */
  .ql-case-row > span:first-child {
    grid-row: auto;
    gap: 0;
  }
  .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 clamp(20px, 4vw, 40px) 80px;
  width: 100%;
  max-width: 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(--text-quiet);
}
.ql-case-section-head h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 600;
  color: var(--text-primary);
}
.ql-case-activity {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  /* The loaded "Activity" h2 is text-section at its own 1.4. */
  line-height: 1.4;
  font-weight: 600;
  color: var(--text-primary);
}
/* A warning's section heads (routes/dispute-warning-detail.tsx, SECTION_H2) are text-section on its
   1.4 line (21px); the case page keeps the shared rule above. */
[data-loading-body='warning-page-body'] .ql-case-section-head h3 {
  line-height: 1.4;
}
/* A warning's decision rows (components/disputes/decision-row.tsx): the 13.5px title on its
   20.25px line, 4px, then the 13px description's two 19.5px lines. */
[data-loading-body='warning-page-body'] .ql-case-decision > div {
  gap: 4px;
}
[data-loading-body='warning-page-body'] .ql-case-decision > div > .lp-ghost {
  margin-block: 3.125px;
}
.ql-decision-copy {
  display: flex;
  flex-direction: column;
  gap: 6.5px;
  padding-block: 3.25px;
}
.ql-case-list {
  border: 1px solid var(--line-default);
  border-radius: 12px;
  overflow: hidden;
}
.ql-case-list > div {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 16px;
  border-top: 1px solid var(--line-default);
}
.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;
  /* The loaded title is text-title, whose line is 1.3 (22.1px). */
  line-height: 1.3;
  font-weight: 600;
}
.ql-settings-section {
  display: grid;
  gap: 8px 32px;
  padding: 20px 0;
  border-top: 1px solid var(--line-default);
}
.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.5;
}
.ql-settings-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ql-settings-stripe {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
/* Cause AE (phase 11b) (d): the save is SettingsSaveRow's ds Button (36px) in its row's 22px
   inset (settings-save-row.tsx), since ae52f36c6. */
.lp-control.ql-settings-save {
  height: var(--control-md);
  margin-left: 22px;
}
/* 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(--text-quiet);
}
.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;
}
/* Cause AL (phase 11b): the loaded controls (routes/dispute-outcomes.tsx) are two wrapping
   groups, 12px apart: period, range and event filter on the left (10px apart), Export on the
   right. Export wraps under the filters as a group, to the left edge, not onto their row. */
.ql-outcome-controls {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}
.ql-outcome-filters {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
/* The loaded page's column: max-w-295, its padding inside. */
.ql-outcomes-page {
  max-width: 1180px;
}
.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(--text-quiet);
}
.ql-custom-range > label {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ql-range-date {
  width: auto;
  min-width: 0;
  height: var(--control-sm);
  border: 1px solid var(--action-secondary-line);
  border-radius: 8px;
  padding: 0 10px;
  font: 400 13px/1.5 var(--font-geist-sans, sans-serif);
  color: transparent;
  background: var(--surface-raised);
}
[data-admin-outcome-period] {
  --ql-custom-display: none;
}
[data-admin-outcome-period='custom'] {
  --ql-custom-display: flex;
}
/* The ds SegmentedControl's md item: 26px tall with a 1px edge, so the track is 32px. */
[data-admin-outcome-period] .ql-period-scroll .lp-segments > span {
  height: 26px;
  border: 1px solid transparent;
  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;
  padding: 0 10px;
  border-color: var(--action-secondary-line);
  font-size: 13px;
  font-weight: 500;
}
.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(--line-default);
  border-radius: 12px;
  padding: 16px 18px;
}
.ql-outcome-stat > p {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.ql-outcome-stat > p:first-child {
  font-weight: 500;
}
.ql-outcome-stat > p:last-child {
  margin-top: 4px;
}
.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(--line-default);
  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;
}
/* The loaded card heads are the ds SectionHeader's text-section title, on its 1.4 line (21px). */
[data-loading-body='dispute-outcomes-body'] .ql-outcome-head h3 {
  line-height: 1.4;
}
.ql-outcome-head p {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-quiet);
}
.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(--line-default);
  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(--text-quiet);
}
.ql-outcome-report {
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.5;
}
.ql-report-link {
  color: var(--text-link);
}
@container (min-width: 672px) {
  .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(--surface-skeleton);
  color: transparent;
  white-space: nowrap;
  font-size: 13px;
  line-height: 20px;
}
.ml-control-search {
  flex: 1 1 240px;
  min-width: 0;
}
.ml-channels {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
/* FilterChip: 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;
  padding: 0 12px;
  border: 1px solid var(--line-default);
  border-radius: 999px;
  font-size: 13px;
  white-space: nowrap;
  color: transparent;
}
.ml-stat .ml-stat-subline {
  margin-top: 4px;
}
.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(--line-default);
  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(--line-default);
  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(--surface-skeleton);
  border-radius: 3px;
}
/* Cause AG (phase 11b): a case's bar (routes/dispute-detail.tsx) holds Refresh at the right from
   lg (the ds secondary xs control, 28px tall and 61px wide), and from xl the 12.5px "Checked with
   Stripe" age 10px before it; the slot keeps 14px between the trail and them. */
.ql-loading-trail > span.ql-trail-aside {
  display: none;
  align-items: center;
  gap: 10px;
  margin-left: calc(14px - 1ch);
  background: none;
}
.ql-trail-age,
.ql-trail-refresh {
  background: var(--surface-skeleton);
  border-radius: 3px;
}
.ql-trail-age {
  display: none;
}
.ql-trail-refresh {
  display: block;
  width: 61px;
  height: var(--control-xs);
  border-radius: 6px;
}
@media (min-width: 1024px) {
  .ql-loading-trail > span.ql-trail-aside {
    display: flex;
  }
}
@media (min-width: 1280px) {
  .ql-trail-age {
    display: block;
  }
}
/* The "what was sent" page's bar (routes/dispute-sent.tsx) holds the trail alone: no age, no
   Refresh. The pending path drops the aside (`aside={false}`); the boot shell hides it here. */
[data-admin-layout='dispute-case'][data-admin-view='sent'] .ql-loading-trail > span.ql-trail-aside {
  display: none;
}
.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(--line-default);
  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: -0.025em;
}
.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 {
  padding: 28px clamp(20px, 4vw, 40px) 80px;
  font-size: 14px;
  line-height: 1.5;
  max-width: 760px;
  color: var(--text-primary);
}
.sl-account h1 {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
}
.sl-account .sl-account-identity {
  margin-top: 6px;
  font-size: 14px;
  line-height: 1.5;
}
/*
 * The ds SectionHeader holds the title and its sub in one shrink-to-fit box, so the title is as
 * wide as the wider of the two. The first column does the same here; the control and the consent
 * card span the flexible column and so never widen it.
 */
.sl-account-section {
  margin-top: 36px;
  display: grid;
  grid-template-columns: fit-content(100%) 1fr;
}
.sl-account-section > :is(h2, p) {
  grid-column: 1;
}
.sl-account-section > :not(h2, p) {
  grid-column: 1 / -1;
}
.sl-account h2 {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
}
.sl-account-section > p {
  margin-top: 3px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
/* ds SegmentedControl md: a 32px track of 26px items on 12px sides with a 1px edge. */
.sl-account-theme {
  margin-top: 12px;
  justify-self: start;
  border-radius: var(--radius-control);
}
.lp-segments.sl-account-theme > span {
  height: 26px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
}
.sl-consent {
  margin-top: 12px;
  border: 1px solid var(--line-default);
  border-radius: 12px;
}
.sl-consent-row {
  padding: 12px 16px;
}
.sl-team {
  padding: 28px clamp(20px, 4vw, 40px) 80px;
  font-size: 14px;
  line-height: 1.5;
  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: 22px;
  font-weight: 600;
  line-height: 1.2;
  /* The loaded title has no tracking; this undoes `.sl-heading h1`'s -0.025em. */
  letter-spacing: normal;
}
.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;
  background: var(--surface-sunken);
}
.sl-team-head .sl-team-member {
  padding-left: 44px;
}
.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;
  background: var(--surface-raised);
  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: 8px;
  font: 400 12.5px/1.5 var(--font-ui);
  color: var(--text-secondary);
}
/* The trail's crumbs take the loaded ds breadcrumb's colours. */
.sl-workbench-trail > .sl-trail-sep {
  color: var(--text-quiet);
}
.sl-workbench-trail > .sl-trail-here {
  color: var(--text-primary);
}
.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: 13px;
  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;
  font-weight: 500;
  margin-bottom: 12px;
  color: var(--text-secondary);
}
.vl-flow h1 {
  font-size: 30px;
  line-height: 1.1;
  font-weight: 600;
}
.vl-flow-main > div:first-child > p {
  margin-top: 12px;
  font-size: 15px;
  line-height: 1.4;
}
.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;
}
/* Cause AB (phase 11a): the loaded name line is text-section at the token line-height 1.4, not
   .vl-wizard's inherited 1.5. */
.vl-preview h2 {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
}
.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-body-sm. */
.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-page-title 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-title, 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: 12px;
  background: var(--surface-raised);
  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-sunken);
  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 {
  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;
}
.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;
}

/* 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: 10px;
  padding: 12px 14px;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: var(--surface-raised);
}
/* The ds RadioCard's dot: an 18px ring, 1px below the title's top. */
.vl-choice-radio {
  flex-shrink: 0;
  margin-top: 1px;
  border-radius: 50%;
  border: 1px solid var(--control-line);
}
.vl-checks-loading {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
/* ds SectionHeader's title: 15px at the text-section 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(--line-subtle);
}
[data-admin-layout='events-list'] .el-list-trail {
  display: inline;
}
/* The new-event page's trail is the app's `TrailList` (top-bar-trail.tsx) on the ds Breadcrumb:
   12.5px secondary ink, the current crumb in the primary ink, quiet slashes 8px apart. */
[data-admin-layout='event-new'] .el-setup-trail {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  line-height: 1.5;
  white-space: nowrap;
  color: var(--text-secondary);
}
.el-setup-trail strong {
  font-weight: 400;
  color: var(--text-primary);
}
.el-setup-trail > span {
  color: var(--text-quiet);
}
@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: 13px;
  padding-inline: 11px;
  border: 0;
  font-weight: 500;
}
.vl-continue {
  height: 36px;
  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(--action-secondary-line);
  border-radius: var(--radius-card);
  padding: 6px 6px 6px 18px;
}
.wl-composer .wl-composer-mark,
.wl-composer .wl-composer-attach,
.wl-composer .wl-composer-send {
  flex: none;
}
.wl-composer .wl-composer-field {
  flex: 1;
  min-width: 0;
  border: 0;
  resize: none;
  font: inherit;
  font-size: 16px;
  line-height: 24px;
  padding: 10px 0;
}
.wl-composer .wl-composer-send {
  border-radius: var(--radius-control);
}
.wl-composer .wl-composer-meta {
  flex-basis: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 0 0 4px;
}
/* The library's `xs` secondary button: 28px high, 8px in, a 6px gap, 12px words at 500. */
.wl-composer .wl-scope {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 28px;
  max-width: 100%;
  padding: 0 8px;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  font-size: 12px;
  line-height: 1.4;
  font-weight: 500;
  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);
}

/* A ds TabsTrigger underline: 40px, 14px inline, its 2px rule reaching 1px into the list's pb-px.
   The Needs attention badge has no ghost: ds draws none while the count loads, nor at 0. */
.cl-order-tab {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  gap: 6px;
  height: 40px;
  margin-bottom: -1px;
  padding-inline: 14px;
  border-bottom: 2px solid transparent;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 400;
  color: var(--text-secondary);
}
.cl-order-tab[data-selected] {
  border-bottom-color: var(--text-primary);
  font-weight: 500;
  color: var(--text-primary);
}
/* ds SearchInput sm: a 32px box, 10px inline inside its 1px edge, the 16px glyph 6px before the
   30px field that fills the rest. */
.crm-search.cl-search {
  display: flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 10px;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-control);
}
.cl-search > svg {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  color: var(--text-faint);
}
.cl-search input {
  display: block;
  flex: 1;
  min-width: 0;
  height: 30px;
  border: 0;
  padding: 0;
  border-radius: var(--radius-control);
  font: inherit;
  font-size: 13px;
}
.cl-select {
  position: relative;
  flex-shrink: 0;
}
.cl-select-event {
  width: 220px;
}
/* ds Select sm: a 32px box, the 16px chevron 10px from its end. */
.cl-select select {
  display: block;
  width: 100%;
  height: 32px;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  appearance: none;
}
.cl-select [data-slot='select-chevron'] {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  color: var(--text-quiet);
  pointer-events: none;
}
/* The ds TableHead sort button: 4px between label and caret, its 4px inline padding taken back by
   a negative margin, in the head's font. */
.cl-sort {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 0 -4px;
  padding: 0 4px;
  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;
}
/* ds Button secondary xs: 28px, 8px inline, 12px/500, a 14px icon 6px from the label. */
.cl-order-action {
  height: 28px;
  padding-inline: 8px;
  gap: 6px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
}
/* ds FilterChip: a 32px pill, 12px inline, 13px text, the count 6px after the label. */
.cl-customer-all {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding-inline: 12px;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-pill);
  font-size: 13px;
  line-height: 1.5;
  white-space: nowrap;
}
/* ds Button ghost xs: 28px, 8px inline, 12px/500, a 14px icon 6px from the label. */
.cl-new-segment {
  height: 28px;
  padding-inline: 8px;
  gap: 6px;
  border: 0;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
}

.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(--line-default);
  font-size: 12px;
  line-height: 18px;
}
/* The ds Table frame: the hairline and radius sit on the scrolling frame itself. */
.cl-ticket-frame {
  width: 100%;
}
.cl-ticket-table-container {
  width: 100%;
  overflow-x: auto;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
}
/* The loaded table's min-w-136: below 544px the frame scrolls instead of squeezing the columns. */
.cl-ticket-table {
  width: 100%;
  min-width: 544px;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 13px;
  line-height: 1.5;
}
/* ds TableHead: 40px, 12px/500 sentence case, 16px inline. */
.cl-ticket-table th {
  height: 40px;
  padding: 0 16px;
  text-align: left;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
}
.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: 11px 16px;
}
.cl-ticket-table thead tr,
.cl-ticket-table tbody tr:not(:last-child) {
  border-bottom: 1px solid var(--line-default);
}
.cl-net-definition {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  line-height: 1.4;
  color: var(--text-faint);
}
.cl-money-key {
  margin: 8px 0 20px;
  font-size: 11px;
  line-height: 1.4;
}
.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(--line-default);
  border-radius: var(--radius-card);
}
.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: 1.4;
}
.cl-summary {
  font-size: 15px;
  line-height: 21px;
}
[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: 21px;
  color: var(--text-quiet);
}

.cl-customer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
/* ds Button xs: 28px, 8px inline, 12px/500, a 14px icon 6px from the label. */
.cl-customer-action {
  height: 28px;
  padding-inline: 8px;
  gap: 6px;
  font-size: 12px;
  line-height: 1.4;
  font-weight: 500;
}
.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: 21px;
}
.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(--line-default);
  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: 11px;
}
.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(--text-secondary);
}
.el-registration-head {
  letter-spacing: normal;
}
.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(--line-default);
}

.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(--text-secondary);
}
.el-registration-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
/* ds `Button secondary xs`: 28px, 8px sides, 12px medium. */
.el-registration-action.lp-control {
  height: 28px;
  padding: 0 8px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 500;
}
@media (max-width: 767px) {
  .el-registration-actions {
    display: none;
  }
}

.ml-stat .ml-stat-figure {
  font-weight: 600;
}
[data-layout-region='sales-sources'] .ml-table-header {
  height: auto;
  padding-block: 8px;
  border-bottom: 0;
  border-top: 1px solid var(--line-default);
}
.ml-source-summary {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ml-source-summary > .lp-ghost + .lp-ghost {
  margin-top: 0 !important;
}
/* The ds Select's md box: 14px text at line-height 1.5 (21px), its caret in a 32px inset. */
.ql-default-owner {
  padding: 0 32px 0 12px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 21px;
}

.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;
}
/* 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-overview-controls .ml-overview-range-label {
  font-family: var(--font-ui);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  line-height: 1.4;
}
/* ds SegmentedControl md: 26px items, 12px inline and a 1px border, 13px. */
.ml-overview-controls .lp-segments[data-compact] > span,
.ml-controls-links .lp-segments[data-compact] > span,
.ml-overview-body .ml-share-metric > span {
  padding-inline: 12px;
  border: 1px solid transparent;
  font-size: 13px;
}
/* ds Button secondary sm: a 500 label. */
.ml-overview-controls .ml-overview-new-link {
  font-weight: 500;
}
/* ds SectionHeader: the title 15px at 1.4, the sub 13px at 1.5. */
.ml-overview-body .ml-section-heading h2 {
  line-height: 1.4;
}
.ml-overview-body .ml-section-heading p {
  line-height: 1.5;
}
/* The sales card at 18px a side: the summary, then the 12px header at 1.4. */
.ml-overview-body .ml-source-summary {
  padding-inline: 18px;
}
.ml-overview-body [data-layout-region='sales-sources'] .ml-table-header {
  min-height: 0;
  padding-inline: 18px;
  line-height: 1.4;
}
/* ds SearchInput sm and FilterChip: 32px. */
.ml-controls-links .ml-control-search {
  height: 32px;
}
.ml-controls-links .ml-channel {
  height: 32px;
  line-height: 30px;
}
.ml-overview-body .ml-source-row {
  padding-inline: 18px;
}

/* PromosFilters' ds SegmentedControl size="md": 26px segments, 12px sides inside a 1px border,
   13px labels. */
.ml-controls-promos .lp-segments[data-compact] > span {
  height: 26px;
  padding-inline: 12px;
  border: 1px solid transparent;
  font-size: 13px;
}
/* The ds SearchInput size="sm" is 32px. */
.ml-controls-promos .ml-control-search {
  height: 32px;
}
/* ds SectionHeader over the automations list and the recipes: the title is 15px at 1.4, the
   sub 13px at 1.5. */
.ml-automations-section .ml-section-heading h2,
.ml-section:has(> .ml-recipes) .ml-section-heading h2 {
  line-height: 1.4;
}
.ml-automations-section .ml-section-heading p,
.ml-section:has(> .ml-recipes) .ml-section-heading p {
  line-height: 1.5;
}

/* ds SearchInput sm: a 32px box. */
.ml-controls-emails .ml-control-search {
  height: 32px;
}
/* ds SegmentedControl md: a 32px sunken track of 26px items, 12px a side with a 1px border, 13px.
   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), so the one-digit slot sits 12px out. */
.ml-controls-emails .lp-segments {
  border-radius: var(--radius-control);
}
.ml-controls-emails .lp-segments > span {
  height: 26px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  font-size: 13px;
}
.ml-controls-emails .ml-segment-count {
  margin-left: 12px;
}

/* 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;
}
/* The ds primary md Button: 36px, 14px sides, no border, 13.5px medium. */
.sl-team-invite {
  height: 36px;
  padding-inline: 14px;
  border: 0;
  gap: 8px;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.5;
}
/* The ds ghost sm Button: 32px, 10px sides, 13px medium, a 16px caret. */
.sl-team-matrix .sl-matrix-toggle {
  align-self: flex-start;
  display: flex;
  align-items: center;
  height: 32px;
  padding-inline: 10px;
  gap: 8px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
}
.sl-matrix-toggle svg {
  width: 16px;
  height: 16px;
  color: var(--text-quiet);
}
/* The event editor's skeletons (events/editor-loading.tsx, events/events-loading.tsx
   `EventNewLoading`, events/setup/setup-loading.tsx). `.el-kit-*` rules draw the kit's own parts
   (the editor has no sheet of its own: its pages are library components and utilities) on the v2
   tokens, sizes as the pixels the page holds, no hover, transition or animation. */
/* The setup editor's section navigation (events/setup/setup-loading.tsx), twin of the kit's
   SetupRail and SectionPicker: the 232px rail of 38px rows from 900px, the 36px 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(--line-subtle);
}
/* 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: 36px;
  box-sizing: border-box;
  padding: 0 12px;
  border: 1px solid var(--action-secondary-line);
  border-radius: 8px;
}
/* The step ("2 of 6") at the button's right, before the chevron. */
.el-setup-nav-count {
  margin-left: auto;
}
.el-setup-nav-strip {
  display: flex;
  gap: 6px;
}
.el-setup-nav-strip > span {
  flex: 1;
  height: 4px;
  border-radius: 2px;
  background: var(--line-default);
}
/* The loaded nav switches with `min-[900px]` (`setup-navigation.tsx`): the picker under 900. */
@media (width < 900px) {
  .el-setup-nav-rail {
    display: none;
  }
  .el-setup-nav-picker {
    display: flex;
  }
}
.el-setup-nav-rail-row[data-current] {
  border-radius: 8px;
  background: var(--brand-soft);
}
.el-setup-nav-strip > span[data-current] {
  background: var(--text-primary);
}
/* The parts every section shares: the section and its head (SectionHead), the field group, the
   always-open rows (SettingRow), the notice (SetupNotice, the library's NoticeBanner panel) and the
   list card (SetupCard, ListHeader). */
.lp-ghost.el-setup-pill {
  flex: none;
  border-radius: 999px;
}
.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.25;
  text-wrap: balance;
}
.el-setup-sec-head p {
  margin-top: 6px;
  max-width: 65ch;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text-secondary);
  text-wrap: pretty;
}
.el-setup-group {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}
.el-setup-rows {
  display: flex;
  flex-direction: column;
}
/* A setting row (SettingRow): a block, so its body takes the row's full width under the head. */
.el-setup-row {
  padding: 14px 0;
  border-top: 1px solid var(--line-subtle);
}
.el-setup-row:last-child {
  border-bottom: 1px solid var(--line-subtle);
}
.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.5;
}
.el-setup-row-value {
  flex: 1 1 0;
  min-width: 0;
  font-size: 13.5px;
  line-height: 1.5;
}
/* A locked row's lock (SettingRow `locked`): from 900px it sits inside the value's line. */
.lp-ghost.el-setup-row-lock {
  display: none;
}
/* 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 always-open row's fields (SettingRow's body) and the list's outline Add button. */
.el-setup-row-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 12px 0 2px;
}
/* A row with no head line 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(--action-secondary-line);
  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;
}
/* A notice (SetupNotice: the library's NoticeBanner panel, no border): the info tint as Tickets'
   fee example, red as Review's blocker. The list card (SetupCard): the Tickets type list and
   Review's two cards. */
.el-setup-notice {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 8px 12px;
  padding: 16px 18px;
  border-radius: 12px;
  background: var(--status-info-soft);
  font-size: 14px;
  line-height: 1.5;
}
/* The loaded icon sits 3px down, beside the first 21px line. */
.el-setup-notice > .lp-ghost:first-child {
  flex: none;
  margin-top: 3px;
}
.el-setup-notice > .lp-ghost.el-setup-notice-action {
  margin-left: auto;
}
/* A one-line ghost stands in the 21px line it holds. */
.el-setup-notice > .lp-ghost:not(:first-child) {
  margin-block: 1.5px;
}
.el-setup-card {
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: var(--surface-raised);
  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(--line-subtle);
}
.el-setup-card-head h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.25;
}
.el-setup-sec-head-sub h3 {
  font-size: 15px;
  line-height: 1.4;
}
.el-setup-sec-head-sub p {
  margin-top: 4px;
  font-size: 13px;
}
/* The kit's field column and two-up row, and the library's radio cards, primary button and
   Status's secondary buttons, as the editor draws them. */
.el-kit-two {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.el-kit-fields {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.el-kit-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.el-kit-label {
  font-size: 14px;
  font-weight: 500;
  color: var(--text-secondary);
  line-height: 1.45;
}
.el-kit-hint {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-quiet);
  margin: 0;
}
/* The library's RadioCardGroup (SetupChoices): a stack, or two columns once the group is 28rem
   wide (each card spans both below that); a card is its 18px dot, 1px down, then the title over
   the description. */
.el-kit-choices {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.el-kit-choices > * {
  margin: 0 !important;
}
.el-kit-choices--columns {
  container-type: inline-size;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.el-kit-choices--columns > * {
  grid-column: span 2 / span 2;
}
@container (min-width: 28rem) {
  .el-kit-choices--columns > * {
    grid-column: span 1 / span 1;
  }
}
.el-kit-choice {
  position: relative;
  padding: 12px 14px;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: var(--surface-raised);
  gap: 10px;
  align-items: flex-start;
  color: var(--text-primary);
}
.el-kit-choice > span:first-child {
  flex: none;
  width: 18px;
  height: 18px;
  margin-top: 1px;
}
.el-kit-choice > span:nth-child(2) > span:first-child {
  font-size: 13.5px;
  line-height: 1.5;
  font-weight: 500;
}
.el-kit-choice > span:nth-child(2) > span + span {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
  margin-top: 2px;
}
/* The ds primary button's face; its size is its user's (Continue, Review's Publish: md). */
.el-kit-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 0;
  border-radius: 8px;
  background: var(--action-primary-bg);
  color: var(--action-primary-fg);
  font-weight: 500;
  cursor: pointer;
}
.el-kit-status-action {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
/* The v2 field ghost (`ds` on Field, RowField and ControlRow in editor-loading.tsx): a ds
   FormField is its label (13.5px, one line high), a 6px gap, the 36px control, then the hint at
   12.5px in the secondary ink; a ds Checkbox sits 8px from its 14px label. */
.el-kit-field[data-ds] {
  gap: 6px;
}
.el-kit-field[data-ds] > .el-kit-label {
  font-size: 13.5px;
  line-height: 1;
  color: var(--text-primary);
}
.el-kit-field[data-ds] > .el-kit-hint {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-secondary);
}
/* A labelled ds Checkbox or Switch: the label's `text-body` replaces the library label's
   `leading-none` (tailwind-merge), so its 14px words keep their 1.5 line: 21px, not the 18px box. */
.el-control-row[data-ds] {
  gap: 8px;
  font-size: 14px;
  line-height: 1.5;
}
/* A list row's Edit (ListRow, ds Button secondary xs): 28px, 8px sides inside its 1px border, the
   12px word in transparent ink. */
.lp-ghost.el-kit-edit {
  flex: none;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  width: auto;
  height: 28px;
  padding: 0 9px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  color: transparent;
  white-space: nowrap;
}
/* The shell's section wrapper is `gap-5 min-[900px]:gap-7` (`editor-shell.tsx`): 20px under 900. */
@media (width < 900px) {
  .el-setup-sec {
    gap: 20px;
  }
}
@media (width < 899px) {
  .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 96px;
  }
  /* Under 900px the lock takes its own line, 2px under the value's 20.25px line (13.5px at 1.5),
     whose ghost stands 14px. */
  .lp-ghost.el-setup-row-lock {
    display: block;
    margin-top: 8.25px;
  }
  .el-setup-row-control {
    margin-left: auto;
  }
  .el-setup-card-head {
    padding: 8px 12px 8px 16px;
  }
}
@media (width < 599px) {
  /* Under 600px: the card head's actions under its title; a notice's action wraps under its
     words, from the notice's left edge (a notice without one draws no break); two fields stack. */
  .el-setup-card-head {
    flex-wrap: wrap;
    row-gap: 4px;
  }
  .el-setup-card-head h3 {
    flex: 1 1 100%;
  }
  .el-setup-notice:has(> .el-setup-notice-action)::after {
    content: '';
    flex-basis: 100%;
    order: 1;
  }
  .el-setup-notice > .lp-ghost.el-setup-notice-action {
    order: 2;
    margin-left: 0;
  }
  .el-kit-two {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* The new-event page (events-loading.tsx `EventNewLoading`, editor-loading.tsx), twin of the
   shell's frame (the library's PageHeader, the kit's rail and the utilities of the form column):
   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 clamp(20px, 4vw, 40px) 64px;
}
.el-setup-frame {
  display: contents;
}
/* The ds PageHeader (page-header.tsx) as editor-shell.tsx draws it: a wrapping row of the title
   block and the actions, 24px over and 20px under, on a subtle rule. */
.el-setup-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 24px 0 20px;
  border-bottom: 1px solid var(--line-subtle);
}
.el-setup-head-main {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  gap: 14px;
  min-width: 0;
}
.el-setup-head-text {
  flex-grow: 1;
  min-width: 0;
}
.el-setup-head-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
  min-height: var(--control-md);
}
/* The box the matrix reads as the title is the name alone: the pill hangs 12px after it, out of
   flow, and the margin keeps the row as wide as the loaded name and pill. */
.el-setup-head-title {
  position: relative;
  min-width: 0;
  margin-right: 56px;
}
.el-setup-head-title h1 {
  display: flex;
  align-items: center;
  min-height: 26.4px;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.025em;
  color: var(--text-primary);
}
.el-setup-head-title > .el-setup-pill {
  position: absolute;
  top: 50%;
  left: calc(100% + 12px);
  margin-top: -11px;
}
.el-setup-head-desc {
  margin-top: 4px;
  max-width: 672px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.el-setup-head-meta {
  display: flex;
  align-items: center;
  min-height: 19.5px;
  margin-top: 6px;
}
.el-setup-head-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
/* Preview page is a ghost sm button, Publish a secondary sm one: 32px, 10px in, 13px. */
.el-setup-head-preview,
.el-setup-head-publish {
  display: inline-flex;
  align-items: center;
  height: var(--control-sm);
  padding: 0 10px;
  border-radius: var(--radius-control);
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  color: var(--action-ghost-fg);
}
.el-setup-head-publish {
  border: 1px solid var(--action-secondary-line);
  background: var(--action-secondary-bg);
  color: var(--action-secondary-fg);
}
.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-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 20px;
  padding-top: 20px;
  border-top: 1px solid var(--line-subtle);
}
.el-setup-foot-status {
  display: flex;
  align-items: center;
  min-height: 28px;
  font-size: 12.5px;
  color: var(--text-quiet);
}
/* The footer's Continue is the ds primary md button: 36px, 14px in, 13.5px. */
.el-kit-primary.el-setup-continue {
  height: var(--control-md);
  padding: 0 14px;
  font-size: 13.5px;
}
/* The Setup tab's frame (`EventSetupLoading`), twin of the shell in its tab host and of the
   editor root (`data-slot="setup-page"`): the root's ink on the app canvas, the page, its two
   columns, the form column and the open section; inside the event page's tab the frame takes the
   page's gutters. */
.el-kit-root {
  color: var(--text-primary);
}
.el-kit-section {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.el-kit-page {
  padding: 0 clamp(20px, 4vw, 40px) 64px;
}
.el-kit-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  padding-top: 24px;
}
.el-kit-form {
  display: flex;
  flex-direction: column;
  gap: 28px;
  min-width: 0;
  max-width: 720px;
}
.el-kit-enter {
  font-size: 12.5px;
  color: var(--text-faint);
  display: flex;
  align-items: center;
  gap: 6px;
}
@media (min-width: 900px) {
  .el-setup {
    grid-template-columns: 232px minmax(0, 720px);
    column-gap: 48px;
  }
  .el-kit-columns {
    grid-template-columns: 232px minmax(0, 720px);
    column-gap: 48px;
  }
}
@media (width < 899px) {
  .el-setup-page {
    padding-bottom: 40px;
  }
  .el-setup-head {
    padding-top: 16px;
  }
  .el-kit-page {
    padding-bottom: 40px;
  }
}
/* After the page's own rules, as the shell's tab classes follow its page classes: the tab drops the
   page's gutters, and its columns start 8px under the tabs. */
.el-kit-page--tab {
  padding: 0;
}
.el-kit-page--tab .el-kit-columns {
  padding-top: 8px;
}

/* Type's kind cards: one per row on a phone, side by side from 640px (`sm:grid-cols-3`, or two
   when timed admission is not offered), their dots at the top. When's date, show time and end in
   one row, the date alone under 600px. */
.el-setup-kinds > .el-kit-choices {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
.el-setup-kinds > .el-kit-choices > .el-kit-choice {
  align-items: flex-start;
}
/* Seating's map choice (`SeatMapChoice`): the 14px heading, the cards 10px apart in a grid that
   queries its own width (one column, two from 28rem, three from 42rem), then the helper, 8px
   between the three. A card is the library radio card's box: a 100px well over its name and
   meta lines. */
.el-seat-map-choice {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.el-seat-map-heading {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
}
.el-seat-map-cards {
  container-type: inline-size;
}
.el-seat-map-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}
@container (width >= 28rem) {
  .el-seat-map-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@container (width >= 42rem) {
  .el-seat-map-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.lp-ghost.el-seat-map-card {
  border-radius: var(--radius-card);
}
.el-setup-three {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.el-setup-three-times {
  display: contents;
}
/* On sale's date and time under its cards (`sales-start-field.tsx`: `mt-2`, two across from
   600px, `.el-kit-two`). */
.el-setup-onsale-at {
  margin-top: 8px;
}
@media (min-width: 640px) {
  .el-setup-kinds > .el-kit-choices {
    grid-template-columns: repeat(var(--setup-kinds, 3), minmax(0, 1fr));
  }
}
@media (width < 599px) {
  .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;
  }
}

/* Page (page-section.tsx): the listing-image disclosure (ds Button link xs, pulled 6px up) and the
   FAQs (FaqFields: the questions, 10px, then Add a question, ds Button secondary xs). */
.el-setup-row-link {
  align-self: flex-start;
  margin-top: -6px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--text-link);
}
.el-page-faqs {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}
.el-page-faq-items {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  gap: 16px;
}
.el-page-faq-add {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-sizing: border-box;
  height: 28px;
  padding: 0 8px;
  border: 1px solid var(--action-secondary-line);
  border-radius: 8px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}
.el-page-faq-add > .lp-ghost {
  flex: none;
}
/* Hero artwork's value ("None yet, so the page uses your primary color" on a fresh draft) wraps
   to two 20.25px lines on a phone, which centres the label 6px lower in a 40.5px head (min-height
   outgrows the ghost's own 14px). */
@media (max-width: 439px) {
  .el-setup-row[data-loading-group='hero'] .el-setup-row-value > .lp-ghost {
    min-height: 40.5px;
  }
}
/* Status (status-section.tsx): its actions are ds Button secondary sm at every width (32px, 10px
   sides inside a 1px border, 13px words), over a 12.5px hint. */
.el-kit-status-action .el-setup-row-add {
  box-sizing: border-box;
  height: 32px;
  padding: 0 10px;
  border-color: var(--action-secondary-line);
  line-height: 1;
}
.el-kit-status-action > .el-kit-hint {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-quiet);
}
/* Review and publish (review-section.tsx): the blocker notice (ds NoticeBanner), the readiness card
   (its pill, the check rows), the summary (ds KeyValueList) and the footer with Publish. */
.el-setup-notice[data-loading-group='review-notice'] {
  background: var(--status-danger-soft);
}
/* The title runs into the words (NoticeBanner's lead-in): two 21px lines of 14px text. */
.el-setup-notice-text {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  min-width: 0;
}
.el-setup-notice-text > .lp-ghost {
  margin-block: 3.5px;
}
/* On a phone the blocker's words run to four lines. */
.lp-ghost.el-review-notice-phone {
  display: none;
}
@media (width < 599px) {
  .lp-ghost.el-review-notice-phone {
    display: block;
  }
}
/* Cold, the summary's Tickets value wraps to more lines on a phone (the canonical draft's nine). */
.lp-ghost.el-review-kv-phone {
  display: none;
}
@media (width < 599px) {
  .lp-ghost.el-review-kv-phone {
    display: block;
  }
}
/* The readiness pill (ds StatusPill sm): its words in transparent ink, 22px, 8px sides. */
.lp-ghost.el-review-pill {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}
/* Preview page (ds Button link xs over the anchor): 12px words, 6px, the 14px out-of-page glyph. */
.el-setup-card-link {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--text-link);
  white-space: nowrap;
}
.el-setup-card-link > .lp-ghost {
  flex: none;
}
/* The check rows sit inset in the card, every row on a hairline; the list is pulled 1px under the
   card head's rule and the card's bottom edge, so neither shows twice. */
.el-setup-review-checks {
  display: flex;
  flex-direction: column;
  margin: -1px 0;
  padding: 0 16px;
  list-style: none;
}
.el-setup-check {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-top: 1px solid var(--line-subtle);
  font-size: 13px;
  line-height: 1.5;
}
.el-setup-check:last-child {
  border-bottom: 1px solid var(--line-subtle);
}
.lp-ghost.el-setup-check-ic {
  flex: none;
  border-radius: 50%;
}
/* The text's 19.5px line box holds a label's ink or a 14px ghost alike; the ink keeps its words'
   width, as the loaded label's text does. */
.el-setup-check-text {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-width: 0;
  min-height: 19.5px;
}
/* A fix (ds Button link xs): 12px words on the row's 19.5px line, Open Payouts' glyph 6px after. */
.el-setup-check-fix {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: none;
  margin-left: auto;
  font-size: 12px;
  font-weight: 500;
  line-height: 19.5px;
  color: var(--text-link);
  white-space: nowrap;
}
/* The summary (ds KeyValueList, 16px sides): a row per pair on a hairline, none under the last;
   each label on its row's left, its value filling the rest of the line, 11px above and below the
   13px line. A known value's lines wrap in their own words; the link breaks anywhere. */
.el-setup-kv {
  margin: 0;
  padding: 0 16px;
  font-size: 13px;
  line-height: 1.5;
}
.el-setup-kv > div {
  display: flex;
  border-bottom: 1px solid var(--line-default);
}
.el-setup-kv > div:last-child {
  border-bottom: 0;
}
.el-setup-kv > div > dt,
.el-setup-kv > div > dd {
  margin: 11px 0;
  padding: 0;
}
.el-setup-kv > div > dt {
  flex: none;
  margin-right: 12px;
  color: var(--text-secondary);
}
.el-setup-kv > div > dd {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  align-items: flex-end;
  min-width: 0;
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.lp-ghost.el-review-kv-link {
  overflow-wrap: anywhere;
}
/* The footer: the status line in 12.5px words (two lines on a phone) and Publish, ds Button primary
   md: 36px, 14px sides, 13.5px words. */
.el-review-foot-status {
  line-height: 1.5;
}
.el-kit-primary.el-review-publish {
  height: 36px;
  padding: 0 14px;
  font-size: 13.5px;
  line-height: 1;
}
/* Status's take-down group under its sub head. */
.el-kit-status-group {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
/* The done screen (done-screen.tsx): the Published pill (ds StatusPill md) over the 22px heading
   and its line, the link in its card with Copy link (ds Button secondary sm), the three next
   links as rows over hairlines, then Open event (primary md) and Create another event (secondary md). */
.el-done {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.el-done-heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}
.el-done-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  background: var(--status-success-soft);
  color: var(--status-success-fg);
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}
.el-done-pill::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}
.el-done-heading h1 {
  align-self: stretch;
  margin: 0;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
  text-wrap: balance;
}
.el-done-heading p {
  margin: 0;
  max-width: 65ch;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text-secondary);
  text-wrap: pretty;
}
.el-done-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 12px 12px 16px;
  border: 1px solid var(--line-default);
  border-radius: 12px;
}
.el-done-url {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  font-size: 14px;
  line-height: 1.5;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.el-done-copy,
.el-done-action {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 32px;
  padding: 0 10px;
  border: 1px solid var(--action-secondary-line);
  border-radius: 8px;
  background: var(--action-secondary-bg);
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}
.el-done-next {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.el-done-label {
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.5;
}
.el-done-next-link {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 4px;
  border-bottom: 1px solid var(--line-subtle);
}
.el-done-next-link > span:first-child {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.el-done-next-link strong {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
}
.el-done-next-link > span:first-child > span {
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.el-done-next-link > span:last-child {
  margin-left: auto;
  color: var(--text-faint);
}
.el-done-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.el-done-action {
  height: 36px;
  padding: 0 14px;
  font-size: 13.5px;
}
.el-done-action--primary {
  border-color: transparent;
  background: var(--action-primary-bg);
  color: var(--action-primary-fg);
}

/* The list card (`ListRow`): the card head's actions, the rows and the empty line, shared by
   Tickets' type list and Checkout's Questions; the group wrapper (`SettingGroup`); the chip
   (`Chip`) and the quiet note. */
.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(--line-subtle);
}
.el-setup-li:first-child {
  border-top: 0;
}
/* A group's sub-heading in the type list (`GroupHead`): the sunken band, 10px over and 6px under
   its 12.5px semibold name, beside its two link `xs` actions (12px medium), their words kept. */
.el-setup-li-group {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px 6px;
  border-top: 1px solid var(--line-subtle);
  background: var(--surface-sunken);
}
.el-setup-li-group:first-child {
  border-top: 0;
}
/* The name keeps its ghost width; the space after it holds the actions at the right. */
.lp-ghost.el-setup-li-group-name {
  flex: none;
  margin: 2.375px auto 2.375px 0;
}
.el-setup-li-group-action {
  flex: none;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
}
.el-setup-li-group-action > span {
  visibility: hidden;
}
/* The reorder handle: ds IconButton ghost xs (28px), pulled 6px each side. */
.el-setup-li-grip {
  flex: none;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  margin: 0 -6px;
}
/* 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: 20.25px;
}
.el-setup-li-meta {
  display: block;
  margin-top: 2px;
}
/* A known meta line: the row's own 12.5px words in transparent ink, so it wraps as the row's. */
.el-setup-li-meta > .lp-ghost.el-review-ink {
  font-size: 12.5px;
  font-weight: 400;
  line-height: 1.5;
}
.el-setup-li-meta .el-ink-words {
  visibility: hidden;
}
.el-setup-li-figures {
  flex: none;
  display: flex;
  justify-content: flex-end;
  gap: 16px;
  min-width: 96px;
}
/* Known figures: the row's own 12px tabular words in transparent ink, on a 12px line as the ghosts. */
.el-setup-li-figures > .lp-ghost.el-review-ink {
  font-size: 12px;
  line-height: 12px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.el-setup-li-figures .el-ink-words {
  visibility: hidden;
}
/* Remove: kit `ListRowRemove`, ds Button ghost xs (28px, 8px sides, 12px), its word kept for width. */
.el-setup-li-remove {
  flex: none;
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 8px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  color: var(--action-ghost-fg);
  white-space: nowrap;
}
.el-setup-list-empty {
  margin: 0;
  padding: 18px 16px;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--text-quiet);
  text-wrap: pretty;
}
/* A sub-head over its rows (kit `SettingGroup`, `data-slot="setup-group"`): Fees and tax, Who
   gets in, After registering, the three Policies groups and the seat map. */
.el-kit-group {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
/* The Main offer tag: ds StatusPill tag (20px, 6px sides, 12px). */
.el-kit-chip {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 6px;
  border-radius: 8px;
  background: var(--status-neutral-soft);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--status-neutral-fg);
  white-space: nowrap;
}
.el-kit-note {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-quiet);
  text-wrap: pretty;
}
/* A line a row's title or meta adds only where it wraps on a phone (a cold frame's canonical draft). */
.el-setup-li-phone {
  display: none;
}
/* A cold section lead's words kept as a box (a guess, in transparent ink): they wrap as text. */
.el-setup-sec-head > p > .lp-ghost.el-review-ink {
  display: inline;
}
/* Its words keep their box but are not drawn: forced colours would paint them and find-in-page
   would match them. */
.el-review-ink > .el-ink-words {
  visibility: hidden;
}
@media (width < 899px) {
  .el-setup-li {
    gap: 12px;
    padding: 10px 12px 10px 14px;
  }
  .el-setup-li-figures {
    min-width: 0;
  }
}
@media (width < 599px) {
  /* ListRow under 600px: the grip, the name (over its meta line) and Edit; then a break; then the
     figures from the name's left edge and Remove at the right. */
  .el-setup-li {
    flex-wrap: wrap;
    row-gap: 2px;
  }
  .el-setup-li > .lp-ghost:last-child {
    order: 1;
  }
  .el-setup-li::after {
    content: '';
    flex-basis: 100%;
    order: 2;
  }
  .el-setup-li-figures {
    order: 3;
    flex: 1 1 0;
    justify-content: flex-start;
  }
  .el-setup-li:has(> .el-setup-li-grip) > .el-setup-li-figures {
    padding-left: 28px;
  }
  .el-setup-li > .el-setup-li-remove {
    order: 4;
    margin-left: auto;
  }
  .el-setup-li-phone {
    display: block;
  }
}
/* The Fees and tax group's own rules, scoped by `[data-loading-group="fees"]`. Service fees: the
   library's radio card grid (`RadioCardGroup layout="grid"`), two columns 8px apart once the group
   is 28rem wide, one below that (a container query, as the library's). Custom fees: "Add a fee",
   the library's secondary `sm` with its 16px icon (32px at every width, 10px sides, the icon and
   its 8px gap before the word, a 1px border). */
[data-loading-group='fees'] .el-fee-modes {
  container-type: inline-size;
}
[data-loading-group='fees'] .el-fee-modes-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
@container (width < 28rem) {
  [data-loading-group='fees'] .el-fee-modes-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* A Service fees card (`RadioCard` with an icon): its border, padding and 18px dot, then its icon,
   13.5px title and 13px description, the words hidden so the box wraps as the card's does. */
[data-loading-group='fees'] .el-fee-mode {
  display: flex;
  box-sizing: border-box;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid transparent;
  border-radius: var(--radius-card);
  text-align: left;
}
[data-loading-group='fees'] .el-fee-mode::before {
  content: '';
  flex: none;
  width: 18px;
  height: 18px;
  margin-top: 1px;
}
[data-loading-group='fees'] .el-fee-mode > .el-ink-words {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}
[data-loading-group='fees'] .el-fee-mode-icon {
  height: 20px;
  margin-bottom: 8px;
}
[data-loading-group='fees'] .el-fee-mode-title {
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.5;
}
[data-loading-group='fees'] .el-fee-mode-text {
  margin-top: 2px;
  font-size: 13px;
  line-height: 1.5;
}
[data-loading-group='fees'] .el-setup-row-add {
  box-sizing: border-box;
  height: 32px;
  padding: 0 10px 0 34px;
  line-height: 1;
}
/* Seats and pricing's section prices (`section-prices.tsx`): the head (11px words over an 8px
   pad), the rows 8px apart, the foot line 12px under them. */
.el-section-prices {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.el-section-price-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px 64px 40px;
  align-items: center;
  gap: 12px;
}
/* A cancelled or ended event's rows open no sheet: no Edit track. */
.el-section-prices[data-locked] > .el-section-price-row {
  grid-template-columns: minmax(0, 1fr) 120px 64px;
}
.el-section-price-head {
  padding-bottom: 8px;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--text-quiet);
}
.el-section-price-head > :nth-child(3) {
  text-align: right;
}
.el-section-prices > .el-section-price-row:nth-child(n + 3) {
  margin-top: 8px;
}
.el-section-prices-foot {
  margin-top: 12px;
}
/* Map tools: its whole head is the fold's 32px button (Ruling 49). */
.el-seats-tools > .el-setup-row-head {
  min-height: 32px;
}
/* The policy block in its row (`RefundPolicyBlock`, no padding or hairline of its own), the
   whole-number field and the receive row's Optional mark and counter (`checkout-rows.tsx`). */
.el-kit-policy {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.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;
}
/* The label (14px medium) and its version tag (ds StatusPill tag, 20px) 8px apart, over the
   help (12.5px, 3px under it). */
.el-setting-label {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
}
.el-policy-help {
  margin: 3px 0 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-secondary);
  text-wrap: pretty;
}
/* All versions: ds Button link xs (12px medium, 1.4 high), its words kept for width. */
.el-policy-versions {
  font-size: 12px;
  line-height: 1.4;
  font-weight: 500;
  white-space: nowrap;
}
.el-policy-versions > span,
.el-policy-count > span {
  visibility: hidden;
}
.el-policy-textarea {
  width: 100%;
}
.el-policy-heading.el-policy-footer {
  align-items: center;
  row-gap: 10px;
}
/* The count (kit FieldHint counter: 12.5px tabular figures), its words kept for width. */
.el-policy-count {
  font-size: 12.5px;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
/* Save as v1: ds Button secondary sm (32px, 10px sides inside a 1px border, 13px medium). */
.el-kit-policy .el-policy-footer .el-end-action {
  padding: 0 10px;
  font-weight: 500;
}
.el-kit-number {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
}
.el-kit-number__unit {
  font-size: 14px;
  line-height: 1.5;
  color: var(--text-secondary);
}
/* "Note" then the library's quiet Optional mark (12.5px, one line high), 8px apart. */
.el-kit-field[data-ds] > .el-checkout-label-optional {
  display: flex;
  align-items: center;
  gap: 8px;
}
.el-checkout-label-optional > span {
  font-size: 12.5px;
  line-height: 1;
  font-weight: 400;
  color: var(--text-quiet);
}
/* The counter: one 12.5px line (18.75px) holding its ghost. */
.el-kit-counter {
  display: flex;
  align-items: center;
  min-height: 18.75px;
  font-variant-numeric: tabular-nums;
}
@media (width < 599px) {
  /* The hold's head value at its default ("Tickets are held for 20 minutes while a buyer pays")
     wraps to two lines on a phone. */
  .el-setup-row[data-loading-group='checkout-hold'] .el-setup-row-value {
    min-height: 40.5px;
  }
}
/* Policies' number fields (`WholeField`, `FeeField`): the input, its unit (kit `FieldUnit`, 14px)
   and its range note (12.5px) on one wrapping line, 10px apart, 8px between wrapped lines. */
.el-kit-amount {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  min-width: 0;
}
.el-kit-amount__unit {
  font-size: 14px;
  line-height: 1.5;
  color: var(--text-secondary);
}
.el-kit-amount__note {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-quiet);
}
/* The canonical drafts' long values wrap on a phone, as Hero artwork's does, and the head grows
   with them (20.25px lines). Where each wraps was measured in the browser with the canonical text
   in the loaded row (the row is the viewport less 40px there): the cap's "1,200 people, the
   registration types’ capacity combined" (no control) to two lines up to 419px; the horizon's "No
   limit; every published day is bookable" (beside a switch) up to 447px; the waitlist's "Waitlist
   on · no cap on places · places offered by hand" (beside a switch) up to 534px, and to three
   lines up to 383px. */
@media (max-width: 419px) {
  .el-setup-row[data-loading-group='approval-cap'] .el-setup-row-value > .lp-ghost {
    min-height: 40.5px;
  }
}
@media (max-width: 447px) {
  .el-setup-row[data-loading-group='policies-horizon'] .el-setup-row-value > .lp-ghost {
    min-height: 40.5px;
  }
}
@media (max-width: 534px) {
  .el-setup-row[data-loading-group='approval-waitlist'] .el-setup-row-value > .lp-ghost {
    min-height: 40.5px;
  }
}
@media (max-width: 383px) {
  .el-setup-row[data-loading-group='approval-waitlist'] .el-setup-row-value > .lp-ghost {
    min-height: 60.75px;
  }
}
/* A timed draft's rules editor (schedule/timed-schedule-editor.tsx, on the library): Remove is a
   ds Button ghost xs, "Add rule" a secondary sm, the days ds FilterChips; each field is the v2
   field ghost (`data-ds`, a 36px control). */
.el-kit-text-button {
  height: 28px;
  padding: 0 8px;
  font-size: 12px;
  font-weight: 500;
  line-height: 28px;
  white-space: nowrap;
}
.el-kit-ticket-add {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 32px;
  padding: 0 10px;
  border: 1px solid var(--action-secondary-line);
  border-radius: var(--radius-control);
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
}
.el-kit-rule {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
  margin: 0;
  padding: 18px;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
}
.el-kit-rule-head {
  display: flex;
  align-items: flex-end;
  gap: 12px;
}
.el-kit-rule-head > .el-kit-field {
  flex: 1 1 auto;
}
.el-kit-rule-head > .el-kit-text-button {
  margin-bottom: 4px;
}
/* The rule's dates and its hours share one column grid, by the rule's own width. */
.el-kit-rule {
  container-type: inline-size;
}
.el-kit-rule-dates,
.el-kit-rule-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 14px;
}
.el-kit-rule-dates .el-kit-label,
.el-kit-rule-grid .el-kit-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@container (min-width: 620px) {
  .el-kit-rule-dates,
  .el-kit-rule-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .el-kit-rule-dates > .el-kit-field {
    grid-column: span 2;
  }
}
@container (max-width: 299px) {
  .el-kit-rule-dates,
  .el-kit-rule-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
.el-kit-day-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
/* ds FilterChip's box: 32px, 12px sides, 13px on one line, a 1px edge, a pill. */
.el-kit-day-chips > .el-kit-day-chip {
  display: inline-flex;
  flex: none;
  align-items: center;
  height: 32px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  font-size: 13px;
  line-height: 1.5;
  white-space: nowrap;
}
.el-kit-exceptions {
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  padding: 14px 18px;
}
.el-kit-exceptions > * + * {
  margin-top: 14px;
}
.el-kit-week {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  overflow: hidden;
}
.el-kit-week > li {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 12px;
  padding: 8px 14px;
  border-bottom: 1px solid var(--line-subtle);
  font-size: 13px;
  line-height: 1.5;
}
.el-kit-week > li:last-child {
  border-bottom: 0;
}
.el-kit-week > li > span:first-child {
  color: var(--text-quiet);
}
.el-kit-week > li > span:last-child {
  overflow-wrap: anywhere;
}
.el-kit-slot-count {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--text-primary);
}

/* 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(--line-default);
  border-radius: 12px;
}
/* The loaded ds RadioCard's 18px 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: 2px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}

/* 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;
  }
}

/* The type base the workbench skin used to restate (phase 10d-e, Ruling 33), so taking the
   workbench off the page moved no box. */
.crm-page,
.crm-drawer {
  font-size: 14px;
  line-height: 1.5;
  color: var(--text-primary);
}
.crm-page {
  padding: 30px clamp(20px, 4vw, 40px) 72px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.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: 22px;
  font-weight: 600;
  line-height: 1.2;
}
.crm-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
/* The ds SearchInput draws the box; this is its place in the filter row. */
.crm-search {
  flex: 1 1 280px;
}
.crm-card {
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  overflow: hidden;
  background: var(--surface-raised);
}
/* One source of cell geometry for the ds Table and the ghost rows, at the ds Table metrics. */
.crm-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 13px;
}
/* :where keeps a head's alignment to .crm-right and the ds data-align below. */
:where(.crm-table) th {
  text-align: left;
}
.crm-table th {
  height: 40px;
  padding: 0 16px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--text-secondary);
  text-transform: none;
  letter-spacing: 0;
  white-space: nowrap;
}
.crm-table td {
  height: 63px;
  padding: 11px 16px;
}
.crm-table td,
.crm-table th {
  border-bottom: 1px solid var(--line-default);
}
.crm-table td:first-child,
.crm-table th:first-child {
  width: 48px;
  padding-left: 18px;
  padding-right: 8px;
}
.crm-right,
.crm-table :is(th, td)[data-align='end'] {
  text-align: right;
}
.crm-name {
  font-size: 14px;
  font-weight: 500;
}
.crm-sub {
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12.5px;
  color: var(--text-quiet);
}
.crm-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.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(--text-quiet);
}
.crm-footer {
  justify-content: space-between;
}
.crm-bulk {
  height: 42px;
  background: var(--action-selected-bg);
  color: var(--text-primary);
}
/* The ghost tile's shape; its size is inline, and the ds IdentityTile sizes the loaded tile. */
.crm-avatar {
  flex-shrink: 0;
  border-radius: 50%;
}
.crm-chips {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.crm-segment-bar {
  padding: 16px 18px;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  background: var(--surface-sunken);
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
}
.crm-segment-bar p {
  color: var(--text-quiet);
  font-size: 13px;
  margin-top: 4px;
}
.crm-drawer-header {
  padding: 18px 22px 16px;
  border-bottom: 1px solid var(--line-default);
}
.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: 500;
  margin: 0 0 12px;
}
.crm-section-sub {
  font-size: 12.5px;
  color: var(--text-quiet);
  margin: -7px 0 12px;
}
.crm-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--line-default);
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  overflow: hidden;
}
.crm-stat {
  padding: 14px;
  background: var(--surface-raised);
}
.crm-stat > span {
  font-size: 12px;
  color: var(--text-quiet);
}
.crm-stat strong {
  display: block;
  margin: 5px 0;
  font-weight: 500;
  font-size: 19px;
  font-variant-numeric: tabular-nums;
}
.crm-stat small {
  font-size: 11.5px;
  color: var(--text-faint);
}
.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(--line-default);
  border-radius: var(--radius-card);
}
.crm-buyer a {
  color: var(--text-primary);
}
.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(--text-quiet);
}
.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(--text-quiet);
  font-size: 12px;
}
.crm-money-stats strong {
  display: block;
  font-size: 23px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  margin-top: 4px;
}
.crm-event-orders {
  border: 1px solid var(--line-default);
  border-radius: var(--radius-card);
  overflow: hidden;
}
.crm-event-orders header {
  padding: 14px 16px;
  background: var(--surface-sunken);
}
.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(--line-default);
  font-size: 13px;
  color: var(--text-primary);
}
.crm-event-orders a:hover {
  background: var(--surface-hover);
}
/* The order page's tickets table needs a 544px frame for its price and row menu; beside the aside
   that takes a 1215px viewport, so below it the page is one column (the skeleton shares the class). */
@media (max-width: 1214px) {
  .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-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 {
  display: flex;
  align-items: center;
  gap: 4px;
}

.crm-customer-page {
  max-width: 1000px;
}
.crm-timeline-connector {
  position: absolute;
  bottom: 0;
  left: 13px;
  top: 28px;
  width: 1px;
  background: var(--line-default);
}
.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);
}

/* 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;
}
