actual-css 0.3.1 → 0.4.0

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 (203) hide show
  1. package/CHANGELOG.md +67 -3
  2. package/README.md +35 -30
  3. package/dist/actual.css +73 -4946
  4. package/dist/actual.full.css +7090 -0
  5. package/dist/actual.full.js +1 -0
  6. package/dist/actual.full.min.css +1 -0
  7. package/dist/actual.js +1 -1
  8. package/dist/actual.min.css +1 -1
  9. package/docs/design-notes/cascade-layer.md +34 -13
  10. package/docs/design-notes/column-layout.md +677 -0
  11. package/docs/design-notes/forced-colors.md +3 -0
  12. package/docs/design-notes/grid.md +612 -0
  13. package/docs/design-notes/naming.md +15 -0
  14. package/docs/design-notes/widget-primitives.md +1 -0
  15. package/docs/navigation.json +5 -1
  16. package/docs/pages/components/alert.md +16 -14
  17. package/docs/pages/components/aura.md +1 -1
  18. package/docs/pages/components/avatar.md +6 -6
  19. package/docs/pages/components/badge.md +7 -7
  20. package/docs/pages/components/button.md +16 -16
  21. package/docs/pages/components/card.md +13 -9
  22. package/docs/pages/components/chat.md +8 -8
  23. package/docs/pages/components/dialog.md +7 -7
  24. package/docs/pages/components/drawer.md +3 -3
  25. package/docs/pages/components/fab.md +7 -7
  26. package/docs/pages/components/navbar.md +9 -8
  27. package/docs/pages/components/pagination.md +4 -3
  28. package/docs/pages/components/skeleton.md +4 -4
  29. package/docs/pages/components/spinner.md +5 -5
  30. package/docs/pages/components/table.md +30 -5
  31. package/docs/pages/enhancements/flyout.md +13 -13
  32. package/docs/pages/enhancements/overview.md +1 -1
  33. package/docs/pages/enhancements/scrollspy.md +6 -6
  34. package/docs/pages/enhancements/status-bar.md +5 -1
  35. package/docs/pages/enhancements/tabs.md +6 -6
  36. package/docs/pages/enhancements/tooltip.md +1 -1
  37. package/docs/pages/examples/overview.md +39 -22
  38. package/docs/pages/forms/choice-cards.md +11 -6
  39. package/docs/pages/forms/controls.md +1 -1
  40. package/docs/pages/forms/detached-actions.md +1 -1
  41. package/docs/pages/forms/floating-field.md +10 -5
  42. package/docs/pages/forms/form-actions.md +1 -1
  43. package/docs/pages/forms/input-policy.md +1 -1
  44. package/docs/pages/forms/joined-controls.md +4 -4
  45. package/docs/pages/forms/labels.md +6 -6
  46. package/docs/pages/forms/otp.md +1 -1
  47. package/docs/pages/forms/overview.md +19 -19
  48. package/docs/pages/forms/password.md +1 -1
  49. package/docs/pages/forms/range.md +1 -1
  50. package/docs/pages/forms/states-and-sizes.md +41 -45
  51. package/docs/pages/forms/sticky-actions.md +3 -3
  52. package/docs/pages/forms/switch.md +110 -2
  53. package/docs/pages/forms/validation.md +9 -9
  54. package/docs/pages/foundations/philosophy.md +1 -1
  55. package/docs/pages/foundations/theming.md +17 -2
  56. package/docs/pages/foundations/tokens.md +22 -10
  57. package/docs/pages/foundations/typography.md +50 -20
  58. package/docs/pages/guides/bootstrap.md +11 -11
  59. package/docs/pages/guides/integrating-actual-css.md +186 -0
  60. package/docs/pages/guides/introduction.md +23 -26
  61. package/docs/pages/guides/modular-import.md +173 -0
  62. package/docs/pages/guides/progressive-enhancement.md +81 -78
  63. package/docs/pages/guides/tailwind.md +6 -8
  64. package/docs/pages/layout/app-shell.md +1 -1
  65. package/docs/pages/layout/center.md +1 -1
  66. package/docs/pages/layout/choosing.md +39 -0
  67. package/docs/pages/layout/column-layout.md +206 -0
  68. package/docs/pages/layout/frame.md +6 -1
  69. package/docs/pages/layout/grid.md +100 -102
  70. package/docs/pages/layout/list.md +1 -1
  71. package/docs/pages/layout/media.md +1 -1
  72. package/docs/pages/layout/overview.md +15 -2
  73. package/docs/pages/layout/scroll-snap.md +2 -2
  74. package/docs/pages/layout/scroll-target.md +45 -0
  75. package/docs/pages/layout/sidebar-layout.md +20 -19
  76. package/docs/pages/layout/stack.md +53 -1
  77. package/docs/pages/layout/switcher.md +10 -26
  78. package/docs/pages/layout/topbar.md +2 -2
  79. package/docs/pages/patterns/actions.md +1 -1
  80. package/docs/pages/patterns/code-block.md +1 -1
  81. package/docs/pages/patterns/exclusive-accordion.md +1 -1
  82. package/docs/pages/patterns/hierarchical-nav.md +1 -1
  83. package/docs/pages/patterns/icon-input.md +1 -1
  84. package/docs/pages/patterns/intent-nesting.md +1 -1
  85. package/docs/pages/patterns/navigation-list.md +1 -1
  86. package/docs/pages/patterns/overview.md +1 -1
  87. package/docs/pages/patterns/structured-lists.md +1 -1
  88. package/docs/pages/utilities/accessibility.md +3 -3
  89. package/docs/pages/utilities/flex.md +15 -15
  90. package/docs/pages/utilities/links.md +4 -4
  91. package/docs/pages/utilities/list.md +8 -8
  92. package/docs/pages/utilities/overflow.md +8 -8
  93. package/docs/pages/utilities/overview.md +1 -1
  94. package/docs/pages/utilities/shape.md +3 -3
  95. package/docs/pages/utilities/sizing-wrapping.md +23 -16
  96. package/docs/pages/utilities/spacing.md +20 -20
  97. package/docs/pages/utilities/text.md +10 -10
  98. package/llms.txt +46 -4
  99. package/package.json +42 -13
  100. package/scripts/reserved-classes.json +261 -0
  101. package/src/cli/actual-css.js +133 -0
  102. package/src/css/actual.css +1 -31
  103. package/src/css/actual.full.css +11 -2
  104. package/src/css/components/alert.css +17 -4
  105. package/src/css/components/badge.css +18 -6
  106. package/src/css/components/breadcrumb.css +1 -1
  107. package/src/css/components/button.css +19 -1
  108. package/src/css/components/card.css +27 -2
  109. package/src/css/components/drawer.css +27 -2
  110. package/src/css/components/flyout.css +5 -0
  111. package/src/css/components/index.css +32 -27
  112. package/src/css/components/join.css +8 -1
  113. package/src/css/components/key.css +2 -0
  114. package/src/css/components/menu.css +11 -1
  115. package/src/css/components/meter.css +4 -1
  116. package/src/css/components/modal.css +5 -0
  117. package/src/css/components/pagination.css +11 -0
  118. package/src/css/components/spinner.css +5 -0
  119. package/src/css/components/status-bar.css +5 -0
  120. package/src/css/components/surface.css +5 -0
  121. package/src/css/components/table.css +6 -0
  122. package/src/css/components/tooltip.css +5 -0
  123. package/src/css/core/index.css +9 -0
  124. package/src/css/core/print.css +18 -0
  125. package/src/css/{theme.css → core/theme.css} +20 -10
  126. package/src/css/{tokens.css → core/tokens.css} +15 -2
  127. package/src/css/{variants.css → core/variants.css} +3 -2
  128. package/src/css/effects/index.css +2 -0
  129. package/src/css/forms/base.css +8 -0
  130. package/src/css/forms/choice-card.css +5 -4
  131. package/src/css/forms/choice.css +49 -37
  132. package/src/css/forms/control.css +4 -1
  133. package/src/css/forms/custom-select.css +2 -0
  134. package/src/css/{optional → forms}/floating-field.css +25 -7
  135. package/src/css/forms/index.css +10 -13
  136. package/src/css/forms/native.css +15 -2
  137. package/src/css/{optional → forms}/otp.css +20 -16
  138. package/src/css/forms/switch.css +31 -29
  139. package/src/css/layout/app-shell.css +6 -0
  140. package/src/css/layout/center.css +13 -0
  141. package/src/css/layout/cluster.css +21 -0
  142. package/src/css/layout/column-layout.css +144 -0
  143. package/src/css/layout/container-query.css +13 -0
  144. package/src/css/layout/frame.css +19 -0
  145. package/src/css/layout/grid.css +141 -0
  146. package/src/css/layout/index.css +42 -0
  147. package/src/css/layout/measure.css +9 -0
  148. package/src/css/layout/media.css +10 -0
  149. package/src/css/layout/scroll-target.css +15 -0
  150. package/src/css/layout/scroller.css +41 -0
  151. package/src/css/layout/sidebar-layout.css +31 -0
  152. package/src/css/layout/stack.css +21 -0
  153. package/src/css/layout/switcher.css +23 -0
  154. package/src/css/{optional/layout-extra.css → layout/topbar.css} +0 -20
  155. package/src/css/typography/index.css +5 -0
  156. package/src/css/typography/lead.css +7 -0
  157. package/src/css/{components → typography}/overline.css +2 -2
  158. package/src/css/{prose.css → typography/prose.css} +53 -38
  159. package/src/css/{utilities.css → utilities/base.css} +2 -0
  160. package/src/css/utilities/index.css +3 -0
  161. package/src/js/escape.js +36 -0
  162. package/src/js/flyout.js +22 -12
  163. package/src/js/full.js +26 -0
  164. package/src/js/index.js +5 -21
  165. package/src/js/surface.js +1 -31
  166. package/src/js/tooltip.js +46 -18
  167. package/src/js/validation.js +1 -1
  168. package/src/tooling/css-bundle.js +308 -0
  169. package/dist/actual-themes.min.css +0 -1
  170. package/dist/optional.css +0 -1048
  171. package/dist/optional.min.css +0 -1
  172. package/docs/pages/guides/optional-components.md +0 -33
  173. package/src/css/grid.css +0 -109
  174. package/src/css/layout.css +0 -123
  175. package/src/css/optional/index.css +0 -10
  176. package/src/css/optional/scroller.css +0 -63
  177. package/src/css/print.css +0 -47
  178. package/src/css/themes/corporate.css +0 -60
  179. package/src/css/themes/cyberpunk.css +0 -60
  180. package/src/css/themes/dim.css +0 -33
  181. package/src/css/themes/edge.css +0 -117
  182. package/src/css/themes/forest.css +0 -65
  183. package/src/css/themes/gradient.css +0 -97
  184. package/src/css/themes/index.css +0 -47
  185. package/src/css/themes/indigo.css +0 -33
  186. package/src/css/themes/lavender.css +0 -66
  187. package/src/css/themes/mono.css +0 -60
  188. package/src/css/themes/neon.css +0 -66
  189. package/src/css/themes/ocean.css +0 -60
  190. package/src/css/themes/petrol.css +0 -64
  191. package/src/css/themes/spruce.css +0 -64
  192. package/src/css/themes/square.css +0 -65
  193. package/src/css/themes/sunset.css +0 -66
  194. /package/src/css/{optional → components}/chat.css +0 -0
  195. /package/src/css/{optional → components}/fab.css +0 -0
  196. /package/src/css/{base.css → core/base.css} +0 -0
  197. /package/src/css/{focus.css → core/focus.css} +0 -0
  198. /package/src/css/{intents.css → core/intents.css} +0 -0
  199. /package/src/css/{reset.css → core/reset.css} +0 -0
  200. /package/src/css/{optional → effects}/aura.css +0 -0
  201. /package/src/css/{optional → layout}/scroll-snap.css +0 -0
  202. /package/src/css/{optional/typography-fluid.css → typography/fluid.css} +0 -0
  203. /package/src/css/{optional/utilities-extra.css → utilities/extra.css} +0 -0
