@optionfactory/fml 8.0.3 → 9.0.0-rc10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/LICENSE.md +7 -0
  2. package/README.md +87 -0
  3. package/dist/client-errors.iife.js +30 -9
  4. package/dist/client-errors.iife.js.map +1 -1
  5. package/dist/client-errors.iife.min.js +1 -1
  6. package/dist/client-errors.iife.min.js.map +1 -1
  7. package/dist/custom-elements.json +1622 -415
  8. package/dist/fml.css +21 -10
  9. package/dist/fml.css.map +1 -1
  10. package/dist/fml.d.mts +3 -1322
  11. package/dist/fml.iife.js +5767 -2313
  12. package/dist/fml.iife.js.map +1 -1
  13. package/dist/fml.iife.min.js +1 -1
  14. package/dist/fml.iife.min.js.map +1 -1
  15. package/dist/fml.min.mjs +1 -1
  16. package/dist/fml.min.mjs.map +1 -1
  17. package/dist/fml.mjs +6 -8737
  18. package/dist/fml.mjs.map +1 -1
  19. package/dist/ftl.d.mts +430 -92
  20. package/dist/ftl.iife.js +1314 -809
  21. package/dist/ftl.iife.js.map +1 -1
  22. package/dist/ftl.iife.min.js +1 -1
  23. package/dist/ftl.iife.min.js.map +1 -1
  24. package/dist/ftl.min.mjs +1 -1
  25. package/dist/ftl.min.mjs.map +1 -1
  26. package/dist/ftl.mjs +1313 -810
  27. package/dist/ftl.mjs.map +1 -1
  28. package/dist/ful.css +21 -10
  29. package/dist/ful.css.map +1 -1
  30. package/dist/ful.d.mts +973 -252
  31. package/dist/ful.iife.js +4176 -1416
  32. package/dist/ful.iife.js.map +1 -1
  33. package/dist/ful.iife.min.js +1 -1
  34. package/dist/ful.iife.min.js.map +1 -1
  35. package/dist/ful.min.mjs +1 -1
  36. package/dist/ful.min.mjs.map +1 -1
  37. package/dist/ful.mjs +4163 -1416
  38. package/dist/ful.mjs.map +1 -1
  39. package/dist/httpc.d.mts +114 -19
  40. package/dist/httpc.iife.js +253 -83
  41. package/dist/httpc.iife.js.map +1 -1
  42. package/dist/httpc.iife.min.js +1 -1
  43. package/dist/httpc.iife.min.js.map +1 -1
  44. package/dist/httpc.min.mjs +1 -1
  45. package/dist/httpc.min.mjs.map +1 -1
  46. package/dist/httpc.mjs +250 -84
  47. package/dist/httpc.mjs.map +1 -1
  48. package/dist/vscode.html-custom-data.json +660 -58
  49. package/dist/web-types.json +1577 -354
  50. package/package.json +16 -8
