/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */

/*
  Reset base style custom properties using the `initial` keyword to ensure
  constructions like var(--vaadin-focus-ring-color, red) correctly resolve
  to the fallback value (red) by default rather than the base style value.
*/
:where(:root),
:where(:host) {
  --vaadin-focus-ring-color: initial;
  --vaadin-focus-ring-width: initial;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@font-face {
  font-family: 'lumo-icons';
  src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABNcAAsAAAAAJqAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAARAAAAGBAJEuVY21hcAAAAYgAAAESAAAEAryc8p5nbHlmAAACnAAADUMAABssFN+RZGhlYWQAAA/gAAAAMQAAADZa/6SoaGhlYQAAEBQAAAAdAAAAJAbpA4RobXR4AAAQNAAAABAAAADEu4AAAGxvY2EAABBEAAAAZAAAAGSgQKfEbWF4cAAAEKgAAAAfAAAAIAFQAXBuYW1lAAAQyAAAATEAAAIuUUJZCHBvc3QAABH8AAABXQAAAimEGAW4eJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGG+wjiBgZWBgamKaQ8DA0MPhGZ8wGDIyAQUZWBlZsAKAtJcUxgcXjG+MmAO+p/FEMUcxDANKMyIoogJAIMlDDt4nO3T13GDQBhF4YOEcs4550wpKskF+cll0YS8l+syzMy3Z9gBoZkfgAKQD+5BDNEPETq+w26U7eepZvsxX9k1sfbT5PMJa6Q1nMfZmgvXxuEXi5QoUwn31ajToEmLNh269OgzYMiIMROmzJizYMmKNRu27Nhz4MiJMxeu3MLzHzx5kYQHFPk/6lpy77+zRDOwbCo5Q82bppvGpjmlBdPk06Khlgy1bKgVQ62a3oi0Zqh1079LG4baNNSWobYNtWOoXUPtGWrfUAeGOjTUkaGODXViqFNDnRnq3FAXhro01JWhrg11Y6hbQ90Z6t5QD4Z6NNSToZ4N9WKoV0O9Gerd9BWnD0N9GurLUBMj+QW9hHPRAAB4nLVYCWxc5RF+83t33759x3p333t72LvrPbzrI16TPWM7WcdekziHnUQxIQGaA1Iol5KS0iitjKqkSYGGFFHRCoE4VClpS9qkSVsBaUQRodxVSyUgVVoh2hQBEeJI1SrCj87/v71xDoSaWLP/OW/++Wfmm/k5C4f/WkbJg5zE+bkEl+E4TzafiaR11RaLRBPe+o6rvpOs7xzQW8lkq663zhxp1Ve7JHhKcrkkYxGltfbq+lVkh6Kqbap6RGY/xj6z+6ri8bR7PFSsi8mmnVe23Hlla5XgGBPncqm1vv1FJPt/6Gy/iwqDIqEwrvr2/i+mM2Cy+eEU14qdhAJ6GPT0MBQhBU6ANqXTT5SzclQ+pxB/p3IKXpZIe1x+SxRPy/F2Ir1c4UFuJt+nPDp1BRL9kMhSHiHkQdZJpK1TekuSTkudbbhjrxI3eUrI04c8q3KQ4yYPSBSZHKoTFJRjGOAHTTzIsNLpqzLxxxmT8lmIlclhS0F+GPLpMEqhQP8sZ3mjjmk7kV+qyfE6Wch5kUchHwKbE2zRfhSjCGHA20nrGglMi2GNSMfEoOOYRLSwOK136K9sdRBvWNzvcOwXw17i2AqTTl13Vni+Z/IEb7OCzAuG7VvE+u3iFpig1wjzmr91h9ahN/FE66CWkmzUW4F83TjKeEw08YZ5eod2h8nXERRNvtWz38h4uhRAx3DxjXpMkgDg96eb9sKHlS81KYGytLF7uYUc5JxcmOvnhrkV3Ab0gUxaD4Jq68XvLIBs3hu1YVcfgnQeu4kYnddc5nzOxea9Lhubx24i5v38PHZr84du0YJBjZI8Lwh8D+9w8CfqxhwAjllG6Rguh/VB7V06jKQk8AfoxAFegHuD2sxLdJzkteCogzckOgNnecfmkGpspTNwrxoq4cxRNjPBUyW0MB34UAdBrofLoW3FXNkiZGI5alFBiKVDoLlwLIHHsWktDfEho1W0BFuW9S1PgT/qh9TyvmW5xFQi9wiq/VOqfMPSqv9r2iMXZc8hIDjf4/L5XD19E32GASSRzyeMk2iRYV0vdEget9yBImlMrgLKFcO4VOJWc9dx27hd3A+5n3BHuWe5v3D/4D6BFvBADDJQgtVwHdpGBqVGPaPc5TukYtI7HILyjMY33a65/Pz9//f6QrO1XaTfvN/6Bb/3ReVp7sP2c5LQLUhL6R3OvELpUjZwX48gyXZKds/S+vhLzNZas5HarKFeIpsLMyQ7VUGSBNXvMu3U5Wf9Y+yU5yXTX2r63KwrZ910EU6Xzr2MSyrpNbEtalMpxhYgn01EeYCiGNbFO0UMoiVR7xCNk/BVUQ/jiAijdMp4s4pLH8ARTma4hPEtUmZEtNd4xWHMdyj8a3LXied5tyy7+efl8p5xso7uQdwx42IU8UyFq6rLYAHdDifM7TUMfJCsZft4mxle0xRYyL6L7vsA8df8nhkWshQ8GmWE/9aEpFs47rN3MD/aydmphjyaN8N7C5lchAc+U/AWzn1zc+jK0kczi3MQu2F65EyO7LTfvmjtw9M5428fPnAmx1Xj6yjDmDg3t/x9xO1EkkVYrSWaTCQT2UK+kE97dZzkbbwtmS5CNgVRBdQQkMAVVO8bJEAwT1w9sXxOX9+c5RO/rTSuHt8xPr7jXkrgxivozWwQXScoxM980rCQNcbKS5GUz1iWL8llUToUppDkMQ+IoRxJ3otZhoZi4bkRwDMopbeQRNi1RlOAMIHgoCrQMrKqVZ4zNN4d9Ux50tr4cL/cOjXVKvcPLe+OOnHIPz40x2ddZRztX9Xfv2o9JXCnO+1fMjTXb71ihUvuHb5cS+tT/rR/lK1c5ZLmDI12R/27y8uRVO7xOdLPtTFJ2d2j2mheUdYqNYpsAY7vE70d0j33SB1ecV9dG9Z/bshsV/VwHHOMPuR+ngzLY6JiDVhoLzJ73nWKIppz5jCDNmKBJbPmYa0zn9KruqZK8mZegnZ+K9qdiwsgAs6hyIxfpekUSmE2EJgrI566qRTUrUnr8FI829mZjdfTPzf1kZJUgHXeC+BAJ8TZbzwOe6rDUJ2Oxyt38T68OXt+vkCi+vgj5mGvUX1IT8KLDvB2OI4LwjMs03u86hsl8gtO5DxcmvoGNf4U5ObmC56CmYUm+ZiZP2HegflXwYUGh8rHRSxPIY8VX1UWE1uLpnyUFaMBEDP3ld5m2c6kFlwWHYgaR5DgHxmY967TB7h0sRPcQxLxxuTBK5cFNeMIXf7klPGJuRAmkdTXbQc5lYug745ghLuot7LskC9nf1gnmdmkXsbPRB7OXtCDMz2CKNqtUatdlKSoXQLZzqjrgp4MJyX7Savdbj1pl4wTsj1CQ3zELlfOcD/GWh+XxzxqefkM1Eoqp0AnttFzdOr0SOkCmygkkux/lGdzvN7g8sk0BQmbqsPZ0sSihcWJieLCRRN7ak3j1o7UgpHSztLIglSHw2ZzNHbhqq5SMllaSUlXsKdnsKdnc5uvu2vNwjVd3b62uuY78Uiv1+fz9kbiDkFwNPTuKnNAsoyyGOzhrOXz/pRr5wa4UW4ZdyXFJT3TeKxC5cyxaFUVmbSXT8Sq56W6wPCCnoQGhyrLUXNLewWgAYcH6l6wd76uj9QdURLTQ0vY+Utzz1RbhSFv4yrp1COA5+bvZpQ3niIrhYBbmDmMdNv8lrrD2vlMcmqYKWJjpeFsXGHvfoTnUZvfZRSMjcjMHUBmDk+gVuP8GGv8EMaRQW4xN95c55sYitEuRYZpXLXWZtHPGp4BctaG3rRbJodlt1ueWSm7uxx+x7QgTDt8brDfcIMAAbcM2+mscZfsgfqO8UL9RrJd9ngCbvcO3CwEhGk7uPwCMgjMwRUBuvN35gL5GB3A33LsoHatYd2SwtgR0zJom7yqkF7AJnNJK94Zpv4x0zVZC8vPSC5CHpyeTk32Q+CyYnR6euy2sbHbZk6kJlPl9hidTf0cJo0jZO2K1IpUdPiywIrStju3lc5hz2zhr2WqHuPXld9RLvC609A54HORcZZGP0Hp7G2Scvt8MZ/vaZcfqyv/0y7WK+duIuzB2MkB9UQaHzH7Amur19sKf2d0t7fDi3/VWvd+8huO5zq4MW4Vt567GSXNxfhcIaPxZcxAtM9osRzGXureWP55chnT1bVYEdgSXisDTzKj6uyTl3jcu0lvX99Niflxjy+4dHdBlWWv0p3SJFn2Kd0Qn9/pUdxa18IE9Dr9Tqd8HG/SoqiqMvMppbO3ifV77Ynw4e8EIkGfEtTaSCyUdbvckiKC8UZY8oiSGAi36U6dtBDd5QuFAw5JVkX4t/nwdKbhp/5NgPoLrYgLqKvLm27Umg8RJ3svoXlcttBpTlJcSoFW6zSdv9FZyANlN6HGTt1m5p/MQai1o4e4mzqzOEvFS/xuO/Wa8bKvHDKnf1nxFIbVn71PPiZHuG6W2bDAptvoY0yY4nYIMBVmQzxNeegjUD9Fqq4eOSq2kEG73cnLolUNLux2BCXeGbUPCoLTYsmm1kfT3876lDays1MkcotlszMiWPg2ZXTdWJ/DylvtgvM6XE6Iq9Ubz+48ONn/FZSnEqMPIurHuHmo30nUcIS9NDSguzVSg35aIkCBZmKMaEmePp7xsbwHt1ShiTdRKZ3/Exk30XzmCfZLbpp5Qg2FVDKOdObZA4JfXHJQCEobtvxMaBOXb7m25e1QrpgLh5GEiuHeUKg3TB6PDEaNjdHBCP7Co/hLs4WNLLl4VAsaygGhxdb7omixl66ZfF608L1bRFgYNpkgCWthyqgub6X1h7VSt3itWLf8ynjd0a6q7Q7o8cDoIatoh2/ZReshqaPybiiS21m+G6MHG0LX02kexLyyF3LMNeHVF6i7v4CuXm0w328crr2reuAUap7rLBLMTjDpQhWjVnOFfAINIAU0XqIh0FQAouLg1GXdS4NrrYLtGcljBUG2jnZ/bXD09lUusAQ6FduZvsVdoba1Flmworn+nhfAUkr0Fq4t2tWgy179pkr+yjLrXLYKNzQjMkMzhmuzHGLgW0uy4KwgWXYLwm6LJAxuGhjY9I1NA5haI0iNlB4qjSS6urBBbtzIC5a9Qpuw1yLwOwfpooFNg/TpaRLXJKuLq7FaIfFKrIYKmGPdi8mQKRarDRs6LRZBMDZQlIbH0NkE4TRtn2bNHtpEQtqwi4sQfXHRc9g5TdunhRPY7KHNHqFWcyWwrqR5JdeJH6K2bItVzVhT+YYK8Ee7JF9U3jWykqETRaHMmkxmzfVr0uk1/9klxXwg70ohKDHsWnlLeeb6NZmy7tvK950iaEU8q4Ax7cklE9TtaVoTopGA6p384cvfdwVr9pbrF1pZYu7sMQsSRJDPNS4RQe4Lx+PFeDzc8PPQJeGEHJsXw79zDT+kMCsMVGrBX6OF9Ne9OCuQIvVPzucrBtlDNK96ZIvNfswRKpeEGxrLQTLEXqadMLnVZrE5VQ9fLQyNp1kxSO2XVYSFqs34WI6hUsSvS8YrRgNnWagbo8R4asWeh/esgPXlPhLj1MDGefM2DvwP/nc56AB4nGNgZGBgAOKLzh/vxPPbfGXgZn4BFGGoUd3QiKD/P2eeynQLyOVgYAKJAgBqTwyBAAAAeJxjYGRgYA76nwUkXzAAAfNUBkYGVGAIAFb8A3UAAAB4nGNgYGBgfjG0MQC0VCwRAAAAAABOAJoA6AEKASwBTgFwAZoBxAHuAhoCnALoBJoEvATWBPIFDgUqBUwFnAXyBiAGZga4BtoHKgeMCAQIjAj4CT4JeAmQCiQKjgrWC04LaguUC84MFAxWDIwMxg0mDXANlnicY2BkYGAwZExhEGUAASYg5gJCBob/YD4DABk2AcIAeJxtkT1OwzAYht/0D9FKCARiYfECC2r6M3ZkaPcO3dPUaVM5ceS4Fb0DJ+AQHIKBM3AIDsFb80mVUG3J3+PH7xcrCYBrfCHCcUTohvU4Grjg7o+bpBvhFvlBuI0eHoU79EPhLp4xEe7hFppPiFqXNHd4FW7gCm/CTfp34Rb5Q7iNe3wKd+i/hbtY4Ee4h6foxewK289TW9Zzvd6ZxJ3EiRba1bkt1SgenuRMl9olXq/U8qDq/XrsfaYyZws1taXXxlhVObvVqY833leTwSATH6e2gMEOBSz6yJGylqgx5/uu6Q0SuLOJc27BLseah73CCDG/57nkjMkypBN41hXTSxy41tjz5jGtR8Z9xoxlv8I09B7ThtPSVOFsS5PSx9iEror/bcCZ/cvH4fbiFyPgZJwAAAB4nG2Qa1PUMBSG+7Jp6Xa7XETECwqiqChF8B9lk2Ob2WzSOWlk8NfTy8L4wTOTM887eebkTJKdZKoi+X/dYQczCKTIsIsccxRYoMQSe9jHAQ7xAkd4iWO8wgle4w3e4h1O8R4fcIZzfMQFPuEzLvEFX/ENV/iOH7hGhRv8xC3u8CsppTW1qxS5jriYgqXf3WJCNnXTFdLVlirt790WJ2PE0cgnjm0hmf39Vh1xUkfcqiPHdr6SXKlGcidWZG2upCWnJc9VQ2q9kbwue/rD3o3jnsMwcPkUpv2eUmxTZUm6vnu1nilfp4p9CPkwwHqpF5plXTXSaUu5Zt8OF4K06VLq1+IZPVDZn0qbIFeWdGac7r9GWOPWYkMuphvjYig9a2LSlTWh2/WxG6S0bbyjoXdetFY+9C0G0Ws+YxqeXzIF85e2C2SBJKtGRKf9XnT/jsxiO/giBuIkeQSgEpzjAAAA)
    format('woff');
  font-weight: normal;
  font-style: normal;
}

:where(:root),
:where(:host) {
  --lumo-icons-align-center: '\ea01';
  --lumo-icons-align-left: '\ea02';
  --lumo-icons-align-right: '\ea03';
  --lumo-icons-angle-down: '\ea04';
  --lumo-icons-angle-left: '\ea05';
  --lumo-icons-angle-right: '\ea06';
  --lumo-icons-angle-up: '\ea07';
  --lumo-icons-arrow-down: '\ea08';
  --lumo-icons-arrow-left: '\ea09';
  --lumo-icons-arrow-right: '\ea0a';
  --lumo-icons-arrow-up: '\ea0b';
  --lumo-icons-bar-chart: '\ea0c';
  --lumo-icons-bell: '\ea0d';
  --lumo-icons-calendar: '\ea0e';
  --lumo-icons-checkmark: '\ea0f';
  --lumo-icons-chevron-down: '\ea10';
  --lumo-icons-chevron-left: '\ea11';
  --lumo-icons-chevron-right: '\ea12';
  --lumo-icons-chevron-up: '\ea13';
  --lumo-icons-clean: '\ea14';
  --lumo-icons-clock: '\ea15';
  --lumo-icons-cog: '\ea16';
  --lumo-icons-cross: '\ea17';
  --lumo-icons-download: '\ea18';
  --lumo-icons-drag-handle: '\ea19';
  --lumo-icons-dropdown: '\ea1a';
  --lumo-icons-edit: '\ea1b';
  --lumo-icons-error: '\ea1c';
  --lumo-icons-eye: '\ea1d';
  --lumo-icons-eye-disabled: '\ea1e';
  --lumo-icons-indent: '\ea1f';
  --lumo-icons-link: '\ea20';
  --lumo-icons-menu: '\ea21';
  --lumo-icons-minus: '\ea22';
  --lumo-icons-ordered-list: '\ea23';
  --lumo-icons-outdent: '\ea24';
  --lumo-icons-phone: '\ea25';
  --lumo-icons-photo: '\ea26';
  --lumo-icons-play: '\ea27';
  --lumo-icons-plus: '\ea28';
  --lumo-icons-redo: '\ea29';
  --lumo-icons-reload: '\ea2a';
  --lumo-icons-resize-handle: '\ea2b';
  --lumo-icons-search: '\ea2c';
  --lumo-icons-undo: '\ea2d';
  --lumo-icons-unordered-list: '\ea2e';
  --lumo-icons-upload: '\ea2f';
  --lumo-icons-user: '\ea30';
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
:where(:root),
:where(:host) {
  /* Base (background) */
  --lumo-base-color: light-dark(#fff, hsl(214, 35%, 21%));

  /* Tint */
  --lumo-tint-5pct: light-dark(hsla(0, 0%, 100%, 0.3), hsla(214, 65%, 85%, 0.06));
  --lumo-tint-10pct: light-dark(hsla(0, 0%, 100%, 0.37), hsla(214, 60%, 80%, 0.14));
  --lumo-tint-20pct: light-dark(hsla(0, 0%, 100%, 0.44), hsla(214, 64%, 82%, 0.23));
  --lumo-tint-30pct: light-dark(hsla(0, 0%, 100%, 0.5), hsla(214, 69%, 84%, 0.32));
  --lumo-tint-40pct: light-dark(hsla(0, 0%, 100%, 0.57), hsla(214, 73%, 86%, 0.41));
  --lumo-tint-50pct: light-dark(hsla(0, 0%, 100%, 0.64), hsla(214, 78%, 88%, 0.5));
  --lumo-tint-60pct: light-dark(hsla(0, 0%, 100%, 0.7), hsla(214, 82%, 90%, 0.58));
  --lumo-tint-70pct: light-dark(hsla(0, 0%, 100%, 0.77), hsla(214, 87%, 92%, 0.69));
  --lumo-tint-80pct: light-dark(hsla(0, 0%, 100%, 0.84), hsla(214, 91%, 94%, 0.8));
  --lumo-tint-90pct: light-dark(hsla(0, 0%, 100%, 0.9), hsla(214, 96%, 96%, 0.9));
  --lumo-tint: light-dark(#fff, hsl(214, 100%, 98%));

  /* Shade */
  --lumo-shade-5pct: light-dark(hsla(214, 61%, 25%, 0.05), hsla(214, 0%, 0%, 0.07));
  --lumo-shade-10pct: light-dark(hsla(214, 57%, 24%, 0.1), hsla(214, 4%, 2%, 0.15));
  --lumo-shade-20pct: light-dark(hsla(214, 53%, 23%, 0.16), hsla(214, 8%, 4%, 0.23));
  --lumo-shade-30pct: light-dark(hsla(214, 50%, 22%, 0.26), hsla(214, 12%, 6%, 0.32));
  --lumo-shade-40pct: light-dark(hsla(214, 47%, 21%, 0.38), hsla(214, 16%, 8%, 0.41));
  --lumo-shade-50pct: light-dark(hsla(214, 45%, 20%, 0.52), hsla(214, 20%, 10%, 0.5));
  --lumo-shade-60pct: light-dark(hsla(214, 43%, 19%, 0.6), hsla(214, 24%, 12%, 0.6));
  --lumo-shade-70pct: light-dark(hsla(214, 42%, 18%, 0.69), hsla(214, 28%, 13%, 0.7));
  --lumo-shade-80pct: light-dark(hsla(214, 41%, 17%, 0.83), hsla(214, 32%, 13%, 0.8));
  --lumo-shade-90pct: light-dark(hsla(214, 40%, 16%, 0.94), hsla(214, 33%, 13%, 0.9));
  --lumo-shade: light-dark(hsl(214, 35%, 15%), hsl(214, 33%, 13%));

  /* Contrast */
  --lumo-contrast-5pct: light-dark(var(--lumo-shade-5pct), var(--lumo-tint-5pct));
  --lumo-contrast-10pct: light-dark(var(--lumo-shade-10pct), var(--lumo-tint-10pct));
  --lumo-contrast-20pct: light-dark(var(--lumo-shade-20pct), var(--lumo-tint-20pct));
  --lumo-contrast-30pct: light-dark(var(--lumo-shade-30pct), var(--lumo-tint-30pct));
  --lumo-contrast-40pct: light-dark(var(--lumo-shade-40pct), var(--lumo-tint-40pct));
  --lumo-contrast-50pct: light-dark(var(--lumo-shade-50pct), var(--lumo-tint-50pct));
  --lumo-contrast-60pct: light-dark(var(--lumo-shade-60pct), var(--lumo-tint-60pct));
  --lumo-contrast-70pct: light-dark(var(--lumo-shade-70pct), var(--lumo-tint-70pct));
  --lumo-contrast-80pct: light-dark(var(--lumo-shade-80pct), var(--lumo-tint-80pct));
  --lumo-contrast-90pct: light-dark(var(--lumo-shade-90pct), var(--lumo-tint-90pct));
  --lumo-contrast: light-dark(var(--lumo-shade), var(--lumo-tint));

  /* Text */
  --lumo-header-text-color: var(--lumo-contrast);
  --lumo-body-text-color: var(--lumo-contrast-90pct);
  --lumo-secondary-text-color: var(--lumo-contrast-70pct);
  --lumo-tertiary-text-color: var(--lumo-contrast-50pct);
  --lumo-disabled-text-color: var(--lumo-contrast-30pct);

  /* Primary */
  --lumo-primary-color: light-dark(hsl(214, 100%, 48%), hsl(214, 90%, 48%));
  --lumo-primary-color-50pct: light-dark(hsla(214, 100%, 49%, 0.76), hsla(214, 90%, 70%, 0.69));
  --lumo-primary-color-10pct: light-dark(hsla(214, 100%, 60%, 0.13), hsla(214, 90%, 55%, 0.13));
  --lumo-primary-text-color: light-dark(hsl(214, 100%, 43%), hsl(214, 90%, 77%));
  --lumo-primary-contrast-color: #fff;

  /* Error */
  --lumo-error-color: light-dark(hsl(3, 85%, 48%), hsl(3, 79%, 49%));
  --lumo-error-color-50pct: light-dark(hsla(3, 85%, 49%, 0.5), hsla(3, 75%, 62%, 0.5));
  --lumo-error-color-10pct: light-dark(hsla(3, 85%, 49%, 0.1), hsla(3, 75%, 62%, 0.14));
  --lumo-error-text-color: light-dark(hsl(3, 89%, 42%), hsl(3, 100%, 80%));
  --lumo-error-contrast-color: #fff;

  /* Success */
  --lumo-success-color: hsl(145, 72%, 30%);
  --lumo-success-color-50pct: light-dark(hsla(145, 72%, 31%, 0.5), hsla(145, 92%, 51%, 0.5));
  --lumo-success-color-10pct: light-dark(hsla(145, 72%, 31%, 0.1), hsla(145, 92%, 51%, 0.1));
  --lumo-success-text-color: light-dark(hsl(145, 85%, 25%), hsl(145, 85%, 46%));
  --lumo-success-contrast-color: #fff;

  /* Warning */
  --lumo-warning-color: light-dark(hsl(48, 100%, 50%), hsl(43, 100%, 48%));
  --lumo-warning-color-10pct: light-dark(hsla(48, 100%, 50%, 0.25), hsla(40, 100%, 50%, 0.2));
  --lumo-warning-text-color: light-dark(hsl(32, 100%, 30%), hsl(45, 100%, 60%));
  --lumo-warning-contrast-color: var(--lumo-shade-90pct);

  /* User colors */
  --vaadin-user-color-0: light-dark(#df0b92, #ff66c7);
  --vaadin-user-color-1: light-dark(#650acc, #9d8aff);
  --vaadin-user-color-2: light-dark(#097faa, #8aff66);
  --vaadin-user-color-3: light-dark(#ad6200, #ffbd66);
  --vaadin-user-color-4: light-dark(#bf16f3, #dc6bff);
  --vaadin-user-color-5: light-dark(#084391, #66fffa);
  --vaadin-user-color-6: light-dark(#078836, #e6ff66);

  /* Base styles colors */
  --vaadin-text-color: var(--lumo-body-text-color);
  --vaadin-text-color-secondary: var(--lumo-secondary-text-color);
  --vaadin-text-color-disabled: var(--lumo-disabled-text-color);
  --vaadin-border-color: var(--lumo-contrast-30pct);
  --vaadin-border-color-secondary: var(--lumo-contrast-10pct);
  --vaadin-background-color: var(--lumo-base-color);
  --vaadin-background-container: var(--lumo-contrast-5pct);
  --vaadin-background-container-strong: var(--lumo-contrast-10pct);
}

/* forced-colors mode adjustments */
@media (forced-colors: active) {
  :where(:root),
  :where(:host) {
    --lumo-disabled-text-color: GrayText;
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
:where(:root),
:where(:host) {
  --lumo-size-xs: 1.625rem;
  --lumo-size-s: 1.875rem;
  --lumo-size-m: 2.25rem;
  --lumo-size-l: 2.75rem;
  --lumo-size-xl: 3.5rem;

  /* Icons */
  --lumo-icon-size-s: 1.25em;
  --lumo-icon-size-m: 1.5em;
  --lumo-icon-size-l: 2.25em;
  /* For backwards compatibility */
  --lumo-icon-size: var(--lumo-icon-size-m);
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
:where(:root),
:where(:host) {
  /* Square */
  --lumo-space-xs: 0.25rem;
  --lumo-space-s: 0.5rem;
  --lumo-space-m: 1rem;
  --lumo-space-l: 1.5rem;
  --lumo-space-xl: 2.5rem;

  /* Wide */
  --lumo-space-wide-xs: calc(var(--lumo-space-xs) / 2) var(--lumo-space-xs);
  --lumo-space-wide-s: calc(var(--lumo-space-s) / 2) var(--lumo-space-s);
  --lumo-space-wide-m: calc(var(--lumo-space-m) / 2) var(--lumo-space-m);
  --lumo-space-wide-l: calc(var(--lumo-space-l) / 2) var(--lumo-space-l);
  --lumo-space-wide-xl: calc(var(--lumo-space-xl) / 2) var(--lumo-space-xl);

  /* Tall */
  --lumo-space-tall-xs: var(--lumo-space-xs) calc(var(--lumo-space-xs) / 2);
  --lumo-space-tall-s: var(--lumo-space-s) calc(var(--lumo-space-s) / 2);
  --lumo-space-tall-m: var(--lumo-space-m) calc(var(--lumo-space-m) / 2);
  --lumo-space-tall-l: var(--lumo-space-l) calc(var(--lumo-space-l) / 2);
  --lumo-space-tall-xl: var(--lumo-space-xl) calc(var(--lumo-space-xl) / 2);
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
:where(:root),
:where(:host) {
  /* Border radius */
  --lumo-border-radius-s: 0.25em; /* Checkbox, badge, date-picker year indicator, etc */
  --lumo-border-radius-m: var(--lumo-border-radius, 0.25em); /* Button, text field, menu overlay, etc */
  --lumo-border-radius-l: 0.5em; /* Dialog, notification, etc */

  /* Shadow */
  --lumo-box-shadow-xs: 0 1px 4px -1px var(--lumo-shade-50pct);
  --lumo-box-shadow-s: 0 2px 4px -1px var(--lumo-shade-20pct), 0 3px 12px -1px var(--lumo-shade-30pct);
  --lumo-box-shadow-m: 0 2px 6px -1px var(--lumo-shade-20pct), 0 8px 24px -4px var(--lumo-shade-40pct);
  --lumo-box-shadow-l: 0 3px 18px -2px var(--lumo-shade-20pct), 0 12px 48px -6px var(--lumo-shade-40pct);
  --lumo-box-shadow-xl: 0 4px 24px -3px var(--lumo-shade-20pct), 0 18px 64px -8px var(--lumo-shade-40pct);

  /* Clickable element cursor */
  --lumo-clickable-cursor: default;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
:where(:root),
:where(:host) {
  /* prettier-ignore */
  --lumo-font-family: -apple-system, BlinkMacSystemFont, 'Roboto', 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
  --vaadin-icon-baseline-font-family: var(--lumo-font-family);

  /* Font sizes */
  --lumo-font-size-xxs: 0.75rem;
  --lumo-font-size-xs: 0.8125rem;
  --lumo-font-size-s: 0.875rem;
  --lumo-font-size-m: 1rem;
  --lumo-font-size-l: 1.125rem;
  --lumo-font-size-xl: 1.375rem;
  --lumo-font-size-xxl: 1.75rem;
  --lumo-font-size-xxxl: 2.5rem;

  /* Line heights */
  --lumo-line-height-xs: 1.25;
  --lumo-line-height-s: 1.375;
  --lumo-line-height-m: 1.625;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
[theme~='badge'] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 0.4em calc(0.5em + var(--lumo-border-radius-s) / 4);
  color: var(--lumo-primary-text-color);
  background-color: var(--lumo-primary-color-10pct);
  border-radius: var(--lumo-border-radius-s);
  font-family: var(--lumo-font-family);
  font-size: var(--lumo-font-size-s);
  line-height: 1;
  font-weight: 500;
  text-transform: initial;
  letter-spacing: initial;
  min-width: calc(var(--lumo-line-height-xs) * 1em + 0.45em);
  flex-shrink: 0;
}

/* Ensure proper vertical alignment */
[theme~='badge']::before {
  display: inline-block;
  content: '\2003';
  width: 0;
}

[theme~='badge'][theme~='small'] {
  font-size: var(--lumo-font-size-xxs);
  line-height: 1;
}

/* Colors */

[theme~='badge'][theme~='success'] {
  color: var(--lumo-success-text-color);
  background-color: var(--lumo-success-color-10pct);
}

[theme~='badge'][theme~='error'] {
  color: var(--lumo-error-text-color);
  background-color: var(--lumo-error-color-10pct);
}

[theme~='badge'][theme~='warning'] {
  color: var(--lumo-warning-text-color);
  background-color: var(--lumo-warning-color-10pct);
}

[theme~='badge'][theme~='contrast'] {
  color: var(--lumo-contrast-80pct);
  background-color: var(--lumo-contrast-5pct);
}

/* Primary */

[theme~='badge'][theme~='primary'] {
  color: var(--lumo-primary-contrast-color);
  background-color: var(--lumo-primary-color);
}

[theme~='badge'][theme~='success'][theme~='primary'] {
  color: var(--lumo-success-contrast-color);
  background-color: var(--lumo-success-color);
}

[theme~='badge'][theme~='error'][theme~='primary'] {
  color: var(--lumo-error-contrast-color);
  background-color: var(--lumo-error-color);
}

[theme~='badge'][theme~='warning'][theme~='primary'] {
  color: var(--lumo-warning-contrast-color);
  background-color: var(--lumo-warning-color);
}

[theme~='badge'][theme~='contrast'][theme~='primary'] {
  color: var(--lumo-base-color);
  background-color: var(--lumo-contrast);
}

/* Links */

[theme~='badge'][href]:hover {
  text-decoration: none;
}

/* Icon */

[theme~='badge'] > vaadin-icon {
  margin: -0.25em 0;
}

[theme~='badge'] > vaadin-icon:first-child {
  margin-left: -0.375em;
}

[theme~='badge'] > vaadin-icon:last-child {
  margin-right: -0.375em;
}

vaadin-icon[theme~='badge'][icon] {
  min-width: 0;
  padding: 0;
  font-size: 1rem;
  width: var(--lumo-icon-size-m);
  height: var(--lumo-icon-size-m);
}

vaadin-icon[theme~='badge'][icon][theme~='small'] {
  width: var(--lumo-icon-size-s);
  height: var(--lumo-icon-size-s);
}

/* Empty */

[theme~='badge']:not([icon]):empty {
  min-width: 0;
  width: 1em;
  height: 1em;
  padding: 0;
  border-radius: 50%;
  background-color: var(--lumo-primary-color);
}

[theme~='badge'][theme~='small']:not([icon]):empty {
  width: 0.75em;
  height: 0.75em;
}

[theme~='badge'][theme~='contrast']:not([icon]):empty {
  background-color: var(--lumo-contrast);
}

[theme~='badge'][theme~='success']:not([icon]):empty {
  background-color: var(--lumo-success-color);
}

[theme~='badge'][theme~='error']:not([icon]):empty {
  background-color: var(--lumo-error-color);
}

[theme~='badge'][theme~='warning']:not([icon]):empty {
  background-color: var(--lumo-warning-color);
}

/* Pill */

[theme~='badge'][theme~='pill'] {
  --lumo-border-radius-s: 1em;
}

/* RTL specific styles */

[dir='rtl'][theme~='badge'] vaadin-icon:first-child {
  margin-right: -0.375em;
  margin-left: 0;
}

[dir='rtl'][theme~='badge'] vaadin-icon:last-child {
  margin-left: -0.375em;
  margin-right: 0;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
:where(:root),
:where(:host) {
  color: var(--lumo-body-text-color);
  background-color: var(--lumo-base-color);
  color-scheme: light;
}

:host([theme~='dark']),
[theme~='dark'] {
  color-scheme: dark;

  /* Dark fallbacks for backwards compatibility: ensures users who only overrode
     the light value of a variable still get a proper dark value. Without these,
     a light-only override (e.g. html { --lumo-base-color: pink }) would apply
     to both modes since color.css uses light-dark() on :where(:root). */

  /* Base (background) */
  --lumo-base-color: hsl(214, 35%, 21%);

  /* Tint */
  --lumo-tint-5pct: hsla(214, 65%, 85%, 0.06);
  --lumo-tint-10pct: hsla(214, 60%, 80%, 0.14);
  --lumo-tint-20pct: hsla(214, 64%, 82%, 0.23);
  --lumo-tint-30pct: hsla(214, 69%, 84%, 0.32);
  --lumo-tint-40pct: hsla(214, 73%, 86%, 0.41);
  --lumo-tint-50pct: hsla(214, 78%, 88%, 0.5);
  --lumo-tint-60pct: hsla(214, 82%, 90%, 0.58);
  --lumo-tint-70pct: hsla(214, 87%, 92%, 0.69);
  --lumo-tint-80pct: hsla(214, 91%, 94%, 0.8);
  --lumo-tint-90pct: hsla(214, 96%, 96%, 0.9);
  --lumo-tint: hsl(214, 100%, 98%);

  /* Shade */
  --lumo-shade-5pct: hsla(214, 0%, 0%, 0.07);
  --lumo-shade-10pct: hsla(214, 4%, 2%, 0.15);
  --lumo-shade-20pct: hsla(214, 8%, 4%, 0.23);
  --lumo-shade-30pct: hsla(214, 12%, 6%, 0.32);
  --lumo-shade-40pct: hsla(214, 16%, 8%, 0.41);
  --lumo-shade-50pct: hsla(214, 20%, 10%, 0.5);
  --lumo-shade-60pct: hsla(214, 24%, 12%, 0.6);
  --lumo-shade-70pct: hsla(214, 28%, 13%, 0.7);
  --lumo-shade-80pct: hsla(214, 32%, 13%, 0.8);
  --lumo-shade-90pct: hsla(214, 33%, 13%, 0.9);
  --lumo-shade: hsl(214, 33%, 13%);

  /* Contrast */
  --lumo-contrast-5pct: var(--lumo-tint-5pct);
  --lumo-contrast-10pct: var(--lumo-tint-10pct);
  --lumo-contrast-20pct: var(--lumo-tint-20pct);
  --lumo-contrast-30pct: var(--lumo-tint-30pct);
  --lumo-contrast-40pct: var(--lumo-tint-40pct);
  --lumo-contrast-50pct: var(--lumo-tint-50pct);
  --lumo-contrast-60pct: var(--lumo-tint-60pct);
  --lumo-contrast-70pct: var(--lumo-tint-70pct);
  --lumo-contrast-80pct: var(--lumo-tint-80pct);
  --lumo-contrast-90pct: var(--lumo-tint-90pct);
  --lumo-contrast: var(--lumo-tint);

  /* Text */
  --lumo-header-text-color: var(--lumo-contrast);
  --lumo-body-text-color: var(--lumo-contrast-90pct);
  --lumo-secondary-text-color: var(--lumo-contrast-70pct);
  --lumo-tertiary-text-color: var(--lumo-contrast-50pct);
  --lumo-disabled-text-color: var(--lumo-contrast-30pct);

  /* Primary */
  --lumo-primary-color: hsl(214, 90%, 48%);
  --lumo-primary-color-50pct: hsla(214, 90%, 70%, 0.69);
  --lumo-primary-color-10pct: hsla(214, 90%, 55%, 0.13);
  --lumo-primary-text-color: hsl(214, 90%, 77%);
  --lumo-primary-contrast-color: #fff;

  /* Error */
  --lumo-error-color: hsl(3, 79%, 49%);
  --lumo-error-color-50pct: hsla(3, 75%, 62%, 0.5);
  --lumo-error-color-10pct: hsla(3, 75%, 62%, 0.14);
  --lumo-error-text-color: hsl(3, 100%, 80%);

  /* Success */
  --lumo-success-color: hsl(145, 72%, 30%);
  --lumo-success-color-50pct: hsla(145, 92%, 51%, 0.5);
  --lumo-success-color-10pct: hsla(145, 92%, 51%, 0.1);
  --lumo-success-text-color: hsl(145, 85%, 46%);

  /* Warning */
  --lumo-warning-color: hsl(43, 100%, 48%);
  --lumo-warning-color-10pct: hsla(40, 100%, 50%, 0.2);
  --lumo-warning-text-color: hsl(45, 100%, 60%);
  --lumo-warning-contrast-color: var(--lumo-shade-90pct);

  /* User colors */
  --vaadin-user-color-0: #ff66c7;
  --vaadin-user-color-1: #9d8aff;
  --vaadin-user-color-2: #8aff66;
  --vaadin-user-color-3: #ffbd66;
  --vaadin-user-color-4: #dc6bff;
  --vaadin-user-color-5: #66fffa;
  --vaadin-user-color-6: #e6ff66;

  /* Re-set registered <color> properties so they recompute in dark context.
     These are registered via CSS.registerProperty() in component-base/style-props.js
     and their values get resolved at definition time, so they won't update
     by just changing color-scheme on a subtree. */
  --vaadin-text-color: var(--lumo-body-text-color);
  --vaadin-text-color-secondary: var(--lumo-secondary-text-color);
  --vaadin-text-color-disabled: var(--lumo-disabled-text-color);
  --vaadin-border-color: var(--lumo-contrast-30pct);
  --vaadin-border-color-secondary: var(--lumo-contrast-10pct);
  --vaadin-background-color: var(--lumo-base-color);

  color: var(--lumo-body-text-color);
  background-color: var(--lumo-base-color);
}

:host([theme~='light-dark']),
[theme~='light-dark'] {
  color: var(--lumo-body-text-color);
  background-color: var(--lumo-base-color);
  color-scheme: light dark;

  /* Re-set registered <color> properties so they recompute based on system preference */
  --vaadin-text-color: var(--lumo-body-text-color);
  --vaadin-text-color-secondary: var(--lumo-secondary-text-color);
  --vaadin-text-color-disabled: var(--lumo-disabled-text-color);
  --vaadin-border-color: var(--lumo-contrast-30pct);
  --vaadin-border-color-secondary: var(--lumo-contrast-10pct);
  --vaadin-background-color: var(--lumo-base-color);
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
:where(body),
:where(:host) {
  font-family: var(--lumo-font-family);
  font-size: var(--lumo-font-size-m);
  line-height: var(--lumo-line-height-m);
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

small,
[theme~='font-size-s'] {
  font-size: var(--lumo-font-size-s);
  line-height: var(--lumo-line-height-s);
}

[theme~='font-size-xs'] {
  font-size: var(--lumo-font-size-xs);
  line-height: var(--lumo-line-height-xs);
}

:where(h1, h2, h3, h4, h5, h6) {
  font-weight: 600;
  line-height: var(--lumo-line-height-xs);
  color: var(--lumo-header-text-color);
  margin-block: 0;
}

:where(h1) {
  font-size: var(--lumo-font-size-xxxl);
}

:where(h2) {
  font-size: var(--lumo-font-size-xxl);
}

:where(h3) {
  font-size: var(--lumo-font-size-xl);
}

:where(h4) {
  font-size: var(--lumo-font-size-l);
}

:where(h5) {
  font-size: var(--lumo-font-size-m);
}

:where(h6) {
  font-size: var(--lumo-font-size-xs);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

p,
blockquote {
  margin-top: 0.5em;
  margin-bottom: 0.75em;
}

a {
  text-decoration: none;
}

a:where(:any-link) {
  color: var(--lumo-primary-text-color);
}

a:where(:any-link):hover {
  text-decoration: underline;
}

a:not(:any-link) {
  color: var(--lumo-disabled-text-color);
}

hr {
  display: block;
  align-self: stretch;
  height: 1px;
  border: 0;
  padding: 0;
  margin: var(--lumo-space-s) calc(var(--lumo-border-radius-m) / 2);
  background-color: var(--lumo-contrast-10pct);
}

b,
strong {
  font-weight: 600;
}

code,
pre {
  border-radius: var(--lumo-border-radius-m);
}

pre code {
  background: transparent;
}

blockquote {
  border-left: 2px solid var(--lumo-contrast-30pct);
  color: var(--lumo-secondary-text-color);
}

blockquote[dir='rtl'] {
  border-left: none;
  border-right: 2px solid var(--lumo-contrast-30pct);
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_accordion-heading {
  :host {
    display: block;
    padding: 0;
  }

  button {
    justify-content: inherit;
    width: 100%;
    margin: 0;
    text-align: inherit;
  }

  [part='content'] {
    padding: var(--lumo-space-s) 0;
  }

  :host([theme~='filled']) {
    padding-top: 0;
    padding-bottom: 0;
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_details-summary {
  :host {
    white-space: nowrap;
    gap: 0;
    width: 100%;
    outline: none;
    padding: var(--lumo-space-s) 0;
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-m);
    line-height: var(--lumo-line-height-xs);
    color: var(--lumo-secondary-text-color);
    background-color: inherit;
    border-radius: var(--lumo-border-radius-m);
    cursor: var(--lumo-clickable-cursor);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  :host([disabled]) {
    pointer-events: none;
    opacity: 1;
  }

  :host([disabled]),
  :host([disabled]) [part='toggle'] {
    color: var(--lumo-disabled-text-color);
    cursor: default;
  }

  @media (hover: hover) {
    :host(:hover:not([disabled])),
    :host(:hover:not([disabled])) [part='toggle'] {
      color: var(--lumo-contrast-80pct);
    }
  }

  [part='toggle'] {
    display: block;
    width: 1em;
    height: 1em;
    margin-left: calc(var(--lumo-space-xs) * -1);
    margin-right: var(--lumo-space-xs);
    font-size: var(--lumo-icon-size-s);
    line-height: 1;
    color: var(--lumo-contrast-60pct);
    font-family: 'lumo-icons';
    cursor: var(--lumo-clickable-cursor);
  }

  [part='toggle']::before {
    mask: none;
    background: none;
    width: auto;
    height: auto;
    content: var(--lumo-icons-angle-down);
  }

  [part='content'] {
    flex-grow: 1;
  }

  /* RTL styles */
  :host([dir='rtl']) [part='toggle'] {
    margin-left: var(--lumo-space-xs);
    margin-right: calc(var(--lumo-space-xs) * -1);
  }

  /* Small */
  :host([theme~='small']) {
    padding-top: var(--lumo-space-xs);
    padding-bottom: var(--lumo-space-xs);
  }

  :host([theme~='small']) [part='toggle'] {
    margin-right: calc(var(--lumo-space-xs) / 2);
  }

  :host([theme~='small'][dir='rtl']) [part='toggle'] {
    margin-left: calc(var(--lumo-space-xs) / 2);
  }

  /* Filled */
  :host([theme~='filled']) {
    padding: var(--lumo-space-s) calc(var(--lumo-space-s) + var(--lumo-space-xs) / 2);
  }

  /* Reverse */
  :host([theme~='reverse']) {
    justify-content: space-between;
  }

  :host([theme~='reverse']) [part='toggle'] {
    order: 1;
    margin-right: 0;
  }

  :host([theme~='reverse'][dir='rtl']) [part='toggle'] {
    margin-left: 0;
  }

  /* Filled reverse */
  :host([theme~='reverse'][theme~='filled']) {
    padding-left: var(--lumo-space-m);
  }

  :host([theme~='reverse'][theme~='filled'][dir='rtl']) {
    padding-right: var(--lumo-space-m);
  }
}

:root,
:host {
  --_lumo-vaadin-accordion-heading-inject: 1;
  --_lumo-vaadin-accordion-heading-inject-modules:
    lumo_components_details-summary,
    lumo_components_accordion-heading;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_accordion-panel {
  :host {
    margin: 0;
    border-bottom: solid 1px var(--lumo-contrast-10pct);
  }

  :host(:last-child) {
    border-bottom: none;
  }

  :host([theme~='filled']) {
    border-bottom: none;
  }

  :host([theme~='filled']:not(:last-child)) {
    margin-bottom: 2px;
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_details {
  :host {
    margin: var(--lumo-space-xs) 0;
    outline: none;
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
  }

  :host([focus-ring]) ::slotted([slot='summary']) {
    box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
  }

  [part='content'] {
    padding: var(--lumo-space-xs) 0 var(--lumo-space-s);
    font-size: var(--lumo-font-size-m);
    line-height: var(--lumo-line-height-m);
  }

  :host([theme~='filled']) {
    background-color: var(--lumo-contrast-5pct);
    border-radius: var(--lumo-border-radius-m);
  }

  :host([theme~='filled']) [part='content'] {
    padding-left: var(--lumo-space-m);
    padding-right: var(--lumo-space-m);
  }

  :host([theme~='small']) [part$='content'] {
    font-size: var(--lumo-font-size-s);
  }
}

:root,
:host {
  --_lumo-vaadin-accordion-panel-inject: 1;
  --_lumo-vaadin-accordion-panel-inject-modules:
    lumo_components_details,
    lumo_components_accordion-panel;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_app-layout {
  :host {
    display: block;
    box-sizing: border-box;
    height: 100%;
    --vaadin-app-layout-transition-duration: 200ms;
    transition: padding var(--vaadin-app-layout-transition-duration);
    --_vaadin-app-layout-drawer-width: var(--vaadin-app-layout-drawer-width, 16em);
    --vaadin-app-layout-touch-optimized: false;
    --vaadin-app-layout-navbar-offset-top: var(--_vaadin-app-layout-navbar-offset-size);
    --vaadin-app-layout-navbar-offset-bottom: var(--_vaadin-app-layout-navbar-offset-size-bottom);
    padding-top: var(--vaadin-app-layout-navbar-offset-top);
    padding-bottom: var(--vaadin-app-layout-navbar-offset-bottom);
    padding-inline-start: var(--vaadin-app-layout-navbar-offset-left);
  }

  :host([hidden]),
  [hidden] {
    display: none !important;
  }

  :host([no-anim]) {
    --vaadin-app-layout-transition-duration: 0s !important;
  }

  :host([drawer-opened]) {
    --vaadin-app-layout-drawer-offset-left: var(--_vaadin-app-layout-drawer-offset-size);
  }

  :host([overlay]) {
    --vaadin-app-layout-drawer-offset-left: 0px;
    --vaadin-app-layout-navbar-offset-left: 0px;
  }

  :host(:not([no-scroll])) [part~='content'] {
    overflow: auto;
  }

  [part~='content'] {
    height: 100%;
    padding-top: max(0px, var(--safe-area-inset-top) - var(--vaadin-app-layout-navbar-offset-top));
    padding-bottom: max(0px, var(--safe-area-inset-bottom) - var(--vaadin-app-layout-navbar-offset-bottom));
    box-sizing: border-box;
    padding-inline: var(--safe-area-inset-inline-start) var(--safe-area-inset-inline-end);
  }

  :host([drawer-opened]:not([overlay])) [part~='content'] {
    padding-inline-start: 0;
  }

  @media (pointer: coarse) and (max-width: 800px) and (min-height: 500px) {
    :host {
      --vaadin-app-layout-touch-optimized: true;
    }
  }

  [part~='navbar'] {
    position: fixed;
    display: flex;
    align-items: center;
    top: 0;
    inset-inline: 0;
    transition: inset-inline-start var(--vaadin-app-layout-transition-duration);
    padding-top: var(--safe-area-inset-top);
    padding-left: var(--safe-area-inset-left);
    padding-right: var(--safe-area-inset-right);
    z-index: 1;
    min-height: var(--lumo-size-xl);
    border-bottom: 1px solid var(--lumo-contrast-10pct);
  }

  :host([primary-section='drawer'][drawer-opened]:not([overlay])) [part~='navbar'] {
    inset-inline-start: var(--vaadin-app-layout-drawer-offset-left, 0);
  }

  :host([primary-section='drawer']) [part='drawer'] {
    top: 0;
  }

  [part~='navbar-bottom'] {
    top: auto;
    bottom: 0;
    padding-top: 0;
    padding-bottom: var(--safe-area-inset-bottom);
    border-bottom: none;
    border-top: 1px solid var(--lumo-contrast-10pct);
  }

  [part='drawer'] {
    overflow: auto;
    position: fixed;
    top: var(--vaadin-app-layout-navbar-offset-top, 0);
    bottom: var(--vaadin-app-layout-navbar-offset-bottom, var(--vaadin-viewport-offset-bottom, 0));
    inset-inline: var(--vaadin-app-layout-navbar-offset-left, 0) auto;
    transition:
      transform var(--vaadin-app-layout-transition-duration),
      visibility var(--vaadin-app-layout-transition-duration);
    transform: translateX(-100%);
    max-width: 90%;
    width: var(--_vaadin-app-layout-drawer-width);
    box-sizing: border-box;
    padding: var(--safe-area-inset-top) 0 var(--safe-area-inset-bottom) var(--safe-area-inset-left);
    outline: none;
    /* The drawer should be inaccessible by the tabbing navigation when it is closed. */
    visibility: hidden;
    display: flex;
    flex-direction: column;
    border-inline-end: 1px solid var(--lumo-contrast-10pct);
  }

  :host([drawer-opened]) [part='drawer'] {
    /* The drawer should be accessible by the tabbing navigation when it is opened. */
    visibility: visible;
    transform: translateX(0%);
    touch-action: manipulation;
  }

  [part='backdrop'] {
    background-color: var(--lumo-shade-20pct);
    opacity: 1;
  }

  :host(:not([drawer-opened])) [part='backdrop'] {
    opacity: 0;
  }

  :host([overlay]) [part='backdrop'] {
    position: fixed;
    inset: 0;
    pointer-events: none;
    transition: opacity var(--vaadin-app-layout-transition-duration);
    -webkit-tap-highlight-color: transparent;
  }

  :host([overlay]) [part='drawer'] {
    top: 0;
    bottom: 0;
    border-inline-end: none;
    box-shadow: var(--lumo-box-shadow-s);
  }

  :host([overlay]) [part='drawer'],
  :host([overlay]) [part='backdrop'] {
    z-index: 2;
  }

  :host([drawer-opened][overlay]) [part='backdrop'] {
    pointer-events: auto;
    touch-action: manipulation;
  }

  :host([dir='rtl']) [part='drawer'] {
    transform: translateX(100%);
  }

  :host([dir='rtl'][drawer-opened]) [part='drawer'] {
    transform: translateX(0%);
  }

  :host([drawer-opened]:not([overlay])) {
    padding-inline-start: var(--vaadin-app-layout-drawer-offset-left);
  }

  @media (max-width: 800px), (max-height: 600px) {
    :host {
      --vaadin-app-layout-drawer-overlay: true;
      --_vaadin-app-layout-drawer-width: var(--vaadin-app-layout-drawer-width, 20em);
    }
  }

  /* If a vaadin-scroller is used in the drawer, allow it to take all remaining space and contain scrolling */
  [part='drawer'] ::slotted(vaadin-scroller) {
    flex: 1;
    overscroll-behavior: contain;
  }

  [part~='navbar'],
  [part='drawer'] {
    background-color: var(--lumo-base-color);
    background-clip: padding-box;
  }

  :host([primary-section='navbar']) [part~='navbar'] {
    border: none;
    background-image: linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct));
  }

  :host([primary-section='drawer']:not([overlay])) [part='drawer'] {
    background-image: linear-gradient(var(--lumo-shade-5pct), var(--lumo-shade-5pct));
  }

  [part] ::slotted(h2),
  [part] ::slotted(h3),
  [part] ::slotted(h4) {
    margin-top: var(--lumo-space-xs) !important;
    margin-bottom: var(--lumo-space-xs) !important;
  }
}

:root,
:host {
  --_lumo-vaadin-app-layout-inject: 1;
  --_lumo-vaadin-app-layout-inject-modules: lumo_components_app-layout;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_menu-overlay-core {
  :host([opening]),
  :host([closing]) {
    animation: 0.14s lumo-overlay-dummy-animation;
  }

  :host([opening]) [part='overlay'] {
    animation: 0.1s lumo-menu-overlay-enter ease-out both;
  }

  @keyframes lumo-menu-overlay-enter {
    0% {
      opacity: 0;
      transform: translateY(-4px);
    }
  }

  :host([closing]) [part='overlay'] {
    animation: 0.1s lumo-menu-overlay-exit both;
  }

  @keyframes lumo-menu-overlay-exit {
    100% {
      opacity: 0;
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_overlay {
  :host {
    z-index: 200;
    position: fixed;

    /* Despite of what the names say, <vaadin-overlay> is just a container
        for position/sizing/alignment. The actual overlay is the overlay part. */

    /* Use flexbox alignment for the overlay part. */
    display: flex;
    flex-direction: column; /* makes dropdowns sizing easier */
    /* Align to center by default. */
    align-items: center;
    justify-content: center;

    /* Override native [popover] user agent styles */
    width: auto;
    height: auto;
    border: none;
    padding: 0;
    background-color: transparent;
    overflow: visible;

    /* Allow centering when max-width/max-height applies. */
    margin: auto;

    /* The host is not clickable, only the overlay part is. */
    pointer-events: none;

    /* Remove tap highlight on touch devices. */
    -webkit-tap-highlight-color: transparent;

    /* CSS API for host */
    --vaadin-overlay-viewport-bottom: 0px;

    inset: var(--vaadin-overlay-viewport-inset, var(--lumo-space-m));
    /* Workaround for Edge issue (only on Surface), where an overflowing vaadin-list-box inside vaadin-select-overlay makes the overlay transparent */
    /* stylelint-disable-next-line */
    outline: 0px solid transparent;
  }

  :host([hidden]),
  :host(:not([opened]):not([closing])),
  :host(:not([opened]):not([closing])) [part='overlay'] {
    display: none !important;
  }

  [part='overlay'] {
    overflow: auto;
    pointer-events: auto;

    /* Prevent overflowing the host */
    max-width: 100%;
    box-sizing: border-box;

    -webkit-tap-highlight-color: initial; /* reenable tap highlight inside */
    background-color: var(--lumo-base-color);
    background-image: linear-gradient(var(--lumo-tint-5pct), var(--lumo-tint-5pct));
    border-radius: var(--lumo-border-radius-m);
    box-shadow:
      0 0 0 1px var(--lumo-shade-5pct),
      var(--lumo-box-shadow-m);

    /* CSS reset for font styles */
    color: var(--lumo-body-text-color);
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-m);
    font-style: normal;
    font-weight: 400;
    font-variant: normal;
    line-height: var(--lumo-line-height-m);
    letter-spacing: 0;
    text-align: initial;
    text-decoration: none;
    text-indent: initial;
    text-transform: none;
    user-select: text;
    white-space: initial;
    word-spacing: initial;
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  [part='backdrop'] {
    z-index: -1;
    content: '';
    background: rgba(0, 0, 0, 0.5);
    position: fixed;
    inset: 0;
    pointer-events: auto;
    background-color: var(--lumo-shade-20pct);
    animation: 0.2s lumo-overlay-backdrop-enter both;
  }

  [part='content'] {
    padding: var(--lumo-space-xs);
  }

  @keyframes lumo-overlay-backdrop-enter {
    0% {
      opacity: 0;
    }
  }

  :host([closing]) [part='backdrop'] {
    animation: 0.2s lumo-overlay-backdrop-exit both;
  }

  @keyframes lumo-overlay-backdrop-exit {
    100% {
      opacity: 0;
    }
  }

  @keyframes lumo-overlay-dummy-animation {
    0% {
      opacity: 1;
    }

    100% {
      opacity: 1;
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_avatar-group-menu-item {
  :host {
    padding: var(--lumo-space-xs);
    padding-inline-end: var(--lumo-space-m);
  }

  [part='content'] {
    display: flex;
    align-items: center;
  }

  [part='content'] ::slotted(vaadin-avatar) {
    width: var(--lumo-size-xs);
    height: var(--lumo-size-xs);
    margin-inline-end: var(--lumo-space-s);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_avatar-group-overlay {
  :host {
    --_lumo-list-box-item-selected-icon-display: none;
    --_lumo-list-box-item-padding-left: calc(var(--lumo-space-m) + var(--lumo-border-radius-m) / 4);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_avatar-group {
  :host {
    --vaadin-avatar-size: var(--lumo-size-m);
    --vaadin-avatar-group-overlap: 8px;
    /* Deprecated property name (overlap-border), for backwards compatibility */
    --vaadin-avatar-group-overlap-border: var(--vaadin-avatar-group-gap, 2px);
  }

  ::slotted(vaadin-avatar) {
    --_gap: var(--vaadin-avatar-group-overlap-border);
    --_outline-width: var(--vaadin-avatar-outline-width);
    mask-size: calc(300% + var(--vaadin-avatar-group-overlap-border) * 6 - var(--vaadin-avatar-outline-width) * 6);
  }

  ::slotted(vaadin-avatar:not(:first-of-type)) {
    margin-inline-start: calc(var(--_overlap) * -1 - var(--vaadin-avatar-outline-width));
  }

  :host([theme~='xlarge']) {
    --vaadin-avatar-group-overlap: 12px;
    --vaadin-avatar-group-overlap-border: 3px;
    --vaadin-avatar-size: var(--lumo-size-xl);
  }

  :host([theme~='large']) {
    --vaadin-avatar-group-overlap: 10px;
    --vaadin-avatar-group-overlap-border: 3px;
    --vaadin-avatar-size: var(--lumo-size-l);
  }

  :host([theme~='small']) {
    --vaadin-avatar-group-overlap: 6px;
    --vaadin-avatar-group-overlap-border: 2px;
    --vaadin-avatar-size: var(--lumo-size-s);
  }

  :host([theme~='xsmall']) {
    --vaadin-avatar-group-overlap: 4px;
    --vaadin-avatar-group-overlap-border: 2px;
    --vaadin-avatar-size: var(--lumo-size-xs);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_item {
  :host {
    display: flex;
    align-items: center;
    box-sizing: border-box;
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-m);
    line-height: var(--lumo-line-height-xs);
    padding: 0.5em calc(var(--lumo-space-l) + var(--lumo-border-radius-m) / 4) 0.5em
      var(--_lumo-list-box-item-padding-left, calc(var(--lumo-border-radius-m) / 4));
    min-height: var(--lumo-size-m);
    outline: none;
    border-radius: var(--lumo-border-radius-m);
    cursor: var(--lumo-clickable-cursor);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-tap-highlight-color: var(--lumo-primary-color-10pct);
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
    --_selection-color-text: var(--vaadin-selection-color-text, var(--lumo-primary-text-color));
  }

  :host([hidden]) {
    display: none !important;
  }

  /* Checkmark */
  [part='checkmark']::before {
    display: var(--_lumo-item-selected-icon-display, none);
    content: var(--lumo-icons-checkmark);
    font-family: lumo-icons;
    font-size: var(--lumo-icon-size-m);
    line-height: 1;
    font-weight: normal;
    width: 1em;
    height: 1em;
    margin: calc((1 - var(--lumo-line-height-xs)) * var(--lumo-font-size-m) / 2) 0;
    color: var(--_selection-color-text);
    flex: none;
    opacity: 0;
    transition:
      transform 0.2s cubic-bezier(0.12, 0.32, 0.54, 2),
      opacity 0.1s;
  }

  :host([selected]) [part='checkmark']::before {
    opacity: 1;
  }

  :host([active]:not([selected])) [part='checkmark']::before {
    transform: scale(0.8);
    opacity: 0;
    transition-duration: 0s;
  }

  [part='content'] {
    flex: auto;
  }

  /* Disabled */
  :host([disabled]) {
    color: var(--lumo-disabled-text-color);
    cursor: not-allowed;
    pointer-events: var(--_vaadin-item-disabled-pointer-events, none);
  }

  /* TODO a workaround until we have "focus-follows-mouse". After that, use the hover style for focus-ring as well */
  @media (any-hover: hover) {
    :host(:hover) {
      background-color: var(--lumo-primary-color-10pct);
    }
  }

  :host([focus-ring]) {
    box-shadow: inset 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
  }

  /* RTL specific styles */
  :host([dir='rtl']) {
    padding-left: calc(var(--lumo-space-l) + var(--lumo-border-radius-m) / 4);
    padding-right: var(--_lumo-list-box-item-padding-left, calc(var(--lumo-border-radius-m) / 4));
  }

  /* Slotted icons */
  :host ::slotted(vaadin-icon) {
    width: var(--lumo-icon-size-m);
    height: var(--lumo-icon-size-m);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_list-box {
  :host {
    display: flex;
    -webkit-tap-highlight-color: transparent;
    --_lumo-item-selected-icon-display: var(--_lumo-list-box-item-selected-icon-display, block);
  }

  :host([hidden]) {
    display: none !important;
  }

  [part='items'] {
    height: 100%;
    width: 100%;
    overflow-y: auto;
  }

  /* Dividers */
  [part='items'] ::slotted(hr) {
    height: 1px;
    border: 0;
    padding: 0;
    margin: var(--lumo-space-s) var(--lumo-border-radius-m);
    background-color: var(--lumo-contrast-10pct);
  }
}

:root,
:host {
  --_lumo-vaadin-avatar-group-inject: 1;
  --_lumo-vaadin-avatar-group-inject-modules: lumo_components_avatar-group;

  --_lumo-vaadin-avatar-group-overlay-inject: 1;
  --_lumo-vaadin-avatar-group-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_mixins_menu-overlay-core,
    lumo_components_avatar-group-overlay;

  --_lumo-vaadin-avatar-group-menu-inject: 1;
  --_lumo-vaadin-avatar-group-menu-inject-modules: lumo_components_list-box;

  --_lumo-vaadin-avatar-group-menu-item-inject: 1;
  --_lumo-vaadin-avatar-group-menu-item-inject-modules:
    lumo_components_item,
    lumo_components_avatar-group-menu-item;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_avatar {
  :host {
    --vaadin-avatar-outline-width: var(--vaadin-focus-ring-width, 2px);
    border: var(--vaadin-avatar-outline-width) solid transparent;
    margin: calc(var(--vaadin-avatar-outline-width) * -1);
    color: var(--vaadin-avatar-text-color, var(--lumo-secondary-text-color));
    background-color: var(--vaadin-avatar-background, var(--lumo-contrast-10pct));
    outline: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    vertical-align: baseline;
  }

  [part='icon'] {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--vaadin-avatar-size, 64px);
    line-height: 1;
    mask: none;
    background: none;
  }

  [part='icon']::before {
    content: var(--lumo-icons-user);
    font-family: lumo-icons;
    font-size: 0.9em;
  }

  [part='abbr'] {
    font-family: var(--lumo-font-family);
    font-size: 2.4375em;
    font-weight: 500;
  }

  :host([has-color-index]) {
    color: var(--lumo-base-color);
  }

  :host([has-color-index])::before {
    outline: none;
    box-shadow: inset 0 0 0 2px var(--vaadin-avatar-user-color);
  }

  :host([focus-ring]) {
    outline: none;
    border-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
  }

  :host([theme~='xlarge']) [part='abbr'] {
    font-size: 2.5em;
  }

  :host([theme~='large']) [part='abbr'] {
    font-size: 2.375em;
  }

  :host([theme~='small']) [part='abbr'] {
    font-size: 2.75em;
  }

  :host([theme~='xsmall']) [part='abbr'] {
    font-size: 3em;
  }

  :host([theme~='xlarge']) {
    --vaadin-avatar-size: var(--lumo-size-xl);
  }

  :host([theme~='large']) {
    --vaadin-avatar-size: var(--lumo-size-l);
  }

  :host([theme~='small']) {
    --vaadin-avatar-size: var(--lumo-size-s);
  }

  :host([theme~='xsmall']) {
    --vaadin-avatar-size: var(--lumo-size-xs);
  }
}

:root,
:host {
  --_lumo-vaadin-avatar-inject: 1;
  --_lumo-vaadin-avatar-inject-modules: lumo_components_avatar;
}

:where(:root),
:where(:host) {
  --vaadin-avatar-size: var(
    --lumo-size-m
  );
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_badge {
  :host {
    border-width: var(--vaadin-badge-border-width, 0);
    background: var(--vaadin-badge-background, var(--lumo-primary-color-10pct));
    color: var(--vaadin-badge-text-color, var(--lumo-primary-text-color));
    font-family: var(--vaadin-badge-font-family, var(--lumo-font-family));
    font-size: var(--vaadin-badge-font-size, var(--lumo-font-size-s));
    line-height: var(--vaadin-badge-line-height, var(--lumo-line-height-m));
  }

  :host([theme~='small']) {
    font-size: var(--lumo-font-size-xxs);
  }

  :host([theme~='success']) {
    --vaadin-badge-background: var(--lumo-success-color-10pct);
    --vaadin-badge-text-color: var(--lumo-success-text-color);
  }

  :host([theme~='error']) {
    --vaadin-badge-background: var(--lumo-error-color-10pct);
    --vaadin-badge-text-color: var(--lumo-error-text-color);
  }

  :host([theme~='warning']) {
    --vaadin-badge-background: var(--lumo-warning-color-10pct);
    --vaadin-badge-text-color: var(--lumo-warning-text-color);
  }

  :host(:is([theme~='neutral'], [theme~='contrast'])) {
    --vaadin-badge-background: var(--lumo-contrast-5pct);
    --vaadin-badge-text-color: var(--lumo-contrast-80pct);
  }

  :host([theme~='filled']) {
    background: var(--lumo-primary-color);
    color: var(--lumo-primary-contrast-color);
  }

  :host([theme~='success'][theme~='filled']) {
    background: var(--lumo-success-color);
    color: var(--lumo-success-contrast-color);
  }

  :host([theme~='error'][theme~='filled']) {
    background: var(--lumo-error-color);
    color: var(--lumo-error-contrast-color);
  }

  :host([theme~='warning'][theme~='filled']) {
    background: var(--lumo-warning-color);
    color: var(--lumo-warning-contrast-color);
  }

  :host(:is([theme~='neutral'], [theme~='contrast'])[theme~='filled']) {
    background: var(--lumo-contrast);
    color: var(--lumo-base-color);
  }

  :host([theme~='dot']) {
    background: var(--lumo-primary-color);
  }

  :host([theme~='dot'][theme~='success']) {
    background: var(--lumo-success-color);
  }

  :host([theme~='dot'][theme~='error']) {
    background: var(--lumo-error-color);
  }

  :host([theme~='dot'][theme~='warning']) {
    background: var(--lumo-warning-color);
  }

  :host([theme~='dot']:is([theme~='neutral'], [theme~='contrast'])) {
    background: var(--lumo-contrast);
  }
}

:root::before,
:host::before {
  --_lumo-vaadin-badge-inject: 1;
  --_lumo-vaadin-badge-inject-modules: lumo_components_badge;
}
/**
 * @license
 * Copyright (c) 2026 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2026 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_breadcrumbs {
  :host {
    font-family: var(--lumo-font-family);
    font-size: var(--vaadin-breadcrumbs-font-size, var(--lumo-font-size-m));
    line-height: var(--vaadin-breadcrumbs-line-height, var(--lumo-line-height-m));
  }

  :host([theme~='primary']) {
    --vaadin-breadcrumbs-link-color: var(--lumo-primary-text-color);
  }

  [part='overflow-button']:focus-visible {
    outline: var(--vaadin-focus-ring-width, 2px) solid var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
  }

  @media (any-hover: hover) {
    [part='overflow-button']:hover {
      color: var(--lumo-body-text-color);
    }
  }

  [part='overflow-button']:active {
    color: var(--lumo-header-text-color);
  }

  :host [part='overflow']::after,
  :host ::slotted(vaadin-breadcrumbs-item)::after {
    --vaadin-icon-visual-size: 75%;
  }
}
/**
 * @license
 * Copyright (c) 2026 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_breadcrumbs-overlay {
  :host {
    --_offset: var(--lumo-space-xs);
  }
}
/**
 * @license
 * Copyright (c) 2026 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2026 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_breadcrumbs-item {
  :host {
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
    font-family: var(--lumo-font-family);
    font-size: var(--vaadin-breadcrumbs-font-size, var(--lumo-font-size-m));
    line-height: var(--vaadin-breadcrumbs-line-height, var(--lumo-line-height-m));
  }

  [part='link'] {
    transition: color 140ms;
  }

  :host([current]) {
    font-weight: 500;
  }

  @media (any-hover: hover) {
    :host(:not([disabled], [slot='overlay'])) [part='link']:hover {
      color: var(--lumo-body-text-color);
    }

    :host([slot='overlay']:not([disabled])) [part='link']:hover {
      background-color: var(--lumo-primary-color-10pct);
    }
  }

  :host(:not([disabled], [slot='overlay'])) [part='link']:active {
    color: var(--lumo-header-text-color);
  }

  [part='link']:focus-visible,
  :host([slot='overlay'][focus-ring]) [part='link'] {
    outline: var(--_focus-ring-width) solid var(--_focus-ring-color);
  }

  slot[name='prefix']::slotted(:is(vaadin-icon, [class*='icon'])) {
    width: var(--lumo-icon-size-s);
    height: var(--lumo-icon-size-s);
  }
}

:root,
:host {
  --_lumo-vaadin-breadcrumbs-item-inject: 1;
  --_lumo-vaadin-breadcrumbs-item-inject-modules: lumo_components_breadcrumbs-item;
}

:root,
:host {
  --_lumo-vaadin-breadcrumbs-inject: 1;
  --_lumo-vaadin-breadcrumbs-inject-modules: lumo_components_breadcrumbs;

  --_lumo-vaadin-breadcrumbs-overlay-inject: 1;
  --_lumo-vaadin-breadcrumbs-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_mixins_menu-overlay-core,
    lumo_components_breadcrumbs-overlay;
}

:where(:root),
:where(:host) {
  --vaadin-breadcrumbs-link-color: 'inherit';
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_button {
  :host {
    display: inline-block;
    position: relative;
    outline: none;
    white-space: nowrap;
    -webkit-user-select: none;
    user-select: none;
    /* Sizing */
    --lumo-button-size: var(--lumo-size-m);
    min-width: var(--vaadin-button-min-width, calc(var(--_button-size) * 2));
    height: var(--_button-size);
    padding: var(--vaadin-button-padding, 0 calc(var(--_button-size) / 3 + var(--lumo-border-radius-m) / 2));
    margin: var(--vaadin-button-margin, var(--lumo-space-xs) 0);
    box-sizing: border-box;
    /* Style */
    font-family: var(--lumo-font-family);
    font-size: var(--vaadin-button-font-size, var(--lumo-font-size-m));
    font-weight: var(--vaadin-button-font-weight, 500);
    color: var(--_lumo-button-text-color);
    background: var(--_lumo-button-background);
    border: var(--vaadin-button-border, none);
    border-radius: var(--vaadin-button-border-radius, var(--lumo-border-radius-m));
    cursor: var(--lumo-clickable-cursor);
    -webkit-tap-highlight-color: transparent;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    flex-shrink: 0;
    --_button-size: var(--vaadin-button-height, var(--lumo-button-size));
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
    /* Used by notification */
    --_lumo-button-background: var(--vaadin-button-background, var(--lumo-contrast-5pct));
    --_lumo-button-text-color: var(--vaadin-button-text-color, var(--lumo-primary-text-color));
    --_lumo-button-primary-background: var(--vaadin-button-primary-background, var(--lumo-primary-color));
    --_lumo-button-primary-text-color: var(--vaadin-button-primary-text-color, var(--lumo-primary-contrast-color));
    /* Allow controlling these from the host (inherited by the inner container */
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  :host([hidden]) {
    display: none !important;
  }

  .vaadin-button-container {
    display: inline-flex;
    align-items: inherit;
    justify-content: inherit;
    text-align: inherit;
    width: 100%;
    height: 100%;
    min-height: inherit;
    text-shadow: inherit;
  }

  /* Aligns the button with form fields when placed on the same line.
Note, to make it work, the form fields should have the same "::before" pseudo-element. */
  .vaadin-button-container::before {
    content: '\2003';
    display: inline-block;
    width: 0;
    max-height: 100%;
  }

  [part='prefix'],
  [part='suffix'] {
    flex: none;
  }

  /* Set only for the internal parts so we don't affect the host vertical alignment */
  [part='label'],
  [part='prefix'],
  [part='suffix'] {
    line-height: var(--lumo-line-height-xs);
  }

  [part='label'] {
    white-space: var(--vaadin-button-label-wrap, nowrap);
    overflow: hidden;
    text-overflow: ellipsis;
    padding: calc(var(--lumo-button-size) / 6) 0;
  }

  :host([theme~='small']) {
    font-size: var(--lumo-font-size-s);
    --lumo-button-size: var(--lumo-size-s);
  }

  :host([theme~='large']) {
    font-size: var(--lumo-font-size-l);
    --lumo-button-size: var(--lumo-size-l);
  }

  /* For interaction states */
  :host::before,
  :host::after {
    content: '';
    /* We rely on the host always being relative */
    position: absolute;
    z-index: 1;
    inset: 0;
    background-color: currentColor;
    border-radius: inherit;
    opacity: 0;
    pointer-events: none;
  }

  /* Hover */

  @media (any-hover: hover) {
    :host(:hover)::before {
      opacity: 0.02;
    }
  }

  /* Active */

  :host::after {
    transition:
      opacity 1.4s,
      transform 0.1s;
    filter: blur(8px);
  }

  :host([active])::before {
    opacity: 0.05;
    transition-duration: 0s;
  }

  :host([active])::after {
    opacity: 0.1;
    transition-duration: 0s, 0s;
    transform: scale(0);
  }

  /* Keyboard focus */

  :host([focus-ring]) {
    box-shadow:
      0 0 0 calc(1px * var(--_focus-ring-gap-on, 0)) var(--_focus-ring-gap-color, var(--lumo-base-color)),
      0 0 0 calc(var(--_focus-ring-width) + 1px * var(--_focus-ring-gap-on, 0)) var(--_focus-ring-color);
  }

  :host([theme~='primary'][focus-ring]) {
    --_focus-ring-gap-on: 1;
  }

  /* Types (primary, tertiary, tertiary-inline */

  :host([theme~='tertiary']),
  :host([theme~='tertiary-inline']) {
    background: var(--vaadin-button-tertiary-background, transparent) !important;
    min-width: 0;
  }

  :host([theme~='tertiary']) {
    border: var(--vaadin-button-tertiary-border, none);
    color: var(--vaadin-button-tertiary-text-color, var(--lumo-primary-text-color));
    font-weight: var(--vaadin-button-tertiary-font-weight, 500);
    padding: var(--vaadin-button-tertiary-padding, 0 calc(var(--_button-size) / 6));
  }

  :host([theme~='tertiary-inline'])::before {
    display: none;
  }

  :host([theme~='tertiary-inline']) {
    margin: 0;
    height: auto;
    padding: 0;
    line-height: inherit;
    font-size: inherit;
  }

  :host([theme~='tertiary-inline']) [part='label'] {
    padding: 0;
    overflow: visible;
    line-height: inherit;
  }

  :host([theme~='primary']) {
    background: var(--_lumo-button-primary-background);
    border: var(--vaadin-button-primary-border, none);
    color: var(--_lumo-button-primary-text-color);
    font-weight: var(--vaadin-button-primary-font-weight, 600);
    min-width: calc(var(--lumo-button-size) * 2.5);
  }

  :host([theme~='primary'])::before {
    background-color: black;
  }

  @media (any-hover: hover) {
    :host([theme~='primary']:hover)::before {
      opacity: 0.05;
    }
  }

  :host([theme~='primary'][active])::before {
    opacity: 0.1;
  }

  :host([theme~='primary'][active])::after {
    opacity: 0.2;
  }

  /* Colors (success, warning, error, contrast) */

  :host([theme~='success']) {
    color: var(--lumo-success-text-color);
  }

  :host([theme~='success'][theme~='primary']) {
    background-color: var(--lumo-success-color);
    color: var(--lumo-success-contrast-color);
  }

  :host([theme~='warning']) {
    color: var(--lumo-warning-text-color);
  }

  :host([theme~='warning'][theme~='primary']) {
    background-color: var(--lumo-warning-color);
    color: var(--lumo-warning-contrast-color);
  }

  :host([theme~='error']) {
    color: var(--lumo-error-text-color);
  }

  :host([theme~='error'][theme~='primary']) {
    background-color: var(--lumo-error-color);
    color: var(--lumo-error-contrast-color);
  }

  :host([theme~='contrast']) {
    color: var(--lumo-contrast);
  }

  :host([theme~='contrast'][theme~='primary']) {
    background-color: var(--lumo-contrast);
    color: var(--lumo-base-color);
  }

  /* Disabled state. Keep selectors after other color variants. */

  :host([disabled]) {
    color: var(--lumo-disabled-text-color);
    pointer-events: var(--_vaadin-button-disabled-pointer-events, none);
    cursor: not-allowed;
  }

  :host([theme~='primary'][disabled]) {
    background-color: var(--lumo-contrast-30pct);
    color: var(--lumo-base-color);
  }

  :host([theme~='primary'][disabled]) [part] {
    opacity: 0.7;
  }

  /* Icons */

  [part] ::slotted(vaadin-icon) {
    width: var(--lumo-icon-size-m);
    height: var(--lumo-icon-size-m);
  }

  [part] ::slotted(vaadin-icon[icon^='vaadin:']) {
    padding: 0.25em;
    box-sizing: border-box !important;
  }

  [part='prefix'] {
    margin-left: -0.25em;
    margin-right: 0.25em;
  }

  [part='suffix'] {
    margin-left: 0.25em;
    margin-right: -0.25em;
  }

  /* Icon-only */

  :host([theme~='icon']:not([theme~='tertiary-inline'])) {
    min-width: var(--lumo-button-size);
    padding-left: calc(var(--lumo-button-size) / 4);
    padding-right: calc(var(--lumo-button-size) / 4);
  }

  :host([theme~='icon']) [part='prefix'],
  :host([theme~='icon']) [part='suffix'] {
    margin-left: 0;
    margin-right: 0;
  }

  /* RTL specific styles */

  :host([dir='rtl']) [part='prefix'] {
    margin-left: 0.25em;
    margin-right: -0.25em;
  }

  :host([dir='rtl']) [part='suffix'] {
    margin-left: -0.25em;
    margin-right: 0.25em;
  }

  :host([dir='rtl'][theme~='icon']) [part='prefix'],
  :host([dir='rtl'][theme~='icon']) [part='suffix'] {
    margin-left: 0;
    margin-right: 0;
  }

  @media (forced-colors: active) {
    :host {
      outline: 1px solid;
      outline-offset: -1px;
    }

    :host([focused]) {
      outline-width: 2px;
    }

    :host([disabled]) {
      outline-color: GrayText;
    }
  }
}

:root,
:host {
  --_lumo-vaadin-button-inject: 1;
  --_lumo-vaadin-button-inject-modules: lumo_components_button;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_card {
  :host(:where([theme~='stretch-media'])) [part~='media'] {
    border-radius: var(--lumo-border-radius-m);
  }

  :host([theme~='outlined']) {
    --vaadin-card-border-width: 1px;
    --vaadin-card-background: var(--lumo-base-color);
  }

  :host([theme~='elevated']) {
    --vaadin-card-background: linear-gradient(var(--lumo-tint-5pct), var(--lumo-tint-5pct)) var(--lumo-base-color);
    --vaadin-card-shadow: var(--lumo-box-shadow-xs);
    --vaadin-card-border-width: 1px;
    --vaadin-card-border-color: light-dark(transparent, var(--lumo-contrast-5pct));
  }

  :host([theme~='elevated'][theme~='outlined']) {
    --vaadin-card-border-color: light-dark(var(--lumo-contrast-30pct), var(--lumo-contrast-20pct));
  }
}

:root,
:host {
  --_lumo-vaadin-card-inject: 1;
  --_lumo-vaadin-card-inject-modules: lumo_components_card;
}

:where(:root),
:where(:host) {
  --vaadin-card-background: var(
    --lumo-contrast-5pct
  );
  --vaadin-card-border-radius: var(
    --lumo-border-radius-l
  );
  --vaadin-card-border-width: 0px;
  --vaadin-card-border-color: var(
    --lumo-contrast-20pct
  );
  --vaadin-card-padding: var(
    --lumo-space-m
  );
  --vaadin-card-gap: var(
    --lumo-space-m
  );
  --vaadin-card-shadow: none;
  --vaadin-card-title-color: var(
    --lumo-header-text-color
  );
  --vaadin-card-title-font-size: var(
    --lumo-font-size-l
  );
  --vaadin-card-title-font-weight: 600;
  --vaadin-card-title-line-height: var(
    --lumo-line-height-xs
  );
  --vaadin-card-subtitle-color: var(
    --lumo-secondary-text-color
  );
  --vaadin-card-subtitle-font-size: var(
    --lumo-font-size-m
  );
  --vaadin-card-subtitle-line-height: var(
    --lumo-line-height-xs
  );
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_chart {
  :host,
  :root {
    --vaadin-charts-background: var(--lumo-base-color);
    --vaadin-charts-title-label: var(--lumo-header-text-color);
    --vaadin-charts-axis-title: var(--lumo-secondary-text-color);
    --vaadin-charts-axis-label: var(--lumo-secondary-text-color);
    --vaadin-charts-data-label: var(--lumo-body-text-color);
    --vaadin-charts-secondary-label: var(--lumo-secondary-text-color);
    --vaadin-charts-axis-line: var(--lumo-contrast-5pct);
    --vaadin-charts-grid-line: var(--lumo-contrast-20pct);
    --vaadin-charts-disabled-label: var(--lumo-disabled-text-color);
    --vaadin-charts-contrast: var(--lumo-contrast);
    --vaadin-charts-tooltip-background: var(--lumo-base-color);
    --vaadin-charts-tooltip-border-color: inherit;
    --vaadin-charts-button-label: var(--lumo-primary-text-color);
    --vaadin-charts-button-background: var(--lumo-contrast-5pct);
    --vaadin-charts-button-hover-background: var(--lumo-primary-color-10pct);
    --vaadin-charts-button-active-label: var(--lumo-primary-contrast-color);
    --vaadin-charts-button-active-background: var(--lumo-primary-color);
    --vaadin-charts-button-border-radius: 2px;
    --vaadin-charts-xaxis-line-width: 0;
    --vaadin-charts-tooltip-background-opacity: 1;
    --vaadin-charts-color-0: #5ac2f7;
    --vaadin-charts-color-1: #1676f3;
    --vaadin-charts-color-2: #ff7d94;
    --vaadin-charts-color-3: #c5164e;
    --vaadin-charts-color-4: #15c15d;
    --vaadin-charts-color-5: #0e8151;
    --vaadin-charts-color-6: #c18ed2;
    --vaadin-charts-color-7: #9233b3;
    --vaadin-charts-color-8: #fda253;
    --vaadin-charts-color-9: #e24932;
    --vaadin-charts-color-positive: var(--vaadin-charts-color-4, #15c15d);
    --vaadin-charts-color-negative: var(--vaadin-charts-color-9, #e24932);
    font-family: var(--lumo-font-family);
  }

  :host([theme~='gradient']) {
    --vaadin-charts-color-0: #1676f3;
    --vaadin-charts-color-1: #13bbf0;
    --vaadin-charts-color-2: #1ee;
    --vaadin-charts-color-3: #0cd9bf;
    --vaadin-charts-color-4: #06be81;
    --vaadin-charts-color-5: #00a344;
    --vaadin-charts-color-6: #41c639;
    --vaadin-charts-color-7: #8aed2c;
    --vaadin-charts-color-8: #c0e632;
    --vaadin-charts-color-9: #f6db3a;
    --vaadin-charts-color-positive: var(--vaadin-charts-color-6);
    --vaadin-charts-color-negative: var(--vaadin-charts-color-1);
  }

  :host([theme~='monotone']) {
    --vaadin-charts-color-0: #1676f3;
    --vaadin-charts-color-1: #4795f5;
    --vaadin-charts-color-2: #71b0f7;
    --vaadin-charts-color-3: #a0cef9;
    --vaadin-charts-color-4: #bce0fa;
    --vaadin-charts-color-5: #a8d8ed;
    --vaadin-charts-color-6: #7fc3dd;
    --vaadin-charts-color-7: #54adcc;
    --vaadin-charts-color-8: #2b99bc;
    --vaadin-charts-color-9: #0284ac;
    --vaadin-charts-color-positive: var(--vaadin-charts-color-3);
    --vaadin-charts-color-negative: var(--vaadin-charts-color-9);
  }

  :host([theme~='classic']) {
    --vaadin-charts-color-0: #7cb5ec;
    --vaadin-charts-color-1: #434348;
    --vaadin-charts-color-2: #90ed7d;
    --vaadin-charts-color-3: #f7a35c;
    --vaadin-charts-color-4: #8085e9;
    --vaadin-charts-color-5: #f15c80;
    --vaadin-charts-color-6: #e4d354;
    --vaadin-charts-color-7: #2b908f;
    --vaadin-charts-color-8: #f45b5b;
    --vaadin-charts-color-9: #91e8e1;
  }
}

:root,
:host {
  --_lumo-vaadin-chart-inject: 1;
  --_lumo-vaadin-chart-inject-modules: lumo_components_chart;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_field-error-message {
  [part='error-message'] {
    margin-left: calc(var(--lumo-border-radius-m) / 4);
    font-size: var(--vaadin-input-field-error-font-size, var(--lumo-font-size-xs));
    line-height: var(--lumo-line-height-xs);
    font-weight: var(--vaadin-input-field-error-font-weight, 400);
    color: var(--vaadin-input-field-error-color, var(--lumo-error-text-color));
    transition: 0.4s max-height;
    max-height: 5em;
  }

  :host([has-error-message]) [part='error-message']::before,
  :host([has-error-message]) [part='error-message']::after {
    content: '';
    display: block;
    height: 0.4em;
  }

  :host(:not([invalid])) [part='error-message'] {
    max-height: 0;
    overflow: hidden;
  }

  /* RTL specific styles */

  :host([dir='rtl']) [part='error-message'] {
    margin-left: 0;
    margin-right: calc(var(--lumo-border-radius-m) / 4);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_field-helper {
  :host {
    --_helper-spacing: var(--vaadin-input-field-helper-spacing, 0.4em);
  }

  :host([has-helper]) [part='helper-text']::before {
    content: '';
    display: block;
    height: var(--_helper-spacing);
  }

  [part='helper-text'] {
    display: block;
    color: var(--vaadin-input-field-helper-color, var(--lumo-secondary-text-color));
    font-size: var(--vaadin-input-field-helper-font-size, var(--lumo-font-size-xs));
    line-height: var(--lumo-line-height-xs);
    font-weight: var(--vaadin-input-field-helper-font-weight, 400);
    margin-left: calc(var(--lumo-border-radius-m) / 4);
    transition: color 0.2s;
  }

  :host(:hover:not([readonly])) [part='helper-text'] {
    color: var(--lumo-body-text-color);
  }

  :host([disabled]) [part='helper-text'] {
    color: var(--lumo-disabled-text-color);
    -webkit-text-fill-color: var(--lumo-disabled-text-color);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_field-helper-above {
  :host([has-helper][theme~='helper-above-field']) [part='helper-text']::before {
    display: none;
  }

  :host([has-helper][theme~='helper-above-field']) [part='helper-text']::after {
    content: '';
    display: block;
    height: var(--_helper-spacing);
  }

  :host([has-helper][theme~='helper-above-field']) [part='label'] {
    order: 0;
    padding-bottom: var(--_helper-spacing);
  }

  :host([has-helper][theme~='helper-above-field']) [part='helper-text'] {
    order: 1;
  }

  :host([has-helper][theme~='helper-above-field']) [part='label'] + * {
    order: 2;
  }

  :host([has-helper][theme~='helper-above-field']) [part='error-message'] {
    order: 3;
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_field-label {
  [part='label'] {
    align-self: flex-start;
    color: var(--vaadin-input-field-label-color, var(--lumo-secondary-text-color));
    font-weight: var(--vaadin-input-field-label-font-weight, 500);
    font-size: var(--vaadin-input-field-label-font-size, var(--lumo-font-size-s));
    transition: color 0.2s;
    line-height: 1;
    padding-inline: calc(var(--lumo-border-radius-m) / 4) 1em;
    padding-bottom: 0.5em;
    /* As a workaround for diacritics being cut off, add a top padding and a
  negative margin to compensate */
    padding-top: 0.25em;
    margin-top: -0.25em;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    position: relative;
    max-width: 100%;
    box-sizing: border-box;
  }

  :host([focused]:not([readonly])) [part='label'] {
    color: var(--vaadin-input-field-focused-label-color, var(--lumo-primary-text-color));
  }

  :host(:hover:not([readonly]):not([focused])) [part='label'] {
    color: var(--vaadin-input-field-hovered-label-color, var(--lumo-body-text-color));
  }

  /* Touch device adjustment */
  @media (pointer: coarse) {
    :host(:hover:not([readonly]):not([focused])) [part='label'] {
      color: var(--vaadin-input-field-label-color, var(--lumo-secondary-text-color));
    }
  }

  :host(:not([has-label])) [part='label'] {
    display: none;
  }

  :host([has-label])::before {
    margin-top: calc(var(--lumo-font-size-s) * 1.5);
  }

  :host([has-label][theme~='small'])::before {
    margin-top: calc(var(--lumo-font-size-xs) * 1.5);
  }

  :host([has-label]) {
    padding-top: var(--lumo-space-m);
  }

  :host([has-label]) ::slotted([slot='tooltip']) {
    --vaadin-tooltip-offset-bottom: calc((var(--lumo-space-m) - var(--lumo-space-xs)) * -1);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_field-required {
  :host([required]) [part='required-indicator']::after {
    content: var(--vaadin-input-field-required-indicator, var(--lumo-required-field-indicator, '\2022'));
    color: var(
      --vaadin-input-field-required-indicator-color,
      var(--lumo-required-field-indicator-color, var(--lumo-primary-text-color))
    );
    position: absolute;
    right: 0;
    width: 1em;
    text-align: center;
  }

  :host([invalid]) [part='required-indicator']::after {
    color: var(
      --vaadin-input-field-required-indicator-color,
      var(--lumo-required-field-indicator-color, var(--lumo-error-text-color))
    );
  }

  /* RTL specific styles */

  :host([dir='rtl']) [part='required-indicator']::after {
    right: auto;
    left: 0;
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_group-field {
  :host {
    display: inline-flex;
    color: var(--lumo-body-text-color);
    font-size: var(--lumo-font-size-m);
    font-family: var(--lumo-font-family);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-tap-highlight-color: transparent;
    padding: var(--lumo-space-xs) 0;
  }

  :host::before {
    content: '\2003';
    width: 0;
    height: var(--lumo-size-s);
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
  }

  :host([hidden]) {
    display: none !important;
  }

  .vaadin-group-field-container {
    display: flex;
    flex-direction: column;
    width: 100%;
  }

  [part='group-field'] {
    display: flex;
    flex-wrap: wrap;
  }

  :host(:not([has-label])) [part='label'] {
    display: none;
  }

  :host([theme~='vertical']) [part='group-field'] {
    flex-direction: column;
  }

  :host([disabled]) [part='label'] {
    color: var(--lumo-disabled-text-color);
    -webkit-text-fill-color: var(--lumo-disabled-text-color);
  }

  :host([focused]:not([readonly])) [part='label'] {
    color: var(--lumo-primary-text-color);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_checkbox-group {
  :host(:hover:not([readonly]):not([disabled]):not([focused])) [part='label'],
  :host(:hover:not([readonly]):not([disabled]):not([focused])) [part='helper-text'] {
    color: var(--lumo-body-text-color);
  }

  /* Touch device adjustment */
  @media (pointer: coarse) {
    :host(:hover:not([readonly]):not([disabled]):not([focused])) [part='label'] {
      color: var(--lumo-secondary-text-color);
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_checkable-field {
  :host {
    display: inline-block;
    font-family: var(--lumo-font-family);
    line-height: var(--lumo-line-height-s);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-tap-highlight-color: transparent;
    -webkit-user-select: none;
    user-select: none;
    cursor: default;
    outline: none;
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
    --_selection-color: var(--vaadin-selection-color, var(--lumo-primary-color));
  }

  :host([hidden]) {
    display: none !important;
  }

  :host([disabled]) {
    -webkit-tap-highlight-color: transparent;
  }

  .vaadin-checkbox-container,
  .vaadin-radio-button-container {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: baseline;
  }

  [part='checkbox'],
  [part='radio'],
  [part='label'],
  ::slotted(input),
  ::slotted(label) {
    grid-row: 1;
  }

  [part='checkbox'],
  [part='radio'],
  ::slotted(input) {
    grid-column: 1;
  }

  /* Control container (checkbox, radio button) */
  [part='checkbox'],
  [part='radio'] {
    width: var(--_input-size, 1em);
    height: var(--_input-size, 1em);
    --_input-border-width: var(--vaadin-input-field-border-width, 0);
    --_input-border-color: var(--vaadin-input-field-border-color, transparent);
    margin: var(--lumo-space-xs);
    position: relative;
    box-shadow: inset 0 0 0 var(--_input-border-width, 0) var(--_input-border-color);
    transition:
      transform 0.2s cubic-bezier(0.12, 0.32, 0.54, 2),
      background-color 0.15s;
    cursor: var(--lumo-clickable-cursor);
  }

  /* Used for activation "halo" */
  [part='checkbox']::before,
  [part='radio']::before {
    display: block;
    content: '\202F';
    line-height: var(--_input-size, 1em);
    contain: paint;
    pointer-events: none;
    color: transparent;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    background-color: inherit;
    transform: scale(1.4);
    opacity: 0;
    transition:
      transform 0.1s,
      opacity 0.8s;
  }

  /* visually hidden */
  ::slotted(input) {
    cursor: inherit;
    margin: 0;
    align-self: stretch;
    appearance: none;
    width: initial;
    height: initial;
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_checkbox {
  :host {
    color: var(--vaadin-checkbox-label-color, var(--lumo-body-text-color));
    font-size: var(--vaadin-checkbox-label-font-size, var(--lumo-font-size-m));
    --_checkbox-size: var(--vaadin-checkbox-size, calc(var(--lumo-size-m) / 2));
    --_invalid-background: var(--vaadin-input-field-invalid-background, var(--lumo-error-color-10pct));
    --_disabled-checkmark-color: var(--vaadin-checkbox-disabled-checkmark-color, var(--lumo-contrast-30pct));
  }

  [part='label'] {
    display: flex;
    position: relative;
    max-width: max-content;
  }

  :host([has-label]) ::slotted(label) {
    padding: var(
      --vaadin-checkbox-label-padding,
      var(--lumo-space-xs) var(--lumo-space-s) var(--lumo-space-xs) var(--lumo-space-xs)
    );
  }

  :host([dir='rtl'][has-label]) ::slotted(label) {
    padding: var(--lumo-space-xs) var(--lumo-space-xs) var(--lumo-space-xs) var(--lumo-space-s);
  }

  :host([has-label][required]) ::slotted(label) {
    padding-inline-end: var(--lumo-space-m);
  }

  [part='checkbox'] {
    --_input-size: var(--_checkbox-size);
    border-radius: var(--vaadin-checkbox-border-radius, var(--lumo-border-radius-s));
    background: var(--vaadin-checkbox-background, var(--lumo-contrast-20pct));
    /* Default field border color */
    --_input-border-color: var(--vaadin-input-field-border-color, var(--lumo-contrast-50pct));
  }

  :host([indeterminate]),
  :host([checked]) {
    --vaadin-input-field-border-color: transparent;
  }

  :host([indeterminate]) [part='checkbox'],
  :host([checked]) [part='checkbox'] {
    background-color: var(--_selection-color);
  }

  /* Checkmark */
  [part='checkbox']::after {
    pointer-events: none;
    font-family: 'lumo-icons';
    content: var(--vaadin-checkbox-checkmark-char, var(--lumo-icons-checkmark));
    color: var(--vaadin-checkbox-checkmark-color, var(--lumo-primary-contrast-color));
    font-size: var(--vaadin-checkbox-checkmark-size, calc(var(--_checkbox-size) + 2px));
    line-height: 1;
    position: absolute;
    top: -1px;
    left: -1px;
    contain: content;
    opacity: 0;
  }

  :host([checked]) [part='checkbox']::after {
    opacity: 1;
  }

  :host([readonly]:not([checked]):not([indeterminate])) {
    color: var(--lumo-secondary-text-color);
  }

  :host([readonly]:not([checked]):not([indeterminate])) [part='checkbox'] {
    background: transparent;
    box-shadow: none;
  }

  :host([readonly]:not([checked]):not([indeterminate])) [part='checkbox']::after {
    content: '';
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    top: 0;
    left: 0;
    opacity: 1;
    border: var(--vaadin-input-field-readonly-border, 1px dashed var(--lumo-contrast-50pct));
  }

  /* Indeterminate checkmark */
  :host([indeterminate]) [part='checkbox']::after {
    content: var(--vaadin-checkbox-checkmark-char-indeterminate, '');
    opacity: 1;
    top: 45%;
    height: 10%;
    left: 22%;
    right: 22%;
    width: auto;
    border: 0;
    background-color: var(--lumo-primary-contrast-color);
  }

  /* Focus ring */
  :host([focus-ring]) [part='checkbox'] {
    box-shadow:
      0 0 0 1px var(--lumo-base-color),
      0 0 0 calc(var(--_focus-ring-width) + 1px) var(--_focus-ring-color),
      inset 0 0 0 var(--_input-border-width, 0) var(--_input-border-color);
  }

  :host([focus-ring][readonly]:not([checked]):not([indeterminate])) [part='checkbox'] {
    box-shadow:
      0 0 0 1px var(--lumo-base-color),
      0 0 0 calc(var(--_focus-ring-width) + 1px) var(--_focus-ring-color);
  }

  /* Disabled */
  :host([disabled]) {
    pointer-events: none;
    --vaadin-input-field-border-color: var(--lumo-contrast-20pct);
  }

  :host([disabled]) ::slotted(label) {
    color: inherit;
  }

  :host([disabled]) [part='checkbox'] {
    background-color: var(--vaadin-checkbox-disabled-background, var(--lumo-contrast-10pct));
  }

  :host([disabled]) [part='checkbox']::after {
    color: var(--_disabled-checkmark-color);
  }

  :host([disabled]) [part='label'] {
    color: var(--lumo-disabled-text-color);
    -webkit-text-fill-color: var(--lumo-disabled-text-color);
  }

  :host([indeterminate][disabled]) [part='checkbox']::after {
    background-color: var(--_disabled-checkmark-color);
  }

  :host([readonly][checked]:not([disabled])) [part='checkbox'],
  :host([readonly][indeterminate]:not([disabled])) [part='checkbox'] {
    background-color: var(--vaadin-checkbox-readonly-checked-background, var(--lumo-contrast-70pct));
  }

  /* Hover */
  :host(:not([checked]):not([indeterminate]):not([disabled]):not([readonly]):not([invalid]):hover) [part='checkbox'] {
    background: var(--vaadin-checkbox-background-hover, var(--lumo-contrast-30pct));
  }

  /* Disable hover for touch devices */
  @media (pointer: coarse) {
    :host(:not([checked]):not([indeterminate]):not([disabled]):not([readonly]):not([invalid]):hover) [part='checkbox'] {
      background: var(--vaadin-checkbox-background, var(--lumo-contrast-20pct));
    }
  }

  /* Active */
  :host([active]) [part='checkbox'] {
    transform: scale(0.9);
    transition-duration: 0.05s;
  }

  :host([active][checked]) [part='checkbox'] {
    transform: scale(1.1);
  }

  :host([active]:not([checked])) [part='checkbox']::before {
    transition-duration: 0.01s, 0.01s;
    transform: scale(0);
    opacity: 0.4;
  }

  /* Required */
  :host([required]) [part='required-indicator'] {
    position: absolute;
    top: var(--lumo-space-xs);
    right: var(--lumo-space-xs);
  }

  :host([required][dir='rtl']) [part='required-indicator'] {
    right: auto;
    left: var(--lumo-space-xs);
  }

  :host([required]) [part='required-indicator']::after {
    position: static;
  }

  :host(:not([has-label])) [part='required-indicator'] {
    display: none;
  }

  /* Invalid */
  :host([invalid]) {
    --vaadin-input-field-border-color: var(--lumo-error-color);
  }

  :host([invalid]) [part='checkbox'] {
    background-color: var(--_invalid-background);
    background-image: linear-gradient(var(--_invalid-background) 0%, var(--_invalid-background) 100%);
  }

  :host([invalid]:hover) [part='checkbox'] {
    background-image:
      linear-gradient(var(--_invalid-background) 0%, var(--_invalid-background) 100%),
      linear-gradient(var(--_invalid-background) 0%, var(--_invalid-background) 100%);
  }

  :host([invalid][focus-ring]) {
    --_focus-ring-color: var(--lumo-error-color-50pct);
  }

  /* Error message */
  [part='error-message'] {
    margin: 0;
    padding-inline-start: var(--lumo-space-xs);
  }

  [part='helper-text'],
  [part='error-message'] {
    grid-column: 2;
  }

  :host(:not([has-helper])) [part='helper-text'],
  :host(:not([has-error-message])) [part='error-message'] {
    display: none;
  }

  :host([has-error-message]) [part='error-message']::before {
    display: none;
  }

  :host([has-helper]) [part='helper-text']::after {
    content: '';
    display: block;
    height: 0.4em;
  }

  /* Helper */
  [part='helper-text'] {
    padding-inline-start: var(--lumo-space-xs);
  }

  :host([has-helper]) [part='helper-text']::before {
    display: none;
  }

  :host([has-error-message]) ::slotted(label),
  :host([has-helper]) ::slotted(label) {
    padding-bottom: 0;
  }

  @media (forced-colors: active) {
    [part='checkbox'] {
      outline: 1px solid;
      outline-offset: -1px;
    }

    :host([disabled]) [part='checkbox'],
    :host([disabled]) [part='checkbox']::after {
      outline-color: GrayText;
    }

    :host(:is([checked], [indeterminate])) [part='checkbox']::after {
      outline: 1px solid;
      outline-offset: -1px;
      border-radius: inherit;
    }

    :host([focused]) [part='checkbox'],
    :host([focused]) [part='checkbox']::after {
      outline-width: 2px;
    }
  }
}

:root,
:host {
  --_lumo-vaadin-checkbox-inject: 1;
  --_lumo-vaadin-checkbox-inject-modules:
    lumo_mixins_checkable-field,
    lumo_mixins_field-helper,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_components_checkbox;
}

:root,
:host {
  --_lumo-vaadin-checkbox-group-inject: 1;
  --_lumo-vaadin-checkbox-group-inject-modules:
    lumo_mixins_group-field,
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_components_checkbox-group;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_combo-box-loader {
  [part='loader'] {
    position: absolute;
    z-index: 1;
    inset-inline: var(--lumo-space-s);
    top: var(--lumo-space-s);
    margin-inline: auto 0;
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_combo-box-overlay {
  [part='content'] {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0;
  }

  /* When items are empty, the spinner needs some room */
  :host(:not([closing])) [part='content'] {
    min-height: calc(2 * var(--lumo-space-s) + var(--lumo-icon-size-s));
  }

  [part='overlay'] {
    position: relative;
  }

  :host([top-aligned]) [part='overlay'] {
    margin-top: var(--lumo-space-xs);
  }

  :host([bottom-aligned]) [part='overlay'] {
    margin-bottom: var(--lumo-space-xs);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_field-base {
  :host {
    display: inline-flex;
    outline: none;
    --lumo-text-field-size: var(--lumo-size-m);
    color: var(--vaadin-input-field-value-color, var(--lumo-body-text-color));
    font-size: var(--vaadin-input-field-value-font-size, var(--lumo-font-size-m));
    font-family: var(--lumo-font-family);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-tap-highlight-color: transparent;
    padding: var(--lumo-space-xs) 0;
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
    --_input-height: var(--vaadin-input-field-height, var(--lumo-text-field-size));
    --_disabled-value-color: var(--vaadin-input-field-disabled-value-color, var(--lumo-disabled-text-color));
  }

  :host::before {
    content: '\2003';
    width: 0;
    /* Size and position this element on the same vertical position as the input-field element
          to make vertical align for the host element work as expected */
    height: var(--_input-height);
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
  }

  [class$='container'] {
    display: flex;
    flex-direction: column;
    min-width: 100%;
    max-width: 100%;
    width: var(--vaadin-field-default-width, 12em);
  }

  :host([hidden]) {
    display: none !important;
  }

  :host([focused]) [part='input-field'] ::slotted(:is(input, textarea)) {
    mask-image: none;
  }

  ::slotted(:is(input, textarea):placeholder-shown) {
    color: var(--vaadin-input-field-placeholder-color, var(--lumo-secondary-text-color));
  }

  /* Hover */
  :host(:hover:not([readonly]):not([focused]):not([disabled])) [part='input-field']::after {
    opacity: var(--vaadin-input-field-hover-highlight-opacity, 0.1);
  }

  /* Touch device adjustment */
  @media (pointer: coarse) {
    :host(:hover:not([readonly]):not([focused]):not([disabled])) [part='input-field']::after {
      opacity: 0;
    }

    :host(:active:not([readonly]):not([focused]):not([disabled])) [part='input-field']::after {
      opacity: 0.2;
    }
  }

  /* Trigger when not focusing using the keyboard */
  :host([focused]:not([focus-ring]):not([readonly])) [part='input-field']::after {
    transform: scaleX(0);
    transition-duration: 0.15s, 1s;
  }

  /* Opt-in focus-ring when using pointer devices */
  /* This applies a focus-ring as box-shadow when the element is focused, but
   the ring is only visible / has a width when the respective CSS property is
   "enabled" using a value of 1 */
  :host([focused]) [part='input-field'] {
    /* Borders are implemented using box-shadows as well. To avoid overriding
     the border on focus, even if the pointer focus-ring is disabled, we need to:
     - Duplicate the border box shadow for this rule
     - Remove the border (by using width of 0) when the focus-ring is visible,
       which is the same behavior as for the keyboard focus-ring below
     - Apply the border when the focus ring is not visible
  */
    --_pointer-focus-visible: clamp(0, var(--lumo-input-field-pointer-focus-visible, 0), 1);
    --_conditional-border-width: calc(calc(1 - var(--_pointer-focus-visible)) * var(--_input-border-width));
    --_conditional-focus-ring-width: calc(var(--_pointer-focus-visible) * var(--_focus-ring-width));
    box-shadow:
      inset 0 0 0 var(--_conditional-border-width) var(--_input-border-color),
      0 0 0 var(--_conditional-focus-ring-width) var(--_focus-ring-color);
  }

  /* Focus-ring when using keyboard navigation */
  :host([focus-ring]) [part='input-field'] {
    box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
  }

  /* Read-only and disabled */
  :host(:is([readonly], [disabled])) ::slotted(:is(input, textarea):placeholder-shown) {
    opacity: 0;
  }

  /* Read-only style */
  :host([readonly]) {
    --vaadin-input-field-border-color: transparent;
  }

  /* Disabled style */
  :host([disabled]) {
    pointer-events: none;
    --vaadin-input-field-border-color: var(--lumo-contrast-20pct);
  }

  :host([disabled]) [part='label'],
  :host([disabled]) [part='input-field'] ::slotted([slot$='fix']) {
    color: var(--lumo-disabled-text-color);
    -webkit-text-fill-color: var(--lumo-disabled-text-color);
  }

  :host([disabled]) [part='input-field'] ::slotted(:not([slot$='fix'])) {
    color: var(--_disabled-value-color);
    -webkit-text-fill-color: var(--_disabled-value-color);
  }

  /* Invalid style */
  :host([invalid]) {
    --vaadin-input-field-border-color: var(--lumo-error-color);
    --_focus-ring-color: var(--lumo-error-color-50pct);
  }

  :host([input-prevented]) [part='input-field'] {
    animation: shake 0.15s infinite;
  }

  @keyframes shake {
    25% {
      transform: translateX(4px);
    }

    75% {
      transform: translateX(-4px);
    }
  }

  /* Small theme */
  :host([theme~='small']) {
    font-size: var(--lumo-font-size-s);
    --lumo-text-field-size: var(--lumo-size-s);
  }

  :host([theme~='small']) [part='label'] {
    font-size: var(--lumo-font-size-xs);
  }

  :host([theme~='small']) [part='error-message'] {
    font-size: var(--lumo-font-size-xxs);
  }

  /* Slotted content */
  [part='input-field'] ::slotted(:not(vaadin-icon):not(input):not(textarea)) {
    color: var(--lumo-secondary-text-color);
    font-weight: 400;
  }

  [part~='clear-button']::before {
    content: var(--lumo-icons-cross);
  }

  @media (forced-colors: active) {
    :host(:not([readonly])) [part='input-field'] {
      outline: 1px solid;
      outline-offset: -1px;
    }

    :host([focused]) [part='input-field'] {
      outline-width: 2px;
    }

    :host([disabled]) [part='input-field'] {
      outline-color: GrayText;
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_field-button {
  [part$='button'] {
    flex: none;
    width: 1em;
    height: 1em;
    line-height: 1;
    font-size: var(--lumo-icon-size-m);
    text-align: center;
    color: var(--lumo-contrast-60pct);
    transition: 0.2s color;
    cursor: var(--lumo-clickable-cursor);
  }

  [part$='button']:hover {
    color: var(--lumo-contrast-90pct);
  }

  :host([disabled]) [part$='button'],
  :host([readonly]) [part$='button'] {
    color: var(--lumo-contrast-20pct);
    cursor: default;
  }

  [part$='button']::before {
    font-family: 'lumo-icons';
    display: block;
  }

  [part~='clear-button'] {
    display: none;
    cursor: default;
  }

  [part~='clear-button']::before {
    content: '\2715';
  }

  :host([clear-button-visible][has-value]:not([disabled]):not([readonly])) [part~='clear-button'] {
    display: block;
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_loader {
  [part='loader'] {
    display: none;
    box-sizing: border-box;
    width: var(--lumo-icon-size-s);
    height: var(--lumo-icon-size-s);
    border: 2px solid transparent;
    border-color: var(--lumo-primary-color-10pct) var(--lumo-primary-color-10pct) var(--lumo-primary-color)
      var(--lumo-primary-color);
    border-radius: calc(0.5 * var(--lumo-icon-size-s));
    opacity: 0;
    pointer-events: none;
    animation:
      1s linear infinite lumo-loader-rotate,
      0.3s 0.1s lumo-loader-fade-in both;
    mask-image: none;
  }

  :host([loading]) [part='loader'] {
    display: block;
  }

  @keyframes lumo-loader-fade-in {
    0% {
      opacity: 0;
    }

    100% {
      opacity: 1;
    }
  }

  @keyframes lumo-loader-rotate {
    0% {
      transform: rotate(0deg);
    }

    100% {
      transform: rotate(360deg);
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_combo-box-item {
  :host {
    transition: background-color 100ms;
    overflow: hidden;
    --_lumo-item-selected-icon-display: block;
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
  }

  :host([focused]:not([disabled])) {
    box-shadow: inset 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_combo-box-overlay {
  :host {
    --_vaadin-combo-box-items-container-border-width: var(--lumo-space-xs);
    --_vaadin-combo-box-items-container-border-style: solid;
  }

  #overlay {
    width: var(--vaadin-combo-box-overlay-width, var(--_vaadin-combo-box-overlay-default-width, auto));
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_combo-box {
  :host([opened]) {
    pointer-events: auto;
  }

  [part~='toggle-button']::before {
    content: var(--lumo-icons-dropdown);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_input-container {
  :host {
    display: flex;
    align-items: center;
    flex: 0 1 auto;
    --_border-radius: var(--vaadin-input-field-border-radius, 0);
    --_input-border-width: var(--vaadin-input-field-border-width, 0px);
    box-shadow: inset 0 0 0 var(--_input-border-width, 0) var(--_input-border-color);
    background: var(--_background);
    padding: 0 calc(0.375em + var(--_input-container-radius) / 4 - 1px);
    font-weight: var(--vaadin-input-field-value-font-weight, 500);
    line-height: 1;
    position: relative;
    cursor: text;
    box-sizing: border-box;
    border-radius:
    /* See https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius#syntax */
      var(--vaadin-input-field-top-start-radius, var(--_input-container-radius))
      var(--vaadin-input-field-top-end-radius, var(--_input-container-radius))
      var(--vaadin-input-field-bottom-end-radius, var(--_input-container-radius))
      var(--vaadin-input-field-bottom-start-radius, var(--_input-container-radius));
    /* Fallback */
    --_input-container-radius: var(--vaadin-input-field-border-radius, var(--lumo-border-radius-m));
    --_input-height: var(--lumo-text-field-size, var(--lumo-size-m));
    /* Default values */
    --_background: var(--vaadin-input-field-background, var(--lumo-contrast-10pct));
    --_hover-highlight: var(--vaadin-input-field-hover-highlight, var(--lumo-contrast-50pct));
    --_input-border-color: var(--vaadin-input-field-border-color, var(--lumo-contrast-50pct));
    --_icon-color: var(--vaadin-input-field-icon-color, var(--lumo-contrast-60pct));
    --_icon-size: var(--vaadin-input-field-icon-size, var(--lumo-icon-size-m));
    --_invalid-background: var(--vaadin-input-field-invalid-background, var(--lumo-error-color-10pct));
    --_invalid-hover-highlight: var(--vaadin-input-field-invalid-hover-highlight, var(--lumo-error-color-50pct));
    --_disabled-background: var(--vaadin-input-field-disabled-background, var(--lumo-contrast-5pct));
    --_disabled-value-color: var(--vaadin-input-field-disabled-value-color, var(--lumo-disabled-text-color));
  }

  :host([dir='rtl']) {
    border-radius:
    /* Don't use logical props, see https://github.com/vaadin/vaadin-time-picker/issues/145 */
      var(--vaadin-input-field-top-end-radius, var(--_input-container-radius))
      var(--vaadin-input-field-top-start-radius, var(--_input-container-radius))
      var(--vaadin-input-field-bottom-start-radius, var(--_input-container-radius))
      var(--vaadin-input-field-bottom-end-radius, var(--_input-container-radius));
  }

  /* Used for hover and activation effects */
  :host::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: var(--_hover-highlight);
    opacity: 0;
    transition:
      transform 0.15s,
      opacity 0.2s;
    transform-origin: 100% 0;
  }

  :host([hidden]) {
    display: none !important;
  }

  /* Reset the native input styles */
  ::slotted(input) {
    appearance: none;
    flex: auto;
    white-space: nowrap;
    overflow: hidden;
    width: 100%;
    height: 100%;
    outline: none;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    min-width: 0;
    font: inherit;
    line-height: normal;
    color: inherit;
    background-color: transparent;
    /* Disable default invalid style in Firefox */
    box-shadow: none;
  }

  ::slotted(*) {
    flex: none;
  }

  ::slotted(:is(input, textarea))::placeholder {
    /* Use ::slotted(input:placeholder-shown) in themes to style the placeholder. */
    /* because ::slotted(...)::placeholder does not work in Safari. */
    font: inherit;
    color: inherit;
    /* Override default opacity in Firefox */
    opacity: 1;
  }

  ::slotted(:not([slot$='fix'])) {
    cursor: inherit;
    min-height: var(--vaadin-input-field-height, var(--_input-height));
    padding: 0 0.25em;
    --_lumo-text-field-overflow-mask-image: linear-gradient(to left, transparent, #000 1.25em);
    mask-image: var(--_lumo-text-field-overflow-mask-image);
  }

  /* Read-only */
  :host([readonly]) {
    color: var(--lumo-secondary-text-color);
    background-color: transparent;
    cursor: default;
  }

  :host([readonly])::after {
    background-color: transparent;
    opacity: 1;
    border: var(--vaadin-input-field-readonly-border, 1px dashed var(--lumo-contrast-30pct));
  }

  /* Disabled */
  :host([disabled]) {
    background: var(--_disabled-background);
  }

  :host([disabled]) ::slotted(:not([slot$='fix'])) {
    -webkit-text-fill-color: var(--_disabled-value-color);
    color: var(--_disabled-value-color);
  }

  /* Invalid */
  :host([invalid]) {
    background: var(--_invalid-background);
  }

  :host([invalid]:not([readonly]))::after {
    background: var(--_invalid-hover-highlight);
  }

  /* Slotted icons */
  ::slotted(vaadin-icon) {
    color: var(--_icon-color);
    width: var(--_icon-size);
    height: var(--_icon-size);
  }

  /* Vaadin icons are based on a 16x16 grid (unlike Lumo and Material icons with 24x24), so they look too big by default */
  ::slotted(vaadin-icon[icon^='vaadin:']) {
    padding: 0.25em;
    box-sizing: border-box !important;
  }

  /* Text align */
  :host([dir='rtl']) ::slotted(:not([slot$='fix'])) {
    --_lumo-text-field-overflow-mask-image: linear-gradient(to right, transparent, #000 1.25em);
  }

  @-moz-document url-prefix() {
    :host([dir='rtl']) ::slotted(:not([slot$='fix'])) {
      mask-image: var(--_lumo-text-field-overflow-mask-image);
    }
  }

  :host([theme~='align-left']) ::slotted(:not([slot$='fix'])) {
    text-align: start;
    --_lumo-text-field-overflow-mask-image: none;
  }

  :host([theme~='align-center']) ::slotted(:not([slot$='fix'])) {
    text-align: center;
    --_lumo-text-field-overflow-mask-image: none;
  }

  :host([theme~='align-right']) ::slotted(:not([slot$='fix'])) {
    text-align: end;
    --_lumo-text-field-overflow-mask-image: none;
  }

  @-moz-document url-prefix() {
    /* Firefox is smart enough to align overflowing text to right */
    :host([theme~='align-right']) ::slotted(:not([slot$='fix'])) {
      --_lumo-text-field-overflow-mask-image: linear-gradient(to right, transparent 0.25em, #000 1.5em);
    }
  }

  @-moz-document url-prefix() {
    /* Firefox is smart enough to align overflowing text to right */
    :host([theme~='align-left']) ::slotted(:not([slot$='fix'])) {
      --_lumo-text-field-overflow-mask-image: linear-gradient(to left, transparent 0.25em, #000 1.5em);
    }
  }

  /* RTL specific styles */
  :host([dir='rtl'])::after {
    transform-origin: 0% 0;
  }

  :host([theme~='align-left'][dir='rtl']) ::slotted(:not([slot$='fix'])) {
    --_lumo-text-field-overflow-mask-image: none;
  }

  :host([theme~='align-center'][dir='rtl']) ::slotted(:not([slot$='fix'])) {
    --_lumo-text-field-overflow-mask-image: none;
  }

  :host([theme~='align-right'][dir='rtl']) ::slotted(:not([slot$='fix'])) {
    --_lumo-text-field-overflow-mask-image: none;
  }

  @-moz-document url-prefix() {
    /* Firefox is smart enough to align overflowing text to right */
    :host([theme~='align-right'][dir='rtl']) ::slotted(:not([slot$='fix'])) {
      --_lumo-text-field-overflow-mask-image: linear-gradient(to right, transparent 0.25em, #000 1.5em);
    }
  }

  @-moz-document url-prefix() {
    /* Firefox is smart enough to align overflowing text to right */
    :host([theme~='align-left'][dir='rtl']) ::slotted(:not([slot$='fix'])) {
      --_lumo-text-field-overflow-mask-image: linear-gradient(to left, transparent 0.25em, #000 1.5em);
    }
  }
}

:root,
:host {
  --_lumo-vaadin-input-container-inject: 1;
  --_lumo-vaadin-input-container-inject-modules: lumo_components_input-container;
}

:root,
:host {
  --_lumo-vaadin-combo-box-inject: 1;
  --_lumo-vaadin-combo-box-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-button,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_mixins_field-base,
    lumo_components_combo-box;

  --_lumo-vaadin-combo-box-item-inject: 1;
  --_lumo-vaadin-combo-box-item-inject-modules:
    lumo_components_item,
    lumo_components_combo-box-item;

  --_lumo-vaadin-combo-box-overlay-inject: 1;
  --_lumo-vaadin-combo-box-overlay-inject-modules:
    lumo_mixins_loader,
    lumo_mixins_combo-box-loader,
    lumo_mixins_overlay,
    lumo_mixins_menu-overlay-core,
    lumo_mixins_combo-box-overlay,
    lumo_components_combo-box-overlay;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_confirm-dialog-overlay {
  [part='header'] {
    pointer-events: auto;
    margin-inline-start: calc(var(--lumo-space-l) - var(--lumo-space-m));
    font-weight: 600;
    line-height: var(--lumo-line-height-xs);
    font-size: var(--lumo-font-size-xl);
    color: var(--lumo-header-text-color);
  }

  ::slotted([slot='header']) {
    display: contents !important;
    font: inherit !important;
    color: inherit !important;
  }

  /* Make buttons clickable */
  [part='footer'] > * {
    pointer-events: all;
  }

  [part='message'] {
    width: 25em;
    min-width: 100%;
    max-width: 100%;
  }

  ::slotted([slot$='button'][theme~='tertiary']) {
    padding-left: var(--lumo-space-s);
    padding-right: var(--lumo-space-s);
  }

  [part='cancel-button'] {
    flex-grow: 1;
  }

  @media (max-width: 360px) {
    [part='footer'] {
      flex-direction: column-reverse;
      align-items: stretch;
      padding: var(--lumo-space-s) var(--lumo-space-l);
      gap: var(--lumo-space-s);
    }

    ::slotted([slot$='button']) {
      width: 100%;
      margin: 0;
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_dialog-overlay {
  [part='header'],
  [part='header-content'],
  [part='footer'] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    flex: none;
    pointer-events: none;
    z-index: 1;
    gap: var(--lumo-space-xs) var(--lumo-space-s);
    line-height: var(--lumo-line-height-s);
  }

  [part='header'] {
    flex-wrap: nowrap;
    padding: var(--lumo-space-m);
    background-color: var(--lumo-base-color);
    border-radius: var(--lumo-border-radius-l) var(--lumo-border-radius-l) 0 0; /* Needed for Safari */
  }

  [part='footer'] {
    padding: var(--lumo-space-s) var(--lumo-space-m);
    background-color: var(--lumo-contrast-5pct);
    border-radius: 0 0 var(--lumo-border-radius-l) var(--lumo-border-radius-l); /* Needed for Safari */
  }

  [part='title'] {
    font-size: var(--lumo-font-size-xl);
    font-weight: 600;
    color: var(--lumo-header-text-color);
    margin-inline-start: calc(var(--lumo-space-l) - var(--lumo-space-m));
  }

  ::slotted([slot='header-content']),
  ::slotted([slot='title']),
  ::slotted([slot='footer']) {
    display: contents;
    pointer-events: auto;
  }

  ::slotted([slot='title']) {
    font: inherit !important;
    overflow-wrap: anywhere;
  }

  [part='header-content'] {
    flex: 1;
  }

  :host([has-title]) [part='header-content'],
  [part='footer'] {
    justify-content: flex-end;
  }

  :host(:not([has-title]):not([has-header])) [part='header'],
  :host(:not([has-header])) [part='header-content'],
  :host(:not([has-title])) [part='title'],
  :host(:not([has-footer])) [part='footer'] {
    display: none !important;
  }

  :host(:is([has-title], [has-header], [has-footer])) [part='content'] {
    height: auto;
  }

  /*
  NOTE(platosha): Make some min-width to prevent collapsing of the content
  taking the parent width, e. g., <vaadin-grid> and such.
*/
  [part='content'] {
    min-width: 12em; /* matches the default <vaadin-text-field> width */
    padding: var(--lumo-space-l);
    flex: 1;
    min-height: 0;
    overflow: auto;
  }

  :host([overflow~='top']) [part='header'] {
    box-shadow: 0 1px 0 0 var(--lumo-contrast-10pct);
  }

  :host([has-bounds-set]:not([keep-in-viewport])) [part='overlay'] {
    max-width: none;
  }

  /* Optical centering */
  :host::before,
  :host::after {
    content: '';
    flex-basis: 0;
    flex-grow: 1;
  }

  :host::after {
    flex-grow: 1.1;
  }

  [part='overlay'] {
    border-radius: var(--lumo-border-radius-l);
    box-shadow:
      0 0 0 1px var(--lumo-shade-5pct),
      var(--lumo-box-shadow-xl);
    background-image: none;
    outline: none;
    -webkit-tap-highlight-color: transparent;
    width: max-content;
  }

  :host(:is([has-header], [has-title])) [part='header'] + [part='content'] {
    padding-top: 0;
  }

  /* No padding */
  :host([theme~='no-padding']) [part='content'] {
    padding: 0 !important;
  }

  /* Animations */

  :host([opening]),
  :host([closing]) {
    animation: 0.25s lumo-overlay-dummy-animation;
  }

  :host([opening]) [part='overlay'] {
    animation: 0.12s 0.05s vaadin-dialog-enter cubic-bezier(0.215, 0.61, 0.355, 1) both;
  }

  @keyframes vaadin-dialog-enter {
    0% {
      opacity: 0;
      transform: scale(0.95);
    }
  }

  :host([closing]) [part='overlay'] {
    animation: 0.1s 0.03s vaadin-dialog-exit cubic-bezier(0.55, 0.055, 0.675, 0.19) both;
  }

  :host([closing]) [part='backdrop'] {
    animation-delay: 0.05s;
  }

  @keyframes vaadin-dialog-exit {
    100% {
      opacity: 0;
      transform: scale(1.02);
    }
  }

  @media (forced-colors: active) {
    [part='overlay'] {
      outline: 3px solid !important;
    }
  }
}

:root,
:host {
  --_lumo-vaadin-confirm-dialog-overlay-inject: 1;
  --_lumo-vaadin-confirm-dialog-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_components_dialog-overlay,
    lumo_components_confirm-dialog-overlay;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_menu-overlay-ext {
  /* Small viewport (bottom sheet) styles */
  /* Use direct media queries instead of the state attributes ([phone] and [fullscreen]) provided by the elements */
  @media (max-width: 450px), (max-height: 450px) {
    :host {
      inset: 0 0 var(--vaadin-overlay-viewport-bottom, 0) 0 !important;
      align-items: stretch !important;
      justify-content: flex-end !important;
    }

    [part='overlay'] {
      max-height: 50vh;
      width: 100vw;
      border-radius: 0;
      box-shadow: var(--lumo-box-shadow-xl);
    }

    /* The content part scrolls instead of the overlay part, because of the gradient fade-out */
    [part='content'] {
      padding: 30px var(--lumo-space-m);
      max-height: inherit;
      box-sizing: border-box;
      overflow: auto;
      mask-image: linear-gradient(transparent, #000 40px, #000 calc(100% - 40px), transparent);
    }

    [part='backdrop'] {
      display: block;
    }

    /* Animations */

    :host([opening]) [part='overlay'] {
      animation: 0.2s lumo-mobile-menu-overlay-enter cubic-bezier(0.215, 0.61, 0.355, 1) both;
    }

    :host([closing]),
    :host([closing]) [part='backdrop'] {
      animation-delay: 0.14s;
    }

    :host([closing]) [part='overlay'] {
      animation: 0.14s 0.14s lumo-mobile-menu-overlay-exit cubic-bezier(0.55, 0.055, 0.675, 0.19) both;
    }
  }

  @keyframes lumo-mobile-menu-overlay-enter {
    0% {
      transform: translateY(150%);
    }
  }

  @keyframes lumo-mobile-menu-overlay-exit {
    100% {
      transform: translateY(150%);
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_context-menu-item {
  /* :hover needed to workaround https://github.com/vaadin/web-components/issues/3133 */
  :host(:hover) {
    user-select: none;
    -webkit-user-select: none;
  }

  :host([role='menuitem'][menu-item-checked]) [part='checkmark']::before {
    opacity: 1;
  }

  :host([aria-haspopup='true'])::after {
    font-family: lumo-icons;
    font-size: var(--lumo-icon-size-xs);
    content: var(--lumo-icons-angle-right);
    color: var(--lumo-tertiary-text-color);
  }

  :host(:not([dir='rtl'])[aria-haspopup='true'])::after {
    margin-right: calc(var(--lumo-space-m) * -1);
    padding-left: var(--lumo-space-m);
  }

  :host([expanded]) {
    background-color: var(--lumo-primary-color-10pct);
  }

  /* RTL styles */
  :host([dir='rtl'][aria-haspopup='true'])::after {
    content: var(--lumo-icons-angle-left);
    margin-left: calc(var(--lumo-space-m) * -1);
    padding-right: var(--lumo-space-m);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_context-menu-list-box {
  :host {
    --_lumo-list-box-item-selected-icon-display: block;
  }

  /* Normal item */
  [part='items'] ::slotted([role='menuitem']) {
    -webkit-tap-highlight-color: var(--lumo-primary-color-10pct);
    outline: none;
    border-radius: var(--lumo-border-radius-m);
    padding-left: calc(var(--lumo-border-radius-m) / 4);
    padding-right: calc(var(--lumo-space-l) + var(--lumo-border-radius-m) / 4);
  }

  /* Hovered item */
  /* TODO a workaround until we have "focus-follows-mouse". After that, use the hover style for focus-ring as well */
  [part='items'] ::slotted([role='menuitem']:hover),
  [part='items'] ::slotted([role='menuitem'][expanded]) {
    background-color: var(--lumo-primary-color-10pct);
  }

  /* RTL styles */
  :host([dir='rtl']) [part='items'] ::slotted([role='menuitem']) {
    padding-left: calc(var(--lumo-space-l) + var(--lumo-border-radius-m) / 4);
    padding-right: calc(var(--lumo-border-radius-m) / 4);
  }

  /* Focused item */
  @media (pointer: coarse) {
    [part='items'] ::slotted([role='menuitem']:hover:not([expanded])) {
      background-color: transparent;
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_context-menu-overlay {
  :host {
    align-items: flex-start;
    justify-content: flex-start;
    --_default-offset: var(--lumo-space-xs);
    /* TODO These style overrides should not be needed.
     We should instead offer a way to have non-selectable items inside the context menu. */
    --_lumo-list-box-item-selected-icon-display: none;
    --_lumo-list-box-item-padding-left: calc(var(--lumo-space-m) + var(--lumo-border-radius-m) / 4);
  }

  [part='overlay'] {
    border: none;
    outline: none;
  }

  :host([phone]) {
    inset: 0 0 var(--vaadin-overlay-viewport-bottom, 0) 0 !important;
    align-items: stretch;
    justify-content: flex-end;
  }
}

:root,
:host {
  --_lumo-vaadin-context-menu-overlay-inject: 1;
  --_lumo-vaadin-context-menu-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_mixins_menu-overlay-core,
    lumo_mixins_menu-overlay-ext,
    lumo_components_context-menu-overlay;

  --_lumo-vaadin-context-menu-list-box-inject: 1;
  --_lumo-vaadin-context-menu-list-box-inject-modules:
    lumo_components_list-box,
    lumo_components_context-menu-list-box;

  --_lumo-vaadin-context-menu-item-inject: 1;
  --_lumo-vaadin-context-menu-item-inject-modules:
    lumo_components_item,
    lumo_components_context-menu-item;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_crud-dialog-overlay {
  [part='overlay'] {
    max-width: 54em;
    min-width: 20em;
    display: flex;
  }

  .resizer-container {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
  }

  [part='footer'] {
    justify-content: flex-start;
    flex-direction: row-reverse;
  }

  /* Make buttons clickable */
  [part='footer'] ::slotted(:not([disabled])) {
    pointer-events: all;
  }

  :host([fullscreen]) {
    inset: 0;
    padding: 0;
  }

  :host([fullscreen]) [part='overlay'] {
    height: 100vh;
    width: 100vw;
    border-radius: 0 !important;
  }

  :host([fullscreen]) [part='content'] {
    flex: 1;
  }

  [part='header'] ::slotted(h3) {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-inline-start: var(--lumo-space-s);
  }

  :host(:not([dir='rtl'])) ::slotted([slot='delete-button']) {
    margin-right: auto;
  }

  :host([dir='rtl']) ::slotted([slot='delete-button']) {
    margin-left: auto;
  }
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_crud-edit {
  :host {
    display: block;
    min-width: auto;
    margin: 0;
    font-family: 'lumo-icons', var(--lumo-font-family);
    font-size: var(--lumo-icon-size-m);
    line-height: 1;
    position: relative;
    width: var(--lumo-size-s);
    height: var(--lumo-size-s);
    outline: none;
  }

  [part='icon']::before {
    content: var(--lumo-icons-edit);
    width: var(--lumo-size-m);
    height: var(--lumo-size-m);
    line-height: var(--lumo-size-m);
    text-align: center;
    position: absolute;
    top: calc((var(--lumo-size-m) - var(--lumo-size-s)) / -2);
    left: calc((var(--lumo-size-m) - var(--lumo-size-s)) / -2);
  }
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_crud {
  :host {
    --vaadin-crud-editor-max-height: 40%;
    --vaadin-crud-editor-max-width: 40%;
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
    width: 100%;
    height: 400px;
    font-family: var(--lumo-font-family);
  }

  :host,
  #main {
    display: flex;
    flex-direction: column;
    align-self: stretch;
    position: relative;
    overflow: hidden;
  }

  #main {
    flex: 1 1 100%;
    height: 100%;
  }

  :host([hidden]),
  [hidden] {
    display: none !important;
  }

  [part='toolbar'] {
    display: flex;
    flex-shrink: 0;
    align-items: baseline;
    justify-content: flex-end;
    padding: var(--lumo-space-s) var(--lumo-space-m);
    background-color: var(--lumo-contrast-5pct);
    border-right: 1px solid var(--lumo-contrast-10pct);
    border-left: 1px solid var(--lumo-contrast-10pct);
    border-bottom: 1px solid var(--lumo-contrast-10pct);
  }

  :host([no-toolbar]) [part='toolbar'] {
    display: none;
  }

  #container {
    display: flex;
    height: 100%;
  }

  :host([editor-position='bottom']) #container {
    flex-direction: column;
  }

  [part='editor'] {
    z-index: 1;
    display: flex;
    flex-direction: column;
    height: 100%;
    outline: none;
    background: var(--lumo-base-color);
    box-sizing: border-box;
    position: relative;
  }

  :host(:not([editor-position=''])[editor-opened]:not([fullscreen])) [part='editor'] {
    flex: 1 0 100%;
  }

  :host([editor-position='bottom'][editor-opened]:not([fullscreen])) [part='editor'] {
    max-height: var(--vaadin-crud-editor-max-height);
  }

  :host([editor-position='aside'][editor-opened]:not([fullscreen])) [part='editor'] {
    min-width: 300px;
    max-width: var(--vaadin-crud-editor-max-width);
  }

  [part='scroller'] {
    display: flex;
    flex-direction: column;
    overflow: auto;
    flex: auto;
    padding: var(--lumo-space-l);
  }

  [part='footer'] {
    display: flex;
    flex: none;
    flex-direction: row-reverse;
    background-color: var(--lumo-contrast-5pct);
    padding: var(--lumo-space-s);
  }

  [part='header'] ::slotted(h3) {
    margin-top: 0 !important;
  }

  :host(:not([dir='rtl'])) ::slotted([slot='delete-button']) {
    margin-right: auto;
  }

  :host([dir='rtl']) ::slotted([slot='delete-button']) {
    margin-left: auto;
  }

  :host(:not([dir='rtl'])) [part='toolbar'] ::slotted(*:not(:first-child)) {
    margin-left: var(--lumo-space-s);
  }

  :host([dir='rtl']) [part='toolbar'] ::slotted(*:not(:first-child)) {
    margin-right: var(--lumo-space-s);
  }

  :host([theme~='no-border']) [part='toolbar'] {
    border: 0;
  }

  [part='footer'] ::slotted(*) {
    margin-left: var(--lumo-space-s);
    margin-right: var(--lumo-space-s);
  }

  [part='editor']:focus::before {
    position: absolute;
    inset: 0;
    content: '';
    box-shadow: inset 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
    pointer-events: none;
  }

  :host(:not([editor-position=''])) [part='editor']:not([hidden]) {
    box-shadow: var(--lumo-box-shadow-m);
  }

  :host(:not([theme~='no-border']):not([editor-position=''])) [part='editor']:not([hidden]) {
    border: 1px solid var(--lumo-contrast-20pct);
  }

  :host(:not([theme~='no-border'])[editor-position='bottom']) [part='editor']:not([hidden]) {
    border-top: 0;
  }

  :host(:not([dir='rtl'])[editor-position='aside']) [part='editor']:not([hidden]) {
    border-left: 0;
  }

  :host([dir='rtl']:not([theme~='no-border'])[editor-position='aside']) [part='editor']:not([hidden]) {
    border-right: 0;
  }
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_grid {
  :host {
    display: flex;
    flex-direction: column;
    height: 400px;
    min-height: var(--_grid-min-height, 0);
    flex: 1 1 auto;
    align-self: stretch;
    position: relative;
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-m);
    line-height: var(--lumo-line-height-s);
    color: var(--lumo-body-text-color);
    background-color: var(--lumo-base-color);
    box-sizing: border-box;
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: transparent;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
    /* For internal use only */
    --_lumo-grid-border-color: var(--lumo-contrast-20pct);
    --_lumo-grid-secondary-border-color: var(--lumo-contrast-10pct);
    --_lumo-grid-border-width: 1px;
    --_lumo-grid-selected-row-color: var(--lumo-primary-color-10pct);
  }

  :host([hidden]) {
    display: none !important;
  }

  :host([disabled]) {
    pointer-events: none;
    opacity: 0.7;
  }

  #scroller {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    transform: translateY(0);
    width: auto;
    height: auto;
    position: absolute;
    inset: 0;
  }

  :host([all-rows-visible]) {
    height: auto;
    align-self: flex-start;
    min-height: auto;
    flex-grow: 0;
    width: 100%;
  }

  :host([all-rows-visible]) #scroller {
    width: 100%;
    height: 100%;
    position: relative;
  }

  :host([all-rows-visible]) #items {
    min-height: 1px;
  }

  #table {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    overflow: auto;
    position: relative;
    outline: none;
    /* Workaround for a Desktop Safari bug: new stacking context here prevents the scrollbar from getting hidden */
    z-index: 0;
  }

  #header,
  #footer {
    display: block;
    position: sticky;
    left: 0;
    overflow: visible;
    width: 100%;
    z-index: 1;
  }

  #header {
    top: 0;
  }

  th {
    text-align: inherit;
  }

  /* Safari doesn't work with "inherit" */
  [safari] th {
    text-align: initial;
  }

  #footer {
    bottom: 0;
  }

  #items {
    flex-grow: 1;
    flex-shrink: 0;
    display: block;
    position: sticky;
    width: 100%;
    left: 0;
    overflow: visible;
  }

  .row {
    display: flex;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    position: relative;
  }

  .body-row[loading] .body-cell ::slotted(vaadin-grid-cell-content) {
    visibility: hidden;
  }

  [column-rendering='lazy'] .body-cell:not([frozen]):not([frozen-to-end]) {
    transform: translateX(var(--_grid-lazy-columns-start));
  }

  #items .body-row {
    position: absolute;
  }

  #items .body-row:empty {
    height: 100%;
  }

  .cell:not(.details-cell) {
    flex-shrink: 0;
    flex-grow: 1;
    box-sizing: border-box;
    display: flex;
    width: 100%;
    position: relative;
    align-items: center;
    padding: 0;
    white-space: nowrap;
  }

  .cell {
    outline: none;
    min-height: var(--lumo-size-m);
    background-color: var(--vaadin-grid-cell-background, var(--lumo-base-color));
    cursor: default;
    --_cell-padding: var(--vaadin-grid-cell-padding, var(--_cell-default-padding));
    --_cell-default-padding: var(--lumo-space-xs) var(--lumo-space-m);
  }

  .cell > [tabindex] {
    display: flex;
    align-items: inherit;
    outline: none;
    position: absolute;
    inset: 0;
  }

  /* Switch the focusButtonMode wrapping element to "position: static" temporarily
     when measuring real width of the cells in the auto-width columns. */
  #scroller[measuring-auto-width] .cell > [tabindex] {
    position: static;
  }

  .details-cell {
    position: absolute;
    bottom: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 0;
  }

  .cell ::slotted(vaadin-grid-cell-content) {
    display: block;
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
    text-overflow: var(--vaadin-grid-cell-text-overflow, ellipsis);
    cursor: inherit;
    padding: var(--_cell-padding);
  }

  [hidden] {
    display: none !important;
  }

  [frozen],
  [frozen-to-end] {
    z-index: 2;
  }

  [no-scrollbars][safari] #table,
  [no-scrollbars][firefox] #table {
    overflow: hidden;
  }

  /* Empty state */

  #scroller:not([empty-state]) #emptystatebody,
  #scroller[empty-state] #items {
    display: none;
  }

  #emptystatebody {
    display: flex;
    position: sticky;
    inset: 0;
    flex: 1;
    overflow: hidden;
  }

  #emptystaterow {
    display: flex;
    flex: 1;
  }

  #emptystatecell {
    display: block;
    flex: 1;
    overflow: auto;
  }

  /* Reordering styles */
  :host([reordering]) .cell ::slotted(vaadin-grid-cell-content),
  :host([reordering]) .resize-handle,
  #scroller[no-content-pointer-events] .cell ::slotted(vaadin-grid-cell-content) {
    pointer-events: none;
  }

  .reorder-ghost {
    visibility: hidden;
    position: fixed;
    pointer-events: none;

    /* Prevent overflowing the grid in Firefox */
    top: 0;
    left: 0;
    opacity: 0.85;
    box-shadow: var(--lumo-box-shadow-s);
    /* TODO Use the same styles as for the cell element (reorder-ghost copies styles from the cell element) */
    padding: var(--lumo-space-s) var(--lumo-space-m) !important;
  }

  :host([reordering]) {
    -webkit-user-select: none;
    user-select: none;
  }

  /* Resizing styles */

  .last-column-cell .resize-handle::before,
  .last-frozen-cell .resize-handle::before {
    width: 18px;
    transform: none;
    right: 0;
  }

  .frozen-to-end-cell .resize-handle {
    left: 0;
    right: auto;
  }

  .frozen-to-end-cell .resize-handle::before {
    left: 0;
    right: auto;
  }

  .first-frozen-to-end-cell .resize-handle::before {
    width: 18px;
    transform: none;
  }

  .first-frozen-to-end-cell {
    margin-inline-start: auto;
    border-left: var(--_lumo-grid-border-width) solid transparent;
  }

  /* Hide resize handle if scrolled to end */
  :host(:not([overflow~='end'])) .first-frozen-to-end-cell .resize-handle {
    display: none;
  }

  #scroller[column-resizing],
  #scroller[range-selecting] {
    -webkit-user-select: none;
    user-select: none;
  }

  /* Sizer styles */
  #sizer {
    display: flex;
    position: absolute;
    visibility: hidden;
  }

  #sizer .details-cell {
    display: none !important;
  }

  #sizer .cell[hidden] {
    display: none !important;
  }

  #sizer .cell {
    display: block;
    flex-shrink: 0;
    line-height: 0;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    padding: 0 !important;
    border: none !important;
  }

  #sizer .cell::before {
    content: '-';
  }

  #sizer .cell ::slotted(vaadin-grid-cell-content) {
    display: none !important;
  }

  /* RTL specific styles */

  :host([dir='rtl']) #items,
  :host([dir='rtl']) #header,
  :host([dir='rtl']) #footer {
    left: auto;
  }

  :host([dir='rtl']) .reorder-ghost {
    left: auto;
    right: 0;
  }

  :host([dir='rtl']) .resize-handle {
    left: 0;
    right: auto;
  }

  :host([dir='rtl']) .resize-handle::before {
    transform: translateX(50%);
  }

  :host([dir='rtl']) .last-column-cell .resize-handle::before,
  :host([dir='rtl']) .last-frozen-cell .resize-handle::before {
    left: 0;
    right: auto;
  }

  :host([dir='rtl']) .frozen-to-end-cell .resize-handle {
    right: 0;
    left: auto;
  }

  :host([dir='rtl']) .frozen-to-end-cell .resize-handle::before {
    right: 0;
    left: auto;
  }

  /* No (outer) border */

  :host(:not([theme~='no-border'])) {
    border: var(--_lumo-grid-border-width) solid var(--_lumo-grid-border-color);
  }

  /* Cell styles */

  /* Apply row borders by default and introduce the "no-row-borders" variant */
  :host(:not([theme~='no-row-borders'])) .cell:not(.details-cell) {
    border-top: var(--_lumo-grid-border-width) solid var(--_lumo-grid-secondary-border-color);
  }

  /* Hide first body row top border */
  :host(:not([theme~='no-row-borders'])) .cell.first-row-cell:not(.details-cell) {
    border-top: 0;
    min-height: calc(var(--lumo-size-m) - var(--_lumo-grid-border-width));
  }

  /* Focus-ring */

  .row:focus,
  .focused-cell:focus {
    outline: none;
  }

  :host([navigating]) .row:focus::before,
  :host([navigating]) .focused-cell:focus::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    box-shadow: inset 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
  }

  :host([navigating]) .row:focus::before {
    transform: translateX(var(--_grid-horizontal-scroll-position));
    z-index: 3;
  }

  /* Empty state */
  .empty-state {
    padding: var(--lumo-space-m);
    color: var(--lumo-secondary-text-color);
  }

  /* Drag and Drop styles */

  /* Draggable cell content; see _filterDragAndDrop in vaadin-grid-drag-and-drop-mixin.js. */
  ::slotted(vaadin-grid-cell-content[draggable-source]) {
    -webkit-user-drag: element;
    -webkit-user-select: none;
    user-select: none;
  }

  :host([dragover])::after {
    content: '';
    position: absolute;
    z-index: 100;
    inset: 0;
    pointer-events: none;
    box-shadow: inset 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
  }

  .body-row[dragover] {
    z-index: 100 !important;
  }

  .body-row[dragover] .cell {
    overflow: visible;
  }

  .body-row[dragover] .cell::after {
    content: '';
    position: absolute;
    inset: 0;
    height: calc(var(--_lumo-grid-border-width) + 2px);
    pointer-events: none;
    background: var(--lumo-primary-color-50pct);
  }

  .body-row[dragover] .cell.last-frozen-cell::after {
    right: -1px;
  }

  :host([theme~='no-row-borders']) [dragover] .cell::after {
    height: 2px;
  }

  .body-row[dragover='below'] .cell::after {
    top: 100%;
    bottom: auto;
    margin-top: -1px;
  }

  :host([all-rows-visible]) .last-row[dragover='below'] .cell::after {
    height: 1px;
  }

  .row[dragover='above'] .cell::after {
    top: auto;
    bottom: 100%;
    margin-bottom: -1px;
  }

  .row[details-opened][dragover='below'] .cell:not(.details-cell)::after,
  .row[details-opened][dragover='above'] .details-cell::after {
    display: none;
  }

  .row[dragover][dragover='on-top'] .cell::after {
    height: 100%;
    opacity: 0.5;
  }

  .row.dragstart-row .cell {
    border: none !important;
    box-shadow: none !important;
  }

  .row.dragstart-row .dragstart-row-cell.last-column-cell {
    border-radius: 0 var(--lumo-border-radius-s) var(--lumo-border-radius-s) 0;
  }

  .row.dragstart-row .dragstart-row-cell.first-column-cell {
    border-radius: var(--lumo-border-radius-s) 0 0 var(--lumo-border-radius-s);
  }

  #scroller .row[dragstart]:not([dragstart=''])::after {
    display: block;
    position: absolute;
    left: var(--_grid-drag-start-x);
    top: var(--_grid-drag-start-y);
    z-index: 100;
    content: attr(dragstart);
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: calc(var(--lumo-space-xs) * 0.8);
    color: var(--lumo-error-contrast-color);
    background-color: var(--lumo-error-color);
    border-radius: var(--lumo-border-radius-m);
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-xxs);
    line-height: 1;
    font-weight: 500;
    text-transform: initial;
    letter-spacing: initial;
    min-width: calc(var(--lumo-size-s) * 0.7);
    text-align: center;
  }

  /* Headers and footers */

  .header-cell,
  .footer-cell,
  .reorder-ghost {
    font-size: var(--lumo-font-size-s);
    font-weight: 500;
  }

  .footer-cell {
    font-weight: 400;
  }

  .header-row:only-child .header-cell {
    min-height: var(--lumo-size-xl);
  }

  /* Header borders */

  /* Hide first header row top border */
  :host(:not([theme~='no-row-borders'])) .header-cell.first-header-row-cell {
    border-top: 0;
  }

  /* Hide header row top border if previous row is hidden */
  .header-row[hidden] + .header-row .header-cell {
    border-top: 0;
  }

  .header-cell.last-header-row-cell {
    border-bottom: var(--_lumo-grid-border-width) solid transparent;
  }

  :host(:not([theme~='no-row-borders'])) .header-cell.last-header-row-cell {
    border-bottom-color: var(--_lumo-grid-secondary-border-color);
  }

  /* Overflow uses a stronger border color */
  :host([overflow~='top']) .header-cell.last-header-row-cell {
    border-bottom-color: var(--_lumo-grid-border-color);
  }

  /* Footer borders */

  .footer-cell.first-footer-row-cell {
    border-top: var(--_lumo-grid-border-width) solid transparent;
  }

  :host(:not([theme~='no-row-borders'])) .footer-cell.first-footer-row-cell {
    border-top-color: var(--_lumo-grid-secondary-border-color);
  }

  /* Overflow uses a stronger border color */
  :host([overflow~='bottom']) .footer-cell.first-footer-row-cell {
    border-top-color: var(--_lumo-grid-border-color);
  }

  /* Column reordering */

  :host([reordering]) .cell {
    background: linear-gradient(var(--lumo-shade-20pct), var(--lumo-shade-20pct)) var(--lumo-base-color);
  }

  :host([reordering]) .cell.reorder-allowed-cell {
    background: var(--lumo-base-color);
  }

  :host([reordering]) .cell.reorder-dragging-cell {
    background: linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct)) var(--lumo-base-color);
  }

  /* Column resizing */

  .resize-handle {
    --_resize-handle-width: 3px;
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    cursor: col-resize;
    z-index: 1;
    width: var(--_resize-handle-width);
    background-color: var(--lumo-primary-color-50pct);
    opacity: 0;
    transition: opacity 0.2s;
  }

  .resize-handle::before {
    position: absolute;
    content: '';
    height: 100%;
    transform: translateX(calc(-50% + var(--_resize-handle-width) / 2));
    width: var(--lumo-size-s);
  }

  :host(:not([reordering])) *:not([column-resizing]) .cell:hover .resize-handle,
  .resize-handle:active {
    opacity: 1;
    transition-delay: 0.15s;
  }

  /* Column borders */

  :host([theme~='column-borders']) .cell:not(.last-column-cell, .details-cell) {
    border-right: var(--_lumo-grid-border-width) solid var(--_lumo-grid-secondary-border-color);
  }

  /* Frozen columns */

  .last-frozen-cell {
    border-right: var(--_lumo-grid-border-width) solid transparent;
    overflow: hidden;
  }

  :host([overflow~='start']) .cell.last-frozen-cell:not(.details-cell) {
    border-right-color: var(--_lumo-grid-border-color);
  }

  :host([overflow~='end']) .cell.first-frozen-to-end-cell:not(.details-cell) {
    border-left-color: var(--_lumo-grid-border-color);
  }

  /* Row stripes */

  :host([theme~='row-stripes']) .even-row .body-cell,
  :host([theme~='row-stripes']) .even-row .details-cell {
    background-image: linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct));
    background-repeat: repeat-x;
  }

  /* Selected row */

  /* Raise the selected rows above unselected rows (so that box-shadow can cover unselected rows) */
  :host(:not([reordering])) .row.selected-row {
    z-index: 1;
  }

  :host(:not([reordering])) .row.selected-row .selected-row-cell:not(.details-cell) {
    background-image: linear-gradient(var(--_lumo-grid-selected-row-color), var(--_lumo-grid-selected-row-color));
    background-repeat: repeat;
  }

  /* Cover the border of an unselected row */
  :host(:not([theme~='no-row-borders'])) .row.selected-row .selected-row-cell:not(.details-cell) {
    box-shadow: 0 var(--_lumo-grid-border-width) 0 0 var(--_lumo-grid-selected-row-color);
  }

  /* Compact */

  :host([theme~='compact']) .header-row:only-child .header-cell {
    min-height: var(--lumo-size-m);
  }

  :host([theme~='compact']) .cell {
    min-height: var(--lumo-size-s);
    --_cell-default-padding: var(--lumo-space-xs) var(--lumo-space-s);
  }

  :host([theme~='compact']) .cell.first-row-cell:not(.details-cell) {
    min-height: calc(var(--lumo-size-s) - var(--_lumo-grid-border-width));
  }

  :host([theme~='compact']) .empty-state {
    padding: var(--lumo-space-s);
  }

  /* Wrap cell contents */

  :host([theme~='wrap-cell-content']) .cell ::slotted(vaadin-grid-cell-content) {
    white-space: normal;
  }

  /* RTL specific styles */

  :host([dir='rtl']) .row.dragstart-row .cell.last-column-cell {
    border-radius: var(--lumo-border-radius-s) 0 0 var(--lumo-border-radius-s);
  }

  :host([dir='rtl']) .row.dragstart-row .cell.first-column-cell {
    border-radius: 0 var(--lumo-border-radius-s) var(--lumo-border-radius-s) 0;
  }

  :host([dir='rtl'][theme~='column-borders']) .cell:not(.last-column-cell, .details-cell) {
    border-right: none;
    border-left: var(--_lumo-grid-border-width) solid var(--_lumo-grid-secondary-border-color);
  }

  :host([dir='rtl']) .last-frozen-cell {
    border-right: none;
    border-left: var(--_lumo-grid-border-width) solid transparent;
  }

  :host([dir='rtl']) .first-frozen-to-end-cell {
    border-left: none;
    border-right: var(--_lumo-grid-border-width) solid transparent;
  }

  :host([dir='rtl'][overflow~='start']) .cell.last-frozen-cell:not(.details-cell) {
    border-left-color: var(--_lumo-grid-border-color);
  }

  :host([dir='rtl'][overflow~='end']) .cell.first-frozen-to-end-cell:not(.details-cell) {
    border-right-color: var(--_lumo-grid-border-color);
  }

  @media (forced-colors: active) {
    .selected-row .first-column-cell::after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      bottom: 0;
      border: 2px solid;
    }

    .focused-cell::before {
      outline: 2px solid !important;
      outline-offset: -1px;
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
:where(:root),
:where(:host) {
  --vaadin-form-layout-label-spacing: 1em;
  --vaadin-form-layout-label-width: 8em;
  --vaadin-form-layout-column-spacing: var(
    --lumo-space-l
  );
  --vaadin-form-layout-row-spacing: 0;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_grid-filter {
  :host {
    display: inline-flex;
    max-width: 100%;
  }

  ::slotted(*) {
    width: 100%;
    box-sizing: border-box;
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */

:root,
:host {
  --_lumo-vaadin-text-field-inject: 1;
  --_lumo-vaadin-text-field-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-button,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_mixins_field-base;
}

:root,
:host {
  --_lumo-vaadin-grid-filter-inject: 1;
  --_lumo-vaadin-grid-filter-inject-modules: lumo_components_grid-filter;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_grid-sorter {
  :host {
    display: inline-flex;
    max-width: 100%;
    justify-content: flex-start;
    align-items: baseline;
    -webkit-user-select: none;
    user-select: none;
    cursor: var(--lumo-clickable-cursor);
  }

  [part='content'] {
    flex: 1 1 auto;
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  [part='indicators'] {
    position: relative;
    align-self: center;
    flex: none;
    margin-left: var(--lumo-space-s);
  }

  [part='order'] {
    display: inline;
    vertical-align: super;
    font-size: var(--lumo-font-size-xxs);
    line-height: 1;
  }

  [part='indicators']::before {
    font-family: 'vaadin-grid-sorter-icons';
    display: inline-block;
    transform: scale(0.8);
  }

  :host(:not([direction])) [part='indicators']::before {
    content: '\e901';
  }

  :host([direction='asc']) [part='indicators']::before {
    content: '\e900';
  }

  :host([direction='desc']) [part='indicators']::before {
    content: '\e902';
  }

  :host(:not([direction]):not(:hover)) [part='indicators'] {
    color: var(--lumo-tertiary-text-color);
  }

  :host([direction]) {
    color: var(--vaadin-selection-color-text, var(--lumo-primary-text-color));
  }

  /* RTL specific styles */

  :host([dir='rtl']) [part='indicators'] {
    margin-right: var(--lumo-space-s);
    margin-left: 0;
  }
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@font-face {
  font-family: 'vaadin-grid-sorter-icons';
  src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAQwAA0AAAAABuwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEFAAAABkAAAAcfep+mUdERUYAAAP4AAAAHAAAAB4AJwAOT1MvMgAAAZgAAAA/AAAAYA8TBPpjbWFwAAAB7AAAAFUAAAFeF1fZ4mdhc3AAAAPwAAAACAAAAAgAAAAQZ2x5ZgAAAlgAAABcAAAAnMvguMloZWFkAAABMAAAAC8AAAA2C5Ap72hoZWEAAAFgAAAAHQAAACQGbQPHaG10eAAAAdgAAAAUAAAAHAoAAABsb2NhAAACRAAAABIAAAASAIwAYG1heHAAAAGAAAAAFgAAACAACwAKbmFtZQAAArQAAAECAAACZxWCgKhwb3N0AAADuAAAADUAAABZCrApUXicY2BkYGAA4rDECVrx/DZfGbhZGEDgyqNPOxH0/wNMq5kPALkcDEwgUQBWRA0dAHicY2BkYGA+8P8AAwMLAwgwrWZgZEAFbABY4QM8AAAAeJxjYGRgYOAAQiYGEICQSAAAAi8AFgAAeJxjYGY6yziBgZWBgWkm0xkGBoZ+CM34msGYkZMBFTAKoAkwODAwvmRiPvD/AIMDMxCD1CDJKjAwAgBktQsXAHicY2GAAMZQCM0EwqshbAALxAEKeJxjYGBgZoBgGQZGBhCIAPIYwXwWBhsgzcXAwcAEhIwMCi+Z/v/9/x+sSuElA4T9/4k4K1gHFwMMMILMY2QDYmaoABOQYGJABUA7WBiGNwAAJd4NIQAAAAAAAAAACAAIABAAGAAmAEAATgAAeJyNjLENgDAMBP9tIURJwQCMQccSZgk2i5fIYBDAidJjycXr7x5EPwE2wY8si7jmyBNXGo/bNBerxJNrpxhbO3/fEFpx8ZICpV+ghxJ74fAMe+h7Ox14AbrsHB14nK2QQWrDMBRER4mTkhQK3ZRQKOgCNk7oGQqhhEIX2WSlWEI1BAlkJ5CDdNsj5Ey9Rncdi38ES+jzNJo/HwTgATcoDEthhY3wBHc4CE+pfwsX5F/hGe7Vo/AcK/UhvMSz+mGXKhZU6pww8ISz3oWn1BvhgnwTnuEJf8Jz1OpFeIlX9YULDLdFi4ASHolkSR0iuYdjLak1vAequBhj21D61Nqyi6l3qWybGPjySbPHGScGJl6dP58MYcQRI0bts7mjebBqrFENH7t3qWtj0OuqHnXcW7b0HOTZFnKryRGW2hFX1m0O2vEM3opNMfTau+CS6Z3Vx6veNnEXY6jwDxhsc2gAAHicY2BiwA84GBgYmRiYGJkZmBlZGFkZ2djScyoLMgzZS/MyDQwMwLSrpYEBlIbxjQDrzgsuAAAAAAEAAf//AA94nGNgZGBg4AFiMSBmYmAEQnYgZgHzGAAD6wA2eJxjYGBgZACCKyoz1cD0o087YTQATOcIewAAAA==)
    format('woff');
  font-weight: normal;
  font-style: normal;
}

:root,
:host {
  --_lumo-vaadin-grid-sorter-inject: 1;
  --_lumo-vaadin-grid-sorter-inject-modules: lumo_components_grid-sorter;
}

:root,
:host {
  --_lumo-vaadin-crud-inject: 1;
  --_lumo-vaadin-crud-inject-modules: lumo_components_crud;

  --_lumo-vaadin-crud-edit-inject: 1;
  --_lumo-vaadin-crud-edit-inject-modules:
    lumo_components_button,
    lumo_components_crud-edit;

  --_lumo-vaadin-crud-grid-inject: 1;
  --_lumo-vaadin-crud-grid-inject-modules: lumo_components_grid;

  --_lumo-vaadin-crud-form-inject: 1;
  --_lumo-vaadin-crud-form-inject-modules: lumo_components_form-layout;

  --_lumo-vaadin-crud-dialog-overlay-inject: 1;
  --_lumo-vaadin-crud-dialog-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_components_dialog-overlay,
    lumo_components_crud-dialog-overlay;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_custom-field {
  :host {
    display: inline-flex;
    --lumo-text-field-size: var(--lumo-size-m);
    color: var(--lumo-body-text-color);
    font-size: var(--lumo-font-size-m);
    /* align with text-field height + vertical paddings */
    line-height: calc(var(--lumo-text-field-size) + 2 * var(--lumo-space-xs));
    font-family: var(--lumo-font-family);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-tap-highlight-color: transparent;
    padding: 0;
  }

  :host::before {
    content: '\2003';
    width: 0;
    /* Size and position this element on the same vertical position as the input-field element
           to make vertical align for the host element work as expected */
    margin-top: var(--lumo-space-xs);
    height: var(--lumo-text-field-size);
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
  }

  :host([hidden]) {
    display: none !important;
  }

  .vaadin-custom-field-container {
    width: 100%;
    display: flex;
    flex-direction: column;
  }

  .inputs-wrapper {
    flex: none;
  }

  /* align with text-field label */
  :host([has-label]) [part='label'] {
    padding-bottom: calc(0.5em - var(--lumo-space-xs));
  }

  :host(:not([has-label])) [part='label'],
  :host(:not([has-label]))::before {
    display: none;
  }

  /* align with text-field error message */
  :host([has-error-message]) [part='error-message']::before {
    height: calc(0.4em - var(--lumo-space-xs));
  }

  :host([focused]:not([readonly]):not([disabled])) [part='label'] {
    color: var(--lumo-primary-text-color);
  }

  :host(:hover:not([readonly]):not([disabled]):not([focused])) [part='label'],
  :host(:hover:not([readonly]):not([disabled]):not([focused])) [part='helper-text'] {
    color: var(--lumo-body-text-color);
  }

  /* Touch device adjustment */
  @media (pointer: coarse) {
    :host(:hover:not([readonly]):not([disabled]):not([focused])) [part='label'] {
      color: var(--lumo-secondary-text-color);
    }
  }

  /* Disabled */
  :host([disabled]) [part='label'] {
    color: var(--lumo-disabled-text-color);
    -webkit-text-fill-color: var(--lumo-disabled-text-color);
  }

  /* Small theme */
  :host([theme~='small']) {
    font-size: var(--lumo-font-size-s);
    --lumo-text-field-size: var(--lumo-size-s);
  }

  :host([theme~='small']) [part='label'] {
    font-size: var(--lumo-font-size-xs);
  }

  :host([theme~='small']) [part='error-message'] {
    font-size: var(--lumo-font-size-xxs);
  }

  /* When custom-field is used with components without outer margin */
  :host([theme~='whitespace'][has-label]) [part='label'] {
    padding-bottom: 0.5em;
  }
}

:root,
:host {
  --_lumo-vaadin-custom-field-inject: 1;
  --_lumo-vaadin-custom-field-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_components_custom-field;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */

@media lumo_mixins_dashboard-item {
  :host {
    --_widget-background: var(--vaadin-dashboard-widget-background, var(--lumo-base-color));
    --_widget-border-radius: var(--vaadin-dashboard-widget-border-radius, var(--lumo-border-radius-l));
    --_widget-border-color: var(--vaadin-dashboard-widget-border-color, var(--lumo-contrast-20pct));
    --_widget-editable-shadow: var(--lumo-box-shadow-s);
    --_widget-selected-shadow:
      0 2px 4px -1px var(--lumo-primary-color-10pct), 0 3px 12px -1px var(--lumo-primary-color-50pct);
    --_drop-target-background-color: var(
      --vaadin-dashboard-drop-target-background-color,
      var(--lumo-primary-color-10pct)
    );
    --_drop-target-border: var(--vaadin-dashboard-drop-target-border, 1px dashed var(--lumo-primary-color-50pct));

    color: var(--lumo-body-text-color);
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-m);
    line-height: var(--lumo-line-height-m);
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
    --_icon-color: var(--lumo-contrast-60pct);
    opacity: var(--_widget-opacity);
    filter: var(--_widget-filter);
  }

  [part~='move-apply-button'] {
    --icon: var(--lumo-icons-checkmark);
    font-size: var(--lumo-icon-size-m);
  }

  header {
    overflow: hidden;
    align-items: start;
    gap: 0;
  }

  [part='title'] {
    color: var(--lumo-header-text-color);
    line-height: var(--lumo-line-height-s);
    margin: 0 0 1px;
  }

  vaadin-dashboard-button {
    font-family: 'lumo-icons';
    font-size: var(--lumo-icon-size-m);
    margin: 0;
  }

  vaadin-dashboard-button .icon::before {
    display: block;
    content: var(--icon);
    background: transparent;
    mask-image: none;
    width: auto;
    height: auto;
  }

  /* Common styles for non-mode edit buttons */
  [part~='move-button'],
  [part~='resize-button'],
  [part~='remove-button'] {
    color: var(--_icon-color);
    padding-inline: 0;
  }

  :where([part~='move-button'], [part~='resize-button'], [part~='remove-button']):hover {
    --_icon-color: var(--lumo-primary-text-color);
  }

  :host([selected]) {
    opacity: 1;
    z-index: 1;
    --_icon-color: var(--lumo-primary-text-color);
  }

  :host(:is([move-mode], [resize-mode])) {
    --_icon-color: var(--lumo-disabled-text-color);
  }

  /* Drag handle */
  [part~='move-button'] {
    --icon: var(--lumo-icons-drag-handle);
  }

  /* Remove button */
  [part~='remove-button'] {
    --icon: var(--lumo-icons-cross);
    margin-inline-start: var(--lumo-space-xs);
  }

  /* Mode controls */
  .mode-controls vaadin-dashboard-button[focused] {
    z-index: 3;
  }

  /* Move mode */

  :host([move-mode]) :is([part~='move-forward-button'], [part~='move-backward-button']) .icon {
    rotate: none;
  }

  :host(:not([dir='rtl'])) [part~='move-backward-button'],
  :host([dir='rtl']) [part~='move-forward-button'] {
    --icon: var(--lumo-icons-angle-left);
  }

  :host(:not([dir='rtl'])) [part~='move-forward-button'],
  :host([dir='rtl']) [part~='move-backward-button'] {
    --icon: var(--lumo-icons-angle-right);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_dashboard-layout {
  #grid {
    --_default-padding: var(--lumo-space-m);
    --_default-gap: var(--lumo-space-m);
    --_default-row-min-height: 12rem;
  }

  :host([theme~='shaded-background']) {
    background: var(--lumo-shade-5pct);
  }

  :host([theme~='elevated-widgets']) {
    --vaadin-dashboard-widget-shadow: var(--lumo-box-shadow-xs);
    --vaadin-dashboard-widget-border-color: var(--lumo-contrast-10pct);
    --vaadin-dashboard-widget-background: linear-gradient(var(--lumo-tint-5pct), var(--lumo-tint-5pct))
      var(--lumo-base-color);
  }

  :host([theme~='flat-widgets']) {
    --vaadin-dashboard-widget-background: var(--lumo-contrast-5pct);
    --vaadin-dashboard-widget-border-color: transparent;
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_dashboard-section {
  :host {
    gap: var(--_gap, 1rem);
    --_section-outline-offset: calc(min(var(--_gap), var(--_padding)) / 3);
    --_focus-ring-offset: calc((var(--_section-outline-offset) - var(--_focus-ring-width)));
    border-radius: var(--lumo-border-radius-l);
    border: none;
    margin: 0;
    padding: 0;
  }

  header {
    margin-bottom: calc(-1 * var(--_section-outline-offset));
    line-height: var(--lumo-line-height-s);
    padding-inline: var(--lumo-space-s);
    min-height: var(--lumo-size-l);
    align-items: center;
  }

  [part='title'] {
    font-size: var(--lumo-font-size-xl);
    font-weight: 600;
    white-space: nowrap;
    line-height: var(--lumo-line-height-m);
  }

  /* Section states */

  :host([editable]) {
    outline: 1px solid var(--lumo-contrast-10pct);
    outline-offset: calc(var(--_section-outline-offset) - 1px);
    background: var(--lumo-contrast-5pct);
    box-shadow: 0 0 0 var(--_section-outline-offset) var(--lumo-contrast-5pct);
  }

  :host([editable]) header {
    padding-inline: var(--lumo-space-xs);
  }

  :host([focused]) {
    outline: var(--_focus-ring-width) solid var(--_focus-ring-color);
    outline-offset: var(--_focus-ring-offset);
  }

  :host([selected]) {
    background: var(--lumo-primary-color-10pct);
    box-shadow: 0 0 0 var(--_section-outline-offset) var(--lumo-primary-color-10pct);
  }

  :host([selected]:not([focused])) {
    outline-color: var(--lumo-primary-color-50pct);
  }

  :host([move-mode]) ::slotted(*) {
    --_widget-opacity: 0.3;
    --_widget-filter: blur(10px);
  }

  :host([dragging]) {
    background: var(--_drop-target-background-color);
    outline: var(--_drop-target-border);
    box-shadow: 0 0 0 var(--_section-outline-offset) var(--_drop-target-background-color) !important;
    border-color: transparent !important;
  }

  /* Accessible move mode controls */

  [part~='move-backward-button'] {
    inset-inline-start: calc(-1 * var(--_section-outline-offset));
  }

  [part~='move-forward-button'] {
    inset-inline-end: calc(-1 * var(--_section-outline-offset));
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_dashboard-widget {
  /* Widget states */

  :host([editable]) {
    --_widget-border-color: var(--lumo-contrast-20pct);
    --_widget-border-width: 1px;
  }

  :host([selected]) {
    background: var(--lumo-primary-color-10pct);
  }

  :host([resizing])::after {
    top: -1px;
    background: var(--_drop-target-background-color);
    border: var(--_drop-target-border);
  }

  /* Widget parts */

  header {
    min-height: var(--lumo-size-l);
    padding: var(--lumo-space-xs) var(--lumo-space-m);
  }

  :host([editable]) header {
    padding: var(--lumo-space-xs);
  }

  [part='title'] {
    font-size: var(--lumo-font-size-l);
    font-weight: 600;
  }

  #content {
    min-height: var(--lumo-size-m);
    padding-inline: var(--vaadin-dashboard-widget-padding, 0);
    padding-bottom: var(--vaadin-dashboard-widget-padding, 0);
    padding-top: 0;
    border-radius: inherit;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    overflow: hidden;
  }

  ::slotted([slot='header-content']) {
    align-self: center;
  }

  :host([resize-mode]) #content,
  :host([move-mode]) #content {
    opacity: 0.75;
    filter: blur(10px);
  }

  /* Resize handle */

  [part~='resize-button'] {
    --_resize-button-offset: min(var(--_gap), var(--_padding), var(--lumo-space-xs));
    bottom: calc(-1 * var(--_resize-button-offset));
    inset-inline-end: calc(-1 * var(--_resize-button-offset));
    --icon: var(--lumo-icons-resize-handle);
  }

  /* Accessible resize mode controls */

  [part~='resize-apply-button'] {
    --icon: var(--lumo-icons-checkmark);
    font-size: var(--lumo-icon-size-m);
  }

  [part~='resize-grow-width-button'],
  [part~='resize-shrink-width-button'] {
    padding-right: 0;
    padding-left: 0;
    min-width: var(--lumo-size-s);
  }

  [part~='resize-grow-height-button'],
  [part~='resize-shrink-height-button'] {
    height: var(--lumo-size-s);
    padding-right: 0;
    padding-left: 0;
  }

  [part~='resize-grow-height-button'],
  [part~='resize-grow-width-button'] {
    --icon: var(--lumo-icons-plus);
  }

  [part~='resize-shrink-height-button'],
  [part~='resize-shrink-width-button'] {
    --icon: var(--lumo-icons-minus);
  }

  /* Windows High Contrast Mode */
  @media (forced-colors: active) {
    :host {
      border: 1px solid;
    }

    :host([focused]) {
      outline: 2px solid;
      outline-offset: 1px;
    }

    :host([selected]) {
      outline-width: 1px;
      outline-offset: 0;
      outline-color: Highlight;
    }

    :host([selected][focused]) {
      outline-width: 3px;
      outline-offset: 0;
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_dashboard {
  :host {
    --_widget-opacity: 1;
  }

  :host([item-selected]) {
    --_widget-opacity: 0.7;
  }
}

:root,
:host {
  --_lumo-vaadin-dashboard-inject: 1;
  --_lumo-vaadin-dashboard-inject-modules:
    lumo_components_dashboard-layout,
    lumo_components_dashboard;

  --_lumo-vaadin-dashboard-widget-inject: 1;
  --_lumo-vaadin-dashboard-widget-inject-modules:
    lumo_mixins_dashboard-item,
    lumo_components_dashboard-widget;

  --_lumo-vaadin-dashboard-section-inject: 1;
  --_lumo-vaadin-dashboard-section-inject-modules:
    lumo_mixins_dashboard-item,
    lumo_components_dashboard-section;

  --_lumo-vaadin-dashboard-layout-inject: 1;
  --_lumo-vaadin-dashboard-layout-inject-modules: lumo_components_dashboard-layout;

  --_lumo-vaadin-dashboard-button-inject: 1;
  --_lumo-vaadin-dashboard-button-inject-modules: lumo_components_button;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_date-picker-month-calendar {
  :host {
    display: block;
    -webkit-user-select: none;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
    font-size: var(--lumo-font-size-m);
    color: var(--lumo-body-text-color);
    text-align: center;
    padding: 0 var(--lumo-space-xs);
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
    --_selection-color: var(--vaadin-selection-color, var(--lumo-primary-color));
    --_selection-color-text: var(--vaadin-selection-color-text, var(--lumo-primary-text-color));
  }

  #monthGrid {
    width: 100%;
    border-collapse: collapse;
  }

  #days-container tr,
  #weekdays-container tr {
    display: flex;
  }

  [part~='disabled'] {
    pointer-events: none;
  }

  /* Month header */

  [part='month-header'] {
    color: var(--lumo-header-text-color);
    font-size: var(--lumo-font-size-l);
    line-height: 1;
    font-weight: 500;
    margin-bottom: var(--lumo-space-m);
  }

  /* Week days and numbers */

  [part='weekdays'],
  [part='weekday'],
  [part='week-number'] {
    font-size: var(--lumo-font-size-xxs);
    line-height: 1;
    color: var(--lumo-secondary-text-color);
  }

  [part='weekdays'] {
    margin-bottom: var(--lumo-space-s);
  }

  [part='weekday']:empty,
  [part='week-number'] {
    flex-shrink: 0;
    padding: 0;
    width: var(--lumo-size-xs);
  }

  [part='week-number'][hidden],
  [part='weekday'][hidden] {
    display: none;
  }

  /* Date and week number cells */

  [part~='date'],
  [part='week-number'] {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--lumo-size-m);
    position: relative;
  }

  [part~='date'] {
    outline: none;
    transition: color 0.1s;
  }

  [part~='date']:not(:empty) {
    cursor: var(--lumo-clickable-cursor);
  }

  [part='weekday'],
  [part~='date'] {
    width: calc(100% / 7);
    padding: 0;
    font-weight: normal;
  }

  :host([week-numbers]) [part='weekday']:not(:empty),
  :host([week-numbers]) [part~='date'] {
    width: calc((100% - var(--lumo-size-xs)) / 7);
  }

  /* Today date */

  [part~='date'][part~='today'] {
    color: var(--_selection-color-text);
  }

  /* Focused date */

  [part~='date']::before {
    content: '';
    position: absolute;
    z-index: -1;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    min-width: 2em;
    min-height: 2em;
    width: 80%;
    height: 80%;
    max-height: 100%;
    max-width: 100%;
    border-radius: var(--lumo-border-radius-m);
  }

  [part~='date'][part~='focused']::before {
    box-shadow:
      0 0 0 1px var(--lumo-base-color),
      0 0 0 calc(var(--_focus-ring-width) + 1px) var(--_focus-ring-color);
  }

  :host(:not([focused])) [part~='date'][part~='focused']::before {
    animation: vaadin-date-picker-month-calendar-focus-date 1.4s infinite;
  }

  @keyframes vaadin-date-picker-month-calendar-focus-date {
    50% {
      box-shadow:
        0 0 0 1px var(--lumo-base-color),
        0 0 0 calc(var(--_focus-ring-width) + 1px) transparent;
    }
  }

  [part~='date']:not(:empty):not([part~='disabled']):not([part~='selected']):hover::before {
    background-color: var(--lumo-primary-color-10pct);
  }

  [part~='date'][part~='selected'] {
    color: var(--lumo-primary-contrast-color);
  }

  [part~='date'][part~='selected']::before {
    background-color: var(--_selection-color);
  }

  [part~='date'][part~='disabled'] {
    color: var(--lumo-disabled-text-color);
  }

  @media (pointer: coarse) {
    [part~='date']:hover:not([part~='selected'])::before,
    :host(:not([focus-ring])) [part~='focused']:not([part~='selected'])::before {
      display: none;
    }

    [part~='date']:not(:empty):not([part~='disabled']):active::before {
      display: block;
    }

    :host(:not([focus-ring])) [part~='date'][part~='selected']::before {
      box-shadow: none;
    }
  }
  /* Disabled */

  :host([disabled]) * {
    color: var(--lumo-disabled-text-color) !important;
  }

  @media (forced-colors: active) {
    [part~='date'][part~='focused'] {
      outline: 1px solid;
    }

    [part~='date'][part~='selected'] {
      outline: 3px solid;
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_date-picker-overlay-content {
  :host {
    /* Background for the year scroller, placed here as we are using a mask image on the actual years part */
    background-image: linear-gradient(var(--lumo-shade-5pct), var(--lumo-shade-5pct));
    background-size: 57px 100%;
    background-position: top right;
    background-repeat: no-repeat;
    cursor: default;
  }

  :host([dir='rtl']) {
    background-position: top left;
  }

  ::slotted([slot='months']) {
    /* Month calendar height:
          header height + margin-bottom
        + weekdays height + margin-bottom
        + date cell heights
        + small margin between month calendars
    */
    /* prettier-ignore */
    --vaadin-infinite-scroller-item-height:
      calc(
          var(--lumo-font-size-l) + var(--lumo-space-m)
        + var(--lumo-font-size-xs) + var(--lumo-space-s)
        + var(--lumo-size-m) * 6
        + var(--lumo-space-s)
      );
    --vaadin-infinite-scroller-buffer-offset: 10%;
    mask-image: linear-gradient(transparent, #000 10%, #000 85%, transparent);
  }

  ::slotted([slot='years']) {
    /* TODO get rid of fixed magic number */
    --vaadin-infinite-scroller-buffer-width: 57px;
    width: 57px;
    font-size: var(--lumo-font-size-s);
    border: none;
    background: transparent;
    box-shadow: inset 2px 0 4px 0 var(--lumo-shade-5pct);
    mask-image: linear-gradient(transparent, #000 35%, #000 65%, transparent);
    cursor: var(--lumo-clickable-cursor);
  }

  :host([dir='rtl']) ::slotted([slot='years']) {
    box-shadow: inset -2px 0 4px 0 var(--lumo-shade-5pct);
  }

  ::slotted([slot='years']:hover) {
    --_lumo-date-picker-year-opacity: 1;
  }

  /* Year scroller position indicator */
  ::slotted([slot='years'])::before {
    border: none;
    width: 1em;
    height: 1em;
    background-color: var(--lumo-base-color);
    background-image: linear-gradient(var(--lumo-tint-5pct), var(--lumo-tint-5pct));
    border-top-right-radius: var(--lumo-border-radius-s);
    box-shadow: 2px -2px 6px 0 var(--lumo-shade-5pct);
    translate: -75% -50%;
  }

  :host([dir='rtl']) ::slotted([slot='years'])::before {
    border-bottom-left-radius: var(--lumo-border-radius-s);
    translate: 75% -50%;
  }

  [part='toolbar'] {
    padding: var(--lumo-space-s);
    border-bottom-left-radius: var(--lumo-border-radius-l);
  }

  /* Narrow viewport mode (fullscreen) */

  :host([fullscreen]) [part='toolbar'] {
    margin-inline-end: 57px;
    background-color: var(--lumo-base-color);
    border: none;
  }

  [part='toolbar'] ::slotted(vaadin-button) {
    margin: 0;
  }

  /* Very narrow screen (year scroller initially hidden) */

  [part='years-toggle-button'] {
    height: var(--lumo-size-m);
    padding: 0 0.5em;
    border-radius: var(--lumo-border-radius-m);
    color: var(--lumo-primary-text-color);
    font-weight: 500;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  :host([years-visible]) [part='years-toggle-button'] {
    background-color: var(--lumo-primary-color);
    color: var(--lumo-primary-contrast-color);
  }

  /* TODO magic number (same as used for media-query in vaadin-date-picker-overlay-content) */
  @media screen and (max-width: 374px) {
    :host {
      background-image: none;
    }

    :host([fullscreen]) [part='toolbar'] {
      margin-inline-end: 0;
    }

    /* TODO make date-picker adapt to the width of the years part */
    ::slotted([slot='years']) {
      --vaadin-infinite-scroller-buffer-width: 50px;
      width: 50px;
      background-color: var(--lumo-shade-5pct);
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_date-picker-overlay {
  [part='overlay'] {
    display: flex;
    flex: auto;
    /* Width: date cell widths + month calendar side padding + year scroller width */
    width: calc(var(--lumo-size-m) * 7 + var(--lumo-space-xs) * 2 + 57px);
    height: 100%;
    max-height: calc(var(--lumo-size-m) * 14);
    overflow: hidden;
    -webkit-tap-highlight-color: transparent;
    flex-direction: column;
  }

  [part='content'] {
    flex: auto;
    padding: 0;
    height: 100%;
    overflow: hidden;
    mask-image: none;
  }

  :host([top-aligned]) [part='overlay'] {
    margin-top: var(--lumo-space-xs);
  }

  :host([bottom-aligned]) [part='overlay'] {
    margin-bottom: var(--lumo-space-xs);
  }

  @media (max-width: 450px), (max-height: 450px) {
    [part='overlay'] {
      width: 100vw;
      height: 70vh;
      max-height: 70vh;
    }
  }

  @media (forced-colors: active) {
    [part='overlay'] {
      outline: 3px solid;
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_date-picker-year {
  :host {
    display: block;
    height: 100%;
  }

  :host([current]) [part='year-number'] {
    color: var(--lumo-primary-text-color);
  }

  :host(:not([current])) [part='year-number'],
  [part='year-separator'] {
    opacity: var(--_lumo-date-picker-year-opacity, 0.7);
    transition: 0.2s opacity;
  }

  [part='year-number'],
  [part='year-separator'] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 50%;
    transform: translateY(-50%);
  }

  [part='year-separator']::after {
    color: var(--lumo-disabled-text-color);
    content: '\2022';
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_date-picker {
  :host([opened]) {
    pointer-events: auto;
  }

  :host([dir='rtl']) [part='input-field'] {
    direction: ltr;
  }

  :host([dir='rtl']) [part='input-field'] ::slotted(input)::placeholder {
    direction: rtl;
    text-align: left;
  }

  [part~='toggle-button']::before {
    content: var(--lumo-icons-calendar);
  }

  [part~='clear-button']::before {
    content: var(--lumo-icons-cross);
  }

  @media (max-width: 450px), (max-height: 450px) {
    [part='overlay-content'] {
      height: 70vh;
    }
  }

  :host([dir='rtl']) [part='input-field'] ::slotted(input) {
    --_lumo-text-field-overflow-mask-image: linear-gradient(to left, transparent, #000 1.25em);
  }

  :host([dir='rtl']) [part='input-field'] ::slotted(input:placeholder-shown) {
    --_lumo-text-field-overflow-mask-image: none;
  }
}

:root,
:host {
  --_lumo-vaadin-date-picker-inject: 1;
  --_lumo-vaadin-date-picker-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-button,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_mixins_field-base,
    lumo_components_date-picker;

  --_lumo-vaadin-date-picker-year-inject: 1;
  --_lumo-vaadin-date-picker-year-inject-modules: lumo_components_date-picker-year;

  --_lumo-vaadin-date-picker-overlay-inject: 1;
  --_lumo-vaadin-date-picker-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_mixins_menu-overlay-core,
    lumo_mixins_menu-overlay-ext,
    lumo_components_date-picker-overlay;

  --_lumo-vaadin-date-picker-overlay-content-inject: 1;
  --_lumo-vaadin-date-picker-overlay-content-inject-modules: lumo_components_date-picker-overlay-content;

  --_lumo-vaadin-month-calendar-inject: 1;
  --_lumo-vaadin-month-calendar-inject-modules: lumo_components_date-picker-month-calendar;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_date-time-picker {
  .vaadin-date-time-picker-container {
    --vaadin-field-default-width: auto;
  }

  [part='input-fields'] {
    display: flex;
    --vaadin-field-default-width: 12em;
  }

  [part='input-fields'] ::slotted([slot='date-picker']) {
    min-width: 0;
    flex: 1 1 auto;
  }

  [part='input-fields'] ::slotted([slot='time-picker']) {
    min-width: 0;
    flex: 1 1.65 auto;
  }

  ::slotted([slot='date-picker']) {
    margin-inline-end: 2px;
    --vaadin-input-field-top-end-radius: 0;
    --vaadin-input-field-bottom-end-radius: 0;
  }

  ::slotted([slot='time-picker']) {
    --vaadin-input-field-top-start-radius: 0;
    --vaadin-input-field-bottom-start-radius: 0;
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_time-picker-overlay {
  :host {
    --_vaadin-time-picker-items-container-border-width: var(--lumo-space-xs);
    --_vaadin-time-picker-items-container-border-style: solid;
  }

  #overlay {
    width: var(--vaadin-time-picker-overlay-width, var(--_vaadin-time-picker-overlay-default-width, auto));
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_time-picker {
  :host([opened]) {
    pointer-events: auto;
  }

  [part~='toggle-button'] {
    cursor: pointer;
  }

  [part~='toggle-button']::before {
    content: var(--lumo-icons-clock);
  }

  /* See https://github.com/vaadin/vaadin-time-picker/issues/145 */
  :host([dir='rtl']) [part='input-field'] {
    direction: ltr;
  }

  :host([dir='rtl']) [part='input-field'] ::slotted(input) {
    --_lumo-text-field-overflow-mask-image: linear-gradient(to left, transparent, #000 1.25em);
  }

  :host([dir='rtl']) [part='input-field'] ::slotted(input:placeholder-shown) {
    --_lumo-text-field-overflow-mask-image: none;
  }

  :host([dir='rtl']) [part='input-field'] ::slotted(input)::placeholder {
    direction: rtl;
    text-align: left;
  }
}

:root,
:host {
  --_lumo-vaadin-time-picker-inject: 1;
  --_lumo-vaadin-time-picker-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-button,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_mixins_field-base,
    lumo_components_time-picker;

  --_lumo-vaadin-time-picker-item-inject: 1;
  --_lumo-vaadin-time-picker-item-inject-modules:
    lumo_components_item,
    lumo_components_combo-box-item;

  --_lumo-vaadin-time-picker-overlay-inject: 1;
  --_lumo-vaadin-time-picker-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_mixins_menu-overlay-core,
    lumo_mixins_combo-box-overlay,
    lumo_components_time-picker-overlay;
}

:root,
:host {
  --_lumo-vaadin-date-time-picker-inject: 1;
  --_lumo-vaadin-date-time-picker-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-button,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_mixins_field-base,
    lumo_components_custom-field,
    lumo_components_date-time-picker;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */

:root,
:host {
  --_lumo-vaadin-details-summary-inject: 1;
  --_lumo-vaadin-details-summary-inject-modules: lumo_components_details-summary;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */

:root,
:host {
  --_lumo-vaadin-details-inject: 1;
  --_lumo-vaadin-details-inject-modules: lumo_components_details;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_resizable-overlay {
  [part='overlay'] {
    position: relative;
    overflow: visible;
    max-height: 100%;
    display: flex;
  }

  [part='content'] {
    box-sizing: border-box;
    height: 100%;
  }

  .resizer-container {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    min-width: 0;
    border-radius: inherit; /* prevent child elements being drawn outside part=overlay */
  }

  [part='overlay'][style] .resizer-container {
    min-height: 100%;
    width: 100%;
  }

  :host(:not([resizable])) .resizer {
    display: none;
  }

  :host([resizable]) [part='title'] {
    cursor: move;
    -webkit-user-select: none;
    user-select: none;
  }

  .resizer {
    position: absolute;
    height: 16px;
    width: 16px;
  }

  .resizer.edge {
    height: 8px;
    width: 8px;
    inset: -4px;
  }

  .resizer.edge.n {
    width: auto;
    bottom: auto;
    cursor: ns-resize;
  }

  .resizer.ne {
    top: -4px;
    right: -4px;
    cursor: nesw-resize;
  }

  .resizer.edge.e {
    height: auto;
    left: auto;
    cursor: ew-resize;
  }

  .resizer.se {
    bottom: -4px;
    right: -4px;
    cursor: nwse-resize;
  }

  .resizer.edge.s {
    width: auto;
    top: auto;
    cursor: ns-resize;
  }

  .resizer.sw {
    bottom: -4px;
    left: -4px;
    cursor: nesw-resize;
  }

  .resizer.edge.w {
    height: auto;
    right: auto;
    cursor: ew-resize;
  }

  .resizer.nw {
    top: -4px;
    left: -4px;
    cursor: nwse-resize;
  }
}

:root,
:host {
  --_lumo-vaadin-dialog-overlay-inject: 1;
  --_lumo-vaadin-dialog-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_mixins_resizable-overlay,
    lumo_components_dialog-overlay;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_drawer-toggle {
  :host {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: default;
    position: relative;
    outline: none;
    width: var(--lumo-size-l);
    height: var(--lumo-size-l);
    min-width: auto;
    margin: 0 var(--lumo-space-s);
    padding: 0;
    background: transparent;
  }

  [part='icon'],
  [part='icon']::after,
  [part='icon']::before {
    height: auto;
    width: auto;
    background: transparent;
  }

  [part='icon']::after,
  [part='icon']::before {
    content: '';
  }

  [part='icon']::after {
    top: 6px;
  }

  [part='icon']::before {
    top: 12px;
    font-family: lumo-icons;
    font-size: var(--lumo-icon-size-m);
    content: var(--lumo-icons-menu);
  }

  :host([slot~='navbar']) {
    color: var(--lumo-secondary-text-color);
  }
}

:root,
:host {
  --_lumo-vaadin-drawer-toggle-inject: 1;
  --_lumo-vaadin-drawer-toggle-inject-modules:
    lumo_components_button,
    lumo_components_drawer-toggle;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */

@media lumo_components_email-field {
  /* See https://github.com/vaadin/vaadin-text-field/issues/466 */

  :host([dir='rtl']) [part='input-field'] {
    direction: ltr;
  }

  :host([dir='rtl']) [part='input-field'] ::slotted(input) {
    --_lumo-text-field-overflow-mask-image: linear-gradient(to left, transparent, #000 1.25em);
  }

  :host([dir='rtl']) [part='input-field'] ::slotted(input)::placeholder {
    direction: rtl;
    text-align: left;
  }

  :host([dir='rtl']) [part='input-field'] ::slotted(input:placeholder-shown) {
    --_lumo-text-field-overflow-mask-image: none;
  }
}

:root,
:host {
  --_lumo-vaadin-email-field-inject: 1;
  --_lumo-vaadin-email-field-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-button,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_mixins_field-base,
    lumo_components_email-field;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_field-outline {
  :host {
    display: block;
    box-sizing: border-box;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    user-select: none;
    opacity: 0;
    --_active-user-color: transparent;
    transition: opacity 0.3s;
    mask-image: none !important;
  }

  :host([has-active-user]) {
    opacity: 1;
  }

  :host::before {
    content: '';
    position: absolute;
    inset: 0;
    box-shadow: 0 0 0 2px var(--_active-user-color);
    border-radius: var(--lumo-border-radius-s);
    transition: box-shadow 0.3s;
  }

  :host([context$='checkbox'])::before {
    box-shadow:
      0 0 0 2px var(--lumo-base-color),
      0 0 0 4px var(--_active-user-color);
  }

  :host([context$='radio-button'])::before {
    border-radius: 50%;
    box-shadow:
      0 0 0 3px var(--lumo-base-color),
      0 0 0 5px var(--_active-user-color);
  }

  :host([context$='item'])::before {
    box-shadow: inset 0 0 0 2px var(--_active-user-color);
  }
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_user-tag {
  :host {
    display: block;
    box-sizing: border-box;
    margin: 0 0 var(--vaadin-user-tag-offset);
    opacity: 0;
    height: 1.3rem;
    transition: opacity 0.2s ease-in-out;
    background-color: var(--vaadin-user-tag-color);
    color: #fff;
    cursor: default;
    -webkit-user-select: none;
    user-select: none;
    --vaadin-user-tag-offset: 4px;
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-xxs);
    border-radius: var(--lumo-border-radius-s);
    box-shadow: var(--lumo-box-shadow-xs);
    --vaadin-user-tag-offset: var(--lumo-space-xs);
  }

  :host(.show) {
    opacity: 1;
  }

  :host(:last-of-type) {
    margin-bottom: 0;
  }

  [part='name'] {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    box-sizing: border-box;
    height: 1.3rem;
    font-size: 13px;
    color: var(--lumo-primary-contrast-color);
    padding: 0.3em calc(0.3em + var(--lumo-border-radius-s) / 4);
    line-height: 1;
    font-weight: 500;
    min-width: calc(var(--lumo-line-height-xs) * 1em + 0.45em);
  }
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_user-tags-overlay {
  [part='overlay'] {
    box-shadow: none;
    background: transparent;
    position: relative;
    left: -4px;
    padding: 4px;
    outline: none;
    overflow: visible;
  }

  [part='content'] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 0;
  }

  :host([dir='rtl']) [part='overlay'] {
    left: auto;
    right: -4px;
  }

  :host([opening]),
  :host([closing]) {
    animation: 0.14s user-tags-overlay-dummy-animation;
  }

  @keyframes user-tags-overlay-dummy-animation {
    0% {
      opacity: 1;
    }

    100% {
      opacity: 1;
    }
  }

  :host([opening]) [part='overlay'] {
    animation: 0.1s lumo-user-tags-enter ease-out both;
  }

  @keyframes lumo-user-tags-enter {
    0% {
      opacity: 0;
    }
  }

  :host([closing]) [part='overlay'] {
    animation: 0.1s lumo-user-tags-exit both;
  }

  @keyframes lumo-user-tags-exit {
    100% {
      opacity: 0;
    }
  }
}

:root,
:host {
  --_lumo-vaadin-user-tags-overlay-inject: 1;
  --_lumo-vaadin-user-tags-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_components_user-tags-overlay;

  --_lumo-vaadin-user-tag-inject: 1;
  --_lumo-vaadin-user-tag-inject-modules: lumo_components_user-tag;

  --_lumo-vaadin-field-outline-inject: 1;
  --_lumo-vaadin-field-outline-inject-modules: lumo_components_field-outline;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_form-item {
  [part='label'] {
    /* font-weight, margin-bottom, transition and line-height same as for part label in text-field */
    color: var(--lumo-secondary-text-color);
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-s);
    font-weight: 500;
    margin-top: var(--lumo-space-m);
    margin-left: calc(var(--lumo-border-radius-m) / 4);
    margin-bottom: var(--lumo-space-xs);
    line-height: 1.333;
  }

  [part='required-indicator']::after {
    content: var(--vaadin-input-field-required-indicator, var(--lumo-required-field-indicator, '\2022'));
    transition: opacity 0.2s;
    opacity: 0;
    color: var(
      --vaadin-input-field-required-indicator-color,
      var(--lumo-required-field-indicator-color, var(--lumo-primary-text-color))
    );
    position: relative;
    width: 1em;
    text-align: center;
  }

  :host([required]) [part='required-indicator']::after {
    opacity: 1;
  }

  :host([invalid]) [part='required-indicator']::after {
    color: var(
      --vaadin-input-field-required-indicator-color,
      var(--lumo-required-field-indicator-color, var(--lumo-error-text-color))
    );
  }
}

:root,
:host {
  --_lumo-vaadin-form-item-inject: 1;
  --_lumo-vaadin-form-item-inject-modules: lumo_components_form-item;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_grid-pro-editor {
  :host([theme~='grid-pro-editor']) {
    position: absolute;
    inset: 0;
    padding: 0;
    font-size: inherit;
    --lumo-text-field-size: 27px;
    /* outline similar to what grid uses */
    box-shadow: inset 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
  }

  :host([theme~='grid-pro-editor']) [part='input-field'] {
    padding: 0;
    border-radius: 0;
    flex-grow: 1;
    font-weight: 400;
    --vaadin-input-field-border-color: transparent;
  }

  /* reset outline inherited from text-field */
  :host([theme~='grid-pro-editor'][focus-ring]) [part='input-field'] {
    box-shadow: none;
  }

  :host([theme~='grid-pro-editor']) ::slotted(input) {
    padding: 0 var(--lumo-space-m);
    font-size: inherit;
  }
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_grid-pro-edit-select {
  :host([theme~='grid-pro-editor']) [part~='toggle-button'] {
    margin-right: var(--lumo-space-xs);
  }

  :host([theme~='grid-pro-editor']) [part='input-field'] ::slotted([slot='value']) {
    box-sizing: border-box;
    padding: 0 var(--lumo-space-m);
    font-size: var(--lumo-font-size-m);
    /* prevent selection on editor focus */
    -webkit-user-select: none;
    user-select: none;
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_select {
  :host {
    position: relative;
    /* Disable pointer focus-ring for select, not supported yet */
    --lumo-input-field-pointer-focus-visible: 0;
  }

  ::slotted(div[slot='overlay']) {
    display: contents;
  }

  :host(:not([theme*='align'])) ::slotted([slot='value']) {
    text-align: start;
  }

  [part='input-field'] {
    cursor: var(--lumo-clickable-cursor);
  }

  [part='input-field'] ::slotted([slot='value']) {
    flex-grow: 1;
    font-weight: var(--vaadin-input-field-value-font-weight, 500);
  }

  [part='input-field'] ::slotted([slot='value']:not([placeholder])) {
    color: var(--vaadin-input-field-value-color, var(--lumo-body-text-color));
  }

  :host([readonly]) [part='input-field'] ::slotted([slot='value']:not([placeholder])) {
    color: var(--lumo-secondary-text-color);
  }

  /* placeholder styles */
  [part='input-field'] ::slotted([slot='value'][placeholder]) {
    color: var(--vaadin-input-field-placeholder-color, var(--lumo-secondary-text-color));
  }

  :host(:is([readonly], [disabled])) ::slotted([slot='value'][placeholder]) {
    opacity: 0;
  }

  [part~='toggle-button']::before {
    content: var(--lumo-icons-dropdown);
  }

  /* Highlight the toggle button when hovering over the entire component */
  :host(:hover:not([readonly]):not([disabled])) [part~='toggle-button'] {
    color: var(--lumo-contrast-80pct);
  }

  :host([theme~='small']) [part='input-field'] ::slotted([slot='value']) {
    --_lumo-selected-item-height: var(--lumo-size-s);
    --_lumo-selected-item-padding: 0;
  }

  .sr-only {
    border: 0 !important;
    clip: rect(1px, 1px, 1px, 1px) !important;
    clip-path: inset(50%) !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    width: 1px !important;
    white-space: nowrap !important;
  }
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_select-overlay {
  :host {
    align-items: flex-start;
    justify-content: flex-start;
    --_lumo-item-selected-icon-display: block;
  }

  /* Small viewport adjustment */
  :host([phone]) {
    /* stylelint-disable declaration-block-no-redundant-longhand-properties */
    top: 0 !important;
    right: 0 !important;
    bottom: var(--vaadin-overlay-viewport-bottom, 0) !important;
    left: 0 !important;
    /* stylelint-enable declaration-block-no-redundant-longhand-properties */
    align-items: stretch;
    justify-content: flex-end;
  }

  :host(:not([phone])) [part='overlay'] {
    min-width: var(--vaadin-select-overlay-width, var(--_vaadin-select-overlay-default-width));
  }

  :host([no-vertical-overlap][top-aligned]) [part='overlay'] {
    margin-block-start: var(--lumo-space-xs);
  }

  :host([no-vertical-overlap][bottom-aligned]) [part='overlay'] {
    margin-block-end: var(--lumo-space-xs);
  }

  :host([theme~='align-left']) {
    text-align: left;
  }

  :host([theme~='align-right']) {
    text-align: right;
  }

  :host([theme~='align-center']) {
    text-align: center;
  }

  @media (forced-colors: active) {
    [part='overlay'] {
      outline: 3px solid;
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_select-value-button {
  :host {
    display: inline-block;
    position: relative;
    outline: none;
    white-space: nowrap;
    -webkit-user-select: none;
    user-select: none;
    min-width: 0;
    width: 0;
    font-family: var(--lumo-font-family);
    font-size: var(--vaadin-input-field-value-font-size, var(--lumo-font-size-m));
    padding: 0 0.25em;
    --_lumo-selected-item-height: var(--lumo-size-m);
    --_lumo-selected-item-padding: 0.5em;
  }

  ::slotted(*) {
    padding: var(--_lumo-selected-item-padding) 0 var(--_lumo-selected-item-padding) 0;
    flex: auto;
    min-height: var(--_lumo-selected-item-height);
    font-size: inherit;
  }

  ::slotted(*:hover) {
    background-color: transparent;
  }

  /* placeholder styles */
  ::slotted(*:not([selected])) {
    line-height: 1;
  }

  .vaadin-button-container {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: inherit;
    width: 100%;
    height: 100%;
    min-height: inherit;
    text-shadow: inherit;
  }

  [part='label'] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
    line-height: inherit;
  }
}

:root,
:host {
  --_lumo-vaadin-select-inject: 1;
  --_lumo-vaadin-select-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-button,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_mixins_field-base,
    lumo_components_select;

  --_lumo-vaadin-select-item-inject: 1;
  --_lumo-vaadin-select-item-inject-modules: lumo_components_item;

  --_lumo-vaadin-select-overlay-inject: 1;
  --_lumo-vaadin-select-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_mixins_menu-overlay-core,
    lumo_mixins_menu-overlay-ext,
    lumo_components_select-overlay;

  --_lumo-vaadin-select-list-box-inject: 1;
  --_lumo-vaadin-select-list-box-inject-modules: lumo_components_list-box;

  --_lumo-vaadin-select-value-button-inject: 1;
  --_lumo-vaadin-select-value-button-inject-modules: lumo_components_select-value-button;
}

:root,
:host {
  --_lumo-vaadin-grid-pro-edit-text-field-inject: 1;
  --_lumo-vaadin-grid-pro-edit-text-field-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-button,
    lumo_mixins_field-helper,
    lumo_mixins_field-base,
    lumo_mixins_grid-pro-editor;

  --_lumo-vaadin-grid-pro-edit-select-inject: 1;
  --_lumo-vaadin-grid-pro-edit-select-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-button,
    lumo_mixins_field-helper,
    lumo_mixins_field-base,
    lumo_mixins_grid-pro-editor,
    lumo_components_select,
    lumo_components_grid-pro-edit-select;

  --_lumo-vaadin-grid-pro-edit-checkbox-inject: 1;
  --_lumo-vaadin-grid-pro-edit-checkbox-inject-modules:
    lumo_mixins_checkable-field,
    lumo_components_checkbox;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_grid-pro {
  :host([navigating]) [part~='cell']:active::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    box-shadow: inset 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
  }

  [part~='editable-cell'],
  [part~='editable-cell'] ::slotted(vaadin-grid-cell-content) {
    cursor: var(--lumo-clickable-cursor);
  }

  [part~='editable-cell']:hover,
  [part~='editable-cell']:focus {
    background: var(--lumo-base-color) linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct));
  }

  /* Indicate editable cells */

  :host([theme~='highlight-editable-cells']) [part~='editable-cell'] {
    background: var(--lumo-base-color) linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct));
  }

  :host([theme~='highlight-editable-cells']) [part~='editable-cell']:hover,
  :host([theme~='highlight-editable-cells']) [part~='editable-cell']:focus {
    background: var(--lumo-base-color) linear-gradient(var(--lumo-contrast-10pct), var(--lumo-contrast-10pct));
  }

  /* Indicate read-only cells */

  /* prettier-ignore */
  :host([theme~='highlight-read-only-cells']) [tabindex]:not([part~='editable-cell']):not([part~='header-cell']):not([part~='footer-cell']) {
    background-image: repeating-linear-gradient(
      135deg,
      transparent,
      transparent 6px,
      var(--lumo-contrast-5pct) 6px,
      var(--lumo-contrast-5pct) 14px
    );
  }

  /* Loading editor cell styles are used by Flow GridPro */
  :host([loading-editor]) [part~='focused-cell']::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    box-shadow: inset 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
    animation: vaadin-grid-pro-loading-editor 1.4s infinite;
    opacity: 0;
  }

  @keyframes vaadin-grid-pro-loading-editor {
    50% {
      opacity: 1;
    }
  }

  [part~='updating-cell']::after {
    content: '';
    position: absolute;
    inset: var(--_cell-padding);
    margin: var(--_focus-ring-width);
    border-radius: 4px;
    background-size: max(4em, 50%);
    background-repeat: no-repeat;
    background-position: min(-200%, -4em) 0;
    background-image: linear-gradient(90deg, transparent, var(--lumo-contrast-10pct), transparent);
    animation: vaadin-grid-pro-updating-cell 1.3s ease-out infinite;
  }

  @keyframes vaadin-grid-pro-updating-cell {
    100% {
      background-position: max(300%, 8em) 0;
    }
  }

  :host([loading-editor]) [part~='focused-cell'] ::slotted(vaadin-grid-cell-content),
  [part~='updating-cell'] ::slotted(vaadin-grid-cell-content) {
    opacity: 0;
    pointer-events: none;
  }
}

:root,
:host {
  --_lumo-vaadin-grid-pro-inject: 1;
  --_lumo-vaadin-grid-pro-inject-modules:
    lumo_components_grid,
    lumo_components_grid-pro;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_grid-tree-toggle {
  :host {
    --vaadin-grid-tree-toggle-level-offset: 2em;
    display: inline-flex;
    max-width: 100%;
    align-items: center;
    vertical-align: middle;
    transform: translateX(calc(var(--lumo-space-s) * -1));
    -webkit-tap-highlight-color: transparent;
  }

  :host([hidden]) {
    display: none !important;
  }

  :host(:not([leaf])) {
    cursor: default;
  }

  #level-spacer,
  [part='toggle'] {
    flex: none;
  }

  #level-spacer {
    display: inline-block;
    width: calc(var(--_level, '0') * var(--vaadin-grid-tree-toggle-level-offset));
  }

  [part='toggle']::before {
    line-height: 1em; /* make icon font metrics not affect baseline */
    font-family: 'lumo-icons';
    display: inline-block;
    height: 100%;
  }

  :host(:not([expanded])) [part='toggle']::before {
    content: var(--lumo-icons-angle-right);
  }

  :host([expanded]) [part='toggle']::before {
    content: var(--lumo-icons-angle-right);
    transform: rotate(90deg);
  }

  :host([leaf]) [part='toggle'] {
    visibility: hidden;
  }

  slot {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  [part='toggle'] {
    display: inline-block;
    font-size: 1.5em;
    line-height: 1;
    width: 1em;
    height: 1em;
    text-align: center;
    color: var(--lumo-contrast-50pct);
    cursor: var(--lumo-clickable-cursor);
    /* Increase touch target area */
    padding: calc(1em / 3);
    margin: calc(1em / -3);
  }

  :host(:not([dir='rtl'])) [part='toggle'] {
    margin-right: 0;
  }

  @media (hover: hover) {
    :host(:hover) [part='toggle'] {
      color: var(--lumo-contrast-80pct);
    }
  }

  /* RTL specific styles */

  :host([dir='rtl']) {
    margin-left: 0;
    margin-right: calc(var(--lumo-space-s) * -1);
  }

  :host([dir='rtl']) [part='toggle'] {
    margin-left: 0;
  }

  :host([dir='rtl'][expanded]) [part='toggle']::before {
    transform: rotate(-90deg);
  }

  :host([dir='rtl']:not([expanded])) [part='toggle']::before,
  :host([dir='rtl'][expanded]) [part='toggle']::before {
    content: var(--lumo-icons-angle-left);
  }
}

:root,
:host {
  --_lumo-vaadin-grid-tree-toggle-inject: 1;
  --_lumo-vaadin-grid-tree-toggle-inject-modules: lumo_components_grid-tree-toggle;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */

:root,
:host {
  --_lumo-vaadin-grid-inject: 1;
  --_lumo-vaadin-grid-inject-modules: lumo_components_grid;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_horizontal-layout {
  :host([theme~='margin']) {
    margin: var(--vaadin-horizontal-layout-margin, var(--lumo-space-m));
  }

  :host([theme~='padding']) {
    padding: var(--vaadin-horizontal-layout-padding, var(--lumo-space-m));
  }

  :host([theme~='spacing-xs']) {
    gap: var(--lumo-space-xs);
  }

  :host([theme~='spacing-s']) {
    gap: var(--lumo-space-s);
  }

  :host([theme~='spacing']) {
    gap: var(--vaadin-horizontal-layout-gap, var(--lumo-space-m));
  }

  :host([theme~='spacing-l']) {
    gap: var(--lumo-space-l);
  }

  :host([theme~='spacing-xl']) {
    gap: var(--lumo-space-xl);
  }
}

:root,
:host {
  --_lumo-vaadin-horizontal-layout-inject: 1;
  --_lumo-vaadin-horizontal-layout-inject-modules: lumo_components_horizontal-layout;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_icon {
  :host {
    width: var(--vaadin-icon-size, var(--lumo-icon-size-m));
    height: var(--vaadin-icon-size, var(--lumo-icon-size-m));
  }
}

:root,
:host {
  --_lumo-vaadin-icon-inject: 1;
  --_lumo-vaadin-icon-inject-modules: lumo_components_icon;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_number-field {
  :host([readonly]) [part$='button'] {
    pointer-events: none;
  }

  :host([step-buttons-visible]:not([theme~='align-right'])) ::slotted(input) {
    text-align: center;
  }

  :host(:not([disabled])) [part$='button'][disabled] {
    opacity: 0.2;
  }

  :host([step-buttons-visible]) [part='input-field'] {
    padding: 0;
  }

  [part~='decrease-button'],
  [part~='increase-button'] {
    cursor: pointer;
    width: 1.5em;
    height: 1.5em;
    -webkit-user-select: none;
    user-select: none;
  }

  [part~='decrease-button']::before,
  [part~='increase-button']::before {
    margin-top: 0.25em;
  }

  [part~='decrease-button']::before {
    content: var(--lumo-icons-minus);
  }

  [part~='increase-button']::before {
    content: var(--lumo-icons-plus);
  }

  /* RTL specific styles */
  :host([dir='rtl']) [part='input-field'] {
    direction: ltr;
  }

  :host([dir='rtl']:not([theme~='align-right'])) ::slotted(input) {
    --_lumo-text-field-overflow-mask-image: linear-gradient(to left, transparent, #000 1.25em);
  }
}

:root,
:host {
  --_lumo-vaadin-integer-field-inject: 1;
  --_lumo-vaadin-integer-field-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-button,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_mixins_field-base,
    lumo_components_number-field;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */

:root,
:host {
  --_lumo-vaadin-item-inject: 1;
  --_lumo-vaadin-item-inject-modules: lumo_components_item;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */

:root,
:host {
  --_lumo-vaadin-list-box-inject: 1;
  --_lumo-vaadin-list-box-inject-modules: lumo_components_list-box;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_login-overlay-wrapper {
  :host {
    inset: 0;
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-m);
    line-height: var(--lumo-line-height-m);
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  [part='overlay'] {
    outline: none;
    background: none;
    border-radius: 0;
    box-shadow: none;
    width: 100%;
    height: 100%;
  }

  [part='card'] {
    max-width: 100%;
    box-sizing: border-box;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    width: calc(var(--lumo-size-m) * 10);
    background: var(--lumo-base-color) linear-gradient(var(--lumo-tint-5pct), var(--lumo-tint-5pct));
    border-radius: var(--lumo-border-radius-l);
    box-shadow: var(--lumo-box-shadow-s);
    margin: var(--lumo-space-s);
    height: auto;
  }

  [part='brand'] {
    box-sizing: border-box;
    overflow: hidden;
    flex-grow: 1;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: var(--lumo-space-l) var(--lumo-space-xl) var(--lumo-space-l) var(--lumo-space-l);
    background-color: var(--lumo-primary-color);
    color: var(--lumo-primary-contrast-color);
    min-height: calc(var(--lumo-size-m) * 5);
  }

  ::slotted([slot='title']) {
    color: inherit;
    margin: 0;
    font-size: var(--lumo-font-size-xxxl);
    font-weight: 600;
    line-height: var(--lumo-line-height-xs);
  }

  [part='backdrop'] {
    background: var(--lumo-base-color) linear-gradient(var(--lumo-shade-5pct), var(--lumo-shade-5pct));
  }

  [part='description'] {
    line-height: var(--lumo-line-height-s);
    color: var(--lumo-tint-70pct);
    margin: 0.5em 0 0;
  }

  [part='content'] {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
  }

  ::slotted(vaadin-login-form-wrapper) {
    min-height: 100%;
    max-width: 100%;
  }

  /* Small screen */
  @media only screen and (max-width: 500px) {
    [part='overlay'],
    [part='content'] {
      height: 100%;
    }

    [part='content'] {
      min-height: 100%;
      background: var(--lumo-base-color);
      align-items: flex-start;
    }

    [part='card'],
    [part='overlay'] {
      width: 100%;
      border-radius: 0;
      box-shadow: none;
      margin: 0;
    }

    /* RTL styles */
    :host([dir='rtl']) [part='brand'] {
      padding: var(--lumo-space-l) var(--lumo-space-l) var(--lumo-space-l) var(--lumo-space-xl);
    }
  }

  /* Landscape small screen */
  @media only screen and (max-height: 600px) and (min-width: 600px) and (orientation: landscape) {
    [part='card'] {
      flex-direction: row;
      align-items: stretch;
      max-width: calc(var(--lumo-size-m) * 16);
      width: 100%;
    }

    [part='brand'],
    [part='form-wrapper'] {
      flex: auto;
      flex-basis: 0;
      box-sizing: border-box;
    }

    [part='brand'] {
      justify-content: flex-start;
    }

    [part='form-wrapper'] {
      padding: var(--lumo-space-l);
      overflow: auto;
    }

    ::slotted(vaadin-login-form-wrapper) {
      flex: 1;
      padding: 2px;
    }
  }

  /* Landscape really small screen */
  @media only screen and (max-height: 500px) and (min-width: 600px) and (orientation: landscape),
    only screen and (max-width: 600px) and (min-width: 600px) and (orientation: landscape) {
    [part='content'] {
      height: 100vh;
    }

    [part='card'] {
      margin: 0;
      width: 100%;
      max-width: none;
      height: 100%;
      flex: auto;
      border-radius: 0;
      box-shadow: none;
    }

    [part='form-wrapper'] {
      height: 100%;
      overflow: auto;
    }
  }

  /* Handle iPhone X notch */
  @media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) {
    [part='card'] {
      padding-right: env(safe-area-inset-right);
      padding-left: env(safe-area-inset-left);
    }

    [part='brand'] {
      margin-left: calc(env(safe-area-inset-left) * -1);
      padding-left: calc(var(--lumo-space-l) + env(safe-area-inset-left));
    }

    /* RTL styles */
    :host([dir='rtl']) [part='card'] {
      padding-left: env(safe-area-inset-right);
      padding-right: env(safe-area-inset-left);
    }

    :host([dir='rtl']) [part='brand'] {
      margin-right: calc(env(safe-area-inset-left) * -1);
      padding-right: calc(var(--lumo-space-l) + env(safe-area-inset-left));
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_login-form-wrapper {
  :host {
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding: var(--lumo-space-l);
    overflow: hidden;
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-m);
    line-height: var(--lumo-line-height-m);
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    width: calc(var(--lumo-size-m) * 10);
    max-width: 100%;
    background: var(--lumo-base-color) linear-gradient(var(--lumo-tint-5pct), var(--lumo-tint-5pct));
  }

  :host([hidden]) {
    display: none !important;
  }

  ::slotted(form) {
    display: flex;
    flex-direction: column;
  }

  ::slotted([slot='form-title']) {
    margin: 0;
    margin-top: calc(var(--lumo-font-size-xxxl) - var(--lumo-font-size-xxl));
    color: var(--lumo-header-text-color);
    font-size: var(--lumo-font-size-xxl);
    font-weight: 600;
    line-height: var(--lumo-line-height-xs);
  }

  [part='error-message'] {
    position: relative;
    background-color: var(--lumo-error-color-10pct);
    padding: var(--lumo-space-m);
    border-radius: var(--lumo-border-radius-m);
    margin-top: var(--lumo-space-m);
    margin-bottom: var(--lumo-space-s);
    color: var(--lumo-error-text-color);
  }

  strong {
    font-weight: 600;
  }

  ::slotted([slot='submit']) {
    margin-top: var(--lumo-space-l);
    margin-bottom: var(--lumo-space-s);
  }

  ::slotted([slot='forgot-password']) {
    margin: var(--lumo-space-s) auto;
  }

  :host(:not([dir='rtl'])) [part='error-message'] {
    padding-left: var(--lumo-size-m);
  }

  :host([dir='rtl']) [part='error-message'] {
    padding-right: var(--lumo-size-m);
  }

  [part='error-message']::before {
    content: var(--lumo-icons-error);
    font-family: lumo-icons;
    font-size: var(--lumo-icon-size-m);
    position: absolute;
    width: var(--lumo-size-m);
    height: 1em;
    line-height: 1;
    text-align: center;
  }

  :host(:not([dir='rtl'])) [part='error-message']::before {
    /* Visual centering */
    margin-left: calc(var(--lumo-size-m) * -0.95);
  }

  :host([dir='rtl']) [part='error-message']::before {
    /* Visual centering */
    margin-right: calc(var(--lumo-size-m) * -0.95);
  }

  [part='error-message-title'] {
    display: block;
    margin: 0 0 0.25em;
    color: inherit;
    line-height: var(--lumo-line-height-xs);
  }

  [part='error-message-description'] {
    font-size: var(--lumo-font-size-s);
    line-height: var(--lumo-line-height-s);
    margin: 0;
    opacity: 0.9;
  }

  [part='footer'] {
    font-size: var(--lumo-font-size-xs);
    line-height: var(--lumo-line-height-s);
    color: var(--lumo-secondary-text-color);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_password-field-button {
  :host {
    position: absolute;
    right: 0;
    top: 0;
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    min-width: auto;
    background: transparent;
    outline: none;
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_password-field {
  [part~='reveal-button']::before {
    content: var(--lumo-icons-eye);
  }

  :host([password-visible]) [part~='reveal-button']::before {
    content: var(--lumo-icons-eye-disabled);
  }

  /* Make it easy to hide the button across the whole app */
  [part~='reveal-button'] {
    position: relative;
    display: var(--lumo-password-field-reveal-button-display, block);
  }

  [part~='reveal-button'][hidden] {
    display: none !important;
  }
}

:root,
:host {
  --_lumo-vaadin-password-field-inject: 1;
  --_lumo-vaadin-password-field-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-button,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_mixins_field-base,
    lumo_components_password-field;

  --_lumo-vaadin-password-field-button-inject: 1;
  --_lumo-vaadin-password-field-button-inject-modules:
    lumo_components_button,
    lumo_components_password-field-button;
}

:root,
:host {
  --_lumo-vaadin-login-form-wrapper-inject: 1;
  --_lumo-vaadin-login-form-wrapper-inject-modules: lumo_components_login-form-wrapper;
}

:root,
:host {
  --_lumo-vaadin-login-overlay-wrapper-inject: 1;
  --_lumo-vaadin-login-overlay-wrapper-inject-modules:
    lumo_mixins_overlay,
    lumo_components_login-overlay-wrapper;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
:where(vaadin-markdown) {
  /* Use the margins defined by vaadin-markdown base styles */
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  hr {
    margin-block: revert-layer;
  }

  code {
    background-color: var(--lumo-contrast-10pct);
  }
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_map {
  :host {
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-m);
    --vaadin-map-controls-inset: var(--lumo-space-xs);
    --vaadin-map-icon-zoom-in: var(--lumo-icons-plus);
    --vaadin-map-icon-zoom-out: var(--lumo-icons-minus);
    --vaadin-map-icon-compass: var(--lumo-icons-arrow-up);
    --vaadin-map-icon-overview-map-collapse: var(--lumo-icons-angle-down);
    --vaadin-map-icon-overview-map-expand: var(--lumo-icons-angle-up);
    --vaadin-map-icon-close: var(--lumo-icons-cross);
    --vaadin-map-icon-attribution-collapse: var(--lumo-icons-angle-right);
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
  }

  :host(:not([theme~='no-border'])) {
    border-radius: var(--vaadin-map-border-radius, var(--lumo-border-radius-l));
  }

  :host(:not([theme~='no-border']))::before {
    border: 1px solid var(--vaadin-map-border-color, var(--lumo-contrast-10pct));
  }

  :host([focus-ring]) {
    outline: none;
    box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
  }

  .ol-overviewmap button span:empty::before,
  .ol-zoom-in:empty::before,
  .ol-zoom-out:empty::before,
  .ol-compass:empty::before,
  .ol-full-screen button:empty::before,
  .ol-full-screen-true:empty::before {
    background: transparent;
    mask-image: none;
    display: inline;
    width: auto;
    height: auto;
  }

  .ol-control:not(.ol-uncollapsible):hover {
    box-shadow: var(--lumo-box-shadow-s);
    background-color: var(--lumo-shade-20pct);
  }

  .ol-scale-bar-inner {
    border-radius: var(--lumo-border-radius-s);
  }

  .ol-compass:empty::before {
    content: var(--vaadin-map-icon-compass);
  }

  .ol-full-screen {
    height: var(--lumo-size-s);
  }

  .ol-full-screen button:empty::before {
    content: var(--vaadin-map-icon-fullscreen, '\2922');
  }

  .ol-full-screen .ol-full-screen-true:empty::before {
    content: var(--vaadin-map-icon-close, '\00D7');
  }

  .ol-overviewmap button span:empty::before {
    content: var(--vaadin-map-icon-overview-map-collapse);
  }

  .ol-overviewmap.ol-collapsed button span:empty::before {
    content: var(--vaadin-map-icon-overview-map-expand);
  }

  .ol-overviewmap-map {
    margin: var(--lumo-space-xs);
    border-radius: var(--lumo-border-radius-s);
  }

  .ol-overviewmap:not(.ol-collapsed),
  .ol-overviewmap:not(.ol-collapsed):hover {
    background-color: var(--lumo-base-color);
    box-shadow: var(--lumo-box-shadow-s);
    transition: 0.15s box-shadow;
  }

  .ol-overviewmap.ol-collapsed button {
    rotate: none;
  }

  .ol-zoomslider button {
    height: var(--lumo-space-m);
  }

  .ol-zoomslider:hover button {
    box-shadow: var(--lumo-box-shadow-s);
  }

  .ol-control,
  .ol-scale-bar,
  .ol-scale-line {
    margin: var(--lumo-space-xs);
  }

  .ol-control {
    border-radius: var(--lumo-border-radius-m);
    transition:
      0.15s box-shadow,
      0.15s background-color;
    -webkit-backdrop-filter: blur(8px);
  }

  .ol-control:hover {
    background-color: var(--lumo-base-color);
  }

  .ol-control button {
    width: var(--vaadin-map-control-size, var(--lumo-size-s));
    height: var(--vaadin-map-control-size, var(--lumo-size-s));
    border-radius: inherit;
    font-family: 'lumo-icons';
    font-size: var(--lumo-icon-size-s);
    font-weight: 400;
  }

  .ol-control button,
  .ol-attribution:not(.ol-uncollapsible) ul {
    display: block;
    background-color: var(--lumo-base-color);
    color: var(--lumo-body-text-color);
  }

  .ol-control button:hover {
    color: var(--lumo-primary-text-color);
  }

  .ol-control button:active {
    background: var(--lumo-base-color) linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct));
  }

  .ol-control button:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
  }

  .ol-zoom-in:empty::before {
    content: var(--vaadin-map-icon-zoom-in);
  }

  .ol-zoom-out:empty::before {
    content: var(--vaadin-map-icon-zoom-out);
  }

  .ol-attribution.ol-uncollapsible {
    border-radius: var(--lumo-border-radius-m) 0 0 0;
  }

  .ol-attribution button span:empty::before {
    content: var(--vaadin-map-icon-attribution-collapse, '\\25B8');
  }

  .ol-attribution.ol-collapsed button span:empty::before {
    content: var(--vaadin-map-icon-attribution-expand, '\\2139');
  }

  .ol-attribution ul {
    font-size: var(--lumo-font-size-xxs);
    color: var(--lumo-secondary-text-color);
    padding: var(--lumo-space-xs) var(--lumo-space-s);
    cursor: default;
  }

  .ol-attribution:not(.ol-uncollapsible) ul {
    background-color: var(--lumo-base-color);
  }
}

:root,
:host {
  --_lumo-vaadin-map-inject: 1;
  --_lumo-vaadin-map-inject-modules: lumo_components_map;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
:where(:root),
:where(:host) {
  --vaadin-master-detail-layout-backdrop: var(
    --lumo-shade-20pct
  );
  --vaadin-master-detail-layout-detail-background: var(
    --lumo-base-color
  );
  --vaadin-master-detail-layout-detail-shadow:
    0 0 0 1px var(--lumo-shade-5pct),
    var(--lumo-box-shadow-m);
  --vaadin-master-detail-layout-border-color: var(
    --lumo-contrast-10pct
  );
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_menu-bar-button {
  :host {
    margin-block: calc(var(--lumo-space-xs) / 2);
    margin-right: calc(var(--lumo-space-xs) / 2);
    margin-left: 0;
    border-radius: 0;
  }

  [part='label'] {
    width: 100%;
  }

  /* NOTE(web-padawan): avoid using shorthand padding property for IE11 */
  [part='label'] ::slotted(vaadin-menu-bar-item) {
    justify-content: center;
    background-color: transparent;
    height: var(--lumo-button-size);
    margin: 0 calc((var(--lumo-size-m) / 3 + var(--lumo-border-radius-m) / 2) * -1);
    padding-left: calc(var(--lumo-size-m) / 3 + var(--lumo-border-radius-m) / 2);
    padding-right: calc(var(--lumo-size-m) / 3 + var(--lumo-border-radius-m) / 2);
  }

  :host([theme~='small']) [part='label'] ::slotted(vaadin-menu-bar-item) {
    min-height: var(--lumo-size-s);
    margin: 0 calc((var(--lumo-size-s) / 3 + var(--lumo-border-radius-m) / 2) * -1);
    padding-left: calc(var(--lumo-size-s) / 3 + var(--lumo-border-radius-m) / 2);
    padding-right: calc(var(--lumo-size-s) / 3 + var(--lumo-border-radius-m) / 2);
  }

  :host([theme~='tertiary']) [part='label'] ::slotted(vaadin-menu-bar-item) {
    margin: 0 calc((var(--lumo-button-size) / 6) * -1);
    padding-left: calc(var(--lumo-button-size) / 6);
    padding-right: calc(var(--lumo-button-size) / 6);
  }

  :host([theme~='tertiary-inline']) {
    margin-top: calc(var(--lumo-space-xs) / 2);
    margin-bottom: calc(var(--lumo-space-xs) / 2);
    margin-right: calc(var(--lumo-space-xs) / 2);
  }

  :host([theme~='tertiary-inline']) [part='label'] ::slotted(vaadin-menu-bar-item) {
    margin: 0;
    padding: 0;
  }

  :host([first-visible]) {
    border-radius: var(--lumo-border-radius-m) 0 0 var(--lumo-border-radius-m);

    /* Needed to retain the focus-ring with border-radius */
    margin-left: calc(var(--lumo-space-xs) / 2);
  }

  :host([last-visible]),
  :host([slot='overflow']) {
    border-radius: 0 var(--lumo-border-radius-m) var(--lumo-border-radius-m) 0;
  }

  :host([theme~='tertiary']),
  :host([theme~='tertiary-inline']) {
    border-radius: var(--lumo-border-radius-m);
  }

  :host([slot='overflow']) {
    min-width: var(--lumo-button-size);
    margin-inline-end: 0;
    padding-left: calc(var(--lumo-button-size) / 4);
    padding-right: calc(var(--lumo-button-size) / 4);
  }

  :host([slot='overflow']) ::slotted(*) {
    font-size: var(--lumo-font-size-xl);
  }

  :host([slot='overflow']) [part='prefix'],
  :host([slot='overflow']) [part='suffix'] {
    margin-left: 0;
    margin-right: 0;
  }

  :host([theme~='dropdown-indicators']:not([slot='overflow']):not([theme~='icon'])[aria-haspopup]) [part='suffix'] {
    margin-inline-start: 0;
    width: 1em;
    height: 1em;
    line-height: 1;
    font-size: var(--lumo-icon-size-s);
    position: relative;
    inset-inline-start: 0.15em;
  }

  /* prettier-ignore */
  :host([theme~='dropdown-indicators']:not([slot='overflow']):not([theme~='icon'])[aria-haspopup]) [part='suffix']::after {
    font-family: lumo-icons;
    content: var(--lumo-icons-dropdown);
  }

  /* prettier-ignore */
  :host([theme~='dropdown-indicators']:not([slot='overflow']):not([theme~='icon'])[theme~='tertiary'][aria-haspopup]) [part='suffix'] {
    inset-inline-start: 0.05em;
  }

  /* prettier-ignore */
  :host([theme~='dropdown-indicators']:not([slot='overflow']):not([theme~='icon'])[theme~='tertiary-inline'][aria-haspopup]) [part='suffix'] {
    inset-inline-start: 0;
  }

  /* RTL styles */
  :host([dir='rtl']) {
    margin-left: calc(var(--lumo-space-xs) / 2);
    margin-right: 0;
    border-radius: 0;
  }

  :host([dir='rtl'][first-visible]) {
    border-radius: 0 var(--lumo-border-radius-m) var(--lumo-border-radius-m) 0;
    margin-right: calc(var(--lumo-space-xs) / 2);
  }

  :host([dir='rtl'][last-visible]),
  :host([dir='rtl'][slot='overflow']) {
    border-radius: var(--lumo-border-radius-m) 0 0 var(--lumo-border-radius-m);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_menu-bar-item {
  [part='content'] {
    display: flex;
    /* tweak to inherit centering from menu bar button */
    align-items: inherit;
    justify-content: inherit;
  }

  [part='content'] ::slotted(vaadin-icon) {
    width: var(--lumo-icon-size-m);
    height: var(--lumo-icon-size-m);
  }

  [part='content'] ::slotted(vaadin-icon[icon^='vaadin:']) {
    padding: var(--lumo-space-xs);
    box-sizing: border-box !important;
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_menu-bar-overlay {
  :host(:first-of-type) {
    padding-top: var(--lumo-space-xs);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_menu-bar {
  :host {
    display: block;
    min-width: 0;
  }

  :host([hidden]) {
    display: none !important;
  }

  [part='container'] {
    position: relative;
    display: flex;
    width: 100%;
    flex-wrap: nowrap;
    overflow: hidden;
  }

  :host([has-single-button]) ::slotted(vaadin-menu-bar-button) {
    border-radius: var(--lumo-border-radius-m);
  }

  :host([theme~='end-aligned']) ::slotted(vaadin-menu-bar-button[first-visible]),
  :host([theme~='end-aligned'][has-single-button]) ::slotted(vaadin-menu-bar-button) {
    margin-inline-start: auto;
  }
}

:root,
:host {
  --_lumo-vaadin-menu-bar-inject: 1;
  --_lumo-vaadin-menu-bar-inject-modules: lumo_components_menu-bar;

  --_lumo-vaadin-menu-bar-overlay-inject: 1;
  --_lumo-vaadin-menu-bar-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_mixins_menu-overlay-core,
    lumo_mixins_menu-overlay-ext,
    lumo_components_context-menu-overlay,
    lumo_components_menu-bar-overlay;

  --_lumo-vaadin-menu-bar-list-box-inject: 1;
  --_lumo-vaadin-menu-bar-list-box-inject-modules:
    lumo_components_list-box,
    lumo_components_context-menu-list-box;

  --_lumo-vaadin-menu-bar-item-inject: 1;
  --_lumo-vaadin-menu-bar-item-inject-modules:
    lumo_components_item,
    lumo_components_context-menu-item,
    lumo_components_menu-bar-item;

  --_lumo-vaadin-menu-bar-button-inject: 1;
  --_lumo-vaadin-menu-bar-button-inject-modules:
    lumo_components_button,
    lumo_components_menu-bar-button;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_message-input {
  :host {
    align-items: flex-start;
    box-sizing: border-box;
    display: flex;
    max-height: 50vh;
    overflow: hidden;
    flex-shrink: 0;
    padding: var(--lumo-space-s) var(--lumo-space-m);
  }

  :host([hidden]) {
    display: none !important;
  }

  ::slotted([slot='button']) {
    flex-shrink: 0;
  }

  ::slotted([slot='textarea']) {
    align-self: stretch;
    flex-grow: 1;
    margin-inline-end: var(--lumo-space-s);
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */

:root,
:host {
  --_lumo-vaadin-message-input-button-inject: 1;
  --_lumo-vaadin-message-input-button-inject-modules: lumo_components_button;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_text-area {
  .vaadin-text-area-container {
    flex: auto;
  }

  /* The label, helper text and the error message should neither grow nor shrink. */
  [part='label'],
  [part='helper-text'],
  [part='error-message'] {
    flex: none;
  }

  ::slotted(textarea) {
    appearance: none;
    flex: auto;
    overflow: hidden;
    width: 100%;
    height: 100%;
    outline: none;
    resize: none;
    margin: 0;
    padding: 0 0.25em;
    border: 0;
    border-radius: 0;
    min-width: 0;
    font: inherit;
    font-size: 1em;
    line-height: normal;
    color: inherit;
    background-color: transparent;
    /* Disable default invalid style in Firefox */
    box-shadow: none;
  }

  /* Override styles from <vaadin-input-container> */
  [part='input-field'] ::slotted(textarea) {
    align-self: stretch;
    white-space: pre-wrap;
    line-height: inherit;
    --_lumo-text-field-overflow-mask-image: none;
  }

  [part='input-field'] ::slotted(:not(textarea)) {
    align-self: flex-start;
  }

  /* Workaround https://bugzilla.mozilla.org/show_bug.cgi?id=1739079 */
  :host([disabled]) ::slotted(textarea) {
    user-select: none;
  }

  [part='input-field'],
  [part='input-field'] ::slotted(textarea) {
    height: auto;
    box-sizing: border-box;
    min-height: 0;
  }

  [part='input-field'] {
    flex: auto;
    overflow: auto;
    /* Equal to the implicit padding in vaadin-text-field */
    padding-top: calc((var(--lumo-text-field-size) - 1em * var(--lumo-line-height-s)) / 2);
    padding-bottom: calc((var(--lumo-text-field-size) - 1em * var(--lumo-line-height-s)) / 2);
    transition: background-color 0.1s;
    line-height: var(--lumo-line-height-s);
  }

  :host(:not([readonly])) [part='input-field']::after {
    display: none;
  }

  :host([readonly]) [part='input-field'] {
    border: var(--vaadin-input-field-readonly-border, 1px dashed var(--lumo-contrast-30pct));
  }

  :host([readonly]) [part='input-field']::after {
    border: none;
  }

  :host(:hover:not([readonly]):not([focused]):not([invalid])) [part='input-field'] {
    background-color: var(--lumo-contrast-20pct);
  }

  @media (pointer: coarse) {
    :host(:hover:not([readonly]):not([focused]):not([invalid])) [part='input-field'] {
      background-color: var(--lumo-contrast-10pct);
    }

    :host(:active:not([readonly]):not([focused])) [part='input-field'] {
      background-color: var(--lumo-contrast-20pct);
    }
  }

  /* Use sticky positioning to keep prefix/suffix/clear button visible when scrolling textarea container */
  [part='input-field'] ::slotted([slot$='fix']),
  [part~='clear-button'] {
    position: sticky;
    top: 0;
    align-self: flex-start;
  }

  [part='input-field'] ::slotted(vaadin-icon[slot$='fix']),
  [part~='clear-button'] {
    /* Vertically align icon prefix/suffix/clear button with the first line of text */
    top: calc((var(--lumo-icon-size-m) - 1em * var(--lumo-line-height-s)) / -2);
    margin-top: calc((var(--lumo-icon-size-m) - 1em * var(--lumo-line-height-s)) / -2);
    /* Reduce effective height to match line height of native textarea, so icons don't increase component size when using single row */
    margin-bottom: calc((var(--lumo-icon-size-m) - 1em * var(--lumo-line-height-s)) / -2);
  }
}

:root,
:host {
  --_lumo-vaadin-text-area-inject: 1;
  --_lumo-vaadin-text-area-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-button,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_mixins_field-base,
    lumo_components_text-area;
}

:root,
:host {
  --_lumo-vaadin-message-input-inject: 1;
  --_lumo-vaadin-message-input-inject-modules: lumo_components_message-input;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_message {
  :host {
    color: var(--lumo-body-text-color);
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-m);
    line-height: var(--lumo-line-height-m);
    padding: var(--vaadin-message-padding, var(--lumo-space-s) var(--lumo-space-m));
    gap: var(--vaadin-message-gap, 0);
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    -webkit-text-size-adjust: 100%;
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
  }

  :host(:is(:focus-visible, [focus-ring])) {
    outline: none;
  }

  [part='header'] {
    min-height: calc(var(--lumo-font-size-m) * var(--lumo-line-height-m));
  }

  [part='name'] {
    color: var(--vaadin-message-name-color, inherit);
    margin-inline-end: var(--lumo-space-s);
  }

  [part='name']:empty {
    margin-inline-end: 0;
  }

  [part='message'] {
    color: var(--vaadin-message-text-color, inherit);
  }

  [part='time'] {
    color: var(--vaadin-message-time-color, var(--lumo-secondary-text-color));
    font-size: var(--vaadin-message-time-font-size, var(--lumo-font-size-s));
  }

  ::slotted([slot='avatar']) {
    --vaadin-avatar-outline-width: 0;
    --vaadin-avatar-size: var(--lumo-size-m);
    margin-top: calc(var(--lumo-space-s));
    margin-inline-end: calc(var(--lumo-space-m));
  }

  :host(:focus-visible) {
    box-shadow: inset 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
  }

  [part='attachments'] {
    margin-block: var(--lumo-space-xs);
  }

  [part~='attachment'] {
    color: var(--lumo-body-text-color);
    position: relative;

    & [part='attachment-icon'] {
      color: var(--lumo-secondary-text-color);
      background: var(--lumo-contrast-5pct);
      --vaadin-icon-size: var(--lumo-icon-size-s);
    }

    & [part='attachment-name'] {
      font-size: var(--lumo-font-size-s);
    }

    &::after {
      content: '';
      position: absolute;
      z-index: 1;
      inset: 0;
      background: currentColor;
      border-radius: inherit;
      opacity: 0;
      pointer-events: none;
      filter: blur(8px);
    }

    &:hover::after {
      opacity: 0.02;
    }

    &:focus-visible {
      outline: none;
      box-shadow:
        0 0 0 calc(1px * var(--_focus-ring-gap-on, 0)) var(--_focus-ring-gap-color, var(--lumo-base-color)),
        0 0 0 calc(var(--_focus-ring-width) + 1px * var(--_focus-ring-gap-on, 0)) var(--_focus-ring-color);
    }

    &:active::after {
      opacity: 0.1;
      transition-duration: 0s, 0s;
      transform: scale(0);
    }
  }
}

:root,
:host {
  --_lumo-vaadin-message-inject: 1;
  --_lumo-vaadin-message-inject-modules: lumo_components_message;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_multi-select-combo-box-chip {
  :host {
    display: inline-flex;
    align-items: center;
    align-self: center;
    white-space: nowrap;
    box-sizing: border-box;
    font-size: var(--lumo-font-size-xxs);
    line-height: 1;
    color: var(--lumo-body-text-color);
    border-radius: var(--lumo-border-radius-s);
    background-color: var(--lumo-contrast-20pct);
    cursor: var(--lumo-clickable-cursor);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  :host([hidden]),
  :host(:is([readonly], [disabled], [slot='overflow'])) [part='remove-button'] {
    display: none !important;
  }

  :host([disabled]) {
    background-color: var(--lumo-contrast-10pct);
  }

  :host([focused]) [part='remove-button'] {
    color: inherit;
  }

  :host([slot='overflow']) {
    position: relative;
    min-width: var(--lumo-size-xxs);
    margin-inline-start: var(--lumo-space-s);
  }

  :host([slot='overflow'])::before,
  :host([slot='overflow'])::after {
    position: absolute;
    content: '';
    width: 100%;
    height: 100%;
    border-left: calc(var(--lumo-space-s) / 4) solid var(--lumo-contrast-30pct);
    border-radius: var(--lumo-border-radius-s);
  }

  :host([slot='overflow'])::before {
    left: calc(-1 * var(--lumo-space-s) / 2);
  }

  :host([slot='overflow'])::after {
    left: calc(-1 * var(--lumo-space-s));
  }

  :host([count='2']) {
    margin-inline-start: calc(var(--lumo-space-s) / 2);
  }

  :host([count='2'])::after {
    display: none;
  }

  :host([count='1']) {
    margin-inline-start: 0;
  }

  :host([count='1'])::before,
  :host([count='1'])::after {
    display: none;
  }

  [part='label'] {
    font-weight: 500;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  [part='remove-button'] {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: -0.3125em;
    margin-bottom: -0.3125em;
    margin-inline-start: auto;
    width: 1.25em;
    height: 1.25em;
    font-size: 1.5em;
    transition: none;
  }

  [part='remove-button']::before {
    content: var(--lumo-icons-cross);
  }

  :host([disabled]) [part='label'] {
    color: var(--lumo-disabled-text-color);
    -webkit-text-fill-color: var(--lumo-disabled-text-color);
    pointer-events: none;
  }

  @media (forced-colors: active) {
    :host {
      outline: 1px solid;
      outline-offset: -1px;
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_multi-select-combo-box-container {
  #wrapper {
    display: flex;
    width: 100%;
    min-width: 0;
  }

  :host([auto-expand-vertically]) {
    padding-block: var(--lumo-space-xs);
  }

  :host([auto-expand-vertically]) #wrapper {
    flex-wrap: wrap;
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_multi-select-combo-box-item {
  @media (any-hover: hover) {
    :host(:hover[readonly]) {
      background-color: transparent;
      cursor: default;
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_multi-select-combo-box-overlay {
  :host {
    --_vaadin-multi-select-combo-box-items-container-border-width: var(--lumo-space-xs);
    --_vaadin-multi-select-combo-box-items-container-border-style: solid;
  }

  #overlay {
    width: var(
      --vaadin-multi-select-combo-box-overlay-width,
      var(--_vaadin-multi-select-combo-box-overlay-default-width, auto)
    );
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_multi-select-combo-box {
  :host {
    max-width: 100%;
    --input-min-width: var(--vaadin-multi-select-combo-box-input-min-width, 4em);
    --_chip-min-width: var(--vaadin-multi-select-combo-box-chip-min-width, 50px);
    --_wrapper-gap: 0;
  }

  :host([opened]) {
    pointer-events: auto;
  }

  #chips {
    display: flex;
    align-items: center;
  }

  ::slotted(input) {
    box-sizing: border-box;
    flex: 1 0 var(--input-min-width);
  }

  ::slotted([slot='chip']),
  ::slotted([slot='overflow']) {
    flex: 0 1 auto;
  }

  ::slotted([slot='chip']) {
    overflow: hidden;
  }

  :host(:is([readonly], [disabled])) ::slotted(input) {
    flex-grow: 0;
    flex-basis: 0;
    padding: 0;
  }

  :host([auto-expand-vertically]) #chips {
    display: contents;
  }

  :host([auto-expand-horizontally]) [class$='container'] {
    width: auto;
  }

  :host([has-value]) {
    padding-inline-start: 0;
  }

  [part='label'] {
    flex-shrink: 0;
  }

  /* Override input-container styles */
  [part='input-field'] ::slotted([slot='chip']),
  [part='input-field'] ::slotted([slot='overflow']) {
    min-height: auto;
    padding: 0.3125em calc(0.5em + var(--lumo-border-radius-s) / 4);
    color: var(--lumo-body-text-color);
    mask-image: none;
  }

  :host([auto-expand-vertically]) ::slotted([slot='chip']) {
    margin-block: calc(var(--lumo-space-xs) / 2);
  }

  ::slotted([slot='chip']:not([readonly]):not([disabled])) {
    padding-inline-end: 0;
  }

  :host([auto-expand-vertically]) ::slotted([slot='input']) {
    min-height: calc(var(--lumo-text-field-size, var(--lumo-size-m)) - 2 * var(--lumo-space-xs));
  }

  ::slotted([slot='chip']:not(:last-of-type)),
  ::slotted([slot='overflow']:not(:last-of-type)) {
    margin-inline-end: var(--lumo-space-xs);
  }

  ::slotted([slot='chip'][focused]) {
    background-color: var(--vaadin-selection-color, var(--lumo-primary-color));
    color: var(--lumo-primary-contrast-color);
  }

  [part~='toggle-button']::before {
    content: var(--lumo-icons-dropdown);
  }

  :host([readonly][has-value]) [part~='toggle-button'] {
    color: var(--lumo-contrast-60pct);
    cursor: var(--lumo-clickable-cursor);
  }
}

:root,
:host {
  --_lumo-vaadin-multi-select-combo-box-container-inject: 1;
  --_lumo-vaadin-multi-select-combo-box-container-inject-modules:
    lumo_components_input-container,
    lumo_components_multi-select-combo-box-container;

  --_lumo-vaadin-multi-select-combo-box-overlay-inject: 1;
  --_lumo-vaadin-multi-select-combo-box-overlay-inject-modules:
    lumo_mixins_loader,
    lumo_mixins_combo-box-loader,
    lumo_mixins_overlay,
    lumo_mixins_menu-overlay-core,
    lumo_mixins_combo-box-overlay,
    lumo_components_multi-select-combo-box-overlay;

  --_lumo-vaadin-multi-select-combo-box-chip-inject: 1;
  --_lumo-vaadin-multi-select-combo-box-chip-inject-modules:
    lumo_mixins_field-button,
    lumo_components_multi-select-combo-box-chip;

  --_lumo-vaadin-multi-select-combo-box-item-inject: 1;
  --_lumo-vaadin-multi-select-combo-box-item-inject-modules:
    lumo_components_item,
    lumo_components_combo-box-item,
    lumo_components_multi-select-combo-box-item;

  --_lumo-vaadin-multi-select-combo-box-inject: 1;
  --_lumo-vaadin-multi-select-combo-box-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-button,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_mixins_field-base,
    lumo_components_multi-select-combo-box;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_notification-card {
  :host {
    display: block;
    position: relative;
    margin: var(--lumo-space-s);
  }

  [part='overlay'] {
    pointer-events: auto;
    background: var(--lumo-base-color) linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct));
    border-radius: var(--lumo-border-radius-l);
    box-shadow:
      0 0 0 1px var(--lumo-contrast-10pct),
      var(--lumo-box-shadow-l);
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-m);
    font-weight: 400;
    line-height: var(--lumo-line-height-s);
    letter-spacing: 0;
    text-transform: none;
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  [part='content'] {
    padding: var(--lumo-space-wide-l);
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  [part='content'] ::slotted(vaadin-button) {
    flex: none;
    margin: 0 calc(var(--lumo-space-s) * -1) 0 var(--lumo-space-m);
  }

  :host([slot^='middle']) {
    max-width: 80vw;
    margin: var(--lumo-space-s) auto;
  }

  :host([slot$='stretch']) {
    margin: 0;
  }

  :host([slot$='stretch']) [part='overlay'] {
    border-radius: 0;
  }

  @media (min-width: 421px) {
    :host(:not([slot$='stretch'])) {
      display: flex;
    }

    :host([slot$='end']) {
      justify-content: flex-end;
    }

    :host([slot^='middle']),
    :host([slot$='center']) {
      display: flex;
      justify-content: center;
    }
  }

  @keyframes lumo-notification-exit-fade-out {
    100% {
      opacity: 0;
    }
  }

  @keyframes lumo-notification-enter-fade-in {
    0% {
      opacity: 0;
    }
  }

  @keyframes lumo-notification-enter-slide-down {
    0% {
      transform: translateY(-200%);
      opacity: 0;
    }
  }

  @keyframes lumo-notification-exit-slide-up {
    100% {
      transform: translateY(-200%);
      opacity: 0;
    }
  }

  @keyframes lumo-notification-enter-slide-up {
    0% {
      transform: translateY(200%);
      opacity: 0;
    }
  }

  @keyframes lumo-notification-exit-slide-down {
    100% {
      transform: translateY(200%);
      opacity: 0;
    }
  }

  :host([slot='middle'][opening]) {
    animation: lumo-notification-enter-fade-in 300ms;
  }

  :host([slot='middle'][closing]) {
    animation: lumo-notification-exit-fade-out 300ms;
  }

  :host([slot^='top'][opening]) {
    animation: lumo-notification-enter-slide-down 300ms;
  }

  :host([slot^='top'][closing]) {
    animation: lumo-notification-exit-slide-up 300ms;
  }

  :host([slot^='bottom'][opening]) {
    animation: lumo-notification-enter-slide-up 300ms;
  }

  :host([slot^='bottom'][closing]) {
    animation: lumo-notification-exit-slide-down 300ms;
  }

  :host([theme~='success']) {
    --_focus-ring-gap-color: var(--lumo-success-color);
    --vaadin-focus-ring-color: var(--lumo-success-contrast-color);
  }

  :host([theme~='warning']) {
    --_focus-ring-gap-color: var(--lumo-warning-color);
    --vaadin-focus-ring-color: var(--lumo-warning-contrast-color);
  }

  :host([theme~='error']) {
    --_focus-ring-gap-color: var(--lumo-error-color);
    --vaadin-focus-ring-color: var(--lumo-error-contrast-color);
  }

  :host(:is([theme~='primary'], [theme~='info'])) {
    --_focus-ring-gap-color: var(--lumo-primary-color);
    --vaadin-focus-ring-color: var(--lumo-primary-contrast-color);
  }

  :host(:is([theme~='info'], [theme~='primary'], .v-info.v-primary)) [part='overlay'] {
    background: var(--lumo-primary-color);
    color: var(--lumo-primary-contrast-color);
    box-shadow: var(--lumo-box-shadow-l);
  }

  :host(:is([theme~='info'], [theme~='primary'], .v-info.v-primary)) {
    --vaadin-button-background: var(--lumo-shade-20pct);
    --vaadin-button-text-color: var(--lumo-primary-contrast-color);
    --vaadin-button-primary-background: var(--lumo-primary-contrast-color);
    --vaadin-button-primary-text-color: var(--lumo-primary-text-color);
  }

  :host(.v-info) [part='overlay'] {
    background: linear-gradient(var(--lumo-primary-color-10pct), var(--lumo-primary-color-10pct)) var(--lumo-base-color);
    color: var(--lumo-primary-text-color);
  }

  :host(.v-info) {
    --vaadin-button-background: var(--lumo-primary-color-10pct);
    --vaadin-button-text-color: var(--lumo-primary-text-color);
    --vaadin-button-primary-background: var(--lumo-primary-color);
    --vaadin-button-primary-text-color: var(--lumo-primary-contrast-color);
  }

  :host(:is([theme~='contrast'], .v-primary)) [part='overlay'] {
    background: var(--lumo-contrast);
    color: var(--lumo-base-color);
    box-shadow: var(--lumo-box-shadow-l);
  }

  :host(:is([theme~='contrast'], .v-primary)) {
    --vaadin-button-background: var(--lumo-contrast-20pct);
    --vaadin-button-text-color: var(--lumo-base-color);
    --vaadin-button-primary-background: var(--lumo-base-color);
    --vaadin-button-primary-text-color: var(--lumo-contrast);
  }

  :host(:is([theme~='success'], .v-success.v-primary)) [part='overlay'] {
    background: var(--lumo-success-color);
    color: var(--lumo-success-contrast-color);
    box-shadow: var(--lumo-box-shadow-l);
  }

  :host(:is([theme~='success'], .v-success.v-primary)) {
    --vaadin-button-background: var(--lumo-shade-20pct);
    --vaadin-button-text-color: var(--lumo-success-contrast-color);
    --vaadin-button-primary-background: var(--lumo-success-contrast-color);
    --vaadin-button-primary-text-color: var(--lumo-success-text-color);
  }

  :host(.v-success) [part='overlay'] {
    background: linear-gradient(var(--lumo-success-color-10pct), var(--lumo-success-color-10pct)) var(--lumo-base-color);
    color: var(--lumo-success-text-color);
  }

  :host(.v-success) {
    --vaadin-button-background: var(--lumo-success-color-10pct);
    --vaadin-button-text-color: var(--lumo-success-text-color);
    --vaadin-button-primary-background: var(--lumo-success-color);
    --vaadin-button-primary-text-color: var(--lumo-success-contrast-color);
  }

  :host(:is([theme~='error'], .v-error.v-primary)) [part='overlay'] {
    background: var(--lumo-error-color);
    color: var(--lumo-error-contrast-color);
    box-shadow: var(--lumo-box-shadow-l);
  }

  :host(:is([theme~='error'], .v-error.v-primary)) {
    --vaadin-button-background: var(--lumo-shade-20pct);
    --vaadin-button-text-color: var(--lumo-error-contrast-color);
    --vaadin-button-primary-background: var(--lumo-error-contrast-color);
    --vaadin-button-primary-text-color: var(--lumo-error-text-color);
  }

  :host(.v-error) [part='overlay'] {
    background: linear-gradient(var(--lumo-error-color-10pct), var(--lumo-error-color-10pct)) var(--lumo-base-color);
    color: var(--lumo-error-text-color);
  }

  :host(.v-error) {
    --vaadin-button-background: var(--lumo-error-color-10pct);
    --vaadin-button-text-color: var(--lumo-error-text-color);
    --vaadin-button-primary-background: var(--lumo-error-color);
    --vaadin-button-primary-text-color: var(--lumo-error-contrast-color);
  }

  :host(:is([theme~='warning'], .v-warning.v-primary)) [part='overlay'] {
    background: var(--lumo-warning-color);
    color: var(--lumo-warning-contrast-color);
    box-shadow:
      inset 0 0 0 1px var(--lumo-contrast-20pct),
      var(--lumo-box-shadow-l);
  }

  :host(:is([theme~='warning'], .v-warning.v-primary)) {
    --vaadin-button-background: var(--lumo-shade-20pct);
    --vaadin-button-text-color: var(--lumo-warning-contrast-color);
    --vaadin-button-primary-background: var(--lumo-shade-50pct);
    --vaadin-button-primary-text-color: var(--lumo-primary-contrast-color);
  }

  :host(.v-warning) [part='overlay'] {
    background: linear-gradient(var(--lumo-warning-color-10pct), var(--lumo-warning-color-10pct)) var(--lumo-base-color);
    color: var(--lumo-warning-text-color);
  }

  :host(.v-warning) {
    --vaadin-button-background: var(--lumo-warning-color-10pct);
    --vaadin-button-text-color: var(--lumo-warning-text-color);
    --vaadin-button-primary-background: var(--lumo-warning-color);
    --vaadin-button-primary-text-color: var(--lumo-warning-contrast-color);
  }

  @media (forced-colors: active) {
    [part='overlay'] {
      outline: 3px solid;
    }
  }
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_notification-container {
  :host {
    position: fixed;
    inset: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    pointer-events: none;

    /* Override native [popover] user agent styles */
    width: auto;
    height: auto;
    border: none;
    padding: 0;
    background-color: transparent;
    overflow: visible;
  }

  [region-group] {
    flex: 1 1 0%;
    display: flex;
  }

  [region-group='top'] {
    align-items: flex-start;
  }

  [region-group='bottom'] {
    align-items: flex-end;
  }

  [region-group] > [region] {
    flex: 1 1 0%;
  }

  @media (max-width: 450px) {
    [region-group] {
      flex-direction: column;
      align-items: stretch;
    }

    [region-group='top'] {
      justify-content: flex-start;
    }

    [region-group='bottom'] {
      justify-content: flex-end;
    }

    [region-group] > [region] {
      flex: initial;
    }
  }
}

:root,
:host {
  --_lumo-vaadin-notification-container-inject: 1;
  --_lumo-vaadin-notification-container-inject-modules: lumo_components_notification-container;

  --_lumo-vaadin-notification-card-inject: 1;
  --_lumo-vaadin-notification-card-inject-modules: lumo_components_notification-card;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */

:root,
:host {
  --_lumo-vaadin-number-field-inject: 1;
  --_lumo-vaadin-number-field-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-button,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_mixins_field-base,
    lumo_components_number-field;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */

:root,
:host {
  --_lumo-vaadin-overlay-inject: 1;
  --_lumo-vaadin-overlay-inject-modules: lumo_mixins_overlay;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_popover-overlay {
  :host {
    --_arrow-size: var(--vaadin-popover-arrow-size, 0.75rem);
    --_default-offset: var(--lumo-space-xs);
  }

  [part='overlay'] {
    overflow: visible;
    border: none;
  }

  [part='content'] {
    padding: var(--lumo-space-xs) var(--lumo-space-s);
  }
}

:root,
:host {
  --_lumo-vaadin-popover-overlay-inject: 1;
  --_lumo-vaadin-popover-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_components_popover-overlay;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_progress-bar {
  :host {
    display: block;
    width: 100%; /* prevent collapsing inside non-stretching column flex */
    height: round(var(--lumo-size-l) / 10, 1px);
    margin: var(--lumo-space-s) 0;
  }

  :host([hidden]) {
    display: none !important;
  }

  [part='bar'] {
    height: 100%;
    border-radius: var(--lumo-border-radius-m);
    background-color: var(--lumo-contrast-10pct);
  }

  [part='value'] {
    height: 100%;
    transform-origin: 0 50%;
    border-radius: var(--lumo-border-radius-m);
    background-color: var(--lumo-primary-color);
    /* Use width instead of transform to preserve border radius */
    transform: none;
    width: calc(var(--vaadin-progress-value) * 100%);
    transition: 0.1s width linear;
  }

  :host([dir='rtl']) [part='value'] {
    transform-origin: 100% 50%;
  }

  @media (forced-colors: active) {
    [part='bar'] {
      outline: 1px solid;
    }

    [part='value'] {
      background-color: AccentColor !important;
      forced-color-adjust: none;
    }
  }

  /* Indeterminate mode */
  :host([indeterminate]) [part='value'] {
    --lumo-progress-indeterminate-progress-bar-background: linear-gradient(
      to right,
      var(--lumo-primary-color-10pct) 10%,
      var(--lumo-primary-color)
    );
    --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(
      to left,
      var(--lumo-primary-color-10pct) 10%,
      var(--lumo-primary-color)
    );
    width: 100%;
    background-color: transparent !important;
    background-image: var(--lumo-progress-indeterminate-progress-bar-background);
    opacity: 0.75;
    animation: vaadin-progress-indeterminate 1.6s infinite cubic-bezier(0.645, 0.045, 0.355, 1);
  }

  @keyframes vaadin-progress-indeterminate {
    0% {
      transform: scaleX(0.015);
      transform-origin: 0% 0%;
    }

    25% {
      transform: scaleX(0.4);
    }

    50% {
      transform: scaleX(0.015);
      transform-origin: 100% 0%;
      background-image: var(--lumo-progress-indeterminate-progress-bar-background);
    }

    50.1% {
      transform: scaleX(0.015);
      transform-origin: 100% 0%;
      background-image: var(--lumo-progress-indeterminate-progress-bar-background-reverse);
    }

    75% {
      transform: scaleX(0.4);
    }

    100% {
      transform: scaleX(0.015);
      transform-origin: 0% 0%;
      background-image: var(--lumo-progress-indeterminate-progress-bar-background-reverse);
    }
  }

  :host(:not([aria-valuenow])) [part='value']::before,
  :host([indeterminate]) [part='value']::before {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    background-color: var(--lumo-primary-color);
    animation: vaadin-progress-pulse3 1.6s infinite cubic-bezier(0.645, 0.045, 0.355, 1);
  }

  @keyframes vaadin-progress-pulse3 {
    0% {
      opacity: 1;
    }

    10% {
      opacity: 0;
    }

    40% {
      opacity: 0;
    }

    50% {
      opacity: 1;
    }

    50.1% {
      opacity: 1;
    }

    60% {
      opacity: 0;
    }

    90% {
      opacity: 0;
    }

    100% {
      opacity: 1;
    }
  }

  /* Contrast color */
  :host([theme~='contrast']) [part='value'],
  :host([theme~='contrast']) [part='value']::before {
    background-color: var(--lumo-contrast-80pct);
    --lumo-progress-indeterminate-progress-bar-background: linear-gradient(
      to right,
      var(--lumo-contrast-5pct) 10%,
      var(--lumo-contrast-80pct)
    );
    --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(
      to left,
      var(--lumo-contrast-5pct) 10%,
      var(--lumo-contrast-60pct)
    );
  }

  /* Error color */
  :host([theme~='error']) [part='value'],
  :host([theme~='error']) [part='value']::before {
    background-color: var(--lumo-error-color);
    --lumo-progress-indeterminate-progress-bar-background: linear-gradient(
      to right,
      var(--lumo-error-color-10pct) 10%,
      var(--lumo-error-color)
    );
    --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(
      to left,
      var(--lumo-error-color-10pct) 10%,
      var(--lumo-error-color)
    );
  }

  /* Primary color */
  :host([theme~='success']) [part='value'],
  :host([theme~='success']) [part='value']::before {
    background-color: var(--lumo-success-color);
    --lumo-progress-indeterminate-progress-bar-background: linear-gradient(
      to right,
      var(--lumo-success-color-10pct) 10%,
      var(--lumo-success-color)
    );
    --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(
      to left,
      var(--lumo-success-color-10pct) 10%,
      var(--lumo-success-color)
    );
  }

  /* RTL specific styles */
  :host([indeterminate][dir='rtl']) [part='value'] {
    --lumo-progress-indeterminate-progress-bar-background: linear-gradient(
      to left,
      var(--lumo-primary-color-10pct) 10%,
      var(--lumo-primary-color)
    );
    --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(
      to right,
      var(--lumo-primary-color-10pct) 10%,
      var(--lumo-primary-color)
    );
    animation: vaadin-progress-indeterminate-rtl 1.6s infinite cubic-bezier(0.355, 0.045, 0.645, 1);
  }

  :host(:not([aria-valuenow])[dir='rtl']) [part='value']::before,
  :host([indeterminate][dir='rtl']) [part='value']::before {
    animation: vaadin-progress-pulse3 1.6s infinite cubic-bezier(0.355, 0.045, 0.645, 1);
  }

  @keyframes vaadin-progress-indeterminate-rtl {
    0% {
      transform: scaleX(0.015);
      transform-origin: 100% 0%;
    }

    25% {
      transform: scaleX(0.4);
    }

    50% {
      transform: scaleX(0.015);
      transform-origin: 0% 0%;
      background-image: var(--lumo-progress-indeterminate-progress-bar-background);
    }

    50.1% {
      transform: scaleX(0.015);
      transform-origin: 0% 0%;
      background-image: var(--lumo-progress-indeterminate-progress-bar-background-reverse);
    }

    75% {
      transform: scaleX(0.4);
    }

    100% {
      transform: scaleX(0.015);
      transform-origin: 100% 0%;
      background-image: var(--lumo-progress-indeterminate-progress-bar-background-reverse);
    }
  }

  /* Contrast color */
  :host([theme~='contrast'][dir='rtl']) [part='value'],
  :host([theme~='contrast'][dir='rtl']) [part='value']::before {
    --lumo-progress-indeterminate-progress-bar-background: linear-gradient(
      to left,
      var(--lumo-contrast-5pct) 10%,
      var(--lumo-contrast-80pct)
    );
    --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(
      to right,
      var(--lumo-contrast-5pct) 10%,
      var(--lumo-contrast-60pct)
    );
  }

  /* Error color */
  :host([theme~='error'][dir='rtl']) [part='value'],
  :host([theme~='error'][dir='rtl']) [part='value']::before {
    --lumo-progress-indeterminate-progress-bar-background: linear-gradient(
      to left,
      var(--lumo-error-color-10pct) 10%,
      var(--lumo-error-color)
    );
    --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(
      to right,
      var(--lumo-error-color-10pct) 10%,
      var(--lumo-error-color)
    );
  }

  /* Primary color */
  :host([theme~='success'][dir='rtl']) [part='value'],
  :host([theme~='success'][dir='rtl']) [part='value']::before {
    --lumo-progress-indeterminate-progress-bar-background: linear-gradient(
      to left,
      var(--lumo-success-color-10pct) 10%,
      var(--lumo-success-color)
    );
    --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(
      to right,
      var(--lumo-success-color-10pct) 10%,
      var(--lumo-success-color)
    );
  }
}

:root,
:host {
  --_lumo-vaadin-progress-bar-inject: 1;
  --_lumo-vaadin-progress-bar-inject-modules: lumo_components_progress-bar;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_radio-button {
  :host {
    color: var(--vaadin-radio-button-label-color, var(--lumo-body-text-color));
    font-size: var(--vaadin-radio-button-label-font-size, var(--lumo-font-size-m));
    --_radio-button-size: var(--vaadin-radio-button-size, calc(var(--lumo-size-m) / 2));
  }

  :host([has-label]) ::slotted(label) {
    padding: var(
      --vaadin-radio-button-label-padding,
      var(--lumo-space-xs) var(--lumo-space-s) var(--lumo-space-xs) var(--lumo-space-xs)
    );
  }

  [part='radio'] {
    --_input-size: var(--_radio-button-size);
    border-radius: 50%;
    background: var(--vaadin-radio-button-background, var(--lumo-contrast-20pct));
    /* Default field border color */
    --_input-border-color: var(--vaadin-input-field-border-color, var(--lumo-contrast-50pct));
  }

  /* Used for the dot */
  [part='radio']::after {
    content: '';
    pointer-events: none;
    width: 0;
    height: 0;
    border: var(--vaadin-radio-button-marker-size, 3px) solid
      var(--vaadin-radio-button-dot-color, var(--lumo-primary-contrast-color));
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0);
    transition: 0.25s transform;
    background-clip: content-box;
  }

  :host([checked]) {
    --vaadin-input-field-border-color: transparent;
  }

  :host([checked]) [part='radio'] {
    background-color: var(--_selection-color);
  }

  :host([checked]) [part='radio']::after {
    transform: translate(-50%, -50%) scale(1);
  }

  :host(:not([checked]):not([disabled]):hover) [part='radio'] {
    background: var(--vaadin-radio-button-background-hover, var(--lumo-contrast-30pct));
  }

  :host([active]) [part='radio'] {
    transform: scale(0.9);
    transition-duration: 0.05s;
  }

  :host([active][checked]) [part='radio'] {
    transform: scale(1.1);
  }

  :host([active]:not([checked])) [part='radio']::before {
    transition-duration: 0.01s, 0.01s;
    transform: scale(0);
    opacity: 0.4;
  }

  :host([focus-ring]) [part='radio'] {
    box-shadow:
      0 0 0 1px var(--lumo-base-color),
      0 0 0 calc(var(--_focus-ring-width) + 1px) var(--_focus-ring-color),
      inset 0 0 0 var(--_input-border-width, 0) var(--_input-border-color);
  }

  :host([disabled]) {
    pointer-events: none;
    color: var(--lumo-disabled-text-color);
    --vaadin-input-field-border-color: var(--lumo-contrast-20pct);
  }

  :host([disabled]) ::slotted(label) {
    color: inherit;
  }

  :host([disabled]) [part='radio'] {
    background-color: var(--vaadin-radio-button-disabled-background, var(--lumo-contrast-10pct));
  }

  :host([disabled]) [part='radio']::after {
    border-color: var(--vaadin-radio-button-disabled-dot-color, var(--lumo-contrast-30pct));
  }

  /* RTL specific styles */
  :host([dir='rtl'][has-label]) ::slotted(label) {
    padding: var(--lumo-space-xs) var(--lumo-space-xs) var(--lumo-space-xs) var(--lumo-space-s);
  }

  @media (forced-colors: active) {
    [part='radio'] {
      outline: 1px solid;
      outline-offset: -1px;
    }

    :host([focused]) [part='radio'] {
      outline-width: 2px;
    }

    :host([disabled]) [part='radio'] {
      outline-color: GrayText;
    }
  }
}

:root,
:host {
  --_lumo-vaadin-radio-button-inject: 1;
  --_lumo-vaadin-radio-button-inject-modules:
    lumo_mixins_checkable-field,
    lumo_components_radio-button;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_radio-group {
  :host(:hover:not([readonly]):not([focused])) [part='label'],
  :host(:hover:not([readonly])) [part='helper-text'] {
    color: var(--lumo-body-text-color);
  }

  /* Touch device adjustment */
  @media (pointer: coarse) {
    :host(:hover:not([readonly]):not([focused])) [part='label'] {
      color: var(--lumo-secondary-text-color);
    }
  }
}

:root,
:host {
  --_lumo-vaadin-radio-group-inject: 1;
  --_lumo-vaadin-radio-group-inject-modules:
    lumo_mixins_group-field,
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_components_radio-group;
}
/**
 * @license
 * Copyright (c) 2026 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2026 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_mixins_slider {
  :host {
    display: inline-flex;
    color: var(--lumo-body-text-color);
    font-size: var(--lumo-font-size-m);
    font-family: var(--lumo-font-family);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-tap-highlight-color: transparent;
    padding: var(--lumo-space-xs) 0;
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
    --_fill-background: var(--vaadin-slider-fill-background, var(--lumo-primary-color));
    --_thumb-width: var(--vaadin-slider-thumb-width, calc(var(--lumo-size-m) / 2));
    --_thumb-height: var(--vaadin-slider-thumb-height, calc(var(--lumo-size-m) / 2));
  }

  :host::before {
    content: '\2003';
    height: var(--lumo-size-s);
    width: 0;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    border: 0;
    padding: 0;
    margin: 0;
    align-self: auto;
  }

  [class$='container'] {
    display: flex;
    flex-direction: column;
    min-width: 100%;
    max-width: 100%;
    width: var(--vaadin-field-default-width, 12em);
  }

  :host([readonly]) {
    --_fill-background: var(--lumo-contrast-70pct);
    --vaadin-slider-thumb-border-color: var(--_fill-background);
  }

  :host([disabled]) {
    --vaadin-slider-track-background: var(--lumo-contrast-10pct);
    --vaadin-slider-fill-background: var(--lumo-contrast-30pct);
    --vaadin-slider-thumb-border-color: var(--_fill-background);
    pointer-events: none;
  }

  [part='track'] {
    background: var(--vaadin-slider-track-background, var(--lumo-contrast-30pct));
    border-radius: var(--vaadin-slider-track-border-radius, var(--lumo-border-radius-s));
    height: var(--vaadin-slider-track-height, calc(var(--lumo-size-l) / 10));
  }

  [part='track-fill'] {
    background: linear-gradient(var(--_fill-background), var(--_fill-background)) var(--lumo-base-color);
  }

  [part~='thumb'] {
    background: var(--lumo-base-color);
    border-width: var(--vaadin-slider-thumb-border-width, 3px);
    border-color: var(--vaadin-slider-thumb-border-color, var(--_fill-background));
  }

  [part='label'] {
    margin-top: -0.25em;
    margin-bottom: 0;
  }

  [part='helper-text'] {
    margin: 0;
  }

  #controls {
    min-height: var(--lumo-size-s);
  }

  :host([has-label]) #controls {
    padding: 0;
    border: 0;
  }

  [part='marks'] {
    font-size: var(--lumo-font-size-xs);
    line-height: var(--lumo-line-height-xs);
  }

  [part='error-message'] {
    display: block;
    margin-top: 0;
  }

  :host([has-error-message]) [part='error-message']::before {
    height: 0.4em;
    mask: none;
    background: transparent;
  }

  :host([readonly]) [part='track-fill'] {
    border: none;
  }

  @media (any-hover: hover) {
    :host(:hover:not([readonly]):not([disabled]):not([focused])) [part='label'],
    :host(:hover:not([readonly]):not([disabled]):not([focused])) [part='helper-text'] {
      color: var(--lumo-body-text-color);
    }
  }
}
/**
 * @license
 * Copyright (c) 2026 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_range-slider {
  :host(:not([readonly]):is([start-active], [focus-ring][start-focused])) [part~='thumb-start'],
  :host(:not([readonly]):is([end-active], [focus-ring][end-focused])) [part~='thumb-end'] {
    background: linear-gradient(var(--_fill-background), var(--_fill-background)) var(--lumo-base-color);
  }

  :host([focus-ring][start-focused]) [part~='thumb-start'],
  :host([focus-ring][end-focused]) [part~='thumb-end'] {
    outline: var(--_focus-ring-width) solid var(--_focus-ring-color);
  }
}
/**
 * @license
 * Copyright (c) 2026 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_slider-bubble-overlay {
  :host {
    --_border-width: 0px;
  }

  [part='overlay'] {
    background: var(--lumo-base-color) linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct));
    color: var(--lumo-body-text-color);
    font-size: var(--lumo-font-size-xs);
    line-height: var(--lumo-line-height-s);
    overflow: visible;
    padding: 0;
  }

  [part='content'] {
    padding: var(--lumo-space-xs) var(--lumo-space-s);
  }

  @media (forced-colors: active) {
    [part='overlay'] {
      outline: 1px dashed;
    }
  }
}

:root,
:host {
  --_lumo-vaadin-range-slider-inject: 1;
  --_lumo-vaadin-range-slider-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_mixins_slider,
    lumo_components_range-slider;

  --_lumo-vaadin-slider-bubble-overlay-inject: 1;
  --_lumo-vaadin-slider-bubble-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_components_slider-bubble-overlay;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_rich-text-editor-popup-overlay {
  :host {
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
  }

  [part='overlay'] {
    margin: var(--lumo-space-xs) 0;
  }

  [part='content'] {
    padding: var(--lumo-space-xs);
    max-width: calc(7 * (var(--_button-size) + var(--_button-margin) * 2));
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    --_button-size: 1.25rem;
    --_button-margin: 3px;
  }

  [part='content'] ::slotted(button) {
    border: none;
    background-color: var(--_btn-background);
    width: var(--_button-size);
    height: var(--_button-size);
    margin: var(--_button-margin);
  }

  [part='content'] ::slotted(button:focus-visible) {
    outline: var(--_focus-ring-width) solid var(--_focus-ring-color);
    outline-offset: calc(var(--_focus-ring-width) * -1 + 1px);
  }

  [part='content'] ::slotted(button:first-of-type) {
    position: relative;
    border: solid 1px var(--lumo-contrast-10pct);
    background-image: repeating-linear-gradient(
      135deg,
      transparent 0%,
      transparent 47%,
      red 50%,
      transparent 53%,
      transparent 100%
    );
    background-color: transparent;
    background-clip: padding-box;
  }
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_rich-text-editor {
  :host {
    background: var(--vaadin-rich-text-editor-background, transparent);
    border: none;
    border-radius: 0;
    min-height: calc(var(--lumo-size-m) * 8);
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-m);
    line-height: var(--lumo-line-height-m);
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
    --_item-indent: var(--lumo-space-m);
    --_marker-indent: var(--lumo-space-xs);
  }

  :host(:focus-within) {
    outline: none;
  }

  [part='content'] {
    background-color: var(--lumo-base-color);
  }

  [part='toolbar'] {
    background-color: var(--vaadin-rich-text-editor-toolbar-background, var(--lumo-contrast-5pct));
    padding: var(--vaadin-rich-text-editor-toolbar-padding, calc(var(--lumo-space-s) - 1px) var(--lumo-space-xs));
    gap: var(--vaadin-rich-text-editor-toolbar-gap, 0);
  }

  [part~='toolbar-button'] {
    padding: var(--vaadin-rich-text-editor-toolbar-button-padding, 0);
    font: inherit;
    line-height: 1;
    text-transform: none;
    background: var(--vaadin-rich-text-editor-toolbar-button-background, transparent);
    border-width: var(--vaadin-rich-text-editor-toolbar-button-border-width, 0);
    width: var(--lumo-size-m);
    height: var(--lumo-size-m);
    border-radius: var(--lumo-border-radius-m);
    color: var(--vaadin-rich-text-editor-toolbar-button-text-color, var(--lumo-contrast-60pct));
    margin: 2px 1px;
    cursor: var(--lumo-clickable-cursor);
    transition:
      background-color 100ms,
      color 100ms;
  }

  [part~='toolbar-button']:not([part~='toolbar-button-pressed']):hover {
    outline: none;
    --vaadin-rich-text-editor-toolbar-button-background: var(--lumo-contrast-5pct);
    --vaadin-rich-text-editor-toolbar-button-text-color: var(--lumo-contrast-80pct);
  }

  [part~='toolbar-button']::before {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: 'lumo-icons', var(--lumo-font-family);
    font-size: var(--lumo-icon-size-m);
    mask-image: none;
    background: transparent;
    height: auto;
    width: auto;
  }

  [part~='toolbar-group'] {
    margin: 0 0.5em;
    margin: 0 calc(var(--lumo-space-l) / 2 - 1px);
  }

  [part~='toolbar-button-bold']::before {
    content: 'B';
    font-weight: 700;
  }

  [part~='toolbar-button-italic']::before {
    content: 'I';
    font-style: italic;
  }

  [part~='toolbar-button-underline']::before {
    content: 'U';
    text-decoration: underline;
  }

  [part~='toolbar-button-strike']::before {
    content: 'T';
    text-decoration: line-through;
  }

  [part~='toolbar-button-h1']::before {
    content: 'H1';
    font-size: 1.25em;
    font-size: var(--lumo-font-size-m);
  }

  [part~='toolbar-button-h2']::before {
    content: 'H2';
    font-size: 1em;
    font-size: var(--lumo-font-size-s);
  }

  [part~='toolbar-button-h3']::before {
    content: 'H3';
    font-size: 0.875em;
    font-size: var(--lumo-font-size-xs);
  }

  [part~='toolbar-button-h1']::before,
  [part~='toolbar-button-h2']::before,
  [part~='toolbar-button-h3']::before {
    letter-spacing: -0.05em;
    font-weight: 600;
  }

  [part~='toolbar-button-subscript']::before,
  [part~='toolbar-button-superscript']::before {
    content: 'X';
    font-weight: 600;
    font-size: var(--lumo-font-size-s);
  }

  [part~='toolbar-button-subscript']::after,
  [part~='toolbar-button-superscript']::after {
    content: '2';
    position: absolute;
    top: 50%;
    left: 70%;
    font-size: 0.625em;
    font-weight: 700;
  }

  [part~='toolbar-button-superscript']::after {
    top: 20%;
  }

  [part~='toolbar-button-blockquote']::before {
    content: '”';
    height: 0.6em;
    font-size: var(--lumo-font-size-xxl);
  }

  [part~='toolbar-button-code-block']::before {
    content: var(--lumo-icons-angle-left) var(--lumo-icons-angle-right);
    font-size: var(--lumo-font-size-l);
    letter-spacing: -0.5em;
    margin-left: -0.25em;
    font-weight: 600;
  }

  [part~='toolbar-button-background']::before,
  [part~='toolbar-button-color']::before {
    content: 'A';
    font-size: 1em;
  }

  [part~='toolbar-button-color']::after,
  [part~='toolbar-button-background']::after {
    width: auto;
    height: auto;
    mask-image: none;
    transform: none;
  }

  [part~='toolbar-button-color']::after {
    bottom: 4px;
    left: 25%;
    right: 25%;
    width: 50%;
    height: 4px;
  }

  [part~='toolbar-button-background']::before {
    z-index: 1;
    background-color: var(--lumo-base-color);
    background-image: linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct));
  }

  [part~='toolbar-button-background']::after {
    content: '';
    position: absolute;
    inset: 20%;
    background: repeating-linear-gradient(
      135deg,
      var(--_background-value, currentColor),
      var(--_background-value, currentColor) 1px,
      transparent 1px,
      transparent 2px
    );
  }

  :host([disabled]) [part~='toolbar-button'] {
    --vaadin-rich-text-editor-toolbar-button-background: transparent;
  }

  [part~='toolbar-button']:focus,
  [part~='toolbar-button'][aria-expanded='true'] {
    outline: none;
    box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
  }

  @media (hover: none) {
    [part~='toolbar-button']:hover {
      --vaadin-rich-text-editor-toolbar-button-background: transparent;
    }
  }

  [part~='toolbar-button-pressed'] {
    --vaadin-rich-text-editor-toolbar-button-background: var(--vaadin-selection-color, var(--lumo-primary-color));
    --vaadin-rich-text-editor-toolbar-button-text-color: var(--lumo-primary-contrast-color);
  }

  [part~='toolbar-button']:not([part~='toolbar-button-pressed']):active {
    --vaadin-rich-text-editor-toolbar-button-background: var(--lumo-contrast-10pct);
    --vaadin-rich-text-editor-toolbar-button-text-color: var(--lumo-contrast-90pct);
  }

  [part~='toolbar-button-undo']::before {
    content: var(--lumo-icons-undo);
  }

  [part~='toolbar-button-redo']::before {
    content: var(--lumo-icons-redo);
  }

  [part~='toolbar-button-bold']::before,
  [part~='toolbar-button-background']::before,
  [part~='toolbar-button-color']::before,
  [part~='toolbar-button-italic']::before,
  [part~='toolbar-button-underline']::before,
  [part~='toolbar-button-strike']::before {
    font-size: var(--lumo-font-size-m);
    font-weight: 600;
  }

  [part~='toolbar-button-background']:hover::before {
    background-image:
      linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct)),
      linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct));
  }

  [part~='toolbar-button-background']:active::before {
    background-image:
      linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct)),
      linear-gradient(var(--lumo-contrast-10pct), var(--lumo-contrast-10pct));
  }

  [part~='toolbar-button-list-ordered']::before {
    content: var(--lumo-icons-ordered-list);
  }

  [part~='toolbar-button-list-bullet']::before {
    content: var(--lumo-icons-unordered-list);
  }

  [part~='toolbar-button-outdent']::before {
    content: var(--lumo-icons-outdent);
  }

  [part~='toolbar-button-indent']::before {
    content: var(--lumo-icons-indent);
  }

  [part~='toolbar-button-align-left']::before {
    content: var(--lumo-icons-align-left);
  }

  [part~='toolbar-button-align-center']::before {
    content: var(--lumo-icons-align-center);
  }

  [part~='toolbar-button-align-right']::before {
    content: var(--lumo-icons-align-right);
  }

  [part~='toolbar-button-image']::before {
    content: var(--lumo-icons-photo);
  }

  [part~='toolbar-button-link']::before {
    content: var(--lumo-icons-link);
  }

  [part~='toolbar-button-clean']::before {
    content: var(--lumo-icons-clean);
    font-size: var(--lumo-font-size-l);
  }

  /* Theme variants */

  /* No border */
  :host(:not([theme~='no-border'])) {
    border: 1px solid var(--lumo-contrast-20pct);
  }

  :host(:not([theme~='no-border']):not([readonly])) [part='content'] {
    border-top: 1px solid var(--lumo-contrast-20pct);
  }

  :host([theme~='no-border']) [part='toolbar'] {
    --vaadin-rich-text-editor-toolbar-padding: var(--lumo-space-s) var(--lumo-space-xs);
  }

  /* Compact */
  :host([theme~='compact']) {
    min-height: calc(var(--lumo-size-m) * 6);
  }

  :host([theme~='compact']) [part='toolbar'] {
    --vaadin-rich-text-editor-toolbar-padding: var(--lumo-space-xs) 0;
  }

  :host([theme~='compact'][theme~='no-border']) [part='toolbar'] {
    --vaadin-rich-text-editor-toolbar-padding: calc(var(--lumo-space-xs) + 1px) 0;
  }

  :host([theme~='compact']) [part~='toolbar-button'] {
    width: var(--lumo-size-s);
    height: var(--lumo-size-s);
  }

  :host([theme~='compact']) [part~='toolbar-group'] {
    margin: 0 calc(var(--lumo-space-m) / 2 - 1px);
  }

  .ql-editor {
    color: var(--vaadin-rich-text-editor-content-color, inherit);
    padding: var(--vaadin-rich-text-editor-content-padding, var(--lumo-space-s) var(--lumo-space-m));
  }

  .ql-code-block-container {
    background-color: var(--lumo-contrast-10pct);
    border-radius: var(--lumo-border-radius-m);
    margin-block: 0.3125em;
    padding: 0.3125em 0.625em;
  }

  blockquote {
    padding-left: 1em;
    margin-inline: 40px;
  }

  code {
    background-color: var(--lumo-contrast-10pct);
    font-size: 85%;
    padding: 0.125em 0.25em;
  }

  :where(h1, h2, h3, h4, h5, h6) {
    margin-top: 1.25em;
  }

  :where(h1) {
    margin-bottom: 0.75em;
  }

  :where(h2, h3, h4) {
    margin-bottom: 0.5em;
  }

  :where(h5) {
    margin-bottom: 0.25em;
  }

  /* RTL specific styles */
  :host([dir='rtl']) [part~='toolbar-button-redo']::before {
    content: var(--lumo-icons-undo);
  }

  :host([dir='rtl']) [part~='toolbar-button-undo']::before {
    content: var(--lumo-icons-redo);
  }
}
@media lumo_global_typography {
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
:where(body),
:where(:host) {
  font-family: var(--lumo-font-family);
  font-size: var(--lumo-font-size-m);
  line-height: var(--lumo-line-height-m);
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

small,
[theme~='font-size-s'] {
  font-size: var(--lumo-font-size-s);
  line-height: var(--lumo-line-height-s);
}

[theme~='font-size-xs'] {
  font-size: var(--lumo-font-size-xs);
  line-height: var(--lumo-line-height-xs);
}

:where(h1, h2, h3, h4, h5, h6) {
  font-weight: 600;
  line-height: var(--lumo-line-height-xs);
  color: var(--lumo-header-text-color);
  margin-block: 0;
}

:where(h1) {
  font-size: var(--lumo-font-size-xxxl);
}

:where(h2) {
  font-size: var(--lumo-font-size-xxl);
}

:where(h3) {
  font-size: var(--lumo-font-size-xl);
}

:where(h4) {
  font-size: var(--lumo-font-size-l);
}

:where(h5) {
  font-size: var(--lumo-font-size-m);
}

:where(h6) {
  font-size: var(--lumo-font-size-xs);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

p,
blockquote {
  margin-top: 0.5em;
  margin-bottom: 0.75em;
}

a {
  text-decoration: none;
}

a:where(:any-link) {
  color: var(--lumo-primary-text-color);
}

a:where(:any-link):hover {
  text-decoration: underline;
}

a:not(:any-link) {
  color: var(--lumo-disabled-text-color);
}

hr {
  display: block;
  align-self: stretch;
  height: 1px;
  border: 0;
  padding: 0;
  margin: var(--lumo-space-s) calc(var(--lumo-border-radius-m) / 2);
  background-color: var(--lumo-contrast-10pct);
}

b,
strong {
  font-weight: 600;
}

code,
pre {
  border-radius: var(--lumo-border-radius-m);
}

pre code {
  background: transparent;
}

blockquote {
  border-left: 2px solid var(--lumo-contrast-30pct);
  color: var(--lumo-secondary-text-color);
}

blockquote[dir='rtl'] {
  border-left: none;
  border-right: 2px solid var(--lumo-contrast-30pct);
}
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */

@media lumo_components_tooltip-overlay {
  :host {
    --_vaadin-tooltip-default-offset: var(--lumo-space-xs);
  }

  [part='overlay'] {
    border: none;
    padding: 0;
    max-width: 40ch;
    background: var(--lumo-base-color) linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct));
    color: var(--lumo-body-text-color);
    font-size: var(--lumo-font-size-xs);
    line-height: var(--lumo-line-height-s);
  }

  [part='content'] {
    padding: var(--lumo-space-xs) var(--lumo-space-s);
  }
}

:root,
:host {
  --_lumo-vaadin-tooltip-overlay-inject: 1;
  --_lumo-vaadin-tooltip-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_components_tooltip-overlay;
}

:root,
:host {
  --_lumo-vaadin-rich-text-editor-inject: 1;
  --_lumo-vaadin-rich-text-editor-inject-modules:
    lumo_global_typography,
    lumo_components_rich-text-editor;

  --_lumo-vaadin-rich-text-editor-popup-overlay-inject: 1;
  --_lumo-vaadin-rich-text-editor-popup-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_components_rich-text-editor-popup-overlay;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_scroller {
  :host {
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
  }

  :host([focus-ring]) {
    outline: none;
    box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
  }
}

:root,
:host {
  --_lumo-vaadin-scroller-inject: 1;
  --_lumo-vaadin-scroller-inject-modules: lumo_components_scroller;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_side-nav {
  :host {
    display: block;
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-m);
    font-weight: 500;
    line-height: var(--lumo-line-height-xs);
    color: var(--lumo-body-text-color);
    -webkit-tap-highlight-color: transparent;
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
  }

  :host([hidden]) {
    display: none !important;
  }

  button {
    display: flex;
    align-items: center;
    justify-content: inherit;
    width: 100%;
    margin: 0;
    padding: 0;
    background-color: initial;
    color: inherit;
    border: initial;
    outline: none;
    font: inherit;
    text-align: inherit;
  }

  [part='children'] {
    padding: 0;
    margin: 0;
    list-style-type: none;
  }

  [part='label'] {
    display: flex;
    align-items: center;
    width: 100%;
    outline: none;
    box-sizing: border-box;
    border-radius: var(--lumo-border-radius-m);
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-s);
    font-weight: 500;
    line-height: var(--lumo-line-height-xs);
  }

  [part='label'] ::slotted([slot='label']) {
    color: var(--lumo-secondary-text-color);
    margin: var(--lumo-space-s);
  }

  :host([focus-ring]) [part='label'] {
    box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
  }

  [part='toggle-button'] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--lumo-size-s);
    height: var(--lumo-size-s);
    margin-inline: auto var(--lumo-space-xs);
    font-size: var(--lumo-icon-size-m);
    line-height: 1;
    color: var(--lumo-contrast-60pct);
    font-family: 'lumo-icons';
    cursor: var(--lumo-clickable-cursor);
  }

  [part='toggle-button']::before {
    content: var(--lumo-icons-angle-right);
    transition: transform 140ms;
  }

  :host(:not([collapsible])) [part='toggle-button'] {
    display: none !important;
  }

  :host(:not([collapsed])) [part='toggle-button']::before {
    transform: rotate(90deg);
  }

  :host([collapsed][dir='rtl']) [part='toggle-button']::before {
    transform: rotate(180deg);
  }

  @media (any-hover: hover) {
    [part='label']:hover [part='toggle-button'] {
      color: var(--lumo-body-text-color);
    }
  }
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_side-nav-item {
  :host {
    display: block;
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
  }

  :host([hidden]),
  [hidden] {
    display: none !important;
  }

  :host([disabled]) {
    pointer-events: none;
  }

  [part='content'] {
    display: flex;
    align-items: center;
  }

  [part='link'] {
    flex: auto;
    min-width: 0;
    display: flex;
    align-items: center;
    text-decoration: none;
    color: inherit;
    font: inherit;
    width: 100%;
    gap: var(--lumo-space-xs);
    padding: var(--lumo-space-s);
    padding-inline-start: calc(var(--lumo-space-s) + var(--_child-indent, 0px));
    border-radius: var(--lumo-border-radius-m);
    transition:
      background-color 140ms,
      color 140ms;
    cursor: var(--lumo-clickable-cursor, default);
    min-height: var(--lumo-icon-size-m);
  }

  button {
    appearance: none;
    flex: none;
    position: relative;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
  }

  [part='children'] {
    padding: 0;
    margin: 0;
    list-style-type: none;
  }

  :host(:not([has-children])) button {
    display: none !important;
  }

  slot[name='prefix'],
  slot[name='suffix'] {
    flex: none;
  }

  slot:not([name]) {
    display: block;
    flex: auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin: 0 var(--lumo-space-s);
  }

  [part='link'][href] {
    cursor: pointer;
  }

  :host([disabled]) [part='link'] {
    color: var(--lumo-disabled-text-color);
  }

  [part='toggle-button'] {
    margin-inline-end: calc(var(--lumo-space-xs) * -1);
    width: var(--lumo-size-s);
    height: var(--lumo-size-s);
  }

  :host([has-children]) [part='content'] {
    padding-inline-end: var(--lumo-space-s);
  }

  @media (any-hover: hover) {
    [part='link']:hover {
      color: var(--lumo-header-text-color);
    }

    [part='toggle-button']:hover {
      color: var(--lumo-body-text-color);
    }
  }

  [part='link']:active:focus {
    background-color: var(--lumo-contrast-5pct);
  }

  [part='toggle-button']::before {
    content: var(--lumo-icons-dropdown);
    transform: rotate(-90deg);
    transition: transform 140ms;
  }

  :host([dir='rtl']) [part='toggle-button']::before {
    transform: rotate(90deg);
  }

  :host([expanded]) [part='toggle-button']::before {
    transform: none;
  }

  [part='link'],
  [part='toggle-button'] {
    outline: none;
  }

  [part='link']:focus-visible,
  [part='toggle-button']:focus-visible {
    border-radius: var(--lumo-border-radius-m);
    box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
  }

  [part='link']:active {
    color: var(--lumo-header-text-color);
  }

  slot[name='prefix']::slotted(:is(vaadin-icon, [class*='icon'])) {
    padding: 0.1em;
    flex-shrink: 0;
    color: var(--lumo-contrast-60pct);
  }

  :host([disabled]) slot[name='prefix']::slotted(:is(vaadin-icon, [class*='icon'])) {
    color: var(--lumo-disabled-text-color);
  }

  :host([current]) slot[name='prefix']::slotted(:is(vaadin-icon, [class*='icon'])) {
    color: inherit;
  }

  slot[name='children'] {
    --_child-indent: calc(var(--_child-indent-2, 0px) + var(--vaadin-side-nav-child-indent, var(--lumo-space-l)));
  }

  slot[name='children']::slotted(*) {
    --_child-indent-2: var(--_child-indent);
  }

  :host([current]) [part='content'] {
    background-color: var(--lumo-primary-color-10pct);
    color: var(--vaadin-selection-color-text, var(--lumo-primary-text-color));
    border-radius: var(--lumo-border-radius-m);
  }

  .sr-only {
    border: 0 !important;
    clip: rect(1px, 1px, 1px, 1px) !important;
    clip-path: inset(50%) !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    width: 1px !important;
    white-space: nowrap !important;
  }
}

:root,
:host {
  --_lumo-vaadin-side-nav-item-inject: 1;
  --_lumo-vaadin-side-nav-item-inject-modules:
    lumo_mixins_field-button,
    lumo_components_side-nav-item;
}

:root,
:host {
  --_lumo-vaadin-side-nav-inject: 1;
  --_lumo-vaadin-side-nav-inject-modules: lumo_components_side-nav;
}
/**
 * @license
 * Copyright (c) 2026 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2026 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_slider {
  :host(:not([readonly]):is([active], [focus-ring])) [part='thumb'] {
    background: linear-gradient(var(--_fill-background), var(--_fill-background)) var(--lumo-base-color);
  }

  :host([focus-ring]) [part='thumb'] {
    outline: var(--_focus-ring-width) solid var(--_focus-ring-color);
  }
}

:root,
:host {
  --_lumo-vaadin-slider-inject: 1;
  --_lumo-vaadin-slider-inject-modules:
    lumo_mixins_field-label,
    lumo_mixins_field-required,
    lumo_mixins_field-error-message,
    lumo_mixins_field-helper,
    lumo_mixins_field-helper-above,
    lumo_mixins_slider,
    lumo_components_slider;

  --_lumo-vaadin-slider-bubble-overlay-inject: 1;
  --_lumo-vaadin-slider-bubble-overlay-inject-modules:
    lumo_mixins_overlay,
    lumo_components_slider-bubble-overlay;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_split-layout {
  [part='splitter'] {
    --_splitter-size: var(--vaadin-split-layout-splitter-size, var(--lumo-space-s));
    --_splitter-target-size: var(--vaadin-split-layout-splitter-target-size, var(--lumo-space-s));
    --_handle-size: var(--vaadin-split-layout-handle-size, var(--lumo-space-xs));
    --_handle-target-size: var(--vaadin-split-layout-handle-target-size, var(--lumo-size-m));
    background: var(--vaadin-split-layout-splitter-background, var(--lumo-contrast-5pct));
    transition: 0.1s background-color;
  }

  [part='handle'] {
    background: var(--vaadin-split-layout-handle-background, var(--lumo-contrast-30pct));
    border-radius: var(--lumo-border-radius-s);
  }

  /* Active style */
  [part='splitter']:active [part='handle'] {
    background: var(--lumo-contrast-50pct);
  }

  /* Small overrides */
  :host([theme~='small']) > [part='splitter'] {
    --vaadin-split-layout-handle-size: 5px;
    background: var(--lumo-contrast-10pct);
  }

  /* Minimal */
  :host([theme~='minimal']) > [part='splitter'] {
    --vaadin-split-layout-splitter-size: 0px;
    --vaadin-split-layout-handle-size: 5px;
    --vaadin-split-layout-splitter-target-size: 5px;
  }

  :host([theme~='minimal']) > [part='splitter'] > [part='handle'] {
    opacity: 0;
  }

  :host([theme~='minimal']) > [part='splitter']:is(:hover, :active) > [part='handle'] {
    opacity: 1;
  }

  /* Hover style */
  @media (any-hover: hover) {
    [part='splitter']:hover [part='handle'] {
      background-color: var(--lumo-contrast-40pct);
    }
  }
}

:root,
:host {
  --_lumo-vaadin-split-layout-inject: 1;
  --_lumo-vaadin-split-layout-inject-modules: lumo_components_split-layout;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_tabs {
  :host {
    display: flex;
    align-items: center;
    -webkit-tap-highlight-color: transparent;
  }

  :host([hidden]) {
    display: none !important;
  }

  :host([orientation='vertical']) {
    display: block;
    box-shadow: -1px 0 0 0 var(--lumo-contrast-10pct);
  }

  :host([orientation='vertical']) [part='tabs'] {
    height: 100%;
    overflow-y: auto;
    width: 100%;
    margin: 0.5rem 0;
  }

  :host(:not([orientation='vertical'])) {
    box-shadow: inset 0 -1px 0 0 var(--lumo-contrast-10pct);
    position: relative;
    min-height: var(--lumo-size-l);
  }

  :host([orientation='horizontal']) [part='tabs'] {
    flex-grow: 1;
    display: flex;
    align-self: stretch;
    overflow-x: auto;
    margin: 0 0.75rem;
  }

  :host([orientation='horizontal']) [part='tabs'] ::slotted(vaadin-tab:not([theme~='icon-on-top'])) {
    justify-content: center;
  }

  /*
  This seems more future-proof than `overflow: -moz-scrollbars-none` which is marked obsolete
  and is no longer guaranteed to work:
  https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#Mozilla_Extensions
*/
  @-moz-document url-prefix() {
    :host([orientation='horizontal']) [part='tabs'] {
      overflow: hidden;
    }
  }

  :host([orientation='horizontal']) [part='tabs']::-webkit-scrollbar {
    display: none;
  }

  [part='back-button'],
  [part='forward-button'] {
    pointer-events: none;
    opacity: 0;
    cursor: default;
    position: absolute;
    z-index: 1;
    font-family: lumo-icons;
    color: var(--lumo-tertiary-text-color);
    font-size: var(--lumo-icon-size-m);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.5em;
    height: 100%;
    transition: 0.2s opacity;
    top: 0;
  }

  [part='forward-button']:hover,
  [part='back-button']:hover {
    color: inherit;
  }

  :host([overflow~='start']) [part='back-button'],
  :host([overflow~='end']) [part='forward-button'] {
    pointer-events: auto;
    opacity: 1;
  }

  [part='back-button']::after {
    content: var(--lumo-icons-angle-left);
  }

  [part='forward-button']::after {
    content: var(--lumo-icons-angle-right);
  }

  :host([orientation='vertical']) [part='back-button'],
  :host([orientation='vertical']) [part='forward-button'] {
    display: none;
  }

  /* Tabs overflow */

  [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: none;
    mask-image: var(--_lumo-tabs-overflow-mask-image);
  }

  /* Horizontal tabs overflow */

  /* Both ends overflowing */
  :host([overflow~='start'][overflow~='end']:not([orientation='vertical'])) [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: linear-gradient(
      90deg,
      transparent 2em,
      #000 4em,
      #000 calc(100% - 4em),
      transparent calc(100% - 2em)
    );
  }

  /* End overflowing */
  :host([overflow~='end']:not([orientation='vertical'])) [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: linear-gradient(90deg, #000 calc(100% - 4em), transparent calc(100% - 2em));
  }

  /* Start overflowing */
  :host([overflow~='start']:not([orientation='vertical'])) [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: linear-gradient(90deg, transparent 2em, #000 4em);
  }

  /* Vertical tabs overflow */

  /* Both ends overflowing */
  :host([overflow~='start'][overflow~='end'][orientation='vertical']) [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: linear-gradient(transparent, #000 2em, #000 calc(100% - 2em), transparent);
  }

  /* End overflowing */
  :host([overflow~='end'][orientation='vertical']) [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: linear-gradient(#000 calc(100% - 2em), transparent);
  }

  /* Start overflowing */
  :host([overflow~='start'][orientation='vertical']) [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: linear-gradient(transparent, #000 2em);
  }

  :host [part='tabs'] ::slotted(:not(vaadin-tab)) {
    margin-left: var(--lumo-space-m);
  }

  /* Centered */

  :host([theme~='centered'][orientation='horizontal']) ::slotted(vaadin-tab:first-of-type) {
    margin-inline-start: auto;
  }

  :host([theme~='centered'][orientation='horizontal']) ::slotted(vaadin-tab:last-of-type) {
    margin-inline-end: auto;
  }

  /* Small */

  :host([theme~='small']),
  :host([theme~='small']) [part='tabs'] {
    min-height: var(--lumo-size-m);
  }

  :host([theme~='small']) [part='tabs'] ::slotted(vaadin-tab) {
    font-size: var(--lumo-font-size-s);
  }

  /* Minimal */

  :host([theme~='minimal']) {
    box-shadow: none;
    --_lumo-tab-marker-display: none;
  }

  /* Hide-scroll-buttons */

  :host([theme~='hide-scroll-buttons']) [part='back-button'],
  :host([theme~='hide-scroll-buttons']) [part='forward-button'] {
    display: none;
  }

  :host([theme~='hide-scroll-buttons'][overflow~='start'][overflow~='end']:not([orientation='vertical']))
    [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: linear-gradient(
      90deg,
      transparent,
      #000 2em,
      #000 calc(100% - 2em),
      transparent 100%
    );
  }

  :host([theme~='hide-scroll-buttons'][overflow~='end']:not([orientation='vertical'])) [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: linear-gradient(90deg, #000 calc(100% - 2em), transparent 100%);
  }

  :host([theme~='hide-scroll-buttons'][overflow~='start']:not([orientation='vertical'])) [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: linear-gradient(90deg, transparent, #000 2em);
  }

  /* Equal-width tabs */
  :host([theme~='equal-width-tabs']) {
    flex: auto;
  }

  :host([theme~='equal-width-tabs']) [part='tabs'] ::slotted(vaadin-tab) {
    flex: 1 0 0%;
  }

  /* RTL specific styles */

  :host(:not([dir='rtl'])) [part='forward-button'] {
    right: 0;
  }

  :host([dir='rtl']) [part='back-button']::after {
    content: var(--lumo-icons-angle-right);
  }

  :host([dir='rtl']) [part='forward-button']::after {
    content: var(--lumo-icons-angle-left);
  }

  :host([dir='rtl'][orientation='vertical']) {
    box-shadow: 1px 0 0 0 var(--lumo-contrast-10pct);
  }

  :host([dir='rtl']) [part='forward-button'] {
    left: 0;
  }

  :host([dir='rtl']) [part='tabs'] ::slotted(:not(vaadin-tab)) {
    margin-left: 0;
    margin-right: var(--lumo-space-m);
  }

  /* Both ends overflowing */
  :host([dir='rtl'][overflow~='start'][overflow~='end']:not([orientation='vertical'])) [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: linear-gradient(
      -90deg,
      transparent 2em,
      #000 4em,
      #000 calc(100% - 4em),
      transparent calc(100% - 2em)
    );
  }

  /* End overflowing */
  :host([dir='rtl'][overflow~='end']:not([orientation='vertical'])) [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: linear-gradient(-90deg, #000 calc(100% - 4em), transparent calc(100% - 2em));
  }

  /* Start overflowing */
  :host([dir='rtl'][overflow~='start']:not([orientation='vertical'])) [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: linear-gradient(-90deg, transparent 2em, #000 4em);
  }

  :host([dir='rtl'][theme~='hide-scroll-buttons'][overflow~='start'][overflow~='end']:not([orientation='vertical']))
    [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: linear-gradient(
      -90deg,
      transparent,
      #000 2em,
      #000 calc(100% - 2em),
      transparent 100%
    );
  }

  :host([dir='rtl'][theme~='hide-scroll-buttons'][overflow~='end']:not([orientation='vertical'])) [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: linear-gradient(-90deg, #000 calc(100% - 2em), transparent 100%);
  }

  :host([dir='rtl'][theme~='hide-scroll-buttons'][overflow~='start']:not([orientation='vertical'])) [part='tabs'] {
    --_lumo-tabs-overflow-mask-image: linear-gradient(-90deg, transparent, #000 2em);
  }
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_tab {
  :host {
    box-sizing: border-box;
    padding: 0.5rem 0.75rem;
    font-family: var(--lumo-font-family);
    font-size: var(--lumo-font-size-m);
    line-height: var(--lumo-line-height-xs);
    font-weight: 500;
    opacity: 1;
    color: var(--lumo-secondary-text-color);
    transition:
      0.15s color,
      0.2s transform;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    position: relative;
    cursor: var(--lumo-clickable-cursor);
    transform-origin: 50% 100%;
    outline: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow: hidden;
    min-width: var(--lumo-size-m);
    -webkit-user-select: none;
    user-select: none;
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
    --_selection-color: var(--vaadin-selection-color, var(--lumo-primary-color));
    --_selection-color-text: var(--vaadin-selection-color-text, var(--lumo-primary-text-color));
  }

  :host([hidden]) {
    display: none !important;
  }

  :host(:not([orientation='vertical'])) {
    text-align: center;
  }

  :host([orientation='vertical']) {
    transform-origin: 0% 50%;
    padding: 0.25rem 1rem;
    min-height: var(--lumo-size-m);
    min-width: 0;
  }

  :host(:hover),
  :host([focus-ring]) {
    color: var(--lumo-body-text-color);
  }

  :host([selected]) {
    color: var(--_selection-color-text);
    transition: 0.6s color;
  }

  :host([active]:not([selected])) {
    color: var(--_selection-color-text);
    transition-duration: 0.1s;
  }

  :host::before,
  :host::after {
    content: '';
    position: absolute;
    display: var(--_lumo-tab-marker-display, block);
    bottom: 0;
    left: 50%;
    width: var(--lumo-size-s);
    height: 2px;
    background-color: var(--lumo-contrast-60pct);
    border-radius: var(--lumo-border-radius-s) var(--lumo-border-radius-s) 0 0;
    transform: translateX(-50%) scale(0);
    transform-origin: 50% 100%;
    transition: 0.14s transform cubic-bezier(0.12, 0.32, 0.54, 1);
  }

  :host([orientation='vertical'])::before,
  :host([orientation='vertical'])::after {
    left: 0;
    bottom: 50%;
    transform: translateY(50%) scale(0);
    width: 2px;
    height: var(--lumo-size-xs);
    border-radius: 0 var(--lumo-border-radius-s) var(--lumo-border-radius-s) 0;
    transform-origin: 100% 50%;
  }

  :host::after {
    box-shadow: 0 0 0 4px var(--_selection-color);
    opacity: 0.15;
    transition:
      0.15s 0.02s transform,
      0.8s 0.17s opacity;
  }

  :host([selected])::before,
  :host([selected])::after {
    background-color: var(--_selection-color);
    transform: translateX(-50%) scale(1);
    transition-timing-function: cubic-bezier(0.12, 0.32, 0.54, 1.5);
  }

  :host([orientation='vertical'][selected])::before,
  :host([orientation='vertical'][selected])::after {
    transform: translateY(50%) scale(1);
  }

  :host([selected]:not([active]))::after {
    opacity: 0;
  }

  :host(:not([orientation='vertical'])) ::slotted(a[href]) {
    justify-content: center;
  }

  :host ::slotted(a) {
    display: flex;
    width: 100%;
    align-items: center;
    height: 100%;
    margin: -0.5rem -0.75rem;
    padding: 0.5rem 0.75rem;
    outline: none;

    /*
    Override the CSS inherited from `lumo-color` and `lumo-typography`.
    Note: `!important` is needed because of the `:slotted` specificity.
  */
    text-decoration: none !important;
    color: inherit !important;
  }

  :host ::slotted(vaadin-icon) {
    margin: 0 4px;
    width: var(--lumo-icon-size-m);
    height: var(--lumo-icon-size-m);
  }

  /* Vaadin icons are based on a 16x16 grid (unlike Lumo and Material icons with 24x24), so they look too big by default */
  :host ::slotted(vaadin-icon[icon^='vaadin:']) {
    padding: 0.25rem;
    box-sizing: border-box !important;
  }

  :host(:not([dir='rtl'])) ::slotted(vaadin-icon:first-child) {
    margin-left: 0;
  }

  :host(:not([dir='rtl'])) ::slotted(vaadin-icon:last-child) {
    margin-right: 0;
  }

  :host([theme~='icon-on-top']) {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-around;
    text-align: center;
    padding-bottom: 0.5rem;
    padding-top: 0.25rem;
  }

  :host([theme~='icon-on-top']) ::slotted(a) {
    flex-direction: column;
    align-items: center;
    margin-top: -0.25rem;
    padding-top: 0.25rem;
  }

  :host([theme~='icon-on-top']) ::slotted(vaadin-icon) {
    margin: 0;
  }

  /* Disabled */

  :host([disabled]) {
    pointer-events: none;
    opacity: 1;
    color: var(--lumo-disabled-text-color);
  }

  /* Focus-ring */

  :host([focus-ring]) {
    box-shadow: inset 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
    border-radius: var(--lumo-border-radius-m);
  }

  /* RTL specific styles */

  :host([dir='rtl'])::before,
  :host([dir='rtl'])::after {
    left: auto;
    right: 50%;
    transform: translateX(50%) scale(0);
  }

  :host([dir='rtl'][selected]:not([orientation='vertical']))::before,
  :host([dir='rtl'][selected]:not([orientation='vertical']))::after {
    transform: translateX(50%) scale(1);
  }

  :host([dir='rtl']) ::slotted(vaadin-icon:first-child) {
    margin-right: 0;
  }

  :host([dir='rtl']) ::slotted(vaadin-icon:last-child) {
    margin-left: 0;
  }

  :host([orientation='vertical'][dir='rtl']) {
    transform-origin: 100% 50%;
  }

  :host([dir='rtl'][orientation='vertical'])::before,
  :host([dir='rtl'][orientation='vertical'])::after {
    left: auto;
    right: 0;
    border-radius: var(--lumo-border-radius-s) 0 0 var(--lumo-border-radius-s);
    transform-origin: 0% 50%;
  }

  @media (forced-colors: active) {
    :host([focused]) {
      outline: 1px solid;
      outline-offset: -1px;
    }

    :host([selected]) {
      border-bottom: 2px solid;
    }

    :host([orientation='vertical'][selected]) {
      border-bottom: none;
      border-left: 2px solid;
    }
  }
}

:root,
:host {
  --_lumo-vaadin-tab-inject: 1;
  --_lumo-vaadin-tab-inject-modules: lumo_components_tab;
}

:root,
:host {
  --_lumo-vaadin-tabs-inject: 1;
  --_lumo-vaadin-tabs-inject-modules: lumo_components_tabs;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_tabsheet {
  :host {
    display: flex;
    flex-direction: column;
    font-size: var(--lumo-font-size-m);
    line-height: var(--lumo-line-height-m);
    font-family: var(--lumo-font-family);
  }

  :host([hidden]) {
    display: none !important;
  }

  [part='tabs-container'] {
    position: relative;
    display: flex;
    align-items: center;
    box-shadow: inset 0 -1px 0 0 var(--lumo-contrast-10pct);
    padding: var(--lumo-space-xs) var(--lumo-space-s);
    gap: var(--lumo-space-s);
  }

  ::slotted([slot='tabs']) {
    flex: 1;
    align-self: stretch;
    min-width: 8em;
    box-shadow: initial;
    margin: calc(var(--lumo-space-xs) * -1) calc(var(--lumo-space-s) * -1);
  }

  ::slotted([hidden]) {
    display: none !important;
  }

  [part='content'] {
    position: relative;
    flex: 1;
    box-sizing: border-box;
    --vaadin-scroller-padding-block: var(--lumo-space-s);
    --vaadin-scroller-padding-inline: var(--lumo-space-m);
    border-bottom-left-radius: inherit;
    border-bottom-right-radius: inherit;
  }

  :host([theme~='bordered']) {
    border: 1px solid var(--lumo-contrast-20pct);
    border-radius: var(--lumo-border-radius-l);
  }

  :host([loading]) [part='content'] {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  :host([theme~='no-padding']) [part='content'] {
    padding: 0 !important;
    --vaadin-scroller-padding-block: 0px !important;
    --vaadin-scroller-padding-inline: 0px !important;
  }
}

:root,
:host {
  --_lumo-vaadin-tabsheet-inject: 1;
  --_lumo-vaadin-tabsheet-inject-modules:
    lumo_mixins_loader,
    lumo_components_tabsheet;

  --_lumo-vaadin-tabsheet-scroller-inject: 1;
  --_lumo-vaadin-tabsheet-scroller-inject-modules: lumo_components_scroller;
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */

@media lumo_components_upload-file {
  :host {
    padding: var(--vaadin-upload-file-padding, var(--lumo-space-s) 0);
    gap: var(--vaadin-upload-file-gap, 0 var(--lumo-space-xs));
    border-radius: var(--vaadin-upload-file-border-radius, var(--lumo-border-radius-s));
    --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
    --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
  }

  :host(:focus-visible) {
    outline: var(--_focus-ring-width) solid var(--_focus-ring-color);
    outline-offset: calc(var(--_focus-ring-width) * -1);
  }

  [part='loader'] {
    display: none;
  }

  [part='status'],
  [part='error'] {
    color: var(--lumo-secondary-text-color);
    font-size: var(--lumo-font-size-s);
  }

  [part='name'] {
    color: var(--lumo-body-text-color);
    white-space: nowrap;
  }

  [part='commands'] {
    align-self: start;
  }

  [part$='icon'] {
    font-size: var(--lumo-icon-size-m);
    font-family: 'lumo-icons';
    line-height: 1;
    align-self: start;
  }

  [part$='button'] {
    border: none;
    box-shadow: none;
    outline: none;
    padding: 0;
    border-radius: var(--lumo-border-radius-s);
    cursor: var(--lumo-clickable-cursor);
  }

  [part$='button']:focus {
    outline: var(--_focus-ring-width) solid var(--_focus-ring-color);
    outline-offset: calc(var(--_focus-ring-width) * -1);
  }

  /* Vertically align icons / buttons with the first line of text */
  [part$='icon'],
  [part$='button'] {
    margin-top: calc((1em * var(--lumo-line-height-m) - var(--lumo-icon-size-m)) / 2);
  }

  [part$='icon']::before,
  [part$='button']::before {
    background: transparent;
    mask-image: none;
    width: auto;
    height: auto;
  }

  [part='done-icon']::before {
    content: var(--lumo-icons-checkmark);
    color: var(--lumo-primary-text-color);
  }

  [part='warning-icon']::before {
    content: var(--lumo-icons-error);
    color: var(--lumo-error-text-color);
  }

  [part='start-button']::before {
    content: var(--lumo-icons-play);
  }

  [part='retry-button']::before {
    content: var(--lumo-icons-reload);
  }

  [part='remove-button']::before {
    content: var(--lumo-icons-cross);
  }

  [part='error'] {
    color: var(--lumo-error-text-color);
  }

  ::slotted([slot='progress']) {
    margin-inline-end: calc(var(--lumo-icon-size-m) + var(--lumo-space-xs));
  }

  /* THUMBNAILS VARIANT */

  :host([theme~='thumbnails']) {
    background: var(--lumo-contrast-5pct);
    border-radius: var(--lumo-border-radius-l);
    gap: 0;

    [part$='icon'] {
      margin: 0;
    }

    [part='done-icon'] {
      background: var(--lumo-contrast-5pct);
    }

    [part='warning-icon'] {
      background: var(--lumo-error-color-10pct);
    }

    & [part='meta'] {
      margin-inline-start: var(--lumo-space-s);
      overflow: hidden;
    }

    & [part='commands'] {
      padding-inline: var(--lumo-space-xs);
      align-self: center;

      & > button {
        margin: 0;
        width: var(--lumo-size-xs);
        height: var(--lumo-size-xs);
      }
    }
  }

  :host([theme~='thumbnails']) ::slotted([slot='progress']) {
    opacity: 1;
    margin: 0;
    height: auto;
    --lumo-border-radius-m: 0;
    --lumo-primary-color: var(--lumo-primary-color-10pct);
    --lumo-contrast-10pct: transparent;
  }

  :host([uploading]) [part='loader'] {
    display: block;
  }
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_upload-icon {
  :host {
    display: inline-block;
  }

  :host::before {
    content: var(--lumo-icons-upload);
    font-family: lumo-icons;
    font-size: var(--lumo-icon-size-m);
    line-height: 1;
    vertical-align: -0.25em;
    background-color: transparent;
    mask-image: none;
  }
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_upload {
  :host {
    border: var(--vaadin-upload-border-width, 1px) dashed var(--vaadin-upload-border-color, var(--lumo-contrast-20pct));
    border-radius: var(--vaadin-upload-border-radius, var(--lumo-border-radius-l));
    line-height: var(--lumo-line-height-m);
    padding: var(--vaadin-upload-padding, var(--lumo-space-m));
    transition:
      background-color 0.6s,
      border-color 0.6s;
  }

  :host([nodrop]) {
    border: none;
    border-radius: 0;
    padding: 0;
    transition: none;
  }

  [part='drop-label'] {
    color: var(--vaadin-upload-drop-label-color, var(--lumo-secondary-text-color));
    gap: var(--vaadin-upload-drop-label-gap, var(--lumo-space-xs));
    font-family: var(--lumo-font-family);
    padding: 0 var(--lumo-space-s);
  }

  [part='primary-buttons'] {
    gap: 0;
  }

  :host([dragover-valid]) {
    --vaadin-upload-background: var(--lumo-primary-color-10pct);
    --vaadin-upload-border-color: var(--lumo-primary-color-50pct);
    transition:
      background-color 0.1s,
      border-color 0.1s;
  }

  :host([dragover-valid]) [part='drop-label'] {
    color: var(--lumo-primary-text-color);
  }

  :host([disabled]) [part='drop-label'],
  :host([max-files-reached]) [part='drop-label'] {
    color: var(--lumo-disabled-text-color);
  }
}

:root,
:host {
  --_lumo-vaadin-upload-inject: 1;
  --_lumo-vaadin-upload-inject-modules: lumo_components_upload;

  --_lumo-vaadin-upload-icon-inject: 1;
  --_lumo-vaadin-upload-icon-inject-modules: lumo_components_upload-icon;

  --_lumo-vaadin-upload-file-inject: 1;
  --_lumo-vaadin-upload-file-inject-modules:
    lumo_mixins_loader,
    lumo_mixins_field-button,
    lumo_components_upload-file;
}

:where(:root),
:where(:host) {
  --vaadin-upload-gap: 0;
  --vaadin-upload-file-list-divider-color: var(
    --lumo-contrast-10pct
  );
}
/**
 * @license
 * Copyright (c) 2000 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */

:root,
:host {
  --_lumo-vaadin-upload-button-inject: 1;
  --_lumo-vaadin-upload-button-inject-modules: lumo_components_button;
}
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
/**
 * @license
 * Copyright (c) 2017 - 2026 Vaadin Ltd.
 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
 */
@media lumo_components_vertical-layout {
  :host([theme~='margin']) {
    margin: var(--vaadin-vertical-layout-margin, var(--lumo-space-m));
  }

  :host([theme~='padding']) {
    padding: var(--vaadin-vertical-layout-padding, var(--lumo-space-m));
  }

  :host([theme~='spacing-xs']) {
    gap: var(--lumo-space-xs);
  }

  :host([theme~='spacing-s']) {
    gap: var(--lumo-space-s);
  }

  :host([theme~='spacing']) {
    gap: var(--vaadin-vertical-layout-gap, var(--lumo-space-m));
  }

  :host([theme~='spacing-l']) {
    gap: var(--lumo-space-l);
  }

  :host([theme~='spacing-xl']) {
    gap: var(--lumo-space-xl);
  }
}

:root,
:host {
  --_lumo-vaadin-vertical-layout-inject: 1;
  --_lumo-vaadin-vertical-layout-inject-modules: lumo_components_vertical-layout;
}

:where(:root),
:where(:host) {
  --vaadin-lumo-theme: 1;
}
