@epfl-sti/poesis 0.3.6 → 0.4.1

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-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)}}
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-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-2\\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-3\\.5{padding-right:calc(var(--spacing) * 3.5)}.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-2\\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\\.5{padding-left:calc(var(--spacing) * 3.5)}.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
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
6
  import { useTranslation as I } from "react-i18next";
7
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";
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 te, 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";
10
10
  //#region src/components/ui/Avatar.tsx
11
- var ae = {
11
+ var oe = {
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 oe(e) {
16
+ function se(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 se({ src: e, name: t, size: n = "md", alt: r, className: i = "", ...a }) {
20
+ function ce({ 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 se({ 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
- ae[n],
28
+ oe[n],
29
29
  i
30
30
  ].join(" "),
31
31
  ...a,
@@ -36,35 +36,35 @@ function se({ 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: oe(t)
39
+ children: se(t)
40
40
  })
41
41
  });
42
42
  }
43
43
  //#endregion
44
44
  //#region src/components/ui/Badge.tsx
45
- var ce = {
45
+ var le = {
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
- }, le = {
51
+ }, ue = {
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 Y({ color: e = "default", dot: t, className: n = "", children: r, ...i }) {
58
+ function J({ 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 ${le[e]} ${n}`,
61
+ className: `inline-block size-2.5 rounded-full ${ue[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
- ce[e],
67
+ le[e],
68
68
  n
69
69
  ].join(" "),
70
70
  ...i,
@@ -73,17 +73,17 @@ function Y({ 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 ue = {
76
+ var de = {
77
77
  sm: "size-4",
78
78
  md: "size-6",
79
79
  lg: "size-8"
80
80
  };
81
- function X({ size: e = "md", className: t = "", ...n }) {
81
+ function Y({ 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 ${ue[e]} ${t}`,
86
+ className: `animate-spin ${de[e]} ${t}`,
87
87
  role: "status",
88
88
  "aria-label": "Loading",
89
89
  ...n,
@@ -103,20 +103,20 @@ function X({ size: e = "md", className: t = "", ...n }) {
103
103
  }
104
104
  //#endregion
105
105
  //#region src/components/ui/Button.tsx
106
- var de = {
106
+ var fe = {
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
- }, fe = {
111
+ }, pe = {
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
- }, pe = {
115
+ }, me = {
116
116
  sm: "sm",
117
117
  md: "sm",
118
118
  lg: "md"
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) {
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) {
120
120
  let u = r || n;
121
121
  return /* @__PURE__ */ f("button", {
122
122
  ref: l,
@@ -127,31 +127,31 @@ var de = {
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
- de[e],
131
- fe[t],
130
+ fe[e],
131
+ pe[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(X, {
138
- size: pe[t],
137
+ n ? /* @__PURE__ */ d(Y, {
138
+ size: me[t],
139
139
  "aria-hidden": "true"
140
140
  }) : i,
141
141
  s,
142
142
  !n && a
143
143
  ]
144
144
  });
145
- }), he = {
145
+ }), ge = {
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
- }, ge = {
150
+ }, _e = {
151
151
  sm: "size-7 text-small",
152
152
  md: "size-9 text-body",
153
153
  lg: "size-11 text-body"
154
- }, _e = t(function({ variant: e = "ghost", size: t = "md", loading: n = !1, disabled: r, icon: i, className: a = "", ...o }, s) {
154
+ }, ve = 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 de = {
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
- he[e],
166
- ge[t],
165
+ ge[e],
166
+ _e[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(X, {
171
+ children: n ? /* @__PURE__ */ d(Y, {
172
172
  size: "sm",
173
173
  "aria-hidden": "true"
174
174
  }) : i
175
175
  });
176
- }), ve = {
176
+ }), ye = {
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
- }, ye = {
180
+ }, be = {
181
181
  sm: 14,
182
182
  md: 16,
183
183
  lg: 18
184
184
  };
185
- function be(e, t, n, r) {
185
+ function xe(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,7 +192,7 @@ function be(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 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) {
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
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);
@@ -200,11 +200,11 @@ var xe = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, s
200
200
  x,
201
201
  i,
202
202
  e
203
- ]), E = be(w, e, a, o), D = ye[l], O = w <= 1, k = w >= e, A = [
203
+ ]), E = xe(w, e, a, o), D = be[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
- ve[l]
207
+ ye[l]
208
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",
@@ -241,7 +241,7 @@ var xe = 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", ve[l]].join(" "),
244
+ className: ["inline-flex items-center justify-center select-none text-text-secondary", ye[l]].join(" "),
245
245
  children: "…"
246
246
  }, e);
247
247
  let t = e === w;
@@ -282,10 +282,10 @@ var xe = 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 Se(e) {
285
+ function Ce(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 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 = "" }) {
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 = "" }) {
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 Ce({ 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: Se(e.size)
378
+ children: Ce(e.size)
379
379
  }),
380
380
  /* @__PURE__ */ d("button", {
381
381
  type: "button",
@@ -394,30 +394,30 @@ function Ce({ 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 we = {
397
+ var Te = {
398
398
  sm: "h-1.5",
399
399
  md: "h-2.5",
400
400
  lg: "h-4"
401
- }, Te = {
401
+ }, Ee = {
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
- }, Ee = t(function({ value: e, variant: t = "primary", size: n = "md", showLabel: r = !1, formatLabel: i, className: a = "", ...o }, s) {
407
+ }, De = 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", we[n]].join(" "),
414
+ className: ["flex-1 overflow-hidden rounded-full bg-bg-tertiary", Te[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", Te[t]].join(" "),
420
+ className: ["h-full rounded-full transition-all duration-300 ease-out", Ee[t]].join(" "),
421
421
  style: { width: `${c}%` }
422
422
  })
423
423
  }), r && /* @__PURE__ */ d("span", {
@@ -425,7 +425,7 @@ var we = {
425
425
  children: l
426
426
  })]
427
427
  });
428
- }), Z = t(function({ label: e, indeterminate: t = !1, helperText: r, error: o, className: c = "", id: l, disabled: u, ...p }, m) {
428
+ }), X = 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,31 @@ var we = {
465
465
  children: o ?? r
466
466
  })]
467
467
  });
468
- }), De = {
469
- sm: "h-8 text-small px-2.5",
470
- md: "h-10 text-body px-3",
471
- lg: "h-12 text-body px-3.5"
472
- }, Oe = {
468
+ }), Oe = {
469
+ sm: "h-8 text-small",
470
+ md: "h-10 text-body",
471
+ lg: "h-12 text-body"
472
+ }, ke = {
473
+ sm: "pl-2.5",
474
+ md: "pl-3",
475
+ lg: "pl-3.5"
476
+ }, Ae = {
477
+ sm: "pr-2.5",
478
+ md: "pr-3",
479
+ lg: "pr-3.5"
480
+ }, je = {
473
481
  sm: "pl-8",
474
482
  md: "pl-10",
475
483
  lg: "pl-11"
476
- }, ke = {
484
+ }, Me = {
477
485
  sm: "pr-8",
478
486
  md: "pr-10",
479
487
  lg: "pr-11"
480
- }, Ae = {
488
+ }, Ne = {
481
489
  sm: "[&>svg]:size-4",
482
490
  md: "[&>svg]:size-5",
483
491
  lg: "[&>svg]:size-5"
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) {
492
+ }, Pe = t(function({ label: e, helperText: t, error: n, leftIcon: r, rightIcon: i, inputSize: o = "md", className: s = "", id: c, disabled: l, ...u }, p) {
485
493
  let m = a(), h = c ?? m, g = `${h}-helper`, _ = !!n;
486
494
  return /* @__PURE__ */ f("div", {
487
495
  className: `flex flex-col gap-1.5 ${s}`,
@@ -495,7 +503,7 @@ var we = {
495
503
  className: "relative",
496
504
  children: [
497
505
  r && /* @__PURE__ */ d("span", {
498
- className: `pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3 text-text-secondary ${Ae[o]}`,
506
+ className: `pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3 text-text-secondary ${Ne[o]}`,
499
507
  "aria-hidden": "true",
500
508
  children: r
501
509
  }),
@@ -511,14 +519,14 @@ var we = {
511
519
  "focus:border-primary focus:ring-1 focus:ring-primary",
512
520
  "disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-bg-secondary",
513
521
  _ ? "border-error focus:border-error focus:ring-error" : "border-border hover:border-border-strong",
514
- De[o],
515
- r ? Oe[o] : "",
516
- i ? ke[o] : ""
522
+ Oe[o],
523
+ r ? je[o] : ke[o],
524
+ i ? Me[o] : Ae[o]
517
525
  ].join(" "),
518
526
  ...u
519
527
  }),
520
528
  i && /* @__PURE__ */ d("span", {
521
- className: `pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3 text-text-secondary ${Ae[o]}`,
529
+ className: `pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3 text-text-secondary ${Ne[o]}`,
522
530
  "aria-hidden": "true",
523
531
  children: i
524
532
  })
@@ -531,15 +539,15 @@ var we = {
531
539
  })
532
540
  ]
533
541
  });
534
- }), Me = e(null);
535
- function Ne() {
536
- let e = r(Me);
542
+ }), Fe = e(null);
543
+ function Ie() {
544
+ let e = r(Fe);
537
545
  if (!e) throw Error("RadioGroup.Item must be used within RadioGroup");
538
546
  return e;
539
547
  }
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 = "" }) {
548
+ function Le({ name: e, value: t, onChange: n, label: r, helperText: i, error: o, orientation: s = "vertical", disabled: c = !1, children: l, className: u = "" }) {
541
549
  let p = a(), m = e ?? p, h = `${`${m}-group`}-helper`, g = !!o;
542
- return /* @__PURE__ */ d(Me.Provider, {
550
+ return /* @__PURE__ */ d(Fe.Provider, {
543
551
  value: {
544
552
  name: m,
545
553
  value: t,
@@ -570,8 +578,8 @@ function Pe({ name: e, value: t, onChange: n, label: r, helperText: i, error: o,
570
578
  })
571
579
  });
572
580
  }
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;
581
+ function Re({ value: e, label: t, description: n, disabled: r }) {
582
+ let { name: i, value: o, onChange: s, disabled: c, hasError: l } = Ie(), u = a(), p = c || r;
575
583
  return /* @__PURE__ */ f("div", {
576
584
  className: "flex items-start gap-2",
577
585
  children: [/* @__PURE__ */ d("input", {
@@ -603,10 +611,10 @@ function Fe({ value: e, label: t, description: n, disabled: r }) {
603
611
  })]
604
612
  });
605
613
  }
606
- Pe.Item = Fe;
614
+ Le.Item = Re;
607
615
  //#endregion
608
616
  //#region src/theme/reactSelectStyles.ts
609
- var Ie = (e) => ({
617
+ var ze = (e) => ({
610
618
  ...e,
611
619
  borderRadius: 8,
612
620
  colors: {
@@ -629,12 +637,12 @@ var Ie = (e) => ({
629
637
  danger: "var(--color-error)",
630
638
  dangerLight: "var(--color-error-bg)"
631
639
  }
632
- }), Le = {
640
+ }), Z = {
633
641
  control: ({ isFocused: e }) => `!shadow-sm !rounded-md !border-border ${e ? "!border-primary !ring-1 !ring-primary" : ""}`,
634
642
  menu: () => "!rounded-lg !shadow-lg !border !border-border",
635
643
  option: ({ isFocused: e, isSelected: t }) => `${t ? "!bg-primary !text-white" : e ? "!bg-bg-tertiary" : ""}`,
636
644
  multiValue: () => "!rounded-sm !bg-bg-tertiary"
637
- }, Re = {
645
+ }, Be = {
638
646
  sm: "!min-h-8 !text-small",
639
647
  md: "!min-h-10 !text-body",
640
648
  lg: "!min-h-12 !text-body"
@@ -643,7 +651,7 @@ var Ie = (e) => ({
643
651
  md: 40,
644
652
  lg: 48
645
653
  };
646
- function ze({ label: e, helperText: t, error: n, selectSize: r = "md", className: i = "", ...o }) {
654
+ function Ve({ label: e, helperText: t, error: n, selectSize: r = "md", className: i = "", ...o }) {
647
655
  let s = a(), c = o.inputId ?? s, l = `${c}-helper`, u = !!n;
648
656
  return /* @__PURE__ */ f("div", {
649
657
  className: `flex flex-col gap-1.5 ${i}`,
@@ -655,7 +663,7 @@ function ze({ label: e, helperText: t, error: n, selectSize: r = "md", className
655
663
  }),
656
664
  /* @__PURE__ */ d(ee, {
657
665
  inputId: c,
658
- theme: Ie,
666
+ theme: ze,
659
667
  menuPortalTarget: document.body,
660
668
  styles: {
661
669
  control: (e, t) => ({
@@ -685,9 +693,9 @@ function ze({ label: e, helperText: t, error: n, selectSize: r = "md", className
685
693
  ...o.styles
686
694
  },
687
695
  classNames: {
688
- ...Le,
696
+ ...Z,
689
697
  control: (e) => {
690
- let t = `${Le.control?.(e) ?? ""} ${Re[r]}`;
698
+ let t = `${Z.control?.(e) ?? ""} ${Be[r]}`;
691
699
  return u ? `${t} !border-error !focus:ring-error` : t;
692
700
  }
693
701
  },
@@ -705,7 +713,7 @@ function ze({ label: e, helperText: t, error: n, selectSize: r = "md", className
705
713
  }
706
714
  //#endregion
707
715
  //#region src/components/ui/Switch.tsx
708
- var Be = t(function({ label: e, helperText: t, className: n = "", id: r, disabled: i, ...o }, s) {
716
+ var He = t(function({ label: e, helperText: t, className: n = "", id: r, disabled: i, ...o }, s) {
709
717
  let c = a(), l = r ?? c, u = `${l}-helper`;
710
718
  return /* @__PURE__ */ f("div", {
711
719
  className: `flex flex-col gap-1 ${n}`,
@@ -748,7 +756,7 @@ var Be = t(function({ label: e, helperText: t, className: n = "", id: r, disable
748
756
  children: t
749
757
  })]
750
758
  });
751
- }), Ve = t(function({ label: e, helperText: t, error: r, autoGrow: o = !1, minRows: c = 3, className: l = "", id: u, disabled: p, onChange: m, ...h }, g) {
759
+ }), Ue = t(function({ label: e, helperText: t, error: r, autoGrow: o = !1, minRows: c = 3, className: l = "", id: u, disabled: p, onChange: m, ...h }, g) {
752
760
  let _ = a(), v = u ?? _, y = `${v}-helper`, b = !!r, x = s(null), S = n(() => {
753
761
  let e = x.current;
754
762
  !e || !o || (e.style.height = "auto", e.style.height = `${e.scrollHeight}px`);
@@ -798,20 +806,20 @@ var Be = t(function({ label: e, helperText: t, className: n = "", id: r, disable
798
806
  })
799
807
  ]
800
808
  });
801
- }), He = e({
809
+ }), We = e({
802
810
  close: () => {},
803
811
  getItemProps: () => ({}),
804
812
  activeIndex: null,
805
813
  setActiveIndex: () => {}
806
814
  });
807
- function Ue() {
815
+ function Ge() {
808
816
  return /* @__PURE__ */ d("div", {
809
817
  role: "separator",
810
818
  className: "my-1 border-t border-border"
811
819
  });
812
820
  }
813
- var We = t(function({ children: e, icon: t, danger: n = !1, disabled: i = !1, onClick: a, className: o = "", ...s }, c) {
814
- let { close: l } = r(He);
821
+ var Ke = t(function({ children: e, icon: t, danger: n = !1, disabled: i = !1, onClick: a, className: o = "", ...s }, c) {
822
+ let { close: l } = r(We);
815
823
  return /* @__PURE__ */ f("button", {
816
824
  ref: c,
817
825
  type: "button",
@@ -834,8 +842,8 @@ var We = t(function({ children: e, icon: t, danger: n = !1, disabled: i = !1, on
834
842
  }), e]
835
843
  });
836
844
  });
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: _ } = K({
845
+ function qe({ trigger: e, children: t, placement: r = "bottom-start", className: i = "" }) {
846
+ let [a, o] = c(!1), [l, p] = c(null), m = s([]), { refs: h, floatingStyles: g, context: _ } = te({
839
847
  open: a,
840
848
  onOpenChange: o,
841
849
  placement: r,
@@ -845,11 +853,11 @@ function Ge({ trigger: e, children: t, placement: r = "bottom-start", className:
845
853
  U({ padding: 8 })
846
854
  ],
847
855
  whileElementsMounted: B
848
- }), { getReferenceProps: v, getFloatingProps: y, getItemProps: b } = q([
856
+ }), { getReferenceProps: v, getFloatingProps: y, getItemProps: b } = K([
849
857
  W(_),
850
858
  G(_),
851
- J(_, { role: "menu" }),
852
- re(_, {
859
+ q(_, { role: "menu" }),
860
+ ie(_, {
853
861
  listRef: m,
854
862
  activeIndex: l,
855
863
  onNavigate: p,
@@ -873,7 +881,7 @@ function Ge({ trigger: e, children: t, placement: r = "bottom-start", className:
873
881
  i
874
882
  ].join(" "),
875
883
  ...y(),
876
- children: /* @__PURE__ */ d(He.Provider, {
884
+ children: /* @__PURE__ */ d(We.Provider, {
877
885
  value: {
878
886
  close: x,
879
887
  getItemProps: b,
@@ -887,8 +895,8 @@ function Ge({ trigger: e, children: t, placement: r = "bottom-start", className:
887
895
  }
888
896
  //#endregion
889
897
  //#region src/components/ui/Popover.tsx
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 } = K({
898
+ function Je({ trigger: e, children: t, placement: n = "bottom", open: r, onOpenChange: i, className: a = "" }) {
899
+ let [o, s] = c(!1), l = r !== void 0, p = l ? r : o, { refs: m, floatingStyles: h, context: g } = te({
892
900
  open: p,
893
901
  onOpenChange: l ? (e) => i?.(e) : s,
894
902
  placement: n,
@@ -898,10 +906,10 @@ function Ke({ trigger: e, children: t, placement: n = "bottom", open: r, onOpenC
898
906
  U({ padding: 8 })
899
907
  ],
900
908
  whileElementsMounted: B
901
- }), { getReferenceProps: _, getFloatingProps: v } = q([
909
+ }), { getReferenceProps: _, getFloatingProps: v } = K([
902
910
  W(g),
903
911
  G(g),
904
- J(g)
912
+ q(g)
905
913
  ]);
906
914
  return /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d("span", {
907
915
  ref: m.setReference,
@@ -926,12 +934,12 @@ function Ke({ trigger: e, children: t, placement: n = "bottom", open: r, onOpenC
926
934
  }
927
935
  //#endregion
928
936
  //#region src/components/ui/Tabs.tsx
929
- var qe = e({
937
+ var Ye = e({
930
938
  activeValue: "",
931
939
  idPrefix: ""
932
940
  });
933
- function Je({ value: e, children: t, className: n = "" }) {
934
- let { activeValue: i, idPrefix: a } = r(qe), o = i === e;
941
+ function Xe({ value: e, children: t, className: n = "" }) {
942
+ let { activeValue: i, idPrefix: a } = r(Ye), o = i === e;
935
943
  return /* @__PURE__ */ d("div", {
936
944
  id: `${a}-panel-${e}`,
937
945
  role: "tabpanel",
@@ -942,7 +950,7 @@ function Je({ value: e, children: t, className: n = "" }) {
942
950
  children: o && t
943
951
  });
944
952
  }
945
- function Ye({ items: e, value: t, defaultValue: r, onChange: i, children: o, className: l = "" }) {
953
+ function Ze({ items: e, value: t, defaultValue: r, onChange: i, children: o, className: l = "" }) {
946
954
  let u = a().replace(/:/g, ""), p = s(null), m = t !== void 0, [h, g] = c(() => r ?? e.find((e) => !e.disabled)?.value ?? e[0]?.value ?? ""), _ = m ? t : h, v = n((e) => {
947
955
  m || g(e), i?.(e);
948
956
  }, [m, i]), y = e.filter((e) => !e.disabled), b = (e) => {
@@ -967,7 +975,7 @@ function Ye({ items: e, value: t, defaultValue: r, onChange: i, children: o, cla
967
975
  let r = y[n];
968
976
  r && (v(r.value), (p.current?.querySelector(`[data-tab-value="${r.value}"]`))?.focus());
969
977
  };
970
- return /* @__PURE__ */ d(qe.Provider, {
978
+ return /* @__PURE__ */ d(Ye.Provider, {
971
979
  value: {
972
980
  activeValue: _,
973
981
  idPrefix: u
@@ -1011,14 +1019,14 @@ function Ye({ items: e, value: t, defaultValue: r, onChange: i, children: o, cla
1011
1019
  }
1012
1020
  //#endregion
1013
1021
  //#region src/components/ui/Tooltip.tsx
1014
- var Xe = {
1022
+ var Qe = {
1015
1023
  top: "bottom",
1016
1024
  bottom: "top",
1017
1025
  left: "right",
1018
1026
  right: "left"
1019
1027
  };
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: _ } = K({
1028
+ function $e({ children: e, content: t, placement: n = "top", delay: r = 200, className: i = "" }) {
1029
+ let [a, o] = c(!1), l = s(null), { refs: p, floatingStyles: m, context: h, middlewareData: g, placement: _ } = te({
1022
1030
  open: a,
1023
1031
  onOpenChange: o,
1024
1032
  placement: n,
@@ -1029,14 +1037,14 @@ function Ze({ children: e, content: t, placement: n = "top", delay: r = 200, cla
1029
1037
  z({ element: l })
1030
1038
  ],
1031
1039
  whileElementsMounted: B
1032
- }), { getReferenceProps: v, getFloatingProps: y } = q([
1033
- ne(h, {
1040
+ }), { getReferenceProps: v, getFloatingProps: y } = K([
1041
+ re(h, {
1034
1042
  delay: r,
1035
1043
  move: !1
1036
1044
  }),
1037
- te(h),
1045
+ ne(h),
1038
1046
  G(h),
1039
- J(h, { role: "tooltip" })
1047
+ q(h, { role: "tooltip" })
1040
1048
  ]), b = _.split("-")[0], x = g.arrow?.x, S = g.arrow?.y;
1041
1049
  return /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d("span", {
1042
1050
  ref: p.setReference,
@@ -1060,14 +1068,14 @@ function Ze({ children: e, content: t, placement: n = "top", delay: r = 200, cla
1060
1068
  style: {
1061
1069
  left: x == null ? "" : `${x}px`,
1062
1070
  top: S == null ? "" : `${S}px`,
1063
- [Xe[b]]: "-4px"
1071
+ [Qe[b]]: "-4px"
1064
1072
  }
1065
1073
  })]
1066
1074
  }) })] });
1067
1075
  }
1068
1076
  //#endregion
1069
1077
  //#region src/hooks/useLanguage.ts
1070
- function Qe() {
1078
+ function et() {
1071
1079
  let { i18n: e } = I(), t = e.language ?? "en", r = n((t) => {
1072
1080
  e.changeLanguage(t);
1073
1081
  }, [e]);
@@ -1081,20 +1089,20 @@ function Qe() {
1081
1089
  }
1082
1090
  //#endregion
1083
1091
  //#region src/components/ui/LanguageSwitcher.tsx
1084
- var $e = [{
1092
+ var tt = [{
1085
1093
  value: "en",
1086
1094
  label: "EN"
1087
1095
  }, {
1088
1096
  value: "fr",
1089
1097
  label: "FR"
1090
1098
  }];
1091
- function et({ className: e = "" }) {
1092
- let { language: t, setLanguage: n } = Qe();
1099
+ function nt({ className: e = "" }) {
1100
+ let { language: t, setLanguage: n } = et();
1093
1101
  return /* @__PURE__ */ d("div", {
1094
1102
  role: "radiogroup",
1095
1103
  "aria-label": "Language",
1096
1104
  className: ["inline-flex items-center rounded-full border border-border bg-bg-secondary p-0.5", e].filter(Boolean).join(" "),
1097
- children: $e.map(({ value: e, label: r }) => {
1105
+ children: tt.map(({ value: e, label: r }) => {
1098
1106
  let i = t === e;
1099
1107
  return /* @__PURE__ */ d("button", {
1100
1108
  type: "button",
@@ -1109,24 +1117,24 @@ function et({ className: e = "" }) {
1109
1117
  }
1110
1118
  //#endregion
1111
1119
  //#region src/hooks/useTheme.ts
1112
- var tt = "poesis-theme", nt = /* @__PURE__ */ new Set();
1113
- function rt() {
1114
- nt.forEach((e) => e());
1120
+ var rt = "poesis-theme", it = /* @__PURE__ */ new Set();
1121
+ function at() {
1122
+ it.forEach((e) => e());
1115
1123
  }
1116
- function it(e) {
1117
- return nt.add(e), () => nt.delete(e);
1124
+ function ot(e) {
1125
+ return it.add(e), () => it.delete(e);
1118
1126
  }
1119
- function at() {
1127
+ function st() {
1120
1128
  return document.documentElement.classList.contains("dark") ? "dark" : "light";
1121
1129
  }
1122
- function ot() {
1130
+ function ct() {
1123
1131
  return "light";
1124
1132
  }
1125
1133
  function $(e) {
1126
- e === "dark" ? document.documentElement.classList.add("dark") : document.documentElement.classList.remove("dark"), localStorage.setItem(tt, e), rt();
1134
+ e === "dark" ? document.documentElement.classList.add("dark") : document.documentElement.classList.remove("dark"), localStorage.setItem(rt, e), at();
1127
1135
  }
1128
- function st() {
1129
- let e = localStorage.getItem(tt);
1136
+ function lt() {
1137
+ let e = localStorage.getItem(rt);
1130
1138
  if (e) {
1131
1139
  $(e);
1132
1140
  return;
@@ -1134,11 +1142,11 @@ function st() {
1134
1142
  let t = window.matchMedia("(prefers-color-scheme: dark)").matches;
1135
1143
  $(t ? "dark" : "light");
1136
1144
  }
1137
- function ct() {
1138
- let e = l(it, at, ot);
1145
+ function ut() {
1146
+ let e = l(ot, st, ct);
1139
1147
  return i(() => {
1140
1148
  let e = window.matchMedia("(prefers-color-scheme: dark)"), t = (e) => {
1141
- localStorage.getItem(tt) || $(e.matches ? "dark" : "light");
1149
+ localStorage.getItem(rt) || $(e.matches ? "dark" : "light");
1142
1150
  };
1143
1151
  return e.addEventListener("change", t), () => e.removeEventListener("change", t);
1144
1152
  }, []), {
@@ -1154,9 +1162,9 @@ function ct() {
1154
1162
  }
1155
1163
  //#endregion
1156
1164
  //#region src/components/ui/ThemeToggle.tsx
1157
- function lt({ variant: e = "ghost", size: t = "md", className: n }) {
1158
- let { isDark: r, toggleTheme: i } = ct(), { t: a } = I();
1159
- return /* @__PURE__ */ d(_e, {
1165
+ function dt({ variant: e = "ghost", size: t = "md", className: n }) {
1166
+ let { isDark: r, toggleTheme: i } = ut(), { t: a } = I();
1167
+ return /* @__PURE__ */ d(ve, {
1160
1168
  variant: e,
1161
1169
  size: t,
1162
1170
  icon: d(r ? M : T, { size: 16 }),
@@ -1167,8 +1175,8 @@ function lt({ variant: e = "ghost", size: t = "md", className: n }) {
1167
1175
  }
1168
1176
  //#endregion
1169
1177
  //#region src/components/layout/TopNav.tsx
1170
- var ut = "https://www.epfl.ch/campus/services/website//wp-content/themes/wp-theme-2018/assets/svg/epfl-logo.svg?refresh=now";
1171
- function dt({ logo: e, logoUrl: t, categories: n = [], activeCategoryId: r, onCategoryChange: i, actions: a, onBurgerClick: o }) {
1178
+ var ft = "https://www.epfl.ch/campus/services/website//wp-content/themes/wp-theme-2018/assets/svg/epfl-logo.svg?refresh=now";
1179
+ function pt({ logo: e, logoUrl: t, categories: n = [], activeCategoryId: r, onCategoryChange: i, actions: a, onBurgerClick: o }) {
1172
1180
  return /* @__PURE__ */ f("header", {
1173
1181
  className: "fixed inset-x-0 top-0 z-40 flex h-14 items-center border-b border-border bg-bg-primary px-md",
1174
1182
  children: [
@@ -1182,7 +1190,7 @@ function dt({ logo: e, logoUrl: t, categories: n = [], activeCategoryId: r, onCa
1182
1190
  /* @__PURE__ */ d("div", {
1183
1191
  className: "mr-lg flex shrink-0 items-center",
1184
1192
  children: e ?? /* @__PURE__ */ d("img", {
1185
- src: t ?? ut,
1193
+ src: t ?? ft,
1186
1194
  alt: "EPFL",
1187
1195
  className: "h-[30px] w-auto"
1188
1196
  })
@@ -1211,30 +1219,30 @@ function dt({ logo: e, logoUrl: t, categories: n = [], activeCategoryId: r, onCa
1211
1219
  }
1212
1220
  //#endregion
1213
1221
  //#region src/components/layout/SideNav.tsx
1214
- var ft = "sidebar-fold-state", pt = (e) => e.toString().toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").trim().replace(/[^\w\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-").replace(/^-+|-+$/g, ""), mt = (e) => {
1222
+ var mt = "sidebar-fold-state", ht = (e) => e.toString().toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").trim().replace(/[^\w\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-").replace(/^-+|-+$/g, ""), gt = (e) => {
1215
1223
  try {
1216
- let t = localStorage.getItem(ft);
1224
+ let t = localStorage.getItem(mt);
1217
1225
  if (t) return JSON.parse(t)[e] === !0;
1218
1226
  } catch {}
1219
1227
  return !1;
1220
- }, ht = (e, t) => {
1228
+ }, _t = (e, t) => {
1221
1229
  try {
1222
- let n = localStorage.getItem(ft), r = n ? JSON.parse(n) : {};
1223
- r[e] = t, localStorage.setItem(ft, JSON.stringify(r));
1230
+ let n = localStorage.getItem(mt), r = n ? JSON.parse(n) : {};
1231
+ r[e] = t, localStorage.setItem(mt, JSON.stringify(r));
1224
1232
  } catch {}
1225
1233
  };
1226
- function gt(e, t) {
1227
- let n = `sidebar-${e ? pt(e) : "fallback"}-open`, [r, i] = c(t ? mt(n) : !0);
1234
+ function vt(e, t) {
1235
+ let n = `sidebar-${e ? ht(e) : "fallback"}-open`, [r, i] = c(t ? gt(n) : !0);
1228
1236
  return {
1229
1237
  isOpen: r,
1230
1238
  toggle: () => {
1231
1239
  if (!t) return;
1232
1240
  let e = !r;
1233
- i(e), ht(n, e);
1241
+ i(e), _t(n, e);
1234
1242
  }
1235
1243
  };
1236
1244
  }
1237
- function _t({ sections: e = [], activeLinkId: t, onLinkClick: n, collapsed: r = !1, foldable: i = !1, homeLink: a }) {
1245
+ function yt({ sections: e = [], activeLinkId: t, onLinkClick: n, collapsed: r = !1, foldable: i = !1, homeLink: a }) {
1238
1246
  return /* @__PURE__ */ d("aside", {
1239
1247
  className: ["poesis-desktop-flex flex-col border-r border-border bg-bg-secondary overflow-y-auto transition-[width] duration-200", r ? "w-16" : "w-64"].join(" "),
1240
1248
  children: /* @__PURE__ */ d("nav", {
@@ -1258,7 +1266,7 @@ function _t({ sections: e = [], activeLinkId: t, onLinkClick: n, collapsed: r =
1258
1266
  className: "shrink-0"
1259
1267
  }), !r && /* @__PURE__ */ d("span", { children: a.label })]
1260
1268
  })
1261
- }), e.map((e) => /* @__PURE__ */ d(yt, {
1269
+ }), e.map((e) => /* @__PURE__ */ d(xt, {
1262
1270
  section: e,
1263
1271
  activeLinkId: t,
1264
1272
  onLinkClick: n,
@@ -1269,22 +1277,22 @@ function _t({ sections: e = [], activeLinkId: t, onLinkClick: n, collapsed: r =
1269
1277
  })
1270
1278
  });
1271
1279
  }
1272
- function vt({ counters: e }) {
1280
+ function bt({ counters: e }) {
1273
1281
  let t = e?.filter((e) => e.count > 0);
1274
1282
  return t?.length ? /* @__PURE__ */ d("span", {
1275
1283
  className: "ml-auto flex items-center gap-1",
1276
- children: t.map((e, t) => /* @__PURE__ */ d(Ze, {
1284
+ children: t.map((e, t) => /* @__PURE__ */ d($e, {
1277
1285
  content: e.tooltip,
1278
1286
  placement: "top",
1279
- children: /* @__PURE__ */ d(Y, {
1287
+ children: /* @__PURE__ */ d(J, {
1280
1288
  color: e.color,
1281
1289
  children: e.count > 99 ? "99+" : e.count
1282
1290
  })
1283
1291
  }, t))
1284
1292
  }) : null;
1285
1293
  }
1286
- function yt({ section: e, activeLinkId: t, onLinkClick: n, collapsed: r, foldable: i }) {
1287
- let { isOpen: a, toggle: o } = gt(e.title, i);
1294
+ function xt({ section: e, activeLinkId: t, onLinkClick: n, collapsed: r, foldable: i }) {
1295
+ let { isOpen: a, toggle: o } = vt(e.title, i);
1288
1296
  return /* @__PURE__ */ f("li", {
1289
1297
  className: "border-b border-border last:border-b-0",
1290
1298
  children: [e.title && !r && (i ? /* @__PURE__ */ f("button", {
@@ -1312,7 +1320,7 @@ function yt({ section: e, activeLinkId: t, onLinkClick: n, collapsed: r, foldabl
1312
1320
  children: [
1313
1321
  e.icon && /* @__PURE__ */ d(e.icon, { size: 18 }),
1314
1322
  !r && /* @__PURE__ */ d("span", { children: e.label }),
1315
- !r && /* @__PURE__ */ d(vt, { counters: e.counters })
1323
+ !r && /* @__PURE__ */ d(bt, { counters: e.counters })
1316
1324
  ]
1317
1325
  }) }, e.id);
1318
1326
  })
@@ -1321,7 +1329,7 @@ function yt({ section: e, activeLinkId: t, onLinkClick: n, collapsed: r, foldabl
1321
1329
  }
1322
1330
  //#endregion
1323
1331
  //#region src/components/layout/BurgerDrawer.tsx
1324
- function bt({ open: e, onClose: t, categories: n = [], activeCategoryId: r, onCategoryChange: a, sections: o = [], activeLinkId: c, onLinkClick: l }) {
1332
+ function St({ open: e, onClose: t, categories: n = [], activeCategoryId: r, onCategoryChange: a, sections: o = [], activeLinkId: c, onLinkClick: l }) {
1325
1333
  let p = s(null);
1326
1334
  return i(() => {
1327
1335
  if (!e) return;
@@ -1371,7 +1379,7 @@ function bt({ open: e, onClose: t, categories: n = [], activeCategoryId: r, onCa
1371
1379
  className: ["flex items-center gap-sm rounded-md px-sm py-xs text-small font-medium transition-colors", e.id === r ? "bg-primary/10 text-primary" : "text-text-secondary hover:bg-bg-tertiary hover:text-text-primary"].join(" "),
1372
1380
  children: [e.icon && /* @__PURE__ */ d(e.icon, { size: 16 }), e.label]
1373
1381
  }, e.id))]
1374
- }), o.map((e) => /* @__PURE__ */ d(St, {
1382
+ }), o.map((e) => /* @__PURE__ */ d(wt, {
1375
1383
  section: e,
1376
1384
  activeLinkId: c,
1377
1385
  onLinkClick: (e) => {
@@ -1381,21 +1389,21 @@ function bt({ open: e, onClose: t, categories: n = [], activeCategoryId: r, onCa
1381
1389
  })]
1382
1390
  })] });
1383
1391
  }
1384
- function xt({ counters: e }) {
1392
+ function Ct({ counters: e }) {
1385
1393
  let t = e?.filter((e) => e.count > 0);
1386
1394
  return t?.length ? /* @__PURE__ */ d("span", {
1387
1395
  className: "ml-auto flex items-center gap-1",
1388
- children: t.map((e, t) => /* @__PURE__ */ d(Ze, {
1396
+ children: t.map((e, t) => /* @__PURE__ */ d($e, {
1389
1397
  content: e.tooltip,
1390
1398
  placement: "top",
1391
- children: /* @__PURE__ */ d(Y, {
1399
+ children: /* @__PURE__ */ d(J, {
1392
1400
  color: e.color,
1393
1401
  children: e.count > 99 ? "99+" : e.count
1394
1402
  })
1395
1403
  }, t))
1396
1404
  }) : null;
1397
1405
  }
1398
- function St({ section: e, activeLinkId: t, onLinkClick: n }) {
1406
+ function wt({ section: e, activeLinkId: t, onLinkClick: n }) {
1399
1407
  let [r, i] = c(!0);
1400
1408
  return /* @__PURE__ */ f("div", {
1401
1409
  className: "mb-xs flex flex-col",
@@ -1419,7 +1427,7 @@ function St({ section: e, activeLinkId: t, onLinkClick: n }) {
1419
1427
  children: [
1420
1428
  e.icon && /* @__PURE__ */ d(e.icon, { size: 18 }),
1421
1429
  /* @__PURE__ */ d("span", { children: e.label }),
1422
- /* @__PURE__ */ d(xt, { counters: e.counters })
1430
+ /* @__PURE__ */ d(Ct, { counters: e.counters })
1423
1431
  ]
1424
1432
  }) }, e.id);
1425
1433
  })
@@ -1428,8 +1436,8 @@ function St({ section: e, activeLinkId: t, onLinkClick: n }) {
1428
1436
  }
1429
1437
  //#endregion
1430
1438
  //#region src/components/layout/Footer.tsx
1431
- var Ct = "https://www.epfl.ch/campus/services/website//wp-content/themes/wp-theme-2018/assets/svg/epfl-logo.svg?refresh=now", wt = () => (/* @__PURE__ */ new Date()).getFullYear();
1432
- function Tt() {
1439
+ var Tt = "https://www.epfl.ch/campus/services/website//wp-content/themes/wp-theme-2018/assets/svg/epfl-logo.svg?refresh=now", Et = () => (/* @__PURE__ */ new Date()).getFullYear();
1440
+ function Dt() {
1433
1441
  return /* @__PURE__ */ d("footer", {
1434
1442
  role: "contentinfo",
1435
1443
  className: "bg-bg-secondary border-t border-border mt-auto",
@@ -1442,7 +1450,7 @@ function Tt() {
1442
1450
  children: /* @__PURE__ */ d("a", {
1443
1451
  href: "https://www.epfl.ch/en/",
1444
1452
  children: /* @__PURE__ */ d("img", {
1445
- src: Ct,
1453
+ src: Tt,
1446
1454
  alt: "Logo EPFL",
1447
1455
  className: "h-8 w-auto",
1448
1456
  style: {
@@ -1494,7 +1502,7 @@ function Tt() {
1494
1502
  className: "m-0 text-text-muted text-small",
1495
1503
  children: [
1496
1504
  "© ",
1497
- wt(),
1505
+ Et(),
1498
1506
  " EPFL, all rights reserved"
1499
1507
  ]
1500
1508
  })]
@@ -1533,9 +1541,9 @@ function Tt() {
1533
1541
  }
1534
1542
  //#endregion
1535
1543
  //#region src/components/layout/UserMenu.tsx
1536
- function Et({ onLogin: e }) {
1544
+ function Ot({ onLogin: e }) {
1537
1545
  let { t } = I();
1538
- return /* @__PURE__ */ d(me, {
1546
+ return /* @__PURE__ */ d(he, {
1539
1547
  variant: "primary",
1540
1548
  size: "sm",
1541
1549
  iconLeft: /* @__PURE__ */ d(p, { size: 14 }),
@@ -1543,10 +1551,10 @@ function Et({ onLogin: e }) {
1543
1551
  children: t("auth.login")
1544
1552
  });
1545
1553
  }
1546
- function Dt({ user: e, onLogout: t }) {
1554
+ function kt({ user: e, onLogout: t }) {
1547
1555
  let { t: n } = I();
1548
- return /* @__PURE__ */ f(Ge, {
1549
- trigger: /* @__PURE__ */ d(se, {
1556
+ return /* @__PURE__ */ f(qe, {
1557
+ trigger: /* @__PURE__ */ d(ce, {
1550
1558
  src: e.avatarUrl,
1551
1559
  name: e.name,
1552
1560
  size: "sm",
@@ -1564,8 +1572,8 @@ function Dt({ user: e, onLogout: t }) {
1564
1572
  children: e.email
1565
1573
  })]
1566
1574
  }),
1567
- /* @__PURE__ */ d(Ue, {}),
1568
- /* @__PURE__ */ d(We, {
1575
+ /* @__PURE__ */ d(Ge, {}),
1576
+ /* @__PURE__ */ d(Ke, {
1569
1577
  icon: /* @__PURE__ */ d(m, { size: 14 }),
1570
1578
  onClick: t,
1571
1579
  children: n("auth.logout")
@@ -1575,12 +1583,12 @@ function Dt({ user: e, onLogout: t }) {
1575
1583
  }
1576
1584
  //#endregion
1577
1585
  //#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, contentContainerClassName: _ = "mx-auto max-w-[var(--container-6xl)]" }) {
1586
+ function At({ 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
1587
  let [v, y] = c(!1);
1580
1588
  return /* @__PURE__ */ f("div", {
1581
1589
  className: "flex h-screen flex-col bg-bg-primary",
1582
1590
  children: [
1583
- /* @__PURE__ */ d(dt, {
1591
+ /* @__PURE__ */ d(pt, {
1584
1592
  logo: t,
1585
1593
  logoUrl: n,
1586
1594
  categories: r,
@@ -1591,7 +1599,7 @@ function Ot({ children: e, logo: t, logoUrl: n, categories: r = [], activeCatego
1591
1599
  }),
1592
1600
  /* @__PURE__ */ f("div", {
1593
1601
  className: "flex flex-1 overflow-hidden pt-14",
1594
- children: [/* @__PURE__ */ d(_t, {
1602
+ children: [/* @__PURE__ */ d(yt, {
1595
1603
  sections: o,
1596
1604
  activeLinkId: s,
1597
1605
  onLinkClick: l,
@@ -1607,10 +1615,10 @@ function Ot({ children: e, logo: t, logoUrl: n, categories: r = [], activeCatego
1607
1615
  className: _,
1608
1616
  children: e
1609
1617
  })
1610
- }), g && /* @__PURE__ */ d(Tt, {})]
1618
+ }), g && /* @__PURE__ */ d(Dt, {})]
1611
1619
  })]
1612
1620
  }),
1613
- /* @__PURE__ */ d(bt, {
1621
+ /* @__PURE__ */ d(St, {
1614
1622
  open: v,
1615
1623
  onClose: () => y(!1),
1616
1624
  categories: r,
@@ -1629,7 +1637,7 @@ function Ot({ children: e, logo: t, logoUrl: n, categories: r = [], activeCatego
1629
1637
  }
1630
1638
  //#endregion
1631
1639
  //#region src/components/data-display/Card.tsx
1632
- var kt = t(function({ header: e, footer: t, actions: n, noPadding: r = !1, className: i = "", children: a, ...o }, s) {
1640
+ var jt = t(function({ header: e, footer: t, actions: n, noPadding: r = !1, className: i = "", children: a, ...o }, s) {
1633
1641
  let c = t || n;
1634
1642
  return /* @__PURE__ */ f("div", {
1635
1643
  ref: s,
@@ -1663,7 +1671,7 @@ var kt = t(function({ header: e, footer: t, actions: n, noPadding: r = !1, class
1663
1671
  })
1664
1672
  ]
1665
1673
  });
1666
- }), At = t(function({ items: e, layout: t = "horizontal", dividers: n = !0, className: r = "", ...i }, a) {
1674
+ }), Mt = t(function({ items: e, layout: t = "horizontal", dividers: n = !0, className: r = "", ...i }, a) {
1667
1675
  let o = t === "horizontal";
1668
1676
  return /* @__PURE__ */ d("dl", {
1669
1677
  ref: a,
@@ -1684,7 +1692,7 @@ var kt = t(function({ header: e, footer: t, actions: n, noPadding: r = !1, class
1684
1692
  })]
1685
1693
  }, t))
1686
1694
  });
1687
- }), jt = t(function({ illustration: e, title: t, description: n, action: r, className: i = "", ...a }, o) {
1695
+ }), Nt = t(function({ illustration: e, title: t, description: n, action: r, className: i = "", ...a }, o) {
1688
1696
  return /* @__PURE__ */ f("div", {
1689
1697
  ref: o,
1690
1698
  className: ["flex flex-col items-center justify-center text-center py-2xl px-lg", i].filter(Boolean).join(" "),
@@ -1711,7 +1719,7 @@ var kt = t(function({ header: e, footer: t, actions: n, noPadding: r = !1, class
1711
1719
  });
1712
1720
  //#endregion
1713
1721
  //#region src/components/data-display/Table.tsx
1714
- function Mt(e, t) {
1722
+ function Pt(e, t) {
1715
1723
  if (!e.sortValue || t.length === 0) return "text";
1716
1724
  for (let n of t) {
1717
1725
  let t = e.sortValue(n);
@@ -1719,7 +1727,7 @@ function Mt(e, t) {
1719
1727
  }
1720
1728
  return "text";
1721
1729
  }
1722
- function Nt({ active: e, direction: t, columnType: n }) {
1730
+ function Ft({ active: e, direction: t, columnType: n }) {
1723
1731
  return e ? d(n === "numeric" ? t === "asc" ? A : j : t === "asc" ? D : O, {
1724
1732
  size: 14,
1725
1733
  className: "ml-1 inline",
@@ -1730,9 +1738,9 @@ function Nt({ active: e, direction: t, columnType: n }) {
1730
1738
  "aria-hidden": !0
1731
1739
  });
1732
1740
  }
1733
- function Pt({ columns: e, hiddenSet: t, onToggle: n }) {
1741
+ function It({ columns: e, hiddenSet: t, onToggle: n }) {
1734
1742
  let r = e.filter((e) => e.hideable !== !1), i = r.filter((e) => !t.has(e.key)).length;
1735
- return /* @__PURE__ */ d(Ke, {
1743
+ return /* @__PURE__ */ d(Je, {
1736
1744
  placement: "bottom-end",
1737
1745
  trigger: /* @__PURE__ */ f("button", {
1738
1746
  type: "button",
@@ -1751,7 +1759,7 @@ function Pt({ columns: e, hiddenSet: t, onToggle: n }) {
1751
1759
  children: "Visible columns"
1752
1760
  }), r.map((e) => {
1753
1761
  let r = !t.has(e.key), a = r && i <= 1;
1754
- return /* @__PURE__ */ d(Z, {
1762
+ return /* @__PURE__ */ d(X, {
1755
1763
  label: e.header,
1756
1764
  checked: r,
1757
1765
  disabled: a,
@@ -1761,7 +1769,7 @@ function Pt({ columns: e, hiddenSet: t, onToggle: n }) {
1761
1769
  })
1762
1770
  });
1763
1771
  }
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) {
1772
+ var Lt = 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
1773
  let [T, E] = c(), D = a ?? T, O = n((e) => {
1766
1774
  let t = D?.column === e && D.direction === "asc" ? {
1767
1775
  column: e,
@@ -1821,7 +1829,7 @@ var Ft = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
1821
1829
  s
1822
1830
  ]), 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(() => {
1823
1831
  let n = /* @__PURE__ */ new Map();
1824
- for (let r of e) r.sortable && n.set(r.key, Mt(r, t));
1832
+ for (let r of e) r.sortable && n.set(r.key, Pt(r, t));
1825
1833
  return n;
1826
1834
  }, [e, t]), W = R.length + (y ? 1 : 0), G = z.length === 0;
1827
1835
  return /* @__PURE__ */ f("div", {
@@ -1833,7 +1841,7 @@ var Ft = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
1833
1841
  children: [/* @__PURE__ */ d("div", {
1834
1842
  className: "flex items-center gap-sm min-w-0",
1835
1843
  children: p
1836
- }), m && /* @__PURE__ */ d(Pt, {
1844
+ }), m && /* @__PURE__ */ d(It, {
1837
1845
  columns: e,
1838
1846
  hiddenSet: j,
1839
1847
  onToggle: M
@@ -1846,7 +1854,7 @@ var Ft = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
1846
1854
  className: "bg-bg-secondary border-b border-border",
1847
1855
  children: [y && /* @__PURE__ */ d("th", {
1848
1856
  className: "w-10 px-sm py-sm text-center",
1849
- children: /* @__PURE__ */ d(Z, {
1857
+ children: /* @__PURE__ */ d(X, {
1850
1858
  checked: V,
1851
1859
  indeterminate: H,
1852
1860
  onChange: () => L(B),
@@ -1864,7 +1872,7 @@ var Ft = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
1864
1872
  "aria-sort": t ? D.direction === "asc" ? "ascending" : "descending" : e.sortable ? "none" : void 0,
1865
1873
  children: /* @__PURE__ */ f("span", {
1866
1874
  className: "inline-flex items-center",
1867
- children: [e.header, e.sortable && /* @__PURE__ */ d(Nt, {
1875
+ children: [e.header, e.sortable && /* @__PURE__ */ d(Ft, {
1868
1876
  active: t,
1869
1877
  direction: t ? D.direction : void 0,
1870
1878
  columnType: U.get(e.key) ?? "text"
@@ -1887,7 +1895,7 @@ var Ft = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
1887
1895
  ].filter(Boolean).join(" "),
1888
1896
  children: [y && /* @__PURE__ */ d("td", {
1889
1897
  className: "w-10 px-sm py-sm text-center",
1890
- children: /* @__PURE__ */ d(Z, {
1898
+ children: /* @__PURE__ */ d(X, {
1891
1899
  checked: F.has(n),
1892
1900
  onChange: () => ee(n),
1893
1901
  "aria-label": `Select row ${n}`
@@ -1900,7 +1908,7 @@ var Ft = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
1900
1908
  }) })]
1901
1909
  })]
1902
1910
  });
1903
- }), It = {
1911
+ }), Rt = {
1904
1912
  success: {
1905
1913
  bg: "bg-success-bg",
1906
1914
  border: "border-success/30",
@@ -1926,8 +1934,8 @@ var Ft = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
1926
1934
  icon: C
1927
1935
  }
1928
1936
  };
1929
- function Lt({ variant: e, title: t, children: n, dismissible: r = !1, onDismiss: i, className: a = "" }) {
1930
- let [o, s] = c(!0), { bg: l, border: u, text: p, icon: m } = It[e];
1937
+ function zt({ variant: e, title: t, children: n, dismissible: r = !1, onDismiss: i, className: a = "" }) {
1938
+ let [o, s] = c(!0), { bg: l, border: u, text: p, icon: m } = Rt[e];
1931
1939
  if (!o) return null;
1932
1940
  let h = () => {
1933
1941
  s(!1), i?.();
@@ -1963,12 +1971,12 @@ function Lt({ variant: e, title: t, children: n, dismissible: r = !1, onDismiss:
1963
1971
  }
1964
1972
  //#endregion
1965
1973
  //#region src/components/feedback/Dialog.tsx
1966
- var Rt = {
1974
+ var Bt = {
1967
1975
  sm: "max-w-[24rem]",
1968
1976
  md: "max-w-[32rem]",
1969
1977
  lg: "max-w-[42rem]"
1970
1978
  };
1971
- function zt({ open: e, onClose: t, title: n, size: r = "md", children: a, footer: o, className: c = "" }) {
1979
+ function Vt({ open: e, onClose: t, title: n, size: r = "md", children: a, footer: o, className: c = "" }) {
1972
1980
  let l = s(null);
1973
1981
  i(() => {
1974
1982
  if (!e) return;
@@ -1995,7 +2003,7 @@ function zt({ open: e, onClose: t, title: n, size: r = "md", children: a, footer
1995
2003
  e.shiftKey && document.activeElement === n ? (e.preventDefault(), r.focus()) : !e.shiftKey && document.activeElement === r && (e.preventDefault(), n.focus());
1996
2004
  }
1997
2005
  };
1998
- return e ? ie(/* @__PURE__ */ f("div", {
2006
+ return e ? ae(/* @__PURE__ */ f("div", {
1999
2007
  style: {
2000
2008
  position: "fixed",
2001
2009
  inset: 0,
@@ -2027,7 +2035,7 @@ function zt({ open: e, onClose: t, title: n, size: r = "md", children: a, footer
2027
2035
  children: /* @__PURE__ */ f("div", {
2028
2036
  ref: l,
2029
2037
  tabIndex: -1,
2030
- className: `relative z-10 flex flex-col w-full ${Rt[r]} rounded-lg border border-border bg-bg-primary shadow-xl outline-none animate-dialog-in ${c}`,
2038
+ className: `relative z-10 flex flex-col w-full ${Bt[r]} rounded-lg border border-border bg-bg-primary shadow-xl outline-none animate-dialog-in ${c}`,
2031
2039
  children: [
2032
2040
  n && /* @__PURE__ */ f("div", {
2033
2041
  className: "flex items-center justify-between px-lg py-md border-b border-border",
@@ -2058,8 +2066,8 @@ function zt({ open: e, onClose: t, title: n, size: r = "md", children: a, footer
2058
2066
  }
2059
2067
  //#endregion
2060
2068
  //#region src/components/feedback/ConfirmDialog.tsx
2061
- function Bt({ open: e, onCancel: t, onConfirm: n, title: r, children: i, confirmLabel: a = "Confirm", cancelLabel: o = "Cancel", danger: s = !1, submitting: c = !1, size: l = "sm" }) {
2062
- return /* @__PURE__ */ f(zt, {
2069
+ function Ht({ open: e, onCancel: t, onConfirm: n, title: r, children: i, confirmLabel: a = "Confirm", cancelLabel: o = "Cancel", danger: s = !1, submitting: c = !1, size: l = "sm" }) {
2070
+ return /* @__PURE__ */ f(Vt, {
2063
2071
  open: e,
2064
2072
  onClose: t,
2065
2073
  title: r,
@@ -2091,22 +2099,22 @@ function Bt({ open: e, onCancel: t, onConfirm: n, title: r, children: i, confirm
2091
2099
  s ? "bg-error hover:bg-error/80" : "bg-primary hover:bg-primary-hover",
2092
2100
  c && "opacity-80 pointer-events-none"
2093
2101
  ].filter(Boolean).join(" "),
2094
- children: [c && /* @__PURE__ */ d(X, { size: "sm" }), a]
2102
+ children: [c && /* @__PURE__ */ d(Y, { size: "sm" }), a]
2095
2103
  })]
2096
2104
  })]
2097
2105
  });
2098
2106
  }
2099
2107
  //#endregion
2100
2108
  //#region src/components/feedback/toastContext.ts
2101
- var Vt = e(null);
2102
- function Ht() {
2103
- let e = r(Vt);
2109
+ var Ut = e(null);
2110
+ function Wt() {
2111
+ let e = r(Ut);
2104
2112
  if (!e) throw Error("useToast must be used within a <ToastProvider>");
2105
2113
  return e;
2106
2114
  }
2107
2115
  //#endregion
2108
2116
  //#region src/components/feedback/Toast.tsx
2109
- var Ut = {
2117
+ var Gt = {
2110
2118
  success: {
2111
2119
  bg: "bg-bg-primary",
2112
2120
  accent: "bg-success",
@@ -2132,8 +2140,8 @@ var Ut = {
2132
2140
  icon: C
2133
2141
  }
2134
2142
  };
2135
- function Wt({ toast: e, onRemove: t }) {
2136
- let { variant: n, title: r, message: a, duration: o = 5e3 } = e, { bg: l, accent: u, text: p, icon: m } = Ut[n], [h, g] = c(100), _ = s(0), v = s(0);
2143
+ function Kt({ toast: e, onRemove: t }) {
2144
+ let { variant: n, title: r, message: a, duration: o = 5e3 } = e, { bg: l, accent: u, text: p, icon: m } = Gt[n], [h, g] = c(100), _ = s(0), v = s(0);
2137
2145
  return i(() => {
2138
2146
  if (o <= 0) return;
2139
2147
  _.current = performance.now();
@@ -2189,10 +2197,10 @@ function Wt({ toast: e, onRemove: t }) {
2189
2197
  })]
2190
2198
  });
2191
2199
  }
2192
- var Gt = 0;
2193
- function Kt({ children: e }) {
2200
+ var qt = 0;
2201
+ function Jt({ children: e }) {
2194
2202
  let [t, r] = c([]), i = n((e) => {
2195
- let t = `toast-${++Gt}`;
2203
+ let t = `toast-${++qt}`;
2196
2204
  return r((n) => [...n, {
2197
2205
  ...e,
2198
2206
  id: t
@@ -2200,7 +2208,7 @@ function Kt({ children: e }) {
2200
2208
  }, []), a = n((e) => {
2201
2209
  r((t) => t.filter((t) => t.id !== e));
2202
2210
  }, []);
2203
- return /* @__PURE__ */ f(Vt, {
2211
+ return /* @__PURE__ */ f(Ut, {
2204
2212
  value: {
2205
2213
  addToast: i,
2206
2214
  removeToast: a
@@ -2210,7 +2218,7 @@ function Kt({ children: e }) {
2210
2218
  className: "fixed bottom-lg right-lg z-50 flex flex-col-reverse gap-sm pointer-events-none",
2211
2219
  children: t.map((e) => /* @__PURE__ */ d("div", {
2212
2220
  className: "pointer-events-auto",
2213
- children: /* @__PURE__ */ d(Wt, {
2221
+ children: /* @__PURE__ */ d(Kt, {
2214
2222
  toast: e,
2215
2223
  onRemove: a
2216
2224
  })
@@ -2220,12 +2228,12 @@ function Kt({ children: e }) {
2220
2228
  }
2221
2229
  //#endregion
2222
2230
  //#region src/hooks/useAuth.tsx
2223
- var qt = e(null), Jt = {
2231
+ var Yt = e(null), Xt = {
2224
2232
  name: "Alice Martin",
2225
2233
  email: "alice.martin@epfl.ch",
2226
2234
  role: "admin"
2227
2235
  };
2228
- function Yt({ initialUser: e = Jt, children: t }) {
2236
+ function Zt({ initialUser: e = Xt, children: t }) {
2229
2237
  let [n, r] = c(e), i = (e) => r((t) => ({
2230
2238
  ...t,
2231
2239
  role: e
@@ -2233,17 +2241,17 @@ function Yt({ initialUser: e = Jt, children: t }) {
2233
2241
  user: n,
2234
2242
  setRole: i
2235
2243
  }), [n]);
2236
- return /* @__PURE__ */ d(qt.Provider, {
2244
+ return /* @__PURE__ */ d(Yt.Provider, {
2237
2245
  value: a,
2238
2246
  children: t
2239
2247
  });
2240
2248
  }
2241
- function Xt() {
2242
- let e = r(qt);
2249
+ function Qt() {
2250
+ let e = r(Yt);
2243
2251
  if (!e) throw Error("useAuth must be used within an AuthProvider");
2244
2252
  return e;
2245
2253
  }
2246
2254
  //#endregion
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 };
2255
+ export { zt as Alert, Zt as AuthProvider, ce as Avatar, J as Badge, St as BurgerDrawer, he as Button, jt as Card, X as Checkbox, Ht as ConfirmDialog, Mt as DescriptionList, Vt as Dialog, Ge as DropdownDivider, Ke as DropdownItem, qe as DropdownMenu, Nt as EmptyState, we as FileUpload, Dt as Footer, ve as IconButton, Pe as Input, nt as LanguageSwitcher, Ot as LoginButton, At as PageShell, Se as Pagination, Je as Popover, De as ProgressBar, Le as RadioGroup, Ve as Select, yt as SideNav, Y as Spinner, He as Switch, Xe as TabPanel, Lt as Table, Ze as Tabs, Ue as Textarea, dt as ThemeToggle, Jt as ToastProvider, $e as Tooltip, pt as TopNav, kt as UserMenu, Z as epflSelectClassNames, ze as epflSelectTheme, lt as initTheme, Qt as useAuth, et as useLanguage, ut as useTheme, Wt as useToast };
2248
2256
 
2249
2257
  //# sourceMappingURL=poesis.js.map