package/dist/fml.css CHANGED
@@ -1,11 +1,22 @@
1
- ful-errors{--ful-errors-color:var(--ful-error-color);--ful-errors-bg:var(--ful-error-bg);--ful-errors-border-color:var(--ful-error-border-color);display:block;padding:1rem;margin-bottom:1rem;color:var(--ful-errors-color);background-color:var(--ful-errors-bg);border:1px solid var(--ful-errors-border-color);border-radius:var(--ful-border-radius)}ful-field-error{--ful-field-error-invalid-color:var(--ful-invalid-color);display:none;:invalid &{display:block;margin-top:.25rem;color:var(--ful-field-error-invalid-color)}}ful-field-warnings{display:none;&:not(:empty){display:block}}ful-field-warning{display:block;margin:.5rem 0;padding:15px;color:var(--ful-warning-color);background-color:var(--ful-warning-bg);border-color:var(--ful-warning-border-color);border-radius:8px;animation:show-and-hide 5s ease forwards;animation-composition:initial}@keyframes show-and-hide{0%{opacity:0;display:block}3%{opacity:1}90%{opacity:1}to{opacity:0;display:none}}
2
- :root{--ful-color:var(--bs-body-color, #212529);--ful-bg:var(--bs-body-bg, #fff);--ful-border-width:var(--bs-border-width, 1px);--ful-border-radius:var(--bs-border-radius, 0.375rem);--ful-border-color:var(--bs-border-color, #dee2e6);--ful-disabled-bg:var(--bs-secondary-bg, #e9ecef);--ful-selected-bg:var(--bs-tertiary-bg, #f8f9fa);--ful-active-color:#fff;--ful-active-bg:#007376;--ful-focus-border-color:#86b7fe;--ful-focus-box-shadow:0 0 0 0.25rem rgba(13,110,253,.25);--ful-invalid-color:var(--bs-form-invalid-color, #dc3545);--ful-invalid-border-color:var(--bs-form-invalid-border-color, #dc3545);--ful-invalid-box-shadow:0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);--ful-error-color:var(--bs-danger-text-emphasis, #58151c);--ful-error-bg:var(--bs-danger-bg-subtle, #f8d7da);--ful-error-border-color:var(--bs-danger-border-subtle, #f1aeb5);--ful-warning-color:var(--bs-warning-text-emphasis, #664d03);--ful-warning-bg:var(--bs-warning-bg-subtle, #fff3cd);--ful-warning-border-color:var(--bs-warning-border-subtle, #ffe69c);--ful-scrollbar-bg:var(--bs-secondary-bg, #e9ecef);--ful-scrollbar-thumb-bg:var(--ful-active-bg);--ful-scrollbar-width:12px;--ful-scrollbar-border-width:1px;--ful-inputs-bg:var(--ful-bg);--ful-inputs-border-width:var(--ful-border-width);--ful-inputs-border-radius:var(--ful-border-radius);--ful-inputs-border-color:var(--ful-border-color)}[hidden]{display:none!important}
3
- ful-input-file{&>.default-dropzone{border:5px solid blue;min-height:100px;display:flex;align-items:center;justify-content:center;cursor:pointer}&:not([dropzone])>.default-dropzone,&:not([dropzone])>.dropzone,&:not([itemlist])>ful-item-list,&[noinput]>.input-group{display:none}&[readonly]{&>.default-dropzone,&>.dropzone,&>.input-group>input{pointer-events:none}}}
4
- .ful-input,ful-input,ful-input-file,ful-input-instant,ful-input-local-date,ful-input-local-time{display:block;&[uppercase] input,&[uppercase] textarea{text-transform:uppercase}&:not(:defined){visibility:hidden}&[required]>.form-label>label:before{content:"* ";display:inline;font-weight:700;color:var(--ful-color)}& input:focus,& textarea:focus{border-color:var(--ful-focus-border-color);box-shadow:var(--ful-focus-box-shadow)}&:invalid input,&:invalid textarea{border-color:var(--ful-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20fill%3D%22none%22%20stroke%3D%22%23dc3545%22%20viewBox%3D%220%200%2012%2012%22%3E%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%224.5%22%2F%3E%3Cpath%20stroke-linejoin%3D%22round%22%20d%3D%22M5.8%203.6h.4L6%206.5z%22%2F%3E%3Ccircle%20cx%3D%226%22%20cy%3D%228.2%22%20r%3D%22.6%22%20fill%3D%22%23dc3545%22%20stroke%3D%22none%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}&:invalid input:focus,&:invalid textarea:focus{border-color:var(--ful-invalid-border-color);box-shadow:var(--ful-invalid-box-shadow)}}ful-item-list{--ful-item-list-item-color:var(--ful-active-color);--ful-item-list-item-border-radius:var(--ful-border-radius);--ful-item-list-item-bg:var(--ful-active-bg);display:grid;grid-template-columns:1fr auto;gap:4px;&:has(>ful-item>:nth-child(3):last-child){grid-template-columns:1fr auto auto}&>ful-item:first-child{margin-top:6px}&>ful-item:last-child{margin-bottom:6px}&>ful-item{display:grid;grid-column:1/-1;grid-template-columns:subgrid;align-items:center;text-align:right;line-height:21px;&>:first-child{min-width:30px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px .5rem;color:var(--ful-item-list-item-color);border-radius:var(--ful-item-list-item-border-radius);background-color:var(--ful-item-list-item-bg)}&>:first-child,&>:last-child{text-align:left}}}
5
- ful-select{--ful-select-border-width:var(--ful-inputs-border-width);--ful-select-border-radius:var(--ful-inputs-border-radius);--ful-select-border-color:var(--ful-inputs-border-color);--ful-select-bg:var(--ful-inputs-bg);--ful-select-badge-color:var(--ful-active-color);--ful-select-badge-bg:var(--ful-active-bg);--ful-select-badge-border-radius:var(--ful-border-radius);--ful-select-focus-border-color:var(--ful-focus-border-color);--ful-select-focus-box-shadow:var(--ful-focus-box-shadow);display:block;cursor:pointer;badges{display:flex;flex-wrap:nowrap;gap:3px;overflow:hidden;&:has(badge){min-width:2em}}&:not([itemlist])>ful-item-list,&[itemlist] badges{display:none}badge{padding:5px 7px;margin:5px 0;color:var(--ful-select-badge-color);white-space:nowrap;border-radius:var(--ful-select-badge-border-radius);background-color:var(--ful-select-badge-bg);display:flex;align-items:center;line-height:1em}.ful-select-input-container{position:relative;display:block;flex:1 1 auto;width:1%;border:var(--ful-select-border-width) solid var(--ful-select-border-color);border-radius:var(--ful-select-border-radius);&:has(input:focus){border-color:var(--ful-select-focus-border-color);outline:0;box-shadow:var(--ful-select-focus-box-shadow)}}.ful-select-input{display:flex;flex:1 1 auto;padding-left:5px;padding-right:2.25rem;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23343a40%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22m2%205%206%206%206-6%22%2F%3E%3C%2Fsvg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 12px;background-color:var(--ful-select-bg);overflow:hidden;z-index:5;border-radius:var(--ful-select-border-radius)}.ful-select-input-container:not(:first-child) .ful-select-input{border-top-left-radius:0;border-bottom-left-radius:0}.ful-select-input-container:not(:last-child) .ful-select-input{border-top-right-radius:0;border-bottom-right-radius:0}&:invalid .ful-select-input-container{border-color:var(--ful-invalid-border-color)}&:disabled .ful-select-input{background-size:0;background-color:var(--ful-disabled-bg)}&[readonly] .ful-select-input{background-size:0}&[itemlist]:disabled,&[itemlist][readonly]{&>.input-group{display:none}&>ful-item-list>ful-item:first-child{margin-top:0}&>ful-item-list>ful-item{&>:first-child{grid-column:1/-1}&>:last-child{display:none}}}&[required]>.form-label>label:before{content:"* ";display:inline;font-weight:700;color:var(--ful-color)}input{border:0;margin:0;outline:0;padding:.375rem 0 .375rem 7px;line-height:1.5;flex:1 1 auto;min-width:1em;width:1em;background-color:transparent}}ful-dropdown{--ful-dropdown-color:var(--ful-color);--ful-dropdown-selected-bg:var(--ful-selected-bg);--ful-dropdown-active-bg:var(--ful-active-bg);--ful-dropdown-border-width:var(--ful-border-width);--ful-dropdown-border-radius:var(--ful-border-radius);--ful-dropdown-border-color:var(--ful-border-color);--ful-dropdown-background-color:var(--ful-bg);--ful-dropdown-scrollbar-width:var(--ful-scrollbar-width);--ful-dropdown-scrollbar-border-width:var(--ful-scrollbar-border-width);--ful-dropdown-scrollbar-bg:var(--ful-scrollbar-bg);--ful-dropdown-scrollbar-thumb-bg:var(--ful-scrollbar-thumb-bg);display:block;position:absolute;z-index:1000;padding:.5rem 0;top:100%;margin-top:2px;background-color:var(--ful-dropdown-background-color);background-clip:padding-box;border:var(--ful-dropdown-border-width) solid var(--ful-dropdown-border-color);border-radius:var(--ful-dropdown-border-radius);width:100%;menu{height:auto;max-height:200px;overflow-y:auto;padding:0;margin:0;&:not(:has(*)):before{font-family:bootstrap-icons;display:block;content:"\f8c3";margin:auto;width:1rem}&::-webkit-scrollbar{width:12px}&::-webkit-scrollbar-track{background-color:var(--ful-dropdown-scrollbar-bg);border-radius:var(--ful-dropdown-scrollbar-width)}&::-webkit-scrollbar-thumb{border-radius:var(--ful-dropdown-scrollbar-width);background-color:var(--ful-dropdown-active-bg);border:var(--ful-dropdown-scrollbar-border-width) solid var(--ful-dropdown-scrollbar-bg)}}li{padding:.5rem .751rem;display:block;border:0;cursor:pointer}li,li:hover,li[selected]{color:var(--ful-dropdown-color)}li:hover,li[selected]{background-color:var(--ful-dropdown-selected-bg)}li:active{color:#fff;background-color:var(--ful-dropdown-active-bg)}}
6
- ful-radio-group{--ful-radio-group-label-border-color:var(--ful-border-color);--ful-radio-group-label-bg:inherit;--ful-radio-group-label-checked-border-color:var(--ful-active-bg);--ful-radio-group-label-checked-bg:#eefbfb;--ful-radio-group-label-disabled-border-color:var(--ful-border-color);--ful-radio-group-label-disabled-bg:var(--ful-disabled-bg);--ful-radio-group-active-bg:var(--ful-active-bg);display:block;&:not(:defined){visibility:hidden}&[required]>fieldset>legend:before{content:"* ";display:inline;font-weight:700;color:var(--ful-color)}&>fieldset{&>legend{font-size:16px;margin:0}&>section{display:grid;gap:10px;grid-template-columns:1fr;& label{display:flex;align-items:center;border:1px solid var(--ful-radio-group-label-border-color);background-color:var(--ful-radio-group-label-bg);border-radius:4px;padding:8px 10px;height:100%;cursor:pointer;&>div{flex:1}}& label:has(input[type=radio]:checked){background-color:var(--ful-radio-group-label-checked-bg);border-color:var(--ful-radio-group-label-checked-border-color)}& label:has(input[type=radio]:disabled){background-color:var(--ful-radio-group-label-disabled-bg);border-color:var(--ful-radio-group-label-disabled-border-color)}& input[type=radio]{margin-left:8px;margin-right:12px;height:16px;width:16px;vertical-align:text-bottom;accent-color:var(--ful-radio-group-label-checked-border-color)}}}&.horizontal>fieldset>section{gap:16px;grid-template-columns:1fr 1fr}&:invalid>fieldset>section label{border-color:var(--ful-radio-group-active-bg)}}ful-radio{display:none}
7
- ful-checkbox{--ful-checkbox-active-bg:var(--ful-active-bg);display:block;&:not(:defined){visibility:hidden}&[required]>.form-check>.form-check-label>label:before{content:"* ";display:inline;font-weight:700;color:var(--ful-color)}& input[type=checkbox]:checked{background-color:var(--ful-checkbox-active-bg);border-color:var(--ful-checkbox-active-bg)}&:invalid input[type=checkbox]{border-color:var(--ful-invalid-border-color);&:checked{background-color:var(--ful-invalid-color)}&:focus{box-shadow:var(--ful-invalid-box-shadow)}}}
8
- ful-spinner{--ful-spinner-icon-width:1rem;--ful-spinner-icon-height:1rem;--ful-spinner-icon-border-width:0.2em;--ful-spinner-icon-vertical-align:-0.125em;--ful-spinner-icon-animation-speed:0.75s;--ful-spinner-icon-animation-name:spinner-border;--ful-spinner-icon-color:currentcolor;&:not(:defined){visibility:hidden}&.centered{display:flex;align-items:center;justify-content:center}&.big{--ful-spinner-icon-width:2rem;--ful-spinner-icon-height:2rem;--ful-spinner-icon-border-width:0.25em}&.bigger{--ful-spinner-icon-width:4rem;--ful-spinner-icon-height:4rem;--ful-spinner-icon-border-width:0.5em}&.backdrop{--ful-spinner-icon-width:4rem;--ful-spinner-icon-height:4rem;--ful-spinner-icon-border-width:0.5em;z-index:2000;position:fixed;top:0;left:0;width:100vw;height:100vh;overflow-x:hidden;overflow-y:auto;outline:0;background-color:hsla(0,0%,65.5%,.8);display:flex;align-items:center;justify-content:center;&>.ful-spinner-wrapper{padding:2rem;background-color:#fff;border-radius:1rem}}&>.ful-spinner-wrapper{display:inline;&>.ful-spinner-icon{display:inline-block;width:var(--ful-spinner-icon-width);height:var(--ful-spinner-icon-height);vertical-align:var(--ful-spinner-icon-vertical-align);border-radius:50%;border:var(--ful-spinner-icon-border-width) solid var(--ful-spinner-icon-color);border-right-color:transparent;animation:var(--ful-spinner-icon-animation-speed) linear infinite var(--ful-spinner-icon-animation-name)}}}body:has(ful-spinner.backdrop:not([hidden])){overflow:hidden}
9
- ful-pagination{display:block;margin-top:auto;&:not(:defined){visibility:hidden}& i.bi:before{line-height:24px}& .reload{display:flex;align-items:center;font-size:24px}}ful-table{display:block;&:not(:defined){visibility:hidden}& tbody[data-ref=feedback],& tbody[data-ref=initial],& tbody[data-ref=loading]{height:360px;padding:1.5rem;& td{text-align:center;vertical-align:middle;& p{margin-top:1rem}}}& .pagination-index{align-self:center}}ful-sorter{display:block;&:not(:defined){visibility:hidden}cursor:pointer;&:before{display:inline-block;vertical-align:text-top;font-family:bootstrap-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f574"}&:not([order]):before{color:#ccc}&[order=asc]:before{content:"\f574"}&[order=desc]:before{content:"\f575"}}
10
- ful-filter-instant,ful-filter-local-date,ful-filter-text{--ful-filter-active-bg:var(--ful-active-bg);--ful-filter-active-color:var(--ful-active-color);display:block;&:not(:defined){visibility:hidden}&[required]>.form-label>label:before{content:"* ";display:inline;font-weight:700;color:var(--ful-color)}.dropdown-item:active{color:var(--ful-filter-active-color);background-color:var(--ful-filter-active-bg)}}
1
+ @layer ful.theme, ful.components, ful.hidden;@layer ful.theme{@property --ful-border-width{syntax:"<length>";inherits:true;initial-value:1px}@property --ful-border-radius{syntax:"<length>";inherits:true;initial-value:.375rem}@property --ful-scrollbar-width{syntax:"<length>";inherits:true;initial-value:12px}@property --ful-scrollbar-border-width{syntax:"<length>";inherits:true;initial-value:1px}:root{--ful-color:light-dark(#212529, #dee2e6);--ful-bg:light-dark(#fff, #212529);--ful-muted-color:light-dark(#495057, #adb5bd);--ful-border-width:1px;--ful-border-radius:0.375rem;--ful-border-color:light-dark(#dee2e6, #495057);--ful-disabled-bg:light-dark(#e9ecef, #343a40);--ful-selected-bg:light-dark(#f8f9fa, #343a40);--ful-active-color:#fff;--ful-active-bg:#007376;--ful-accent-ink:light-dark(var(--ful-active-bg), color-mix(in srgb, var(--ful-active-bg) 55%, #fff));--ful-focus-border-color:color-mix(in srgb, var(--ful-active-bg) 75%, #fff);--ful-focus-box-shadow:0 0 0 0.25rem color-mix(in srgb, var(--ful-active-bg) 25%, transparent);--ful-backdrop-color:rgba(0,0,0,.5);--ful-invalid-color:light-dark(#dc3545, #ea868f);--ful-invalid-border-color:var(--ful-invalid-color);--ful-invalid-box-shadow:0 0 0 0.25rem color-mix(in srgb, var(--ful-invalid-color) 25%, transparent);--ful-error-color:#58151c;--ful-error-bg:#f8d7da;--ful-error-border-color:#f1aeb5;--ful-warning-color:#664d03;--ful-warning-bg:#fff3cd;--ful-warning-border-color:#ffe69c;--ful-scrollbar-bg:var(--ful-disabled-bg);--ful-scrollbar-thumb-bg:var(--ful-active-bg);--ful-scrollbar-width:12px;--ful-scrollbar-border-width:1px;--ful-controls-bg:var(--ful-bg);--ful-controls-border-width:var(--ful-border-width);--ful-controls-border-radius:var(--ful-border-radius);--ful-controls-border-color:var(--ful-border-color);--ful-controls-height:calc(1.5em + .75rem + 2px);--ful-spinner-icon-width:1rem;--ful-spinner-icon-height:1rem;--ful-spinner-icon-border-width:0.2em;--ful-spinner-icon-animation-speed:0.75s;--ful-spinner-icon-animation-name:spinner-border;--ful-spinner-icon-color:currentcolor}}
2
+ @layer ful.components{ful-errors{--ful-errors-color:var(--ful-error-color);--ful-errors-bg:var(--ful-error-bg);--ful-errors-border-color:var(--ful-error-border-color);display:block;padding:1rem;margin-bottom:1rem;color:var(--ful-errors-color);background-color:var(--ful-errors-bg);border:1px solid var(--ful-errors-border-color);border-radius:var(--ful-border-radius)}ful-field-error{--ful-field-error-invalid-color:var(--ful-invalid-color);display:none;font-size:.875rem;:invalid &{display:block;margin-top:.25rem;color:var(--ful-field-error-invalid-color)}}ful-field-warnings{display:none;&:not(:empty){display:block}}ful-field-warning{display:block;margin:.5rem 0;padding:15px;color:var(--ful-warning-color);background-color:var(--ful-warning-bg);border-color:var(--ful-warning-border-color);border-radius:8px;animation:show-and-hide 5s ease forwards;animation-composition:initial}@keyframes show-and-hide{0%{opacity:0;display:block}3%{opacity:1}90%{opacity:1}to{opacity:0;display:none}}}
3
+ @layer ful.components{*,:after,:before{box-sizing:border-box}:has(>ful-control-group){display:block}:has(>fieldset>ful-radio-list)>fieldset>legend,:has(>ful-control-group)>label{display:inline-block;margin:0 .25rem .5rem 0;color:var(--ful-color)}:has(>fieldset>ful-radio-list)[required]>fieldset>legend:before,:has(>ful-choice)[required]>ful-choice>label:before,:has(>ful-control-group)[required]>label:before{content:"* ";display:inline;font-weight:700;color:var(--ful-color)}ful-control-group{position:relative;display:flex;flex-wrap:nowrap;width:100%;color:var(--ful-color);background-color:var(--ful-controls-bg);border:var(--ful-controls-border-width) solid var(--ful-controls-border-color);border-radius:var(--ful-controls-border-radius);&:has(:focus-visible):not(:has([popover] :focus-visible)){border-color:var(--ful-focus-border-color);box-shadow:var(--ful-focus-box-shadow)}&>input,&>textarea{flex:1 1 auto;width:1%;min-width:0;min-height:var(--ful-controls-height);padding:.375rem .75rem;font:inherit;line-height:1.5;color:inherit;background-color:transparent;border:0;border-radius:0;&:focus{outline:0}}&>ful-affix:first-child{border-top-left-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width));border-bottom-left-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width))}&>ful-affix:has(+ful-dropdown),&>ful-affix:last-child{border-top-right-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width));border-bottom-right-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width))}}ful-affix{display:flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:var(--ful-controls-height);padding:.375rem .75rem;line-height:1.5;color:var(--ful-color);white-space:nowrap;background-color:var(--ful-selected-bg);border:0;border-radius:0}ful-affix:has(>button){padding:0;overflow:hidden}ful-affix>button{display:flex;flex:1 1 auto;align-self:stretch;align-items:center;justify-content:center;padding:.375rem .75rem;font:inherit;line-height:1.5;color:var(--ful-color);white-space:nowrap;background-color:transparent;cursor:pointer}ful-affix>button,ful-affix>button.ful-button,ful-control{border:0;border-radius:0}ful-control{position:relative;display:flex;flex:1 1 auto;align-items:center;min-width:0;min-height:var(--ful-controls-height);cursor:text}:invalid>ful-control-group{border-color:var(--ful-invalid-border-color);&:has(:focus-visible):not(:has([popover] :focus-visible)){border-color:var(--ful-invalid-border-color);box-shadow:var(--ful-invalid-box-shadow)}}:disabled>ful-control-group{background-color:var(--ful-disabled-bg)}ful-form [aria-disabled=true]{opacity:.65;cursor:default}ful-badge{display:flex;flex:0 0 auto;align-items:center;margin:5px 0;padding:5px 7px;line-height:1em;color:var(--ful-color);white-space:nowrap;cursor:pointer;background-color:var(--ful-selected-bg);border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);&:hover{background-color:var(--ful-disabled-bg)}&:focus-visible{border-color:var(--ful-focus-border-color);outline:0}}ful-choice{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.25rem 0;&>label{margin:0;cursor:pointer;flex:1 1 0;min-width:0}& input[type=checkbox]{width:1em;height:1em;margin:0;font-size:inherit;accent-color:var(--ful-active-bg);&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}}&[switch] input[type=checkbox]{appearance:none;position:relative;width:2em;height:1em;margin:0;cursor:pointer;background-color:var(--ful-border-color);border-radius:1em;transition:background-color .15s ease-in-out;&:before{content:"";display:block;width:1em;height:1em;background-color:#fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.15);transition:translate .15s ease-in-out}&:checked{background-color:var(--ful-active-bg);&:before{translate:1em 0}}@media (prefers-reduced-motion:reduce){&,&:before{transition:none}}}}:has(>ful-choice):invalid ful-choice input[type=checkbox]{outline:1px solid var(--ful-invalid-border-color);outline-offset:2px}ful-icon,ful-sorter:before{background-color:currentcolor;mask-repeat:no-repeat;mask-position:center;mask-size:contain}ful-icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em;&[name=search]{mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001q.044.06.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1 1 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0"/></svg>')}&[name=chevron-left]{mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0"/></svg>')}&[name=chevron-right]{mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708"/></svg>')}&[name=chevron-down]{mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708"/></svg>')}&[name=arrow-clockwise]{mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8 3a5 5 0 1 0 4.546 2.914.5.5 0 0 1 .908-.417A6 6 0 1 1 8 2z"/><path d="M8 4.466V.534a.25.25 0 0 1 .41-.192l2.36 1.966c.12.1.12.284 0 .384L8.41 4.658A.25.25 0 0 1 8 4.466"/></svg>')}&[name=x-lg]{mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8z"/></svg>')}&[name=info-circle]{mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/><path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/></svg>')}&[name=info-circle-fill]{mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2"/></svg>')}&[name=upload]{mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5"/><path d="M7.646 1.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1-.708.708L8.5 2.707V11.5a.5.5 0 0 1-1 0V2.707L5.354 4.854a.5.5 0 1 1-.708-.708z"/></svg>')}&[name=arrow-down]{mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8 1a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L7.5 13.293V1.5A.5.5 0 0 1 8 1"/></svg>')}&[name=arrow-up]{mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L7.5 2.707V14.5a.5.5 0 0 0 .5.5"/></svg>')}&[name=inbox]{mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M4.98 4a.5.5 0 0 0-.39.188L1.54 8H6a.5.5 0 0 1 .5.5 1.5 1.5 0 1 0 3 0A.5.5 0 0 1 10 8h4.46l-3.05-3.812A.5.5 0 0 0 11.02 4zm9.954 5H10.45a2.5 2.5 0 0 1-4.9 0H1.066l.32 2.562a.5.5 0 0 0 .497.438h12.234a.5.5 0 0 0 .496-.438zM3.809 3.563A1.5 1.5 0 0 1 4.981 3h6.038a1.5 1.5 0 0 1 1.172.563l3.7 4.625a.5.5 0 0 1 .105.374l-.39 3.124A1.5 1.5 0 0 1 14.117 13H1.883a1.5 1.5 0 0 1-1.489-1.314l-.39-3.124a.5.5 0 0 1 .106-.374z"/></svg>')}&[name=star]{mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M2.866 14.85c-.078.444.36.791.746.593l4.39-2.256 4.389 2.256c.386.198.824-.149.746-.592l-.83-4.73 3.522-3.356c.33-.314.16-.888-.282-.95l-4.898-.696L8.465.792a.513.513 0 0 0-.927 0L5.354 5.12l-4.898.696c-.441.062-.612.636-.283.95l3.523 3.356-.83 4.73zm4.905-2.767-3.686 1.894.694-3.957a.56.56 0 0 0-.163-.505L1.71 6.745l4.052-.576a.53.53 0 0 0 .393-.288L8 2.223l1.847 3.658a.53.53 0 0 0 .393.288l4.052.575-2.906 2.77a.56.56 0 0 0-.163.506l.694 3.957-3.686-1.894a.5.5 0 0 0-.461 0z"/></svg>')}}:has(>ful-pagination-bar){display:block;margin-top:auto}ful-pagination-bar{display:block;user-select:none;& ul{display:flex;align-items:center;gap:.25rem;margin:.5rem 0 0;padding:0;list-style:none}& li[data-ref=index]{margin-left:0;margin-right:auto;color:var(--ful-color)}& li[data-ref=reload] button{border:0;font-size:1.25rem}& button{display:flex;align-items:center;justify-content:center;min-width:2.25rem;height:2.25rem;padding:0 .5rem;font-size:inherit;font-family:inherit;line-height:1.5;color:var(--ful-color);text-decoration:none;background-color:transparent;border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);cursor:pointer}& button:hover{background-color:var(--ful-selected-bg)}& button:disabled{opacity:.5;pointer-events:none}& button:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}}ful-table-wrapper{& table{width:100%;margin-bottom:1rem;border-collapse:collapse}& caption,& table{color:var(--ful-color)}& caption{padding:.5rem 0;text-align:left;caption-side:bottom}& :is(th,td){padding:.5rem;vertical-align:top;border-bottom:var(--ful-border-width) solid var(--ful-border-color)}& thead th{border-bottom-width:calc(2 * var(--ful-border-width))}& td[colspan]{padding:1.5rem;text-align:center;vertical-align:middle}& tbody[data-ref=feedback]{&>tr>td>div{padding:1rem;color:var(--ful-error-color);background-color:var(--ful-error-bg);border:var(--ful-border-width) solid var(--ful-error-border-color);border-radius:var(--ful-border-radius)}& p{margin:0 0 .5rem;font-weight:600}}}ful-sorter{&:before{content:"";display:inline-block;width:1em;height:1em;vertical-align:text-top;mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8 1a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L7.5 13.293V1.5A.5.5 0 0 1 8 1"/></svg>')}&:not([order]):before{opacity:.35}&[order=desc]:before{mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L7.5 2.707V14.5a.5.5 0 0 0 .5.5"/></svg>')}}}
4
+ @layer ful.components{.ful-button{--ful-button-height:var(--ful-controls-height);--ful-button-border-width:var(--ful-controls-border-width);--ful-button-border-radius:var(--ful-controls-border-radius);--ful-button-color:var(--ful-active-color);--ful-button-bg:var(--ful-active-bg);--ful-button-border-color:var(--ful-button-bg);--ful-button-hover-bg:color-mix(in srgb, var(--ful-active-bg) 85%, #000);--ful-button-hover-color:var(--ful-button-color);display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-height:var(--ful-button-height);padding:.375rem .75rem;font:inherit;line-height:1.5;text-decoration:none;color:var(--ful-button-color);background-color:var(--ful-button-bg);border:var(--ful-button-border-width) solid var(--ful-button-border-color);border-radius:var(--ful-button-border-radius);cursor:pointer;&:hover{color:var(--ful-button-hover-color);background-color:var(--ful-button-hover-bg)}&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}&:disabled,&[aria-disabled=true]{opacity:.5;pointer-events:none}&.ghost{--ful-button-color:var(--ful-accent-ink);--ful-button-bg:transparent;--ful-button-border-color:var(--ful-accent-ink)}&.ghost,&.soft{--ful-button-hover-color:var(--ful-active-color);--ful-button-hover-bg:var(--ful-active-bg)}&.soft{--ful-button-color:var(--ful-color);--ful-button-bg:var(--ful-selected-bg);--ful-button-border-color:var(--ful-controls-border-color)}&.small{--ful-button-height:calc(1.25em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem}}}
5
+ @layer ful.components{:is(ful-tabs,ful-wizard,ful-dialog,ful-drawer){& [loading=""]{position:relative}& [loading=""]:after{content:"";position:absolute;inset:0;margin:auto;width:var(--ful-spinner-icon-width);height:var(--ful-spinner-icon-height);border-radius:50%;border:var(--ful-spinner-icon-border-width) solid var(--ful-spinner-icon-color);border-inline-end-color:transparent;animation:var(--ful-spinner-icon-animation-speed) linear infinite var(--ful-spinner-icon-animation-name);@media (prefers-reduced-motion:reduce){animation:none}}& .ful-section-error{margin-bottom:1rem;padding:1rem;white-space:pre-line;color:var(--ful-error-color);background-color:var(--ful-error-bg);border:var(--ful-border-width) solid var(--ful-error-border-color);border-radius:var(--ful-border-radius)}}}
6
+ @layer ful.components{:is(ful-input,.ful-input,ful-input-file,ful-input-local-date,ful-input-local-time,ful-input-instant,ful-checkbox,ful-radio-group,ful-select,ful-filter-text,ful-filter-number,ful-filter-boolean,ful-filter-local-date,ful-filter-instant,ful-tabs,ful-wizard,ful-tooltip,ful-dialog,ful-drawer,ful-table,ful-pagination):not(:state(rendered)){visibility:hidden}}
7
+ @layer ful.components{:has(>ful-control-group>input,>ful-control-group>textarea){&[uppercase] input,&[uppercase] textarea{text-transform:uppercase}}ful-item-list{--ful-item-list-item-color:var(--ful-active-color);--ful-item-list-item-border-radius:var(--ful-border-radius);--ful-item-list-item-bg:var(--ful-active-bg);display:grid;gap:.5rem;&>ful-item:first-child{margin-top:.5rem}&>ful-item:last-child{margin-bottom:.5rem}&>ful-item>div{display:flex;align-items:center;gap:.5rem;min-width:0;min-height:calc(var(--ful-controls-height) + 2 * var(--ful-controls-border-width));padding:5px .25rem 5px .5rem;color:var(--ful-item-list-item-color);border-radius:var(--ful-item-list-item-border-radius);background-color:var(--ful-item-list-item-bg);&:has(:focus-visible){outline:2px solid var(--ful-active-bg);outline-offset:2px}&>span{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}&>span+span{flex:0 0 auto;font-size:.875em;opacity:.75}&>button{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:calc(-.625rem + var(--ful-controls-height));height:calc(-.625rem + var(--ful-controls-height));padding:0;font-size:inherit;font-family:inherit;color:inherit;background-color:transparent;border:0;border-radius:calc(-.1875rem + var(--ful-item-list-item-border-radius));cursor:pointer;& ful-icon{width:1em;height:1em}&:hover{background-color:color-mix(in srgb,var(--ful-invalid-color) 25%,transparent)}&:focus-visible{outline:0}}}}}
8
+ @layer ful.components{:has(>ful-control-group>input[type=file]){&>ful-control-group>input[type=file]{padding-left:0}&>ful-control-group>input[type=file]::file-selector-button{margin:-.375rem .75rem -.375rem 0;padding:.375rem .75rem;height:var(--ful-controls-height);font-size:inherit;font-family:inherit;line-height:1.5;color:var(--ful-color);background-color:var(--ful-selected-bg);border:0;cursor:pointer}&>ful-control-group>input[type=file]:first-child::file-selector-button{border-start-start-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width));border-end-start-radius:calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width))}&>ful-control-group>input[type=file]::file-selector-button:hover{color:var(--ful-active-color);background-color:var(--ful-active-bg)}&>ful-control-group>input[type=file]:focus::file-selector-button{outline:0}&[readonly]>ful-control-group>input[type=file]::file-selector-button{display:none}&[readonly]>ful-control-group>input[type=file]{padding-left:.75rem}&:disabled>ful-control-group>input[type=file]::file-selector-button{opacity:.5;cursor:default}&>.default-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;min-height:100px;margin-top:.5rem;padding:1.5rem;color:var(--ful-color);text-align:center;background-color:var(--ful-bg);border:var(--ful-controls-border-width) dashed var(--ful-controls-border-color);border-radius:var(--ful-controls-border-radius)}&>.default-dropzone,&>.dropzone{cursor:pointer}&>.default-dropzone:hover{border-color:var(--ful-focus-border-color);box-shadow:var(--ful-focus-box-shadow)}&[dragover]>.default-dropzone{color:var(--ful-active-color);background-color:var(--ful-active-bg);border-color:var(--ful-active-bg);box-shadow:none}&:disabled>.default-dropzone,&:disabled>.dropzone,&:not([dropzone])>.default-dropzone,&:not([dropzone])>.dropzone,&:not([item-list])>ful-item-list,&[noinput]>ful-control-group,&[readonly]>.default-dropzone,&[readonly]>.dropzone{display:none}&[readonly]{&>ful-control-group>input,&>ful-item-list{pointer-events:none}}&:disabled>ful-item-list{pointer-events:none}&[item-list][readonly]{&>ful-control-group{display:none}&>ful-item-list>ful-item:first-child{margin-top:0}&>ful-item-list>ful-item:last-child{margin-bottom:0}}&:disabled>ful-item-list ful-item button,&[readonly]>ful-item-list ful-item button{display:none}&:disabled>ful-item-list>ful-item>div,&[readonly]>ful-item-list>ful-item>div{padding-right:.5rem}}}
9
+ @layer ful.components{:has(>ful-control-group>ful-dropdown){cursor:pointer;&:not([item-list])>ful-item-list,&[item-list] ful-control-group ful-badge{display:none}&>ful-control-group>ful-control{cursor:pointer;padding-left:5px;padding-right:2.25rem;overflow:hidden;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23343a40%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22m2%205%206%206%206-6%22%2F%3E%3C%2Fsvg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 12px;&>ful-badge+ful-badge{margin-left:3px}}&[item-list][readonly]{&>ful-control-group{display:none}&>ful-item-list>ful-item:first-child{margin-top:0}&>ful-item-list>ful-item:last-child{margin-bottom:0}}&:disabled>ful-item-list button,&[readonly]>ful-item-list button{display:none}&:disabled>ful-item-list>ful-item>div,&[readonly]>ful-item-list>ful-item>div{padding-right:.5rem}&:disabled,&[readonly]{cursor:default}&:disabled>ful-control-group>ful-control,&[readonly]>ful-control-group>ful-control{background-size:0;cursor:default;padding-right:5px}&>ful-control-group>ful-control>input{flex:1 1 auto;width:1em;min-width:1em;margin:0;padding:.375rem 0 .375rem 7px;font-size:inherit;font-family:inherit;line-height:1.5;color:var(--ful-color);background-color:transparent;border:0;outline:0}}ful-dropdown{--ful-dropdown-color:var(--ful-color);--ful-dropdown-selected-bg:var(--ful-selected-bg);--ful-dropdown-active-bg:var(--ful-active-bg);--ful-dropdown-border-width:var(--ful-border-width);--ful-dropdown-border-radius:var(--ful-border-radius);--ful-dropdown-border-color:var(--ful-border-color);--ful-dropdown-background-color:var(--ful-bg);--ful-dropdown-scrollbar-width:var(--ful-scrollbar-width);--ful-dropdown-scrollbar-border-width:var(--ful-scrollbar-border-width);--ful-dropdown-scrollbar-bg:var(--ful-scrollbar-bg);--ful-dropdown-scrollbar-thumb-bg:var(--ful-scrollbar-thumb-bg);padding:.5rem 0;margin:.3rem 0 0;background-color:var(--ful-dropdown-background-color);background-clip:padding-box;border:var(--ful-dropdown-border-width) solid var(--ful-dropdown-border-color);border-radius:var(--ful-dropdown-border-radius);&:popover-open{display:block;top:anchor(bottom);left:anchor(left);width:anchor-size(width)}p[data-ref=empty]{margin:0;padding:.5rem .751rem;color:var(--ful-dropdown-color);opacity:.65}menu{height:auto;max-height:200px;overflow-y:auto;padding:0;margin:0;&::-webkit-scrollbar{width:12px}&::-webkit-scrollbar-track{background-color:var(--ful-dropdown-scrollbar-bg);border-radius:var(--ful-dropdown-scrollbar-width)}&::-webkit-scrollbar-thumb{border-radius:var(--ful-dropdown-scrollbar-width);background-color:var(--ful-dropdown-active-bg);border:var(--ful-dropdown-scrollbar-border-width) solid var(--ful-dropdown-scrollbar-bg)}}li{padding:.5rem .751rem;display:block;border:0;cursor:pointer}li,li:hover,li[selected]{color:var(--ful-dropdown-color)}li:hover,li[selected]{background-color:var(--ful-dropdown-selected-bg)}li[picked]{background-color:color-mix(in srgb,var(--ful-dropdown-active-bg) 12%,transparent);box-shadow:inset .2rem 0 0 var(--ful-dropdown-active-bg)}li:active{color:#fff;background-color:var(--ful-dropdown-active-bg)}}}
10
+ @layer ful.components{:has(>fieldset>ful-radio-list){--ful-radio-group-label-border-color:var(--ful-border-color);--ful-radio-group-label-bg:inherit;--ful-radio-group-label-checked-border-color:var(--ful-accent-ink);--ful-radio-group-label-checked-bg:light-dark(#eefbfb, var(--ful-selected-bg));--ful-radio-group-label-disabled-border-color:var(--ful-border-color);--ful-radio-group-label-disabled-bg:var(--ful-disabled-bg);--ful-radio-group-active-bg:var(--ful-active-bg);display:block;&[required]>fieldset>legend:before{content:"* ";display:inline;font-weight:700;color:var(--ful-color)}&>fieldset{display:block;min-width:0;width:100%;margin:0;padding:0;border:0;&>legend{font-size:16px;width:100%;padding:0;line-height:inherit}}&.horizontal>fieldset>ful-radio-list{gap:16px;grid-template-columns:1fr 1fr}&:invalid>fieldset>ful-radio-list label{border-color:var(--ful-invalid-border-color)}}ful-radio-list{display:grid;gap:10px;grid-template-columns:1fr;& label{display:flex;align-items:center;border:1px solid var(--ful-radio-group-label-border-color);background-color:var(--ful-radio-group-label-bg);border-radius:4px;padding:8px 10px;height:100%;cursor:pointer;&>div{flex:1}}& label:has(input[type=radio]:checked){background-color:var(--ful-radio-group-label-checked-bg);border-color:var(--ful-radio-group-label-checked-border-color)}& label:has(input[type=radio]:disabled){background-color:var(--ful-radio-group-label-disabled-bg);border-color:var(--ful-radio-group-label-disabled-border-color)}& input[type=radio]{margin-left:8px;margin-right:12px;height:16px;width:16px;vertical-align:text-bottom;accent-color:var(--ful-accent-ink)}& input[type=radio]:focus-visible{outline:0}& label:has(input[type=radio]:focus-visible){border-color:var(--ful-focus-border-color);box-shadow:var(--ful-focus-box-shadow)}}ful-radio{display:none}}
11
+ @layer ful.components{:has(>ful-choice){display:block}}
12
+ @layer ful.components{ful-spinner>.ful-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}ful-spinner{display:inline-flex;align-items:center;gap:.375rem;&:after{content:"";flex:0 0 auto;display:inline-block;width:var(--ful-spinner-icon-width);height:var(--ful-spinner-icon-height);border-radius:50%;border:var(--ful-spinner-icon-border-width) solid var(--ful-spinner-icon-color);border-right-color:transparent;animation:var(--ful-spinner-icon-animation-speed) linear infinite var(--ful-spinner-icon-animation-name)}@media (prefers-reduced-motion:reduce){&:after{animation:none}}&.centered{display:flex;align-items:center;justify-content:center}&.big{--ful-spinner-icon-width:2rem;--ful-spinner-icon-height:2rem;--ful-spinner-icon-border-width:0.25rem}&.bigger{--ful-spinner-icon-width:4rem;--ful-spinner-icon-height:4rem;--ful-spinner-icon-border-width:0.5rem}&.backdrop{--ful-spinner-icon-width:4rem;--ful-spinner-icon-height:4rem;--ful-spinner-icon-border-width:0.5rem;z-index:2000;position:fixed;inset:0;display:grid;place-items:center;background-color:hsla(0,0%,65.5%,.8);&:before{content:"";width:calc(4rem + var(--ful-spinner-icon-width));height:calc(4rem + var(--ful-spinner-icon-height));background-color:var(--ful-bg);border-radius:1rem}&:after,&:before{grid-area:1/1}}}body:has(ful-spinner.backdrop:not([hidden])){overflow:hidden}@keyframes spinner-border{to{transform:rotate(1turn)}}}
13
+ @layer ful.components{:has(>ful-table-wrapper){display:block;& th{text-align:start}&[aria-busy=true] tbody:not([data-ref]){opacity:.6;pointer-events:none}& tbody[data-ref=feedback],& tbody[data-ref=initial],& tbody[data-ref=loading]{height:360px;padding:1.5rem;& td{& p{margin-top:1rem}}}}ful-sorter{display:block;&:not(:state(rendered)){visibility:hidden}cursor:pointer;&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}}}
14
+ @layer ful.components{ful-affix:has(>button[data-ref=operator],>button[data-ref=sensitivity]){min-width:4rem;&>button[data-ref=operator]{min-width:4rem}&>button[data-ref=sensitivity]{min-width:2.5rem}&>button[data-ref=operator]:hover,&>button[data-ref=sensitivity]:hover{color:var(--ful-active-color);background-color:var(--ful-active-bg)}&>button[data-ref=operator]:focus,&>button[data-ref=sensitivity]:focus{outline:0}&>button[data-ref=operator]:focus-visible,&>button[data-ref=sensitivity]:focus-visible{background-color:color-mix(in srgb,var(--ful-active-bg) 20%,transparent)}&>button[data-ref=operator]:disabled,&>button[data-ref=sensitivity]:disabled{cursor:default;opacity:.5}}ful-control-group>ful-control>input{flex:1 1 auto;width:1%;min-width:0;min-height:var(--ful-controls-height);padding:.375rem .75rem;font:inherit;line-height:1.5;color:var(--ful-color);background-color:transparent;border:0;border-radius:0}ful-control-group>ful-control>input:focus{outline:0}ful-control-group>button[data-ref=value]{display:flex;align-items:center;justify-content:flex-start;flex:1 1 auto;min-width:0;padding:.375rem 2rem .375rem .75rem;font-size:inherit;font-family:inherit;line-height:1.5;color:var(--ful-color);white-space:nowrap;text-align:left;background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23343a40%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22m2%205%206%206%206-6%22%2F%3E%3C%2Fsvg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 12px;border:0;border-radius:0;cursor:pointer}ful-control-group>button[data-ref=value]:focus{outline:0}ful-control-group>button[data-ref=value]:disabled{cursor:default;opacity:.5;background-size:0}ful-affix:has(>button[data-ref=operator],>button[data-ref=sensitivity])>ul[popover],ful-control-group>button[data-ref=value]+ul[popover]{top:anchor(bottom);left:anchor(left);margin:.3rem 0 0;min-width:6rem;padding:.5rem 0;list-style:none;color:var(--ful-color);background-color:var(--ful-bg);background-clip:padding-box;border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);&:popover-open{display:block}&>li>a{display:flex;align-items:center;gap:.5rem;padding:.25rem 1rem;color:var(--ful-color);text-decoration:none;cursor:pointer;&>span:first-child{flex:0 0 2.25em;text-align:center}}&>li>a[aria-checked=true]{background-color:color-mix(in srgb,var(--ful-active-bg) 12%,transparent);box-shadow:inset .2rem 0 0 var(--ful-active-bg)}&>li>a:hover{background-color:var(--ful-selected-bg)}&>li>a:focus-visible{background-color:var(--ful-selected-bg);outline:0}&>li>a:active{color:var(--ful-active-color);background-color:var(--ful-active-bg)}}}
15
+ @layer ful.components{.ful-tip,button:has(+ful-note){display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;font:inherit;position:relative;top:calc(.5ex - .5cap);width:1.5rem;height:1.5rem;padding:0;border:0;border-radius:50%;background:none;color:var(--ful-muted-color,var(--ful-color));cursor:pointer;& ful-icon{width:1rem;height:1rem}&:hover{color:var(--ful-accent-ink);background-color:color-mix(in srgb,var(--ful-active-bg) 12%,transparent)}&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}}.ful-note,ful-note{--ful-note-gap:0.5rem;--ful-note-callout-size:0.5rem;--ful-note-callout-edge:calc(var(--ful-border-radius) + var(--ful-note-callout-size));display:none;max-width:20rem;padding:.5rem .75rem;color:var(--ful-color);background-color:var(--ful-bg);background-clip:padding-box;border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);font-size:.875rem;font-weight:400;font-style:normal;text-align:start;margin:var(--ful-note-gap) 0 0;&:popover-open{display:block;overflow:visible}&:popover-open:after{content:"";position:absolute;width:var(--ful-note-callout-size);height:var(--ful-note-callout-size);background-color:inherit;border:0 solid var(--ful-border-color);rotate:45deg}&:popover-open:after{top:calc(-.5 * var(--ful-note-callout-size) - .5 * var(--ful-border-width));left:clamp(var(--ful-note-callout-edge),var(--ful-note-callout-inline,50%),100% - var(--ful-note-callout-edge));translate:-50% 0;border-block-start-width:var(--ful-border-width);border-inline-start-width:var(--ful-border-width)}&[placement=top]:popover-open{margin:0 0 var(--ful-note-gap);&:after{top:auto;bottom:calc(-.5 * var(--ful-note-callout-size) - .5 * var(--ful-border-width));border-block-start-width:0;border-inline-start-width:0;border-block-end-width:var(--ful-border-width);border-inline-end-width:var(--ful-border-width)}}&[placement=right]:popover-open{margin:0 0 0 var(--ful-note-gap);&:after{top:clamp(var(--ful-note-callout-edge),var(--ful-note-callout-block,50%),100% - var(--ful-note-callout-edge));left:calc(-.5 * var(--ful-note-callout-size) - .5 * var(--ful-border-width));translate:0 -50%;border-block-start-width:0;border-inline-start-width:var(--ful-border-width);border-block-end-width:var(--ful-border-width)}}&[placement=left]:popover-open{margin:0 var(--ful-note-gap) 0 0;&:after{top:clamp(var(--ful-note-callout-edge),var(--ful-note-callout-block,50%),100% - var(--ful-note-callout-edge));left:auto;right:calc(-.5 * var(--ful-note-callout-size) - .5 * var(--ful-border-width));translate:0 -50%;border-block-start-width:var(--ful-border-width);border-inline-end-width:var(--ful-border-width);border-inline-start-width:0}}}dialog.ful-dialog{--ful-dialog-width:min(90vw, 32rem);width:var(--ful-dialog-width);padding:0;border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);background-color:var(--ful-bg);color:var(--ful-color);&::backdrop{background-color:var(--ful-backdrop-color)}& .ful-dialog-header,&>header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem 1.25rem .5rem;& h2{margin:0;font-size:1.125rem;margin-inline-end:auto}&>:not(h2,button[data-ref=close]){flex:0 0 auto}&>button[data-ref=close]{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;border:0;border-radius:var(--ful-border-radius);background:none;color:var(--ful-muted-color,var(--ful-color));cursor:pointer;& ful-icon{width:1em;height:1em}&:hover{color:var(--ful-active-color);background-color:var(--ful-active-bg)}&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}}&>button[data-ref=close]:only-child{margin-inline-start:auto}}& .ful-dialog-body,&>[data-ref=body]{padding:.5rem 1.25rem}&>[data-ref=loading]{display:grid;place-items:center;padding:2rem 1.25rem}&>[data-ref=error]{margin:.5rem 1.25rem;padding:1rem;white-space:pre-line;color:var(--ful-error-color);background-color:var(--ful-error-bg);border:var(--ful-border-width) solid var(--ful-error-border-color);border-radius:var(--ful-border-radius)}&>footer.ful-dialog-footer:empty{display:none}& .ful-dialog-body :is(.ful-dialog-header,.ful-dialog-footer){padding-inline:0}& .ful-dialog-footer,&>footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.5rem 1.25rem 1rem;&>button:not(.ful-button){padding:.375rem .75rem;height:var(--ful-controls-height);border:var(--ful-controls-border-width) solid var(--ful-controls-border-color);border-radius:var(--ful-controls-border-radius);background-color:var(--ful-selected-bg);color:var(--ful-color);cursor:pointer;&:hover{background-color:var(--ful-active-bg);color:var(--ful-active-color)}&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}}}}}
16
+ @layer ful.components{dialog.ful-drawer{--ful-drawer-width:min(90vw, 28rem);@media (max-width:30rem){--ful-drawer-width:100vw;border-radius:0}position:fixed;inset-block:0;inset-inline-start:auto;inset-inline-end:0;width:var(--ful-drawer-width);max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;border:var(--ful-border-width) solid var(--ful-border-color);border-start-start-radius:var(--ful-border-radius);border-end-start-radius:var(--ful-border-radius);background-color:var(--ful-bg);color:var(--ful-color);&::backdrop{background-color:var(--ful-backdrop-color)}&[open]{display:flex;flex-direction:column;animation:ful-drawer-slide-in .2s ease-out}&>header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem 1.25rem .5rem;& h2{margin:0;font-size:1.125rem}&>button{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;border:0;border-radius:var(--ful-border-radius);background:none;color:var(--ful-muted-color,var(--ful-color));cursor:pointer;& ful-icon{width:1em;height:1em}&:hover{color:var(--ful-active-color);background-color:var(--ful-active-bg)}&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}}}&>section{padding:.5rem 1.25rem 1rem;overflow-y:auto;&[data-ref=content]{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;&>footer:last-child{margin-block-start:auto}}&[data-ref=loading]{display:grid;place-items:center;flex-grow:1}&[data-ref=error]{margin:0 1.25rem;padding:1rem;white-space:pre-line;color:var(--ful-error-color);background-color:var(--ful-error-bg);border:var(--ful-border-width) solid var(--ful-error-border-color);border-radius:var(--ful-border-radius)}}&[placement=start]{inset-inline-end:auto;inset-inline-start:0;border-start-start-radius:0;border-end-start-radius:0;border-start-end-radius:var(--ful-border-radius);border-end-end-radius:var(--ful-border-radius);&[open]{animation-name:ful-drawer-slide-in-start}}&:dir(rtl)[open]{animation-name:ful-drawer-slide-in-start}&[placement=start]:dir(rtl)[open]{animation-name:ful-drawer-slide-in}}@keyframes ful-drawer-slide-in{0%{transform:translateX(1rem);opacity:0}}@keyframes ful-drawer-slide-in-start{0%{transform:translateX(-1rem);opacity:0}}@media (prefers-reduced-motion:reduce){dialog.ful-drawer[open]{animation:none}}}
17
+ @layer ful.components{ful-toasts:not(:has(>ful-toast)){display:none}:has(>ful-toast){--ful-toasts-max-width:min(90vw, 24rem);position:fixed;top:1rem;inset-inline-end:1rem;z-index:1200;display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;max-width:var(--ful-toasts-max-width);&>ful-toast{display:flex;align-items:flex-start;gap:.5rem;padding:.625rem .75rem;border:var(--ful-controls-border-width) solid var(--ful-border-color);border-radius:var(--ful-controls-border-radius);background-color:var(--ful-bg);color:var(--ful-color);white-space:pre-line;animation:ful-toast-in .2s ease-out;&>div:first-child{flex-grow:1}&>button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:1.25rem;height:1.25rem;padding:0;border:0;border-radius:var(--ful-border-radius);background:none;color:inherit;cursor:pointer;& ful-icon{width:1em;height:1em}&:hover{color:var(--ful-active-color);background-color:var(--ful-active-bg)}&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}}&.success{border-color:var(--ful-accent-ink);color:var(--ful-accent-ink)}&.warning{border-color:var(--ful-warning-border-color);background-color:var(--ful-warning-bg);color:var(--ful-warning-color)}&.error{border-color:var(--ful-error-border-color);background-color:var(--ful-error-bg);color:var(--ful-error-color)}&.ful-toast-out{animation:ful-toast-out .2s ease-in forwards}}}@keyframes ful-toast-in{0%{transform:translateY(-.5rem);opacity:0}}@keyframes ful-toast-out{to{transform:translateY(-.5rem);opacity:0}}}
18
+ @layer ful.components{:has(>ful-tablist){display:block;&>[role=tabpanel]{padding-block-start:1rem}}ful-tablist{display:flex;flex-wrap:wrap;gap:.25rem;border-block-end:var(--ful-border-width) solid var(--ful-border-color);&>button{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-height:var(--ful-controls-height);padding:.375rem .75rem;font:inherit;line-height:1.5;color:var(--ful-muted-color,var(--ful-color));background:none;border:var(--ful-border-width) solid transparent;border-start-start-radius:var(--ful-border-radius);border-start-end-radius:var(--ful-border-radius);cursor:pointer;&:hover{color:var(--ful-color);background-color:var(--ful-selected-bg)}&:focus-visible{outline:0;box-shadow:var(--ful-focus-box-shadow)}&[aria-selected=true]{color:var(--ful-color);background-color:var(--ful-bg);border-color:var(--ful-border-color) var(--ful-border-color) transparent;font-weight:600}}}}
19
+ @layer ful.components{:has(>ful-accordion-group){display:block}ful-accordion-group{display:block;&>details{color:var(--ful-color);background-color:var(--ful-bg);border:var(--ful-border-width) solid var(--ful-border-color);border-radius:var(--ful-border-radius);&+details{margin-top:.5rem}&:has(>summary:focus-visible){border-color:var(--ful-focus-border-color);box-shadow:var(--ful-focus-box-shadow)}&>summary{display:flex;align-items:center;gap:.5rem;min-height:var(--ful-controls-height);padding:.375rem .75rem;font:inherit;line-height:1.5;cursor:pointer;list-style:none;outline:0;&::-webkit-details-marker{display:none}&:after{content:"";margin-inline-start:auto;flex:0 0 auto;width:1em;height:1em;background-color:currentcolor;mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708"/></svg>');mask-repeat:no-repeat;mask-position:center;mask-size:contain;transition:rotate .2s ease-out;@media (prefers-reduced-motion:reduce){transition:none}}}&[open]>summary:after{rotate:180deg}&>:not(summary){padding:.5rem .75rem .75rem}}}}
20
+ @layer ful.components{:has(>ful-steps){display:flex;flex-direction:column;&>section:not([aria-current=step]){display:none}}ful-steps{display:block;& ol{display:flex;flex-wrap:wrap;margin:0 0 1rem;padding:0;list-style:none}& li:not([aria-current=step]){display:none}& li[aria-current=step]{display:flex;align-items:center;flex:0 1 auto;min-height:var(--ful-controls-height);padding:.375rem .5rem;font-weight:700;color:var(--ful-accent-ink)}}ful-wizard{&[progress=timeline]{& ful-steps li{display:flex;justify-content:center;flex:1 1 auto;min-width:min(100%,8rem);text-align:center;color:var(--ful-accent-ink);border-block-end:calc(2 * var(--ful-border-width)) solid var(--ful-accent-ink)}& ful-steps li[aria-current=step]~li{color:color-mix(in srgb,var(--ful-color) 65%,var(--ful-bg));border-block-end-color:var(--ful-border-color)}}&[progress=dots]{& ful-steps ol{gap:.375rem;margin-block-end:1rem}& ful-steps li{display:block;flex:0 0 auto;min-width:0;min-height:0;width:.5rem;height:.5rem;padding:0;font-size:0;border-radius:50%;background-color:var(--ful-accent-ink)}& ful-steps li[aria-current=step]{background-color:var(--ful-active-bg);box-shadow:0 0 0 .125rem color-mix(in srgb,var(--ful-active-bg) 35%,transparent)}& ful-steps li[aria-current=step]~li{background-color:var(--ful-border-color)}}&[progress=none]{& ful-steps{display:none}}}}
21
+ @layer ful.hidden{[hidden]{display:none}}
11
22
  /*# sourceMappingURL=fml.css.map */
package/dist/fml.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fml.css","sources":["../src/ful/elements/errors.css","../src/ful/elements/form.css","../src/ful/elements/files.css","../src/ful/elements/input.css","../src/ful/elements/select.css","../src/ful/elements/radio.css","../src/ful/elements/checkbox.css","../src/ful/elements/spinner.css","../src/ful/elements/table.css","../src/ful/elements/filters.css"],"sourcesContent":["ful-errors {\n --ful-errors-color: var(--ful-error-color);\n --ful-errors-bg: var(--ful-error-bg);\n --ful-errors-border-color: var(--ful-error-border-color);\n\n display: block;\n padding: 1rem;\n margin-bottom: 1rem;\n color: var(--ful-errors-color);\n background-color: var(--ful-errors-bg);\n border: 1px solid var(--ful-errors-border-color);\n border-radius: var(--ful-border-radius);\n}\n\nful-field-error {\n --ful-field-error-invalid-color: var(--ful-invalid-color);\n display: none;\n\n :invalid & {\n display: block;\n margin-top: 0.25rem;\n color: var(--ful-field-error-invalid-color);\n }\n}\n\nful-field-warnings {\n display: none;\n &:not(:empty) {\n display: block;\n }\n}\n\nful-field-warning {\n display: block;\n margin: 0.5rem 0;\n padding: 15px;\n color: var(--ful-warning-color);\n background-color: var(--ful-warning-bg);\n border-color: var(--ful-warning-border-color);\n border-radius: 8px;\n animation: show-and-hide 5s ease forwards;\n animation-composition: initial;\n}\n\n@keyframes show-and-hide {\n 0% {\n opacity: 0;\n display: block;\n }\n\n 3% {\n opacity: 1;\n }\n\n 90% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n display: none;\n }\n}\n",":root {\n --ful-color: var(--bs-body-color, #212529);\n --ful-bg: var(--bs-body-bg, #fff);\n\n --ful-border-width: var(--bs-border-width, 1px);\n --ful-border-radius: var(--bs-border-radius, 0.375rem);\n --ful-border-color: var(--bs-border-color, #dee2e6);\n\n --ful-disabled-bg: var(--bs-secondary-bg, #e9ecef);\n --ful-selected-bg: var(--bs-tertiary-bg, #f8f9fa);\n\n --ful-active-color: white;\n --ful-active-bg: #007376;\n\n --ful-focus-border-color: #86b7fe;\n --ful-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n\n --ful-invalid-color: var(--bs-form-invalid-color, #dc3545);\n --ful-invalid-border-color: var(--bs-form-invalid-border-color, #dc3545);\n --ful-invalid-box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);\n\n --ful-error-color: var(--bs-danger-text-emphasis, #58151c);\n --ful-error-bg: var(--bs-danger-bg-subtle, #f8d7da);\n --ful-error-border-color: var(--bs-danger-border-subtle, #f1aeb5);\n\n --ful-warning-color: var(--bs-warning-text-emphasis, #664d03);\n --ful-warning-bg: var(--bs-warning-bg-subtle, #fff3cd);\n --ful-warning-border-color: var(--bs-warning-border-subtle, #ffe69c);\n\n --ful-scrollbar-bg: var(--bs-secondary-bg, #e9ecef);\n --ful-scrollbar-thumb-bg: var(--ful-active-bg);\n --ful-scrollbar-width: 12px;\n --ful-scrollbar-border-width: 1px;\n\n --ful-inputs-bg: var(--ful-bg);\n --ful-inputs-border-width: var(--ful-border-width);\n --ful-inputs-border-radius: var(--ful-border-radius);\n --ful-inputs-border-color: var(--ful-border-color);\n}\n\n[hidden] {\n /* biome-ignore lint/complexity/noImportantStyles: must beat an element's own display */\n display: none !important;\n}\n","ful-input-file {\n & > .default-dropzone {\n border: 5px solid blue;\n min-height: 100px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n }\n\n &[noinput] > .input-group {\n display: none;\n }\n\n &:not([dropzone]) > .default-dropzone,\n &:not([dropzone]) > .dropzone {\n display: none;\n }\n\n &:not([itemlist]) > ful-item-list {\n display: none;\n }\n\n &[readonly] {\n & > .default-dropzone,\n & > .dropzone {\n pointer-events: none;\n }\n\n & > .input-group > input {\n pointer-events: none;\n }\n }\n}\n","ful-input,\n.ful-input,\nful-input-file,\nful-input-local-date,\nful-input-local-time,\nful-input-instant {\n display: block;\n\n &[uppercase] input,\n &[uppercase] textarea {\n text-transform: uppercase;\n }\n\n &:not(:defined) {\n visibility: hidden;\n }\n\n &[required] > .form-label > label::before {\n content: \"* \";\n display: inline;\n font-weight: 700;\n color: var(--ful-color);\n }\n\n & textarea:focus,\n & input:focus {\n border-color: var(--ful-focus-border-color);\n box-shadow: var(--ful-focus-box-shadow);\n }\n\n &:invalid textarea,\n &:invalid input {\n border-color: var(--ful-invalid-border-color);\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n }\n\n &:invalid textarea:focus,\n &:invalid input:focus {\n border-color: var(--ful-invalid-border-color);\n box-shadow: var(--ful-invalid-box-shadow);\n }\n}\n\nful-item-list {\n --ful-item-list-item-color: var(--ful-active-color);\n --ful-item-list-item-border-radius: var(--ful-border-radius);\n --ful-item-list-item-bg: var(--ful-active-bg);\n\n display: grid;\n grid-template-columns: 1fr auto;\n gap: 4px;\n\n &:has(> ful-item > *:nth-child(3):last-child) {\n grid-template-columns: 1fr auto auto;\n }\n\n & > ful-item:first-child {\n margin-top: 6px;\n }\n\n & > ful-item:last-child {\n margin-bottom: 6px;\n }\n\n & > ful-item {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: subgrid;\n align-items: center;\n text-align: right;\n line-height: 21px;\n\n & > *:first-child {\n text-align: left;\n min-width: 30px;\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding: 5px 0.5rem;\n color: var(--ful-item-list-item-color);\n border-radius: var(--ful-item-list-item-border-radius);\n background-color: var(--ful-item-list-item-bg);\n }\n\n & > *:last-child {\n text-align: left;\n }\n }\n}\n","ful-select {\n --ful-select-border-width: var(--ful-inputs-border-width);\n --ful-select-border-radius: var(--ful-inputs-border-radius);\n --ful-select-border-color: var(--ful-inputs-border-color);\n --ful-select-bg: var(--ful-inputs-bg);\n\n --ful-select-badge-color: var(--ful-active-color);\n --ful-select-badge-bg: var(--ful-active-bg);\n --ful-select-badge-border-radius: var(--ful-border-radius);\n --ful-select-focus-border-color: var(--ful-focus-border-color);\n --ful-select-focus-box-shadow: var(--ful-focus-box-shadow);\n\n display: block;\n cursor: pointer;\n\n badges {\n display: flex;\n flex-wrap: nowrap;\n gap: 3px;\n overflow: hidden;\n\n &:has(badge) {\n min-width: 2em;\n }\n }\n\n &[itemlist] badges {\n display: none;\n }\n\n &:not([itemlist]) > ful-item-list {\n display: none;\n }\n\n badge {\n padding: 5px 7px;\n margin: 5px 0;\n color: var(--ful-select-badge-color);\n white-space: nowrap;\n border-radius: var(--ful-select-badge-border-radius);\n background-color: var(--ful-select-badge-bg);\n display: flex;\n align-items: center;\n line-height: 1em;\n }\n\n .ful-select-input-container {\n position: relative;\n display: block;\n flex: 1 1 auto;\n width: 1%;\n border: var(--ful-select-border-width) solid var(--ful-select-border-color);\n border-radius: var(--ful-select-border-radius);\n\n &:has(input:focus) {\n border-color: var(--ful-select-focus-border-color);\n outline: 0;\n box-shadow: var(--ful-select-focus-box-shadow);\n }\n }\n\n .ful-select-input {\n display: flex;\n flex: 1 1 auto;\n padding-left: 5px;\n padding-right: 2.25rem;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n background-position: right 0.75rem center;\n background-repeat: no-repeat;\n background-size: 16px 12px;\n background-color: var(--ful-select-bg);\n overflow: hidden;\n z-index: 5;\n border-radius: var(--ful-select-border-radius);\n }\n\n .ful-select-input-container:not(:first-child) .ful-select-input {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n .ful-select-input-container:not(:last-child) .ful-select-input {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &:invalid .ful-select-input-container {\n border-color: var(--ful-invalid-border-color);\n }\n\n &:disabled .ful-select-input {\n background-size: 0;\n background-color: var(--ful-disabled-bg);\n }\n\n &[readonly] .ful-select-input {\n background-size: 0;\n }\n\n &[itemlist][readonly],\n &[itemlist]:disabled {\n & > .input-group {\n display: none;\n }\n & > ful-item-list > ful-item:first-child {\n margin-top: 0;\n }\n & > ful-item-list > ful-item {\n & > *:first-child {\n grid-column: 1 / -1;\n }\n & > *:last-child {\n display: none;\n }\n }\n }\n\n &[required] > .form-label > label::before {\n content: \"* \";\n display: inline;\n font-weight: 700;\n color: var(--ful-color);\n }\n\n input {\n border: 0;\n margin: 0;\n outline: 0;\n padding: 0.375rem 0 0.375rem 7px;\n line-height: 1.5;\n flex: 1 1 auto;\n min-width: 1em;\n width: 1em;\n background-color: transparent;\n }\n}\n\nful-dropdown {\n --ful-dropdown-color: var(--ful-color);\n --ful-dropdown-selected-bg: var(--ful-selected-bg);\n --ful-dropdown-active-bg: var(--ful-active-bg);\n --ful-dropdown-border-width: var(--ful-border-width);\n --ful-dropdown-border-radius: var(--ful-border-radius);\n --ful-dropdown-border-color: var(--ful-border-color);\n --ful-dropdown-background-color: var(--ful-bg);\n --ful-dropdown-scrollbar-width: var(--ful-scrollbar-width);\n --ful-dropdown-scrollbar-border-width: var(--ful-scrollbar-border-width);\n --ful-dropdown-scrollbar-bg: var(--ful-scrollbar-bg);\n --ful-dropdown-scrollbar-thumb-bg: var(--ful-scrollbar-thumb-bg);\n\n display: block;\n position: absolute;\n z-index: 1000;\n padding: 0.5rem 0;\n top: 100%;\n margin-top: 2px;\n\n background-color: var(--ful-dropdown-background-color);\n background-clip: padding-box;\n border: var(--ful-dropdown-border-width) solid var(--ful-dropdown-border-color);\n border-radius: var(--ful-dropdown-border-radius);\n width: 100%;\n\n menu {\n height: auto;\n max-height: 200px;\n overflow-y: auto;\n padding: 0;\n margin: 0;\n\n &:not(:has(*))::before {\n font-family: bootstrap-icons;\n display: block;\n content: \"\\f8c3\";\n margin: auto;\n width: 1rem;\n }\n\n &::-webkit-scrollbar {\n width: 12px;\n }\n\n &::-webkit-scrollbar-track {\n background-color: var(--ful-dropdown-scrollbar-bg);\n border-radius: var(--ful-dropdown-scrollbar-width);\n }\n\n &::-webkit-scrollbar-thumb {\n border-radius: var(--ful-dropdown-scrollbar-width);\n background-color: var(--ful-dropdown-active-bg);\n border: var(--ful-dropdown-scrollbar-border-width) solid var(--ful-dropdown-scrollbar-bg);\n }\n }\n\n li {\n padding: 0.5rem 0.751rem;\n color: var(--ful-dropdown-color);\n display: block;\n border: 0;\n cursor: pointer;\n }\n\n li:hover,\n li[selected] {\n color: var(--ful-dropdown-color);\n background-color: var(--ful-dropdown-selected-bg);\n }\n\n li:active {\n color: #fff;\n background-color: var(--ful-dropdown-active-bg);\n }\n}\n","ful-radio-group {\n --ful-radio-group-label-border-color: var(--ful-border-color);\n --ful-radio-group-label-bg: inherit;\n --ful-radio-group-label-checked-border-color: var(--ful-active-bg);\n --ful-radio-group-label-checked-bg: #eefbfb;\n --ful-radio-group-label-disabled-border-color: var(--ful-border-color);\n --ful-radio-group-label-disabled-bg: var(--ful-disabled-bg);\n --ful-radio-group-active-bg: var(--ful-active-bg);\n\n display: block;\n\n &:not(:defined) {\n visibility: hidden;\n }\n\n &[required] > fieldset > legend::before {\n content: \"* \";\n display: inline;\n font-weight: 700;\n color: var(--ful-color);\n }\n\n & > fieldset {\n & > legend {\n font-size: 16px;\n margin: 0;\n }\n\n & > section {\n display: grid;\n gap: 10px;\n grid-template-columns: 1fr;\n\n & label {\n display: flex;\n align-items: center;\n border: 1px solid var(--ful-radio-group-label-border-color);\n background-color: var(--ful-radio-group-label-bg);\n border-radius: 4px;\n padding: 8px 10px;\n height: 100%;\n cursor: pointer;\n\n & > div {\n flex: 1;\n }\n }\n\n & label:has(input[type=\"radio\"]:checked) {\n background-color: var(--ful-radio-group-label-checked-bg);\n border-color: var(--ful-radio-group-label-checked-border-color);\n }\n\n & label:has(input[type=\"radio\"]:disabled) {\n background-color: var(--ful-radio-group-label-disabled-bg);\n border-color: var(--ful-radio-group-label-disabled-border-color);\n }\n\n & input[type=\"radio\"] {\n margin-left: 8px;\n margin-right: 12px;\n height: 16px;\n width: 16px;\n vertical-align: text-bottom;\n accent-color: var(--ful-radio-group-label-checked-border-color);\n }\n }\n }\n\n &.horizontal > fieldset > section {\n gap: 16px;\n grid-template-columns: 1fr 1fr;\n }\n\n &:invalid > fieldset > section label {\n border-color: var(--ful-radio-group-active-bg);\n }\n}\n\nful-radio {\n display: none;\n}\n","ful-checkbox {\n --ful-checkbox-active-bg: var(--ful-active-bg);\n\n display: block;\n\n &:not(:defined) {\n visibility: hidden;\n }\n\n &[required] > .form-check > .form-check-label > label::before {\n content: \"* \";\n display: inline;\n font-weight: 700;\n color: var(--ful-color);\n }\n\n & input[type=\"checkbox\"]:checked {\n background-color: var(--ful-checkbox-active-bg);\n border-color: var(--ful-checkbox-active-bg);\n }\n\n &:invalid input[type=\"checkbox\"] {\n border-color: var(--ful-invalid-border-color);\n\n &:checked {\n background-color: var(--ful-invalid-color);\n }\n\n &:focus {\n box-shadow: var(--ful-invalid-box-shadow);\n }\n }\n}\n","ful-spinner {\n --ful-spinner-icon-width: 1rem;\n --ful-spinner-icon-height: 1rem;\n --ful-spinner-icon-border-width: 0.2em;\n --ful-spinner-icon-vertical-align: -0.125em;\n --ful-spinner-icon-animation-speed: 0.75s;\n --ful-spinner-icon-animation-name: spinner-border;\n --ful-spinner-icon-color: currentcolor;\n\n &:not(:defined) {\n visibility: hidden;\n }\n\n &.centered {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n &.big {\n --ful-spinner-icon-width: 2rem;\n --ful-spinner-icon-height: 2rem;\n --ful-spinner-icon-border-width: 0.25em;\n }\n\n &.bigger {\n --ful-spinner-icon-width: 4rem;\n --ful-spinner-icon-height: 4rem;\n --ful-spinner-icon-border-width: 0.5em;\n }\n\n &.backdrop {\n --ful-spinner-icon-width: 4rem;\n --ful-spinner-icon-height: 4rem;\n --ful-spinner-icon-border-width: 0.5em;\n\n z-index: 2000;\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n overflow-x: hidden;\n overflow-y: auto;\n outline: 0;\n background-color: rgb(167 167 167 / 80%);\n display: flex;\n align-items: center;\n justify-content: center;\n\n & > .ful-spinner-wrapper {\n padding: 2rem;\n background-color: white;\n border-radius: 1rem;\n }\n }\n\n & > .ful-spinner-wrapper {\n display: inline;\n\n & > .ful-spinner-icon {\n display: inline-block;\n width: var(--ful-spinner-icon-width);\n height: var(--ful-spinner-icon-height);\n vertical-align: var(--ful-spinner-icon-vertical-align);\n border-radius: 50%;\n border: var(--ful-spinner-icon-border-width) solid var(--ful-spinner-icon-color);\n border-right-color: transparent;\n animation: var(--ful-spinner-icon-animation-speed) linear infinite var(--ful-spinner-icon-animation-name);\n }\n }\n}\n\nbody:has(ful-spinner.backdrop:not([hidden])) {\n overflow: hidden;\n}\n","ful-pagination {\n display: block;\n margin-top: auto;\n &:not(:defined) {\n visibility: hidden;\n }\n\n & i.bi::before {\n line-height: 24px;\n }\n & .reload {\n display: flex;\n align-items: center;\n font-size: 24px;\n }\n}\n\nful-table {\n display: block;\n\n &:not(:defined) {\n visibility: hidden;\n }\n\n & tbody[data-ref=\"initial\"],\n & tbody[data-ref=\"loading\"],\n & tbody[data-ref=\"feedback\"] {\n height: 360px;\n padding: 1.5rem;\n & td {\n text-align: center;\n vertical-align: middle;\n & p {\n margin-top: 1rem;\n }\n }\n }\n\n & .pagination-index {\n align-self: center;\n }\n}\n\nful-sorter {\n display: block;\n\n &:not(:defined) {\n visibility: hidden;\n }\n\n cursor: pointer;\n\n &::before {\n display: inline-block;\n vertical-align: text-top;\n font-family: bootstrap-icons;\n font-style: normal;\n font-weight: 400;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: \"\\f574\";\n }\n\n &:not([order])::before {\n color: #cccccc;\n }\n\n &[order=\"asc\"]::before {\n content: \"\\f574\";\n }\n\n &[order=\"desc\"]::before {\n content: \"\\f575\";\n }\n}\n","ful-filter-text,\nful-filter-instant,\nful-filter-local-date {\n --ful-filter-active-bg: var(--ful-active-bg);\n --ful-filter-active-color: var(--ful-active-color);\n\n display: block;\n\n &:not(:defined) {\n visibility: hidden;\n }\n\n &[required] > .form-label > label::before {\n content: \"* \";\n display: inline;\n font-weight: 700;\n color: var(--ful-color);\n }\n\n .dropdown-item:active {\n color: var(--ful-filter-active-color);\n background-color: var(--ful-filter-active-bg);\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fml.css","sources":["../src/ful/chrome/theme.css","../src/ful/forms/errors.css","../src/ful/forms/form.css","../src/ful/chrome/buttons.css","../src/ful/chrome/sections.css","../src/ful/chrome/pre-render.css","../src/ful/forms/input.css","../src/ful/forms/files.css","../src/ful/forms/select.css","../src/ful/forms/radio.css","../src/ful/forms/checkbox.css","../src/ful/chrome/spinner.css","../src/ful/navigation/table.css","../src/ful/forms/filters.css","../src/ful/disclosures/info.css","../src/ful/disclosures/drawer.css","../src/ful/disclosures/toast.css","../src/ful/navigation/tabs.css","../src/ful/disclosures/accordion.css","../src/ful/navigation/wizard.css","../src/ful/chrome/hidden.css"],"sourcesContent":["/**\n * The cascade contract. Everything ful ships lives in a layer, so any rule a\n * consuming page writes outside one wins over all of it whatever its\n * specificity, and a page that layers its own styles decides by declaring its\n * layer after these. `ful.hidden` comes last so hiding beats the chrome that\n * would otherwise lay an element out, which is the job an `!important` used to\n * do here.\n */\n@layer ful.theme, ful.components, ful.hidden;\n\n@layer ful.theme {\n @property --ful-border-width {\n syntax: \"<length>\";\n inherits: true;\n initial-value: 1px;\n }\n\n @property --ful-border-radius {\n syntax: \"<length>\";\n inherits: true;\n initial-value: 0.375rem;\n }\n\n @property --ful-scrollbar-width {\n syntax: \"<length>\";\n inherits: true;\n initial-value: 12px;\n }\n\n @property --ful-scrollbar-border-width {\n syntax: \"<length>\";\n inherits: true;\n initial-value: 1px;\n }\n\n :root {\n --ful-color: light-dark(#212529, #dee2e6);\n --ful-bg: light-dark(#fff, #212529);\n --ful-muted-color: light-dark(#495057, #adb5bd);\n\n --ful-border-width: 1px;\n --ful-border-radius: 0.375rem;\n --ful-border-color: light-dark(#dee2e6, #495057);\n\n --ful-disabled-bg: light-dark(#e9ecef, #343a40);\n --ful-selected-bg: light-dark(#f8f9fa, #343a40);\n\n --ful-active-color: white;\n --ful-active-bg: #007376;\n --ful-accent-ink: light-dark(var(--ful-active-bg), color-mix(in srgb, var(--ful-active-bg) 55%, white));\n\n --ful-focus-border-color: color-mix(in srgb, var(--ful-active-bg) 75%, white);\n --ful-focus-box-shadow: 0 0 0 0.25rem color-mix(in srgb, var(--ful-active-bg) 25%, transparent);\n\n --ful-backdrop-color: rgb(0 0 0 / 50%);\n\n --ful-invalid-color: light-dark(#dc3545, #ea868f);\n --ful-invalid-border-color: var(--ful-invalid-color);\n --ful-invalid-box-shadow: 0 0 0 0.25rem color-mix(in srgb, var(--ful-invalid-color) 25%, transparent);\n\n --ful-error-color: #58151c;\n --ful-error-bg: #f8d7da;\n --ful-error-border-color: #f1aeb5;\n\n --ful-warning-color: #664d03;\n --ful-warning-bg: #fff3cd;\n --ful-warning-border-color: #ffe69c;\n\n --ful-scrollbar-bg: var(--ful-disabled-bg);\n --ful-scrollbar-thumb-bg: var(--ful-active-bg);\n --ful-scrollbar-width: 12px;\n --ful-scrollbar-border-width: 1px;\n\n --ful-controls-bg: var(--ful-bg);\n --ful-controls-border-width: var(--ful-border-width);\n --ful-controls-border-radius: var(--ful-border-radius);\n --ful-controls-border-color: var(--ful-border-color);\n --ful-controls-height: calc(1.5em + 0.75rem + 2px);\n\n --ful-spinner-icon-width: 1rem;\n --ful-spinner-icon-height: 1rem;\n --ful-spinner-icon-border-width: 0.2em;\n --ful-spinner-icon-animation-speed: 0.75s;\n --ful-spinner-icon-animation-name: spinner-border;\n --ful-spinner-icon-color: currentcolor;\n }\n}\n","@layer ful.components {\n ful-errors {\n --ful-errors-color: var(--ful-error-color);\n --ful-errors-bg: var(--ful-error-bg);\n --ful-errors-border-color: var(--ful-error-border-color);\n\n display: block;\n padding: 1rem;\n margin-bottom: 1rem;\n color: var(--ful-errors-color);\n background-color: var(--ful-errors-bg);\n border: 1px solid var(--ful-errors-border-color);\n border-radius: var(--ful-border-radius);\n }\n\n ful-field-error {\n --ful-field-error-invalid-color: var(--ful-invalid-color);\n display: none;\n font-size: 0.875rem;\n\n :invalid & {\n display: block;\n margin-top: 0.25rem;\n color: var(--ful-field-error-invalid-color);\n }\n }\n\n ful-field-warnings {\n display: none;\n &:not(:empty) {\n display: block;\n }\n }\n\n ful-field-warning {\n display: block;\n margin: 0.5rem 0;\n padding: 15px;\n color: var(--ful-warning-color);\n background-color: var(--ful-warning-bg);\n border-color: var(--ful-warning-border-color);\n border-radius: 8px;\n animation: show-and-hide 5s ease forwards;\n animation-composition: initial;\n }\n\n @keyframes show-and-hide {\n 0% {\n opacity: 0;\n display: block;\n }\n\n 3% {\n opacity: 1;\n }\n\n 90% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n display: none;\n }\n }\n}\n","@layer ful.components {\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n *:has(> ful-control-group) {\n display: block;\n }\n\n *:has(> ful-control-group) > label,\n *:has(> fieldset > ful-radio-list) > fieldset > legend {\n /*inline-block: an info slot carrying a tooltip rides the label's line,\n and nothing moves when there is none, the control group being block*/\n display: inline-block;\n margin: 0 0.25rem 0.5rem 0;\n color: var(--ful-color);\n }\n\n *:has(> ful-control-group)[required] > label::before,\n *:has(> ful-choice)[required] > ful-choice > label::before,\n *:has(> fieldset > ful-radio-list)[required] > fieldset > legend::before {\n content: \"* \";\n display: inline;\n font-weight: 700;\n color: var(--ful-color);\n }\n\n ful-control-group {\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n width: 100%;\n color: var(--ful-color);\n background-color: var(--ful-controls-bg);\n border: var(--ful-controls-border-width) solid var(--ful-controls-border-color);\n border-radius: var(--ful-controls-border-radius);\n\n &:has(:focus-visible):not(:has([popover] :focus-visible)) {\n border-color: var(--ful-focus-border-color);\n box-shadow: var(--ful-focus-box-shadow);\n }\n\n & > input,\n & > textarea {\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n min-height: var(--ful-controls-height);\n padding: 0.375rem 0.75rem;\n font: inherit;\n line-height: 1.5;\n color: inherit;\n background-color: transparent;\n border: 0;\n border-radius: 0;\n\n &:focus {\n outline: 0;\n }\n }\n\n & > ful-affix:first-child {\n border-top-left-radius: calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width));\n border-bottom-left-radius: calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width));\n }\n\n & > ful-affix:last-child,\n & > ful-affix:has(+ ful-dropdown) {\n border-top-right-radius: calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width));\n border-bottom-right-radius: calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width));\n }\n }\n\n ful-affix {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n min-width: var(--ful-controls-height);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: var(--ful-color);\n white-space: nowrap;\n background-color: var(--ful-selected-bg);\n border: 0;\n border-radius: 0;\n }\n\n /*\n * An affix holding a button is the button: the cell gives up the padding it\n * carries for text and an icon, and the button fills it in both axes. Left to\n * the affix's own layout a button is padded like text, which makes the field\n * taller than its neighbours, and centred inside a cell at least a control\n * wide, which leaves the affix's own ground showing down the side of it. Both\n * grow with the theme's control height and corner radius.\n *\n * The filters' operator and sensitivity buttons had this to themselves,\n * keyed on their data-ref. Every button in an affix needs it, an application's\n * own included: the affix is documented as a place to put one.\n */\n ful-affix:has(> button) {\n padding: 0;\n overflow: hidden;\n }\n\n ful-affix > button {\n display: flex;\n flex: 1 1 auto;\n align-self: stretch;\n align-items: center;\n justify-content: center;\n padding: 0.375rem 0.75rem;\n font: inherit;\n line-height: 1.5;\n color: var(--ful-color);\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n border-radius: 0;\n cursor: pointer;\n }\n\n /**\n * The cell owns the geometry of whatever button sits in it. A button carrying\n * .ful-button keeps the accent colours, which is the point of reaching for the\n * class, but the class outranks the element selector above and would keep its\n * own border and corner radius too, rounding a corner inside a cell that has\n * already drawn one and drawing a border where the group has one.\n */\n ful-affix > button.ful-button {\n border: 0;\n border-radius: 0;\n }\n\n ful-control {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n min-width: 0;\n min-height: var(--ful-controls-height);\n cursor: text;\n border: 0;\n border-radius: 0;\n }\n\n :invalid > ful-control-group {\n border-color: var(--ful-invalid-border-color);\n\n /**\n * The border colour is restated and the popover guard repeated from the\n * focus rule above: that rule's :not(:has(...)) carries the specificity of\n * its argument, so without both the focus ring would repaint an invalid\n * field in the focus colour and the field would read as healthy while the\n * caret is in it.\n */\n &:has(:focus-visible):not(:has([popover] :focus-visible)) {\n border-color: var(--ful-invalid-border-color);\n box-shadow: var(--ful-invalid-box-shadow);\n }\n }\n\n :disabled > ful-control-group {\n background-color: var(--ful-disabled-bg);\n }\n\n /**\n * A submit held off while the form is busy keeps its focus, so it is marked\n * aria-disabled rather than disabled. Unstyled buttons would otherwise lose the\n * platform's own disabled look: .ful-button already dims both spellings.\n */\n ful-form [aria-disabled=\"true\"] {\n opacity: 0.65;\n cursor: default;\n }\n\n ful-badge {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n margin: 5px 0;\n padding: 5px 7px;\n line-height: 1em;\n color: var(--ful-color);\n white-space: nowrap;\n cursor: pointer;\n background-color: var(--ful-selected-bg);\n border: var(--ful-border-width) solid var(--ful-border-color);\n border-radius: var(--ful-border-radius);\n\n &:hover {\n background-color: var(--ful-disabled-bg);\n }\n\n &:focus-visible {\n border-color: var(--ful-focus-border-color);\n outline: 0;\n }\n }\n\n ful-choice {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0.5rem;\n padding: 0.25rem 0;\n\n & > label {\n margin: 0;\n cursor: pointer;\n flex: 1 1 0;\n min-width: 0;\n }\n\n & input[type=\"checkbox\"] {\n width: 1em;\n height: 1em;\n margin: 0;\n font-size: inherit;\n accent-color: var(--ful-active-bg);\n\n &:focus-visible {\n outline: 0;\n box-shadow: var(--ful-focus-box-shadow);\n }\n }\n\n &[switch] input[type=\"checkbox\"] {\n appearance: none;\n position: relative;\n width: 2em;\n height: 1em;\n margin: 0;\n cursor: pointer;\n background-color: var(--ful-border-color);\n border-radius: 1em;\n transition: background-color 0.15s ease-in-out;\n\n &::before {\n content: \"\";\n display: block;\n width: 1em;\n height: 1em;\n background-color: #fff;\n border-radius: 50%;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15);\n transition: translate 0.15s ease-in-out;\n }\n\n &:checked {\n background-color: var(--ful-active-bg);\n\n &::before {\n translate: 1em 0;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n &,\n &::before {\n transition: none;\n }\n }\n }\n }\n\n *:has(> ful-choice):invalid ful-choice input[type=\"checkbox\"] {\n outline: 1px solid var(--ful-invalid-border-color);\n outline-offset: 2px;\n }\n\n ful-icon,\n ful-sorter::before {\n background-color: currentcolor;\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: contain;\n }\n\n ful-icon {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: -0.125em;\n\n &[name=\"search\"] {\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001q.044.06.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1 1 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0'/></svg>\");\n }\n\n &[name=\"chevron-left\"] {\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>\");\n }\n\n &[name=\"chevron-right\"] {\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>\");\n }\n\n &[name=\"chevron-down\"] {\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>\");\n }\n\n &[name=\"arrow-clockwise\"] {\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M8 3a5 5 0 1 0 4.546 2.914.5.5 0 0 1 .908-.417A6 6 0 1 1 8 2z'/><path d='M8 4.466V.534a.25.25 0 0 1 .41-.192l2.36 1.966c.12.1.12.284 0 .384L8.41 4.658A.25.25 0 0 1 8 4.466'/></svg>\");\n }\n\n &[name=\"x-lg\"] {\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path d='M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8z'/></svg>\");\n }\n\n &[name=\"info-circle\"] {\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/><path d='m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0'/></svg>\");\n }\n\n &[name=\"info-circle-fill\"] {\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path d='M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2'/></svg>\");\n }\n\n &[name=\"upload\"] {\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path d='M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5'/><path d='M7.646 1.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1-.708.708L8.5 2.707V11.5a.5.5 0 0 1-1 0V2.707L5.354 4.854a.5.5 0 1 1-.708-.708z'/></svg>\");\n }\n\n &[name=\"arrow-down\"] {\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M8 1a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L7.5 13.293V1.5A.5.5 0 0 1 8 1'/></svg>\");\n }\n\n &[name=\"arrow-up\"] {\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M8 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L7.5 2.707V14.5a.5.5 0 0 0 .5.5'/></svg>\");\n }\n\n &[name=\"inbox\"] {\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path d='M4.98 4a.5.5 0 0 0-.39.188L1.54 8H6a.5.5 0 0 1 .5.5 1.5 1.5 0 1 0 3 0A.5.5 0 0 1 10 8h4.46l-3.05-3.812A.5.5 0 0 0 11.02 4zm9.954 5H10.45a2.5 2.5 0 0 1-4.9 0H1.066l.32 2.562a.5.5 0 0 0 .497.438h12.234a.5.5 0 0 0 .496-.438zM3.809 3.563A1.5 1.5 0 0 1 4.981 3h6.038a1.5 1.5 0 0 1 1.172.563l3.7 4.625a.5.5 0 0 1 .105.374l-.39 3.124A1.5 1.5 0 0 1 14.117 13H1.883a1.5 1.5 0 0 1-1.489-1.314l-.39-3.124a.5.5 0 0 1 .106-.374z'/></svg>\");\n }\n\n &[name=\"star\"] {\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path d='M2.866 14.85c-.078.444.36.791.746.593l4.39-2.256 4.389 2.256c.386.198.824-.149.746-.592l-.83-4.73 3.522-3.356c.33-.314.16-.888-.282-.95l-4.898-.696L8.465.792a.513.513 0 0 0-.927 0L5.354 5.12l-4.898.696c-.441.062-.612.636-.283.95l3.523 3.356-.83 4.73zm4.905-2.767-3.686 1.894.694-3.957a.56.56 0 0 0-.163-.505L1.71 6.745l4.052-.576a.53.53 0 0 0 .393-.288L8 2.223l1.847 3.658a.53.53 0 0 0 .393.288l4.052.575-2.906 2.77a.56.56 0 0 0-.163.506l.694 3.957-3.686-1.894a.5.5 0 0 0-.461 0z'/></svg>\");\n }\n }\n\n *:has(> ful-pagination-bar) {\n display: block;\n margin-top: auto;\n }\n\n ful-pagination-bar {\n display: block;\n user-select: none;\n\n & ul {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n margin: 0.5rem 0 0;\n padding: 0;\n list-style: none;\n }\n\n & li[data-ref=\"index\"] {\n margin-left: 0;\n margin-right: auto;\n color: var(--ful-color);\n }\n\n & li[data-ref=\"reload\"] button {\n border: 0;\n font-size: 1.25rem;\n }\n\n & button {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 2.25rem;\n height: 2.25rem;\n padding: 0 0.5rem;\n font-size: inherit;\n font-family: inherit;\n line-height: 1.5;\n color: var(--ful-color);\n text-decoration: none;\n background-color: transparent;\n border: var(--ful-border-width) solid var(--ful-border-color);\n border-radius: var(--ful-border-radius);\n cursor: pointer;\n }\n\n & button:hover {\n background-color: var(--ful-selected-bg);\n }\n\n & button:disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n\n & button:focus-visible {\n outline: 0;\n box-shadow: var(--ful-focus-box-shadow);\n }\n }\n\n ful-table-wrapper {\n & table {\n width: 100%;\n margin-bottom: 1rem;\n color: var(--ful-color);\n border-collapse: collapse;\n }\n\n & caption {\n padding: 0.5rem 0;\n color: var(--ful-color);\n text-align: left;\n caption-side: bottom;\n }\n\n & :is(th, td) {\n padding: 0.5rem;\n vertical-align: top;\n border-bottom: var(--ful-border-width) solid var(--ful-border-color);\n }\n\n & thead th {\n border-bottom-width: calc(2 * var(--ful-border-width));\n }\n\n & td[colspan] {\n padding: 1.5rem;\n text-align: center;\n vertical-align: middle;\n }\n\n & tbody[data-ref=\"feedback\"] {\n & > tr > td > div {\n padding: 1rem;\n color: var(--ful-error-color);\n background-color: var(--ful-error-bg);\n border: var(--ful-border-width) solid var(--ful-error-border-color);\n border-radius: var(--ful-border-radius);\n }\n\n & p {\n margin: 0 0 0.5rem;\n font-weight: 600;\n }\n }\n }\n\n ful-sorter {\n &::before {\n content: \"\";\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: text-top;\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M8 1a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L7.5 13.293V1.5A.5.5 0 0 1 8 1'/></svg>\");\n }\n\n &:not([order])::before {\n opacity: 0.35;\n }\n\n &[order=\"desc\"]::before {\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M8 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L7.5 2.707V14.5a.5.5 0 0 0 .5.5'/></svg>\");\n }\n }\n}\n","@layer ful.components {\n .ful-button {\n --ful-button-height: var(--ful-controls-height);\n --ful-button-border-width: var(--ful-controls-border-width);\n --ful-button-border-radius: var(--ful-controls-border-radius);\n --ful-button-color: var(--ful-active-color);\n --ful-button-bg: var(--ful-active-bg);\n --ful-button-border-color: var(--ful-button-bg);\n --ful-button-hover-bg: color-mix(in srgb, var(--ful-active-bg) 85%, black);\n --ful-button-hover-color: var(--ful-button-color);\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.375rem;\n min-height: var(--ful-button-height);\n padding: 0.375rem 0.75rem;\n font: inherit;\n line-height: 1.5;\n text-decoration: none;\n color: var(--ful-button-color);\n background-color: var(--ful-button-bg);\n border: var(--ful-button-border-width) solid var(--ful-button-border-color);\n border-radius: var(--ful-button-border-radius);\n cursor: pointer;\n\n &:hover {\n color: var(--ful-button-hover-color);\n background-color: var(--ful-button-hover-bg);\n }\n\n &:focus-visible {\n outline: 0;\n box-shadow: var(--ful-focus-box-shadow);\n }\n\n &:disabled,\n &[aria-disabled=\"true\"] {\n opacity: 0.5;\n pointer-events: none;\n }\n\n &.ghost {\n --ful-button-color: var(--ful-accent-ink);\n --ful-button-bg: transparent;\n --ful-button-border-color: var(--ful-accent-ink);\n --ful-button-hover-color: var(--ful-active-color);\n --ful-button-hover-bg: var(--ful-active-bg);\n }\n\n &.soft {\n --ful-button-color: var(--ful-color);\n --ful-button-bg: var(--ful-selected-bg);\n --ful-button-border-color: var(--ful-controls-border-color);\n --ful-button-hover-color: var(--ful-active-color);\n --ful-button-hover-bg: var(--ful-active-bg);\n }\n\n &.small {\n --ful-button-height: calc(1.25em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n }\n }\n}\n","@layer ful.components {\n :is(ful-tabs, ful-wizard, ful-dialog, ful-drawer) {\n & [loading=\"\"] {\n position: relative;\n }\n\n & [loading=\"\"]::after {\n content: \"\";\n position: absolute;\n inset: 0;\n margin: auto;\n width: var(--ful-spinner-icon-width);\n height: var(--ful-spinner-icon-height);\n border-radius: 50%;\n border: var(--ful-spinner-icon-border-width) solid var(--ful-spinner-icon-color);\n border-inline-end-color: transparent;\n animation: var(--ful-spinner-icon-animation-speed) linear infinite var(--ful-spinner-icon-animation-name);\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n\n & .ful-section-error {\n margin-bottom: 1rem;\n padding: 1rem;\n white-space: pre-line;\n color: var(--ful-error-color);\n background-color: var(--ful-error-bg);\n border: var(--ful-border-width) solid var(--ful-error-border-color);\n border-radius: var(--ful-border-radius);\n }\n }\n}\n","@layer ful.components {\n /**\n * An element whose own markup is misleading before it renders stays\n * invisible until it does: a select's slotted <select> paints as a native\n * dropdown, a dialog's body sits in the page flow, a tab host shows every\n * panel at once. An element whose markup already reads correctly is left\n * alone, ful-form being the case that matters, since hiding it would hide\n * the fields and the submit button that were about to paint correctly.\n *\n * :is() rather than a plain selector list, because a list is all or nothing:\n * one bad selector among these would drop the rule for every one of them,\n * where :is() ignores the bad argument alone. Its specificity, the most\n * specific argument's, decides nothing here, the layer order settling every\n * contest before specificity is consulted.\n *\n * The list is ful's own, and a field of your own joins it by carrying the\n * .ful-input class, or opts in on its own tag:\n * x-rating:not(:state(rendered)) { visibility: hidden }\n */\n :is(\n ful-input,\n .ful-input,\n ful-input-file,\n ful-input-local-date,\n ful-input-local-time,\n ful-input-instant,\n ful-checkbox,\n ful-radio-group,\n ful-select,\n ful-filter-text,\n ful-filter-number,\n ful-filter-boolean,\n ful-filter-local-date,\n ful-filter-instant,\n ful-tabs,\n ful-wizard,\n ful-tooltip,\n ful-dialog,\n ful-drawer,\n ful-table,\n ful-pagination\n ):not(:state(rendered)) {\n visibility: hidden;\n }\n}\n","@layer ful.components {\n *:has(> ful-control-group > input, > ful-control-group > textarea) {\n &[uppercase] input,\n &[uppercase] textarea {\n text-transform: uppercase;\n }\n }\n\n ful-item-list {\n --ful-item-list-item-color: var(--ful-active-color);\n --ful-item-list-item-border-radius: var(--ful-border-radius);\n --ful-item-list-item-bg: var(--ful-active-bg);\n\n display: grid;\n /*\n room for a focused row's outline to sit in: at the four pixels this was,\n the ring landed on the rows either side and read as a smudge between them\n rather than as a ring around one\n */\n gap: 0.5rem;\n\n & > ful-item:first-child {\n margin-top: 0.5rem;\n }\n\n & > ful-item:last-child {\n margin-bottom: 0.5rem;\n }\n\n & > ful-item > div {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n min-width: 0;\n /*\n a row stands as tall as a control, the outer height of a control\n group rather than the inner one, so a field that is nothing but its\n item list lines up with an ordinary input beside it in a form. A\n longer list runs past it, which there is no helping, but the first\n row is where the eye looks for the control\n */\n min-height: calc(var(--ful-controls-height) + 2 * var(--ful-controls-border-width));\n padding: 5px 0.25rem 5px 0.5rem;\n color: var(--ful-item-list-item-color);\n border-radius: var(--ful-item-list-item-border-radius);\n background-color: var(--ful-item-list-item-bg);\n\n /*\n an outline rather than the theme's box-shadow ring, which is the one\n place in the library that departs from it and does so because the row\n is filled with the accent: a translucent ring of the same accent reads\n as a smudge against it, while an outline set off from the row shows\n the page through the gap and stays a ring. The offset also means the\n gap is whatever is actually behind the row, so a list on a dimmed or\n coloured surface needs no second rule.\n\n It replaced a halo of --ful-active-color at 40 percent, which is #fff\n in both themes: invisible on a light page, a glare on a dark one, and\n the remove button clears its own outline and leans on this for the\n indicator. Keyed on :focus-visible through :has, the way .ful-button\n keys its own, so a click does not raise a ring only the keyboard should\n */\n &:has(:focus-visible) {\n outline: 2px solid var(--ful-active-bg);\n outline-offset: 2px;\n }\n\n & > span {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: left;\n }\n\n & > span + span {\n flex: 0 0 auto;\n font-size: 0.875em;\n opacity: 0.75;\n }\n\n & > button {\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: calc(var(--ful-controls-height) - 0.625rem);\n height: calc(var(--ful-controls-height) - 0.625rem);\n padding: 0;\n font-size: inherit;\n font-family: inherit;\n color: inherit;\n background-color: transparent;\n border: 0;\n border-radius: calc(var(--ful-item-list-item-border-radius) - 0.1875rem);\n cursor: pointer;\n\n & ful-icon {\n width: 1em;\n height: 1em;\n }\n\n &:hover {\n background-color: color-mix(in srgb, var(--ful-invalid-color) 25%, transparent);\n }\n\n &:focus-visible {\n outline: 0;\n }\n }\n }\n }\n}\n","@layer ful.components {\n *:has(> ful-control-group > input[type=\"file\"]) {\n & > ful-control-group > input[type=\"file\"] {\n padding-left: 0;\n }\n\n & > ful-control-group > input[type=\"file\"]::file-selector-button {\n margin: -0.375rem 0.75rem -0.375rem 0;\n padding: 0.375rem 0.75rem;\n height: var(--ful-controls-height);\n font-size: inherit;\n font-family: inherit;\n line-height: 1.5;\n color: var(--ful-color);\n background-color: var(--ful-selected-bg);\n border: 0;\n cursor: pointer;\n }\n\n & > ful-control-group > input[type=\"file\"]:first-child::file-selector-button {\n border-start-start-radius: calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width));\n border-end-start-radius: calc(var(--ful-controls-border-radius) - var(--ful-controls-border-width));\n }\n\n & > ful-control-group > input[type=\"file\"]::file-selector-button:hover {\n color: var(--ful-active-color);\n background-color: var(--ful-active-bg);\n }\n\n & > ful-control-group > input[type=\"file\"]:focus::file-selector-button {\n outline: 0;\n }\n\n /*\n the picker button follows the two claims apart, as the control group does.\n Readonly drops it: the value is fixed, so the button is an affordance for\n a gesture that will never be offered, and the input takes back the padding\n it used to sit flush against. Disabled keeps it and dims it, the way the\n platform dims its own, disabled saying the control is unavailable rather\n than absent. The input stays under both, showing the name of the file\n chosen, which is the one thing here there is to read\n */\n &[readonly] > ful-control-group > input[type=\"file\"]::file-selector-button {\n display: none;\n }\n\n &[readonly] > ful-control-group > input[type=\"file\"] {\n padding-left: 0.75rem;\n }\n\n /*opacity rather than a colour: --ful-disabled-bg is what the control group\n beside it already carries, so a button painted in it would disappear into\n the field. It is how a disabled button is dimmed elsewhere in the library*/\n &:disabled > ful-control-group > input[type=\"file\"]::file-selector-button {\n opacity: 0.5;\n cursor: default;\n }\n\n & > .default-dropzone {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.25rem;\n min-height: 100px;\n margin-top: 0.5rem;\n padding: 1.5rem;\n color: var(--ful-color);\n text-align: center;\n background-color: var(--ful-bg);\n border: var(--ful-controls-border-width) dashed var(--ful-controls-border-color);\n border-radius: var(--ful-controls-border-radius);\n }\n\n /*\n both variants open the picker when clicked, so both say so. Only the\n default one is themed; a slotted dropzone is the author's own chrome and\n gets the cursor alone\n */\n & > .default-dropzone,\n & > .dropzone {\n cursor: pointer;\n }\n\n & > .default-dropzone:hover {\n border-color: var(--ful-focus-border-color);\n box-shadow: var(--ful-focus-box-shadow);\n }\n\n &[dragover] > .default-dropzone {\n color: var(--ful-active-color);\n background-color: var(--ful-active-bg);\n border-color: var(--ful-active-bg);\n box-shadow: none;\n }\n\n &[noinput] > ful-control-group {\n display: none;\n }\n\n /*\n a dropzone is an affordance and nothing besides: unlike a readonly text\n input, which still shows the value it will not let you change, it holds\n nothing to read. A field that will take neither a click nor a drop shows\n none at all, rather than a dashed hundred pixels inviting a gesture it\n refuses. The files already chosen stay where they were, in the item list\n */\n &:not([dropzone]) > .default-dropzone,\n &:not([dropzone]) > .dropzone,\n &[readonly] > .default-dropzone,\n &[readonly] > .dropzone,\n &:disabled > .default-dropzone,\n &:disabled > .dropzone {\n display: none;\n }\n\n &:not([item-list]) > ful-item-list {\n display: none;\n }\n\n &[readonly] {\n & > ful-item-list {\n pointer-events: none;\n }\n\n & > ful-control-group > input {\n pointer-events: none;\n }\n }\n\n &:disabled > ful-item-list {\n pointer-events: none;\n }\n\n /*\n a readonly field with an item list is the list, as it is on ful-select: the\n value is fixed and the rows already carry the names, so the control group\n holds nothing they do not. A disabled field keeps it, dimmed, disabled\n saying the control is there and unavailable rather than absent. Without an\n item list the input stays either way, being the only place a name appears\n */\n &[item-list][readonly] {\n & > ful-control-group {\n display: none;\n }\n\n /*\n the list stands where the control stood, so it starts and ends where\n the control group would have: the margins that space a list under a\n control have nothing to sit under here\n */\n & > ful-item-list > ful-item:first-child {\n margin-top: 0;\n }\n\n & > ful-item-list > ful-item:last-child {\n margin-bottom: 0;\n }\n }\n\n /*\n the remove button on each row goes the same way as the dropzone and the\n picker button: it is an affordance for a gesture the field refuses while\n a claim holds, and the row's name and size, which are what there is to\n read, stay\n */\n &[readonly] > ful-item-list ful-item button,\n &:disabled > ful-item-list ful-item button {\n display: none;\n }\n\n &[readonly] > ful-item-list > ful-item > div,\n &:disabled > ful-item-list > ful-item > div {\n padding-right: 0.5rem;\n }\n }\n}\n","@layer ful.components {\n *:has(> ful-control-group > ful-dropdown) {\n cursor: pointer;\n\n &:not([item-list]) > ful-item-list {\n display: none;\n }\n\n &[item-list] ful-control-group ful-badge {\n display: none;\n }\n\n & > ful-control-group > ful-control {\n cursor: pointer;\n padding-left: 5px;\n padding-right: 2.25rem;\n overflow: hidden;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n background-position: right 0.75rem center;\n background-repeat: no-repeat;\n background-size: 16px 12px;\n\n & > ful-badge + ful-badge {\n margin-left: 3px;\n }\n }\n\n /*\n readonly only: the value is fixed and the rows already carry it, so the\n control is noise. A disabled field keeps its control, dimmed, because\n disabled says the control is there and unavailable rather than absent,\n and a form that re-enables it must not make the page jump\n */\n &[item-list][readonly] {\n & > ful-control-group {\n display: none;\n }\n\n /*\n the list stands where the control stood, so it starts and ends where\n the control group would have: the margins that space a list under a\n control have nothing to sit under here\n */\n & > ful-item-list > ful-item:first-child {\n margin-top: 0;\n }\n\n & > ful-item-list > ful-item:last-child {\n margin-bottom: 0;\n }\n }\n\n /*\n the remove button is an affordance for a gesture both claims refuse, so\n it goes under either one, and the row takes back the space it held\n */\n &[readonly] > ful-item-list button,\n &:disabled > ful-item-list button {\n display: none;\n }\n\n &[readonly] > ful-item-list > ful-item > div,\n &:disabled > ful-item-list > ful-item > div {\n padding-right: 0.5rem;\n }\n\n &:disabled,\n &[readonly] {\n cursor: default;\n }\n\n &:disabled > ful-control-group > ful-control,\n &[readonly] > ful-control-group > ful-control {\n background-size: 0;\n cursor: default;\n /* the chevron is gone, so the room that was held for it goes too:\n without this the value sat against an inch of nothing */\n padding-right: 5px;\n }\n\n & > ful-control-group > ful-control > input {\n flex: 1 1 auto;\n width: 1em;\n min-width: 1em;\n margin: 0;\n padding: 0.375rem 0 0.375rem 7px;\n font-size: inherit;\n font-family: inherit;\n line-height: 1.5;\n color: var(--ful-color);\n background-color: transparent;\n border: 0;\n outline: 0;\n }\n }\n\n ful-dropdown {\n --ful-dropdown-color: var(--ful-color);\n --ful-dropdown-selected-bg: var(--ful-selected-bg);\n --ful-dropdown-active-bg: var(--ful-active-bg);\n --ful-dropdown-border-width: var(--ful-border-width);\n --ful-dropdown-border-radius: var(--ful-border-radius);\n --ful-dropdown-border-color: var(--ful-border-color);\n --ful-dropdown-background-color: var(--ful-bg);\n --ful-dropdown-scrollbar-width: var(--ful-scrollbar-width);\n --ful-dropdown-scrollbar-border-width: var(--ful-scrollbar-border-width);\n --ful-dropdown-scrollbar-bg: var(--ful-scrollbar-bg);\n --ful-dropdown-scrollbar-thumb-bg: var(--ful-scrollbar-thumb-bg);\n\n padding: 0.5rem 0;\n margin: 0.3rem 0 0;\n\n background-color: var(--ful-dropdown-background-color);\n background-clip: padding-box;\n border: var(--ful-dropdown-border-width) solid var(--ful-dropdown-border-color);\n border-radius: var(--ful-dropdown-border-radius);\n\n &:popover-open {\n display: block;\n top: anchor(bottom);\n left: anchor(left);\n width: anchor-size(width);\n }\n\n p[data-ref=\"empty\"] {\n margin: 0;\n padding: 0.5rem 0.751rem;\n color: var(--ful-dropdown-color);\n opacity: 0.65;\n }\n\n menu {\n height: auto;\n max-height: 200px;\n overflow-y: auto;\n padding: 0;\n margin: 0;\n\n &::-webkit-scrollbar {\n width: 12px;\n }\n\n &::-webkit-scrollbar-track {\n background-color: var(--ful-dropdown-scrollbar-bg);\n border-radius: var(--ful-dropdown-scrollbar-width);\n }\n\n &::-webkit-scrollbar-thumb {\n border-radius: var(--ful-dropdown-scrollbar-width);\n background-color: var(--ful-dropdown-active-bg);\n border: var(--ful-dropdown-scrollbar-border-width) solid var(--ful-dropdown-scrollbar-bg);\n }\n }\n\n li {\n padding: 0.5rem 0.751rem;\n color: var(--ful-dropdown-color);\n display: block;\n border: 0;\n cursor: pointer;\n }\n\n li:hover,\n li[selected] {\n color: var(--ful-dropdown-color);\n background-color: var(--ful-dropdown-selected-bg);\n }\n\n li[picked] {\n background-color: color-mix(in srgb, var(--ful-dropdown-active-bg) 12%, transparent);\n box-shadow: inset 0.2rem 0 0 var(--ful-dropdown-active-bg);\n }\n\n li:active {\n color: #fff;\n background-color: var(--ful-dropdown-active-bg);\n }\n }\n}\n","@layer ful.components {\n *:has(> fieldset > ful-radio-list) {\n --ful-radio-group-label-border-color: var(--ful-border-color);\n --ful-radio-group-label-bg: inherit;\n --ful-radio-group-label-checked-border-color: var(--ful-accent-ink);\n --ful-radio-group-label-checked-bg: light-dark(#eefbfb, var(--ful-selected-bg));\n --ful-radio-group-label-disabled-border-color: var(--ful-border-color);\n --ful-radio-group-label-disabled-bg: var(--ful-disabled-bg);\n --ful-radio-group-active-bg: var(--ful-active-bg);\n\n display: block;\n\n &[required] > fieldset > legend::before {\n content: \"* \";\n display: inline;\n font-weight: 700;\n color: var(--ful-color);\n }\n\n & > fieldset {\n display: block;\n min-width: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n border: 0;\n\n & > legend {\n font-size: 16px;\n width: 100%;\n padding: 0;\n line-height: inherit;\n }\n }\n\n &.horizontal > fieldset > ful-radio-list {\n gap: 16px;\n grid-template-columns: 1fr 1fr;\n }\n\n /*\n the invalid colour, not the active one: an invalid group used to outline\n every one of its labels in the accent, which is what a picked label wears,\n so the group read as entirely selected at the moment it was being reported\n as wrong\n */\n &:invalid > fieldset > ful-radio-list label {\n border-color: var(--ful-invalid-border-color);\n }\n }\n\n ful-radio-list {\n display: grid;\n gap: 10px;\n grid-template-columns: 1fr;\n\n & label {\n display: flex;\n align-items: center;\n border: 1px solid var(--ful-radio-group-label-border-color);\n background-color: var(--ful-radio-group-label-bg);\n border-radius: 4px;\n padding: 8px 10px;\n height: 100%;\n cursor: pointer;\n\n & > div {\n flex: 1;\n }\n }\n\n & label:has(input[type=\"radio\"]:checked) {\n background-color: var(--ful-radio-group-label-checked-bg);\n border-color: var(--ful-radio-group-label-checked-border-color);\n }\n\n & label:has(input[type=\"radio\"]:disabled) {\n background-color: var(--ful-radio-group-label-disabled-bg);\n border-color: var(--ful-radio-group-label-disabled-border-color);\n }\n\n & input[type=\"radio\"] {\n margin-left: 8px;\n margin-right: 12px;\n height: 16px;\n width: 16px;\n vertical-align: text-bottom;\n accent-color: var(--ful-accent-ink);\n }\n\n & input[type=\"radio\"]:focus-visible {\n outline: 0;\n }\n\n & label:has(input[type=\"radio\"]:focus-visible) {\n border-color: var(--ful-focus-border-color);\n box-shadow: var(--ful-focus-box-shadow);\n }\n }\n\n ful-radio {\n display: none;\n }\n}\n","@layer ful.components {\n *:has(> ful-choice) {\n display: block;\n }\n}\n","@layer ful.components {\n /**\n * The text a spinner announces: present for assistive technology, taken out of\n * the layout so the ring stays the only thing on screen. A spinner with no such\n * text is a live region with nothing to read.\n */\n ful-spinner > .ful-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n\n ful-spinner {\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n\n &::after {\n content: \"\";\n flex: 0 0 auto;\n display: inline-block;\n width: var(--ful-spinner-icon-width);\n height: var(--ful-spinner-icon-height);\n border-radius: 50%;\n border: var(--ful-spinner-icon-border-width) solid var(--ful-spinner-icon-color);\n border-right-color: transparent;\n animation: var(--ful-spinner-icon-animation-speed) linear infinite var(--ful-spinner-icon-animation-name);\n }\n\n @media (prefers-reduced-motion: reduce) {\n &::after {\n animation: none;\n }\n }\n\n &.centered {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n &.big {\n --ful-spinner-icon-width: 2rem;\n --ful-spinner-icon-height: 2rem;\n --ful-spinner-icon-border-width: 0.25rem;\n }\n\n &.bigger {\n --ful-spinner-icon-width: 4rem;\n --ful-spinner-icon-height: 4rem;\n --ful-spinner-icon-border-width: 0.5rem;\n }\n\n &.backdrop {\n --ful-spinner-icon-width: 4rem;\n --ful-spinner-icon-height: 4rem;\n --ful-spinner-icon-border-width: 0.5rem;\n\n z-index: 2000;\n position: fixed;\n inset: 0;\n display: grid;\n place-items: center;\n background-color: rgb(167 167 167 / 80%);\n\n &::before {\n content: \"\";\n grid-area: 1 / 1;\n width: calc(var(--ful-spinner-icon-width) + 4rem);\n height: calc(var(--ful-spinner-icon-height) + 4rem);\n background-color: var(--ful-bg);\n border-radius: 1rem;\n }\n\n &::after {\n grid-area: 1 / 1;\n }\n }\n }\n\n body:has(ful-spinner.backdrop:not([hidden])) {\n overflow: hidden;\n }\n\n @keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n }\n}\n","@layer ful.components {\n *:has(> ful-table-wrapper) {\n display: block;\n\n /*\n * A column heading reads along its column. The user agent centres a th,\n * which is a default from an age when a table was a layout, and the\n * library used to inherit bootstrap's reboot undoing it: the headings\n * of ful-table's own thead went centred the moment a page dropped\n * bootstrap. Said here now, on the table the library renders.\n */\n & th {\n text-align: start;\n }\n\n /*\n * Revalidating with rows already on screen: they stay where they are and\n * go quiet, so a sort or a page change is the rows changing rather than\n * the table collapsing to a spinner and growing back. They stop taking\n * the pointer while they do, since a row about to be replaced is not one\n * to act on, which emptying the body used to guarantee.\n */\n &[aria-busy=\"true\"] tbody:not([data-ref]) {\n opacity: 0.6;\n pointer-events: none;\n }\n\n & tbody[data-ref=\"initial\"],\n & tbody[data-ref=\"loading\"],\n & tbody[data-ref=\"feedback\"] {\n height: 360px;\n padding: 1.5rem;\n\n & td {\n & p {\n margin-top: 1rem;\n }\n }\n }\n }\n\n ful-sorter {\n display: block;\n\n &:not(:state(rendered)) {\n visibility: hidden;\n }\n\n cursor: pointer;\n\n &:focus-visible {\n outline: 0;\n box-shadow: var(--ful-focus-box-shadow);\n }\n }\n}\n","@layer ful.components {\n /*\n * filling the cell is the shared affix rule's job now, in form.css: what is\n * left here is what belongs to these two buttons alone, their widths and the\n * colours they take when picked at\n */\n ful-affix:has(> button[data-ref=\"operator\"], > button[data-ref=\"sensitivity\"]) {\n min-width: 4rem;\n\n & > button[data-ref=\"operator\"] {\n min-width: 4rem;\n }\n\n & > button[data-ref=\"sensitivity\"] {\n min-width: 2.5rem;\n }\n\n & > button[data-ref=\"operator\"]:hover,\n & > button[data-ref=\"sensitivity\"]:hover {\n color: var(--ful-active-color);\n background-color: var(--ful-active-bg);\n }\n\n & > button[data-ref=\"operator\"]:focus,\n & > button[data-ref=\"sensitivity\"]:focus {\n outline: 0;\n }\n\n & > button[data-ref=\"operator\"]:focus-visible,\n & > button[data-ref=\"sensitivity\"]:focus-visible {\n background-color: color-mix(in srgb, var(--ful-active-bg) 20%, transparent);\n }\n\n & > button[data-ref=\"operator\"]:disabled,\n & > button[data-ref=\"sensitivity\"]:disabled {\n cursor: default;\n opacity: 0.5;\n }\n }\n\n ful-control-group > ful-control > input {\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n min-height: var(--ful-controls-height);\n padding: 0.375rem 0.75rem;\n font: inherit;\n line-height: 1.5;\n color: var(--ful-color);\n background-color: transparent;\n border: 0;\n border-radius: 0;\n }\n\n ful-control-group > ful-control > input:focus {\n outline: 0;\n }\n\n ful-control-group > button[data-ref=\"value\"] {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 auto;\n min-width: 0;\n padding: 0.375rem 2rem 0.375rem 0.75rem;\n font-size: inherit;\n font-family: inherit;\n line-height: 1.5;\n color: var(--ful-color);\n white-space: nowrap;\n text-align: left;\n background-color: transparent;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n background-position: right 0.75rem center;\n background-repeat: no-repeat;\n background-size: 16px 12px;\n border: 0;\n border-radius: 0;\n cursor: pointer;\n }\n\n ful-control-group > button[data-ref=\"value\"]:focus {\n outline: 0;\n }\n\n ful-control-group > button[data-ref=\"value\"]:disabled {\n cursor: default;\n opacity: 0.5;\n background-size: 0;\n }\n\n ful-affix:has(> button[data-ref=\"operator\"], > button[data-ref=\"sensitivity\"]) > ul[popover],\n ful-control-group > button[data-ref=\"value\"] + ul[popover] {\n top: anchor(bottom);\n left: anchor(left);\n margin: 0.3rem 0 0;\n min-width: 6rem;\n padding: 0.5rem 0;\n list-style: none;\n color: var(--ful-color);\n background-color: var(--ful-bg);\n background-clip: padding-box;\n border: var(--ful-border-width) solid var(--ful-border-color);\n border-radius: var(--ful-border-radius);\n\n &:popover-open {\n display: block;\n }\n\n & > li > a {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.25rem 1rem;\n color: var(--ful-color);\n text-decoration: none;\n cursor: pointer;\n\n & > span:first-child {\n flex: 0 0 2.25em;\n text-align: center;\n }\n }\n\n /*\n * The choice the button currently holds, drawn as ful-select draws a\n * picked entry: a wash of the accent with a bar along the leading edge.\n * The glyph on the button says which one it is only to a reader who\n * already knows the glyphs, so the menu says it in full.\n */\n & > li > a[aria-checked=\"true\"] {\n background-color: color-mix(in srgb, var(--ful-active-bg) 12%, transparent);\n box-shadow: inset 0.2rem 0 0 var(--ful-active-bg);\n }\n\n & > li > a:hover {\n background-color: var(--ful-selected-bg);\n }\n\n & > li > a:focus-visible {\n background-color: var(--ful-selected-bg);\n outline: 0;\n }\n\n & > li > a:active {\n color: var(--ful-active-color);\n background-color: var(--ful-active-bg);\n }\n }\n}\n","@layer ful.components {\n button:has(+ ful-note),\n .ful-tip {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n /*\n * a button does not inherit the page's font, and the correction below is\n * written in units the font defines, so it has to read the same font the\n * label does\n */\n font: inherit;\n /*\n * middle puts the box's centre on the midpoint of the x-height, while a\n * line of text reads as centred on its cap height, which sits higher, so\n * the icon rode about a tenth of an em low beside its label. The\n * correction is half the difference between the two, taken from the font\n * in use rather than guessed: the offset is paint only, so the label's\n * line box does not move\n */\n position: relative;\n top: calc((1ex - 1cap) / 2);\n width: 1.5rem;\n height: 1.5rem;\n padding: 0;\n border: 0;\n border-radius: 50%;\n background: none;\n color: var(--ful-muted-color, var(--ful-color));\n cursor: pointer;\n\n & ful-icon {\n width: 1rem;\n height: 1rem;\n }\n\n &:hover {\n color: var(--ful-accent-ink);\n background-color: color-mix(in srgb, var(--ful-active-bg) 12%, transparent);\n }\n\n &:focus-visible {\n outline: 0;\n box-shadow: var(--ful-focus-box-shadow);\n }\n }\n\n ful-note,\n .ful-note {\n /* the space between the note and its invoker, which the callout points across */\n --ful-note-gap: 0.5rem;\n --ful-note-callout-size: 0.5rem;\n /*how near a corner the callout may sit before it would leave the border's curve*/\n --ful-note-callout-edge: calc(var(--ful-border-radius) + var(--ful-note-callout-size));\n\n display: none;\n max-width: 20rem;\n padding: 0.5rem 0.75rem;\n color: var(--ful-color);\n background-color: var(--ful-bg);\n background-clip: padding-box;\n border: var(--ful-border-width) solid var(--ful-border-color);\n border-radius: var(--ful-border-radius);\n font-size: 0.875rem;\n /*\n * the note says its own piece: it is placed in the top layer beside\n * whatever carried the marker, a bold field label or an emphasised cell\n * among them, and inheriting that set the whole explanation in it\n */\n font-weight: 400;\n font-style: normal;\n text-align: start;\n margin: var(--ful-note-gap) 0 0;\n\n &:popover-open {\n display: block;\n /*\n * the platform gives every popover overflow: auto, which clips the\n * callout back inside the box: a note is a line or two of text with\n * no height to scroll, so it is the overflow that goes\n */\n overflow: visible;\n }\n\n /*\n * The callout: a square straddling the edge that faces the invoker,\n * rotated a quarter turn so a corner points at it, carrying a border on\n * the two sides that end up outside the note and none on the two inside,\n * where its background covers the note's own border and the two become\n * one shape. Only a popover gets one, both because it is the only note\n * with an invoker to point at and because it is the only one the platform\n * positions: a plain .ful-note is static, and giving it a position here\n * would take the popover's own placement away from it.\n */\n &:popover-open::after {\n content: \"\";\n position: absolute;\n width: var(--ful-note-callout-size);\n height: var(--ful-note-callout-size);\n background-color: inherit;\n border: 0 solid var(--ful-border-color);\n rotate: 45deg;\n }\n\n /*\n * below the invoker: the callout sits on the top edge and points up.\n *\n * It points at the invoker rather than at the middle of the note, which\n * are the same spot until the viewport pushes the note sideways and the\n * two come apart by more than the note is wide. The wiring measures where\n * the invoker's centre falls and writes it into the two custom properties\n * below, in both placements: a pseudo-element cannot read the anchor\n * itself, its containing block being the note rather than the page, and\n * an anchor outside that is not one it may name. The clamp keeps the\n * callout off the rounded corners\n */\n &:popover-open::after {\n top: calc(var(--ful-note-callout-size) / -2 - var(--ful-border-width) / 2);\n left: clamp(\n var(--ful-note-callout-edge),\n var(--ful-note-callout-inline, 50%),\n calc(100% - var(--ful-note-callout-edge))\n );\n translate: -50% 0;\n border-block-start-width: var(--ful-border-width);\n border-inline-start-width: var(--ful-border-width);\n }\n\n &[placement=\"top\"]:popover-open {\n margin: 0 0 var(--ful-note-gap);\n\n &::after {\n top: auto;\n bottom: calc(var(--ful-note-callout-size) / -2 - var(--ful-border-width) / 2);\n border-block-start-width: 0;\n border-inline-start-width: 0;\n border-block-end-width: var(--ful-border-width);\n border-inline-end-width: var(--ful-border-width);\n }\n }\n\n &[placement=\"right\"]:popover-open {\n margin: 0 0 0 var(--ful-note-gap);\n\n &::after {\n top: clamp(\n var(--ful-note-callout-edge),\n var(--ful-note-callout-block, 50%),\n calc(100% - var(--ful-note-callout-edge))\n );\n left: calc(var(--ful-note-callout-size) / -2 - var(--ful-border-width) / 2);\n translate: 0 -50%;\n border-block-start-width: 0;\n border-inline-start-width: var(--ful-border-width);\n border-block-end-width: var(--ful-border-width);\n }\n }\n\n &[placement=\"left\"]:popover-open {\n margin: 0 var(--ful-note-gap) 0 0;\n\n &::after {\n top: clamp(\n var(--ful-note-callout-edge),\n var(--ful-note-callout-block, 50%),\n calc(100% - var(--ful-note-callout-edge))\n );\n left: auto;\n right: calc(var(--ful-note-callout-size) / -2 - var(--ful-border-width) / 2);\n translate: 0 -50%;\n border-block-start-width: var(--ful-border-width);\n border-inline-end-width: var(--ful-border-width);\n border-inline-start-width: 0;\n }\n }\n }\n\n dialog.ful-dialog {\n --ful-dialog-width: min(90vw, 32rem);\n\n width: var(--ful-dialog-width);\n padding: 0;\n border: var(--ful-border-width) solid var(--ful-border-color);\n border-radius: var(--ful-border-radius);\n background-color: var(--ful-bg);\n color: var(--ful-color);\n\n &::backdrop {\n background-color: var(--ful-backdrop-color);\n }\n\n /*\n * The chrome answers to a tag as a direct child and to a class at any\n * depth. The tag form keeps the simple case simple, a page writing\n * header, body and footer straight into the dialog. The class form is\n * what a page needs when something stands in between, a form wrapping\n * the whole dialog so that a submit button in the footer belongs to it\n * being the ordinary case, and a descendant selector on a bare header or\n * footer would reach into the content instead.\n */\n & > header,\n & .ful-dialog-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n padding: 1rem 1.25rem 0.5rem;\n\n & h2 {\n margin: 0;\n font-size: 1.125rem;\n margin-inline-end: auto;\n }\n\n /* what the header slot carries sits beside the heading, before it */\n & > :not(h2, button[data-ref=\"close\"]) {\n flex: 0 0 auto;\n }\n\n /* the close button, the same one the drawer's header carries */\n & > button[data-ref=\"close\"] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1.5rem;\n height: 1.5rem;\n padding: 0;\n border: 0;\n border-radius: var(--ful-border-radius);\n background: none;\n color: var(--ful-muted-color, var(--ful-color));\n cursor: pointer;\n\n & ful-icon {\n width: 1em;\n height: 1em;\n }\n\n &:hover {\n color: var(--ful-active-color);\n background-color: var(--ful-active-bg);\n }\n\n &:focus-visible {\n outline: 0;\n box-shadow: var(--ful-focus-box-shadow);\n }\n }\n\n /* the button sits at the end even where no heading was given */\n & > button[data-ref=\"close\"]:only-child {\n margin-inline-start: auto;\n }\n }\n\n & > [data-ref=\"body\"],\n & .ful-dialog-body {\n padding: 0.5rem 1.25rem;\n }\n\n /*\n * what update() shows while it waits and where it paints a rejection,\n * the same pair the drawer carries. The ring is centred on the room the\n * dialog has; the error is a bordered panel around a line or two of\n * text, so it takes only the height it needs\n */\n & > [data-ref=\"loading\"] {\n display: grid;\n place-items: center;\n padding: 2rem 1.25rem;\n }\n\n & > [data-ref=\"error\"] {\n margin: 0.5rem 1.25rem;\n padding: 1rem;\n white-space: pre-line;\n color: var(--ful-error-color);\n background-color: var(--ful-error-bg);\n border: var(--ful-border-width) solid var(--ful-error-border-color);\n border-radius: var(--ful-border-radius);\n }\n\n /* a footer the dialog renders empty, its buttons being the form's own */\n & > footer.ful-dialog-footer:empty {\n display: none;\n }\n\n /*\n * a footer standing inside the body rather than beside it, which is where\n * a form's own buttons sit: the body already holds the side padding, so\n * the footer adding its own would inset its buttons past the header and\n * the text they follow\n */\n & .ful-dialog-body :is(.ful-dialog-header, .ful-dialog-footer) {\n padding-inline: 0;\n }\n\n & > footer,\n & .ful-dialog-footer {\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n padding: 0.5rem 1.25rem 1rem;\n\n /*\n * a plain button is dressed here, which is what the acknowledge\n * button the dialog renders for itself is. One already carrying\n * .ful-button is dressed by that, so a page choosing a variant is\n * not overruled by a more specific selector saying the same thing\n */\n & > button:not(.ful-button) {\n padding: 0.375rem 0.75rem;\n height: var(--ful-controls-height);\n border: var(--ful-controls-border-width) solid var(--ful-controls-border-color);\n border-radius: var(--ful-controls-border-radius);\n background-color: var(--ful-selected-bg);\n color: var(--ful-color);\n cursor: pointer;\n\n &:hover {\n background-color: var(--ful-active-bg);\n color: var(--ful-active-color);\n }\n\n &:focus-visible {\n outline: 0;\n box-shadow: var(--ful-focus-box-shadow);\n }\n }\n }\n }\n}\n","@layer ful.components {\n dialog.ful-drawer {\n --ful-drawer-width: min(90vw, 28rem);\n\n @media (max-width: 30rem) {\n --ful-drawer-width: 100vw;\n border-radius: 0;\n }\n\n position: fixed;\n inset-block: 0;\n /* the ua sheet pins both inline insets to 0; leaving start at 0 while\n end is 0 over-constrains a definite width, and the start edge wins,\n which is the opposite side from the one asked for */\n inset-inline-start: auto;\n inset-inline-end: 0;\n width: var(--ful-drawer-width);\n max-width: 100vw;\n height: 100dvh;\n max-height: 100dvh;\n margin: 0;\n padding: 0;\n border: var(--ful-border-width) solid var(--ful-border-color);\n border-start-start-radius: var(--ful-border-radius);\n border-end-start-radius: var(--ful-border-radius);\n background-color: var(--ful-bg);\n color: var(--ful-color);\n\n &::backdrop {\n background-color: var(--ful-backdrop-color);\n }\n\n &[open] {\n display: flex;\n flex-direction: column;\n animation: ful-drawer-slide-in 0.2s ease-out;\n }\n\n & > header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n padding: 1rem 1.25rem 0.5rem;\n\n & h2 {\n margin: 0;\n font-size: 1.125rem;\n }\n\n & > button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1.5rem;\n height: 1.5rem;\n padding: 0;\n border: 0;\n border-radius: var(--ful-border-radius);\n background: none;\n color: var(--ful-muted-color, var(--ful-color));\n cursor: pointer;\n\n & ful-icon {\n width: 1em;\n height: 1em;\n }\n\n &:hover {\n color: var(--ful-active-color);\n background-color: var(--ful-active-bg);\n }\n\n &:focus-visible {\n outline: 0;\n box-shadow: var(--ful-focus-box-shadow);\n }\n }\n }\n\n & > section {\n padding: 0.5rem 1.25rem 1rem;\n overflow-y: auto;\n\n /*\n the content takes whatever height the header leaves rather than only\n its own, and lays its children out in a column, so what a caller\n delivers can put its buttons at the foot of the drawer instead of\n immediately under the last field. A footer it ends with is pushed\n there without the caller having to say so\n */\n &[data-ref=\"content\"] {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n\n & > footer:last-child {\n margin-block-start: auto;\n }\n }\n\n /*\n the wait fills the space it is waiting in, so the spinner sits in the\n middle of the drawer rather than under the header. The error does not:\n it is a bordered panel around a line or two of text, and growing it to\n the height of the drawer painted most of the panel as empty colour\n with the message floating in the centre\n */\n &[data-ref=\"loading\"] {\n display: grid;\n place-items: center;\n flex-grow: 1;\n }\n\n &[data-ref=\"error\"] {\n margin: 0 1.25rem;\n padding: 1rem;\n white-space: pre-line;\n color: var(--ful-error-color);\n background-color: var(--ful-error-bg);\n border: var(--ful-border-width) solid var(--ful-error-border-color);\n border-radius: var(--ful-border-radius);\n }\n }\n\n &[placement=\"start\"] {\n inset-inline-end: auto;\n inset-inline-start: 0;\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-start-end-radius: var(--ful-border-radius);\n border-end-end-radius: var(--ful-border-radius);\n\n &[open] {\n animation-name: ful-drawer-slide-in-start;\n }\n }\n\n &:dir(rtl)[open] {\n animation-name: ful-drawer-slide-in-start;\n }\n\n &[placement=\"start\"]:dir(rtl)[open] {\n animation-name: ful-drawer-slide-in;\n }\n }\n\n @keyframes ful-drawer-slide-in {\n from {\n transform: translateX(1rem);\n opacity: 0;\n }\n }\n\n @keyframes ful-drawer-slide-in-start {\n from {\n transform: translateX(-1rem);\n opacity: 0;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n dialog.ful-drawer[open] {\n animation: none;\n }\n }\n}\n","@layer ful.components {\n ful-toasts:not(:has(> ful-toast)) {\n display: none;\n }\n\n *:has(> ful-toast) {\n --ful-toasts-max-width: min(90vw, 24rem);\n\n position: fixed;\n top: 1rem;\n inset-inline-end: 1rem;\n z-index: 1200;\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 0.5rem;\n max-width: var(--ful-toasts-max-width);\n\n & > ful-toast {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n padding: 0.625rem 0.75rem;\n border: var(--ful-controls-border-width) solid var(--ful-border-color);\n border-radius: var(--ful-controls-border-radius);\n background-color: var(--ful-bg);\n color: var(--ful-color);\n white-space: pre-line;\n animation: ful-toast-in 0.2s ease-out;\n\n & > div:first-child {\n flex-grow: 1;\n }\n\n & > button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n width: 1.25rem;\n height: 1.25rem;\n padding: 0;\n border: 0;\n border-radius: var(--ful-border-radius);\n background: none;\n color: inherit;\n cursor: pointer;\n\n & ful-icon {\n width: 1em;\n height: 1em;\n }\n\n &:hover {\n color: var(--ful-active-color);\n background-color: var(--ful-active-bg);\n }\n\n &:focus-visible {\n outline: 0;\n box-shadow: var(--ful-focus-box-shadow);\n }\n }\n\n &.success {\n border-color: var(--ful-accent-ink);\n color: var(--ful-accent-ink);\n }\n\n &.warning {\n border-color: var(--ful-warning-border-color);\n background-color: var(--ful-warning-bg);\n color: var(--ful-warning-color);\n }\n\n &.error {\n border-color: var(--ful-error-border-color);\n background-color: var(--ful-error-bg);\n color: var(--ful-error-color);\n }\n\n &.ful-toast-out {\n animation: ful-toast-out 0.2s ease-in forwards;\n }\n }\n }\n\n @keyframes ful-toast-in {\n from {\n transform: translateY(-0.5rem);\n opacity: 0;\n }\n }\n\n @keyframes ful-toast-out {\n to {\n transform: translateY(-0.5rem);\n opacity: 0;\n }\n }\n}\n","@layer ful.components {\n *:has(> ful-tablist) {\n display: block;\n\n /*\n * The panel stands off its tablist. Without this the content begins on\n * the tablist's bottom border, which reads as one block and loses the\n * rhythm the rest of a page has; the tabs render the panel, so the space\n * between the two belongs here rather than to every page that uses them.\n */\n & > [role=\"tabpanel\"] {\n padding-block-start: 1rem;\n }\n }\n\n ful-tablist {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n border-block-end: var(--ful-border-width) solid var(--ful-border-color);\n\n & > button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n /* a tab's own gap: an icon before its label needs air, and the\n tablist's gap spaces the tabs from one another, not their parts */\n gap: 0.375rem;\n min-height: var(--ful-controls-height);\n padding: 0.375rem 0.75rem;\n font: inherit;\n line-height: 1.5;\n color: var(--ful-muted-color, var(--ful-color));\n background: none;\n border: var(--ful-border-width) solid transparent;\n border-start-start-radius: var(--ful-border-radius);\n border-start-end-radius: var(--ful-border-radius);\n cursor: pointer;\n\n &:hover {\n color: var(--ful-color);\n background-color: var(--ful-selected-bg);\n }\n\n &:focus-visible {\n outline: 0;\n box-shadow: var(--ful-focus-box-shadow);\n }\n\n &[aria-selected=\"true\"] {\n color: var(--ful-color);\n background-color: var(--ful-bg);\n border-color: var(--ful-border-color) var(--ful-border-color) transparent;\n font-weight: 600;\n }\n }\n }\n}\n","@layer ful.components {\n *:has(> ful-accordion-group) {\n display: block;\n }\n\n ful-accordion-group {\n display: block;\n\n & > details {\n color: var(--ful-color);\n background-color: var(--ful-bg);\n border: var(--ful-border-width) solid var(--ful-border-color);\n border-radius: var(--ful-border-radius);\n\n & + details {\n margin-top: 0.5rem;\n }\n\n &:has(> summary:focus-visible) {\n border-color: var(--ful-focus-border-color);\n box-shadow: var(--ful-focus-box-shadow);\n }\n\n & > summary {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n min-height: var(--ful-controls-height);\n padding: 0.375rem 0.75rem;\n font: inherit;\n line-height: 1.5;\n cursor: pointer;\n list-style: none;\n outline: 0;\n\n &::-webkit-details-marker {\n display: none;\n }\n\n &::after {\n content: \"\";\n margin-inline-start: auto;\n flex: 0 0 auto;\n width: 1em;\n height: 1em;\n background-color: currentcolor;\n mask-image: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='black' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>\");\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: contain;\n transition: rotate 0.2s ease-out;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n\n &[open] > summary::after {\n rotate: 180deg;\n }\n\n & > :not(summary) {\n padding: 0.5rem 0.75rem 0.75rem;\n }\n }\n }\n}\n","@layer ful.components {\n *:has(> ful-steps) {\n display: flex;\n flex-direction: column;\n\n & > section:not([aria-current=\"step\"]) {\n display: none;\n }\n }\n\n ful-steps {\n display: block;\n\n & ol {\n display: flex;\n flex-wrap: wrap;\n margin: 0 0 1rem;\n padding: 0;\n list-style: none;\n }\n\n & li:not([aria-current=\"step\"]) {\n display: none;\n }\n\n & li[aria-current=\"step\"] {\n display: flex;\n align-items: center;\n flex: 0 1 auto;\n min-height: var(--ful-controls-height);\n padding: 0.375rem 0.5rem;\n font-weight: 700;\n color: var(--ful-accent-ink);\n }\n }\n\n ful-wizard {\n &[progress=\"timeline\"] {\n & ful-steps li {\n display: flex;\n justify-content: center;\n flex: 1 1 auto;\n min-width: min(100%, 8rem);\n text-align: center;\n color: var(--ful-accent-ink);\n border-block-end: calc(2 * var(--ful-border-width)) solid var(--ful-accent-ink);\n }\n\n & ful-steps li[aria-current=\"step\"] ~ li {\n color: color-mix(in srgb, var(--ful-color) 65%, var(--ful-bg));\n border-block-end-color: var(--ful-border-color);\n }\n }\n\n &[progress=\"dots\"] {\n & ful-steps ol {\n gap: 0.375rem;\n margin-block-end: 1rem;\n }\n\n & ful-steps li {\n display: block;\n flex: 0 0 auto;\n min-width: 0;\n min-height: 0;\n width: 0.5rem;\n height: 0.5rem;\n padding: 0;\n font-size: 0;\n border-radius: 50%;\n background-color: var(--ful-accent-ink);\n }\n\n & ful-steps li[aria-current=\"step\"] {\n background-color: var(--ful-active-bg);\n box-shadow: 0 0 0 0.125rem color-mix(in srgb, var(--ful-active-bg) 35%, transparent);\n }\n\n & ful-steps li[aria-current=\"step\"] ~ li {\n background-color: var(--ful-border-color);\n }\n }\n\n &[progress=\"none\"] {\n & ful-steps {\n display: none;\n }\n }\n }\n}\n","/**\n * Hiding wins over the chrome. `[hidden]` is the platform's own way of saying an\n * element is not rendered, and the library lays several of its parts out with\n * `display:`, which would otherwise beat it. The last layer settles that without\n * an `!important`, so a consuming page can still override it with a plain rule.\n */\n@layer ful.hidden {\n [hidden] {\n display: none;\n }\n}\n"],"names":[],"mappings":"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"}