@@ -0,0 +1 @@
1
+ var Fe=new WeakMap,Re=new WeakMap;function _e(){return{refresh(){},disconnect(){}}}function vt(e){return e?.nodeType===1||e?.nodeType===9||e?.nodeType===11}function $n(e){let t=new Set,n="";function r(c){try{if(e.querySelector?.(c),e.nodeType===1)e.matches(c);return!0}catch(u){return console.error(`Invalid enhancer selector "${c}"`,u),!1}}function o(){n=[...t].flatMap((c)=>c.selectors).join(",")}function i(c,u){if(u?.nodeType!==1)return;let m=c.instances.get(u);for(let p of c.selectors){if(!u.matches(p))continue;if(m?.has(p))continue;let h;try{h=c.enhancers[p](u)}catch(S){console.error(`Enhancer failed for selector "${p}"`,S);continue}if(!m)m=new Map,c.instances.set(u,m);m.set(p,typeof h==="function"?h:null)}}function s(c,u){let m=c.instances.get(u);if(!m)return;for(let p of m.values())try{p?.()}catch(h){console.error("Enhancer cleanup failed",h)}c.instances.delete(u)}function a(c,u){if(!vt(u))return;if(u.nodeType===1)i(c,u);if(c.selectorString)u.querySelectorAll?.(c.selectorString).forEach((m)=>{i(c,m)})}function l(c){if(!vt(c)||!n)return;if(c.nodeType===1)for(let u of t)i(u,c);c.querySelectorAll?.(n).forEach((u)=>{for(let m of t)i(m,u)})}function d(){for(let c of t)for(let u of Array.from(c.instances.keys()))if(!u.isConnected||!e.contains(u))s(c,u)}let f=new MutationObserver((c)=>{let u=!1;for(let m of c){for(let p of m.addedNodes)l(p);if(m.removedNodes.length>0)u=!0}if(u)d()});return f.observe(e,{childList:!0,subtree:!0}),{add(c){let u=Object.keys(c).filter(r);if(!u.length)return null;let p={disconnected:!1,enhancers:Object.fromEntries(u.map((h)=>[h,c[h]])),instances:new Map,selectors:u,selectorString:u.join(",")};return t.add(p),o(),a(p,e),p},refresh(c,u){if(c.disconnected)return;a(c,u)},remove(c){if(c.disconnected)return;c.disconnected=!0;for(let u of Array.from(c.instances.keys()))s(c,u);if(t.delete(c),o(),t.size===0)f.disconnect(),Fe.delete(e)}}}var Pn=/^[a-z][a-z0-9-]*$/;function ee(e){if(!Pn.test(e))throw TypeError(`Invalid enhancement name: ${e}`);return`[data-enhance~="${e}"]`}function N(e,t,n){if(typeof document>"u")return _e();if(ee(e),typeof t!=="function")throw TypeError("registerEnhancement() requires a function init.");n??=document.documentElement;let r=Re.get(n);if(!r)r=new Map,Re.set(n,r);if(r.has(e))throw Error(`Enhancement "${e}" is already registered on this root.`);let o=v({[ee(e)]:t},n);return r.set(e,o),{refresh:(i)=>o.refresh(i),disconnect:()=>{if(o.disconnect(),r.get(e)===o)r.delete(e);if(r.size===0)Re.delete(n)}}}function Un(e){let t=Fe.get(e);if(!t)t=$n(e),Fe.set(e,t);return t}function v(e,t){if(typeof document>"u")return _e();t??=document.documentElement;let n=Un(t),r=n.add(e);if(!r)return _e();return{refresh:(o)=>n.refresh(r,o),disconnect:()=>{n.remove(r)}}}var Wn=["a[href]","button","input","select","textarea","summary","[contenteditable]:not([contenteditable='false'])","[tabindex]"].join(",");function Ve(e){if(!e||e.hidden)return!1;if(typeof e.checkVisibility==="function")return e.checkVisibility();if(e.getClientRects().length===0)return!1;let t=e.ownerDocument?.defaultView?.getComputedStyle?.(e);if(!t)return!0;return t.visibility!=="hidden"&&t.visibility!=="collapse"}function Bn(e){return e.tabIndex>=0&&!e.matches(":disabled")&&Ve(e)&&!e.closest('[inert], [aria-hidden="true"]')}function qn(e){return[...e.querySelectorAll(Wn)].filter(Bn)}function $e(e){let t=qn(e)[0];return t?.focus(),!!t}function ne(e){return e[0]||null}function re(e){return e[e.length-1]||null}function te(e,t,n,r={}){if(!e.length)return null;let o=r.wrap!==!1,i=e.indexOf(t);if(i===-1)return n>0?ne(e):re(e);let s=i+n;if(!o)return e[s]||null;let a=(s%e.length+e.length)%e.length;return e[a]}function P(e,t,n,r={}){let o=r.orientation||"horizontal",i=r.wrap===!0,s=r.direction||"ltr";switch(n){case"Home":return ne(e);case"End":return re(e);case"ArrowRight":if(o!=="horizontal")return null;return te(e,t,s==="rtl"?-1:1,{wrap:i});case"ArrowLeft":if(o!=="horizontal")return null;return te(e,t,s==="rtl"?1:-1,{wrap:i});case"ArrowDown":if(o!=="vertical")return null;return te(e,t,1,{wrap:i});case"ArrowUp":if(o!=="vertical")return null;return te(e,t,-1,{wrap:i});default:return null}}var zn=new Set(["horizontal","vertical"]);function Xn(e,t){if(t==null)e.removeAttribute("tabindex");else e.setAttribute("tabindex",t)}function Tt(e,t={}){if(!e?.addEventListener||!e?.contains)throw TypeError("connectFocusGroup() requires a root element.");if(typeof t.getItems!=="function")throw TypeError("connectFocusGroup() requires getItems().");let n=t.orientation||"horizontal";if(!zn.has(n))throw TypeError(`Invalid focus-group orientation: ${n}`);let r=new AbortController,o=t.signal||null,i=new Map,s=null,a=!1;function l(){let p=new Set;return[...t.getItems()||[]].filter((h)=>{if(typeof h?.focus!=="function"||!e.contains(h)||p.has(h))return!1;return p.add(h),!0})}function d(p){if(!i.has(p))return;Xn(p,i.get(p)),i.delete(p)}function f(p=s){if(a)return[];let h=l(),S=new Set(h);for(let w of i.keys())if(!S.has(w))d(w);let E=e.ownerDocument.activeElement,k=S.has(p)&&p||S.has(E)&&E||h.find((w)=>w.tabIndex===0)||h[0]||null;for(let w of h){if(!i.has(w))i.set(w,w.getAttribute("tabindex"));let L=w===k?0:-1;w.tabIndex=L}return s=k,h}function c(p){if(l().includes(p.target))f(p.target)}function u(p){let h=f(),S=e.ownerDocument.activeElement;if(!h.includes(S))return;let k=e.ownerDocument.defaultView?.getComputedStyle?.(e)?.direction==="rtl"?"rtl":"ltr",w=P(h,S,p.key,{orientation:n,wrap:t.wrap===!0,direction:k});if(!w)return;p.preventDefault(),f(w),w.focus()}e.addEventListener("focusin",c,{signal:r.signal}),e.addEventListener("keydown",u,{signal:r.signal}),f();function m(){if(a)return;a=!0,o?.removeEventListener("abort",m),r.abort();for(let p of i.keys())d(p);s=null}if(o)if(o.aborted)m();else o.addEventListener("abort",m,{once:!0});return{sync:f,disconnect:m}}var jn=":scope > li > .menu-item",Hn=new Set(["menuitem","menuitemcheckbox","menuitemradio"]);function Kn(e){return!e.disabled&&e.getAttribute("aria-disabled")!=="true"&&Ve(e)&&!e.closest("[hidden], [inert], [aria-hidden='true']")}function j(e){return[...e.querySelectorAll(jn)].filter(Kn)}function St(e){return Hn.has(e.getAttribute("role"))}function Gn(e){let t=e.ownerDocument.activeElement;if(!e.contains(t)||!St(t))return!1;return t.click(),!0}function At(e){return j(e).length>0}function Yn(e,t){let n=t?.closest?.(".menu-item");return n?.parentElement?.parentElement===e?n:null}function U(e){ne(j(e))?.focus()}function Ue(e){re(j(e))?.focus()}function Jn(e,{close:t,navigate:n=!0}){let r=e.currentTarget;if(n){let o=j(r),i=P(o,r.ownerDocument.activeElement,e.key,{orientation:"vertical",wrap:!0});if(i){e.preventDefault(),i.focus();return}}switch(e.key){case"Tab":t(r);break;case"Enter":case" ":if(Gn(r))e.preventDefault();break}}var Pe=new WeakMap;function oe(e,{close:t}){let n=Pe.get(e);if(!n){let o=new AbortController,i=e.matches('[role="menu"]')?Tt(e,{getItems:()=>j(e).filter(St),orientation:"vertical",wrap:!0,signal:o.signal}):null;e.addEventListener("keydown",(s)=>Jn(s,{close:()=>t(e),navigate:!i}),{signal:o.signal}),e.addEventListener("click",(s)=>{let a=Yn(e,s.target);if(!a)return;if(a.matches(":disabled, [aria-disabled='true']")){s.preventDefault(),s.stopPropagation();return}},{signal:o.signal}),n={count:0,controller:o,focusGroup:i},Pe.set(e,n)}n.count++;let r=!1;return()=>{if(r)return;if(r=!0,n.count--,n.count<=0)n.focusGroup?.disconnect(),n.controller.abort(),Pe.delete(e)}}var We=new WeakMap;function ie(e,t){let n=e.ownerDocument,r=We.get(n);if(!r)r=[],We.set(n,r),n.addEventListener("keydown",Zn);let o={element:e,dismiss:t};return r.push(o),()=>{let i=r.indexOf(o);if(i>=0)r.splice(i,1)}}function Zn(e){if(e.key!=="Escape"||e.ctrlKey||e.altKey||e.shiftKey)return;let n=We.get(e.currentTarget).at(-1);if(!n)return;e.preventDefault(),n.dismiss({restoreFocus:!0})}var A={reposition:"actual:reposition",hide:"actual:hide",outOfView:"actual:out-of-view",surfaceOpen:"actual:surface-open",contextMenu:"actual:context-menu",status:"actual:status",invalid:"actual:invalid",dialogCancel:"actual:dialog-cancel",dismiss:"actual:dismiss"};function Be(e){return e.split("-")[0]}function ce(e){return e.split("-")[1]||null}function Lt(e){return["top","bottom"].includes(Be(e))?"x":"y"}function Qn(e){if(e==="top")return"bottom";if(e==="bottom")return"top";if(e==="left")return"right";if(e==="right")return"left"}function se(e,t,n,r){let o=e.x+e.width/2-t.width/2,i=e.y+e.height/2-t.height/2,s=Lt(n),a=e[s==="x"?"width":"height"]/2-t[s==="x"?"width":"height"]/2,l=Be(n),d;switch(l){case"top":d={x:o,y:e.y-t.height};break;case"bottom":d={x:o,y:e.y+e.height};break;case"right":d={x:e.x+e.width,y:i};break;case"left":d={x:e.x-t.width,y:i};break;default:d={x:e.x,y:e.y}}let f=ce(n),c=s==="x";if(f==="start")d[s]-=a*(r&&c?-1:1);if(f==="end")d[s]+=a*(r&&c?-1:1);return d}function ae(e,t,n){switch(t){case"top":e.y-=n;break;case"bottom":e.y+=n;break;case"left":e.x-=n;break;case"right":e.x+=n;break}}function xt(e,t,n,r){return Math.max(n-e.x,0)+Math.max(e.x+t.width-r,0)}function Dt(e){return{x:e.x,y:e.y,width:e.width,height:e.height,right:e.x+e.width,bottom:e.y+e.height}}var er=typeof CSS<"u"&&CSS.supports("selector(:dir(rtl))");function tr(e){if(e.dir==="rtl")return!0;if(e.dir==="ltr")return!1;if(er)return e.matches(":dir(rtl)");return e.ownerDocument?.defaultView?.getComputedStyle?.(e)?.direction==="rtl"}function nr(e){return e.documentElement}function Ct(e){let t=Number.parseFloat(e);return Number.isFinite(t)?t:0}var rr=25,or=128;function ir(e){let t=e.defaultView||window,n=nr(e),r=t.visualViewport,o=r?.offsetLeft||0,i=r?.offsetTop||0,s=r?.width||n.clientWidth||t.innerWidth,a=r?.height||n.clientHeight||t.innerHeight,l=e.body;if(l?.clientWidth>0){let d=t.getComputedStyle?.(l),f=e.compatMode==="CSS1Compat"?Ct(d?.marginLeft)+Ct(d?.marginRight):0,c=Math.abs(n.clientWidth-l.clientWidth-f);if(c<=rr)s-=c}return Dt({x:o,y:i,width:s,height:a})}function sr(e,t){if(!t.scope)return ir(e.ownerDocument);let n=t.scope.getBoundingClientRect();return Dt({x:n.x,y:n.y,width:n.width,height:n.height})}function ar(e,t){return e.right<t.x||e.left>t.right||e.bottom<t.y||e.top>t.bottom}function cr(e,t,n,r,o){if(t==="top")return Math.max(0,e.top-n.y-r-o);if(t==="bottom")return Math.max(0,n.bottom-e.bottom-r-o);return Math.max(0,n.height-o*2)}function ur(e){if(e.hidden)return!1;if(typeof e.checkVisibility==="function")return e.checkVisibility();return e.getClientRects().length>0}function lr(e){let t=e.getBoundingClientRect();return{width:e.offsetWidth||t.width,height:e.offsetHeight||t.height}}var kt=new WeakMap;function fr(e){let t=e.defaultView,n=t?.ResizeObserver,r=new Map,o=null,i=!1,s=new Map;function a(){if(o||!n)return o;return o=new n((f,c)=>{for(let u of f)c.unobserve(u.target),l("element-resize",u),t.requestAnimationFrame(()=>{if(d.entries.has(u.target))c.observe(u.target)})}),o}function l(f,c){for(let u of r.keys()){let m=s.get(u);if(!m)m=new Map,s.set(u,m);let p=m.get(f);if(!p)p={targets:new Set,timeStamp:0},m.set(f,p);if(c?.target)p.targets.add(c.target);p.timeStamp=Math.max(p.timeStamp,c?.timeStamp||0)}if(!i)t.requestAnimationFrame(()=>{let u=[...s];s.clear();for(let[m,p]of u){let h=r.get(m);if(!h||!m.isConnected)continue;for(let[S,E]of p)h({type:S,...E})}i=!1});i=!0}e.addEventListener("scroll",(f)=>l(f.type,f),{passive:!0,capture:!0}),t.addEventListener("resize",(f)=>l("resize",f),{passive:!0});let d={entries:r,add(f,c){return r.set(f,c),a()?.observe(f),()=>{r.delete(f),s.delete(f),o?.unobserve(f)}}};return d}function dr(e){let t=e.ownerDocument,n=kt.get(t);if(!n)n=fr(t),kt.set(t,n);return n}function ue(e,t){return dr(e).add(e,t)}function H(e,t,n={}){if(!ur(t))return!1;let r=n.placement||"bottom-start",o=n.distance||0,i=n.flip!==!1,s=n.shift!==!1,a=n.shiftPadding??4,l=tr(e),d=e.getClientRects(),f=r.startsWith("bottom")?d[d.length-1]:d[0];if(!f)return!1;let c=sr(e,n);if(ar(f,c))return!1;let u=lr(t),m=c.x,p=c.y,h=c.right,S=c.bottom,E=Be(r),k=ce(r),w=Lt(r),L=r,g=se(f,u,L,l);if(ae(g,E,o),i){let x=Math.ceil(g.x),C=Math.ceil(g.y);if(w==="x"&&(C<p||C+u.height>=S)||w==="y"&&(x<m||x+u.width>=h))E=Qn(E),L=k?`${E}-${k}`:E,g=se(f,u,L,l),ae(g,E,o);if(w==="y"&&(g.x<m||g.x+u.width>h)&&c.width-u.width<or)E="top",w="x",L=k?`${E}-${k}`:E,g=se(f,u,L,l),ae(g,E,o)}if(w==="x"&&s&&ce(L)){let x=m+a,C=h-a,D=xt(g,u,x,C);if(D>0){let Vn=ce(L)==="end"?"start":"end",yt=`${E}-${Vn}`,Ne=se(f,u,yt,l);if(ae(Ne,E,o),xt(Ne,u,x,C)<D)L=yt,g=Ne}}let Ie=50;if(s||u.width>f.width){let x=m+a,C=h-u.width-a;if(g.x<x){let D=x-g.x;g.x=x,Ie=50-D/u.width*100}else if(g.x>C){let D=C-g.x;g.x=Math.max(m,C),Ie=50+D/u.width*100}}let Oe=50;if(w==="y"&&(s||u.height>f.height)){let x=p+a,C=S-u.height-a;if(g.y<x){let D=x-g.y;g.y=x,Oe=50-D/u.height*100}else if(g.y>C){let D=C-g.y;g.y=Math.max(p,C),Oe=50+D/u.height*100}}let _n=cr(f,E,c,o,a);return t.style.setProperty("--arrow-x",`${Ie}%`),t.style.setProperty("--arrow-y",`${Oe}%`),t.style.setProperty("--available-height",`${_n}px`),t.dataset.placement=L,Object.assign(t.style,{left:`${g.x}px`,top:`${g.y}px`}),!0}function Mt(e,t,n,r={}){let o=n.ownerDocument,i=o.documentElement,s=o.defaultView||window,a=o.dir||i?.dir||s.getComputedStyle?.(i).direction||"";return H({ownerDocument:o,dir:a,matches:(d)=>d===":dir(rtl)"&&a==="rtl",getClientRects:()=>[{x:e,y:t,left:e,top:t,right:e,bottom:t,width:0,height:0}]},n,r)}var b={wasValidated:"was-validated",danger:"danger",fieldError:"field-error",field:"field",open:"is-open",sheet:"is-sheet",backdrop:"surface-backdrop",static:"is-static",modalOpen:"has-modal-open",hadScrollbar:"had-scrollbar",tooltip:"tooltip"};var le=new Set,R=new WeakMap,qe=new WeakMap,K=new WeakMap,It=new WeakSet,Nt="data-actual-surface",pr=new Set(["true","inside","outside","false"]),mr=new Set(["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","End","Home","PageDown","PageUp"," "]),Ot=new WeakMap;function hr(e){let t=String(e??"outside");return pr.has(t)?t:"true"}function gr(e){let t=e.ownerDocument?.documentElement;if(!t)return null;let n=Ot.get(t);if(!n)n=v({[`[${Nt}]`]:(r)=>()=>$t(r,{restore:!1})},t),Ot.set(t,n);return n}function br(...e){let t=e.filter(Boolean).flatMap((n)=>typeof n.getAnimations==="function"?n.getAnimations({subtree:!0}):[]);return Promise.allSettled(t.map((n)=>n.finished))}function Er(e,t){return t?.closest("dialog")||e.closest("dialog")||e.ownerDocument.body}function wr(e,t){if(K.has(e))return;let n=Er(e,t),r=e.parentNode;if(!n||!r||r===n)return;K.set(e,{parent:r,next:e.nextSibling}),n.append(e)}function Rt(e){let t=K.get(e);if(!t)return;if(t.parent.isConnected){let n=t.next?.parentNode===t.parent?t.next:null;t.parent.insertBefore(e,n)}else e.remove();K.delete(e)}function yr(e,t){let n=t.mobile||"auto";if(n==="none"||n==="anchored")return!1;if(n==="sheet")return!0;let r=e.ownerDocument?.defaultView;if(!r||typeof r.matchMedia!=="function")return!1;let o=t.breakpoint??768;return r.matchMedia("(pointer: coarse)").matches&&r.matchMedia(`(max-width: ${o}px)`).matches}function vr(e){if(!e.id)return[];return[...e.ownerDocument.querySelectorAll(`[aria-controls="${CSS.escape(e.id)}"]`)]}function ze(e,t){for(let n of vr(e))n.setAttribute("aria-expanded",t?"true":"false")}function Tr(e,t){if(!t.isSheet){t.backdrop?.remove(),t.backdrop=null;return}if(t.backdrop?.isConnected){t.backdrop.hidden=!1;return}let n=e.ownerDocument.createElement("div");n.className=b.backdrop,n.hidden=!1,e.before(n),t.backdrop=n}function Ft(e,t){if(t.isSheet=yr(e,t),t.isSheet)e.style.removeProperty("left"),e.style.removeProperty("top");e.classList.toggle(b.sheet,t.isSheet),Tr(e,t)}function _t(e){let t=R.get(e);if(!t||t.isSheet)return!0;if(t.trigger){let o=t.trigger.getBoundingClientRect().width;e.style.setProperty("--surface-anchor-width",`${o}px`)}else e.style.removeProperty("--surface-anchor-width");let n={placement:t.placement||"bottom-start",distance:t.distance??4,flip:t.flip!==!1,shift:t.shift!==!1,shiftPadding:t.shiftPadding??4,scope:t.scope};if(t.point)return Mt(t.point.x,t.point.y,e,n);let r=t.trigger||t.source;if(r)return H(r,e,n);return!0}function Sr(e){if(R.has(e))return R.get(e);Cr(e);let t={stopTracking:null,stopScrollIntent:null,unregisterEscape:null,backdrop:null,trigger:null,source:null,point:null,mobile:"auto",breakpoint:768,placement:"bottom-start",distance:4,flip:!0,shift:!0,shiftPadding:4,autoClose:"outside",dismissOnScroll:!1,scrollIntentAt:null,isSheet:!1,closeId:0};return R.set(e,t),t}function Ar(e,t){if(t.unregisterEscape=ie(e,(n)=>y(e,n)),t.dismissOnScroll){let n=new AbortController,r=(d)=>{t.scrollIntentAt=d.timeStamp},o=(d)=>{if(!e.contains(d.target))r(d)},i=(d)=>{if(!d.defaultPrevented&&mr.has(d.key))r(d)},a={...{signal:n.signal,capture:!0},passive:!0},l=e.ownerDocument;l.addEventListener("pointerdown",o,a),l.addEventListener("touchmove",r,a),l.addEventListener("wheel",r,a),l.addEventListener("keydown",i,{signal:n.signal}),t.stopScrollIntent=()=>n.abort()}t.stopTracking=ue(e,({type:n,targets:r,timeStamp:o})=>{if(e.hidden)return;if(n==="scroll"&&t.dismissOnScroll&&t.scrollIntentAt!=null&&o>=t.scrollIntentAt&&[...r].some((i)=>i!==e&&!e.contains(i))){y(e);return}if(Ft(e,t),!_t(e))y(e)})}function T(e){return e.classList.contains(b.open)&&!e.hidden}function Vt(e){if(!e)return;e.style.position="fixed",e.hidden=!0,ze(e,!1),e.setAttribute(Nt,""),gr(e)?.refresh(e)}function fe(e){if(!e)return()=>{};let t=qe.get(e);if(!t)Vt(e),t={count:0},qe.set(e,t);t.count++;let n=!1;return()=>{if(n)return;if(n=!0,t.count--,t.count<=0)$t(e),qe.delete(e)}}function G(e,t={}){if(!e?.isConnected)return!1;if(T(e))return!1;let n=new CustomEvent(A.surfaceOpen,{bubbles:!0,cancelable:!0,detail:{surface:e,options:t}});if(!e.dispatchEvent(n))return!1;for(let i of le)if(i!==e&&i.ownerDocument===e.ownerDocument)y(i);let r=t.trigger||t.source||null;wr(e,r),Vt(e);let o=Sr(e);if(o.trigger=t.trigger||null,o.source=t.source||null,o.point=Number.isFinite(t.x)&&Number.isFinite(t.y)?{x:t.x,y:t.y}:null,o.mobile=t.mobile||"auto",o.breakpoint=t.breakpoint??768,o.autoClose=hr(t.autoClose),o.dismissOnScroll=t.dismissOnScroll===!0,o.scrollIntentAt=null,o.placement=t.placement||"bottom-start",o.distance=t.distance??4,o.flip=t.flip!==!1,o.shift=t.shift!==!1,o.shiftPadding=t.shiftPadding??4,o.scope=t.scope,o.restoreFocusTo=t.restoreFocusTo||t.trigger||t.source||null,o.closeId++,e.classList.add(b.open),e.hidden=!1,Ft(e,o),ze(e,!0),!_t(e))return y(e,{restoreFocus:!1}),!1;return le.add(e),Ar(e,o),!0}function y(e,t={}){if(!e||!T(e))return;let n=R.get(e),r=n?++n.closeId:0,o=n?.isSheet===!0,i=e.ownerDocument.activeElement,s=t.restoreFocus??e.contains(i);if(e.classList.remove(b.open),!o)e.classList.remove(b.sheet);e.hidden=!0;let a=n?.backdrop||null;if(a)a.hidden=!0;if(le.delete(e),ze(e,!1),n?.unregisterEscape?.(),n?.stopScrollIntent?.(),n?.stopTracking?.(),s&&n?.restoreFocusTo?.isConnected)n.restoreFocusTo.focus({preventScroll:!0});br(e,a).then(()=>{if(!n||n.closeId!==r)return;if(n.isSheet=!1,e.classList.remove(b.sheet),a?.remove(),n.backdrop===a)n.backdrop=null;Rt(e)})}function $t(e,{restore:t=!0}={}){if(!e)return;if(!t)K.delete(e);y(e);let n=R.get(e);if(n)n.backdrop?.remove(),n.unregisterEscape?.(),n.stopScrollIntent?.(),n.stopTracking?.(),R.delete(e);Rt(e)}function xr(e){let t=e.composedPath();for(let n of le){if(n.ownerDocument!==e.currentTarget)continue;let r=R.get(n);if(!r)continue;let o=t.indexOf(n),i=o>=0;if(i&&t.slice(0,o).some((d)=>d instanceof Element&&d.hasAttribute("data-flyout-close"))){y(n);continue}let a=r.autoClose==="true"||r.autoClose==="inside",l=r.autoClose==="true"||r.autoClose==="outside";if(i&&a||!i&&l)y(n)}}function Cr(e){let t=e.ownerDocument;if(!t||It.has(t))return;It.add(t),t.addEventListener("click",xr)}var de=new WeakMap,W=new WeakMap;function kr(e){let n=Number.parseInt({sm:640,md:768,lg:1024}[e]||e,10);return Number.isFinite(n)?n:void 0}function Lr(e){let t={autoClose:"true"},n=e.dataset;if(n.flyoutPlacement)t.placement=n.flyoutPlacement;if(n.flyoutDistance!=null){let r=Number.parseFloat(n.flyoutDistance);if(Number.isFinite(r))t.distance=r}if(n.flyoutMobile)t.mobile=n.flyoutMobile;if(n.flyoutBreakpoint){let r=kr(n.flyoutBreakpoint);if(r!=null)t.breakpoint=r}if(n.flyoutAutoClose)t.autoClose=n.flyoutAutoClose;return t}function Dr(e){let t=e.getAttribute("aria-controls");return t?e.ownerDocument.getElementById(t):null}function Xe(e){return e.matches("menu")||e.classList.contains("menu")}function F(e,t){return G(e,{trigger:t,source:t,...Lr(e)})}function Pt(e,t){if(!T(e)&&!F(e,t))return!1;return $e(e)}function Mr(e){let t=e.currentTarget,n=W.get(t);if(!n)return;e.stopPropagation();let r=je(t,n);if(!r)return;if(T(r))y(r);else F(r,t)}function Ir(e){let t=e.currentTarget,n=W.get(t);if(!n)return;let r=je(t,n);if(!r)return;if(!Xe(r)){switch(e.key){case"ArrowDown":e.preventDefault(),Pt(r,t);break;case"Enter":case" ":if(e.preventDefault(),T(r))y(r);else Pt(r,t);break;case"Tab":if(T(r)&&!e.shiftKey&&$e(r))e.preventDefault();break}return}switch(e.key){case"ArrowDown":if(e.preventDefault(),!T(r)&&!F(r,t))break;U(r);break;case"ArrowUp":if(e.preventDefault(),!T(r)&&!F(r,t))break;Ue(r);break;case"Home":if(e.preventDefault(),!T(r)&&!F(r,t))break;U(r);break;case"End":if(e.preventDefault(),!T(r)&&!F(r,t))break;Ue(r);break;case"Enter":case" ":if(e.preventDefault(),!T(r)){if(F(r,t))U(r)}else y(r);break;case"Tab":if(T(r))y(r);break}}function Or(e){if(W.has(e))return;let t=new AbortController,n={panel:null,controller:t,releaseMenu:null};if(W.set(e,n),je(e,n),!e.hasAttribute("aria-expanded"))e.setAttribute("aria-expanded","false");e.addEventListener("click",Mr,{signal:t.signal}),e.addEventListener("keydown",Ir,{signal:t.signal})}function Ut(e,t){t.releaseMenu?.(),t.releaseMenu=null;let n=t.panel;if(t.panel=null,!n)return;let r=de.get(n);if(!r)return;if(r.triggers.delete(e),r.triggers.size===0)r.release(),de.delete(n)}function je(e,t){let n=Dr(e);if(t.panel===n&&n?.isConnected)return n;if(Ut(e,t),!n)return null;let r=de.get(n);if(!r){let o=fe(n);r={triggers:new Set,release:o},de.set(n,r)}if(r.triggers.add(e),t.panel=n,Xe(n))t.releaseMenu=oe(n,{close:(o)=>y(o)});if(!e.hasAttribute("aria-haspopup")&&Xe(n))e.setAttribute("aria-haspopup","menu");return n}function Nr(e){let t=W.get(e);if(!t)return;if(t.controller.abort(),t.panel?.isConnected&&T(t.panel))y(t.panel,{restoreFocus:!1});Ut(e,t),W.delete(e)}N("flyout",(e)=>(Or(e),()=>Nr(e)));var Wt=450,Rr=750,Bt=10,Fr='menu, [role="menu"]',_r="[data-context-menu]",me=new WeakMap,Ge=new WeakMap;function Vr(e){return Ge.get(e)||null}function $r(e){let t=e.getAttribute("data-context-menu"),n=t?e.ownerDocument.getElementById(t):null;return n?.matches(Fr)?n:null}function He(e){return!!e.closest?.("a, button, input, textarea, select, option, [contenteditable], [role='button'], [role='link'], [data-context-menu-ignore]")}function Pr(e){if(!e.hasAttribute("data-context-menu-scope"))return null;let t=e.getAttribute("data-context-menu-scope").trim();if(!t||t==="self")return e;if(t==="parent")return e.parentElement;try{return e.closest(t)||e.ownerDocument.querySelector(t)}catch{return null}}function Ur(e,t){let n=e.dataset.contextMenuLongPress??t.dataset.contextMenuLongPress;if(n==null||n==="false"||n==="none")return null;if(n==="")return Wt;let r=Number.parseInt(n,10);return Number.isFinite(r)?Math.max(0,r):Wt}function qt(e){let t={autoClose:"true"},n=e.dataset;if(n.flyoutMobile)t.mobile=n.flyoutMobile;if(n.flyoutAutoClose)t.autoClose=n.flyoutAutoClose;return t}function zt(e){if(!e.hasAttribute("tabindex"))e.tabIndex=-1;e.focus({preventScroll:!0})}function Wr(e,t){if(t==="first-item"){if(At(e))U(e)}else zt(e)}function Xt(e,t,n={}){let r={menu:t,context:e,origin:n.origin||e,trigger:n.trigger},o=new CustomEvent(A.contextMenu,{bubbles:!0,cancelable:!0,detail:r});if(!e.dispatchEvent(o))return null;return Ge.set(t,r),r}function Ke(e,t,n={}){if(!Xt(e,t,n))return;if(T(t))y(t);if(G(t,{source:e,x:n.x,y:n.y,placement:n.placement||"bottom-start",distance:n.distance??2,dismissOnScroll:!0,mobile:n.mobile||"auto",scope:n.scope||Pr(e),restoreFocusTo:n.restoreFocusTo,...qt(t)}))Wr(t,n.focus)}function Br(e,t,n=e,r){let o=n.getBoundingClientRect();Ke(e,t,{x:o.left,y:o.bottom,placement:"bottom-start",distance:4,focus:"first-item",origin:n,trigger:"keyboard",restoreFocusTo:r})}function pe(e){if(e.timer)clearTimeout(e.timer),e.timer=null;e.pointerId=null}function qr(e){if(me.has(e))return;let t=$r(e);if(!t)return;let n=fe(t),r=new AbortController,o=oe(t,{close:(s)=>y(s)}),i={controller:r,releaseMenu:o,menu:t,release:n,timer:null,pointerId:null,startX:0,startY:0,suppressClickUntil:0};e.addEventListener("contextmenu",(s)=>{if(He(s.target))return;s.preventDefault(),s.stopPropagation(),Ke(e,t,{x:s.clientX,y:s.clientY,origin:s.target,trigger:"pointer"})},{signal:r.signal}),e.addEventListener("keydown",(s)=>{if(s.key!=="ContextMenu"&&!(s.shiftKey&&s.key==="F10"))return;if(He(s.target))return;s.preventDefault(),Br(e,t,s.target,e)},{signal:r.signal}),e.addEventListener("pointerdown",(s)=>{let a=Ur(e,t);if(s.pointerType!=="touch"||a==null||He(s.target))return;pe(i),i.pointerId=s.pointerId,i.startX=s.clientX,i.startY=s.clientY,i.timer=setTimeout(()=>{i.timer=null,i.suppressClickUntil=Date.now()+Rr,Ke(e,t,{x:i.startX,y:i.startY,origin:s.target,trigger:"touch"})},a)},{signal:r.signal,passive:!0}),e.addEventListener("pointermove",(s)=>{if(s.pointerId!==i.pointerId||!i.timer)return;if(Math.abs(s.clientX-i.startX)>Bt||Math.abs(s.clientY-i.startY)>Bt)pe(i)},{signal:r.signal,passive:!0});for(let s of["pointerup","pointercancel","pointerleave"])e.addEventListener(s,(a)=>{if(a.pointerId===i.pointerId)pe(i)},{signal:r.signal,passive:!0});e.addEventListener("click",(s)=>{if(Date.now()<=i.suppressClickUntil)s.preventDefault(),s.stopPropagation(),i.suppressClickUntil=0},{signal:r.signal,capture:!0}),e.addEventListener("click",(s)=>{let a=s.target.closest("[data-context-menu-trigger]");if(!a||a.getAttribute("aria-controls")!==e.getAttribute("data-context-menu"))return;if(s.preventDefault(),s.stopPropagation(),T(t)){y(t);return}if(!Xt(e,t,{origin:a,trigger:"button"}))return;let l=a.getBoundingClientRect();if(G(t,{source:e,x:l.left,y:l.bottom,placement:"bottom-start",distance:4,dismissOnScroll:!0,restoreFocusTo:a,...qt(t)}))zt(t)},{signal:r.signal}),me.set(e,i)}function zr(e){let t=me.get(e);if(!t)return;if(pe(t),t.controller.abort(),t.releaseMenu?.(),Vr(t.menu)?.context===e)Ge.delete(t.menu),y(t.menu,{restoreFocus:!1});t.release(),me.delete(e)}v({[_r]:(e)=>(qr(e),()=>zr(e))});var Ye=new WeakMap;function jt(e,t){let n=Array.isArray(e)?e:[e];if(!n.length||n.some((r)=>typeof r!=="string"||!r))throw TypeError(`${t} requires one or more command names.`);return[...new Set(n)]}function Ht(e){return e.startsWith("--")?e:e.toLowerCase()}function _(e){let t=e.getAttribute("commandfor");if(!t)return null;return e.getRootNode().getElementById?.(t)??null}function Kt(e){return`button[commandfor]:is(${jt(e,"commandSelector()").map((n)=>`[command="${n.replaceAll("\\","\\\\").replaceAll('"',"\\\"")}"]`).join(", ")})`}function Xr(e,t){let n=t.defaultView?.Element;if(!n)return null;for(let r of e.composedPath?.()??[e.target]){if(r instanceof n&&r.matches("button[commandfor][command]"))return r;if(r===t)break}return null}function jr(e){let t=new Map;function n(r){if(r.defaultPrevented)return;let o=Xr(r,e);if(!o||o.disabled)return;let i=Ht(o.getAttribute("command")),s=t.get(i);if(!s)return;let a=s.resolve(o);if(!a)return;s.prepare?.(o,a,i),s.handle(r,o,a,i)}return e.addEventListener("click",n),{commands:t,route:n}}function I(e,{resolve:t=_,prepare:n,handle:r}={}){let o=[...new Set(jt(e,"registerCommands()").map((f)=>Ht(f)))];if(typeof t!=="function"||n!==void 0&&typeof n!=="function"||typeof r!=="function")throw TypeError("registerCommands() requires function callbacks.");if(typeof document>"u")return{disconnect(){}};let i=document,s=Ye.get(i);if(!s)s=jr(i),Ye.set(i,s);let a=o.find((f)=>s.commands.has(f));if(a)throw Error(`Command "${a}" is already registered in this document.`);let l={resolve:t,prepare:n,handle:r};for(let f of o)s.commands.set(f,l);let d=!0;return{disconnect(){if(!d)return;d=!1;for(let f of o)if(s.commands.get(f)===l)s.commands.delete(f);if(!s.commands.size)i.removeEventListener("click",s.route),Ye.delete(i)}}}var M=new WeakMap,Je=new Set,Hr=["show-modal","show","request-close","close"],Kr="dialog",Gr="[data-title], h1, h2, h3, h4, h5, h6",Gt=0;function B(e){return e?.nodeType===1&&e.localName==="dialog"}function Zt(e,t){return e.hasAttribute(t)&&e.getAttribute(t)!=="false"}function Yr(e,t){if(!e.id)Gt++,e.id=`${t}-${Gt}`;return e.id}function Qt(e,t=Ze(e)){if(t)e.setAttribute("aria-modal","true");else e.removeAttribute("aria-modal");if(e.hasAttribute("aria-label")||e.hasAttribute("aria-labelledby"))return;let n=e.getAttribute("data-title")?.trim();if(n){e.setAttribute("aria-label",n);return}let r=e.querySelector(Gr);if(r)e.setAttribute("aria-labelledby",Yr(r,"dialog-title"))}function Ze(e){return e.getAttribute("data-dialog-modal")!=="false"}function Jr(e,t=null){return t==null?Ze(e):t}function Yt(e){if(!e.open)return!1;try{return e.matches(":modal")}catch{return!1}}function be(e=document){let t=!1;for(let o of Je){let i=M.get(o);if(o.ownerDocument===e&&o.isConnected&&o.open&&i?.modalOpen===!0){t=!0;break}}let n=e.documentElement,r=n.classList.contains(b.modalOpen);if(t&&!r){let o=e.defaultView?.innerWidth;n.classList.toggle(b.hadScrollbar,Number.isFinite(o)&&o>n.clientWidth)}else if(!t)n.classList.remove(b.hadScrollbar);n.classList.toggle(b.modalOpen,t)}function en(e){return Zt(e,"data-dialog-dismissible")}function Zr(e){return Zt(e,"data-dialog-view-transition")}var he="actual-dialog";function Qr(e=document){return typeof e.startViewTransition==="function"}function eo(e=document){return!e.defaultView?.matchMedia?.("(prefers-reduced-motion: reduce)").matches}function ge(e,t){if(e)e.style.viewTransitionName=t}function Y(...e){for(let t of e)if(t)t.style.viewTransitionName=""}function Qe(e,t){let n=e.ownerDocument;return Zr(e)&&Qr(n)&&eo(n)&&t?.isConnected===!0}function to(e,t,n=null){if(!Qe(e,t)){Jt(e,t,n);return}ge(t,he),e.ownerDocument.startViewTransition(()=>{Y(t),ge(e,he),Jt(e,t,n)}).finished.finally(()=>Y(e,t)).catch(()=>{})}function no(e,t){let n=e.getBoundingClientRect();return t.clientX<n.left||t.clientX>n.right||t.clientY<n.top||t.clientY>n.bottom}function ro(e){let t=q(e),n=e.ownerDocument.defaultView;if(t.staticTimer)n?.clearTimeout(t.staticTimer);e.classList.remove(b.static),e.offsetWidth,e.classList.add(b.static),t.staticTimer=n?.setTimeout(()=>{e.classList.remove(b.static),t.staticTimer=null},250)}function oo(e,t=""){let n=M.get(e);if(n)n.closing=!1,n.returnValue="";if(e.open)e.close(t)}function Ee(e,t=""){if(!B(e)||!e.open)return;let n=q(e);if(n.closing)return;let r=n.restoreFocusTo;if(Qe(e,r)){n.closing=!0,ge(e,he),e.ownerDocument.startViewTransition(()=>{Y(e),ge(r,he),e.close(t)}).finished.finally(()=>{n.closing=!1,Y(r)}).catch(()=>{});return}oo(e,t)}function tn(e,t=""){if(!B(e)||!e.open)return;if(typeof e.requestClose==="function"){q(e).returnValue=t,e.requestClose(t);return}Ee(e,t)}function Jt(e,t=null,n=null){if(!B(e)||e.open||!e.isConnected)return;let r=q(e),o=Jr(e,n);Qt(e,o),r.closing=!1,r.restoreFocusTo=t||e.ownerDocument.activeElement;let i=e.ownerDocument.defaultView,s=i?.scrollY??0;if(o)e.showModal(),r.modalOpen=!0;else e.show(),r.modalOpen=!1;if(s>0)i?.scrollTo(0,s);be(e.ownerDocument)}function io(e){let t=e.currentTarget;if(e.target!==t||!no(t,e))return;if(!en(t)){if(("closedBy"in t?t.closedBy:"")==="any")return;e.preventDefault(),ro(t);return}e.preventDefault(),tn(t)}function so(e){let{currentTarget:t,target:n}=e;if(!(n instanceof HTMLFormElement))return;if(n.method.toLowerCase()!=="dialog")return;if(!Qe(t,M.get(t)?.restoreFocusTo))return;e.preventDefault(),Ee(t,e.submitter?.value||"")}function ao(e){let t=e.currentTarget,n=M.get(t),r=new CustomEvent(A.dialogCancel,{bubbles:!0,cancelable:!0,detail:{dialog:t,sourceEvent:e}});if(!t.dispatchEvent(r)){if(e.preventDefault(),n)n.returnValue="";return}e.preventDefault(),Ee(t,n?.returnValue||"")}function co(e){let t=e.currentTarget,n=M.get(t);if(Y(t),!n)return;if(n.staticTimer)t.ownerDocument.defaultView?.clearTimeout(n.staticTimer),n.staticTimer=null;t.classList.remove(b.static),n.closing=!1,n.returnValue="",n.modalOpen=!1,be(t.ownerDocument);let r=n.restoreFocusTo;if(n.restoreFocusTo=null,r?.isConnected&&t.ownerDocument.activeElement!==r)r.focus({preventScroll:!0})}function q(e){if(M.has(e))return M.get(e);let t=new AbortController,n={controller:t,closing:!1,modalOpen:Yt(e),restoreFocusTo:null,returnValue:"",staticTimer:null};if(Qt(e,e.open?Yt(e):Ze(e)),e.addEventListener("click",io,{signal:t.signal}),e.addEventListener("submit",so,{signal:t.signal}),e.addEventListener("cancel",ao,{signal:t.signal}),e.addEventListener("close",co,{signal:t.signal}),en(e)&&"closedBy"in e&&e.closedBy==="any")e.closedBy="closerequest";return M.set(e,n),Je.add(e),be(e.ownerDocument),n}function uo(e){q(e)}function lo(e){let t=M.get(e);if(!t)return;if(t.staticTimer)e.ownerDocument.defaultView?.clearTimeout(t.staticTimer);t.controller.abort(),e.classList.remove(b.static),t.modalOpen=!1,M.delete(e),Je.delete(e),be(e.ownerDocument)}I(Hr,{resolve:(e)=>{let t=_(e);return B(t)?t:null},prepare:(e,t,n)=>{if(B(t))q(t);if(e.setAttribute("aria-controls",t.id),!e.hasAttribute("aria-haspopup")&&(n==="show-modal"||n==="show"))e.setAttribute("aria-haspopup","dialog")},handle:(e,t,n,r)=>{if(e.preventDefault(),!B(n))return;if(r==="show-modal"||r==="show"){to(n,t,r==="show-modal");return}if(r==="request-close"){tn(n,t.value||"");return}if(r==="close")Ee(n,t.value||"")}});v({[Kr]:(e)=>(uo(e),()=>lo(e))});I("--dismiss",{handle(e,t,n){e.preventDefault(),n.hidden=!0,n.dispatchEvent(new CustomEvent(A.dismiss,{bubbles:!0,detail:{trigger:t}}))}});var we='[data-enhance~="tabs"]';function nn(e){return[...e.querySelectorAll('[role="tab"]')].filter((t)=>t.closest(we)===e)}function fo(e){let t=new Map;for(let n of e){let r=ye(n);if(r)t.set(n,r)}return t}function ye(e){let t=e.getAttribute("aria-controls");return t?e.ownerDocument.getElementById(t):null}function et(e){return e.disabled||e.getAttribute("aria-disabled")==="true"}function rn(e){return nn(e).filter((t)=>!et(t)&&ye(t))}function on(e){if(!e.hasAttribute("tabindex"))e.tabIndex=-1}function ve(e){if(!e||et(e)||!ye(e))return;let t=e.closest(we);if(!t)return;let n=nn(t),r=fo(n);for(let i of n)i.setAttribute("aria-selected","false"),i.tabIndex=-1;for(let[,i]of r)i.hidden=!0;e.setAttribute("aria-selected","true"),e.tabIndex=0;let o=r.get(e);if(o)on(o),o.hidden=!1}function po(e){if(!e)return;ve(e),e.focus()}function mo(e){let t=rn(e);if(!t.length)return;let n=t.find((r)=>r.getAttribute("aria-selected")==="true")||t[0];ve(n)}function ho(e){let t=e.currentTarget,n=e.target.closest('[role="tab"]');if(!n||n.closest(we)!==t)return;let r=rn(t);if(!r.length||!r.includes(n))return;let o=t.getAttribute("aria-orientation")==="vertical";if(e.key==="ArrowDown"&&!o){let a=ye(n);if(a)e.preventDefault(),on(a),a.focus();return}if(e.key==="Enter"||e.key===" "){e.preventDefault(),ve(n);return}let i=t.ownerDocument.defaultView?.getComputedStyle(t).direction||"ltr",s=P(r,n,e.key,{orientation:o?"vertical":"horizontal",wrap:!0,direction:i});if(!s)return;e.preventDefault(),po(s)}function go(e){let t=e.currentTarget,n=e.target.closest('[role="tab"]');if(!n||n.closest(we)!==t)return;if(et(n)){e.preventDefault();return}if(e.preventDefault(),n.getAttribute("aria-selected")==="true")return;ve(n),n.focus()}N("tabs",(e)=>{let t=new AbortController;return mo(e),e.addEventListener("click",go,{signal:t.signal}),e.addEventListener("keydown",ho,{signal:t.signal}),()=>t.abort()});var bo=150,Eo=100,sn=0,Te=new WeakMap,O=new WeakMap;function wo(e,t){let n=t.closest("dialog")||t.ownerDocument.body,r=e.parentNode;if(!n||!r||r===n)return null;let o={parent:r,next:e.nextSibling};return n.append(e),o}function yo(e,t){let n=t.mount;if(!n)return;if(n.parent.isConnected){let r=n.next?.parentNode===n.parent?n.next:null;n.parent.insertBefore(e,r)}else e.remove()}function vo(e){return e?.getAttribute("data-tooltip-placement")||"top"}function cn(e,t){let n=e?.getAttribute(t);return n!==null&&n.toLowerCase()!=="false"}function nt(e){return cn(e,"data-tooltip-click")}function V(e){return cn(e,"data-tooltip-visible")}function rt(e){return(e.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean)}function To(e,t){let n=rt(e);if(n.includes(t))return!1;return e.setAttribute("aria-describedby",[...n,t].join(" ")),!0}function So(e,t){let n=rt(e).filter((r)=>r!==t);if(n.length)e.setAttribute("aria-describedby",n.join(" "));else e.removeAttribute("aria-describedby")}function Ao(e){let t=e.ownerDocument;for(let n of rt(e)){let r=t.getElementById(n);if(r?.getAttribute("role")==="tooltip")return r}return null}function xo(e){let t;do sn++,t=`tooltip-${sn}`;while(e.getElementById(t));return t}function Co(e,t){return H(e,t,{placement:vo(e),distance:6,flip:!0,shift:!0})}function un(e,t){let n=t.activeRef;if(!n)return;let r=V(n);if(r)e.hidden=!1;if(e.hidden||Co(n,e)){fn(e,t);return}if(r)e.hidden=!0;else z(e,!0)}function ko(e,t){if(t.stopTracking)return;t.stopTracking=ue(e,()=>un(e,t))}function ln(e){if(e?.stopTracking?.(),e)e.stopTracking=null}function fn(e,t){let n=t.activeRef,r=!e.hidden&&!V(n);if(r&&t.unregisterEscape&&t.escapeRef===n)return;if(t.unregisterEscape?.(),t.unregisterEscape=null,t.escapeRef=null,!r)return;t.unregisterEscape=ie(e,()=>z(e,!0)),t.escapeRef=n}function z(e,t=!1){let n=O.get(e);if(!t&&V(n?.activeRef))return;if(n?.timer)clearTimeout(n.timer),n.timer=null;if(n?.hideTimer)clearTimeout(n.hideTimer),n.hideTimer=null;if(e.hidden=!0,n?.unregisterEscape?.(),n)n.unregisterEscape=null,n.escapeRef=null;ln(n)}function dn(e){let t=O.get(e);if(!t?.hideTimer)return;clearTimeout(t.hideTimer),t.hideTimer=null}function tt(e){let t=O.get(e);if(!t)return;if(nt(t.activeRef)||V(t.activeRef))return;if(t.hovered||t.focused||t.overTip)return;if(t.hideTimer)clearTimeout(t.hideTimer);t.hideTimer=setTimeout(()=>{if(t.hideTimer=null,!t.hovered&&!t.focused&&!t.overTip)z(e)},Eo)}function Lo(e,t={}){let n=O.get(e);if(n)return n;let r=new AbortController;return n={refs:new Set,activeRef:null,controller:r,stopTracking:null,unregisterEscape:null,escapeRef:null,generated:t.generated===!0,mount:t.mount||null,timer:null,hideTimer:null,hovered:!1,focused:!1,overTip:!1},e.addEventListener("mouseenter",()=>{n.overTip=!0,dn(e)},{signal:r.signal}),e.addEventListener("mouseleave",()=>{n.overTip=!1,tt(e)},{signal:r.signal}),O.set(e,n),n}function ot(e){let t=Te.get(e);if(t)return t.tip;let n,r=!1,o=null,i=!1,s=e.getAttribute("data-tooltip"),a=e.ownerDocument;if(s)n=a.createElement("div"),n.className=b.tooltip,n.role="tooltip",n.id=xo(a),n.textContent=s,n.hidden=!0,n.style.position="fixed",r=!0,(e.closest("dialog")||a.body).appendChild(n),i=To(e,n.id);if(!n){if(n=Ao(e),!n)return null;if(!O.has(n))n.hidden=!0,n.style.position="fixed",o=wo(n,e)}let l=Lo(n,{generated:r,mount:o});l.refs.add(e);let d=new AbortController;e.addEventListener("mouseleave",()=>{l.hovered=!1,tt(n)},{signal:d.signal}),e.addEventListener("blur",()=>{l.focused=!1,tt(n)},{signal:d.signal});let f=()=>{if(d.abort(),Te.delete(e),i)So(e,n.id);if(l.refs.delete(e),l.activeRef===e)z(n,!0),l.activeRef=null;if(l.refs.size>0)return;if(z(n,!0),l.controller.abort(),ln(l),O.delete(n),l.generated)n.remove();else yo(n,l)};return Te.set(e,{tip:n,cleanup:f}),n}function Do(e){if(e.isConnected)return;Te.get(e)?.cleanup?.()}function it(e,t,n=!1){let r=O.get(e);if(!r)return;if(r.activeRef=t,fn(e,r),dn(e),r.timer)clearTimeout(r.timer);let o=()=>{r.timer=null,e.hidden=!1,ko(e,r),un(e,r)};if(n)o();else r.timer=setTimeout(o,bo)}var st="[data-tooltip]";function an(e){let t=e.target.closest?.(st);if(!t)return;if(nt(t)||V(t))return;if(e.type==="mouseover"&&e.relatedTarget instanceof Node&&t.contains(e.relatedTarget))return;let n=ot(t);if(!n)return;let r=O.get(n);if(e.type==="focusin")r.focused=!0;else r.hovered=!0;it(n,t)}function Mo(e){let t=e.target.closest?.(st);if(!t||!nt(t)||V(t))return;let n=ot(t);if(!n)return;if(e.preventDefault(),n.hidden)it(n,t,!0);else z(n,!0)}if(typeof document<"u")document.addEventListener("mouseover",an),document.addEventListener("focusin",an),document.addEventListener("click",Mo),v({[st]:(e)=>{if(V(e)){let t=ot(e);if(t)it(t,e,!0)}return()=>Do(e)}});var pn=0.2,mn=new WeakMap;function hn(e){let t=e.getAttribute("data-scrollspy-root");if(!t)return null;try{return e.ownerDocument.querySelector(t)}catch{return null}}function Io(e){let t=[...e.querySelectorAll("a[href^='#']")],n=[];for(let r of t){let o=r.getAttribute("href").slice(1),i=o?e.ownerDocument.getElementById(o):null;if(i)n.push({link:r,section:i})}return n}function Oo(e,t){if(t)return{top:t.getBoundingClientRect().top,height:t.clientHeight,scrollTop:t.scrollTop,scrollHeight:t.scrollHeight};let n=e.ownerDocument,r=n.scrollingElement||n.documentElement;return{top:0,height:r.clientHeight,scrollTop:r.scrollTop,scrollHeight:r.scrollHeight}}function No(e,t){let n=(e.getAttribute("data-scrollspy-offset")??"").trim();if(!n)return t*pn;let r=Number.parseFloat(n);if(!Number.isFinite(r))return t*pn;return Math.max(0,n.endsWith("%")?t*r/100:r)}function Ro(e){let t=new AbortController,n=[],r=0,o;function i(c){if(c===o)return;o=c;for(let u of n)if(u.section===c)u.link.setAttribute("aria-current","location");else u.link.removeAttribute("aria-current")}function s(){if(r=0,!n.length)return;let c=hn(e),{top:u,height:m,scrollTop:p,scrollHeight:h}=Oo(e,c);if(h>m&&p+m>=h-1){i(n.at(-1).section);return}let S=u+No(e,m),E=null;for(let{section:k}of n)if(k.getBoundingClientRect().top<=S)E=k;i(E)}function a(c=s){if(r)cancelAnimationFrame(r);r=requestAnimationFrame(c)}function l(){n=Io(e),o=void 0,s()}(hn(e)??e.ownerDocument.defaultView)?.addEventListener("scroll",()=>a(),{passive:!0,signal:t.signal}),e.ownerDocument.defaultView?.addEventListener("resize",()=>a(),{passive:!0,signal:t.signal});let f=new MutationObserver(()=>a(l));return f.observe(e,{childList:!0,subtree:!0}),mn.set(e,{rebuild:l}),l(),()=>{if(t.abort(),r)cancelAnimationFrame(r);f.disconnect(),mn.delete(e)}}N("scrollspy",Ro);function Se(e){return typeof e.selectionStart==="number"?e.selectionStart:e.value.length}function Ae(e,t){if(e.ownerDocument.activeElement!==e)return;if(typeof e.setSelectionRange!=="function")return;try{e.setSelectionRange(t,t)}catch{}}function xe(e){e.dispatchEvent(new Event("input",{bubbles:!0}))}function Ce(e,t,n){let r=!1;function o(i){if(r||i.isComposing)return;t(i)}e.addEventListener("compositionstart",()=>{r=!0},{signal:n}),e.addEventListener("compositionend",(i)=>{r=!1,o(i)},{signal:n}),e.addEventListener("input",o,{signal:n})}var Fo="input[data-filter]",bn=new Map([["numeric",_o],["decimal",Vo],["lower",$o],["upper",Po],["letters",Uo],["slug",Bo]]);function _o(e){return e.replace(/\D/gu,"")}function Vo(e){let t=e.replace(/,/g,"."),n="",r=!1;for(let o of t)if(/^\d$/u.test(o))n+=o;else if(o==="."&&!r)n+=".",r=!0;return n}function $o(e){return e.toLocaleLowerCase()}function Po(e){return e.toLocaleUpperCase()}function Uo(e){return e.replace(/[^\p{L}]/gu,"")}function Wo(e){return e.normalize("NFKD").replace(/\p{M}/gu,"")}function Bo(e,t){let n=t?.inputType==="insertText"&&/[^\p{L}\p{N}]$/u.test(e),r=Wo(e).toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/-{2,}/g,"-").replace(/^-+/,"");return n?r:r.replace(/-+$/,"")}function gn(e,t,n){return t.reduce((r,o)=>bn.get(o)(r,n),e)}function qo(e){return e.split("|").map((t)=>t.trim().toLowerCase()).filter((t)=>bn.has(t))}function zo(e){let t=e.getAttribute("data-filter")?.trim().toLowerCase();return t?qo(t):[]}function Xo(e){let t=zo(e);if(!t.length)return;let n=new AbortController,r=!1;return Ce(e,(o)=>{if(r)return;let i=Se(e),s=e.value,a=gn(s,t,o);if(a===s)return;e.value=a,Ae(e,gn(s.slice(0,i),t,o).length);try{r=!0,xe(e)}finally{r=!1}},n.signal),()=>n.abort()}v({[Fo]:Xo});var jo="input[data-mask]",at={9:(e)=>/^\d$/u.test(e),a:(e)=>/^\p{L}$/u.test(e),"*":()=>!0};function Z(e){return Object.hasOwn(at,e)}function En(e,t){let n=[...t],r=[],o=[],i=0,s=0;e:for(let a of e){s+=a.length;while(i<n.length){let l=n[i];if(!Z(l)){if(i++,a===l)continue e;continue}if(at[l](a))r.push(a),o.push(s),i++;continue e}break}return{positions:o,raw:r}}function J(e,t){return En(e,t).raw}function Ho(e,t){let n="";for(let r=t;r<e.length&&!Z(e[r]);r++)n+=e[r];return n}function wn(e,t,n=""){let r=n.startsWith("insert"),o=[...t],i=0,s="";for(let a=0;a<o.length;a++){let l=o[a];if(!Z(l)){if(i<e.length)s+=l;continue}let d=!1;while(i<e.length){let f=e[i];if(i++,!at[l](f))continue;s+=f,d=!0;break}if(!d)break;if(r&&i>=e.length){s+=Ho(o,a+1);break}}return s}function Ko(e,t,n=""){if(!t)return e;return wn(J(e,t),t,n)}function Go(e,t,n){if(n<=0)return 0;let r=En(e,t).positions[n-1];if(r==null)return e.length;let o=[...t],i=0,s=0;for(;s<o.length;s++){if(!Z(o[s]))continue;if(i++,i===n)break}let a=r;for(s++;s<o.length;s++){let l=o[s];if(Z(l)||!e.startsWith(l,a))break;a+=l.length}return a}function Yo(e){let t=e.dataset.mask||"";if(!t)return;let n=new AbortController,r=!1,o=e.value;return Ce(e,(i)=>{if(r)return;let s=i.inputType||"",a=Se(e),l=J(e.value.slice(0,a),t).length,d=e.value,f=Ko(d,t,s),c=J(d,t).length===J(o,t).length;if(s.startsWith("delete")&&c&&f.length>d.length){let u=J(d,t),m=s==="deleteContentForward"?l:l-1;if(m>=0&&m<u.length)u.splice(m,1),l=Math.max(0,m),f=wn(u,t,s)}if(o=f,f===d)return;e.value=f,Ae(e,Go(f,t,l));try{r=!0,xe(e)}finally{r=!1}},n.signal),()=>n.abort()}v({[jo]:Yo});var yn=["--password-toggle"],Jo=Kt(yn),X=new Set,ct=new WeakSet;function Zo(e){let t=_(e);return t?.localName==="input"&&(t.type==="password"||X.has(t))?t:null}function Qo(e){if(!e.id)return[];return e.getRootNode().querySelectorAll(`${Jo}[commandfor="${CSS.escape(e.id)}"]`)}function ut(e,t){if(e.type=t?"text":"password",t)X.add(e);else X.delete(e);for(let n of Qo(e))n.setAttribute("aria-pressed",String(t))}function vn(e){if(e.defaultPrevented)return;for(let t of e.target.elements??[])if(X.has(t))ut(t,!1)}function ei(e){let t=e.getRootNode();if(ct.has(t))return;ct.add(t),t.addEventListener("submit",vn)}I(yn,{resolve:Zo,prepare:(e,t)=>{if(e.setAttribute("aria-controls",t.id),!e.hasAttribute("aria-pressed"))e.setAttribute("aria-pressed","false")},handle:(e,t,n)=>{e.preventDefault();let r=n.type==="password";if(r)ei(n);ut(n,r)}});if(typeof document<"u")ct.add(document),document.addEventListener("submit",vn),window.addEventListener("pagehide",()=>{for(let e of X){if(!e.isConnected){X.delete(e);continue}ut(e,!1)}});var dt="novalidate",Tn=b.wasValidated,ti=ee("validation"),ni=b.field,pt=b.danger,mt="validationManagedNovalidate",lt=new WeakMap,Sn=new WeakMap;function ft(e,t,n){if(t<1||t>12||n<1)return!1;let r=new Date(Date.UTC(e,t,0)).getUTCDate();return n<=r}function ri(e){let t=e.trim(),n=/^(\d{4})-(\d{2})-(\d{2})$/.exec(t);if(n)return ft(Number(n[1]),Number(n[2]),Number(n[3]));let r=/^(\d{1,2})([/.-])(\d{1,2})\2(\d{4})$/.exec(t);if(!r)return!1;let o=Number(r[1]),i=Number(r[3]),s=Number(r[4]);return ft(s,i,o)||ft(s,o,i)}function oi(e,t){let n=Sn.get(e);if(!n)n=new Set,Sn.set(e,n);if(n.has(t))return;n.add(t),console.warn(`Unknown validation rule "${t}" on ${e.name||e.id||"field"}`)}var ii={same(e,t,n){if(!n)return!1;try{let r=t.form?.querySelector(n);if(!r)return!1;return e===r.value}catch{return!1}},number(e){return/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(e)},digits(e){return/^\d+$/.test(e)},alnum(e){return/^[a-z0-9]+$/i.test(e)},date(e){return ri(e)}};function ke(e){return!e||e.disabled||e.willValidate===!1||typeof e.checkValidity!=="function"||typeof e.setCustomValidity!=="function"}function xn(e){return e.closest?.(`.${ni}`)||null}var ht=new WeakSet;function Cn(e){if(!e.classList.contains(pt))ht.add(e);e.classList.add(pt)}function kn(e){let t=xn(e);if(!t)return;if(t.querySelector('[aria-invalid="true"], [data-validation-errors]'))Cn(t);else if(ht.has(t))t.classList.remove(pt),ht.delete(t)}function Ln(e){if(e.dataset.validationErrors==="server")return!1;e.setCustomValidity(""),delete e.dataset.validationErrors;let t=e.checkValidity(),n=e.dataset.validationRules;if(n){let r=e.value.trim().length>0,o=[];for(let i of n.split(",")){if(!r)continue;let s=i.trim();if(!s)continue;let[a,...l]=s.split(/\s+/),d=ii[a];if(!d){oi(e,a),o.push(a);continue}let f=!1;try{f=d(e.value,e,...l)}catch(c){console.warn(`Validation rule "${a}" failed on ${e.name||e.id||"field"}`,c)}if(!f)o.push(a)}if(o.length>0)t=!1,e.setCustomValidity(o.join(", ")),e.dataset.validationErrors=o.join(",")}return t}function Dn(e){e.setAttribute("aria-invalid","true");let t=xn(e);if(t)Cn(t)}function gt(e){e.removeAttribute("aria-invalid"),delete e.dataset.validationErrors,kn(e)}function si(e){for(let t of e.elements){if(ke(t))continue;if(t.getAttribute("aria-invalid")==="true"&&!t.dataset.validationErrors)t.dataset.validationErrors="server";kn(t)}}function ai(e){if(e.dataset[mt]===void 0)return;e.removeAttribute(dt),delete e.dataset[mt]}function An(e,t){if(ke(e))return;if(t==="input"&&e.dataset.validationErrors==="server")delete e.dataset.validationErrors,e.setCustomValidity("");let n=e.dataset.validationTrigger||"",r=e.getAttribute("aria-invalid")==="true"||e.dataset.validationErrors;if(!(t==="blur"||n.includes(t)&&e.value.length>0)&&!r)return;if(Ln(e))gt(e);else Dn(e)}function ci(e){let t=lt.get(e);if(t)return t;let n=new AbortController;if(!e.hasAttribute(dt))e.setAttribute(dt,""),e.dataset[mt]="";si(e),e.addEventListener("focusout",(o)=>{let i=o.target;if(i instanceof Element&&i.form===e)An(i,"blur")},{signal:n.signal}),e.addEventListener("input",(o)=>{let i=o.target;if(i instanceof Element&&i.form===e)An(i,"input")},{signal:n.signal}),e.addEventListener("reset",()=>{e.classList.remove(Tn);for(let o of e.elements){if(ke(o))continue;o.setCustomValidity(""),gt(o)}},{signal:n.signal}),e.addEventListener("submit",(o)=>{if(o.submitter?.formNoValidate)return;let i=null;for(let s of e.elements){if(ke(s))continue;if(Ln(s)){gt(s);continue}if(Dn(s),!i)i=s}if(e.classList.add(Tn),!i)return;o.preventDefault(),o.stopPropagation();try{i.focus()}catch{}e.dispatchEvent(new CustomEvent(A.invalid,{bubbles:!0,detail:{form:e,firstInvalid:i,message:e.dataset.validationMessage??""}}))},{signal:n.signal});let r=()=>{n.abort(),ai(e),lt.delete(e)};return lt.set(e,r),r}if(typeof document<"u")v({[`form${ti}`]:(e)=>ci(e)});var ui='[data-status][role="status"]',bt="statusClasses",Et;function wt(){if(typeof document>"u")return null;return document.querySelector(ui)}function li(e){return typeof e==="string"?e.trim().split(/\s+/).filter(Boolean):[]}function Nn(e){let t=e.dataset[bt];if(t)e.classList.remove(...t.split(" "));delete e.dataset[bt]}function Q(e,t={}){let n=wt();if(!n||e==null)return;clearTimeout(Et),Nn(n);let r=li(t.intent);if(r.length)n.classList.add(...r),n.dataset[bt]=r.join(" ");if(n.textContent=e,t.duration!==!1)Et=setTimeout(()=>Q.clear(),t.duration??3000)}Q.clear=function(){let t=wt();if(t)t.textContent="",Nn(t);clearTimeout(Et)};var fi=["--status"],di=["--status-clear"];function Mn(e,t){e.dispatchEvent(new CustomEvent(A.status,{bubbles:!0,detail:t}))}function pi(e){let t=e.getAttribute("data-status-duration");if(t===null)return;if(t==="false")return!1;let n=Number(t);return Number.isFinite(n)?n:void 0}function In(e){let t=_(e);return t&&t===wt()?t:null}function On(e,t){e.setAttribute("aria-controls",t.id)}if(typeof document<"u")document.addEventListener(A.invalid,(e)=>{let t=e.detail?.message;if(t)Q(t,{intent:"danger"})}),document.addEventListener(A.status,(e)=>{let{message:t,intent:n,duration:r}=e.detail??{};if(t!=null)Q(t,{intent:n,duration:r});else Q.clear()}),I(fi,{resolve:In,prepare:On,handle:(e,t)=>{e.preventDefault(),Mn(t,{message:t.getAttribute("data-status-message"),intent:t.getAttribute("data-status-intent")??void 0,duration:pi(t)})}}),I(di,{resolve:In,prepare:On,handle:(e,t)=>{e.preventDefault(),Mn(t,{})}});function mi(e){return e.replace(/([a-zA-Z_$][\w$-]*)\s*:|'((?:\\'|[^'])*)'/g,(t,n,r)=>{if(n)return`"${n}":`;return`"${r.replace(/\\'/g,"'").replace(/"/g,"\\\"")}"`})}function Rn(e){if(e==null||typeof e!=="string")return{};let t=e.trim();if(t==="")return{};let n=t,r;try{r=JSON.parse(n)}catch{let o=mi(n);n=o.startsWith("{")?o:`{${o}}`,r=JSON.parse(n)}if(r===null||typeof r!=="object"||Array.isArray(r))throw TypeError("Enhancement config must be an object");return r}var hi='script[type="application/json"][data-enhance-modules]',Le=new Map,De=new Map,Me=new Map,gi=(e)=>import(e);function bi(e){let t=new URL(e,document.baseURI).href;if(!De.has(t))De.set(t,new Promise((n,r)=>{let o=document.createElement("script");o.src=t,o.onload=n,o.onerror=()=>{De.delete(t),o.remove(),r(Error(`Unable to load script: ${t}`))},document.head.append(o)}));return De.get(t)}function Ei(e){let t=new URL(e,document.baseURI).href;if(!Me.has(t))Me.set(t,new Promise((n,r)=>{let o=document.createElement("link");o.rel="stylesheet",o.href=t,o.onload=n,o.onerror=()=>{Me.delete(t),o.remove(),r(Error(`Unable to load style: ${t}`))},document.head.append(o)}));return Me.get(t)}function wi(e,t){return(n)=>{let r=new AbortController,o=n.getAttribute("data-enhance-config"),i=Rn(o??""),s=(l,d,f={})=>n.dispatchEvent(new CustomEvent(`actual:${e}:${l}`,{bubbles:!0,detail:d,...f})),a;try{a=t(n,{config:i,signal:r.signal,emit:s})}catch(l){throw r.abort(),l}if(a?.then)throw r.abort(),TypeError(`Enhancement "${e}" returned a Promise. connect() must be synchronous; use prepare() for asynchronous setup.`);if(a!==void 0&&typeof a!=="function")throw r.abort(),TypeError(`Enhancement "${e}" must return a cleanup function or undefined.`);return()=>{r.abort(),a?.()}}}function yi(e,t){if(typeof t!=="string"||t.trim()==="")throw TypeError(`Enhancement "${e}" must declare a non-empty module URL.`)}function vi(e,t){yi(e,t);let n=new URL(t,document.baseURI).href,r=Le.get(e);if(r){if(r.url!==n)throw Error(`Enhancement "${e}" is already declared from ${r.url} and cannot be replaced by ${n}.`);return r.promise.then(()=>({name:e,status:"skipped"}))}let o=gi(n).then(async(i)=>{if(typeof i.default!=="function")throw TypeError(`Enhancement "${e}" must export a default function.`);if(i.prepare!==void 0){if(typeof i.prepare!=="function")throw TypeError(`Enhancement "${e}" exports an invalid prepare().`);await i.prepare({resolve:(s)=>new URL(s,n).href,loadScript:bi,loadStyle:Ei})}return N(e,wi(e,i.default)),{name:e,status:"loaded"}}).catch((i)=>{if(Le.get(e)?.promise===o)Le.delete(e);throw i});return Le.set(e,{url:n,promise:o}),o}async function Ti(e){let t=Object.entries(e),n=await Promise.allSettled(t.map(([o,i])=>vi(o,i))),r={names:[],failed:[],skipped:[]};return n.forEach((o,i)=>{let s=t[i][0];if(o.status==="rejected")r.failed.push({name:s,error:o.reason});else if(o.value.status==="skipped")r.skipped.push(s);else r.names.push(s)}),r}function Si(e){let t=JSON.parse(e);if(typeof t!=="object"||t===null||Array.isArray(t))throw TypeError("Manifest must be a JSON object.");return Object.entries(t)}async function Ai(e){let t=Si(e.textContent),n=await Ti(Object.fromEntries(t));for(let r of n.failed)console.error(`Enhancement "${r.name}" failed to load:`,r.error);if(n.failed.length===0)e.remove();return n}function Fn(){return v({[hi]:(e)=>{Ai(e).catch((t)=>{console.error("Failed to parse enhancement manifest:",t)})}})}Fn();
@@ -0,0 +1 @@
1
+ *, *::before, *::after { box-sizing: border-box; } html { -webkit-text-size-adjust: 100%; } body { margin: 0; } button, input, textarea, select { font: inherit; } [hidden]:not([hidden="until-found"]) { display: none !important; } :where(img, svg, video) { max-inline-size: 100%; block-size: auto; } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto !important; } *, *::before, *::after { animation-duration: 0.01ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; transition-delay: 0s !important; } } :root { --font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; --line-height: 1.5; --line-height-tight: 1.25; --line-height-relaxed: 1.75; --font-weight: 400; --font-weight-medium: 500; --font-weight-strong: 650; --font-weight-bold: 700; --font-size-xs: 0.8125rem; --font-size-sm: 0.875rem; --font-size-md: 1rem; --font-size-lg: 1.125rem; --gap: 0.75rem; --density-space: var(--space-40); --density-compact-size: 1.5rem; --space-10: 0.25rem; --space-20: 0.5rem; --space-30: 0.75rem; --space-40: 1rem; --space-50: 1.5rem; --space-60: 2rem; --border-width: 1px; --radius-full: 9999px; --shadow: 0 1px 3px rgb(0 0 0 / 0.05), 0 4px 12px rgb(0 0 0 / 0.04); --shadow-popout: 0 0.25rem 0.75rem rgb(0 0 0 / 0.15); --duration: 150ms; --duration-fast: 100ms; --duration-slow: 200ms; --duration-spin: 0.75s; --duration-shimmer: 1.2s; --ease: ease; --focus-outline-color: currentColor; --focus-outline: calc(var(--border-width) * 2) solid var(--focus-outline-color); --focus-outline-offset: 2px; --focus-ring-width: 3px; --indicator-offset: 14.65%; --backdrop-color: rgb(0 0 0); --backdrop-opacity: 0.45; --backdrop-fill: rgb(0 0 0 / var(--backdrop-opacity)); --bar-height: 0.65rem; --control-size-sm: 2rem; --control-size-md: 2.375rem; --control-size-lg: 2.75rem; --control-size: var(--control-size-md); --control-pad-x: 1em; --control-font-size: var(--font-size-md); --choice-control-size: 1.125em; --disabled-opacity: 0.65; } :root, [data-theme] { --state-selected: var(--primary); --state-selected-fg: var(--primary-fg); --state-disabled: var(--text-subtle); --indicator-ring: var(--surface); } :root { --soft-bg-mix: 88%; --soft-border-mix: 65%; --soft-hover-alpha: 12%; --soft-fg-mix: 100%; --icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%238a8594' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); --icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E"); --icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3C/svg%3E"); --viewport-block: 100vh; --viewport-inline: 100vw; --z-sticky: 10; --z-menu: 20; --z-tooltip: 50; --z-status: 60; } @media (forced-colors: active) { :root, [data-theme] { --state-selected: Highlight; --state-selected-fg: HighlightText; --state-disabled: GrayText; } } @supports (block-size: 100dvh) { :root { --viewport-block: 100dvh; } } @supports (inline-size: 100vi) { :root { --viewport-inline: 100vi; } } @supports (color: color-mix(in oklch, red, white)) { :root, [data-theme] { --shadow: 0 1px 3px color-mix(in oklch, var(--shadow-color) 5%, transparent), 0 4px 12px color-mix(in oklch, var(--shadow-color) 4%, transparent); --shadow-popout: 0 0.25rem 0.75rem color-mix(in oklch, var(--shadow-color) 15%, transparent); } :root { --backdrop-fill: color-mix( in oklch, var(--backdrop-color) calc(var(--backdrop-opacity) * 100%), transparent ); } } :root { color-scheme: light dark; } [data-theme="light"] { color-scheme: light; } [data-theme="dark"] { color-scheme: dark; } @supports not (color: light-dark(red, blue)) { :root, [data-theme="light"], [data-theme="dark"] { color-scheme: light; } } :root, [data-theme="light"] { --primary: hsl(268 32% 33%); --primary-fg: hsl(0 0% 98%); --secondary: hsl(16 38% 38%); --secondary-fg: hsl(0 0% 98%); --success: hsl(150 40% 31%); --success-fg: hsl(0 0% 98%); --warning: hsl(36 68% 34%); --warning-fg: hsl(0 0% 98%); --danger: hsl(5 58% 43%); --danger-fg: hsl(0 0% 98%); --neutral: hsl(258 7% 43%); --neutral-fg: hsl(0 0% 98%); --surface: hsl(0 0% 100%); --surface-raised: hsl(0 0% 100%); --surface-subtle: hsl(262 24% 96%); --surface-solid: hsl(261 16% 13%); --text: hsl(261 20% 13%); --text-muted: hsl(259 9% 42%); --text-subtle: hsl(258 7% 57%); --border: hsl(260 15% 88%); --focus: var(--neutral); --focus-ring: hsl(258 7% 43% / 0.3); --hover-overlay: hsl(260 20% 10% / 0.04); --radius: 0.5rem; --radius-sm: 0.25rem; --radius-lg: 0.75rem; --shadow-color: hsl(260 25% 10%); --hgroup-gap: 0.25em; } :root, [data-theme] { --heading: var(--text); --selection-bg: var(--primary); --selection-fg: var(--primary-fg); --focus-ring-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring); } :root, [data-theme] { accent-color: var(--primary); } [data-tone="dark"] { --tone-fg: white; } [data-tone="light"] { --tone-fg: var(--text); } @supports (color: color-mix(in oklch, red, white)) { :root, [data-theme] { --focus-ring: color-mix(in oklch, var(--focus) 30%, transparent); } } @supports (color: light-dark(red, blue)) { :root, [data-theme="light"] { --primary: light-dark(hsl(268 32% 33%), hsl(268 42% 76%)); --primary-fg: light-dark(hsl(0 0% 98%), hsl(268 30% 12%)); --secondary: light-dark(hsl(16 38% 38%), hsl(18 45% 72%)); --secondary-fg: light-dark(hsl(0 0% 98%), hsl(18 32% 11%)); --success: light-dark(hsl(150 40% 31%), hsl(150 38% 62%)); --success-fg: light-dark(hsl(0 0% 98%), hsl(150 35% 8%)); --warning: light-dark(hsl(36 68% 34%), hsl(40 62% 64%)); --warning-fg: light-dark(hsl(0 0% 98%), hsl(38 35% 10%)); --danger: light-dark(hsl(5 58% 43%), hsl(4 60% 70%)); --danger-fg: light-dark(hsl(0 0% 98%), hsl(4 35% 10%)); --neutral: light-dark(hsl(258 7% 43%), hsl(258 10% 72%)); --neutral-fg: light-dark(hsl(0 0% 98%), hsl(260 18% 10%)); --surface: light-dark(hsl(0 0% 100%), hsl(263 17% 9%)); --surface-raised: light-dark(hsl(0 0% 100%), hsl(263 15% 12%)); --surface-subtle: light-dark(hsl(262 24% 96%), hsl(263 13% 16%)); --surface-solid: light-dark(hsl(261 16% 13%), hsl(0 0% 96%)); --text: light-dark(hsl(261 20% 13%), hsl(260 12% 95%)); --text-muted: light-dark(hsl(259 9% 42%), hsl(259 9% 67%)); --text-subtle: light-dark(hsl(258 7% 57%), hsl(258 7% 54%)); --border: light-dark(hsl(260 15% 88%), hsl(262 12% 24%)); --focus-ring: light-dark(hsl(258 7% 43% / 0.3), hsl(258 10% 72% / 0.28)); --hover-overlay: light-dark(hsl(260 20% 10% / 0.04), hsl(0 0% 100% / 0.06)); --shadow-color: light-dark(hsl(260 25% 10%), hsl(262 40% 2%)); } } @supports (color: color-mix(in oklch, red, white)) and (color: light-dark(red, blue)) { :root, [data-theme] { --focus-ring: light-dark( color-mix(in oklch, var(--focus) 30%, transparent), color-mix(in oklch, var(--focus) 28%, transparent) ); } } @media (forced-colors: active) { :root, [data-theme] { --focus-outline-color: Highlight; --focus-ring-shadow: none; --backdrop-fill: Canvas; } } @media (prefers-contrast: more) { :root, [data-theme][data-theme] { --border-width: 2px; --focus-outline-offset: 3px; --focus-ring-width: 4px; --text-muted: var(--text); --text-subtle: var(--text); } } body { background: var(--surface); color: var(--text); font-family: var(--font-sans); line-height: var(--line-height); } a { color: inherit; text-underline-offset: 0.18em; } a:hover { text-decoration-thickness: 0.12em; } :where(h1, h2, h3, h4, h5, h6) { color: var(--heading, inherit); line-height: var(--line-height-tight); text-wrap: balance; } hgroup { display: grid; gap: var(--hgroup-gap); } hgroup > * { margin-block: 0; } hr { border: 0; border-block-start: var(--border-width) solid var(--border); margin-block: var(--space-60); } code, kbd, samp, pre { font-family: var(--font-mono); } small { font-size: 0.875em; } ::selection { background: var(--selection-bg, var(--primary)); color: var(--selection-fg, var(--primary-fg)); } .primary { --intent: var(--primary); --intent-fg: var(--primary-fg); } .secondary { --intent: var(--secondary); --intent-fg: var(--secondary-fg); } .success { --intent: var(--success); --intent-fg: var(--success-fg); } .warning { --intent: var(--warning); --intent-fg: var(--warning-fg); } .danger { --intent: var(--danger); --intent-fg: var(--danger-fg); } .neutral { --intent: var(--neutral); --intent-fg: var(--neutral-fg); } .solid { --ui-bg: var(--intent, var(--neutral)); --ui-fg: var(--intent-fg, var(--neutral-fg)); --ui-border: transparent; } .soft { --ui-bg: var(--surface-subtle); --ui-border: var(--border); --ui-fg: var(--intent, var(--text)); } .outline { --ui-bg: transparent; --ui-fg: var(--intent, currentColor); --ui-border: var(--intent, currentColor); } .inverted { --ui-bg: var(--surface-solid); --ui-fg: var(--surface); --ui-border: transparent; --ui-hover-bg: var(--surface-solid); --heading: var(--surface); --busy-overlay-bg: var(--surface-solid); background: var(--ui-bg); color: var(--ui-fg); border-color: var(--ui-border); } .sm { --gap: var(--space-20); --density-space: var(--space-20); --control-size: var(--control-size-sm); --density-compact-size: 1.25rem; } .lg { --gap: var(--space-50); --density-space: var(--space-50); --control-size: var(--control-size-lg); --density-compact-size: 1.875rem; } @supports (color: color-mix(in oklch, red, white)) { .soft { --ui-bg: color-mix(in oklab, var(--surface) var(--soft-bg-mix), var(--intent, var(--neutral))); --ui-border: color-mix( in oklab, var(--surface) var(--soft-border-mix), var(--intent, var(--neutral)) ); --ui-fg: color-mix(in oklab, var(--text), var(--intent, var(--text)) var(--soft-fg-mix)); } .inverted { --ui-hover-bg: color-mix(in oklch, var(--surface-solid) 88%, black); } } :focus { outline: var(--focus-outline); outline-offset: var(--focus-outline-offset); } @supports selector(:focus-visible) { :focus:not(:focus-visible) { outline: none; } @media (forced-colors: active) { :focus:not(:focus-visible) { outline: var(--focus-outline); } } } @media print { :root, body { color-scheme: light; background: #fff; color: #000; } h1, h2, h3, h4, h5, h6 { break-after: avoid; } } .prose { --prose-size: 1rem; --prose-line-height: 1.7; --prose-measure: 70ch; --prose-flow: 1em; --prose-heading-line-height: 1.2; --prose-h1: 2rem; --prose-h2: 1.5rem; --prose-h3: 1.25rem; --prose-h4: 1.125rem; max-inline-size: var(--prose-measure); font-size: var(--prose-size); line-height: var(--prose-line-height); overflow-wrap: break-word; } .prose > * + * { margin-block-start: var(--prose-flow); } .prose :where(h1, h2, h3, h4, h5, h6) { margin-block: 1.5em 0; color: var(--heading, var(--text)); font-weight: var(--font-weight-strong); line-height: var(--prose-heading-line-height); } .prose :where(p, li, blockquote) { text-wrap: pretty; } .prose > :first-child { margin-block-start: 0; } .prose :where(h1) { font-size: var(--prose-h1); } .prose :where(h2) { font-size: var(--prose-h2); } .prose :where(h3) { font-size: var(--prose-h3); } .prose :where(h4) { font-size: var(--prose-h4); } .prose :where(a) { color: var(--link, var(--primary)); text-decoration-line: underline; text-decoration-thickness: 0.08em; text-underline-offset: 0.18em; } .prose :where(a:hover) { text-decoration-thickness: 0.12em; } @supports (color: color-mix(in oklch, red, white)) { .prose :where(a:hover) { color: color-mix(in oklab, var(--link, var(--primary)), var(--text) 15%); } } .prose :where(ul, ol) { padding-inline-start: 1.5em; } .prose :where(li + li) { margin-block-start: 0.35em; } .prose :where(dt) { font-weight: var(--font-weight-strong); } .prose :where(dd) { margin-inline-start: 1.5em; } .prose :where(dd + dt) { margin-block-start: 0.75em; } .prose :where(code) { padding: 0.15em 0.3em; border-radius: var(--radius-sm); background: var(--surface-subtle); color: var(--text); font-size: 0.875em; } .prose :where(kbd) { display: inline-flex; align-items: center; justify-content: center; min-inline-size: 1.75em; min-block-size: 1.6em; padding-inline: 0.45em; border: var(--border-width) solid var(--border); border-block-end-width: calc(var(--border-width) * 2); border-radius: var(--radius-sm); background: var(--surface-raised); color: var(--text); font-family: var(--font-mono); font-size: 0.875em; font-weight: var(--font-weight-medium); line-height: 1; white-space: nowrap; vertical-align: 0.08em; } .prose :where(pre) { overflow-x: auto; padding: 1em; border: var(--border-width) solid var(--border); border-radius: var(--radius); background: var(--surface-subtle); } .prose :where(pre) :where(code) { padding: 0; background: transparent; } .prose :where(blockquote) { padding-inline-start: 1em; border-inline-start: var(--border-width) solid var(--border); color: var(--text-muted); } .prose :where(figure) { margin-inline: 0; } .prose :where(figcaption) { margin-block-start: 0.5em; color: var(--text-muted); font-size: 0.875em; } .prose :where(table) { inline-size: 100%; border-collapse: collapse; } .prose :where(th, td) { padding: 0.5em; border-block-end: var(--border-width) solid var(--border); text-align: start; } .prose.sm { --prose-size: 0.9375rem; --prose-h1: 1.75rem; --prose-h2: 1.375rem; --prose-h3: 1.125rem; --prose-h4: 1rem; } .prose.lg { --prose-size: 1.125rem; --prose-measure: 72ch; --prose-h1: 2.25rem; --prose-h2: 1.625rem; --prose-h3: 1.375rem; --prose-h4: 1.25rem; } .lead { font-size: 1.125em; line-height: var(--line-height-relaxed); } :where(.overline) { --intent: initial; } .overline { color: var(--text-muted); font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); letter-spacing: 0.04em; text-transform: uppercase; } .overline.pill { --overline-radius: var(--radius-full); display: inline-flex; align-items: center; gap: 0.5em; padding-inline: 0.6em; padding-block: 0.25em; inline-size: fit-content; max-inline-size: 100%; color: var(--intent, var(--text-muted)); border: var(--border-width) solid var(--border); border-radius: var(--overline-radius); background: var(--surface); } @supports (color: color-mix(in oklch, red, white)) { .overline.pill { border-color: color-mix(in oklab, var(--intent, var(--border)) 35%, var(--border)); background: color-mix(in oklab, var(--intent, transparent) 6%, var(--surface)); } } :root { --fluid-display: clamp(2.75rem, calc(2.25rem + 2.222vw), 4.25rem); --fluid-title: clamp(2rem, calc(1.75rem + 1.111vw), 2.75rem); --fluid-lead: clamp(1.125rem, calc(1.0833rem + 0.185vw), 1.25rem); } @supports (inline-size: 100vi) { :root { --fluid-display: clamp(2.75rem, calc(2.25rem + 2.222vi), 4.25rem); --fluid-title: clamp(2rem, calc(1.75rem + 1.111vi), 2.75rem); --fluid-lead: clamp(1.125rem, calc(1.0833rem + 0.185vi), 1.25rem); } } .text-display { font-size: var(--fluid-display); line-height: var(--line-height-tight); text-wrap: balance; } .text-title { font-size: var(--fluid-title); line-height: var(--line-height-tight); text-wrap: balance; } .text-lead { font-size: var(--fluid-lead); line-height: var(--line-height-relaxed); } .container-query { container-type: inline-size; } .stack { display: flex; flex-direction: column; gap: var(--gap); } .stack > * { margin-block: 0; } .cluster { display: flex; flex-wrap: var(--cluster-wrap, wrap); align-items: var(--cluster-align, center); justify-content: var(--cluster-justify, flex-start); gap: var(--gap); } .cluster > * { margin: 0; } .center { box-sizing: content-box; max-inline-size: var(--center-size, 72rem); margin-inline: auto; padding-inline: var(--center-pad, 1rem); } .frame { overflow: hidden; aspect-ratio: var(--frame-ratio, 16 / 9); } .frame > :where(img, video, iframe, canvas, svg) { inline-size: 100%; block-size: 100%; object-fit: cover; } .app-shell { min-block-size: var(--viewport-block); display: flex; flex-direction: column; } .media { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--gap); align-items: start; } .switcher { display: flex; flex-wrap: wrap; gap: var(--gap); } .switcher > * { flex-basis: calc((var(--switcher-threshold, 40rem) - 100%) * 999); flex-grow: 1; min-inline-size: 0; } .sidebar-layout { display: flex; flex-wrap: wrap; gap: var(--gap); align-items: flex-start; } .sidebar-layout > :first-child { flex-basis: 0; flex-grow: 999; min-inline-size: min(100%, var(--sidebar-content-min, 30rem)); } .sidebar-layout > :last-child { flex-basis: var(--sidebar-layout-size, 18rem); flex-grow: 1; } .grid { display: grid; gap: var(--gap); grid-template-columns: var( --grid-columns, repeat(auto-fit, minmax(min(100%, var(--grid-min, 16rem)), 1fr)) ); } :where(.grid-2, .grid-3, .grid-4, .grid-6) { display: grid; gap: var(--gap); grid-template-columns: repeat( auto-fill, minmax( min( 100%, max(16rem, calc((100% - (var(--grid-count) - 1) * var(--gap)) / var(--grid-count))) ), 1fr ) ); } .grid-2 { --grid-count: 2; } .grid-3 { --grid-count: 3; } .grid-4 { --grid-count: 4; } .grid-6 { --grid-count: 6; } :where(.grid, .grid-2, .grid-3, .grid-4, .grid-6) > * { min-inline-size: 0; } @supports (container-type: inline-size) { .container-query :where(.grid-2, .grid-3, .grid-4, .grid-6) { grid-template-columns: 1fr; } @container (min-width: 28rem) { .container-query :where(.grid-2, .grid-4, .grid-6) { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @container (min-width: 48rem) { .container-query :where(.grid-3, .grid-6) { grid-template-columns: repeat(3, minmax(0, 1fr)); } } @container (min-width: 64rem) { .container-query :where(.grid-4) { grid-template-columns: repeat(4, minmax(0, 1fr)); } .container-query :where(.grid-6) { grid-template-columns: repeat(6, minmax(0, 1fr)); } } } .column-layout { display: grid; gap: var(--gap); grid-template-columns: repeat(12, minmax(0, 1fr)); } :where(.column-layout) > * { grid-column-end: span 12; min-inline-size: 0; } :where(.column-start-1) { grid-column: 1 / -1; } :where(.column-start-2) { grid-column: 2 / -1; } :where(.column-start-3) { grid-column: 3 / -1; } :where(.column-start-4) { grid-column: 4 / -1; } :where(.column-start-5) { grid-column: 5 / -1; } :where(.column-start-6) { grid-column: 6 / -1; } :where(.column-start-7) { grid-column: 7 / -1; } :where(.column-start-8) { grid-column: 8 / -1; } :where(.column-start-9) { grid-column: 9 / -1; } :where(.column-start-10) { grid-column: 10 / -1; } :where(.column-start-11) { grid-column: 11 / -1; } :where(.column-start-12) { grid-column: 12 / -1; } :where(.column-span-1) { grid-column-end: span 1; } :where(.column-span-2) { grid-column-end: span 2; } :where(.column-span-3) { grid-column-end: span 3; } :where(.column-span-4) { grid-column-end: span 4; } :where(.column-span-5) { grid-column-end: span 5; } :where(.column-span-6) { grid-column-end: span 6; } :where(.column-span-7) { grid-column-end: span 7; } :where(.column-span-8) { grid-column-end: span 8; } :where(.column-span-9) { grid-column-end: span 9; } :where(.column-span-10) { grid-column-end: span 10; } :where(.column-span-11) { grid-column-end: span 11; } :where(.column-span-12) { grid-column-end: span 12; } .scroller { --scroller-track: transparent; --scroller-thumb: var(--border); scrollbar-color: var(--scroller-thumb) var(--scroller-track); scrollbar-width: thin; } .scroller.stable-gutter { scrollbar-gutter: stable; } @supports (color: color-mix(in oklch, red, white)) { .scroller { --scroller-thumb: color-mix(in oklch, var(--text-muted), transparent 55%); } } .scroll-snap { --scroll-snap-gap: var(--gap); --scroll-snap-align: start; --scroll-snap-item-size: auto; display: flex; gap: var(--scroll-snap-gap); overflow-x: auto; } .scroll-snap > * { flex: 0 0 var(--scroll-snap-item-size); } @supports (scroll-snap-type: x mandatory) { .scroll-snap { overscroll-behavior-inline: contain; scroll-padding-inline: var(--scroll-snap-padding, var(--scroll-snap-gap)); scroll-snap-type: x mandatory; } .scroll-snap > * { scroll-snap-align: var(--scroll-snap-align); } .scroll-snap[data-snap="center"] { --scroll-snap-align: center; } } @supports (scroll-snap-type: inline mandatory) { .scroll-snap { scroll-snap-type: inline mandatory; } } .scroll-snap[data-scrollbar="hidden"] { scrollbar-width: none; } .scroll-snap[data-scrollbar="hidden"]::-webkit-scrollbar { display: none; } .scroll-target { scroll-margin-block-start: var(--scroll-target-offset, var(--space-60)); } .topbar { position: sticky; inset-block-start: 0; z-index: var(--z-sticky); isolation: isolate; display: flex; align-items: center; gap: var(--gap); padding-block: var(--space-30); padding-inline: var(--space-40); border-block-end: var(--border-width) solid var(--border); background: var(--surface); } @supports ((backdrop-filter: blur(1rem)) or (-webkit-backdrop-filter: blur(1rem))) and (background: color-mix(in oklch, red 50%, transparent)) { .topbar { background: color-mix(in oklch, var(--surface) 88%, transparent); backdrop-filter: blur(0.75rem); -webkit-backdrop-filter: blur(0.75rem); } } .measure { max-inline-size: var(--measure, 70ch); } .field { display: grid; gap: var(--space-10); color: var(--text); } .field-group { min-inline-size: 0; margin: 0; padding: var(--space-30); border: var(--border-width) solid var(--border); border-radius: var(--radius); } .field-group + .field-group { margin-block-start: var(--space-40); } .field-label, .field-group > legend { color: var(--text); font-weight: var(--font-weight-strong); } .field-group > legend { padding-block: 0; padding-inline: var(--fieldset-legend-padding-inline, var(--space-10)); font-size: var(--font-size-xs); } .field-help { color: var(--text-muted); font-size: var(--font-size-sm); } .field-error { display: none; color: var(--danger); font-size: var(--font-size-sm); } .required-mark { color: var(--danger); } .field.danger .field-help { color: var(--danger); } .input, .textarea, .select { --control-border: var(--border); --control-bg: var(--surface); --control-fg: var(--text); --control-cursor: auto; appearance: none; inline-size: 100%; min-block-size: var(--control-size); padding-inline: var(--space-30); border: var(--border-width) solid var(--form-invalid-border, var(--control-border)); border-block-end-color: var( --form-invalid-border, var(--control-border-block-end-color, var(--control-border)) ); border-block-end-width: var(--control-border-block-end-width, var(--border-width)); border-radius: var(--radius); background: var(--control-bg); color: var(--control-fg); font-size: var(--control-font-size); cursor: var(--control-cursor); transition: border-color var(--duration), box-shadow var(--duration), background-color var(--duration), color var(--duration); } .textarea { min-block-size: 6rem; padding-block: var(--space-20); resize: vertical; } .input:hover:not(:disabled), .textarea:hover:not(:disabled) { --control-border: var(--text-subtle); } .select:hover:not(:disabled) { --control-bg: var(--surface-subtle); } .input:focus-visible, .textarea:focus-visible, .select:focus-visible { --control-border: var(--focus); outline: 2px solid transparent; box-shadow: var(--focus-ring-shadow); } .input[readonly], .textarea[readonly] { --control-bg: var(--surface-subtle); --control-border: var(--border); } .input:disabled, .textarea:disabled, .select:disabled { --control-bg: var(--surface-subtle); --control-fg: var(--state-disabled); --control-border: var(--border); --control-cursor: not-allowed; } .input::placeholder, .textarea::placeholder { color: var(--text-muted); } :where(.choice, .check, .radio) { --intent: initial; --intent-fg: initial; } :where(.choice) > :where(input[type="checkbox"]:not([role="switch"]), input[type="radio"]) { --intent: inherit; --intent-fg: inherit; } .choice { display: inline-flex; align-items: flex-start; gap: var(--space-20); color: var(--text); font-size: var(--control-font-size); cursor: pointer; } .choice > :is(input[type="checkbox"]:not([role="switch"]), input[type="radio"]) { flex: 0 0 auto; margin-block-start: var(--choice-control-offset, 0.25em); } .choice > .switch { flex: 0 0 auto; margin-block-start: var(--choice-control-offset, 0.1875em); } @supports (margin-block-start: 1lh) { .choice > :is(input[type="checkbox"]:not([role="switch"]), input[type="radio"]) { margin-block-start: var( --choice-control-offset, calc((1lh - var(--choice-control-size)) / 2 + 0.0625em) ); } .choice > .switch { margin-block-start: var( --choice-control-offset, calc((1lh - var(--switch-block-size)) / 2 + 0.0625em) ); } } .choice > span > .field-help { display: block; } .choice:has(> :disabled) { color: var(--state-disabled); cursor: not-allowed; } .check, .radio { --choice-border: var(--border); --choice-bg: var(--surface); --choice-mark: var(--primary-fg); position: relative; vertical-align: middle; display: inline-grid; place-content: center; inline-size: var(--choice-control-size); block-size: var(--choice-control-size); margin: 0; border: var(--border-width) solid var(--form-invalid-border, var(--choice-border)); background: var(--choice-bg); color: var(--choice-mark); appearance: none; cursor: pointer; } .check { border-radius: var(--radius-sm); } .radio { border-radius: var(--radius-full); } .check::before, .radio::before { content: ""; position: absolute; inset: 0; margin: auto; transform: scale(0); transition: transform var(--duration); } .check::before { inline-size: 0.58em; block-size: 0.34em; border-inline-start: 2px solid currentColor; border-block-end: 2px solid currentColor; transform: translateY(-0.06em) rotate(-45deg) scale(0); } .radio::before { inline-size: 0.5em; block-size: 0.5em; border-radius: var(--radius-full); background: currentColor; } .check:is(:checked, :indeterminate), .radio:checked { --choice-border: var(--intent, var(--primary)); --choice-bg: var(--intent, var(--primary)); --choice-mark: var(--intent-fg, var(--primary-fg)); } .check:checked::before { transform: translateY(-0.06em) rotate(-45deg) scale(1); } .check:indeterminate::before { border-inline-start: 0; inline-size: 0.6em; block-size: 0; border-block-end: 2px solid currentColor; transform: scale(1); } .radio:checked::before { transform: scale(1); } .check:hover:not(:checked, :indeterminate, :disabled), .radio:hover:not(:checked, :indeterminate, :disabled) { --choice-border: var(--text-subtle); } .check:focus-visible, .radio:focus-visible { --choice-border: var(--focus); outline: 2px solid transparent; box-shadow: var(--focus-ring-shadow); } .check:disabled, .radio:disabled { --choice-bg: var(--surface-subtle); --choice-border: var(--border); --choice-mark: var(--state-disabled); cursor: not-allowed; opacity: 1; } .select:not([multiple], [size]:not([size="1"])) { appearance: none; padding-inline-end: calc(var(--space-30) + var(--space-60)); background-image: var(--icon-chevron); background-position: center right var(--space-30); background-size: 1rem auto; background-repeat: no-repeat; } .select:not([multiple], [size]:not([size="1"])):dir(rtl) { background-position: center left var(--space-30); } @media (forced-colors: active), (prefers-contrast: more) { .select:not([multiple], [size]:not([size="1"])) { appearance: auto; background-image: none; padding-inline-end: var(--space-30); } } .file { color: var(--text-muted); } .file::file-selector-button { margin-inline-end: var(--space-30); padding-block: var(--space-10); padding-inline: var(--space-20); border: var(--border-width) solid var(--border); border-radius: var(--radius-sm); background: var(--surface-subtle); color: var(--text); font: inherit; font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); cursor: pointer; transition: background-color var(--duration), border-color var(--duration), color var(--duration); } .file:disabled::file-selector-button { cursor: not-allowed; } .file:not(:disabled)::file-selector-button:hover { background: var(--border); } .file:focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-ring-shadow); } .color { inline-size: var(--control-size); block-size: var(--control-size); padding: var(--border-width); border: var(--border-width) solid var(--border); border-radius: var(--radius); background: var(--surface); cursor: pointer; } .color::-webkit-color-swatch-wrapper { padding: 0; } .color::-webkit-color-swatch { border: 0; border-radius: calc(var(--radius) - var(--border-width)); } .color::-moz-color-swatch { border: 0; border-radius: calc(var(--radius) - var(--border-width)); } .color:disabled { cursor: not-allowed; opacity: var(--disabled-opacity); } .color:focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-ring-shadow); } @media (forced-colors: active) { .color { border-color: ButtonText; background: ButtonFace; } .color::-webkit-color-swatch { forced-color-adjust: none; } .color::-moz-color-swatch { forced-color-adjust: none; } } .field.danger { --form-invalid-border: var(--danger); } .field.danger > .field-error { display: block; } @supports selector(:has(*)) { .field:has([aria-invalid="true"]) > .field-error, .needs-validation.was-validated .field:has(:invalid) > .field-error { display: block; } } :where(.input, .textarea, .select, .check, .radio, .switch)[aria-invalid="true"], .needs-validation.was-validated :is(.input, .textarea, .select, .check, .radio, .switch):invalid { --form-invalid-border: var(--danger); } .check:is(:checked, :indeterminate)[aria-invalid="true"], .needs-validation.was-validated .check:is(:checked, :indeterminate):invalid, .radio:checked[aria-invalid="true"], .needs-validation.was-validated .radio:checked:invalid { --choice-bg: var(--danger); } .switch:checked[aria-invalid="true"], .needs-validation.was-validated .switch:checked:invalid { --switch-bg: var(--danger); } @supports selector(:user-invalid) { .needs-validation .check:is(:checked, :indeterminate):user-invalid, .needs-validation .radio:checked:user-invalid { --choice-bg: var(--danger); } .needs-validation .switch:checked:user-invalid { --switch-bg: var(--danger); } } @supports selector(:has(*)) { .choice-card:has([aria-invalid="true"]), .needs-validation.was-validated .choice-card:has(:invalid) { --form-invalid-border: var(--danger); } } @supports selector(:user-invalid) { .needs-validation :is(.input, .textarea, .select, .check, .radio, .switch):user-invalid { --form-invalid-border: var(--danger); } } @supports selector(:has(:user-invalid)) { .needs-validation .field:has(:user-invalid) > .field-error { display: block; } .needs-validation .choice-card:has(:user-invalid) { --form-invalid-border: var(--danger); } } .form-actions { display: flex; flex-wrap: wrap; gap: var(--gap); align-items: var(--form-actions-align, center); justify-content: var(--form-actions-justify, flex-start); margin-block-start: var(--form-actions-margin-block-start, var(--space-50)); } .form-actions.sticky { position: sticky; inset-block-end: var(--form-actions-sticky-block-offset, 0px); z-index: var(--z-sticky); isolation: isolate; margin-inline: calc(var(--form-actions-sticky-inline-offset, 0px) * -1); padding: var(--form-actions-sticky-padding, var(--space-30)); border-block-start: var(--border-width) solid var(--border); background: var(--surface); -webkit-backdrop-filter: blur(1rem); backdrop-filter: blur(1rem); } @supports (background: color-mix(in oklch, red 50%, transparent)) { .form-actions.sticky { background: color-mix(in oklch, var(--surface) 88%, transparent); } } .input-icon { --input-icon-size: 1.25rem; display: block; position: relative; } .input-icon > :where(:not(.input)) { position: absolute; inset-block-start: 50%; transform: translateY(-50%); font-size: var(--input-icon-size); color: var(--text-muted); pointer-events: none; } .input-icon > :first-child:where(:not(.input)) { inset-inline-start: var(--space-30); } .input-icon > .input:first-child ~ :where(:not(.input)) { inset-inline-end: var(--space-30); } .input-icon > svg:where(:not(.input)) { inline-size: var(--input-icon-size); block-size: var(--input-icon-size); } .input-icon > :first-child:where(:not(.input)) ~ .input { padding-inline-start: calc(var(--space-30) * 2 + var(--input-icon-size)); } .input-icon > .input:first-child:where(:not(:last-child)) { padding-inline-end: calc(var(--space-30) * 2 + var(--input-icon-size)); } :where(.switch) { --intent: initial; --intent-fg: initial; } .switch { --switch-bg: var(--border); --switch-border: var(--border); --switch-knob: var(--surface-raised); --switch-block-size: calc(var(--choice-control-size) + 0.125em); --switch-width: calc(var(--switch-block-size) * 1.8); --switch-knob-margin: calc(var(--switch-block-size) * 0.08); --switch-knob-size: calc( var(--switch-block-size) - 2 * var(--border-width) - 2 * var(--switch-knob-margin) ); --switch-travel: calc( var(--switch-width) - var(--switch-knob-size) - 2 * var(--border-width) - 2 * var(--switch-knob-margin) ); position: relative; display: inline-grid; align-items: center; justify-content: start; inline-size: var(--switch-width); block-size: var(--switch-block-size); margin: 0; border: var(--border-width) solid var(--form-invalid-border, var(--switch-border)); border-radius: var(--radius-full); background: var(--switch-bg); appearance: none; cursor: pointer; } .switch::before { content: ""; inline-size: var(--switch-knob-size); block-size: var(--switch-knob-size); margin-inline: var(--switch-knob-margin); border-radius: var(--radius-full); background: var(--switch-knob); transition: transform var(--duration), background-color var(--duration); } .switch:hover:not(:disabled) { --switch-border: var(--intent, var(--primary)); } .switch:checked { --switch-bg: var(--intent, var(--primary)); --switch-border: var(--intent, var(--primary)); --switch-knob: var(--intent-fg, var(--primary-fg)); } .switch:checked::before { transform: translateX(var(--switch-travel)); } .switch:checked:dir(rtl)::before { transform: translateX(calc(var(--switch-travel) * -1)); } .switch:focus-visible { --switch-border: var(--focus); outline: 2px solid transparent; box-shadow: var(--focus-ring-shadow); } .switch:disabled { --switch-bg: var(--surface-subtle); --switch-border: var(--border); --switch-knob: var(--state-disabled); opacity: 1; cursor: not-allowed; } @media (forced-colors: active) { .switch::before { border: var(--border-width) solid ButtonText; } } :where(.range) { --intent: initial; } .range { --range-thumb-size: 1.25rem; --range-track-height: 0.25rem; --range-thumb-bg: var(--intent, var(--primary)); --range-track-bg: var(--border); appearance: none; inline-size: 100%; block-size: var(--range-thumb-size); background: transparent; cursor: pointer; } .range::-webkit-slider-runnable-track { block-size: var(--range-track-height); border-radius: var(--radius-full); background: var(--range-track-bg); } .range::-moz-range-track { block-size: var(--range-track-height); border-radius: var(--radius-full); background: var(--range-track-bg); } .range::-webkit-slider-thumb { appearance: none; inline-size: var(--range-thumb-size); block-size: var(--range-thumb-size); border-radius: var(--radius-full); border: 0; background: var(--range-thumb-bg); margin-block-start: calc((var(--range-track-height) - var(--range-thumb-size)) / 2); cursor: inherit; transition: box-shadow var(--duration); } .range::-moz-range-thumb { inline-size: var(--range-thumb-size); block-size: var(--range-thumb-size); border-radius: var(--radius-full); border: 0; background: var(--range-thumb-bg); cursor: inherit; transition: box-shadow var(--duration); } .range:focus-visible { outline: 2px solid transparent; } .range:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 1px var(--surface), 0 0 0 calc(1px + var(--focus-ring-width)) var(--focus-ring); } .range:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 1px var(--surface), 0 0 0 calc(1px + var(--focus-ring-width)) var(--focus-ring); } .range:disabled { --range-thumb-bg: var(--state-disabled); cursor: not-allowed; opacity: var(--disabled-opacity); } @media (forced-colors: active) { .range { --range-thumb-bg: ButtonText; --range-track-bg: Canvas; } } :where(.choice-card) { --intent: initial; --intent-fg: initial; } .choice-card { --choice-card-pad: var(--density-space, var(--space-40)); --choice-card-radius: var(--radius); --choice-card-border: var(--border); --choice-card-bg: var(--surface); --choice-card-check-size: 1.5em; position: relative; display: block; padding: var(--choice-card-pad); border: var(--border-width) solid var(--form-invalid-border, var(--choice-card-border)); border-radius: var(--choice-card-radius); background: var(--choice-card-bg); color: var(--text); cursor: pointer; transition: border-color var(--duration), background-color var(--duration), box-shadow var(--duration); } @supports selector(:has(*)) { .choice-card > :is(input[type="radio"], input[type="checkbox"]) { position: absolute; inline-size: 1px; block-size: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } } .choice-card:has(:focus-visible) { outline: 2px solid transparent; box-shadow: var(--focus-ring-shadow); } .choice-card:has(:disabled) { opacity: var(--disabled-opacity); cursor: not-allowed; } .choice-card:hover:not(:has(:disabled)) { --choice-card-border: var(--text-subtle); } .choice-card:has(:checked) { --choice-card-border: var(--intent, var(--primary)); } @supports (color: color-mix(in oklch, red, white)) { .choice-card:has(:checked) { --choice-card-bg: color-mix(in oklab, var(--surface) 96%, var(--intent, var(--primary))); } } .choice-card::before, .choice-card::after { content: ""; position: absolute; inset-inline-end: -0.375em; inset-block-start: -0.375em; inline-size: var(--choice-card-check-size); block-size: var(--choice-card-check-size); transform: scale(0); transition: transform var(--duration); } .choice-card::before { background: var(--intent, var(--primary)); box-shadow: 0 0 0 2px var(--surface); z-index: 1; } .choice-card:has(input[type="radio"])::before { border-radius: var(--radius-full); } .choice-card:has(input[type="checkbox"])::before { border-radius: var(--radius-sm); } .choice-card::after { background: var(--intent-fg, var(--primary-fg)); -webkit-mask: var(--icon-check) center / 60% no-repeat; mask: var(--icon-check) center / 60% no-repeat; z-index: 2; } .choice-card:has(:checked)::before, .choice-card:has(:checked)::after { transform: scale(1); } @media (forced-colors: active) { .choice-card { --choice-card-border: ButtonText; --choice-card-bg: Canvas; } .choice-card:has(:checked) { --choice-card-border: Highlight; --choice-card-bg: Canvas; } .choice-card:has(:checked)::before { background: Highlight; box-shadow: 0 0 0 2px Canvas; forced-color-adjust: none; } .choice-card:has(:checked)::after { background: HighlightText; forced-color-adjust: none; } } @media (forced-colors: none) and (prefers-contrast: no-preference) and (hover: hover) and ( pointer: fine ) { @supports (appearance: base-select) { .select:not([multiple], .native, [size]:not([size="1"])) { appearance: base-select; align-items: center; &::picker(select) { appearance: base-select; max-height: min(24rem, calc(var(--viewport-block) * 0.7)); margin-block: var(--space-20); padding: 0; border: var(--border-width) solid var(--border); border-radius: var(--radius); background-color: var(--surface-raised); color: inherit; box-shadow: var(--shadow-popout); } &:open { --control-border: var(--border); --control-bg: var(--surface-raised); outline: none; box-shadow: var(--focus-ring-shadow); } &::picker-icon { display: none; } & option { position: relative; padding-block: var(--space-20); padding-inline: var(--space-30); white-space: normal; transition-property: color, background-color; transition-duration: var(--duration); &:not(:disabled):hover { background-color: var(--surface-subtle); color: var(--text); cursor: pointer; } &:not(:disabled):focus-visible { background-color: var(--primary); color: var(--primary-fg); outline: none; } &:active { background-color: var(--surface-subtle); color: var(--text); } &::checkmark { content: ""; display: block; inline-size: 1rem; block-size: 1rem; background-color: currentColor; -webkit-mask: var(--icon-check) center / contain no-repeat; mask: var(--icon-check) center / contain no-repeat; } } & optgroup { padding-block-start: 0.5em; & option:first-child { margin-block-start: 0.5em; } } } } } .floating-field { --floating-label-top: var(--space-10); --floating-label-opacity: 0.8; --floating-pad-block-start: calc(var(--control-size) / 2 + var(--space-20)); position: relative; display: grid; } .floating-field > :is(.input, .textarea, .select) { padding-block-start: var(--floating-pad-block-start); padding-block-end: var(--space-10); } .floating-field > .field-label { position: absolute; inset-inline-start: calc(var(--space-30) + var(--border-width)); color: var(--text-muted); font-size: var(--control-font-size); font-weight: var(--font-weight); opacity: var(--floating-label-opacity); pointer-events: none; transition: inset-block-start var(--duration), transform var(--duration), font-size var(--duration), opacity var(--duration), color var(--duration); } .floating-field > :is(.input, .select) + .field-label { inset-block-start: 50%; transform: translateY(-50%); } .floating-field > .textarea + .field-label { inset-block-start: calc(1em + var(--border-width)); transform: none; } .floating-field > :is(.input, .textarea):is(:focus, :autofill, :not(:placeholder-shown)) + .field-label { inset-block-start: var(--floating-label-top); transform: none; font-size: var(--font-size-xs); opacity: 1; } .floating-field > :is( .select, .input[type="date"], .input[type="time"], .input[type="datetime-local"], .input[type="month"], .input[type="week"] ) + .field-label { inset-block-start: var(--floating-label-top); transform: none; font-size: var(--font-size-xs); opacity: 1; } @media (forced-colors: active) { .floating-field > .field-label { opacity: 1; } } .otp { --otp-cell-size: var(--control-size); --otp-gap: var(--space-10); --otp-font-size: 1.5rem; --otp-cell-border: var(--border); --otp-cell-bg: var(--surface); --otp-caret-space: calc((var(--otp-cell-size) - 1ch) / 2 + var(--otp-gap) + 1px); position: relative; display: inline-grid; grid-auto-flow: column; grid-auto-columns: var(--otp-cell-size); inline-size: fit-content; max-inline-size: 100%; gap: var(--otp-gap); border-radius: var(--radius); overflow: clip; direction: ltr; } .otp > span { inline-size: var(--otp-cell-size); block-size: var(--otp-cell-size); border: var(--otp-cell-border-width, var(--border-width)) solid var(--otp-cell-border); border-radius: var(--radius); background: var(--otp-cell-bg); transition: border-color var(--duration), background-color var(--duration); } .otp > input { position: absolute; z-index: 1; inset: 0; inline-size: calc(100% + var(--otp-caret-space)); block-size: 100%; margin: 0; padding-block: 0; padding-inline: calc((var(--otp-cell-size) - 1ch) / 2) 0; border: 0; outline: 2px solid transparent; box-shadow: none; background: transparent; color: var(--text); font-family: var(--font-mono); font-size: var(--otp-font-size); font-variant-numeric: tabular-nums; line-height: var(--otp-cell-size); letter-spacing: calc(var(--otp-cell-size) + var(--otp-gap) - 1ch); text-align: start; appearance: none; } .otp > input:focus ~ span { --otp-cell-border: var(--focus); --otp-cell-border-width: calc(var(--border-width) * 2); } .otp > input[aria-invalid="true"] ~ span, .needs-validation.was-validated .otp > input:invalid ~ span { --otp-cell-border: var(--danger); } @supports selector(:user-invalid) { .needs-validation .otp > input:user-invalid ~ span { --otp-cell-border: var(--danger); } } .otp > input:disabled { color: var(--state-disabled); cursor: not-allowed; } .otp > input:disabled ~ span { --otp-cell-bg: var(--surface-subtle); opacity: var(--disabled-opacity); } @media (forced-colors: active) { .otp > input:focus ~ span { --otp-cell-border: Highlight; } .otp > input[aria-invalid="true"] ~ span, .needs-validation.was-validated .otp > input:invalid ~ span { --otp-cell-border: Mark; } } :where(.btn) { --intent: initial; --intent-fg: initial; --ui-bg: initial; --ui-fg: initial; --ui-border: initial; --ui-hover-bg: initial; } .btn { --btn-font-size: var(--control-font-size); --btn-min-size: var(--control-size); --btn-pad-x: var(--control-pad-x, 1em); --btn-bg: var(--ui-bg, var(--btn-default-bg, var(--intent, var(--neutral)))); --btn-fg: var(--ui-fg, var(--btn-default-fg, var(--intent-fg, var(--neutral-fg)))); --btn-border: var(--ui-border, var(--btn-default-border, transparent)); --btn-default-hover-bg: var(--btn-bg); --btn-radius: var(--radius); --btn-focus-color: var(--intent, var(--focus)); --btn-hover-overlay: var(--hover-overlay, rgb(0 0 0 / 0.08)); position: relative; display: inline-flex; align-items: center; justify-content: center; gap: var(--btn-gap, 0.375em); min-block-size: var(--btn-min-size); padding-block: var(--space-20); padding-block: max(var(--space-10), calc((var(--btn-min-size) - 1lh) / 2)); padding-inline: var(--btn-pad-x); border: var(--border-width) solid var(--btn-border-color, var(--btn-border)); border-block-end-color: var( --btn-border-block-end-color, var(--btn-border-color, var(--btn-border)) ); border-block-end-width: var(--btn-border-block-end-width, var(--border-width)); border-radius: var(--btn-radius); background: var(--btn-bg); color: var(--btn-fg); font: inherit; font-size: var(--btn-font-size); font-weight: var(--font-weight-medium); line-height: 1; text-decoration: none; cursor: pointer; transition: background-color var(--duration), border-color var(--duration), color var(--duration), box-shadow var(--duration), transform var(--duration); } .btn.icon-only { inline-size: var(--btn-min-size); padding-inline: 0; } @supports (color: color-mix(in oklch, red, white)) { .btn { --btn-focus-ring-color: color-mix(in oklch, var(--btn-focus-color) 28%, transparent); } } .btn.ghost { --ui-bg: transparent; --ui-fg: var(--intent, currentColor); --ui-border: transparent; } .btn.outline, .btn.ghost, .btn.link { --btn-hover-overlay: transparent; } .btn:is(.outline, .ghost) { --ui-hover-bg: transparent; } @supports (color: color-mix(in oklch, red, white)) { .btn { --btn-default-hover-bg: color-mix(in oklch, var(--btn-bg) 88%, black); } .btn.soft { --ui-hover-bg: color-mix( in oklab, var(--surface) calc(var(--soft-bg-mix) - var(--soft-hover-alpha)), var(--intent, var(--neutral)) ); } .btn.outline, .btn.ghost { --ui-hover-bg: color-mix(in oklch, currentColor 10%, transparent); } } .btn:not(:where(:disabled, [aria-disabled="true"])):hover { background: var(--ui-hover-bg, var(--btn-default-hover-bg)); box-shadow: inset 0 0 0 999px var(--btn-hover-overlay); } .btn:not(:where(:disabled, [aria-disabled="true"])):active { transform: translateY(1px); } .btn.link { --ui-bg: transparent; --ui-fg: var(--intent, currentColor); --ui-border: transparent; --btn-radius: var(--radius-sm); --btn-border-block-end-color: transparent; --btn-border-block-end-width: var(--border-width); min-block-size: auto; padding-inline: 0; inline-size: fit-content; max-inline-size: 100%; border-color: transparent; text-decoration: underline; text-underline-offset: 0.18em; } .btn.link:not(:where(:disabled, [aria-disabled="true"])):hover { background: transparent; text-decoration-thickness: 0.12em; } .btn:focus-visible { outline: 2px solid transparent; box-shadow: 0 0 0 var(--focus-ring-width) var(--btn-focus-ring-color, var(--focus-ring)); } .btn.link:focus-visible { outline: var(--focus-outline); outline-offset: 0.2em; box-shadow: none; } .btn:disabled { cursor: not-allowed; opacity: var(--disabled-opacity); } a.btn[aria-disabled="true"] { cursor: not-allowed; opacity: var(--disabled-opacity); pointer-events: none; } .btn[aria-busy="true"]:not(:disabled) { cursor: progress; } .btn[aria-busy="true"] > .spinner { --spinner-width: 0.15em; } .btn:is([aria-pressed="true"], [aria-current="page"]):not(.link) { --btn-bg: var(--intent, var(--state-selected)); --btn-fg: var(--intent-fg, var(--state-selected-fg)); --btn-border: var(--intent, var(--state-selected)); --ui-hover-bg: var(--btn-bg); } @media (forced-colors: active) { .btn { border-color: ButtonText; background: ButtonFace; color: ButtonText; box-shadow: none; } .btn.link { border-color: transparent; background: Canvas; color: LinkText; } .btn:is([aria-pressed="true"], [aria-current="page"]):not(.link) { border-color: Highlight; background: Highlight; color: HighlightText; forced-color-adjust: none; } .btn:is([aria-pressed="true"], [aria-current="page"]):not(.link):focus-visible { outline: var(--focus-outline); box-shadow: none; } .btn:hover:not(:where(:disabled, [aria-disabled="true"], .link)) { outline: var(--border-width) solid ButtonText; outline-offset: 2px; } .btn:disabled, a.btn[aria-disabled="true"] { border-color: GrayText; background: Canvas; color: GrayText; forced-color-adjust: auto; } } @media print { :is(button, input[type="button"], input[type="submit"], input[type="reset"]).btn { display: none !important; } a.btn[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.875em; } } :where(.badge) { --intent: initial; --intent-fg: initial; --ui-bg: initial; --ui-fg: initial; --ui-border: initial; --ui-hover-bg: initial; } .badge { --badge-size: var(--density-compact-size); --badge-pad-x: 0.55em; --badge-font-size: var(--font-size-xs); --badge-dot-size: 0.5rem; --badge-default-bg: var(--surface-subtle); --badge-default-fg: var(--intent, var(--text)); --badge-default-border: var(--border); --badge-default-hover-bg: var(--badge-bg); --badge-bg: var(--ui-bg, var(--badge-default-bg)); --badge-fg: var(--ui-fg, var(--badge-default-fg)); --badge-border: var(--ui-border, var(--badge-default-border)); --badge-radius: var(--radius-full); display: inline-flex; align-items: center; justify-content: center; gap: 0.35em; inline-size: fit-content; max-inline-size: 100%; min-block-size: var(--badge-size); padding-inline: var(--badge-pad-x); border: var(--border-width) solid var(--badge-border); border-radius: var(--badge-radius); background: var(--badge-bg); color: var(--badge-fg); font-size: var(--badge-font-size); font-weight: var(--font-weight-strong); line-height: 1; text-decoration: none; white-space: nowrap; transition: background-color var(--duration), border-color var(--duration), color var(--duration), box-shadow var(--duration); } @supports (color: color-mix(in oklch, red, white)) { .badge { --badge-default-bg: color-mix( in oklab, var(--surface) var(--soft-bg-mix), var(--intent, var(--neutral)) ); --badge-default-border: color-mix( in oklab, var(--surface) var(--soft-border-mix), var(--intent, var(--neutral)) ); --badge-default-fg: color-mix( in oklab, var(--text), var(--intent, var(--text)) var(--soft-fg-mix) ); } } .badge:empty { --badge-size: var(--badge-dot-size); --badge-bg: var(--intent, var(--neutral)); --badge-fg: var(--intent-fg, var(--neutral-fg)); --badge-border: transparent; padding: 0; border: 0; inline-size: var(--badge-size); block-size: var(--badge-size); } .badge > button { display: inline-grid; place-items: center; flex: 0 0 auto; min-inline-size: var(--density-compact-size); min-block-size: var(--density-compact-size); margin-block: -0.25rem; margin-inline-start: -0.15em; margin-inline-end: -0.45em; padding: 0.25rem; border: 0; border-radius: var(--radius-full); background: transparent; color: inherit; font: inherit; line-height: 1; cursor: pointer; } .badge > button:not(:disabled):hover { background: var(--hover-overlay); } :is(a.badge, button.badge).outline { --ui-hover-bg: transparent; } @supports (color: color-mix(in oklch, red, white)) { :is(a.badge, button.badge):is(.solid, :empty) { --ui-hover-bg: color-mix(in oklch, var(--intent, var(--neutral)) 88%, black); } :is(a.badge, button.badge):where(:not(.solid, .outline, :empty)) { --badge-default-hover-bg: color-mix( in oklab, var(--surface) calc(var(--soft-bg-mix) - var(--soft-hover-alpha)), var(--intent, var(--neutral)) ); } :is(a.badge, button.badge).outline { --ui-hover-bg: color-mix(in oklch, currentColor 10%, transparent); } } :where(a.badge, button.badge):not(:where(:disabled, [aria-disabled="true"])):hover { background: var(--ui-hover-bg, var(--badge-default-hover-bg)); } :where(a.badge, button.badge):not(:where(:disabled, [aria-disabled="true"], .outline)):hover { box-shadow: inset 0 0 0 999px var(--hover-overlay); } button.badge { cursor: pointer; } button.badge:disabled, .badge[aria-disabled="true"] { opacity: var(--disabled-opacity); cursor: not-allowed; } a.badge[aria-disabled="true"] { pointer-events: none; } @media (forced-colors: active) { .badge:empty { background: ButtonText; } :where(a.badge, button.badge):hover:not(:where(:disabled, [aria-disabled="true"])) { outline: var(--border-width) solid ButtonText; outline-offset: 2px; } .badge > button:not(:disabled):hover { outline: var(--border-width) solid currentColor; outline-offset: 1px; } button.badge:disabled, .badge[aria-disabled="true"] { border-color: GrayText; background: Canvas; color: GrayText; } } @media print { .badge { border: var(--border-width) solid CanvasText; break-inside: avoid; } } :where(.alert) { --intent: initial; --intent-fg: initial; --ui-bg: initial; --ui-fg: initial; --ui-border: initial; } .alert { --alert-pad-block: var(--space-30); --alert-pad-inline: var(--space-40); --alert-font-size: var(--font-size-md); --alert-icon-size: 1.25rem; --alert-default-bg: var(--surface-subtle); --alert-default-fg: var(--intent, var(--text)); --alert-default-border: var(--border); --alert-bg: var(--ui-bg, var(--alert-default-bg)); --alert-fg: var(--ui-fg, var(--alert-default-fg)); --alert-border: var(--ui-border, var(--alert-default-border)); padding-block: var(--alert-pad-block); padding-inline: var(--alert-pad-inline); background: var(--alert-bg); color: var(--alert-fg); border: var(--border-width) solid var(--alert-border); border-inline-start-color: var(--alert-border-inline-start-color, var(--alert-border)); border-inline-start-width: var(--alert-border-inline-start-width, var(--border-width)); border-radius: var(--alert-radius, var(--radius-lg)); font-size: var(--alert-font-size); } .alert > * { min-inline-size: 0; } .alert > :first-child { margin-block-start: 0; } .alert > :last-child { margin-block-end: 0; } @supports (color: color-mix(in oklch, red, white)) { .alert { --alert-default-bg: color-mix( in oklab, var(--surface) var(--soft-bg-mix), var(--intent, var(--neutral)) ); --alert-default-border: color-mix( in oklab, var(--surface) var(--soft-border-mix), var(--intent, var(--neutral)) ); --alert-default-fg: color-mix( in oklab, var(--text), var(--intent, var(--text)) var(--soft-fg-mix) ); } } .alert > .alert-icon { display: inline-block; flex: none; inline-size: var(--alert-icon-size); block-size: var(--alert-icon-size); font-size: var(--alert-icon-size); line-height: 1; vertical-align: -0.125em; } .alert-dismiss { --alert-dismiss-size: 1.75rem; --alert-dismiss-icon-size: 0.875rem; display: inline-grid; place-items: center; inline-size: var(--alert-dismiss-size); block-size: var(--alert-dismiss-size); flex: none; padding: 0; border: 0; border-radius: var(--radius); background: transparent; color: currentColor; opacity: 0.65; cursor: pointer; } .alert-dismiss::before { content: ""; inline-size: var(--alert-dismiss-icon-size); block-size: var(--alert-dismiss-icon-size); background: currentColor; -webkit-mask: var(--icon-close) center / contain no-repeat; mask: var(--icon-close) center / contain no-repeat; } @media (hover: hover) { .alert-dismiss:hover { background: var(--hover-overlay); opacity: 1; } } @supports selector(.alert:has(> *)) { .alert:has(> .alert-icon, > .alert-dismiss) { display: grid; grid-template-columns: minmax(0, 1fr); align-items: var(--items-align, start); column-gap: var(--space-30); } .alert:has(> .alert-icon) { grid-template-columns: auto minmax(0, 1fr); } .alert:has(> .alert-icon) > .alert-icon { grid-column: 1; grid-row: 1 / -1; display: inline-grid; place-items: center; margin-block-start: 0.125em; } .alert:has(> .alert-icon) > :not(.alert-icon, .alert-dismiss) { grid-column: 2; } .alert:has(> .alert-dismiss) { grid-template-columns: minmax(0, 1fr) auto; } .alert:has(> .alert-icon):has(> .alert-dismiss) { grid-template-columns: auto minmax(0, 1fr) auto; } .alert:has(> .alert-dismiss) > .alert-dismiss { grid-column: -2 / -1; grid-row: 1; } } .alert :where(a:not(.btn)) { color: inherit; font-weight: var(--font-weight-strong); } .alert.callout { --alert-bg: var(--surface-subtle); --alert-fg: var(--text); border: 0; border-inline-start: var(--alert-border-inline-start-width, 4px) solid var(--alert-border-inline-start-color, var(--intent, var(--neutral))); } .alert.admonition { padding: 0; display: block; overflow: clip; border-color: var(--intent, var(--border)); } .alert.admonition > .alert-title { display: flex; align-items: center; gap: var(--space-20); padding-block: var(--alert-pad-block); padding-inline: var(--alert-pad-inline); border-start-start-radius: calc(var(--alert-radius, var(--radius-lg)) - var(--border-width)); border-start-end-radius: calc(var(--alert-radius, var(--radius-lg)) - var(--border-width)); } .alert.admonition > .alert-title > .alert-dismiss { margin-inline-start: auto; } @supports (color: color-mix(in oklch, red, white)) { .alert.admonition > .alert-title { background: color-mix( in oklab, var(--surface) var(--soft-bg-mix), var(--intent, var(--neutral)) ); } } @supports not (color: color-mix(in oklch, red, white)) { .alert.admonition > .alert-title { background: var(--intent, var(--neutral)); color: var(--intent-fg, var(--neutral-fg)); } } .alert.admonition > .alert-body { padding-block: var(--alert-pad-block); padding-inline: var(--alert-pad-inline); background: var(--surface); color: var(--text); } .alert.admonition > .alert-body > :first-child { margin-block-start: 0; } .alert.admonition > .alert-body > :last-child { margin-block-end: 0; } @media print { .alert { border: var(--border-width) solid CanvasText; break-inside: avoid; } } .actions { --gap: var(--space-20); display: flex; flex-wrap: wrap; align-items: center; gap: var(--gap); margin: 0; padding: 0; list-style: none; } .actions > li { margin: 0; } :where(.card) { --ui-bg: initial; --ui-fg: initial; --ui-border: initial; } .card { --card-pad: var(--space-40); --card-radius: var(--radius-lg); --card-max-inline-size: none; --card-bg: var(--ui-bg, var(--surface-raised)); --card-fg: var(--ui-fg, var(--text)); --heading: var(--card-fg); --busy-overlay-bg: var(--card-bg); max-inline-size: var(--card-max-inline-size); padding: var(--card-pad); background: var(--card-bg); color: var(--card-fg); border: var(--border-width) solid var(--ui-border, var(--border)); border-radius: var(--card-radius); } :where(.card) { display: flex; flex-direction: column; } .card > * { min-inline-size: 0; } .card > :where(header, footer) { display: flex; flex-wrap: wrap; align-items: var(--items-align, center); justify-content: space-between; gap: var(--space-30); min-inline-size: 0; } .card > :where(header, footer) > * { min-inline-size: 0; margin-block: 0; } .card > header { align-items: var(--items-align, flex-start); } .card > footer { margin-block-start: auto; } .card > :first-child { margin-block-start: 0; } .card > :last-child { margin-block-end: 0; } .card.raised { box-shadow: var(--shadow); } .card.subtle { background: var(--surface-subtle); } .card.compact { --card-pad: var(--space-20); } .card > .bleed { margin-inline: calc(var(--card-pad) * -1); max-inline-size: none; } .card > .bleed:first-child { margin-block-start: calc(var(--card-pad) * -1); border-start-start-radius: inherit; border-start-end-radius: inherit; } .card > .bleed:last-child { margin-block-end: calc(var(--card-pad) * -1); border-end-start-radius: inherit; border-end-end-radius: inherit; } .card > :where(img, picture, video, canvas, svg).bleed { display: block; inline-size: calc(100% + var(--card-pad) * 2); max-inline-size: none; } .card > picture.bleed { overflow: hidden; } .card > picture.bleed > img { display: block; inline-size: 100%; block-size: auto; } .card > :where(header, footer, figure).bleed { padding: var(--card-pad); } @media print { .card { border: var(--border-width) solid CanvasText; break-inside: avoid; } } .surface-backdrop { position: fixed; inset: 0; z-index: calc(var(--z-menu) - 1); background: var(--backdrop-fill); opacity: 1; transition: opacity var(--duration) var(--ease); } .surface-backdrop[hidden] { display: none; opacity: 0; } @starting-style { .surface-backdrop:not([hidden]) { opacity: 0; } } @supports (transition-behavior: allow-discrete) { .surface-backdrop { transition: opacity var(--duration) var(--ease), display var(--duration) allow-discrete; } } @media print { .surface-backdrop { display: none !important; } } dialog.modal { --modal-size: 32rem; --dialog-viewport-gap: var(--space-40); --dialog-viewport-gap-2x: calc(var(--dialog-viewport-gap) + var(--dialog-viewport-gap)); position: fixed; max-inline-size: min(calc(100% - var(--dialog-viewport-gap-2x)), var(--modal-size)); max-block-size: calc(var(--viewport-block) - var(--dialog-viewport-gap-2x)); border: var(--border-width) solid var(--border); border-radius: var(--radius-lg); background: var(--surface-raised); color: var(--text); box-shadow: var(--shadow); padding: 0; overflow: visible; opacity: 0; transform: translateY(0.35rem) scale(0.98); transition: opacity var(--duration), transform var(--duration); } dialog.modal > form, dialog.modal > .stack { display: grid; gap: var(--space-40); max-block-size: calc(var(--viewport-block) - var(--dialog-viewport-gap-2x)); overflow: auto; overscroll-behavior: contain; padding: var(--space-40); } @media (max-width: 30rem) { dialog.modal { --dialog-viewport-gap: var(--space-30); } } dialog.modal.scrollable > form, dialog.modal.scrollable > .stack { grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; } dialog.modal.scrollable > form > :not(header, footer), dialog.modal.scrollable > .stack > :not(header, footer) { min-block-size: 0; overflow: auto; overscroll-behavior: contain; } dialog.modal header > :first-child, dialog.modal footer > :first-child { margin-block-start: 0; } dialog.modal header > :last-child, dialog.modal footer > :last-child { margin-block-end: 0; } dialog.modal > form > header, dialog.modal > .stack > header { padding-inline-end: calc(var(--control-size) + var(--space-30)); } dialog.modal footer { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--gap); } dialog.modal.dialog-confirmation > form { gap: 0; padding: 0; } dialog.modal.dialog-confirmation > form > .media { gap: var(--space-40); padding: var(--space-50); } dialog.modal.dialog-confirmation > form > footer { padding: var(--space-40) var(--space-50); border-end-start-radius: calc(var(--radius-lg) - var(--border-width)); border-end-end-radius: calc(var(--radius-lg) - var(--border-width)); background: var(--surface-subtle); } :where(.dialog-icon) { --intent: initial; --intent-fg: initial; --ui-bg: initial; --ui-fg: initial; } .dialog-icon { --dialog-icon-size: 3rem; --dialog-icon-glyph-size: 1.5rem; display: inline-grid; place-items: center; inline-size: var(--dialog-icon-size); block-size: var(--dialog-icon-size); flex: none; border-radius: var(--radius-full); background: var(--ui-bg, var(--surface-subtle)); color: var(--ui-fg, var(--intent, var(--text-muted))); } .dialog-icon > * { display: inline-grid; place-items: center; inline-size: var(--dialog-icon-glyph-size); block-size: var(--dialog-icon-glyph-size); font-size: var(--dialog-icon-glyph-size); line-height: 1; } @media (max-width: 30rem) { dialog.modal.dialog-confirmation > form > .media, dialog.modal.dialog-confirmation > form > footer { padding: var(--space-40); } } dialog.modal[open] { opacity: 1; transform: none; } @starting-style { dialog.modal[open] { opacity: 0; transform: translateY(0.35rem) scale(0.98); } } dialog.modal::backdrop { background: var(--backdrop-fill); opacity: 0; transition: opacity var(--duration); } @supports (transition-behavior: allow-discrete) { dialog.modal { transition: opacity var(--duration), transform var(--duration), overlay var(--duration) allow-discrete, display var(--duration) allow-discrete; } dialog.modal::backdrop { transition: opacity var(--duration), overlay var(--duration) allow-discrete, display var(--duration) allow-discrete; } } dialog.modal[open]::backdrop { opacity: 1; } html.has-modal-open { overflow: hidden; } html.has-modal-open.had-scrollbar { scrollbar-gutter: stable; } @starting-style { dialog.modal[open]::backdrop { opacity: 0; } } @media (prefers-reduced-motion: no-preference) { dialog.modal.is-static { animation: actual-dialog-static var(--duration-slow) var(--ease); } ::view-transition-group(actual-dialog) { animation-duration: var(--duration); animation-timing-function: var(--ease); } } @keyframes actual-dialog-static { 0%, 100% { transform: none; } 35% { transform: translateX(-0.35rem); } 70% { transform: translateX(0.35rem); } } @media (forced-colors: active) { dialog.modal { border-color: ButtonText; background: Canvas; color: CanvasText; box-shadow: none; } dialog.modal::backdrop { background: Canvas; } .dialog-icon { border: var(--border-width) solid CanvasText; } } .dialog-close, .drawer-close { --dialog-close-icon-size: 1rem; display: inline-grid; place-items: center; padding: 0; border: 0; border-radius: var(--radius); color: var(--text-muted); cursor: pointer; position: absolute; z-index: 1; inset-block-start: var(--space-20); inset-inline-end: var(--space-20); inline-size: var(--control-size); block-size: var(--control-size); background: var(--surface-subtle); } .dialog-close::before, .drawer-close::before { content: ""; inline-size: var(--dialog-close-icon-size); block-size: var(--dialog-close-icon-size); background: currentColor; -webkit-mask: var(--icon-close) center / contain no-repeat; mask: var(--icon-close) center / contain no-repeat; } @media (hover: hover) { .dialog-close:hover, .drawer-close:hover { box-shadow: inset 0 0 0 999px var(--hover-overlay); color: var(--text); } } .dialog-close:active, .drawer-close:active { box-shadow: inset 0 0 0 999px var(--hover-overlay); } .dialog-close:focus-visible, .drawer-close:focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-ring-shadow); } @media print { dialog.modal[open] { display: none !important; } } dialog.drawer { --drawer-size: 20rem; --drawer-pad: var(--space-40); --drawer-closed-translate: -100%; position: fixed; inset-block-start: 0; inline-size: min(calc(var(--viewport-inline) * 0.9), var(--drawer-size)); block-size: 100%; max-inline-size: none; max-block-size: 100%; margin: 0; padding: var(--drawer-pad); border: 0; border-inline-end: var(--border-width) solid var(--border); border-radius: 0; background: var(--surface-raised); color: var(--text); box-shadow: var(--shadow); opacity: 0; transform: translateX(var(--drawer-closed-translate)); transition: opacity var(--duration-slow), transform var(--duration-slow); } dialog.drawer[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: var(--space-40); opacity: 1; transform: translateX(0); } dialog.drawer::backdrop { background: var(--backdrop-fill); opacity: 0; transition: opacity var(--duration-slow); } dialog.drawer[data-side="end"] { --drawer-closed-translate: 100%; margin-inline-start: auto; margin-inline-end: 0; border-inline-end: 0; border-inline-start: var(--border-width) solid var(--border); } dialog.drawer[open]::backdrop { opacity: 1; } @starting-style { dialog.drawer[open] { opacity: 0; transform: translateX(var(--drawer-closed-translate)); } dialog.drawer[open]::backdrop { opacity: 0; } } dialog.drawer nav { min-block-size: 0; overflow-y: auto; } @supports (transition-behavior: allow-discrete) { dialog.drawer { transition: opacity var(--duration-slow), transform var(--duration-slow), overlay var(--duration-slow) allow-discrete, display var(--duration-slow) allow-discrete; } dialog.drawer::backdrop { transition: opacity var(--duration-slow), overlay var(--duration-slow) allow-discrete, display var(--duration-slow) allow-discrete; } } [dir="rtl"] dialog.drawer { --drawer-closed-translate: 100%; } [dir="rtl"] dialog.drawer[data-side="end"] { --drawer-closed-translate: -100%; } @supports selector(:dir(rtl)) { dialog.drawer:dir(ltr) { --drawer-closed-translate: -100%; } dialog.drawer[data-side="end"]:dir(ltr) { --drawer-closed-translate: 100%; } dialog.drawer:dir(rtl) { --drawer-closed-translate: 100%; } dialog.drawer[data-side="end"]:dir(rtl) { --drawer-closed-translate: -100%; } } @media (forced-colors: active) { dialog.drawer::backdrop { background: Canvas; } } @media (prefers-reduced-motion: no-preference) { dialog.drawer.is-static { animation: actual-dialog-static var(--duration-slow) var(--ease); } } dialog.drawer > header, dialog.drawer > form > header { padding-inline-end: calc(var(--control-size) + var(--space-30)); } @media print { dialog.drawer[open] { display: none !important; } } .flyout-trigger { position: relative; display: inline-block; } .flyout-trigger.stretch { display: block; inline-size: 100%; } .flyout-trigger.stretch > [aria-haspopup="menu"] { inline-size: 100%; } .flyout { --menu-item-size: var(--control-size); z-index: var(--z-menu); position: absolute; inset-block-start: calc(100% + var(--space-10)); inset-inline-start: 0; display: grid; gap: var(--space-10); inline-size: var(--flyout-inline-size, max-content); min-inline-size: min( var(--surface-anchor-width, 0px), min(var(--flyout-max-inline-size, 20rem), calc(var(--viewport-inline) - var(--space-60))) ); max-inline-size: min( var(--flyout-max-inline-size, 20rem), calc(var(--viewport-inline) - var(--space-60)) ); max-block-size: min( 24rem, var(--available-height, calc(var(--viewport-block) - var(--space-60))) ); overflow: auto; margin: 0; padding: var(--space-10); border: var(--border-width) solid var(--border); border-radius: var(--radius); background: var(--surface-raised); box-shadow: var(--shadow-popout); list-style: none; opacity: 1; scale: 1; transition: opacity var(--duration-fast) var(--ease), scale var(--duration-fast) var(--ease), translate var(--duration-fast) var(--ease); } .flyout.is-open:not(.is-sheet) { inset: auto; } @starting-style { .flyout.is-open { opacity: 0; scale: 0.98; } } .flyout.is-sheet { --menu-item-size: var(--control-size-lg); position: fixed; inset-inline: 0; inset-block-start: auto; inset-block-end: 0; inline-size: auto; min-inline-size: 0; max-inline-size: none; max-block-size: min(calc(var(--viewport-block) * 0.75), 32rem); overflow: auto; grid-template-columns: 1fr; padding: max(var(--space-30), env(safe-area-inset-top)) var(--space-30) max(var(--space-30), env(safe-area-inset-bottom)); border-end-start-radius: 0; border-end-end-radius: 0; } .flyout[hidden] { display: none; opacity: 0; scale: 0.98; } .flyout.is-sheet[hidden] { scale: 1; translate: 0 var(--space-30); } @starting-style { .flyout.is-sheet.is-open { scale: 1; translate: 0 var(--space-30); } } @supports (transition-behavior: allow-discrete) { .flyout { transition: opacity var(--duration-fast) var(--ease), scale var(--duration-fast) var(--ease), translate var(--duration-fast) var(--ease), display var(--duration-fast) allow-discrete; } } .flyout > li { margin: 0; } .flyout > :where(section, footer) { min-inline-size: 0; padding: var(--space-20); } .flyout > section > :where(h1, h2, h3, h4, h5, h6) { margin: 0; color: var(--text-muted); font-size: var(--font-size-xs); font-weight: var(--font-weight-strong); } .flyout > section > ul { display: grid; gap: var(--space-10); margin: var(--space-10) 0 0; padding: 0; list-style: none; } .flyout > section > ul > li { margin: 0; } @media print { .flyout { display: none !important; } } .menu { display: grid; gap: var(--space-10); margin: 0; padding: var(--space-10); list-style: none; } .menu > li { margin: 0; } :where(.menu-item) { --intent: initial; --intent-fg: initial; } .menu-item { --menu-item-icon-size: 1.25em; display: flex; align-items: center; gap: var(--space-20); inline-size: 100%; min-block-size: var(--menu-item-size, var(--control-size)); padding-inline: var(--space-20); border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--intent, var(--text)); font: inherit; text-align: start; text-decoration: none; white-space: nowrap; cursor: pointer; } .menu-item-icon { display: grid; flex: 0 0 var(--menu-item-icon-size); inline-size: var(--menu-item-icon-size); place-items: center; } .menu-item-text { flex: 1; min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; } .menu-item-end { display: inline-flex; align-items: center; gap: var(--space-10); margin-inline-start: auto; color: var(--text-muted); } .menu-item:is([role="menuitemcheckbox"], [role="menuitemradio"])::before { display: grid; flex: 0 0 var(--menu-item-icon-size); inline-size: var(--menu-item-icon-size); place-items: center; } .menu-item[role="menuitemcheckbox"]::before { content: ""; } .menu-item[role="menuitemcheckbox"][aria-checked="true"]::before { content: "✓"; } .menu-item[role="menuitemcheckbox"][aria-checked="mixed"]::before { content: "−"; } .menu-item[role="menuitemradio"]::before { content: "○"; } .menu-item[role="menuitemradio"][aria-checked="true"]::before { content: "●"; } .menu-item:focus-visible { background: var(--surface-subtle); } .menu-item:hover:not(:where(:disabled, [aria-disabled="true"])) { background: var(--surface-subtle); } .menu-item:is(:disabled, [aria-disabled="true"]) { cursor: not-allowed; opacity: var(--disabled-opacity); } .menu-label { padding: var(--space-20); color: var(--text-muted); font-size: var(--font-size-xs); font-weight: var(--font-weight-strong); } .menu-separator { margin: 0; border: 0; border-block-start: var(--border-width) solid var(--border); } @media (forced-colors: active) { .menu-item:focus-visible { outline: var(--border-width) solid ButtonText; outline-offset: -1px; } } .tooltip { --tooltip-bg: var(--surface-solid); --tooltip-fg: var(--surface); --tooltip-arrow-size: 5px; position: fixed; z-index: var(--z-tooltip); max-inline-size: min(24rem, calc(var(--viewport-inline) - 2rem)); padding: 0.25em 0.6em; border-radius: var(--radius-sm); background: var(--tooltip-bg); color: var(--tooltip-fg); font-size: var(--font-size-xs); line-height: var(--line-height-tight); overflow-wrap: anywhere; pointer-events: auto; user-select: none; opacity: 1; scale: 1; transition: opacity var(--duration-fast) var(--ease), scale var(--duration-fast) var(--ease); } .tooltip[hidden] { display: none; opacity: 0; scale: 0.96; } @starting-style { .tooltip:not([hidden]) { opacity: 0; scale: 0.96; } } @supports (transition-behavior: allow-discrete) { .tooltip { transition: opacity var(--duration-fast) var(--ease), scale var(--duration-fast) var(--ease), display var(--duration-fast) allow-discrete; } } .tooltip::before { content: ""; position: absolute; inline-size: calc(var(--tooltip-arrow-size) * 2); block-size: var(--tooltip-arrow-size); background: var(--tooltip-bg); } .tooltip[data-placement^="top"]::before { bottom: calc(-0.98 * var(--tooltip-arrow-size)); left: var(--arrow-x, 50%); translate: -50% 0; clip-path: polygon(50% 100%, 0 0, 100% 0); } .tooltip[data-placement^="bottom"]::before { top: calc(-0.98 * var(--tooltip-arrow-size)); left: var(--arrow-x, 50%); translate: -50% 0; clip-path: polygon(50% 0, 0 100%, 100% 100%); } .tooltip[data-placement^="left"]::before { right: calc(-0.98 * var(--tooltip-arrow-size)); top: var(--arrow-y, 50%); inline-size: var(--tooltip-arrow-size); block-size: calc(var(--tooltip-arrow-size) * 2); translate: 0 -50%; clip-path: polygon(100% 50%, 0 0, 0 100%); } .tooltip[data-placement^="right"]::before { left: calc(-0.98 * var(--tooltip-arrow-size)); top: var(--arrow-y, 50%); inline-size: var(--tooltip-arrow-size); block-size: calc(var(--tooltip-arrow-size) * 2); translate: 0 -50%; clip-path: polygon(0 50%, 100% 0, 100% 100%); } @media (forced-colors: active) { .tooltip { --tooltip-bg: Canvas; --tooltip-fg: CanvasText; } .tooltip::before { display: none; } } @media print { .tooltip { display: none !important; } } .accordion { --accordion-radius: var(--radius); --accordion-marker-color: var(--text-muted); border: var(--border-width) solid var(--border); border-radius: var(--accordion-radius); background: var(--surface-raised); } .accordion > details + details { border-block-start: var(--border-width) solid var(--border); } .accordion summary { display: flex; align-items: center; gap: var(--space-30); cursor: pointer; list-style: none; padding: var(--space-40); color: var(--text); font-weight: var(--font-weight-bold); } .accordion summary:hover { color: var(--primary); } .accordion summary::-webkit-details-marker { display: none; } .accordion summary::after { content: ""; flex: 0 0 auto; margin-inline-start: auto; inline-size: 1rem; block-size: 1rem; background-color: var(--accordion-marker-color); -webkit-mask: var(--icon-chevron) center / contain no-repeat; mask: var(--icon-chevron) center / contain no-repeat; transition: transform var(--duration); } .accordion details[open] summary::after { transform: rotate(180deg); } .accordion details > summary + * { padding-block: 0 var(--space-40); padding-inline: var(--space-40); color: var(--text-muted); margin-block: 0; } .accordion details[open] > summary + * { padding-block-start: var(--space-10); } .accordion details > summary + * > :first-child { margin-block-start: 0; } .accordion details > summary + ul, .accordion details > summary + ol { margin: 0; padding-inline-start: 2rem; } @media (forced-colors: active) { .accordion { --accordion-marker-color: CanvasText; } } :where(.spinner) { --intent: initial; } .spinner { --spinner-size: 1em; --spinner-width: 0.125em; --spinner-track: currentColor; --spinner-value: transparent; color: var(--intent, currentColor); display: inline-block; flex-shrink: 0; inline-size: var(--spinner-size); block-size: var(--spinner-size); border: var(--spinner-width) solid var(--spinner-track); border-inline-end-color: var(--spinner-value); border-radius: var(--radius-full); opacity: 0.85; animation: actual-spin var(--duration-spin) linear infinite; vertical-align: text-bottom; } @supports (color: color-mix(in oklch, red, white)) { .spinner { --spinner-track: color-mix(in oklch, currentColor, transparent 70%); --spinner-value: currentColor; opacity: 1; } } .spinner.sm { --spinner-size: 0.75em; } .spinner.lg { --spinner-size: 2rem; --spinner-width: 3px; } @keyframes actual-spin { to { transform: rotate(360deg); } } @media print { .spinner { display: none !important; } } .skeleton { --skeleton-size: 1rem; --skeleton-width: 100%; --skeleton-radius: var(--radius); --skeleton-track: var(--surface-subtle); --skeleton-highlight: var(--surface-raised); display: block; inline-size: var(--skeleton-width); max-inline-size: 100%; block-size: var(--skeleton-size); border-radius: var(--skeleton-radius); background: linear-gradient(90deg, var(--skeleton-track), var(--skeleton-highlight), var(--skeleton-track)) 0 0 / 200% 100%; } @media (prefers-reduced-motion: no-preference) { .skeleton { animation: actual-skeleton var(--duration-shimmer) ease-in-out infinite; } } .skeleton[data-shape="text"] { --skeleton-size: 0.85rem; --skeleton-width: 32rem; } .skeleton[data-shape="title"] { --skeleton-size: 1.4rem; --skeleton-width: 18rem; } .skeleton[data-shape="avatar"] { --skeleton-size: var(--avatar-size, 2.25rem); --skeleton-width: var(--skeleton-size); --skeleton-radius: var(--radius-full); flex: 0 0 auto; } .skeleton[data-shape="box"] { --skeleton-size: 8rem; } @media (forced-colors: active) { .skeleton { border: var(--border-width) solid ButtonText; background: GrayText; } } @keyframes actual-skeleton { from { background-position: 200% 0; } to { background-position: -200% 0; } } [aria-busy] > .spinner:last-child { display: none; } [aria-busy="true"] > .spinner:last-child { display: inline-block; } @supports selector([aria-busy="true"]:has(> .spinner:last-child)) { [aria-busy="true"]:not(.btn):has(> .spinner:last-child) { position: relative; } [aria-busy="true"]:not(.btn):has(> .spinner:last-child)::before { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; background: var(--busy-overlay-bg, var(--surface)); } [aria-busy="true"]:not(.btn) > .spinner:last-child { --spinner-size: 2rem; position: absolute; inset: 0; z-index: 2; margin: auto; display: block; } } @supports (selector([aria-busy="true"]:has(> .spinner:last-child))) and (color: color-mix(in oklch, red, white)) { [aria-busy="true"]:not(.btn):has(> .spinner:last-child)::before { background: color-mix(in oklch, var(--busy-overlay-bg, var(--surface)), transparent 20%); } } :where(.progress) { --intent: initial; } .progress { --progress-track: var(--surface-subtle); --progress-value: var(--intent, var(--primary)); appearance: none; -webkit-appearance: none; display: block; inline-size: 100%; block-size: var(--bar-height); overflow: hidden; border: 0; border-radius: var(--radius-full); background: var(--progress-track); } .progress::-webkit-progress-bar { block-size: var(--bar-height); border-radius: var(--radius-full); background: var(--progress-track); } .progress::-webkit-progress-value { block-size: var(--bar-height); border-radius: var(--radius-full); background: var(--progress-value); } .progress::-moz-progress-bar { block-size: var(--bar-height); border-radius: var(--radius-full); background: var(--progress-value); } .progress:indeterminate { background: linear-gradient(to right, var(--progress-value) 30%, var(--progress-track) 30%) top left / 150% 150% no-repeat, var(--progress-track); } .progress:indeterminate::-webkit-progress-bar { background: transparent; } .progress:indeterminate::-webkit-progress-value { background: transparent; } .progress:indeterminate::-moz-progress-bar { background: transparent; } @media (prefers-reduced-motion: no-preference) { .progress:indeterminate { animation: actual-progress-indeterminate var(--duration-shimmer) ease-in-out infinite; } :where([dir="rtl"] .progress:indeterminate) { animation-direction: reverse; } } @keyframes actual-progress-indeterminate { 0% { background-position: 200% 0; } 20% { background-position: 100% 0; } 80% { background-position: -100% 0; } 100% { background-position: -200% 0; } } @media (forced-colors: active) { .progress::-webkit-progress-value, .progress:indeterminate::-webkit-progress-value { background: Highlight; } .progress::-moz-progress-bar, .progress:indeterminate::-moz-progress-bar { background: Highlight; } } :where(.status-bar) { --intent: initial; --intent-fg: initial; } .status-bar { --status-bg: var(--intent, var(--text)); --status-fg: var(--intent-fg, var(--surface)); position: fixed; inset-block-end: var(--space-40); inset-inline: var(--space-40); z-index: var(--z-status); display: inline-flex; align-items: center; justify-content: center; gap: var(--space-20); inline-size: fit-content; max-inline-size: min(calc(var(--viewport-inline) - var(--space-60)), 32rem); margin-inline: auto; overflow-wrap: anywhere; padding-block: var(--space-20); padding-inline: var(--space-30); border-radius: var(--radius-full); background: var(--status-bg); color: var(--status-fg); box-shadow: var(--shadow-popout); opacity: 1; scale: 1; translate: 0 0; pointer-events: none; transition: opacity var(--duration-slow) var(--ease), scale var(--duration-slow) var(--ease), translate var(--duration-slow) var(--ease); } .status-bar:empty { opacity: 0; scale: 0.96; translate: 0 var(--space-20); pointer-events: none; } @media print { .status-bar { display: none !important; } } :where(.avatar) { --intent: initial; --intent-fg: initial; } .avatar { --avatar-size: var(--avatar-stack-size, 2.25rem); --avatar-radius: var(--radius-full); --avatar-font-size: var(--avatar-stack-font-size, var(--font-size-sm)); --avatar-bg: var(--intent, var(--surface-subtle)); --avatar-fg: var(--intent-fg, var(--tone-fg, var(--text-muted))); position: relative; display: inline-grid; place-items: center; inline-size: var(--avatar-size); block-size: var(--avatar-size); overflow: visible; padding: 0; border: 0; border-radius: var(--avatar-radius); background: var(--avatar-bg); color: var(--avatar-fg); font: inherit; font-size: var(--avatar-font-size); font-weight: var(--font-weight-strong); line-height: 1; text-decoration: none; vertical-align: middle; user-select: none; transition: box-shadow var(--duration), opacity var(--duration), transform var(--duration); } @media (forced-colors: active) { .avatar { border: var(--border-width) solid CanvasText; } :where(a.avatar, button.avatar)::after { display: none; } } .avatar > :first-child:not(:where(img, picture, .badge)) { display: inline-grid; place-items: center; inline-size: 100%; block-size: 100%; overflow: hidden; border-radius: inherit; } .avatar > img, .avatar > picture { display: block; inline-size: 100%; block-size: 100%; overflow: hidden; border-radius: inherit; } .avatar > img, .avatar > picture > img { inline-size: 100%; block-size: 100%; object-fit: cover; border-radius: inherit; } .avatar > picture > img { display: block; } button.avatar { appearance: none; cursor: pointer; } :where(a.avatar, button.avatar)::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: var(--hover-overlay); opacity: 0; pointer-events: none; transition: opacity var(--duration); } :where(a.avatar, button.avatar):not(:where(:disabled, [aria-disabled="true"])):hover::after { opacity: 1; } :where(a.avatar, button.avatar):not(:where(:disabled, [aria-disabled="true"])):active { transform: translateY(1px); } button.avatar:disabled, a.avatar[aria-disabled="true"] { cursor: not-allowed; opacity: var(--disabled-opacity); } a.avatar[aria-disabled="true"] { pointer-events: none; } .avatar.sm { --avatar-stack-size: 1.75rem; --avatar-stack-font-size: var(--font-size-xs); } .avatar.lg { --avatar-stack-size: 3rem; --avatar-stack-font-size: var(--font-size-lg); } .avatar > .badge:empty { --avatar-status-translate-x: 50%; position: absolute; inset-block-end: var(--indicator-offset); inset-inline-end: var(--indicator-offset); z-index: 1; box-shadow: 0 0 0 2px var(--indicator-ring); transform: translate(var(--avatar-status-translate-x), 50%); } .avatar:dir(rtl) > .badge:empty { --avatar-status-translate-x: -50%; } .avatar-stack { --avatar-stack-overlap: calc(var(--avatar-stack-size, 2.25rem) / -4); --avatar-stack-ring: 2px; display: inline-flex; align-items: center; } .avatar-stack.sm { --avatar-stack-size: 1.75rem; --avatar-stack-font-size: var(--font-size-xs); } .avatar-stack.lg { --avatar-stack-size: 3rem; --avatar-stack-font-size: var(--font-size-lg); } @supports selector(:has(> .avatar)) { .avatar-stack:has(> .avatar.sm) { --avatar-stack-size: 1.75rem; --avatar-stack-font-size: var(--font-size-xs); } .avatar-stack:has(> .avatar.lg) { --avatar-stack-size: 3rem; --avatar-stack-font-size: var(--font-size-lg); } } .avatar-stack > .avatar { box-shadow: 0 0 0 var(--avatar-stack-ring) var(--surface); } .avatar-stack > .avatar + .avatar { margin-inline-start: var(--avatar-stack-overlap); } .avatar-stack > .avatar:is(:hover, :focus-visible) { z-index: 1; } .key { display: inline-flex; align-items: center; justify-content: center; min-inline-size: 1.75em; min-block-size: 1.6em; padding-inline: 0.45em; border: var(--border-width) solid var(--border); border-block-end-width: calc(var(--border-width) * 2); border-radius: var(--radius-sm); background: var(--surface-raised); color: var(--text); font-family: var(--font-mono); font-size: 0.875em; font-weight: var(--font-weight-medium); line-height: 1; white-space: nowrap; vertical-align: 0.08em; } .chat { --chat-gap: var(--space-30); --chat-max-size: min(85%, 40rem); display: grid; grid-auto-rows: min-content; column-gap: var(--chat-gap); } .chat-start { grid-template-columns: auto minmax(0, 1fr); justify-items: start; } .chat-end { grid-template-columns: minmax(0, 1fr) auto; justify-items: end; } .chat-avatar { grid-row: 1 / span 3; align-self: end; } .chat-start > .chat-avatar { grid-column: 1; } .chat-end > .chat-avatar { grid-column: 2; } .chat-header, .chat-footer { display: flex; gap: var(--space-10); color: var(--text-muted); font-size: var(--font-size-xs); } .chat-start > :is(.chat-header, .chat-bubble, .chat-footer) { grid-column: 2; } .chat-end > :is(.chat-header, .chat-bubble, .chat-footer) { grid-column: 1; } :where(.chat-bubble) { --intent: initial; --intent-fg: initial; --ui-bg: initial; --ui-fg: initial; --ui-border: initial; } .chat-bubble { --chat-bubble-bg: var(--ui-bg, var(--intent, var(--surface-subtle))); --chat-bubble-fg: var(--ui-fg, var(--intent-fg, var(--text))); --chat-bubble-border: var(--ui-border, transparent); inline-size: fit-content; max-inline-size: var(--chat-max-size); padding: var(--space-20) var(--space-30); border: var(--border-width) solid var(--chat-bubble-border); border-radius: var(--radius-lg); background: var(--chat-bubble-bg); color: var(--chat-bubble-fg); overflow-wrap: anywhere; } .chat-start > .chat-bubble { border-end-start-radius: var(--radius-sm); } .chat-end > .chat-bubble { border-end-end-radius: var(--radius-sm); } @supports selector(:has(*)) { .chat:not(:has(> .chat-avatar)) { column-gap: 0; } } @media (forced-colors: active) { .chat-bubble { border-color: CanvasText; } } .fab { --fab-offset: var(--space-40); --fab-gap: var(--space-20); position: fixed; z-index: var(--z-menu); inset-block-end: max(var(--fab-offset), env(safe-area-inset-bottom)); inset-inline-end: var(--fab-offset); } .fab > summary { list-style: none; cursor: pointer; } .fab > summary::-webkit-details-marker { display: none; } .fab > summary > [aria-hidden="true"]:only-child { display: inline-block; transition: transform var(--duration); } .fab-actions { position: absolute; inset-inline-end: 0; inset-block-end: calc(100% + var(--fab-gap)); display: flex; flex-direction: column; align-items: flex-end; gap: var(--fab-gap); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(var(--space-10)); transition: opacity var(--duration), transform var(--duration), visibility 0s linear var(--duration); } .fab-action { display: flex; align-items: center; justify-content: flex-end; gap: var(--fab-gap); inline-size: max-content; max-inline-size: calc(var(--viewport-inline) - var(--fab-offset) - var(--fab-offset)); } .fab-label { flex: 0 1 auto; overflow: hidden; max-inline-size: 16rem; padding: var(--space-10) var(--space-20); border-radius: var(--radius); background: var(--surface); color: var(--text); box-shadow: var(--shadow); font-size: var(--font-size-xs); font-weight: var(--font-weight-medium); line-height: var(--line-height-tight); text-overflow: ellipsis; white-space: nowrap; } .fab[open] > .fab-actions { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); transition-delay: 0s; } .fab[open] > summary > [aria-hidden="true"]:only-child { transform: rotate(45deg); } @media (forced-colors: active) { .fab-label { border: var(--border-width) solid CanvasText; box-shadow: none; } } @media print { .fab { display: none; } } :where(.navbar) { --ui-bg: initial; --ui-fg: initial; --ui-border: initial; } .navbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--gap); padding-block: var(--space-30); padding-inline: var(--space-40); border: var(--border-width) solid var(--ui-border, var(--border)); border-radius: var(--radius-lg); background: var(--ui-bg, var(--surface-raised)); color: var(--ui-fg, var(--text)); } .navbar-brand { display: inline-flex; align-items: center; gap: var(--space-20); color: var(--ui-fg, var(--text)); font-weight: var(--font-weight-bold); text-decoration: none; } .navbar-brand:focus-visible { border-radius: var(--radius-sm); } .navbar-nav { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-10); margin: 0; padding: 0; list-style: none; } .nav-link { display: inline-flex; align-items: center; min-block-size: var(--control-size-sm); padding-inline: var(--space-20); border-radius: var(--radius); color: var(--ui-fg, var(--text-muted)); font-weight: var(--font-weight-medium); text-decoration: none; } .nav-link:where([aria-current]:not([aria-current="false"])) { background: var(--surface-subtle); color: var(--text); } .nav-link:hover { background: var(--surface-subtle); color: var(--text); } .nav-list { display: grid; --gap: var(--space-20); gap: var(--gap); margin: 0; padding: 0; list-style: none; } .nav-list > li { margin: 0; } @media (forced-colors: active) { .nav-link:where([aria-current]:not([aria-current="false"])) { outline: var(--border-width) solid Highlight; background: Highlight; color: HighlightText; forced-color-adjust: none; } .nav-link:hover:not(:where([aria-current]:not([aria-current="false"]))) { outline: var(--border-width) solid ButtonText; outline-offset: 2px; background: Canvas; color: CanvasText; } } .breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-10); margin: 0; padding: 0; color: var(--text-subtle); font-size: var(--font-size-sm); list-style: none; } .breadcrumb li { display: inline-flex; align-items: center; gap: var(--space-10); } .breadcrumb li + li::before { content: "/"; color: var(--text-subtle); } .breadcrumb a { color: var(--text-muted); text-decoration: none; } .breadcrumb a:not([aria-current]):hover, .breadcrumb a[aria-current="false"]:hover { color: var(--text); text-decoration: underline; } .breadcrumb a:focus-visible { border-radius: var(--radius-sm); } .breadcrumb :where(li, a, span):where([aria-current]:not([aria-current="false"])) { color: var(--text); font-weight: var(--font-weight-medium); } .pagination { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-10); margin: 0; padding: 0; list-style: none; font-variant-numeric: tabular-nums; } .pagination .btn { --btn-pad-x: var(--space-20); min-inline-size: var(--control-size); } .pagination > li > [aria-hidden="true"] { display: inline-flex; align-items: center; justify-content: center; min-inline-size: var(--control-size); } :where(.tab) { --intent: initial; } .tabs { display: flex; flex-wrap: wrap; gap: var(--space-10); margin: 0; padding: 0; border-block-end: var(--border-width) solid var(--border); list-style: none; } .tabs[aria-orientation="vertical"] { display: grid; align-content: start; justify-items: stretch; border-block-end: 0; border-inline-end: var(--border-width) solid var(--border); } .tab { display: inline-flex; align-items: center; gap: var(--tab-gap, 0.375em); min-block-size: var(--control-size); padding-inline: var(--space-30); border: 0; border-block-end: 2px solid transparent; border-radius: 0; background: transparent; color: var(--text-muted); font: inherit; font-weight: var(--font-weight-strong); text-decoration: none; cursor: pointer; } .tabs[aria-orientation="vertical"] .tab { justify-content: flex-start; border-block-end: 0; border-inline-end: 2px solid transparent; padding-inline-end: var(--space-40); } .tab:is(:disabled, [aria-disabled="true"]) { cursor: not-allowed; opacity: var(--disabled-opacity); } .tab:hover:not(:where(:disabled, [aria-disabled="true"])) { color: var(--text); } .tab:focus-visible { outline: var(--focus-outline); outline-color: var(--focus); outline-offset: -2px; border-radius: var(--radius-sm) var(--radius-sm) 0 0; } .tab[aria-selected="true"] { border-block-end-color: var(--intent, var(--state-selected)); color: var(--intent, var(--state-selected)); } .tabs[aria-orientation="vertical"] .tab[aria-selected="true"] { border-block-end-color: transparent; border-inline-end-color: var(--intent, var(--state-selected)); } @media (forced-colors: active) { .tab:hover:not(:where(:disabled, [aria-disabled="true"])) { text-decoration: underline; text-underline-offset: 0.18em; } .tab[aria-selected="true"] { border-block-end-color: Highlight; color: Highlight; } .tabs[aria-orientation="vertical"] .tab[aria-selected="true"] { border-block-end-color: transparent; border-inline-end-color: Highlight; } } @supports selector(.scrollspy a:target-current) { .scrollspy { scroll-target-group: auto; } .scrollspy a:target-current { color: var(--text); font-weight: var(--font-weight-medium); } } .table-wrap { inline-size: 100%; max-inline-size: 100%; min-inline-size: 0; overflow-x: auto; border: var(--border-width) solid var(--border); border-radius: var(--radius-lg); background: var(--surface-raised); } .table { --table-min: 100%; --table-cell-pad: var(--space-30); inline-size: max(var(--table-min), 100%); border-collapse: collapse; background: transparent; color: var(--text); font-size: var(--font-size-md); } .table caption { padding: var(--table-cell-pad); color: var(--text-muted); text-align: var(--text-align, start); } .table th, .table td { padding: var(--table-cell-pad); border-block-end: var(--border-width) solid var(--border); text-align: var(--text-align, start); vertical-align: baseline; } .table thead th { vertical-align: bottom; } .table th { color: var(--text-muted); font-weight: var(--font-weight-strong); } .table thead { background: var(--surface-subtle); } .table tbody tr:hover { background-color: var(--hover-overlay); } .table > tr:last-child > *, .table > :last-child > tr:last-child > * { border-block-end: 0; } .table.compact { --table-cell-pad: var(--space-20); } .meter { appearance: none; -webkit-appearance: none; display: block; inline-size: 100%; block-size: var(--bar-height); overflow: hidden; border: 0; border-radius: var(--radius-full); background: var(--surface-subtle); } .meter::-webkit-meter-bar { -webkit-appearance: none; block-size: var(--bar-height); border: 0; border-radius: var(--radius-full); background: var(--surface-subtle); } .meter::-webkit-meter-optimum-value { block-size: var(--bar-height); border-radius: var(--radius-full); background: var(--success); } .meter::-webkit-meter-suboptimum-value { block-size: var(--bar-height); border-radius: var(--radius-full); background: var(--warning); } .meter::-webkit-meter-even-less-good-value { block-size: var(--bar-height); border-radius: var(--radius-full); background: var(--danger); } .meter::-moz-meter-bar { block-size: var(--bar-height); border-radius: var(--radius-full); } @media (forced-colors: active) { .meter::-webkit-meter-optimum-value, .meter::-webkit-meter-suboptimum-value, .meter::-webkit-meter-even-less-good-value { background: Highlight; } .meter::-moz-meter-bar { background: Highlight; } } .join { --join-radius: var(--radius); --join-ss: 0; --join-se: 0; --join-es: 0; --join-ee: 0; align-items: stretch; display: inline-flex; } .join.circle { --join-radius: var(--radius-full); } .join-addon { --control-border: var(--border); --control-bg: var(--surface-subtle); --control-fg: var(--text-muted); align-items: center; display: inline-flex; justify-content: center; min-block-size: var(--control-size); padding-inline: var(--space-30); border: var(--border-width) solid var(--control-border); border-radius: var(--radius); background: var(--control-bg); color: var(--control-fg); font-size: var(--control-font-size); line-height: 1; white-space: nowrap; } .join > * { border-start-start-radius: var(--join-ss); border-start-end-radius: var(--join-se); border-end-end-radius: var(--join-ee); border-end-start-radius: var(--join-es); } .join > :first-child { --join-ss: var(--join-radius); --join-es: var(--join-radius); } .join > :last-child { --join-se: var(--join-radius); --join-ee: var(--join-radius); } .join > :only-child { --join-ss: var(--join-radius); --join-se: var(--join-radius); --join-es: var(--join-radius); --join-ee: var(--join-radius); } .join > * + * { margin-inline-start: calc(var(--border-width) * -1); } .join > :is(:hover, :focus, :focus-within) { z-index: 1; } .join > :is(:focus, :focus-within) { z-index: 4; } .join > :is(.input, .textarea, .select) { z-index: 3; } .join:has(> :is(.input, .textarea, .select):focus-visible) { border-radius: var(--join-radius); outline: 2px solid transparent; box-shadow: var(--focus-ring-shadow); } .join:has(> :is(.input, .textarea, .select)) > :is(.input, .textarea, .select):focus-visible { outline: none; box-shadow: none; } .join:has(> :is(.input, .textarea, .select)) > .btn.outline { --btn-border-color: var(--intent, var(--border)); } @property --aura-angle { syntax: "<angle>"; inherits: false; initial-value: 0deg; } :where(.aura) { --intent: initial; --intent-fg: initial; } .aura { --aura-color: var(--intent, var(--primary)); --aura-width: 2px; --aura-blur: 0.75rem; --aura-radius: var(--radius-lg); --aura-duration: 6s; position: relative; isolation: isolate; display: inline-grid; padding: var(--aura-width); border-radius: calc(var(--aura-radius) + var(--aura-width)); background: var(--aura-color); background: conic-gradient(from var(--aura-angle), transparent 0 65%, var(--aura-color)); } .aura::before { position: absolute; z-index: -1; inset: 0; border-radius: inherit; background: inherit; filter: blur(var(--aura-blur)); opacity: 0.45; pointer-events: none; content: ""; } .aura > * { position: relative; } .aura-glow { background: var(--aura-color); } @media (prefers-reduced-motion: no-preference) { .aura:not(.aura-glow) { animation: aura-rotate var(--aura-duration) linear infinite; } } @keyframes aura-rotate { to { --aura-angle: 360deg; } } @supports selector(:has(*)) { .aura:has(> .btn) { --aura-radius: var(--radius); } .aura:has(> :is(.card, .alert)) { --aura-radius: var(--radius-lg); } .aura:has(> .badge) { --aura-radius: var(--radius-full); } } @media (forced-colors: active) { .aura { background: CanvasText; } .aura::before { display: none; } } .sr-only { position: absolute; inline-size: 1px; block-size: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; } .overflow-auto { overflow: auto; } .fit { inline-size: fit-content; max-inline-size: 100%; } .grow { flex: 1 1 auto; min-inline-size: 0; } .text-nowrap { white-space: nowrap; } .truncate { min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .items-start { --items-align: start; align-items: start; } .items-center { --items-align: center; align-items: center; } .items-end { --items-align: end; align-items: end; } .muted { color: var(--text-muted); } .circle { border-radius: var(--radius-full); } .text-start { --text-align: start; text-align: start; } .text-center { --text-align: center; text-align: center; } .text-end { --text-align: end; text-align: end; } .text-balance { text-wrap: balance; } .text-pretty { text-wrap: pretty; } .list-reset { margin: 0; padding: 0; list-style: none; } .dot { flex: none; inline-size: 0.25rem; block-size: 0.25rem; border-radius: var(--radius-full); background: var(--text-subtle); } .link-plain { color: inherit; text-decoration: none; } .link-muted { color: var(--text-muted); text-decoration: none; } .link-muted:hover { color: var(--text); } .gap-none { gap: 0; } .py { padding-block: var(--density-space); } .px { padding-inline: var(--density-space); } .mbs { margin-block-start: var(--density-space); } .mbe { margin-block-end: var(--density-space); } .display-block { display: block; } .display-inline { display: inline; } .display-inline-block { display: inline-block; } .display-flex { display: flex; } .display-inline-flex { display: inline-flex; } .display-grid { display: grid; } .position-relative { position: relative; } .position-absolute { position: absolute; } .position-fixed { position: fixed; } .position-sticky { position: sticky; } .inline-size-full { inline-size: 100%; } .block-size-full { block-size: 100%; } .min-inline-size-0 { min-inline-size: 0; } .min-block-size-0 { min-block-size: 0; } .max-inline-size-none { max-inline-size: none; } .flex-wrap { flex-wrap: wrap; } .flex-nowrap { flex-wrap: nowrap; } .gap-sm { gap: var(--space-20); } .gap-md { gap: var(--space-40); } .gap-lg { gap: var(--space-50); } .justify-content-start { --cluster-justify: flex-start; justify-content: flex-start; } .justify-content-center { --cluster-justify: center; justify-content: center; } .justify-content-end { --cluster-justify: flex-end; justify-content: flex-end; } .justify-content-space-between { --cluster-justify: space-between; justify-content: space-between; } .align-self-start { align-self: start; } .align-self-center { align-self: center; } .align-self-end { align-self: end; } .padding-context { padding: var(--density-space); } .margin-inline-auto { margin-inline: auto; } .margin-inline-start-auto { margin-inline-start: auto; } .margin-inline-end-auto { margin-inline-end: auto; } .margin-block-start-auto { margin-block-start: auto; } .margin-block-end-auto { margin-block-end: auto; } .gap-context { gap: var(--gap); } .row-gap-context { row-gap: var(--gap); } .column-gap-context { column-gap: var(--gap); } .overflow-hidden { overflow: hidden; } .overflow-clip { overflow: clip; } .overflow-x-auto { overflow-x: auto; } .overflow-y-auto { overflow-y: auto; } .white-space-normal { white-space: normal; } .text-break { overflow-wrap: break-word; } .text-uppercase { text-transform: uppercase; } .text-lowercase { text-transform: lowercase; } .text-capitalize { text-transform: capitalize; } .font-weight-normal { font-weight: var(--font-weight); } .font-weight-medium { font-weight: var(--font-weight-medium); } .font-weight-strong { font-weight: var(--font-weight-strong); } .font-weight-bold { font-weight: var(--font-weight-bold); } .radius-sm-context { border-radius: var(--radius-sm); } .radius-context { border-radius: var(--radius); } .radius-lg-context { border-radius: var(--radius-lg); } .border-context { border: var(--border-width) solid var(--border); } .border-block-start { border-block-start: var(--border-width) solid var(--border); } .border-block-end { border-block-end: var(--border-width) solid var(--border); } .border-inline-start { border-inline-start: var(--border-width) solid var(--border); } .border-inline-end { border-inline-end: var(--border-width) solid var(--border); } .background-surface { background: var(--surface); color: var(--text); } .background-raised { background: var(--surface-raised); color: var(--text); } .background-subtle { background: var(--surface-subtle); color: var(--text); } .shadow-context { box-shadow: var(--shadow); } .shadow-popout-context { box-shadow: var(--shadow-popout); } .cursor-pointer { cursor: pointer; } .pointer-events-none { pointer-events: none; } .user-select-none { -webkit-user-select: none; user-select: none; } .display-none { display: none; } .visibility-hidden { visibility: hidden; }
package/dist/actual.js CHANGED
@@ -1 +1 @@
1
- var T1=new WeakMap,h1=new WeakMap;function E1(){return{refresh(){},disconnect(){}}}function D0($){return $?.nodeType===1||$?.nodeType===9||$?.nodeType===11}function T$($){let J=new Set,Z="";function Q(H){try{if($.querySelector?.(H),$.nodeType===1)$.matches(H);return!0}catch(G){return console.error(`Invalid enhancer selector "${H}"`,G),!1}}function z(){Z=[...J].flatMap((H)=>H.selectors).join(",")}function q(H,G){if(G?.nodeType!==1)return;let j=H.instances.get(G);for(let P of H.selectors){if(!G.matches(P))continue;if(j?.has(P))continue;let U;try{U=H.enhancers[P](G)}catch(L){console.error(`Enhancer failed for selector "${P}"`,L);continue}if(!j)j=new Map,H.instances.set(G,j);j.set(P,typeof U==="function"?U:null)}}function K(H,G){let j=H.instances.get(G);if(!j)return;for(let P of j.values())try{P?.()}catch(U){console.error("Enhancer cleanup failed",U)}H.instances.delete(G)}function Y(H,G){if(!D0(G))return;if(G.nodeType===1)q(H,G);if(H.selectorString)G.querySelectorAll?.(H.selectorString).forEach((j)=>{q(H,j)})}function W(H){if(!D0(H)||!Z)return;if(H.nodeType===1)for(let G of J)q(G,H);H.querySelectorAll?.(Z).forEach((G)=>{for(let j of J)q(j,G)})}function B(){for(let H of J)for(let G of Array.from(H.instances.keys()))if(!G.isConnected||!$.contains(G))K(H,G)}let X=new MutationObserver((H)=>{let G=!1;for(let j of H){for(let P of j.addedNodes)W(P);if(j.removedNodes.length>0)G=!0}if(G)B()});return X.observe($,{childList:!0,subtree:!0}),{add(H){let G=Object.keys(H).filter(Q);if(!G.length)return null;let P={disconnected:!1,enhancers:Object.fromEntries(G.map((U)=>[U,H[U]])),instances:new Map,selectors:G,selectorString:G.join(",")};return J.add(P),z(),Y(P,$),P},refresh(H,G){if(H.disconnected)return;Y(H,G)},remove(H){if(H.disconnected)return;H.disconnected=!0;for(let G of Array.from(H.instances.keys()))K(H,G);if(J.delete(H),z(),J.size===0)X.disconnect(),T1.delete($)}}}var E$=/^[a-z][a-z0-9-]*$/;function e($){if(!E$.test($))throw TypeError(`Invalid enhancement name: ${$}`);return`[data-enhance~="${$}"]`}function T($,J,Z){if(typeof document>"u")return E1();if(e($),typeof J!=="function")throw TypeError("registerEnhancement() requires a function init.");Z??=document.documentElement;let Q=h1.get(Z);if(!Q)Q=new Map,h1.set(Z,Q);if(Q.has($))throw Error(`Enhancement "${$}" is already registered on this root.`);let z=_({[e($)]:J},Z);return Q.set($,z),{refresh:(q)=>z.refresh(q),disconnect:()=>{if(z.disconnect(),Q.get($)===z)Q.delete($);if(Q.size===0)h1.delete(Z)}}}function b$($){let J=T1.get($);if(!J)J=T$($),T1.set($,J);return J}function _($,J){if(typeof document>"u")return E1();J??=document.documentElement;let Z=b$(J),Q=Z.add($);if(!Q)return E1();return{refresh:(z)=>Z.refresh(Q,z),disconnect:()=>{Z.remove(Q)}}}var f$=["a[href]","button","input","select","textarea","summary","[contenteditable]:not([contenteditable='false'])","[tabindex]"].join(",");function b1($){if(!$||$.hidden)return!1;if(typeof $.checkVisibility==="function")return $.checkVisibility();if($.getClientRects().length===0)return!1;let J=$.ownerDocument?.defaultView?.getComputedStyle?.($);if(!J)return!0;return J.visibility!=="hidden"&&J.visibility!=="collapse"}function S$($){return $.tabIndex>=0&&!$.matches(":disabled")&&b1($)&&!$.closest('[inert], [aria-hidden="true"]')}function v$($){return[...$.querySelectorAll(f$)].filter(S$)}function f1($){let J=v$($)[0];return J?.focus(),!!J}function J1($){return $[0]||null}function Z1($){return $[$.length-1]||null}function $1($,J,Z,Q={}){if(!$.length)return null;let z=Q.wrap!==!1,q=$.indexOf(J);if(q===-1)return Z>0?J1($):Z1($);let K=q+Z;if(!z)return $[K]||null;let Y=(K%$.length+$.length)%$.length;return $[Y]}function S($,J,Z,Q={}){let z=Q.orientation||"horizontal",q=Q.wrap===!0,K=Q.direction||"ltr";switch(Z){case"Home":return J1($);case"End":return Z1($);case"ArrowRight":if(z!=="horizontal")return null;return $1($,J,K==="rtl"?-1:1,{wrap:q});case"ArrowLeft":if(z!=="horizontal")return null;return $1($,J,K==="rtl"?1:-1,{wrap:q});case"ArrowDown":if(z!=="vertical")return null;return $1($,J,1,{wrap:q});case"ArrowUp":if(z!=="vertical")return null;return $1($,J,-1,{wrap:q});default:return null}}var p$=new Set(["horizontal","vertical"]);function u$($,J){if(J==null)$.removeAttribute("tabindex");else $.setAttribute("tabindex",J)}function V0($,J={}){if(!$?.addEventListener||!$?.contains)throw TypeError("connectFocusGroup() requires a root element.");if(typeof J.getItems!=="function")throw TypeError("connectFocusGroup() requires getItems().");let Z=J.orientation||"horizontal";if(!p$.has(Z))throw TypeError(`Invalid focus-group orientation: ${Z}`);let Q=new AbortController,z=J.signal||null,q=new Map,K=null,Y=!1;function W(){let P=new Set;return[...J.getItems()||[]].filter((U)=>{if(typeof U?.focus!=="function"||!$.contains(U)||P.has(U))return!1;return P.add(U),!0})}function B(P){if(!q.has(P))return;u$(P,q.get(P)),q.delete(P)}function X(P=K){if(Y)return[];let U=W(),L=new Set(U);for(let D of q.keys())if(!L.has(D))B(D);let w=$.ownerDocument.activeElement,C=L.has(P)&&P||L.has(w)&&w||U.find((D)=>D.tabIndex===0)||U[0]||null;for(let D of U){if(!q.has(D))q.set(D,D.getAttribute("tabindex"));let M=D===C?0:-1;D.tabIndex=M}return K=C,U}function H(P){if(W().includes(P.target))X(P.target)}function G(P){let U=X(),L=$.ownerDocument.activeElement;if(!U.includes(L))return;let C=$.ownerDocument.defaultView?.getComputedStyle?.($)?.direction==="rtl"?"rtl":"ltr",D=S(U,L,P.key,{orientation:Z,wrap:J.wrap===!0,direction:C});if(!D)return;P.preventDefault(),X(D),D.focus()}$.addEventListener("focusin",H,{signal:Q.signal}),$.addEventListener("keydown",G,{signal:Q.signal}),X();function j(){if(Y)return;Y=!0,z?.removeEventListener("abort",j),Q.abort();for(let P of q.keys())B(P);K=null}if(z)if(z.aborted)j();else z.addEventListener("abort",j,{once:!0});return{sync:X,disconnect:j}}var c$=":scope > li > .menu-item",g$=new Set(["menuitem","menuitemcheckbox","menuitemradio"]);function m$($){return!$.disabled&&$.getAttribute("aria-disabled")!=="true"&&b1($)&&!$.closest("[hidden], [inert], [aria-hidden='true']")}function l($){return[...$.querySelectorAll(c$)].filter(m$)}function _0($){return g$.has($.getAttribute("role"))}function d$($){let J=$.ownerDocument.activeElement;if(!$.contains(J)||!_0(J))return!1;return J.click(),!0}function I0($){return l($).length>0}function l$($,J){let Z=J?.closest?.(".menu-item");return Z?.parentElement?.parentElement===$?Z:null}function v($){J1(l($))?.focus()}function v1($){Z1(l($))?.focus()}function i$($,{close:J,navigate:Z=!0}){let Q=$.currentTarget;if(Z){let z=l(Q),q=S(z,Q.ownerDocument.activeElement,$.key,{orientation:"vertical",wrap:!0});if(q){$.preventDefault(),q.focus();return}}switch($.key){case"Tab":J(Q);break;case"Enter":case" ":if(d$(Q))$.preventDefault();break}}var S1=new WeakMap;function Q1($,{close:J}){let Z=S1.get($);if(!Z){let z=new AbortController,q=$.matches('[role="menu"]')?V0($,{getItems:()=>l($).filter(_0),orientation:"vertical",wrap:!0,signal:z.signal}):null;$.addEventListener("keydown",(K)=>i$(K,{close:()=>J($),navigate:!q}),{signal:z.signal}),$.addEventListener("click",(K)=>{let Y=l$($,K.target);if(!Y)return;if(Y.matches(":disabled, [aria-disabled='true']")){K.preventDefault(),K.stopPropagation();return}},{signal:z.signal}),Z={count:0,controller:z,focusGroup:q},S1.set($,Z)}Z.count++;let Q=!1;return()=>{if(Q)return;if(Q=!0,Z.count--,Z.count<=0)Z.focusGroup?.disconnect(),Z.controller.abort(),S1.delete($)}}var x={reposition:"actual:reposition",hide:"actual:hide",outOfView:"actual:out-of-view",surfaceOpen:"actual:surface-open",contextMenu:"actual:context-menu",status:"actual:status",invalid:"actual:invalid",dialogCancel:"actual:dialog-cancel",dismiss:"actual:dismiss"};function p1($){return $.split("-")[0]}function K1($){return $.split("-")[1]||null}function R0($){return["top","bottom"].includes(p1($))?"x":"y"}function s$($){if($==="top")return"bottom";if($==="bottom")return"top";if($==="left")return"right";if($==="right")return"left"}function z1($,J,Z,Q){let z=$.x+$.width/2-J.width/2,q=$.y+$.height/2-J.height/2,K=R0(Z),Y=$[K==="x"?"width":"height"]/2-J[K==="x"?"width":"height"]/2,W=p1(Z),B;switch(W){case"top":B={x:z,y:$.y-J.height};break;case"bottom":B={x:z,y:$.y+$.height};break;case"right":B={x:$.x+$.width,y:q};break;case"left":B={x:$.x-J.width,y:q};break;default:B={x:$.x,y:$.y}}let X=K1(Z),H=K==="x";if(X==="start")B[K]-=Y*(Q&&H?-1:1);if(X==="end")B[K]+=Y*(Q&&H?-1:1);return B}function q1($,J,Z){switch(J){case"top":$.y-=Z;break;case"bottom":$.y+=Z;break;case"left":$.x-=Z;break;case"right":$.x+=Z;break}}function L0($,J,Z,Q){return Math.max(Z-$.x,0)+Math.max($.x+J.width-Q,0)}function C0($){return{x:$.x,y:$.y,width:$.width,height:$.height,right:$.x+$.width,bottom:$.y+$.height}}var n$=typeof CSS<"u"&&CSS.supports("selector(:dir(rtl))");function o$($){if($.dir==="rtl")return!0;if($.dir==="ltr")return!1;if(n$)return $.matches(":dir(rtl)");return $.ownerDocument?.defaultView?.getComputedStyle?.($)?.direction==="rtl"}function r$($){return $.documentElement}function x0($){let J=Number.parseFloat($);return Number.isFinite(J)?J:0}var a$=25,t$=128;function e$($){let J=$.defaultView||window,Z=r$($),Q=J.visualViewport,z=Q?.offsetLeft||0,q=Q?.offsetTop||0,K=Q?.width||Z.clientWidth||J.innerWidth,Y=Q?.height||Z.clientHeight||J.innerHeight,W=$.body;if(W?.clientWidth>0){let B=J.getComputedStyle?.(W),X=$.compatMode==="CSS1Compat"?x0(B?.marginLeft)+x0(B?.marginRight):0,H=Math.abs(Z.clientWidth-W.clientWidth-X);if(H<=a$)K-=H}return C0({x:z,y:q,width:K,height:Y})}function $J($,J){if(!J.scope)return e$($.ownerDocument);let Z=J.scope.getBoundingClientRect();return C0({x:Z.x,y:Z.y,width:Z.width,height:Z.height})}function JJ($,J){return $.right<J.x||$.left>J.right||$.bottom<J.y||$.top>J.bottom}function ZJ($,J,Z,Q,z){if(J==="top")return Math.max(0,$.top-Z.y-Q-z);if(J==="bottom")return Math.max(0,Z.bottom-$.bottom-Q-z);return Math.max(0,Z.height-z*2)}function QJ($){if($.hidden)return!1;if(typeof $.checkVisibility==="function")return $.checkVisibility();return $.getClientRects().length>0}function zJ($){let J=$.getBoundingClientRect();return{width:$.offsetWidth||J.width,height:$.offsetHeight||J.height}}var O0=new WeakMap;function qJ($){let J=$.defaultView,Z=J?.ResizeObserver,Q=new Map,z=null,q=!1,K=new Map;function Y(){if(z||!Z)return z;return z=new Z((X,H)=>{for(let G of X)H.unobserve(G.target),W("element-resize",G),J.requestAnimationFrame(()=>{if(B.entries.has(G.target))H.observe(G.target)})}),z}function W(X,H){for(let G of Q.keys()){let j=K.get(G);if(!j)j=new Map,K.set(G,j);let P=j.get(X);if(!P)P={targets:new Set,timeStamp:0},j.set(X,P);if(H?.target)P.targets.add(H.target);P.timeStamp=Math.max(P.timeStamp,H?.timeStamp||0)}if(!q)J.requestAnimationFrame(()=>{let G=[...K];K.clear();for(let[j,P]of G){let U=Q.get(j);if(!U||!j.isConnected)continue;for(let[L,w]of P)U({type:L,...w})}q=!1});q=!0}$.addEventListener("scroll",(X)=>W(X.type,X),{passive:!0,capture:!0}),J.addEventListener("resize",(X)=>W("resize",X),{passive:!0});let B={entries:Q,add(X,H){return Q.set(X,H),Y()?.observe(X),()=>{Q.delete(X),K.delete(X),z?.unobserve(X)}}};return B}function KJ($){let J=$.ownerDocument,Z=O0.get(J);if(!Z)Z=qJ(J),O0.set(J,Z);return Z}function Y1($,J){return KJ($).add($,J)}function i($,J,Z={}){if(!QJ(J))return!1;let Q=Z.placement||"bottom-start",z=Z.distance||0,q=Z.flip!==!1,K=Z.shift!==!1,Y=Z.shiftPadding??4,W=o$($),B=$.getClientRects(),X=Q.startsWith("bottom")?B[B.length-1]:B[0];if(!X)return!1;let H=$J($,Z);if(JJ(X,H))return!1;let G=zJ(J),j=H.x,P=H.y,U=H.right,L=H.bottom,w=p1(Q),C=K1(Q),D=R0(Q),M=Q,F=z1(X,G,M,W);if(q1(F,w,z),q){let O=Math.ceil(F.x),R=Math.ceil(F.y);if(D==="x"&&(R<P||R+G.height>=L)||D==="y"&&(O<j||O+G.width>=U))w=s$(w),M=C?`${w}-${C}`:w,F=z1(X,G,M,W),q1(F,w,z);if(D==="y"&&(F.x<j||F.x+G.width>U)&&H.width-G.width<t$)w="top",D="x",M=C?`${w}-${C}`:w,F=z1(X,G,M,W),q1(F,w,z)}if(D==="x"&&K&&K1(M)){let O=j+Y,R=U-Y,k=L0(F,G,O,R);if(k>0){let h$=K1(M)==="end"?"start":"end",w0=`${w}-${h$}`,y1=z1(X,G,w0,W);if(q1(y1,w,z),L0(y1,G,O,R)<k)M=w0,F=y1}}let k1=50;if(K||G.width>X.width){let O=j+Y,R=U-G.width-Y;if(F.x<O){let k=O-F.x;F.x=O,k1=50-k/G.width*100}else if(F.x>R){let k=R-F.x;F.x=Math.max(j,R),k1=50+k/G.width*100}}let A1=50;if(D==="y"&&(K||G.height>X.height)){let O=P+Y,R=L-G.height-Y;if(F.y<O){let k=O-F.y;F.y=O,A1=50-k/G.height*100}else if(F.y>R){let k=R-F.y;F.y=Math.max(P,R),A1=50+k/G.height*100}}let y$=ZJ(X,w,H,z,Y);return J.style.setProperty("--arrow-x",`${k1}%`),J.style.setProperty("--arrow-y",`${A1}%`),J.style.setProperty("--available-height",`${y$}px`),J.dataset.placement=M,Object.assign(J.style,{left:`${F.x}px`,top:`${F.y}px`}),!0}function M0($,J,Z,Q={}){let z=Z.ownerDocument,q=z.documentElement,K=z.defaultView||window,Y=z.dir||q?.dir||K.getComputedStyle?.(q).direction||"";return i({ownerDocument:z,dir:Y,matches:(B)=>B===":dir(rtl)"&&Y==="rtl",getClientRects:()=>[{x:$,y:J,left:$,top:J,right:$,bottom:J,width:0,height:0}]},Z,Q)}var N={wasValidated:"was-validated",danger:"danger",fieldError:"field-error",field:"field",open:"is-open",sheet:"is-sheet",backdrop:"surface-backdrop",static:"is-static",modalOpen:"has-modal-open",hadScrollbar:"had-scrollbar",tooltip:"tooltip"};var H1=new Set,E=new WeakMap,u1=new WeakMap,s=new WeakMap,k0=new WeakSet,y0="data-actual-surface",YJ=new Set(["true","inside","outside","false"]),HJ=new Set(["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","End","Home","PageDown","PageUp"," "]),A0=new WeakMap;function GJ($){let J=String($??"outside");return YJ.has(J)?J:"true"}function WJ($){let J=$.ownerDocument?.documentElement;if(!J)return null;let Z=A0.get(J);if(!Z)Z=_({[`[${y0}]`]:(Q)=>()=>f0(Q,{restore:!1})},J),A0.set(J,Z);return Z}function XJ(...$){let J=$.filter(Boolean).flatMap((Z)=>typeof Z.getAnimations==="function"?Z.getAnimations({subtree:!0}):[]);return Promise.allSettled(J.map((Z)=>Z.finished))}function BJ($,J){return J?.closest("dialog")||$.closest("dialog")||$.ownerDocument.body}function PJ($,J){if(s.has($))return;let Z=BJ($,J),Q=$.parentNode;if(!Z||!Q||Q===Z)return;s.set($,{parent:Q,next:$.nextSibling}),Z.append($)}function h0($){let J=s.get($);if(!J)return;if(J.parent.isConnected){let Z=J.next?.parentNode===J.parent?J.next:null;J.parent.insertBefore($,Z)}else $.remove();s.delete($)}function jJ($,J){let Z=J.mobile||"auto";if(Z==="none"||Z==="anchored")return!1;if(Z==="sheet")return!0;let Q=$.ownerDocument?.defaultView;if(!Q||typeof Q.matchMedia!=="function")return!1;let z=J.breakpoint??768;return Q.matchMedia("(pointer: coarse)").matches&&Q.matchMedia(`(max-width: ${z}px)`).matches}function UJ($){if(!$.id)return[];return[...$.ownerDocument.querySelectorAll(`[aria-controls="${CSS.escape($.id)}"]`)]}function g1($,J){for(let Z of UJ($))Z.setAttribute("aria-expanded",J?"true":"false")}function FJ($,J){if(!J.isSheet){J.backdrop?.remove(),J.backdrop=null;return}if(J.backdrop?.isConnected){J.backdrop.hidden=!1;return}let Z=$.ownerDocument.createElement("div");Z.className=N.backdrop,Z.hidden=!1,$.before(Z),J.backdrop=Z}function T0($,J){if(J.isSheet=jJ($,J),J.isSheet)$.style.removeProperty("left"),$.style.removeProperty("top");$.classList.toggle(N.sheet,J.isSheet),FJ($,J)}function E0($){let J=E.get($);if(!J||J.isSheet)return!0;if(J.trigger){let z=J.trigger.getBoundingClientRect().width;$.style.setProperty("--surface-anchor-width",`${z}px`)}else $.style.removeProperty("--surface-anchor-width");let Z={placement:J.placement||"bottom-start",distance:J.distance??4,flip:J.flip!==!1,shift:J.shift!==!1,shiftPadding:J.shiftPadding??4,scope:J.scope};if(J.point)return M0(J.point.x,J.point.y,$,Z);let Q=J.trigger||J.source;if(Q)return i(Q,$,Z);return!0}function NJ($){if(E.has($))return E.get($);VJ($);let J={stopTracking:null,stopScrollIntent:null,unregisterEscape:null,backdrop:null,trigger:null,source:null,point:null,mobile:"auto",breakpoint:768,placement:"bottom-start",distance:4,flip:!0,shift:!0,shiftPadding:4,autoClose:"outside",dismissOnScroll:!1,scrollIntentAt:null,isSheet:!1,closeId:0};return E.set($,J),J}function wJ($,J){if(J.unregisterEscape=_J($,(Z)=>V($,Z)),J.dismissOnScroll){let Z=new AbortController,Q=(B)=>{J.scrollIntentAt=B.timeStamp},z=(B)=>{if(!$.contains(B.target))Q(B)},q=(B)=>{if(!B.defaultPrevented&&HJ.has(B.key))Q(B)},Y={...{signal:Z.signal,capture:!0},passive:!0},W=$.ownerDocument;W.addEventListener("pointerdown",z,Y),W.addEventListener("touchmove",Q,Y),W.addEventListener("wheel",Q,Y),W.addEventListener("keydown",q,{signal:Z.signal}),J.stopScrollIntent=()=>Z.abort()}J.stopTracking=Y1($,({type:Z,targets:Q,timeStamp:z})=>{if($.hidden)return;if(Z==="scroll"&&J.dismissOnScroll&&J.scrollIntentAt!=null&&z>=J.scrollIntentAt&&[...Q].some((q)=>q!==$&&!$.contains(q))){V($);return}if(T0($,J),!E0($))V($)})}function I($){return $.classList.contains(N.open)&&!$.hidden}function b0($){if(!$)return;$.style.position="fixed",$.hidden=!0,g1($,!1),$.setAttribute(y0,""),WJ($)?.refresh($)}function G1($){if(!$)return()=>{};let J=u1.get($);if(!J)b0($),J={count:0},u1.set($,J);J.count++;let Z=!1;return()=>{if(Z)return;if(Z=!0,J.count--,J.count<=0)f0($),u1.delete($)}}function n($,J={}){if(!$?.isConnected)return!1;if(I($))return!1;let Z=new CustomEvent(x.surfaceOpen,{bubbles:!0,cancelable:!0,detail:{surface:$,options:J}});if(!$.dispatchEvent(Z))return!1;for(let q of H1)if(q!==$&&q.ownerDocument===$.ownerDocument)V(q);let Q=J.trigger||J.source||null;PJ($,Q),b0($);let z=NJ($);if(z.trigger=J.trigger||null,z.source=J.source||null,z.point=Number.isFinite(J.x)&&Number.isFinite(J.y)?{x:J.x,y:J.y}:null,z.mobile=J.mobile||"auto",z.breakpoint=J.breakpoint??768,z.autoClose=GJ(J.autoClose),z.dismissOnScroll=J.dismissOnScroll===!0,z.scrollIntentAt=null,z.placement=J.placement||"bottom-start",z.distance=J.distance??4,z.flip=J.flip!==!1,z.shift=J.shift!==!1,z.shiftPadding=J.shiftPadding??4,z.scope=J.scope,z.restoreFocusTo=J.restoreFocusTo||J.trigger||J.source||null,z.closeId++,$.classList.add(N.open),$.hidden=!1,T0($,z),g1($,!0),!E0($))return V($,{restoreFocus:!1}),!1;return H1.add($),wJ($,z),!0}function V($,J={}){if(!$||!I($))return;let Z=E.get($),Q=Z?++Z.closeId:0,z=Z?.isSheet===!0,q=$.ownerDocument.activeElement,K=J.restoreFocus??$.contains(q);if($.classList.remove(N.open),!z)$.classList.remove(N.sheet);$.hidden=!0;let Y=Z?.backdrop||null;if(Y)Y.hidden=!0;if(H1.delete($),g1($,!1),Z?.unregisterEscape?.(),Z?.stopScrollIntent?.(),Z?.stopTracking?.(),K&&Z?.restoreFocusTo?.isConnected)Z.restoreFocusTo.focus({preventScroll:!0});XJ($,Y).then(()=>{if(!Z||Z.closeId!==Q)return;if(Z.isSheet=!1,$.classList.remove(N.sheet),Y?.remove(),Z.backdrop===Y)Z.backdrop=null;h0($)})}function f0($,{restore:J=!0}={}){if(!$)return;if(!J)s.delete($);V($);let Z=E.get($);if(Z)Z.backdrop?.remove(),Z.unregisterEscape?.(),Z.stopScrollIntent?.(),Z.stopTracking?.(),E.delete($);h0($)}function DJ($){let J=$.composedPath();for(let Z of H1){if(Z.ownerDocument!==$.currentTarget)continue;let Q=E.get(Z);if(!Q)continue;let z=J.indexOf(Z),q=z>=0;if(q&&J.slice(0,z).some((B)=>B instanceof Element&&B.hasAttribute("data-flyout-close"))){V(Z);continue}let Y=Q.autoClose==="true"||Q.autoClose==="inside",W=Q.autoClose==="true"||Q.autoClose==="outside";if(q&&Y||!q&&W)V(Z)}}function VJ($){let J=$.ownerDocument;if(!J||k0.has(J))return;k0.add(J),J.addEventListener("click",DJ)}var c1=new WeakMap;function _J($,J){let Z=$.ownerDocument,Q=c1.get(Z);if(!Q)Q=[],c1.set(Z,Q),Z.addEventListener("keydown",IJ);let z={element:$,dismiss:J};return Q.push(z),()=>{let q=Q.indexOf(z);if(q>=0)Q.splice(q,1)}}function IJ($){if($.key!=="Escape"||$.ctrlKey||$.altKey||$.shiftKey)return;let Z=c1.get($.currentTarget).at(-1);if(!Z)return;$.preventDefault(),Z.dismiss({restoreFocus:!0})}var W1=new WeakMap,p=new WeakMap;function LJ($){let Z=Number.parseInt({sm:640,md:768,lg:1024}[$]||$,10);return Number.isFinite(Z)?Z:void 0}function xJ($){let J={autoClose:"true"},Z=$.dataset;if(Z.flyoutPlacement)J.placement=Z.flyoutPlacement;if(Z.flyoutDistance!=null){let Q=Number.parseFloat(Z.flyoutDistance);if(Number.isFinite(Q))J.distance=Q}if(Z.flyoutMobile)J.mobile=Z.flyoutMobile;if(Z.flyoutBreakpoint){let Q=LJ(Z.flyoutBreakpoint);if(Q!=null)J.breakpoint=Q}if(Z.flyoutAutoClose)J.autoClose=Z.flyoutAutoClose;return J}function OJ($){let J=$.getAttribute("aria-controls");return J?$.ownerDocument.getElementById(J):null}function m1($){return $.matches("menu")||$.classList.contains("menu")}function b($,J){return n($,{trigger:J,source:J,...xJ($)})}function S0($,J){if(!I($)&&!b($,J))return!1;return f1($)}function RJ($){let J=$.currentTarget,Z=p.get(J);if(!Z)return;$.stopPropagation();let Q=d1(J,Z);if(!Q)return;if(I(Q))V(Q);else b(Q,J)}function CJ($){let J=$.currentTarget,Z=p.get(J);if(!Z)return;let Q=d1(J,Z);if(!Q)return;if(!m1(Q)){switch($.key){case"ArrowDown":$.preventDefault(),S0(Q,J);break;case"Enter":case" ":if($.preventDefault(),I(Q))V(Q);else S0(Q,J);break;case"Tab":if(I(Q)&&!$.shiftKey&&f1(Q))$.preventDefault();break}return}switch($.key){case"ArrowDown":if($.preventDefault(),!I(Q)&&!b(Q,J))break;v(Q);break;case"ArrowUp":if($.preventDefault(),!I(Q)&&!b(Q,J))break;v1(Q);break;case"Home":if($.preventDefault(),!I(Q)&&!b(Q,J))break;v(Q);break;case"End":if($.preventDefault(),!I(Q)&&!b(Q,J))break;v1(Q);break;case"Enter":case" ":if($.preventDefault(),!I(Q)){if(b(Q,J))v(Q)}else V(Q);break;case"Tab":if(I(Q))V(Q);break}}function MJ($){if(p.has($))return;let J=new AbortController,Z={panel:null,controller:J,releaseMenu:null};if(p.set($,Z),d1($,Z),!$.hasAttribute("aria-expanded"))$.setAttribute("aria-expanded","false");$.addEventListener("click",RJ,{signal:J.signal}),$.addEventListener("keydown",CJ,{signal:J.signal})}function d1($,J){if(J.panel?.isConnected)return J.panel;let Z=OJ($);if(!Z)return null;let Q=W1.get(Z);if(!Q){let z=G1(Z);Q={triggers:new Set,release:z},W1.set(Z,Q)}if(Q.triggers.add($),J.panel=Z,m1(Z))J.releaseMenu=Q1(Z,{close:(z)=>V(z)});if(!$.hasAttribute("aria-haspopup")&&m1(Z))$.setAttribute("aria-haspopup","menu");return Z}function kJ($){let J=p.get($);if(!J)return;if(J.releaseMenu?.(),J.controller.abort(),J.panel?.isConnected&&I(J.panel))V(J.panel,{restoreFocus:!1});p.delete($);let Z=J.panel?W1.get(J.panel):void 0;if(Z){if(Z.triggers.delete($),Z.triggers.size===0)Z.release(),W1.delete(J.panel)}}T("flyout",($)=>{return MJ($),()=>kJ($)});var v0=450,AJ=750,p0=10,yJ='menu, [role="menu"]',hJ="[data-context-menu]",B1=new WeakMap,s1=new WeakMap;function TJ($){return s1.get($)||null}function EJ($){let J=$.getAttribute("data-context-menu"),Z=J?$.ownerDocument.getElementById(J):null;return Z?.matches(yJ)?Z:null}function l1($){return!!$.closest?.("a, button, input, textarea, select, option, [contenteditable], [role='button'], [role='link'], [data-context-menu-ignore]")}function bJ($){if(!$.hasAttribute("data-context-menu-scope"))return null;let J=$.getAttribute("data-context-menu-scope").trim();if(!J||J==="self")return $;if(J==="parent")return $.parentElement;try{return $.closest(J)||$.ownerDocument.querySelector(J)}catch{return null}}function fJ($,J){let Z=$.dataset.contextMenuLongPress??J.dataset.contextMenuLongPress;if(Z==null||Z==="false"||Z==="none")return null;if(Z==="")return v0;let Q=Number.parseInt(Z,10);return Number.isFinite(Q)?Math.max(0,Q):v0}function u0($){let J={autoClose:"true"},Z=$.dataset;if(Z.flyoutMobile)J.mobile=Z.flyoutMobile;if(Z.flyoutAutoClose)J.autoClose=Z.flyoutAutoClose;return J}function c0($){if(!$.hasAttribute("tabindex"))$.tabIndex=-1;$.focus({preventScroll:!0})}function SJ($,J){if(J==="first-item"){if(I0($))v($)}else c0($)}function g0($,J,Z={}){let Q={menu:J,context:$,origin:Z.origin||$,trigger:Z.trigger},z=new CustomEvent(x.contextMenu,{bubbles:!0,cancelable:!0,detail:Q});if(!$.dispatchEvent(z))return null;return s1.set(J,Q),Q}function i1($,J,Z={}){if(!g0($,J,Z))return;if(I(J))V(J);if(n(J,{source:$,x:Z.x,y:Z.y,placement:Z.placement||"bottom-start",distance:Z.distance??2,dismissOnScroll:!0,mobile:Z.mobile||"auto",scope:Z.scope||bJ($),restoreFocusTo:Z.restoreFocusTo,...u0(J)}))SJ(J,Z.focus)}function vJ($,J,Z=$,Q){let z=Z.getBoundingClientRect();i1($,J,{x:z.left,y:z.bottom,placement:"bottom-start",distance:4,focus:"first-item",origin:Z,trigger:"keyboard",restoreFocusTo:Q})}function X1($){if($.timer)clearTimeout($.timer),$.timer=null;$.pointerId=null}function pJ($){if(B1.has($))return;let J=EJ($);if(!J)return;let Z=G1(J),Q=new AbortController,z=Q1(J,{close:(K)=>V(K)}),q={controller:Q,releaseMenu:z,menu:J,release:Z,timer:null,pointerId:null,startX:0,startY:0,suppressClickUntil:0};$.addEventListener("contextmenu",(K)=>{if(l1(K.target))return;K.preventDefault(),K.stopPropagation(),i1($,J,{x:K.clientX,y:K.clientY,origin:K.target,trigger:"pointer"})},{signal:Q.signal}),$.addEventListener("keydown",(K)=>{if(K.key!=="ContextMenu"&&!(K.shiftKey&&K.key==="F10"))return;if(l1(K.target))return;K.preventDefault(),vJ($,J,K.target,$)},{signal:Q.signal}),$.addEventListener("pointerdown",(K)=>{let Y=fJ($,J);if(K.pointerType!=="touch"||Y==null||l1(K.target))return;X1(q),q.pointerId=K.pointerId,q.startX=K.clientX,q.startY=K.clientY,q.timer=setTimeout(()=>{q.timer=null,q.suppressClickUntil=Date.now()+AJ,i1($,J,{x:q.startX,y:q.startY,origin:K.target,trigger:"touch"})},Y)},{signal:Q.signal,passive:!0}),$.addEventListener("pointermove",(K)=>{if(K.pointerId!==q.pointerId||!q.timer)return;if(Math.abs(K.clientX-q.startX)>p0||Math.abs(K.clientY-q.startY)>p0)X1(q)},{signal:Q.signal,passive:!0});for(let K of["pointerup","pointercancel","pointerleave"])$.addEventListener(K,(Y)=>{if(Y.pointerId===q.pointerId)X1(q)},{signal:Q.signal,passive:!0});$.addEventListener("click",(K)=>{if(Date.now()<=q.suppressClickUntil)K.preventDefault(),K.stopPropagation(),q.suppressClickUntil=0},{signal:Q.signal,capture:!0}),$.addEventListener("click",(K)=>{let Y=K.target.closest("[data-context-menu-trigger]");if(!Y||Y.getAttribute("aria-controls")!==$.getAttribute("data-context-menu"))return;if(K.preventDefault(),K.stopPropagation(),I(J)){V(J);return}if(!g0($,J,{origin:Y,trigger:"button"}))return;let W=Y.getBoundingClientRect();if(n(J,{source:$,x:W.left,y:W.bottom,placement:"bottom-start",distance:4,dismissOnScroll:!0,restoreFocusTo:Y,...u0(J)}))c0(J)},{signal:Q.signal}),B1.set($,q)}function uJ($){let J=B1.get($);if(!J)return;if(X1(J),J.controller.abort(),J.releaseMenu?.(),TJ(J.menu)?.context===$)s1.delete(J.menu),V(J.menu,{restoreFocus:!1});J.release(),B1.delete($)}_({[hJ]:($)=>{return pJ($),()=>uJ($)}});var n1=new WeakMap;function m0($,J){let Z=Array.isArray($)?$:[$];if(!Z.length||Z.some((Q)=>typeof Q!=="string"||!Q))throw TypeError(`${J} requires one or more command names.`);return[...new Set(Z)]}function d0($){return $.startsWith("--")?$:$.toLowerCase()}function f($){let J=$.getAttribute("commandfor");if(!J)return null;return $.getRootNode().getElementById?.(J)??null}function l0($){return`button[commandfor]:is(${m0($,"commandSelector()").map((Z)=>`[command="${Z.replaceAll("\\","\\\\").replaceAll('"',"\\\"")}"]`).join(", ")})`}function cJ($,J){let Z=J.defaultView?.Element;if(!Z)return null;for(let Q of $.composedPath?.()??[$.target]){if(Q instanceof Z&&Q.matches("button[commandfor][command]"))return Q;if(Q===J)break}return null}function gJ($){let J=new Map;function Z(Q){if(Q.defaultPrevented)return;let z=cJ(Q,$);if(!z||z.disabled)return;let q=d0(z.getAttribute("command")),K=J.get(q);if(!K)return;let Y=K.resolve(z);if(!Y)return;K.prepare?.(z,Y,q),K.handle(Q,z,Y,q)}return $.addEventListener("click",Z),{commands:J,route:Z}}function y($,{resolve:J=f,prepare:Z,handle:Q}={}){let z=[...new Set(m0($,"registerCommands()").map((X)=>d0(X)))];if(typeof J!=="function"||Z!==void 0&&typeof Z!=="function"||typeof Q!=="function")throw TypeError("registerCommands() requires function callbacks.");if(typeof document>"u")return{disconnect(){}};let q=document,K=n1.get(q);if(!K)K=gJ(q),n1.set(q,K);let Y=z.find((X)=>K.commands.has(X));if(Y)throw Error(`Command "${Y}" is already registered in this document.`);let W={resolve:J,prepare:Z,handle:Q};for(let X of z)K.commands.set(X,W);let B=!0;return{disconnect(){if(!B)return;B=!1;for(let X of z)if(K.commands.get(X)===W)K.commands.delete(X);if(!K.commands.size)q.removeEventListener("click",K.route),n1.delete(q)}}}var A=new WeakMap,o1=new Set,mJ=["show-modal","show","request-close","close"],dJ="dialog",lJ="[data-title], h1, h2, h3, h4, h5, h6",i0=0;function u($){return $?.nodeType===1&&$.localName==="dialog"}function o0($,J){return $.hasAttribute(J)&&$.getAttribute(J)!=="false"}function iJ($,J){if(!$.id)i0++,$.id=`${J}-${i0}`;return $.id}function r0($,J=r1($)){if(J)$.setAttribute("aria-modal","true");else $.removeAttribute("aria-modal");if($.hasAttribute("aria-label")||$.hasAttribute("aria-labelledby"))return;let Z=$.getAttribute("data-title")?.trim();if(Z){$.setAttribute("aria-label",Z);return}let Q=$.querySelector(lJ);if(Q)$.setAttribute("aria-labelledby",iJ(Q,"dialog-title"))}function r1($){return $.getAttribute("data-dialog-modal")!=="false"}function sJ($,J=null){return J==null?r1($):J}function s0($){if(!$.open)return!1;try{return $.matches(":modal")}catch{return!1}}function U1($=document){let J=!1;for(let z of o1){let q=A.get(z);if(z.ownerDocument===$&&z.isConnected&&z.open&&q?.modalOpen===!0){J=!0;break}}let Z=$.documentElement,Q=Z.classList.contains(N.modalOpen);if(J&&!Q){let z=$.defaultView?.innerWidth;Z.classList.toggle(N.hadScrollbar,Number.isFinite(z)&&z>Z.clientWidth)}else if(!J)Z.classList.remove(N.hadScrollbar);Z.classList.toggle(N.modalOpen,J)}function a0($){return o0($,"data-dialog-dismissible")}function nJ($){return o0($,"data-dialog-view-transition")}var P1="actual-dialog";function oJ($=document){return typeof $.startViewTransition==="function"}function rJ($=document){return!$.defaultView?.matchMedia?.("(prefers-reduced-motion: reduce)").matches}function j1($,J){if($)$.style.viewTransitionName=J}function o(...$){for(let J of $)if(J)J.style.viewTransitionName=""}function a1($,J){let Z=$.ownerDocument;return nJ($)&&oJ(Z)&&rJ(Z)&&J?.isConnected===!0}function aJ($,J,Z=null){if(!a1($,J)){n0($,J,Z);return}j1(J,P1),$.ownerDocument.startViewTransition(()=>{o(J),j1($,P1),n0($,J,Z)}).finished.finally(()=>o($,J)).catch(()=>{})}function tJ($,J){let Z=$.getBoundingClientRect();return J.clientX<Z.left||J.clientX>Z.right||J.clientY<Z.top||J.clientY>Z.bottom}function eJ($){let J=c($),Z=$.ownerDocument.defaultView;if(J.staticTimer)Z?.clearTimeout(J.staticTimer);$.classList.remove(N.static),$.offsetWidth,$.classList.add(N.static),J.staticTimer=Z?.setTimeout(()=>{$.classList.remove(N.static),J.staticTimer=null},250)}function $2($,J=""){let Z=A.get($);if(Z)Z.closing=!1,Z.returnValue="";if($.open)$.close(J)}function F1($,J=""){if(!u($)||!$.open)return;let Z=c($);if(Z.closing)return;let Q=Z.restoreFocusTo;if(a1($,Q)){Z.closing=!0,j1($,P1),$.ownerDocument.startViewTransition(()=>{o($),j1(Q,P1),$.close(J)}).finished.finally(()=>{Z.closing=!1,o(Q)}).catch(()=>{});return}$2($,J)}function t0($,J=""){if(!u($)||!$.open)return;if(typeof $.requestClose==="function"){c($).returnValue=J,$.requestClose(J);return}F1($,J)}function n0($,J=null,Z=null){if(!u($)||$.open||!$.isConnected)return;let Q=c($),z=sJ($,Z);r0($,z),Q.closing=!1,Q.restoreFocusTo=J||$.ownerDocument.activeElement;let q=$.ownerDocument.defaultView,K=q?.scrollY??0;if(z)$.showModal(),Q.modalOpen=!0;else $.show(),Q.modalOpen=!1;if(K>0)q?.scrollTo(0,K);U1($.ownerDocument)}function J2($){let J=$.currentTarget;if($.target!==J||!tJ(J,$))return;if(!a0(J)){if(("closedBy"in J?J.closedBy:"")==="any")return;$.preventDefault(),eJ(J);return}$.preventDefault(),t0(J)}function Z2($){let{currentTarget:J,target:Z}=$;if(!(Z instanceof HTMLFormElement))return;if(Z.method.toLowerCase()!=="dialog")return;if(!a1(J,A.get(J)?.restoreFocusTo))return;$.preventDefault(),F1(J,$.submitter?.value||"")}function Q2($){let J=$.currentTarget,Z=A.get(J),Q=new CustomEvent(x.dialogCancel,{bubbles:!0,cancelable:!0,detail:{dialog:J,sourceEvent:$}});if(!J.dispatchEvent(Q)){if($.preventDefault(),Z)Z.returnValue="";return}$.preventDefault(),F1(J,Z?.returnValue||"")}function z2($){let J=$.currentTarget,Z=A.get(J);if(o(J),!Z)return;if(Z.staticTimer)J.ownerDocument.defaultView?.clearTimeout(Z.staticTimer),Z.staticTimer=null;J.classList.remove(N.static),Z.closing=!1,Z.returnValue="",Z.modalOpen=!1,U1(J.ownerDocument);let Q=Z.restoreFocusTo;if(Z.restoreFocusTo=null,Q?.isConnected&&J.ownerDocument.activeElement!==Q)Q.focus({preventScroll:!0})}function c($){if(A.has($))return A.get($);let J=new AbortController,Z={controller:J,closing:!1,modalOpen:s0($),restoreFocusTo:null,returnValue:"",staticTimer:null};if(r0($,$.open?s0($):r1($)),$.addEventListener("click",J2,{signal:J.signal}),$.addEventListener("submit",Z2,{signal:J.signal}),$.addEventListener("cancel",Q2,{signal:J.signal}),$.addEventListener("close",z2,{signal:J.signal}),a0($)&&"closedBy"in $&&$.closedBy==="any")$.closedBy="closerequest";return A.set($,Z),o1.add($),U1($.ownerDocument),Z}function q2($){c($)}function K2($){let J=A.get($);if(!J)return;if(J.staticTimer)$.ownerDocument.defaultView?.clearTimeout(J.staticTimer);J.controller.abort(),$.classList.remove(N.static),J.modalOpen=!1,A.delete($),o1.delete($),U1($.ownerDocument)}y(mJ,{resolve:($)=>{let J=f($);return u(J)?J:null},prepare:($,J,Z)=>{if(u(J))c(J);if($.setAttribute("aria-controls",J.id),!$.hasAttribute("aria-haspopup")&&(Z==="show-modal"||Z==="show"))$.setAttribute("aria-haspopup","dialog")},handle:($,J,Z,Q)=>{if($.preventDefault(),!u(Z))return;if(Q==="show-modal"||Q==="show"){aJ(Z,J,Q==="show-modal");return}if(Q==="request-close"){t0(Z,J.value||"");return}if(Q==="close")F1(Z,J.value||"")}});_({[dJ]:($)=>{return q2($),()=>K2($)}});y("--dismiss",{handle($,J,Z){$.preventDefault(),Z.hidden=!0,Z.dispatchEvent(new CustomEvent(x.dismiss,{bubbles:!0,detail:{trigger:J}}))}});var N1='[data-enhance~="tabs"]';function e0($){return[...$.querySelectorAll('[role="tab"]')].filter((J)=>J.closest(N1)===$)}function Y2($){let J=new Map;for(let Z of $){let Q=w1(Z);if(Q)J.set(Z,Q)}return J}function w1($){let J=$.getAttribute("aria-controls");return J?$.ownerDocument.getElementById(J):null}function t1($){return $.disabled||$.getAttribute("aria-disabled")==="true"}function $$($){return e0($).filter((J)=>!t1(J)&&w1(J))}function J$($){if(!$.hasAttribute("tabindex"))$.tabIndex=-1}function D1($){if(!$||t1($)||!w1($))return;let J=$.closest(N1);if(!J)return;let Z=e0(J),Q=Y2(Z);for(let q of Z)q.setAttribute("aria-selected","false"),q.tabIndex=-1;for(let[,q]of Q)q.hidden=!0;$.setAttribute("aria-selected","true"),$.tabIndex=0;let z=Q.get($);if(z)J$(z),z.hidden=!1}function H2($){if(!$)return;D1($),$.focus()}function G2($){let J=$$($);if(!J.length)return;let Z=J.find((Q)=>Q.getAttribute("aria-selected")==="true")||J[0];D1(Z)}function W2($){let J=$.currentTarget,Z=$.target.closest('[role="tab"]');if(!Z||Z.closest(N1)!==J)return;let Q=$$(J);if(!Q.length||!Q.includes(Z))return;let z=J.getAttribute("aria-orientation")==="vertical";if($.key==="ArrowDown"&&!z){let Y=w1(Z);if(Y)$.preventDefault(),J$(Y),Y.focus();return}if($.key==="Enter"||$.key===" "){$.preventDefault(),D1(Z);return}let q=J.ownerDocument.defaultView?.getComputedStyle(J).direction||"ltr",K=S(Q,Z,$.key,{orientation:z?"vertical":"horizontal",wrap:!0,direction:q});if(!K)return;$.preventDefault(),H2(K)}function X2($){let J=$.currentTarget,Z=$.target.closest('[role="tab"]');if(!Z||Z.closest(N1)!==J)return;if(t1(Z)){$.preventDefault();return}if($.preventDefault(),Z.getAttribute("aria-selected")==="true")return;D1(Z),Z.focus()}T("tabs",($)=>{let J=new AbortController;return G2($),$.addEventListener("click",X2,{signal:J.signal}),$.addEventListener("keydown",W2,{signal:J.signal}),()=>J.abort()});var B2=150,P2=100,Z$=0,V1=new WeakMap,h=new WeakMap;function j2($,J){let Z=J.closest("dialog")||J.ownerDocument.body,Q=$.parentNode;if(!Z||!Q||Q===Z)return null;let z={parent:Q,next:$.nextSibling};return Z.append($),z}function U2($,J){let Z=J.mount;if(!Z)return;if(Z.parent.isConnected){let Q=Z.next?.parentNode===Z.parent?Z.next:null;Z.parent.insertBefore($,Q)}else $.remove()}function F2($){return $?.getAttribute("data-tooltip-placement")||"top"}function z$($,J){let Z=$?.getAttribute(J);return Z!==null&&Z.toLowerCase()!=="false"}function $0($){return z$($,"data-tooltip-click")}function m($){return z$($,"data-tooltip-visible")}function J0($){return($.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean)}function N2($,J){let Z=J0($);if(Z.includes(J))return!1;return $.setAttribute("aria-describedby",[...Z,J].join(" ")),!0}function w2($,J){let Z=J0($).filter((Q)=>Q!==J);if(Z.length)$.setAttribute("aria-describedby",Z.join(" "));else $.removeAttribute("aria-describedby")}function D2($){let J=$.ownerDocument;for(let Z of J0($)){let Q=J.getElementById(Z);if(Q?.getAttribute("role")==="tooltip")return Q}return null}function V2($){let J;do Z$++,J=`tooltip-${Z$}`;while($.getElementById(J));return J}function q$($,J){return i($,J,{placement:F2($),distance:6,flip:!0,shift:!0})}function _2($,J){if(J.stopTracking)return;J.stopTracking=Y1($,()=>{if(m(J.activeRef))$.hidden=!1;if(J.activeRef&&!$.hidden&&!q$(J.activeRef,$))g($,!0)})}function K$($){if($?.stopTracking?.(),$)$.stopTracking=null}function g($,J=!1){let Z=h.get($);if(!J&&m(Z?.activeRef))return;if(Z?.timer)clearTimeout(Z.timer),Z.timer=null;if(Z?.hideTimer)clearTimeout(Z.hideTimer),Z.hideTimer=null;$.hidden=!0,K$(Z)}function Y$($){let J=h.get($);if(!J?.hideTimer)return;clearTimeout(J.hideTimer),J.hideTimer=null}function e1($){let J=h.get($);if(!J)return;if($0(J.activeRef)||m(J.activeRef))return;if(J.hovered||J.focused||J.overTip)return;if(J.hideTimer)clearTimeout(J.hideTimer);J.hideTimer=setTimeout(()=>{if(J.hideTimer=null,!J.hovered&&!J.focused&&!J.overTip)g($)},P2)}function I2($,J={}){let Z=h.get($);if(Z)return Z;let Q=new AbortController;return Z={refs:new Set,activeRef:null,controller:Q,stopTracking:null,generated:J.generated===!0,mount:J.mount||null,timer:null,hideTimer:null,hovered:!1,focused:!1,overTip:!1},$.addEventListener("mouseenter",()=>{Z.overTip=!0,Y$($)},{signal:Q.signal}),$.addEventListener("mouseleave",()=>{Z.overTip=!1,e1($)},{signal:Q.signal}),$.ownerDocument.addEventListener("keydown",(z)=>{if(z.key!=="Escape"||z.ctrlKey||z.altKey||z.shiftKey)return;if($.hidden)return;z.preventDefault(),g($)},{signal:Q.signal}),h.set($,Z),Z}function Z0($){let J=V1.get($);if(J)return J.tip;let Z,Q=!1,z=null,q=!1,K=$.getAttribute("data-tooltip"),Y=$.ownerDocument;if(K)Z=Y.createElement("div"),Z.className=N.tooltip,Z.role="tooltip",Z.id=V2(Y),Z.textContent=K,Z.hidden=!0,Z.style.position="fixed",Q=!0,($.closest("dialog")||Y.body).appendChild(Z),q=N2($,Z.id);if(!Z){if(Z=D2($),!Z)return null;if(!h.has(Z))Z.hidden=!0,Z.style.position="fixed",z=j2(Z,$)}let W=I2(Z,{generated:Q,mount:z});W.refs.add($);let B=new AbortController;$.addEventListener("mouseleave",()=>{W.hovered=!1,e1(Z)},{signal:B.signal}),$.addEventListener("blur",()=>{W.focused=!1,e1(Z)},{signal:B.signal});let X=()=>{if(B.abort(),V1.delete($),q)w2($,Z.id);if(W.refs.delete($),W.activeRef===$)g(Z,!0),W.activeRef=null;if(W.refs.size>0)return;if(g(Z,!0),W.controller.abort(),K$(W),h.delete(Z),W.generated)Z.remove();else U2(Z,W)};return V1.set($,{tip:Z,cleanup:X}),Z}function L2($){if($.isConnected)return;V1.get($)?.cleanup?.()}function Q0($,J,Z=!1){let Q=h.get($);if(!Q)return;if(Q.activeRef=J,Y$($),Q.timer)clearTimeout(Q.timer);let z=()=>{Q.timer=null,$.hidden=!1,q$(J,$),_2($,Q)};if(Z)z();else Q.timer=setTimeout(z,B2)}var z0="[data-tooltip]";function Q$($){let J=$.target.closest?.(z0);if(!J)return;if($0(J)||m(J))return;if($.type==="mouseover"&&$.relatedTarget instanceof Node&&J.contains($.relatedTarget))return;let Z=Z0(J);if(!Z)return;let Q=h.get(Z);if($.type==="focusin")Q.focused=!0;else Q.hovered=!0;Q0(Z,J)}function x2($){let J=$.target.closest?.(z0);if(!J||!$0(J)||m(J))return;let Z=Z0(J);if(!Z)return;if($.preventDefault(),Z.hidden)Q0(Z,J,!0);else g(Z,!0)}if(typeof document<"u")document.addEventListener("mouseover",Q$),document.addEventListener("focusin",Q$),document.addEventListener("click",x2),_({[z0]:($)=>{if(m($)){let J=Z0($);if(J)Q0(J,$,!0)}return()=>L2($)}});var H$=0.2,G$=new WeakMap;function W$($){let J=$.getAttribute("data-scrollspy-root");if(!J)return null;try{return $.ownerDocument.querySelector(J)}catch{return null}}function O2($){let J=[...$.querySelectorAll("a[href^='#']")],Z=[];for(let Q of J){let z=Q.getAttribute("href").slice(1),q=z?$.ownerDocument.getElementById(z):null;if(q)Z.push({link:Q,section:q})}return Z}function R2($,J){if(J)return{top:J.getBoundingClientRect().top,height:J.clientHeight,scrollTop:J.scrollTop,scrollHeight:J.scrollHeight};let Z=$.ownerDocument,Q=Z.scrollingElement||Z.documentElement;return{top:0,height:Q.clientHeight,scrollTop:Q.scrollTop,scrollHeight:Q.scrollHeight}}function C2($,J){let Z=($.getAttribute("data-scrollspy-offset")??"").trim();if(!Z)return J*H$;let Q=Number.parseFloat(Z);if(!Number.isFinite(Q))return J*H$;return Math.max(0,Z.endsWith("%")?J*Q/100:Q)}function M2($){let J=new AbortController,Z=[],Q=0,z;function q(H){if(H===z)return;z=H;for(let G of Z)if(G.section===H)G.link.setAttribute("aria-current","location");else G.link.removeAttribute("aria-current")}function K(){if(Q=0,!Z.length)return;let H=W$($),{top:G,height:j,scrollTop:P,scrollHeight:U}=R2($,H);if(U>j&&P+j>=U-1){q(Z.at(-1).section);return}let L=G+C2($,j),w=null;for(let{section:C}of Z)if(C.getBoundingClientRect().top<=L)w=C;q(w)}function Y(H=K){if(Q)cancelAnimationFrame(Q);Q=requestAnimationFrame(H)}function W(){Z=O2($),z=void 0,K()}(W$($)??$.ownerDocument.defaultView)?.addEventListener("scroll",()=>Y(),{passive:!0,signal:J.signal}),$.ownerDocument.defaultView?.addEventListener("resize",()=>Y(),{passive:!0,signal:J.signal});let X=new MutationObserver(()=>Y(W));return X.observe($,{childList:!0,subtree:!0}),G$.set($,{rebuild:W}),W(),()=>{if(J.abort(),Q)cancelAnimationFrame(Q);X.disconnect(),G$.delete($)}}T("scrollspy",M2);function _1($){return typeof $.selectionStart==="number"?$.selectionStart:$.value.length}function I1($,J){if($.ownerDocument.activeElement!==$)return;if(typeof $.setSelectionRange!=="function")return;try{$.setSelectionRange(J,J)}catch{}}function L1($){$.dispatchEvent(new Event("input",{bubbles:!0}))}function x1($,J,Z){let Q=!1;function z(q){if(Q||q.isComposing)return;J(q)}$.addEventListener("compositionstart",()=>{Q=!0},{signal:Z}),$.addEventListener("compositionend",(q)=>{Q=!1,z(q)},{signal:Z}),$.addEventListener("input",z,{signal:Z})}var k2="input[data-filter]",B$=new Map([["numeric",A2],["decimal",y2],["lower",h2],["upper",T2],["letters",E2],["slug",f2]]);function A2($){return $.replace(/\D/gu,"")}function y2($){let J=$.replace(/,/g,"."),Z="",Q=!1;for(let z of J)if(/^\d$/u.test(z))Z+=z;else if(z==="."&&!Q)Z+=".",Q=!0;return Z}function h2($){return $.toLocaleLowerCase()}function T2($){return $.toLocaleUpperCase()}function E2($){return $.replace(/[^\p{L}]/gu,"")}function b2($){return $.normalize("NFKD").replace(/\p{M}/gu,"")}function f2($,J){let Z=J?.inputType==="insertText"&&/[^\p{L}\p{N}]$/u.test($),Q=b2($).toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/-{2,}/g,"-").replace(/^-+/,"");return Z?Q:Q.replace(/-+$/,"")}function X$($,J,Z){return J.reduce((Q,z)=>B$.get(z)(Q,Z),$)}function S2($){return $.split("|").map((J)=>J.trim().toLowerCase()).filter((J)=>B$.has(J))}function v2($){let J=$.getAttribute("data-filter")?.trim().toLowerCase();return J?S2(J):[]}function p2($){let J=v2($);if(!J.length)return;let Z=new AbortController,Q=!1;return x1($,(z)=>{if(Q)return;let q=_1($),K=$.value,Y=X$(K,J,z);if(Y===K)return;$.value=Y,I1($,X$(K.slice(0,q),J,z).length);try{Q=!0,L1($)}finally{Q=!1}},Z.signal),()=>Z.abort()}_({[k2]:p2});var u2="input[data-mask]",q0={9:($)=>/^\d$/u.test($),a:($)=>/^\p{L}$/u.test($),"*":()=>!0};function a($){return Object.hasOwn(q0,$)}function P$($,J){let Z=[...J],Q=[],z=[],q=0,K=0;$:for(let Y of $){K+=Y.length;while(q<Z.length){let W=Z[q];if(!a(W)){if(q++,Y===W)continue $;continue}if(q0[W](Y))Q.push(Y),z.push(K),q++;continue $}break}return{positions:z,raw:Q}}function r($,J){return P$($,J).raw}function c2($,J){let Z="";for(let Q=J;Q<$.length&&!a($[Q]);Q++)Z+=$[Q];return Z}function j$($,J,Z=""){let Q=Z.startsWith("insert"),z=[...J],q=0,K="";for(let Y=0;Y<z.length;Y++){let W=z[Y];if(!a(W)){if(q<$.length)K+=W;continue}let B=!1;while(q<$.length){let X=$[q];if(q++,!q0[W](X))continue;K+=X,B=!0;break}if(!B)break;if(Q&&q>=$.length){K+=c2(z,Y+1);break}}return K}function g2($,J,Z=""){if(!J)return $;return j$(r($,J),J,Z)}function m2($,J,Z){if(Z<=0)return 0;let Q=P$($,J).positions[Z-1];if(Q==null)return $.length;let z=[...J],q=0,K=0;for(;K<z.length;K++){if(!a(z[K]))continue;if(q++,q===Z)break}let Y=Q;for(K++;K<z.length;K++){let W=z[K];if(a(W)||!$.startsWith(W,Y))break;Y+=W.length}return Y}function d2($){let J=$.dataset.mask||"";if(!J)return;let Z=new AbortController,Q=!1,z=$.value;return x1($,(q)=>{if(Q)return;let K=q.inputType||"",Y=_1($),W=r($.value.slice(0,Y),J).length,B=$.value,X=g2(B,J,K),H=r(B,J).length===r(z,J).length;if(K.startsWith("delete")&&H&&X.length>B.length){let G=r(B,J),j=K==="deleteContentForward"?W:W-1;if(j>=0&&j<G.length)G.splice(j,1),W=Math.max(0,j),X=j$(G,J,K)}if(z=X,X===B)return;$.value=X,I1($,m2(X,J,W));try{Q=!0,L1($)}finally{Q=!1}},Z.signal),()=>Z.abort()}_({[u2]:d2});var U$=["--password-toggle"],l2=l0(U$),d=new Set,K0=new WeakSet;function i2($){let J=f($);return J?.localName==="input"&&(J.type==="password"||d.has(J))?J:null}function s2($){if(!$.id)return[];return $.getRootNode().querySelectorAll(`${l2}[commandfor="${CSS.escape($.id)}"]`)}function Y0($,J){if($.type=J?"text":"password",J)d.add($);else d.delete($);for(let Z of s2($))Z.setAttribute("aria-pressed",String(J))}function F$($){if($.defaultPrevented)return;for(let J of $.target.elements??[])if(d.has(J))Y0(J,!1)}function n2($){let J=$.getRootNode();if(K0.has(J))return;K0.add(J),J.addEventListener("submit",F$)}y(U$,{resolve:i2,prepare:($,J)=>{if($.setAttribute("aria-controls",J.id),!$.hasAttribute("aria-pressed"))$.setAttribute("aria-pressed","false")},handle:($,J,Z)=>{$.preventDefault();let Q=Z.type==="password";if(Q)n2(Z);Y0(Z,Q)}});if(typeof document<"u")K0.add(document),document.addEventListener("submit",F$),window.addEventListener("pagehide",()=>{for(let $ of d){if(!$.isConnected){d.delete($);continue}Y0($,!1)}});var W0="novalidate",N$=N.wasValidated,o2=e("validation"),r2=N.field,X0=N.danger,B0="validationManagedNovalidate",H0=new WeakMap,w$=new WeakMap;function G0($,J,Z){if(J<1||J>12||Z<1)return!1;let Q=new Date(Date.UTC($,J,0)).getUTCDate();return Z<=Q}function a2($){let J=$.trim(),Z=/^(\d{4})-(\d{2})-(\d{2})$/.exec(J);if(Z)return G0(Number(Z[1]),Number(Z[2]),Number(Z[3]));let Q=/^(\d{1,2})([/.-])(\d{1,2})\2(\d{4})$/.exec(J);if(!Q)return!1;let z=Number(Q[1]),q=Number(Q[3]),K=Number(Q[4]);return G0(K,q,z)||G0(K,z,q)}function t2($,J){let Z=w$.get($);if(!Z)Z=new Set,w$.set($,Z);if(Z.has(J))return;Z.add(J),console.warn(`Unknown validation rule "${J}" on ${$.name||$.id||"field"}`)}var e2={same($,J,Z){if(!Z)return!1;try{let Q=J.form?.querySelector(Z);if(!Q)return!1;return $===Q.value}catch{return!1}},number($){return/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/.test($)},digits($){return/^\d+$/.test($)},alnum($){return/^[a-z0-9]+$/i.test($)},date($){return a2($)}};function O1($){return!$||$.disabled||$.willValidate===!1||typeof $.checkValidity!=="function"||typeof $.setCustomValidity!=="function"}function V$($){return $.closest?.(`.${r2}`)||null}var P0=new WeakSet;function _$($){if(!$.classList.contains(X0))P0.add($);$.classList.add(X0)}function I$($){let J=V$($);if(!J)return;if(J.querySelector('[aria-invalid="true"], [data-validation-errors]'))_$(J);else if(P0.has(J))J.classList.remove(X0),P0.delete(J)}function L$($){if($.dataset.validationErrors==="server")return!1;$.setCustomValidity(""),delete $.dataset.validationErrors;let J=$.checkValidity(),Z=$.dataset.validationRules;if(Z){let Q=$.value.trim().length>0,z=[];for(let q of Z.split(",")){if(!Q)continue;let K=q.trim();if(!K)continue;let[Y,...W]=K.split(/\s+/),B=e2[Y];if(!B){t2($,Y),z.push(Y);continue}let X=!1;try{X=B($.value,$,...W)}catch(H){console.warn(`Validation rule "${Y}" failed on ${$.name||$.id||"field"}`,H)}if(!X)z.push(Y)}if(z.length>0)J=!1,$.setCustomValidity(z.join(", ")),$.dataset.validationErrors=z.join(",")}return J}function x$($){$.setAttribute("aria-invalid","true");let J=V$($);if(J)_$(J)}function j0($){$.removeAttribute("aria-invalid"),delete $.dataset.validationErrors,I$($)}function $4($){for(let J of $.elements){if(O1(J))continue;if(J.getAttribute("aria-invalid")==="true"&&!J.dataset.validationErrors)J.dataset.validationErrors="server";I$(J)}}function J4($){if($.dataset[B0]===void 0)return;$.removeAttribute(W0),delete $.dataset[B0]}function D$($,J){if(O1($))return;if(J==="input"&&$.dataset.validationErrors==="server")delete $.dataset.validationErrors,$.setCustomValidity("");let Z=$.dataset.validationTrigger||"",Q=$.getAttribute("aria-invalid")==="true"||$.dataset.validationErrors;if(!(J==="blur"||Z.includes(J)&&$.value.length>0)&&!Q)return;if(L$($))j0($);else x$($)}function Z4($){let J=H0.get($);if(J)return J;let Z=new AbortController;if(!$.hasAttribute(W0))$.setAttribute(W0,""),$.dataset[B0]="";$4($),$.addEventListener("focusout",(z)=>{let q=z.target;if(q instanceof Element&&q.form===$)D$(q,"blur")},{signal:Z.signal}),$.addEventListener("input",(z)=>{let q=z.target;if(q instanceof Element&&q.form===$)D$(q,"input")},{signal:Z.signal}),$.addEventListener("reset",()=>{$.classList.remove(N$);for(let z of $.elements){if(O1(z))continue;z.setCustomValidity(""),j0(z)}},{signal:Z.signal}),$.addEventListener("submit",(z)=>{if(z.submitter?.formNoValidate)return;let q=null;for(let K of $.elements){if(O1(K))continue;if(L$(K)){j0(K);continue}if(x$(K),!q)q=K}if($.classList.add(N$),!q)return;z.preventDefault(),z.stopPropagation();try{q.focus()}catch{}$.dispatchEvent(new CustomEvent(x.invalid,{bubbles:!0,detail:{form:$,firstInvalid:q,message:$.dataset.validationMessage??""}}))},{signal:Z.signal});let Q=()=>{Z.abort(),J4($),H0.delete($)};return H0.set($,Q),Q}if(typeof document<"u")_({[`form${o2}`]:($)=>Z4($)});var Q4='[data-status][role="status"]',U0="statusClasses",F0;function N0(){if(typeof document>"u")return null;return document.querySelector(Q4)}function z4($){return typeof $==="string"?$.trim().split(/\s+/).filter(Boolean):[]}function M$($){let J=$.dataset[U0];if(J)$.classList.remove(...J.split(" "));delete $.dataset[U0]}function t($,J={}){let Z=N0();if(!Z||$==null)return;clearTimeout(F0),M$(Z);let Q=z4(J.intent);if(Q.length)Z.classList.add(...Q),Z.dataset[U0]=Q.join(" ");if(Z.textContent=$,J.duration!==!1)F0=setTimeout(()=>t.clear(),J.duration??3000)}t.clear=function(){let J=N0();if(J)J.textContent="",M$(J);clearTimeout(F0)};var q4=["--status"],K4=["--status-clear"];function O$($,J){$.dispatchEvent(new CustomEvent(x.status,{bubbles:!0,detail:J}))}function Y4($){let J=$.getAttribute("data-status-duration");if(J===null)return;if(J==="false")return!1;let Z=Number(J);return Number.isFinite(Z)?Z:void 0}function R$($){let J=f($);return J&&J===N0()?J:null}function C$($,J){$.setAttribute("aria-controls",J.id)}if(typeof document<"u")document.addEventListener(x.invalid,($)=>{let J=$.detail?.message;if(J)t(J,{intent:"danger"})}),document.addEventListener(x.status,($)=>{let{message:J,intent:Z,duration:Q}=$.detail??{};if(J!=null)t(J,{intent:Z,duration:Q});else t.clear()}),y(q4,{resolve:R$,prepare:C$,handle:($,J)=>{$.preventDefault(),O$(J,{message:J.getAttribute("data-status-message"),intent:J.getAttribute("data-status-intent")??void 0,duration:Y4(J)})}}),y(K4,{resolve:R$,prepare:C$,handle:($,J)=>{$.preventDefault(),O$(J,{})}});function H4($){return $.replace(/([a-zA-Z_$][\w$-]*)\s*:|'((?:\\'|[^'])*)'/g,(J,Z,Q)=>{if(Z)return`"${Z}":`;return`"${Q.replace(/\\'/g,"'").replace(/"/g,"\\\"")}"`})}function k$($){if($==null||typeof $!=="string")return{};let J=$.trim();if(J==="")return{};let Z=J,Q;try{Q=JSON.parse(Z)}catch{let z=H4(Z);Z=z.startsWith("{")?z:`{${z}}`,Q=JSON.parse(Z)}if(Q===null||typeof Q!=="object"||Array.isArray(Q))throw TypeError("Enhancement config must be an object");return Q}var G4='script[type="application/json"][data-enhance-modules]',R1=new Map,C1=new Map,M1=new Map,W4=($)=>import($);function X4($){let J=new URL($,document.baseURI).href;if(!C1.has(J))C1.set(J,new Promise((Z,Q)=>{let z=document.createElement("script");z.src=J,z.onload=Z,z.onerror=()=>{C1.delete(J),z.remove(),Q(Error(`Unable to load script: ${J}`))},document.head.append(z)}));return C1.get(J)}function B4($){let J=new URL($,document.baseURI).href;if(!M1.has(J))M1.set(J,new Promise((Z,Q)=>{let z=document.createElement("link");z.rel="stylesheet",z.href=J,z.onload=Z,z.onerror=()=>{M1.delete(J),z.remove(),Q(Error(`Unable to load style: ${J}`))},document.head.append(z)}));return M1.get(J)}function P4($,J){return(Z)=>{let Q=new AbortController,z=Z.getAttribute("data-enhance-config"),q=k$(z??""),K=(W,B,X={})=>Z.dispatchEvent(new CustomEvent(`actual:${$}:${W}`,{bubbles:!0,detail:B,...X})),Y;try{Y=J(Z,{config:q,signal:Q.signal,emit:K})}catch(W){throw Q.abort(),W}if(Y?.then)throw Q.abort(),TypeError(`Enhancement "${$}" returned a Promise. connect() must be synchronous; use prepare() for asynchronous setup.`);if(Y!==void 0&&typeof Y!=="function")throw Q.abort(),TypeError(`Enhancement "${$}" must return a cleanup function or undefined.`);return()=>{Q.abort(),Y?.()}}}function j4($,J){if(typeof J!=="string"||J.trim()==="")throw TypeError(`Enhancement "${$}" must declare a non-empty module URL.`)}function U4($,J){j4($,J);let Z=new URL(J,document.baseURI).href,Q=R1.get($);if(Q){if(Q.url!==Z)throw Error(`Enhancement "${$}" is already declared from ${Q.url} and cannot be replaced by ${Z}.`);return Q.promise.then(()=>({name:$,status:"skipped"}))}let z=W4(Z).then(async(q)=>{if(typeof q.default!=="function")throw TypeError(`Enhancement "${$}" must export a default function.`);if(q.prepare!==void 0){if(typeof q.prepare!=="function")throw TypeError(`Enhancement "${$}" exports an invalid prepare().`);await q.prepare({resolve:(K)=>new URL(K,Z).href,loadScript:X4,loadStyle:B4})}return T($,P4($,q.default)),{name:$,status:"loaded"}}).catch((q)=>{if(R1.get($)?.promise===z)R1.delete($);throw q});return R1.set($,{url:Z,promise:z}),z}async function F4($){let J=Object.entries($),Z=await Promise.allSettled(J.map(([z,q])=>U4(z,q))),Q={names:[],failed:[],skipped:[]};return Z.forEach((z,q)=>{let K=J[q][0];if(z.status==="rejected")Q.failed.push({name:K,error:z.reason});else if(z.value.status==="skipped")Q.skipped.push(K);else Q.names.push(K)}),Q}function N4($){let J=JSON.parse($);if(typeof J!=="object"||J===null||Array.isArray(J))throw TypeError("Manifest must be a JSON object.");return Object.entries(J)}async function w4($){let J=N4($.textContent),Z=await F4(Object.fromEntries(J));for(let Q of Z.failed)console.error(`Enhancement "${Q.name}" failed to load:`,Q.error);if(Z.failed.length===0)$.remove();return Z}function A$(){return _({[G4]:($)=>{w4($).catch((J)=>{console.error("Failed to parse enhancement manifest:",J)})}})}A$();
1
+ var M=new WeakMap,b=new WeakMap;function N(){return{refresh(){},disconnect(){}}}function T(e){return e?.nodeType===1||e?.nodeType===9||e?.nodeType===11}function _(e){let t=new Set,r="";function n(o){try{if(e.querySelector?.(o),e.nodeType===1)e.matches(o);return!0}catch(c){return console.error(`Invalid enhancer selector "${o}"`,c),!1}}function s(){r=[...t].flatMap((o)=>o.selectors).join(",")}function a(o,c){if(c?.nodeType!==1)return;let i=o.instances.get(c);for(let f of o.selectors){if(!c.matches(f))continue;if(i?.has(f))continue;let d;try{d=o.enhancers[f](c)}catch(U){console.error(`Enhancer failed for selector "${f}"`,U);continue}if(!i)i=new Map,o.instances.set(c,i);i.set(f,typeof d==="function"?d:null)}}function u(o,c){let i=o.instances.get(c);if(!i)return;for(let f of i.values())try{f?.()}catch(d){console.error("Enhancer cleanup failed",d)}o.instances.delete(c)}function l(o,c){if(!T(c))return;if(c.nodeType===1)a(o,c);if(o.selectorString)c.querySelectorAll?.(o.selectorString).forEach((i)=>{a(o,i)})}function p(o){if(!T(o)||!r)return;if(o.nodeType===1)for(let c of t)a(c,o);o.querySelectorAll?.(r).forEach((c)=>{for(let i of t)a(i,c)})}function g(){for(let o of t)for(let c of Array.from(o.instances.keys()))if(!c.isConnected||!e.contains(c))u(o,c)}let h=new MutationObserver((o)=>{let c=!1;for(let i of o){for(let f of i.addedNodes)p(f);if(i.removedNodes.length>0)c=!0}if(c)g()});return h.observe(e,{childList:!0,subtree:!0}),{add(o){let c=Object.keys(o).filter(n);if(!c.length)return null;let f={disconnected:!1,enhancers:Object.fromEntries(c.map((d)=>[d,o[d]])),instances:new Map,selectors:c,selectorString:c.join(",")};return t.add(f),s(),l(f,e),f},refresh(o,c){if(o.disconnected)return;l(o,c)},remove(o){if(o.disconnected)return;o.disconnected=!0;for(let c of Array.from(o.instances.keys()))u(o,c);if(t.delete(o),s(),t.size===0)h.disconnect(),M.delete(e)}}}var A=/^[a-z][a-z0-9-]*$/;function O(e){if(!A.test(e))throw TypeError(`Invalid enhancement name: ${e}`);return`[data-enhance~="${e}"]`}function S(e,t,r){if(typeof document>"u")return N();if(O(e),typeof t!=="function")throw TypeError("registerEnhancement() requires a function init.");r??=document.documentElement;let n=b.get(r);if(!n)n=new Map,b.set(r,n);if(n.has(e))throw Error(`Enhancement "${e}" is already registered on this root.`);let s=E({[O(e)]:t},r);return n.set(e,s),{refresh:(a)=>s.refresh(a),disconnect:()=>{if(s.disconnect(),n.get(e)===s)n.delete(e);if(n.size===0)b.delete(r)}}}function R(e){let t=M.get(e);if(!t)t=_(e),M.set(e,t);return t}function E(e,t){if(typeof document>"u")return N();t??=document.documentElement;let r=R(t),n=r.add(e);if(!n)return N();return{refresh:(s)=>r.refresh(n,s),disconnect:()=>{r.remove(n)}}}function j(e){return e.replace(/([a-zA-Z_$][\w$-]*)\s*:|'((?:\\'|[^'])*)'/g,(t,r,n)=>{if(r)return`"${r}":`;return`"${n.replace(/\\'/g,"'").replace(/"/g,"\\\"")}"`})}function v(e){if(e==null||typeof e!=="string")return{};let t=e.trim();if(t==="")return{};let r=t,n;try{n=JSON.parse(r)}catch{let s=j(r);r=s.startsWith("{")?s:`{${s}}`,n=JSON.parse(r)}if(n===null||typeof n!=="object"||Array.isArray(n))throw TypeError("Enhancement config must be an object");return n}var L='script[type="application/json"][data-enhance-modules]',m=new Map,y=new Map,w=new Map,k=(e)=>import(e);function D(e){let t=new URL(e,document.baseURI).href;if(!y.has(t))y.set(t,new Promise((r,n)=>{let s=document.createElement("script");s.src=t,s.onload=r,s.onerror=()=>{y.delete(t),s.remove(),n(Error(`Unable to load script: ${t}`))},document.head.append(s)}));return y.get(t)}function C(e){let t=new URL(e,document.baseURI).href;if(!w.has(t))w.set(t,new Promise((r,n)=>{let s=document.createElement("link");s.rel="stylesheet",s.href=t,s.onload=r,s.onerror=()=>{w.delete(t),s.remove(),n(Error(`Unable to load style: ${t}`))},document.head.append(s)}));return w.get(t)}function I(e,t){return(r)=>{let n=new AbortController,s=r.getAttribute("data-enhance-config"),a=v(s??""),u=(p,g,h={})=>r.dispatchEvent(new CustomEvent(`actual:${e}:${p}`,{bubbles:!0,detail:g,...h})),l;try{l=t(r,{config:a,signal:n.signal,emit:u})}catch(p){throw n.abort(),p}if(l?.then)throw n.abort(),TypeError(`Enhancement "${e}" returned a Promise. connect() must be synchronous; use prepare() for asynchronous setup.`);if(l!==void 0&&typeof l!=="function")throw n.abort(),TypeError(`Enhancement "${e}" must return a cleanup function or undefined.`);return()=>{n.abort(),l?.()}}}function J(e,t){if(typeof t!=="string"||t.trim()==="")throw TypeError(`Enhancement "${e}" must declare a non-empty module URL.`)}function F(e,t){J(e,t);let r=new URL(t,document.baseURI).href,n=m.get(e);if(n){if(n.url!==r)throw Error(`Enhancement "${e}" is already declared from ${n.url} and cannot be replaced by ${r}.`);return n.promise.then(()=>({name:e,status:"skipped"}))}let s=k(r).then(async(a)=>{if(typeof a.default!=="function")throw TypeError(`Enhancement "${e}" must export a default function.`);if(a.prepare!==void 0){if(typeof a.prepare!=="function")throw TypeError(`Enhancement "${e}" exports an invalid prepare().`);await a.prepare({resolve:(u)=>new URL(u,r).href,loadScript:D,loadStyle:C})}return S(e,I(e,a.default)),{name:e,status:"loaded"}}).catch((a)=>{if(m.get(e)?.promise===s)m.delete(e);throw a});return m.set(e,{url:r,promise:s}),s}async function q(e){let t=Object.entries(e),r=await Promise.allSettled(t.map(([s,a])=>F(s,a))),n={names:[],failed:[],skipped:[]};return r.forEach((s,a)=>{let u=t[a][0];if(s.status==="rejected")n.failed.push({name:u,error:s.reason});else if(s.value.status==="skipped")n.skipped.push(u);else n.names.push(u)}),n}function z(e){let t=JSON.parse(e);if(typeof t!=="object"||t===null||Array.isArray(t))throw TypeError("Manifest must be a JSON object.");return Object.entries(t)}async function P(e){let t=z(e.textContent),r=await q(Object.fromEntries(t));for(let n of r.failed)console.error(`Enhancement "${n.name}" failed to load:`,n.error);if(r.failed.length===0)e.remove();return r}function x(){return E({[L]:(e)=>{P(e).catch((t)=>{console.error("Failed to parse enhancement manifest:",t)})}})}x();