@epfl-sti/poesis 0.3.4 → 0.3.6

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.
package/dist/poesis.js CHANGED
@@ -1,23 +1,23 @@
1
1
  (function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-600:oklch(57.7% .245 27.325);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-xl:36rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 16px #0000001a;--shadow-xl:0 8px 32px #0000001f;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-epfl-red:red;--color-epfl-red-dark:#b51f1f;--color-epfl-leman:#00a79f;--color-epfl-canard:#007480;--color-epfl-canard-dark:#004248;--color-primary:var(--action-primary);--color-primary-hover:var(--action-primary-hover);--color-bg-primary:var(--bg-primary);--color-bg-secondary:var(--bg-secondary);--color-bg-tertiary:var(--bg-tertiary);--color-border:var(--border-default);--color-border-strong:var(--border-strong);--color-text-primary:var(--text-primary);--color-text-secondary:var(--text-secondary);--color-text-muted:var(--text-muted);--color-success:var(--semantic-success);--color-success-bg:var(--semantic-success-bg);--color-warning:var(--semantic-warning);--color-warning-bg:var(--semantic-warning-bg);--color-error:var(--semantic-error);--color-error-bg:var(--semantic-error-bg);--color-info:var(--semantic-info);--color-info-bg:var(--semantic-info-bg);--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--text-h1:2rem;--text-h1--line-height:1.2;--text-h2:1.5rem;--text-h2--line-height:1.3;--text-h3:1.25rem;--text-h3--line-height:1.4;--text-body:.9375rem;--text-body--line-height:1.5;--text-small:.8125rem;--text-small--line-height:1.5;--text-caption:.75rem;--text-caption--line-height:1.4}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.right-0{right:calc(var(--spacing) * 0)}.right-lg{right:var(--spacing-lg)}.bottom-lg{bottom:var(--spacing-lg)}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.mt-lg{margin-top:var(--spacing-lg)}.mt-md{margin-top:var(--spacing-md)}.mt-sm{margin-top:var(--spacing-sm)}.mt-xs{margin-top:var(--spacing-xs)}.mr-lg{margin-right:var(--spacing-lg)}.mr-sm{margin-right:var(--spacing-sm)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-md{margin-bottom:var(--spacing-md)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-xs{margin-bottom:var(--spacing-xs)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-full{width:100%;height:100%}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-1\\.5{height:calc(var(--spacing) * 1.5)}.h-2\\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-20{height:calc(var(--spacing) * 20)}.h-64{height:calc(var(--spacing) * 64)}.h-96{height:calc(var(--spacing) * 96)}.h-\\[30px\\]{height:30px}.h-full{height:100%}.h-screen{height:100vh}.\\!min-h-8{min-height:calc(var(--spacing) * 8)!important}.\\!min-h-10{min-height:calc(var(--spacing) * 10)!important}.\\!min-h-12{min-height:calc(var(--spacing) * 12)!important}.min-h-screen{min-height:100vh}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-16{width:calc(var(--spacing) * 16)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-\\[4px\\]{width:4px}.w-\\[8px\\]{width:8px}.w-\\[16px\\]{width:16px}.w-\\[24px\\]{width:24px}.w-\\[32px\\]{width:32px}.w-\\[48px\\]{width:48px}.w-auto{width:auto}.w-full{width:100%}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\\[24rem\\]{max-width:24rem}.max-w-\\[32rem\\]{max-width:32rem}.max-w-\\[42rem\\]{max-width:42rem}.max-w-\\[600px\\]{max-width:600px}.max-w-\\[var\\(--container-6xl\\)\\]{max-width:var(--container-6xl)}.max-w-\\[var\\(--container-md\\)\\]{max-width:var(--container-md)}.max-w-\\[var\\(--container-xl\\)\\]{max-width:var(--container-xl)}.max-w-\\[var\\(--container-xs\\)\\]{max-width:var(--container-xs)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--spacing-md)}.max-w-screen{max-width:100vw}.max-w-sm{max-width:var(--spacing-sm)}.max-w-xl{max-width:var(--spacing-xl)}.max-w-xs{max-width:var(--spacing-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-11{min-width:calc(var(--spacing) * 11)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-\\[10rem\\]{min-width:10rem}.min-w-\\[280px\\]{min-width:280px}.min-w-\\[500px\\]{min-width:500px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-dialog-in{animation:.2s ease-out dialog-in}.animate-floating-in{animation:.15s ease-out floating-in}.animate-slide-in{animation:.25s ease-out slide-in}.animate-spin{animation:var(--animate-spin)}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2xl{gap:var(--spacing-2xl)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-lg{gap:var(--spacing-lg)}.gap-md{gap:var(--spacing-md)}.gap-px{gap:1px}.gap-sm{gap:var(--spacing-sm)}.gap-xl{gap:var(--spacing-xl)}.gap-xs{gap:var(--spacing-xs)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--color-border)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.\\!rounded-lg{border-radius:var(--radius-lg)!important}.\\!rounded-md{border-radius:var(--radius-md)!important}.\\!rounded-sm{border-radius:var(--radius-sm)!important}.rounded{border-radius:.25rem}.rounded-full{border-radius:var(--radius-full)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.\\!border{border-style:var(--tw-border-style)!important;border-width:1px!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-2{border-right-style:var(--tw-border-style);border-right-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.\\!border-border{border-color:var(--color-border)!important}.\\!border-error{border-color:var(--color-error)!important}.\\!border-primary{border-color:var(--color-primary)!important}.border-border{border-color:var(--color-border)}.border-border-strong{border-color:var(--color-border-strong)}.border-error,.border-error\\/30{border-color:var(--color-error)}@supports (color:color-mix(in lab, red, red)){.border-error\\/30{border-color:color-mix(in oklab, var(--color-error) 30%, transparent)}}.border-info\\/30{border-color:var(--color-info)}@supports (color:color-mix(in lab, red, red)){.border-info\\/30{border-color:color-mix(in oklab, var(--color-info) 30%, transparent)}}.border-primary{border-color:var(--color-primary)}.border-red-600{border-color:var(--color-red-600)}.border-success\\/30{border-color:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.border-success\\/30{border-color:color-mix(in oklab, var(--color-success) 30%, transparent)}}.border-transparent{border-color:#0000}.border-warning\\/30{border-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\\/30{border-color:color-mix(in oklab, var(--color-warning) 30%, transparent)}}.\\!bg-bg-tertiary{background-color:var(--color-bg-tertiary)!important}.\\!bg-primary{background-color:var(--color-primary)!important}.bg-bg-primary{background-color:var(--color-bg-primary)}.bg-bg-secondary{background-color:var(--color-bg-secondary)}.bg-bg-tertiary,.bg-bg-tertiary\\/50{background-color:var(--color-bg-tertiary)}@supports (color:color-mix(in lab, red, red)){.bg-bg-tertiary\\/50{background-color:color-mix(in oklab, var(--color-bg-tertiary) 50%, transparent)}}.bg-black\\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-border-strong{background-color:var(--color-border-strong)}.bg-epfl-canard{background-color:var(--color-epfl-canard)}.bg-epfl-canard-dark{background-color:var(--color-epfl-canard-dark)}.bg-epfl-leman{background-color:var(--color-epfl-leman)}.bg-epfl-red{background-color:var(--color-epfl-red)}.bg-epfl-red-dark{background-color:var(--color-epfl-red-dark)}.bg-error{background-color:var(--color-error)}.bg-error-bg{background-color:var(--color-error-bg)}.bg-info{background-color:var(--color-info)}.bg-info-bg{background-color:var(--color-info-bg)}.bg-primary,.bg-primary\\/5{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\\/5{background-color:color-mix(in oklab, var(--color-primary) 5%, transparent)}}.bg-primary\\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\\/10{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)}}.bg-success{background-color:var(--color-success)}.bg-success-bg{background-color:var(--color-success-bg)}.bg-text-muted{background-color:var(--color-text-muted)}.bg-text-primary{background-color:var(--color-text-primary)}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--color-warning)}.bg-warning-bg{background-color:var(--color-warning-bg)}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2xl{padding:var(--spacing-2xl)}.p-16{padding:calc(var(--spacing) * 16)}.p-lg{padding:var(--spacing-lg)}.p-md{padding:var(--spacing-md)}.p-sm{padding:var(--spacing-sm)}.p-xl{padding:var(--spacing-xl)}.p-xs{padding:var(--spacing-xs)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-lg{padding-inline:var(--spacing-lg)}.px-md{padding-inline:var(--spacing-md)}.px-sm{padding-inline:var(--spacing-sm)}.px-xs{padding-inline:var(--spacing-xs)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-2xl{padding-block:var(--spacing-2xl)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-lg{padding-block:var(--spacing-lg)}.py-md{padding-block:var(--spacing-md)}.py-sm{padding-block:var(--spacing-sm)}.py-xl{padding-block:var(--spacing-xl)}.py-xs{padding-block:var(--spacing-xs)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-14{padding-top:calc(var(--spacing) * 14)}.pt-md{padding-top:var(--spacing-md)}.pt-sm{padding-top:var(--spacing-sm)}.pt-xl{padding-top:var(--spacing-xl)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-11{padding-right:calc(var(--spacing) * 11)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-11{padding-left:calc(var(--spacing) * 11)}.pl-14{padding-left:calc(var(--spacing) * 14)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.\\!text-body{font-size:var(--text-body)!important;line-height:var(--tw-leading,var(--text-body--line-height))!important}.\\!text-small{font-size:var(--text-small)!important;line-height:var(--tw-leading,var(--text-small--line-height))!important}.text-body{font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height))}.text-caption{font-size:var(--text-caption);line-height:var(--tw-leading,var(--text-caption--line-height))}.text-h1{font-size:var(--text-h1);line-height:var(--tw-leading,var(--text-h1--line-height))}.text-h2{font-size:var(--text-h2);line-height:var(--tw-leading,var(--text-h2--line-height))}.text-h3{font-size:var(--text-h3);line-height:var(--tw-leading,var(--text-h3--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-small{font-size:var(--text-small);line-height:var(--tw-leading,var(--text-small--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-\\[1\\.2\\]{--tw-leading:1.2;line-height:1.2}.leading-\\[1\\.3\\]{--tw-leading:1.3;line-height:1.3}.leading-\\[1\\.4\\]{--tw-leading:1.4;line-height:1.4}.leading-\\[1\\.5\\]{--tw-leading:1.5;line-height:1.5}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.\\!text-white{color:var(--color-white)!important}.text-bg-primary{color:var(--color-bg-primary)}.text-epfl-canard{color:var(--color-epfl-canard)}.text-epfl-leman{color:var(--color-epfl-leman)}.text-epfl-red{color:var(--color-epfl-red)}.text-error{color:var(--color-error)}.text-info{color:var(--color-info)}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-text-muted{color:var(--color-text-muted)}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.text-warning{color:var(--color-warning)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.decoration-dotted{text-decoration-style:dotted}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-100{opacity:1}.\\!shadow-lg{--tw-shadow:0 4px 16px var(--tw-shadow-color,#0000001a)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.\\!shadow-sm{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.shadow-lg{--tw-shadow:0 4px 16px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 2px 8px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 8px 32px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\\!ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.\\!ring-primary{--tw-ring-color:var(--color-primary)!important}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.peer-checked\\:bg-primary:is(:where(.peer):checked~*){background-color:var(--color-primary)}.peer-focus-visible\\:ring-2:is(:where(.peer):focus-visible~*){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.peer-focus-visible\\:ring-primary:is(:where(.peer):focus-visible~*){--tw-ring-color:var(--color-primary)}.peer-focus-visible\\:ring-offset-2:is(:where(.peer):focus-visible~*){--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.peer-focus-visible\\:ring-offset-bg-primary:is(:where(.peer):focus-visible~*){--tw-ring-offset-color:var(--color-bg-primary)}.peer-disabled\\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.placeholder\\:text-text-muted::placeholder{color:var(--color-text-muted)}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:top-0\\.5:after{content:var(--tw-content);top:calc(var(--spacing) * .5)}.after\\:left-0\\.5:after{content:var(--tw-content);left:calc(var(--spacing) * .5)}.after\\:size-5:after{content:var(--tw-content);width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.after\\:rounded-full:after{content:var(--tw-content);border-radius:var(--radius-full)}.after\\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\\:shadow-sm:after{content:var(--tw-content);--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.after\\:transition-transform:after{content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\\:content-\\[\\'\\'\\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\\:after\\:translate-x-5:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.checked\\:border-\\[5px\\]:checked{border-style:var(--tw-border-style);border-width:5px}.checked\\:border-primary:checked{border-color:var(--color-primary)}.checked\\:bg-primary:checked{background-color:var(--color-primary)}.checked\\:bg-\\[url\\(\\'data\\:image\\/svg\\+xml\\,\\%3Csvg\\%20viewBox\\%3D\\%220\\%200\\%2016\\%2016\\%22\\%20fill\\%3D\\%22white\\%22\\%20xmlns\\%3D\\%22http\\%3A\\%2F\\%2Fwww\\.w3\\.org\\%2F2000\\%2Fsvg\\%22\\%3E\\%3Cpath\\%20d\\%3D\\%22M12\\.207\\%204\\.793a1\\%201\\%200\\%20010\\%201\\.414l-5\\%205a1\\%201\\%200\\%2001-1\\.414\\%200l-2-2a1\\%201\\%200\\%20011\\.414-1\\.414L6\\.5\\%209\\.086l4\\.293-4\\.293a1\\%201\\%200\\%20011\\.414\\%200z\\%22\\%2F\\%3E\\%3C\\%2Fsvg\\%3E\\'\\)\\]:checked{background-image:url(data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22white%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.207%204.793a1%201%200%20010%201.414l-5%205a1%201%200%2001-1.414%200l-2-2a1%201%200%20011.414-1.414L6.5%209.086l4.293-4.293a1%201%200%20011.414%200z%22%2F%3E%3C%2Fsvg%3E)}.checked\\:bg-center:checked{background-position:50%}.checked\\:bg-no-repeat:checked{background-repeat:no-repeat}.indeterminate\\:border-primary:indeterminate{border-color:var(--color-primary)}.indeterminate\\:bg-primary:indeterminate{background-color:var(--color-primary)}.indeterminate\\:bg-\\[url\\(\\'data\\:image\\/svg\\+xml\\,\\%3Csvg\\%20viewBox\\%3D\\%220\\%200\\%2016\\%2016\\%22\\%20fill\\%3D\\%22white\\%22\\%20xmlns\\%3D\\%22http\\%3A\\%2F\\%2Fwww\\.w3\\.org\\%2F2000\\%2Fsvg\\%22\\%3E\\%3Crect\\%20x\\%3D\\%223\\%22\\%20y\\%3D\\%227\\%22\\%20width\\%3D\\%2210\\%22\\%20height\\%3D\\%222\\%22\\%20rx\\%3D\\%221\\%22\\%2F\\%3E\\%3C\\%2Fsvg\\%3E\\'\\)\\]:indeterminate{background-image:url(data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22white%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%223%22%20y%3D%227%22%20width%3D%2210%22%20height%3D%222%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E)}.indeterminate\\:bg-center:indeterminate{background-position:50%}.indeterminate\\:bg-no-repeat:indeterminate{background-repeat:no-repeat}@media (hover:hover){.hover\\:border-border-strong:hover{border-color:var(--color-border-strong)}.hover\\:border-error:hover{border-color:var(--color-error)}.hover\\:border-primary:hover{border-color:var(--color-primary)}.hover\\:bg-bg-secondary:hover{background-color:var(--color-bg-secondary)}.hover\\:bg-bg-tertiary:hover,.hover\\:bg-bg-tertiary\\/70:hover{background-color:var(--color-bg-tertiary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-bg-tertiary\\/70:hover{background-color:color-mix(in oklab, var(--color-bg-tertiary) 70%, transparent)}}.hover\\:bg-error-bg:hover{background-color:var(--color-error-bg)}.hover\\:bg-error\\/80:hover{background-color:var(--color-error)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-error\\/80:hover{background-color:color-mix(in oklab, var(--color-error) 80%, transparent)}}.hover\\:bg-primary-hover:hover{background-color:var(--color-primary-hover)}.hover\\:text-primary:hover{color:var(--color-primary)}.hover\\:text-text-primary:hover{color:var(--color-text-primary)}.hover\\:text-text-secondary:hover{color:var(--color-text-secondary)}.hover\\:opacity-90:hover{opacity:.9}}.focus\\:border-error:focus{border-color:var(--color-error)}.focus\\:border-primary:focus{border-color:var(--color-primary)}.focus\\:bg-bg-tertiary:focus{background-color:var(--color-bg-tertiary)}.focus\\:bg-error-bg:focus{background-color:var(--color-error-bg)}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\\:ring-error:focus{--tw-ring-color:var(--color-error)}.focus\\:ring-primary:focus{--tw-ring-color:var(--color-primary)}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\:ring-epfl-canard:focus-visible{--tw-ring-color:var(--color-epfl-canard)}.focus-visible\\:ring-error:focus-visible{--tw-ring-color:var(--color-error)}.focus-visible\\:ring-primary:focus-visible{--tw-ring-color:var(--color-primary)}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\\:ring-offset-bg-primary:focus-visible{--tw-ring-offset-color:var(--color-bg-primary)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-bg-secondary:disabled{background-color:var(--color-bg-secondary)}.disabled\\:opacity-50:disabled{opacity:.5}@media (width>=40rem){.sm\\:col-span-2{grid-column:span 2/span 2}.sm\\:w-1\\/3{width:33.3333%}.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\\:flex-row{flex-direction:row}.sm\\:gap-lg{gap:var(--spacing-lg)}}@media (width>=48rem){.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=64rem){.lg\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\\:px-lg{padding-inline:var(--spacing-lg)}}.\\[\\&\\>svg\\]\\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\\[\\&\\>svg\\]\\:size-5>svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-primary:#fff;--bg-secondary:#f5f5f5;--bg-tertiary:#e6e6e6;--border-default:#d5d5d5;--border-strong:#c1c1c1;--text-primary:#212121;--text-secondary:#707070;--text-muted:#8e8e8e;--semantic-success:#1b874b;--semantic-success-bg:#e8f5e9;--semantic-warning:#d4860a;--semantic-warning-bg:#fff3e0;--semantic-error:#d32f2f;--semantic-error-bg:#ffebee;--semantic-info:#1976d2;--semantic-info-bg:#e3f2fd;--action-primary:#007480;--action-primary-hover:#004248;--logo-filter:brightness(0);--logo-opacity:.5}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-primary:#1a1a1a;--bg-secondary:#242424;--bg-tertiary:#2e2e2e;--border-default:#3a3a3a;--border-strong:#505050;--text-primary:#f0f0f0;--text-secondary:#a0a0a0;--text-muted:#707070;--semantic-success:#34d37a;--semantic-success-bg:#1a2e1a;--semantic-warning:#ffad33;--semantic-warning-bg:#2e2410;--semantic-error:#ff6b6b;--semantic-error-bg:#2e1515;--semantic-info:#64b5f6;--semantic-info-bg:#152538;--action-primary:#009ba6;--action-primary-hover:#007480;--logo-filter:brightness(0) invert(1);--logo-opacity:1;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 2px 8px #0006;--shadow-lg:0 4px 16px #00000080;--shadow-xl:0 8px 32px #0009}@keyframes slide-in{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}@keyframes dialog-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes floating-in{0%{opacity:0}to{opacity:1}}body{font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--text-body--line-height);color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.poesis-desktop-flex{display:none}.poesis-mobile-only{display:flex}@media (width>=1024px){.poesis-desktop-flex{display:flex}.poesis-mobile-only{display:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-600:oklch(57.7% .245 27.325);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-xl:36rem;--container-4xl:56rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 16px #0000001a;--shadow-xl:0 8px 32px #0000001f;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-epfl-red:red;--color-epfl-red-dark:#b51f1f;--color-epfl-leman:#00a79f;--color-epfl-canard:#007480;--color-epfl-canard-dark:#004248;--color-primary:var(--action-primary);--color-primary-hover:var(--action-primary-hover);--color-bg-primary:var(--bg-primary);--color-bg-secondary:var(--bg-secondary);--color-bg-tertiary:var(--bg-tertiary);--color-border:var(--border-default);--color-border-strong:var(--border-strong);--color-text-primary:var(--text-primary);--color-text-secondary:var(--text-secondary);--color-text-muted:var(--text-muted);--color-success:var(--semantic-success);--color-success-bg:var(--semantic-success-bg);--color-warning:var(--semantic-warning);--color-warning-bg:var(--semantic-warning-bg);--color-error:var(--semantic-error);--color-error-bg:var(--semantic-error-bg);--color-info:var(--semantic-info);--color-info-bg:var(--semantic-info-bg);--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--text-h1:2rem;--text-h1--line-height:1.2;--text-h2:1.5rem;--text-h2--line-height:1.3;--text-h3:1.25rem;--text-h3--line-height:1.4;--text-body:.9375rem;--text-body--line-height:1.5;--text-small:.8125rem;--text-small--line-height:1.5;--text-caption:.75rem;--text-caption--line-height:1.4}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.right-0{right:calc(var(--spacing) * 0)}.right-lg{right:var(--spacing-lg)}.bottom-lg{bottom:var(--spacing-lg)}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.mt-lg{margin-top:var(--spacing-lg)}.mt-md{margin-top:var(--spacing-md)}.mt-sm{margin-top:var(--spacing-sm)}.mt-xs{margin-top:var(--spacing-xs)}.mr-lg{margin-right:var(--spacing-lg)}.mr-sm{margin-right:var(--spacing-sm)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-md{margin-bottom:var(--spacing-md)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-xs{margin-bottom:var(--spacing-xs)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-full{width:100%;height:100%}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-1\\.5{height:calc(var(--spacing) * 1.5)}.h-2\\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-20{height:calc(var(--spacing) * 20)}.h-64{height:calc(var(--spacing) * 64)}.h-96{height:calc(var(--spacing) * 96)}.h-\\[30px\\]{height:30px}.h-full{height:100%}.h-screen{height:100vh}.\\!min-h-8{min-height:calc(var(--spacing) * 8)!important}.\\!min-h-10{min-height:calc(var(--spacing) * 10)!important}.\\!min-h-12{min-height:calc(var(--spacing) * 12)!important}.min-h-screen{min-height:100vh}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-16{width:calc(var(--spacing) * 16)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-\\[4px\\]{width:4px}.w-\\[8px\\]{width:8px}.w-\\[16px\\]{width:16px}.w-\\[24px\\]{width:24px}.w-\\[32px\\]{width:32px}.w-\\[48px\\]{width:48px}.w-auto{width:auto}.w-full{width:100%}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\\[24rem\\]{max-width:24rem}.max-w-\\[32rem\\]{max-width:32rem}.max-w-\\[42rem\\]{max-width:42rem}.max-w-\\[600px\\]{max-width:600px}.max-w-\\[var\\(--container-4xl\\)\\]{max-width:var(--container-4xl)}.max-w-\\[var\\(--container-6xl\\)\\]{max-width:var(--container-6xl)}.max-w-\\[var\\(--container-md\\)\\]{max-width:var(--container-md)}.max-w-\\[var\\(--container-xl\\)\\]{max-width:var(--container-xl)}.max-w-\\[var\\(--container-xs\\)\\]{max-width:var(--container-xs)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--spacing-md)}.max-w-screen{max-width:100vw}.max-w-sm{max-width:var(--spacing-sm)}.max-w-xl{max-width:var(--spacing-xl)}.max-w-xs{max-width:var(--spacing-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-11{min-width:calc(var(--spacing) * 11)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-\\[10rem\\]{min-width:10rem}.min-w-\\[280px\\]{min-width:280px}.min-w-\\[500px\\]{min-width:500px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-dialog-in{animation:.2s ease-out dialog-in}.animate-floating-in{animation:.15s ease-out floating-in}.animate-slide-in{animation:.25s ease-out slide-in}.animate-spin{animation:var(--animate-spin)}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2xl{gap:var(--spacing-2xl)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-lg{gap:var(--spacing-lg)}.gap-md{gap:var(--spacing-md)}.gap-px{gap:1px}.gap-sm{gap:var(--spacing-sm)}.gap-xl{gap:var(--spacing-xl)}.gap-xs{gap:var(--spacing-xs)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--color-border)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.\\!rounded-lg{border-radius:var(--radius-lg)!important}.\\!rounded-md{border-radius:var(--radius-md)!important}.\\!rounded-sm{border-radius:var(--radius-sm)!important}.rounded{border-radius:.25rem}.rounded-full{border-radius:var(--radius-full)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.\\!border{border-style:var(--tw-border-style)!important;border-width:1px!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-2{border-right-style:var(--tw-border-style);border-right-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.\\!border-border{border-color:var(--color-border)!important}.\\!border-error{border-color:var(--color-error)!important}.\\!border-primary{border-color:var(--color-primary)!important}.border-border{border-color:var(--color-border)}.border-border-strong{border-color:var(--color-border-strong)}.border-error,.border-error\\/30{border-color:var(--color-error)}@supports (color:color-mix(in lab, red, red)){.border-error\\/30{border-color:color-mix(in oklab, var(--color-error) 30%, transparent)}}.border-info\\/30{border-color:var(--color-info)}@supports (color:color-mix(in lab, red, red)){.border-info\\/30{border-color:color-mix(in oklab, var(--color-info) 30%, transparent)}}.border-primary{border-color:var(--color-primary)}.border-red-600{border-color:var(--color-red-600)}.border-success\\/30{border-color:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.border-success\\/30{border-color:color-mix(in oklab, var(--color-success) 30%, transparent)}}.border-transparent{border-color:#0000}.border-warning\\/30{border-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\\/30{border-color:color-mix(in oklab, var(--color-warning) 30%, transparent)}}.\\!bg-bg-tertiary{background-color:var(--color-bg-tertiary)!important}.\\!bg-primary{background-color:var(--color-primary)!important}.bg-bg-primary{background-color:var(--color-bg-primary)}.bg-bg-secondary{background-color:var(--color-bg-secondary)}.bg-bg-tertiary,.bg-bg-tertiary\\/50{background-color:var(--color-bg-tertiary)}@supports (color:color-mix(in lab, red, red)){.bg-bg-tertiary\\/50{background-color:color-mix(in oklab, var(--color-bg-tertiary) 50%, transparent)}}.bg-black\\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-border-strong{background-color:var(--color-border-strong)}.bg-epfl-canard{background-color:var(--color-epfl-canard)}.bg-epfl-canard-dark{background-color:var(--color-epfl-canard-dark)}.bg-epfl-leman{background-color:var(--color-epfl-leman)}.bg-epfl-red{background-color:var(--color-epfl-red)}.bg-epfl-red-dark{background-color:var(--color-epfl-red-dark)}.bg-error{background-color:var(--color-error)}.bg-error-bg{background-color:var(--color-error-bg)}.bg-info{background-color:var(--color-info)}.bg-info-bg{background-color:var(--color-info-bg)}.bg-primary,.bg-primary\\/5{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\\/5{background-color:color-mix(in oklab, var(--color-primary) 5%, transparent)}}.bg-primary\\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\\/10{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)}}.bg-success{background-color:var(--color-success)}.bg-success-bg{background-color:var(--color-success-bg)}.bg-text-muted{background-color:var(--color-text-muted)}.bg-text-primary{background-color:var(--color-text-primary)}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--color-warning)}.bg-warning-bg{background-color:var(--color-warning-bg)}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2xl{padding:var(--spacing-2xl)}.p-16{padding:calc(var(--spacing) * 16)}.p-lg{padding:var(--spacing-lg)}.p-md{padding:var(--spacing-md)}.p-sm{padding:var(--spacing-sm)}.p-xl{padding:var(--spacing-xl)}.p-xs{padding:var(--spacing-xs)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-lg{padding-inline:var(--spacing-lg)}.px-md{padding-inline:var(--spacing-md)}.px-sm{padding-inline:var(--spacing-sm)}.px-xs{padding-inline:var(--spacing-xs)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-2xl{padding-block:var(--spacing-2xl)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-lg{padding-block:var(--spacing-lg)}.py-md{padding-block:var(--spacing-md)}.py-sm{padding-block:var(--spacing-sm)}.py-xl{padding-block:var(--spacing-xl)}.py-xs{padding-block:var(--spacing-xs)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-14{padding-top:calc(var(--spacing) * 14)}.pt-md{padding-top:var(--spacing-md)}.pt-sm{padding-top:var(--spacing-sm)}.pt-xl{padding-top:var(--spacing-xl)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-11{padding-right:calc(var(--spacing) * 11)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-11{padding-left:calc(var(--spacing) * 11)}.pl-14{padding-left:calc(var(--spacing) * 14)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.\\!text-body{font-size:var(--text-body)!important;line-height:var(--tw-leading,var(--text-body--line-height))!important}.\\!text-small{font-size:var(--text-small)!important;line-height:var(--tw-leading,var(--text-small--line-height))!important}.text-body{font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height))}.text-caption{font-size:var(--text-caption);line-height:var(--tw-leading,var(--text-caption--line-height))}.text-h1{font-size:var(--text-h1);line-height:var(--tw-leading,var(--text-h1--line-height))}.text-h2{font-size:var(--text-h2);line-height:var(--tw-leading,var(--text-h2--line-height))}.text-h3{font-size:var(--text-h3);line-height:var(--tw-leading,var(--text-h3--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-small{font-size:var(--text-small);line-height:var(--tw-leading,var(--text-small--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-\\[1\\.2\\]{--tw-leading:1.2;line-height:1.2}.leading-\\[1\\.3\\]{--tw-leading:1.3;line-height:1.3}.leading-\\[1\\.4\\]{--tw-leading:1.4;line-height:1.4}.leading-\\[1\\.5\\]{--tw-leading:1.5;line-height:1.5}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.\\!text-white{color:var(--color-white)!important}.text-bg-primary{color:var(--color-bg-primary)}.text-epfl-canard{color:var(--color-epfl-canard)}.text-epfl-leman{color:var(--color-epfl-leman)}.text-epfl-red{color:var(--color-epfl-red)}.text-error{color:var(--color-error)}.text-info{color:var(--color-info)}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-text-muted{color:var(--color-text-muted)}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.text-warning{color:var(--color-warning)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.decoration-dotted{text-decoration-style:dotted}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-100{opacity:1}.\\!shadow-lg{--tw-shadow:0 4px 16px var(--tw-shadow-color,#0000001a)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.\\!shadow-sm{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.shadow-lg{--tw-shadow:0 4px 16px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 2px 8px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 8px 32px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\\!ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.\\!ring-primary{--tw-ring-color:var(--color-primary)!important}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.peer-checked\\:bg-primary:is(:where(.peer):checked~*){background-color:var(--color-primary)}.peer-focus-visible\\:ring-2:is(:where(.peer):focus-visible~*){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.peer-focus-visible\\:ring-primary:is(:where(.peer):focus-visible~*){--tw-ring-color:var(--color-primary)}.peer-focus-visible\\:ring-offset-2:is(:where(.peer):focus-visible~*){--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.peer-focus-visible\\:ring-offset-bg-primary:is(:where(.peer):focus-visible~*){--tw-ring-offset-color:var(--color-bg-primary)}.peer-disabled\\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.placeholder\\:text-text-muted::placeholder{color:var(--color-text-muted)}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:top-0\\.5:after{content:var(--tw-content);top:calc(var(--spacing) * .5)}.after\\:left-0\\.5:after{content:var(--tw-content);left:calc(var(--spacing) * .5)}.after\\:size-5:after{content:var(--tw-content);width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.after\\:rounded-full:after{content:var(--tw-content);border-radius:var(--radius-full)}.after\\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\\:shadow-sm:after{content:var(--tw-content);--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.after\\:transition-transform:after{content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\\:content-\\[\\'\\'\\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\\:after\\:translate-x-5:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.checked\\:border-\\[5px\\]:checked{border-style:var(--tw-border-style);border-width:5px}.checked\\:border-primary:checked{border-color:var(--color-primary)}.checked\\:bg-primary:checked{background-color:var(--color-primary)}.checked\\:bg-\\[url\\(\\'data\\:image\\/svg\\+xml\\,\\%3Csvg\\%20viewBox\\%3D\\%220\\%200\\%2016\\%2016\\%22\\%20fill\\%3D\\%22white\\%22\\%20xmlns\\%3D\\%22http\\%3A\\%2F\\%2Fwww\\.w3\\.org\\%2F2000\\%2Fsvg\\%22\\%3E\\%3Cpath\\%20d\\%3D\\%22M12\\.207\\%204\\.793a1\\%201\\%200\\%20010\\%201\\.414l-5\\%205a1\\%201\\%200\\%2001-1\\.414\\%200l-2-2a1\\%201\\%200\\%20011\\.414-1\\.414L6\\.5\\%209\\.086l4\\.293-4\\.293a1\\%201\\%200\\%20011\\.414\\%200z\\%22\\%2F\\%3E\\%3C\\%2Fsvg\\%3E\\'\\)\\]:checked{background-image:url(data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22white%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.207%204.793a1%201%200%20010%201.414l-5%205a1%201%200%2001-1.414%200l-2-2a1%201%200%20011.414-1.414L6.5%209.086l4.293-4.293a1%201%200%20011.414%200z%22%2F%3E%3C%2Fsvg%3E)}.checked\\:bg-center:checked{background-position:50%}.checked\\:bg-no-repeat:checked{background-repeat:no-repeat}.indeterminate\\:border-primary:indeterminate{border-color:var(--color-primary)}.indeterminate\\:bg-primary:indeterminate{background-color:var(--color-primary)}.indeterminate\\:bg-\\[url\\(\\'data\\:image\\/svg\\+xml\\,\\%3Csvg\\%20viewBox\\%3D\\%220\\%200\\%2016\\%2016\\%22\\%20fill\\%3D\\%22white\\%22\\%20xmlns\\%3D\\%22http\\%3A\\%2F\\%2Fwww\\.w3\\.org\\%2F2000\\%2Fsvg\\%22\\%3E\\%3Crect\\%20x\\%3D\\%223\\%22\\%20y\\%3D\\%227\\%22\\%20width\\%3D\\%2210\\%22\\%20height\\%3D\\%222\\%22\\%20rx\\%3D\\%221\\%22\\%2F\\%3E\\%3C\\%2Fsvg\\%3E\\'\\)\\]:indeterminate{background-image:url(data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22white%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%223%22%20y%3D%227%22%20width%3D%2210%22%20height%3D%222%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E)}.indeterminate\\:bg-center:indeterminate{background-position:50%}.indeterminate\\:bg-no-repeat:indeterminate{background-repeat:no-repeat}@media (hover:hover){.hover\\:border-border-strong:hover{border-color:var(--color-border-strong)}.hover\\:border-error:hover{border-color:var(--color-error)}.hover\\:border-primary:hover{border-color:var(--color-primary)}.hover\\:bg-bg-secondary:hover{background-color:var(--color-bg-secondary)}.hover\\:bg-bg-tertiary:hover,.hover\\:bg-bg-tertiary\\/70:hover{background-color:var(--color-bg-tertiary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-bg-tertiary\\/70:hover{background-color:color-mix(in oklab, var(--color-bg-tertiary) 70%, transparent)}}.hover\\:bg-error-bg:hover{background-color:var(--color-error-bg)}.hover\\:bg-error\\/80:hover{background-color:var(--color-error)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-error\\/80:hover{background-color:color-mix(in oklab, var(--color-error) 80%, transparent)}}.hover\\:bg-primary-hover:hover{background-color:var(--color-primary-hover)}.hover\\:text-primary:hover{color:var(--color-primary)}.hover\\:text-text-primary:hover{color:var(--color-text-primary)}.hover\\:text-text-secondary:hover{color:var(--color-text-secondary)}.hover\\:opacity-90:hover{opacity:.9}}.focus\\:border-error:focus{border-color:var(--color-error)}.focus\\:border-primary:focus{border-color:var(--color-primary)}.focus\\:bg-bg-tertiary:focus{background-color:var(--color-bg-tertiary)}.focus\\:bg-error-bg:focus{background-color:var(--color-error-bg)}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\\:ring-error:focus{--tw-ring-color:var(--color-error)}.focus\\:ring-primary:focus{--tw-ring-color:var(--color-primary)}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\:ring-epfl-canard:focus-visible{--tw-ring-color:var(--color-epfl-canard)}.focus-visible\\:ring-error:focus-visible{--tw-ring-color:var(--color-error)}.focus-visible\\:ring-primary:focus-visible{--tw-ring-color:var(--color-primary)}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\\:ring-offset-bg-primary:focus-visible{--tw-ring-offset-color:var(--color-bg-primary)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-bg-secondary:disabled{background-color:var(--color-bg-secondary)}.disabled\\:opacity-50:disabled{opacity:.5}@media (width>=40rem){.sm\\:col-span-2{grid-column:span 2/span 2}.sm\\:w-1\\/3{width:33.3333%}.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\\:flex-row{flex-direction:row}.sm\\:gap-lg{gap:var(--spacing-lg)}}@media (width>=48rem){.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=64rem){.lg\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\\:px-lg{padding-inline:var(--spacing-lg)}}.\\[\\&\\>svg\\]\\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\\[\\&\\>svg\\]\\:size-5>svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-primary:#fff;--bg-secondary:#f5f5f5;--bg-tertiary:#e6e6e6;--border-default:#d5d5d5;--border-strong:#c1c1c1;--text-primary:#212121;--text-secondary:#707070;--text-muted:#8e8e8e;--semantic-success:#1b874b;--semantic-success-bg:#e8f5e9;--semantic-warning:#d4860a;--semantic-warning-bg:#fff3e0;--semantic-error:#d32f2f;--semantic-error-bg:#ffebee;--semantic-info:#1976d2;--semantic-info-bg:#e3f2fd;--action-primary:#007480;--action-primary-hover:#004248;--logo-filter:brightness(0);--logo-opacity:.5}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-primary:#1a1a1a;--bg-secondary:#242424;--bg-tertiary:#2e2e2e;--border-default:#3a3a3a;--border-strong:#505050;--text-primary:#f0f0f0;--text-secondary:#a0a0a0;--text-muted:#707070;--semantic-success:#34d37a;--semantic-success-bg:#1a2e1a;--semantic-warning:#ffad33;--semantic-warning-bg:#2e2410;--semantic-error:#ff6b6b;--semantic-error-bg:#2e1515;--semantic-info:#64b5f6;--semantic-info-bg:#152538;--action-primary:#009ba6;--action-primary-hover:#007480;--logo-filter:brightness(0) invert(1);--logo-opacity:1;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 2px 8px #0006;--shadow-lg:0 4px 16px #00000080;--shadow-xl:0 8px 32px #0009}@keyframes slide-in{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}@keyframes dialog-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes floating-in{0%{opacity:0}to{opacity:1}}body{font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--text-body--line-height);color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.poesis-desktop-flex{display:none}.poesis-mobile-only{display:flex}@media (width>=1024px){.poesis-desktop-flex{display:flex}.poesis-mobile-only{display:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}
3
3
  /*$vite$:1*/`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();import { createContext as e, forwardRef as t, useCallback as n, useContext as r, useEffect as i, useId as a, useMemo as o, useRef as s, useState as c, useSyncExternalStore as l } from "react";
4
4
  import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
5
- import { BoxArrowInRight as p, BoxArrowRight as m, CheckCircleFill as h, ChevronBarLeft as g, ChevronBarRight as _, ChevronDown as v, ChevronLeft as y, ChevronRight as b, CloudArrowUp as x, ExclamationTriangleFill as S, InfoCircleFill as C, List as w, MoonFill as T, Sliders as E, SortAlphaDown as D, SortAlphaDownAlt as O, SortDown as k, SortNumericDown as A, SortNumericDownAlt as ee, SunFill as j, X as M, XCircleFill as N, XLg as P } from "react-bootstrap-icons";
6
- import { useTranslation as F } from "react-i18next";
7
- import te from "react-select";
8
- import { FloatingFocusManager as I, FloatingPortal as L, arrow as R, autoUpdate as z, flip as B, offset as V, shift as H, useClick as U, useDismiss as W, useFloating as G, useFocus as ne, useHover as re, useInteractions as K, useListNavigation as ie, useRole as q } from "@floating-ui/react";
9
- import { createPortal as ae } from "react-dom";
5
+ import { BoxArrowInRight as p, BoxArrowRight as m, CheckCircleFill as h, ChevronBarLeft as g, ChevronBarRight as _, ChevronDown as v, ChevronLeft as y, ChevronRight as b, CloudArrowUp as x, ExclamationTriangleFill as S, InfoCircleFill as C, List as w, MoonFill as T, Sliders as E, SortAlphaDown as D, SortAlphaDownAlt as O, SortDown as k, SortNumericDown as A, SortNumericDownAlt as j, SunFill as M, X as N, XCircleFill as P, XLg as F } from "react-bootstrap-icons";
6
+ import { useTranslation as I } from "react-i18next";
7
+ import ee from "react-select";
8
+ import { FloatingFocusManager as L, FloatingPortal as R, arrow as z, autoUpdate as B, flip as V, offset as H, shift as U, useClick as W, useDismiss as G, useFloating as K, useFocus as te, useHover as ne, useInteractions as q, useListNavigation as re, useRole as J } from "@floating-ui/react";
9
+ import { createPortal as ie } from "react-dom";
10
10
  //#region src/components/ui/Avatar.tsx
11
- var oe = {
11
+ var ae = {
12
12
  sm: "size-8 text-caption",
13
13
  md: "size-10 text-small",
14
14
  lg: "size-14 text-body"
15
15
  };
16
- function se(e) {
16
+ function oe(e) {
17
17
  let t = e.trim().split(/\s+/);
18
18
  return t.length === 0 ? "?" : t.length === 1 ? t[0][0].toUpperCase() : (t[0][0] + t[t.length - 1][0]).toUpperCase();
19
19
  }
20
- function ce({ src: e, name: t, size: n = "md", alt: r, className: i = "", ...a }) {
20
+ function se({ src: e, name: t, size: n = "md", alt: r, className: i = "", ...a }) {
21
21
  let [o, s] = c(!1), l = !!e && !o;
22
22
  return /* @__PURE__ */ d("span", {
23
23
  role: "img",
@@ -25,7 +25,7 @@ function ce({ src: e, name: t, size: n = "md", alt: r, className: i = "", ...a }
25
25
  className: [
26
26
  "inline-flex items-center justify-center rounded-full overflow-hidden",
27
27
  "bg-primary text-white font-semibold select-none shrink-0",
28
- oe[n],
28
+ ae[n],
29
29
  i
30
30
  ].join(" "),
31
31
  ...a,
@@ -36,35 +36,35 @@ function ce({ src: e, name: t, size: n = "md", alt: r, className: i = "", ...a }
36
36
  onError: () => s(!0)
37
37
  }) : /* @__PURE__ */ d("span", {
38
38
  "aria-hidden": "true",
39
- children: se(t)
39
+ children: oe(t)
40
40
  })
41
41
  });
42
42
  }
43
43
  //#endregion
44
44
  //#region src/components/ui/Badge.tsx
45
- var le = {
45
+ var ce = {
46
46
  default: "bg-bg-tertiary text-text-primary",
47
47
  success: "bg-success-bg text-success",
48
48
  warning: "bg-warning-bg text-warning",
49
49
  error: "bg-error-bg text-error",
50
50
  info: "bg-info-bg text-info"
51
- }, ue = {
51
+ }, le = {
52
52
  default: "bg-text-muted",
53
53
  success: "bg-success",
54
54
  warning: "bg-warning",
55
55
  error: "bg-error",
56
56
  info: "bg-info"
57
57
  };
58
- function J({ color: e = "default", dot: t, className: n = "", children: r, ...i }) {
58
+ function Y({ color: e = "default", dot: t, className: n = "", children: r, ...i }) {
59
59
  return t ? /* @__PURE__ */ d("span", {
60
60
  role: "status",
61
- className: `inline-block size-2.5 rounded-full ${ue[e]} ${n}`,
61
+ className: `inline-block size-2.5 rounded-full ${le[e]} ${n}`,
62
62
  ...i
63
63
  }) : /* @__PURE__ */ d("span", {
64
64
  className: [
65
65
  "inline-flex items-center rounded-sm px-2 py-0.5",
66
66
  "text-caption font-medium leading-none",
67
- le[e],
67
+ ce[e],
68
68
  n
69
69
  ].join(" "),
70
70
  ...i,
@@ -73,17 +73,17 @@ function J({ color: e = "default", dot: t, className: n = "", children: r, ...i
73
73
  }
74
74
  //#endregion
75
75
  //#region src/components/ui/Spinner.tsx
76
- var de = {
76
+ var ue = {
77
77
  sm: "size-4",
78
78
  md: "size-6",
79
79
  lg: "size-8"
80
80
  };
81
- function Y({ size: e = "md", className: t = "", ...n }) {
81
+ function X({ size: e = "md", className: t = "", ...n }) {
82
82
  return /* @__PURE__ */ f("svg", {
83
83
  viewBox: "0 0 24 24",
84
84
  fill: "none",
85
85
  xmlns: "http://www.w3.org/2000/svg",
86
- className: `animate-spin ${de[e]} ${t}`,
86
+ className: `animate-spin ${ue[e]} ${t}`,
87
87
  role: "status",
88
88
  "aria-label": "Loading",
89
89
  ...n,
@@ -103,20 +103,20 @@ function Y({ size: e = "md", className: t = "", ...n }) {
103
103
  }
104
104
  //#endregion
105
105
  //#region src/components/ui/Button.tsx
106
- var fe = {
106
+ var de = {
107
107
  primary: "bg-primary text-white hover:bg-primary-hover focus-visible:ring-primary",
108
108
  secondary: "border border-border text-text-primary bg-bg-primary hover:bg-bg-tertiary focus-visible:ring-primary",
109
109
  ghost: "text-text-primary hover:bg-bg-tertiary focus-visible:ring-primary",
110
110
  danger: "bg-error text-white hover:opacity-90 focus-visible:ring-error"
111
- }, pe = {
111
+ }, fe = {
112
112
  sm: "text-small px-3 py-1 gap-1.5",
113
113
  md: "text-body px-4 py-2 gap-2",
114
114
  lg: "text-body px-5 py-2.5 gap-2"
115
- }, me = {
115
+ }, pe = {
116
116
  sm: "sm",
117
117
  md: "sm",
118
118
  lg: "md"
119
- }, he = t(function({ variant: e = "primary", size: t = "md", loading: n = !1, disabled: r, iconLeft: i, iconRight: a, className: o = "", children: s, ...c }, l) {
119
+ }, me = t(function({ variant: e = "primary", size: t = "md", loading: n = !1, disabled: r, iconLeft: i, iconRight: a, className: o = "", children: s, ...c }, l) {
120
120
  let u = r || n;
121
121
  return /* @__PURE__ */ f("button", {
122
122
  ref: l,
@@ -127,31 +127,31 @@ var fe = {
127
127
  "inline-flex items-center justify-center font-medium rounded-md",
128
128
  "transition-colors duration-150 cursor-pointer",
129
129
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
130
- fe[e],
131
- pe[t],
130
+ de[e],
131
+ fe[t],
132
132
  u && "opacity-50 pointer-events-none",
133
133
  o
134
134
  ].filter(Boolean).join(" "),
135
135
  ...c,
136
136
  children: [
137
- n ? /* @__PURE__ */ d(Y, {
138
- size: me[t],
137
+ n ? /* @__PURE__ */ d(X, {
138
+ size: pe[t],
139
139
  "aria-hidden": "true"
140
140
  }) : i,
141
141
  s,
142
142
  !n && a
143
143
  ]
144
144
  });
145
- }), ge = {
145
+ }), he = {
146
146
  primary: "bg-primary text-white hover:bg-primary-hover focus-visible:ring-primary",
147
147
  secondary: "border border-border text-text-primary bg-bg-primary hover:bg-bg-tertiary focus-visible:ring-primary",
148
148
  ghost: "text-text-primary hover:bg-bg-tertiary focus-visible:ring-primary",
149
149
  danger: "bg-error text-white hover:opacity-90 focus-visible:ring-error"
150
- }, _e = {
150
+ }, ge = {
151
151
  sm: "size-7 text-small",
152
152
  md: "size-9 text-body",
153
153
  lg: "size-11 text-body"
154
- }, ve = t(function({ variant: e = "ghost", size: t = "md", loading: n = !1, disabled: r, icon: i, className: a = "", ...o }, s) {
154
+ }, _e = t(function({ variant: e = "ghost", size: t = "md", loading: n = !1, disabled: r, icon: i, className: a = "", ...o }, s) {
155
155
  let c = r || n;
156
156
  return /* @__PURE__ */ d("button", {
157
157
  ref: s,
@@ -162,27 +162,27 @@ var fe = {
162
162
  "inline-flex items-center justify-center rounded-md",
163
163
  "transition-colors duration-150 cursor-pointer",
164
164
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
165
- ge[e],
166
- _e[t],
165
+ he[e],
166
+ ge[t],
167
167
  c && "opacity-50 pointer-events-none",
168
168
  a
169
169
  ].filter(Boolean).join(" "),
170
170
  ...o,
171
- children: n ? /* @__PURE__ */ d(Y, {
171
+ children: n ? /* @__PURE__ */ d(X, {
172
172
  size: "sm",
173
173
  "aria-hidden": "true"
174
174
  }) : i
175
175
  });
176
- }), ye = {
176
+ }), ve = {
177
177
  sm: "h-7 min-w-7 px-1.5 text-small",
178
178
  md: "h-9 min-w-9 px-2 text-body",
179
179
  lg: "h-11 min-w-11 px-3 text-body"
180
- }, be = {
180
+ }, ye = {
181
181
  sm: 14,
182
182
  md: 16,
183
183
  lg: 18
184
184
  };
185
- function xe(e, t, n, r) {
185
+ function be(e, t, n, r) {
186
186
  if (t <= r * 2 + n * 2 + 3) return Array.from({ length: t }, (e, t) => t + 1);
187
187
  let i = Array.from({ length: r }, (e, t) => t + 1), a = Array.from({ length: r }, (e, n) => t - r + 1 + n), o = Math.max(r + 2, e - n), s = Math.min(t - r - 1, e + n), c = o > r + 2, l = s < t - r - 1, u = [];
188
188
  if (u.push(...i), c) u.push("ellipsis-start");
@@ -192,20 +192,20 @@ function xe(e, t, n, r) {
192
192
  else for (let e = s + 1; e <= t - r; e++) u.push(e);
193
193
  return u.push(...a), u;
194
194
  }
195
- var Se = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, siblingCount: a = 1, boundaryCount: o = 1, showFirstLast: s = !1, size: l = "md", disabled: u = !1, className: p = "", ...m }, h) {
196
- let { t: v } = F(), x = t !== void 0, [S, C] = c(r), w = Math.min(Math.max(x ? t : S, 1), e), T = n((t) => {
195
+ var xe = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, siblingCount: a = 1, boundaryCount: o = 1, showFirstLast: s = !1, size: l = "md", disabled: u = !1, className: p = "", ...m }, h) {
196
+ let { t: v } = I(), x = t !== void 0, [S, C] = c(r), w = Math.min(Math.max(x ? t : S, 1), e), T = n((t) => {
197
197
  let n = Math.min(Math.max(t, 1), e);
198
198
  x || C(n), i?.(n);
199
199
  }, [
200
200
  x,
201
201
  i,
202
202
  e
203
- ]), E = xe(w, e, a, o), D = be[l], O = w <= 1, k = w >= e, A = [
203
+ ]), E = be(w, e, a, o), D = ye[l], O = w <= 1, k = w >= e, A = [
204
204
  "inline-flex items-center justify-center rounded-md font-medium",
205
205
  "transition-colors duration-150 cursor-pointer",
206
206
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-epfl-canard",
207
- ye[l]
208
- ].join(" "), ee = (e) => [A, e ? "bg-epfl-canard text-white" : "text-text-primary hover:bg-bg-tertiary"].filter(Boolean).join(" "), j = (e) => [
207
+ ve[l]
208
+ ].join(" "), j = (e) => [A, e ? "bg-epfl-canard text-white" : "text-text-primary hover:bg-bg-tertiary"].filter(Boolean).join(" "), M = (e) => [
209
209
  A,
210
210
  "text-text-secondary hover:bg-bg-tertiary",
211
211
  (u || e) && "opacity-40 pointer-events-none"
@@ -220,7 +220,7 @@ var Se = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, s
220
220
  type: "button",
221
221
  "aria-label": v("common.first"),
222
222
  disabled: u || O,
223
- className: j(O),
223
+ className: M(O),
224
224
  onClick: () => T(1),
225
225
  children: /* @__PURE__ */ d(g, {
226
226
  size: D,
@@ -231,7 +231,7 @@ var Se = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, s
231
231
  type: "button",
232
232
  "aria-label": v("common.previous"),
233
233
  disabled: u || O,
234
- className: j(O),
234
+ className: M(O),
235
235
  onClick: () => T(w - 1),
236
236
  children: /* @__PURE__ */ d(y, {
237
237
  size: D,
@@ -241,7 +241,7 @@ var Se = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, s
241
241
  E.map((e) => {
242
242
  if (typeof e == "string") return /* @__PURE__ */ d("span", {
243
243
  "aria-hidden": !0,
244
- className: ["inline-flex items-center justify-center select-none text-text-secondary", ye[l]].join(" "),
244
+ className: ["inline-flex items-center justify-center select-none text-text-secondary", ve[l]].join(" "),
245
245
  children: "…"
246
246
  }, e);
247
247
  let t = e === w;
@@ -250,7 +250,7 @@ var Se = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, s
250
250
  "aria-current": t ? "page" : void 0,
251
251
  "aria-label": v("common.goToPage", { page: e }),
252
252
  disabled: u,
253
- className: [ee(t), u && "opacity-40 pointer-events-none"].filter(Boolean).join(" "),
253
+ className: [j(t), u && "opacity-40 pointer-events-none"].filter(Boolean).join(" "),
254
254
  onClick: () => T(e),
255
255
  children: e
256
256
  }, e);
@@ -259,7 +259,7 @@ var Se = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, s
259
259
  type: "button",
260
260
  "aria-label": v("common.next"),
261
261
  disabled: u || k,
262
- className: j(k),
262
+ className: M(k),
263
263
  onClick: () => T(w + 1),
264
264
  children: /* @__PURE__ */ d(b, {
265
265
  size: D,
@@ -270,7 +270,7 @@ var Se = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, s
270
270
  type: "button",
271
271
  "aria-label": v("common.last"),
272
272
  disabled: u || k,
273
- className: j(k),
273
+ className: M(k),
274
274
  onClick: () => T(e),
275
275
  children: /* @__PURE__ */ d(_, {
276
276
  size: D,
@@ -282,10 +282,10 @@ var Se = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, s
282
282
  });
283
283
  //#endregion
284
284
  //#region src/components/ui/FileUpload.tsx
285
- function Ce(e) {
285
+ function Se(e) {
286
286
  return e < 1024 ? `${e} B` : e < 1024 * 1024 ? `${(e / 1024).toFixed(1)} KB` : `${(e / (1024 * 1024)).toFixed(1)} MB`;
287
287
  }
288
- function we({ accept: e, multiple: t = !1, maxSize: r, onFilesSelected: i, onReject: a, disabled: o = !1, label: l = "Drop files here or click to browse", helperText: u, error: p, illustration: m, className: h = "" }) {
288
+ function Ce({ accept: e, multiple: t = !1, maxSize: r, onFilesSelected: i, onReject: a, disabled: o = !1, label: l = "Drop files here or click to browse", helperText: u, error: p, illustration: m, className: h = "" }) {
289
289
  let [g, _] = c(!1), [v, y] = c([]), b = s(null), S = !!p, C = n((e) => {
290
290
  let n = Array.from(e), o = [], s = [];
291
291
  for (let e of n) r && e.size > r ? s.push(e) : o.push(e);
@@ -375,7 +375,7 @@ function we({ accept: e, multiple: t = !1, maxSize: r, onFilesSelected: i, onRej
375
375
  }),
376
376
  /* @__PURE__ */ d("span", {
377
377
  className: "shrink-0 text-text-secondary",
378
- children: Ce(e.size)
378
+ children: Se(e.size)
379
379
  }),
380
380
  /* @__PURE__ */ d("button", {
381
381
  type: "button",
@@ -384,7 +384,7 @@ function we({ accept: e, multiple: t = !1, maxSize: r, onFilesSelected: i, onRej
384
384
  },
385
385
  className: "shrink-0 p-0.5 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
386
386
  "aria-label": `Remove ${e.name}`,
387
- children: /* @__PURE__ */ d(M, { size: 14 })
387
+ children: /* @__PURE__ */ d(N, { size: 14 })
388
388
  })
389
389
  ]
390
390
  }, `${e.name}-${e.size}-${t}`))
@@ -394,30 +394,30 @@ function we({ accept: e, multiple: t = !1, maxSize: r, onFilesSelected: i, onRej
394
394
  }
395
395
  //#endregion
396
396
  //#region src/components/ui/ProgressBar.tsx
397
- var Te = {
397
+ var we = {
398
398
  sm: "h-1.5",
399
399
  md: "h-2.5",
400
400
  lg: "h-4"
401
- }, Ee = {
401
+ }, Te = {
402
402
  primary: "bg-primary",
403
403
  success: "bg-success",
404
404
  warning: "bg-warning",
405
405
  error: "bg-error",
406
406
  info: "bg-info"
407
- }, De = t(function({ value: e, variant: t = "primary", size: n = "md", showLabel: r = !1, formatLabel: i, className: a = "", ...o }, s) {
407
+ }, Ee = t(function({ value: e, variant: t = "primary", size: n = "md", showLabel: r = !1, formatLabel: i, className: a = "", ...o }, s) {
408
408
  let c = Math.round(Math.min(100, Math.max(0, e))), l = i ? i(c) : `${c}%`;
409
409
  return /* @__PURE__ */ f("div", {
410
410
  ref: s,
411
411
  className: `flex items-center gap-2 ${a}`,
412
412
  ...o,
413
413
  children: [/* @__PURE__ */ d("div", {
414
- className: ["flex-1 overflow-hidden rounded-full bg-bg-tertiary", Te[n]].join(" "),
414
+ className: ["flex-1 overflow-hidden rounded-full bg-bg-tertiary", we[n]].join(" "),
415
415
  role: "progressbar",
416
416
  "aria-valuenow": c,
417
417
  "aria-valuemin": 0,
418
418
  "aria-valuemax": 100,
419
419
  children: /* @__PURE__ */ d("div", {
420
- className: ["h-full rounded-full transition-all duration-300 ease-out", Ee[t]].join(" "),
420
+ className: ["h-full rounded-full transition-all duration-300 ease-out", Te[t]].join(" "),
421
421
  style: { width: `${c}%` }
422
422
  })
423
423
  }), r && /* @__PURE__ */ d("span", {
@@ -425,7 +425,7 @@ var Te = {
425
425
  children: l
426
426
  })]
427
427
  });
428
- }), X = t(function({ label: e, indeterminate: t = !1, helperText: r, error: o, className: c = "", id: l, disabled: u, ...p }, m) {
428
+ }), Z = t(function({ label: e, indeterminate: t = !1, helperText: r, error: o, className: c = "", id: l, disabled: u, ...p }, m) {
429
429
  let h = a(), g = l ?? h, _ = `${g}-helper`, v = !!o, y = s(null), b = n((e) => {
430
430
  y.current = e, typeof m == "function" ? m(e) : m && (m.current = e);
431
431
  }, [m]);
@@ -465,23 +465,23 @@ var Te = {
465
465
  children: o ?? r
466
466
  })]
467
467
  });
468
- }), Oe = {
468
+ }), De = {
469
469
  sm: "h-8 text-small px-2.5",
470
470
  md: "h-10 text-body px-3",
471
471
  lg: "h-12 text-body px-3.5"
472
- }, ke = {
472
+ }, Oe = {
473
473
  sm: "pl-8",
474
474
  md: "pl-10",
475
475
  lg: "pl-11"
476
- }, Ae = {
476
+ }, ke = {
477
477
  sm: "pr-8",
478
478
  md: "pr-10",
479
479
  lg: "pr-11"
480
- }, je = {
480
+ }, Ae = {
481
481
  sm: "[&>svg]:size-4",
482
482
  md: "[&>svg]:size-5",
483
483
  lg: "[&>svg]:size-5"
484
- }, Me = t(function({ label: e, helperText: t, error: n, leftIcon: r, rightIcon: i, inputSize: o = "md", className: s = "", id: c, disabled: l, ...u }, p) {
484
+ }, je = t(function({ label: e, helperText: t, error: n, leftIcon: r, rightIcon: i, inputSize: o = "md", className: s = "", id: c, disabled: l, ...u }, p) {
485
485
  let m = a(), h = c ?? m, g = `${h}-helper`, _ = !!n;
486
486
  return /* @__PURE__ */ f("div", {
487
487
  className: `flex flex-col gap-1.5 ${s}`,
@@ -495,7 +495,7 @@ var Te = {
495
495
  className: "relative",
496
496
  children: [
497
497
  r && /* @__PURE__ */ d("span", {
498
- className: `pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3 text-text-secondary ${je[o]}`,
498
+ className: `pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3 text-text-secondary ${Ae[o]}`,
499
499
  "aria-hidden": "true",
500
500
  children: r
501
501
  }),
@@ -511,14 +511,14 @@ var Te = {
511
511
  "focus:border-primary focus:ring-1 focus:ring-primary",
512
512
  "disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-bg-secondary",
513
513
  _ ? "border-error focus:border-error focus:ring-error" : "border-border hover:border-border-strong",
514
- Oe[o],
515
- r ? ke[o] : "",
516
- i ? Ae[o] : ""
514
+ De[o],
515
+ r ? Oe[o] : "",
516
+ i ? ke[o] : ""
517
517
  ].join(" "),
518
518
  ...u
519
519
  }),
520
520
  i && /* @__PURE__ */ d("span", {
521
- className: `pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3 text-text-secondary ${je[o]}`,
521
+ className: `pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3 text-text-secondary ${Ae[o]}`,
522
522
  "aria-hidden": "true",
523
523
  children: i
524
524
  })
@@ -531,15 +531,15 @@ var Te = {
531
531
  })
532
532
  ]
533
533
  });
534
- }), Ne = e(null);
535
- function Pe() {
536
- let e = r(Ne);
534
+ }), Me = e(null);
535
+ function Ne() {
536
+ let e = r(Me);
537
537
  if (!e) throw Error("RadioGroup.Item must be used within RadioGroup");
538
538
  return e;
539
539
  }
540
- function Fe({ name: e, value: t, onChange: n, label: r, helperText: i, error: o, orientation: s = "vertical", disabled: c = !1, children: l, className: u = "" }) {
540
+ function Pe({ name: e, value: t, onChange: n, label: r, helperText: i, error: o, orientation: s = "vertical", disabled: c = !1, children: l, className: u = "" }) {
541
541
  let p = a(), m = e ?? p, h = `${`${m}-group`}-helper`, g = !!o;
542
- return /* @__PURE__ */ d(Ne.Provider, {
542
+ return /* @__PURE__ */ d(Me.Provider, {
543
543
  value: {
544
544
  name: m,
545
545
  value: t,
@@ -570,8 +570,8 @@ function Fe({ name: e, value: t, onChange: n, label: r, helperText: i, error: o,
570
570
  })
571
571
  });
572
572
  }
573
- function Ie({ value: e, label: t, description: n, disabled: r }) {
574
- let { name: i, value: o, onChange: s, disabled: c, hasError: l } = Pe(), u = a(), p = c || r;
573
+ function Fe({ value: e, label: t, description: n, disabled: r }) {
574
+ let { name: i, value: o, onChange: s, disabled: c, hasError: l } = Ne(), u = a(), p = c || r;
575
575
  return /* @__PURE__ */ f("div", {
576
576
  className: "flex items-start gap-2",
577
577
  children: [/* @__PURE__ */ d("input", {
@@ -603,10 +603,10 @@ function Ie({ value: e, label: t, description: n, disabled: r }) {
603
603
  })]
604
604
  });
605
605
  }
606
- Fe.Item = Ie;
606
+ Pe.Item = Fe;
607
607
  //#endregion
608
608
  //#region src/theme/reactSelectStyles.ts
609
- var Le = (e) => ({
609
+ var Ie = (e) => ({
610
610
  ...e,
611
611
  borderRadius: 8,
612
612
  colors: {
@@ -629,7 +629,7 @@ var Le = (e) => ({
629
629
  danger: "var(--color-error)",
630
630
  dangerLight: "var(--color-error-bg)"
631
631
  }
632
- }), Z = {
632
+ }), Le = {
633
633
  control: ({ isFocused: e }) => `!shadow-sm !rounded-md !border-border ${e ? "!border-primary !ring-1 !ring-primary" : ""}`,
634
634
  menu: () => "!rounded-lg !shadow-lg !border !border-border",
635
635
  option: ({ isFocused: e, isSelected: t }) => `${t ? "!bg-primary !text-white" : e ? "!bg-bg-tertiary" : ""}`,
@@ -653,9 +653,9 @@ function ze({ label: e, helperText: t, error: n, selectSize: r = "md", className
653
653
  className: "text-small font-medium text-text-primary",
654
654
  children: e
655
655
  }),
656
- /* @__PURE__ */ d(te, {
656
+ /* @__PURE__ */ d(ee, {
657
657
  inputId: c,
658
- theme: Le,
658
+ theme: Ie,
659
659
  menuPortalTarget: document.body,
660
660
  styles: {
661
661
  control: (e, t) => ({
@@ -685,9 +685,9 @@ function ze({ label: e, helperText: t, error: n, selectSize: r = "md", className
685
685
  ...o.styles
686
686
  },
687
687
  classNames: {
688
- ...Z,
688
+ ...Le,
689
689
  control: (e) => {
690
- let t = `${Z.control?.(e) ?? ""} ${Re[r]}`;
690
+ let t = `${Le.control?.(e) ?? ""} ${Re[r]}`;
691
691
  return u ? `${t} !border-error !focus:ring-error` : t;
692
692
  }
693
693
  },
@@ -835,21 +835,21 @@ var We = t(function({ children: e, icon: t, danger: n = !1, disabled: i = !1, on
835
835
  });
836
836
  });
837
837
  function Ge({ trigger: e, children: t, placement: r = "bottom-start", className: i = "" }) {
838
- let [a, o] = c(!1), [l, p] = c(null), m = s([]), { refs: h, floatingStyles: g, context: _ } = G({
838
+ let [a, o] = c(!1), [l, p] = c(null), m = s([]), { refs: h, floatingStyles: g, context: _ } = K({
839
839
  open: a,
840
840
  onOpenChange: o,
841
841
  placement: r,
842
842
  middleware: [
843
- V(4),
844
- B(),
845
- H({ padding: 8 })
843
+ H(4),
844
+ V(),
845
+ U({ padding: 8 })
846
846
  ],
847
- whileElementsMounted: z
848
- }), { getReferenceProps: v, getFloatingProps: y, getItemProps: b } = K([
849
- U(_),
847
+ whileElementsMounted: B
848
+ }), { getReferenceProps: v, getFloatingProps: y, getItemProps: b } = q([
850
849
  W(_),
851
- q(_, { role: "menu" }),
852
- ie(_, {
850
+ G(_),
851
+ J(_, { role: "menu" }),
852
+ re(_, {
853
853
  listRef: m,
854
854
  activeIndex: l,
855
855
  onNavigate: p,
@@ -861,7 +861,7 @@ function Ge({ trigger: e, children: t, placement: r = "bottom-start", className:
861
861
  className: "inline-flex",
862
862
  ...v(),
863
863
  children: e
864
- }), a && /* @__PURE__ */ d(L, { children: /* @__PURE__ */ d(I, {
864
+ }), a && /* @__PURE__ */ d(R, { children: /* @__PURE__ */ d(L, {
865
865
  context: _,
866
866
  modal: !1,
867
867
  children: /* @__PURE__ */ d("div", {
@@ -888,27 +888,27 @@ function Ge({ trigger: e, children: t, placement: r = "bottom-start", className:
888
888
  //#endregion
889
889
  //#region src/components/ui/Popover.tsx
890
890
  function Ke({ trigger: e, children: t, placement: n = "bottom", open: r, onOpenChange: i, className: a = "" }) {
891
- let [o, s] = c(!1), l = r !== void 0, p = l ? r : o, { refs: m, floatingStyles: h, context: g } = G({
891
+ let [o, s] = c(!1), l = r !== void 0, p = l ? r : o, { refs: m, floatingStyles: h, context: g } = K({
892
892
  open: p,
893
893
  onOpenChange: l ? (e) => i?.(e) : s,
894
894
  placement: n,
895
895
  middleware: [
896
- V(8),
897
- B(),
898
- H({ padding: 8 })
896
+ H(8),
897
+ V(),
898
+ U({ padding: 8 })
899
899
  ],
900
- whileElementsMounted: z
901
- }), { getReferenceProps: _, getFloatingProps: v } = K([
902
- U(g),
900
+ whileElementsMounted: B
901
+ }), { getReferenceProps: _, getFloatingProps: v } = q([
903
902
  W(g),
904
- q(g)
903
+ G(g),
904
+ J(g)
905
905
  ]);
906
906
  return /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d("span", {
907
907
  ref: m.setReference,
908
908
  className: "inline-flex",
909
909
  ..._(),
910
910
  children: e
911
- }), p && /* @__PURE__ */ d(L, { children: /* @__PURE__ */ d(I, {
911
+ }), p && /* @__PURE__ */ d(R, { children: /* @__PURE__ */ d(L, {
912
912
  context: g,
913
913
  modal: !1,
914
914
  children: /* @__PURE__ */ d("div", {
@@ -1018,32 +1018,32 @@ var Xe = {
1018
1018
  right: "left"
1019
1019
  };
1020
1020
  function Ze({ children: e, content: t, placement: n = "top", delay: r = 200, className: i = "" }) {
1021
- let [a, o] = c(!1), l = s(null), { refs: p, floatingStyles: m, context: h, middlewareData: g, placement: _ } = G({
1021
+ let [a, o] = c(!1), l = s(null), { refs: p, floatingStyles: m, context: h, middlewareData: g, placement: _ } = K({
1022
1022
  open: a,
1023
1023
  onOpenChange: o,
1024
1024
  placement: n,
1025
1025
  middleware: [
1026
- V(8),
1027
- B(),
1028
- H({ padding: 8 }),
1029
- R({ element: l })
1026
+ H(8),
1027
+ V(),
1028
+ U({ padding: 8 }),
1029
+ z({ element: l })
1030
1030
  ],
1031
- whileElementsMounted: z
1032
- }), { getReferenceProps: v, getFloatingProps: y } = K([
1033
- re(h, {
1031
+ whileElementsMounted: B
1032
+ }), { getReferenceProps: v, getFloatingProps: y } = q([
1033
+ ne(h, {
1034
1034
  delay: r,
1035
1035
  move: !1
1036
1036
  }),
1037
- ne(h),
1038
- W(h),
1039
- q(h, { role: "tooltip" })
1037
+ te(h),
1038
+ G(h),
1039
+ J(h, { role: "tooltip" })
1040
1040
  ]), b = _.split("-")[0], x = g.arrow?.x, S = g.arrow?.y;
1041
1041
  return /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d("span", {
1042
1042
  ref: p.setReference,
1043
1043
  className: "inline-flex",
1044
1044
  ...v(),
1045
1045
  children: e
1046
- }), a && t && /* @__PURE__ */ d(L, { children: /* @__PURE__ */ f("div", {
1046
+ }), a && t && /* @__PURE__ */ d(R, { children: /* @__PURE__ */ f("div", {
1047
1047
  ref: p.setFloating,
1048
1048
  style: m,
1049
1049
  role: "tooltip",
@@ -1068,7 +1068,7 @@ function Ze({ children: e, content: t, placement: n = "top", delay: r = 200, cla
1068
1068
  //#endregion
1069
1069
  //#region src/hooks/useLanguage.ts
1070
1070
  function Qe() {
1071
- let { i18n: e } = F(), t = e.language ?? "en", r = n((t) => {
1071
+ let { i18n: e } = I(), t = e.language ?? "en", r = n((t) => {
1072
1072
  e.changeLanguage(t);
1073
1073
  }, [e]);
1074
1074
  return {
@@ -1155,11 +1155,11 @@ function ct() {
1155
1155
  //#endregion
1156
1156
  //#region src/components/ui/ThemeToggle.tsx
1157
1157
  function lt({ variant: e = "ghost", size: t = "md", className: n }) {
1158
- let { isDark: r, toggleTheme: i } = ct(), { t: a } = F();
1159
- return /* @__PURE__ */ d(ve, {
1158
+ let { isDark: r, toggleTheme: i } = ct(), { t: a } = I();
1159
+ return /* @__PURE__ */ d(_e, {
1160
1160
  variant: e,
1161
1161
  size: t,
1162
- icon: d(r ? j : T, { size: 16 }),
1162
+ icon: d(r ? M : T, { size: 16 }),
1163
1163
  "aria-label": a("theme.toggleTheme"),
1164
1164
  onClick: i,
1165
1165
  className: n
@@ -1276,7 +1276,7 @@ function vt({ counters: e }) {
1276
1276
  children: t.map((e, t) => /* @__PURE__ */ d(Ze, {
1277
1277
  content: e.tooltip,
1278
1278
  placement: "top",
1279
- children: /* @__PURE__ */ d(J, {
1279
+ children: /* @__PURE__ */ d(Y, {
1280
1280
  color: e.color,
1281
1281
  children: e.count > 99 ? "99+" : e.count
1282
1282
  })
@@ -1354,7 +1354,7 @@ function bt({ open: e, onClose: t, categories: n = [], activeCategoryId: r, onCa
1354
1354
  onClick: t,
1355
1355
  className: "flex size-9 items-center justify-center rounded-md text-text-secondary hover:bg-bg-tertiary hover:text-text-primary",
1356
1356
  "aria-label": "Close menu",
1357
- children: /* @__PURE__ */ d(P, { size: 18 })
1357
+ children: /* @__PURE__ */ d(F, { size: 18 })
1358
1358
  })]
1359
1359
  }), /* @__PURE__ */ f("div", {
1360
1360
  className: "flex-1 overflow-y-auto p-sm",
@@ -1388,7 +1388,7 @@ function xt({ counters: e }) {
1388
1388
  children: t.map((e, t) => /* @__PURE__ */ d(Ze, {
1389
1389
  content: e.tooltip,
1390
1390
  placement: "top",
1391
- children: /* @__PURE__ */ d(J, {
1391
+ children: /* @__PURE__ */ d(Y, {
1392
1392
  color: e.color,
1393
1393
  children: e.count > 99 ? "99+" : e.count
1394
1394
  })
@@ -1534,8 +1534,8 @@ function Tt() {
1534
1534
  //#endregion
1535
1535
  //#region src/components/layout/UserMenu.tsx
1536
1536
  function Et({ onLogin: e }) {
1537
- let { t } = F();
1538
- return /* @__PURE__ */ d(he, {
1537
+ let { t } = I();
1538
+ return /* @__PURE__ */ d(me, {
1539
1539
  variant: "primary",
1540
1540
  size: "sm",
1541
1541
  iconLeft: /* @__PURE__ */ d(p, { size: 14 }),
@@ -1544,9 +1544,9 @@ function Et({ onLogin: e }) {
1544
1544
  });
1545
1545
  }
1546
1546
  function Dt({ user: e, onLogout: t }) {
1547
- let { t: n } = F();
1547
+ let { t: n } = I();
1548
1548
  return /* @__PURE__ */ f(Ge, {
1549
- trigger: /* @__PURE__ */ d(ce, {
1549
+ trigger: /* @__PURE__ */ d(se, {
1550
1550
  src: e.avatarUrl,
1551
1551
  name: e.name,
1552
1552
  size: "sm",
@@ -1575,8 +1575,8 @@ function Dt({ user: e, onLogout: t }) {
1575
1575
  }
1576
1576
  //#endregion
1577
1577
  //#region src/components/layout/PageShell.tsx
1578
- function Ot({ children: e, logo: t, logoUrl: n, categories: r = [], activeCategoryId: i, onCategoryChange: a, sections: o = [], activeLinkId: s, onLinkClick: l, actions: u, sideNavCollapsed: p = !1, sideNavFoldable: m = !1, sideNavHomeLink: h, showFooter: g = !0 }) {
1579
- let [_, v] = c(!1);
1578
+ function Ot({ children: e, logo: t, logoUrl: n, categories: r = [], activeCategoryId: i, onCategoryChange: a, sections: o = [], activeLinkId: s, onLinkClick: l, actions: u, sideNavCollapsed: p = !1, sideNavFoldable: m = !1, sideNavHomeLink: h, showFooter: g = !0, contentContainerClassName: _ = "mx-auto max-w-[var(--container-6xl)]" }) {
1579
+ let [v, y] = c(!1);
1580
1580
  return /* @__PURE__ */ f("div", {
1581
1581
  className: "flex h-screen flex-col bg-bg-primary",
1582
1582
  children: [
@@ -1587,7 +1587,7 @@ function Ot({ children: e, logo: t, logoUrl: n, categories: r = [], activeCatego
1587
1587
  activeCategoryId: i,
1588
1588
  onCategoryChange: a,
1589
1589
  actions: u,
1590
- onBurgerClick: () => v(!0)
1590
+ onBurgerClick: () => y(!0)
1591
1591
  }),
1592
1592
  /* @__PURE__ */ f("div", {
1593
1593
  className: "flex flex-1 overflow-hidden pt-14",
@@ -1603,25 +1603,25 @@ function Ot({ children: e, logo: t, logoUrl: n, categories: r = [], activeCatego
1603
1603
  className: "flex-1 overflow-y-auto flex flex-col",
1604
1604
  children: [/* @__PURE__ */ d("div", {
1605
1605
  className: "flex-1 px-md py-lg lg:px-lg",
1606
- children: /* @__PURE__ */ d("div", {
1607
- className: "mx-auto max-w-[var(--container-6xl)]",
1606
+ children: _ === !1 ? e : /* @__PURE__ */ d("div", {
1607
+ className: _,
1608
1608
  children: e
1609
1609
  })
1610
1610
  }), g && /* @__PURE__ */ d(Tt, {})]
1611
1611
  })]
1612
1612
  }),
1613
1613
  /* @__PURE__ */ d(bt, {
1614
- open: _,
1615
- onClose: () => v(!1),
1614
+ open: v,
1615
+ onClose: () => y(!1),
1616
1616
  categories: r,
1617
1617
  activeCategoryId: i,
1618
1618
  onCategoryChange: (e) => {
1619
- a?.(e), v(!1);
1619
+ a?.(e), y(!1);
1620
1620
  },
1621
1621
  sections: o,
1622
1622
  activeLinkId: s,
1623
1623
  onLinkClick: (e) => {
1624
- l?.(e), v(!1);
1624
+ l?.(e), y(!1);
1625
1625
  }
1626
1626
  })
1627
1627
  ]
@@ -1720,7 +1720,7 @@ function Mt(e, t) {
1720
1720
  return "text";
1721
1721
  }
1722
1722
  function Nt({ active: e, direction: t, columnType: n }) {
1723
- return e ? d(n === "numeric" ? t === "asc" ? A : ee : t === "asc" ? D : O, {
1723
+ return e ? d(n === "numeric" ? t === "asc" ? A : j : t === "asc" ? D : O, {
1724
1724
  size: 14,
1725
1725
  className: "ml-1 inline",
1726
1726
  "aria-hidden": !0
@@ -1751,7 +1751,7 @@ function Pt({ columns: e, hiddenSet: t, onToggle: n }) {
1751
1751
  children: "Visible columns"
1752
1752
  }), r.map((e) => {
1753
1753
  let r = !t.has(e.key), a = r && i <= 1;
1754
- return /* @__PURE__ */ d(X, {
1754
+ return /* @__PURE__ */ d(Z, {
1755
1755
  label: e.header,
1756
1756
  checked: r,
1757
1757
  disabled: a,
@@ -1761,34 +1761,49 @@ function Pt({ columns: e, hiddenSet: t, onToggle: n }) {
1761
1761
  })
1762
1762
  });
1763
1763
  }
1764
- var Ft = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a, onSortChange: s, emptyContent: l, stickyHeader: u = !1, toolbar: p, columnVisibility: m = !1, hiddenColumns: h, onHiddenColumnsChange: g, defaultHiddenColumns: _, selectionKey: v, selectedValues: y, onSelectionChange: b, className: x = "", ...S }, C) {
1765
- let [w, T] = c(), E = a ?? w, D = n((e) => {
1766
- let t = E?.column === e && E.direction === "asc" ? {
1764
+ var Ft = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a, onSortChange: s, emptyContent: l, stickyHeader: u = !1, toolbar: p, columnVisibility: m = !1, columnVisibilityKey: h, hiddenColumns: g, onHiddenColumnsChange: _, defaultHiddenColumns: v, selectionKey: y, selectedValues: b, onSelectionChange: x, className: S = "", ...C }, w) {
1765
+ let [T, E] = c(), D = a ?? T, O = n((e) => {
1766
+ let t = D?.column === e && D.direction === "asc" ? {
1767
1767
  column: e,
1768
1768
  direction: "desc"
1769
1769
  } : {
1770
1770
  column: e,
1771
1771
  direction: "asc"
1772
1772
  };
1773
- s ? s(t) : T(t);
1774
- }, [E, s]), [O, k] = c(() => new Set(_ ?? [])), A = o(() => h ? new Set(h) : O, [h, O]), ee = n((e) => {
1775
- let t = new Set(A);
1776
- t.has(e) ? t.delete(e) : t.add(e), g ? g(Array.from(t)) : k(t);
1777
- }, [A, g]), [j, M] = c(() => /* @__PURE__ */ new Set()), N = o(() => y ? new Set(y) : j, [y, j]), P = n((e) => {
1773
+ s ? s(t) : E(t);
1774
+ }, [D, s]), [k, A] = c(() => {
1775
+ if (h) try {
1776
+ let e = localStorage.getItem(h);
1777
+ if (e) return new Set(JSON.parse(e));
1778
+ } catch {}
1779
+ return new Set(v ?? []);
1780
+ }), j = o(() => g ? new Set(g) : k, [g, k]), M = n((e) => {
1781
+ let t = new Set(j);
1782
+ t.has(e) ? t.delete(e) : t.add(e);
1783
+ let n = Array.from(t);
1784
+ if (h) try {
1785
+ localStorage.setItem(h, JSON.stringify(n));
1786
+ } catch {}
1787
+ _ ? _(n) : A(t);
1788
+ }, [
1789
+ j,
1790
+ _,
1791
+ h
1792
+ ]), [N, P] = c(() => /* @__PURE__ */ new Set()), F = o(() => b ? new Set(b) : N, [b, N]), I = n((e) => {
1778
1793
  let t = Array.from(e);
1779
- b ? b(t) : M(e);
1780
- }, [b]), F = n((e) => {
1781
- let t = new Set(N);
1782
- t.has(e) ? t.delete(e) : t.add(e), P(t);
1783
- }, [N, P]), te = n((e) => {
1784
- P(e.length > 0 && e.every((e) => N.has(e)) ? /* @__PURE__ */ new Set() : new Set(e));
1785
- }, [N, P]), I = o(() => m ? e.filter((e) => !A.has(e.key)) : e, [
1794
+ x ? x(t) : P(e);
1795
+ }, [x]), ee = n((e) => {
1796
+ let t = new Set(F);
1797
+ t.has(e) ? t.delete(e) : t.add(e), I(t);
1798
+ }, [F, I]), L = n((e) => {
1799
+ I(e.length > 0 && e.every((e) => F.has(e)) ? /* @__PURE__ */ new Set() : new Set(e));
1800
+ }, [F, I]), R = o(() => m ? e.filter((e) => !j.has(e.key)) : e, [
1786
1801
  e,
1787
- A,
1802
+ j,
1788
1803
  m
1789
- ]), L = o(() => {
1790
- if (!E || s) return t;
1791
- let n = e.find((e) => e.key === E.column);
1804
+ ]), z = o(() => {
1805
+ if (!D || s) return t;
1806
+ let n = e.find((e) => e.key === D.column);
1792
1807
  if (!n?.sortValue) return t;
1793
1808
  let r = n.sortValue;
1794
1809
  return [...t].sort((e, t) => {
@@ -1797,22 +1812,22 @@ var Ft = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
1797
1812
  if (n == null) return 1;
1798
1813
  if (i == null) return -1;
1799
1814
  let a = typeof n == "number" && typeof i == "number" ? n - i : String(n).localeCompare(String(i));
1800
- return E.direction === "asc" ? a : -a;
1815
+ return D.direction === "asc" ? a : -a;
1801
1816
  });
1802
1817
  }, [
1803
1818
  t,
1804
- E,
1819
+ D,
1805
1820
  e,
1806
1821
  s
1807
- ]), R = o(() => v ? L.map((e) => e[v]) : [], [L, v]), z = R.length > 0 && R.every((e) => N.has(e)), B = !z && R.some((e) => N.has(e)), V = o(() => {
1822
+ ]), B = o(() => y ? z.map((e) => e[y]) : [], [z, y]), V = B.length > 0 && B.every((e) => F.has(e)), H = !V && B.some((e) => F.has(e)), U = o(() => {
1808
1823
  let n = /* @__PURE__ */ new Map();
1809
1824
  for (let r of e) r.sortable && n.set(r.key, Mt(r, t));
1810
1825
  return n;
1811
- }, [e, t]), H = I.length + (v ? 1 : 0), U = L.length === 0;
1826
+ }, [e, t]), W = R.length + (y ? 1 : 0), G = z.length === 0;
1812
1827
  return /* @__PURE__ */ f("div", {
1813
- ref: C,
1814
- className: ["overflow-x-auto rounded-md border border-border", x].filter(Boolean).join(" "),
1815
- ...S,
1828
+ ref: w,
1829
+ className: ["overflow-x-auto rounded-md border border-border", S].filter(Boolean).join(" "),
1830
+ ...C,
1816
1831
  children: [(p || m) && /* @__PURE__ */ f("div", {
1817
1832
  className: "flex items-center justify-between gap-md px-md py-sm border-b border-border bg-bg-primary",
1818
1833
  children: [/* @__PURE__ */ d("div", {
@@ -1820,8 +1835,8 @@ var Ft = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
1820
1835
  children: p
1821
1836
  }), m && /* @__PURE__ */ d(Pt, {
1822
1837
  columns: e,
1823
- hiddenSet: A,
1824
- onToggle: ee
1838
+ hiddenSet: j,
1839
+ onToggle: M
1825
1840
  })]
1826
1841
  }), /* @__PURE__ */ f("table", {
1827
1842
  className: "w-full text-body text-left",
@@ -1829,55 +1844,55 @@ var Ft = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
1829
1844
  className: u ? "sticky top-0 z-10" : void 0,
1830
1845
  children: /* @__PURE__ */ f("tr", {
1831
1846
  className: "bg-bg-secondary border-b border-border",
1832
- children: [v && /* @__PURE__ */ d("th", {
1847
+ children: [y && /* @__PURE__ */ d("th", {
1833
1848
  className: "w-10 px-sm py-sm text-center",
1834
- children: /* @__PURE__ */ d(X, {
1835
- checked: z,
1836
- indeterminate: B,
1837
- onChange: () => te(R),
1849
+ children: /* @__PURE__ */ d(Z, {
1850
+ checked: V,
1851
+ indeterminate: H,
1852
+ onChange: () => L(B),
1838
1853
  "aria-label": "Select all rows"
1839
1854
  })
1840
- }), I.map((e) => {
1841
- let t = E?.column === e.key;
1855
+ }), R.map((e) => {
1856
+ let t = D?.column === e.key;
1842
1857
  return /* @__PURE__ */ d("th", {
1843
1858
  className: [
1844
1859
  "px-md py-sm font-semibold text-small text-text-secondary whitespace-nowrap",
1845
1860
  e.sortable && "cursor-pointer select-none hover:text-text-primary",
1846
1861
  e.headerClassName
1847
1862
  ].filter(Boolean).join(" "),
1848
- onClick: e.sortable ? () => D(e.key) : void 0,
1849
- "aria-sort": t ? E.direction === "asc" ? "ascending" : "descending" : e.sortable ? "none" : void 0,
1863
+ onClick: e.sortable ? () => O(e.key) : void 0,
1864
+ "aria-sort": t ? D.direction === "asc" ? "ascending" : "descending" : e.sortable ? "none" : void 0,
1850
1865
  children: /* @__PURE__ */ f("span", {
1851
1866
  className: "inline-flex items-center",
1852
1867
  children: [e.header, e.sortable && /* @__PURE__ */ d(Nt, {
1853
1868
  active: t,
1854
- direction: t ? E.direction : void 0,
1855
- columnType: V.get(e.key) ?? "text"
1869
+ direction: t ? D.direction : void 0,
1870
+ columnType: U.get(e.key) ?? "text"
1856
1871
  })]
1857
1872
  })
1858
1873
  }, e.key);
1859
1874
  })]
1860
1875
  })
1861
- }), /* @__PURE__ */ d("tbody", { children: U ? /* @__PURE__ */ d("tr", { children: /* @__PURE__ */ d("td", {
1862
- colSpan: H,
1876
+ }), /* @__PURE__ */ d("tbody", { children: G ? /* @__PURE__ */ d("tr", { children: /* @__PURE__ */ d("td", {
1877
+ colSpan: W,
1863
1878
  className: "px-md py-xl text-center text-text-secondary",
1864
1879
  children: l ?? "No data available."
1865
- }) }) : L.map((e, t) => {
1866
- let n = v ? e[v] : void 0;
1880
+ }) }) : z.map((e, t) => {
1881
+ let n = y ? e[y] : void 0;
1867
1882
  return /* @__PURE__ */ f("tr", {
1868
1883
  className: [
1869
1884
  "border-b border-border last:border-b-0 transition-colors",
1870
1885
  i && t % 2 == 1 && "bg-bg-tertiary/50",
1871
1886
  "hover:bg-bg-tertiary/70"
1872
1887
  ].filter(Boolean).join(" "),
1873
- children: [v && /* @__PURE__ */ d("td", {
1888
+ children: [y && /* @__PURE__ */ d("td", {
1874
1889
  className: "w-10 px-sm py-sm text-center",
1875
- children: /* @__PURE__ */ d(X, {
1876
- checked: N.has(n),
1877
- onChange: () => F(n),
1890
+ children: /* @__PURE__ */ d(Z, {
1891
+ checked: F.has(n),
1892
+ onChange: () => ee(n),
1878
1893
  "aria-label": `Select row ${n}`
1879
1894
  })
1880
- }), I.map((n) => /* @__PURE__ */ d("td", {
1895
+ }), R.map((n) => /* @__PURE__ */ d("td", {
1881
1896
  className: ["px-md py-sm text-text-primary", n.cellClassName].filter(Boolean).join(" "),
1882
1897
  children: n.cell(e, t)
1883
1898
  }, n.key))]
@@ -1902,7 +1917,7 @@ var Ft = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
1902
1917
  bg: "bg-error-bg",
1903
1918
  border: "border-error/30",
1904
1919
  text: "text-error",
1905
- icon: N
1920
+ icon: P
1906
1921
  },
1907
1922
  info: {
1908
1923
  bg: "bg-info-bg",
@@ -1941,7 +1956,7 @@ function Lt({ variant: e, title: t, children: n, dismissible: r = !1, onDismiss:
1941
1956
  onClick: h,
1942
1957
  className: "shrink-0 p-1 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
1943
1958
  "aria-label": "Dismiss alert",
1944
- children: /* @__PURE__ */ d(M, { size: 16 })
1959
+ children: /* @__PURE__ */ d(N, { size: 16 })
1945
1960
  })
1946
1961
  ]
1947
1962
  });
@@ -1980,7 +1995,7 @@ function zt({ open: e, onClose: t, title: n, size: r = "md", children: a, footer
1980
1995
  e.shiftKey && document.activeElement === n ? (e.preventDefault(), r.focus()) : !e.shiftKey && document.activeElement === r && (e.preventDefault(), n.focus());
1981
1996
  }
1982
1997
  };
1983
- return e ? ae(/* @__PURE__ */ f("div", {
1998
+ return e ? ie(/* @__PURE__ */ f("div", {
1984
1999
  style: {
1985
2000
  position: "fixed",
1986
2001
  inset: 0,
@@ -2025,7 +2040,7 @@ function zt({ open: e, onClose: t, title: n, size: r = "md", children: a, footer
2025
2040
  onClick: t,
2026
2041
  className: "shrink-0 p-1 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
2027
2042
  "aria-label": "Close dialog",
2028
- children: /* @__PURE__ */ d(M, { size: 18 })
2043
+ children: /* @__PURE__ */ d(N, { size: 18 })
2029
2044
  })]
2030
2045
  }),
2031
2046
  /* @__PURE__ */ d("div", {
@@ -2076,7 +2091,7 @@ function Bt({ open: e, onCancel: t, onConfirm: n, title: r, children: i, confirm
2076
2091
  s ? "bg-error hover:bg-error/80" : "bg-primary hover:bg-primary-hover",
2077
2092
  c && "opacity-80 pointer-events-none"
2078
2093
  ].filter(Boolean).join(" "),
2079
- children: [c && /* @__PURE__ */ d(Y, { size: "sm" }), a]
2094
+ children: [c && /* @__PURE__ */ d(X, { size: "sm" }), a]
2080
2095
  })]
2081
2096
  })]
2082
2097
  });
@@ -2108,7 +2123,7 @@ var Ut = {
2108
2123
  bg: "bg-bg-primary",
2109
2124
  accent: "bg-error",
2110
2125
  text: "text-error",
2111
- icon: N
2126
+ icon: P
2112
2127
  },
2113
2128
  info: {
2114
2129
  bg: "bg-bg-primary",
@@ -2162,7 +2177,7 @@ function Wt({ toast: e, onRemove: t }) {
2162
2177
  onClick: () => t(e.id),
2163
2178
  className: "shrink-0 p-1 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
2164
2179
  "aria-label": "Dismiss notification",
2165
- children: /* @__PURE__ */ d(M, { size: 14 })
2180
+ children: /* @__PURE__ */ d(N, { size: 14 })
2166
2181
  })
2167
2182
  ]
2168
2183
  }), o > 0 && /* @__PURE__ */ d("div", {
@@ -2229,6 +2244,6 @@ function Xt() {
2229
2244
  return e;
2230
2245
  }
2231
2246
  //#endregion
2232
- export { Lt as Alert, Yt as AuthProvider, ce as Avatar, J as Badge, bt as BurgerDrawer, he as Button, kt as Card, X as Checkbox, Bt as ConfirmDialog, At as DescriptionList, zt as Dialog, Ue as DropdownDivider, We as DropdownItem, Ge as DropdownMenu, jt as EmptyState, we as FileUpload, Tt as Footer, ve as IconButton, Me as Input, et as LanguageSwitcher, Et as LoginButton, Ot as PageShell, Se as Pagination, Ke as Popover, De as ProgressBar, Fe as RadioGroup, ze as Select, _t as SideNav, Y as Spinner, Be as Switch, Je as TabPanel, Ft as Table, Ye as Tabs, Ve as Textarea, lt as ThemeToggle, Kt as ToastProvider, Ze as Tooltip, dt as TopNav, Dt as UserMenu, Z as epflSelectClassNames, Le as epflSelectTheme, st as initTheme, Xt as useAuth, Qe as useLanguage, ct as useTheme, Ht as useToast };
2247
+ export { Lt as Alert, Yt as AuthProvider, se as Avatar, Y as Badge, bt as BurgerDrawer, me as Button, kt as Card, Z as Checkbox, Bt as ConfirmDialog, At as DescriptionList, zt as Dialog, Ue as DropdownDivider, We as DropdownItem, Ge as DropdownMenu, jt as EmptyState, Ce as FileUpload, Tt as Footer, _e as IconButton, je as Input, et as LanguageSwitcher, Et as LoginButton, Ot as PageShell, xe as Pagination, Ke as Popover, Ee as ProgressBar, Pe as RadioGroup, ze as Select, _t as SideNav, X as Spinner, Be as Switch, Je as TabPanel, Ft as Table, Ye as Tabs, Ve as Textarea, lt as ThemeToggle, Kt as ToastProvider, Ze as Tooltip, dt as TopNav, Dt as UserMenu, Le as epflSelectClassNames, Ie as epflSelectTheme, st as initTheme, Xt as useAuth, Qe as useLanguage, ct as useTheme, Ht as useToast };
2233
2248
 
2234
2249
  //# sourceMappingURL=poesis.js.map